#252. No.2 | 程序基础-数据类型、运算编码、流程图、数学函数
No.2 | 程序基础-数据类型、运算编码、流程图、数学函数
程序基础
- 【NOIP2009】关于程序设计语言,下面哪个说法是正确的:
{{ select(1) }}
- 高级语言相对于低级语言更容易实现跨平台的移植。
- 加了注释的程序一般会比同样的没有加注释的程序运行速度慢。
- 高级语言开发的程序不能使用在低层次的硬件系统如:自控机床或低端手机上。
- 以上说法都不对。
- 【NOIP2011】关于汇编语言,下列说法错误的是( ) {{ select(2) }}
- 随着高级语言的诞生,如今已完全被淘汰,不再使用
- 是一种与具体硬件相关的程序设计语言
- 在编写复杂程序时,相对于高级语言而言代码量较大,且不易调试
- 可以直接访问寄存器、内存单元、以及 I/O 端口
- 【NOIP2010】Pascal 语言、C 语言和 C++ 语言都属于( )。 {{ select(3) }}
- 编译性语言
- 面向对象语言
- 脚本语言
- 解释性语言
- 【NOIP2014】以下哪个是面向对象的高级语言( )。 {{ select(4) }}
- C++
- 汇编语言
- Fortran
- Basic
- 【NOIP2017】 下列不属于面向对象程序设计语言的是( )。 {{ select(5) }}
- C
- C++
- Java
- C#
- 【NOIP2011】在使用高级语言编写程序时,一般提到的“空间复杂度”中的“空间”是指( )。 {{ select(6) }}
- 程序运行时理论上所占的内存空间
- 程序运行时理论上所占的数组空间
- 程序运行时理论上所占的硬盘空间
- 程序源文件理论上所占的硬盘空间
- 【NOIP2009】关于 ASCII,下面哪个说法是正确的: {{ select(7) }}
- 一个 ASCII 码使用一个字节的内存空间就能够存放。
- ASCII 码就是键盘上所有键的唯一编码。
- 最新扩展的 ASCII 编码方案包含了汉字和其他欧洲语言的编码。
- ASCII 码是英国人主持制定并推广使用的
- 【NOIP2009】已知大写字母'A'的ASCII编码为65(10进制),则大写字母'J'的10进制ASCII编码为: {{ select(8) }}
- 都不是
- 71
- 72
- 73
- 【NOIP2011】字符 '0' 的 ASCII 码为48,则字符 '9' 的 ASCII 码为( )。 {{ select(9) }}
- 57
- 39
- 120
- 视具体的计算机而定
- 【NOIP2010】一个字节(byte)由( )个二进制位组成。 {{ select(10) }}
- 8
- 16
- 32
- 以上都有可能
- 【NOIP2013】一个 32 位整型变量占用( )个字节。 {{ select(11) }}
- 8
- 4
- 32
- 128
- 【NOIP2014】1 TB 代表的字节数是( )。 {{ select(12) }}
- 2 的 40 次方
- 2 的 30 次方
- 2 的 20 次方
- 2 的 10 次方
- 【NOIP2015】1 MB 等于( )。 {{ select(13) }}
- 1024×1024 字节
- 10000 字节
- 1024 字节
- 1000×1000 字节
- 【NOIP2011】一片容量为 8 G 的 SD 卡能储存大约( )张大小为 2 MB 的数码照片。 {{ select(14) }}
- 4000
- 1600
- 2000
- 16000
- 【NOIP2010】以下逻辑表达式的值恒为真的是( )。 {{ select(15) }}
- P∨(﹃P∧Q)∨(﹃P∧﹃Q)
- Q∨(﹃P∧Q)∨(P∧﹃Q)
- P∨Q∨(P∧﹃Q)∨(﹃P∧Q)
- P∨﹃Q∨(P∧﹃Q)∨(﹃P∧﹃Q)
- 【NOIP2013】逻辑表达式()的值与变量 A 的真假无关。 {{ select(16) }}
- (A ∧ B) ∨ (﹃ A ∧ B)
- (A ∨ B) ∧﹃A ∧B
- (A ∨ B) ∧﹃A
- (A ∨ B) ∧﹃B
-
【NOIP2010】浮点数 2E+03 表示( )。
{{ select(17) }}
- 2000
- 2.03
- 5
- 8
数学函数
<math.h> 库中
double abs(double x) abs(-3.14)=3.14 绝对值函数,返回 x 的绝对值
double sqrt(double x) sqrt(9)=3 平方根函数,返回 x 的算术平方根
double round(double x) round(3.14)=3 四舍五入函数
double floor(double x) floor(3.14)=3 向下取整,返回不大于 x 的最大整数
double ceil(double x) ceil(3.14)=4 向上取整,返回不小于 x 的最小整数
double pow(double x,double y) pow(2,3)=2^3=8 x^y
double log(double x) log(1)=0 对数函数,返回 x 的自然数对数
double exp(double x) exp(1)=2.718282 自然数指数函数,返回 e^x
<algorithm> 库中
T max(T a,T b) max(2,3)=3 取两个数的最大值
T min(T a,T b) min(2,3)=2 取两个数的最小值
swap(T a,T b); 交换 a,b
<stdlib.h> 库中
int rand() rand()=41 随机生成一个[0, 32767] 的整数
srand((unsigned int)time(0)); 随机种子
顺序结构
- 【例】如下程序段中,错误的是( )。 {{ select(18) }}
#include <cmath>
#include "cmath"
#define N 100
typedef LL long long
- 【例】下列数据类型中不能用于存放数字 2 的是 ( )。 {{ select(19) }}
- int
- short
- char
- bool
- 【例】下列表达式中会出现数据精度丢失的是 ( )。 {{ select(20) }}
- bool(0)
- char('a'+25)
- (float)5/2
- 3/4*1.0
- 【例】下列表达式中结果不是数字 68 的是 ( )。 {{ select(21) }}
- 'A'+3
- 'E'-1
- 34*2-49+'1'
- 68/3*3
- 【例】下列输出结果是"hello world!"的是 ( )。 {{ select(22) }}
- cout<<'hello world!'<<endl;
- cout<<"hello "<<" world!"<<endl;
- cout<<"hello"<<" "<<"world!\t";
- cout<<"hello world!\n";
- 【例】下列说法错误的是 ( )。 {{ select(23) }}
- rand() 的结果是随机数,可能是 32767
- pow(a,b) 的结果是a的b次方,但是不必统一数据类型
- max(a,b) 的结果是a,b的最大值且要求a,b必须统一数据类型
- min(a,b) 的结果是a,b的最小值,但是不必统一数据类型
- 【例】对于如下流程图,说法正确的是 ( )。
{{ select(24) }}
- 给定一个 x,如果 x 是 2 的倍数,x 就加 1,否则不加,最后输出 x。
- 给定一个 x,如果 x 是 2 的倍数,x 就加 1 后输出;否则不输出。
- 给定一个 x,如果 x 不是 2 的倍数,x 就加 1 后输出;否则不输出。
- 给定一个 x,如果 x 不是 2 的倍数,x 就加 1;最后输出 x。
- 【例】对于如下流程图,说法错误的是 ( )。
{{ select(25) }}
- 当输入为 10 时,输出结果为 55。
- 当输入为负数时,输出结果为 0。
- 会执行 max(0, x) 次 (s=s+i)。
- 会执行 x+1 次判断 (i<=x)。
- 【NOIP2014】设变量 x 为 float 型且已赋值,则以下语句中能将 x 中的数值保留到小数点后两位,并将第三位四舍五入的是( )。 {{ select(26) }}
- x = (x * 100) + 0.5 / 100.0;
- x = (x * 100 + 0.5) / 100.0;
- x = (x / 100 + 0.5) * 100.0;
- x = (int)(x * 100 + 0.5)/100.0;
- 【NOIP2016】若有如下程序段,其中 s,a,b,c 均已定义为整型变量,且 a,c 均已赋值 (c 大于 0)。
s = a;
for (b = 1;b <= c; b++ ) s = s + 1;
则与上述程序段修改 s 值的功能等价的赋值语句是()。 {{ select(27) }}
- s = a + b;
- s = s + c;
- s = b + c;
- s = a + c;
- 【NOIP2014】要求以下程序的功能是计算:
#include <iostream>
using namespace std;
int main() {
int n;
float s;
s = 1.0;
for(n = 10; n > 1; n--)
s = s + 1 / n;
cout << s << endl;
return 0;
}
程序运行后输出结果错误,导致错误结果的程序行是( )。 {{ select(28) }}
- s = 1.0;
- for(n = 10; n > 1; n--)
- s = s + 1 / n;
- cout << s << endl;
- 【NOIP2016】有以下程序:
#include <iostream>
using namespace std;
int main() {
int k = 4, n = 0;
while (n < k) {
n++;
if (n % 3 != 0) continue;
k--;
}
cout << k << "," << n << endl;
return 0;
}
程序运行后输出的结果是( )。 {{ select(29) }}
- 2,2
- 2,3
- 3,2
- 3,3
- 【NOIP2014】有以下程序:
#include <iostream>
using namespace std;
int main(){
int s, a, n;
s= 0, a= 1;
cin >> n;
do {
s+= 1;
a-= 2;
}
while ( a != n );
cout << s << endl;
return(0);
}
若要使程序的输出值为 2,则应该从键盘给 n 输入的值是( )。 {{ select(30) }}
- 0
- -1
- -3
- -5
- 【NOIP2013】下列程序中,正确计算 这 100 个自然数之和 (初始值为 0)的是( )。 {{ select(31) }}
- i = 1; while(i < 100){ sum+=i; i++; }
- i = 1; while(i >= 100){ sum+=i; i++; }
- i = 1; do{ sum +=i; i++; }while(i > 100);
- i = 1; do{ sum +=i; i++; }while(i<=100);