小学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%
- 上传者