2021-2022年贵州省六盘水市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第1页
2021-2022年贵州省六盘水市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第2页
2021-2022年贵州省六盘水市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第3页
2021-2022年贵州省六盘水市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第4页
2021-2022年贵州省六盘水市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

2021-2022年贵州省六盘水市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.在非线性结构中,每个结点()。

A.无直接前趋

B.只有一个直接前趋和个数不受限制的直接后继

C.只有一个直接前驱和后继

D.有个数不受限制的直接前驱和后继

2.

3.下面程序的运行结果是

#include<stdio.h>

voiddelch(char*s)

{inti,j;

char*a;

a=s;

for(i=0,j=0;a[i]!=′\n′;i++)

if(a[i]>=′0′&&a[i]<=′9′)

{s[j]=a[i];j++;}

s[j]=′\0′;}

main()

{char*item="a34bc";

delch(item);

printf("\n%s",item);}

A.abcB.34C.a34D.a34bc

4.若以下选项中的变量全部为整型变量,且已正确定义并赋值,则语法正确的switch语句是()。

A.switch(a+9){casecl:y=a-b;casec2:y=a+b;}

B.switcha*b{casel0:x=a+b;default:y=a-b;}

C.switch(a+b){casel:case3:y=a+b;break;case0:case4:y=a-b;}

D.switch(a*a+b*b){default:break;case3:y=a+b;break;case2:y=a-b;break;}

5.以下不能对二维数组a进行正确初始化的语句是

A.inta[2][3]={0};

B.inta[][3]={{1,2},{0}};

C.inta[2)[3]={{1,2},{3,4},{5,6}};

D.inta[][3]={1,2,3,4,5,6};

6.健壮的算法不会因非法的输入数据而出现莫名其妙的状态()

A.对B.错

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

A.在C语言中,可以使用动态内存分配技术定义元素个数可变的数组

B.在c语言中,数组元素的个数可以不确定,允许随机变动

C.在C语言中,数组元素的数据类型可以不一致

D.在C语言中,定义一个数组后.就确定了它所容纳的元素的个数

8.有以下程序A.6B.3C.8D.12

9.若需要0(nlog2n)的时间内完成对数组的排序,且要求排序是稳定的,则可选择排序方法是()。A.快速排序B.堆排序C.归并排序D.直接插入排序

10.程序运行后的输出结果是()。A.10B.11C.20D.21

11.最大容量为n的循环队列,队尾指针是rear,队头是front,则队空的条件是()。

A.(rear+1)MODn=front

B.rear=front

C.rear+1=front

D.(rear-l)MODn=front

12.以下选项中合法的C语言常量是()。

A.‘C-STR’B.2014.1C.”\1.0D.2EK

13.

14.合法的常量是()。A.‘program’B.–e8C.03xD.0xfl

15.在一个双向链表中,q的前一个节点为p,q的后一个节点为n,删除q所指向节点,则执行()

A.deleteq;

B.q->prev->next=q->prev;q->next->prev=q->next;deleteq;

C.q->prev=p->next;p->next=p->prev;deleteq;

D.q->next=q->prev->next;q->prev=q->next->prev;deleteq;

E.q->prev->next=q->next;q->next->prev=q->prev;deleteq;

F.p->prev->next=p->next;p->next->prev=p->prev;deleteq->next;

16.以下叙述中正确的是A.局部变量说明为static存储数,其生存期将得到延长

B.全局变量说明为static存储类,其作用域将被扩大

C.任何存储类的变量在未赋初值时,其值都是不确定的

D.形参可以使用的存储类说明符与局部变量完全相同

17.有如下程序:#include<stdio.h>msin(){chars[]="ABCD",*P;for(p=s+1;p<s+4;p++)Printf("%s\n",p);}该程序的输出结果是()。

A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD

18.如果要求一个线性表既能较快地查找,又能适应动态变化的要求,可以采用下列哪一种查找方法()

A.分块B.顺序C.折半D.哈希

19.

20.如有inta=11;则表达式(a++*1/3)的值是()。

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

二、2.填空题(20题)21.测试用例包括输入值集和【】值集。

22.下面程序

main()

{intx,y,m,n;

x=5;y=8;

m=++x,x;

n=y+y++;

printf("%d,%d,%d,%d",x,y,m,n);

}

运行后,x,y,m,n的值是______。

23.mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。

intmystrlen(char*str)

{inti;

for(i=0;【】!='\0';i++);

return(【】);

}

24.源程序文档化要求程序应加注释。注释一般分为序言性注释和【】注释。

25.队列是限定在表的一端进行插入和在另一端进行删除操作的线性表。允许删除的一端称作()。

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

#include<stdio.h>

main()

{inti;

for(i=′a′;i<′f′;i++,i++)printf("%c",i-′a′+′A′);

printf("\n");

}

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

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

main()

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

switch(a>0)

{

case1:

switch(b<0)

{case1:printf("@");break;

case2:pnntf("!");break;

}

case0:

switch(c==5)

{case0:pnntf("*");break;

case1:printf("#");break;

case2:printf("$");break;

}

default:printf("&");

}

printf("\n");

}

29.如下图所示的二叉树后序遍历序列是【】。

30.衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准,其中()是度量一个模块功能强度的一个相对指标。

31.若有定义:inta=4,b=5,c=6;然后顺序执行下列语句后,变量b中的值是()。c=(a-=(b-5));c=(a%3)+(b=1);

32.输出指针数组各元素所指的整数值和它存放的地址值。

#include<stdio.h>

main()

{inti;

inta[5]={1,3,5,7,9};

int*num[5];

int【】;

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

num[i]=【】;

p=num+0;

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

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

p++;

}

}

33.以下说明语句中,【】是结构体类型名。

typedefstruct

{intn;

charch[8];

}PER;

34.通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为【】。

35.若已定义inta[10],i;以下fun函数的功能是,在第一个循环中给前10个数组元素依次赋1,2,3,4,5,6,7,8,9,10;在第二个循环中使a数组前10个元素中的值对称拆叠,变成1,2,3,4,5,5,4,3,2,1。请填空。

fun(inta[])

{inti;

for(i=1;i<=10;i++)【】=i;

for(i=0;i<5;i++)【】=a[i];

}

36.设有以下定义

struetss

{intinfo;struetss*link;}x,y,z;

且已建立如下图所示链表结构:

请写出删除结点y的赋值语句【】。

37.填空补充以下程序。

#define【】30

{【】;

total=numPRICE;

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

}

38.下列执行后输出的结果是【】。

main()

{intarr[10],i,k=0

for(i=0;i<10;i++)atr[i]=i

for(i=1,i<4;i++)k+=arr[i]+i;

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

}

39.软件维护活动包括以下几类:改正性维护、适应性维护、【】维护和预防性维护。

40.数据元素之间______的整体称为逻辑结构。

三、1.选择题(20题)41.执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是______。mein(){chars[100];intc,i;scanf("%c",&C);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%s\n",c,i,s);}

A.123,456,789B.1,456,789C.1,23,456,789D.1,23,456

42.下列说法错误的是()。

A.下列结构体定义时,占据了5个字节的空间structstudent{intnum;intage;charsex;}

B.结构体的成员名可以与程序中的变量名相同

C.对结构体中的成员可以单独使用,它的作用相当于普通变量

D.结构体可以嵌套定义

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

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

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

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

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

44.有以下程序:main(){chark;inti;for(i=1;i<3;i++){scanf("%c",&k);switch(k){case'0':printf("another\n");case'1':printf("number\n");}}}程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是

A.anothernumber

B.anothernumberanother

C.anothernumbernumber

D.numbernumber

45.软件需求分析阶段的工作,可以分为4个方面:需求获取、需求分析、编写需求规格说明书以及()。

A.阶段性报告B.需求评审C.总结D.以上都不正确

46.有定义语句:"inta=1,b=2,c=3,x;",则以下选项中各程序段执行后,x的值不为3

A.if(c<a)x=1;elseif(b<a)x=2:elsex=3;

B.if(a<3)x=3:elseif(a<2)x=2;elsex=1;

C.if(a<3)x=3;if(a<2)x=2;if(a<l)x=1;

D.if(a<b)x=b;if(b<c)x=cif(c<a)x=a;

47.在标准C语言中,下列程序的输出结果为______。main(){printf("%e",123.456);}

A.123.456B.123.4560C.1.23456e2D.1.234560e+002

48.以下选项中,当x为大于1的奇数时,值为0的表达式是

A.x%2==1B.x/2C.x%21=0D.x%2==0

49.微型机系统中,对输入设备赶进行管理的基本程序模块(BIOS)存放在()

A.RAM中B.ROM中C.硬盘中D.寄存器中

50.下列程序的输出结果是()。#include<stdio.h>#include<string.h>main(){chara[]="\n123\\";printf("%d,%d\n",strlen(a),sizeof(a));}

A.5,6B.5,5C.6,6D.6,5

51.若希望下列的程序运行后输出25,程序空白处的正确选项是()。main(){inti,j=50,a[]={7,4,10,5,8};for()j+=a[i];printf("%d",j-40);}

A.i=1;i<4;++iB.i=1;i<3;++iC.i=4;i>2;i--D.i=2;i<4;++i

52.编制一个好的程序,首先要保证它的正确性和可靠性,还应强调良好的编程风格,在书写功能性注释时应考虑

A.仅为整个程序作注释B.仅为每个模块作注释C.为程序段作注释D.为每个语句作注释

53.以下程序的输出结果是______。#include<stdio.h>main(){inta=200;#definea100printf("%d",a);#undefaprintf("%d",a);}

A.200100B.100100C.100200D.200200

54.在深度为5的满二叉树中,叶子结点的个数为A.32B.31C.16D.15

55.待排序的关键码序列为(33,18,9,25,67,82,53,95,12,70),要按关键码值递增的顺序排序,采取以第一个关键码为基准元素的快速排序法,第一趟排序后关键码33被放到第()个位置。

A.3B.5C.7D.9

56.模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准则是模块的

A.抽象和信息隐蔽B.局部化和封装化C.内聚性和耦合性D.激活机制和控制方法

57.已知在ASCII字符集中,数字0的序号为48,下列程序的输出结果为______。main()}chara='0',b='9';printf("%d,%c\n",a,b);}

A.因输出格式不合法B.48,57C.0,9D.48,9

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

A.C语言比其他语言高级

B.C语言可以不用编译就被计算机识别并执行

C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式

D.C语言出现最晚,具有其他语言的一切优点

59.阅读下列程序段,则程序的输出结果为#include"stdio.h"#defineM(X,Y)(X)*(Y)#defineN(X,Y)(X)/(Y)main(){inta=5,b=6,c=8,k;k=N(M(a,b),c);printf("%d\n",k);}

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

60.树是结点的集合,它的根结点的数目是()。

A.有且只有1个B.1或多于1C.0或1D.至少有2个

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

#defineP(a)a+a

voidF(intx)

{return(P(2)*x*x);}

main()

{printf("%d\n",F(1+3));}

程序的运行结果是

A.10B.34

C.64D.编译出错

62.以下程序段中的变量已正确定义

63.语句“printf(”a\bhow\’are\’y\\\bou\n”);”的输出结果是()。A.A.a\bhow\'are\'y\\bou

B.a\bhow\’are\’y\bou

C.how'are'you

D.ahow'are'y\bou

64.以下不构成无限循环的语句或语句组是()。

65.已知数据表A中每个元素距其最终位置不远,为了节省时间,应采用的算法是()。

A.堆排序B.直接插入排序C.快速排序D.直接选择排序

66.下列选项中不合法的十六进制数是()。

A."0"xffB."0"X11C."0"x1gD.”0”Xabc

67.层次型、网状型和关系型数据库划分原则是()。

A.记录长度B.文件的大小C.联系的复杂程度D.数据之间的联系方式

68.执行下列程序时输入:123<空格>456<空格>789<回车>输出结果是main(){chars[100];intc,i;scanf("%c",&c);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%s\n",c,i,s);}

A.123,456,789B.1,456,789C.1,23,456,789D.1,23,456

69.设有定义:

则以下赋值语句中错误的是()。

A.data2=datal;

B.data2=(2,6.;

C.

D.

70.有以下程序:

#definef(x)(x*x)main

{

inti1,i2;

i1=f(8)/(4);i2=f(4+4)/f(2+2);

printf("%d,%d\n",i1,i2);

}

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

A.64,28B.4,4C.4,3D.64,64

71.

72.下面描述中错误的是()。

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

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

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

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

73.以下不构成无限循环的语句或语句组是()。

74.

75.设有以下语句

charchl,ch2;scanf("%c%C",&chl,&ch2);

若要为变量chl和ch2分别输入字符A和B,正确的输入形式应该是()。

A.A和B之间用逗号间隔

B.A和B之间不能有任何间隔符

C.A和B之间可以用回车间隔

D.A和B之间用空格间隔

76.

77.下面程序的输出结果是

#include<stdio.h>

main(){

inti=2;

printf("%d",f(i,i+1));

}

intf(inta,intb)

{intc;

c=a;

if(a>b)c=1;

elseif(a==b)c=0;elsec=-1;

return(c);

}

A.-1B.0

C.1D.2

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

A.数据库管理系统是数据库的核心

B.数据库系统由数据库、数据库管理系统、数据库管理员三部分组成

C.数据共享最好的是数据库系统阶段

D.数据库中的数据独立于应用程序而不依赖于应用程序

79.以下选项中关于程序模块化的叙述错误的是()。

A.可采用自底向上、逐步细化的设计方法把若干独立模块组装成所要求的程序

B.把程序分成若干相对独立、功能单一的模块,可便于重复使用这些模块

C.把程序分成若干相对独立的模块,可便于编码和调试

D.可采用自顶向下、逐步细化的设计方法把若干独立模块组装成所要求的程序

80.以下正确的字符串常量是()。

五、程序改错题(1题)81.下列给定程序中,函数proc的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCIl码升序排序后输出。例如,输入opdye,则应输出deopy。请修改程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include%string.h>#include%stdlib.h>#include<conio.h>#include<stdio.h>//****found****intproc(charstr[]){charC;unsignedi,j;for(i=0;i<strlen(str)-1;i++)for(j=i+1;j<strlen(str);j4-+)if(str[i]>str[j]){c=str[j]://****found****str[j]=str[i++];str[i]=C;}}voidmain{charst/[81];system("CLS");printf("\nPleaseenteracharacterstring:");gets(str);printf("\nknBeforesorting:\n%s",str);proc(str);printf("\nAftersortingdecendingly:\n%S",str);}

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,规定输入的字符串中只包含字母和*号。编写函数fun(),其功能是除了字符串前导和尾部的*号外,将字符串中其他的*号全部删除。形参h指向字符串中第一个字母,形参p指向字符串中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。例如,若字符串中的内容为“****A*BC*DEF*G********”,删除后,字符串中的内容应当是“****ABCDEFG********”。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#include<conio.h>#include<string.h>voidfun(char*a,char*h,char*p){}main(){chars[8l],*t,*f;printf(“Enterastring:\n”);gets(s);t=f=s;while(*t)t++;t--;while(*t==‘*’)t--;while(*f==‘*’)f++;fun(s,f,t);printf(“Thestringafterdeleted:\n”);puts(s);}

参考答案

1.D

2.D

3.B解析:考查用指针引用字符串元素的方法。指针a通过数组元素下标来从头逐个地引用字符串item中的字符,判断不是0~9之间的数字时,就去掉这个字符,所以程序结束后,字符串item中就只剩下和两个字符了。

4.D选项A,当cl和c2相等时,不成立;选项B,a*b要用括号括起来;选项C,case与后面的数字用空格隔开。

5.C解析:关于二维数组的初始化,我们需要掌握如下方法:①所赋初值个数与数组元素的个数相同;②所赋初值行数少于数组行数时,系统将自动给后面各行的元素补初值0;③在给二维数组赋初值时可以不用行花括号对。选项C)应该是inta[3][2]={{1,2},{3,4},{5,6,}};

6.A

7.D在C语言中,数组元素的个数是确定的,不允许随机变动,数组定义好后,它所能容纳的元素的个数也就确定了,并且同一个数组中所有元素都是同一类型。

8.A[解析]本题中第一次调用为fum(8.fn(5.6)),因为fun(5.6)返回值为5.所以第二次调用为fn(8.5)=6.所以选择A)。

9.C

10.D[解析]声明data是结构S数组。初始化data[0].a=10;data[O]b=100;data[1].a=20;data[]b=200.主函数中p=data[1];即p.a=data[1].a;p.b=data[1].b;执行语句prit("%odn",++(pa);打印输出时p.a先增1再打印。p.a=data\u3000\u3000[1].a=20.先增1等于21.

11.B

12.B所谓常量,是指在程序运行的过程中,其值不能被改变的量。在C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。选项A是字符串,需要使用双引号;选项C不是合法的常量形式;选项D为实型常量中的指数形式,但指数形式e(E)之前必须是数字,之后必须为整数。故本题答案为B选项。

13.C

14.D

15.E

16.A解析:全局变量说明为static存储类,其生命周期将得到延长,但作用域不能被扩大;static存储类变量在未赋初值时,是有默认值的,形参中的存储类说明符与局部变量完全相同。

17.D解析:本题考查指向字符串指针的运算方法。执行p=s+1后,指针变量p就指向字符串中的第二个字符“B”,然后输出字符串“BCD”并换行;下面继续执行循环语句,指针变量p指向下一个字符“C”,输出字符串“CD”,最后一次循环,p指向字符“D”,输出字符串“D”。

18.D

19.B

20.B

21.输出输出解析:测试用例曲测试输入数据(输入值集)和与之对应的预期输出结果(输出值集)两部分组成。

22.69616。6,9,6,16。解析:赋值语句m=++x,x;是将逗号表达式的值赋给m,x和m的值都是6,赋值语句n=y+y++;是将y+y的值16赋给n,再执行y的自加运算,y的值变为9。

23.str[i]或str+iistr[i]或str+i\r\ni

24.功能性功能性

25.队头队头解析:队列是只允许在一端删除,在另一端插入的顺序表,在队列中,允许插入的一端叫做“队尾”,允许删除的一端叫做“队头”。

26.ACEACE解析:在本题中,for循环体每执行完一次,变量i的值自加两次。i的初值为\'a\',执行一次循环后变为\'c\',之后再变成\'e\',当其变为\'g\'时,循环条件若不满足,循环终止,故本题共输出3个字符。表达式'i-\'a\'+\ue008\'A\'\ue009'即表示输出i对应的大写字母,结果为ACE。

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

28.#&#&解析:首先看最外面的switch,其表达式为a>0,结果为真(即1),从case1:标号处开始执行。这里又是一个switch语句,其表达式为b<00,结果为假(即0),由于没有case0:或default:标号,所以直接跳过此switch语句。因为没有遇到break;语句,所以继续执行进入内部第2个switch语句,其表达式为c==5,结果为真,从case1:标号处开始执行,输出一个#,遇到break;语句,跳出该内部switch语句,最后执行default:标号后的输出语句输出一个&后,整个外部switch语句执行完毕。程序最后输出的换行符不会显示,所以本题应该填#&。

29.GDBHIEFCAGDBHIEFCA解析:后序遍历二叉树的顺序为:后序遍历左子树→后序遍历右子树→访问根结点。按照定义,后序遍历序列是GDBHIEFCA。

30.内聚性内聚性解析:模块的独立程度是评价设计好坏的重要度量标准。衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准。内聚性是度量一个模块功能强度的一个相对指标,耦合性则用来度量模块之间的相互联系程度。

31.11解析:本题考查的是基本赋值运算符和赋值表达式。a-=(b-5)等价于a=a-(b-5)=4,c=a=4;a%3=1,c=(a%3)+(b=1)=2,其中b的值被b=1确定为1。

32.**pa+I**p*p

33.PERPER解析:本题中,typedef声明新的类型名PER来代替已有的类型名,PER代表上面指定的一个结构体类型,此时,也可以用PER来定义变量。

34.软件生命周期软件生命周期解析:软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等活动。

35.a[i-1]或a[-1+i]a[9-i]或a[-i+9]a[i-1]或a[-1+i]\r\na[9-i]或a[-i+9]

36.x.link=&z;或x.link=y.link;或x.link=x.link->link;或x.link=*(x.link).link;x.link=&z;或x.link=y.link;或x.link=x.link->link;或x.link=*(x.link).link;解析:链表中结点的删除,要删除结点y,只需要让结点x的指针域指向y结点的指针域所指向的后续结点就可,因此只需把结点z的地址赋给x的指针域就可以了,即让结点x的指针域指向结点z。而结点z的地址保存在结点y的指针域中,因此只需把结点y的指针域赋值给结点x的指针域即可。

37.PRICEintnumtotaltotalnum

38.1212解析:本题的第—个for循环用于始数组arr赋初值,第二个for循环用于求和运算。由于第二个for循环初始值为1,而循环条件为i<4,所以求的是arr[1]到arr[3]及i的和,所以输出结果为12。

39.完善性软件维护活动包括以下几类:改正性维护,适应性维护、完善性维护和预防性维护,完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。

40.逻辑关系逻辑关系

41.D解析:根据给定的数据输入格式:123<空格>456<空格>789<回车>,第一个scanf语句中,格式字符为“%c”,只能得到一个字符\'1\',第二个scanf语句中格式字符为“%d”,变量i得到的数值为23,第三个scanf语句中格式字符为“%s”,遇到空格就自动结束,因此字符数组s得到的是'456\\0'。因而正确答案为选项D。

42.A解析:本题主要考查定义结构体的几个特点:①结构的定义明确了结构的组成形式,定义了一种C语言中没有而用户需要的新的数据类型。与其他的数据类型不同,在程序编译的时候结构的定义并不会使系统为该结构分配内存空间,只有在说明结构变量时才分配内存空间;②结构体的成员名可以与程序中的变量名相同;⑧结构体中的成员可以单独使用,它的作用相当于普通变量;④结构体可以嵌套定义。

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

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

44.C解析:switch语句的执行过程是:在switch后面的表达式的值和case后面常量表达式的值吻合时,就执行后面的语句.如果在该语句的后面没有break语句,则继续执行下一个case,直到遇到break语句或switch多分支的结束,在switch语句中,break语句的作用是使流程跳出switch结构,终止Switch语句的执行.本题中在for循环中嵌套了swish语句,每循环一次通过scanf()函数从键盘上输入一个k值,然后执行switch语句。for循环共循环了2次,当i=1时,从键盘上输入0,使得k的值为0,执行switch语句中case:0后面的语句,输出another,接着执行case:0下面的语句输出number,退出switch语句,当i=2时,从键盘上输入1,使得k的值为1,执行switch语句中case1后面的语句,输出number,退出switch语句.当i=3时退出循环.故最后的输出为another、number和number,所以,4个选项中选项C符合题意。

45.B解析:需求分析阶段有4方面的工作:需求获取、需求分析、编写需求规格说明书和需求评审。

46.C解析:本题考核的知识点是if-else语句的程序分析。

选项A首先判断if语句条件中表达式的值“3<1”为假,然后执行最近的else后面的语句,该else后面又为if-else语句,在这个if-else语句中首先判断该if语句条件中表达式的值“2<1”为假,程序执行其最近的else后面的语句,将3赋值给x。

选项B中首先判断if语句条件中表达式的值“1<3”为真,然后执行最近的else后面的语句“x=3”,后面的else不再执行,最后x的值为3。

选项C中,首先选执行第一条if,由于“1<3”为真,执行此if后面的语句“x=3”,接着执行第二条if语句,由于“1<2”为真,执行此if后面的语句“x=2”,接着执行第三条语句,由于“1<1”为假,后面的语句不执行,所以最后的x值为2不为3。

选项D中,首先选执行第一条if语句,由于“a<b”为真,执行此if后面的语句“x=b”;接着执行第二条if语句,由于“b<c”,为真,执行此if后面的语句“x=c”,接着执行第三条if语句,由于“c<a”为假,后面的语句不执行,所以最后的x值为c即为3.所以,4个选项中选项c符合题意。

47.D

48.D解析:因为x的值为大于1的奇数,所以x除以2的余数等于1,因此,选项A)、C)中表达式的结果为真,不为0;对于选项B)来说,x除以2的商不会等于0;选项D)中表达式的结果为假,即等于0。

49.B

50.A解析:转义字符'\\n'表示换行,'\\\\'表示反斜杠,函数strlen()是计算字符串的长度,不包括文件结束标志('\\0'),函数sizeof()统计字符串所占的字节数。

51.D解析:要想使程序输出是25,则j-40=25,j=65,而j初值是50,所以填入for循环中的语句,使引用的数组元素累加为65-50=15即可。

52.C解析:功能性注释是嵌在源程序体中的,用以描述其后的语句或程序段是在做什么工作,或者执行了下面的语句会怎么样。所以它描述的是一段程序,是为程序段做注释,而不是每条语句。

53.C解析:#define宏名的有效范围为定义命令之后到本源文件结束,可以在程序中使用#undef命令终止宏定义的作用域。本题由于#undef的作用,使a的作用范围在#definea100到#undefa之间,故答案为C。

54.C2(n-1)

=2(5-1)=16

55.BB.【解析】快速排序的基本思想是:从表中选取一个元素(如本题中的33),将表中小于此元素的移到前面,大于此元素的移到后面,结果把线性表分割成两部分(两个子表),此元素插入到其分界线的位置处。然后分别对两个子表再次分割……本题中33作为分割的中界线,第一趟排序后排在比它小的18、9、25、12后面。

56.C解析:模块的独立程序是评价设计好坏的重要度量标准。衡量软件的模块独立性使用耦合性和内聚性这两个定性的度量标准。

57.D解析:注意输出控制符%d,%c,分别表示以十进制形式输出字符的ASCII码值和字符。

58.C解析:计算机语言分为低级语言和高级语言,C语言属于高级语言,但并非比其他语言高级,选项A)错误;除了机器语言外,其他各种语言都必须编译成能被计算机识别的机器代码才能执行,选项B)错误;C语言出现于1972年至1973年,并不是出现最晚的语言,选项D)错误。

59.A解析:带参数的宏定义命令行形式如下:#define宏名(形参表)替换文本。首先进行M的宏替换,之后再进行N的宏替换,替换后的表达式为(a)*(b)/(C)。

60.CC。【解析】树具有明显的层次关系,即树是一种层次结构。在树结构中,根结点在第一层上。当树为非空时,树中有且只有一个根结点,当树为空时,树中根结点的数目为0。

61.DC语言中,函数返回一个值通常使用return语句返回函数的值,如果函数中没有return语句,则函数会返回一个没有用的值。为了明确表示函数不返回值,可以用void定义函数为无返回类型,这样系统就能够保证不使函数带回任何值,即禁止在调用函数中使用被调用函数的返回值。题目中函数F定义为void型,函数中有return语句,编译时系统会给出警告。但是在main函数中要输出F的值,系统会报错。

62.A由于内层循环for(k=1;k<3;k++)后面直接跟了空语句“;”,因此在循环内部什么操作也不做,执行完内层循环后执行打印语句,所以打印了一个“*,’故本题答案A)。

63.C“\\b”格式符表示退格,功能是将它后面的字母把它前面的字母覆盖,导致“\\b”格式符前面的字母不能输出;“\\'”格式符表示输出单引号字符;“\\\\”格式符表示输出反斜线字符。

64.A选项A中d0后面的语句只执行了-次匣结束了循环;B选项中条件while(1)永远成立,所以是死循F;C选项中n的值为10,而循环体为空语句,所以while(n)永远为真,进入死循环;D选项中for语句第二个表达式为空,所1以没有判别条件,进入死循环。

65.B当数据表A中每个元素距其最终位置不远,说明数据A按关键字值基本有序。在待排序数据基本有序的情况下,采用插入排序所用的时间最少。

66.C十六进制是以“0x、0X”开头的字符串,字符串中只能含有0~9这l0个数字和a、b、C、d、e、f这6个字母。

67.D层次模型的基本结构

温馨提示

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

评论

0/150

提交评论