C++ 能力测试题(GESP 二/三级)
总分:100 分 建议用时:60 分钟
一、选择题(每题 2 分,共 12 分)
选择正确答案,把字母填在括号里。
int a = 7 / 2;的结果是:( )
A. 3.5 B. 3 C. 4 D. 编译错误- 下列哪一个是合法的 for 循环语句:( )
A.for (i=0; i<5; i++)
B.for int i = 0 to 5
C.for i in range(5)
D.for(i < 5; i++) - 若
int a = 5, b = 10;,则a > b ? a : b;的值是:( )
A. 5 B. 10 C. true D. false - 在函数定义中
int add(int x, int y)的int表示:( )
A. x 是整数 B. y 是整数 C. 函数返回整数 D. 函数内部变量是整数 - 8 的二进制表示是( )
A. 00001000 B. 1000 C. 11111000 D. 00000111 - 位运算中,表达式
(5 & 3)的结果是( )
A. 1 B. 7 C. 0 D. 8
二、判断题(每题 2 分,共 10 分)
写 “T” 或 “F”。
- ( )C++ 的数组下标从1开始。
- ( )函数可以没有返回值。
- ( )
while (true)是死循环。 - ( )
int a = 2.9;中 a 的值是 2。 - ( )一个文件中可以定义多个函数。
三、程序阅读与改错(每题 5 分,共 10 分)
1. 阅读下列程序,写出输出结果:
#include <iostream>
using namespace std;
int main() {
int x = 4;
while (x-- > 0) {
cout << x << " ";
}
return 0;
}
输出为:______
2. 改错题:请指出下面程序的错误,并写出修改后的代码:
#include <iostream>
using namespace std;
int max(int a, int b)
{
if (a > b)
return a
else
return b;
}
四、函数填空题(共 10 分)
填空,使函数功能正确:
// 判断一个数是否为偶数
bool isEven(int x) {
return x % ____ == ____;
}
五、程序设计题(共 50 分)
-
求数组最大值(10 分)
输入一个数组长度 n(n ≤ 100)和 n 个整数,输出其中最大值。 -
判断是否为回文数(10 分)
输入一个整数,判断它是否正着反着都一样,例如:121、1221。 -
成绩等级统计(10 分)
输入若干个成绩(0~100,以 -1 结尾),输出以下各段人数:- 优秀(≥90)
- 良好(80~89)
- 中等(60~79)
- 不及格(<60)
-
字符串反转(10 分)
输入一个不带空格的字符串,输出其反转后的字符串。 -
自定义函数:冒泡排序(10 分)
编写函数void bubbleSort(int a[], int n)对整数数组进行升序排序,并在主函数中调用。