GESP C++ 三级模拟试题1

GESP C++ 三级模拟试题1

  • 选择题
  1. (2023年6月)二进制数 11.01 在十进制下是     )。
    1. 3.01
    2. 3.05 
    3. 3.125
    4. 3.25
  2. (2023年9月)下列流程图的输出结果是?    
  1. 60
  2. 20
  3. 5
  4. 1
  1. (2023年9月)已知⼤写字符'A'的ASCII编码的⼗六进制表⽰为0x41 ,则字符'L'的ASCII编 码的⼗六进制表⽰为 (     )。
  1. 4A 
  2. 4B 
  3. 4C
  4. 52 
  1. (样题)枚举算法的主要特点是(    
  1. 以空间换时间
  2. 逐个尝试所有可能的解
  3. 动态规划
  4. 贪心策略
  1. (样题)以下哪个属于 C++语言中的位运算符?(    
    1. +
    2. -
    3. *
    4. &
  2. (2023年9月)如果数组定义为long long array[] = {3, 5, 7, 2};,则数组array占⽤的字节 数为(    )。 
  1. 32
  2. 16 
  3. 8
  4. 4
  1. (样题)在 C++语言中,可以定义一个一维整型数组的是(    )。
  1. int array[5];
  2. int array[];
  3. int[5] array;
  4. int[] array;
  1. (2023年6月)下列关于进制的叙述,不正确的是(   )
  1. 正整数的二进制表示中只会出现 0 和 1
  2. 10 不是 2 的整数次幂,所以十进制数无法转换为二进制数
  3. 从二进制转换为 8 进制时,可以很方便地由低到高将每 3 位二进制位转换为 对应的一位 8
  4. 从二进制转换为 16 进制时,可以很方便地由低到高将每 4 位二进制位转换为 对应的一位 16
  1. (2023年6月)下列关于 C++语言中数组的叙述,不正确的是    )。
    1. 数组必须先定义后使用
    2. 数组的所有元素在内存中是连续存放的。
    3. 除了字符数组,在定义数组时“[]”内必须有常数。
    4. 不能对数组赋值,但可以对数组的每个基础类型的元素赋值
  2. (样题)下列哪个是 C++语言中用于获取字符串长度的函数(   )
    1. length()
    2. len()
    3. getLength()
    4. strlen()
  3. (2023年9月)如果 a和b均为int类型的变量 ,下列表达式不能正确判断“ a等于b ” 的是(     )。
    1. ((a >= b) && (a <=b))
    2. ((a >> 1) == (b >> 1))
    3. ((a + b) == (a + a))
    4. ((a ^ b) == 0)
  4. (2023年9月)如果 a为char类型的变量 ,下列哪个表达式可以正确判断“a是⼤写字 母”?(   )
    1. a - 'A' <= 26
    2. 'A' <= a <= 'Z'
    3. 'A' <= 'a' <= 'Z
    4. ('A' <= a) && (a <= 'Z')
  5. (2023年6月)在下列代码的横线处填写(    ),可以使得输出是“24 12”

#include <iostream>
using namespace std;
int main(){
    int a=12,b=24;
               ;//在此处填入代码
    a=a^b;
    b=a^b;
    cout<<a<<" "<<b<<endl;
    return 0;
}

    1. a = a ^ b
    2. b = a ^ b
    3. a = a + b
    4. b = a + b
  1. (样题)在下列代码的横线处填写(),可以保证输出是“1357”,不会有多余字符

#include <iostream>
#include <string>
using namespace std;
int main(){
    char str[]="123456";
    for(            ) // 在此处填入代码
        cout<<str[i];
    return 0;
}

    1. int i = 0; i < strlen(str); i++
    2. int i = 0; str[i] != '\0'; i++
    3. int i = 1; i <= 7; i += 2
    4. int i = 0; i <= 6; i += 2
  1. (2023年6月)在下列代码的横线处填写( ),可以使得输出不是“31"

#include <iostream>
using namespace std;
int main(){
    int array[5]={1,2,4,8,16};
    int res=0;
    for(int i=0;i<5;i++)
               ;//在此处填写代码
    cout<<res<<endl;
    return 0;
} 

    1. res=res+array[i]
    2. res=res&array[i]
    3. res=res|array[i]
    4. res=res^array[i]
  • 判断题
  1. (2023年6月)一个算法可以用不同的形式来描述,但要求描述比较规范,因此不能用自然 语言描述。
  1. (样题)二进制数据编码中,负数的补码是通过对原码按位取反并加 1 得到的。
  2. (2023年6月)在C++语⾔中,长度为 的数组,访问下标为 的元素会引起编译错误
  3. (2023年9月)字符常量'3'的值和int类型常量3的值是相同的,只是占⽤的字节数不同
  4. (2023年9月)在C++语⾔中,数组下标的⼤⼩决定元素在逻辑上的先后顺序,与元素在内 存中位置的先后顺序⽆关
  5. (20236月)在C++语言中,可以使用字符(如'0')作为数组下标
  6. (样题)C++语言中的数组可以根据需要自动调整大小。
  1. (2023年6月)计算机中存储的数据都是二进制形式。因此,在使用 C++语言编写程序时,将 所有十进制数改写为相同数值的二进制数,会使得程序运行效率更高。
  1. (2023年9月)在C++语言中,表达式(0xf == 015)的值为 true。
  2. (2023年6月)如果 a 为 int 类型的变量,且表达式((a | 3) == 3)的值为 true,则说明 a 在从 0 到 3 之间(可能为 0、可能为 3)
  • 编程题
  1. 春游(20236) 

【问题描述】

老师带领同学们春游。已知班上有N位同学,每位同学有从 0 到N − 1 的唯

一编号。到了集合时间,老师确认是否所有同学都到达了集合地点,就让同学们

报出自己的编号。到达的同学都会报出的编号,不会报出别人的编号,但有的同

学很顽皮,会多次报出。你能帮老师找出有哪些同学没有到达吗?

【输入描述】

输入包含 2 行。第一行包含两个整数NM,表示班级有N位同学,同学们 共有M次报出编号。约定 2 ≤ N, M ≤ 1000。 第二行包含M个整数,分别为M次报出的编号。约定所有编号都在合理范围 内。 

【输出描述】

输出一行。如果所有同学都到达,则输出N;否则由小到大输出所有未到达 的同学编号,空格分隔。

【样例输入1】

3 3

0 2 1

【样例输出1】

3

【样例输入2】

3 5

0 0 0 0 0

【样例输出2】

1 2

  1. 最长连续重复字符

【问题描述】

请统计输入的字符串中最大连续重复字符的个数, 要求统计出字符串中哪个字符连续出现的次数最多,并且要统计该字符连续出现的次数,如果该字符有多个,只输出最先出现的那个字符。
例如:字符串为 AAA222BBAAAaa,则在这个字符串中,字符 A 和字符 2 连续出现的次数都是最多,都是 3 次,只需要输出A 3。

【输入描述】

 共一行,一个字符串,长度不超过1000。

【输出描述】

共一行,连续出现次数最多的字符,和出现次数,使用空格隔开。

【样例输入1】

AAA222BBAAAaa

【样例输出1】

A 3

【样例输入2】

abcdef

【样例输出2】

a 1

【样例输入3】

aaa111BBBBB333

【样例输出3】
B 5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

蜗牛变涡流

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

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

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

打赏作者

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

抵扣说明:

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

余额充值