GESP C++ 二级样题卷

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

1. 人们在使用计算机时所提到的 Windows 通常指的是( )。
A. 操作系统
B. 多人游戏
C. 上市公司
D. 家居用具
答案:A
解释:略
2. 万维网 WWW 中存储了海量的数据资源,这里用于传输控制的协议是( )。
A. URL
B. SMTP
C. HTTP
D. HTML
答案:C
解释:略
3. 下列关于 C++语言的叙述,不正确的是()。
A. 变量都有类型
B. 常量都有类型
C. 常量 1.0 的类型为 double
D. 常量'1'的类型为 int
答案:C
解释:常量'1'的类型为char
4. 不可以作为 C++标识符的是()。
A. 0a0b
B. _a_b
C. _0ab
D. a0b0
答案:A
解释:标识符又称变量名,可以由字母、数字和下划线,注意首字符不能是数字
5. 以下语句定义的变量占用 1 字节内存的是()。
A. int a = 1;
B. int b = 'b';
C. bool c = true;
D. double d = 1.0;
答案:B
解释:

6. 如果 a 是已定义的 int 类型变量,以下 C++语言的语句不能通过编译的是 (  )。
A. a = 3.0;
B. int a = 3;
C. a = 3;
D. a = '3';
答案:D
解释:'3'是char类型,但是题目告诉我们a 是已定义的 int 类型变量,所以选项D不能通过编译
7. 下列不是 C++语言的运算符的是()。
A. >=
B. <=
C. ==
D. =>
答案: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
答案:B
解释:选项A和选项B的区别,如果a=3,b=2,h=7,那么面积=(3+2)*7/2=17.5,选项A答案是17,选项B答案是17.5
9. 已知'A'的 ASCII 码为 65,'1'的 ASCII 码为 49,'r'的 ASCII 码为 114,则表达式'A' + 1 的计算结果为()。
A. 66
B. 'B'
C. 114
D. 'r'
答案:B
解释:'A' + 1=65+1=66
10. 如果 a 为 char 类型的变量,且 a 的值为'1',则执行 a = a + 3;之后,a 的值
会是()。
A. 4
B. 13
C. '4'
D. '13'
答案:C
解释:因为a 为 char 类型,所以a = a + 3,a 的值是'4'
11. 如果 a 和 b 均为 int 类型的变量,下列表达式能够正确判断“a 是 b 的倍数” 的是()
A. a == b * ?
B. a % b = 0
C. a / b * b == a
D. b % a == 0
答案:C
解释:选项A、B的格式有问题,因为a 是 b 的倍数,所以D错。
12. 如果 a 为 int 类型的变量,且 a 的值为 1,则下列表达式的值为'3'的是()。
A. a + 2
B. a + '2'
C. 'a' + 2
D. (char)(a + '2')
答案:D
解释:值为'3',表示这个值是char类型,只有选项D将值转化为char类型
13. 在下列代码的横线处填写(),可以使得输出是“20 10”。
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;
答案:D
解释:从输入、输出来看,输出对输入的两个值进行了互换,所以选择D
14. 在下列代码的横线处填写(),可以使得输出是“1357”。

A. i++
B. i + 2
C. i *= 2
D. i += 2
答案:D
解释:输出是“1357”,1、3、5、7之间都是相差2,i=i+2
15. 执行以下 C++语言程序后,输出结果是()。
A. 20
B. 42
C. 22
D. 210
答案:B
解释:i是20的约数,所以i是1,20,2,10,4,5,所以sum=1+2+4+5+10+20=42

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

1. 程序员用 C、C++、Python、Scratch 等编写的程序能在 CPU 直接执行( )。
答案:错误
解释:C、C++需要编译器编译,Python、Scratch需要解释器解释,才能在 CPU直接执行
2. 计算机系统中存储的基本单位用 B 来表示,它代表的是字节 ( )。
答案:正确
解释:略
3. C++语言中,注释虽然很有用,但不能写太多,否则会拖慢程序运行速度。( )
答案:错误
解释:不会拖慢程序运行速度
4. C++语言中,循环不能写太多层,因为层数是有限制的。( )
答案:错误
解释:循环没有层数的限制
5. 5.0 是一个 int 类型常量。( )
答案:错误
解释:5.0 是float类型
6. 汉字没有对应的 ASCII 码。( )
答案:正确
解释:略
7. 如果没有 break 语句,有些功能就无法实现了。( )
答案:错误
解释:循环语句,不用break也能实现效果
8. 使用 C++语言编写循环时,有可能导致无限循环。( )
答案:正确
解释:例如while(true)
9. 如果 a 为 int 类型的变量,且表达式(a % 2 == 0)的计算结果为假,说明 a 的 值是奇数。( )
答案:正确
解释:略
10. 表达式 sqrt(9)的计算结果为 3,且结果类型为 int 类型。( )
答案:错误
解释:sqrt(9)也就是9的平方根,结果是3.0,所以是float类型

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

1. 画正方形
【问题描述】
输入一个正整数 ? ,要求输出一个 ? ? 列的正方形图案(参考样例输入输出)。
图案由大写字母组成。其中,第 1 行以大写字母'A'开头,第 2 行以大写字母'B'开
头,以此类推;在每行中,第 2 列为第 1 列的下一个字母,第 3 列为第 2 列的下一
个字母,以此类推;特别的,规定大写字母'Z'的下一个字母为大写字母'A'。
【输入描述】
输入一行,包含一个正整数 ? 。约定 2 ≤ ? ≤ 40
【输出描述】
输出符合要求的正方形图案。
【样例输入 1】
3
【样例输出 1】
ABC
BCD
CDE
【样例输入 2】
5
【样例输出 2】
ABCDE
BCDEF
CDEFG
DEFGH
EFGHI
【参考程序】
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++)
cout << (char)('A' + (i + j) % 26);
cout << endl;
}
return 0;
}
2. 勾股数
【问题描述】
勾股数是很有趣的数学概念。如果三个正整数 ? ? ? ,满足 ? 2 + ? 2 = ? 2 ,而且
1 ≤ ? ≤ ? ≤ ? ,我们就将 ? ? ? 组成的三元组 (?, ?, ?) 称为勾股数。你能通过编
程,数数有多少组勾股数,能够满足 ? ≤ ? 吗?
【输入描述】
输入一行,包含一个正整数 ? 。约定 1 ≤ ? ≤ 1000
【输出描述】
输出一行,包含一个整数 ? ,表示有 ? 组满足条件的勾股数。
【样例输入 1】
5
【样例输出 1】
1
【样例解释 1】
满足 ? ≤ 5 的勾股数只有一组,即 (3,4,5)
【样例输入 2】
13
【样例输出 2】
3
【样例解释 2】 满足 ? ≤ 13 的勾股数有 3 组,即 (3,4,5) (6,8,10) (5,12,13)
【参考代码】
#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;
}

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值