#1157. GESP C++ 三 级 2024年12月真题 · 单选题
GESP C++ 三 级 2024年12月真题 · 单选题
GESP C++ 三 级 2024年12月真题(120 分钟,总分 100 分)
单选题(共 15 题,每题 2 分,共 30 分)
1. 下列二进制表示的十进制数值分别是( )
[10000011]原=( )
[10000011]补=( )
{{ select(1) }}
- -125,-3
- -3, -125
- -3,-3
- -125,-125
2. 关于计算机中的编码,下列说法中错误的是()
{{ select(2) }}
- 对于无符号数,原码就是真值
- 正数的反码是其本身
- 负数的反码和补码是不一样的
- 负数的反码,在其原码的基础上, 各个位取反
3. 16进制数B2025转换成8进制数是()
{{ select(3) }}
- 2620045
- 2004526
- 729125
- 2420045
4. 625.625变成二进制是( )。
{{ select(4) }}
- 1001110001.101
- 101.101
- 101.1001110001
- 1001110001.1101
5. 下面逻辑运算中,正确的是( )
{{ select(5) }}
- 5&&3==0
- 5|3==8
- 5||3==11
- 5&3==0001
6. 补码1111 1101进行运算1111 1101>>1以后得到的结果是()
{{ select(6) }}
- 1111 1100
- -2
- 1111 1101
- 1111 1010
7. 下列代码输出的是
string s="1234@@chenadai";
string str="12345";
s.replace(1,5,str);
cout<<s<<endl;
{{ select(7) }}
- 12345
- 2345@
- 112345chenadai
- 12345chenadai
8. a|10(a与10都是10进制,且二进制表示最高位为1)运算的结果是( )。
{{ select(8) }}
- 使a的二进制表示从右往左的第二位为1
- 使a的二进制表示从右往左的第一位为0
- 使a的二进制表示从右往左第二位为0
- 使a的二进制表示最高位为0
9. 下列程序输出的是( )
string ch = "hello";
if (ch[5] == NULL)
{
cout << "right" << endl;
}
else if (ch[5] == '\0')
{
cout << "wrong" << endl;
}
else
{
cout << "hello" << endl;
}
{{ select(9) }}
- right
- wrong
- hello
- 不能正确执行
10. 下列程序中,假设一个字符占用的内存空间是1,下列程序中,ch占用的内存空间是( )
char ch[] = "hello world";
size_t ret=strlen(ch);
cout<<ret<<endl;
{{ select(10) }}
- 11
- 10
- 13
- 12
11. 下列程序最后输出的是()
int a=65;
cout<<tolower(a)<<endl;
{{ select(11) }}
- 65
- A
- a
- 97
12. 想要计算从数字n到数字m之间(包含n和m)有多少个数字d出现,下列程序哪个能够实现( )。
{{ select(12) }}
int n, m, res, d;cin >> n >> m >> d;for (int i = n + 1; i <= m; i++){
int temp = i;
while (temp)
{
if (temp % 10 == d)
res++;
temp /= 10;
}}cout << res << endl;return 0;int n, m, res, d;cin >> n >> m >> d;for (int i = n; i <= m; i++){
int temp = i;
while (temp)
{
if (temp % 10 = d)
res++;
temp /= 10;
}}cout << res << endl;return 0;int n, m, res = 0, d;cin >> n >> m >> d;for (int i = n; i <= m; i++){
int temp = i;
while (temp)
{
if (temp % 10 == d)
res++;
temp /= 10;
}}cout << res << endl;return 0;int n, m, res = 0, d;cin >> n >> m >> d;for (int i = n; i <= m; i++){
while (temp)
{
if (temp % 10 == d)
res++;
temp /= 10;
}}cout << res << endl;return 0;
13. 兔子五元一只,鸡三元一只,小鸭子一元三只,现在你有一百元要买一百只,兔子、鸡、鸭子,问兔子、鸡、鸭子各买多少只,每种必须至少一只,下列哪个程序能实现。( )。
{{ select(13) }}
for (int i = 0; i <= 100; i++){
for (int j = 0; j <= 100; j++)
{
for (int k = 0; k <= 100; k++)
{
if (i + j + k == 100 && 25 * i + 10 * j + k == 300)
cout << i << " " << j << " " << k << endl;
}
}}for (int i = 0; i <= 100; i++){
for (int j = 0; j <= 100; j++)
{
for (int k = 0; k <= 100; k++)
{
if (i + j + k == 100 && 20 * i + 10 * j + k == 300)
cout << i << " " << j << " " << k << endl;
}
}}for (int i = 0; i <= 20; i++){
for (int j = 0; j <= 34; j++)
{
for (int k = 0; k <= 20; k++)
{
if (i + j + k == 100 && 15 * i + 9 * j + k == 300)
cout << i << " " << j << " " << k << endl;
}
}}for (int i = 0; i <= 100; i++){
for (int j = 0; j <= 100; j++)
{
for (int k = 0; k <= 100; k++)
{
if (i + j + k == 100 && 15 * i + 9 * j + k == 300)
cout << i << " " << j << " " << k << endl;
}
}}
14. 求小于等于N的素数的方法中,有一种方法是将所有从2到它本身减1的数都除一遍,如果不能整除,就是素数。下列哪个程序,体现了这种方法()
{{ select(14) }}
if (N >= 3){
cout << 2 << endl;
for (int i = 2; i <= N; i++)
{
for (int j = 2; j < i; j++)
{
if (i % j != 0)
{
flag = 1;
}
}
if (flag == 0)
{
cout << i << endl;
}
flag = 0;
}}if (N >= 2){
for (int i = 3; i <= N; i++)
{
for (int j = 2; j < i; j++)
{
if (i % j == 0)
{
flag = 1;
}
}
if (flag == 0)
{
cout << i << endl;
}
flag = 0;
}}if (N >= 2){
cout << 2 << endl;
for (int i = 3; i <= N; i++)
{
for (int j = 2; j < i; j++)
{
if (i % j == 0)
{
flag = 1;
}
}
if (flag == 0)
{
cout << i << endl;
}
flag = 0;
}}if (N >= 2){
cout << 2 << endl;
for (int i = 3; i <= N; i++)
{
for (int j = 2; j < i; j++)
{
if (i % j == 0)
{
flag = 1;
}
}
if (flag == 0)
{
cout << i << endl;
}
}}
15. 工人工作一天,会得到一个金环作为工资报酬,某个工作需要15天完成,一条15个环的金环项链,为了严格执行每天工作结束时,完成对工人工资的结算,最少需要将金环项链剪裁成几段,每段几个金环( )
{{ select(15) }}
- 4段,分别是1、2,4,8
- 15段,每段1个
- 6段,分别是3、3、3、3、2、1
- 9段,分别是2、2、2、2、2、2、1、1、1
相关
在下列比赛中: