#O3595. GESP.2024年9月三级认证.理论题

GESP.2024年9月三级认证.理论题

GESP C++ 三级 2024 年 9 月

1 单选题(每题 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;
	}
}

{{ select(1) }}

  • Equal
  • Not equal
  • 程序不能正确执行
  • 没有输出
  1. 关于计算机中的编码,下列说法中正确的是(){{ select(2) }}
  • 机器数的形式值和真值是一致的
  • 原码就是符号位加上真值
  • 机器数是带符号的
  • [-1]=[1000 0001]原=[1111 1111]反
  1. 8 进制数 3703 转换成 16 进制数是(){{ select(3) }}
  • 7C3
  • 7A3
  • 7B3
  • 7D3
  1. 0.8125 变成二进制是( )。{{ select(4) }}
  • 0.1110
  • 0.1 1111 1011 1101
  • 0.1 1111 1011 1100
  • 0.1101
  1. 下面说法正确的是( )。{{ select(5) }}
  • (22&01)==(22&&01)成立
  • (23|11)==30
  • (23|10)==31
  • (23|01)==31
  1. 下列说法正确的是()。{{ select(6) }}
  • 2>>1和1>>1的值是一样的
  • (2>>2)和(1>>1)的值是一样的
  • (11^00)和(1^0)的值是一样的
  • (~0的输出值是1)
  1. 下列代码实现的是( )
void Swap(int &a, int &b) {
	if (a != b) {
		a ^= b;
		b ^= a;
		a ^= b;
	}
}

{{ select(7) }}

  • a 和 b 的异或
  • a 和 b 的同或
  • a 和 b 的值交换
  • a 和 b 的高低位互换
  1. a & ~ 1 运算实现的是( )。{{ select(8) }}
  • 使 a 的最低位为 1
  • 使 a 的最高位为 1
  • 使 a 的最低位为 0
  • 使 a 的最高位为 0
  1. a=1010 1110,a<<2,下面关于这个说法正确的是 ( )。{{ select(9) }}
  • a 的值变为 1011 1000
  • a 的值变为 1011 1010
  • a 的值变为 0101 1101
  • a 的值变为 0101 1100
  1. 下列程序中,result 和 result2 输出分别是 ( )
long a = 123;
int b = 1;
long result = a & b;
cout<<result<<endl;

long a2 = -123;
unsigned int b2 = -1;
long result2 = a2 & b2;
cout<<result2<<endl;

{{ select(10) }}

  • 123 和 -1
  • 123 和 -123
  • 1 和 -1
  • 1 和 -123
  1. 陈 A 歹种植一批农作物,第一天需要浇水一次,随后的两天(第2、第3天),每天需要浇水2次,再随后的 3 天(第4、第5、第6天),需要每天浇水3次,这样持续下去,随后的 n 天,每天需要浇水 n 次。请问在100天里,总共浇了多少次水( ){{ select(11) }}
  • 994
  • 996
  • 995
  • 945
  1. 第 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++) {
	sum=sum+a[i];
}

D.

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

{{ select(12) }}

  • A
  • B
  • C
  • D
  1. 下面的程序中,会输出( )
int a[10]={1,2,3,4,5,6,7,8,9,10};
cout<<a[10]<<endl;

{{ select(13) }}

  • 1
  • 0
  • 10
  • 不确定的值
  1. 有 ABCD 4 个人,其中一个是小偷,每个人说一句话,只有小偷说的是假话,其中 A 说:不是我。B 说:是 C。C 说:是 D。D 说:C 瞎说,请问谁是小偷( ){{ select(14) }}
  • A
  • B
  • C
  • D
  1. 下列程序输出的是()
string str = "Hello,CHAD";
cout << str.find("A") << '\n';

{{ select(15) }}

  • 9
  • 8
  • 7
  • 6

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

  1. +1 和 -1 的原码进行 1+(-1)计算的结果是-2 。( ){{ select(16) }}
  • 正确
  • 错误
  1. ~1 的输出值是 -2 。( ){{ select(17) }}
  • 正确
  • 错误
  1. ~1 = 1111 1110 。( ){{ select(18) }}
  • 正确
  • 错误
  1. 取 X 的低四位,可以用 Y = 0000 1111 ,用 X&Y 获取 X 的低四位。( ){{ select(19) }}
  • 正确
  • 错误
  1. 下列程序输出的是 A 。( )
char x=65;
x++;
cout<<x++<<endl;

{{ select(20) }}

  • 正确
  • 错误
  1. 下列程序输出的是 3 。( )
string str="CHADai";
size_t pos = str.find('D');
cout<<pos<<endl;

{{ select(21) }}

  • 正确
  • 错误
  1. 下列程序将输出 1 。( )
int a[10]={1};
cout<<a[1]<<endl;

{{ select(22) }}

  • 正确
  • 错误
  1. 下列程序将输出 A 。( )
int a=65;
cout<<(char)a<<endl;

{{ select(23) }}

  • 正确
  • 错误
  1. 16 进制数 AB ,表示成 2 进制数是 10101011 。( ){{ select(24) }}
  • 正确
  • 错误
  1. def (十六进制) = 103231 (五进制)。( ){{ select(25) }}
  • 正确
  • 错误