2021-2022年甘肃省天水市全国计算机等级考试C语言程序设计真题(含答案)_第1页
2021-2022年甘肃省天水市全国计算机等级考试C语言程序设计真题(含答案)_第2页
2021-2022年甘肃省天水市全国计算机等级考试C语言程序设计真题(含答案)_第3页
2021-2022年甘肃省天水市全国计算机等级考试C语言程序设计真题(含答案)_第4页
2021-2022年甘肃省天水市全国计算机等级考试C语言程序设计真题(含答案)_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

2021-2022年甘肃省天水市全国计算机等级考试C语言程序设计真题(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.

2.

3.就平均查找速度而言,下列查找速度从慢至快的关系是()

A.顺序折半哈希分块B.顺序分块折半哈希C.分块折半哈希顺序D.顺序哈希分块折半

4.有以下程序

#include<stdio.h>

main()

{intx=1,y=2,z=3;

if(x>y)

if(y<z)printf("%d",++z);

elseprintf("%d",++y);

printf("%d\n",x++);

}

程序的运行结果是

A.A.331

B.41

C.2

D.1

5.下列可用于C语言用户标识符的一组是

A.void,define,WORD

B.a3_b3,_123,Car

C.For,-abc,IFCase

D.2a,DO,sizeof

6.数据库系统的核心是()。

A.数据模型B.数据库管理系统C.数据库D.数据库管理员

7.设已包含头文件<string.h>,下列程序段的运行结果是()。chars1[]={"ACDEF"};chars2[]="ABC";strcpy(s1,s2);printf("%d",strlen(s1));

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

8.有下列程序:#include<stdio.h>voidfun(char*a,char*B){while(*a=='*')a++;while(*b=*A){b++;a++;}}main(){char*s="*****a*b****",t[80];fun(s,t);puts(t);程序的运行结果是()。A.*****a*bB.a*bC.a*b****D.ab

9.下列关系模型中,能使经运算后得到的新关系中属性个数多于原来关系中属性个数的是

A.选择B.连接C.投影D.并

10.下列语句中存在语法错误的是()。

A.charss[6][20];ss[1]=“right?”;

B.charss[][20]={“right?”};

C.char*ss[6];ss[1]=“right?”;

D.char*ss={“right?”};

11.在16位C编译系统上,若定义longa;,则能给a赋值40000的正确语句是()

A.a=20000+20000;B.a=4000*10;C.a=30000+10000;D.a=4000L*10L;

12.以下关于结构化程序设计的叙述中正确的是()。

A.结构化程序使用goto语句会很便捷

B.在c语言中,程序的模块化是利用函数实现的

C.一个结构化程序必须同时由顺序、分支、循环三种结构组成

D.由三种基本结构构成的程序只能解决小规模的问题

13.下列关于栈的描述中错误的是()。A.栈是先进后出的线性表B.栈只能顺序存储C.栈具有记忆作用D.对栈的插入与删除操作中,不需要改变栈底指针

14.设变量已正确定义,则以下能正确计算f=n!的程序是()。A.f=0:for(i=1;i<=n;i++)f*=i:

B.F=1:for(i=1;i<2n;i++)f*=i:

C.f=1:for(i=n;i>1;i++)f*=i:

D.f=1;for(i=n;i>=2;i--)f*=i:

15.下面关于图的存储的叙述中,哪一个是正确的。________

A.用相邻矩阵法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关

B.用相邻矩阵法存储图,占用的存储空间数只与图中边数有关,而与结点个数无关

C.用邻接表法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关

D.用邻接表法存储图,占用的存储空间数只与图中边数有关,而与结点个数无关

16.有以下程序:#include<stdio.h>intf(intx):main{intn=1,m;m=f(f(f(n)));printf("%d\n",m);}intf(intx){returnx*2;)程序运行后的输出结果是()。A.1B.2C.4D.8

17.下列程序的输出结果是()。main(){inta=1,b=2;printf("%d,%d\n",--a,++b);}

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

18.设有以下说明语句

structex

{intx;floaty;charz;}example;

则下面的叙述中不正确的是

A.struct结构体类型的关键字

B.example是结构体类型名

C.x,y,z都是结构体成员名

D.structex是结构体类型名

19.下列对队列的叙述正确的是A.队列属于非线性表B.队列按“先进后出”原则组织数据C.队列在队尾删除数据D.队列按“先进先出”原则组织数据

20.有以下程序:#include<stdio.h>voidfun(int*a,int*b){for(;(*a<*B)||(getchar()!=‘@’);){(*a)++;(*b)--;}}main(){inti=0,j=5;fun(&i,&j);printf(“%d,%d\n”,i,j);}程序运行时在第1列开始输入ab@并按<Enter>键,则运行结果是()。

A.7,1B.3,2C.0,5D.5,0

二、2.填空题(20题)21.以下程序的输出结果是【】。

intfun(int*x,intn)

{if(n==0)returnx[0];

elsereturnx[0]+fun(x+1,n-1);

}

main()

{inta[]={1,2,3,4,5,6,7};

printf("%d\n",fun(a,3));}

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

main()

{inta=0;

a+-(a=8);

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

}

23.语句"int(*ptr)();"的含义是______是指向函数的指针,该函数返回一个int型数据。

24.实体—联系模型是一种常用的高级概念数据模型,而【】是实体—模型中的核心。

25.下列程序的输出结果是______。

main()

{inti=0,a=0;

while(i<20)

{for(;;)

{if((i%10)==0)break;

elsei--;}

i+=11;

a+=i;

}

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

}

26.下面程序输出的结果是()。intm=17;intfun(intx,inty){intm=3;return(x*y-m);}main(){inta=5,b=7;printf("%d\n”,fun(a,B)/m);}

27.数据的物理结构在计算机存储空间中的存放形式称为数据的【】。

28.下面的函数fun的功能是将形参x的值转换成二进制数,所得二进制数的每一位放在一维数组中返回,二进制的最低位放在下标为0的元素中,其他依次类推,请填空。

fun(intx,intb[])

{intk=0,r;

do{

r=x%【】;

b[k++]=r;

x/=【】;

}while(x);}

29.若有下列定义和语句:

char*s1="12345",*s2="1234";

printf("%d\n",strlen(strcpy(s1,s2)));

则输出结果为______。

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

31.Fibonacci数列中的头两个数是1和1,从第3个数开始,每个数等于前两个数之和。下述程序计算此数列的前20个数,且每行输出5个数,请填空。

#include<stdio.h>

main()

{intf,f1=1,f2=1;

inti;

printf("%6d%6d",f1,f2);

for(i=3;i<=20;i++)

{f=【】;

printf("%6d",f);

if(【】)

printf("\n");

f1=f2;

【】;

}

}

32.下面程序执行后输出的结果是【】。

intm=13;

intfun(intx,inty)

{intm=3;

return(x*y-m);

}

main()

{inta=7,b=5;

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

}

33.以下isprime函数的功能是判断形参a是否为素数,如果是素数,函数返回1,否则返回0。

intisprime(inta)

inti;

for(i=2;i<=a/2;i++)

if(a%i==0)【】;

【】;

}

34.下面程序的输出结果是【】。

#defineMAX3

inta[MAX];

main()

{fun1();fun2(a);printf("\n");}

fun1()

{intk,t=0;

for(k=0;k<MAX;k++,t++)a[k]=t+t;

}

fun2(intb[])

{intk;

for(k=0;k<MAX;k++)printf("%d",*(b+k));

}

35.测试的目的是暴露错误,评价程序的可靠性;而______得目的是发现错误的位置并改正错误。

36.下面程序把从终端读入的10个整数以二进制方式写入一个名为bi.dat的新文件中。

#include<stdio.h>

FILE*fp;

main()

{inti,j;

if(fp=fopen(【】)==NULL)exit(0);

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

{scanf("%d",&j);

fwrite(&j,sizeof(int),1,【】;

}

fclose(fp);

}

37.有以下程序:

fun(inta,intb)

{if(a>b)return(a);

elsereturn(b);

}

main()

{intx=3,y=8,z=6,r;

r=fun(fun(x,y),2*z);

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

}

程序运行后的输出的结果是【】。

38.若x、y和z均是int型变量,则执行下面表达式后的x值为【】。

x=(y=4)+(z=3)

39.诊断和改正程序中错误的工作通常称为【】。

40.在结构化分析方法中,用于描述系统中所用到的全部数据和文件的文档称为【】。

三、1.选择题(20题)41.设有以下说明语句typedefstruct{intn;charch[8];}PER;则下面叙述中正确的是

A.PER是结构体变量名

B.PER是结构体类型名

C.typedefstruct是结构体类型

D.struct是结构体类型名

42.设变量a是int型,f是float型,i是double型,则表达式10+'a'+i*f的值的数据类型为()。

A.intB.floatC.doubleD.不确定

43.以下不正确的定义语句是()。

A.doublex[5]={2.0,4.0,6.0,8.0,10.0};

B.inty[5]={O,1,3,5,7,9};

C.charc1[]={'1','2','3','4','5'};

D.charc2[]={'\x10','\xa','\x8'};

44.以下程序输出的结果为______。main(){char*alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"};char**p;inti;p=alpha;for(i=0;i<4;i++)printf("%s",p[i]);}

A.ABCDEFGHIJKLB.ABCDC.ABCDEFGHIJKLMNOPD.AEIM

45.设x、y、t均为血型变量,则执行语句x=y=3;t=++x||++y;后,y的值为______。

A.不定值B.4C.3D.1

46.在面向对象方法中,实现信息隐蔽是依靠()。

A.对象的继承B.对象的多态C.对象的封装D.对象的分类

47.下列描述中正确的是()。

A.程序就是软件

B.软件开发不受计算机系统的限制

C.软件既是逻辑实体,又是物理实体

D.软件是程序、数据与相关文档的集合

48.以下不正确的定义语句是

A.doublex[5]={2.0,4.0,6.0,8.0,10.0};

B.inty[5]={0,1,3,5,7,9};

C.charc1[]={'1','2','3','4','5'};

D.charc2[]={'\x10','\xa','\x8'};

49.若有以下程序段:intm=0xabc,n=0xabc;m-=n;printf("%X\n",m);执行后的输出结果是______。

A.0X0B.0x0C.0D.0XABC

50.以下程序的输出结果是()#include<stdio.h>#include<string.h>main(){charstr[12]={'s','t','r','i','n','g'};printf("%d\n",strlen(str));}

A.6B.7C.11D.12

51.检查软件产品是否符合需求定义的过程称为()。

A.确认测试B.集成测试C.验证测试D.验收测试

52.以下程序输出正确的是______。amovep(int*p,int(*A)[3],intn){inti,j;for(i=0;i<n;i++)for(j=0;j<n;j++){*p=a[i][j];p++}}main(){int*p,a[3][3]={{1,3,5},{2,4,6}};p=(int*)malloc(100);amovep(p,a,3);printf("%d%d\n",p[2],p[5]);free(p);}

A.56B.25C.34D.程序错误

53.有以下程序main(){intx,y,z;x=y=1;z=X++,y++,++y;printf("%d,%d,%d\n",x,y,z);}程序运行后的输出结果是

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

54.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和()。

A.可重用性差B.安全性差C.非持久性D.冗余性

55.下列关于栈的描述正确的是()。

A.在栈中只能插入元素而不能删除元素

B.在栈中只能删除元素而不能插入元素

C.栈是特殊的线性表,只能在一端插入或删除元素

D.栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素

56.若整型变量a、b、c、d中的值依次为1、4、3、2。则条件表达式a<b?a:c<d?c:d的值是______。A.1B.2C.3D.4

57.局域网的网络硬件主要服务器、工作站、网卡和()

A.传播介质B.网络操作系统C.计算机D.网络拓扑结构

58.衡量显示器的主要技术指标是()

A.波特率B.分辨率C.主频D.显示速度

59.在面向对象中,一个对象请求另一个对象为其服务的方式是通过发送

A.调用语句B.命令C.口令D.消息

60.

(3)

A.p->nextB.pC.sD.s->next

四、选择题(20题)61.在黑盒测试方法中,设计测试用例的主要根据是()。

A.程序外部功能B.程序内部逻辑C.程序数据结构D.程序流程图

62.有以下程序:

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

A.1,6,2,1,B.8,7,3,1,C.4,7,5,2,D.1,6,5,7,

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

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

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

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

D.各数据结点的存储顺序与逻辑顺序可以不一致,它们的存储空间也可以不一致

64.以下程序的输出结果是

#include<stdio.h>

main()

{

inta,b,d=241;

a=d/100%9;

b=(-1)&&(-1);

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

}

A.6,1B.6,0

C.2,1D.2,0

65.以下能正确定义字符串的语句是()。

A.charstr=”\x43”;

B.charstr[]=”、0”;

C.charstr=”;

D.charstr[]={’\064’};

66.

67.

68.

69.数据库系统的核心是()。

A.数据模型B.数据库管理系统C.数据库D.数据库管理员

70.

71.

72.以下关于结构化程序设计的叙述中正确的是()。

A.一个结构化程序必须同时由顺序、分支、循环三种结构组成

B.结构化程序使用goto语句会很便捷

C.在C语言中,程序的模块化是利用函数实现的

D.由三种基本结构构成的程序只能解决小规模的问题

73.有以下程序

74.

75.有以下程序:

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

A.PrphsbnB.ProhsbnC.ProgsbnD.Program

76.以下说法错误的是A.A.高级语言都是用接近人们习惯的自然语言和数学语言作为语言的表达形式

B.计算机只能处理由0和1的代码构成的二进制指令或数据

C.C语言源程序经过C语言编译程序编译之后生成一个后缀为.EXE的二进制文件

D.每一种高级语言都有它对应的编译程序

77.有以下程序:

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

A.4,5,6,4,5,6,

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

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

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

78.有以下程序:

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

A.22B.76C.72D.62

79.

80.下面的程序段运行后,输出结果是()。

A.9B.不确定值C.0D.18

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:先从键盘上输入一个3行3列的矩阵的各个元素的值,然后输出主对角线元素之和。请修改函数proc()中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数,其功能是:求出该学生的平均分,并放入记录的ave成员中。例如,学生的成绩是:85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应为78.875。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun部位中填入你编写的若干语句。试题程序:#include<stdio.h>#defineN8typedefstruct{charnum[10];doubles[N];doubleave;}STREC;voldfun(STREC*a){}voidmainSTRECs={"GA005",85.5,76,69.5,85,91,72,64.5,87.5};inti;fun(&s);printf("The%ssstudentdata:\n",s.num);for(i=0;i<N;i++)printf("%4.1fkn",s.s[i]);printf("\nknave=%7.3fkn",s.aVe);printf("\n");}

参考答案

1.B

2.D

3.B

4.D本题考查if-else语句的使用。if-else语句可以在条件为“真”或为“假”时执行指定的动作,由if引导条件为“真”时执行的操作;由else引导条件为“假”时执行的操作。else语句要与上面最近的if语句进行匹配,如果要嵌套调用if-else语句,需要将嵌套部分用{}括起来,避免程序报错。题目中给出了一个if语句和一个if-else语句,if-else语句为第一个if语句的子语句。首先执行外层if语句,执行条件为x>y,由于x=1,y=2,故该条件为假,不执行if的子语句,直接执行语句printf("%d\\n",x++);,该语句先输出x的值,然后进行x++操作。x的初始值为1,输出结果为1。

5.B解析:C语言规定标识符只能由字母、数字和下画线3种字符组成,且第一个字符必须为字母或下画线,排除选项C)和D);C语言中还规定标识符不能为C语言的关键字,而选项A)中void为关键字,故排除选项A)。

6.B解析:数据库管理系统是数据库系统的核心,是负责数据库的建立、使用和维护的软件。数据库管理系统建立在操作系统之上,实施对数据库的统一管理和控制。用户使用的各种数据库命令以及应用程序的执行,最终都必须通过数据库管理系统。另外,数据库管理系统还承担着数据库的安全保护工作,按照数据库管理员所规定的要求,保证数据库的完整性和安全性。

7.A解析:头文件<string.h>是字符串处理函数对应的头文件,要想调用C语言的库函数时,都要在程序中嵌入该函数对应的头文件,否则无法使用库函数。

strcpy(s1,s2)把s2中的字符串复制到s1中,所以结果就为s2的长度。

8.C解析:主函数main()定义了指向字符串的指针和一个字符数组,接着调用fun(s,t)函数,进行实参向形参传递,函数fun()第一个while语句判断*a中的值为“*”时继续扫描,当遇到不是“*”时结束,接着第二个while循环语句,将*a中从“a”开始的后续所有字符都赋予*b,也就是t[80]中的内容为“a*b****”,所以此题的运行结果为选项C)。

9.B解析:本题主要考查关系模型中几种运算的特征。经过选择或投影运算得到的新关系的属性个数最多不会超过原关系中的属性个数。经过连接运算得到的新关系最多不少于原关系中属性的个数。故选项B正确。

10.A数组定义后,不可以对数组整体赋值。ss是二维数组,因ss[1]是一维字符数组,相当于一维数组的数组名,是常量,不能重新赋值,A选项错误。B选项和D选项是定义时对数组初始化。在C选项中,将字符串在内存中的首地址赋给指针数组的一个元素。故本题答案为A选项。

11.D

12.B滥用90t0语句将使程序的流程毫无规律,可读性差,对于初学者来说尽量不要使用,所以A错误。—个结构化程序可以包含顺序、分支、循环结构中的一种或多种,所以C错误。由三种基本结构构成的程序可以解决任何复杂的问题,所以D错误。

13.B栈是限定只能在表的一端进行插入和删除操作的线性表,入栈和出栈都是在栈顶进行,它们的操作特点是先进后出,因此具有记忆作用。栈可以采用顺序存储,也可以采用链式存储。

14.D由i"11的数字定义可知n!=n*(n-1)*(n-2)*…*1。在选项A中,由于f的初值为0,在for循环语句中,f依次乘以1,2,3,…,n,最后计算得到f=n!一0,所以选项A不正确。在选项B中,f的初值为1,在for循环语句中,f依次乘以1,2,3,…,(n-1),最后计算得到f=(n-1)!,所以选项B不正确。在选项C中,f的初值为1,在for循环语句中,f依次乘以n,n+1,n+2,……,所以选项c不正确。在选项D中,f的初值为l,在for循环语句中,f依次乘以n,n-1,n-2,…,2,最后计算得到f=n!,所以选项D正确。

15.A

16.D本题考查函数返回值作参数,最初n=1,f(n)=f(1)=2,将f(n)的结果代入第二个f(n)中,即f(f(n))=f(2)=4,所以f(f(f(f(n))))=f(4)=8。

17.D解析:本题主要考查自加(++)、自减(--)运算符的使用。“++i,--i”在使用i之前,先使i的值加1或者减1,然后再使用i此时的值参与运算;“i++,i--”是在使用i参与表达式运算之后,再使i的值加1或者减1。本题中--a和++b是先执行a减1和b加1操作,再输出表达式的值。

18.B解析:本题中,structex是结构体类型名,ex-ample是结构体变量名。

19.D解析:本题考查数据结构中队列的基本知识。队列是一种限定性的线性表,它只允许在表的一端插入元素,而在另一端删除元素,所以队列具有先进先出的特性。在队列中,允许插入元素的一端叫做队尾,允许删除的一端则称为队头。这与日常生活中的排队是一致的,最早进入队列的人最早离开,新来的人总是加入到队尾。因此,本题中只有选项D的说法是正确的。

20.Dfun函数接收两个整型指针变量a、b。for循环判断a、b指向的值大小和getchar读入的字符是否为“@”来决定循环是否执行。循环体内对a、b指向的值各自自增1、自减1。main函数定义并初始化实参i的值为0,实参j的值为5,调用函数fun,传入i、j的地址。所以形参a指向i,形参b指向j,*a的值为0,*b的值为5,*a<*b为真,执行循环体;*a的值为1,*b的值为4,*a<*b为真,执行循环体;*a的值为2,*b的值为3,*a<*b为真,执行循环体;*a的值为3,*b的值为2,*a<*b为假,getchar读入字符“a”,执行循环体;*a的值为4,*b的值为1,*a<*b为假,getchar读入字符“b”,执行循环体;*a的值为5,*b的值为0,*a<*b为假,getchar读入字符“@”,fun函数执行完毕,main函数输出5,0。故本题答案为D选项。

21.1010解析:题目中的fun()函数直接调用了自身,所以它是递归函数。函数中只有一条if语句,意思是:若n为0,则返回x所指内容(x[0]等价于*x),否则返回x所指内容加上fun(x+1,n-1)。即,当n>0时,fun(x,n)=x[0]+fun(x+1,n-1)=x[0]+x[1]+fun(x+2,n-2)=…=x[0]+x[1]+…+x[n];当n=0时,fun(x,n)=x[0];当n<0时,函数将无限循环递归调用下去,因为n-1下去永远也不会等于0。所以本题中fun(a,3)=a[0]+a[1]+a[2]+a[3]=12+3+4=10。故应该填10。

22.1616解析:在程序中首先将8赋值给变量a,然后在进行复合赋值运算。即a=a+a=8+8=16,所以该空格处应该填16。

23.ptrptr解析:本题考查函数指针的概念。函数指针的定义格式是:类型标识符(*旨针变量名)()。注:“类型标识符”为函数返回值的类型。

24.实体-联系图(E-R图)实体-联系图(E-R图)解析:实体-联系图(E-R图)是实体联系模型中的核心。由于E-R图描述的是数据流图中数据存储及其之间的关系,因此它是数据库概念设计的最常用的工具。

25.3232解析:while(表达式)的功能是:首先计算表达式的值,若为真,则执行循环体语句,执行完毕,再计算表达式的值,若仍为真,则重复执行循环体语句,直到表达式的值为假时,结束while语句的执行,继续执行while语句后面的语句:i=0时满足循环条件,也满足if的条件,执行语句得i=11,a=11,第2次循环不满足if的条件,执行i--,i=10,执行i+=11;a+=i后,得i=21,a=32,不满足i<20,循环结束。

26.11解析:本题考查局部变量和全局变量的区别:局部变量是指作甩域在函数级和块级的变量,全局变量是指作用域在程序级和文件级的变量。

27.内模式或物理模式或存储模式内模式或物理模式或存储模式解析:一个数据库只有一个内模式,它是数据物理结构和存储方式的描述,是数据库内部的表示方法。例如,记录的存储方式是顺序存储、索引按照什么方式组织;数据是否压缩存储,是否加密等。

28.222\r\n2解析:深刻理解+进制转化为二进制的方法,即取余法;数组名作为实参,在函数内部可以直接修改调用函数中定义的数组的值。注意:掌握两个数据进行交换的算法原理。

29.44解析:strcpy(s1,s2)函数的作用是将字符串s2中的内容拷贝到字符串s1中的内容覆盖。strlen()函数是求字符串的长度。本题实际上是要求s2字符串的长度,即是4。

30.

31.f1+f2i%5==0f2=ff1+f2\r\ni%5==0\r\nf2=f解析:f用来保存前两个数之和,并作为第三个数,计算后把第二个数(f2)赋给f1,第三个数(f)赋给f2,再执行for循环。

32.22解析:本题变量m既是外部变量(值是13),又是fun函数的局部变量(值为3)。函数fun(x*y-m)的值为7*5-3=32,在main函数中,fun(a,b)/m中的m应取外部变量的值13,因此输出2。

33.return0或return(0)return1或return(1)return0或return(0)\r\nreturn1或return(1)解析:素数是指只能被1和其本身整除,不能被其他任何整数整除的数。根据if条件语句,若形参a对i取余等于0,则形参a可以被其他数整除,所以第一处填return0;若形参a对i取余不等于0,则形参s不可以被其他数整除,所以第二处填return1。

34.024

35.软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定;调试也称排错,它是一个与测试有联系又有区别的概念。具体来说,测试的目的是暴露错误,评价程序的可靠性,而调试的目的是发现错误的位置,并改正错误。\r\n\r\n

36."bi.dat"fp'bi.dat'\r\nfp解析:打开文件函数fopen的参数是文件名,因此有fopen('bi.dat');而写文件的参数是文件指针,因此有fwrite(&j,sizeof(int),1,fp);

37.1212解析:函数fun的功能是求两个数当中的最大值。语句r=fun(fun(x,y),2*z)的执行过程为:首先计算fun(x,y),因x=3、y=8,所以结果为8;然后计算fun(8,2,*z),即计算fun(8,12),所以r=12。

38.77解析:x=(y=4)+(z=3)等价于y=4,z=3,x=y+z=4+3=7。

39.程序调试程序调试解析:程序调试的任务是诊断和改正程序中的错误。程序调试与软件测试不同,软件测试是尽可能多地发现软件中的错误。先要发现软件的错误,然后借助于调试工具找出软件错误的具体位置。软件测试贯穿整个软件生命期,而调试主要在开发阶段。

40.数据字典数据字典解析:在结构化分析方法中,用于描述系统中所用到的全部数据和文件的文档称为数据字典。

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

42.C解析:int型、float型、double型的数据可以混合,要先转换成同一类型再运算。10+‘a’运算后值的类型为int型,i*f运算后值的类型为double型,最后表达式值的类型为double型。

43.B解析:选项B中初值列表中的初值个数超过了数组包含的元素的个数。

44.C解析:alpha[0]指向“ABCD”的首地址;alpha[1]指向“EFGH”的首地址;alpha[2]指向“IJKL”的首地址,依此类推。当执行p=alpha后,p指向指针数组alpha的首地址。for循环中输出了4个字符串。

45.C解析:C语言中在做逻辑或运算时,自左向右判断各个参加或运算的表达式,一旦运算到某式的值为非零时,表明整个表达式一定为真,余下的语句则不再进行运算。本题中,++x的值为真,则++y并没有进行运算,所以y值不变。

46.C解析:通常认为,面向对象方法具有封装性、继承性、多态性几大特点。就是这几大特点,为软件开发提供了一种新的方法学。

封装性:所谓封装就是将相关的信息、操作与处理融合在一个内含的部件中(对象中)。简单地说,封装就是隐藏信息。这是面向对象方法的中心,也是面向对象程序设计的基础。

继承性:子类具有派生它的类的全部属性(数据)和方法,而根据某一类建立的对象也都具有该类的全部,这就是继承性。继承性自动在类与子类间共享功能与数据,当某个类作了某项修改,其子类会自动改变,子类会继承其父类所有特性与行为模式。继承有利于提高软件开发效率,容易达到一致性。

多态性:多态性就是多种形式。不同的对象在接收到相同的消息时,采用不同的动作。例如,一个应用程序包括许多对象,这些对象也许具有同一类型的工作,但是却以不同的做法来实现。不必为每个对象的过程取一过程名,造成复杂化,可以使过程名复用。同一类型的工作有相同的过程名,这种技术称为多态性。

经过上述分析可知,在面向对象方法中,实现信息隐蔽是依靠对象的封装。正确答案是选项C。

47.D\r\n软件是与计算机操作相关的计算机程序、规程、规则,以及可能有的文件、文档及数据;软件开发要受到计算机系统的限制;软件是一个逻辑实体,不是物理实体,软件具有抽象性。因此选项D正确。

48.B解析:在一维数组中要注意的是作为下标表达式的常量表达式的值必须是大于等于0,选项B)中定义有5个元素,但赋值时有6个元素,所以是错误的。

49.C解析:“%X”以十六进制无符号形式输出整数,变量m和n的初始值都是十六进制数,m=m-n=0xabc-oxabc=0x0,所以输出结果为0。

50.A解析:本题考查求字符串的长度。程序中定义字符串str时中请了12个字节的内存空间,对它赋初值后,函数strlen在求串长度时,以'\\0'作为串结束符,所以,strlen(str)的值为6。

51.A本题主要考查软件测试的基本知识。软件测试的步骤可分为单元测试(模块测试)、集成测试、确认测试和系统测试。

(1)单元测试是针对每个模块进行的测试,它可从程序的内部结构出发设计测试用例,多个模块可以平行、对立地测试。单元测试主要用于发现详细设计和编程时犯下的错误。单元测试多采用白盒测试,辅之以黑盒测试。

(2)集成测试是在单元测试的基础上,根据模块结构图将各个模块连接起来,必须精心计划,应提交集成测试计划、集成测试规格说明和集成测试分析报告。主要目标是发现与接口有关的问题。集成测试可以发现概要设计时犯的错误。

(3)确认测试用于验证软件的功能和性能及其他特性是否与用户的要求一致。确认测试主要用于发现需求分析时犯下的错误,一般使用黑盒法测试,以表明软件符合需求说明书的要求,应该仔细设计测试用例和测试过程。确认测试必须有用户参加,或以用户为主,用户应参与设计测试用例,通常情况下,主要使用生产中的实际数据进行测试,测试数据通过用户接口输入。

(4)系统测试是将已经通过确认测试的软件,作为整个计算机系统的元素与计算机硬件、外设和网络等其他因素结合在一起,进行一系列的组装测试和确认测试。系统测试的目的是通过与系统的需求定义做比较,发现软件与系统的定义不符合的地方。系统测试可以发现问题定义时犯下的错误。

52.A解析:本题main函数中定义了指针p和二维数组a,通过函数amovep将数组的值存入指针p所指向的存储单元中,a的各各元素分别为:a[0][0]=1,a[0][1]=3,a[0][2]=5,a[1][0]=2,a[1][1]=4,a[1][2]=6,a[2][0]=0,a[2][1]=0,a[2][2]=0。通过malloc()函数绐指针分配内存空间,free()函数用于释放指针变量所用内存空间。在主函数中通过amovep(p,a,3)调用函数amovep,使得实参p与形参p,实参数组a与形参中指向数组的指针变量共用同一存储空间。最后输出p[2],p[5]为56。

53.C解析:整型变量x、y的初值都为1,“x++,y++,++y”是一个逗号表达式,程序执行“z=x++,y++,++y”后,x的值为2,y的值为3,z取豆号表达式中第二个表达式的值,为1。

54.D解析:文件系统所管理的数据文件基本上是分散的、相互独立的,因此相对于数据库系统,以此为基础的数据处理存在3个缺点,数据冗余大、数据的不一致性、程序与数据的相互依赖(简称为数据依赖)。注意:文件系统和数据库系统各自的特点,人工管理阶段及数据库系统三代的特点。

55.C解析:根据数据结构对栈的定义及其特点可知:栈是限定只在表尾进行插入或删除操作的线性表,因此栈是先进后出的线性表,对栈的插入与删除操作,不需要改变栈底元素。栈是限定只在表尾进行插入或删除操作的线性表。

56.A解析:条件表达式的形式如下:表达式1?表达式2:表达式3,所以本题条件表达式a<b?a:c<d?c:d应该理解为a<b?a:(c<d?c:d),首先求出条件表达式c<d?c:d的值等于2,再求条件表达式a<b?a:2的值,由于a-1<b-4成立,所以上述条件表达式的值等于1。

57.A

58.B

59.D解析:面向对象的世界是通过对象与对象间彼此的相互合作来推动的,一个对象与另一个对象通过发送消息彼此交换信息,请求对方执行某一处理或回答某一要求的信息。

60.B解析:在主函数中,定义了一个结构体型指针变量head,然后将函数CreatList()的返回值赋给指针变量head,从这里可知函数CreatList()的返回值为struetnode*类型,所以第48处的空格处应该填struetnode*;在函数CreatList()中首先定义三个结构体型指针变量h,p和q,然后调用malloc()函数分配了一个结点空间,并让指针h指向它,开始指针p、q和h都指向它,然后调用一个while循环语句,当到达字符串数组s的末尾结束循环,在每次循环中,分配一个结点空间,并让p指向它,然后让该结点的data域的值等于字符串指针s所指的值,故49处的空格处应填*s;接下来让指针q所指结点的指针域指向结点p,然后让指针q指向该指针的所指结点的下一个结点即p。

61.A【答案】:A

【知识点】:黑盒测试

【解析】:黑盒测试也称功能测试或数据驱动测试,它完全不考虑程序内部的逻辑结构和内部特征,只着眼于程序的外部结构,主要用来检查程序功能是否按照需求规格说明书的规定正常使用。故选A。

62.D首先对二维数组进行赋值操作,a[0][0]、a[0][1]、…、a[3][2]、a[3][3]的值为l、4、…、6、1。通过for语句和if语句,对二维数组各列元素进行由

温馨提示

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

评论

0/150

提交评论