最好用电脑,谷歌浏览器做题; 页面打开不要超过1天,不然就失效了。

2023012C语言2级


1.单选题

1.以下不可以做为C++变量的是()。


A.FiveStar

B.fiveStar

C.5Star

D.Star5

2.在C++中,与 for(int i = 10; i < 20; i +=2) cout << i; 输出结果相同的是()。


A.for(int i = 10; i < 19; i +=2) cout << i;

B.for(int i = 11; i < 19; i +=2) cout << i;

C.for(int i = 10; i < 21; i +=2) cout << i;

D.以上均不对

3.以下C++代码实现从⼩到⼤的顺序输出能整除N的数(N的因⼦),例如N=18时输出1 2 3 6 9 18,横线处应填⼊()。


A.int i = 0; i < N; i++

B.int i = 1; i < N; i++

C.int i = 0; i < N+1; i++

D.int i = 1; i < N+1; i++

4.下⾯C++代码⽤于判断输⼊的整数是否为对称数,如1221、12321是对称数,但123、972不是对称数。下⾯对该题对应代码的说法,正确的是()。


A.代码没有语法错误,如果N为对称数,第8⾏将能正确输出。

B.代码没有语法错误,但如果N为负数,将导致死循环。

C.代码存在语法错误,程序不能被执⾏。

D.代码没有语法错误,但不能达到预期⽬标,因为循环结束N总为0。

5.下⾯C++代码⽤于判断N(⼤于等于2的正整数)是否为质数(素数)。下⾯对如下代码的说法,正确的是()。


A.代码能正确判断N是否为质数。

B.代码总是不能判断N是否质数。

C.删除第5⾏ break ,将能正确判断N是否质数。

D.代码存在漏洞,边界存在问题,应将第2⾏和第7⾏的 N / 2 改为 N / 2 + 1 。

6.下⾯C++代码执⾏后的输出是()。


A.2#3#0

B.1#2#0

C.1#0#

D.2#3#

7.下⾯C++代码执⾏后的输出是()。


A.0

B.8#8

C.4

D.4#4

8.下⾯C++代码执⾏后的输出是()。


A.100

B.95

C.55

D.0

9.下⾯C++代码执⾏后的输出是()。


A.1

B.1,3

C.15,17

D.1,10,12

10.下⾯C++代码执⾏后的输出是()。


A.5

B.10

C.20

D.30

11.以下C++代码⽤于输出1-100(含)的整数平⽅数(完全平⽅数),如16是4的平⽅,横线处应填写()。


A.int(sqrt(i)) * int(sqrt(i)) = i

B.int(sqrt(i))   == sqrt(i)

C.int(sqrt(i)) * int(sqrt(i)) == i

D.int(sqrt(i))   = sqrt(i)

12.下⾯的C++代码⽤于实现如下左图所⽰的效果,应在以下右图C++代码中填⼊()。
   


A.与第8⾏下⾯填⼊⼀⾏: cout << nowNum;

B.与第2⾏下⾯填⼊⼀⾏: cout << endl;

C.与第7⾏下⾯填⼊⼀⾏: cout << nowNum;

D.与第9⾏下⾯填⼊⼀⾏: cout << endl;

13.某公司新出了⼀款⽆⼈驾驶的⼩汽车,通过声控智能驾驶系统,乘客只要告诉汽车⽬的地,车⼦就能⾃动
选择⼀条优化路线,告诉乘客后驶达那⾥。请问下⾯哪项不是驾驶系统完成选路所必须的。( )


A.麦克风

B.扬声器

C.油量表

D.传感器

14.现代计算机是指电⼦计算机,它所基于的是()体系结构。


A.艾伦·图灵

B.冯·诺依曼

C.阿塔纳索夫

D.埃克特-莫克利

15.输⼊⼀个正整数N,想找出它所有相邻的因数对,⽐如,输⼊12,因数对有(1,2)、(2,3)、(3,4)。下⾯哪段代
码找不到所有的因数对?( )


A.for(i=1;i 
 

2.判断题

1.C++表达式 -7/2 的值为整数-3。  (  )


A.正确

B.错误
 

2.C++表达式 2*int('9')*2 的值为36。( )


A.正确

B.错误
 

3.C++表达式 3+2 && 5-5 的值为false。(  )


A.正确

B.错误
 

4.在C++代码中,执⾏ srand(0) 后连续两次执⾏ rand() 的结果相等。  ( )


A.正确

B.错误
 

5.C++代码中 while(1){...} 的判断条件不是逻辑值,将导致语法错误。 ( )


A.正确

B.错误

6.执⾏以下C++代码后将输出0。 (  )


A.正确

B.错误

7.在C++代码中,运算符只能处理相同的数据类型,不同类型之间必须转换为相同的数据类型。 ( )


A.正确

B.错误

8.在C++代码中,虽然变量都有数据类型,但同⼀个变量也可以先后⽤不同类型的值赋值。 ( )


A.正确

B.错误

9.⼩杨最近在准备考GESP,他⽤的Dev C++来练习和运⾏程序,所以Dev C++也是⼀个⼩型操作系统。 ( )


A.正确

B.错误

10.任何⼀个 while 循环都可以转化为等价的 for 循环( ) 


A.正确

B.错误
 
 

3.编程题

1.⼩杨做题
 
为了准备考试,⼩杨每天都要做题。第 1 天,⼩杨做了a道题;第 2 天,⼩杨做了b道题;从第 3 天起,⼩杨每天做的题⽬数量是前两天的总和。
此外,⼩杨还规定,当⾃⼰某⼀天做了⼤于或等于 
m题时,接下来的所有⽇⼦⾥,他就再也不做题了。
请问,到了第N天,⼩杨总共做了多少题呢?
输入描述
 
总共 4 ⾏。第⼀⾏⼀个整数a ,第⼆⾏⼀个整数b ,第三⾏⼀个整数m,第四⾏⼀个整数N 。
保证 0<=a,b<=10; a,b 
输出描述
 
⼀⾏⼀个整数,表⽰⼩杨N天⾥总共做了多少题⽬。
 
样例输入 1
1
2
10

样例输出 1
19
 
样例解释 1
⼩杨第⼀天做 1题,第⼆天做 2 题,第三天做1+2=3题,第四天做2+3=5题,第五天做3+5=8 题。因此他总共做了1+2+3+5+8=19题。
样例输入 2
1
1
5

样例输出 2
12
样例解释 2
 
⼩杨前 5 天分别做了1,1,2,3,5题,由于第 5 天⼩杨做了 5题,⽽m=5,于是⼩杨从此以后不再做题。因此⼩杨
总共做了1+1+2+3+5=12题。
 





2.⼩杨的 H 字矩阵
 
⼩杨想要构造⼀个NXN的 H 字矩阵(N为奇数),具体来说,这个矩阵共有N⾏,每⾏N个字符,其中最左
列、最右列都是 | ,⽽中间⼀⾏(即第(N+1)/2⾏)的第2~N-1个字符都是 -,其余所有字符都是半角⼩写字母 
a 。例如,⼀个N=5的 H 字矩阵如下:
|aaa|
|aaa|
|---|
|aaa|
|aaa|
请你帮⼩杨根据给定的N打印出对应的“H 字矩阵”。
输入描述
 ⼀⾏⼀个整数N (5<=N<=49,保证N为奇数)。
输出描述
 
输出对应的“H 字矩阵”。
请严格按格式要求输出,不要擅⾃添加任何空格、标点、空⾏等任何符号。你应该恰好输出N⾏,每⾏除了换⾏符外恰好包含N个字符,这些字符要么是 - ,要么是 | ,要么是 a 。你的输出必须和标准答案完全⼀致才能得分,请在提交前仔细检查。
 
样例输入 1 
5
 
样例输出 1
|aaa|
|aaa|
|---|
|aaa|
|aaa|
样例输入 2
7
样例输出 2
|aaaaa|
|aaaaa|
|aaaaa|
|-----|
|aaaaa|
|aaaaa|
|aaaaa|







`

1.单选题
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
2.判断题
1 2 3 4 5
6 7 8 9 10
3.编程题
1 2