GESP 2024年 9月认证 C++ 三级真题

标签:
普通文字版答案
| 8页
| 780人阅读
| 6人下载

内容正文:

题号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 答案 B C A D C B C C A D D C D C B C++ 三级 2024 年 09 ⽉ 1 单选题(每题 2 分,共 30 分) 第 1 题 下列代码中,输出结果是( ) A. Equal B. Not equal C. 程序不能正确执行 D. 没有输出 第 2 题 关于计算机中的编码,下列说法中正确的是() A. 机器数的形式值和真值是一致的 B. 原码就是符号位加上真值 C. 机器数是带符号的 D. [-1]=[1000 0001]原=[1111 1111]反 第 3 题 8进制数3703转换成16进制数是() A. 7C3 #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; } } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 B. 7A3 C. 7B3 D. 7D3 第 4 题 0.8125变成⼆进制是( )。 A. 0.1110 B. 0.1 1111 1011 1101 C. 0.1 1111 1011 1100 D. 0.1101 第 5 题 下⾯说法正确的是( ) A. (22&01)==(22&&01)成立 B. (23|11)==30 C. (23|10)==31 D. (23|01)==31 第 6 题 下列说法正确的是() A. 2>>1和1>>1的值是一样的 B. (2>>2)和(1>>1)的值是一样的 C. (11^00)和(1^0)的值是一样的 D. (~0的输出值是1) 第 7 题 下列代码实现的是( ) A. a和b的异或 B. a和b的同或 C. a和b的值交换 D. a和b的高低位互换 第 8 题 a&~1运算实现的是( )。 A. 使a的最低位为1 B. 使a的最高位为1 void Swap(int &a, int &b) { if (a != b) { a ^= b; b ^= a; a ^= b; } } 1 2 3 4 5 6 7 C. 使a的最低位为0 D. 使a的最高位为0 第 9 题 a=1010 1110,a<<2,下面关于这个说法正确的是 ( )。 A. a的值变为1011 1000 B. a的值变为1011 1010 C. a的值变为0101 1101 D. a的值变为0101 1100 第 10 题 下列程序中,result和result2输出分别是 ( ) A. 123 -1 B. 123 -123 C. 1 -1 D. 1 -123 第 11 题 陈A歹种植一批农作物,第一天需要浇水一次,随后的两天(第2、第3天),每天需要浇水2次,再随后的 3天(第4、第5、第6天),需要每天浇水3次,这样持续下去,随后的n天,每天需要浇水n次。请问在100天里,总 共浇了多少次水( ) A. 994 B. 996 C. 995 D. 945 第 12 题 关于一维数组,下列程序能够正确执行的是( )。 A. B. 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; 1 2 3 4 5 6 7 8 9 int a[10]; int sum=0; for(int i=0;i<=10;i++) { sum=sum+a[i]; } 1 2 3 4 5 C. D. 第 13 题 下⾯的程序中,会输出( )。 A. 1 B. 0 C. 10 D. 不确定的值 第 14 题 有ABCD4个⼈,其中⼀个是⼩偷,每个⼈说⼀句话,只有⼩偷说的是假话,其中A说:不是我。B说:是 C。C说:是D。D说:C瞎说,请问谁是⼩偷( )。 A. A B. B C. C D. D 第 15 题 下列程序输出的是() A. 9 B. 8 C. 7 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]; } 1 2 3 4 5 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]; } 1 2 3 4 5 int a[10]={0}; int sum=0; for(int i=0;i<=10;i++) { sum=sum+a[i]; } 1 2 3 4 5 int a[10]={1,2,3,4,5,6,7,8,9,10}; cout<<a[10]<<endl; 1 2 string str = "Hello,陈A歹"; cout << str.find("A") << ' '; 1 2 题号 1 2 3 4 5 6 7 8 9 10 答案 D. 6 2 判断题(每题 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 。( ) 第 6 题 下列程序输出的是 3 。( ) 第 7 题 下列程序将输出 1 。( ) 第 8 题 下列程序将输出 A 。( ) 第 9 题 16进制数 AB ,表⽰成2进制数是 10101011 。( ) 第 10 题 def (⼗六进制) = 103231 (五进制)。( ) 3 编程题(每题 25 分,共 50 分) 3.1 编程题 1 试题名称:平衡序列 时间限制:1.0 s 内存限制:512.0 MB char x=65; x++; cout<<x++<<endl; 1 2 3 string str="陈ADai"; size_t pos = str.find('D'); cout<<pos<<endl; 1 2 3 int a[10]={1}; cout<<a[1]<<endl; 1 2 int a=65; cout<<(char)a<<endl; 1 2 3.1.1 题面描述 ⼩杨有⼀个包含 个正整数的序列 ,他认为⼀个序列是平衡的当且仅当存在⼀个正整数 ( )使得序列第 个到第 个数字的总和等于第 个到第 个数字的总和。 ⼩杨想请你判断序列 是否是平衡的。 3.1.2 输入格式 第⼀⾏包含⼀个正整数 ,代表测试⽤例组数。 接下来是 组测试⽤例。对于每组测试⽤例,⼀共两⾏。 第⼀⾏包含⼀个正整数 ,代表序列长度。 第⼆⾏包含 个正整数,代表序列 。 3.1.3 输出格式 对于每组测试⽤例,如果序列 是否是平衡的,输出 Yes,否则输出 No。 3.1.4 样例1 对于第⼀组测试⽤例,令 ,则有 ,因此序列是平衡的; 对于第⼆组测试⽤例,令 ,则有 ,因此序列是平衡的; 对于第三组测试⽤例,不存在满⾜要求的 。 对于全部数据,保证有 。 3.1.5 参考程序 3 3 1 2 3 4 2 3 1 4 5 1 2 3 4 5 1 2 3 4 5 6 7 Yes Yes No 1 2 3 #include<bits/stdc++.h> using namespace std; int a[10010]; int main(){ int t; cin>>t; while(t--){ int n; cin>>n; int sum=0; for(int i=1;i<=n;i++){ cin>>a[i]; sum+=a[i]; 1 2 3 4 5 6 7 8 9 10 11 12 13 3.2 编程题 2 试题名称:回⽂拼接 时间限制:1.0 s 内存限制:512.0 MB 3.2.1 题面描述 ⼀个字符串是回⽂串,当且仅当该字符串从前往后读和从后往前读是⼀样的,例如, 和 都是回⽂串, 但 不是。 ⼩杨有 个仅包含⼩写字母的字符串,他想请你编写程序判断每个字符串是否由两个长度⾄少为 的回⽂串前后拼 接⽽成。 3.2.2 输入格式 第⼀⾏包含⼀个正整数 ,代表字符串数量。 之后 ⾏每⾏⼀个仅包含⼩写字母的字符串。 3.2.3 输出格式 对于每个字符串输出⼀⾏,如果该字符串由两个长度⾄少为 的回⽂串前后拼接⽽成则输出 Yes,否则输出 No。 3.2.4 样例1 对于第 个字符串,都不是由两个长度⾄少为 的回⽂串前后拼接⽽成。 第 个字符串由回⽂串 和 前后拼接⽽成,并且两个回⽂串长度都⾄少为 。 } int tot=0,fl=0; for(int i=1;i<n;i++){ tot+=a[i]; if(tot*2==sum){ fl=1; break; } } if(fl)cout<<"Yes "; else cout<<"No "; } } 14 15 16 17 18 19 20 21 22 23 24 25 26 4 abcd aabbb aaac abcdd 1 2 3 4 5 No Yes No No 1 2 3 4 对于全部数据,保证有 ,并且每个字符串的长度不超过 。 3.2.5 参考程序 #include<bits/stdc++.h> using namespace std; int main(){ int n,k; cin>>n; for(int i=1;i<=n;i++){ string s; cin>>s; int m = s.length(); int fl = 0; for(int j=2;j<=m-2;j++){ string s1=s.substr(0,j); string s2=s.substr(j,m-j+1); string t1="",t2=""; for(int k=(int)s1.size()-1;k>=0;k--)t1+=s1[k]; for(int k=(int)s2.size()-1;k>=0;k--)t2+=s2[k]; if(t1==s1&&t2==s2){ fl=1; break; } } if(fl)cout<<"Yes "; else cout<<"No "; } } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

资源预览图

GESP 2024年 9月认证 C++ 三级真题-第1页
1
GESP 2024年 9月认证 C++ 三级真题-第2页
2
GESP 2024年 9月认证 C++ 三级真题-第3页
3
GESP 2024年 9月认证 C++ 三级真题-第4页
4

由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。