image

编辑人: 沉寂于曾经

calendar2025-06-15

message4

visits669

2024年3月CCF-GESP编程能力等级认证C++编程三级真题参考答案

一、单选题

1、整数-5的16位补码表示是(   )。

A 1005

B 1006

C FFFA

D FFFB


2、如果16位短整数 -2 的二进制是"FFFE",则短整数 -4 的十六进制是(   )。

A FF04

B FFFA

C FFFC

D FFFH


3、下面C++代码执行后的输出是(   )。

int main()
{
	cout << (3|16) << endl;
	cout << endl;
	return 0;
}

A 3

B 16

C 19

D 48


4、定义整数 int x=-5 ,则执行C++代码 cout << (x == (x<<1>>1)) 输出是(   )。

A 0

B 1

C -5

D 5


5、已知字符 '0' 的ASCII编码的十进制表示为48,则执行下面C++代码后,输出是(   )

int main()
{
	string s="316";
	int n=s.length();
	int x=0;
	for(int i = 0; i < n; i++)
		x += s[i];
	cout << x << endl;
	cout << endl;
	return 0;
}

A 10

B 58

C 154

D 316


6、下面C++代码执行后数组中大于0的数的特征是(   )。

int main()
{
	int a[20],i;
	for(i = 0; i < 20; i++)
		a[i] = i+1;
	for(int i = 0; i < 20; i++)
		if((a[i]%2)&&(a[i]%3))
			a[i] = 0;
	for(i = 0; i < 20; i++)
		if(a[i])
			cout << a[i] << " ";
	cout << endl;
	return 0;
}

A 2的倍数

B 3的倍数

C 能被2或3整除的数

D 能被2和3同时整除的数


7、执行下面C++代码后输出的第一个数是(   )。

int main()
{
	int a[20],i;
	for(i = 0; i < 20; i++)
		a[i] = i+1;
	for( ; i > 0; i--)
		cout << a[i-1] << " ";
	cout << endl;
	return 0;
}

A 20

B 19

C 1

D 不确定


8、在下列代码的横线处填写(   ),可以使得输出是 GESP IS INTERESTING 。

int main()
{
	string str="gEsP is Interesting";
	int x = str.length();
	for(int i = 0; i < x; i++)
		if ((str[i]>='a') && (str[i]<='z'))
			________________________;
	cout << str << endl;
	cout << endl;
	return 0;
}

A str[i]+='a'-'A'

B str[i]+=20

C str[i]+='A'-'a'

D 无法实现


9、假设英文句子由若干词构成。下面C++代码统计输出的词数是(   )。

int main()
{
	string str="gEsP is Interesting !";
	int x = str.length();
	int nwords = 0;
	for(int i = 0; i < x; i++)
		if (str[i]==' '){
			nwords++;
			while(str[++i]==' ') ;
		}
	cout << nwords << endl;
	cout << endl;
	return 0;
}

A 1

B 2

C 3

D 4


10、C++的字符变量的码值是整数,下面字面量形式的字符码值最大的是(   )。

A 100

B 075

C 0x70

D 0x60


11、下面C++程序执行的结果是(   )。

int main()
{
	int a[20],i;
	int cnt=0;
	for(i = 0; i < 20; i++)
		a[i] = i+1;
	for( ; i > 1; i--)
		if((a[i-1]+a[i-2])%3)
			cnt++;
	cout << cnt << endl;
	cout << endl;
	return 0;
}

A 5

B 6

C 10

D 12


12、定义字符数组 char str[20] = {'G', 'E', 'S', 'P'}; ,则 str 的字符串长度为(   )。

A 4

B 5

C 19

D 20


13、定义整型变量 int a=3, b=16 ,则 a|b 的值和 a+b 的关系是(   )。

A 大于

B 等于

C 小于

D 等于或小于


14、小杨的父母最近刚刚给他买了一块华为手表,他说手表上跑的是鸿蒙,这个鸿蒙是(    )。

A 小程序

B 计时器

C 操作系统

D 神话人物


15、中国计算机学会(CCF)在2024年1月27日的颁奖典礼上颁布了王选奖,王选先生的重大贡献是(    )。

A 制造自动驾驶汽车

B 创立培训学校

C 发明汉字激光照排系统

D 成立方正公司


二、判断题

16、任意整数 a 的二进制反码与补码都有1位不同。 (   )

A 正确

B 错误


17、对整型变量 int a = 3 ,执行C++代码 a<<2 将把2输出到 a 中。(   )

A 正确

B 错误


18、下面C++代码可以计算1到100的累加和,采用的是穷举法。(   )

int main()
{
	int i,sum=0;
	for(int i = 1; i <= 100 ; i++)
		sum += i;
	cout << sum << endl;
	cout << endl;
	return 0;
}

A 正确

B 错误


19、一个 int 类型变量 a ,执行操作 (a<<2>>2) 后的值一定是 a 。(   )

A 正确

B 错误


20、在C++语言中, (010<<1) 执行结果是 100 。(   )

A 正确

B 错误


21、执行下面C++代码后将输出 2 。(   )

int main()
{
	string str="gEsP is Interesting";
	int x = str.find("s");
	cout << x << endl;
	cout << endl;
	return 0;
}

A 正确

B 错误


22、在C++语言中,字符数组被定义时,它的大小可以调整。(   )

A 正确

B 错误


23、对定义的数组 int a[7]={2,0,2,4,3,1,6} ,可以用简单循环就找到其中最小的整数。(   )

A 正确

B 错误


24、小杨今年春节回奶奶家了,奶奶家的数字电视要设置 ip 地址并接入到 WIFI 盒子才能收看节目,那这个 WIFI 盒子具有路由器的功能。(   )

A 正确

B 错误


25、任何一个 for 循环都可以转化为等价的 while 循环(  )

A 正确

B 错误


三、实操题

26、字母求和

题面描述

小杨同学发明了一种新型密码,对于每一个小写英文字母,该小写字母代表了一个正整数,即该字母在字母顺序中的位置,例如字母 a 代表了正整数 1,字母 b 代表了正整数 2;对于每一个大写英文字母,该大写字母代表了一个负整数,即该字母的 ASCII 码的相反数,例如字母 A 代表了正整数 -65。小杨同学利用这种方式对一个整数进行了加密并得到了一个由大写字母和小写字母组成的字符串,该字符串中每个字母所代表数字的总和即为加密前的整数,例如 aAc 对应的加密前的整数为 1+(-65)+3=-61。

对于给定的字符串,请你计算出它对应的加密前的整数是多少。

输入格式

第一行一个正整数n,表示字符串中字母的个数。

第二行一个由大写字母和小写字母的字符串T,代表加密后得到的字符串。

输出格式

输出一行一个整数,代表加密前的整数。


样例输入

3

aAc

样例输出

-61

对于全部数据,保证有1≤n≤105

参考答案:对于给定的字符串,我们需要按照题目描述的方式计算每个字母所代表的数字,并将它们相加得到加密前的整数。首先,我们需要读取字符串的长度n和字符串T。然后,我们遍历字符串T中的每个字母,根据题目描述的方式计算每个字母所代表的数字,并将它们累加到变量sum中。最后,我们输出变量sum的值,即为加密前的整数。


27、完全平方数

题面描述

小杨同学有一个包含n个非负整数的序列A,他想要知道其中有多少对下标组合<i,j>(1≤i,j≤n,i<j),使得Ai+Aj是完全平方数。

如果x是完全平方数,则存在非负整数y使得 y×y=x。

输入格式

第一行一个非负整数n,表示非负整数个数。

第二行包含n个非负整数A1,A2,...,An,表示序列A包含的非负整数。

输出格式

输出一个非负整数,表示和是完全平方数的非负整数对数。


样例输入

5
1 4 3 3 5

样例输出

3

对于全部数据,保证有1≤n≤1000,0≤Ai≤105

参考答案:首先,我们需要遍历数组中的每对元素,计算它们的和,并判断其是否为完全平方数。然后,对完全平方数的对数进行计数。具体实现如下:1. 初始化计数器count为0。2. 遍历数组A中的每对元素(i,j),其中i


喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:2024年3月CCF-GESP编程能力等级认证C++编程三级真题参考答案

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share