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

下载本文档

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

文档简介

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

一、单选题(20题)1.以下选项中非法的表达式是()。

A.a+1=a+1

B.a=b==0

C.(Char.(100+100.

D.7<=X<60

2.有以下程序:structst{intx;int*y;}*pt;inta[]={1,2},b[]={3,4};structstc[2]={10,a,20,b};pt=c;以下选项中表达式值为11的是()。

A.++p->xB.pt->xC.*pt->yD.(pt++)->x

3.

4.下述函数功能是______。intfun(char*x){char*y=x;while(*y++);returny-x-1;}

A.求字符串的长度B.求字符串存放的位置C.比较两个字符串的大小D.将字符串x连接到字符串y后面

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

A.13579B.48579C.48549D.48999

6.若有序表的关键字序列为(b,c,d,e,f,g,q,r,s,t),则在二分查找关键字b的过程中,先后进行的关键字依次为()

A.f,c,BB.f,d,BC.g,c,BD.g,d,B

7.若有以下程序段

intm=0xabc,n=0xabc;

m-=n;

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

执行后的输出结果是A.A.0X0

B.0x0

C.0

D.0xABC

8.关于结构化程序设计原则和方法的描述错误的是()。

A.选用的结构只准许有一个入口和一个出口

B.复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现

C.不允许使用GOTO语句

D.语言中若没有控制结构,应该采用前后一致的方法来模拟

9.设变量已正确定义并赋值,下列表达式中正确的是()。

A.x=y+z+5,++yB.int(15.8%5)C.x=y*5=x+zD.x=25%5.0

10.设R是一个二元关系,S是一个三元关系,则下列运算中正确的是()。

A.R-SB.R×SC.R∩SD.R∪S

11.设变量n为f1oat类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五人运算的表达式是()。

A.n=(n*100+0.5)/100.0

B.m=n*100+0.5,n=m/100.0

C.n=n*100+0.5/100.0

D.n=(n/100+0.5)*100.0

12.

13.用二进制来编码字符串“abcdabaa”,需要能够根据编码,解码回原来的字符串,最少需要()长的二进制字符串

A.12B.14C.18D.24

14.关键路径是事件结点网络中()。

A.从源点到汇点的最长路径B.从源点到汇点的最短路径C.最长回路D.最短回路

15.

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

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

17.设有定义的语句:“charc1=92,c2=92;”,则以下表达式中的值为零的是()。

A.c1^c2B.c1&c2C.~c2D.c1|c2

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

A.C语言编写的函数源程序,其文件名后缀可以是C

B.C语言编写的函数都可以作为一个独立的源程序文件

C.C语言编写的每个函数都可以进行独立的编译并执行

D.一个C语言程序只能有一个主函数

19.数字字符0的ASCII值为48,运行下列程序的输出结果是()。main(){chara='1',b='2';printf("%c,",b++);printf("%d\n",b-A);}

A.3,2B.50,2C.2,2D.2,50

20.

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

main()

{charCl,c2;

for(c1='0''c2='9';c1<c2;c1++,c2--)printf("%c%c",c1,c2);

printf("\n");

}

22.以下函数的功能是计算s=1+1/21+1/3!+…+1/n!,请填空。

doublefun(intn)

{doubles=0.0,fac=1.0;

inti,k=1;

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

{【】;

fac=fac/k;

s=s+fac;

}

}

23.某二叉树中度为2的结点有18个,则该二叉树中有【】个叶子结点。

24.下面程序执行后k的值为【】。

inta=1,b=2,c=3,d=4,k;

k=a>b?a:c>d?c:d

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

#defineMAX(x,y)(x)>(y)?(x):(y)

main()

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

t=MAX(a+b,c+d)*10;

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

}

26.软件结构是以【】为基础而组成的一种控制层次结构。

27.在面向对象程序设计中,从外面看只能看到对象有外部特征,而不知道也无须知道数据的具体结构以及实现操作的算法,这称为对象的______。

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

main()

{

intarr[]={30,25,20,15,10,5},*p=arr;

p++;

printf("%d\n",*(p+3));

}

29.性表的多种存储结构中,最简单的方法是【】。

30.若有说明chars1[]="Thatgirl",s2[]="isbeautiful";则使用函数strcmp(s1,s2)后,结果是______。

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

structaa

{intdata;

【】}node;

32.软件工程研究的内容主要包括:【】技术和软件工程管理。

33.语句“int(*ptr)();”的含义是______是指向函数的指针,该函数返回一个int型数据。

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

#defineMAX(x,y)(x)>(y)?(x):(y)

main()

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

t=MAX(a+b,e+d)*10;

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

}

35.下面程序的输出结果是()。

main()

{inti=0,a=0;

while(i<20)

{for(;;)

{if((i%10)==0)break;

elsei--;}

i+=11;

a+=i;

}

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

}

36.设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部【】。要求形参名为b。

main()

{double[10][22];

intn;

......

fun(s);

}

37.以下程序通过函数SunFun求。这里f(x)=x2+l,由F函数实现。请填空。

main()

{

printf("Thesum=%d\n",SunFun(10));

}

SunFun(intn)

{

intx,s=0;

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

S+=F(______);

returns;

}

F(intx)

{

return(______);

}

38.常用的软件结构设计工具是结构图(SC),也称程序结构图。其中,用矩形表示______,用带空心圆的箭头表示传递的是数据。

39.自动批处理文件名必须是【】。

40.下面程序的运行结果是______。

intf(inta[],intn)

{if(n>1)returna[0]+f(&a[1],n-1);

elsereturna[0];

{

main()

{intaa[3]={1,2.3},s;

s=f(&aa[0],3);

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

}

三、1.选择题(20题)41.以下选项中可作为C语言合法常量的是

A.-80B.-080C.-8e1.0D.-80.0e

42.字符串"\\"ABCDEF\"\\”的长度是()。

A.11B.10C.5D.3

43.为了使模块尽可能独立,要求()。

A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强

B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱

C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱

D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强

44.若二维数组a有m列,则在a[i][j]前的元素个数为()。

A.i*m+j-1B.i*m+jC.j*m+1D.i*m+i+1

45.有定义语句:intb;charc[10];,则正确的输入语句是

A.scanf("%d%s",&b,&c);

B.scanf("%d%s",&b,c);

C.scanf("%d%s",b,c);

D.scanf("%d%s",b,&c);

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

A.定义函数时,形参的类型说明可以放在函数体内

B.return后边的值不能为表达式

C.如果函数值的类型与返回值类型不一致,以函数值类型为准

D.如果彩参与实参类型不一致,以实参类型为准

47.有如下程序intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(func(x,y),z);printf("%d\n",r);}该程序的输出结果是______。

A.12B.13C.14D.15

48.下述关于数据库系统的叙述中正确的是______。

A.数据库系统减少了数据冗余

B.数据库系统避免了一切冗余

C.数据库系统中数据的一致性是指数据类型的一致

D.数据库系统比文件系统能管理更多的数据

49.下列的程序用来输出两个字符串前7个字符中对应相等的字符及其位置号,程序空白处应该填写的是()。#include<stdio.h>main(){Charsl[]="Chinese",s2[]="japnese";inti;for(i=0;s1[i]!='\0'&&s2[i]!='\0';i++)if(s1[i]=s2[i]&&i<7)____________________;}

A.putchar(s2[i];putchar(i)

B.puts(s1[i],i)

C.printf("%c%d\n",s2[i],i)

D.printf("%c",s1[i]);printf("%d\n",i)

50.有以下程序,其中函数f的功能是将多个字符串按字典顺序排序:#include<string.h>voidf(char*p[],intn){char*t;inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strcmp(p[i],p[j])>0){t=p[i];p[i]=p[j];p[j]=t;}}main(){char*p[5]={"abc"

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

51.有以下程序

#include<stdio.h>

main0

{inty=9;

for(;y>0;y--)

if(y%3==0)printf("%d",--y);

}

程序的运行结果是

A.741B.963C.852D.875421

52.在数据库管理系统提供的数据语言中,负责数据的查询及增、删、改等操作的是

A.数据定义语言B.数据转换语言C.数据操纵语言D.数据控制语言

53.下面四个选项中,均是不合法的用户标识符的选项是()。

A.AP_0doB.floatla0_AC.b-agotointD._123tempint

54.阅读下述程序段:y=-1;if(x!=0)if(x>0)y=1;elsey=0;该程序段所描述的数学关系是()

A.

B.

C.

D.

55.有以下程序:#include<string.h>main(){charstr[][20]={"Hello","Beijing"}*p=str;printf("%\n",strlen(p+20));}程序运行后的输出结果是

A.0B.5C.7D.20

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

#include<stdio.h>

main()

{inta=15,b=21,m=0;

switch(a%3)

{case0:m++;break;

case1:m++;

switch(b%2)

{default:m++;

case0:m++;break;}}

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

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

57.有以下程序:Voidf(inta[],ihti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;f(a,i+1,i-1);}}main(){inti,aa[5]={1,2,3,4,5};f(aa,0,4);for(i=0;i<5;i++)printf("%d",aa[i]);printf("\n");}执行后输出结果是

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

58.若有程序段:intc1=1,c2=2,c3;c3=1.0/c2*cl;则执行后,c3中的值是()

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

59.数据库的故障恢复一般是由()

A.数据流图完成的B.数据字典完成的C.DBA完成的D.PAD图完成的

60.下列关于“数据库系统(DBS)”的叙述中,正确的一条是______。

A.DBS是指在计算机系统中引入数据库后的系统构成

B.DBS是帮助用户建立、使用和管理数据库的一种计算机软件

C.DBS是用户建立的若干数据库文件的集合

D.DBS是一种新颖的关系数据库管理系统

四、选择题(20题)61.(70)需求分析阶段的任务是确定()

A.软件开发方法

B.软件开发工具

C.软件开发费用

D.软件系统功能

62.

63.下面程序的输出结果是()。

#inclde<stdio.h>

#defineSUB(X,Y)(X)*Y

main()

{inta=3,b=4;

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

}

A.12B.15C.16D.20

64.设“intx=2,y=1;”,则表达式(!x||Y--)的值是()。

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

65.以下叙述中正确的是()。A.在c语言中,预处理命令行都以‘‘#”开头

B.预处理命令必须位于c源程序的起始位置

C.#include必须放在c程序的开头

D.C语言的预处理不能实现宏定义和条件编译的功能

66.在面向对象方法中,不属于“对象’’基本特点的是()。A.一致性B.分类性C.多态性D.标识唯一性

67.有如下程序段

#include"stdio.h"

main()

{intk[10];

intj;

for(j=0;j<10;j++)

scanf("%d",&k[j]);

for(j=9;j>=0;j--)

printf("%d",k[j]);}

则程序段实现的功能是

A.输入10个数据的顺序输入并输出

B.输入10个数据的逆序存放

C.输入10个数据的逆序输出

D.以上叙述均错误

68.

69.

70.

71.有以下程序:

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

A.ABCDDEFEDBD

B.abcDDfefDbD

C.abcAAfefAbA

D.Abcddfefdbd

72.

73.

74.设变量X和y均已正确定义并赋值。以下if语句中,在编译时将产生错误信息的是()。A.if(x++);

B.if(x>y&&y!=0);

C.if(x>y)x--elsey++;

D.if(y<0){;}elsex++;

75.下列程序的输出结果是()。voidfun(int*X,inty){printf("%d%d",*x,*y);*x=3;*y=1;}main{intx=1,y=2;fun(&y,&x);printf("%d%d",x,y);}A.2143B.1212C.1234D.2112

76.有以下程序:

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

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

77.下列有关数据库的描述,正确的是______。

A.数据库是一个DBF文件B.数据库是一个关系C.数据库是一个结构化的数据集合D.数据库是一组文件

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

A.可以给指针变量赋一个整数作为地址值

B.函数可以返回地址值

C.改变函数形参的值,不会改变对应实参的值

D.当在程序的开头包含头文件stdi0.h时,可以给指针变量赋NULL、、、

79.有下列程序:

main()

{inti,j,x=0;

for(i=0,i<2;i++)

{x++;

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

{if(j%2)continue;

x++:

}

x++:

}

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

}

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

A.x=4B.x=8C.x=6D.x=12

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

A.改变函数形参的值,不会改变对应实参的值

B.函数可以返回地址值

C.可以给指针变量赋一个整数作为地址值

D.当在程序的开头包含文件stdi0.h时,可以给指针变量赋NULL

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:从字符串str中,删除所有大写字母'F'。

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

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

试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。程序中将m个人的成绩存放在score数组中,请编写函数fun(),它的功能是将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。例如,当score数组中的数据为10、20、30、40、50、60、70、80、90时,函数返回的人数应该是4,below中的数据应为10、20、30、40。注意:部分源程序在文件prog1.c中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:

参考答案

1.A赋值运算符的左边只能是变量,而不能是常量或表达式。

2.A题目中定义了一个结构体数组c并初始化,指针pt指向c的第1个元素。则“++pt->x”为11,“pt->x”为10,“*pt->y”为1,“(pt++)->x”为20。故本题答案为A选项。

3.B

4.A解析:在函数体内定义一字符型指针并指向形参,然后遍历其中各字符直到NULL,最后返回字符串首尾地址的差值,即字符串的长度。

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

6.A

7.C本题考查C语言中的数据输出格式。

题目中定义了两个整型变量m、n,对这两个变量赋值,输入的数值为十六进制整数,并且有m=n。进行m-n运算后,将减法所得到的值赋给m,并将m值输出。其中printf的格式字符选用的格式字符为x,即以十六进制形式输出整数。注意,0x是表示该数为十六进制的标志,输出数据时,数据前面不会自动加上进制的标志。

8.C结构化程序设计的原则和方法之一是限制使用GOT0语句,但不是绝对不允许使用GOT0语句。其他三项为结构化程序设计的原则。

9.A运算符“%”的左右两个操作数均应为整数,所以B选项与D选项错误。C选项中不能将“x+z”的值赋给表达式“y*5”,所以C选项错误。故本题答案为A选项。

10.BB。【解析】关系的交(∩)、并(∪)和差(-)运算要求两个关系是同元的,显然作为二元的R和三元的S只能做笛卡儿积运算。

11.B

12.A

13.B

14.A

15.D

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

17.A当值相同时按位异或,则为0,按位或与按位与时仍不变,负数也为非0。

18.C函数是指预先定义功能块,其目的是提高程序的重用性。在C语言中函数的源程序,后缀名可以为C。C语言所编写的函数都可以是一个独立的源文件。一个C语言程序只能有一个主函数。C语言中编写的函数不是每个都可以独立地编译和执行的,因为C语言中程序的开始为主函数,如果程序中没有主函数则无法进行编译和执行。

19.C解析:自增运算符“++”,出现在变量之前,表示先使变量的值加1,再使用变量的值进行运算;出现在变量之后,表示先使用变量的值进行运算,冉使变量的值加1。例如题中的“b++”,题中第一条语句先输出字符b的值,此时变量b='2',因此输出值为2;再使b的值加1,b='3',因此第二条语句输出:b-a='3'-'1'=2。

20.D

21.9.18274e+0089.18274e+008解析:本题考查的循环条件是c1<c2,当c1>=c2时,退出循环。所以,第一次循环输出09,第二次循环输出18,如此循环直到输出45,之后c1=5,c2=4,不满足循环条件,退出循环。

22.k=k*ik=k*i解析:本题中遗过for循环求s表达式中每一项的和,表达式“fac=fac/k;”求的是每—项的值,所以k的值应为n!,在求n!的时候,可以用上次循环阶乘的值乘i,就可以直接得此次n!,故本题填k=k*i。

23.1919解析:根据二叉树的性质:在任意一棵二叉树中,度为。的结点(即叶子结点)总是比度为2的结点多一个。本题中度为2的结点数为18,故叶子结点数为18+1=19个。

24.44解析:本题首先判断a>b的真假,结果是1>2为假,所以表达式“a>b?a:c>d?c:d”的值为子表达式“c>d?c:d”的值。再判断c>d的真假,结果是3>4为假,所以最终k被赋的值为d的值,故应该填4。

25.77解析:在C语言中,宏定义是直接替换的,所以在刘表达式MAX(a+b,c+d)*10进行替换后,表达式变为(a+b)>(c+d)?(a+b):(c+d)*10。在这个条件表达式中,(a+b)>(c+d)为真,所以用(a+b)的值作为整个表达式的值(否则用(c+d)*10的值作为整个表达式的值),而(a+b)的值为7。所以整个表达式的值为7。

26.模块模块

27.封装性封装性解析:对象具有下列5个基本特点:①标识惟一性;②分类性:③多态性;④封装性;⑤模块独立性好。其中,封装性是指从外面看只能看到对象的外部特征,对象的内部特征即处理能力的实行和内部状态,对外是不可见的,对象的内部状态只能由其自身改变。

28.1010解析:整型指针最初被赋的值是数组arr的头指针,即指向数组的第一个元素30,p++后,指针指向数组的下一个元素,即*p=arr[1]=25,在执行*(p+3)时,则相当于a[1+3],即10。因此,输出应为100。

29.顺序存储顺序存储

30.-1-1解析:strcmp(s1,s2)函数的作用是:对字符数组s2和字符数组s1进行比较。如果s1<s2,则返回负数;如果s1==s2,则返回0;如果s1>s2,则返回正数。

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

32.软件开发

33.ptrptr解析:本题考查函数指针的概念。函数指针的定义格式是:类型标识符(*指针变量名)()。注:“类型标识符”为函数返回值的类型。

34.77解析:在C语言中,宏定义是直接替换的,所以在对表达式MAX(a+b,c+d)*l0进行替换后,表达式变为(a+b)>(c+d)?(a+b):(c+d)*10。在这个条件表达式中,(a+b)>(c+d)为真,所以用(a+b)的值作为整个表达式的值(否则用(c+9d)*10)的值作为整个表达式的值),而(a+b)的值为7。所以整个表达式的值为7。

35.3232解析:while(表达式)的功能是:首先计算表达式的值.若为真,则执行循环体语句,执行完毕,再计算表达式的值.若仍为真,则重复执行循环体语句,直到表达式的值为假,结束while语句的执行,继续执行while语句后面的语句;i=0时满足循环条件,也满足if的条件,执行语句得i=11,a=11,第2次循环不满足if的条件,执行i--,i=10,执行i+=11;a+=i后,得i=21,a=32,不满足i<20,循环结束。

36.voidfun(doubleb[10][22])voidfun(doubleb[10][22])解析:本题答案:voidfun(doubleb[10][22])。

37.xX*X+1或1+x*xx\r\nX*X+1或1+x*x解析:题目中要求从x=0开始将f(x)的值累加起来,直到x=10。在SunFun()函数中用了一个for循环,每循环一次将f(x)累加到s中,所以在本题的第一个空格处我们应该填x,,然后x+1,共循环10次。F()函数的功能应该是求数学表达式f(x)得值,所以其返回值应该为x*x+1。

38.模块模块解析:矩形表示的是模块,箭头表示的是模块间的调用关系。用带实心圆的箭头表示传递的是控制信息,用带空心圆的箭头表示传递的是数据。

39.AUTOEXEC.BAT

40.66解析:经过分析将递归函数写成其数学表达式如下:

f(&a,n)=a[0]+f(&a[1],n-1)n>1

f(&a,n)=a[0]n=1

本题中定义了一个长度为3的数组aa并初始化。接着调用递归函数f,由上面的数学表达式以计算其返回值s=1+2+3=6,所以空格处应该填6。

41.A解析:C语言的常量分为整型常量、实型常量和字符型常量。本题中包含整型常量和实型常量。选项B)以0打头,应该属于八进制整数,而八进制整数只能用数字0~7表示,所以选项B)不合法;选项C)和D)从形式上看属于实型常量,但对于指数形式的实型常量,e(或E)之前必须有数字,且e后面的指数必须为整数,所以选项C)和D)都不合法;选项A)属于实型常量中正确的十进制小数形式。

42.B解析:本题涉及字符串的两个最基本的概念。①字符串的长度是指字符串中字符的个数,但不包含字符串结束符;②以反斜线“\\”开头的特殊字符序列,意思是把反斜线后面的字符序列转换成特定的含义,而不是原来的含义,不包含在字符串长度之内,“\\”连同后面的字符为一个长度。

43.B解析:模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。本题答案为B。

44.B解析:二维数组的元素可以看成是按矩阵形式存放的,总是先存放第一行的元素,再存放第二行的元素。数组第一维的下标是i,说明它前面还有i行,有i*m个元素,数组第二维的下标是j,说明它前面还有j列,有j个元素,所以共有i*m+j个元素。

45.B解析:scanf函数的第一个参数是格式控制字符串,该字符串中所出现的格式控制符必须与scanf函数的笫二个及其后面的参数一一对应.本题中四个选项的格式控制字符串都是'%d%s',其中包括两个格式控制符%d和%s,它们分别表示输入一个十进制整数和输入一个字符串,其对应的参数应该分别为一个整型变量的地址和一个字符型数组的首地址。变量的地址可以通过对变量做取地址(&)运算来得到,而宇符型数组的首地址则可以直接通过数组名来得到。所以,4个选项中选项B符合题意。

46.C解析:定义函数时,形参的类型说明放在形参表列内说明,或放在函数定义的第二行,函数体花括号“{”之前,所以选项A)错;return后面的值可以是一个表达式,选项B)错;实参与形参的类型应相同或赋值兼容,如果实参为整型而形参为实型,或者相反,则按不同类型数值的赋值规则进行转换,以形参类型为准,选项D)错。

47.D解析:调用函数func(x,y),返回x+y,即7;再调用函数func(7,z),返回7+z,即15。

48.A解析:由于数据的集成性使得数据可为多个应用所共享,特别是在网络发达的今天,数据库与网络的结合扩大了数据关系的应用范围。数据的共享自身又可极大地减少数据冗余性,不仅减少了不必要的存储空间,更为重要的是可以避免数据的不一致性。这里所谓数据的一致性是指在系统中同一数据的不同出现应保持相同的值,而数据的不一致性指的是同一个数据在系统的不同拷贝处有不同的值。

49.C解析:putchar(s)的功能是把字符s输出到标准输出设备;puts(s1)是把s1指向的字符串输出到标准输出设备。

50.D解析:函数f的功能是将字符串数组中的每个字符串元素按照由小到大的顺序进行排列,调用f(p,5)后,字符串数组p变为{“aabdfg”,“abbd”,“abc”,“cd”,“dcdbe”},所以最后输出p[1]即'abbd'的长度应为4。

51.C解析:本题考察变量的自加'++'和自减'--'问题。当y的值为9、6或3时,if语句的条件成立,执行输出语句,输出表达式--y的值,y的自减要先于输出语句执行,故输出结果为852。

52.C【解析】在数据库管理系统提供的数据语言中,数据操纵语言负责数据的查询及增、删、改等操作。故答案为C。

53.C解析:C语言规定的标识符只能由字母、数字和下划线3种字符组成,第一个字符必须为字母或下划线,并且不能使用C语言中的关键字作为标识符。选项C)中goto和int是关键字,b-a中'-'不是组成标识符的3种字符之一;选项D)中int是关键字,所以,均是不合法用户标识符的选项是C)。

54.C解析:y的初值为-1,第一个if语句的判断条件为x!=0,即当x!=0时y的值变化,x=0时y的值不变,仍为-1。第二个if语句的判断条件为x>O,如果x>0则y=1,否则y=0,即x<O时,y=O。4个选项中C符合题意。

55.C解析:本题考核的知识点是二维数组的初始化及库函数strlen()的应用。主函数中定义了一个二维字符数组并初始化,初始化后的结果为str[0]='Hello',str[1]='Beijing',然后定义一个字符指针变量p并让它指向数组的首地址,即指向str[0],而在C语言中无论是一维还是多维数组,其元素在内存中都是顺序存放的,故p+20后指针指向str[1],所以strlen(P+20);返回的是str[1]中的字符串的长度,即Beijing的长度为7,所以最后输出的值为7,所以,4个选项中选项C符合题意。

56.A解析:考查switch语句的使用。switch语句的条件是'a%3=15%3=0',所以执行case0后面的语句,m++;m=1,然后就执行break,跳出switch语句,所以最后输出m的值为1\ue009。

57.A解析:在C语言中所谓函数的递归是在指在调用一个函数的过程中,又出现了直接或间接地调用该函数本身,直接调用该函数本身的称为函数递归,而间接调用该函数称为函数的间接递归调用.由程序可以看出函数f(a,i,j)为一递归函数,其功能是i

58.A

59.C解析:数据库管理员DBA(DataBaseAdministrator)对数据库进行统一管理、包括数据库故障恢复,数据更新、维护优化等操作。

60.A解析:数据库系统DBS是指在计算机系统中引入数据库后的系统构成。数据库系统是一种带有数据库的综合系统,它包括硬件、软件(如操作系统、数据库管理系统、编译系统及应用开发工具软件等)、数据库以及开发者和使用者。

61.D

62.A

63.Aa=3,b=4,sub(a++,b++)就是3*4=12,然后a=4,b=5;

64.B因X为2,所以!X时表达式值为0,因Y为1,y--表达式的值为1然后自减1,y为0,所以!x||y--时表达式的值为1。

65.A预处理命令是以“#”号开头的命令,它们不是c语言的可执行命令,这些命令应该在函数之外书写,一般在源文件的最前面书写,但不是必须在起始位置书写,因此B)、c)选项错

66.A在面向对象方法中,对象的基本特点包括:标识唯一性、分类性、多态性、封装性、模块独立性好。一致性不属于对象的基本特点,因此本题答案为A)。

67.C在本题中,从给出的选项可以知道,本题程序的作用是对数组的十个元素按照一个规则进行输出。

在程序中,首先定义了一个大小为10的数字用来存放需要处理的十个数,然后通过循环从键盘输入需要被处理的十个数,又通过一个循环完成对数组元素的输出。在该循环中,当循环变量j=9时,输出的是a[9],即数组中的最后一个元素,当j=8时,输出的是a[8],即数组中的倒数第二个元素,以此类推,当j=0时,输出的是a[0],即数组的第一个元素。由此我们可以看出,最后是将数组逆序输出。与选项C完全一致,因此,本题的正确答案是C。

68.B

69.D

70.D

71.B在内存中,字符数据以ASCIl码存储,它的存储形式与整数的存储形式类似。c语言中,字符型数据和整型数据之间可以通用,也可以对字符型数据进行算术运算,此时相当于对它们的ASCIl码进行算术运算,在本题中,s++相当于s=s+1,即让s指向数组中的下一个元素。

72.C

73.B

74.C本题考查的是if语句。if是c语言关键字,表达式两侧的圆括号不可少,最后是一条语句或是用花括号括起来的一组语句。选项A)和B)是在表达式后跟了一条空语句,选项D)是在表达式后跟了一组空语句,选项C)中x一一是表达式而不是语句,所以在编译时会出现错误信息,在X一一后面加上”;”号就对了。

75.C当执行fun函数时,因为参数传递时是地址传递,因此形参值的改变会影响实参中的数,在执行fun函数时先输出12,接着把*X赋3,*y赋4,此时带回主函数中,输出的值为34。

76.A本题中第一次调用为fun(8,fun(5,6)),因为fun(5,6)返回值为5,所以第二次调用为fun(8,5)--6,因此选择A)。

77.C解析:数据库(Database,简称DB)是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。数据库中的数据具有“集成”、“共事”之特点。

78.A不能将一个整数直接赋给指针变量作为地址,因此A)是错误的。函数的返回值可以是地址,即指针。函数调用中形参值的变化不会传递给实参。故本题答案为A)。

79.B\n在第1次外层for循环中,首先x++得到x=1。进入到内层for循环,只有循环j的值为奇数时,变量x的值才自加1,所以在内层for循环执行过程中,变量x的值自加两次,当退出内层for循环时,x=3,然后执行x++,得到x=4。在进入执行第2次外层for循环中,首先x++得到x=5。进入到内层for循环,只有循环变量J的值为奇数时,变量X的值才自加1,所以在内层for循环执行过程中,变量X的值自加l两次,当退出内层for循环时,x=7,然后执行x++,得到x=8,所以打印输出变量x的值为8。

\n

80.C指针变量的值只能是存储单元地址,而不能是一个整数,故选项C错误。

81.82.1intfun(intscore[],intm,intbe-low[])2{3inti,j=0;4floatav=0.0;5for(i=0;i<m;i++)6av=av+score[i]/m;/*求平均值*/</m;i++)<m;i++)7for(i=0;i<m;i++)gif(score[i]</m;i++)</m;i++)<m;i++)<m;i++)<av)p*如果分数<>8低于平均分,则将此分数放入below数::组中*/</av)p*如果分数<></m;i++)</m;i++)<m;i++)<m;i++)<av)p*如果分数<>9below[j++]=score[i];</av)p*如果分数<></m;i++)</m;i++)<m;i++)<m;i++)<av)p*如果分数<>10returnj;/*</av)p*如果分数<></m;i++)</m;i++)<m;i++)<m;i++)<av)p*如果分数<>返回低于平均分的人数*/U}要计算低于平均分的人数,首先应该求出数组score中各元素的平均值。然后通过for循环语句和if条件语句找出低于平均值的分数。该题第1个循环的作用是求出平均值av,第2个循环的作用是找出数组score中低于平均值的成绩记录并存入below数组中。</av)p*如果分数<></m;i++)</m;i++)2022年广东省东莞市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.以下选项中非法的表达式是()。

A.a+1=a+1

B.a=b==0

C.(Char.(100+100.

D.7<=X<60

2.有以下程序:structst{intx;int*y;}*pt;inta[]={1,2},b[]={3,4};structstc[2]={10,a,20,b};pt=c;以下选项中表达式值为11的是()。

A.++p->xB.pt->xC.*pt->yD.(pt++)->x

3.

4.下述函数功能是______。intfun(char*x){char*y=x;while(*y++);returny-x-1;}

A.求字符串的长度B.求字符串存放的位置C.比较两个字符串的大小D.将字符串x连接到字符串y后面

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

A.13579B.48579C.48549D.48999

6.若有序表的关键字序列为(b,c,d,e,f,g,q,r,s,t),则在二分查找关键字b的过程中,先后进行的关键字依次为()

A.f,c,BB.f,d,BC.g,c,BD.g,d,B

7.若有以下程序段

intm=0xabc,n=0xabc;

m-=n;

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

执行后的输出结果是A.A.0X0

B.0x0

C.0

D.0xABC

8.关于结构化程序设计原则和方法的描述错误的是()。

A.选用的结构只准许有一个入口和一个出口

B.复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现

C.不允许使用GOTO语句

D.语言中若没有控制结构,应该采用前后一致的方法来模拟

9.设变量已正确定义并赋值,下列表达式中正确的是()。

A.x=y+z+5,++yB.int(15.8%5)C.x=y*5=x+zD.x=25%5.0

10.设R是一个二元关系,S是一个三元关系,则下列运算中正确的是()。

A.R-SB.R×SC.R∩SD.R∪S

11.设变量n为f1oat类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五人运算的表达式是()。

A.n=(n*100+0.5)/100.0

B.m=n*100+0.5,n=m/100.0

C.n=n*100+0.5/100.0

D.n=(n/100+0.5)*100.0

12.

13.用二进制来编码字符串“abcdabaa”,需要能够根据编码,解码回原来的字符串,最少需要()长的二进制字符串

A.12B.14C.18D.24

14.关键路径是事件结点网络中()。

A.从源点到汇点的最长路径B.从源点到汇点的最短路径C.最长回路D.最短回路

15.

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

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

17.设有定义的语句:“charc1=92,c2=92;”,则以下表达式中的值为零的是()。

A.c1^c2B.c1&c2C.~c2D.c1|c2

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

A.C语言编写的函数源程序,其文件名后缀可以是C

B.C语言编写的函数都可以作为一个独立的源程序文件

C.C语言编写的每个函数都可以进行独立的编译并执行

D.一个C语言程序只能有一个主函数

19.数字字符0的ASCII值为48,运行下列程序的输出结果是()。main(){chara='1',b='2';printf("%c,",b++);printf("%d\n",b-A);}

A.3,2B.50,2C.2,2D.2,50

20.

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

main()

{charCl,c2;

for(c1='0''c2='9';c1<c2;c1++,c2--)printf("%c%c",c1,c2);

printf("\n");

}

22.以下函数的功能是计算s=1+1/21+1/3!+…+1/n!,请填空。

doublefun(intn)

{doubles=0.0,fac=1.0;

inti,k=1;

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

{【】;

fac=fac/k;

s=s+fac;

}

}

23.某二叉树中度为2的结点有18个,则该二叉树中有【】个叶子结点。

24.下面程序执行后k的值为【】。

inta=1,b=2,c=3,d=4,k;

k=a>b?a:c>d?c:d

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

#defineMAX(x,y)(x)>(y)?(x):(y)

main()

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

t=MAX(a+b,c+d)*10;

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

}

26.软件结构是以【】为基础而组成的一种控制层次结构。

27.在面向对象程序设计中,从外面看只能看到对象有外部特征,而不知道也无须知道数据的具体结构以及实现操作的算法,这称为对象的______。

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

main()

{

intarr[]={30,25,20,15,10,5},*p=arr;

p++;

printf("%d\n",*(p+3));

}

29.性表的多种存储结构中,最简单的方法是【】。

30.若有说明chars1[]="Thatgirl",s2[]="isbeautiful";则使用函数strcmp(s1,s2)后,结果是______。

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

structaa

{intdata;

【】}node;

32.软件工程研究的内容主要包括:【】技术和软件工程管理。

33.语句“int(*ptr)();”的含义是______是指向函数的指针,该函数返回一个int型数据。

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

#defineMAX(x,y)(x)>(y)?(x):(y)

main()

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

t=MAX(a+b,e+d)*10;

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

}

35.下面程序的输出结果是()。

main()

{inti=0,a=0;

while(i<20)

{for(;;)

{if((i%10)==0)break;

elsei--;}

i+=11;

a+=i;

}

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

}

36.设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部【】。要求形参名为b。

main()

{double[10][22];

intn;

......

fun(s);

}

37.以下程序通过函数SunFun求。这里f(x)=x2+l,由F函数实现。请填空。

main()

{

printf("Thesum=%d\n",SunFun(10));

}

SunFun(intn)

{

intx,s=0;

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

S+=F(______);

returns;

}

F(intx)

{

return(______);

}

38.常用的软件结构设计工具是结构图(SC),也称程序结构图。其中,用矩形表示______,用带空心圆的箭头表示传递的是数据。

39.自动批处理文件名必须是【】。

40.下面程序的运行结果是______。

intf(inta[],intn)

{if(n>1)returna[0]+f(&a[1],n-1);

elsereturna[0];

{

main()

{intaa[3]={1,2.3},s;

s=f(&aa[0],3);

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

}

三、1.选择题(20题)41.以下选项中可作为C语言合法常量的是

A.-80B.-080C.-8e1.0D.-80.0e

42.字符串"\\"ABCDEF\"\\”的长度是()。

A.11B.10C.5D.3

43.为了使模块尽可能独立,要求()。

A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强

B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱

C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱

D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强

44.若二维数组a有m列,则在a[i][j]前的元素个数为()。

A.i*m+j-1B.i*m+jC.j*m+1D.i*m+i+1

45.有定义语句:intb;charc[10];,则正确的输入语句是

A.scanf("%d%s",&b,&c);

B.scanf("%d%s",&b,c);

C.scanf("%d%s",b,c);

D.scanf("%d%s",b,&c);

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

A.定义函数时,形参的类型说明可以放在函数体内

B.return后边的值不能为表达式

C.如果函数值的类型与返回值类型不一致,以函数值类型为准

D.如果彩参与实参类型不一致,以实参类型为准

47.有如下程序intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(func(x,y),z);printf("%d\n",r);}该程序的输出结果是______。

A.12B.13C.14D.15

48.下述关于数据库系统的叙述中正确的是______。

A.数据库系统减少了数据冗余

B.数据库系统避免了一切冗余

C.数据库系统中数据的一致性是指数据类型的一致

D.数据库系统比文件系统能管理更多的数据

49.下列的程序用来输出两个字符串前7个字符中对应相等的字符及其位置号,程序空白处应该填写的是()。#include<stdio.h>main(){Charsl[]="Chinese",s2[]="japnese";inti;for(i=0;s1[i]!='\0'&&s2[i]!='\0';i++)if(s1[i]=s2[i]&&i<7)____________________;}

A.putchar(s2[i];putchar(i)

B.puts(s1[i],i)

C.printf("%c%d\n",s2[i],i)

D.printf("%c",s1[i]);printf("%d\n",i)

50.有以下程序,其中函数f的功能是将多个字符串按字典顺序排序:#include<string.h>voidf(char*p[],intn){char*t;inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strcmp(p[i],p[j])>0){t=p[i];p[i]=p[j];p[j]=t;}}main(){char*p[5]={"abc"

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

51.有以下程序

#include<stdio.h>

main0

{inty=9;

for(;y>0;y--)

if(y%3==0)printf("%d",--y);

}

程序的运行结果是

A.741B.963C.852D.875421

52.在数据库管理系统提供的数据语言中,负责数据的查询及增、删、改等操作的是

A.数据定义语言B.数据转换语言C.数据操纵语言D.数据控制语言

53.下面四个选项中,均是不合法的用户标识符的选项是()。

A.AP_0doB.floatla0_AC.b-agotointD._123tempint

54.阅读下述程序段:y=-1;if(x!=0)if(x>0)y=1;elsey=0;该程序段所描述的数学关系是()

A.

B.

C.

D.

55.有以下程序:#include<string.h>main(){charstr[][20]={"Hello","Beijing"}*p=str;printf("%\n",strlen(p+20));}程序运行后的输出结果是

A.0B.5C.7D.20

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

#include<stdio.h>

main()

{inta=15,b=21,m=0;

switch(a%3)

{case0:m++;break;

case1:m++;

switch(b%2)

{default:m++;

case0:m++;break;}}

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

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

57.有以下程序:Voidf(inta[],ihti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;f(a,i+1,i-1);}}main(){inti,aa[5]={1,2,3,4,5};f(aa,0,4);for(i=0;i<5;i++)printf("%d",aa[i]);printf("\n");}执行后输出结果是

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

58.若有程序段:intc1=1,c2=2,c3;c3=1.0/c2*cl;则执行后,c3中的值是()

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

59.数据库的故障恢复一般是由()

A.数据流图完成的B.数据字典完成的C.DBA完成的D.PAD图完成的

60.下列关于“数据库系统(DBS)”的叙述中,正确的一条是______。

A.DBS是指在计算机系统中引入数据库后的系统构成

B.DBS是帮助用户建立、使用和管理数据库的一种计算机软件

C.DBS是用户建立的若干数据库文件的集合

D.DBS是一种新颖的关系数据库管理系统

四、选择题(20题)61.(70)需求分析阶段的任务是确定()

A.软件开发方法

B.软件开发工具

C.软件开发费用

D.软件系统功能

62.

63.下面程序的输出结果是()。

#inclde<stdio.h>

#defineSUB(X,Y)(X)*Y

main()

{inta=3,b=4;

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

}

A.12B.15C.16D.20

64.设“intx=2,y=1;”,则表达式(!x||Y--)的值是()。

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

65.以下叙述中正确的是()。A.在c语言中,预处理命令行都以‘‘#”开头

B.预处理命令必须位于c源程序的起始位置

C.#include必须放在c程序的开头

D.C语言的预处理不能实现宏定义和条件编译的功能

66.在面向对象方法中,不属于“对象’’基本特点的是()。A.一致性B.分类性C.多态性D.标识唯一性

67.有如下程序段

#include"stdio.h"

main()

{intk[10];

intj;

for(j=0;j<10;j++)

scanf("%d",&k[j]);

for(j=9;j>=0;j--)

printf("%d",k[j]);}

则程序段实现的功能是

A.输入10个数据的顺序输入并输出

B.输入10个数据的逆序存放

C.输入10个数据的逆序输出

D.以上叙述均错误

68.

69.

70.

71.有以下程序:

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

A.ABCDDEFEDBD

B.abcDDfefDbD

C.abcAAfefAbA

D.Abcddfefdbd

72.

73.

74.设变量X和y均已正确定义并赋值。以下if语句中,在编译时将产生错误信息的是()。A.if(x++);

B.if(x>y&&y!=0);

C.if(x>y)x--elsey++;

D.if(y<0){;}elsex++;

75.下列程序的输出结果是()。voidfun(int*X,inty){printf("%d%d",*x,*y);*x=3;*y=1;}main{intx=1,y=2;fun(&y,&x);printf("%d%d",x,y);}A.2143B.1212C.1234D.2112

76.有以下程序:

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

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

77.下列有关数据库的描述,正确的是______。

A.数据库是一个DBF文件B.数据库是一个关系C.数据库是一个结构化的数据集合D.数据库是一组文件

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

A.可以给指针变量赋一个整数作为地址值

B.函数可以返回地址值

C.改变函数形参的值,不会改变对应实参的值

D.当在程序的开头包含头文件stdi0.h时,可以给指针变量赋NULL、、、

79.有下列程序:

main()

{inti,j,x=0;

for(i=0,i<2;i++)

{x++;

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

{if(j%2)continue;

x++:

}

x++:

}

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

}

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

A.x=4B.x=8C.x=6D.x=12

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

A.改变函数形参的值,不会改变对应实参的值

B.函数可以返回地址值

C.可以给指针变量赋一个整数作为地址值

D.当在程序的开头包含文件stdi0.h时,可以给指针变量赋NULL

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:从字符串str中,删除所有大写字母'F'。

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

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

试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。程序中将m个人的成绩存放在score数组中,请编写函数fun(),它的功能是将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。例如,当score数组中的数据为10、20、30、40、50、60、70、80、90时,函数返回的人数应该是4,below中的数据应为10、20、30、40。注意:部分源程序在文件prog1.c中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:

参考答案

1.A赋值运算符的左边只能是变量,而不能是常量或表达式。

2.A题目中定义了一个结构体数组c并初始化,指针pt指向c的第1个元素。则“++pt->x”为11,“pt->x”为10,“*pt->y”为1,“(pt++)->x”为20。故本题答案为A选项。

3.B

4.A解析:在函数体内定义一字符型指针并指向形参,然后遍历其中各字符直到NULL,最后返回字符串首尾地址的差值,即字符串的长度。

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

6.A

7.C本题考查C语言中的数据输出格式。

题目中定义了两个整型变量m、n,对这两个变量赋值,输入的数值为十六进制整数,并且有m=n。进行m-n运算后,将减法所得到的值赋给m,并将m值输出。其中printf的格式字符选用的格式字符为x,即以十六进制形式输出整数。注意,0x是表示该数为十六进制的标志,输出数据时,数据前面不会自动加上进制的标志。

8.C结构化程序设计的原则和方法之一是限制使用GOT0语句,但不是绝对不允许使用GOT0语句。其他三项为结构化程序设计的原则。

9.A运算符“%”的左右两个操作数均应为整数,所以B选项与D选项错误。C选项中不能将“x+z”的值赋给表达式“y*5”,所以C选项错误。故本题答案为A选项。

10.BB。【解析】关系的交(∩)、并(∪)和差(-)运算要求两个关系是同元的,显然作为二元的R和三元的S只能做笛卡儿积运算。

11.B

12.A

13.B

14.A

15.D

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

17.A当值相同时按位异或,则为0,按位或与按位与时仍不变,负数也为非0。

18.C函数是指预先定义功能块,其目的是提高程序的重用性。在C语言中函数的源程序,后缀名可以为C。C语言所编写的函数都可以是一个独立的源文件。一个C语言程序只能有一个主函数。C语言中编写的函数不是每个都可以独立地编译和执行的,因为C语言中程序的开始为主函数,如果程序中没有主函数则无法进行编译和执行。

19.C解析:自增运算符“++”,出现在变量之前,表示先使变量的值加1,再使用变量的值进行运算;出现在变量之后,表示先使用变量的值进行运算,冉使变量的值加1。例如题中的“b++”,题中第一条语句先输出字符b的值,此时变量b='2',因此输出值为2;再使b的值加1,b='3',因此第二条语句输出:b-a='3'-'1'=2。

20.D

21.9.18274e+0089.18274e+008解析:本题考查的循环条件是c1<c2,当c1>=c2时,退出循环。所以,第一次循环输出09,第二次循环输出18,如此循环直到输出45,之后c1=5,c2=4,不满足循环条件,退出循环。

22.k=k*ik=k*i解析:本题中遗过for循环求s表达式中每一项的和,表达式“fac=fac/k;”求的是每—项的值,所以k的值应为n!,在求n!的时候,可以用上次循环阶乘的值乘i,就可以直接得此次n!,故本题填k=k*i。

23.1919解析:根据二叉树的性质:在任意一棵二叉树中,度为。的结点(即叶子结点)总是比度为2的结点多一个。本题中度为2的结点数为18,故叶子结点数为18+1=19个。

24.44解析:本题首先判断a>b的真假,结果是1>2为假,所以表达式“a>b?a:c>d?c:d”的值为子表达式“c>d?c:d”的值。再判断c>d的真假,结果是3>4为假,所以最终k被赋的值为d的值,故应该填4。

25.77解析:在C语言中,宏定义是直接替换的,所以在刘表达式MAX(a+b,c+d)*10进行替换后,表达式变为(a+b)>(c+d)?(a+b):(c+d)*10。在这个条件表达式中,(a+b)>(c+d)为真,所以用(a+b)的值作为整个表达式的值(否则用(c+d)*10的值作为整个表达式的值),而(a+b)的值为7。所以整个表达式的值为7。

26.模块模块

27.封装性封装性解析:对象具有下列5个基本特点:①标识惟一性;②分类性:③多态性;④封装性;⑤模块独立性好。其中,封装性是指从外面看只能看到对象的外部特征,对象的内部特征即处理能力的实行和内部状态,对外是不可见的,对象的内部状态只能由其自身改变。

28.1010解析:整型指针最初被赋的值是数组arr的头指针,即指向数组的第一个元素30,p++后,指针指向数组的下一个元素,即*p=arr[1]=25,在执行*(p+3)时,则相当于a[1+3],即10。因此,输出应为100。

29.顺序存储顺序存储

30.-1-1解析:strcmp(s1,s2)函数的作用是:对字符数组s2和字符数组s1进行比较。如果s1<s2,则返回负数;如果s1==s2,则返回0;如果s1>s2,则返回正数。

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

32.软件开发

33.ptrptr解析:本题考查函数指针的概念。函数指针的定义格式是:类型标识符(*指针变量名)()。注:“类型标识符”为函数返回值的类型。

34.77解析:在C语言中,宏定义是直接替换的,所以在对表达式MAX(a+b,c+d)*l0进行替换后,表达式变为(a+b)>(c+d)?(a+b):(c+d)*10。在这个条件表达式中,(a+b)>(c+d)为真,所以用(a+b)的值作为整个表达式的值(否则用(c+9d)*10)的值作为整个表达式的值),而(a+b)的值为7。所以整个表达式的值为7。

35.3232解析:while(表达式)的功能是:首先计算表达式的值.若为真,则执行循环体语句,执行完毕,再计算表达式的值.若仍为真,则重复执行循环体语句,直到表达式的值为假,结束while语

温馨提示

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

评论

0/150

提交评论