佛大附属信奥 在线评测 · 分级学习
登录

GESP C++ 三级 · 2025 年 3 月认证理论卷

登录 后作答才能记录成绩

一、单选题(每题 2 分)

1. Base64 编码将每3字节的输入数据编码为 4 字节的输出数据。如果输入数据长度不是 3 的倍数,会用=号填充。在Base64编码中,如果输入字符串的长度为10字节,编码后的字符串长度是多少( )
2. UTF-8 编码规则如下: 1 字节:0xxxxxxx 2 字节:110xxxxx 10xxxxxx 3 字节:1110xxxx 10xxxxxx 10xxxxxx 4 字节:11110xxx 10xxxxxx 10xxxxxx 10xxxxxx 以下哪个字节序列是合法的 UTF-8 编码( )
3. 在 8 位二进制原码表示中,八进制数 -5 的二进制形式是什么( )
4. 十进制数 111.111 的二进制表示可以是下面的( )。
5. 在C++中,补码的主要作用是()
6. 在C++中,一个8位有符号整数(使用补码表示)的范围是()
7. 在C++中,以下代码的输出是什么() ```cpp int a = -5; unsigned int b = a; cout << b; ```
8. 下列程序的作用是() ```cpp int main() { int decimal = 25; cout << oct << decimal; return 0; } ```
9. 下面程序是将十进制转十六进制,横线处应该填入的是() ```cpp #include <iostream> using namespace std; int main() { int decimal = 255; —————————————————— return 0; } ```
10. 以下代码的说法正确的是什么( ) ```cpp #include <iostream> using namespace std; int main() { int a = 0b1101; int b = 0b1011; cout << (a ^ b); return 0; } ```
11. 下面枚举法查找最大值索引程序中,横线处应该填写的是() ```cpp #include <iostream> using namespace std; int main() { int arr[] = {3, 7, 2, 9, 5}; int maxIndex = 0; for (int i = 1; i < 5; i++) { ———————————————————————————————— { maxIndex = i; } } cout << maxIndex; return 0; } ```
12. 以下代码的功能是将数组中的奇数和偶数分别放在数组的前半部分和后半部分,横线处应该填入的是() ```cpp #include <iostream> using namespace std; int main() { int arr[] = {1, 2, 3, 4, 5}; int left = 0, right = 4; while (left < right) { while (arr[left] % 2 == 1 && left < right) left++; ———————————————————————————————————————————————————— if (left < right) { swap(arr[left], arr[right]); } } for (int i = 0; i < 5; i++) { cout << arr[i] << " "; } return 0; } ```
13. 下面程序最后能够得到HelloC++的是() ```cpp int main() { string str = "HelloWorld"; ___________________ cout << str; return 0; } ```
14. 想要得到字符串world,下面程序横线处应该填入的是() ```cpp #include <iostream> #include <string> using namespace std; int main() { string str = "HelloC++"; _________________ _________________ return 0; } ```
15. 有 n 个正整数,假设一个正整数是美丽数字当且仅当该正整数是 9 的倍数但不是 8 的倍数。下面的程序是编写计算 n 个正整数中美丽数字的数量,横线处应该填入的是() ```cpp for (int i = 1; i <= n; i++) { cin >> a; __________________________ cnt++; } ```

二、判断题(每题 2 分)

1. 判断一个三角形是否成立的条件只有:任意两边长度之和大于第三条边的长度 ( )
2. 这段程序进行的是判断一个从键盘输入的字符的ASCII 是否是奇数,若是,输出 YES,否则,输出 NO ```cpp int main() { char x; scanf("%c", &x); int ASCII = (int)x; cout << (x & 1 ? "YES" : "NO") << '\n'; return 0; } ``` ( )
3. 闰年的定义: 普通闰年:公历年份是 4 的倍数,且不是 100 的倍数的,为闰年(如 2004 年、2020 年等就是闰年)。 世纪闰年:公历年份是整百数的,必须是 400 的倍数才是闰年(如 1900 年不是闰年,2000 年是闰年)。 下面程序是判断是否是闰年的正确程序 ```cpp cin>>n; cout<<((n%4==0&&n%100!=0)||(n%400==0))?1:0; return 0; ``` ( )
4. C++语句cout<<(n%15==0? "YES":"NO");能够判断一个整数能否被3和5同时整除 ( )
5. 有n个同学,从中抽取任意个人数来参加学校组织的大合唱,共有2的n次幂个方法 ( )
6. 若将一个正整数化为二进制数,在此二进制数中,我们将数字 1 的个数是偶数的这类二进制数称为 A 类数,否则就称其为 B 类数。 例如: (13)10=(1101)2,其中 1 的个数为 3则称此数为 B 类数; (10)10=(1010)2,其中 1 的个数为 2,称此数为 A 类数; 判断(2025)10化为二进制后,1的个数为偶数个,因此2025为A类数。 ( )
7. 该段程序将 n 不停地除以 2,并输出此时的商和余数,直到 n=0 为止。 ```cpp long long n; cin >> n; while(n != 0) { cout << n/2 << ' ' << n%2 << '\n'; n /= 2; } ``` ( )
8. 两个13进制的数A和B,在10进制下分别表示10和11。(A+B)13=(18)13,也就是说13进制数A加上13进制数B,和是13进制数18。 ( )
9. k 进制,逢 k 进第二位,k^2进百位,k^3进千位; ( )
10. CCF(十九进制) = 21AC(十三进制)(不区分大小写) ( )