2021年福建省厦门市全国计算机等级考试C语言程序设计模拟考试(含答案)_第1页
2021年福建省厦门市全国计算机等级考试C语言程序设计模拟考试(含答案)_第2页
2021年福建省厦门市全国计算机等级考试C语言程序设计模拟考试(含答案)_第3页
2021年福建省厦门市全国计算机等级考试C语言程序设计模拟考试(含答案)_第4页
2021年福建省厦门市全国计算机等级考试C语言程序设计模拟考试(含答案)_第5页
已阅读5页,还剩64页未读, 继续免费阅读

下载本文档

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

文档简介

2021年福建省厦门市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.有以下程序:

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

A.45B.20C.25D.36

2.下面程序的时间复杂为()A.O(n)B.O(n^2)C.O(n^3)D.O(n^4)

3.下列描述错误的是()。

A.继承分为多重继承和单继承

B.对象之间的通信靠传递消息来实现

C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征

D.类是具有共同属性、共同方法的对象的集合

4.

5.在执行()操作时,需要使用队列做辅助存储空间。

A.查找哈希(Hash)表B.深度优先搜索网C.前序(根)遍历二叉树D.广度优先搜索网

6.下列4项说法中,不正确的是______。

A.数据库减少了数据冗余B.数据库中的数据可以共享C.数据库避免了一切数据的重复D.数据库具有较高的数据独立性

7.判断一个循环队列cq(最多元素为m)为满的条件是()。

A.cq->rear-cq-front=m;

B.(cq->rear+1)%m=cq->front;

C.cq->front=cq->rear;

D.cq->rear=m-1;

8.高度为h的满二叉树的结点数是________个。

A.log2h+1B.2h+1C.2h-1D.2h-1

9.

10.下列叙述中错误的是()。

A.C语言程序对预处理命令行的处理是在程序执行过程中进行的

B.预处理命令行的最后不能以分号表示结束

C.“#defmeMAX”是合法的宏定义命令行

D.在程序中,凡是以“#”开始的语句行都是预处理命令行

11.有以下程序:#include<stdio.h>voidfun(char*C,intd){*c=*c+1,d=d+1;printf(%"c%,c",*c,d);}main(){charb=aa=A;fun(&b,a);printf(%"c,%c\n",b,a);)程序运行后的输出结果是()。A.b,B,b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B

12.以下选项中,合法的一组C语苦数值常量是()。

A.28.5e-3-0xf

B.12OXa234.5

C.1774c1.5Oabc

D.0x8A10,0003.e5

13.已知inta=2,b=3;则执行表达式a=a<b后,变量a的值为()。

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

14.若有下列定义(设int类型变量占2个字节):inti=8,j=9;则下列语句:printf("i=%%d,j=%%d\n",i,j);输出的结果是()。A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9D.8,9

15.s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句s;则以下选项中正确的是()。

A.if(s1>s2)S;

B.if(strcmp(s1,s2))S;

C.if(strcmp(s2,sl)>O)S;

D.if(stremp(s1,s2)>O)S;

16.执行以下程序后,a,b的值分别为main(){ina,b,k=4,m=6,*p1=&k,*p2=&m;a=p1==&m;b=(*p1)/(*p2)+7;printf("a=%d\n",a);printf("b=%d\n",b);}

A.-1,5B.1,6C.0,7D.4,10

17.有下列程序:程序执行后的输出结果是()。A.17,17,49,49B.17,29,49,49C.29,29,49,49D.49,49,49,49

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

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

19.有以下程序:#include<stdio.h>main{intx=4,y;do{y=x;if(!y)printf(“x”);elseprintf(“y”):x--;}while(x);}程序的输出结果是()。A.xyyxB.yyyyC.yyxxD.yxyx

20.要求通过while循环不断读入字符,当读入字母N时结束循环,若变量已正确定义,下列正确的程序段是()。

A.while((ch=getchar())!='N')printf("%c",ch);

B.while(ch=getchar()!='N')printf("%c",ch);

C.while(ch=getchar()=='N')printf("%c",ch);

D.while((ch=getchar())=='N')printf("%c",ch);

二、2.填空题(20题)21.一般来说,数据库的设计过程要经历3个大的阶段,即可行性分析与研究阶段、系统设计阶段、设计实施与系统运行阶段。概念设计、逻辑结构设计、物理结构设计属于数据库设计的【】阶段。

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

voidfun()

{staticinta=0;

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

}

main()

{intcc;

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

printf("\n");

}

23.有以下程序:

#include<stdio.h>

main()

{charch1,ch2;intn1,n2;

ch1=getchar();ch2=getehar();

n1=ch1-'0';n2=n1*10+(ch2-'0');

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

}

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

24.面向对象的模型中,最基本概念是对象和【】。

25.算法的复杂度主要包括空间复杂度和______复杂度。

26.以下程序的运行结果是()。#defineS(x)x*xmain(){intk=1;while(k<=4){printf("%d,",S(k));k++;}

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

inti=0,sum=1;

do

{sum+=i++;}

while(i<6);

print("%d\n",sum);

28.已知字符'A'的ASCII码为65,以下程序运行后的输出结果是【】。

#include<stdio.h>

main()

{chara,b;

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

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

}

29.在面向对象的方法中,______描述的是具有相似属性与操作的一组对象。

30.用下面语句调用库函数malloc,使单精度型指针p指向具有40个字节的动态存储空间,请填空。

p=(float*)【】;

31.【】是一种信息隐蔽技术,目的在于将对象的使用者和对象的设计者分开。

32.有以下程序段,且变量已正确定义和赋值

for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));

printf("s=%f\n\n",s);

请填空,使下面程序段的功能与之完全相同

S=1.0;k=1;

while([8]){s=s+1.0/(k*(k+1));[9];}

printf("s=%f\n\n",s);

33.设有如下程序main(){intn1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf(“%d”,n1);}}程序运行后,如果从键盘上输入1298,则输出结果为

34.问题处理方案的正确而完整的描述称为______。

35.在关系模型中,二维表的行称为______。

36.以下程序的功能是:求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。请填空。

main()

{intx[10],a[9],i;

for(i=0;i<10;i++)scanf("%d",&x[i]);

for([11];i<10;i++)

a[i-1]=x[i]+[12];.

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

printf("");

}

37.在数据的存储结构中,不仅需要存储各数据元素的信息,还要存放各元素之间______的信息。

38.数据库设计分为以下6个设计阶段:需求分析阶段、______、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。

39.有以下程序段,且变量已正确定义和赋值

for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));

printf("s=%f\n\n",s);

请填空,使下面程序段的功能与之完全相同

s=1.0;k=1;

while(【】){s=s+1.0/(k*(k+1));【】;}

printf("s=%f\n\n",s);

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

main()

{intx=0;

sub(&x,8,1);

printf(“%d\n”,x);

}

sub(int*a,intn,intk)

{if(k<=n)sub(a,n/2,2*k);

*a+=k;

}

三、1.选择题(20题)41.关系表中的每一横行称为一个()。A.元组B.字段C.属性D.码

42.以下程序的输出结果是______。#defineTIMES(X)X*Xmain(){inta=16,k=2,m=1;a/=TIMES(k+m)/TIMES(k+m);printf("d\n",a);}

A.16B.2C.9D.1

43.已知字母A的ASCII码为十进制的65,下面程序main(){charch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}的输出是_________。

A.67,DB.B,CC.C,DD.不确定的值

44.a、b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中,值为0的表达式是()

A.'a'&&'b

B.a<=b

C.ab+c&&b-c

D.!((a<b)&&!c1)

45.下述程序的输出结果是#include<stdio.h>voidmain(){inta[5]={2,4,6,8,10};int*p=a,**q=&p;printf("%d,",*(p++));pfintf("%d",**q);}

A.4,4B.2,2C.4,5D.2,4

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

A.接口复杂的模块,其耦合程度一定低

B.耦合程度弱的模块,其内聚程度一定低

C.耦合程度弱的模块,其内聚程度一定高

D.上述三种说法都不对

47.下面程序段的运行结果是chara[]="lanuage",*p;p=a;while(*p!='u'){printf("%c",*p-32);p++;}

A.LANGUAGEB.languageC.LAND.langUAGE

48.己知x=3,y=2,则表达式x*=y+8的值为______。

A.3B.2C.30D.10

49.假定int类型变量占用两个字节,若有定义:intx[10]={0,2,4};,则数组x在内存中所占字节数是______。

A.3B.6C.10D.20

50.下面程序的运行结果是______。main(){unsigneda=3,b=10;printf("%d\n",a<<2|b>>1);}

A.3B.10C.13D.14

51.将E-R图转换到关系模式时,实体与联系都可以表示成________。

A.属性B.关系C.键D.域

52.若已定义:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,则对a数组元素不正确的引用是______。

A.a[p-a]B.*(&a[i])C.p[i]D.a[10]

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

A.一个算法的空间复杂度大,则其时间复杂度必定大

B.一个算法的空间复杂度大,则其时间复杂度必定小

C.一个算法的时间复杂度大,则其空间复杂度必定小

D.上述三种说法都不对

54.有以下程序:#include<stdio.h>main()char*p[]={"3697","2548"};inti,j;longnum=0;for(i=0;i<2;i++){j=0;while(p[i][j]!='\0'){if((p[i][j]-'0')%2)num=10*num+p[i][j]-'0';j+=2;}printf("%d\n",num);}程序执行后的输出结果是()。

A.35B.37C.39D.3975

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

main(){intk=17;printf("%d,%o,%x\n",k,k,k):}

A.17,021,0x11B.17,17,17C.17,0x11,021D.17,21,11

56.以下选项中可作为C语言合法常量的是()。

A.-80B.-80C.-80.0D.-80.0e

57.若执行下面程序时从键盘上输入5,main(){intx;scanf("%d",&x);if(x++>5)printf("%d\n",x);elseprintf("%d\n",x-);则输出是______。

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

58.下列程序的输出结果是()。

main

{intx=8,y=8;

printf("%do%od\n",x--,--y);

}

A.88B.77C.78D.87

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

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

60.有以下程序main(){chara[]={'a','b','c','d','e','f','g','h','\0'};inti,j;i=sizeof(a);j=strlen(a);printf("%d,%d\n"i,j);}程序运行后的输出结果是

A.9,9B.8,9C.1,8D.9,8

四、选择题(20题)61.下面描述中错误的是()。

A.系统总体结构图支持软件系统的详细设计

B.软件设计是将软件需求转换为软件表示的过程

C.数据结构与数据库设计是软件设计的任务之一

D.PAD图是软件详细设计的表示工具

62.

在下列给出的表达式中,与while(E)中的(E)不等价的表达式是()。

A.(!E==0)B.(E>0C.D.E<0)E.(E==0)F.(E!=0)

63.下列关于信息系统的叙述中,错误的是()。

A.广播电视是一种双向的、点到多点的信息交互系自

B.网络聊天是一种双向的,以信息交互为主要目的系统

C.电话是一种双向的、点对点的、以信息交互为主要的的系统

D.雷达是一种以感测和识别为主要目的的系统

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

A.对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n

B.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为n/2

C.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为log2n

D.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为nlog2n

65.

66.以理对枚举类型名的定义中正确的是______。

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

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

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

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

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

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

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

68.有如下程序段

#include"stdio.h"

#include"string.h"

#defineN10

#defineM10

char*find(char(*a)[M],intn)

{char*q;inti;

q=a[0];

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

if(strcmp(a[i],q)<0)q=a[i];

returnq;}

main()

{chars[N][M]={"tomeetme","you","and","he","china"};

char*p;

intn=5;

p=find(s,n);

puts(p);}

则执行后输出的结果为A.A.heB.andC.youD.tomeetme

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

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

70.若有以下函数首部:

intfun(doublex[10],int*n)

则下面针对此函数的函数声明语句中正确的是()。

A.intfun(double,int);

B.intfun(double木,int*);

C.intmn(double*x,intn);

D.intfun(doublex,intint*n)

71.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称为()。

A.软件投机B.软件危机C.软件工程D.软件产生

72.(67)数据处理的最小单位是()

A.数据

B.数据元素

C.数据项

D.数据结构

73.常采用的两种存储结构是()。

A.顺序存储结构和链式存储结构B.散列方法和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构

74.

75.

76.利用E-R模型进行数据库的概念设计,可以分成3步:首先设计局部E-R模型,然后把各个局部E-R模型综合成一个全局的模型,最后对全局E-R模型进行(),得到最终的E-R模型。

A.简化B.结构化C.最小化D.优化

77.负责数据库中查询操作的数据库语言是()。

A.数据定义语言B.数据管理语言C.数据操纵语言D.数据控制语言

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

A.对于double类型数组,不可以直接用数组名对数组进行整体输入或输出

B.数组名代表的是数组所占存储区的首地址,其值不可改变

C.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息

D.可以通过赋初值的方式确定数组元素的个数

79.数据库设计中,用E—R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的()。

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

80.

五、程序改错题(1题)81.改正下列程序中不正确的语句。

main()

{inta;

scanf(“%d”,a);if(a=1)printf(“One\n”);}

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。此程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数该函数的功能是使数组下三角元素中的值乘以n。注意:部分源程序给出如下。请勿改动函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>#defineN5voidfun(inta[][N],intn){}main(){inta[N][N],n,i,j;printf(“*****Thearray*****\n”);for(i=0;i<n;i++)<p=""></n;i++)<>{for(j=0;j<=""p="">{a[i][j]=rand()%10;printf(“%4d”,a[i][j]);}printf(“\n”);}n=rand()%4;printf(“n=%4d\n”,n);fun(a,n);printf(“*****TheResult*****\n”);for(i=0;i<=""p="">{for(j=0;j<=""p="">printf(“%4d”,a[i][j]);printf(“\n”);}}

参考答案

1.C统计1~9九个数中的奇数和,此题重点考察指向数组的指针。c语言规定数组名代表数组的首地址,也就是第一个元素的地址。因此*(t+i)代表数组的第i+1个元素。程序运行的结果是l+3+5+7+9=25。1

2.B

3.C解析:对象的封装性是指从外面看只能看到对象的外部特性;而对象的内部,其处理能力的实行和内部状态对外是不可见的,是隐蔽的。

4.D

5.D

6.C解析:数据库系统具有以下4个特点:数据的集成性、数据的高共享性与低冗余性、数据的独立性、数据统一管理与控制。

7.B

8.C

9.B

10.A预处理是在程序编译之前进行的,所以A选项错误。故本题答案为A选项。

11.A本题考查了函数的调用。首先主函数定义了两个字符型数据b和a,给b赋值为字母a.a赋值为字母A,调用fun(&.b,a)函数,*C=*c十1,a的ASCIl码值加1后为b,A的ASCIl码值加1后为B。输出第一组值,排除C、D选项。B选项的值此时为小b,排除B选项,所以本题答案为A。

12.B

13.B解析:先计算关系表达式a<b=2<3为真(表达式为真时,如果变量为int型变量则真用1表示,假用0表示),即a=1。

14.B本题考查函数的输出格式。在printf函数,格式说明符中有两个“%”说明;将第1个%后面的字符原样输出,并不输出其对应r的变量值。

15.D在C语言中,不能直接比较两个字符串的大小,必须用特定的函数来完成,选项A错误;选项B不管大于还是小于都执行S,不符合题意;选项C正好相反,当s2大于s1时,执行语句S,可知选项D正确。

16.C解析:inta,b,k=4,m=6,*p1=&k,*p2=&m;声明整型变量a,b,k,m和指针p1,p2,并分别将4和6赋给k和m,将k和m的地址赋给P1和p2;a=p1==&m;等价于a=(p1==&m);将p1是否等于地址m的值(0)赋给变量a,b=(*p1)/(*p2)+7;该句的含义是将后面表达式的的值7赋给变量b。

17.B对于题干中的宏,替换如下:S1(a+b,a+b),&+1>)等价于a+b*a+b,即2+5*2+5,等于17;S1(a+b,b+a),等价于a+b*b+a,即2+5*5+2,等于29;S2(a+b,a+b)等价于(a+b)*(a+b),即(2+5)*(2+5),等于49;S2(a+b,b+a)等价于(a+b)*(b+a),即(2+5)*(5+2),等于49。本题答案为B选项。

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

19.B本题考查do-while语句和if…else语句。do-while语句的功能是先执行循环体再判断条件,所以,先判断if语句的条件,y=-4,!y为逻辑0,条件不成立,执行下面的else语句,输出y,然后将x的值减1,x=3,条件不成立,执行下面的else语句,输出Y,然后将X的值减1,x=2,满足while循环条件,继续循环。第三次循环:先判断if语句的条件,y=2,!y为逻辑0,条件不成立,执行下面的else语句,输出y,然后将X的值减1,x=l,满足while循环条件,继续循环。第四次循环:先判断if语句的条件,y=-1,!y为逻辑0,条件不成立,执行下面的else语句,输出Y,然后将x的值减1,x=0,不满足while循环条件,结束循环。所以B正确。

20.A解析:while循环的执行过程如下:(1)计算while后面圆括号中表达式的值.当值为非0时,执行步骤(2);当值为0时,执行步骤(4)。(2)执行循环体一次。(3)转去执行步骤(1)。(4)退出循环。在选项A)中,表达式(ch=getchar())!='N'表示输入的字符不等于N,如果这个条件表达式成立,则执行循环体,打印输出输入的字符。如果这个条件表达式不成立,即输入的字符等于N,则退出循环.所以选项A)为正确答案。

21.系统设计系统设计解析:系统设计阶段是系统的具体设计过程,主要包括概念设计、逻辑结构设计、物理结构设计3个步骤。这3个不同层次上的设计过程,是把实体以及相互之间的联系转换为“数据”并落实于计算机中。

22.246

23.1212解析:程序中的ch1与ch2为字符型变量,输入12后,ch1得到字符'1',ch2得到字符'2'。n1=ch1-'0'将字符1,转换为数值1,同理,n2为1*10+2=12。程序执行后输出十进制整数12。

24.类类解析:面向对象模型中,最基本的概念是对象和类。对象是现实世界中实体的模型化:将属性集和方法集相同的所有对象组合在一起,可以构成一个类。

25.时间时间解析:算法的复杂度主要指时间复杂度和空间复杂度。

26.149161,4,9,16,解析:分析程序执行过程,第1次循环,k=1时,此时s(1)=1*1=1,然后k的值加1;第2次循环,k=2时,s(2)=2*2=4,然后k的值加1;第3次循环,k=3时,s(3)=3*3=9,然后k的值加1;第4次循环,k=4时,s(4)=4*4=16,然后k的值加1;当k=5时,条件不满足,退出循环。

27.16

28.67G67G解析:由于\'5\'-\'3\'=2,所以a=\'A\'+\'5\'-\'3\'=\'C\',按'%d'格式输出\'C\'的ASCII码为67;同理,\'6\'-\'2\'=4,b=a+\'6\'-\'2\'=\'C\'+4=\'G\',按'%c'格式输出为\'G\'。

29.类类解析:在面向对象的方法中,把具有相同属性和方法的对象称为类,类是对象的抽象,对象是类的实例。

30.malloc(40)malloc(40)解析:库函数malloc()只有一个参数,就是所需分配内存的字节数,然后返回一个void*指针。本题要求分配40个字节,故直接调用malloc(40)就可以了。

31.封装封装解析:面向对象技术中包括以下几个基本概念,即对象、类、方法、消息、继承和封装,其中封装是一种信息隐蔽技术,目的在于将对象的使用者对象的和设计者分开。

32.本题要求将一个for循环改成while循环。首先要保证循环条件相同,在for循环中,每次执行循环之后,循环控制变量k都会加1,而while循环则没有,故需在循环体中增加改变k数值的语句“k++”。\r\n\r\n

33.89218921

34.算法或程序或流程图算法或程序或流程图解析:算法是问题处理方案正确而完整的描述。

35.元组元组解析:在关系型数据库中,用二维表来表示关系,二维表的表名即关系名,二维表的行称为关系的元组,二维表的列,称为关系的属性。

36.对于10个数,相邻的两个数相加取和,总共要进行9次加法运算,所以空14处应填入i=1。相邻的两个数相加取和,放在数组a中,x[0]与x[1]的和存放在a[0]中,所以空15处应填入x[i-1]。\r\n\r\n

37.前后件关系前后件关系解析:在数据存储结构中,除了要存储数据,还要存储数据的前后件关系,对于顺序存储的数据结构,前后件之间的关系,是通过存储空间的位置来实现的,而对于链式存储来说,数据元素之间的前后件关系是通过指针来实现的。

38.概念设计阶段(数据库概念设计阶段)概念设计阶段(数据库概念设计阶段)

39.k<=nk++k<=n\r\nk++解析:本题要求将一个for循环改成while循环。首先要保证循环条件相同,在for循环中,每次执行循环之后,循环控制变量k都会加1,而while循环则没有,故需在循环体中增加改变k数值的语句“k++;”。

40.77解析:在主函数中定义了一个变量x并赋初值0,然后执行函数调用语句,该语句的执行过程为sub(&x,8,1)调用sub(&a,4,2),sub(&a,4,2)调用sub(&a,2,4),sub(&a,2,4)中由于2<4,所以if后面括号里的判断为假,递归结束,执行其后的*a+=k;语句此时x=x+k=0+4=4,回退到上一层调用函数sub(&x,4,2)中,执行后面的语句,x=x+k=4+2=6,再回推到最上一层调用函数sub(&x,8,1)执行后面的语句,x=x+k=6+1=7,所以最后输出7。

41.A解析:关系表中,每一行称为一个元组,对应表中的一条记录;每一列称为表中的一个属性,对应表中的一个字段;在二维表中凡能惟一标识元组的最小属性集称为该表的键或码。

42.B解析:宏定义的作用是进行字符的替换,应先将赋值语句的右边进行宏替换,即等号右边为:k+m*k+m/k+m*k+m=2+1*2+1/2+1*2+1=2+2+0+2+1=7,然后计算a/=7,即a=a/7=16/7=2。

43.A解析:由于字符“5”和“3”的ASCII码相差为2,所以ch1经过运算后的值应为65+2=67;同理,ch2经过运算后的值应为65+3=68,即是字符“D”。

44.D

45.D

46.C解析:影响模块之间耦合的主要因素有两个:模块之间的连接形式,模块接口的复杂性。一般来说,接口复杂的模块,其耦合程度要比接口简单的模块强,所以选项A的说法错误;耦合程度弱的模块,其内聚程度一定高,选项B错误;选项C正确。

47.C解析:本段程序的作用是输出字符串“lanuage”中字母u之前的字符,并将其转化为大写字母。注意:如果一个字符数组用来作为字符串使用,那么在定义该字符数组时,数组的大小就应该比它将要实际存放的最长字符多一个元素,以存放‘\\0’。

48.C解析:表达式x*=y+8即x=x*(y+8),所以其值为3*(2+8)=30。

49.D解析:当数组定义后,系统就为其分配内存空间,而不论其中有没有内容。因此,本题中数组x[10]不论是否为其元素初始化,它所分配的存储空间仍为2*10=20个字节。

50.C解析:本题考查移位运算和按位或运算,注意按位或运算时只要对应的二进制位中有一个为1,结果为1;若都为0,结果为00

51.B解析:关系数据库逻辑设计的主要工作是将\ue008E-R\ue009图转换成指定RDBMS中的关系模式。首先,从E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E-R图中属性也可以转换成关系的属性,实体集也可以转换成关系。

52.D解析:通常,引用一个数组元素可以用下标法,如a[P-a]形式,或指针法,如*(&a[i])的形式。本题中a[9]=9,a[10]显然超出了数组范围,注意,数组的下标是从0开始的。

53.DD。【解析】算法的时间复杂度和算法的空间复杂度是从不同的角度来衡量算法的执行情况的,它们之间没有内在联系。

54.C解析:执行main函数中的for语句,当i=0,j=0时,p[i][j]=p[0)[0]='3',满足while循环条件,执行循环体中的if语句得num=3,j=2,此时p[i][j]=p[0][2]='9',满足循环条件,执行while循环体得num=39,j=4,判断while条件,不满足并退出while循环;再次执行for语句,当i=1,j=0,p[i][j]=p[1][0]=2,满足while条件,执行循环体中的if语句,但不符合if条件,所以num不进行运算,j进行加2运算j=2,此时p[i][j]=p[1][2]=4,if条件为假,num不进行运算,j进行加2运算j=4,再执行while语句,条件不符合退出循环。所以结果为39。

55.D

56.A

57.B解析:根据C语言的语法,X++是在使用x之后,再将x的值加1,在if语句中,x的值为5,条件不成立,执行else后面的语句,因为x的值已经加1,为6,所以打印结果为6。

58.D解析:本题考查自减(--)运算符的使用。“x--”是先引用x的值然后将x的值减1,所以输出的x值为8;“--y”是先将y的值减1然后再引用y的值,所以输出的y值为7。

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

60.D解析:本题中首先定义了字符数组a,由于它的长度省略,所以其长度由初值个数确定,为9。接着将sizeof()函数返回的值赋给i(SIZeof()函数的作用是返回运算对象占用的字符数),所以i值为9。然后将strlen()函数的返回值赋给j(strlen()函数的作用是返回字符串的长度,不包括字符串的结束标记'\\0'),所以j值为8,所以最后输出的i,j的值为9,8。所以4个选项中D正确。

61.A详细设计的任务是为软件结构图中而非总体结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节,所以A错误。

62.B

\n在while(E)中,表达式E可以是C语言中任意合法的条件表达式,但不能为空,由它来控制循环体是否执行。在选项8中表达式E>0||E<0是一个逻辑表达式。

\n

63.A广播/电视是一种单向的、点对多点(面)的以信息传递为主要目的的系统。

64.C\n\tC。【解析】二分法查找只适用于顺序存储的有序表,对于长度为n的有序线性表,最坏情况只需比较log2n次。

65.D

66.B解析:声明枚举类型用enum开头。例如:enumweekday(sun,mon,tue,wed,thu,fri,sat);

说明:1、在C编译中,对枚举元素按常量处理,同时可以改变他们的值。2、枚举值可以用来做判断比较。3、一个整数不能直接赋给一个枚举变量。

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

68.B在本题中,首先定义了两个宏N和M,大小都为10,然后定义了一个返回指针的函数find,该函数带有两个形参,第一个为字符型的指针数组,第二个为整型变量,在函数体中,首先定义了一个指针变量q,并将形参中指针数组的第一个元素赋值给q,然后执行for循环,在循环体中,首先执行条件判断语句,其条件为strcmp(a[i],q)<0(strcmp函数的作用是比较两字符串的大小,如果相等,则返回0值,如果参数中的第一个字符串大,则返回正值,否则返回负值),如果结果为真,说明指针数组当前元素所指向的字符串比q所指向的字符串小,此时,程序执行将当前指针数组元素赋值给p,最后返回p,通过上面的分析我们可以看出,find函数的作用是找出指针数组中各元素所指向字符串的最小字符串。

在主函数中,定义了一个二维数组s,并赋了初值,然后定义一个指针变量p,用来存放函数find的返回值。调用函数find的参数分别为s和5,结合形参看find函数,不难知道调用find函数就是找出二维数组s中各字符串中最小的字符串,那么应该为and。此时,指针变量p指向字符串“and”的首地址,然后执行puts(p),完成该字符串的输出。因此,本题正确的答案是B。

69.C【答案】:C

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

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

70.B函数声明的一般形式为:“类型说明符被调函数名(类型形参,类型形参,……);”或“类型说明符被调函数名(类型,类型,……);”由于函数首部为intfun(doublex[10],int*n),因此B选项正确。

71.B随着计算机的应用范围日益广泛,传统的软件开发成本难以控制,进度不可预计;软件系统的质量和可靠性很差;软件文档相当缺乏,软件系统不可维护;软件开发生产率很低,软件产品供不应求;软件产品成本十分昂贵且质量低下等特点日益显现,这些成为计算机应用的一个“瓶颈”,于是出现了所谓的“软件危机”。

软件工程是试图用工程化的方法开发软件,从而解决或缓解软件危机而产生的一门学科。它是采用工程化的方法开发和维护软件的工程学科。把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术和方法结合起来,以便经济地开发出高质量的软件并有效地维护它。软件工程包括三个要素,分别是方法、工具和过程。

72.C注:数据项不可再分割

73.AA。【解析】线性表的存储通常分为两种存储结构:顺序存储结构和链式存储结构。

\n

74.D

75.B

76.D解析:在概念设计中按照模块的划分画出每个模块的E-R图,然后把这些图合成一张E-R图作为全局模型,最后应该对全局E-R图进行优化,看看是否有重复和不合理的地方。不能只是进行简单的合并。

77.C数据定义语言:负责数据的模式定义与数据的物理存取构建;数据操纵语言:负责数据的操纵,包括查询及增加、删除、修改等操作;数据控制语言:负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。因此本题答案为C)。

78.C解析:在C语言中,除字符数组外,一个数组不能通过数组名对数姐进行整体引用,因此选项A是对的。数组名中存放的是一个地址常量,它代表整个数组的首地址,因此选项B是对的。C语言程序在运行过程中,系统不自动检验数组元素的下标是否越界,因此选项C是错误的。C语官规定可以通过赋初值来定义数组的大小,这时数组说明符的一对方括号中可以不指定数组的大小,因此选项D也是正确的。所以,4个选项中选项C符合题意。

79.CC。【解析】E—R(Entity—Relationship)图为实体一联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。

80.A

81.

82.voidfun(inta[][n],intn){inti,j;for(i=0;i<=""p="">for(j=0;j<=i;j++)/*矩形的下三角时,积相乘*/a[i][j]=a[i][j]*n;}首先从数组中找出要乘以n的元素。这其实就是找出将被挑出的元素在原数组中的分布规律的过程。通过观察得出,要被处理的元素下标的范围是从每行中第1个元素开始,直到列数等于该行行数为止。即数组下三角元素的列下标(j)小于等于(<=)行下标(j)。找到这个规律后,依次从数组中取得符合要求的元素,然后乘以n。2021年福建省厦门市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.有以下程序:

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

A.45B.20C.25D.36

2.下面程序的时间复杂为()A.O(n)B.O(n^2)C.O(n^3)D.O(n^4)

3.下列描述错误的是()。

A.继承分为多重继承和单继承

B.对象之间的通信靠传递消息来实现

C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征

D.类是具有共同属性、共同方法的对象的集合

4.

5.在执行()操作时,需要使用队列做辅助存储空间。

A.查找哈希(Hash)表B.深度优先搜索网C.前序(根)遍历二叉树D.广度优先搜索网

6.下列4项说法中,不正确的是______。

A.数据库减少了数据冗余B.数据库中的数据可以共享C.数据库避免了一切数据的重复D.数据库具有较高的数据独立性

7.判断一个循环队列cq(最多元素为m)为满的条件是()。

A.cq->rear-cq-front=m;

B.(cq->rear+1)%m=cq->front;

C.cq->front=cq->rear;

D.cq->rear=m-1;

8.高度为h的满二叉树的结点数是________个。

A.log2h+1B.2h+1C.2h-1D.2h-1

9.

10.下列叙述中错误的是()。

A.C语言程序对预处理命令行的处理是在程序执行过程中进行的

B.预处理命令行的最后不能以分号表示结束

C.“#defmeMAX”是合法的宏定义命令行

D.在程序中,凡是以“#”开始的语句行都是预处理命令行

11.有以下程序:#include<stdio.h>voidfun(char*C,intd){*c=*c+1,d=d+1;printf(%"c%,c",*c,d);}main(){charb=aa=A;fun(&b,a);printf(%"c,%c\n",b,a);)程序运行后的输出结果是()。A.b,B,b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B

12.以下选项中,合法的一组C语苦数值常量是()。

A.28.5e-3-0xf

B.12OXa234.5

C.1774c1.5Oabc

D.0x8A10,0003.e5

13.已知inta=2,b=3;则执行表达式a=a<b后,变量a的值为()。

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

14.若有下列定义(设int类型变量占2个字节):inti=8,j=9;则下列语句:printf("i=%%d,j=%%d\n",i,j);输出的结果是()。A.i=8,j=9B.i=%d,j=%dC.i=%8,j=%9D.8,9

15.s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句s;则以下选项中正确的是()。

A.if(s1>s2)S;

B.if(strcmp(s1,s2))S;

C.if(strcmp(s2,sl)>O)S;

D.if(stremp(s1,s2)>O)S;

16.执行以下程序后,a,b的值分别为main(){ina,b,k=4,m=6,*p1=&k,*p2=&m;a=p1==&m;b=(*p1)/(*p2)+7;printf("a=%d\n",a);printf("b=%d\n",b);}

A.-1,5B.1,6C.0,7D.4,10

17.有下列程序:程序执行后的输出结果是()。A.17,17,49,49B.17,29,49,49C.29,29,49,49D.49,49,49,49

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

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

19.有以下程序:#include<stdio.h>main{intx=4,y;do{y=x;if(!y)printf(“x”);elseprintf(“y”):x--;}while(x);}程序的输出结果是()。A.xyyxB.yyyyC.yyxxD.yxyx

20.要求通过while循环不断读入字符,当读入字母N时结束循环,若变量已正确定义,下列正确的程序段是()。

A.while((ch=getchar())!='N')printf("%c",ch);

B.while(ch=getchar()!='N')printf("%c",ch);

C.while(ch=getchar()=='N')printf("%c",ch);

D.while((ch=getchar())=='N')printf("%c",ch);

二、2.填空题(20题)21.一般来说,数据库的设计过程要经历3个大的阶段,即可行性分析与研究阶段、系统设计阶段、设计实施与系统运行阶段。概念设计、逻辑结构设计、物理结构设计属于数据库设计的【】阶段。

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

voidfun()

{staticinta=0;

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

}

main()

{intcc;

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

printf("\n");

}

23.有以下程序:

#include<stdio.h>

main()

{charch1,ch2;intn1,n2;

ch1=getchar();ch2=getehar();

n1=ch1-'0';n2=n1*10+(ch2-'0');

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

}

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

24.面向对象的模型中,最基本概念是对象和【】。

25.算法的复杂度主要包括空间复杂度和______复杂度。

26.以下程序的运行结果是()。#defineS(x)x*xmain(){intk=1;while(k<=4){printf("%d,",S(k));k++;}

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

inti=0,sum=1;

do

{sum+=i++;}

while(i<6);

print("%d\n",sum);

28.已知字符'A'的ASCII码为65,以下程序运行后的输出结果是【】。

#include<stdio.h>

main()

{chara,b;

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

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

}

29.在面向对象的方法中,______描述的是具有相似属性与操作的一组对象。

30.用下面语句调用库函数malloc,使单精度型指针p指向具有40个字节的动态存储空间,请填空。

p=(float*)【】;

31.【】是一种信息隐蔽技术,目的在于将对象的使用者和对象的设计者分开。

32.有以下程序段,且变量已正确定义和赋值

for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));

printf("s=%f\n\n",s);

请填空,使下面程序段的功能与之完全相同

S=1.0;k=1;

while([8]){s=s+1.0/(k*(k+1));[9];}

printf("s=%f\n\n",s);

33.设有如下程序main(){intn1,n2;scanf(“%d”,&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf(“%d”,n1);}}程序运行后,如果从键盘上输入1298,则输出结果为

34.问题处理方案的正确而完整的描述称为______。

35.在关系模型中,二维表的行称为______。

36.以下程序的功能是:求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。请填空。

main()

{intx[10],a[9],i;

for(i=0;i<10;i++)scanf("%d",&x[i]);

for([11];i<10;i++)

a[i-1]=x[i]+[12];.

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

printf("");

}

37.在数据的存储结构中,不仅需要存储各数据元素的信息,还要存放各元素之间______的信息。

38.数据库设计分为以下6个设计阶段:需求分析阶段、______、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。

39.有以下程序段,且变量已正确定义和赋值

for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1));

printf("s=%f\n\n",s);

请填空,使下面程序段的功能与之完全相同

s=1.0;k=1;

while(【】){s=s+1.0/(k*(k+1));【】;}

printf("s=%f\n\n",s);

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

main()

{intx=0;

sub(&x,8,1);

printf(“%d\n”,x);

}

sub(int*a,intn,intk)

{if(k<=n)sub(a,n/2,2*k);

*a+=k;

}

三、1.选择题(20题)41.关系表中的每一横行称为一个()。A.元组B.字段C.属性D.码

42.以下程序的输出结果是______。#defineTIMES(X)X*Xmain(){inta=16,k=2,m=1;a/=TIMES(k+m)/TIMES(k+m);printf("d\n",a);}

A.16B.2C.9D.1

43.已知字母A的ASCII码为十进制的65,下面程序main(){charch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}的输出是_________。

A.67,DB.B,CC.C,DD.不确定的值

44.a、b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中,值为0的表达式是()

A.'a'&&'b

B.a<=b

C.ab+c&&b-c

D.!((a<b)&&!c1)

45.下述程序的输出结果是#include<stdio.h>voidmain(){inta[5]={2,4,6,8,10};int*p=a,**q=&p;printf("%d,",*(p++));pfintf("%d",**q);}

A.4,4B.2,2C.4,5D.2,4

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

A.接口复杂的模块,其耦合程度一定低

B.耦合程度弱的模块,其内聚程度一定低

C.耦合程度弱的模块,其内聚程度一定高

D.上述三种说法都不对

47.下面程序段的运行结果是chara[]="lanuage",*p;p=a;while(*p!='u'){printf("%c",*p-32);p++;}

A.LANGUAGEB.languageC.LAND.langUAGE

48.己知x=3,y=2,则表达式x*=y+8的值为______。

A.3B.2C.30D.10

49.假定int类型变量占用两个字节,若有定义:intx[10]={0,2,4};,则数组x在内存中所占字节数是______。

A.3B.6C.10D.20

50.下面程序的运行结果是______。main(){unsigneda=3,b=10;printf("%d\n",a<<2|b>>1);}

A.3B.10C.13D.14

51.将E-R图转换到关系模式时,实体与联系都可以表示成________。

A.属性B.关系C.键D.域

52.若已定义:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,则对a数组元素不正确的引用是______。

A.a[p-a]B.*(&a[i])C.p[i]D.a[10]

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

A.一个算法的空间复杂度大,则其时间复杂度必定大

B.一个算法的空间复杂度大,则其时间复杂度必定小

C.一个算法的时间复杂度大,则其空间复杂度必定小

D.上述三种说法都不对

54.有以下程序:#include<stdio.h>main()char*p[]={"3697","2548"};inti,j;longnum=0;for(i=0;i<2;i++){j=0;while(p[i][j]!='\0'){if((p[i][j]-'0')%2)num=10*num+p[i][j]-'0';j+=2;}printf("%d\n",num);}程序执行后的输出结果是()。

A.35B.37C.39D.3975

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

main(){intk=17;printf("%d,%o,%x\n",k,k,k):}

A.17,021,0x11B.17,17,17C.17,0x11,021D.17,21,11

56.以下选项中可作为C语言合法常量的是()。

A.-80B.-80C.-80.0D.-80.0e

57.若执行下面程序时从键盘上输入5,main(){intx;scanf("%d",&x);if(x++>5)printf("%d\n",x);elseprintf("%d\n",x-);则输出是______。

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

58.下列程序的输出结果是()。

main

{intx=8,y=8;

printf("%do%od\n",x--,--y);

}

A.88B.77C.78D.87

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

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

60.有以下程序main(){chara[]={'a','b','c','d','e','f','g','h','\0'};inti,j;i=sizeof(a);j=strlen(a);printf("%d,%d\n"i,j);}程序运行后的输出结果是

A.9,9B.8,9C.1,8D.9,8

四、选择题(20题)61.下面描述中错误的是()。

A.系统总体结构图支持软件系统的详细设计

B.软件设计是将软件需求转换为软件表示的过程

C.数据结构与数据库设计是软件设计的任务之一

D.PAD图是软件详细设计的表示工具

62.

在下列给出的表达式中,与while(E)中的(E)不等价的表达式是()。

A.(!E==0)B.(E>0C.D.E<0)E.(E==0)F.(E!=0)

63.下列关于信息系统的叙述中,错误的是()。

A.广播电视是一种双向的、点到多点的信息交互系自

B.网络聊天是一种双向的,以信息交互为主要目的系统

C.电话是一种双向的、点对点的、以信息交互为主要的的系统

D.雷达是一种以感测和识别为主要目的的系统

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

A.对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n

B.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为n/2

C.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为log2n

D.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为nlog2n

65.

66.以理对枚举类型名的定义中正确的是______。

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

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

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

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

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

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

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

68.有如下程序段

#include"stdio.h"

#include"string.h"

#defineN10

#defineM10

char*find(char(*a)[M],intn)

{char*q;inti;

q=a[0];

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

if(strcmp(a[i],q)<0)q=a[i];

returnq;}

main()

{chars[N][M]={"tomeetme","you","and","he","china"};

char*p;

intn=5;

p=find(s,n);

puts(p);}

则执行后输出的结果为A.A.heB.andC.youD.tomeetme

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

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

70.若有以下函数首部:

intfun(doublex[10],int*n)

则下面针对此函数的函数声明语句中正确的是()。

A.intfun(double,int);

B.intfun(double木,int*);

C.intmn(double*x,intn);

D.intfun(doublex,intint*n)

71.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称为()。

A.软件投机B.软件危机C.软件工程D.软件产生

72.(67)数据处理的最小单位是()

A.数据

B.数据元素

C.数据项

D.数据结构

73.常采用的两种存储结构是()。

A.顺序存储结构和链式存储结构B.散列方法和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构

74.

75.

76.利用E-R模型进行数据库的概念设计,可以分成3步:首先设计局部E-R模型,然后把各个局部E-R模型综合成一个全局的模型,最后对全局E-R模型进行(),得到最终的E-R模型。

A.简化B.结构化C.最小化D.优化

77.负责数据库中查询操作的数据库语言是()。

A.数据定义语言B.数据管理语言C.数据操纵语言D.数据控制语言

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

A.对于double类型数组,不可以直接用数组名对数组进行整体输入或输出

B.数组名代表的是数组所占存储区的首地址,其值不可改变

C.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息

D.可以通过赋初值的方式确定数组元素的个数

79.数据库设计中,用E—R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的()。

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

80.

五、程序改错题(1题)81.改正下列程序中不正确的语句。

main()

{inta;

scanf(“%d”,a);if(a=1)printf(“One\n”);}

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。此程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数该函数的功能是使数组下三角元素中的值乘以n。注意:部分源程序给出如下。请勿改动函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>#defineN5voidfun(inta[][N],intn){}main(){inta[N][N],n,i,j;printf(“*****Thearray*****\n”);for(i=0;i<n;i++)<p=""></n;i++)<>{for(j=0;j<=""p="">{a[i][j]=rand()%10;printf(“%4d”,a[i][j]);}printf(“\n”);}n=rand()%4;printf(“n=%4d\n”,n);fun(a,n);printf(“*****TheResult*****\n”);for(i=0;i<=""p="">{for(j=0;j<=""p="">printf(“%4d”,a[i][j]);printf(“\n”);}}

参考答案

1.C统计1~9九个数中的奇数和,此题重点考察指向数组的指针。c语言规定数组名代表数组的首地址,也就是第一个元素的地址。因此*(t+i)代表数组的第i+1个元素。程序运行的结果是l+3+5+7+9=25。1

2.B

3.C解析:对象的封装性是指从外面看只能看到对象的外部特性;而对象的内部,其处理能力的实行和内部状态对外是不可见的,是隐蔽的。

4.D

5.D

6.C解析:数据库系统具有以下4个特点:数据的集成性、数据的高共享性与低冗余性、数据的独立性、数据统一管理与控制。

7.B

8.C

9.B

10.A预处理是在程序编译之前进行的,所以A选项错误。故本题答案为A选项。

11.A本题考查了函数的调用。首先主函数定义了两个字符型数据b和a,给b赋值为字母a.a赋值为字母A,调用fun(&.b,a)函数,*C=*c十1,a的ASCIl码值加1后为b,A的ASCIl码值加1后为B。输出第一组值,排除C、D选项。B选项的值此时为小b,排除B选项,所以本题答案为A。

12.B

13.B解析:先计算关系表达式a<b=2<3为真(表达式为真时,如果变量为int型变量则真用1表示,假用0表示),即a=1。

14.B本题考查函数的输出格式。在printf函数,格式说明符中有两个“%”说明;将第1个%后面的字符原样输出,并不输出其对应r的变量值。

15.D在C语言中,不能直接比较两个字符串的大小,必须用特定的函数来完成,选项A错误;选项B不管大于还是小于都执行S,不符合题意;选项C正好相反,当s2大于s1时,执行语句S,可知选项D正确。

16.C解析:inta,b,k=4,m=6,*p1=&k,*p2=&m;声明整型变量a,b,k,m和指针p1,p2,并分别将4和6赋给k和m,将k和m的地址赋给P1和p2;a=p1==&m;等价于a=(p1==&m);将p1是否等于地址m的值(0)赋给变量a,b=(*p1)/(*p2)+7;该句的含义是将后面表达式的的值7赋给变量b。

17.B对于题干中的宏,替换如下:S1(a+b,a+b),&+1>)等价于a+b*a+b,即2+5*2+5,等于17;S1(a+b,b+a),等价于a+b*b+a,即2+5*5+2,等于29;S2(a+b,a+b)等价于(a+b)*(a+b),即(2+5)*(2+5),等于49;S2(a+b,b+a)等价于(a+b)*(b+a),即(2+5)*(5+2),等于49。本题答案为B选项。

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

19.B本题考查do-while语句和if…else语句。do-while语句的功能是先执行循环体再判断条件,所以,先判断if语句的条件,y=-4,!y为逻辑0,条件不成立,执行下面

温馨提示

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

评论

0/150

提交评论