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

下载本文档

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

文档简介

2021-2022年广东省惠州市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.

2.有以下程序

#include<stdio.h>

main()

{ini,j,m=1;

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

{for(j=3;j>0;j--)

{if(i*j)>3)break;

m=i*j;

}

}

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

程序运行后的输出结果是A.m=6B.m=2C.m=4D.m=5

3.在"inta[][3]={{1},{3,2},{4,5,6},{0}};"中,a[2][2]的值是()。

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

4.有以下程序:#include<stdio.h>main(){charch=‘D’;while(ch>‘A’){ch--;putchar(ch);if(ch==‘A’)break;putchar(ch+1);}}程序运行后的输出结果是()。

A.CBB.BCAC.CCBBD.CDBCA

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

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

6.有下列程序:

程序执行后的输出结果是()。A.3,7,3,7B.7,3,7,3C.3,7,7,3D.7,3,3,7

7.

8.需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是()。A.单链表B.静态链表C.线性链表D.顺序存储结构

9.有下列程序:intfunl(doublea){returna*=a;)intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+h);}main{doublew;w=fun2(1.1,2.0),……)程序执行后变量w中的值是()。A.5.21B.5C.5.0D.0.0

10.有以下程序:

main()

{intX,i;

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

{x=i;

if(X%2=O)

if(x%3=O)

if(X%7=0)

printf("%d,i)";

}

}

输出结果是()。

A.28

B.27

C.42

D.41

11.在一个C语言源文件中定义的全局变量,其作用域为()。

A.由具体定义位置和extern说明来决定范围B.所在程序的全部范围C.所在函数的全部范围D.所在文件的全部范围

12.数据管理技术发展的三个阶段中,()没有专门的软件对数据进行管理。

I.人工管理阶段

II.文件系统阶段

Ⅲ.数据库阶段A.A.仅IB.仅ⅢC.I和IID.II和Ⅲ

13.判断有向图是否存在回路,利用()方法最佳。

A.求关键路径B.求最短路径C.拓扑排序D.广度优先遍历

14.两个或两个以上模块之间关联的紧密程度称为()。

A.耦合度

B.内聚度

C.复杂度

D.数据传输特性

15.数据在计算机存储器内表示时,如果元素在存储器中的相对位置能反映数据元素之间的逻辑关系,则称这种存储结构为()。

A.存储结构B.逻辑结构C.顺序存储结构D.链式存储结构

16.现在有16枚外形相同的硬币,其中一枚是假币,且已知假币比真币重量轻。先给定一架没有砝码的天平,问至少需要多少次称量才能找到这枚假币?

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

17.以下关于注释的叙述中错误的是()。

A.注释的边界符号“/”和“*”之间不允许加入空格

B.C语言允许注释出现在程序中任意合适的地方

C.注释的内容仅用于阅读,对程序的运行不起作用

D.注释的边界符号“/*”和“*/”必须成对出现且可以嵌套

18.以下叙述中不正确的是

A.预处理命令行都必须以#号开始

B.在程序中凡是以#号开始的语句行都是预处理命令行

C.宏替换不占用运行时间,只占编译时间

D.在以下定义是正确的:#definePI3.1415926;

19.对包含N个元素散列表进行查找,平均查找长度()。

A.为OB.为O(N)C.不直接依赖ND.上述三者都不是

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

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

main()

{inti;

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

{if(i>4)

{printf("%d\n",i);

break;}

printf("%d\n",i++);}}

22.数据结构分为线性结构和非线性结构,带链的队列属于[]。

23.下面程序的功能是输出数组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);}

24.以下程序由终端键盘输入一个文件名,然后把从终端键盘输入的字符依次存放到该文件中,用#作为结束输入的标志,请填空。

#include<stdio.h>

main()

{FILE*fp;

charch,fname[10];

printf("Inputthenam\n");

gets(fname);

if((fp=【】==NULL)

{printf("Cannotopen\n");exit(0);}

printf("Enterdata\n");

while(ch=getchar()!='#')

fputc(【】,fp);

fclose(fp);

}

25.长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为【】。

26.当线性表的操作无插入和删除时,采用【】结构为好。

27.下列程序的输出结果是16.00,请填空。

#include<stdio.h>

main()

{inta=9,b=2;

floatx=【】,y=1.1,z;

z=a/2+b*x/y+1/2;

printf("%5.2f\n",z);

}

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

#include<stdio.h>

longfib(intg)

{switch(g)

{case0:return0;

case1:

case2:return1;}

return(fib(g-1)+fib(g-2));}

main()

{longk;

k=fib(5);

printf("k=%5ld\n",k);}

29.数据结构分为逻辑结构与存储结构,线性链表属于【】。

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

#include<stdio.h>

main()

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

p=a;p++;

printf("%d",*p);

}

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

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

main()

{

charstr1[]="Howdoyoudo",*pl=str1;

strcpy(str1+strlen(str1)/2,"esshe");

intf("%s\n",p1);

33.下面程序

main()

{inti,j,m,n;

i=5;

j=10;

m=++i;

n=j++;

printf("%d,%d,%d,%d",i,j,m,n);

}

运行后,i,j,m,n的值分别是_______。

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

main()

{ints=0,i=1;

while(s<=10)

{s=s+i*i;

i++;

}

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

}

35.若有以下程序:

main()

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

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

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

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

}

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

36.软件定义时期主要包括______和需求分析两个阶段。

37.阅读下面语句,则执行后的输出结果为【】。

#include"stdio.h"

main()

{chara,b;

for(a='0',b='9';a<b;a++,b--)

printf("%c%c",a,b);

printf("\n");}

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

39.函数voidfun(float*sn,intn)的功能是:根据以下公式计算s,计算结果通过形参指针sn传回;n通过形参传入,n的值大于或等于0。请填空。

voidfun(float*sn,intn)

{floats=0.0,w,f=-1.0;

inti;

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

{f=【】*f;

w=f/(2*i+1);

s+=w;

}

【】=s;

}

40.一张3.5英寸软盘大约能存储140万个ASCⅡ字符,若存放汉字大约能存放【】个。

三、1.选择题(20题)41.2个指针变量不可以______。

A.相加B.比较C.相减D.指向同一地址

42.有下列二叉树,

对此二叉树前序遍历的结果为()。

A.ACFHIBEDGB.ABCDEFGHIC.ABDEGCFHID.ABCDEFHGI

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

44.已知i、j、k为血型变量,若要从键盘输入2、3、4<CR>,使i、j、k的值分别为2、3、4,下列正确的输入语句是()。

A.scanf(“%3d,%3d,%3d”,&i,&j,&k);

B.scanf(“%d,%d,%d”,&i,&J,&k);

C.scanf(“%d%d%d”,&i,&j,&k);

D.scanf(“i=%d,%d,k=%d”,&i,&j,&k);

45.已定义以下函数

fun(int*p)

{return*p;}

该函数的返回值是()

A.不确定的值

B.形参p中存放的值

C.形参p所指存储单元中的值

D.形参p的地址值

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

main()

{inta,i;a=0;

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

{switch(i)

{case0:

case3:a+=2;

case1:

case2:a+=3;

default:a+=5;}

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

A.31B.13C.10D.20

47.以下正确的程序段是

A.charstr1[]="12345",str2[]="abcdef";

B.charstr[10],*st="abcde";strcat(str,st);

C.charstr[10]=""。*st="abcde";strcat(str,st);

D.char*st1="12345",*st2="abcde";strcat(st1,st2);

48.数据库设计包括两个方面的设计内容,它们是()

A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计

49.程序中头文件type1.h的内容是()。#defineN5#defineM1N*3程序如下:#define"type1.h"#defineM2N*2main(){inti;i=M1+M2;printf("%d\n",i);}程序编译后运行的输出结果是()。

A.10B.20C.25D.30

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

A.C程序是以函数为基本单位的,整个程序由函数组成

B.C语言程序的一条语句可以写在不同的行上

C.C程序的注释行对程序的运行功能不起任何作用,所以注释应该尽可能少写

D.C程序的每个语句都以分号结束

51.有以下程序:voidf(intn,int*r){intr1=0;if(n%3==0)r1=n/3;elseif(n%5==0)r1=n/5;elsef(--n,&r1);*r=r1;}main(){intm=7,r;f(m,&r);printf("%d\n",r);}程序运行后的输出结果是______。

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

52.有以下程序:main(){inti,s=1;for(i=1;i<50;i++)if(!(i%5)&&!(i%3))s+=i;printf("%d\n",s);}程序的输出结果是

A.409B.277C.1D.91

53.设q1和q2是指向一个int型一维数组的指针变最,k为float型变量,下列小能正确执行的语句是()。

A.k=*q1*(*q2);B.q1=k;C.q1=q2;D.k=*q1+*q2;

54.函数fseek(pf,0L,SEEK_END)中的SEEK_END代表的是()。

A.文件开始B.文件末尾C.文件当前位置D.以上都不对

55.有以下程序:main(){union{unsignedintn;unsignedcharc;}u1;u1.c='A';printf("%c\n",u1.n);}执行后输出结果是()。

A.产生语法错误B.随机值C.AD.65

56.已知字母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.不正确定的值

57.下列程序是用来判断数组中特定元素的位置所在。如果输入如下整数:876675896101301401980431451777#include<conio.h>#include<stdio.h>intfun(int*s,intt,int*k){inti;*k=0;for(i=0;i<t;i++)if(s[*k]<s[i])*k=i;returns[*k];}main(){inta[10]={876,675,896,101,301,401,980,431,45l,777},k;clrscr();fun(a,10,&k);printf("%d,%d\n",k,a[k]);}则输出结果为

A.7,431B.6C.980D.6,980

58.下列叙述中,正确的是

A.用E-R图能够表示实体集间一对一的联系、一对多的联系和多对多的联系

B.用E-R图只能表示实体集之间一对一的联系

C.用E-R图只能表示实体集之间一对多的联系

D.用E-R图表示的概念数据模型只能转换为关系数据模型

59.执行以下语句后的输出结果是______。intx=10,y=3,z;printf("%d\n",z=(x%y,x/y));

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

60.若变量已正确定义并赋值,下面符合C语言的表达式是_____。

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

四、选择题(20题)61.

执行下列程序中的输出语句后,a的值是()。

main

{inta;

printf("%d\n",(a=2*3,a*5,a+7));

}

A.17B.37C.6D.13

62.在软件开发中,需求分析阶段产生的主要文档是()。A.软件集成测试计划B.软件详细设计说明书C.用户手册D.软件需求规格说明书

63.有以下程序

#include<stdio.h>

voidfun(char**p)

{++p;printf("%s",*p);}

main

{char*a[]={"Morning","Afternoon","Evening","Night");

fun(a);

}

程序的运行结果是()。A.A.AfternoonB.fternoonC.MorningD.orning

64.有以下计算公式:

若程序前面已在命令行中包含math.h文件,不能够正确计算上述公式的程序段是

([answer]

65.当变量c的值不为2、4、6时,值也为”真”的表达式是()。

A.

B.

C.

D.

66.

67.

68.设已有定义:floatx;则以下对指针变量p进行定义且赋初值的语句中正确的是()。A.float*p=&x;B.int*p-(float)x;C.floatp=&x;D.float*p=1024;

69.

70.

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

A)C程序中的#include和#define行均是C语句,只是语法不同

B)除赋值运算符外,逗号运算符的优先级最低

C)C程序中,j++;是赋值语句

D)C程序中,+、-、*、/、%号是算数运算符,可用于整型和实型数的运算

72.

73.有以下程序段:

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

A.a=10b=50C=30

B.a=10b=50c=10

C.a=10b=30c=10

D.a=50b=30c:50

74.

75.

76.如图所示,两个关系R1和R2:

则由关系R1和R2得到关系R3的操作是()。

A.笛卡尔积B.连接C.交D.除

77.有以下程序:

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

A.Zhao,111,85,90,Qian,f,95,92

B.Zhao,m,85,90,Zha0,m,85,90

C.Qian,f,95,92,Qian,f,95,92

D.Qian,f,95,92,Zha0,m,85,90

78.

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

A.passwarnB.passerrorC.goodpasswarnD.pass

80.

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.请编一个函数voidproc(intttEM][N],intpp[N]),tt指向一个M行N列的二维数组,求出二维数组每行中最大元素,并依次放入pp所指的一维数组中。二维数组中的数已在主函数中给出。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。试题程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>#defineM3#defineN4voidproc(intttrM3rN]。intpp[N]){ }voidmain{intstr[M][N]={{34,56,84,78},{23,84,93,12),{28,38,39,93}};intp[N],i,j,k;system("CLS");printf("Theriginaldatais:\n");for(i=0;i<M;i++){for(j=0;j<N;j++)printf("%6d",str[i][j]);printf("\n");}proc(str,p);printf("\nTheresultis:\n");for(k=0:k<M;k++)printf("%4d",p[k]);printf("n");}

参考答案

1.B

2.A

3.C

4.Dputchar函数的功能是输出一个字符,由whlie判断条件和ch初始值可知,只要“ch≠‘A’”,执行两次putchar函数,否则跳出循环。第1次输出“CD”,第2次输出“BC”,第3次输出“A”后跳出循环。故本题答案为D选项。

5.A

6.C程序定义两个整型变量i、j,初值为3,7。另外,定义两个整型指针变量p、q,其中p指向i,q指向j。将i、j的地址传给swap函数。在swap函数中,a指向i,b指向j。通过临时变量t交换a和b指向的值,此时a指向的实参i、b指向的实参j的值发生了交换。即a指向i的值为7,b指向j的值为3;再通过临时变量tp交换a和b的指针值,使得a指向j,b指向i。所以swap中输出a指向的值为3(j),b指向的值为7(i);swap函数调用结束后,输出p和q指向的值,即i、j的值为7、3。所以程序输出:3,7,7,3。本题答案为C选项。

7.D

8.B

9.C子函数fun1(doublea)的功能是返回a的平方值的整数部分。子函数fun2(doublex,doubley)的功能是返回X的平方值的整数部分与Y的平方值的整数部分的和。又因为题中变量w的定义为double型,函数fun(2)的定义为int型,按照各类数值型数据间的混合运算,整型数据被转换为实型数据。所以双精度型变量w的值为5.0。

10.C\n只有当3个if条件同时成立,即能够同时被2、3、7整除时,才输出i的值,而从0到50能够同时被2、3、7整除的数只有42,故选择c选巩。

\n

11.A全局变量的作用域是从声明处到文件的结束。故本题答案为A选项。

12.A数据管理技术发展的兰个阶段中,只有人工管理阶段,没有操作系统,没有管理数据的软件,数据处理方式是批处理。在文件系统阶段,操作系统中已经有了专门数据管理软件,一般称为文件系统。在数据库系统阶段,出现了统一管理数据的专门软件系统,即数据库管理系统。

13.C

14.A解析:本题考核模块独立性的评价。评价模块独立性的主要标准有两个;一是模块之间的耦合,它表明两个模块之间互相独立的程度,也可以说是两个或两个以上模块之间关联的紧密程度(所以,本题的正确答案为选项A);二是模块内部之间的关系是否紧密,称为内聚。一般来说,要求模块之间的耦合尽可能地弱,即模块尽可能独立,而要求模块的内聚程度尽量地高。

15.C

16.A

17.D在编写程序时可以在程序中加入注释。在添加注释时,注释内容必须放在符号“/*”和“*/”之间,“/*”和“*/”必须成对出现,“/*”与“*/”之间不可以有空格,选项A正确;注释可以用英文,可以用中文,可以出现在程序中任意合适的地方,选项B正确;注释部分只适用于阅读,对程序的运行不起作用,选项C正确;使用“/*”和“*/”的注释之间不可再嵌套“/*”和“*/”,选项D错误。故本题答案为D选项。

18.D解析:带参数的宏定义如下:#define宏名(参数)字符串。本题中,宏定义的作用是指定用标识符PI来代替“3.1415926”这个字符串,但宏定义不是C语句,不必在行末加分号。

19.C

20.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次。

21.1351\r\n3\r\n5解析:本题考查了for循环语句的使用,break语句用在本题中是结束for循环直接跳出循环体外。当i=1时,因为if语句条件不满足,所以直接执行printf('%d\\n',i++);输出1,同时i自加1;执行第二次for循环时,i=3;同样的if语句条件不满足,所以直接执行printf('%d\\n',i++);输出3,同时i自加1;执行第三次for循环时,i=5,if语句条件满足,所以执行printf('%d\\n',i),输出5,然后break语句跳出了for循环。

22.线性结构线性结构解析:与栈类似,队列也是线性表,也町以采用链式存储结构。

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

24.fopen(fname"w")chfopen(fname,'w')\r\nch解析:数组fname用来存放终端输入的一个文件的文件名;文件使用方式'w'是为写而打开文本文件。若文件不存在,系统将用在fopen调用中以指定的文件名建立一个新文件;若存在,则覆盖原有内容;fputs(ch,fp)的功能是将字符ch写到文件指针fp所指的文件中去。

25.n/2性表的任何位置插入一个元素的概率相等,即概率为p=1/(n+1),则插入一个元素时所需移动元素的平均次数为E=1/(n+1)(n-i+1)=n/2。

26.顺序顺序解析:当线性表的操作无插入和删除时,在对线性表进行操作时,不能改变元素的位置,采用顺序结构的效率高于链式结构。因为采用顺序结构,对元素的查找可通过计算得到。

解析:本题以浮点格式输出z值,宽度为5,有2位小数。应该注意的是,两个整数运算结果仍为整数,如1/2的结果为0。本题可逐步求解:

16.00=9/2+2*x/1.1+1/2

16.00=4+2*x/1.1+0

12.00=2*x/1.1

所以,x的值为6.6。

28.k=5k=5解析:本题主要考查了函数的递归调用方法。g=0或g=1或g=2是递归的终止条件,然后用回代的方法从一个已知值推出下一个值,直到计算出最终结果。

29.存储结构

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

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

32.HowdoessheHowdoesshe解析:strcpy(str1,s1):字符串拷贝函数,作用是将字符串s1拷贝到字符数组str1中去。strlen(str):测试字符串str的长度,函数的值为字符串中实际长度,不包括‘\\0’在内。本题中strlen(strl)的值为13,则strcpy(strl+strlen(strl)/2,'esshe');相当于strqoy(strl+6,'esshe');因此可得答案为Howdoesshe。

33.611610。6,11,6,10。解析:本题考查自加的前置和后置的区别。

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

35.503503解析:本题考查的是C语言中if语句的语句体。第一个if语句的语句体为t=a,第二个if语句的语句体为t=a。执行第一个if语句时,条件a<b不成立,所以不执行t=a,直接执行语句a=b和b=t得a=3、b=0,然后判断第二个if语句的条件a<c是否成立,即判断3<5是否成立,显然条件成立,执行语句t=a得t=3,接着执行a=c;c=t得a=5、c=3,所以a=5、c=3、b=0。

36.可行性研究可行性研究解析:软件生命周期一般包括可行性研究与需求分析、设计、实现、测试、交付使用及维护等,还可以将软件生命周期分为三个阶段:①软件定义阶段:可行性研究和需求分析;②软件开发阶段:设计、实现和测试;③软件运行维护阶段:交付使用和维护。

37.918273645918273645解析:for是C语言的关键字,其后的一对圆括号中通常含有3个表达式,各个表达式之间用分号隔开,这3个表达式可以是任意形式的表达式,通常主要用于for循环控制。

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

39.-1*sn-1*sn解析:根据公式可知,第一处应填-1;由于计算结果要通过形参指针sn传回,所以第二处应填*sn。

40.70万70万

41.A

42.C解析:对二叉树的前序遍历是指先访问根结点,然后访问左子树,最后访问右子树,并且,在访问左、右子树时,先访问根结点,再依次访问其左、右子树。

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

44.B解析:函数scanf()的调用形式是:scanf(格式字符串,输入项地址表)。其中,“格式字符串”是要输入的变量的格式符;“输入项地址表”是要输入的变量的地址。

若在格式符中插入了其他字符,则在输入时要求按一一对应的位置原样输入这些字符,其中的逗号也必须输入。

45.C解析:本题考核的知识点是函数的返回值.函数的返回值应该为return后面的表达式的值,在本题中的表达式为*p,*p指的是形参p所指存储单元中的值,所以,4个选项中选项C符合题意。

46.A解析:本题考查用于多分支选择的switch语句,其一般形式为:

switch(表达式)

{

case常量表达式1:语句1;

case常量表达式2:语句2;

case常量表达式n:语句n;

default:语句n+1;

}

其语义是:计算表达式的值,并逐个与其后的常量表达式值进行比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句;如表达式的值与所有case后的常量表达式均不相等时,则执行default后的语句。

47.C解析:本题考查了一维字符数组的定义和初始化。选项C中str[10]初始化为空,可以不必进行类似''的空赋值,字符数组若没有进行初始化赋值,默认的字符为空,并且定义完str数组后,应该用“,”分隔而不是“。”,所以选项C错误。

48.A解析:模式设计和内模式设计是概念设计的两种方法。物理设计是根据特定的计算机系统,对数据的存储结构和存取方法进行设计,从而实现从逻辑结构到物理结构的转换。从系统开发的角度来看,结构特性设计和行为特性-设计是数据库应用系统所具有的两个特性。结构特性的设计,设计各级数据库模式(静态特性):行为特性的设计,改变实体及其特性,决定数据库系统的功能(动态特性)。

49.C解析:i=M1+M2=N*3+N*2=5*3+5*2=25。

50.C解析:本题涉及C语言基本的3个知识点:①C语言的源程序是由函数构成的,函数是其基本单位,每一个函数完成相对独立的功能,其中只能包括一个主函数;②C语言规定每个语句以分号结束,其书写格式是自由的,一条语句可以写在不同的行上,或者一行也可以写多条语句;③注释行虽然对程序的运行不起作用,但是它可以方便程序员阅读,提高程序的可读性和可移植性,所以书写注释行还是很有必要的。

51.A解析:题目中定义了一个指针变量r作为形参f()的函数。在主函数main()中定义了两个变量m和r,同时给m赋初值7,调用函数f(m,&r)并执行,函数f()通过指针r将最后的值返回。

52.D解析:本题是计算50之内的自然数相加之和,题中if语句括号中的条件表达式!(i%5)&&!(i%3)表明只有能同时被5和3整除的数才符合相加的条件,1~49之间满足这个条件的只有3个数,15,30,45,因为s的初始值为1,所以s=1+15+30+45=91。故正确答案为D)。

53.B

54.B解析:SEEK_END代表的是文件末尾,SEEK_SET代表的是文件的开始,SEEK_CUR代表的是文件当前位置。

55.C解析:本题在定义共用体的同时,定义了一个共用体型变量u1,共占两个字节,有两个成员n和c,两个成员的首地址是相同的。因此给u1.c赋一个A,其实就是给无符号整型成员u1.n的低字节赋一个A,输出u1.n的时候是以字符型的形式输出,只输出它的低地址的一个字节,因此为A。所以,C选项为所选。

56.A

57.D解析:本题中直接使用指针变量k,但在使用时要注意对k的指针运算。此外,一开始应知道*k的值为数组中的某一下标值,即*k=0,本函数的功能是找出数组中的最大元素的位置及最大元素的值。

58.A解析:两个实体之间的联系实际上是实体集间的函数关系,这种函数关系可以有下面几种,即一对一的联系、一对多(或多对一)的联系和多对多的联系;概念模型便于向各种模型转换。由于概念模型不依赖于具体的数据库管理系统,因此,容易向关系模型、网状模型和层次模型等各种模型转换。

59.D

60.B解析:选项A和C一望而知其错;对于表达式a=a+7=c+b(答案D),是先执行赋值表达式a+7=c+b,再把这个表达式的值赋给a,显然,表达式a+7=c+b非法,因为赋值表达式的左侧不能为常量或表达式。

61.C解析:本题考查逗号表达式。本题的返回值是a+7,a=2*3=6,a+7=13(注意:本题问的是a的值,而不是程序的输出值)。

62.D需求分析阶段的工作可以概括为:需求获取、需求分析、编写需求规格说明书、需求评审四个方面。所以选择D。

63.A执行fun(a)语句时,P指向的是字符串数组a的第一个字符串“Morning”,p自加1之后,p指向字符串数组a的第2个字符串“Afternoon”。

64.B从本题给出的计算公式我们可以看出,这个公式的作用是:无论变量x的值是大于零或小于零,都取其绝对值。知道公式的作用后,再分析选项。

在选项A中,当变量x的值小于0时,对其取绝对值操作,而当变量x的值大于0时,取其本身,与公式描述的内容完全一致。

在选项B中,首先对变量x进行取绝对值操作,将结果赋值给变量y,然后当x小于0时,将小于0的x重新赋值给变量y,使变量y中含有赋值,与公式描述的内容不一致。

在选项C中,如果变量x的值大于等于0,则将其值赋给变量y,否则,当x的值小于0时,取反再赋值给变量y,这也相当于取绝对值,能正确表示公式的内容。

在选项D中,与选项C所表述的意思完全一样,能正确表示公式的内容。

65.B满足表达式,(C>=2&&c<=6)的整型变量C的值是2,3,4,5,6。当变量C的值不为2,4,6时,其值只能为3或5,所以表达式C!=3和C!=5中至少有一个为真,即不论C为何值,表达式B)都为”真”。

66.D

67.B

68.A指针是用来存放地址的变量,用(类型名*指针变量名)的形式定义。赋值时应将某个变量地址即&x赋给指针变量,因此选择A。

69.D

70.A

71.C#define行为非C语句,所以没有“;”号,%的运算对象只能为整型,逗号运算符的优先级最低。

72.B

73.B本题中a>b的条件不满足,所以不执行逗号表达式a=b,b=c;的操作,而是执行c=a操作,即c的值勾10。

74.B

75.D

76.B连接运算也称0连接,是对两个关系进行运算,其意义是从两个关系的笛卡尔积中选择满足给定属性间一定条件的那些元组。本题关系R3为关系R1中B属性和关系R2中D属性相等连接而成。

77.A本题考查的是函数调用时的参数传递问题。程序在调用函数f时,传给函数f的参数只是结构变量c在栈中的一个拷贝,函数f所做所有操作只是针对这个数据拷贝进行的修改,这些都不会影响变量c的值。

78.C

79.A本题的考查点是switch语句。当用户键人字符时,会进入一个多分支选择语句,根据n的值,来确定下一步执行的选择语句;最后的结果应当为passwarn。本题需要注意的是,当case语句没有跟随break语句时,不会跳出switch,而是继续执行下一个case语句,直至遇到break语句。

80.D

81.

【解析】由主函数的调用可知,函数proc()没有返回值。因此,“proc(char*pstr[6])”应改为“voidproe(char*pstr[6])”。题目中要求按字符串由小到大的顺序进行排序,需要比较每一个字符串的大小,因此,“if(strcmp(*(pstr+i),pstr+j)>0)”应改为“if(strcmp(*(pstr+i),*(pstr+j))>O)”。顺序不对的2个字符串要互换其指针所指向的地址,赋值的两个变量其类型应该相同,因此,“*(pstr+i)=pstr+j;”应改为“*(pstr+i)=*(pstr+j);”。

82.voidproc(inttt[M][N],intpp[N])inti,j,max;for(i=0;i<M;i++)//i控制行的下标{max=tt[i][c];//max存放每行中最大的数for(j=0;j<N;j++)if(tt[i][j]>max)max=tt[i][j];pp[i]=max;//把大的数放到PP数组中,经过i来控制pp数组的下标}}【解析】按照题目中要求,求出二维数组每行中最大元素,并依次放入PP所指的一维数组中。首先比较二维数组中每一行的元素,找出每一行中的最大元素,放入一维数组pp中,返回到主函数当中。2021-2022年广东省惠州市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.

2.有以下程序

#include<stdio.h>

main()

{ini,j,m=1;

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

{for(j=3;j>0;j--)

{if(i*j)>3)break;

m=i*j;

}

}

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

程序运行后的输出结果是A.m=6B.m=2C.m=4D.m=5

3.在"inta[][3]={{1},{3,2},{4,5,6},{0}};"中,a[2][2]的值是()。

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

4.有以下程序:#include<stdio.h>main(){charch=‘D’;while(ch>‘A’){ch--;putchar(ch);if(ch==‘A’)break;putchar(ch+1);}}程序运行后的输出结果是()。

A.CBB.BCAC.CCBBD.CDBCA

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

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

6.有下列程序:

程序执行后的输出结果是()。A.3,7,3,7B.7,3,7,3C.3,7,7,3D.7,3,3,7

7.

8.需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是()。A.单链表B.静态链表C.线性链表D.顺序存储结构

9.有下列程序:intfunl(doublea){returna*=a;)intfun2(doublex,doubley){doublea=0,b=0;a=funl(x);b=funl(y);return(int)(a+h);}main{doublew;w=fun2(1.1,2.0),……)程序执行后变量w中的值是()。A.5.21B.5C.5.0D.0.0

10.有以下程序:

main()

{intX,i;

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

{x=i;

if(X%2=O)

if(x%3=O)

if(X%7=0)

printf("%d,i)";

}

}

输出结果是()。

A.28

B.27

C.42

D.41

11.在一个C语言源文件中定义的全局变量,其作用域为()。

A.由具体定义位置和extern说明来决定范围B.所在程序的全部范围C.所在函数的全部范围D.所在文件的全部范围

12.数据管理技术发展的三个阶段中,()没有专门的软件对数据进行管理。

I.人工管理阶段

II.文件系统阶段

Ⅲ.数据库阶段A.A.仅IB.仅ⅢC.I和IID.II和Ⅲ

13.判断有向图是否存在回路,利用()方法最佳。

A.求关键路径B.求最短路径C.拓扑排序D.广度优先遍历

14.两个或两个以上模块之间关联的紧密程度称为()。

A.耦合度

B.内聚度

C.复杂度

D.数据传输特性

15.数据在计算机存储器内表示时,如果元素在存储器中的相对位置能反映数据元素之间的逻辑关系,则称这种存储结构为()。

A.存储结构B.逻辑结构C.顺序存储结构D.链式存储结构

16.现在有16枚外形相同的硬币,其中一枚是假币,且已知假币比真币重量轻。先给定一架没有砝码的天平,问至少需要多少次称量才能找到这枚假币?

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

17.以下关于注释的叙述中错误的是()。

A.注释的边界符号“/”和“*”之间不允许加入空格

B.C语言允许注释出现在程序中任意合适的地方

C.注释的内容仅用于阅读,对程序的运行不起作用

D.注释的边界符号“/*”和“*/”必须成对出现且可以嵌套

18.以下叙述中不正确的是

A.预处理命令行都必须以#号开始

B.在程序中凡是以#号开始的语句行都是预处理命令行

C.宏替换不占用运行时间,只占编译时间

D.在以下定义是正确的:#definePI3.1415926;

19.对包含N个元素散列表进行查找,平均查找长度()。

A.为OB.为O(N)C.不直接依赖ND.上述三者都不是

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

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

main()

{inti;

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

{if(i>4)

{printf("%d\n",i);

break;}

printf("%d\n",i++);}}

22.数据结构分为线性结构和非线性结构,带链的队列属于[]。

23.下面程序的功能是输出数组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);}

24.以下程序由终端键盘输入一个文件名,然后把从终端键盘输入的字符依次存放到该文件中,用#作为结束输入的标志,请填空。

#include<stdio.h>

main()

{FILE*fp;

charch,fname[10];

printf("Inputthenam\n");

gets(fname);

if((fp=【】==NULL)

{printf("Cannotopen\n");exit(0);}

printf("Enterdata\n");

while(ch=getchar()!='#')

fputc(【】,fp);

fclose(fp);

}

25.长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为【】。

26.当线性表的操作无插入和删除时,采用【】结构为好。

27.下列程序的输出结果是16.00,请填空。

#include<stdio.h>

main()

{inta=9,b=2;

floatx=【】,y=1.1,z;

z=a/2+b*x/y+1/2;

printf("%5.2f\n",z);

}

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

#include<stdio.h>

longfib(intg)

{switch(g)

{case0:return0;

case1:

case2:return1;}

return(fib(g-1)+fib(g-2));}

main()

{longk;

k=fib(5);

printf("k=%5ld\n",k);}

29.数据结构分为逻辑结构与存储结构,线性链表属于【】。

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

#include<stdio.h>

main()

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

p=a;p++;

printf("%d",*p);

}

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

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

main()

{

charstr1[]="Howdoyoudo",*pl=str1;

strcpy(str1+strlen(str1)/2,"esshe");

intf("%s\n",p1);

33.下面程序

main()

{inti,j,m,n;

i=5;

j=10;

m=++i;

n=j++;

printf("%d,%d,%d,%d",i,j,m,n);

}

运行后,i,j,m,n的值分别是_______。

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

main()

{ints=0,i=1;

while(s<=10)

{s=s+i*i;

i++;

}

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

}

35.若有以下程序:

main()

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

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

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

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

}

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

36.软件定义时期主要包括______和需求分析两个阶段。

37.阅读下面语句,则执行后的输出结果为【】。

#include"stdio.h"

main()

{chara,b;

for(a='0',b='9';a<b;a++,b--)

printf("%c%c",a,b);

printf("\n");}

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

39.函数voidfun(float*sn,intn)的功能是:根据以下公式计算s,计算结果通过形参指针sn传回;n通过形参传入,n的值大于或等于0。请填空。

voidfun(float*sn,intn)

{floats=0.0,w,f=-1.0;

inti;

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

{f=【】*f;

w=f/(2*i+1);

s+=w;

}

【】=s;

}

40.一张3.5英寸软盘大约能存储140万个ASCⅡ字符,若存放汉字大约能存放【】个。

三、1.选择题(20题)41.2个指针变量不可以______。

A.相加B.比较C.相减D.指向同一地址

42.有下列二叉树,

对此二叉树前序遍历的结果为()。

A.ACFHIBEDGB.ABCDEFGHIC.ABDEGCFHID.ABCDEFHGI

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

44.已知i、j、k为血型变量,若要从键盘输入2、3、4<CR>,使i、j、k的值分别为2、3、4,下列正确的输入语句是()。

A.scanf(“%3d,%3d,%3d”,&i,&j,&k);

B.scanf(“%d,%d,%d”,&i,&J,&k);

C.scanf(“%d%d%d”,&i,&j,&k);

D.scanf(“i=%d,%d,k=%d”,&i,&j,&k);

45.已定义以下函数

fun(int*p)

{return*p;}

该函数的返回值是()

A.不确定的值

B.形参p中存放的值

C.形参p所指存储单元中的值

D.形参p的地址值

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

main()

{inta,i;a=0;

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

{switch(i)

{case0:

case3:a+=2;

case1:

case2:a+=3;

default:a+=5;}

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

A.31B.13C.10D.20

47.以下正确的程序段是

A.charstr1[]="12345",str2[]="abcdef";

B.charstr[10],*st="abcde";strcat(str,st);

C.charstr[10]=""。*st="abcde";strcat(str,st);

D.char*st1="12345",*st2="abcde";strcat(st1,st2);

48.数据库设计包括两个方面的设计内容,它们是()

A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计

49.程序中头文件type1.h的内容是()。#defineN5#defineM1N*3程序如下:#define"type1.h"#defineM2N*2main(){inti;i=M1+M2;printf("%d\n",i);}程序编译后运行的输出结果是()。

A.10B.20C.25D.30

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

A.C程序是以函数为基本单位的,整个程序由函数组成

B.C语言程序的一条语句可以写在不同的行上

C.C程序的注释行对程序的运行功能不起任何作用,所以注释应该尽可能少写

D.C程序的每个语句都以分号结束

51.有以下程序:voidf(intn,int*r){intr1=0;if(n%3==0)r1=n/3;elseif(n%5==0)r1=n/5;elsef(--n,&r1);*r=r1;}main(){intm=7,r;f(m,&r);printf("%d\n",r);}程序运行后的输出结果是______。

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

52.有以下程序:main(){inti,s=1;for(i=1;i<50;i++)if(!(i%5)&&!(i%3))s+=i;printf("%d\n",s);}程序的输出结果是

A.409B.277C.1D.91

53.设q1和q2是指向一个int型一维数组的指针变最,k为float型变量,下列小能正确执行的语句是()。

A.k=*q1*(*q2);B.q1=k;C.q1=q2;D.k=*q1+*q2;

54.函数fseek(pf,0L,SEEK_END)中的SEEK_END代表的是()。

A.文件开始B.文件末尾C.文件当前位置D.以上都不对

55.有以下程序:main(){union{unsignedintn;unsignedcharc;}u1;u1.c='A';printf("%c\n",u1.n);}执行后输出结果是()。

A.产生语法错误B.随机值C.AD.65

56.已知字母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.不正确定的值

57.下列程序是用来判断数组中特定元素的位置所在。如果输入如下整数:876675896101301401980431451777#include<conio.h>#include<stdio.h>intfun(int*s,intt,int*k){inti;*k=0;for(i=0;i<t;i++)if(s[*k]<s[i])*k=i;returns[*k];}main(){inta[10]={876,675,896,101,301,401,980,431,45l,777},k;clrscr();fun(a,10,&k);printf("%d,%d\n",k,a[k]);}则输出结果为

A.7,431B.6C.980D.6,980

58.下列叙述中,正确的是

A.用E-R图能够表示实体集间一对一的联系、一对多的联系和多对多的联系

B.用E-R图只能表示实体集之间一对一的联系

C.用E-R图只能表示实体集之间一对多的联系

D.用E-R图表示的概念数据模型只能转换为关系数据模型

59.执行以下语句后的输出结果是______。intx=10,y=3,z;printf("%d\n",z=(x%y,x/y));

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

60.若变量已正确定义并赋值,下面符合C语言的表达式是_____。

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

四、选择题(20题)61.

执行下列程序中的输出语句后,a的值是()。

main

{inta;

printf("%d\n",(a=2*3,a*5,a+7));

}

A.17B.37C.6D.13

62.在软件开发中,需求分析阶段产生的主要文档是()。A.软件集成测试计划B.软件详细设计说明书C.用户手册D.软件需求规格说明书

63.有以下程序

#include<stdio.h>

voidfun(char**p)

{++p;printf("%s",*p);}

main

{char*a[]={"Morning","Afternoon","Evening","Night");

fun(a);

}

程序的运行结果是()。A.A.AfternoonB.fternoonC.MorningD.orning

64.有以下计算公式:

若程序前面已在命令行中包含math.h文件,不能够正确计算上述公式的程序段是

([answer]

65.当变量c的值不为2、4、6时,值也为”真”的表达式是()。

A.

B.

C.

D.

66.

67.

68.设已有定义:floatx;则以下对指针变量p进行定义且赋初值的语句中正确的是()。A.float*p=&x;B.int*p-(float)x;C.floatp=&x;D.float*p=1024;

69.

70.

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

A)C程序中的#include和#define行均是C语句,只是语法不同

B)除赋值运算符外,逗号运算符的优先级最低

C)C程序中,j++;是赋值语句

D)C程序中,+、-、*、/、%号是算数运算符,可用于整型和实型数的运算

72.

73.有以下程序段:

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

A.a=10b=50C=30

B.a=10b=50c=10

C.a=10b=30c=10

D.a=50b=30c:50

74.

75.

76.如图所示,两个关系R1和R2:

则由关系R1和R2得到关系R3的操作是()。

A.笛卡尔积B.连接C.交D.除

77.有以下程序:

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

A.Zhao,111,85,90,Qian,f,95,92

B.Zhao,m,85,90,Zha0,m,85,90

C.Qian,f,95,92,Qian,f,95,92

D.Qian,f,95,92,Zha0,m,85,90

78.

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

A.passwarnB.passerrorC.goodpasswarnD.pass

80.

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:用冒泡法对6个字符串按由小到大的顺序进行排序。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.请编一个函数voidproc(intttEM][N],intpp[N]),tt指向一个M行N列的二维数组,求出二维数组每行中最大元素,并依次放入pp所指的一维数组中。二维数组中的数已在主函数中给出。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。试题程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>#defineM3#defineN4voidproc(intttrM3rN]。intpp[N]){ }voidmain{intstr[M][N]={{34,56,84,78},{23,84,93,12),{28,38,39,93}};intp[N],i,j,k;system("CLS");printf("Theriginaldatais:\n");for(i=0;i<M;i++){for(j=0;j<N;j++)printf("%6d",str[i][j]);printf("\n");}proc(str,p);printf("\nTheresultis:\n");for(k=0:k<M;k++)printf("%4d",p[k]);printf("n");}

参考答案

1.B

2.A

3.C

4.Dputchar函数的功能是输出一个字符,由whlie判断条件和ch初始值可知,只要“ch≠‘A’”,执行两次putchar函数,否则跳出循环。第1次输出“CD”,第2次输出“BC”,第3次输出“A”后跳出循环。故本题答案为D选项。

5.A

6.C程序定义两个整型变量i、j,初值为3,7。另外,定义两个整型指针变量p、q,其中p指向i,q指向j。将i、j的地址传给swap函数。在swap函数中,a指向i,b指向j。通过临时变量t交换a和b指向的值,此时a指向的实参i、b指向的实参j的值发生了交换。即a指向i的值为7,b指向j的值为3;再通过临时变量tp交换a和b的指针值,使得a指向j,b指向i。所以swap中输出a指向的值为3(j),b指向的值为7(i);swap函数调用结束后,输出p和q指向的值,即i、j的值为7、3。所以程序输出:3,7,7,3。本题答案为C选项。

7.D

8.B

9.C子函数fun1(doublea)的功能是返回a的平方值的整数部分。子函数fun2(doublex,doubley)的功能是返回X的平方值的整数部分与Y的平方值的整数部分的和。又因为题中变量w的定义为double型,函数fun(2)的定义为int型,按照各类数值型数据间的混合运算,整型数据被转换为实型数据。所以双精度型变量w的值为5.0。

10.C\n只有当3个if条件同时成立,即能够同时被2、3、7整除时,才输出i的值,而从0到50能够同时被2、3、7整除的数只有42,故选择c选巩。

\n

11.A全局变量的作用域是从声明处到文件的结束。故本题答案为A选项。

12.A数据管理技术发展的兰个阶段中,只有人工管理阶段,没有操作系统,没有管理数据的软件,数据处理方式是批处理。在文件系统阶段,操作系统中已经有了专门数据管理软件,一般称为文件系统。在数据库系统阶段,出现了统一管理数据的专门软件系统,即数据库管理系统。

13.C

14.A解析:本题考核模块独立性的评价。评价模块独立性的主要标准有两个;一是模块之间的耦合,它表明两个模块之间互相独立的程度,也可以说是两个或两个以上模块之间关联的紧密程度(所以,本题的正确答案为选项A);二是模块内部之间的关系是否紧密,称为内聚。一般来说,要求模块之间的耦合尽可能地弱,即模块尽可能独立,而要求模块的内聚程度尽量地高。

15.C

16.A

17.D在编写程序时可以在程序中加入注释。在添加注释时,注释内容必须放在符号“/*”和“*/”之间,“/*”和“*/”必须成对出现,“/*”与“*/”之间不可以有空格,选项A正确;注释可以用英文,可以用中文,可以出现在程序中任意合适的地方,选项B正确;注释部分只适用于阅读,对程序的运行不起作用,选项C正确;使用“/*”和“*/”的注释之间不可再嵌套“/*”和“*/”,选项D错误。故本题答案为D选项。

18.D解析:带参数的宏定义如下:#define宏名(参数)字符串。本题中,宏定义的作用是指定用标识符PI来代替“3.1415926”这个字符串,但宏定义不是C语句,不必在行末加分号。

19.C

20.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次。

21.1351\r\n3\r\n5解析:本题考查了for循环语句的使用,break语句用在本题中是结束for循环直接跳出循环体外。当i=1时,因为if语句条件不满足,所以直接执行printf('%d\\n',i++);输出1,同时i自加1;执行第二次for循环时,i=3;同样的if语句条件不满足,所以直接执行printf('%d\\n',i++);输出3,同时i自加1;执行第三次for循环时,i=5,if语句条件满足,所以执行printf('%d\\n',i),输出5,然后break语句跳出了for循环。

22.线性结构线性结构解析:与栈类似,队列也是线性表,也町以采用链式存储结构。

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

温馨提示

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

评论

0/150

提交评论