2021年河北省承德市全国计算机等级考试C语言程序设计测试卷一(含答案)_第1页
2021年河北省承德市全国计算机等级考试C语言程序设计测试卷一(含答案)_第2页
2021年河北省承德市全国计算机等级考试C语言程序设计测试卷一(含答案)_第3页
2021年河北省承德市全国计算机等级考试C语言程序设计测试卷一(含答案)_第4页
2021年河北省承德市全国计算机等级考试C语言程序设计测试卷一(含答案)_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

2021年河北省承德市全国计算机等级考试C语言程序设计测试卷一(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.

2.在所有的排序方法中,关键字比较的次数与记录的初始排列次序无关的是()。

A.希尔排序B.冒泡排序C.直接插入排序D.直接选择排序

3.下列说法不正确的是()。

A.调用函数时,实参可以是表达式

B.调用函数时,实参与形参可以共用内存单元

C.调用函数时,将实参的值复制给形参,使实参变量和形参变量在数值上相等

D.调用函数时,实参与形参的类型必须一致

4.结构化程序设计方法的3种基本控制结构中不包括

A.循环结构B.递归结构C.顺序结构D.选择结构

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

A.数据的逻辑结构与存储结构必定是一一对应的

B.由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构

C.程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构

D.以上三种说法都不对

6.

7.程序运行后的输出结果是()。A.0304.B.2050C.3344D.3040

8.算法的空间复杂度是指()。

A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间

9.设顺序表的长度为n,则顺序查找的平均比较次数为()

A.nB.n/2C.(n+1)/2D.(n-1)/2

10.

11.栈和队列的共同点是()。

A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同点

12.在有向图G的拓扑序列中,若顶点Vi在顶点Vj之前,则下列情形不可能出现的是()。

A.G中有弧

B.G中有一条从Vi到Vj的路径

C.G中没有弧

D.G中有一条从Vj到Vi的路径

13.表达式a*(-b+c)的逆波兰式是()

A.ab-+c*B.abc-+*C.a*b-c+D.ab-c+*

14.以下说法正确的是()。

A.C语言只接受十进制的数

B.C语言只接受二进制、八进制、十六进制的数

C.C语言只接受二进制、十进制、十六进制的数

D.C语言只接受八进制、十进制、十六进制的数

15.

16.在非线性结构中,每个结点()。

A.无直接前趋

B.只有一个直接前趋和个数不受限制的直接后继

C.只有一个直接前驱和后继

D.有个数不受限制的直接前驱和后继

17.软件生命周期是指()。A.软件产品从提出、实现、使用维护到停止使用退役的过程

B.软件从需求分析、设计、实现到测试完成的过程

C.软件的开发过程

D.软件的运行维护过程

18.以下不能将s所指字符串正确复制到t所指存储空间的是()A.do{*t++=*s++;}while(*s);

B.for(=0;t[的]=s@];i++);

C.while(*t=*s){t++;s++}

D.for(i=0.j=0;t[i++]=sj++];);.

19.下列排序算法中,时间复杂度不受数据初始化状态影响,恒为0(log2n)的是()。A.堆排序B.冒泡排序C.直接选择排序D.快速排序

20.若有定义“inta[2][3],*p[3];”,则以下语句中正确的是()。

A.p=a;B.p[0]=a;C.p[0]=&a[1][2];D.p[1]=&a;

二、2.填空题(20题)21.软什是程序、数据和______的集合。

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

main()

{ints=0,i=1;

while(s<=10)

{S=S+i*i;

i++;

b

}

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

}

23.函数delete(s,i,n)的作用是从字符串s中删除从第i个字符开始的n个字符,请填空。

voiddelete(chars[],inti,intn)

{intj,k,length=0;

whiles(length])

【】;

-i;

j=i;

}

if(【】)

{k=i+n;

if(i+n<=length)

while(k<length)

s[j++]=s[k++];

s[j]='\0';

}

24.有如下图所示的双链表结构,请根据图示完成结构体的定义:

structaa

{intdata;

【】}node;

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

#defineP(A)printf("%d",A)

main()

{intj,a[]={1,2,3,4,5,6,7),i=5;

for(j=3;j>1;j--)

{switch(j)

{case1:

case2:P(a[i++]);break;

case3:P(a[--i]);

}

}

}

26.已知字母A的ASCII码为65。以下程序运行后的输出结果是______。

main()

{chara,b;

a='A'+'5'-'3';b=a+'6'-'2';

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

}

27.数据结构分为线性结构和非线性结构,线性表、栈和队列都属于【】。

28.若有以下函数定义,函数返回值的类型是【】。

fun(doubleA)

{returna*a*a;}

29.以下程序的运行结果是()。

main()

(inta=2,b=7,c=5;

switch(a>0)

{case1:switch(b<0)

{case1:switch(");break;

case2:printf("!");break;

}

case0:switch(c==5)

{case0:printf("*");break;

case1:printf("#");break;

case2:printf("$");break;

}

default:printf("&");

}

printf("\n");

}

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

voidfun()

{staticinta=0;

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

}

main()

{intcc;

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

printf("\n");

}

31.以下程序用来统计文件中字符的个数。请填空。

#include“stadio.h”

main()

{FILE*fp;longnum=0L;

if((fp=fopen(“fname.dat”,“r”))==NULL);

{printf(“0penerror\n”);exit(0);}

while(【】)

{fsetc(fp);num++;}

printf(“num=%1d\n”,num-1);

fclose(fp);

}

32.为了便于对照检查,测试用例应由输入数据和预期的【】两部分组成。

33.有以下程序:

#include<stdio.h>

main()

{intn=0,m=1,x=2;

if(!n)x-=1;

if(m)x-=2;

if(x)x-=3;

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

}

执行后的输出结果是【】。

34.在使用putchar和getchar函数处理字符时,必须在程序的开头出现包含头文件的命令行是【】。

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

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

structs

{intx,y;}data[2]={10,100,20,200};

main()

{

structs*p=data;

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

}

37.下列软件系统结构图的宽度为[]。

38.以下程序的运行结果是【】。

#include<stdio.h>

#defineMAX(a,b)(a>b?a:b)+1

main()

{inti=6,j=8,k;

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

}

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

main()

{inta=3,b=4,c=5,t=99;

if(b<a&&a<c)t=-a;a=c;c=t;

if(a<c&&b<c)t=b;b=a;a=t;

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

}

40.数据结构包括数据的逻辑结构、数据的【】以及对数据的操作运算。

三、1.选择题(20题)41.下面程序的输出结果是()main(){inti,f1,f2;f1=f2=1;for(i=0;i<4;i++){printf(”%d%d”,f1,f2);f1+=f2;f2+=f1;}}

A.12345678

B.1123581321

C.1135791113

D/p>

42.设有如下的变量定义;inti=8,k,a,b;unsingedlongw=5;doublex=1.42,y=5.2则以下符合C语言语法的表达式是()

A.a+=a-=(b=4)*(a=3)B.x%(-3);C.a=a*3=2D.y=float(i)

43.有以下程序:main(){intx[8]={8,7,6,5,O,0},*s;s=x+3;printf("%d\n",s[2]);}执行后输出结果是()。

A.随机值B.0C.5D.6

44.在下列关于逻辑表达式a&&b的叙述中,错误的一条是()

A.若a为真、b为真,则a&&b为真

B.若a为真、b为假,则a&&b为假

C.若a为假、b为真,则a&&b为真

D.若a为假、b为真,则a&&b为假

45.在数据流图(DFD)中,带有名字的箭头表示______。

A.控制程序的执行顺序B.模块之间的调用关系C.数据的流向D.程序的组成成分

46.下列程序执行后的输出结果是______。main(){intm[][3]={1,4.7,6,5,8,3,6,9};inti,k=2for(i=0,i<3;i++){printf("%d",m[k][i];}}

A.456B.258C.369D.789

47.以下对枚举类型名的定义中正确的是()

A.enuma={one,two,three};

B.enuma{one=9,two=-1,three=200};

C.enuma={"one","two","four"};

D.enuma{"nine","two","three"};

48.在C语言中,不适用于局部变量的存储类说明符是()

A.autoB.registerC.staticD.extern

49.有下列程序:

main()

{intt,a=1,b=5,C=-2;

while(a>b>C)

{t=a;a=b;b=t;c++;}

printf("%d,%d,%d",a,b,C);

}

程序的输出结果是()。

A.1,5,0B.1,5,-2C.5,1,-1D.5,1,-2

50.有以下程序intx=3;do{printf("%d",x-=2);}while(!(--x));程序运行后的输出结果是()

A.1B.30C.1,-2D.死循环

51.以下能正确定义一维数组的选项是______。

A.inta[5]={0,1,2,3,4,5};

B.chara[]={0,1,2,3,4,5};

C.chara={'A','B','C'};

D.inta[5]="0123";

52.下列选项中不属于结构化程序设计方法的是()。

A.自顶向下B.逐步求精C.模块化D.可复用

53.下列字符串是合法的标识符的是()。

A._HJB.9_studentC.longD.LINE1

54.有以下程序:#include<stdio.h>main(){inti,j;for(i=3;i>=1;i-){for(j=1;j<=2;j++)printf("%d",i+j);printf("\n");}}程序运行的结果是()。

A.234B.432C.23D.4534554334344523

55.简单的交换排序方法是()。

A.快速排序B.选择排序C.堆排序D.冒泡排序

56.数据流图用于抽象描述一下软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是______。

A.控制流B.加工C.数据存储D.源和潭

57.用黑盒技术测试用例的方法之一为

A.因果图B.逻辑覆盖C.循环覆盖D.基本路径测试

58.若有如下定义:intx=3,y=2,Z;则表达式Z=X/y*3.0的值是()。

A.2B.2C.3D.3

59.软件危机是大型软件开发中出现的现象,下列选项中的______是其主要表现。

①软件生产的复杂性。

②软件生产进度无法控制。

③软件生产高成本、无法控制。

④软件需求定义不准确。

A.全部B.②和③C.①、②和④D.②和④

60.在软件测试设计中,软件测试的主要目的是

A.实验性运行软件B.证明软件正确C.找出软件中全部错误D.尽可能多地发现软件中的错误

四、选择题(20题)61.

62.有以下程序main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}程序运行后的输出结果是______。

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

63.在数据库管理系统DBMS中,用来定义内模式和外模式等一些数据库管理系统中其他结构的语言为

A.CB.BasicC.DDLD.DML

64.

65.在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送()。A.调用语句B.命令C.口令D.消息

66.

67.

有下列程序:

voidsort(inta[],intn)

{inti,j,t;

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

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

if(a[i]<a[j]){t=a[i];a[i]一a[j];a[j]=t;}

}

main

{intaa[10]:{1,2,3,4,5,6,7,8,9,10),i;

sort(aa+2,5);

for(i=0;i<10;i++)printf("%d,",aa[i]);

printf("\n");

}

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

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

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

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

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

68.

69.

70.

71.在数据库管理系统的层次结构中,处于最上层的是()。

A.应用层B.语言翻译处理层C.数据存取层D.数据存储层

72.若有定义语句:“charsE10]="1234567\0\0";”,则strlen(s)的值是()。A.A.7B.8C.9D.10

73.

74.

75.

76.

77.(66)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为()

A.PAD图

B.N-S图

C.结构图

D.数据流图

78.软件需求分析一般应确定的是用户对软件的______。

A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求

79.有以下程序

#include"stdio.h"

#defineM(x,y)(x)*(y)

#defineN(x,y)(x)/(y)

main()

{inta=5,b=6,c=8,k;

k=N(M(a,b),c);

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

}

程序的运行结果是

A.3B.5

C.6D.8

80.若i、j已定义成mt型,则下列程序段中内循环体的总执行次数是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30

五、程序改错题(1题)81.给定程序中,函数fun的功能是:首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符:按排列的顺序交叉合并到C所指数组中,过长的剩余字符接在C所指的数组的尾部。例如,当a.所指字符串中的内容为“abcdef9”,b所指字符串中的内容为“1234”时,c所指数组中的内容应“a4b3c2dlef9”;而当a所指字符串中的内容为“1234”,b所指字符串的内容为“abcdef9”时,c所指数组中的内容应该为“lg2f3e4dcba”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写函数fun(),该函数的功能是判断字符串是否为回文,若是,则函数返回1,在主函数中输出“YES”,否则返回0,在主函数中输出“NO”。回文字符串是指顺读和倒读都一样的字符串。例如,字符串LEVEL是回文,而字符串123312就不是回文。注意:部分源程序在文件prog1.c中。第3部分无纸化考武题庠请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:1#include2#defineN803intfun(char*str)4{56}7main()8{9chars[n];10FILE*out;11char*test[]={"1234321","123421","123321","abcdCBA"};12inti;13printf("Enterastring:");14gets(s);15printf("\n\n");16puts(s);17if(fun(s))18printf("YES\n");19else20printf("NO\n");21/******************/22out=fopen("out.dat","w");23for(i=0;i<4/i++)24if(fun(test[i]))25fprintf(out,"YES\n");26else27fprintf(out,"NO\n");28fclose(out);29/******************/30}

参考答案

1.C

2.D

3.B

\n本题考查函数调用的基本概念。调用函数时,实参的形式可以是具体的数值,也可以是表达式。实参将数值或表达式的值传递给形参,因而两者的类型必须保持一致;形参在运算过程中会发生改变,但不一定会影响到实参值,所以可知两者不共用内存单元。

\n

4.B解析:本题考查了程序的基本结构。程序由一些基本结构组成。任何一个大型的程序都由3种基本结构组成,由这些基本结构顺序的构成了一个结构化的程序。这3种基本结构为:顺序结构、选择结构和循环结构。

5.D解析:一般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构,因此,数据的逻辑结构与存储结构不一定是一一对应的。选项A中的说法是错误的。虽然计算机的存储空间是向量式的存储结构,但由于一种数据的逻辑结构根据需要可以表示成多种存储结构,例如,线性链表是线性表的链式存储结构。一般来说,性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。性链表中,各数据元素之间的前后件关系是由各结点的指针域来指示的。因此,数据的存储结构不一定是线性结构。选项B中的说法也是错误的。虽然程序设计语言中的数组一般是顺序存储结构,但是,利用数组也能处理非线性结构。例如,满二叉树与完全二叉树是非线性结构,但对于满二叉树与完全二叉树来说,根据完全二叉树的性质6,可以按层序进行顺序存储,即利用程序设计语言中的数组来存储,这样,不仅节省了存储空间,又能方便地确定每一个结点的父结点与左右子结点的位置。对于一般的二叉树来说,也可以将二叉树中每一个结点的左指针、右指针以及数据域分别用三个数组中的对应元素来存储,即实际上也是利用了程序设计语言中的数组来处理二叉树这样的非线性结构。选项C中的说法也是错误的。综上所述,选项A、B与C中的说法都是错误的。

6.D

7.D[解析]第一次循环沩0.i%2为0.执行switch(a[0]%62)中的case0语句后内容即a[0]++,a[0]的值变成3;第二次循环的值为1.i%62为1.执行case1:a[]=0;所以a[1]的值变成0;第三次循环的值为2.i%62为0.执行switch([2]%62)中的case1语句后的内容a[2]--,a[2]的值变成4;第四次循环的值为3.i%2为1.执行case1:ai]=0;所以a[3]的值变成0.

8.D【解析】算法的空间复杂度是指执行这个算法所需要的内存空间。一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行中所需要的额外空间。其中额外空间包括算法程序执行过程中的工作单元以及某种数据结构所需要的附加存储空间。如果额外空间量相对于问题规模来说是常数,则称该算法是原地工作的。在许多实际问题中,为了减少算法所占的存储空间,通常采用压缩存储技术,以便尽量减少不必要的额外空间。

9.C

10.D

11.C解析:栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种“后进先出”(或“先进后出”)的线性表;而队列只允许在表的一端进行插入操作,在另一端:进行删除操作,是一种“先进先出”(或“后进后出”)的线性表。因此栈和队列的共同点是只允许在端点处插入和删除元素。

12.D若G中有一条从Vj到Vi的路径,则图的拓扑序列中顶点Vj在顶点Vi之前。设G(V,E)是一个具有n个顶点的有向图,V中顶点的序列v1,v2,…,vn称为一个拓扑序列,当且仅当该顶点满足下列条件:若在有向图G中,从顶点vi在vj有一条路径,则在拓扑序列中顶点vi必须排在顶点vj之前。

13.D

14.DC语言中,整型常量可以用十进制、八进制和十六进制表示。故本题答案为D选项。

15.D

16.D

17.A通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。

18.A[解析]do{*t++=*s++;}while(*s);不能因为当*s=^0'时,while(*s)跳出循环,这样字符串结束标志“0没有复制给*t,造成*t不完整。\u3000\u3000注意,*t++=*s++是先执行t=*s,然后才进行t=t+1.s=s+1.B),C),D)三项都能将“0复制过去。

19.D

20.CA选项错误,因为p是指向一个指针数组,而数组名相当于常量,不能重新赋值。B选项错误,因为p[0]是一个int指针,也就是int*,而a是一个指向指针的指针int**。C选项正确,因为p[0]是int*,a[1][2]是int,&a[1][2]是int*,类型吻合。D选项错误,因为a作为数组名,不能取地址,即使能取,P[1]是int*,&a是int***,类型不吻合。故本题答案为C选项。

21.文档文档解析:计算机软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据以及相关文档的完整集合。

22.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。

23.length++i<lengthlength++\r\ni<length解析:第—个循环极有可能是计算串的长度,在i<=length时字符才被删除,被删除的是从第i个到笫i+n或最后—个间的所有字符。删除前,应判断i<=length。由于已经进行了-i运算,故实际应填入i<length。

24.structaa*lhead*rchild;structaa*lhead,*rchild;解析:结构体对链表的定义。

25.5555解析:分析程序执行过程,第一次循环时,j=3,i=5。因为switch(3),所以执行case3,调用P(a[--i])=P(a[4])=P(5),输出5;第二次循环时,j=2,i=4,因为switch(2),所以执行case2,调用P(a[i++])-P(a[4])=P(5),输出5,之后i自加等于5。

26.67G67G解析:字符型变量中保存的是某个字符的ASCII码值,是一个整数,因此字符型变量的算术运算和整型变量并无区别。所以。a='A'+'5'-'3'='A'+('5'='3')='A'+2=65+2=67:b=a+'6'='2'='C'+('6'-'2')='C'+4='G'。最后分别按十进制整数和字符形式输出a和b的值为:67G。

27.线性结构线性结构解析:本题考查了数据结构的基本概念。与栈类似,队列也是线性表,可以采用链式存储结构,所以带链的队列属于线性结构。

28.int类型int类型

29.#&#&解析:刚开始时,switch后面的表达式a>0为真(1),与case1匹配,然后执行case1后面的switch语句,表达式b<0值为0,没有与其匹配的语句,返回外层,因为外层没有break语句,顺序执行case0后面的switch语句,表达式“c==5”值为1,与其后面的case1匹配,因此输出#,遇到break返回外层,又因为外层没有break语句,顺序执行default后的语句,输出&。

30.246

31.!feof(fP)!feof(fP)解析:统计文件中字符个数的算法可描述如下:首先判断文件位置指针是否指向了文件尾,如果不是则读出一个字符,同时字符的个数加1,再判断文件位置指针是否位于文件尾,如此循环,直到文件位置指针位于文件尾为止。本题首先以读文件的方式打开了文件“fname.dar”,如果打开成功则把返回的文件型指针赋值给fp,然后通过循环求文件中的字符数。首先判断文件位置指针是否位于文件尾,如果不是则循环读取字符,每次字符数加1。所以下划处应填循环条件,文件位置指针不是指向文件尾,即“!feof(fp)”。

32.输出结果输出结果解析:注意:测试的基本方法和步骤。

33.-4-4解析:因为n=0,所以!n为真,执行x-=1;得到x=x=2-1=1;m=1为真,执行x-=2;得到x=x-2=1-2=-1;x=-1为真,执行x-=3;得到x=x-3=-1-3=-4。

34.#include"stdio.h"#include'stdio.h'解析:使用putchar和getchar函数时,必须在程序的开头出现包含头文件#include'stdio.h'的命令行。putchar的函数调用形式为:putchar(字符变量或字符常量);getchar函数的调用形式为:变量=getchar();getchar后的一对圆括号内没有参数,但这一对圆括号不可少。

35.正确性正确性解析:软件需求规格说明书是需求分析阶段的最后成果,通过建立完整的信息描述、详细的功能和行为描述、性能需求和设计约束的说明、合适的验收标准,给出对目标软件的各种需求。软件需求规格说明书的特点:①正确性;②无歧义性;③完整性;④可验证性;⑤一致性;⑥可理解性;⑦可追踪性。其中最重要的是正确性。

36.1111解析:程序中结构体数组data首地址(即&data[0])赋值给结构体指针变量p,++(P->x)表示先将p所指向的结构体变量的成员x值加1,然后将此x(即data[0].x)输出。

37.33解析:软件系统结构图的宽度:整体控制跨度(最大模块数的层)的表示。

38.99解析:本题考查宏定义与三目运算符的综合应用。宏定义是原样替换,本题中,如果a>b成立,则a+1的值为整个表达式的值,否则b+1的值为整个表达式的值(应注意后面的加1)。

39.45994599解析:if语句只对紧跟其后的一条语句或语句块产生作用。因此,题目中两条if语句只有t=a;和t=b是if的子句。第1条if语句中b<a为假,所以跳过语句t=-a;,执行a=c;c=t,a=5、b=4、c=99。第2条if语句的判断条件a<c&&b<c为真,所以后面3条语句都被执行,这3条语句构成一次a和b的内容交换。所以最后输出的结果是:4599。

40.存储结构数据结构包括3个方面,即数据的逻辑结构、数据的存储结构及对数据的操作运算。

41.B

42.A

43.B解析:通过赋值语句“s=x+3”,使指针变量s指向数组元素x[3],输出语句中的spl等价于*(s+2),即x[5]值为0。所以,B选项为所选。

44.C

45.C解析:数据流相当于一条管道,并有一级数据(信息)流经它。在数据流图中,用标有名字的箭头表示数据流。数据流可以从加工流向加工,也可以从加工流向文件或从文件流向加工,并且可以从外部实体流向系统或从系统流向外部实体。

46.C解析:根据二维数组的定义得出:m[0][0]=1,m[0][1]=4,m[0][2]=7,m[1][0]=2,m[1][1]=5,m[1][2]=8,m[2][0]=3,m[2][1]=6,m[2][2]=9,所以本题的输出是第3行的值m[2][0],m[2][1],m[2][2],即369。

47.B解析:枚举类型的定义类似于结构体和共用体,所以选项A和C不正确。大括号中的枚举元素应该使用合法标识符来定义,而不是字符串常量,所以选项D不正确。故应该选择B。

48.D

49.A解析:本题考查while循环。先判断while循环的控制表达式是否成立,发现a>b>c不成立,所以不执行循环。直接输出a、b、c的值。

50.C

51.B解析:选项A)定义的是长度为5的数组元素,但初值有6个元素,所以错误;选项C)不符合数组定义形式,数组名后应加上“[];选项D)的类型说明符错误,应改为char;选项B)中的0,1,2,3,4,5分别表示对应字符的ASCII码,所以正确。

52.D解析:20世纪70年代以来,提出了许多软件设计方法,主要有①逐步求精:对复杂的问题,应设计一些子目标作过渡,逐步细化;②自顶向下:程序设计时应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化;⑧模块化:一个复杂问题,肯定是由若干稍简单的问题构成。模块化是把程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,把每个小目标称为一个模块,而可复用是面向对象程序设计的一个优点。

53.A解析:标识符是以字母、数字和下划线组成的字符串,且只能是字符或下划线开头,且C语言的关键字不能用作用户自定义的标识符。注意:熟记C语言中常用的关键字。

54.D解析:本题主要考查for循环语句的嵌套。外层主循环执行了3次,嵌套的循环语句每轮执行2次,每次输出i+j的值,推出嵌套循环语句后换行。

55.D解析:所谓的交换类排序方法是指借助数据元素之间的互相交换进行排序的一种方法,包括冒泡排序和快速排序,冒泡排序是一种最简单的交换排序方法,它通过相邻元素的交换,逐步将线性表变成有序。

56.A解析:数据流图从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。数据流图中的主要图形元素有:加工(转换)、数据流、存储文件(数据源)、源和潭。

57.A解析:黑盒测试主要方法有等价值划分法,边界值分析法。错误推测法、因果图法等。白盒测试的主要方法有逻辑覆盖、基本路径测试循环覆盖等。因此只有A属于黑盒测试。

58.C解析:变量z被定义为整型,所以选项B和D不符合题意,首先被排除。变量x和y也被定义为整型,所以表达式x/y的值为整数1,最后z被赋值为3,选项C正确。

59.A

60.D解析:使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。软件测试是为了发现错误而执行程序的过程。测试要以查找错误为中心,而不是为了演示软件的正确功能。

61.D

62.C题目中需要求出程序的输出值i,j,其中i的值由sizeof决定,j的值由strlen函数决定。

sizeof是C语言的一种运算符,以字节的形式给出操作数的存储空间的大小。sizeof的操作对象可以是具体的数据类型,也可以是变量。题目中的操作数为数组名,利用sizeof可计算出数组所占用内存的字节数,题目

温馨提示

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

评论

0/150

提交评论