2022-2023年河南省三门峡市全国计算机等级考试C语言程序设计真题二卷(含答案)_第1页
2022-2023年河南省三门峡市全国计算机等级考试C语言程序设计真题二卷(含答案)_第2页
2022-2023年河南省三门峡市全国计算机等级考试C语言程序设计真题二卷(含答案)_第3页
2022-2023年河南省三门峡市全国计算机等级考试C语言程序设计真题二卷(含答案)_第4页
2022-2023年河南省三门峡市全国计算机等级考试C语言程序设计真题二卷(含答案)_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

2022-2023年河南省三门峡市全国计算机等级考试C语言程序设计真题二卷(含答案)学校:________班级:________姓名:________考号:________一、单选题(20题)1.若有以下程序段

intm=0xabc,n=0xabc;

m-=n;

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

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

B.0x0

C.0

D.0xABC

2.有以下程序:#include<stdio.h>main(){intk=5;while(--k)printf(“%d”,k-=3);printf(“\n”);}程序运行后的输出结果是()。

A.1B.2C.4D.死循环

3.以下能正确定义一维数组的选项是()。

A.inta[5]=(0,1,2,3,4,5);

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

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

D.inta[5]="0123";

4.下列不正确的转义字符是()。

A.'\\'B.'\t'C.'\n\D.'088'

5.程序流程图(PFD)中的箭头代表的是

A.数据流B.控制流C.调用关系D.组成关系

6.

7.C程序的基本模块为()。

A.表达式B.标识符C.语句D.函数

8.设以下变量均为int类型,则值不等于7的表达式是()。

A.(x=y=6,x+y,x+1)

B.(x=y=6,x+y,y+1)

C.(x=6,x+1,y=6,x+y)

D.(y=6,y+l,x=y,x+1)

9.设变量a是int型,f是float型,i是double型,则表达式10+′a′+i*f值的数据类型为

A.intB.floatC.doubleD.不确定

10.

11.下列程序的输出结果是()。main(){inta=1,b=2;printf("%d,%d\n",--a,++b);}

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

12.下列程序的输出结果是______。#include<stdio.h>main(){doubled=3.2;intx,y;x=1.2;y=(x+3.8)/5.0;printf("%d\n",d*y);}

A.3B.3.2C.0D.3.07

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

A.算法就是程序B.设计算法时只需要考虑数据结构的设计C.设计算法时只需要考虑结果的可靠性D.以上3种说法都不对

14.有以下程序:#include<stdio.h>intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i];returnsum;}main(){inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0;s=fun(a,5)+fun(b,4);printf(“%d\n”,s);}程序的运行结果是()。

A.55B.50C.45D.60

15.字符串”a+b=12\n”的长度为()。

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

16.以下不属于C语言整数的是()。

A.12fB.25uC.-32D.+20L

17.

18.设变量已正确定义,则以下能正确计算n!的程序段是______。

A.f=0;for(i=1;i<=n;i++)f*=i;

B.f=1;for(i=1;i<n;i++)f*=i;

C.f=1;for(i=n;i>1;i++)f*=i;

D.f=1;for(i=n;i>=2;i--)f*=i;

19.下列程序的运行结果是()。

#include<stdio.h>

main()

{intx=5,a=1,b=2,C=5,d=0;

if(a<B)

if(b!=3)

if(!C)

x=1;

else

if(D)x=1;

elsex=-1;

printf("%d",x);

}

A.-1B.0C.1D.不确定的值

20.“商品”与“顾客”两个实体集之间的联系一般是

A.一对一B.一对多C.多对一D.多对多

二、2.填空题(20题)21.下列程序的功能是计算1~100的整数的累加和。

main()

{inti,sum=【】;

i=1;

for(【】)

{sum+=i;

i++;

}

printf("sum=%d\n",【】);

}

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

main()

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

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

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

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

}

23.以下程序中函数fun的功能是求出能整除x且不是偶数的务正整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。

例如,若x中的值为30,则有4个数符合要求,它们是1,3,5,15。

请按题意,完成填空。

试题程序:

#include<stdio.h>

voidfun(intx,intpp[],int*n)

{inti,j=0;

【】;

if(x%i==0)pp[j++]=i;

【】;

}

main()

{intx,aa[1000],n,i;

printf("\nPleaseenteranintegernumber:\n");

scanf("%d",&x);

fun(x,aa,&n);

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

printf("\n");

}

24.下列程序段是从键盘输入的字符中统计小写字母的个数,用换行符结束循环。请填空。

intn=0,c;

c=getchar();

while(c!='\n')

{if(______)

n++;

}

25.软件是程序、数据和【】的集合。

26.深度为5的满二叉树中,叶子结点的个数为______。

27.以下和程序中,主函数调用了lineMax函数,实现在N行M列的二维数组中,找出每一行上的最大值,请填空。

#defineN3

#defineM4

voidlineMax(intx[N][M])

{inti,j,p;

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

{p=0;

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

if(x[i][p]<x[i][j]【】;

printf("Themaxvalueinlineis%d\n",【】);

}

{

main()

{intx[N][M]={1,5,4,2,6,4,3,8,2,3,1};

【】;

}

28.以下程序中,函数SumColumMin的功能足:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。

#defineM2

#defineN4

voidSumColumMm(inta[M][N],int*sum)

{

inti,j,k,s=0;

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

{

k=0;

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

if(a[k][i]>a[j][i])

k=j;

s+=【】;

}

【】=s;

}

main()

{

intx[M][n])={3;,5,1,4,1,8,3},s;

SumC01umMm(【】);

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

}

29.若按功能划分,软件测试的方法通常分为白盒测试方法和【】测试方法。

30.一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的【】。

31.若有程序:

main()

{inti,j;

scanf('i=%d,j=%d";&i,&j);

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

}

要求给i赋10,给j赋20,则应该从键盘输入上【】。

32.测试的目的是暴露错误,评价程序的可靠性;而______的目的是发现错误的位置并改正错误。

33.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中______的作用是将测试数据传送给被测试的模块,并品示被测试模块所产生的结果。

34.在计算机领域中,通常用英文单词“Byte'’表示【】。

35.数据库技术的主要特点为数据的集成性、数据的高【】和低冗余性、数据独立性和数据统一管理与控。

36.若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为【】。

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

structaa

{intdata;

【】}node;

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

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

main()

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

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

{switch(j)

{case1:

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

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

}

}

}

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

40.下列程序的功能是将字符串s中所有的字符c删除。请填空。

#include<stdio.h>

main()

{chars[80];

inti,j;

gets(s);

for(i=j=0;s[i]!='\0';i++)

if(s[i]!='c')______;

s[j]='\O';

puts(s);

}

三、1.选择题(20题)41.下列说法正确的是

A.int(**def)[10];----def指向一个指针,该指针指向10个整型变量构成的数组

B.int*(*gh[10]);---gh指向一个指针,该指针指向10个整型变量构成的数组

C.int*(*gh[10]);---gh是一个指针,指向由10个指向整型变量的指针构成的数组

D.A,C均正确

42.已知下面的程序段,正确的判断是______#defineA3#defineB(A)((A+1)*a)X=3*(A+B(7));X=3*(A+B(7);

A.程序错误,不允许嵌套定义B.X=93C.X=81D.程序错误,宏定义不允许有参数

43.下列哪个面向对象程序设计不同于其他语言的主要特点

A.继承性B.消息传递C.多态性D.静态联编

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

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

45.有以下程序

intadd(inta,intb){return(a+b);}

main()

{intk,(*f)(),a=5,b=10;

f=add;

}

则以下函数调用语句错误的是A.k=(*f)(a,b);B.k=add(a,b);C.k=*f(a,b);D.k=f(a,b);

46.C语言提供的预处理功能包括条件,其基本形式为:#×××标识符程序段1#else程序段2#endif这里的×××可以是()

A.define或include

B.ifdef或include

C.indef或ifndef或define

D.ifdef或ifndef或if

47.有下列程序:fun(intx,inty){return(x+y);}main(){inta=1,b=2,c=3,sum;sm=fun((a++,b++,a+B),c++);printf("%d\n",sum);}执行后的输出结果是()。

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

48.“年龄在18—25之间”这种约束是属于数据库当中的()

A.原子性措施B.一致性措施C.完整性措施D.安全性措施

49.某二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为()

A.n+1B.n-1C.2nD.n/2

50.以下对结构体类型变量的定义中,不正确的是_______。

A.typedefstructaa{intn;floatm;}aa;aatd1;

B.#defineaastructaaaa{intn;floatm;}td1;

C.struct{intn;floatm;}aa;structaatd1;

D.struct{intn;floatm;}td1;

51.下面四个选项中,均是不正确的八进制数或十六进制数的选项是

A.0160x8f018

B.0abc0170xa

C.010-0x110x16

D.0a127ff-123

52.以下程序运行后,输出结果是()#include<stdio.h>#definePT5.5#defineS(x)PT*x*xmain(){inta=1,b=2;printf("%4.1f\n",s(a+b));}

A.49.5B.9.5C.22D.45

53.一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为()。

A.221B.219C.231D.229

54.函数rewind的作用是

A.使文件位置指针重新返回文件的开始位置

B.将文件位置指针指向文件中所要求的特定位置

C.使文件位置指针指向文件的末尾

D.使文件位置指针自动移至下一个字符位置

55.以下程序的输出结果是#include<stdio.h>voidprt(int*x,int*y,int*z){printf("%d,%d,%d\n",++*x,++*y,*(z++));}main(){inta=10,b=40,c=20;prt(&a,&b,&c);prt(&a,&b,&c);}

A.11,42,3112,22,41

B.11,41,2012,42,20

C.11,21,4011,21,21

D.11,41,21.12,42,22

56.在C语言中,下列关于文件操作的叙述正确的是()。

A.对文件操作必须先关闭文件B.对文件操作必须先打开文件C.对文件操作顺序没有统一规定D.以上三种说法全错

57.变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。若要求将a的高位取反,低4位不变,所要执行的运算是

A.a^bB.a|bC.a&bD.a<<4

58.下面程序段的运行结果是char*s="abcde";s+=2;printf("%d",s);

A.cdeB.字符'c'C.字符'c'的地址D.无确定的输出结果

59.下面说明不正确的是

A.chara[10]="china";

B.chara[10],*p=a;p="china"

C.char*a;a="china";

D.chara[10],*P;P=a="china"

60.有以下程序

#include<stdlib.h>

gtruetNODE

{intnum;structNODE*next;};

main()

{

structNODE*p,*q,*r;

p=(structNODE*)malloc(sizeof(structNODE));

q=(structNODE*)malloc(sizeof(structNODE));

r=(structNODE*)malloc(sizeef(structNODE));

p->num=10;q->num=20;r->num=30;

p->next=q;q->next-r;

printf("%d\n",p->num+q->next->num);

}

程序运行后的输出结果是

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

四、选择题(20题)61.

62.有三个关系R、s和T如下:

由关系R和s通过运算得到关系T,则所使用的运算为()。

A.并B.自然连接C.笛卡尔积D.交

63.若变量x、Y已正确定义并赋值,以下符合C语言语法的表达式是()。

A.++x,y=x-B.x+1=yC.x=x+10=x+yD.double(x/10)

64.下列字符数组初始化语句中,不正确的是()。A.A.charc[]='goodmorning';

B.charc[20]="goodmorning";

C.charc[]={'a','b','c','d');

D.charc[]={"ffgoodmorning"};

65.有下列程序:

main

{inti,s=0,t[]={1,2,3,4,5,6,7,8,9};

for(i=0;i<9;i+=2)s+=*(t+i);

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

}

程序执行后的输出结果是()。A.A.45B.20C.25D.36

66.在E—R图中,用来表示实体联系的图形是()。

A.椭圆形B.矩形C.菱形D.三角形

67.设有定义:intm=0;。以下选项的四个表达式中与其他三个表达式的值不相同的是()。

A.++mB.m+=1C.m++D.m+1

68.

69.

70.下列关于Internet和Web的说法中,正确的是()。

A.Web就是Internet的别称

B.Web是基于Internet之上的一个应用服务

C.Internet是基于Web之上的一个信息系统

D.Internet与Web没有任何关系

71.下面概念中,不属于面向对象方法的是()。A.对象B.继承C.类D.过程调用

72.在JavaScript语言中,拥有onsubmit事件的对象是()。

A.documentB.eventC.windowD.form.

73.

74.(VC++)若有以下定义,则对b数组元素正确的引用是

intb[2][3]={1,2,3,4,5,6};A.b[1]B.b[0][3]C.b[2][2]D.b[1][1]

75.

76.有以下程序(说明:字母A的ASCIl码值是65):

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

A.BTB.YEC.YTD.BY

77.有两个关系R,S如下:

由关系R通过运算得到关系s,则所使用的运算为()。

A.选择B.插入C.投影D.连接

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

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

79.

80.

五、程序改错题(1题)81.下列给定程序中,函数fun()的功能是:求两个非零正整数的最大公约数,并作为函数值返回。例如,若num1和num2分别为49和21,则输出的最大公约数为7;若num1和num2分别为27和81,则输出的最大公约数为27。请改正程序中的错误,使它能得出正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构!试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,已知学生的记录由学号和学习成绩构成,N名学生的记录已存入a结构体数组中。请编写函数fun(),该函数的功能是找出成绩最高的学生记录,通过形参将其返回主函数(规定只有一个最髙分)。已给出函数的首部,请完成该函数。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<stdlib.h>#include<stdio.h>#include<string.h>#include<conio.h>#defineN10typedefstructss/*定义结构体*/{charnum[10];ints;}STU;fun(STUa[],STU*s){}voidmain(){STUa[N]={{“A01”,81},{“A02”,89},{“A03”,66},{“A04”,87},{“A05”,77},{“A06”,90},{“A07”,79},{“A08”,61},{“A09”,80},{“A10”,71}},m;inti;system(“CLS”);printf(“****Theoriginaldata****”);for(i=0;i<N;i++)printf(“No=%sMark=%d\n”,a[i].num,a[i].s);fun(a,&m);printf(“****THERESULT****\n”);printf(“Thetop:%s,%d\n”,m.num,m.s);}

参考答案

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

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

2.A“--k”是先自减再使用,所以第1次判断条件即while(4),条件为真输出k的值,k=4-3,结果为1;第2次判断条件即while(0),条件为假,结束循环,输出回车换行符。故本题答案为A选项。

3.B数组1标从0开始,A选项中所赋值的个数超过了数组的长度;C选项中定义a为字符型变量,而不是数组,赋值错误;D选项中,整型数组不能赋字符串。

4.D解析:'\\\\'是反斜线转义字符;'\\t'是水平跳格转义字符;'\\n'是换行转义字符;C语言中没有规定'088'为转义字符。

5.B解析:程序流程图(PFD)是一种传统的、应用广泛的软件过程设计表示工具,通常也称为程序框图,其箭头代表的是控制流。

6.B

7.D

8.C

9.C解析:根据混合运算规则,如果有一个数据是float型或double型,则其他数据类型先转化为double型,运算的结果最终也是double型。

10.A

11.D解析:本题主要考查自加(++)、自减(--)运算符的使用。“++i,--i”在使用i之前,先使i的值加1或者减1,然后再使用i此时的值参与运算;“i++,i--”是在使用i参与表达式运算之后,再使i的值加1或者减1。本题中--a和++b是先执行a减1和b加1操作,再输出表达式的值。

12.C

13.D程序(program)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合。设计算法时要考虑到数据结构的设计,但是不仅仅是要考虑到数据结构的设计,还要考虑到其他的程序结构的问题。设计算法时不能只考虑结果的正确性和可靠性,还需要考虑到程序的时间冗余度等方面。所以答案选择D。

14.D静态变量是始终存在的,当函数变量退出后,静态变量会保存数据,再次调用该函数时,以前的静态变量值仍然保留着。fun(a,5)的值是15,再次调用后sum=15,所以fun(b,4)=45,s=45+15=60。故本题答案为D选项。

15.B

16.AC语言中整型常量,从表示形式来看,有十进制、八进制或十六进制;从符号位来看,有有符号整数和无符号整数两类。选项A的“12f”是float类型的实数,不是整数;选项B的“25u”属于无符号整数;选项C的“-32”是十进制形式的有符号整数;选项D的“+20L”是十进制形式的长整数。故本题答案为A选项。

17.D

18.D解析:A选项,将f赋值为0,结果得到0,因为0乘任何数都为0;B选项,i<n,计算的是(n-1)!,C选项将陷入死循环。

19.A解析:本题考查ifelse语句。第1个if语句,先判断条件,发现a<b条件成立,执行下列的语句;第2个if语句,先判断条件,发现b!=3条件成立,执行下列的语句:第3个if语句,先判断条件,c=5,则!c条件不成立,执行与其配对的else语句:第4个if语句,先判断条件,d=0,条件不成立,则x=-1,结束循环。

20.D解析:两个实体间的联系可以归纳为3种类型:一对一联系:一对一的联系表现为主表中的每一条记录只与相关表中的一条记录相关联。一对多联系,一对多的联系表现为主表中的每一条记录与相关表中的多条记录相关联。多对多联系:多对多的联系表现为二个表中的多个记录在相关表中同样有多个记录其匹配。本题中一个顾客可以购买多种商品,同一种商品可以有多个顾客购买,所以商品和顾客之间是多对多的联系。

21.0;sum<=100;sum

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

23.for(i=1;i<=x;i+=2)*n=jfor(i=1;i<=x;i+=2)*n=j解析:本题题干信息是求能整除x且不是偶数的所有正整数。循环语句中i从1开始且每次增2,所以i始终是奇数,语句,n=j;是记录符合题意的整数的个数。

24.c>='a'&&c<='z'c>='a'&&c<='z'解析:小写字母在内存中以ASCII的形式存入,且从a到z依次递增,所以可以直接用c>='a'&&c<='z'判断是不是小写字母;c!='\\n'判断是用换行符结束循环。

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

26.1616解析:满二叉树的叶子结点都在最后一层,即第4层,且第4层的结点达到最大数,即25-1=16。

27.p=jx[i][p]lineMax(x)

28.a[k][i]*sumx&sa[k][i]\r\n*sum\r\nx,&s解析:本题定义了一个函数SumColumMin(),该函数有两个参数,第一个参数为数组名,第二个参数为一个指针,用来访问存放数组中每列元素中的最小值的存储空间的变量。所以在主函数中调用SumColunMin()函数,应该将数组x和sam作为实参传给SumColumMin()中的形参,故第20个空格处应该填x,&s。在SumColumMin()函数中用了两重循环,用N记录数组的列,M记录数组的行。内循环共循环了M次,每循环一次将a[k][i]比较a[j][i](当k=0时,a[k][i]第一行第一列的值,然后将该值依次和第一列中的每个值比较,让a[k][i]表示较小的值,那么比较到最后一个元素后a[k][i]就是改列中最小元素的值),让k记录较小值元素的行下标,这样通过M次循环得到每列中的最小元素,然后退出内循环,继续执行该次外循环里的其他语句,即将刚求得第i列的最小值a[k][i]累加到s中,故第一个空格处应该填a[k][i],最后外循环共循环N次,将每列得最小值累加到s中,退出循环,然后让指针sum所指向得存储空间得值为s故第二个空格处应该填*sum。

29.黑盒软件测试的方法有三种:动态测试、静态测试和正确性证明。设计测试实例的方法一般有两类:黑盒测试法和白盒测试法。在使用黑盒法设计测试实例时,测试人员将程序看成一个“黑盒”,即不关心程序内部是如何实现的,只是检查程序是否符合它的“功能说明”,所以使用黑盒法设计的测试用例完全是根据程序的功能说明来设计的。

30.可重用性继承的优点:相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余,提高软件的可重用性。

31.i=10j=20i=10,j=20解析:该函数的第一个参数是格式字符串,主要由两类字符组成,一类是非格式符要求原样输入,一类是格式符对应要输入的变量,所以本题中应该原样输入i=,j=,后面分别给变量10和20,故空格处应该填入i=10,j=20。

32.调试调试

33.驱动模块驱动模块解析:由于模块不是一个独立的程序;不能单独运行,因此,在进行模块测试时,还应为每个被测试的模块另外设计两类模块:驱动模块和承接模块。其中驱动模块的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果;承接模块的作用是模拟被测试模块的下层模块。通常,承接模块有多个。

34.字节字节

35.共享性共享性解析:数据库技术的主要特点有以下几个方面:数据的集成性,数据的高共享性与低冗余性,数据的独立性,数据统一管理与控制。

36.88解析:fabs函数功能是求x的绝对值,计算结果为double型。pow功能是计算x的y次方的值,计算结果同样为double型。所以本题表达式相当于2.0的3.0次方,结果为8.000000。

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

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

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

40.s[j++]=s[i]s[j++]=s[i]解析:循环开始后如果数组s中储存值与字符c相同,则i++直接跳过当前值;如果不相同,则将当前值赋予数组指定位置,并通过j++将下标加1,指向下一元素要存储的位置。

41.Dint*(*gh[10]);---gh是一个指针,指向由10个指向整型变量的指针构成的数组,int(**def)[10];---def指向一个指针,该指针指向10个整型变量构成的数组。

42.C解析:本题的宏定义是合法的,宏定义展开为3*(3+((A+1)*a))=3*(3+((7+1)*3))=81。

43.A解析:继承是一个子类直接使用父类的所有属性和方法。它可以减少相似的类的重复说明,从而体现出一般性与特殊性的原则,这使得面向对象程序设计语言有了良好的重用性,也是其不同于其他语言的主要特点。

44.C栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种“后进先出”的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种“先进先出”的线性表:本题答案为C)。

45.C答案C

解析:在语句“k=*f(a,b)”中,由于“()”的优先级高于“*”,所以“*f(a,b);”表示其返回类型为指针的带有两个整型参数的函数。

46.D

47.C解析:函数fun(intx,inty)的功能是返回两个整型数据的和。在主函数中,变量a,b,c的初始值分别为1,2,3。因此逗号表达式“a++,b++,a+b”的值等于5,表达式c++的值为3,调用于函数的表达式为“fun(5,3);”,其返回值等8。所以变量sum的值等于8。

48.C解析:本题主要考查数据库的各种特性。其中数据库的完整性是指数据的正确性和相容性(如学生的学号必须惟一,性别只能是女或男等),数据库是否具备完整性关系到数据库系统能否真实反映现实世界,因此维护数据库的完整性是非常重要的。根据题意分析可知这种约束属于数据库中的完整性措施。

49.A解析:本题考查数据结构中二叉树的性质。二叉树满足如下一条性质,即:对任意一棵二叉树,若终端结点(即叶子结点)数为n0,而其度数为2的结点数为n2,则n0=n2+1。根据这条性质可知,若二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为n+1。因此,本题的正确答案是选项A。

50.C解析:本题的考查点是结构体类型变量的定义。在选项C中,aa是—个结构体变量,而不是结构体名,所以structaatd1;是非法的。

51.D解析:八进制中,不可能包括8以上的数字,它的范围只在07之间,以0开头。同样,十六进制是以0x开头,数字在0~9和A~F之间。

52.B

53.B解析:二叉树有一个性质:在任意一棵二叉树中,度为。的结点(即叶子结点)总是比度为2的结点多一个,由于本题中的二叉树有70个叶子结点,因此有69个度为2的结点。

该二叉树中总的结点数为

度为2的结点数+度为1的结点数+叶子结点数=69+80+70=219

54.A解析:函数rewind的功能是将文件指针重新指向一个流的开头。用法如下:

intrewind(FILE*stream);并且无返值。

55.B解析:尽管C语言以传值方式进行函数调用,但也可以通过传递指针的值(变量的地址)来达到修改实参变量值的目的,这是此题主要说明的问题。其次,应注意表达式。(z++)的值是*z,其后的z++在程序中无实际作用。函数调用时,由于x,y和z分指向a,b和c,因此,*x,*y和*z就是a,b和c。第一次调用函数时,*x=a=10,*y=b=40,*z=c=20输出结果为11,41,20,至此,已经可以肯定选项B)是正确的。在第一次输出后,a=11,b=41,c=20,第二次输出为:12,42,20。注意:指针作为参数的函数调用的执行过程。

56.B解析:本题考查对文件的操作。文件打开后才可以对文件进行操作,使用结束后要关闭文件。对文件的操作都是顺序读写,即从文件的第一个数据开始,依次进行读写。

57.A解析:本题考查的是位运算的知识,对于任何二进制数,和1进行异或运算会让其取反,而和0进行异或运算不会产生任何变化。

58.C解析:对于字符串指针,其保留的是整个串的首地址,即为第一个字符的起始地址,当该指针做算术运算时,就是该指针根据其类型向后移动相应的存储空间。

59.D解析:C语言中操作一个字符串常量的方法有:①将字符串常量存放在一个字符数组之中;②用字符指针指向字符串,然后通过字符指针来访问字符串存储区域。当字符串常量在表达式中出现时,根据数组的类型转换规则,将其转换成字符指针。

本题D)项中错误的关键是对数组初始化时,可以在变量定义时整体赋初值,但不能在赋值语句中整体赋值。

60.D解析:本题考查的知识点是对结构体指针变量的正确引用与计算。主函数中首先定义了三个结构体指针变量p,q,r。然后调用内存分配函数分别为其分配地址空间,程序中变量q->num的值为20,指针变量q->next指向指针变量r,r->nnm的值为30,所以变量q->next->nm的值为30,因此,表达式q->num+q->next->num的值为20+30=50.所以4个选项中D正确。

61.D

62.D关系R与s经交运算后所得到的关系是

温馨提示

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

评论

0/150

提交评论