计算机二级无纸化选择题题库.docx
- 文档编号:4406115
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:22
- 大小:30.93KB
计算机二级无纸化选择题题库.docx
《计算机二级无纸化选择题题库.docx》由会员分享,可在线阅读,更多相关《计算机二级无纸化选择题题库.docx(22页珍藏版)》请在冰点文库上搜索。
计算机二级无纸化选择题题库
无纸化试题第三套
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.有以下程序:
D
#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则正确的输入格式是(以下
代表空格,
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 1,、参考答案: D 【解析】栈是先进后出的线性表,所以A)错误;队列是先进先出的线性表,所以B)错误;循环队列是线性结构的线性表,所以C)错误。 2、参考答案: A 【解析】栈支持子程序调用。 栈是一种只能在一端进行插入或删除的线性表,在主程序调用子函数时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,继续向下执行,这种调用符合栈的特点,因此本题的答案为A)。 3、参考答案: C 【解析】根据二叉树的基本性质3: 在任意一棵二叉树中,度为0的叶子节点总是比度为2的节点多一个,所以本题中是5+1=6个。 4、参考答案: D 【解析】冒泡排序与简单插入排序与简单选择排序法在最坏情况下均需要比较n(n-1)/2次,而堆排序在最坏情况下需要比较的次数是 5、参考答案: C 【解析】编译软件、操作系统、汇编程序都属于系统软件,只有C)教务管理系统才是应用软件。 6、参考答案: A 【解析】软件测试的目的是为了发现错误而执行程序的过程,并不涉及改正错误,所以选项A)错误。 程序调试的基本步骤有: 错误定位、修改设计和代码,以排除错误、进行回归测试,防止引进新的错误。 程序调试通常称为Debug,即排错。 软件测试的基本准则有: 所有测试都应追溯到需求、严格执行测试计划,排除测试的随意性、充分注意测试中的群集现象、程序员应避免检查自己的程序、穷举测试不可能、妥善保存测试计划等文件。 7、参考答案: B 【解析】模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。 一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,所以A)错误,B)正确。 耦合性是模块间互相连接的紧密程度的度量而内聚性是指一个模块内部各个元素间彼此结合的紧密程度,所以C)与D)错误。 8、参考答案: A 【解析】数据库应用系统中的核心问题是数据库的设计。 9、参考答案: B 【解析】投影运算是指对于关系内的域指定可引入新的运算。 本题中S是在原有关系R的内部进行的,是由R中原有的那些域的列所组成的关系。 所以选择B)。 10、参考答案: C 【解析】从E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E-R图中属性也可以转换成关系的属性。 11、参考答案: A 【解析】使用顺序,选择(分支),循环三种基本结构构成的程序可以解决所有问题,而不只是解决简单问题,所以A)错误。 12、参考答案: B 【解析】C语言中注释语句的注释方法是: /*注释内容*/或//注释一行。 所以A)与C)错误,D)选项中预编译命令include 所以选择B)。 13、参考答案: D 【解析】在C语言中整型常量可以用十进制、八进制和十六进制等形式表示,但不包括二进制,所以选择D)。 14、参考答案: A 【解析】C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。 另外,关键字不能作为标识符。 B)中以数字8开头,所以错误。 C)与D)中用的是关键字void与unsigned,所以错误。 15、参考答案: C 【解析】算术运算符+的优先级高于-=,且-=的结合方向为自右向左,所以表达式x-=x+x可以表示成x=x-(x+x)=10-(10+10)=-10,选择C)。 16、参考答案: A 【解析】首先打印b=a+b=1+0=1的值1,此时已给b赋值为1。 然后打印a=2*b=2*1=2的值2。 所以结果是1,2. 17、参考答案: D 【解析】在输入多个数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。 所以应按选项D)的顺序输入数据。 18、参考答案: A 【解析】选项A)是非法的表达式,C语言中没有<>运算符。 19、参考答案: B 【解析】本题中a>b的条件不满足,所以不执行逗号表达式a=b,b=c;的操作,而是执行c=a操作,即c的值为10。 20、参考答案: A 【解析】default语句在switch语句中可以省略,所以B)错误;switch语句中并非每个case后都需要使用break语句,所以C)错误;break语句还可以用于for等循环结构中,所以D)错误。 21、参考答案: A 【解析】选项A)中do后面的语句只执行了一次便结束了循环;B)选项中条件while (1)永远成立,所以是死循环;C)选项中n的值为10,而循环体为空语句,所以while(n)永远为真,进入死循环;D)选项中for语句第二个表达式为空,所以没有判别条件,进入死循环。 22、参考答案: C 【解析】向switch语句块传送参数后,编译器会先寻找匹配的case语句块,找到后就执行该语句块,遇到break跳出;如果没有匹配的语句块,则执行default语句块。 case与default没有顺序之分。 所以第一次循环k的值为1,执行c+=k,c的值为1,再执行case2后的语句c++,c的值为2,遇到break语句跳出循环;第二次循环k的值为2,执行case2后面的语句c++,c的值为3,跳出循环。 23、参考答案: D 【解析】调用f(a,b)函数返回3,调用f(a,c)函数返回6,所以外层调用f(f(a,b),f(a,c));即调用f(3,6)函数返回9。 24、参考答案: A 【解析】在变量定义doublea,*p=&a;中,*号是一个指针运算符,而非间址运算符,所以A)错误。 25、参考答案: A 【解析】因为x,y都是double型数据,所以输入时的格式字符应为%lf,所以B)与C)错误。 D)选项中scanf("%lf%lf",x,y);应为scanf("%lf%lf",&x,&y);。 26、参考答案: B 【解析】B)选项中定义的数组为2行4列,而赋值时赋成了3行所以出错。 27、参考答案: A 【解析】函数调用中发生的数据传送是单向的。 即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。 因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化,所以数组c中的元素的值并没有变化,选择A)。 28、参考答案: A 【解析】本题中输入的3个数据2,4,6分别赋值给了x[0][0],x[1][0],x[2][0]。 x[0][1]仍为初始时的0,所以打印输出时的结果为A)选项。 29、参考答案: A 【解析】它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。 其中的格式命令可以说明最大域宽。 在百分号(%)与格式码之间的整数用于限制从对应域读入的最大字符数。 所以j的值为55,y的值为566.0,字符数组name为7777abc。 30、参考答案: A 【解析】字符型指针变量可以用选项A)的赋值方法: char*s;s="Olympic",选项C)的写法: char*s,s={"Olympic"};是错误的。 字符数组可以在定义的时候初始化: chars[]={"Olympic"};? 或者chars[]="Olympic",都是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 二级 无纸化 选择题 题库