CCF编程能力等级认证GESP—C++1级—20240907

单选题(每题 2 分,共 30 分)

1、据有关资料,山东大学于1972年研制成功DJL-1计算机,并于1973年投入运行,其综合性能居当时全国第三 位。DJL-1计算机运算控制部分所使用的磁心存储元件由磁心颗粒组成,设计存贮周期为2μs(微秒)。那么该磁心 存储元件相当于现代计算机的( )。

A. 内存 
B. 磁盘 
C. CPU 
D. 显示器

正确答案:A

2、C++程序执行出现错误,不太常见的调试手段是( )。

A. 阅读源代码
B. 单步调试
C. 输出执行中间结果 
D. 跟踪汇编码

正确答案:D

3、在C++中,下列表达式错误的是( )。

A. cout << "Hello,GESP!" << endl;
B. cout << 'Hello,GESP!' << endl;
C. cout << """Hello,GESP!""" << endl; 
D. cout << "Hello,GESP!' << endl;

正确答案:D

4、C++表达式10 - 3 * 2的值是( )。

A. 14
B. 4 
C. 1 
D. 0

正确答案:B

5、在C++中,假设N为正整数10,则cout << (N / 3 + N % 3) 将输出( )。

A. 6
B. 4.3 
C. 4 
D. 2

正确答案:C

6、C++语句 printf(“6%2={%d}”, 6%2) 执行后的输出是( )。

A. "6%2={6%2}"
B. 6%2={6%2} 
C. 0=0
D. 6%2={0}

正确答案:D

7、成功执行下面的C++代码,先后从键盘上输入5回车和2回车,输出是( )。

cin >> a;
cin >> b;
cout<<a+b;
A. 将输出整数7
B. 将输出5252之间没有空格
C. 将输出5252之间有空格
D. 执行结果不确定,因为代码段没有显示a和b的数据类型

正确答案:D

8、 下面C++代码执行后输出是( )。

intSum=0;
for(inti=0;i<10;i++) 
	Sum += i;
cout << Sum;
A. 55 
B. 45 
C. 10 
D. 9

正确答案:B

9、下面C++代码执行后输出的是( )。

intN=0;
for(inti=0;i<10;i++) 
	N += 1;
cout << N;
A. 55
B. 45 
C. 10 
D. 9

正确答案:C

10、下面C++代码执行后输出的是( )。

int N = 0; 
for(inti=1;i<10;i+=2){
	if (i % 2 == 1)
	    continue;
	N += 1;
}
cout << N;
A. 5 
B. 4 
C. 2 
D. 0

正确答案:D

11、下面C++代码执行时输入 14+7 后,正确的输出是( )。

int P; 
printf("请输入正整数P: "); 
scanf("%d", &P); 
if(P%3||P%7)
	printf("第5行代码%d, %d", P % 3, P % 7); 
else
	printf("第7行代码%2d", P % 3 && P % 7);
A.5行代码2, 0 
B.5行代码1, 0 
C.7行代码 1 
D.7行代码 0

正确答案:A

12、执行下面C++代码后得到的输出是( )。

int count= 0, i, s;
for(i=0,s=0;i<20;i++,count++) 
	s += i++;
cout<<s<<""<<count;
A. 190 20 
B. 95 10 
C. 90 19 
D. 90 10

正确答案:D

13、下面C++代码拟用于计算整数N的位数,比如对 123 则输出 ,但代码中可能存在bug。下面 有关描述正确的是( )。

int N, N0, rc = 0;
cout << "请输入整数:"; 
cin >> N;
N0 = N; 
while (N){
	rc++;
	N /= 10;
}
printf("%d是%d位整数\n", N, rc); // L11
A. 变量N0占用额外空间,可以去掉
B. 代码对所有整数都能计算出正确位数
C. L11标记的代码行简单修改后可以对正整数给出正确输出 
D. L11标记的代码行的输出格式有误

正确答案:C

14、下面的C++代码用于求连续输入的若干正五位数的百位数之和。例如输入 32488 25731 41232 0 ,则输 出 3个正五位数的百位数之和为13 。有关描述错误的是( )。

int M, Sum = 0, rc = 0;
cout << "请输入正整数:"; 
cin >> M;
while (M){
    M = (M / 100 % 10); // L6
    Sum += M;
    rc++;
    cin >> M;
}
cout << rc << "个正五位数的百位数之和为" << Sum;
A. 执行代码时如果输入 23221 23453 12345 11111 0 ,则最后一行Sum的值是 10 
B. 执行代码时如果输入 2322 2345 1234 1111 0 ,程序也能运行
C. 将代码标记为 L6 那行改为 M = (M % 1000 / 100); ,同样能实现题目要求
D. 将代码标记为 L6 那行改为 M = (M % 100 / 10); ,同样能实现题目要求

正确答案:D

15、如果一个正整数N能够表示为X*(X+1)的形式,这里称它是一个“兄弟数”。例如,输入6,则输出“6是一个兄 弟数”。下面C++代码用来判断N是否为一个“兄弟数”,在横线处应填入的代码可从i)-iv)中选择,则有几个能完成功能?( )。

intN;
cin >> N; 
for(inti=0;i<=N;i++)
	if(___________________)
		cout << N << "是一个兄弟数\n";
i) N==i*(i+1)  ii) N==i*(i-1)  iii) N/(i+1)==i  iv) N/(i-1)==i
A. 1 
B. 2 
C. 3 
D. 4

正确答案:B

判断题(每题 2 分,共 20 分)

1、小杨最近开始学习C++编程,老师说C++是一门面向对象的编程语言,也是一门高级语言。( )

正确答案:正确

2、在C++中,表达式 10/4 和 10%4 的值相同,都是整数2,说明 / 和 % 可以互相替换。( )

正确答案:错误

3、N是C++程序中的整型变量,则语句 scanf(“%d”, &N) 能接收形如正整数、负整数和0输入,但如果输入含 字母或带小数点数,将导致无法执行。 ( )

正确答案:错误

4、下面C++代码能够执行,则将输出45。( )

for(inti=0;i<10;i++) 
	Sum += i;
cout << Sum;

正确答案:错误

5、在C++代码中整型变量X被赋值为20.24,则 cout << (X++, X+1) / 10 执行后输出的是 2.124 。( )

正确答案:错误

6、下面C++代码执行后,最后一次输出是10。( )

for(int i = 1;i < 10;i += 3) 
	cout << i << endl;

正确答案:错误

7、在C++, break 语句通常与if语句配合使用。( )

正确答案:错误

8、在C++代码中,不可以将变量命名为 five-star ,因为变量名中不可以出现 - (减号)符号。( )

正确答案:正确

9、在C++语言中,整型、实数型、字符型、布尔型是不同数据类型,但这四种类型的变量间都可以比较大小。 ()

正确答案:正确

10、C++中,定义变量 int a=5,b=4,c=3 ,则表达式 (a<b<c) 的值为逻辑假。 ( )

正确答案:错误

编程题 (每题 25 分,共 50 分)

小杨购物

【问题描述】
小杨有n元钱用于购物。商品A的单价是a元,商品B的单价是b元。小杨想购买相同数量的商品A和商品B。请你编写程序帮小杨计算出他最多能够购买多少个商品A和商品B。

【输入描述】
第一行包含一个正整数n ,代表小杨用于购物的钱的金额。
第二行包含一个正整数a ,代表商品A的单价。
第三行包含一个正整数b ,代表商品B的单价。
【输出描述】
输出一行,包含一个整数,代表小杨最多能够购买的商品A和商品B的数量。
【样例输入 1】
12
1
2
【样例输出 1】
4
对于样例1,由于需要购买相同数量的两种商品,因此小杨最多能够购买4件商品A和 4件商品B,共花费 4 ∗ 1 + 4 ∗ 2 = 12 4 * 1 + 4 * 2 = 12 41+42=12元,因此,样例1的答案为4。

【样例输入 2】
13
1
2
【样例输出 2】
4
对于样例2,由于需要购买相同数量的两种商品,因此小杨最多能够购买4件商品A和4件商品B,共花费 4 ∗ 1 + 4 ∗ 2 = 12 4 * 1 + 4 *2 = 12 41+42=12元。如果小杨想购买5件商品A和5件商品B,则需花费 5 ∗ 1 + 5 ∗ 2 = 15 5 * 1 + 5 *2 = 15 51+52=15元,超过了小杨的预算13元。因此,样例2的答案为4。

对于全部数据,保证有 1 < = n , a , b < = 1 0 5 1 <= n, a, b <= 10^5 1<=n,a,b<=105

第二题

【问题描述】
小明刚刚学习了如何判断平年和闰年,他想知道两个年份之间(包含起始年份和终止年份)有几个闰年。你能帮帮他吗?
【输入描述】
输入一行,包含两个整数,分别表示起始年份和终止年份。约定年份在1到 2022 之间
【输出描述】
输出一行,包含一个整数,表示闰年的数量。
【样例输入 1】
2018 2022
【样例输出 1】
1
【样例输入 2】
2000 2004
【样例输出 2】
2

  • 16
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青岛少儿编程-王老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值