#J3004. CCF-GESP编程能力等级认证真题【C032403】
CCF-GESP编程能力等级认证真题【C032403】
一、选择题。(15题,每题2分,共30分)
- 整数-5的16位补码表示是? {{ select(1) }}
- 1005
- 1006
- FFFA
- FFFB
- 如果16位短整数 -2 的二进制是"FFFE",则短整数 -4 的十六进制是? {{ select(2) }}
- FF04
- FFFA
- FFFC
- FFFH
- 下面C++代码执行后的输出是?
1. int main()
2. {
3. cout << (3|16) << endl;
4. cout << endl;
5. return 0;
6. }
{{ select(3) }}
- 3
- 16
- 19
- 48
- 定义整数
int x=-5
,则执行C++代码cout << (x == (x<<1>>1))
输出是?
{{ select(4) }}
- 0
- 1
- -5
- 5
- 已知字符 '0' 的ASCII编码的十进制表示为48,则执行下面C++代码后,输出是?
1. int main()
2. {
3. string s="316";
4. int n=s.length();
5. int x=0;
6. for(int i = 0; i < n; i++)
7. x += s[i];
8. cout << x << endl;
9. cout << endl;
10. return 0;
11. }
{{ select(5) }}
- 10
- 58
- 154
- 316
- 下面C++代码执行后数组中大于0的数的特征是?
1. int main()
2. {
3. int a[20],i;
4. for(i = 0; i < 20; i++)
5. a[i] = i+1;
6. for(int i = 0; i < 20; i++)
7. if((a[i]%2)&&(a[i]%3))
8. a[i] = 0;
9. for(i = 0; i < 20; i++)
10. if(a[i])
11. cout << a[i] << " ";
12. cout << endl;
13. return 0;
14. }
{{ select(6) }}
- 2的倍数
- 3的倍数
- 能被2或3整除的数
- 能被2和3同时整除的数
- 执行下面C++代码后输出的第一个数是?
1. int main()
2. {
3. int a[20],i;
4. for(i = 0; i < 20; i++)
5. a[i] = i+1;
6. for( ; i > 0; i--)
7. cout << a[i-1] << " ";
8. cout << endl;
9. return 0;
10. }
{{ select(7) }}
- 20
- 19
- 1
- 不确定
- 在下列代码的横线处填写( ),可以使得输出是 GESP IS INTERESTING?
1. int main()
2. {
3. string str="gEsP is Interesting";
4. int x = str.length();
5. for(int i = 0; i < x; i++)
6. if ((str[i]>='a') && (str[i]<='z'))
7. ________________________;
8. cout << str << endl;
9. cout << endl;
10. return 0;
11. }
{{ select(8) }}
- str[i]+='a'-'A'
- str[i]+=20
- str[i]+='A'-'a'
- 无法实现
- 假设英文句子由若干词构成。下面C++代码统计输出的词数是?
1. int main()
2. {
3. string str="gEsP is Interesting !";
4. int x = str.length();
5. int nwords = 0;
6. for(int i = 0; i < x; i++)
7. if (str[i]==' ')
8. {
9. nwords++;
10. while(str[++i]==' ') ;
11. }
12. cout << nwords << endl;
13. cout << endl;
14. return 0;
15. }
{{ select(9) }}
- 1
- 2
- 3
- 4
- C++的字符变量的码值是整数,下面字面量形式的字符码值最大的是?
{{ select(10) }}
- 100
- 075
- 0x70
- 0x60
- 下面C++程序执行的结果是?
1. int main()
2. {
3. int a[20],i;
4. int cnt=0;
5. for(i = 0; i < 20; i++)
6. a[i] = i+1;
7. for( ; i > 1; i--)
8. if((a[i-1]+a[i-2])%3)
9. cnt++;
10. cout << cnt << endl;
11. cout << endl;
12. return 0;
13. }
{{ select(11) }}
- 5
- 6
- 10
- 12
- 定义字符数组 char str[20] = {'G', 'E', 'S', 'P'}; ,则 str 的字符串长度为? {{ select(12) }}
- 4
- 5
- 19
- 20
- 定义整型变量 int a=3, b=16 ,则 a|b 的值和 a+b 的关系是?
{{ select(13) }}
- 大于
- 等于
- 小于
- 等于或小于
- 小杨的父母最近刚刚给他买了一块华为手表,他说手表上跑的是鸿蒙,这个鸿蒙是?
{{ select(14) }}
- 小程序
- 计时器
- 操作系统
- 神话人物
- 中国计算机学会(CCF)在2024年1月27日的颁奖典礼上颁布了王选奖,王选先生的重大贡献是?
{{ select(15) }}
- 制造自动驾驶汽车
- 创立培训学校
- 发明汉字激光照排系统
- 成立方正公司
二、判断题。(10题,每题2分,共20分)
- 任意整数 a 的二进制反码与补码都有1位不同。 {{ select(16) }}
- 对
- 错
- 对整型变量
int a = 3
,执行C++代码a<<2
将把2输出到 a 中。 {{ select(17) }}
- 对
- 错
- 下面C++代码可以计算1到100的累加和,采用的是穷举法。
1. int main()
2. {
3. int i,sum=0;
4. for(int i = 1; i <= 100 ; i++)
5. sum += i;
6. cout << sum << endl;
7. cout << endl;
8. return 0;
9. }
{{ select(18) }}
- 对
- 错
- 一个 int 类型变量 a ,执行操作
(a<<2>>2)
后的值一定是 a。 {{ select(19) }}
- 对
- 错
- 在C++语言中,
(010<<1)
执行结果是 100。 {{ select(20) }}
- 对
- 错
- 执行下面C++代码后将输出 2。
1. int main()
2. {
3. string str="gEsP is Interesting";
4. int x = str.find("s");
5. cout << x << endl;
6. cout << endl;
7. return 0;
8. }
{{ select(21) }}
- 对
- 错
- 在C++语言中,字符数组被定义时,它的大小可以调整。 {{ select(22) }}
- 对
- 错
- 对定义的数组 int a[7]={2,0,2,4,3,1,6} ,可以用简单循环就找到其中最小的整数。 {{ select(23) }}
- 对
- 错
- 小杨今年春节回奶奶家了,奶奶家的数字电视要设置ip地址并接入到WIFI盒子才能收看节目,那这个WIFI盒子具有路由器的功能。 {{ select(24) }}
- 对
- 错
- 任何一个 for 循环都可以转化为等价的 while 循环。 {{ select(25) }}
- 对
- 错
三、编程题。(2题,每题25分,共50分)
- 【字母求和】
- 【完全平方数】