2021年湖北省襄樊市全国计算机等级考试C语言程序设计真题(含答案)_第1页
2021年湖北省襄樊市全国计算机等级考试C语言程序设计真题(含答案)_第2页
2021年湖北省襄樊市全国计算机等级考试C语言程序设计真题(含答案)_第3页
2021年湖北省襄樊市全国计算机等级考试C语言程序设计真题(含答案)_第4页
2021年湖北省襄樊市全国计算机等级考试C语言程序设计真题(含答案)_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

2021年湖北省襄樊市全国计算机等级考试C语言程序设计真题(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.下列程序段的时间复杂度为()。A.O(i+j)B.O(n)C.O(n2)D.O(i*j)

2.一个二维数组的定义语句为“inta[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为()。

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

3.读取二进制文件的函数调用形式为:fread(buffersize,count,fp);,其中buffer代表的是()。

A.一个文件指针,指向待读取的文件

B.一个整型变量,代表待读取的数据的字节数

C.一个内存块的首地址,代表读人数据存放的地址

D.一个内存块的字节数

4.给定数列(541,132,984,746,518,181,946,314,205,827)按照从小到大的顺序排列,采用快速排序(以中间元素518为基准)的第一趟扫描结果是()

A.(541,132,827,746,518,181,946,314,205,984)

B.(205,132,314,181,518,746,946,984,541,827)

C.(132,541,746,984,181,518,314,946,205,827)

D.(132,541,746,518,181,946,314,205,827,984)

5.若执行下面的程序时,从键盘上输入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

6.在深度为5的满二叉树中,叶子结点的个数为()。

A.31B.32C.16D.15

7.

8.

9.设初始输入序列为1,2,3,4,5,利用一个栈产生输出序列,下列()序列是不可能通过栈产生的。

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

10.以下程序的输出结果是()main(){staticchara[10]={"Chinese"};printf("%d",strlen(a));}

A.7B.2C.9D.10

11.对n个关键字的序列进行快速排序,平均情况下的空间复杂度为_______

A.O(1)B.O(logn)C.O(n)D.O(nlogn)

12.以下选项中非法的字符常量是()。

A.\101B.\65C.\xffD.\019

13.一个栈的进栈序列是a,b,c,d,e,则栈的不可能的输出序列是()。

A.edcbaB.decbaC.dceabD.abcde

14.向一个栈顶指针为h的带头结点的链栈中插入指针s所指的结点时,应执行()操作。

A.h->next=s;

B.s->next=h;

C.s->next=h;h->next=s;

D.s->next=h->next;h->next=s;

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

A.线性链表中的各元素在存储空间中的位置必须是连续的

B.线性链表中的表头元素一定存储在其他元素的前面

C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面

D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的

16.对于n个结点的单向链表(无表头结点),需要指针单元的个数至少为______。

A.n-1B.nC.n+1D.2n

17.下列程序的输出结果是()。#include<stdio.h>voidmain(){inta=0,b=1,c=2;if(++a>0‖++b>0)++c;printf("%d,%d,%d",a,b,c);}

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

18.有以下程序:#include<stdio.h>main(){inta=0,b=0,c=0;c=(a=a=5);(a=b,b+=4);printf("%d,%d,%d\n",a,bc);}程序运行后的输出结果是()。A.0,4,5B.4,4,5C.4,4,4D.0,0,0

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

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

20.

二、2.填空题(20题)21.软件开发环境是全面支持软件开发全过程的【】集合。

22.对下列二叉树进行中序遍历的结果为【】。

23.写出下列程序的执行结果。swap(p1,p2)int*p1,*p2;{intp;p=*p1;*p1=*p2;*p2=p;}main(){inta,b,*p1,*p2;scanf("%d%d",&a,&B);p1=&a;p2=&b;if(a<B)swap(p1,p2);printf("\na=%d,b=%d\n",a,B);}若a=7,b=8,则程序的运行结果为()。

24.在面向对象的程序设计中,类描述的是具有相似性质的一组【】。

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

inta=1234;

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

26.下面程序的功能是输出数组s中最大元素的下标,请填空。

main()

{intk,p,s[]={1,-9,7,2,-10,3};

for(p=0,k=p;p<6;p++)

if(s[p]>s[k])【】

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

27.若有如下结构体说明:

structSTRU

{inta,b;charc:doubled;

structSTRU*p1,*p2;

};

请填空,以完成对t数组的定义,t数组的每个元素为该结构体类型。

【】t[20]

28.在链表的运算过程中,能够使空表与非空表的运算统一的结构是______。

29.以下函数用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。请填空。

#include<conio.h>

#include<stdio.h>

intfun(int*s,intt,int*k)

{inti;

*k=0;

【】

if(s[*k]<s[i])*k=i;

return【】;}

main()

{inta[10]={876,675,896,101,301,401,980,431,451,777},k;

fun(a,10,&k);

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

30.以下程序的功能是:删去一维数组中所有相同的数,使相同的数只剩一个。数组中的数已按由小到大的顺序排列,函数fun返回删除后数组中数据的个数。

例如,若一维数组中的数据是:

2223445666677899101010

删除后,数组中的内容应该是:2345678910。请填空。

#include<stdio.h>

#defineN80

intfun(inta[],intn)

{inti,j=1;

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

if(a[j-1]【】a[i])a[j++]=a[i];

【】;

}

main()

{inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;

printf("Theoriginaldata:\n");

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

n=fun(a,n);

printf("\nThedataafterdeleted:\n");

for(i=0;i<n;i++)printf("%3d",a[i]);printf("\n\n");

}

31.软件需求规格说明书应具有完整性、无歧义性、正确性、可验证性、可修改性等特性,其中最重要的是【】。

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

#include<stdio.h>

main()

{staticcharstr1[40];

charstr2140];

strcpy(str2,"China");

strcat(str1,str2);

strcat(str1,"isagreatcountry!");

printf("%s%s",str2,strl);

printf("%d%d\n",strlen(str2),strlen(str1));

}

33.设顺序输入数列为:24,30,8,5,1,27,24,26,10,21,9,28,7,13,15。假定每个结点的查找概率相同,若用顺序存储方式组织该数列,则查找一个数成功的平均比较次数为【】;若按二叉排序树结构组织该数列,则查找一个数成功的平均比较次数为【】。

34.设有定义语句:inta[][3]={{0},{1},{2}};,则数组元素a[1][2]的值为()。

35.结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、______和限制使用goto语句。

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

37.以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,

否则返回0。请填空。

intisprime(inta)

{inti;

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

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

【】;

}

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

39.设Y是int型变量,请写出判断Y为奇数的关系表达式【】。

40.若输入字符串:abcde↓,则以下while循环体将执行【】次。

while((ch=getchar())=='e')printf("*");

三、1.选择题(20题)41.下列叙述中正确的是()。

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

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

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

D.以上三种说法都不对

42.若a、b、c、d都是int型变量且都已经正确赋初值,则以下不正确的赋值语句是()。

A.a+d;B.a++:C.a=b=c=d=100;D.a=(b=3)+(d=5);

43.有以下程序:intf(intb[][4]){inti,j,s=0;for(j=0j<4;j++){i=j;if(i>2)i=3-j;s+=b[i][j];}returns;}main(){inta[4][4]={{1,2,3,4},{0,2,4,6},{3,6,9,12},{3,2,1,0}};printf("%d\n",f(a));}执行后的输出结果是()。

A.12B.11C.18D.16

44.若变量已正确定义并赋值,以下符合C++语言语法的表达式是()。

A.a:=b+1B.a=b=c+2C.int18.5%3D.a=a+7=c+b

45.下列程序的运行结果为()。

#deflneMAX(x,y)(x)>(y)(x):(y)

main()

{inta=2,b=3,c=1,d=3,t;

printf("%d\n",(MAX(a+b,c+D))*100);

}A.A.500B.5C.4D.400

46.下面程序段的输出为#nclude"stdio.h"main(){printf("%d\n",12<<2);}

A.0B.47C.48D.24

47.为了提高测试的效率,应该()。

A.随机选取测试数据

B.取一切可能的输入数据作为测试数据

C.在完成编码以后制定软件的测试计划

D.集中对付那些错误群集的程序

48.若x=2,y=3,则x&y的结果是()。

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

49.在数据库设计的四个阶段中,为关系模式选择存取方法应该是在______阶段。

A.需求分析B.概念设计C.逻辑设计D.物理设计

50.开发大型软件时,产生困难的根本原因是()

A.大系统的复杂性B.人员知识不足C.客观世界千变万化D.时间紧、任务重

51.下列选项中错误的说明语句是

A.chara[]={'t','o','y','o','u','\0'};

B.chara[]={"toyou\0"};

C.chara[]="toyou\0";

D.chara[]='toyou\0';

52.对建立良好的程序设计风格,下列描述正确的是()。

A.程序应该简单、清晰、可读性好B.符号名的命名只需要符合语法C.充分考虑程序的执行效率D.程序的注释可有可无

53.阅读下面程序段,则执行后输出的结果是#include"stdio.h"main(){charfun(char,int);chara='A';intb=13;a=fun(a,b);putchar(a);}charfun(chara,intb){chark;k=a+b;returnk;}

A.AB.MC.ND.L

54.以下程序运行后,输出结果是

#definePT5.5

#defineS(x)PT*x*x

#include<stdio.h>

main()

{inta=1,b=2;

printf("%4.1f\n",S(a+b));}

A.49.5B.9.5C.22D.45

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

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

56.利用fseek函数可实现的操作是()。

A.实现文件的顺序读写B.改变文件的位置指针C.实现文件的随机读写D.以上答案均正确

57.若有说明语句:double*P,a;则能通过scanf语句正确给输入项读入数据的程序段是()。

A.*p=&a;scanf("%lf",p);

B.*p=&a;scanf("%f",p);

C.p=&a;scanf("%lf",*p);

D.p=&a;scanf("%lf",p);

58.以下程序有语法错误,有关错误原因的正确说法是()。main(){intG=5,k;voidprt_char();┆k=prt_char(G);┆}

A.语句voidprt_char();有错,它是函数调用语句,不能用void说明

B.变量名不能使用大写字母

C.函数说明和函数调用语句之间有矛盾

D.函数名不能使用下划线

59.若有"doublea;",则正确的输入语句是()。

A.scanf("%lf",a);

B.scanf("%f",&a);

C.scanf("%lf",&a)

D.scanf("%le",&a);

60.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为______。A.EOFB.非0值C.0D.NULL

四、选择题(20题)61.

62.C语言源程序名的后缀是()。A.CB.exeC.obiD.ep

63.在软件设计中不使用的工具是()。

A.系统结构图

B.程序流程图

C.PAD图

D.数据流图(DFD图)

64.软件详细设计生产的图如右图:该图是()。

A.N—S图B.PAD图C.程序流程图D.E—R图

65.

66.

67.以下程序有错,错误的原因是

main()

{int*p,i;char*q,ch;

p=&i;

q=&ch;

*p=40;

*p=*q;

......

}

A.p和q的类型不一致,不能执行*p=*q;语句

B.*p中存放的是地址值,因此不能执行*p=40;语句

C.q没有指向具体的存储单元,所以*q没有实际意义

D.q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行*p=*q;没有意义,可能会影响后面语句的执行结果

68.有以下程序程序输出()。

A.编译有错B.0,0,0,3C.1,1,2,0D.0,l,2,0

69.

70.

71.

72.以下叙述中错误的是()。

A.一个C程序中可以包含多个不同名的函数

B.一个C程序只能有一个主函数

C.C程序在书写时,有严格的缩进要求,否则不能编译通过

D.C程序的主函数必须用main作为函数名

73.

74.在C语言中,函数返回值的类型最终取决于()。

A.函数定义时在函数首部所说明的函数类型

B.return语句中表达式值的类型

C.调用函数时主调函数所传递的实参类型

D.函数定义时形参的类型

75.以下选项中,合法的是()。

A.charstr3[]={d,e,b,u,g,\0};

B.charstr4;str4="helloworld";

C.charname[10];name="china";

D.charstrl[5]="pass",str2[6];str2=strl;

76.有下列函数定义:fun(floath){printf("%f,%f\n",h,h*h);)该函数的类型是()。

A.int类型B.float类型C.void类型D.函数无类型说明,定义有错

77.下列选项中属于软件生命周期开发阶段任务的是()。

A.可行性研究

B.需求分析

C.详细设计

D.软件维护

78.

79.下列叙述中错误的是()。A.A.在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值B.在C语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容

C.在C语言中,外部变量的隐含类型是自动存储类别

D.在C语言中,函数形参的存储类型是自动(auto)类型的变量

80.以下叙述中正确的是()。

A.用C语言编写的程序只能放在一个程序文件中

B.C程序书写格式严格,要求一行内只能写一个语句

C.C程序中的注释只能出现在程序的开始位置和语句的后面

D.C程序书写格式自由,一个语句可以写在多行上

五、程序改错题(1题)81.下列给定的程序中,proc()函数的功能是:将str所指字符串中每个单词的最后一个字母改成大写(这里的“单词”是指有空格隔开的字符串)。

例如,若输人:Howdoyoudo,则输出:HoWdOyoUd0。

请修改程序中的错误,使它能得出正确的结果。

注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,编写函数fun(),它的功能是求小于形参n同时能被3与7整除的所有自然数之和的平方根,并将其作为函数值返回。例如,若n为1000时,程序输出应为s=153.909064。注意:部分源程序在文件prog1.c中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:

参考答案

1.C

2.C

3.Cfread函数中的参数buffer是内存块的首地址,输入的数据存入此内存块中。

4.B

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

6.C解析:二叉树的一个性质是,在二叉树的第k层上,最多有2(k-1)(k>=1)个结点。对于满二叉树,每一层上的结点数都达到最大值,即在满二叉树的第k层上有2k-1个结点。所以,在深度为5的满二叉树中,所有叶子结点在第5层上,即其结点数为2(k-1)=2(5-1)=16。

7.D

8.A

9.B

10.A

11.D

12.D在选项中,\\019,以0开头的数都为八进制数,而八进制的表示数字是0~7,所以答案选择D。

13.C

14.D

15.D解析:性表的链式存储结构中,各数据结点的存储序号不连续,且各结点在存储空间中的位置关系与逻辑关系也不一致。性链表中,各数据元素之间的前后件关系是由各结点的指针域来指示的。所以,选项D正确。

16.C解析:在n个结点的单向链表(无表头结点)中,每个结点都有一个指针单元(即指针域),加上头指针,至少需要n+1个指针单元。

17.C解析:本题考查if语句。先判断if语句的条件是否成立,++a=1>0,此条件成立,又因为是进行逻辑或运算,在已知其中一个运算对象为真的情况下,不必判断另外一个运算符的真假,即不进行++b操作,就可以直接得出整个表达式的值为逻辑1,执行下列的++c。

18.A本题考查简单的赋值运算,在程序中c=(a-=am5),先算括号中的a-=a-5=5,所以c=5,再计算(a=b,b+=4);,a=b=0,b+=4=0+4=4,所以b=4,所以a=0,b=4,c=5,答案选择A。

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

20.D

21.软件工具软件工具

22.ACBDFEHGPACBDFEHGP解析:中序遍历方法的递归定义;当二叉树的根不为空时,依次执行如下3个操作:①按中序遍历左子树。②访问根结点。③技中序遍历右子树。根据遍历规则来遍历本题中的二叉树。首先遍历F的左子树,同样按中序遍历。先遍历C的左子树,即结点A,然后访问C,接着访问C的右子树,同样按中序遍历C的右子树,先访问结点B,然后访问结点D,因为结点D没有右子树,因此遍历完C的右子树,以上就遍历完根结点F的左子树。然后访问根结点F,接下来遍历F的右子树,同样按中序遍历。首先访问E的左子树,E的左子树为空,则访问结点E,然后访问结点E的右子树,同样按中序遍历。首先访问G的左子树,即H,然后访问结点G,最后访问G的右子树P。以上就把整个二叉树遍历一遍,中序遍历的结果为ACBDFEHGP。因此,划线处应填入“ACBDFEHGP”。

23.a=8b=7

24.对象对象解析:将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象的集合。

25.12341234解析:在%与格式符之间插入一个整型数来指定输出宽度,当指定宽度小于输出数的实际宽度时,则按实际宽度输出。

26.k=p;k=p;解析:为要寻找数组中的最大元素的下标,需先预设1个临时最大元素的下标,并顺序逐一考查数组的元素,当发现当前元素比临时最大元素更大时,就用当前元素的下标更新临时最大元素下标。直至考查了数组的全部元素后,这临时最大元素下标就是数组的最大元素下标。通常预设的最大元素下标是数组的首元素下标,考查是从首元素开始顺序向后继元素考查。程序中,存储临时最大元素下标的变量是k,变量p控制顺序考查的循环控制变量。当发现当前元素s[p]比临时最大元素s[k)更大时,应该用p更新k。所以在空框处应填入代码“k=p;”。

27.strudctSTRUstrudctSTRU解析:结构件类型是构造数据类型,是用户自己定义的一种类型。

结构体类型的定义:

struct结构体类型名

{

成员项表;

};

定义结构体变量的的形式为:

struct结构体类型名变量1,变量2,...?

其中变量包括;一般变量、指针变量、数组变量等。

28.循环链表循环链表解析:在循环链表中,由于设置了一个头结点,因此在任何情况下,循环链表中至少有一个结点存在,从而使空表与非空表的运算统一。

29.for(I=0;I<t;I++)0for(I=0;I<t;I++),0解析:本题中直接使用指针变量k,但在使用时要注意对k的指针运算,此外,一开始应使*k的值为数组中的某一下标值,即*k=0。

30.!=returnj!=returnj解析:函数fun中,变量j用于控制删除后剩下的数中的下标,i用于搜索原数组中的元素。j始终是新数组已有元素中最后一个元素的下一个元素的下标,所以订语句中的条件是a[j-1]!=a[i],其中a[j-1]就是新数组中的最后一个元素,若条件成立则表示出现了不同的值,a[i]要添加到新数组中。该算法只能用于数组已排序的题目中。

31.正确性正确性解析:本题考查软件工程中需求规格说明书的评审。衡量需求规格说明书好坏的标准按重要性次序排列为:正确性、无歧义性、完全性、可验证性、一致性、可理解性、可修改性和可追踪性。因此,划线处应填入“正确性”。

32.ChinaChinaisagreatcountry!525

33.857/15

34.00解析:二维数组中当某行一对花括号内的初值个数小于该行中元素的个数时,系统将自动给该行后面的元素补初值0,由此可见数组a[1][2]=0。

35.模块化模块化

36.相邻相邻

37.return0return1return0,return1解析:如果a能被i整除,则a是素数,返回值为0。如果a不能被i整除,则a不是素数,返回值为1。

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

39.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判断变量是否为奇数可以用变量与2取模,判断结果是为1或下为0。本题具体做法如下:Y%2=1或Y%2!=0。

40.00解析:函数getchar()是从键盘得到用户输入的一个字符。用户输入的第1个字符是a,不管后面输入的是什么ch的值都是'a',因此条件(ch=getchar())=='e'为假,这个循环不会被执行。

41.A本题考查程序效率。程序效率是指程序运行速度和程序占用的存储空间。影响程序效率的因素是多方面的,包括程序的设计、使用的算法、数据的存储结构等。在确定数据逻辑结构的基础上,选择一种合适的存储结构,可以使得数据操作所花费的时间少,占用的存储空间少,即提高程序的效率。因此,本题选项A的说法是正确的。

42.AC语言规定,赋值号的右边可以是一个赋值表达式,因此选项C)、选项D)正确;在选项B)中,a是一个自加1的表达式,a被重新赋值,因此它是一个合法的赋值表达式;选项A)中,ad是一个算术表达式,虽然最后有一个分号,但这个表达式中没有赋值操作,因此它不是一条赋值语句。

43.D解析:分析程序可知,函数f()中的for循环作用,是将数组前三行中的对角线上的元素,即b[0][0]、b[1][1]、b[2][2]和第一行的第四列元素即b[0][3]累加到变量s中,然后将s的值返回。在主函数中首先定义了一个4行4列的二维数组,接着通过输出语句输出函数f(a)的返回值。调用f(a)的返回值为a[0][0]+a[1][1]+a[2][2]+a[0][3]=1+2+9+4=16。所以,4个选项中选项D符合题意。

44.B解析:a=b=c+2实际上相当于a=(b=c+2),进而可分解为两个表达式:b=c+2和a=b。注意:选项A)中包含一个不合法的运算符“:=”;选项C)应改为(int)18.5%3;选项D)可理解为两个表达式:a+7=c+b和a=a+7,其中第一个是错的,因为C++语言规定赋值号的左边只能是单个变量,不能是表达式或常量等。注意:C++语言赋值语句的运用,

45.A解析:本题考查带参数的宏的定义及相关运算:(x)>(y)(x):(y)是x>y时输出x,否则输出y,调用(MAX(a+b,c+d))*100时,(a+b=5)>(c+d=4),所以输出a+b=5,所以x=5*100。

46.C

47.D本题主要考查软件的测试。软件测试的主要目的体现在下面几个方面。

(1)软件测试是为了发现错误而执行程序的过程。

(2)一个好的测试用例能够发现至今尚未发现的错误。

(3)一个成功的测试是发现了至今尚未发现的错误的测试。

软件测试的效率是指利用更少的成本创造更多的价值,提供软件测试效率的方法有很多,如制定一个合理的详细的测试计划,了解测试项目的业务需求,集中对付那些错误群集的程序等。而选项A所描述的随机选取测试数据是不能保证提高测试效率的,选项B描述的取一切可能的输入数据作为测试数据显然不能提高测试效率,反而使工作量加大,降低测试效率。

48.B解析:本题主要考查按位与(&)运算的知识点。“&”是对两个运算量相应的位进行逻辑与,“&”的规则与逻辑与“&&”相同。x=2的二进制为00000010,y=3的二进制为00000011,x&y=00000010,转化为十进制即为2。

49.D解析:需求分析阶段是分析用户的需求,显然不属于这个阶段,由此可以排除选项A.概念设计是将需求分析得到的用户需求抽象为信息结构及概念模型的过程,涉及不到数据的存取,所以选项D错误。逻辑设计是在概念设计的基础上将E-R图转换成数据库管理系统的逻辑数据模型表示的逻辑模式,也不涉及存取问题,选项C也不对。答案为D。

50.A开发大型软件时,产生困难的原因有很多,如需求难以捕捉、员工水平有限、工作安排不太合理、进度控制难以把握、系统开发时间有限等元素,但这些都不是根本的原因,根本的原因是大系统的复杂性。

51.D解析:通过赋初值的方式给一维数组赋字符串,可以用给一般数组赋初值的相同方式给一维字符数组赋字符串,也可以在赋值时直接赋字符串常量。选项B)和C)后面的'\\0'是多余的,不过也不错,在C语言中,系统会自动在字符串的结尾处加上一个字符'\\0'作为串的结束标记。

52.A解析:“清晰第一,效率第二”,在考虑到程序的执行效率的同时,一定要保证程序清晰、可读;对符号名的命名,除了要符合语法要求外,还要具有一定的含义;程序的注释可以帮助程序员理解程序,不是可有可无的。

53.C解析:函数说明语句中的类型名必须与函数返回值的类型一致。本题实现的是在字符,A,的ASCII码值上加上一个常数,使之变成另一个ASCII码值,从而输出字符。

54.A解析:考查宏替换的使用。宏替换用'#define宏名宏体'的形式来定义。在进行编译预处理时,将把程序中宏定义之后的所有宏名用宏体替换。宏虽然可以带参数,但宏替换过程中不像函数那样要进行参数值的计算、传递及结果返回等操作;宏替换只是简单的字符替换,不进行计算,因而本题中的S(a+b)进行宏替换后为PT*1+2*1+2=5.5*1+2*1+2=9.5。

55.A\r\n二分法又叫折半(对分)查找法,只适合于顺序存储的有序表(是指线性表中的元素按值非递减排列)。二分法的基本思想是:设有序线性表的长度为n,被查元素为X,则二分查找的方法如下:

将X与线性表的中间项进行比较:若中间项的值等于x,则说明找到,查找结束;若x小于中间项的值,则在线性表的前半部分(即中间项以前的部分)以相同的方法进行查找;若X大于中间项的值,则在线性表的后半部分(即中间项以后的部分)以相同的方法进行查找、这个过程-直进行到查找成功或于表长度为0,(说明线性表中没有这个元素为止)顺序存储的线性袁在计算机中-般用一个-维数组来表示,在数组中我们可以通过数组名和下标来对数组中的任意一个元素进行访问,而在链表(不管是有序还是无序)中,要对元素进行访问必须从表头结点开始,顺着链条一个一个结点进行搜索,因此选项A正确

56.D解析:改变文件位置指针函数fseek()的功能:①改变文件的位置指针;②辅助实现文件的顺序读写;③辅助实现文件的随机读写。

57.D解析:*p间接引用指针指向的变量,因此“(*p)=&a”不对。scanf()的输入变量必须为地址,因此C是错误的。

58.C解析:在C程序中,若把函数定义放在函数调用之后,应该在函数调用之前对函数进行声明,或称为函数原型说明。函数声明的类型必须与函数返回类型一致,函数声明可以是一条独立的语句,也可以与普通变量一起出现在同一条语句中。本题程序中声明prt_char函数是void类型,与k=prt_char()的类型矛盾,所以本题的错误在于“函数说明和函数调用语句之间有矛盾”。

59.D解析:scanf函数的调用形式是:scanf(格式字符串,输入项地址表)。其中,“格式字符串”是要输入的变量的格式符;“输入项地址表”是要输入的变量的地址。题中定义变量a为双精度型变量,双精度变量的格式符为“1e”;变量的地址用取地址符“&”加变量名表示,例如变量a的地址为“&a”。

60.B(27)B)解析:函数feof的功能是:测试fp所指的文件的位置是否已达到文件尾,如果达到文件尾,则函数返回非0值,否则返回0,表示文件尚未结束。

61.B

温馨提示

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

评论

0/150

提交评论