选择题题库
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.软件设计中划分模块的一个准则是(  )。
while语句流程图的例题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)作为输入,解释一句后就提交计算机执行一句,并不形成目标程序。编译程序是把高级语言(如FORTRANCOBOLPascalC等)源程序作为输入,进行翻译转换,产生出机器语言的目标程序,然后再让计算机执行这个目标程序,得到计算结果。
12.以下叙述中错误的是(  )。
A)  用户所定义的标识符允许使用关键字
B)  用户所定义的标识符应尽量做到"见名识意"
C)  用户所定义的标识符中,大、小写字母代表不同标识
D)  用户所定义的标识符必须以字母或下划线开头
12、参考答案:A
【解析】C语言规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线,排除D);用户定义标识符小写字母之间是有区别的并且应尽量做到"见名识意",排除选项B)和C);C语言中还规定标识符不能为C语言的关键字,故选项A)叙述错误,正确答案是选项A)。
13.若有说明语句:char c='\72' ;则变量c(  )。
A)  包含1个字符
B)  包含2个字符
C)  包含3个字符
D)  说明不合法,c的值不确定
13、参考答案:A
【解析】C语言的字符型常量中,允许用一种特殊形式的字符常量,就是以一个""开头的字符。其中,"\ddd"表示用ASCII码(八进制数)表示一个字符,本题中的charc= '\2' 即表示占一个字符的变量cASCII码值。
14.现有定义int a;double b;float c;char k;,则表达式a/b+c-k值的类型为(  )。
A)  int
B)  double
C)  float
D)  char
14、参考答案:B
【解析】双目运算中两边运算量类型转换规律:
15.以下定义语句中正确的是()。
A)  int a=b=0;
B)  char A=65+1,b=′b′;
C)  float a=1,*b=&a,*c=&b;
D)  double a=0.0;b=1.1
15、参考答案:B
【解析】本题考查变量的定义方法。如果要一次进行多个变量的定义,则在它们之间要用逗号隔开。因此选项A)和D)错误;在选项C)中,变量c是一个浮点型指针,它只能指向一个浮点型数据,不能指向指针变量b;所以正确答案为B)。
16.若在定义语句int a,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.以下程序的运行结果是(  )。
int k=0;
void fun(int m)
{m+=k;k+=m;printf("m=%d k=%d ",m,k++);}
main()
{int i=4;
fun(i++); printf("i=%d k=%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=4 k=4"。然后变量k增1等于5,变量i增1等于5,所以main()函数的"printf("i=%dk=%d\n",ik);"语句输出"i=5 k=5"。
18.在执行下述程序时,若从键盘输入6和8,则结果为(  )。
main()
{int a,b,s;
scanf("%d%d",&a,&b);
s=a ;
if(a<b)
s=b;
s*=s;
printf("%d",s); }
A)  36
B)  64 
C)  48
D)  以上都不对
18、参考答案:B
【解析】本题中a的值为6,b的值为8,最后s的值为8,s*=s等价于ss*s
19.有以下程序:
main()
{int k=5,n=0;
while(k>0) { switch(k) {
default : break;
case 1 : n+=k;
case 2 :
case 3 : n+=k;
}
k--;
}
printf("%d\n",n);
}
程序运行后的输出结果是(  )。
A)  0
B)  4
C)  6

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。