#GESP1103. [GESP202412三级] 客观题
[GESP202412三级] 客观题
一.单选题(每题2分,共30分)
-
下列⼆进制表⽰的⼗进制数值分别是( )。
[10000011]原=( ) [10000011]补=( )
{{ select(1) }}
-125,-3
-3, -125
-3,-3
-125,-125
- 关于计算机中的编码,下列说法中错误的是( )。
{{ select(2) }}
- 对于⽆符号数,原码就是真值
- 正数的反码是其本⾝
- 负数的反码和补码是不⼀样的
- 负数的反码,在其原码的基础上, 各个位取反
- 16进制数B2025转换成8进制数是 ( )。
{{ select(3) }}
- 2620045
- 2004526
- 729125
- 2420045
- 625.625变成⼆进制是 ( )。
{{ select(4) }}
- 下⾯逻辑运算中,正确的是 ( )。
{{ select(5) }}
5&&3==0
5|3==8
5||3==11
5&3==0001
-
补码1111 1101进行运算1111 1101>>1以后得到的结果是 ( )。
{{ select(6) }}
1111 1100
-2
1111 1101
1111 1010
-
下列代码输出的是 ( )。
string s="1234@@chenadai"; string str="12345"; s.replace(1,5,str); cout<<str<<endl;
{{ select(7) }}
-
12345
-
2345@
-
112345chenadai
-
12345chenadai
- a|10(a与10都是10进制,且二进制表示最高位为1)运算的结果是 ( )。
{{ select(8) }}
- 使a的二进制表示从右往左的第二位为1
- 使a的二进制表示从右往左的第一位为0
- 使a的二进制表示从右往左第二位为0
- 使a的二进制表示最高位为0
- 下列程序输出的是 ( )。
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
- 不能正确执行
-
下列程序中,假设一个字符占用的内存空间是1,下列程序中,ch占用的内存空间是 ( )。
char ch[] = "hello world"; size_t ret=strlen(ch); cout<<ret<<endl;
{{ select(10) }}
- 下列程序最后输出的是 ( )。
int a=65;
cout<<tolower(a)<<endl;
{{ select(11) }}
65
A
a
97
- 想要计算从数字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;
- 兔⼦五元⼀只,鸡三元⼀只,⼩鸭⼦⼀元三只,现在你有⼀百元要买⼀百只,兔⼦、鸡、鸭⼦,问兔⼦、 鸡、鸭⼦各买多少只,每种必须⾄少⼀只,下列哪个程序能实现。()
{{ 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; } } }
- 求⼩于等于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个环的金环项链,为了严 格执行每天工作结束时,完成对工人工资的结算,最少需要将金环项链剪裁成几段,每段几个金环
{{ 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
二.判断题(每题2分,共20分)
- 为了简化计算机基本运算电路,使加减法都只需要通过加法电路实现,也就是让减去⼀个正数或加上⼀个负 数这样的运算可以⽤加上⼀个正数来代替。于是改变负数存储的形式,存储成⼀种可以直接当成正数来相加的形 式,这种形式就是补码。 {{ select(16) }}
- 正确
- 错误
- 使⽤原码进⾏的计算,2+(-1) 的结果是 -3 {{ select(17) }}
- 正确
- 错误
- 反码计算加减法:加法与减法结果都是正确的,只是解决不了 -0 的问题 {{ select(18) }}
- 正确
- 错误
-
10 进制数 63,在转换成⼆进制的计算过程中,产⽣了如下的式⼦:
63/2=31 余 1 31/2=15 余 1 15/2=7 余 1 7/2=3 余 1 3/2=1 余 1 1/2=0 余 1
按照从前往后的顺序,获得 63 的⼆进制值是 111111
{{ select(19) }}
- 正确
- 错误
- 下列程序输出的是 A
```cpp
char x=65;
x=x&00001111;
cout<<x<<endl;
```
{{ select(20) }}
-
正确
-
错误
-
下列可执⾏程序段中,最后 pos 的值是 4
string str="chenADai"; int pos = str.find('D'); --pos&1
{{ select(21) }}
- 正确
- 错误
string ch="chen";
cout<<ch[4]<<endl;
```
该段程序将不能正确执⾏
{{ select(22) }}
- 正确
- 错误
-
char a='A'; a=a+32; cout<<(int)a<<endl;
将输出 97
{{ select(23) }}
- 正确
- 错误
- 自然界中,最小的素数是 2
{{ select(24) }}
- 正确
- 错误
- CCF(⼗六进制) = 12363(七进制)
{{ select(25) }}
- 正确
- 错误