GESP认证C++二级真题2023年
1. 以下存储器中的数据不会受到附近强磁场干扰的是( )。
A.硬盘
B.U 盘
C.内存
D.光盘
2. 下列流程图,属于计算机的哪种程序结构?( )。
A.顺序结构
B.循环结构
C.分支结构
D.数据结构
3. 下列关于 C++语言的叙述,不正确的是()。
A.double 类型的变量占用内存的大小是浮动的
B.bool 类型的变量占用 1 字节内存
C.int 类型变量的取值范围不是无限的
D.char 类型的变量有 256 种取值
4. 下列关于 C++语言的叙述,不正确的是()。
A.变量定义后,可以使用赋值语句改变它的值
B.变量定义时,必须指定类型
C.变量名必须为合法标识符
D.合法标识符可以以数字开始
5. 以下哪个不是 C++语言的关键字?
A.return
B.max
C.else
D.case
6. 以下哪个不是 C++语言的运算符?
A.\=
B./=
C.-=
D.!=
7. 如果 a 和 b 都是 char 类型的变量,下列哪个语句不符合 C++语法?
A.b = a + 1;
B.b = a + '1';
C.b = 'a'++;
D.b = a++;
8. 如果 a、b、c 和 d 都是 int 类型的变量,则下列哪个表达式能够正确计算它们的平均值?
A. (a + b + c + d) / 4
B. (a + b + c + d) % 4
C. (a + b + c + d) / 4.0
D. (a + b + c + d) % 4.0
9. 如果 a 为 char 类型的变量,且 a 的值为'2',则下列哪条语句执行后,a 的值不会变为'3'?
A.a = a + 1;
B.a + 1;
C.a = 1 + a;
D.++a;
10.如果 a 为 int 类型的变量,且 a 的值为 9,则执行 a -= 3;之后,a 的值会是()。
A.3
B.6
C.9
D.12
11.如果 a 和 b 均为 int 类型的变量,下列表达式能正确判断“a 等于 0 或 b 等于 0”的是()
A.(!a) || (!b)
B.(a == b == 0)
C. (a == 0) && (b == 0)
D.(a == 0) - (b == 0) == 0
12.如果 a 为 char 类型的变量,下列哪个表达式可以正确判断“a 是小写字母”?
A.a <= a <= z
B.a - 'a' <= 'z' - 'a'
C.'a' <= a <= 'z'
D.a >= 'a' && a <= 'z'
13.在下列代码的横线处填写(),使得输出是`50 10`。
A.a -= b
B.a += b
C.a = b - a
D.a = b
14.在下列代码的横线处填写(),可以使得输出是`5`。
A.ch < '5'
B.ch >= 5
C.ch >= '4'
D.ch % 2 == 1
15.执行以下 C++语言程序后,输出结果是()。
A.false
B.true
C.0
D.1
1. 明明和笑笑在“小庙会”上分别抽到一个 4GB 和 4096MB 的 U 盘,容量大的盘是笑笑的( )。
A、正确
B、错误
2. IPv4 的地址通常用“点分十进制”的表示形式,形如(a.b.c.d),其中a、b、c、d 都是 1~255 之间的十进制整数( )。
A、正确
B、错误
3. 在 C++语言中,一个程序不能有多个 main 函数。
A、正确
B、错误
4. 在 C++语言中,标识符中可以有下划线_,但不能以下划线_开头。
A、正确
B、错误
5. 如果 a 是 int 类型的变量,而且值为 1,则表达式'a'的值为'1'。
A、正确
B、错误
6. 在 if ... else 语句中,else 子句可以嵌套 if ... else 语句,但 if 子句不可以,因为会造成二义性。
A、正确
B、错误
7. while 语句的循环体至少会执行一次
A、正确
B、错误
8. C++语言中>=是运算符,但=>不是。
A、正确
B、错误
9. 如果 a 为 char 类型的变量,且取值为小写字母,则执行语句 a = a - 'a' + 'A';后,a 的值会变为与原值对应的大写字母。
A、正确
B、错误
10.表达式(10.0 / 2)的计算结果为 5.0,且结果类型为 double。
A、正确
B、错误
1. 高级语言编写的程序需要经过以下( )操作,可以生成在计算机上运行的可执行代码。
A. 编辑
B. 保存
C. 调试
D. 编译
2. 能够实现下面流程图功能的伪代码是( )
A. if 条件判断 then 语句块
B. if 条件判断 then 什么也不做 else 语句块
C. while 条件判断 do 语句块
D. while not 条件判断 do 语句块
3. 下列关于 C++语言的叙述,正确的是( )。
A. char 类型变量不能赋值给 int 类型的变量。
B. 两个 int 类型变量相乘,计算结果还是 int 类型。
C. 计算两个 int 类型变量相乘时,如果乘积超出了 int 类型的取值范围,程序会报错崩溃。
D. 计算两个 double 类型变量相除时,如果除数的值为 0.0,程序会报错崩溃。
4. 下列关于 C++语言的叙述,不正确的是( )。
A. if 语句中的判断条件必须用小括号‘(’和‘)’括起来。
B. for 语句中两个‘;’之间的循环条件可以省略,表示循环继续执行的条件一直满足。
C. 循环体包含多条语句时,可以用缩进消除二义性。
D. 除了“先乘除、后加减”,还有很多运算符优先级。
5. 以下哪个是 C++语言的关键字?( )
A. main
B. max
C. double
D. sqrt
6. 以下哪个不是 C++语言的运算符?( )
A. >=
B. /=
C. ||
D. <>
7. 如果 a 为 int 类型的变量,b 为 char 类型的变量,则下列哪个语句不符合C++语法?( )
A. a = a + 1.0;
B. a = (int)(b - '0');
C. b = (char)(a + '0');
D. (int)b = a;
8. 如果用两个 int 类型的变量 a 和 b 分别表达平行四边形的两条边长,用 int类型的变量 h 表达 a 边对应的高,则下列哪个表达式不能用来计算 b 边对应的高?( )
A. a / b * (0.0 + h)
B. (0.0 + a * h) / b
C. a * h / (b + 0.0)
D. (a + 0.0) * h / b
9. 以下哪个循环语句会无限次执行?( )
A. for (int a = 0; a; a++) ;
B. for (bool b = false; b <= true; b++) ;
C. for (char c = 'A'; c < 'z'; c++) ;
D. for (double d = 0.0; d < 10.0; d += 0.001) ;
10. 如果 a 为 char 类型的变量,且 a 的值为'C'(已知'C'的 ASCII 码为 67),则执行 cout << (a + 2);会输出( )。
A. E
B. C+2
C. C2
D. 69
11. 如果 a 和 b 均为 int 类型的变量,下列表达式能正确判断“a 等于 1 且 b等于 1”的是( )。
A. (a == b) && (b == 1)
B. (a && b)
C. (a == b == 1)
D. (a * b == 1)
12. 如果 a 为 char 类型的变量,下列哪个表达式可以正确判断“a 是数字”?( )
A. '0' <= a && a <= '9
B. '1' <= a && a <= '0'
C. '0' <= a <= '9'
D. '1' <= a <= '0'
13. 在下列代码的横线处填写( ),使得输出是 9。
A. (a + b)
B. (a + b - '0')
C. (char)(a + b)
D. (char)(a + b - '0')
14. 在下列代码的横线处填写( ),可以使得输出是 42。
A. i % 3 == 0
B. 20 % i == 0
C. i <= 8
D. i >= 18
15. 执行以下 C++语言程序后,输出结果是( )。
A. A
B. B
C. C
D. D
1. 诞生于 1986 年的中华学习机 CEC-I 入选了 2021 年的 CCF 计算机历史记忆(一类),它的内存只有 64KB。当时的汉字编码字符集 GB2312 中共有 6763 个汉字,假如每个汉字用 2 个字节编码,将整个 GB2312 汉字字符集都放入 CEC-I 的内存,也只占用了不超过 1/5 的内存空间。
A、正确
B、错误
2. 域名是由一串用点分隔的名字来标识互联网上一个计算机或计算机组的名称,CCF 编程能力等级认证官方网站的域名是 gesp.ccf.org.cn,其中顶级域名是gesp。
A、正确
B、错误
3. 在使用 C++语言编写程序时,不能使用 sqrt、abs 等数学函数,包含<cmath>或<math.h>头文件后就能够使用了。
A、正确
B、错误
4. 在 C++语言中,标识符中可以有下划线‘_’。同时,‘_’也是 C++语言的运算符。
A、正确
B、错误
5. 如果 a 是 double 类型的变量,而且值为 3.5,则表达式 a * 10 的计算结果为 35,且结果类型为 int。
A、正确
B、错误
6. 在 if 语句中,如果条件成立时需要执行多条语句,可以使用大括号‘{’和‘}’将这些语句括起来。
A、正确
B、错误
7. 循环语句的循环体有可能无限制地执行下去
A、正确
B、错误
8. ++和==都是 C++语言的运算符,但+=不是。
A、正确
B、错误
9. 如果 a 为 char 类型的变量,且取值为大写字母'F',则执行语句 a = a + 1;后,a 的值会变为大写字母'G'。
A、正确
B、错误
10. 表达式 sqrt(9.0)的计算结果为 3,且结果类型为 int
A、正确
B、错误
第 1 题 我国第一台大型通用电子计算机使用的逻辑部件是( )。
A. 集成电路
B. 大规模集成电路
C. 晶体管
D. 电子管
第 2 题 下列流程图的输出结果是( )?
A. 5 12
B. 12 5
C. 5 5
D. 12 12
第 3 题 如果要找出整数 a 、 b 中较大一个,通常要用下面哪种程序结构?( )。
A. 顺序结构
B. 循环结构
C. 分支结构
D. 跳转结构
第 4 题 以下不是C++关键字的是( )。
A. continue
B. cout
C. break
D. goto
第 5 题 C++表达式 int(-123.123 / 10) 的值是( )。
A. -124
B. -123
C. -13
D. -12
第 6 题 以下C++代码实现从大到小的顺序输出 N 的所有因子。例如,输入 N = 18 时输出 18 9 6 3 2 1 ,横线处应填入( )。
A. ; ;
B. int i = 1; i < N; i++
C. int i = N; i > 0; i--
D. int i = N; i > 1; i--
第 7 题 如下图所示,输出 N 行 N 列的矩阵,对角线为1,横线处应填入( )。
A. i = j
B. j != j
C. i >= j
D. i == j
第 8 题 下面C++代码用于判断 N 是否为质数(素数),约定输入 N 为大于等于2的正整数,请在横线处填入合适的代码( )。
A. break
B. continue
C. exit
D. return
第 9 题 下面C++代码执行后的输出是( )
A. 1#0
B. 1#
C. 1#1#1#1#1#1
D. 1#1#1#1#1#1#0
第 10 题 下面C++代码执行后的输出是( )。
A. 16
B. 28
C. 35
D. 36
第 11 题 下面C++代码执行后的输出是( )。
A. 1
B. 3
C. 15
D. 没有输出
第 12 题 下面C++代码执行后的输出是( )。
A. 1
B. 3,9,11
C. 3,6,9,10
D. 1,5,7,11,13,15
第 13 题 下面图形每一行从字母A开始,以ABC方式重复。行数为输入的整数。请在C++代码段横线处填入合适代码( )。
A. 'A' + j / 3
B. (char)('A' + j / 3)
C. 'A' + j % 3
D. (char)('A' + j % 3)
第 14 题 输入行数,约定 1<=lineCout<=9,输出以下图形。应在C++代码横线处填入( )。
A. (lineCount - i - 1) * 2
B. (lineCount - i) * 2
C. lineCount - i - 1
D. lineCount - i
第 15 题 某班级人数不知,连续输入成绩直到输入负数停止,输入结束后求出平均成绩。在以下C++代码横线处应填入是( )。
A. true
B. false
C. True
D. False
第 1 题 我们常说的互联网(Internet)是一个覆盖全球的广域网络,它不属于任何一个国家。
A、正确
B、错误
第 2 题 神威·太湖之光超级计算机是中国自主研制的超级计算机,在全球超级计算机TOP500排行榜中多次荣膺榜首。
A、正确
B、错误
第 3 题 C++表达式 7.8 / 2 的值为 3.9 ,类型为 float。
A、正确
B、错误
第 4 题 C++表达式 (2 * 3) || (2 + 5) 的值为 67 。
A、正确
B、错误
第 5 题 如果 m 和 n 为 int 类型变量,则执行 for (m = 0, n = 1; n < 9; ) n = ((m = 3 * n, m + 1), m -1); 之后 n 的值为偶数
A、正确
B、错误
第 6 题 如果 a 为 int 类型的变量,则表达式 (a >= 5 && a <= 10) 与 (5 <= a <= 10) 的值总是相同的。
A、正确
B、错误
第 7 题 下面C++代码执行后的输出为 10 。
A、正确
B、错误
第 8 题 执行以下C++代码后的输出为 0 。
A、正确
B、错误
第 9 题 执行以下C++代码后的输出为 30 。
A、正确
B、错误
第 10 题 C++是一种高级程序设计语言。
A、正确
B、错误
第 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)) == int(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<N;i++) if(!(N%i) && !(N%(i+1))) printf("(%d,%d)\n", i, i+1);
B. for(i=2;i<N;i++) if(!(N%i) && !(N%(i+1))) printf("(%d,%d)\n", i, i+1);
C. for(i=2;i<N/2;i++) if(!(N%(i-1)) && !(N%i)) printf("(%d,%d)\n", i-1, i);
D. for(i=1;i<N/2;i++) if(!(N%i) && !(N%(i+1))) printf("(%d,%d)\n", i, i+1);
第 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、错误
关闭
更多问卷
复制此问卷