GESP认证C++编程真题解析 | 202412 一级
附上汇总帖:GESP认证C++编程真题解析 | 汇总
单选题
第1题
2024年10月8日 ,诺贝尔物理学奖“意外地”颁给了两位计算机科学家约翰·霍普菲尔德(John J. Hopfield)和杰弗⾥·⾟顿(Geoffrey E. Hinton)。这两位科学家的主要研究方向是( )。
A. 天体物理
B. 流体力学
C. 人⼯智能
D. 量子理论
【答案】:C
【解析】
2024年诺贝尔物理学奖颁给约翰·霍普菲尔德和杰弗里·辛顿,以表彰他们在使用人工神经网络实现机器学习方面奠基性的发现和发明,他们的研究属于人工智能范畴。
第2题
下列软件中是操作系统的是( )。
A. 高德地图
B. 腾讯会议
C. 纯⾎鸿蒙
D. 金山永中
【答案】:C
【解析】
鸿蒙是华为公司开发的一种操作系统。
第3题
有关下列C++代码的说法,正确的是( )。
printf("Hello,GESP!");
A. 配对双引号内,不可以有汉字
B. 配对双引号可以相应改变为英文单引号而输出效果不变
C. 配对双引号可以相应改变为三个连续英文单引号而输出效果不变
D. 配对双引号可以相应改变为三个连续英文双引号而输出效果不变
【答案】:D
【解析】
在C++中,两个字符串字面量直接放在一起,编译器会自动将它们连接成一个字符串字面量。"""Hello,GESP!"""就是"Hello,GESP!"左右两边各连一个空串。
第4题
C++表达式 12 - 3 * 2 && 2 的值是( )。
A. 0
B. 1
C. 6
D. 9
【答案】:B
【解析】
运运算符优先级从高到低是:* 、-、&&。先计算乘法得到6,再计算减法12 - 6=6,6&&2的结果是bool值,为1。
第5题
在C++中,假设N为正整数2 ,则 cout << (N / 3 + N % 3) 将输出( )。
A. 0
B. 2
C. 3
D. 4
【答案】:B
【解析】
运算符优先级从高到低是:* 与 %、+。N / 3 得到0,N % 3得到2,0 + 2 = 2。
第6题
C++语句 cout << 7%3 << ' '<< "7%3"<< ' ' << "7%3={7%3}" 执行后的输出是( )。
A. 1 1 1=1
B. 1 7%3 1=1
C. 1 7%3 7%3= 1
D. 1
【答案】:D
【解析】
第一个7%3计算结果为1,后面输出的均为字符与字符串字面量。
第7题
下面C++代码执行后,求出几天后星期几。如果星期日则输出“星期天”否则输出形如“星期1”。横线上应填入的代码是( )。
int N, nowDay, afterDays;
cout << "今天星期几? " <<endl;
cin >> nowDay;
cout << "求几天后星期几? "<< endl;
cin >>afterDays;
N = nowDay+afterDays;
if(_____________________)
printf("星期天");
else
printf("星期%d", N%7);
A. N % 7 != 0
B. N % 7 == 0
C. N == 0
D. N % 7
【答案】:B
【解析】
计算出的天数如果是7的倍数,则是星期天,否则除以7的余数是几就是星期几。
第8题
下面C++代码执行后输出是( )。
int N=0,i;
for (i = 1; i < 10; i++)
N += 1;
cout << (N + i)
A. 54
B. 20
C. 19
D. 18
【答案】:C
【解析】
循环开始时 i=1,步长为1,i=10时循环结束,故循环进行9次,n 的值变为9,结束后 i 的值为10。
第9题
下面C++代码执行后输出的是( )。
int tnt = 0;
for (i = 0; i < 100; i++)
tnt += i % 10;
cout << tnt
A. 4950
B. 5050
C. 450
D. 100
【答案】:C
【解析】
循环开始时 i=0,步长为1,i=100时循环结束,故循环进行99次,n的值为小于100的非负整数除以10的余数之和,等于(1+2+.....+9) * 10=450。
第10题
下面C++代码执行后输出的是( )。
int N=0,i;
int tnt = 0;
for (i = 5; i < 100; i+=5){
if (i % 2 == 0)
continue;
tnt += 1;
if (i >= 50)
break;
}
cout << tnt;
A. 10
B. 9
C. 6
D. 5
【答案】:C
【解析】
循环步长为5,i 的个位数为5或0,个位数为0时不会执行tnt +=1,也不会执行 if 判断,故 i=5,15,25,35,45,55时,tnt += 1,tnt值为6。
第11题
下面的程序用于判断输入的整数N是否为能被3整除的偶数,横线处应填写代码是( )。
int N;
cin >> N;
if(_____________)
cout << "能被3整除的偶数" << endl;
else
cout << "其他情形" << endl;
cout << endl
A. (N%2)&&(N%3)
B. (N%2==0)&&(N%3)
C. (N%2)&&(N%3==0)
D. (N%2==0)&&(N%3==0)
【答案】:D
【解析】
既能被2整除又能被3整除,条件表达式为(N % 2 == 0) && (N % 3 == 0)。
第12题
下面C++代码执行后的输出是( )。
int cnt;
cnt = 0;
for(int i = 1; i < 10; i++)
cnt += i++;
cout << cnt;
cout << endl;
A. 54
B. 45
C. 25
D. 10
【答案】:C
【解析】
变量变化过程如下:
cnt += 1,更新表达式执行后 i=3
cnt += 3,更新表达式执行后 i=5
cnt += 5,更新表达式执行后 i=7
cnt += 7,更新表达式执行后 i=9
cnt += 9,更新表达式执行后 i =11
最终cnt 值为25。
第13题
int类型变量a的值是一个正方形的边长,如下图中的正方形的四条边长都为4 ,则下列哪个语句执行后能够使得正方形的周长(四条边长的和)增加4?( )。
+ + + + +
+ +
+ +
+ +
+ + + + +
A. a*4;
B. a+4;
C. a+1;
D. ++a;
【答案】:D
【解析】
正方形边长增加1即可。
第14题
C++表达式 (6 > 2) * 2 的值是( )。
A. 1
B. 2
C. true
D. truetrue
【答案】:B
【解析】
6>2 的结果为bool值1,1 * 2 = 2。
第15题
下面C++代码用于判断输入的整数是否为位增数,即从首位到个位逐渐增大,是则输出1。如123是一个位增数。下面横线处应填入的是( )。
int N;
int n1,n2;
cin >> N;
____________________;
while(N){
n1 = N % 10;
if(n1 >= n2){
cout << 0;
return 1;
}
n2 = n1, N /=10;
}
cout << 1;
cout << endl;
return 0;
A. n2 = N%10
B. N /= 10
C. n2 = N/10, N %= 10
D. n2 = N%10, N /= 10
【答案】:D
【解析】
在while循环中,n2 记录的是“上一个数位”的值。所以横线处 n2 应该取 N 的个位,然后N/=10。
判断题
第1题
在Windows的资源管理器中为已有文件A建立副本的操作是 Ctrl+C ,然后 Ctrl+V。( )
A. 正确
B. 错误
【答案】:A
【解析】
Ctrl + C、Ctrl+V是Windows系统的复制、粘贴快捷键。
第2题
在C++中,表达式 8/3 和 8%3 的值相同。( )
A. 正确
B. 错误
【答案】:A
【解析】
两个表达式值均为2。
第3题
X是C++语言的基本类型变量,则语句 cin>>X, cout <<X 能接收键盘输入并原样输出。( )
A. 正确
B. 错误
【答案】:B
【解析】
若输入内容与X的类型不匹配,则无法原样输出。
第4题
下面C++代码执行后将输出10。( )
int N = 0;
for (int i = 0; i < 10; i++){
continue;
N += 1;
}
cout << N;
A. 正确
B. 错误
【答案】:B
【解析】
因为continue语句,N+=1不会被执行。最后输出0。
第5题
下面C++代码执行后将输出100。( )
int i;
for (i = 0; i <= 100; i++)
continue;
cout << i;
A. 正确
B. 错误
【答案】:B
【解析】
i 的值变为101,i<=100不成立,循环结束。最后输出101。
第6题
下面C++代码被执行时,将执行三次输出(即标记行L2将被执行一次)。( )
for (int i = 0; i < 10; i+=3)
cout << i; //L2
A. 正确
B. 错误
【答案】:B
【解析】
将输出0369,输出执行四次。
第7题
C++语句 cout << (3,2) 执行后,将输出3和2 ,且3和2之间有逗号间隔。( )
A. 正确
B. 错误
【答案】:B
【解析】
逗号表达式的值等于最后一个子表达式的值,输出2。
第8题
在C++代码中,studentName 、 student_name 以及 sStudentName 都是合法的变量名称。( )
A. 正确
B. 错误
【答案】:A
【解析】
变量名只能由大小写字母、数字、下划线组成,且不能以数字开头。本题中的变量名均符合要求。
第9题
在C++中,对浮点变量 float f ,则语句 cin >> f; cout << (f<1); 在输入是 2e-1 时,输出是0。( )
A. 正确
B. 错误
【答案】:B
【解析】
2e-1是科学计数法,值为\(2*10^{-1}=0.2\),f<1成立,输出1。
第10题
在C++的循环体内部,如果 break 和 continue 语句连续在一起,那么作用抵消,可以顺利执行下一次循环。( )
A. 正确
B. 错误
【答案】:B
【解析】
执行break跳出循环,continue不会被执行。
浙公网安备 33010602011771号