2021-2022年云南省保山市全国计算机等级考试C语言程序设计_第1页
2021-2022年云南省保山市全国计算机等级考试C语言程序设计_第2页
2021-2022年云南省保山市全国计算机等级考试C语言程序设计_第3页
2021-2022年云南省保山市全国计算机等级考试C语言程序设计_第4页
2021-2022年云南省保山市全国计算机等级考试C语言程序设计_第5页
已阅读5页,还剩106页未读 继续免费阅读

下载本文档

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

文档简介

2021-2022年云南省保山市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.

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

3.对于如图所示二叉树采用中根遍历,正确的遍历序列应为()A.ABCDEFB.ABECDFC.CDFBEAD.CBDAEF

4.要声明一个有10个int型元素的数组,正确的语句是()。

A.inta[10];B.inta[2,5];C.inta[];D.int*a[10];

5.下列标识符不是关键字的是()。

A.breakB.charC.SwithchD.return

6.下列程序的输出结果是()。#includedstdi0.h>#includedstring.h>voidfun(intb[]){staticinti=0;do{b[i]+=b[i+1];}while(++i<2);}main{intk,a[5]={1,3,5,4,9};fun(a);for(k=0;k<5;k++)printf("%d",a[k]);}A.13579B.48579C.48549D.48999

7.设有定义:intn=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是()A.p=1;B.*q=2;C.q=p;D.*p=5;

8.栈通常采用的两种存储结构是A.A.线性存储结构和链表存储结构

B.散列方式和索引方式

C.链表存储结构和数组

D.线性存储结构和非线性存储结构

9.视图设计一般有3种设计次序,下列不属于视图设计的是______。

A.自顶向下B.由外向内C.由内向外D.自底向上

10.有以下程序:#include<stdio.h>main(){inta=1,b=3,c=5;int*p1=&a,*p2=&b,*p=&c;*p=*p1*(*p2);printf(“%d\n”,c);}程序的运行结果是()。

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

11.在c语言中,变量的隐含存储类别是()。

A.autoB.staticC.externD.无存储类别

12.在多媒体计算机系统中,不能用以存储多媒体信息的是A.光缆B.软盘C.硬盘D.光盘

13.有以下程序:#include<stdio.h>intfun(intx,inty){if(x!=y)return((x+y)/2);elsereturn(x);}main(){inta=4,b=5,c=6;printf(“%d\n”,fun(2*a,fun(b,c)));}程序运行后的输出结果是()。

A.3B.6C.8D.12

14.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间。

A.单链表B.仅有头指针的单循环链表C.双链表D.仅有尾指针的单循环链表

15.数字字符“2”的ASCII码为十进制数50,数字字符“5”的ASCII码为十进制数()

A.52B.55C.54D.53

16.下面不属于需求分析阶段任务的是()。

A.确定软件系统的功能需求B.确定软件系统的性能需求C.制定软件集成测试计划D.需求规格说明书评审

17.定义无符号整数类为UInt,下面可以作为类UInt实例化值的是A)B)369C)0.369D)A.-369B.369C.0.369D.整数集合{1,2,3,4,5}

18.对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为()。

A.顺序表B.用头指针表示的循环单链表C.用尾指针表示的循环单链表D.单链表

19.有以下程序:程序运行后的输出结果是()。A.1.000000B.0.000000C.0.250000D.0.500000

20.下面哪个不是用来解决哈希表冲突的开放地址法()

A.线性探测法B.线性补偿探测法C.拉链探测法D.随机探测法

二、2.填空题(20题)21.阅读下面程序,则程序的执行结果为【】。

#include"stdio.h"

fun(intk,int*p)

{inta,b;

if(k==1‖k==2)

*p=1;

else{fun(k-1,&a);

fun(k-2,&b);

*p=a+b;}}

main()

{intx;

fun(6,&x);

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

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

#include<stdio.h>

main()

{inta[5]={2,4,6,8,10},*p;

p=a;p++;

printf("%d",*p);

}

23.实现程序可将磁盘中的一个文件复制到另一个文件中,两个文件的文件名在可执行命令的命令行中(相当于copy命令),假定文件在当前目录下。请补全程序。

#include<stdio.h>

voidmain(intargc,char*argv[])

{FILE*f1,*f2;

if(argc<【】)

{printf("parametererror!\n");exit(0);}

f1=fopen(argv[1],"r");

f2=fopen(argv[2],"w");

while(【】)fputc(fgetc(f1),f2);

fclose(f1);

fclose(f2);

}

24.函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下:

1

11

121

1331

14641

其构成规律是:

①第0列元素和主对角线元素均为1;

②其余元素为其左上方和正上方元素之和;

③数据的个数每行递增1。

请将程序补充完整。

#defineN6

voidYangHui(intx[N][N])

{inti,j;x[0][0]=1;

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

{x[i][0]=x[i][i]=1;

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

x[i][j]=【】;

}

}

25.【】是从二维表列的方向进行的运算。

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

intff(intn)

{staticintf=1;

f=f*n;

returnf;

}

main()

{inti;

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

27.以下程序的辅出结果是【】。

voidfun(ints[])

{inti;

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

printf("\n\n");

}

main()

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

fun(a[0]);

}

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

main()

{intx,a=1,b=2,c=3,d=4;

x=(a<b)?a:b;x=(x<c)?x:c;x=(d>x)?x:d;

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

}

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

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

}

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

31.有下列程序;

#include<stdio.h>

main()

{charc;

while((c=getchar())!=',')putchar(++C);

}

程序运行时,如果从键盘输入:A,B,<CR>,则输出结果为______。

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

main()

{char*p[]={"BOOL","OPK","H","SP"};

inti;

for(i=3,i>=0;i--,i--)printf("%c",*p[i]);

printf("\n");

}

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

main()

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

printf("%d,",x<y?y:x);

printf("%d,",z<y?x++:y++);

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

}

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

35.若有定义floatb[15],*p=b;,且数组b的首地址为200H,则p+13所指向的数组元素的地址为______。

36.设有以下定义和语句,则*(*(P+2)+1)的值为【】。

int[3][2]={10,20,30,40,50,60},(*p)[2];

p=a;

37.下面程序的运行结果是()。#include<stdio.h>main(){chara[80],*p"AbabCDcd";inti=0,j=0;while(*(p++)!='\0'){if(*p>='a'&&*p<='z'){a[i]=*p;i++;}}a[i]='\0';puts(A);}

38.当执行以下程序时,输入1234567890<回车>,则其中while循环体将执行()次。

#include<stdio.h>

main()

{charch;

while((ch=getchar())=='0')printf("#");

}

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

#include<stdio.h>

main()

{inta=2,b=-1,c=2;

if(a<b)

if(b<0)c=0;

elsec++;

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

}

40.有以下程序:

intsub(intn){return(n/10+n%10);}

main()

{intx,y;

scanf("%d",&x);

y=sub(sub(sub(x)));

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

}

若运行时输入:1234<回车>,程序的输出结果是【】。

三、1.选择题(20题)41.有以下程序段:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];b中的值是

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

42.下列程序的运行结果为#include<stdio.h>voldabc(char*str){inta,b;for(a=b=0;str[a]!='\0';a++)if(str[a]!='c')str[b++]=str[a];str[b]='\0';}voidmain(){charstr[]="abcdef";abc(str);printf("str[]=%s",str);}

A.str[]=abdefB.str[]=abcdefC.str[]=aD.str[]=ab

43.判断char型变量c1是否为大写字母的正确表达式是

A.'A'<=c1<='Z'

B.(c1>=A)&&(c1<=Z)

C.('A'>=c1)‖('Z'<=c1)

D.(c1>='A')&&(c1<='Z')

44.E-R图是数据库设计的工具之一,它一般适用于建立数据库的________。

A.概念模型B.结构模型C.物理模型D.逻辑模型

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

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

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

C.chars3[20]="Chest";

D.char*s4="Cest\n"

46.设有以下说明语句structex{intX;floaty;charz;}example;则下面的叙述中不正确的是

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

B.example是结构体类型名

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

D.structex是结构体类型名

47.有以下程序main(){chara[]="abcdefg",b[10]="abcdefg";printf("%d%d\n",sizeof(a),sizeof(b));}执行后输出结果是

A.77B.88C.810D.1010

48.假定w、x、y、m均为int型变量,则执行下列的语句后,m的值是()。w=6,x=4,y=3;m=(w<x)?w:x;m=(m<y)?m:y;

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

49.若执行下述程序时,若从键盘输入6和8,结果为()。main(){inta,b,s;scanf("%d%dt",&a,&B);s=a:if(s=B)s*=s;printf("%d",s);}

A.36B.64C.48D.以上都不对

50.执行下面程序的正确结果是()main(){floata=1.9switch(A){case0:printf("0000");case1:printf("1111");case2:printf("3333");}printf("%f",A);}

A.1.900000

B.111133331.900000

C.33331.900000

D.00001111233331.900000

51.有以下程序:structS{intn;inta[20];};voidf(int*a,intn){inti;for(i=0;i<n-1;i++)a[i]+=i;}mainf(){inti;structSs{10,{2,3,1,6,8,7,5,4,10,9}};if(s.a,s.n);for(i=0;i<s.n;i++)printf("%d",s.a[i]);}程序运行后的输出结果是()。

A.2,4,3,9,12,12,11,11,18,9

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

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

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

52.定义下列结构体(联合)数组:structst{charname[15];intage;}a[10]={"ZHAO",14,"WANG",15,"LIU",16,"ZHANG",17};执行语句printf["%d,%c",a[2].age,*(a[3].name+2))的输出结果为()。

A.15,AB.16,HC.16,AD.17,H

53.执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是______。mein(){chars[100];intc,i;scanf("%c",&C);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%s\n",c,i,s);}

A.123,456,789B.1,456,789C.1,23,456,789D.1,23,456

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

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'};

55.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是()。

A.abs(x-y)<10

B.x-y>-10&&x-y<10

C.!(x-y)<-10||!(y-x)>10

D.(x-y)*(x-y)<100

56.有以下程序:main(){intk=5,n=0;do{switch(k){case1:case3:n+=1;k--;break;default:n=0;k--;case2:case4:n+=2;k--;break;}printf("%d",n);}while(k>0&&n<5);}程序运行后的输出结果是()。

A.235B.235C.2356D.2356

57.设有变量说明int(*p)[m],其中的标识符p是()。

A.m个指向整型变量的指针

B.指向m个整型变量的指针

C.一个指向具有m个整型元素的一维数组的指针

D.具有m个指针元素的一维指针数组,每个元素都指向整型变量

58.对长度为N的线性表进行顺序查找,在最坏情况下所需要的比较次数为______。A.N+1B.NC.(N+1)/2D.N/2

59.下列程序的输出结果是()。main(){intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i++<7)if(p[i]%2)j+=p[i];printf("%d\n",j);}

A.42B.45C.56D.60

60.下列工具中为需求分析常用工具的是()。

A.PADB.PFDC.N-SD.DFD

四、选择题(20题)61.下列叙述中正确的是()。

A.栈是一种先进先出的线性表B.队列是一种后进先出的线性表C.栈与队列都是非线性结构D.以上三种说法都不对

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

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

63.

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

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

65.设有定义:intx-2;,以下表达式中,值不为6的是()。A.2*x,X+=2B.x++,2*xC.x*=(1+x)D.x*=x+1

66.在数据流图(DFD)中,带有说明的箭头表示

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

67.以下选项中有语法错误的是()。A.char*str[]={"guest"};

B.charstr[][lO]={"guest"};

C.char*str[3];str[t]={"9uest"};

D.charstr[3][lO];str[1]={"guest"};

68.用链表表示线性表的优点是()。

A.便于随机存取B.花费的存储空间较顺序存储少C.便于插入和删除操作D.数据元素的物理顺序与逻辑顺序相同

69.

70.已知i,j,k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是

A.scanf("%2d,%2d,%2d",i,j,k);B.scanf("%d%d%d",&i,&j,&k);

C.scanf("%d,%d,%d",&i,&j,&k);D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);

71.以下定义数组的语句中错误的是()。

72.

73.

74.(33)分布式数据库系统不具有的特点是______。

A.分布式

B.数据冗余

C.数据分布性和逻辑整体性

D.位置透明性和复制透明性

75.

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

f(inta)

{intb=0;staticintc=3;

b++;c++;

return(a+b+c);

}

main()

{inta=2,i;

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

printf("%4d",f(a));

A.789B.678C.567D.876

77.有以下程序:

#include<stdio.h>

main

{inty=10;

while(y--);

printf("y=%d\n",y);

}

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

A.y=0B.y=-1C.y=lD.while构成无限循环

78.数据库管理系统是()。

A.操作系统的一部分B.在操作系统支持下的系统软件C.一种编译系统D.一种操作系统

79.

80.

五、程序改错题(1题)81.下列给定程序中,函数fun()的功能是:实现两个变量值的交换,规定不允许增加语句和表达式。例如,变量a中的值原为8,b中的值原为3,程序运行后,a中的值为3,b中的值为8。请改正程序中的错误,使它得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构!试题程序:

六、程序设计题(1题)82.规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:删除字符串中所有的*号。编写函数时,不得使用C语言提供的字符串函数。

例如,字符串中的内容为“****A*BC*DEF*G****”,删除后,字符串中的内容应当是“ABCDEFG”。

注意:部分源程序给出如下。

请勿改动maini)函数和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

试题程序:

#include<conio.h>

#include<stdio.h>

voidfun(chara)

{

voidmain

{

chars[81];

print{("Enterastring:\n");

gets(s):

fun(S);

printf("Thestringafterdeleted:\n");

puts(s);

}

参考答案

1.D

2.B本题考查for循环的使用。对于第1个for循环,任何一个i,内层j的循环都要使j~0到3,j=4时不符合,所以退出j循环;然后i减1,J仍然要从0~3,j=4时退出J循环直到i变成0,退出i循环。第一条for语句执行6次,第二条for语句执行4次,所以内循环体执行6*4=24次。

3.D

4.A

5.C在C语言中,字母区分大小,所以break、char、return、switch都是C语言中的关键字,而Swithch不是。

6.C本题考查do-while循环,在fun函数中,首先定义了静态变量i=0,do-while循环要实现的功能是以b[0]=b[0]+b[1],b[1]=b[1]+b[2],其他元素不变的规则重新给b数组赋值。在主函数中,通过调用fun函数,按上面的规则对数组a重新赋值,最后输出数组a。

7.D解析:本题考核的知识点是指针变量定义和赋值语句的基本应用。在使用一个指针变量之前,先要用声明语句对其进行定义,在定义了一个指针变量之后,系统就为这个指针变量分配了一个存储单元,用它来存放地址。在C语言中有两个有关指针的运算符:&运算符,为取地址运算符,*运算符是指针运算符,*p代表p所指向的变量。本题中首先定义了整型变量n,其初值为0,接着定义一个指针变量p并让它指向n,然后定义了一个指向指针的指针变量q并让它指向p,选项A中将常量1赋给指针p不正确;选项B也是将常量2赋给*p,故选项B不正确;选项C中P不是指向指针的指针变量,而将他赋值给一个指向指针的指针变量小显然不正确,所以,4个选项中选项D符合题意。

8.A解析:和线性表类似,栈也有两种存储方法,一是顺序栈,二是链式栈。栈的顺序存储结构是利用一组地址连续的存储单元一次存储自栈底到栈顶的数据元素,同时附设指针top指示栈顶元素的位置,由于栈的操作是线性表操作的特例,相对而言,链式栈的操作更易于实现。注意:这3种运算方法在各种存储结构中的应用。

9.B解析:视图设汁一般有3种设计次序,它们分别是自顶向下、自底向上和由内

向外,它们又为视图设计提供了具体的操作方法,设计者可根据实际情况灵活掌握,可以

单独使用也可混合使用。

注意:数据库概念设计的过程:首先选择局部应用,再进行局部视图设计,最后

对局部视图进行集成得到概念模式。

10.C该程序中“int*p1=&a,*p2=&b,*p=&c;”定义了3个指针变量,并赋值。指针变量p1指向a,p2指向b,p指向c。执行“*p=*p1*(*p2);”语句,给p所指的存储单元c赋值。p1所指的存储单元的值,与p2所指的存储单元b的值相乘,也就是c=a*b,等价于c=1*3=3。故本题答案为C选项。

11.A解析:auto变量:无static声明的局部变量。用auto作存储类别的声明时,可以不写auto,存储类别隐含确定为auto(自动存储类别),是动态存储方式。大多数变量是自动变量。用static声明的局部变量是静态局部变量。函数调用结束后静态局部变量占据的内存存储单元空间不释放,局部变量保留原值,下次调用时可以继续使用该值。用extern声明外部变量,外部变量即全局变量,可以用extern声明来改变全局变量的作用域,实际上,关键字'auto'可以省略,auto不写则隐含确定为'自动存储类别',属于动态存储方式。

12.A解析:光缆是传输多媒体信息的通道,不能用以存储多媒体信息。

13.Bfun函数的功能是获取2个数的平均值,注意平均值是整型数,小数会被截断。调用函数“fun(2*4,fun(5,6))”相当于调用函数“fun(8,5)”,平均值是6。故本题答案为B选项。

14.D

15.D

16.C【答案】:C

【知识点】:需求分析阶段的任务

【解析】:需求分析阶段的任务是深入描述软件的功能和性能,确定软件设计的约束和软件同其他系统元素的接口细节,定义软件的其他有效性需求,借助于当前系统的逻辑模型导出目标系统逻辑模型,解决目标系统“做什么”的问题。可分为需求提出、需求描述及需求评审三个阶段。从此可以看出需求分析的任务不包括制定软件集成测试计划,故选C。

17.B

18.C

19.D程序定义double变量x、y,给x赋初值2.0。if语句判断,当x小于0.0时,给y赋值0.0。否则当x小于10.0时,y的值为1.0/x;当x大于等于10.0时,y的值为1.0。题干中x的值为2.0,所以y的值为1.0/x,即0.500000。本题答案为D选项。

20.C

21.88解析:函数可以被递归调用,但是不能递归定义。有返回值的函数调用可以出现在表达式可以出现的任何地方。

22.44解析:在主函数中,语句p=a;p++使用指针p指向数组a[1],所以输出结果为4。

23.3!feof(f1)3\r\n!feof(f1)解析:要实现文件复制,需要指定源文件及目的文件,因此在命令行下执行程序时至少要指定两个参数,加上程序名本身,故argc的值至少为3,因此第一空应填3。while循环中语句fputc(fgetc(f1),f2);的目的是将f1中的字符依次读出并写入到f2对应的文件中去,直至文件f1结束为止,因此第二空为!feof(f1)。

24.x[i-1][j-1]+x[i-1][j]x[i-1][j-1]+x[i-1][j]解析:在程序外层i循环中先将数组的第0列元素和主对角线元素置1,内层j循环的功能是给其余元素赋值,根据题意,空格内应填入x[i-1][j-1)+x[i-1][j]。

25.投影投影解析:在关系模型的数据语言中,一般除了运用常规的集合运算,(并、交,差、笛卡尔积等)外,还定义了一些专门的关系运算,如投影、选择、连接等。投影是从二维表的列方向上进行的运算。

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

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

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

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

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

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

27.9920O345067

28.11解析:因为在条件表达式(a<b)?a:b中,比较表达式a<b为真,所以x的值等于a的值等于1,后面两个条件表达式中的比较表达式都为真,所以最终x的值等于1。

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

30.继承继承解析:在面向对象的程序设计方法中,某些属性和方法是可以共享的,由于类从父类中继承而来,这样提高了软件的可重用性。

31.BB解析:因为c是字符类型变量,它只能接收一个字符,所以c=A,字符型变量在参与算术运算的时候是用其相应的ASCII码参与运算的,这样++c得到字母B的ASCII码,用putchar函数输出是输出其相应的字符,所以是B。

32.SO

33.22132,2,1,3解析:本题考查++,--运算符和条件运算符的使用。

“表达式1?表达式2:表达式3”的功能是:表达式1的值若非0,则计算表达式2的值,且表达式2的值为最终结果;若表达式1的值为0,则计算表达式3的值,且为最终结果。

本题中,x=1,y=2时,x<y成立,输出y的值2;y=2,z=3时,z<y不成立,执行y++,输出2后y值增1,所以最后一个输出x的值不变为1,y的值为增加后的3。

34.完整性控制完整性控制

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

36.6060解析:本题定义了一个3行2列的二维数组a,并定义了一个指向两个元素的一维数组指针p,让p指向二维数组a的首行。*(*(p+2)+1)是引用a[2][1],其值是60。

37.babcdbabcd解析:c语言中\\0表示字符串的结束。程序将D指针指向字符串“AbabCDcd”的首地址,循环开始后,若指针当前不是指向字符串结束标志位,则进入循环体。循环中每次检验字符串中字母是否在a与z之间,若满足则将当前值赋于数组a,最后给数组添加字符结束标志。此程序可以筛选出字符串中的小写字母。

38.00解析:“ch=getchat()”的功能是从终端读入一个字符赋给变量ch,由于getchar()只能接收一个字符,所以输入的字符1被赋给ch,即“'1'!='0'”,循环体不执行,直接退出while循环,所以循环体执行的次数为0。

39.22解析:分析程序,a=2,b=-1,c=2时,if语句的表达式a<b不成立,不再往下判断,直接退出if语句,执行后面的输出语句,程序结束。在这个程序中a、b、c的值没做任何改变。

40.1010解析:y=sub(sub(sub(x)))=sub(sub(127))=sub(19)=10。

41.D解析:C语言中规定:一个数组名代表它的起始地址.本题中,定义了一个长度为10的数组a并赋初值,数组名a就是数组的起始地址,由于数组下标是从。开始,因此a[0]地址也是a的值,a[1]的地址可以用a+1表示,也就是说a+1指向数组a中下标为1的元素,同样a+1是a[i]的地址,*p=&a[3]表明指针变量p指向元素a[3],即p指向数组a的第4个元素4,p[5]的值应为数组a中的第9个元素的值即a[8]的值,即p[5]=9,所以b=9。所以,4个选项中选项D符合题意。

42.A解析:本题考查了用字符指针引用字符数组中的字符及对字符的操作。函数abc()的for语句执行过程是:丛字符指针str所指向的字符数组的第一个元素开始,逐一判断字符是否为'c',若不是就执行一次数组元素的赋值过程,若字符为'c'就不执行,所以答案为A)。

43.D

44.A解析:E-R模型是描述现实世界的概念模型,它将现实世界的信息结构统一用实体、属性、以及实体之间的联系描述。E-R图提供了表示实体型、属性和联系的方法。

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

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

47.C解析:本题考核的知识点是字符数组的定义、赋初值以及函数sizeof()的应用。本题中定义两个字符型数组,其中a省略了长度,定义了b的长度为10,并赋初值分别为“abcdefg”和“abcdfg”。所以a的长度为赋值给它的字符串的字符个数7加上一个结束转义字符,即a的长度为7+1为8.定义时b的长度定义为10,故b的长度为10,因此最后通过函数sizeof()求得的数组a和数组b的长度分别为8和10,所以,4个选项中选项C符合题意。

48.A解析:条件表达式“a?b:c”的含义是:当a为真时,其值等于表达式b的值,当a为假时,其值等于表达式c的值。第一个表达式:w=6<x=4为假,所以返回x的值,即m=x=4;第二个表达式:m=4<y=3为假,所以返回y的值,即m=y=3。

49.B

50.B

51.A

52.C解析:本题主要考查结构体数组。a[2].age为结构体a[2]的age成员,即16。a[3].name为指向结构体a[3]的name成员的第一个元素的指针,即指向“Z”,(a[3].name+2)将指针后移两位指向第三个元素“A”,*(a[3].name+2))是取指针所指向地址的内容。

53.D解析:根据给定的数据输入格式:123<空格>456<空格>789<回车>,第一个scanf语句中,格式字符为“%c”,只能得到一个字符\'1\',第二个scanf语句中格式字符为“%d”,变量i得到的数值为23,第三个scanf语句中格式字符为“%s”,遇到空格就自动结束,因此字符数组s得到的是'456\\0'。因而正确答案为选项D。

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

55.C解析:选项A用了一个绝对值函数abs(),故选项A正确;选项B中用了一个“&&”逻辑与,故选项B正确;选项C中,“||”左边的式子如为真,将不再判断其后的表达式的值,故选项C不正确;选项D为本题中数学关系式的一个等价命题,故选项D正确。所以,4个选项中选项C符合题意。

56.A解析:do-while语句的特点是先执行循环体,然后再判断循环条件是否成立,当循环条件的值为0时循环结束。本题中执行switch语句,寻找与5匹配的case5分支,没有寻找到则执行default后的语句,n=0,k的值变为4,继续执行switch语句,寻找与4匹配的case4分支,找到后开始执行其后的语句“n+=2;k--;”,n的值为2,k的值变为3,遇到break语句跳出该switch语句体。执行print语句输出2;此时n=2,k=3依旧满足do-while循环条件,将用同样的方式再次执行switch语句,直到n=5时不再满足do-while循环条件退出所有的循环。

57.C解析:本题考查指向数组的指针变量的声明。这里的p表示一个指向数组的指针;*p表示指针p指向地址的内容。

58.B解析:在进行顺序查找过程中,如果被查的元素是线性表中的最后一个,或者被查元素根本不性表中,则为了查找这个元素需要与线性表中所有元素进行比较,这是顺序查找最坏的情况。

59.B解析:在C语言中,数组的下标默认为0,因此数组p的下标范围为:0~7。程序循环过程为:第1次循环i=0,执行循环,并且i自加,得i=1,因此p[i]为p[1]=12,12%2=0,不执行后面的语句;接着进行第2次循环,此时i=1,小于7执行循环,并且i自加,得i=2,因此p[i]为p[2]=13,13%2=1,执行后面的语句;这样一直到退出循环。最后j的值为j=13+15+17=45。

60.D解析:需求分析常用的工具有数据流图(DFD)、数据字典(DD)、判定树和判定表。PAD(问题分析图)、PFD(程序流程图)、N-S(盒式图)都是详细设计的常用工具,不是需求分析的工具。

61.D【答案】:D

【知识点】:栈和队列

【解析】:栈和队列都是线性结构,所以选项C错误;栈是一种先进后出的线性表,故选项A错误;队列是一种先进先出的线性表,故选项B错误,所以选D。

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

63.D

64.C解析:考查栈和队列概念的掌握。栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种'后进先出'的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种'先进先出'的线性表。模块之间的耦合程度反映了模块的独立性,也反映了系统分解后的复杂程度。按照耦合程度从弱到强,可以将其分成5级,分别是:数据耦合、同构耦合、控制耦合、公用耦合和内容耦合。选项C),没有这种耦合方式。

65.A选项A中,2*x对x的值没有影响,x仍为2,“x+=2”执行后,表达式值为4。故本题答案为A。

66.D数据流图的四种基本符号分别是数据的源点或终点、数据流、数据存储和加工,其中带有说明的箭头表示数据流,即数据的流向。

数据流是一组确定的数据在系统内传播的路径。数据流的流向由箭头方向指出,可从加工流向加工,也可以从加工流向数据存储或从数据存储流向加工,还可以从源点流向加工或从加工流向终点。在数据流图中,除了与数据存储之间的数据流不用命名外,数据流应该对应一个唯一的名字。

67.D在D选项中,首先定义了一个二维数组str,str[1]="9uest,在赋值时"使用一个字符串进行赋值是错误的,所以答案选择D。

68.CC。【解析】数据结构是相互之间存在一种或多种特定关系的数据元素的集合。”关系”描述的是数据元素之间的逻辑关系,因此又称数据的逻辑结构。数据的存储结构是指数据结构(数据的逻辑结构)在计算机中的表示,又称物理结构。数据的存储结构有顺序存储结构和链式存储结构两种。不同存储结构的数据处理效率不同。由于链表采用链式存储结构,元素的物理顺序并不连续,对于插入和删除无需移动元素,很方便,当查找元素时就需要逐个元素查找,因此查找的时间相对更长。

69.B

70.C本题主要考查scanf输入语句及其格式。在本题中的四个选项中,分别用不同的格式试图从键盘输入数据。

在选项A中,给出的输入格式是“%2d,%2d,%2d”,表示输入的数据中间用逗号隔开,而且其输入的宽度为2,即可以输入一个两位数,如果输入的位数小于2,则左边补空格。在其输出列表中,表示方式也不对,其他三项是正确的。

在选项B中,给出的输入格式是“%d%d%d”,仅表示输入的数据中间用空格隔开。

在选项C中,给出的输入格式是“%d,%d,%d”,仅表示输入的数据中间用逗号隔开,与题目给出的要求一致,为正确答案。

在选项D中,给出的输入格式是“i=%d,j=%d,k=%d”,表示输入的数据中间不仅用逗号隔开,还需要如“i=”的说明符。

71.BB)选项中定义的数组为2行4列,而赋值时赋成了3行所以出错。

72.A

73.C

74.B

75.C

76.Ai=0,f(a)=2+1+4=7,i=1,f(a)=2+1+5=8,i=3,f(a)=2+1+5=9;(c为静态变量);

77.B\ny--的作用是先取其值作为表达式的值,然后Y的值减1存入Y。当y>0时循环继续,直到y=0时循环结束,然后Y值减l存入Y中,所以选B。

\n

78.B数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,是一种在操作系统支持下的系统软件,因此本题答案为B)。

79.C

80.C

81.(1)错误:t=x;x=y;

正确:t=*x;。x=y;

(2)错误:return(y);

正确:return(t);或returnt;

【解析】该题考查的是指针型变量的使用和如何通过return语句返回函数值。首先应该明确,题目中给出的X是指针型函数,所以数据交换时应使用“*x”而不是“x”;t是一个中间变量,而且由赋值语句“b=fun(8a,b)”可知,返回值将赋给变量b,而b中应存放交换前*X中的值,所以返回的变量应为t。而非y。

82.\n\tvoidfun(char*a)

\n{

\ninti,j=0;

\nfor(i=0;a[i]!=\0;i++)

\nif(a[i]!=*)

\na[j++]=a[i];//若不是要删除的字符*则保留

\na[j]=\0;//最后加上字符串结束符\0

\n}

\n【解析】此题是删除字符串中的星号。思路是通过for循环完成对字符串的遍历,通过if判断,找到不是“*”的字符,将其赋值到数组a中星号前的位置,“if(a[i]!=*)”“a[i++]=a[i]”,最后返回主函数将删除*后的字符串输出即可。\n2021-2022年云南省保山市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.

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

3.对于如图所示二叉树采用中根遍历,正确的遍历序列应为()A.ABCDEFB.ABECDFC.CDFBEAD.CBDAEF

4.要声明一个有10个int型元素的数组,正确的语句是()。

A.inta[10];B.inta[2,5];C.inta[];D.int*a[10];

5.下列标识符不是关键字的是()。

A.breakB.charC.SwithchD.return

6.下列程序的输出结果是()。#includedstdi0.h>#includedstring.h>voidfun(intb[]){staticinti=0;do{b[i]+=b[i+1];}while(++i<2);}main{intk,a[5]={1,3,5,4,9};fun(a);for(k=0;k<5;k++)printf("%d",a[k]);}A.13579B.48579C.48549D.48999

7.设有定义:intn=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是()A.p=1;B.*q=2;C.q=p;D.*p=5;

8.栈通常采用的两种存储结构是A.A.线性存储结构和链表存储结构

B.散列方式和索引方式

C.链表存储结构和数组

D.线性存储结构和非线性存储结构

9.视图设计一般有3种设计次序,下列不属于视图设计的是______。

A.自顶向下B.由外向内C.由内向外D.自底向上

10.有以下程序:#include<stdio.h>main(){inta=1,b=3,c=5;int*p1=&a,*p2=&b,*p=&c;*p=*p1*(*p2);printf(“%d\n”,c);}程序的运行结果是()。

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

11.在c语言中,变量的隐含存储类别是()。

A.autoB.staticC.externD.无存储类别

12.在多媒体计算机系统中,不能用以存储多媒体信息的是A.光缆B.软盘C.硬盘D.光盘

13.有以下程序:#include<stdio.h>intfun(intx,inty){if(x!=y)return((x+y)/2);elsereturn(x);}main(){inta=4,b=5,c=6;printf(“%d\n”,fun(2*a,fun(b,c)));}程序运行后的输出结果是()。

A.3B.6C.8D.12

14.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间。

A.单链表B.仅有头指针的单循环链表C.双链表D.仅有尾指针的单循环链表

15.数字字符“2”的ASCII码为十进制数50,数字字符“5”的ASCII码为十进制数()

A.52B.55C.54D.53

16.下面不属于需求分析阶段任务的是()。

A.确定软件系统的功能需求B.确定软件系统的性能需求C.制定软件集成测试计划D.需求规格说明书评审

17.定义无符号整数类为UInt,下面可以作为类UInt实例化值的是A)B)369C)0.369D)A.-369B.369C.0.369D.整数集合{1,2,3,4,5}

18.对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为()。

A.顺序表B.用头指针表示的循环单链表C.用尾指针表示的循环单链表D.单链表

19.有以下程序:程序运行后的输出结果是()。A.1.000000B.0.000000C.0.250000D.0.500000

20.下面哪个不是用来解决哈希表冲突的开放地址法()

A.线性探测法B.线性补偿探测法C.拉链探测法D.随机探测法

二、2.填空题(20题)21.阅读下面程序,则程序的执行结果为【】。

#include"stdio.h"

fun(intk,int*p)

{inta,b;

if(k==1‖k==2)

*p=1;

else{fun(k-1,&a);

fun(k-2,&b);

*p=a+b;}}

main()

{intx;

fun(6,&x);

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

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

#include<stdio.h>

main()

{inta[5]={2,4,6,8,10},*p;

p=a;p++;

printf("%d",*p);

}

23.实现程序可将磁盘中的一个文件复制到另一个文件中,两个文件的文件名在可执行命令的命令行中(相当于copy命令),假定文件在当前目录下。请补全程序。

#include<stdio.h>

voidmain(intargc,char*argv[])

{FILE*f1,*f2;

if(argc<【】)

{printf("parametererror!\n");exit(0);}

f1=fopen(argv[1],"r");

f2=fopen(argv[2],"w");

while(【】)fputc(fgetc(f1),f2);

fclose(f1);

fclose(f2);

}

24.函数YangHui的功能是把杨辉三角形的数据赋给二维数组的下半三角,形式如下:

1

11

121

1331

14641

其构成规律是:

①第0列元素和主对角线元素均为1;

②其余元素为其左上方和正上方元素之和;

③数据的个数每行递增1。

请将程序补充完整。

#defineN6

voidYangHui(intx[N][N])

{inti,j;x[0][0]=1;

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

{x[i][0]=x[i][i]=1;

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

x[i][j]=【】;

}

}

25.【】是从二维表列的方向进行的运算。

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

intff(intn)

{staticintf=1;

f=f*n;

returnf;

}

main()

{inti;

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

27.以下程序的辅出结果是【】。

voidfun(ints[])

{inti;

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

printf("\n\n");

}

main()

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

fun(a[0]);

}

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

main()

{intx,a=1,b=2,c=3,d=4;

x=(a<b)?a:b;x=(x<c)?x:c;x=(d>x)?x:d;

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

}

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

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

}

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

31.有下列程序;

#include<stdio.h>

main()

{charc;

while((c=getchar())!=',')putchar(++C);

}

程序运行时,如果从键盘输入:A,B,<CR>,则输出结果为______。

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

main()

{char*p[]={"BOOL","OPK","H","SP"};

inti;

for(i=3,i>=0;i--,i--)printf("%c",*p[i]);

printf("\n");

}

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

main()

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

printf("%d,",x<y?y:x);

printf("%d,",z<y?x++:y++);

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

}

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

35.若有定义floatb[15],*p=b;,且数组b的首地址为200H,则p+13所指向的数组元素的地址为______。

36.设有以下定义和语句,则*(*(P+2)+1)的值为【】。

int[3][2]={10,20,30,40,50,60},(*p)[2];

p=a;

37.下面程序的运行结果是()。#include<stdio.h>main(){chara[80],*p"AbabCDcd";inti=0,j=0;while(*(p++)!='\0'){if(*p>='a'&&*p<='z'){a[i]=*p;i++;}}a[i]='\0';puts(A);}

38.当执行以下程序时,输入1234567890<回车>,则其中while循环体将执行()次。

#include<stdio.h>

main()

{charch;

while((ch=getchar())=='0')printf("#");

}

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

#include<stdio.h>

main()

{inta=2,b=-1,c=2;

if(a<b)

if(b<0)c=0;

elsec++;

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

}

40.有以下程序:

intsub(intn){return(n/10+n%10);}

main()

{intx,y;

scanf("%d",&x);

y=sub(sub(sub(x)));

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

}

若运行时输入:1234<回车>,程序的输出结果是【】。

三、1.选择题(20题)41.有以下程序段:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];b中的值是

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

42.下列程序的运行结果为#include<stdio.h>voldabc(char*str){inta,b;for(a=b=0;str[a]!='\0';a++)if(str[a]!='c')str[b++]=str[a];str[b]='\0';}voidmain(){charstr[]="abcdef";abc(str);printf("str[]=%s",str);}

A.str[]=abdefB.str[]=abcdefC.str[]=aD.str[]=ab

43.判断char型变量c1是否为大写字母的正确表达式是

A.'A'<=c1<='Z'

B.(c1>=A)&&(c1<=Z)

C.('A'>=c1)‖('Z'<=c1)

D.(c1>='A')&&(c1<='Z')

44.E-R图是数据库设计的工具之一,它一般适用于建立数据库的________。

A.概念模型B.结构模型C.物理模型D.逻辑模型

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

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

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

C.chars3[20]="Chest";

D.char*s4="Cest\n"

46.设有以下说明语句structex{intX;floaty;charz;}example;则下面的叙述中不正确的是

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

B.example是结构体类型名

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

D.structex是结构体类型名

47.有以下程序main(){chara[]="abcdefg",b[10]="abcdefg";printf("%d%d\n",sizeof(a),sizeof(b));}执行后输出结果是

A.77B.88C.810D.1010

48.假定w、x、y、m均为int型变量,则执行下列的语句后,m的值是()。w=6,x=4,y=3;m=(w<x)?w:x;m=(m<y)?m:y;

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

49.若执行下述程序时,若从键盘输入6和8,结果为()。main(){inta,b,s;scanf("%d%dt",&a,&B);s=a:if(s=B)s*=s;printf("%d",s);}

A.36B.64C.48D.以上都不对

50.执行下面程序的正确结果是()main(){floata=1.9switch(A){case0:printf("0000");case1:printf("1111");case2:printf("3333");}printf("%f",A);}

A.1.900000

B.111133331.900000

C.33331.900000

D.00001111233331.900000

51.有以下程序:structS{intn;inta[20];};voidf(int*a,intn){inti;for(i=0;i<n-1;i++)a[i]+=i;}mainf(){inti;structSs{10,{2,3,1,6,8,7,5,4,10,9}};if(s.a,s.n);for(i=0;i<s.n;i++)printf("%d",s.a[i]);}程序运行后的输出结果是()。

A.2,4,3,9,12,12,11,11,18,9

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

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

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

52.定义下列结构体(联合)数组:structst{charname[15];intage;}a[10]={"ZHAO",14,"WANG",15,"LIU",16,"ZHANG",17};执行语句printf["%d,%c",a[2].age,*(a[3].name+2))的输出结果为()。

A.15,AB.16,HC.16,AD.17,H

53.执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是______。mein(){chars[100];intc,i;scanf("%c",&C);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%s\n",c,i,s);}

A.123,456,789B.1,456,789C.1,23,456,789D.1,23,456

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

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'};

55.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是()。

A.abs(x-y)<10

B.x-y>-10&&x-y<10

C.!(x-y)<-10||!(y-x)>10

D.(x-y)*(x-y)<100

56.有以下程序:main(){intk=5,n=0;do{switch(k){case1:case3:n+=1;k--;break;default:n=0;k--;case2:case4:n+=2;k--;break;}printf("%d",n);}while(k>0&&n<5);}程序运行后的输出结果是()。

A.235B.235C.2356D.2356

57.设有变量说明int(*p)[m],其中的标识符p是()。

A.m个指向整型变量的指针

B.指向m个整型变量的指针

C.一个指向具有m个整型元素的一维数组的指针

D.具有m个指针元素的一维指针数组,每个元素都指向整型变量

58.对长度为N的线性表进行顺序查找,在最坏情况下所需要的比较次数为______。A.N+1B.NC.(N+1)/2D.N/2

59.下列程序的输出结果是()。main(){intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i++<7)if(p[i]%2)j+=p[i];printf("%d\n",j);}

A.42B.45C.56D.60

60.下列工具中为需求分析常用工具的是()。

A.PADB.PFDC.N-SD.DFD

四、选择题(20题)61.下列叙述中正确的是()。

A.栈是一种先进先出的线性表B.队列是一种后进先出的线性表C.栈与队列都是非线性结构D.以上三种说法都不对

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

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

63.

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

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

65.设有定义:intx-2;,以下表达式中,值不为6的是()。A.2*x,X+=2B.x++,2*xC.x*=(1+x)D.x*=x+1

66.在数据流图(DFD)中,带有说明的箭头表示

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

67.以下选项中有语法错误的是()。A.char*str[]={"guest"};

B.charstr[][lO]={"guest"};

C.char*str[3];str[t]={"9uest"};

D.charstr[3][lO];str[1]={"guest"};

68.用链表表示线性表的优点是()。

A.便于随机存取B.花费的存储空间较顺序存储少C.便于插入和删除操作D.数据元素的物理顺序与逻辑顺序相同

69.

70.已知i,j,k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是

A.scanf("%2d,%2d,%2d",i,j,k);B.scanf("%d%d%d",&i,&j,&k);

C.scanf("%d,%d,%d",&i,&j,&k);D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);

71.以下定义数组的语句中错误的是()。

72.

73.

74.(33)分布式数据库系统不具有的特点是______。

A.分布式

B.数据冗余

C.数据分布性和逻辑整体性

D.位置透明性和复制透明性

75.

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

f(inta)

{intb=0;staticintc=3;

b++;c++;

return(a+b+c);

}

main()

{inta=2,i;

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

printf("%4d",f(a));

A.789B.678C.567D.876

77.有以下程序:

#include<stdio.h>

main

{inty=10;

while(y--);

printf("y=%d\n",y);

}

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

A.y=0B.y=-1C.y=lD.while构成无限循环

78.数据库管理系统是()。

A.操作系统的一部分B.在操作系统支持下的系统软件C.一种编译系统D.一种操作系统

79.

80.

五、程序改错题(1题)81.下列给定程序中,函数fun()的功能是:实现两个变量值的交换,规定不允许增加语句和表达式。例如,变量a中的值原为8,b中的值原为3,程序运行后,a中的值为3,b中的值为8。请改正程序中的错误,使它得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构!试题程序:

六、程序设计题(1题)82.规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:删除字符串中所有的*号。编写函数时,不得使用C语言提供的字符串函数。

例如,字符串中的内容为“****A*BC*DEF*G****”,删除后,字符串中的内容应当是“ABCDEFG”。

注意:部分源程序给出如下。

请勿改动maini)函数和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

试题程序:

#

温馨提示

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

评论

0/150

提交评论