青少年人工智能C++编程水平测试四级 模拟试卷3 试题解析

【单选题】(每题2分)

1、在信息组织和存储中,最基本的单位是?( )

A、字节(Byte)

B、二进制位(bit)

C、字(Word)

D、双字(Double Word)

正确答案:A

试题解析:在信息组织和存储中,最基本的单位是字节。

2、下面关于 C++的程序的运行结果是?( )

int main()
    int s = 1;
    for(int i = 1; i < 10; i++)
        s += i;

    cout<<s<<endl;
    return 0;
}

A、45

B、46

C、55

D、56

正确答案:B

试题解析:i的值从1循环到9,所有s=1(初始值)+1+2+3+4+5+6+7+8+9=46。

3、将二进制数 10010101,转换成十进制数,正确的选项为?( )

A、139

B、141

C、149

D、151

正确答案:C

试题解析:1*2^0+0*2^1+1*2^2+0*2^3+1*2^4+0*2^5+0*2^6+1*2^7=149。

4、表达式:(int)((double)9/2) - 9%2 的值是?( )

A、0

B、3

C、5

D、4

正确答案:B

试题解析:(int)((double)9/2)=(int)4.5=4(double转int舍去小数部分),9%2=1,(int)((double)9/2) - 9%2=4-1=3。

5、数据流图中带有箭头的线段表示的是?( )

A、控制流

B、水流

C、函数流

D、数据流

正确答案:D

试题解析:数据流图中带有箭头的线段表示的是数据流

6、下列关于浮点数的说法错误的是?( )

A、计算机中实数是用浮点数来表示

B、整数也可以用浮点数表示

C、浮点数使用二进制表示

D、同一个数的浮点数表示形式并不唯一

正确答案:C

试题解析:浮点数使用十进制表示,C错。

7、对于一个 C++ 程序,以下叙述中正确的是?( )

A、程序的执行总是从 main 函数开始,在main 函数结束

B、程序的执行总是从程序的个函数开始,在 main函数结束

C、程序的执行总是从 main 函数开始,在程序的后一个函数中结束

D、程序的执行总是从程序的个函数开始,在程序的后一个函数中结束

正确答案:A

试题解析:程序的执行总是从 main 函数开始,在main 函数结束,A正确。

8、哪个选项给出了下述程序的输出次数?( )

int k = 9999;
while(k>1){
    cout<<k<<endl;
    k=k/2;
}

A、13

B、14

C、15

D、9999

正确答案:A

试题解析:2^13=8192,2^14=16384,9999/2^13>1,9999/2^14<1,所以while循环内语句执行13次后结束循环,每次循环输出1次,总共输出13次。

9、设任意一个十进制整数 D,转换成二进制数为B,根据数制的概念,下列叙述中正确的是?( )

A、数字 B 的位数 < 数字 D 的位数

B、数字 B 的位数 ≤ 数字 D 的位数

C、数字 B 的位数 ≥ 数字 D 的位数

D、数字 B 的位数 > 数字 D 的位数

正确答案:C

试题解析:当数字D的位数等于1时,数字 B 的位数 = 数字 D 的位数=1;

当数字D的位数大于1时,数字 B 的位数 > 数字 D 的位数;

综上所述,数字 B 的位数 ≥ 数字 D 的位数。

10、下列选项中,八进制数 24 转换成二进制数正确的是?( )

A、00101100

B、00010100

C、00011100

D、00011101

正确答案:B

试题解析:八进制数转二进制数时,每位数字用一个三位二进制数来表示,不足时在最左边补0;

4用三位二进制数表示为100;

2用三位二进制数表示为010;

所以八进制数 24 转换成二进制数为010100,选项用八位二进制数表示,所以在左边补两个0,即00010100。

11、C++ 中要求操作数必须是整型的二元运算符是?( )

A、+

B、/

C、%

D、&

正确答案:C

试题解析:%运算符要求操作数必须是整型。

12、在 C++中一个 char 型数据可以表示的范围是?( )

A、0~255

B、0~256

C、-127~127

D、-128~127

正确答案:D

试题解析:在 C++中一个 char 型数据可以表示的范围是-128~127。

13、下面所示的程序,运行结束后的结果是?( )

int main(){
    int s = 0,i;
    for(i=1;i<100;i++){
        if(s>50)
            break;
        s+=i;
    }

    cout<<i<<endl;
    return 0;
}

A、10

B、11

C、55

D、4950

正确答案:B

试题解析:i=10时,s=45<50,循环不结束,s+=i=55,i++;

i=11时,s=55>50,循环结束,此时i=11。

14、请问 2020年7月1日是 2020年的第几天?( )

A、183

B、184

C、182

D、185

正确答案:A

试题解析:2020是闰年(闰年的条件:非整百年能被4整除,整百年能被400整除),所以在2020年里,7月1日以前一共有31(一月)+29(二月)+31(三月)+30(四月)+31(五月)+30(六月)=182天,所以7月1日是2020年的第183天。

15、下面中的程序的输出结果是?( )

int main(){
    int a,b;
    a=5;
    b=3;
    a=b;
    b=a;
    printf("%d,%d",a,b);
    return 0;
}

A、3.5

B、3.3

C、5.3

D、运行错误

正确答案:B

试题解析:

【多选题】(每题3分)

16、下列不能正确判断出字符变量 c 为小写字母的是?( )

A、'a'<=c<='z'

B、(c>='a') || (c<='z')

C、('a'<=c) and ('z'>c)

D、(c>='a') && (c<='z')

正确答案:ABC

试题解析:A选项语句不符合c++标准,A错误;

B选项表示 c>='a'或 c<='z',不能判断出字符变量 c 为小写字母,B错误;

C选项语句不符合c++标准,C错误;

D选项表示 c>='a'且 c<='z',可以判断出字符变量 c 为小写字母,D正确;

题目要求选择不能正确判断出字符变量 c 为小写字母的选项,故选ABC。

17、无名迈台阶时一次只能迈一阶或者两阶,请问选项中的次数可以实现从 0 节台阶到达第 5 节台阶的是( ),迈台阶只能向上不能向下。

A、5

B、4

C、3

D、2

正确答案:ABC

试题解析:A.5=1+1+1+1+1,一共迈5次,A正确;

B.5=1+1+1+2,一共迈4次,B正确;

C.5=1+2+2,一共迈3次,C正确;

D.因为迈台阶时一次只能迈一阶或者两阶,所以迈两次最多只能上2+2=4阶台阶,D错误;

故选ABC。

18、已知 a 是整型,则下列关于表达式(a==1) || (a!=1)的值不正确的有?( )

A、1

B、0

C、2

D、不知道 a 的值,不能确定

正确答案:BCD

试题解析:表达式(a==1) || (a!=1)永远为真,故该表达式的值为1,故A正确,BCD不正确。

19、执行下面程序后数值为整数的是?( )

int n,g,s,b;
n = 123;
g = n/100;
s = n/10%10;
b = n%10;

A、g

B、s

C、b

D、n

正确答案:ABCD

试题解析:g=123/100=1(int与int相除得到的结果只保留整数部分),A正确;

s=123/10%10=12%10=2,B正确;

b=123%10=3,C正确;

n=123,D正确;

故选ABCD。

20、抓了 a,b,c,d 4名嫌疑人,其中有 3 个平民,1 个小偷,审讯中:a 说我不是小偷,b 说 c 是小偷,c 说小偷肯定是 d,d 说 c 胡说。其中有三个人说的是真话,一人说的是假话,请问哪些是平民?( )

A、a

B、b

C、c

D、d

正确答案:ABD

试题解析:c说的是假话,a,b,d说的是真话,c是小偷,a,b,d是平民,选ABD。

【编程题】

21、(本题10分)请你统计所有两位数(10~99)中,个位与十位相加为 8 的两位数的个数。(本题共10分)

参考程序:

#include <iostream>
using namespace std;
int main() {
    int a=0;
    for(int i=10; i<=99; i++) {
        if(i/10+i%10==8) {
            a++;
        }
    }

    cout<<a<<endl;
    return 0;
}

22、(本题10分)无名在学习了编程之后,想要用程序写一个支持加法、减法、乘法和整数除法的计算器程序,输入计算式之后直接计算出结果。

如输入 1+2 输出 3,输入 3-1 输出2,其它运算类似,但是做整数除法的时候要求除数不能为 0,且结果保留两位小数,请帮忙编程实现程序计算并输出 1024/520的结果。(本题共10分)

参考程序:

#include <iostream>
using namespace std;
int main() {
    int a,b;
    char x;
    cin>>a>>x>>b;
    switch(x) {
    case '+':
        cout<<a+b<<endl;
        break;
    case '-':
        cout<<a-b<<endl;
        break;
    case '*':
        cout<<a*b<<endl;
        break;
    case '/':
        if(b==0) {
            cout<<"除数不能为0!"<<endl;
            break;
        }
        cout<<a/b<<endl;
        break;
    }

    return 0;
}

23、(本题15分)无名是一个特工,在传递情报的时候需要将数字加密成英文字符。加密法则是这样的:

如果是奇数就和 26取余,然后将数字转换成字符'A'加上取余的结果,如果是偶数就和 26 取余,将偶数转换成字符'a'加上取余的结果。

无名要传递的情报是 1024,请帮他进行加密,将加密结果输出。(本题共15分)

参考程序:

#include <iostream>
#include <string>
using namespace std;
int main() {
    int s=1024;
    char x;
    if(s%2==1) {
        x='A'+s%26;
    } else if(s%2==0) {
        x='a'+s%26;
    }

    cout<<x<<endl;
    return 0;
}

24、(本题20分)已知三角形三边长 a=2,b=3,c=4,判断能否构成三角形,已知只有当任意两条边之和大于第三边才可以构成三角形。可以构成的话就输出 YES,否则输出 NO。(本题共20分)

参考程序:

#include <iostream>
using namespace std;
int main() {
    int a=2,b=3,c=4;
    if(a+b>c && a+c>b && b+c>a) {
        cout<<"YES"<<endl;
    } else {
        cout<<"NO"<<endl;
    }

    return 0;
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

编程小伙伴测评网

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

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

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

打赏作者

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

抵扣说明:

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

余额充值