计算机二级选择题题库完整.docx
《计算机二级选择题题库完整.docx》由会员分享,可在线阅读,更多相关《计算机二级选择题题库完整.docx(78页珍藏版)》请在冰豆网上搜索。
![计算机二级选择题题库完整.docx](https://file1.bdocx.com/fileroot1/2022-11/25/11c1009d-9fb0-4f28-bbe9-46bb63444871/11c1009d-9fb0-4f28-bbe9-46bb634448711.gif)
计算机二级选择题题库完整
无纸化试题第三套
1.下列叙述中正确的是( D )。
A)栈是"先进先出"的线性表
B)队列是"先进后出"的线性表
C)循环队列是非线性结构
D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构
2.支持子程序调用的数据结构是( A )。
A)栈
B)树
C)队列
D)二叉树
3.某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是( C )。
A)10
B)8
C)6
D)4
4.下列排序方法中,最坏情况下比较次数最少的是( D )。
A)冒泡排序
B)简单选择排序
C)直接插入排序
D)堆排序
5.软件按功能可以分为:
应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是( C )。
A)编译程序
B)操作系统
C)教务管理系统
D)汇编程序
6.下面叙述中错误的是( A )
A)软件测试的目的是发现错误并改正错误
B)对被调试的程序进行"错误定位"是程序调试的必要步骤
C)程序调试通常也称为Debug
D)软件测试应严格执行测试计划,排除测试的随意性
7.耦合性和聚性是对模块独立性度量的两个标准。
下列叙述中正确的是( B )。
A)提高耦合性降低聚性有利于提高模块的独立性
B)降低耦合性提高聚性有利于提高模块的独立性
C)耦合性是指一个模块部各个元素间彼此结合的紧密程度
D)聚性是指模块间互相连接的紧密程度
8.数据库应用系统中的核心问题是( A )。
A)数据库设计
B)数据库系统设计
C)数据库维护
D)数据库管理员培训
9.有两个关系R,S如下:
由关系R通过运算得到关系S,则所使用的运算为( B )。
A)选择
B)投影
C)插入
D)连接
10.将E-R图转换为关系模式时,实体和联系都可以表示为( C )。
A)属性
B)键
C)关系
D)域
11.以下叙述中错误的是( A )。
A)使用三种基本结构构成的程序只能解决简单问题
B)结构化程序由顺序、分支、循环三种基本结构组成
C)C语言是一种结构化程序设计语言
D)结构化程序设计提倡模块化的设计方法
12.以下四个程序中,完全正确的是( B )。
A)#include
main();
{/*/programming/*/
printf("programming!
\n");}
B)#include
main()
{/*programming*/
printf("programming!
\n");}
C)#include
main()
{/*/*programming*/*/
printf("programming!
\n");}
D)include
main()
{/*programming*/
printf("programming!
\n");}
13.C源程序中不能表示的数制是(D )。
A)十六进制
B)八进制
C)十进制
D)二进制
14.以下选项中,能用作用户标识符的是( A )。
A) 0
B)8 8
C)void
D)unsigned
15.若有定义语句:
intx=10;,则表达式x-=x+x的值为( C )。
A)0
B)-20
C)-10
D)10
16.有以下程序:
A
#include
main()
{ inta=1,b=0;
printf("%d,",b=a+b);
printf("%d\n",a=2*b);
A)1,2
B)1,0
C)3,2
D)0,0
17.有以下程序:
#include
main()
{ inta1,a2;charc1,c2;
scanf("%d%c%d%c",&a1,&c1,&a2,&c2);
printf("%d,%c,%d,%c",a1,c1,a2,c2);
}
若想通过键盘输入,使得a1的值为12,a2的值为34,c1的值为字符a,c2的值为字符b,程序输出结果是:
12,a,34,b则正确的输入格式是(以下
代表空格,代表回车)( D)。
A)12
a34
b
B)12
a
34]
b
C)12,a,34,b
D)12a34b
18.若变量已正确定义,在if(W)printf("%d\n",k);中,以下不可替代W的是( A )。
A)a<>b+c
B)ch=getchar()
C)a==b+c
D)a++
19.有以下程序段:
#include
inta,b,c;
a=10;b=50;c=30;
if(a>b)a=b,b=c;c=a;
printf("a=%db=%dc=%d\n",a,b,c);
程序的输出结果是( B)。
A)a=10b=50c=30
B)a=10b=50c=10
C)a=10b=30c=10
D)a=50b=30c=50
20.下列叙述中正确的是(A )。
A)在switch语句中,不一定使用break语句
B)在switch语句中必须使用default
C)break语句必须与switch语句中的case配对使用
D)break语句只能用于switch语句
21.以下不构成无限循环的语句或语句组是(A )。
A)n=0;
do{++n;}while(n<=0);
B)n=0;
while
(1){n++;}
C)n=10;
while(n);{n--;}
D)for(n=0,i=1;;i++)n+=i;
22.有以下程序:
#include
main()
{ intc=0,k;
for(k=1;k<3;k++)
switch(k)
{default:
c+=k;
case2:
c++;break;
case4:
c+=2;break;
}
printf("%d\n",c);
}
程序运行后的输出结果是(C )。
A)7
B)5
C)3
D)9
23.有以下程序:
#include
intf(intx,inty)
{return((y-x)*x);}
main()
{inta=3,b=4,c=5,d;
d=f(f(a,b),f(a,c));
printf("%d\n",d);
}
程序运行后的输出结果是( D )。
A)7
B)10
C)8
D)9
24.若有定义语句:
doublea,*p=&a;以下叙述中错误的是( A )。
A)定义语句中的*号是一个间址运算符
B)定义语句中的*号是一个说明符
C)定义语句中的p只能存放double类型变量的地址
D)定义语句中,*p=&a把变量a的地址作为初值赋给指针变量p
25.若有定义语句:
doublex,y,*px,*py;执行了px=&x;py=&y;之后,正确的输入语句是( A )。
A)scanf("%lf%le",px,py);
B)scanf("%f%f"&x,&y);
C)scanf("%f%f",x,y);
D)scanf("%lf%lf",x,y);
26.以下定义数组的语句中错误的是( B )。
A)intnum[][3]={{1,2},3,4,5,6};
B)intnum[2][4]={{1,2},{3,4},{5,6}};
C)intnum[]={1,2,3,4,5,6};
D)intnum[][4]={1,2,3,4,5,6};
27.有以下程序:
#include
voidfun(inta,intb)
{ intt;
t=a;a=b;b=t;
}
main()
{ intc[10]={1,2,3,4,5,6,7,8,9,0},i;
for(i=0;i<10;i+=2)fun(c[i],c[i+1]);
for(i=0;i<10;i++)printf("%d,",c[i]);
printf("\n");
}
程序的运行结果是( A )。
A)1,2,3,4,5,6,7,8,9,0,
B)2,1,4,3,6,5,8,7,0,9,
C)0,9,8,7,6,5,4,3,2,1,
D)0,1,2,3,4,5,6,7,8,9,
28.有以下程序:
#include
main()
{intx[3][2]={0},i;
for(i=0;i<3;i++)scanf("%d",x[i]);
printf("%3d%3d%3d\n",x[0][0],x[0][1],x[1][0]);
}
若运行时输入:
246<回车>,则输出结果为( A )。
A)204
B)200
C)240
D)246
29.有以下程序段:
#include
intj;floaty;charname[50];
scanf("%2d%f%s",&j,&y,name);
当执行上述程序段,从键盘上输入555667777abc后,y的值为( A )。
A)566.0
B)55566.0
C)7777.0
D)566777.0
30.下列语句组中,正确的是( A )。
A)char*s;s="Olympic";
B)chars[7];s="Olympic";
C)char*s;s={"Olympic"};
D)chars[7];s={"Olympic"};
31.有以下函数:
intfun(char*s)
{char*t=s;
while(*t++);
return(t-s);
}
该函数的功能是( C )
A)计算s所指字符串的长度
B)比较两个字符串的大小
C)计算s所指字符串占用存字节的个数
D)将s所指字符串复制到字符串t中
32.有以下程序(注:
字符a的ASCII码值为97):
#include
main()
{ char*s={"abc"};
do
{ printf("%d",*s%10);++s;}
while(*s);
}
程序运行后的输出结果是( A )。
A)789
B)abc
C)7890
D)979899
33.设有如下函数定义:
#include
intfun(intk)
{ if(k<1)return0;
elseif(k==1)return1;
elsereturnfun(k-1)+1;
}
若执行调用语句:
n=fun(3);,则函数fun总共被调用的次数是( B )。
A)2
B)3
C)4
D)5
34.有以下程序:
#include
intf(intn);
main()
{ inta=3,s;
s=f(a);s=s+f(a);printf("%d\n",s);
}
intf(intn)
{ staticinta=1;
n+=a++;
returnn;
}
程序运行后的输出结果是( A )。
A)9
B)8
C)7
D)10
35.设有定义:
structcomplex
{ intreal,unreal;}data1={1,8},data2;
则以下赋值语句中错误的是( A )。
A)data2=(2,6);
B)data2=data1;
C)data2.real=data1.real;
D)data2.real=data1.unreal;
36.有以下程序:
#include
structS{intn;inta[20];};
voidf(structS*p)
{inti,j,t;
for(i=0;i
n-1;i++)
for(j=i+1;j
n;j++)
if(p->a[i]>p->a[j]){ t=p->a[i];p->a[i]=p->a[j];p->a[j]=t;}
}
main()
{inti;structSs={10,{2,3,1,6,8,7,5,4,10,9}};
f(&s);
for(i=0;i}
程序运行后的输出结果是(C )。
A)2,3,1,6,8,7,5,4,10,9,
B)10,9,8,7,6,5,4,3,2,1,
C)1,2,3,4,5,6,7,8,9,10,
D)10,9,8,7,6,1,2,3,4,5,
37.有以下程序:
#include
#include
typedefstruct{charname[9];charsex;intscore[2];}STU;
STUf(STUa)
{ STUb={"Zhao",'m',85,90};
inti;
strcpy(a.name,b.name);
a.sex=b.sex;
for(i=0;i<2;i++)a.score[i]=b.score[i];
returna;
}
main()
{ STUc={"Qian",'f',95,92},d;
d=f(c);
printf("%s,%c,%d,%d,",d.name,d.sex,d.score[0],d.score[1]);
printf("%s,%c,%d,%d\n",c.name,c.sex,c.score[0],c.score[1]);
}
程序运行后的输出结果是( A )。
A)Zhao,m,85,90,Qian,f,95,92
B)Zhao,m,85,90,Zhao,m,85,90
C)Qian,f,95,92,Qian,f,95,92
D)Qian,f,95,92,Zhao,m,85,90
38.以下关于宏的叙述中正确的是( A )。
A)宏替换没有数据类型限制
B)宏定义必须位于源程序中所有语句之前
C)宏名必须用大写字母表示
D)宏调用比函数调用耗费时间
39.设有以下语句:
inta=1,b=2,c;
c=a^(b<<2);
执行后,c的值为( B )。
A)7
B)9
C)8
D)6
40.有以下程序:
#include
main()
{ FILE*fp;inta[10]={1,2,3},i,n;
fp=fopen("d1.dat","w");
for(i=0;i<3;i++)fprintf(fp,"%d",a[i]);
fprintf(fp,"\n");
fclose(fp);
fp=fopen("d1.dat","r");
fscanf(fp,"%d",&n);
fclose(fp);
printf("%d\n",n);
}
程序的运行结果是( D )。
A)321
B)12300
C)1
D)123
选择题题库4
1.下列数据结构中,属于非线性结构的是( C )。
A)循环队列
B)带链队列
C)二叉树
D)带链栈
2.下列数据结构中,能够按照"先进后出"原则存取数据的是( B )。
A)循环队列
B)栈
C)队列
D)二叉树
3.对于循环队列,下列叙述中正确的是( D )。
A)队头指针是固定不变的
B)队头指针一定大于队尾指针
C)队头指针一定小于队尾指针
D)队头指针可以大于队尾指针,也可以小于队尾指针
4.算法的空间复杂度是指( A )。
A)算法在执行过程中所需要的计算机存储空间
B)算法所处理的数据量
C)算法程序中的语句或指令条数
D)算法在执行过程中所需要的临时工作单元数
5.软件设计中划分模块的一个准则是( B )。
A)低聚低耦合
B)高聚低耦合
C)低聚高耦合
D)高聚高耦合
6.下列选项中不属于结构化程序设计原则的是( A )。
A)可封装
B)自顶向下
C)模块化
D)逐步求精
7.软件详细设计生产的图如下:
该图是( C )
A)N-S图
B)PAD图
C)程序流程图
D)E-R图
8.数据库管理系统是( B )。
A)操作系统的一部分
B)在操作系统支持下的系统软件
C)一种编译系统
D)一种操作系统
9.在E-R图中,用来表示实体联系的图形是( C )。
A)椭圆形
B)矩形
C)菱形
D)三角形
10.有三个关系R、S和T如下:
则关系T是由关系R和S通过某种操作得到,该操作为( D )。
A)选择
B)投影
C)交
D)并
11.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是( A )。
A)C语言程序仅可以编译执行
B)C语言程序仅可以解释执行
C)C语言程序既可以编译执行又可以解释执行
D)以上说法都不对
12.以下叙述中错误的是( A )。
A)用户所定义的标识符允许使用关键字
B)用户所定义的标识符应尽量做到"见名识意"
C)用户所定义的标识符中,大、小写字母代表不同标识
D)用户所定义的标识符必须以字母或下划线开头
13.若有说明语句:
charc='\72';则变量c( A )。
A)包含1个字符
B)包含2个字符
C)包含3个字符
D)说明不合法,c的值不确定
14.现有定义inta;doubleb;floatc;chark;,则表达式a/b+c-k值的类型为( B )。
A)int
B)double
C)float
D)char
15.以下定义语句中正确的是( B )。
A)inta=b=0;
B)charA=65+1,b=′b′;
C)floata=1,*b=&a,*c=&b;
D)doublea=0.0;b=1.1
16.若在定义语句inta,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是( D )。
A)scanf("%d",a,b,c);
B)scanf("%d%d%d",a,b,c);
C)scanf("%d",&p);
D)scanf("%d",p);
17.以下程序的运行结果是( B )。
intk=0;
voidfun(intm)
{ m+=k;k+=m;printf("m=%dk=%d",m,k++);}
main()
{ inti=4;
fun(i++);printf("i=%dk=%d\n",i,k);
}
A)m=4 k=5 i=5 k=5
B)m=4 k=4 i=5 k=5
C)m=4 k=4 i=4 k=5
D)m=4 k=5 i=4 k=5
18.在执行下述程序时,若从键盘输入6和8,则结果为( B )。
main()
{ inta,b,s;
scanf("%d%d",&a,&b);
s=a;
if(a
s=b;
s*=s;
printf("%d",s);}
A)36
B)64
C)48
D)以上都不对
19.有以下程序:
main()
{ intk=5,n=0;
while(k>0){switch(k){
default:
break;
case1:
n+=k;
case2:
case3:
n+=k;
}
k--;
}
printf("%d\n",n);
}
程序运行后的输出结果是( D )。
A)0
B)4
C)6
D)7
20.有以下程序:
#include
main(){intx;
scanf("%d",&x);
if(x<=3);else
if(x!
=10)printf("%d\n",x);
}
程序运行时,输入的值在哪个围才会有输出结果( B )。
A)不等于10的整数
B)大于3且不等10的整数
C)大于3或等于10的整数
D)小于3的整数
21.有以下程序:
#include
main(){inta=1,b=0;
printf("%d,",b=a+b);
printf("%d\n",a=2*b)}
程序运行后的输出结果是( D )。
A)0,0
B)1,0
C)3,2
D)1,2
22.有以下程序:
main(){intnum[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j;
for(i=0;i<4;i++){for(j=0;j<=i;j++)printf("%4c",'');
for(j= ;j<4;j++)printf("%4d",num[i][j]);
printf("\n");
}
}
若要按以下形式输出数组右上半三角
1 2 34
6 7 8
1112
16
则在程序下划线处应填入的语句是( C )。
A)i-1
B)i+1
C)i
D)4-i
23.以下程序段中,与语句:
k=a>b?
(b>c?
1:
0):
0;功能相同的是( A )。
A)if((a>b)&&(b>c))k=1;
elsek=0;
B)if((a>b)‖(b>c))k=1;
elsek=0;
C)if(a<=b)k=0;
elseif(b<=c)k=1;
D)if(a>b)k=1;
elseif(b>c)k=1;
elsek=0;
24.有以下程序:
voidss(char*s,chart)
{ while(*s)
{ if(*s==t)*s=t-a+A;
s++;}}
main()
{ charstr1[100]="abcddfefdbd