2022年河南省安阳市全国计算机等级考试C语言程序设计测试卷一(含答案)_第1页
2022年河南省安阳市全国计算机等级考试C语言程序设计测试卷一(含答案)_第2页
2022年河南省安阳市全国计算机等级考试C语言程序设计测试卷一(含答案)_第3页
2022年河南省安阳市全国计算机等级考试C语言程序设计测试卷一(含答案)_第4页
2022年河南省安阳市全国计算机等级考试C语言程序设计测试卷一(含答案)_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

2022年河南省安阳市全国计算机等级考试C语言程序设计测试卷一(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.有以下程序:#include<stdio.h>voidmain(){doublex=3.14159;printf(“%f\n”,(int)(x*1000+0.5)/(double)1000);}程序运行后的输出结果是()。

A.3.142000B.3.141000C.3.143000D.3.140000

2.下列数据结构中,能用二分法进行查找的是()。

A.顺序存储的有序线性表B.结性链表C.二叉链表D.有序线性链表

3.用树形结构表示实体之间联系的模型的是

A.关系模型B.网状模型C.层次模型D.以上三个都是

4.对含有16个元素的有序表进行二分查找,关键字比较次数最多是()

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

5.设数据结构A=(D,R),其中D={1,2,3,4},R={r},r={<1,2>,<2,3>,<3,4>,<4,1>},则数据结构A是()。

A.线性结构B.树形结构C.图状结构D.集合

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

7.

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

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

9.下面不能正确表示a*b/(c*d)的表达式是()。

A.(a*b)/c*dB.a*b/(c*d)C.a/c/d*bD.a*b/c/d

10.有3个节点的二叉树可能有()种。

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

11.设单链表中结点的结构为已知指针p所指结点不是尾结点,若在*p之后插入结点*s,则应执行下列哪一个操作______。A.s->link=p;p->link=s;

B.s->link=p->link;p->link=s;

C.s->link=p->link;p=s;

D.p->link=s;s->link=p;

12.有以下程序:#include<stdio.h>main(){intb[3][3]=(0,1,2,0,1,2,0,1,2},i,j,t=l;for(i=0;i<3;i++)for(j=1;j<=i;j++)t+=b[i][b[j][i]];printf("%d\n",t);}程序运行后的输出结果是()。A.1B.3C.4D.0

13.以下合法的字符型常量是A.B.C.D.

14.软件调试的目的是A.发现错误B.改正错误C.改善软件的性能D.验证软件的正确性

15.设有定义“inta=1,b=2,c=3;”,以下语句中执行效果与其他3个不同的是()。A.if(a>b)c=a,a=b,b=c;

B.if(a>b){c=a,a=b,b=c;}

C.if(a>b)c=a;a=b;b=c;

D.if(a>b){c=a;a=b;;b=c;}

16.若有以下语句:typedefstructS{intg;charh;}T;以下叙述中正确的是()。A.可用S定义结构体变量B.可用T定义结构体变量C.S是struct类型的变量D.T是structS类型的变量

17.数据的存储结构是指______。

A.数据所占的存储空间量B.数据的逻辑结构在计算机中的表示C.数据在计算机中的顺序存储方式D.存储在外存中的数据

18.若有定义:typedefint*INTEGER;INTEGERp,*q;则以下叙述正确的是()。

A.q是基类型为int的指针变量

B.p是int型变量

C.p是基类型为int的指针变量

D.程序中可用INTEGER代替类型名int

19.设有定义“doublex=5.16894;”,则语句“printf(“%lf\n”,(int)(x*1000+0.5)/1000.);”的输出结果是()。

A.5.16900B.5.16800C.0.00000D.输出格式说明符与输出项不匹配,产生错误信息

20.设有定义语句

则以下叙述正确的是().

A.f是指向函数的指针变量,该函数具有_个int类型的形参

B.f是基类型为int的指针变量

C.f是指向int类型一维数组的指针变量

D.f是函数名,该函数的返回值是基类型为int类型的地址

二、2.填空题(20题)21.执行以下程序后,输出‘#’号的个数是______。

#include<stdio.h>

main()

{

inti,j;

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

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

putchar('#');

}

22.设a,b,c为整型数,且a=2,b=3,c=4,则执行完以下语句后,a的值是【】。

a*=16+(b++)-(++c);

23.栈和队列通常采用的存储结构是【】。

24.结构化分析方法是面向______进行分析的方法。

25.注释一般分为序言性注释和______注释。

26.数据库的逻辑模型设计阶段的任务是将______转换成关系模式。

27.()的目的是分析数据间内在语义关联,在此基础上建立一个数据的抽象模型。

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

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

#include<stdio.h>

func(a,b)

{staticintm=0,i=2;

i+=m+1;

m=i+a+b;

return(m);

}

main()

{intk=5,m=3,p;

p=func(k,m);

printf("%d",p);

p=func(k,m);

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

}

30.下面程序的运行结果是:【】。

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

}

main()

{intx=3,y=5,*p=&x,*q=&y;

swap(p,q);

printf(“%d%d\n”,*p,*q);

}

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

#include<stdio.h>

main()

{ihtx=0210;printf("%x\n",x);

}

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

33.有以下语句段

intn1=10,n2=20;

printf("【】",n1,n2);

要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。

n1=10

n2=20

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

#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=%51d\n",k);}

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

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

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

floatfun(intx,inty)

{return(x+y);}

main()

{inta=2,b=5,c=8;

printf("%3.Of\n",fun((int)fun(a+c,b),a-c));}

38.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是【】。

39.若a是血型变量,则表达式(a=2*3,a*2),a+6的值为______。

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

main()

{

intx=0210;

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

}

三、1.选择题(20题)41.下列合法的整型常量的表示是

A.98B.oXdeC.32767D.0xDG

42.有下列程序:main{chars[]="abcde";s+=2:printf("%d\n",s[0]);}执行后的结果是()。

A.输出字符a的ASCII码B.输出字符c的ASCII码C.输出字符cD.程序出错

43.设函数fun的定义形式为:voldfun(charch,floatx){……}则以下对函数fun的调用语句中,正确的是()。

A.fun("abc",3.0);

B.t=fun('D',16.5);

C.fun('65',2.8);

D.fun(32,32);

44.下列描述中正确的是______。

A.软件工程只是解决软件项目的管理问题

B.软件工程主要解决软件新产品的生产率问题

C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则

D.软件工程只是解决软件开发中的技术问题

45.下面程序的运行结果是()。#include<stdio.h>main(){inta=1,b=10;do{b-=a;a++;}while(b--<0);printf("a=%d,b=%d\n",a,b);}

A.a=3,b=11B.a=2,b=8C.a=1,b=-1D.a=4,b=9

46.栈通常采用的两种存储结构是()。

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

47.有以下程序:main(){intp[7]={11,13,14,15,16,17,18),i=0,k=0;while(i<7&&p[i]%2){k=k+p[i];i++;}printf("%d\n",k)}执行后的输出结果是______。

A.58B.56C.45D.24

48.在学校中,“班级”与“学生”两个实体集之间的联系属于()关系。

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

49.有以下程序:voidchange(intk[]){k[0]=k[5];}main(){intx[10]=(1,2,3,4,5,6,7,8,9,10},n=0;while(n<=4){change(&x[n]);n++;}for(n=0;n<5;n++)printf("%d",x[n]);printf("\n");}程序运行后输出的结果是()。

A.678910B.13579C.12345D.62345

50.结构化程序设计的三种结构是()。

A.顺序结构、选择结构、转移结构

B.分支结构、等价结构、循环结构

C.多分支结构、赋值结构、等价结构

D.顺序结构、选择结构、循环结构

51.有以下程序main(){inta=1,b;for(b=1;b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a-=3;}printf("%d\n",b);}程序运行后的输出结果是______。

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

52.以下正确的程序段是

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

53.如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是()

A.e3,e1,e4,e2B.e2,e4,e3,e1C.e3,e4,e1,e2D.任意顺序

54.C语言的基本单位是()。

A.函数B.过程C.子程序D.子函数

55.请读程序段:charstr[]="ABCD",*p=str;printf("%d\n",*(p+4));程序段的输出结果是______。

A.68B.0C.字符'D'的地址D.不确定的值

56.设有语句chara='\72';,则变量a()

A.包含1个字符B.包含2个字符C.包含3个字符D.说明不合法

57.设有下列二叉树:

对此二叉树中序遍历的结果为

A.ABCDEFB.DAECFC.BDAECFD.DBEFCA

58.有定义语句:chars[10];,若要从终端给s输入5个字符,错误的输入语句是

A.gets(&s[0]);

B.scanf("%s",s+1);

C.gets(s);

D.scanf("%s",s[1]);

59.下列语句执行后的结果是()y=5;p=&y;x=*p++;

A.x=5,y=5B.x=5,y=6C.x=6,y=5D.x=6,y=6

60.若要求从键盘读入含有空格字符的字符串,应使用函数A.getc()B.gets()C.getchar()D.scanf()

四、选择题(20题)61.有以下程序:

执行后输出结果是()。

A.n,tuesdayB.d,mondayC.U,mondayD.0,wednesday

62.

63.下面程序的运行结果是()。

main

{

inty=5,x=14;y=((x=3*y,x+6),x-1);

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

}

A.x=27,y=27

B.x=12,y=13

C.x=15,y=14

D.x=y=27

64.

65.

66.

67.

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

main

{intx=1,y=3,a=0;

while(x++!=(y-=l))

{a+=1;

if(y<x)break;

}

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

}

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

68.关系模型允许定义三类数据约束,下列不属于数据约束的是()。A.A.实体完整性约束B.参照完整性约束C.域完整性约束D.用户自定义的完整性约束

69.

下述程序的输出结果是()。

#defineN20

voidfun(inta[],intn,intm)

{inti,j;

for(i=m;i>n;i--)a[i+1]=a[i];

}

main()

{inti,a[N]={1,2,3,4,5,6,7,8,9,10};

fun(a,2,9);

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

}

A.10234B.12344C.12334D.12234

70.以下程序的输出结果是______。#definef(x)x*xmain(){inta=6,b=2,c;c=f(a)/f(b);printf("%d\n",c);}

A.9B.6C.36D.18

71.有以下程序:

#include<stdio.h>

main()

{chara[20],b[20],c[20];

scanf("%s%s",a,b);

gets(c);

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

}

程序运行时从第一列开始输入:

Thisisacat!<回车>

则输出结果是()。

A.Thisisacat!

B.Thisisa

C.Thisisacat!

D.Thisisacat!

72.有以下程序

#include<stdio.h>

#defineP24;

#defineS(x)P*x+x;

main()

{inta=2,b=2;

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

}

程序的运行结果是

A.程序编译运行时报错,无法输出B.54

C.96D.100

73.以三级模式为框架形成的3种数据库中,真实存在于计算机外存的数据库是()。

A.概念数据库B.用户数据库C.物理数据库D.逻辑数据库

74.软件详细设计产生的图如图所示。该图是()。A.N—S图B.PAD图C.程序流程图D.E—R图

75.

76.在数据结构中,从逻辑上可以把数据结构分为()。A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构

77.

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

A.软件测试的目的是确定程序中错误的位置

B.软件测试的目的是发现程序中的错误

C.软件调试的目的是发现程序中的错误

D.软件调试后一般不需要再测试

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

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

80.在以下选项中,能正确调用对象属性的语句是()。

A.对象名(属性名)B.对象名一>属性名C.对象名属性名D.对象名.属性名

五、程序改错题(1题)81.下列给定程序中,函数fun的功能是:求出s所指字符串中最后一次出现的t所指字符串的地址,并通过函数值返回,在主函数中输出从此地址开始的字符串;’若未找到,则函数值为NULL。例如,当字符串中的内容为“123dabfl23dx”,t中内容为“ab”时,输出结果应是“l23dx”。当字符串中的内容为“l23dabfl23dx”,t中内容为“aim”时,则程序输出未找到信息“Notfound!”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:

六、程序设计题(1题)82.编写函数proc(),它的功能是求m以内(不包括m)同时能被5与11整除的所有自然数之和的平方根s,并作为函数值返回。

例如,m为100时,函数值应为s=7.416198。

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

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

试题程序:

参考答案

1.A根据算术表达式和运算符的优先级与结合性。表达式“int(x*1000+0.5)/(double)1000”,首先计算“x*1000”,由于x是double类型,1000是整型,所以“x*1000”的结果默认是double类型,即3141.59,加0.5后再执行int的强制转换,结果为3142。分母“(double)1000”强制转换为double类型,此时计算“3142/(double)1000”,3142需要转换成double类型,然后除以1000,结果为3.142000,默认保留小数点后6位。故本题答案为A选项。

2.A\nA。【解析】二分法查找只适用于顺序存储的有序线性表,对于顺序存储的非有序线性表和线性链表,都只能采用顺序查找。

\n

3.C解析:在数据库系统中,由于采用的数据模型不同,相应的数据库管理系统(DBMS)也不同。目前常用的数据模型有三种:层次模型、网状模型和关系模型。在层次模型中,实体之间的联系是用树结构来表示的,其中实体集(记录型)是树中的结点,而树中各结点之间的连线表示它们之间的关系。因此,本题的正确答案是C。

4.C

5.A

6.B

7.D

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

9.A

10.C

11.B

12.C本题考查了两层for循环。外层循环增量i的值作为内层循环执行次数的值使用。

13.A解析:C语言的字符常量是用单引号(即撇号)括起来的一个字符。除此之外,在C语言中还允许用以一个“\\”开头的字符序列来表示字符常量。其中,形式“\\ddd”表示1到3位8进制数所代表的字符;形式“\\xhh”表示1到2位16进制数所代表的字符。在本题中‘\\x13’表示回车符,是一个字符常量;‘\\081’用\u30008进制数所代表的字符,但形式不正确,因为8进制数所表示的字符中不会出现数字“8”;‘65’不是一个字符,而是一个+进制数字;“\\n”是用双引号括起来的一个字符,表示一个字符串,而不是字符常量。

14.B本题考查软件工程调试。调试与测试是两个不同的过程,有着根本的区别:调试是一个随机的、不可重复的过程,它用于隔离和确认问题发生的原因,然后修改软件来纠正问题;测试是一个有计划的,可以重复的过程,它的目的是为了发现软件中的问题。因此,软件调试的目的是为了改正软什中的错误。本题的正确答案是选项\u3000B。

15.C因为变量“a=1,b=2”,所以表达式“a>b”不成立。选项A、B和D相当于一条语句,选项A是逗号表达式,选项B和选项D是复合语句,所以都没有执行。选项C中,语句“c=a;”不执行,语句“a=b;b=c;”执行。故本题答案为C选项。

16.B解析:语句typedefstructS{intg;charh;}T的作用是用T作为struetS{intg;charh;)的简写,所以选B。

17.B解析:数据元素在计算机存储空间中的位置关系与它们的逻辑关系不一定是相同的,而且一般不可能相同。数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构,也称数据的物理结构。

18.C题干中使用typedef定义新类型名INTEGER,它代表int*类型。使用INTEGER定义p,相当于int*p。使用INTEGER定义*q,相当于int**q。所以p是基类型为int的指针变量,q是基类型为int*的指针变量,选项A、B、D错误。故本题答案为C选项。

19.A表达式“(int)(x*1000+0.5)”使用了强制转换,其计算结果为5169,(5169/1000.0)=5.169。所以“printf(“%lf\\n”,5.169);”结果是5.16900。故本题答案为A选项。

20.A

21.66解析:本题中,i,j分别为外循环和内循环的循环控制变量,外层循环共执行了四次.当i=1时,由于内层循环判断条件(2<=1)为假不执行内层循环.当i=2时,执行内层循环,输出一个#当i=3时,内层循环循环两次,输出两个#,当i=4时,内层循环循环三次,输出三#。当i=5时,循环判断条件不成立,退出外层循环。所以一共输出6个#。

22.28

23.链式存储和顺序存储链式存储和顺序存储

24.数据流数据流解析:结构化分析方法的实质是着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。

25.功能性功能性解析:注释一般分为序言性注释和功能性注释。序言性注释通常位于每个程序的开头部分,给出程序的整体说明;功能性注释一般嵌在源程序体之中,主要描述其后的语句或程序做什么,

26.E-R图E-R图解析:数据库逻辑设计的任务是将概念模型进一步转化成相应的数据模型。而E-R图是主要的概念模型,因此数据库的逻辑设计的主要工作是将E-R图转换成关系模式。

27.数据库概念设计数据库概念设计解析:数据库概念设计的目的是分析数据间内在语义关联,在此基础上建立一个数据的抽象模型。

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

29.11231123解析:在主函数中第一次调用func子函数时,m=0,i=2,i=i+m+1=3,m=i+a+b=3+5+3=11。因为在子函数中将m和i定义成了static类型,所以在子函数中对m和i进行的改变在下一次调用子函数时能进行保存,所以第二次调用子函数时,m=11,i=3,则i=i+m+1=15,m=i+a+b=15+5+3=23。

30.3535解析:在主函数中通过定义和赋初值使p和q分别指向了x和y,执行函数调用“swap(p,q)”,把p和q中的地址值传给了形参指针变量a和b,a和b分别指向了实参x和y。在函数swap()中交换了指针变量a和b的值,并没有交换a和b指向的实参的值,所以函数调用返回后x和y依然是原来的值。

31.8888解析:程序中的0210表示八进制数,%x是以十六进制形式输出。本题可先将0210转换为十进制数,再将其转换为十六进制数。

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

33.n1=%d\nn2=%d\n或n1=%d\nn2=%d或n1=%2d\nn2=%2d\n或n1=%2d\nn2=%2dn1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2d\\n或n1=%2d\\nn2=%2d解析:printf函数有两种参数:格式控制参数和输出项参数,其中格式控制参数由两种成分组成:格式说明和普通字符,普通字符将被简单地复制显示,格式说明项将引起一个输出参数项的转换与显示,它是由“%”引出并以一个类型描述符结束的字符串。本题中,n1=和n2=就是普通字符,可以直接显示,又因为n1,n2为整数,所以格式说明项为%d,也可以在%与d之间加上域宽,另外还要在每行输出结束时加转义字符\\n进行换行。所以,应填写n1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2dn或n1=%2d\\nn2=%2d。

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

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

36.调试调试

37.本题考查函数的综合知识。首先,我们可以利用强制转换类型转换运算符,将一个表达式转换成所需类型。如:(double)a是将a转换成double类型;(int)(x+y)是将x+y的值转换成整型。

本题可按部就班地逐步运算:

fun((int)fun(a+c,b),a-c)

fun((int)fun(10,5),2-8)

fun((int)15.000000,-6)

fun(15,-6)

9

38.数据库系统数据库系统解析:数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。(1)人工管理阶段。这一阶段的计算机主要用于科技计算。外存只有磁带、卡片和纸带等,软件只有汇编语言,尚无数据管理方面的软件。数据处理方式是批处理。(2)文件系统阶段。文件系统是数据库系统发展的初级阶段,它提供了简单的数据共享与数据管理能力,但是它无法提供完整的、统一的管理和数据共享的能力。由于它的功能简单,因此它附属于操作系统而不能成为独立的软件,目前一般将其看成仅是数据库系统的雏形,而不是真正的数据库系统。(3)数据库系统阶段。数据库阶段用数据模型表示复杂的数据模型,有较高的数据独立性。数据库系统为用户提供了方便的用户接口,用户可使用查询语言或终端命令操作数据库,也可以用程序方式(用COBOL、C一类高级语言和数据库语言编制的程序)操作数据库。数据库管理系统提供了数据控制功能。

39.1212解析:本题考查逗号表达式的运算规则。逗号表达式的基本格式为:“表达式1,表达式2,…”,其整个表达式的结果取最后一个子表达式的值。本题中首先计算逗号表达式中的第1个表达式a=2*3=6,然后计算第2个表达式a*2,这时整个表达式的值为12,但要注意,因为第2个表达式并没有给a赋值,因此a的值不变;接下来执行最后一个表达式a+6=12,所以整个表达式最后的值为12。

40.8888解析:C语言规定,以0开头的整型常量为八进制。另外,在primf()函数中,%X表示以十六进制无符号形式输出一个整数,且十六进制中的ABCDEF为大写字母。本题的输出应该是八进制210的十六进制形式。将八进制转换为十六进制,可以先将其转换为二进制。因为1位八进制表示3位二进制,4位二进制表示1位十六进制。(210)8=(10001000)2=(88)16,故本题输出为880

41.C解析:整型常量可以用+进制、八进制和+六进制形式来表示。+进制基本常量用一串连续的数字来表示,八进制数用数字0开头,+六进制数用数字0和字母x或X开头,各个进制都需用各自合法的字符数字表示。选项A)中9是不合法的。选项B)+六进制数字应该用数字零和字母X(或x)开头,选项D)中G不合法。

42.D解析:因为字符数组s1)中的数组名s表示的是一个地址常量。所以语句“s+=2;”不能将指针在当前位置的基础上再向后移动两位,因而程序编译时出错。

43.D解析:调用有参函数时,实参与形参的类型应相同或赋值兼容。由于整型数据与字符型数据可以通用,所以实参“32”与形参ch的类型是一致的;又因为整型变量给浮点型变量赋值是相兼容的,所以选项D)正确。

44.C解析:软件工程是解决软件项目的管理、软件开发过程中的技术、软件产品的生产率等问题,它的主要思想是强调在软件开发过程中需要应用工程化原则。

45.B解析:本题考查两个知识点:自加自减运算符和do-while循环语句。do-while循环条件是b--<0,所以循环体语句只执行一次。

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

47.D解析:程序中while语句的循环条件为i<7&&p[i]%2。当i=0时,条件成立,k=k+p[0]=11;当i=1时,条件仍成立,k=k+p[1]=11+13=24;当i=2时,p[2]%2=0条件不成立,结束while循环,所以k=24。

48.BB)【解析】一个班可以有多名学生,而一名学生只能属于一个班级,所以“班级”与“学生”两个实体集之间的联系属于一对多关系。

49.A解析:本题的change()函数实现的是:将传入的地址值的高5个单位的地址中的内容复制到传入的地址当中,即等价于*k=*(k+5)。在主函数中,首先通过while循环,循环5次调用change()函数,依次将x[0]~x[4]的地址传入,所以while循环结束后,x[0]~x[4]中的内容等于x[5]~x[9]中的内容。所以输出结果为678910,故应该选择A。

50.D结构化程序设计以模块化设计为中心,采用自顶向下、逐步求精的程序设计方法。任何算法功能都可以通过由程序模块组成的三种基本程序结构的组合:顺序结构、选择结构和循环结构来实现。

51.B解析:本题是考查手工模拟执行程序的能力。a初值是1,循环开始时b值为1,由于a>=8为假,不执行break,但a%2==1为真,执行a+=5,a值变为6,再执行continue跳过不执行a-=3语句,而立即开始下一次循环。这时b值为2,由于a值为6,a>=8仍为假,不执行break,但a%2==1为假,不执行复合语句“{a+=5;continue;}”而执行a-=3,a值变为3。再开始下一次循环,这时b值为3。由于a值为3,a>=8仍为假,不执行break,但a%2==1为真,执行a+=5,a值变为8,再执行continue跳过不执行a-=3语句,而立即开始下一次循环。这时b值为4。由于a值为8,a>=8为真,执行break,停止for循环。此时输出的b值应为4。

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

53.B解析:由栈“后进先出”的特点可知:A中e1不可能比e2先出,C中e3不可能比e4先出,且e1不可能比e2先出,D中栈是先进后出的,所以不可能是任意顺序。所以B是正确的。它执行的顺序是:e1进栈→e2进栈→e2出栈→e3进栈→e4进栈→e4出栈→e3出栈→e1出栈,所以只看出栈序列应为e2,e4,e3,e1。

54.AA。【解析】C语言是函数式的语言。它的基本组成单位是函数,在C语言中任何程序都是由一个或者多个函数组成的。

55.B解析:在对字符数组赋字符串值时,系统会自动在字符串的末尾加上一个字符串结束标志“\\0”,故指向字符数组的指针p的*(p+4)的值为“\\0”。由于“\\0”的编码值就是0,所以本题输出为0。

56.A解析:'\\72'是反斜线后跟一个八进制数,代表字符常量':'。

57.C解析:叉树的遍历分为先序、中序、后序三种不同方式。本题要求中序遍历,其遍历顺序应该为:中序遍历左子树->,访问根结点->中序遍历右子树.按照定义,中序遍历序列是BDAECF,故答案为B。

58.D解析:在格式输入中,要求给出的是编译的地址,而D)答案中给出的s[1]是一个值的表达式。

59.A

60.Bscanf(\u3000)语句中用“空格”间隔不同的字符串,空格将被全部忽略掉,所以用scanf(\u3000)函数不能输入空格;getehar(\u3000)函数用于输入字符,其调用形式为:ch=getelaar(\u3000),getehar(\u3000)函数从终端读入一个字符作为函数值,把读入的字符赋给变量ch。在输入时,空格、回车符都将作为字符读入,而且只有在用户敲入Enter键时,读入才开始执行。gets(\u3000)函数的凋用形式为:gets(str_adr),其中stradr是存放输入字符串的起始地址,可以是字符数组名、字符数组元素的地址或字符指针变量。9ets函数用来从终端键盘读入字符串(包括空格符),直到读入一个换行符为止。getc(\u3000)函数的调用形式为:ch=getc(pf)其中pf是文件指针。函数的功能是从pf指定的文件中读入一个字符,并把它作为函数值返回。

61.CP指向字符串”tuesday”,因此*(P+1)的值为n。s[0]=”monday”。

62.A

63.C本题考查的是逗号表达式。逗号表达式的求解步骤是先求解表达式1,然后依次求解表达式2,直到表达式N的值。整个逗号表达式的值就是最后一个表达式N的值。表达式(x=3*y,x+6)中,x=15。表达式y=x—1=14。

64.D

65.C

66.A

67.D

\n本题考查'drhile循环。第一次循环,y=y-1,y=2,循环条件成立,x=1,X++后值为1,x自加变成2,进入循环,a=a+1=1,判断if语句条件是否成立,y<x不成立,接着执行下一次循环

温馨提示

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

评论

0/150

提交评论