CCF编程能力等级认证GESP—C++2级—样题1

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

1、人们在使用计算机时所提到的 Windows 通常指的是(\A)。

A. 操作系统
B. 多人游戏
C. 上市公司
D. 家居用具

2、万维网 WWW 中存储了海量的数据资源,这里用于传输控制的协议是( )。

A. URL
B. SMTP
C. HTTP
D. HTML

3、下列关于 C++语言的叙述,不正确的是( )。

A. 变量都有类型
B. 常量都有类型
C. 常量 1.0 的类型为 double
D. 常量'1'的类型为 int

4、不可以作为 C++标识符的是( )。

A. 0a0b
B. _a_b
C. _0ab
D. a0b0

5、以下语句定义的变量占用 1 字节内存的是( )。

A. int a = 1;
B. int b = 'b';
C. bool c = true;
D. double d = 1.0;

6、如果 a 是已定义的 int 类型变量,以下 C++语言的语句不能通过编译的是( )。

A. a = 3.0;
B. int a = 3;
C. a = 3;
D. a = '3';

7、下列不是 C++语言的运算符的是( )。

A. >=
B. <=
C. ==
D. =>

8、如果用三个 int 类型的变量 a、b 和 h 分别表达梯形的上底、下底和高的长度,则下列哪个表达式可以用来计算梯形的面积?( )

A. h * (a + b) / 2
B. 0.5 * h * (a + b)
C. 0.5 * (h * a + b)
D. 0.5 * h * a + b

9、已知’A’的 ASCII 码为 65,'1’的 ASCII 码为 49,‘r’的ASCII 码为114,则表达式’A’ + 1 的计算结果为()。

A. 66
B. 'B'
C. 114
D. 'r'

10、如果 a 为 char 类型的变量,且 a 的值为’1’,则执行a = a + 3;之后,a 的值会是( )。

A. 4
B. 13
C. '4'
D. '13'

11、如果 a 和 b 均为 int 类型的变量,下列表达式能够正确判断“a 是b 的倍数”的是( )。

A. a == b * ?
B. a % b = 0
C. a / b * b == a
D. b % a == 0

12、如果 a 为 int 类型的变量,且 a 的值为 1,则下列表达式的值为’3’的是( )。

A. a + 2
B. a + '2'
C. 'a' + 2
D. (char)(a + '2')

13、在下列代码的横线处填写( ),可以使得输出是“20 10”。

#include <iostream>

using namespace std;

int main(){
	int a = 10, b = 20;
	________ // 在此处填入代码
	cout << a << " " << b << endl; 
	return 0;
}
A. (a, b) = (b, a);
B. a = max(a, b); b = min(a, b);
C. a = a + b; b = a - b; a = a - b;
D. tmp = a; a = b; b = tmp;

14、在下列代码的横线处填写( ),可以使得输出是“1357”。

#include <iostream>

using namespace std;

int main(){
	for (int i = 1; i <= 8; ________) // 在此处填入代码
		cout << i; 
	return 0;
}
A. i++
B. i + 2
C. i *= 2
D. i += 2

15、执行以下 C++语言程序后,输出结果是( )。

#include <iostream>

using namespace std;

int main(){
	int sum = 0;
	for (int i = 1; i <= 20; i++) 
		if (20 % i == 0)
			sum += i;
	cout << sum << endl;
	return 0;
}
A. 20
B. 42
C. 22
D. 210

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

1、程序员用 C、C++、Python、Scratch 等编写的程序能在CPU 直接执行( )。

2、计算机系统中存储的基本单位用 B 来表示,它代表的是字节( )。

3、C++语言中,注释虽然很有用,但不能写太多,否则会拖慢程序运行速度。( )

4、C++语言中,循环不能写太多层,因为层数是有限制的。( )

5、5.0 是一个 int 类型常量。( )

6、汉字没有对应的 ASCII 码。( )

7、如果没有 break 语句,有些功能就无法实现了。( )

8、使用 C++语言编写循环时,有可能导致无限循环。( )

9、如果 a 为 int 类型的变量,且表达式(a % 2 == 0)的计算结果为假,说明a的值是奇数。( )

10、表达式 sqrt(9)的计算结果为 3,且结果类型为 int 类型。( )

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

第一题 画正方形

【问题描述】
输入一个正整数n,要求输出一个n行n列的正方形图案(参考样例输入输出)。图案由大写字母组成。其中,第 1 行以大写字母’A’开头,第2 行以大写字母’B’开头,以此类推;在每行中,第 2 列为第 1 列的下一个字母,第3 列为第2 列的下一个字母,以此类推;特别的,规定大写字母’Z’的下一个字母为大写字母’A’。【输入描述】
输入一行,包含一个正整数n。约定 2 ≤ n ≤ 40
【输出描述】
输出符合要求的正方形图案。
【样例输入 1】
3
【样例输出 1】
ABC
BCD
CDE
【样例输入 2】
5
【样例输出 2】
ABCDE
BCDEF
CDEFG
DEFGH
EFGHI

第二题 勾股数

【问题描述】
勾股数是很有趣的数学概念。如果三个正整数a、b、c,满足 a 2 + b 2 = c 2 a^2 + b^2 = c^2 a2+b2=c2,而且1 ≤ a ≤ b ≤ c,我们就将a、b、c组成的三元组(a, b, c)称为勾股数。你能通过编程,数数有多少组勾股数,能够满足c ≤ n吗?
【输入描述】
输入一行,包含一个正整数n。约定 1 ≤ n ≤ 1000。
【输出描述】
输出一行,包含一个整数C,表示有C组满足条件的勾股数。【样例输入 1】
5
【样例输出 1】
1
【样例解释 1】
满足c ≤ 5 的勾股数只有一组,即(3,4,5)。
【样例输入 2】
13
【样例输出 2】
3
【样例解释 2】
满足c ≤ 13 的勾股数有 3 组,即(3,4,5)、(6,8,10)和(5,12,13)。

参考答案

单选题

题号123456789101112131415
答案ACDACBDBACCDCDB

判断题

题号12345678910
答案××××××

编程题1

#include <iostream>

using namespace std;

int main(){
	int n;
	char res, zimu = 'A';
	cin >> n;
	for (int j = 1; j <= n; j++){
		for (int i = 1; i <= n; i++){
			res = zimu + (i + j - 2) % 26;
			cout << res;
		}
		cout << endl;
	}

	return 0;
}

编程题2

#include <iostream>
#include <cmath>
using namespace std;

int main(){
	int n, cnt = 0;
	cin >> n;
	for (int a = 1; a <= n; a++)
		for (int b = a; b <= n; b++) {
			int c2 = a * a + b * b;
			int c = (int)(sqrt(c2) + 0.5);
			if (c > n)break;
			if (c * c == c2)cnt++;
			}
	cout << cnt << endl;
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

青岛少儿编程-王老师

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

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

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

打赏作者

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

抵扣说明:

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

余额充值