CCF编程能力等级认证GESP—C++3级—20240907

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

1、下列代码中,输出结果是( )

#include<iostream>
using namespace std;
int main()
{
	double a=0.9;
	double b=1.0;
	if(((b-a)==0.1))
	{
    	cout<<"Equal"<<endl;
	}
	else
    {
        cout<<"Not equal"<<endl;
	} 
}
A. Equal
B. Not equal
C. 程序不能正确执行 
D. 没有输出

正确答案:B

2、关于计算机中的编码,下列说法中正确的是()

A. 机器数的形式值和真值是一致的
B. 原码就是符号位加上真值
C. 机器数是带符号的
D. [-1]=[1000 0001]=[1111 1111]

正确答案:C

3、8进制数3703转换成16进制数是()

A. 7C3
B. 7A3 
C. 7B3 
D. 7D3

正确答案:A

4、0.8125变成二进制是( )。

A. 0.1110
B. 0.1 1111 1011 1101 
C. 0.1 1111 1011 1100 
D. 0.1101

正确答案:D

5、下面说法正确的是( )

A. (22&01)==(22&&01)成立 
B. (23|11)==30
C. (23|10)==31
D. (23|01)==31

正确答案:C

6、下列说法正确的是()

A. 2>>11>>1的值是一样的
B. (2>>2)(1>>1)的值是一样的 
C. (11^00)(1^0)的值是一样的 
D. (~0的输出值是1)

正确答案:B

7、下列代码实现的是( )

void Swap(int &a, int &b) {
    if (a != b) {
		a ^= b;
		b ^= a;
		a ^= b;
	}
}
A. a和b的异或
B. a和b的同或
C. a和b的值交换
D. a和b的高低位互换

正确答案:C

8、a&~1运算实现的是( )。

A. 使a的最低位为1
B. 使a的最高位为1
C. 使a的最低位为0
D. 使a的最高位为0

正确答案:C

9、a=1010 1110,a<<2,下面关于这个说法正确的是 ( )。

A. a的值变为1011 1000 
B. a的值变为1011 1010 
C. a的值变为0101 1101 
D. a的值变为0101 1100

正确答案:A

10、下列程序中,result和result2输出分别是 ( )

long a = 123;
intb=1;
longresult=a&b;
cout<<result<<endl;

long a2 = -123;
unsigned int b2 = -1;
long result2 = a2 & b2;
cout<<result2<<endl;
A. 123 -1
B. 123 -123 
C. 1 -1
D. 1 -123

正确答案:D

11、陈A歹种植一批农作物,第一天需要浇水一次,随后的两天(第2、第3天),每天需要浇水2次,再随后的3天(第4、第5、第6天),需要每天浇水3次,这样持续下去,随后的n天,每天需要浇水n次。请问在100天里,总共浇了多少次水( )

A. 994 
B. 996 
C. 995 
D. 945

正确答案:D

12、关于一维数组,下列程序能够正确执行的是( )。

A

int a[10];
int sum = 0;
for(int i = 0; i <= 10; i++) {
	sum = sum + a[i];
}

B

int a[10]={1,2,3,4,5,6,7,8,9,10};
int sum = 0;
for(int i=0;i<=10;i++) {
	sum=sum+a[i];
}

C

int a[10]={1,2,3,4,5,6,7,8,9,10};
int sum=0;
for(int i=0;i<10;i++) {
	um=sum+a[i];
}

D

int a[10]={0};
int sum=0;
for(int i=0;i<=10;i++) {
	sum=sum+a[i];
}

正确答案:C

13、下面的程序中,会输出( )。

int a[10]={1,2,3,4,5,6,7,8,9,10}; 
cout<<a[10]<<endl;
A. 1
B. 0
C. 10
D. 不确定的值

正确答案:D

14、有ABCD4个人,其中一个是小偷,每个人说一句话,只有小偷说的是假话,其中A说:不是我。B说:是 C。C说:是D。D说:C瞎说,请问谁是小偷( )。

A. A 
B. B 
C. C 
D. D

正确答案:C

15、下列程序输出的是()

string str = "Hello,陈A歹";
cout << str.find("A") << '\n';
A. 9 
B. 8 
C. 7
D. 6

正确答案:B

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

1、+1和-1的原码进行1+(-1)计算的结果是-2 。( )

正确答案:正确

2、~1的输出值是-2。( )

正确答案:正确

3、~1 = 1111 1110。( )

正确答案:正确

4、取X的低四位,可以用Y = 0000 1111,用X&Y获取X的低四位。( )

正确答案:正确

5、下列程序输出的是A。( )

char x=65;
x++;
cout<<x++<<endl;

正确答案:错误

6、下列程序输出的是3。( )

string str="陈ADai";
size_t pos = str.find('D');
cout<<pos<<endl;

正确答案:正确

7、下列程序将输出1。( )

int a[10]={1};
cout<<a[1]<<endl;

正确答案:错误

8、下列程序将输出A。( )

int a=65;
cout<<(char)a<<endl;

正确答案:正确

9、16进制数 AB ,表示成2进制数是 10101011 。( )

正确答案:正确

10、def (十六进制) = 103231 (五进制)。( )

正确答案:错误

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

平衡序列

【问题描述】
小杨有一个包含n个正整数的序列a,他认为一个序列是平衡的当且仅当存在一个正整数 i ( 1 < = i < n ) i(1<=i<n) i(1<=i<n)使得序列第1个到第i个数字的总和等于第i+1个到第n个数字的总和。
小杨想请你判断序列a是否是平衡的。
【输入描述】
第一行包含一个正整数t,代表测试用例组数。
接下来是t组测试用例。对于每组测试用例,一共两行。
第一行包含一个正整数n,代表序列长度。
第二行包含n个正整数,代表序列a。
【输出描述】
对于每组测试用例,如果序列a是否是平衡的,输出 Yes,否则输出 No。
【样例输入 1】
3
3
1 2 3
4
2 3 1 4
5
1 2 3 4 5
【样例输出 1】
Yes
Yes
No

对于第一组测试用例,令i = 2 ,则有1 + 2 = 3,因此序列是平衡的;
对于第二组测试用例,令i = 2 ,则有2 + 3 = 1 + 4,因此序列是平衡的;
对于第三组测试用例,不存在满足要求的i。
对于全部数据,保证有 1 < = t < = 100 , 1 < = n , a i < = 10000 1 <= t <= 100, 1 <= n, a_i <= 10000 1<=t<=100,1<=n,ai<=10000

回文拼接

【问题描述】
一个字符串是回文串,当且仅当该字符串从前往后读和从后往前读是一样的,例如,a abaa 和ccddcc都是回文串,但abcd不是。
小杨有n个仅包含小写字母的字符串,他想请你编写程序判断每个字符串是否由两个长度至少为2的回文串前后拼 接而成。
【输入描述】
第一行包含一个正整数n,代表字符串数量。
之后n行每行一个仅包含小写字母的字符串。
【输出描述】
对于每个字符串输出一行,如果该字符串由两个长度至少为2的回文串前后拼接而成则输出 Yes,否则输出 No。

【样例输入 1】
4
abcd
aabbb
aaac
abcdd
【样例输出 1】
No
Yes
No
No

对于第1,3,4个字符串,都不是由两个长度至少为2的回文串前后拼接而成。
第2个字符串由回文串aa和bbb前后拼接而成,并且两个回文串长度都至少为2。
对于全部数据,保证有 1 < = n < = 10 1 <= n <= 10 1<=n<=10 ,并且每个字符串的长度不超过100。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青岛少儿编程-王老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值