计算机二级选择题题库.docx
《计算机二级选择题题库.docx》由会员分享,可在线阅读,更多相关《计算机二级选择题题库.docx(19页珍藏版)》请在冰豆网上搜索。
计算机二级选择题题库
选择题题库
1.如下数据结构中,属于非线性结构的是( )。
A)循环队列
B)带链队列
C)二叉树
D)带链栈
1、参考答案:
C
【解析】树是简单的非线性结构,所以二叉树作为树的一种也是一种非线性结构。
2.如下数据结构中,能够按照"先进后出"原如此存取数据的是( )。
A)循环队列
B)栈
C)队列
D)二叉树
2、参考答案:
B
【解析】栈是按先进后出的原如此组织数据的。
队列是先进先出的原如此组织数据
3.对于循环队列,如下表示中正确的答案是( )。
A)队头指针是固定不变的
B)队头指针一定大于队尾指针
C)队头指针一定小于队尾指针
D)队头指针可以大于队尾指针,也可以小于队尾指针
3、参考答案:
D
【解析】循环队列的队头指针与队尾指针都不是固定的,随着入队与出队操作要进展变化。
因为是循环利用的队列结构所以对头指针有时可能大于队尾指针有时也可能小于队尾指针。
4.算法的空间复杂度是指( )。
A)算法在执行过程中所需要的计算机存储空间
B)算法所处理的数据量
C)算法程序中的语句或指令条数
D)算法在执行过程中所需要的临时工作单元数
4、参考答案:
A
【解析】算法的空间复杂度是指算法在执行过程中所需要的内存空间。
所以选择A)。
5.软件设计中划分模块的一个准如此是( )。
A)低内聚低耦合
B)高内聚低耦合
C)低内聚高耦合
D)高内聚高耦合
5、参考答案:
B
【解析】一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。
6.如下选项中不属于结构化程序设计原如此的是( )。
A)可封装
B)自顶向下
C)模块化
D)逐步求精
6、参考答案:
A
【解析】结构化程序设计的思想包括:
自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A)。
7.软件详细设计生产的图如下:
该图是( )
A)N-S图
B)PAD图
C)程序流程图
D)E-R图
7、参考答案:
C
【解析】N-S图提出了用方框图来代替传统的程序流程图,所以A)不对。
PAD图是问题分析图,它是继承程序流程图和方框图之后提出的又一种主要用于描述软件详细设计的图形表示工具,所以B)不对。
E-R图是数据库中的用于表示E-R模型的图示工具,所以D)不对。
根据图中所示表示方法是进展软件详细设计时使用的程序流程图。
8.数据库管理系统是( )。
A)操作系统的一局部
B)在操作系统支持下的系统软件
C)一种编译系统
D)一种操作系统
8、参考答案:
B
【解析】数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中数据组织、数据操纵、数据维护、控制与保护和数据服务等。
是一种在操作系统之上的系统软件。
9.在E-R图中,用来表示实体联系的图形是( )。
A)椭圆形
B)矩形
C)菱形
D)三角形
9、参考答案:
C
【解析】在E-R图中实体集用矩形,属性用椭圆,联系用菱形。
10.有三个关系R、S和T如下:
如此关系T是由关系R和S通过某种操作得到,该操作为( )。
A)选择
B)投影
C)交
D)并
10、参考答案:
D
【解析】在关系T中包含了关系R与S中的所有元组,所以进展的是并的运算。
11.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下表示中正确的答案是( )。
A)C语言程序仅可以编译执行
B)C语言程序仅可以解释执行
C)C语言程序既可以编译执行又可以解释执行
D)以上说法都不对
11、参考答案:
A
【解析】解释程序是将源程序(如BASIC)作为输入,解释一句后就提交计算机执行一句,并不形成目标程序。
编译程序是把高级语言(如FORTRAN、COBOL、Pascal、C等)源程序作为输入,进展翻译转换,产生出机器语言的目标程序,然后再让计算机执行这个目标程序,得到计算结果。
12.以下表示中错误的答案是( )。
A)用户所定义的标识符允许使用关键字
B)用户所定义的标识符应尽量做到"见名识意"
C)用户所定义的标识符中,大、小写字母代表不同标识
D)用户所定义的标识符必须以字母或下划线开头
12、参考答案:
A
【解析】C语言规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线,排除D);用户定义标识符中大小写字母之间是有区别的并且应尽量做到"见名识意",排除选项B)和C);C语言中还规定标识符不能为C语言的关键字,应当选项A)表示错误,正确答案是选项A)。
13.假如有说明语句:
charc='\72';如此变量c( )。
A)包含1个字符
B)包含2个字符
C)包含3个字符
D)说明不合法,c的值不确定
13、参考答案:
A
【解析】C语言的字符型常量中,允许用一种特殊形式的字符常量,就是以一个""开头的字符。
其中,"\ddd"表示用ASCII码(八进制数)表示一个字符,此题中的charc='\2'即表示占一个字符的变量c的ASCII码值。
14.现有定义inta;doubleb;floatc;chark;,如此表达式a/b+c-k值的类型为( )。
A)int
B)double
C)float
D)char
14、参考答案:
B
【解析】双目运算中两边运算量类型转换规律:
15.以下定义语句中正确的答案是()。
A)inta=b=0;
B)charA=65+1,b=′b′;
C)floata=1,*b=&a,*c=&b;
D)
15、参考答案:
B
【解析】此题考查变量的定义方法。
如果要一次进展多个变量的定义,如此在它们之间要用逗号隔开。
因此选项A)和D)错误;在选项C)中,变量c是一个浮点型指针,它只能指向一个浮点型数据,不能指向指针变量b;所以正确答案为B)。
16.假如在定义语句inta,b,c,*p=&c;之后,接着执行以下选项中的语句,如此能正确执行的语句是( )。
A)scanf("%d",a,b,c);
B)scanf("%d%d%d",a,b,c);
C)scanf("%d",&p);
D)scanf("%d",p);
16、参考答案:
D
【解析】scanf函数中的输入项必须是指针,只有选项D)符合这个要求。
17.以下程序的运行结果是( )。
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=4k=5i=5k=5
B)m=4k=4i=5k=5
C)m=4k=4i=4k=5
D)m=4k=5i=4k=5
17、参考答案:
B
【解析】由于在main()函数中,变量i=4,所以就调用fun(4),如此输出"m=4k=4"。
然后变量k增1等于5,变量i增1等于5,所以main()函数的"printf("i=%dk=%d\n",i,k);"语句输出"i=5k=5"。
18.在执行下述程序时,假如从键盘输入6和8,如此结果为( )。
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)以上都不对
18、参考答案:
B
【解析】此题中a的值为6,b的值为8,最后s的值为8,s*=s等价于s=s*s。
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);
}
程序运行后的输出结果是( )。
A)0
B)4
C)6
D)7
19、参考答案:
D
【解析】此题考查的是switch语句。
在switch语句中,表达式的值与某一个case后面的常量表达式的值相等时,就执行此case后面的语句,假如所有的case中的常量表达式的值都没有与表达式的值匹配的,就执行default后面的语句,各个case和default的出现次序不影响执行结果。
所以在此题中,当k=5和k=4的时候,case都没有与其匹配的值,所以执行了default语句;当k=3时,执行"case3:
n+=k;"得n=3,然后执行default;当k=2时,执行"case2:
case3:
n+=k;"得n=5,然后执行default;当k=1时,执行"case1:
n+=k;case2:
case3:
n+=k;"使得n加两次k,得到n=7。
20.有以下程序:
#include
main(){intx;
scanf("%d",&x);
if(x<=3);else
if(x!
=10)printf("%d\n",x);
}
程序运行时,输入的值在哪个X围才会有输出结果( )。
A)不等于10的整数
B)大于3且不等10的整数
C)大于3或等于10的整数
D)小于3的整数
20、参考答案:
B
【解析】if…else控制结构中,else总是与最近的未配对的if匹配。
此题的执行过程为:
如果输入整数小于3如此不进展任何操作,否如此判断是否不等于10,假如为真如此进展输出。
因此程序输出的数据为大于3且不等于10的整数。
21.有以下程序:
#include
main(){inta=1,b=0;
printf("%d,",b=a+b);
printf("%d\n",a=2*b)}
程序运行后的输出结果是( )。
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");
}
}
假如要按以下形式输出数组右上半三角
1234
678
1112
16
如此在程序下划线处应填入的语句是( )。
A)i-1
B)i+1
C)i
D)4-i
22、参考答案:
C
【解析】此题中嵌套了两个for语句,第一个用来输出空格,第二个用来输出数字。
如此类型的输出某种格式的考题,一般是采用多重循环来解决,需要考生找出输出数据的特点,并用相对应的数学公式表达出来。
23.以下程序段中,与语句:
k=a>b?
(b>c?
1:
0):
0;功能一样的是()。
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;
23、参考答案:
A
【解析】表达式k=a>b?
(b>