/ WHOJ / 题库 /

小学C++语言2021模拟卷一

小学C++语言2021模拟卷一

小学C++语言2021模拟卷一

考号:________________ 姓名:________________

单项选择题(每空2分,共计30分)

1、一个完整的计算机系统包括( )。
A、计算机及外部设备
B、主机、键盘、显示器
C、系统软件和应用软件
D、硬件系统和软件系统

2、计算机的基本存储单位\(Byte\)指的是( )。
A、一个二进制位
B、八个二进制位
C、一个十进制位
D、一个八进制位

3、下列设备中属于输出设备的是( )。
A、\(U\)盘
B、手写板
C、绘图仪
D、读卡器

4、一个\(24×24\)点阵的汉字字形信息所占的字节数为( )。
A、\(8\)
B、\(24\)
C、\(32\)
D、\(72\)

5、十进制算术表达式:\(3×512+5×64+2×8+1\)的运算中,用二进制表示为( )。
A、\(10110100011\)
B、\(11101010001\)
C、\(11110100011\)
D、\(1011010001\)

6、一棵二叉树,度为\(2\)的结点有\(10\)个,度为\(1\)的结点有\(5\)个,则度为\(0\)的结点个数是( )。
A、\(9\)
B、\(11\)
C、\(15\)
D、不确定

7、我们用\(I\)和\(O\)分别表示入栈和出栈操作。栈的初态和终态均为空,下列所示的操作序列中合法的是( )。
A、\(IOIIOIOO\)
B、\(IOOIOIIO\)
C、\(IIIOIOIO\)
D、\(IOIOOIOO\)

8、下列排序算法中( )排序在一趟结束后不一定能选出一个元素放在其最终位置上。
A、选择
B、冒泡
C、归并
D、快速

9、存储一个\(TYPE\)型变量占\(5\)个字节,现在定义\(TYPE\)型数组“\(TYPE a[5][6];\)”,将其存储在起始地址为\(1000\)的内存单元中,则元素\(A[3][4]\)的地址是( )。
A、\(1175\)
B、\(1110\)
C、\(1145\)
D、\(1075\)

10、以下叙述不正确的是( )。
A. 在\(C++\)程序中,语句必须要用分号"\(;\)"结束。
B. 若\(a\)是实型变量,\(C++\)程序中\(a=10;\)是正确的,因为整型数可以赋值给实型变量。
C. 在\(C++\)程序中,无论是整数还是实数都能正确无误地表示。
D. 在\(C++\)程序中,\(%\)是只能用于整数运算的运算符。

11、设\(a、b\)和\(c\)是\(int\)型变量,且\(a=2\),\(b=4\),\(c=6\),则下面表达式中值为\(0\)的是( )。
A、'a'+'b'
B、a<=b
C、a||b+c&&b-c
D、a<b&&!c||b>c

12、计算机病毒能够自我复制,这是计算机病毒的( )。
A、隐蔽性
B、潜伏性
C、传染性
D、破坏性

13、在\(Windows\)系统中,文件剪切操作的快捷键是( )。
A、\(CTRL+A\)
B、\(CTRL+C\)
C、\(CTRL+V\)
D、\(CTRL+X\)

14、下列数中最大的是( )
A、\((11100)2\)
B、\((31)10\)
C、\((36)8\)
D、\((1E)16\)

15、编译器的主要功能是( )。
A、将一种高级语言翻译成另一种高级语言
B、将源程序翻译成指令
C、将低级语言翻译成高级语言
D、将源程序重新组合

问题求解(每空5分,共计20分)

1、五个大小一样的球,其中两个红球、三个蓝球,将其排成一排,共有( )种不同的排法。
2、已知,\(a\)、\(b\)两数的最小公倍数是\(288\),最大公约数是\(4\),\(a\)、\(b\)两数不是\(288\)和\(4\)中的数,那么\(a\)、\(b\)两数的乘积为( )和为( )。
3、假设一棵二叉树的先序遍历为\(ABCDEF\),中序遍历为\(CBDAEF\),则后序遍历为( )。

阅读程序,选择答案(每小题4分,共计20分)

1、

#include <cstdio>
int main(){
    int x=3,y=4,z;
    z=x+=y;
    printf("%d %d\n",x,z);
    return 0;
}

A、\(7\) \(7\)
B、\(4\) \(7\)
C、\(3\) \(7\)
D、\(4\) \(3\)

2、

#include <cstdio>
int main() {
    int sum=0,m=1298;
    while(m!=0) {
        sum+=m%10;
        m=m/10;
    }
    printf("%d\n",sum);
    return 0;
}

A、\(1298\)
B、\(18\)
C、\(8921\)
D、\(20\)

3、

#include <cstdio>
int main() {
    int a=1, b=3, c=5, d=4, x;
    if(a<b)
        if(c<d) x=1;
        else if(a<c)
            if(b<d) x=2;
            else x=3;
        else x=6;
    else x=7;
    printf("%d\n",x);
    return 0;
}

A、\(1\)
B、\(2\)
C、\(3\)
D、\(6\)

4、

#include <cstdio>
int main() {
    char ch[7]= {"12ab56"};
    int i,s=0;
    for(i=0; ch[i]>='0' && ch[i]<='9'; i++)
        s=10*s+ch[i]-'0';
    printf("%d\n",s);
    return 0;
}

A、\(12\)
B、\(1256\)
C、\(12ab56\)
D、\(1\) \(2\) \(5\) \(6\)

5、

#include <cstdio>
int main() {
    int a,b,i;
    a=1; b=3; i=1;
    do {
        a=(b-a)*2+b;
        b=(a-b)*2+a;
    } while(b<20);
    printf("%d %d\n",a,b);  
    return 0;
}

A、\(7\) \(15\)
B、\(31\) \(63\)
C、\(15\) \(63\)
D、\(15\) \(31\)

阅读程序,填写结果(每题5分,共计20分)

1、

#include <cstdio>
int a[5]={2,5,3,1,4},n=5,sum=0;
int main() {
    for (int i = 0; i < n; ++i)
        for (int j = 0; j < i; ++j)
            if (a[j] > a[i])
                ++sum;
    printf("%d\n",sum);
    return 0;
}

输出:______

2、

#include <cstdio>
int main() {
    int  a[21],i,j,n=0;
    for(i=2; i<20; i++ )  a[i]=i;
    for (i=2; i<10; i++) {
        if (a[i]==0) continue;
        for (j=i+1; j<=20; j++)
            if (a[j]%a[i]==0) a[j]=0;
    }
    for (i=2; i<=20; i++)
        if (a[i]!=0) {
            printf("%d ",a[i]);
            n=n+1;
        }
    printf("\n");
    return 0;
}

输出:______

3、

#include <cstdio>
void Hex(int x){
    if(!x)return;
    Hex(x/6);
    printf("%d",x%6);
}
int main(){
    int n=93;
    Hex(n);putchar('\n');
    return 0;
}

输出:______

4、

#include <cstdio>
int main() {
    int i,test,p[11],head;
    for(i=0; i<10; i++)
        p[i]=i+1;
    p[10]=0;
    test=0;
    while(test!=p[test]) {
        for(i=1; i<3; i++) {
            head=test;
            test=p[head];
        }
        p[head]=p[test];
    }
    printf("%d\n",test);
    return 0;
}

输出:______

程序填空(每空3分,共计30分)

1、下面程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。
输入样例:

84 62 91 75 96 72 -1

输出样例:

96 62
#include <cstdio>
int main() {
    int x,amax,amin;
    scanf("%d",&x);
    amax=x;
    amin=x;
    while(______) {
        if(x>amax) amax=x;
        if(______) amin=x;
        ______;
    }
    printf("%d %d\n",amax,amin);
    return 0;
}

2、下面程序的功能是:第一行输入\(n\)和\(d\),第二行输入\(x\)轴正方向上的\(n\)个点的坐标\(p_i\),计算出距离不超过\(d\)的点对个数。(\(0≤p_i≤10^8,1≤n≤10^6\))
输入样例:

5 10
10 12 16 37 40

输出样例:

4
#include <cstdio>
int a[1000001],n,d,ans=0;
int main() {
    scanf("%d%d",&n,&d);
    for(int i=1; i<=n; ++i)
        scanf("%d",&a[i]);
    for(int i=1; i<n; ++i)
        for(int ______; j<=n; ++j) {
            if(a[j]-a[i]>d)
                ______;
            ______;(这里输入的双引号用中文双引号)
        }
    printf("%d\n",ans);
    return 0;
}

3、有一个箱子容量为\(V\),同时有\(n\)个物品,每个物品有一个体积。要求\(n\)个物品中任取若干个装入箱内,使箱子的剩余空间最小(\(0≤V≤20000,0≤n≤30\))。请完善程序。
输入:第一行\(V\)和\(n\);第二行\(n\)个物品的体积。输出:箱子最小剩余空间。
输入样例:

24 6
8 3 12 7 9 7    

输出样例:

0
#include <cstdio>
int Min = 9999999,v[31],m,n;
inline void dfs(int now,int num) {
    Min =                       ; 
    if (num == n+1) return;
    if (now-v[num] >= 0)
        dfs(______,num+1);
    dfs(______,num+1);
}
int main () {
    scanf("%d%d",&m,&n);
    for (int i = 1; i <= n; i++)
        scanf("%d",&v[i]);
    dfs(______,1);
    printf("%d\n",Min);
    return 0;
}?

提交方式

打表:

#include <string>
#include <iostream>
using namespace std;
int n;//题号
int main() {
    cin>>n;//输入题号
    if(n==1)
        cout<<""<<endl;//对应题号的答案 
    if(n==2)
        cout<<""<<endl;
    if(n==3)
        cout<<""<<endl;
    if(n==4)
        cout<<""<<endl;
    if(n==5)
        cout<<""<<endl;
    …… 
    return 0;
}

信息

ID
1173
难度
7
分类
(无)
标签
递交数
4
已通过
1
通过率
25%
上传者