2022-2023年山东省德州市全国计算机等级考试C语言程序设计真题二卷(含答案)_第1页
2022-2023年山东省德州市全国计算机等级考试C语言程序设计真题二卷(含答案)_第2页
2022-2023年山东省德州市全国计算机等级考试C语言程序设计真题二卷(含答案)_第3页
2022-2023年山东省德州市全国计算机等级考试C语言程序设计真题二卷(含答案)_第4页
2022-2023年山东省德州市全国计算机等级考试C语言程序设计真题二卷(含答案)_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

2022-2023年山东省德州市全国计算机等级考试C语言程序设计真题二卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.

2.若有以下定义和语句charc1='b',c2='e'printf("%d,%c\n",c2-c1,c2-'a'+A);则输出结果()

A.2,MB.3,EC.2,ED.输出项与对应的格式控制不一致,输出结果不确定

3.以下程序段中,输出信息不能正确反映变量大小关系的是()。

A.if(x>y)printf(“x>y”);if(x<y)printf(“x<y”);elseprintf(“x=y”);

B.if(x>=y)if(x>y)printf(“x>y”);elseprintf(“x=y”);elseprintf(“x<y”);

C.if(x>y)printf(“x>y”);if(y>x)printf(“x<y”);if(x==y)printf(“x=y”);

D.if(x>y)printf(“x>y”);elseif(y<x)printf(“x<y”);elseprintf(“x=y”);

4.对于栈操作数据的原则是()。

A.先进先出B.后进先出C.后进后出D.不分顺序

5.以下程序的输出结果是()。#defineM(x,y,z)x*y+zmain(){inta=l,b=2,c=3;printf("%d\n",m(a+b.b+c,c+a));}A.19B.17C.15D.12

6.以下C语言用户标识符中,不合法的是()。

A._1B.AaBcC.abD.a--b

7.

若变量均已正确赋初值,则以下语句中

错误的是()。

A.tl=t2;

B.t2.numl=tl.numl;

C.t2.mark=tl.Mark

D.t2.num2=tl.hum2;

8.面向对象方法中,继承是指()。

A.一组对象所具有的相似性质B.一个对象具有另一个对象的性质C.各对象之间的共同性质D.类之间共享属性和操作的机制

9.在数据库设计中,将E-R图转换成关系数据模型的过程属于()。A.需求分析阶段B.概念设计阶段C.逻辑设计阶段D.物理设计阶段

10.设有如下函数定义:intfun(intk){if(k<1)return0;elseif(k==l)returnl;elsereturnfun(k-1)+1:}若执行调用语句:“n=fun(3);”,则函数fun总共被诃用的次数是()。A.2B.3C.4D.5

11.

12.在下列几种排序方法中,要求内存量最大的是______。

A.插入排序B.选择排序C.快速排序D.归并排序

13.以下关于注释的叙述中错误的是()。

A.注释的边界符号“/”和“*”之间不允许加入空格

B.C语言允许注释出现在程序中任意合适的地方

C.注释的内容仅用于阅读,对程序的运行不起作用

D.注释的边界符号“/*”和“*/”必须成对出现且可以嵌套

14.在结构化方法中,软件功能分解属于下列软件开发中的阶段是______。

A.详细设计B.需求分析C.总体设计D.编程调试

15.若有定义floata[15],*p=a;,且数组a的首地址为300H,则p+13所指向的数组元素的地址为()。

A.334HB.30DHC.352HD.31AH

16.

17.下述程序的运行结果是()。#includedstdio.h>#includedstrin9.h>main{char*s1="abDuj";char*s2="ABdUG";intt;t=strcmp(s1,s2);printf("%d",t);}A.正数B.负数C.零D.不确定的值

18.设有定义:floata=2,b=4,h=3;以下c语言表达式中与代数式(a+B)h计算结果不相符的是()。A.(a+B)*h/2B.(1/2)*(a+B)*hC.(a+B)*h*1/2D.h/2*(a+B)

19.在Internet中,域名服务器的主要功能是实现()的转换。

A.IP地址到域名(主机名字)B.域名到IP地址C.主机IP地址和路由器IP地址之间D.路由器IP地址之问

20.体育课的铃声响了,同学们都陆续地奔向操场,按老师的要求从高到矮站成一排。每个同学按顺序来到操场时,都从排尾走向排头,找到第一个比自己高的同学,并站在他的后面。这种站队的方法类似于()算法。

A.快速排序B.插入排序C.冒泡排序D.归并排序

二、2.填空题(20题)21.下列程序的运行结果是______。

#include<stdio.h>

func(a,b)

{staticintm=0,i=2;

i+=m+1;

m=i+a+b;

return(m);

}

main()

{intk=5,m=3,p;

p=func(k,m);

printf("%d",p);

p=func(k,m);

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

}

22.填空补充以下程序。

#define【】30

{【】;

total=numPRICE;

printf("total=%d,num=%d\n",【】);

}

23.设一棵完全二叉树共有700个结点,则在该二叉树中有【】个叶子结点。

24.在关系运算中,查找满足一定条件的元组的运算称之为【】。

25.函数fun的功能是计算xn。

doublefun(doublex,intn)

{inti;doubley=1;

for(i=1;i<=n;i++)y=y*x;

returny;

}

主函数中已正确定义m、a、b变量并赋值,并调用fun函数计算:m=a4+b4-(a+b)3。实现这一计算的函数调用语句为【】。

26.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块,其中______的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。

27.执行下列程序的输出结果是【】。

main()

{

floata=1,b;

b=++a*++a;

printf("%f\n",b);

}

28.下列程序段的运行结果是______。

intx=0,y=0;

while(x<15)y++,x+=++y;

printf("%d,%d",y,x);

29.以下程序用来输出结构体变量student所占存储单元的字节数,请填空。

structst

{charname[20];doublescore;

};

main()

{structststudent;

printf("studentsize:%d\n",sizeof(【】));

}

30.某二叉树中度为2的结点有18个,则该二叉树中有【】个叶子结点。

31.以下程序的输出结果是______。

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);

}

32.函数voidfun(float*sn,intn)的功能是:根据以下公式计算s,计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0。请填空。

voidfun(float*sn,intn)

{floats=0.0,w,f=-1.0;

inti=0;

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

{f=【】*f;

w=f/(2*i+1);

s+=w;}

【】=s;}

33.顺序存储方法是把逻辑上相邻的结点存储在物理位置______的存储单元中。

34.以下程序中函数huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串“yes!”,否则函数返回字符串“no!”,并在主函数中输出。所谓回文即正向与反向的拼写都一样,例如:adsda。请填空。

#include<stdio,h>

#include<string,h>

char*huiwen(char*str)

{char*p1,*p2;inti,t=0;

p1=str;p2=【】;

for(i=0;i<=strlen(str)/2;i++)

if(*pl++!=*p2--){t=1;break

if(【】)return("yes!");

elsereturn("no!");

}

main(){charstr[50];

printf("Iaput:");scanf("%s",str);

printf("%s\n",【】);

35.下列程序的运行结果是______。

main()

{ints=0,i=1;

while(s<=10)

{s=s+i*i;

i++;

}

printf("%d",--i);

}

36.下列程序段中循环体的执行次数是______。

a=15;

b=0;

do{b+=2;a-=2+b;}while(a>=0);

37.在面向对象方法中,类之间共享属性和操作的机制称为______。

38.设x和y均为int型变量,且x=1,y=2,则表达式2.0+y/x的值为【】。

39.软件生命周期包括2今阶段。为了使各时期的任务更明确,又可分为3个时期:软件定义期、软件开发期、软件维护期。编码和测试属于【】期。

40.当输入的数据为2、5时,则下列程序的运行结果为【】。

#include<stdio.h>

#definemax100

main()

{

intf[max],i,j,k,m;

scanf("%d%d",&k,&m);

for(i=0;i<=m;i++)f[i]=0;

f[k-1]=1;

for(i=k;i<=m;i++)

for(j=i-k;j<=i-1;j++)f[i]+=f[i];

printf("%d%10d%10d\n",k,m,f[m]);

getch();

}

三、1.选择题(20题)41.下列对于软件测试的描述中正确的是______。

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

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

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

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

42.有以下程序:main(){unsignedchara,b,c;a=0x3;b=a|0x8;c=b<<1;printf("%d%d\n",b,C);}程序运行后的输出结果是()。

A.-1112B.-6-13C.1224D.1122

43.设有以下定义或语句,则输出的结果是(用small模式编译,指针变量占2个字节)structdate{long*cat;structdate*next;doubledog;{too;printf("%d",sizeof(too));

A.20B.16C.14D.12

44.下列关于线性表的叙述中,不正确的是()

A.线性表可以是空表

B.线性表是一种线性结构

C.线性表的所有结点有且仅有一个前件和后件

D.线性表是由n个元素组成的一个有限序列

45.若有说明:inta[][4]={0,0};则下面不正确的叙述是()。

A.数组a的每个元素都可得到初值0

B.二维数组a的第一维大小为1

C.当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小

D.只有元素a[0][0]和a[0][1]可得到初值,其余元素均得不到确定的初值

46.有以下程序

#include<stdio.h>

main()

{FILE*fp;intk,n,a[6]={1,2,3,4,5,6};

fp=fopen("d2.dat","w");

fprintf(fp,"%d%d%d\n",a[0],a[1],a[2]);

fprintf(fp,"%d%d%d\n",a[3],a[4],a[5]);

fclose(fp);

fp=fopen("d2.dat","r");

fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);

fclose(fp);

}

程序运行后的输出结果是

A.12B.14C.1234D.123456

47.设有以下说明语句typedefstruct{intn;charch[8];}PER;则下面叙述中正确的是

A.PER是结构体变量名

B.PER是结构体类型名

C.typedefstruct是结构体类型

D.struct是结构体类型名

48.以下程序段的输出结果是chars[]=“\\141\141abc\t”;printf(“%d\n”,strlen(s));

A.9B.12C.13D.14

49.有如下程序main(){chars[][5]={"abc","de","fgh"};printf("%c",s[2][6]);}其输出为______。

A.不确定B.编译错误C.gD.输出null字符

50.下列函数定义中,会出现编译错误的是_____。

A.max(intx,inty,int*z){*z=x>y?x:y;}z=x>y?x:y;returnz;}

B.intmax(intx,y){intz;

C.max(intx,inty){intz;z=x>y?x:y;return(z);}

D.intmax(intx,inty){returnx>y?x:y;}

51.以下程序的输出结果是main(){intc=35;printf("%d\n",c&c);}

A.0B.70C.35D.1

52.下面结构体的定义语句中,不正确的是______。

A.structdate{intmonth;intday;intyear;}Structdatedatel;

B.stmctdate{intmonth;intday;intyear;}datel;

C.struct{intmonth;intday;intyear;}date1;

D.#defineDATEstmctdateDATE{intmonth;intday;intyear;}datel;

53.有下列程序:main(){intx=5;do{printf("%d",x-=4);}while(!(--x));}程序的输出结果是()。

A.1B.20C.14D.死循环

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

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

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

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

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

55.下列描述中,不是线性表顺序存储结构特征的是

A.不便于插入和删除B.需要连续的存储空间C.可随机访问D.需另外开辟空间来保存元素之间的关系

56.以下选项中,不能正确赋值的是______。

A.chars1[10];s1="chest";

B.chars2[]={'C','t','e','s','t'};

C.chars3[20]="Chest";

D.char*s4="Ctest\n"

57.以下程序的输出结果是#include<stdio.h>voidprt(int*x,int*y,int*z){printf("%d,%d,%d\n",++*x,++*y,*(z++));}main(){inta=10,b=40,c=20;prt(&a,&b,&c);prt(&a,&b,&c);}

A.11,42,3112,22,41

B.11,41,2012,42,20

C.11,21,4011,21,21

D.11,41,21.12,42,22

58.有以下程序

#include<stdlib.h>

structNODE

{intnum;structNODE*next;}

main()

{structNODE*P,*q,*r;

p=(structNODE*)malloc(sizeof(structNODE));

q=(structNODE*)malloc(sizeof(struetNODE));

r=(structNODE*)malloc(sizeof(structNODE)):

p->num=10;q->num=20;r->num=30;

p->next=q;q->next=r;

printf("%d\n",p->num+q->next->num):

}

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

A.10B.20C.30D.40

59.在Windows98的开始菜单中,包括了Windows98系统提供的()

A.全部功能B.初始功能C.主要功能D.部分功能

60.线性表的顺序存储结构和线性表的链式存储结构分别是______。

A.顺序存取的存储结构、顺序存取的存储结构

B.随机存取的存储结构、顺序存取的存储结构

C.随机存取的存储结构、随机存取的存储结构

D.任意存取的存储结构、任意存取的存储结构

四、选择题(20题)61.如果intC=3,d=4,k=0,下列描述正确的是()。A.c>d!=k和c>(d!=k)的执行顺序是一样的

B.c&&d>k的结果为假

C.c||(d=k)执行后d的值为0

D.!c!=(d!=k)表达式的值为1

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

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

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

63.有以下结构体说明、变量定义和赋值语句:

则以下scanf函数调用语句有错误的是()。

A.scanf(”%s”,s[0].name);

B.scanf(”%d”,&s[0].age);

C.scanf(”%c”,&(ps一>sex));

D.scanf(”%d”,ps一>age):

64.非空循环链表所表示的数据结构()。

A.有根结点也有叶子结点B.没有根结点但有叶子结点C.有根结点但没有叶子结点D.没有根结点也没有叶子结点

65.有以下程序:

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

A.3,3,3B.2,2,3C.1,2,3D.1,l,3

66.有以下程序:

voidf(int*x,int*y)

{int*t;

t=x;x=y;y=t;*x=*y;

}

main()

{inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;

p=a;q=&a[7];

while(p>q)

{f(p,q);p++;q--}

for(i=0;i<8;i++)printf("d,",a[i]);

}

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

A.8,2,3,4,5,6,7,1,

B.5,6,7,8,1,2,3,4,

C.1,2,3,4,5,6,7,8,

D.8,7,6,5,4,3,2,1,

67.在软件开发中,需求分析阶段产生的主要文档是()。

A.可行性分析报告B.软件需求规格说明书C.概要设计说明书D.集成测试计划

68.

69.软件设计中模块划分应遵循的准则是()。A.低内聚低耦合

B.高内聚低耦合

C.低内聚高耦合

D.高内聚高耦合

70.有以下程序程序执行后输出结果是()。

A.5.OOB.5C.5.2lD.0.0

71.

72.有以下程序段intn,t=1,s=0;scanf("%d",&n);do{s=s+t;t=t-2;}while(t!=n);为使此程序段不陷入死循环,从键盘输入的数据应该是

A.任意正奇数B.任意负偶数C.任意正偶数D.任意负奇数

73.

有以下程序:

#include<stdio.h>

voidfun(char*t,char*s)

{while(*t!=O)t++;

while((*t++=*s++)!=0);

}

main

{charss[10]="acc",aa[10]="bbxxyy";

fun(ss,aa);printf("%S,%s",ss,aa);

}

程序运行结果是()。

A.accxyy,bbxxyy

B.ace,bbxxyy

C.accxxyy,bbxxyy

D.accbbxxyy,bbxxyy

74.下列关于线性链表的叙述中,正确的是()。

A.各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致

B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续

C.进行插入与删除时,不需要移动表中的元素

D.以上说法均不正确

75.

76.

77.若有定义floatX=1.5;inta=1,b=3,C=2;,则正确的switch语句是()。

A.

B.

C.

D.

78.

数字字符0的ASCII值为48,运行以下程序的输出结果是()。

main

(chara=1,b=2;

printf("%C,",b++);printf("%d\n",b—a);}

A.3,2B.50,2C.2,2D.2,50

79.有以下程序:

程序的运行结果是()。

A.0987654321

B.4321098765

C.5678901234

D.0987651234

80.若有说明:int*P,m=5,n;,以下正确的程序段是()。A.p=&n;scanf("%d",&p);

B.p=&n;scanf("%d",*p);

C.scanf("%d",&n);*p=n;

D.p=&n;*p=m;

五、程序改错题(1题)81.下列给定程序中函数fun的功能是:将P所指字符串中的所有字符复制到b中,要求每复制三个字符之后插入一个空格。

例如,若给a输入字符串:ABCDEFGKHHK,调用函数后,字符数组b中的内容为:ABCDEFGHIJK。请改正程序中的错误,使它能得出正确的结果。

注意:部分源程序在文件MODll.C中,不得增行或删行,也不得更改程序的结构。

六、程序设计题(1题)82.

参考答案

1.C

2.B

3.A选项A中,若条件“x>y”为真,输出“x>y”;若条件“x<y”为真,输出“x<y”;若条件“x>=y”为真,输出“x=y”。选项A错误,其他选项都正确。故本题答案为A选项。

4.B

5.DM(a+b,b+C,c+a)=a+b*b+c+c+a=1+2*2+3+3+1=12,注意x*y+z而不是(x)*(y)+z。

6.D\n标识符主要由英文字母、数字和下划线构成,但开头字符一定是字母或下划线。

\n

7.C结构体变量中的第一成员都是数组,不能直接将变量tl的成员mark数组的地址赋给另一个变量t2的成员mark数组的地址。因为地址都是固定值,不能被赋值。结构体可以进行整体的赋值。

8.D继承是面向对象的方法的一个主要特征,是使用已有的类的定义作为基础建立新类的定义技术。广义的说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们,所以说继承是指类之间共享属性和操作的机制。

9.CE-R图转换成关系模型数据则是把图形分析出来的联系反映到数据库中,即设计出表,所以属于逻辑设计阶段。

10.B此题考查简单的循环,当执行n=fun(3),则函数fun执行3次。

11.A

12.D解析:快速排序的基本思想是,通过一趟排序将排序记录分割成独立的两部

分,其中一部分记录的关键字均比另一部分记录的关键字小,再分别对这两部分记录继

续进行排序,以达到整个序列有序;插入排序的基本操作是指将无序序列中的各元素依

次插入到已经有序的线性表中,从而得到一个新的序列;选择排序的基本思想是:扫描整

个线性表,从中选出最小的元素,将它交换到表的最前面(这是它应有的位置),然后对剩

下的于表采用同样的方法,直到表空为止;归并:排序是将两个或两个以上的有序表组合

成一个新的有序表。

注意:各种排序方法实现过程及实现机制。

13.D在编写程序时可以在程序中加入注释。在添加注释时,注释内容必须放在符号“/*”和“*/”之间,“/*”和“*/”必须成对出现,“/*”与“*/”之间不可以有空格,选项A正确;注释可以用英文,可以用中文,可以出现在程序中任意合适的地方,选项B正确;注释部分只适用于阅读,对程序的运行不起作用,选项C正确;使用“/*”和“*/”的注释之间不可再嵌套“/*”和“*/”,选项D错误。故本题答案为D选项。

14.C解析:软件系统结构的总体设计包括:基于功能层次结构建立系统、按功能划分成模块的层次结构、确定每个模块的功能、建立与已确定的软件需求的对应关系、确定模块间的调用关系和模块间的接口、评估模块划分的质量等方面。详细设计的任务是:在使用程序设计语言编制程序以前,对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达。需求分析是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。需求分析的任务是发现需求、求精、建模和定义需求,通常包括:功能需求、性能需求、环境需求、可靠性需求、安全保密要求、用户界面需求、资源使用需求、成本消耗需求、开发进度需求等。编程调试的任务是诊断和改正程序中潜在的错误。综上所述。软件功能分解只能发生在总体设计阶段。

15.C解析:解答本题,首先要明白在对指针进行加、减运算的时候,数字“1”不是十进制的数“1”,而是指'1'个存储单元长度,而1个存储单元长度占多少存储空间,应该视具体情况而定。如果基本类型是int型,移动1个存储单元的长度就是位移2个字节,如果基本类型是float型,移动1个存储单元的长度就是位移4个字节。所以p+13所指向的数组元素的地址:300H+(13*上标)4)H=352H。

16.B

17.A本题考查符符串比较函数和两个字符串比较的原则这两个知识点。

(1)两字符串比较的原则是依次比较两个字符串同一位置的一对字符,若它们的ASCII码值相同,则继续比较下一对字符,若它们的ASCII码值不同,则ASCII码值较大的字符所在的字符串较大;若所有字符相同,则两个字符串相等;若一个字符串全部i个字符与另一个字符串的前i个字符相同,则字符串较长的较大(2)strcmp(s1,s2)的返回值,当str1<str2时,返回值为负数;当str1=str2时,返回0;当str1>str2,返回值为正数。

18.B解析:选项B中由于1和2都是整型,其1/2的运算结果为0,故整个表达式的值为0,所以它的结果和题目中要求的代数式的讨算结果不相符,所以,4个选项中选项B符合题意。

19.B在Internet中,把域名翻译为IP地址的软件称为域名系统DNS,运行域名系统的主机称为域名服务器。域名服务器的主要功能是实现入网主机名字和IP地址的转换。

20.B

21.11231123解析:在主函数中第一次调用func子函数时,m=0,i=2,i=i+m+1=3,m=i+a+b=3+5+3=11。因为在子函数中将m和i定义成了static类型,所以在子函数中对m和i进行的改变在下一次调用子函数时能进行保存,所以第二次调用子函数时,m=11,i=3,则i=i+m+1=15,m=i+a+b=15+5+3=23。

22.PRICEintnumtotaltotalnum

23.350350解析:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。在根据完全二叉树的定义,在一棵完全二叉树中,最多有1个度为1的结点。因此,设一棵完全二叉树具有n个结点,若n为偶数,则在该二叉树中有n/2个叶子结点以及n/2-1个度为2的结点,还有1个是度为1的结点:若n为奇数,则在该二叉树中有[n/2]+1个叶子结点以及[n/2]个度为2的结点,没有度为1的结点。本题中,完全二叉树共有700个结点,700是偶数,所以,在该二叉树中有350个叶子结点以及349个度为2的结点,还有1个是度为1的结点。所以,本题的正确答案为350。

24.选择选择解析:在关系数据库中,选择运算也是一个元运算,关系R通过选择运算(并由该运算给出所选择的逻辑条件)后仍为一个关系。这个关系是由R中的那些满足逻辑条件的元组所组成。

25.m=fun(a4)+fun(b4)-fun(a+b3);m=fun(a,4)+fun(b,4)-fun(a+b,3);解析:函数fun(x,n)的作用是求xn,因此a4应该调用函数fun(a,4),b4应该调用函数fun(b,4),(a+b)3应该调用函数fun(a+b,3),所以题目中的数学表达式,写成C程序中的语句为m=fun(a,4)+fun(b,4)-fun(a+b,3)。

26.驱动模块驱动模块解析:由于模块通常不是独立的程序,自己不能运行,而需要其他模块调用或驱动,同时被测试模块还要去调用其他模块,前者称为驱动模块,后者称为承接模块。其中驱动模块的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果;承接模块的作用是代替被测模块,调用其他模块。

27.66解析:++的优先级高于*,先作自加运算,b=++a*++a=2.0*3.0=6.0。b按实型输出6.000000。

28.8208,20解析:本题考查while循环和++运算符的运用。x=0符合条件x<15,则执行y++,x+=++y后,y=1,x=0+2=2后y=2,符合条件继续循环,y=3,x=x+4=6后y=4,再循环y=5,x=x+6=6+6=12后,y=6,继续循环y=7,x=x+8=12+8-20,此时y=8。

29.structst或studentstructst或student

30.1919解析:根据二叉树的性质:在任意一棵二叉树中,度为。的结点(即叶子结点)总是比度为2的结点多一个。本题中度为2的结点数为18,故叶子结点数为18+1=19个。

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

32.=-1*sn=-1\r\n*sn解析:C语言中实参变量和形参变量的数据传递是单向的“值传递”方式。指针变量作函数也要遵循这一规则。调用函数不可能改变实参指针变量的值,但可以改变实参指针变量所指变量的值。

33.相邻相邻

34.p1+(stfien(str)-1)或str+(strlen(str)-1)t==0或!thuiwen(str)或(strlen(str)-1)+p1或(stden(str)-1)+strp1+(stfien(str)-1)或str+(strlen(str)-1)\r\nt==0或!t\r\nhuiwen(str)或(strlen(str)-1)+p1或(stden(str)-1)+str解析:回文字符串是指正向与反向拼写都一样。由huiwen函数可知,第三处应该填写调用函数huiwen(str)。在函数huiwen中,执行P1=str;使p1指向字符串str中第一个字符的地址,则第一处应该使p2指向字符串str中最后一个字符的地址,故填p1+(stden(str)-1)或str+(strlen(str)-1)。本题要求如果是回文,则返回'yes!',否则,返回'no!',故当t=0时,说明字符串str为回文,所以第二处应填t==0或!t。

35.33解析:分析程序运行过程,第1次循环:s=s+i*i=0+1*1=1,i=2;第2次循环:s=s+i*i=1+2*2=5,i=3;第3次循环:s=s+i*i=5+3*3=14,i=4;循环条件不成立输出i,--i使i的值减1,输出结果为3。

36.33解析:本题考查do…while语句形式:

do循环体

while表达式

首先执行循环体语句,然后检测循环控制条件表达式的值,若为真,则重复执行循环体语句,否则退出循环。第1次循环:b+=2,b=2,a-=2+b,a=11;第2次循环:b=4,a=5;第3次循环:b=6,a=-3,此时再判断循环条件不满足,退出循环。

37.继承继承

38.4.0或44.0或4

39.软件开发软件开发解析:软件生命周期包括8个阶段:问题定义、可行性研究、需求分析、系统设计、详细设计、编码、测试、运行维护。为了使各时期的任务更明确,又可以分为3个时期:软件定义期,包括问题定义、可行性研究和需求分析3个阶段;软件开发期,包括系统设计、详细设计、编码和测试4个阶段;软件维护期,即运行维护阶段。可知,编码和测试属于软件开发阶段。

40.255

41.C解析:软件测试的目的:尽可能地多发现程序中的错误,不能也不可能证明程序没有错误,软件测试是一个发现错误而执行程序的过程。软件调试的目的是发现错误的位置,并改正错误。

42.D解析:将a的值用二进制表示:00000011。a与Ox8(二进制表示为00001000)按位或,得到结果00001011赋值给b,b的值为11。再将b左移一位得到:00010110,赋值给c,c的值为22。所以最后输出的b,c的值为11,22。

43.D

44.CC)【解析】线性表是一种线性结构,由n(n≥O)个元素组成,所以线性表可以是空表。但是性表中,第一个结点没有前件,最后一个结点没有后件,其他结点有且只有一个前件和后件,所以选项C)是错误的。

45.D解析:本题考查二维数组的基本概念。对于二维数组,只可以省略第一个括号中的常量表达式,而不能省略第二个括号中的常量表达式。数组中未赋初值的元素系统会自动对它们赋初值0。

46.D解析:将有6个元素的整型数组分两行输出到一个文件中,因为输出的都是数字并且每行都没有分隔符,所以当再对其进行读取操作时,每一行都会被认为是一个完整的数,而换行符则作为它们的分隔符。

47.B解析:本题中,typedef声明新的类型名PER来代替已有的类型名,PER代表上面指定的一个结构体类型,此时,也可以用PER来定义变量。

48.A解析:字符数组中可以存放字符串,但字符数组的长度并不是字符串的长度,字符串的长度是指字符数组中存放的有效字符个数,即\'\\0\',之前的字符数。字符数组s中依次存放的字符是:\'\\\\'1'4'1'\\141'a'b'c'\\t\',和最后一个字符串结束标记\'\\0\',故字符串的长度是9。

49.A解析:由于s[2][6]表示字符串已超出了数组s的表示范围,在C中不会刘数组越界进行检查,当数组越界时,会得到一个不确定的值。

50.B解析:在C语言中,不可以在函数的参数声明列表中用一个类型名指定多个参数。故选项B是错误的。其正确的表示方式应为:

intmax(intx,inty){……}

intmax(x,y)

intx,y;

{……}

51.C解析:本题考查按位与“&”。因为1&1=1,0&0=0,所以任何数与自身按位与,结果仍为此数,不发生变化。

52.A

53.C解析:本题考查do…while循环。①执行printf语句,x=x-41,输出1,判断while循环的控制条件,--x=0,则(!(--x))非零,循环条件成立,执行下一次循环;②执行printf语句,x=x-4=-4,输出-4,判断while循环的控制条件,--x=-5,则(!(--x))为零,循环条件不成立,结束循环。

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

55.D解析:线性表的顺序存储是用一片连续的空间来存放数据元素,其特点是逻辑上相邻的元素在物理位置上也相邻。数据元素之间逻辑上的先后关系自动隐含在物理位置的相邻元素之中,因此,不需要另外开辟空间来保存元素之间的关系。

56.A解析:语言中不能将字符串常量直接赋给数组。但在赋初值时可以。

57.B解析:尽管C语言以传值方式进行函数调用,但也可以通过传递指针的值(变量的地址)来达到修改实参变量值的目的,这是此题主要说明的问题。其次,应注意表达式。(z++)的值是*z,其后的z++在程序中无实际作用。函数调用时,由于x,y和z分指向a,b和c,因此,*x,*y和*z就是a,b和c。第一次调用函数时,*x=a=10,*y=b=40,*z=c=20输出结果为11,41,20,至此,已经可以肯定选项B)是正确的。在第一次输出后,a=11,b=41,c=20,第二次输出为:12,42,20。注意:指针作为参数的函数调用的执行过程。

58.D

59.A

60.B【命题目的】考查有关线性表存储结构的基本知识。

【解题要点】顺序存储结构中,数据元素存放在一组地址连续的存储单元中,每个数据元素地址可通过公式LOC(ai)=LOC(a1)+(I-1)L计算得到,从而实现了随机存取。对于链式存储结构,要对某结点进行存取,都得从链的头指针指向的结点开始,这是一种顺序存取的存储结构。

【考点链接】顺序存储结构和链式存储结构的定义和性质,两种存储结构的操作方法。

61.DA)中>的优先级大于!=,所以执行顺序不一样;B)中c和d>k都为真,所以整个表达式为真;C)中不用执行d=k,因为c就可以确定这个表达式的值。

62.D关系T中的元组是关系R中有面关系s中没有的元组的集合,即从关系R中除去与关系s中相同元组后得到的关系T。所以做的是差运算。

63.D本题考查结构体的相关知识,题目中需要输入一个变量,scanf要求参数为指针,而D选项中ps一>age为一个变量,不是指针,所以错误。

64.A在单链表的第一个结点前增加一个表头结点,队头指针指向表头结点,最后一个结点的指针域的值由NULL改为指向表头结点,这样的链表称为循环链表。循环链表是线性结构,有且只有一个根结点,每一个结点最多有一个前件,也最多有一个后件。循环链表表头结点为根结点,链表的最后一个结点为叶子

温馨提示

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

评论

0/150

提交评论