2022年河南省驻马店市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第1页
2022年河南省驻马店市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第2页
2022年河南省驻马店市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第3页
2022年河南省驻马店市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第4页
2022年河南省驻马店市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2022年河南省驻马店市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.查找较快,且插入和删除操作也比较方便的查找方法是

A.分块查找B.二分查找C.顺序查找D.折半查找

2.用二分法查找一个长度为10的,排好序的线性表,查找不成功时,最多需要比较()次

A.5B.2C.4D.1

3.若变量已正确定义并赋初值,以下合法的赋值语句是()。

A.k=(m==n);B.k=-m-nC.k=int(m+n);D.k=m*n=1;

4.有以下程序voidf(intn,int*r){intr1=0;if(n%3==0)r1=n/3;elseif(n%5==0)r1=n/5;elsef(--n,&r1);*r=r1;}main(){intm=7,r;f(m,&r);printf("%d",r);}程序运行后的输出结果是A.2B.1C.3D.0

5.若变量已正确定义为int型,要通过语句“scanf(“%d,%d,%d”,&a,&b,&c);”将a赋值为1、将b赋值为2、将c赋值为3,以下输入形式中错误的是(注:□代表一个空格符)()。

A.1,2,3<Enter>

B.□□□1,2,3<Enter>

C.1,□□□2,□□□3<Enter>

D.1□2□3<Enter>

6.以下叙述中不正确的是

A.预处理命令行都必须以#号开始

B.在程序中凡是以#号开始的语句行都是预处理命令行

C.宏替换不占用运行时间,只占编译时间

D.在以下定义是正确的:#definePI3.1415926;

7.有如下程序段:

inta=14,b=15,x;

charc='A';

x=(a&&b)&&(c<'B'):

执行该程序后,x的值为()。A.A.trueB.falseC.0D.1

8.以下程序输出的结果是#include<stdio.h>#include<string.h>main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"},k;for(k=1;k<3;k++)printf("%s\n",&w[k][k]);}

A.ABCDFGHKLB.ABCEFGUMC.EFGJKOD.FGHKL

9.设有定义语句:charc1=92,c2=92;则以下表达式中值为零的是()。

A.c1∧c2B.c1&c2C.~c2D.c1|c2

10.有以下程序.#include<stdio.h>main{charc1,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&c1,&c2,&c3,&c4);c5=getchar;c6=getchar;putchar(c1);putchar(c2);printf("%c%c\n",c5,c6);}程序运行后,若从键盘输入(从第l列开始)123<回车>45678<回车>程序运行后,若从键盘输入(从第l列开始)123<回车>45678<回车>则输出结果是()。A.1267B.1256C.1278D.1245

11.C语言中的基本数据类型所占存储空间长度的顺序是()

A.char<=int<=float<=double<=long

B.int<=char<=float<=long<=double

C.int<=long<=float<=double<=char

D.char<=int<=float<=long<=double

12.以下程序运行后的输出结果是()。

A.1,2,3,1,5,9,

B.1,3,5,1,3,5,

C.1,3,5,0,d,8,

D.1,3,5,-1,3,7,

13.在目标串T[0,n-1]=”xwxxyxy”中,对模式串p[0,m-1]=”xy”进行子串定位操作的结果_______

A.0B.2C.3D.5

14.函数fun的功能是在a所指的具有n个元素的数组中查找最大值并返回给调用函数,但函数不完整:intfun(int*a,intn){int*p,*s;for(p=a,s=a;p-a<=""p="">if(________)s=p;return*s;}在if语句下划线处应填入的选项是()。

A.p>sB.*p>*sC.a[p]>a[s]D.p-a>p-s

15.设a和b均为double型变量,且a=5.5,b=2.5,则表达式(int)a+b/b的值是A.6.5B.6C.5.5D.6

16.判断一个顺序存储的队列sp为空的条件是()。

A.sp->front=sp->rear

B.sp->front=sp->rear+1

C.sp->front=sp->rear-1

D.sp->front=NULL

17.以下选项中,能表示逻辑值“假”的是()

A.1B.0.000001C.0D.100.0

18.下列关于数据库设计的叙述中,正确的是()。

A.在需求分析阶段建立数据字典

B.在概念设计阶段建立数据字典

C.在逻辑设计阶段建立数据字典

D.在物理设计阶段建立数据字典

19.对线性表进行二分法检索,其前提条件是()。

A.线性表以顺序方式存储,并按关键码值排好序

B.线性表以顺序方式存储,并按关键码的检索频率排好序

C.线性表以链式方式存储,并按关键码值排好序

D.线性表以链式方式存储,并按关键码的检索频率排好序

20.下列数据结构中,能用二分法进行查找的是()。

A.顺序存储的有序线性表B.结性链表C.二叉链表D.有序线性链表

二、2.填空题(20题)21.按照逻辑结构分类,结构可以分为线性结构和非线性结构,栈属于______。

22.下列程序的运行结果为【】。

main()

{inta=5,b=5,y,z;

y=b-->++a?++b:a;

z=++a>b?a:y;

printf("%d,%d,%d,%d",a,b,y,z);

}

23.以下程序运行后的输出结果是【】。

main()

{intX==1,y=0,a=0,b=0;

switch(x)

{case1:switch(y)

{case0:a++;break;

case1:b++;break;

}

case2:a++;b++;break;

}

printf("%d%d\n",a,b);

}

24.求任意一个数(用16位二进制码表示)的补码。

main()

{unsignedinta;

【】;

scanf("%O",&a);

printf("%o\n",getbits(a));

}

unsignedintgetbits(value)

unsignedintvalue;

{unstgnedintz;

z=【】;

if(z==0100000)

【】;

else

z=value;

return(z);

}

25.数据库保护分为:安全性控制、______、并发性控制和数据的恢复。

26.下列程序的输出结果是【】。

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=4,b=3,c=5,d=6;

t(a,b,c,d);

printf("%d%d\n",c,d);

}

27.对软件是否能达到用户所期望的要求的测试称为【】。

28.以下程序的输出结果是【】。

voidreverse(inta[],intn)

{inti,t;

for(i=0;i<n/2;i++)

{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}

}

main()

{intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;

reverse(b,8);

for(i=6;i<10;i++)s+=b[i];

printf("%d\n",s);

}

29.在面向对象方法中,允许作用于某个对象上的操作称为【】。

30.以下程序输出的最后一个值是【】。

intff(intn)

{staticintf=1;

f=f*n;

returnf;

}

main()

{inti;

for(i=1;i<5;i++)printf("%d\n",ff(i));}

31.以下程序可把输入的十进制数以十六进制数的形式输出,请填空。

#inelude<stdio.h>

main()

{eharb[17]={"0123456789ABCDEF"};

intc[64],d,i=0,base=16;

longn;

printf("Enteranumber:\n");

seanf("%ld",&n);

do{c[i]=【】;i++;n=n/base;}

while(n!=0);

printf("Transmitenewbase:\n");

for(--i;i>=0;--i)

{d=c[i];printf("%c",b【】);}

printf("\n");

}

32.常用的软件结构设计工具是结构图(SC),也称程序结构图。其中,用矩形表示______,用带空心圆的箭头表示传递的是数据。

33.若a是int型变量,则表达式(a=2*3,a*2),a+6的值为______。

34.已知字符A的ASCⅡ代码值为65,以下程序运行时若从键盘输入:B33<回车>.则输出结果是()。

#include

main()

{chara,b;

a=getchar();scanf("%d",&B);

a=a-'A'+'0';b=b*2;

printf("%c%c\n",a,B);

}

35.以下程序运行后的输出结果是【】。

voidfun()

{

staticinta=0;

a+=2;printf("%d",A);

}

main()

{intcc;

for(cc=1;cc<4,cc++)fun();

printf("\n");

}

36.设有下列的程序段:

charstr[]="Hello";

char*ptr;

ptr=-str;

执行上面的程序段后,*(ptr+5)的值为______。

37.算法的基本特征主要包括叫个方面,它们分别是可行性、确定性、()和拥有足够的情报。

38.下列的for语句的循环次数为______。

for(x=1,y=0;(y!=19)&&(x<7);x++);

39.与结构化需求分析方法相对应的是【】方法。

40.以上程序运行后的输出结果是【】。

main()

{inti=10,j=0;

do

{j=j+i;i-;}

while(i>2);

printf("%d\n",j);

}

三、1.选择题(20题)41.下列说法中不正确的是()。

A.指针是一个变量B.指针中存放的是数值C.指针可以进行加、减等算术运算D.指针变量占用存储空间

42.下面程序的运行结果是include<stdio.h>main(){inta=28,b;chars[10],*p;p=s;do{b=a%16;if(b<10)*p=b+48;else*p=b+55;p++;a=a/5;}while(a>0);*p='\0';puts(s);}

A.10B.C2C.C51D.\0

43.在关系模型中,()。

A.为了建立一个关系,首先要构造数据的逻辑关系

B.表示关系的二维表中各元组的每一个分量还可以分成若干数据项

C.一个关系的属性名表称为关系模式

D.一个关系可以包括多个二维表

44.若执行下面的程序时,从键盘输入5和2,则输出结果是

main()

{inta,b,k;

scanf("%d,%d",&a,&b);

k=a;

if(a<b)k=a%b;

elsek=b%a;

printf("%d\n",k);}

A.5B.3C.2D.0

45.下列程序中的for循环执行的次当次数是______。#defineN2#defineMN+i#defineNUM2*M+l#main(){inti;for(i=1;i<=NUM;i++)printf("%d\n",i);}

A.5B.6C.7D.8

46.以下不能定义为用户标识符的是()。

A.scanfB.VoidC.3comD.int

47.C语言结构体类型变量在程序执行期间,()。

A.所有成员一直驻留在内存中B.没有成员驻留在内存中C.部分成员驻留在内存中D.只有一个成员驻留在内存中

48.fseek函数的正确调用形式是()。

A.fseek(文件指针,起始点,位移量)

B.fseek(文件指针,位移量,起始点)

C.fseek(位移量,起始点,文件指针)

D.fseek(起始点,位移量,文件指针)

49.设血型占2个字节,则unsignedint所能表示的数据范围是______。

A.0~65535B.-32769~32767C.1~65536D.0~32767

50.数据库设计包括两个方面的设计内容,它们是()

A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计

51.下列程序的执行结果是______。#lnClude<stdio.h>unionun{inti;charc[2];};voidmain(){unionunx;x.c[0]=10x.c[l]=1;printf("\n%d,x.i);}

A.266B.11C.265D.138

52.有如下程序:main(){intn=9;while(n>6){n--;printf("%d",n);}}该程序的输出结果是

A.987B.876C.8765D.9876

53.下列对于软件测试的描述中正确的是()。

A.软件测试的目的是证明程序是否正确

B.软件测试的目的是使程序运行结果正确

C.软件测试的目的是尽可能多地发现程序中的错误

D.软件测试的目的是使程序符合结构化原则

54.下列字符数组初始化语句中,不正确的是()。

A.charc[]='goodmorning';

B.char,c[20]="goodmoming";

C.charc[]={'a','b','c','d'};

D.charc[]={"goodmoming"};

55.以下叙述中不正确的是

A.在不同的函数中可以使用相同的名字的变量

B.函数中的形式参数是局部变量

C.在一个函数内定义的变量只在本函数范围内有效

D.在一个函数内的复合语句中定义的变量在本函数范围内有效

56.有关物理独立性的描述错误的是()

A.物理独立性是指用户的应用程序与存储结构是相互独立的

B.符合物理独立性的数据在磁盘上的数据库中怎样存储用户可以不了解

C.符合物理独立性的数据,当其数据的物理存储改变了,应用程序不用改变

D.物理独立性是指用户的应用程序与存储结构是相互联系的

57.数据的存储结构是指()。

A.存储在外存中的数据B.数据所占的存储空间量C.数据在计算机中的顺序存储方式D.数据的逻辑结构在计算机中的表示

58.若有以下结构体,则正确的定义或引用的是()。structTest{intx;inty;}vl;

A.Test.x=10;

B.Testv2;v2.x=10;

C.struetv2;v2.x=10;

D.structTestv2={10};

59.下列函数值的类型是()。fun(doublex){floaty;y=3*x-4;returny;}

A.intB.不确定C.voidD.float

60.有下列二叉树,对此二叉树中序遍历的结果为()。

A.BDYEACFXZB.DYBEAFCZXC.ABCDEFXYZD.ABDYECFXZ

四、选择题(20题)61.

62.若有定义:“int*P,x=0,*p,p=&x;”,则语句“printf("%d\n",*p);”的输出结果是()。

A.随机值B.0C.x的地址D.P的地址

63.以下程序运行后的输出结果是()。

A.2B.4C.6D.3

64.以下程序的输出结果是()。main(){intRum=0;while(num<=2){num++;printf(”%d\n”,num);}}A.1B.1C.1234D.1223

65.

66.设有下列二叉树:

对此二叉树中序遍历的结果为()。

A.ACBDEFB.DEBFCAC.ABDECFD.DBEAFC

67.下列叙述中正确的是()。

A.程序执行的效率与数据的存储结构密切相关

B.程序执行的效率只取决于程序的控制结构

C.程序执行的效率只取决于所处理的数据量

D.以上三种说法都不对

68.

69.关系规范理论是关系数据库进行逻辑设计的基础,这个理论最基本的要求是关系中的每个属性是()。

A.类型不变的B.宽度不变的C.不可分割的D.互不相关的

70.一间宿舍可住多个学生,则实体宿舍和学生之间的联系是()。

A.一对一B.一对多C.多对一D.多对多

71.有以下程序:

程序运行后的输出结果是()。

A.11,12B.12,13C.13,14D.14,11

72.

73.读出以下语句的输出结果是()。

intx=10,y=10;

printf(“%d%d\n”,x--,--y);

A.1010B.99C.910D.109

74.下列有关数据库的描述,正确的是______。

A.数据库是一个DBF文件B.数据库是一个关系C.数据库是一个结构化的数据集合D.数据库是一组文件

75.

76.在下列结论中,只有一个是错误的,它是()。

A.C语言允许函数的递归调用

B.C语言中的continue语句,可以通过改变程序的结构而省略

C.有些递归程序是不能用非递归算法实现的

D.C语言中不允许在函数中再定义函数

77.

78.有三个关系R、S和T如下:

则由关系R和s得到关系T的操作是()。

A.自然连接B.并C.交D.差

79.

80.

五、程序改错题(1题)81.下列给定程序中,函数proc的功能是计算正整数m各位上数字的平方和。 例如,输入498,则输出应该是161。 请修改程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include<stdlib.h> #include<stdio.h> #include<conio.h> longproc(10ngm) {//****found****longsum=1;do{sum+=(m%10)*(m%10);m/=l0;//****found****}while(m)return(sum); } voidmain {longn;system("CLS");printf("Pleaseenteranumber:");scanf("%1d",&n);printf("\n%ld\n",proc(n)); }

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun(),它的功能是求出能整除x且不是偶数的整数,并将这些整数按从小到大的顺序放在PP所指的数组中,总个数通过形参n返回。如x中的值为30,则有4个数符合要求,它们是1、3、5、15。注意:部分源程序在文件prog1.c中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:

参考答案

1.A分块查找是折半查找和顺序查找的一种改进方法,分块查找要求索引表是有序的,对块内节点没有排序要求,因此查找较快,且插入和删除操作也比较方便。

2.C

3.A变量m、n的数据类型未知,但题目中已定义并赋初值。选项B的语句缺少分号结尾。选项C,强制转化使用错误。选项D的“m*n”只能用作表达式的右值,不能作为左值。故本题答案为A选项。

4.A解析:本题考查了函数的递归调用。在f函数中,当m=7时,程序执行“f(--n,&r1);”语句,递归调用f(6,&r1),程序执行“r1=n/3;”语句,即r1=\u30006/3=2,然后执行“*r=r1;”语句,所以输出结果为2。

5.D在输入整数或实数这类数值型数据时,输入数据之间必须用空格、回车符、制表符等间隔符隔开,间隔符个数不限。scanf的格式控制字符串也可以使用其他非空白字符,如本题中的逗号,但在输入时必须输入这些字符,以保证匹配,所以逗号必须输入。故本题答案为D选项。

6.D解析:带参数的宏定义如下:#define宏名(参数)字符串。本题中,宏定义的作用是指定用标识符PI来代替“3.1415926”这个字符串,但宏定义不是C语句,不必在行末加分号。

7.D在C语言中,当表达式成立时用l表示,不成立时用0表示,即x=(a&&b)&&(c<'B')=(14&&15)&&('A'<'B')=1&&1=1,故选择D选项。

8.D当k=1时,引用的是二维数组元素w[1][1],值为字符串“FGH”;当k=2时,引用的是数组元素w[2][2],即字符串“KL”;当k=3时,结束程序的执行。注意:字符串数组的定义。

9.A解析:按位异或“^”运算,是当对应位上的二进制数值相同时结果为0,否则为1。因为c1,c2的值相同,所以异或的结果为0,选项A)正确。按位与“&”运算符只有当所有对应位上的数都不相同时结果才为0,所以c1&c2的值不可能为0,选项B)错误。“~”是按位取反,由于十进制数92转化成二进制数并不是全为1,所以即使取反也不能得到全为。的答案,所以错误。“|”是按位或运算,由于十进制数92转化为二进制数也不是全为0,所以按位或运算后也不会全为0。

10.Dscanf函数读取的是char型数据,所以回车时输入的换行符也是有效字符。于是cl,c2,c3,c4的内容分别是1,2,3,\n。

11.A

12.Dmain函数中,fun(fun(t))嵌套调用fun函数。第一次调用为fun(1),调用后,a[3]={1,3,5},输出1,3,5,返回a[1]=3。第二次调用为fun(3),调用后,a[3]={一1,3,7},输出一l,3,7。

13.C

14.B函数fun的功能是在a所指的具有n个元素的数组中查找最大值并返回。通过for循环比较,s始终指向最大值的那个元素。取指针的值,使用*P,因此比较使用*P和*s,又因为找最大值,当*s<*p时,修改指针s的指向。故本题答案为B选项。

15.D解析:本题考查的知识点是运算符的优先级。在这个表达式中,优先级最高的是(int)a,也就是对5.5取整,结果是5,其次是b/b,即2.5/2.5,结果是1.000000,最后相加结果为6.000000(表达式的最终结果为实型),所以4个选项中D正确。

16.A

17.C\n本题考查逻辑值假,在程序中非0字符表示逻辑真,0表示逻辑假,所以答案选择C。

\n

18.A数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实和完善的。故答案为A选项。

19.A解析:对线性表进行二分法检索,要求线性表是按顺序方式存储的,并按关键码值的大小排好序,而不是按关键码的检索频率排序。

20.A\nA。【解析】二分法查找只适用于顺序存储的有序线性表,对于顺序存储的非有序线性表和线性链表,都只能采用顺序查找。

\n

21.线性结构线性结构解析:数据的逻辑结构是指数据元素之间的逻辑关系,分为线性结构和非线性结构。常见的线性结构有线性表、栈和队列等,常见的非线性结构有树、二叉树等。

22.7467

23.2121解析:外层switch语句后面括号里的x的值为1,所以执行从case1:后面的语句开始执行,而case1:后面语句也为switch语句,这个switch语句后面括号里的y的值为0,所以从该switch语句里的case0:开始执行即执行a++,这时a的值变为1,执行完毕,遇到break语句,退出内层switch语句,又回到外层switch语句,继续执行case1:下面的语句即case2:执行完毕后,a自加1变为2,b自加1变1。所以最后输出的a和b的值为21。

24.unsignedintgetbits()value&0100000z=~value+1unsignedintgetbits()\r\nvalue&0100000\r\nz=~value+1

25.完整性控制完整性控制

26.5656解析:本题中a,b,c,d足实参,x,y,cp,dp是形参。C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。因此,程序的输出结果是56。

27.有效性测试有效性测试

28.2222解析:在main函数中,调用reverse函数将b数组中的前8个成员进行互置,执行完毕后,b数组中的成员为{8,7,6,5,4,3,2,1,9,10},然后再执行for循环结构,将b[6],b[7]...b[9]的值相加,结果为22。

29.方法方法解析:在面向对象方法中,方法是指允许作用于某个对象上的各种操作。

30.120120解析:静态变量的类型说明符是static,静态局部变量属于静态存储方式,它具有以下特点:

①静态局部变量属于静态存储类别,在静态存储区内分配存储单元。在程序整个运行期间都不释放。

②对静态局部变量是在编译时赋被值的,即只赋被值一次,在程序运行时它已有被值。以后每次调用函数时不再重新赋初值而只是保留上次函数调用结束时的值。

③如在定义局部变量时不赋初值的话,则对静态局部变量来说,编译时自动赋初值0(对数值型变量)或空字符(对字符变量)。(注意:C语言中的非静态变量在定义时,系统并不会自动给它赋被值)

④虽然静态局部变量在函数调用结束后仍然存在,但其他函数是不能引用它的。

本题中函数的功能是:与for语句一起求一个整数的阶乘。

31.n%base[d]n%base[d]解析:程序中的字符数组b存储了十六进制16个数字的字符,整型数组c用于存储转换的十六进制数的各位数值。将整数n转换成它的各位十六进制数值,需采用除以16取余的方法,即求n除以16的余,得到它的十六进制的末位数,接着将n除以16,在n不等于0的情况下循环,顺序求出n的十六进制的倒数第一、第二、第三位数等。程序中变量base已预置16,所以在第一处填n%base。当n的十六进制数的倒数第一、第二、第三位等依次存放于数组c中后,就从最高位至最低位,参照数组c[i]的内容d(以其内容为下标),取十六进制数字符表中的字符b[d)输出,所以在第二处填[d]。

32.模块模块解析:矩形表示的是模块,箭头表示的是模块间的调用关系。用带实心圆的箭头表示传递的是控制信息,用带空心圆的箭头表示传递的是数据。

33.1212解析:本题考查逗号表达式的运算规则。逗号表达式的基本格式为:“表达式1,表达式2,…”,其整个表达式的结果取最后一个子表达式的值。本题中首先计算逗号表达式中的第1个表达式a=2*3=6,然后计算第2个表达式a*2,这时整个表达式的值为12,但要注意,因为第2个表达式并没有给a赋值,因此a的值不变;接下来执行最后一个表达式a+6=12,所以整个表达式最后的值为12。

34.1B

35.246246解析:static声明的外部变量只限于被本文件引用,而不能被其他文件引用。用static来声明一个变量的作用有:①对局部变量用static声明,则为该变量分配的空间在整个程序执行期间始终存在;②全部变量用static声明,则该变量的作用域只限于本文件模块(即被声明的文件中)。

36.'\0''\\0'解析:本题涉及字符数组和指针的两个知识点:①在c语言中,字符型数组在存放字符串时会自动在末尾加上字符串结束标识符'\\0',所以题中数组str有6个元素。②ptr指向数组s仕的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。

37.有穷性有穷性

38.66解析:分析程序可知,每循环一次,x的值加1,然后检测循环控制条件(y!=19)&&(x<7),因y的值不变,故满足x<7时循环6次。

39.结构化设计结构化设计解析:与结构化需求分析方法相对应的是结构化设计方法。结构化设计就是采用最佳的可能方法设计系统的各个组成部分以及各个成分之间的内部联系的技术。

40.5252解析:do...while语句的形式为:

do

{

语句;

}while(条件表达式)

当条件表达式为非零时,继续执行循环体,直到条件表达式为零时退出循环。

41.B解析:指针中存放的是变量的地址,指针也可以进行增减运算,这时指针移动的最小单位是—个存储单元,而不是一个字节。

42.C解析:语句“p=s;”是使指针p指向字符数组s。*p则引用了p所指位置的数组元素。注意:通过指针来引用一维数组元素。

43.C解析:在关系模型中,不需要事先构造数据的逻辑关系,只要将数据按照一定的关系存入计算机,也就是建立关系,选项A错误。对于表示关系的二维表,其最基本的要求是,表中元组的每一个分量必须是不可分的数据项,即不允许表中再有表,选项B和D错误。本题的正确答案是C。

44.C解析:本题考查简单的if…else语句。先执行条件if(a<b),显然不成立,在执行else语句。

45.B

46.D解析:标识符是C语言中用来表示变量名、数组名、函数名、指针名、结构名、联合名、枚举常数名、用户定义的数据类型名、语句标号等用途的字符序列。标识符由1~32个字符组成,第一个字符必须是字母或下划线,后面的字符可以是字母、数字或下划线。标识符不能与C关键字相同,并区分大小写。选项D)错误,因为int是C语言中的关键字。

47.A解析:C语言结构体类型变量在程序执行期间所有成员一直驻留在内存中。

48.B解析:本题考查函数fseek的用法。fseek函数的调用形式为:

fseek(文件指针,位移量,起始点)

“起始点”用0,1或2代替,0代表“文件开始”,1为“当前位置”,2为“文件末尾”。

“位移量”指以“起始点”为基点,向前移动的字节数。ANSIC和大多数C版本要求位移量是long型数据,这样当文件长度大于64k时不致出现问题。ANSIC标准规定在数字末尾加一个字母L表示long型。

49.A解析:本题int型占2个字节,即16位,unsignedint所能表示的数据范围是0-(216-1),即0-65535。

50.A解析:模式设计和内模式设计是概念设计的两种方法。物理设计是根据特定的计算机系统,对数据的存储结构和存取方法进行设计,从而实现从逻辑结构到物理结构的转换。从系统开发的角度来看,结构特性设计和行为特性-设计是数据库应用系统所具有的两个特性。结构特性的设计,设计各级数据库模式(静态特性):行为特性的设计,改变实体及其特性,决定数据库系统的功能(动态特性)。

51.A解析:由于本题定义的是共用体,所以成员表列中的整型变量x与字符数组c共占用同—个存储单元,且此存储单元为2个字节,通常c[0]位于低字节,c[1]位于高字节,所以x.i的值为266。

52.B解析:该题目应该根据循环体第一次和最后一次执行时的输出结果来决定哪一项是正确的。第一次进入循环时,n的值是9,循环体内,先经过n--运算,n的值变为8,所以第一次的输出值是8,由此可以排除选项A)和D)。由循环条件n>6可以知道,最后一次循环开始时,n的值应该为7,所以最后一次执行循环时,输出为6,由此可以排除选项C)。

53.C解析:关于软件测试的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一书中给出了深刻的阐述:软件测试是为了发现错误而执行程序的过程;一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例;一个成功的测试是发现了至今尚未发现的错误的测试。整体来说,软件测试的目的就是尽可能多地发现程序中的错误。本题答案为C。

54.A解析:本题考查两个概念:①用单引号括起来的一个字符常量只能存放一个字符;②C语言中没有字符串变量,只能用字符数组来存储字符串。

选项A)中一个单引号内放了若干个字符是错误的;选项B)和选项D)中将一个字符串赋值给一个字符数组是允许的。

55.D解析:C语言在函数中说明的变量为局部变量,只在函数内起作用但不会影响到其他函数。所以在不同的函数中使用相同的函数名不代表是同一函数,A)项正确。在函数定义时声明的参数只在函数内部起作用,是函数的局部变量,B)正确。在一个函数中定义的变量是这个函数的局部变量,所以只在这个函数内起作用,C)正确。复合语句中定义的变量其作用域是这个复合语句,不会扩大到整个函数,所以D)项错误。注意:函数的书写风格。

56.D

57.D数据的逻辑结构是指数据元素之间的逻辑关系的数据结构。数据的存储结构则是数据的逻辑结构在计算机中的物理实现,有时也称作数据的物理结构。两者的区别是数据的逻辑结构只涉及到数据之间抽象的数学关系。存储结构则涉及到如何在计算机中通过对数据的物理存储进行组织来表达数据元素之间的逻辑关系。比如在线性表的顺序存储中是利用物理存储空间上的连续性来表达线性表中数据的前后件关系;在线性表的链式存储中是通过指针域构成的逻辑链条来表达数据的前后件关系。一般的,一种数据的逻辑结构对应的物理实现,即数据的存储结构不止一种。因此选项D正确。

58.D解析:此题考查结构体的定义和引用。选项A)的错误是通过结构体名引用结构体成员;选项B)的错误是将结构体名作为类型名使用;选项C)的错误是将关键字struct作为类型名使用;选项D)是定义变量v2并对其初始化的语句,初始值只有前一部分,这是允许的。

59.A解析:本题考查默认函数的函数值的类型。在函数调用时,尽管y的类型是float,x的类型是double,但是因为函数定义时省去类型说明,系统默认函数值的类型为int型,所以计算后的y的类型是int型。

60.B对二叉树的中序遍历是指:首先遍历左子树,然后访问根结点,最后遍历右子树。在遍历左、右子树时,注意依旧按照“左子树一根结点一右子树”的顺序。本题的遍历顺序是这样的:①首先访问左予树:BDEY;②在左子树BDEY中,也按中序遍历,先访问左子树DY;在左子树DY中,也按中序遍历,先访问左子树,左子树没有,则访问根结点D,然后访问右子树Y;③接着访问根B,再访问右子树E;④访问左子树BDEY后,接着访问根

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论