【单选题】(每题2分)
1、在信息组织和存储中,最基本的单位是?( )
A、字节(Byte)
B、二进制位(bit)
C、字(Word)
D、双字(Double Word)
正确答案:A
试题解析:在信息组织和存储中,最基本的单位是字节。
2、下面关于 C++的程序的运行结果是?( )
int main()
int s = 1;
for(int i = 1; i < 10; i++)
s += i;
cout<<s<<endl;
return 0;
}
A、45
B、46
C、55
D、56
正确答案:B
试题解析:i的值从1循环到9,所有s=1(初始值)+1+2+3+4+5+6+7+8+9=46。
3、将二进制数 10010101,转换成十进制数,正确的选项为?( )
A、139
B、141
C、149
D、151
正确答案:C
试题解析:1*2^0+0*2^1+1*2^2+0*2^3+1*2^4+0*2^5+0*2^6+1*2^7=149。
4、表达式:(int)((double)9/2) - 9%2 的值是?( )
A、0
B、3
C、5
D、4
正确答案:B
试题解析:(int)((double)9/2)=(int)4.5=4(double转int舍去小数部分),9%2=1,(int)((double)9/2) - 9%2=4-1=3。
5、数据流图中带有箭头的线段表示的是?( )
A、控制流
B、水流
C、函数流
D、数据流
正确答案:D
试题解析:数据流图中带有箭头的线段表示的是数据流
6、下列关于浮点数的说法错误的是?( )
A、计算机中实数是用浮点数来表示
B、整数也可以用浮点数表示
C、浮点数使用二进制表示
D、同一个数的浮点数表示形式并不唯一
正确答案:C
试题解析:浮点数使用十进制表示,C错。
7、对于一个 C++ 程序,以下叙述中正确的是?( )
A、程序的执行总是从 main 函数开始,在main 函数结束
B、程序的执行总是从程序的个函数开始,在 main函数结束
C、程序的执行总是从 main 函数开始,在程序的后一个函数中结束
D、程序的执行总是从程序的个函数开始,在程序的后一个函数中结束
正确答案:A
试题解析:程序的执行总是从 main 函数开始,在main 函数结束,A正确。
8、哪个选项给出了下述程序的输出次数?( )
int k = 9999;
while(k>1){
cout<<k<<endl;
k=k/2;
}
A、13
B、14
C、15
D、9999
正确答案:A
试题解析:2^13=8192,2^14=16384,9999/2^13>1,9999/2^14<1,所以while循环内语句执行13次后结束循环,每次循环输出1次,总共输出13次。
9、设任意一个十进制整数 D,转换成二进制数为B,根据数制的概念,下列叙述中正确的是?( )
A、数字 B 的位数 < 数字 D 的位数
B、数字 B 的位数 ≤ 数字 D 的位数
C、数字 B 的位数 ≥ 数字 D 的位数
D、数字 B 的位数 > 数字 D 的位数
正确答案:C
试题解析:当数字D的位数等于1时,数字 B 的位数 = 数字 D 的位数=1;
当数字D的位数大于1时,数字 B 的位数 > 数字 D 的位数;
综上所述,数字 B 的位数 ≥ 数字 D 的位数。
10、下列选项中,八进制数 24 转换成二进制数正确的是?( )
A、00101100
B、00010100
C、00011100
D、00011101
正确答案:B
试题解析:八进制数转二进制数时,每位数字用一个三位二进制数来表示,不足时在最左边补0;
4用三位二进制数表示为100;
2用三位二进制数表示为010;
所以八进制数 24 转换成二进制数为010100,选项用八位二进制数表示,所以在左边补两个0,即00010100。
11、C++ 中要求操作数必须是整型的二元运算符是?( )
A、+
B、/
C、%
D、&
正确答案:C
试题解析:%运算符要求操作数必须是整型。
12、在 C++中一个 char 型数据可以表示的范围是?( )
A、0~255
B、0~256
C、-127~127
D、-128~127
正确答案:D
试题解析:在 C++中一个 char 型数据可以表示的范围是-128~127。
13、下面所示的程序,运行结束后的结果是?( )
int main(){
int s = 0,i;
for(i=1;i<100;i++){
if(s>50)
break;
s+=i;
}
cout<<i<<endl;
return 0;
}
A、10
B、11
C、55
D、4950
正确答案:B
试题解析:i=10时,s=45<50,循环不结束,s+=i=55,i++;
i=11时,s=55>50,循环结束,此时i=11。
14、请问 2020年7月1日是 2020年的第几天?( )
A、183
B、184
C、182
D、185
正确答案:A
试题解析:2020是闰年(闰年的条件:非整百年能被4整除,整百年能被400整除),所以在2020年里,7月1日以前一共有31(一月)+29(二月)+31(三月)+30(四月)+31(五月)+30(六月)=182天,所以7月1日是2020年的第183天。
15、下面中的程序的输出结果是?( )
int main(){
int a,b;
a=5;
b=3;
a=b;
b=a;
printf("%d,%d",a,b);
return 0;
}
A、3.5
B、3.3
C、5.3
D、运行错误
正确答案:B
试题解析:
【多选题】(每题3分)
16、下列不能正确判断出字符变量 c 为小写字母的是?( )
A、'a'<=c<='z'
B、(c>='a') || (c<='z')
C、('a'<=c) and ('z'>c)
D、(c>='a') && (c<='z')
正确答案:ABC
试题解析:A选项语句不符合c++标准,A错误;
B选项表示 c>='a'或 c<='z',不能判断出字符变量 c 为小写字母,B错误;
C选项语句不符合c++标准,C错误;
D选项表示 c>='a'且 c<='z',可以判断出字符变量 c 为小写字母,D正确;
题目要求选择不能正确判断出字符变量 c 为小写字母的选项,故选ABC。
17、无名迈台阶时一次只能迈一阶或者两阶,请问选项中的次数可以实现从 0 节台阶到达第 5 节台阶的是( ),迈台阶只能向上不能向下。
A、5
B、4
C、3
D、2
正确答案:ABC
试题解析:A.5=1+1+1+1+1,一共迈5次,A正确;
B.5=1+1+1+2,一共迈4次,B正确;
C.5=1+2+2,一共迈3次,C正确;
D.因为迈台阶时一次只能迈一阶或者两阶,所以迈两次最多只能上2+2=4阶台阶,D错误;
故选ABC。
18、已知 a 是整型,则下列关于表达式(a==1) || (a!=1)的值不正确的有?( )
A、1
B、0
C、2
D、不知道 a 的值,不能确定
正确答案:BCD
试题解析:表达式(a==1) || (a!=1)永远为真,故该表达式的值为1,故A正确,BCD不正确。
19、执行下面程序后数值为整数的是?( )
int n,g,s,b;
n = 123;
g = n/100;
s = n/10%10;
b = n%10;
A、g
B、s
C、b
D、n
正确答案:ABCD
试题解析:g=123/100=1(int与int相除得到的结果只保留整数部分),A正确;
s=123/10%10=12%10=2,B正确;
b=123%10=3,C正确;
n=123,D正确;
故选ABCD。
20、抓了 a,b,c,d 4名嫌疑人,其中有 3 个平民,1 个小偷,审讯中:a 说我不是小偷,b 说 c 是小偷,c 说小偷肯定是 d,d 说 c 胡说。其中有三个人说的是真话,一人说的是假话,请问哪些是平民?( )
A、a
B、b
C、c
D、d
正确答案:ABD
试题解析:c说的是假话,a,b,d说的是真话,c是小偷,a,b,d是平民,选ABD。
【编程题】
21、(本题10分)请你统计所有两位数(10~99)中,个位与十位相加为 8 的两位数的个数。(本题共10分)
参考程序:
#include <iostream>
using namespace std;
int main() {
int a=0;
for(int i=10; i<=99; i++) {
if(i/10+i%10==8) {
a++;
}
}
cout<<a<<endl;
return 0;
}
22、(本题10分)无名在学习了编程之后,想要用程序写一个支持加法、减法、乘法和整数除法的计算器程序,输入计算式之后直接计算出结果。
如输入 1+2 输出 3,输入 3-1 输出2,其它运算类似,但是做整数除法的时候要求除数不能为 0,且结果保留两位小数,请帮忙编程实现程序计算并输出 1024/520的结果。(本题共10分)
参考程序:
#include <iostream>
using namespace std;
int main() {
int a,b;
char x;
cin>>a>>x>>b;
switch(x) {
case '+':
cout<<a+b<<endl;
break;
case '-':
cout<<a-b<<endl;
break;
case '*':
cout<<a*b<<endl;
break;
case '/':
if(b==0) {
cout<<"除数不能为0!"<<endl;
break;
}
cout<<a/b<<endl;
break;
}
return 0;
}
23、(本题15分)无名是一个特工,在传递情报的时候需要将数字加密成英文字符。加密法则是这样的:
如果是奇数就和 26取余,然后将数字转换成字符'A'加上取余的结果,如果是偶数就和 26 取余,将偶数转换成字符'a'加上取余的结果。
无名要传递的情报是 1024,请帮他进行加密,将加密结果输出。(本题共15分)
参考程序:
#include <iostream>
#include <string>
using namespace std;
int main() {
int s=1024;
char x;
if(s%2==1) {
x='A'+s%26;
} else if(s%2==0) {
x='a'+s%26;
}
cout<<x<<endl;
return 0;
}
24、(本题20分)已知三角形三边长 a=2,b=3,c=4,判断能否构成三角形,已知只有当任意两条边之和大于第三边才可以构成三角形。可以构成的话就输出 YES,否则输出 NO。(本题共20分)
参考程序:
#include <iostream>
using namespace std;
int main() {
int a=2,b=3,c=4;
if(a+b>c && a+c>b && b+c>a) {
cout<<"YES"<<endl;
} else {
cout<<"NO"<<endl;
}
return 0;
}