1492: [gesp]三级模拟题(选择判断题)
Description
1. 单选题(每题 2 分,共 30 分)
第 1 题 下面 C++ 代码执行后的输出是( )。
char ch[10]={'1'};
cout<<ch[2]<<endl;
A. 0
B. 1
C. 输出空格
D. 什么也不输出
第 2 题 下面 C++ 代码用于统计每种字符出现的次数,当输出为 3 时,横线上不能填入的代码是( )。
string str="GESP is a good programming test!";
int x=0;
for(int i=0;i<str.length();i++)
{
if(_____)
{
x++;
}
}
cout<<x<<endl;
A. str[i]=='o'
B. str[i]=='a'+14
C. str[i]==115
D. str[i]==111
第 3 题 32位计算机中, C++ 的整型变量 int 能够表示的数据范围是( )。
A. 2^31~(2^31)-1
B. 2^32
C. -2^31~+(2^31)-1
D. -(2^31)+1~2^31
第 4 题 下面 C++ 程序执行的结果是( )。
int cnt=0;
for(int i=0;i<=20;i++){
{
if(i%3==0&&i%5==0)
cnt++;
}
cout<<cnt;
A. 2
B. 3
C. 5
D. 4
第 5 题 C++ 的数据类型转换让人很难琢磨透,下列代码输出的值是( )。
int a=3;
int b=2;
cout<<a/b*1.0<<endl;
A. 1.5
B. 1
C. 2
D. 1.50
第 6 题 C++代码用于抽取字符串中的电话号码。约定:电话号码全部是数字,数字之间没有其他符号如连字符或 空格等。代码中变量 strSrc 仅仅是示例,可以包含更多字符。下面有关代码说法,正确的说法是( )。
string strSrc="红十字:01084025890火警电话:119急救电话:120紧急求助:110";
string tel="";
for(int i=0;i<=strSrc.length();i++){
if(strSrc[i]>='0'&&strSrc[i]<='9'){
tel=tel+strSrc[i];
}
else if(tel!="") {
cout<<tel<<endl;
tel="";
}
}
A. 代码将换行输出各个含有数字的电话号码。
B. 代码将不换行输出各个含有数字的电话号码,号码中间没有分隔。
C. 代码将不换行输出各个含有数字的电话号码,号码中间有分隔。
D. 不能够输出数字电话号码。
第 7 题 某公司新出了一款无人驾驶的小汽车,通过声控智能驾驶系统,乘客只要告诉汽车目的地,车子就能自动选择一条优化路线,告诉乘客后驶达那里。请问下面哪项不是驾驶系统完成选路所必须的。( )
A. 麦克风
B. 扬声器
C. 油量表
D. 传感器
第 8 题 现代计算机是指电子计算机,它所基于的是( )体系结构。
A. 艾伦 · 图灵
B. 冯 · 诺依曼
C. 阿塔纳索夫
D. 埃克特 - 莫克利
9. 已知大写字符 'A' 的ASCII编码的十六进制表示为 0x41 ,则字符 'L' 的ASCII编码的十六进制表示为( )。
- A. 4A
- B. 4B
- C. 4C
- D. 52
10. 下列数组定义,符合C++语言语法的是( )。
- A. double a[];
- B. double b[] = {1, 2.0, '3'};
- C. double c[3.0];
- D. double[] d = new double[3];
11. 下列关于进制的叙述,正确的是( )。
- A. 只有十进制和二进制能够用来表示小数,八进制和十六进制不可以。
- B. 常用的进制包括二进制、八进制、十进制、十六进制,其他进制在日常生活中很少使用。
- C. 对任意正整数,其二进制表示不会比它的十进制表示更短。
- D. 正整数的八进制表示中,每一位可能出现的最大数字是8。
12. 如果 `a` 是 `int` 类型的变量,下列哪个表达式的值为 true?( )。
- A. `a + 1000 - 1000 == a`
- B. `a * 2 / 2 == a`
- C. `(a & 1) == 1`
- D. `(a | 1) == a + 1`
13. 如果 `a` 和 `b` 均为 `int` 类型的变量,下列表达式不能正确判断“ a 等于 b ”的是( )。
- A. `((a >= b) && (a <= b))`
- B. `((a > 1) == (b > 1))`
- C. `((a + b) == (a + a))`
- D. `((a ^ b) == 0)`
14. 在下列代码的横线处填写( ),可以使得输出是“120”。
int array[] = {1, 2, 3, 4, 5};
int res = 0;
for (int i = 0; i < 5; i++) {
// 填写代码
}
cout << res << endl;
- A. `res += array[i];`
- B. `res *= array[i]`
- C. `res = array[i]`
- D. 以上均不对。
15. 下列代码的输出是( )。
- A. 15
- B. 28
- C. 45
- D. 55
2 判断题(每题 2 分,共 20 分)
第 16 题 C++ 程序执行后,输入 chen a dai 输出应该为: chen 。( )
string str;
cin>>str;
cout<<str;
第 17 题 执行 C++ 代码 cout<<(5||2); 后将输出 1 。( )
第 18 题 执行下面 C++ 代码后将输出 "China" 。( )
string a="china";
a.replace(0,1,"c");
cout<<a<<endl;
第 19 题 下面 C++ 代码将输出 1 ( )
int list[10]={1};
cout<<list<<endl;
第 20 题 执行 C++ 代码,将输出 1 3 5 7 9 , 9 之后还有一个空格。( )
int list[10]={1,2,3,4,5,6,7,8,9,10};
for(int i=0;i<10;i+=2) cout<<list[i]<<"";
第 21 题 小杨最近在准备考 GESP ,他用的 Dev C++ 来练习和运行程序,所以 Dev C++ 也是一个小型操作系统。( )
第 22 题 如果为int 类型的变量,且表达式((a | 3) == 3) 的值为true ,则说明 在从0到3之间(可能为0、可
能为3)。
第 23 题 执行下面C++代码后,输出的结果是8。
int a = 0b1010;
int b = 01100;
int c = a & b;
cout << c <<endl;
第 24 题 执行下面C++代码后,输出的结果不可能是89781。( )
#include <iostream>
#include <cstdlib> // 为了使用 rand() 和 srand()
#include <ctime> // 为了使用 time()
using namespace std;
int main() {
// 设置随机种子
srand(time(NULL));
int i = 1;
int s[5];
while(i <= 5)
{
int a = rand() % 10;
if(a % 3 == (i + 1) % 3)
s[i++] = a;
}
for(int i = 1; i <= 5; i++)
cout << s[i];
cout << endl;
return 0;
}
第 25 题 把整数3025从中剪开分为30和25两个数,此时再将这两数之和平方,计算结果又等于原数。(30 + 25) × (30
+ 25) = 55 × 55 = 3025,这样的数叫“雷劈数”。可以使用枚举的方法求出所有符合这样条件的四位数。( )