一、选择题(1)~(10)每小题2分,(11)~(50)每小题1分,共60分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)数据的存储结构是指________。
A)存储在外存中的数据 B)数据所占的存储空间量
C)数据在计算机中的顺序存储方式 D)数据的逻辑结构在计算机中的表示
答案:D
评析:数据的逻辑结构在计算机存储空间中的存放形式形式称为数据的存储结构(也称数据的物理结构)。
(2)下列关于栈的描述中错误的是________。
A)栈是先进后出的线性表
B)栈只能顺序存储
C)栈具有记忆作用
D)对栈的插入与删除操作中,不需要改变栈底指针
答案:B
评析:栈是一种特殊的线性表,又称先进后出表(FILO---First In Last Out)。
(3)对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是
________。
A)冒泡排序为n2 B)冒泡排序为n
C)快速排序为n D)快速排序为n(n一1)/2
答案:D
评析:假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后扫描和n/2遍的从后往前扫描,需要比较次数为n(n-1)/2。快速排序法的最坏情况比较次数也是n(n-1)/2。
(4)对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为________。
A)log2n B)n/2 C)n D)n+l
答案:C
评析:顺序查找过程中,如果被查找的元素是线性表中的最后一个元素,或者元素不在线性表中,则需要与线性表中所有的元素进行比较。对长度为n的线性表进行顺序查找,在最坏情况下需要比较n次。
(5)下列对于线性链表的描述中正确的是________。
A)存储空间不一定是连续,且各元素的存储顺序是任意的
B)存储空间不一定是连续,且前件元素一定存储在后件元素的前面
C)存储空间必须连续,且前件元素一定存储在后件元素的前面
D)存储空间必须连续,且各元素的存储顺序是任意的
答案:A
评析:在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。
(6)下列对于软件测试的描述中正确的是________。
A)软件测试的目的是证明程序是否正确
B)软件测试的目的是使程序运行结果正确
C)软件测试的目的是尽可能多地发现程序中的错误
D)软件测试的目的是使程序符合结构化原则
答案:C
评析:关于软件测试的目的,Grenford J.Myers再《The Art of Software Testing》一书中给出了深刻的阐述,整体来说,软件测试的目的就是尽可能多地发现程序中的错误。
(7)为了使模块尽可能独立,要求________。
A)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强
B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱
C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱
D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强
答案:B
评析:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。软件设计,应尽量做到高内聚,低耦合,有利于提高模块的独立性。
(8)下列描述中正确的是________。
A)程序就是软件
B)软件开发不受计算机系统的限制
C)软件既是逻辑实体,又是物理实体
D)软件是程序、数据与相关文档的集合
答案:D
评析:计算机软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。
(9)数据独立性是数据库技术的重要特点之一,所谓数据独立性是指________。
A)数据与程序独立存放
B)不同的数据被存放在不同的文件中
C)不同的数据只能被对应的应用程序所使用
D)以上三种说法都不对
答案:D
评析:数据独立性是数据与程序间的互不依赖性,即数据库中数据独立于应用程序而不依赖于应用程序。也就是说,数据的逻辑结构、存储结构与存取方式的改变不会影响应用程序。选项A、B、C三种说法都是错误的。
(10)用树形结构表示实体之间联系的模型是________。
A)关系模型 B)网状模型 C)层次模型 D)以上三个都是
答案:C
评析:层次模型是最早发展起来的数据库模型,它的基本结构是树形结构。
(11)算法具有五个特性,以下选项中不属于算法特性的是________。
A)有穷性 B)简洁性 C)可行性 D)确定性
答案:B
评析:有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性是算法的基本特性。
(12)以下选项中可作为c语言合法常量的是________。
A)-80. B)-080 C)-8e1.0 D)-80.0e
答案:A
评析:c语言的常量分为整型常量、实型常量和字符型常量。选项A属于实型常量中的十进制小数形式的表示法,是合法的。
(13)以下叙述中正确的是________。
A)用C程序实现的算法必须要有输入和输出操作
B)用C程序实现的算法可以没有输出但必须要输入
C)用C程序实现的算法可以没有输入但必须要有输出
D)用C程序实现的算法可以既没有输入也没有输出
答案:C
评析:算法的特性中包括"有零个或多个输入"及"有一个或多个输出"这两个特性。一个算法得到的结果就是算法的输出,没有输出的算法是没有意义的,所以一个算法必须至少有一个输出。
(14)以下不能定义为用户标识符的是________。
A)Main B)_0 C)_int D)sizeof
答案:D
评析:C语言规定标识符只能由字母、数字和下划线三种符号组成,而且第一个字符必须是字母或下划线。注意:大写字母和小写字母被认为是两个不同的字符。A中Main与主i函数名main不同。
(15)以下选项中不能作为合法常量的是________。
A)1.234e04 B)1.234e0.4 C)1.234e+4 D)1.234e0
答案:B
评析:指数形式的实型常量要求字每e(或E)之前必需有数字,且e后面的指数必须为整数,所以本题中选项B非法。
(16)数字字符0的ASCII值为48,若有以下程序
main()
{char a="1",b="2";
printf("%c,",b++);
printf("%d\n",b-a);
)
程序运行后的输出结果是________。
A) 3,2 B)50,2 C)2,2 D)2,50
答案:C
评析l执行语句"printf("%c,ll,b++);"后,b的值变成字符3,执行"printf("%d\n",b-a);",即'3'-'1'。
(17)有以下程序
main( )
{
int m=12, n=34;
printf("%d%d",m++,++n);
printf("%d%d\n",n++,++m);
}
程序运行后的输出结果是________。
A)12353514 B)12353513 C)12343514 D)12343513
答案:A
评析:执行"printf("%d%d"m++,++n);"后,输出的是m和n+l的值1235,接着执行
"printf("%d%d\n",n++,++m);"输出n和m+l的值3514。
(18)有定义语句:int b;char c[10】;,则正确的输入语句是________。
A) scanf("%d%s",&b,&C); B) scanf("%d%s",&b,C);
C) scanf("%d%s",b,C); D) scanf("%d%s",b,&C);
答案:B
评析:scanf函数中的"格式控制"后面应当是地址,而不是变量名。对于变量,通过地址运算符"&"求出内存中的地址;对于数组c[10],数组名c即为数组在内存中的地址。
(19)有以下程序
main()
{int m,n,p;
scanf("m=%dn=%dp=%d",&m,&n,&p);
printf("%d%d%d\n",m,n,p);
}
若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,
则正确的输入是________。
A) m。123n=456p=789 B) m=123 n=456 p=789
C) m=123,n=456,p=789 D) 123 456 789
答案:A
评析:根据本题的数据输入形式"scanf("m=%dn=%dp=%d"&m,&n,&p);"说明在输入数据时,必须输入"m="、"n="、"p="字符,且中间不能含有空格。
(20)有以下程序
main()
{ int a,b,d=25;
a=d/10%9;
b=a&&(-1);
printf("%d,%d\n",a,b);
}
程序运行后的输出结果是________。
A)6,l B)2,l C)6,0 D)2,0
答案:B
评析:本题中"a=d/10%9;"的值为25/10%9=2; "b=a&&(-1);"为2&&(-1)=1(注意:-1表示真,只有O才表示假),所以a,b的值分别为2,1。
(21)有以下程序
main()
{
int i=1 j=2,k=3;
if(i++==1&&(++j==3||k++==3))
printf("%d%d%d\n",i,j,k);
}
程序运行后的输出结果是________。
A)l 2 3 B)2 3 4 C) 2 2 3. D)2 3 3
答案:D
评析:执行"i++==1&&(++j==3‖k++==3)"时,表达式"i++==1"嗨值为真,其值为1,表达式"++j=3"的值为真,根据短路原理,右边的表达式"k++==3"不再进行运算。括号中表达的值为l,作与运算后整个表达式的值也为l,输出i.j,k时,由于未执行过k,所以它们的值分别为2,3,3。
(22)若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式a<b?a:c<d?c:d的值是________。
A)l B)2 C)3 D)4
答案:A
评析:条件表达式的一般形式为:表达式17表达式2:表达式3
本题先求的是a<b的值,为真,所以整个表达式"a<b?a:c<d?c:d"的值为a的值1。
(23)有以下程序
main( )
{
int p[8]={11,12,13,14,15,16,17,18},i=O,j=0;
while(i++<7)if p[i]%2)j+-=p[i];
printf("%d\n",j);
}
程序运行后的输出结果是________。
A)42 B)45 C)56 D)60
答案:B
评析:本程序的作用是求除p[O]外的其它奇数的和。
(24)有以下程序
main()
{
char a[7]= "a0\OaO\0"; int i,j;
i=sizeof(a);j=strlen(a);
printf("%d%d\n",i,j);
)
程序运行后的输出结果是________。
A)2 2 B)7 6 C)7 2 D)6 2
答案:C
评析:c语言中以'\0'作为字符串的结束符,且strlen()函数计算的是'\0'字符前的所有字符的个数。数组定义以后系统就为其分配相应大小的内存空间,而不论其中有没有内容。
(25)以下能正确定义一维数组的选项是________。
A)int a[5]={0,1,2,3,4,5; B)char a[]={0,1,2,3,4,5};
C)char a={'A','B','C'}; D)int a[5]="0123";
答案:B
评析:选项A中定义的是5个数组元素,但赋值的时候赋的是6个元素,所以出错;选项c不符合数组定义形式,数组名后应加上"[]";选项D的类型说明符错误,如果用char定义就对了;选项B中的0,1,2,3,4,5分别表示对应字符的ASCII码,所以选项B是正确的。
(26)有以下程序
int fl(int x,int y){return x>y?x:y;}
int f2(int x,int y){return x>y?y:x;}
main()
{
int a=4,b=3,c=5,d=2,e,f,g;
e=f2(f1(a,b),f1(c,d));f=fl(f2(a,b),f2(c,d));
g=a+b+c+d-e-f;
printf("%d,%d,%d\n",e,f,g);
)
程序运行后的输出结果是________。
A)4,3,7 B)3,4,7 C)5,2,7 D)2,5,7
答案:A
评析:函数n的功能是返回两个数中比较大的值,f2的功能是返回两个数中比较小的值。
(27)已有定义:char a[]="xyz",b[]={'x','y','z};,以下叙述中正确的是________。
A)数组a和b的长度相同 B)a数组长度小于b数组长度
C)a数组长度大于b数组长度 D)上述说法都不对
答案:C
评析:c语言规定'\0'为字符串结束标志。所以"char a[]="xyz""的数组长度为4,而"b[]={'x','y','z'};"的数组长度为3,数组长度与strlen函数所求的长度不同,本题是指数组占内存空间的大小。
相关阅读:
-----------------------------------------------
05年9月等级考试二级C语言考前上机密卷2
05年9月等级考试二级C语言考前上机密卷1
05年9月等级考试二级C语言考前密卷(十)
05年9月等级考试二级C语言考前密卷(九)
05年9月等级考试二级C语言考前密卷(八)
05年9月等级考试二级C语言考前密卷(七)
05年9月等级考试二级C语言考前密卷(六)
05年9月等级考试二级C语言考前密卷(五)
05年9月等级考试二级C语言考前密卷(四)
05年9月等级考试二级C语言考前密卷(三)
------------------------------------------------