2022-2023年云南省保山市全国计算机等级考试C语言程序设计模拟考试(含答案)_第1页
2022-2023年云南省保山市全国计算机等级考试C语言程序设计模拟考试(含答案)_第2页
2022-2023年云南省保山市全国计算机等级考试C语言程序设计模拟考试(含答案)_第3页
2022-2023年云南省保山市全国计算机等级考试C语言程序设计模拟考试(含答案)_第4页
2022-2023年云南省保山市全国计算机等级考试C语言程序设计模拟考试(含答案)_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

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

文档简介

2022-2023年云南省保山市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.下列排序算法中,()算法可能会出现下面情况:初始数据有序时,花费的时间反而最多。

A.堆排序B.冒泡排序C.快速排序D.希尔排序

2.若一个栈以向量V[1..n]存储,初始栈顶指针top为n+1,则下面x进栈的正确操作是()。

A.top=top+1;V[top]=x

B.V[top]=x;top=top+1

C.top=top-1;V[top]=x

D.V[top]=x;top=top-1

3.以下选项中,当x为大于1的奇数时,值为0的表达式是A.x%2==1B.x/2C.x%2!=0D.x%2==0

4.有以下程序段charch;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII十进制代码为97,则执行上述程序段后输出结果是()。A.因变量类型与格式描述符的类型不匹配输出无定值

B.输出项与格式描述符个数不符,输出为零值或不定值

C.a,97,12k=12

D.a,97,k=12

5.下列字符数组初始化语句中,不正确的是()。

A.charc[]=goodmorning;

B.charc[20]="goodmorning";

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

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

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

A.耦合度B.内聚度C.复杂度D.数据传输特性

7.下列函数的功能是

set(s,t)

{char*s,*t;

while((*s)&&(*t)&&(*t++==*s++));

return(*s-*t);

}A.A.求字符串的长度

B.比较两字符串的大小

C.将字符串s复制到字符串t中

D.将字符串s连接到字符串t后

8.以下是根据文件大小分配存储空间的一个算法伪代码,请问其空间复杂度是多少()A.O(n)B.O(n^2)C.O(2^n)D.O(n*log(n))

9.下列选项中,能够满足“若字符串s1等于字符串s2,则执行ST”要求的是()。A.if(strcmp(s2,s1)==0)ST;

B.if(s1===s2)ST;

C.if(strcpy(s1,s2)==1)ST;

D.if(s1,s2==0)ST;

10.若有定义“doublea;floatb;shortc;”,若想把1.2赋给变量a,3.4赋给变量b,5678赋给变量c,程序运行时键盘输入:1.23.45678<回车>则以下正确的读入语句是()。A.scanf("%If%If%d",&a,&b,&c);

B.scanf("%If%If%hd",&a,&b,&c);

C.scanf("%If%f%hd",&a,&b,&c);

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

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

A.可以通过typedef增加新的类型

B.可以typedef将已存在的类型用一个新的名字来代表

C.用typedef定义新的类型名后,原有类型名仍有效

D.用typedef可以为各种类型起别名,但不能为变量起别名

12.

13.有下列程序: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

14.设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩.,则表SC的关键字(键或码)为()

A.课号,成绩B.学号,成绩C.学号,课号D.学号,姓名,成绩

15.下面程序的运行结果是()。#include<stdio.h>main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}

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

16.以下程序拟实现计算sum=1+1/2+1/3+…+1/50。#include<stdio.h>main(){inti;doublesum;sum=1.0;i=1;do{i++-;sum+=1/i;}while(i<50);printf(“sum=%lf\n”,sum);}程序运行后,不能得到正确结果,出现问题的语句是()。

A.sum+=1/i;B.while(i<50);C.sum=1.0D.i++;

17.若有定义“intx=12,y=8,z;”,在其后执行语句“z=0.9+x/y;”,则z的值为()。

A.1B.1.9C.2D.2.4

18.若有宏定义“#defineA_RECT(W,H)W*H”和以下程序段:intx=5,y=6,area1,area2;area1=A_RECT((x-1),(y+1));area2=A_RECT(x+3,y-1);执行上述程序段后,变量area1和area2的值分别是()。

A.022B.2840C.2822D.040

19.

20.链表不具有的特点是A.A.不必事先估计存储空间

B.可随机访问任一元素

C.插入和删除不需要移动元素

D.所需空间与线性表长度成正比

二、2.填空题(20题)21.软件危机出现于60年代末,为了解决软件危机,人们提出了【】的原理来设计软件,这就是软件工程诞生的基础。

22.以下函数把b字符串连接到a字符串的后面,并返回a中新字符串的长度。请填空。

strcen(chara[],charb[])

{intnum=0,n=0;

while(*(a+num)!=【】)num++;

while(b[n]){*(a+num)=b[n];num++;【】;}

return(num);

}

23.下面程序有两个printf语句,如果第一个printf语句输出的是194,则第二个printf语句的输出结果是【】。

main()

{inta[10]={1,2,3,4,5,6,7,8,9,0},*p;

p=a;

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

printf("%x\",p+9);

}

24.下列程序的输出结果是______。

main()

{chara[]="ABCDEFG";

char*cp=&a[7];

while(--cp>&a[0])putchar(*cp);

}

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

26.在长度为n的有序线性表中进行二分查找。最坏的情况下,需要的比较次数为【】。

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

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

structaa

{intx,*y;

}*p;

inta[8]={10,20,30,40,50,60,70,80};

structaab[4]={100,&a[1],200,&a[3],10,&a[5],20,&a[7]};

main()

{p=b;

printf(%d",*++p->y);

printf("%d\n",++(p->x));

}

29.以下程序中,for循环体执行的次数是【】。

#defineN2

#defineMN+1

#defineKM+1*M/2

main()

{

inti;

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

{…}

}

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

31.以下程序的功能是:求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。请填空。

main()

{intx[10],a[9],i;

for(i=0;i<10;i++)scanf("%d",&x[i]);

for([11];i<10;i++)

a[i-1]=x[i]+[12];

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

printf("");

}

32.以下程序运行后的输出结果是______。

structNODE

{inthum;structNODE*next;

};

main()

{structNODEs[3]={{1,'\0'},{2,'\0'},{3,'\0'}},*p,*q,*r;

intsum=0;

s[0].next=s+1;s[1].next=s+2;s[2].next=s;

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

sum+=q=>next->num;sum+=r->next->next->num;

33.已知字母A的ASCII码为65。以下程序运行后的输出结果是______。

main()

{chara,b;

a='A'+'5'-'3';b=a+'6'-'2';

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

}

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

main()

{chars[]="9876",*p;

for(p=s;p<s+2;p++)printf("%s\n",p);

}

35.设有定义:intn,*k=&n;以下语句将利用指针变量k读写变量n中的内容,请将语句补充家整。

seanf("%d",【】);

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

36.执行下面程序段后,k的值是【】。

r=1;n=203;k=1

do{k*=n%10*r;n/=10;r++;}while(n);

37.目前实际存在和使用的广域网基本上都是采用______拓扑结构类型。

有以下程序:

#include<string.h>

structSTU

{intnum;

floatTotalScore;};

voidf(structSTUp)

{structSTUs[2]={{20041,703},{20045,537}};

p.num=s[1].num;p.TotalScore=s[1].TotalScore;

}

main()

{structSTUs[2]={{20041,703},{20042,580}};

f(s[0]);

printf("%d%3.0f\n",s[0].num,s[0],TotalScore);

}

程序运行后的输出结果是【】。

38.以下程序调用invert函数按逆序重新放置a数组元素的值。a数组中的值在main函数中读入。

#include<stdio.h>

#defineN10

invert(s,i,j)

int*s,i,j;

{intt;

if(i<j)

{t=*(s+i);

*(s+i)=(s+j);

*(s+j)=t;

invert(s,【】,j-1);

}

}

main()

{

inta[N],i;

for(i=0;i<N;i++)scanf("%d",a+【】);

invert(a,0,N-1);

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

printf("\n")

}

39.注释说明了程序的功能,它分为【】注释和功能性注释。

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

main()

{unsigneda=0112,x;

x=a>>3;

printf("x=%o",x);

}

三、1.选择题(20题)41.与数学式子对应的C语言表达式是

A.3*xn(2*x-1)

B.3*x**n(2*x-1)

C.3*pow(x,n)*(1/(2*x-1))

D.3*pow(n,x)/(2*x-1)

42.关系数据库管理系统能实现的专门关系运算包括()。

A.排序、索引、统计B.选择、投影、连接C.关联、更新、排序D.显示、打印、制表

43.有以下程序main(){intm,n;printf("Enterm,n:");scanf("%d%d",&m,&n);while(m!=n){while(m>n)m-=n;while(n>m)n-=m;}printf("m=%d\n",m);}如果从键盘上输入6514<回车>,则输出结果为()

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

44.设有如下程序:#include"string.h"main(){staticchars1[20],s2[20];scanf("%s",s1);scanf("%s",s2);if(strcmp(s1,s2))printf("@");elseprintf("$");printf("%d\n",strlen(strcat(s1,s2)));}如果从键盘上输入name<回车>name1<回车>,则程序运行后的输出结果是()

A.$8B.@10C.$9D.@9

45.下列程序的运行结果为()。#include<stdio.h>main(){structdate{intyear,month,day;}today;printf("%d\n",sizeof(structdate));}

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

46.以下程序的输出结果是______。main(){inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d\n",s);}

A.18B.19C.20D.21

47.下列程序的输出结果是#include"stdio.h”"main(){inti,a=0,b=0;for(i=1;i<10;i++){if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b);}

A.a=4,b=4B.a=4,b=5C.a=5,b=4D.a=5,b=5

48.第

13

设有程序段

intk=10;

while(k=0)k=k-1;

则下面描述中正确的是A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次

49.根据下面的定义,能打印出字母M的语句是()。structperson{charname[9];intage;};structpersonclass[10]={"John",17,"Paul",19,"Mary",18,"Adam",16};

A.printf("%c\n",class[3].name};

B.printf("%c\n",class[2].name[0]);

C.printf("%c\n",class[3].name[1]);

D.printf("%c\n",class[2].name[1]);

50.以下程序intaa[3][3]={{2},{4},{6}};main(){inti,*p=&aa[0][0];for(i=0;i<2;i++){if(i==0)aa[i][i+1]=*p+1;else++p;printf("%d",*p);}}的输出是______。

A.23B.26C.33D.36

51.以下不是面向对象思想中的主要特征的是

A.多态B.继承C.封装D.垃圾回收

52.下列关于标识符的说法中错误的是

A.合法的标识符是由字母、数字和下划线组成

B.C语言的标识符中,大写字母和小写字母被认为是两个不同的字符

C.C语言的标识符可以分为三类,即关键字、预定义标识符和用户标识符

D.用户标识符与关键字不同时,程序在执行时将给出出错信息

53.当3.5in(英寸)软盘的写保护窗口开着时,该软盘()

A.只能写不能读B.既能读又能写C.只能读不能写D.不能使用

54.已定义以下函数

fun(int*p)

{return*p;}

该函数的返回值是()

A.不确定的值

B.形参p中存放的值

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

D.形参p的地址值

55.12.以下说法中正确的是()

A.#define和printf都是C语句

B.#define是C语句,而printf不是

C.printf是C语句,但#define不是

D.#define和printf都不是C语句

56.若有定义:inla=8,b=5,c;,执行语句c=a/b+0.4;后,c的值为

A.1.4B.1C.2D.2

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

A.654321B.432156C.456123D.123456

58.请读程序:#include<stdio.h>#include<string.h>main(){char*sl="AbCdEf".*s2="aB";s1++;s2++;printf("%d\n",strcmp(s1,s2));)上面程序的输出结果是()

A.正数B.负数C.零D.不确定的值

59.以下叙述中正确的是______。A.预处理命令行必须位于源文件的开头

B.在源文件的一行上可以有多条预处理命令

C.宏名必须用大写字母表示

D.宏替换不占用程序的运行时间

60.有以下程序:intf(inta){returna%2;}main(){ints[8]={1,3,5,2,4,6},i,d=0;for(i=0;f(s[i]);i++)d+=s[i];printf("%d\n",d);}程序运行后的输出结果是()。

A.9B.11C.19D.21

四、选择题(20题)61.若fp是指向某文件的指针,且尚未读到文件末尾,则函数feof(fp)的返回值是()。

A.EOFB.-lC.非零值D.0

62.软件生命周期中花费时间最多的阶段是

A.详细设计B.软件维护C.软件编码D.软件测试

63.

64.软件设计中划分模块的一个准则是()。A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合

65.下列不属于C语言关键字的是()。A.A.default

B.register

C.enum

D.external

66.(66)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为()

A.PAD图

B.N-S图

C.结构图

D.数据流图

67.

68.

69.

70.

71.有以下程序

main()

{inta[3][3],*p,i;

p=&a[0][0];

for(i=0;i<9;i++)p[i]=i;

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

}

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

A.012B.135C.234D.345

72.下列数据结构中,能够按照“先进后出”原则存取数据的是()。

A.循环队列B.栈C.队列D.二叉树

73.阅读以下程序:

#include<stdio.h>

main()

{intcase;floatprintF;

printf("请输人2个数:");

scanf("%d%fl"&case,&printF);

printf("%dofof\n",case,printF);

}

该程序在编译时产生错误,其出错原因是()。

A.定义语句出错,case是关键字,不能用做用户自定义标识符

B.定义语句出错,printF不能用做用户自定义标识符

C.定义语句无错,scanf不能作为输入函数使用

D.定义语句无错,printf不能输出case的值

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

A.简单c语句必须以分号结束

B.C程序中的每—行只能写—条i{}句

C.c语言程序中的注释必须与语句写在同一行

D.C语句必须在一行内写完

75.

76.有以下程序当执行程序时,按下列方式输入数据(从第l列开始,<CR>代表回车,注意;回车也是--+qz符)12<CR>34<CR>则输出结果是()。

A.123B.12C.1234D.1234

77.

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

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

79.以下不合法的字符常量是

A.’x\018’B.’\"’C.’\\’D.’\xcc’

80.

五、程序改错题(1题)81.下列给定程序中proc()函数的功能是:将n个无序整数按从小到大排序。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,定义了NxN的二维数组,并在主函数中自动赋值。请编写函数fun(),该函数的功能是使数组上三角元素中的值乘以m。若m的值为2,a数组中的值为197238456则返回主程序后a数组中的值应为2181426164512注意:部分源程序在文件prog1.c中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:1#include2#include3#include4#include5#defineN56voidfun(inta[][N],intm)7{89}10main()11{12inta[N][N],m,i,j;13FILE*out;14printf("***Thearray***\n");15for(i=0;i<n;i++)16{for(j=0;j<n;i++)27{for(j=0;j38{for(j=0;j<n;j++)39fprintf(out,"%4d",a[i][j]);40fprintf(out,"\n");41}42fclose(out);43/*********found********/44}1voidfun(inta[][n],intm)2{3inti,j;4for(j=0;j<n;j++)5:for(i=0;i<=j;i++)6:a[i][j]=a[i][j]*m;/*上三角元素中的值乘以m*/

参考答案

1.C

2.C

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

4.D解析:在用基本输出函数printf时,格式说明与输出项的个数应该相同。如果格式说明的个数少于输出项的个数,多余的输出项不予输出;如果格式说明个数多于输出项个数,则对于多余的格式项输出不定值或0。

5.A本题考查两个概念:①用单引号括起来的一个字符常量只能存放一个字符;②℃语言中没有字符串变量,只能用字符数组来存储字符串。

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

7.B在本题中,从题目给出的四个选项我们就可以知道,程序是对两个字符串进行操作。下面将具体分析程序。

程序首先定义两个字符型的指针变量s和t,从后面的程序中不难看出这两个指针变量应该用来对两个字符串进行操作处理。用循环来对字符串进行处理时,循环继续的条件是指针变量s和指针变量t所指向的结果值不为0,且两结果值相等。很显然,指针变量s和指针变量t所指向的结果值不为0,说明两字符串没有结束,只有结束时才为0,而结果值相等说明两字符相等,如果不等,循环则结束,此时程序将要求返回不等元素之间的差值,从差值的正负关系我们可以判断出哪个元素更大。综上所述,程序段的作用是用来比较两字符串的大小。因此,本题正确的答案选B。

8.C

9.A解析:strcmp(char*,char*),函数strcmp用于比较两个字符串的长度,长者为大,若字符个数也一样,则从左至右依次比较相同位上的字符,字符大小按ASCⅡ表值计算,直到最后一个字符,若还相同,则两个字符串相等,返回值0。选项A中if(strcmp(s2,s1)=0)ST,若s2等于s1,则返回值0,0等于0,所以逻辑表达式strcmp(s2,s1)=0为真执行ST。

10.Cscanf函数用于输入数据。第1个参数表示输入格式控制。本题变量a是double类型,使用格式控制符%If;变量b是float类型,使用%If;变量c是short类型,使用%hd,选项C正确。本题答案为C选项。

11.A关键字typedet的作用只是将C语言中的已有的数据类型作了置换,并不是增加新的类型,所以A)错误。

12.D

13.B在第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的值自加1两次,当退出内层for循环时,x=7,然后执行x++,得到x=8,所以打印输出变量x的值为8。

14.C学号是学生表S的主键,课号是课程表C的主键,所以选课表SC的关键字就应该是与前两个表能够直接联系且能唯一定义的学号和课号,所以选择C项。

15.D解析:本题考查“++”和“--”运算符,运算符“++”是操作数加1,而“--”则是操作数减1。在do-while循环中,首先执行y--,再执行--y。当y=2时,执行y--,y的值变为1,--y使y值变为0,循环结束。执行输出时,先输出y的值0,然后执行y--,使y的值变为-1。

16.A选项A中,“sum+=1/i;”中的i为整型,因此“1/i”是整型类型,当“1/i”有小数时。会被截断。因此“1/i”结果始终为0,导致结果出错。应该改为“sum+=1.0/i”。故本题答案为A选项。

17.A在表达式“z=0.9+x/y”中,先计算“3.6-2”,结果为1;再计算“0.9+1”,结果为1.9。因为变量z为整型,所以z的值为1。故本题答案为A选项。

18.C带参数的宏定义的替换过程是:用宏调用提供的实参字符串,直接置换宏定义命令行中相应的形参字符串,非形参字符串保持不变。题干中,“area1=A_RECT((x-1),(y+1));”宏替换后为“area1=(x-1)*(y+1);”,“area2=A_RECT(x+3,y-1);”宏替换后为“area2=x+3*y-1;”。所以area1=4*7=28,area2=5+3*6-1=22。故本题答案为C选项。

19.B

20.B链表是一种特殊的线性表,链表的存储结构与顺序存储结构不同,它的存储区域可以是任意的存储单元,对存储系统中零碎的存储部分具有更好的应用,在给其分配存储单元时,不必事先估计整个存储单元的空间大小;由于链表的元素是通过指针域的指针相连的,用链表存储数据时,对其进行插入和删除操作时,不需要移动其他元素,只需改变其直接前驱指针域,使其指向该结点,并将该结点的指针域修改为指向其直接后继结点即可。当然,不管是链表还是顺序存储,所需空间与线性表长度都成正比。在链式存储的链表结构中,由于后一结点数据被存储在哪里,只有通过前一结点的指针域才知道,因此,访问时只能是逐个访问,而不能实现随机访问。

21.软件工程学软件工程学

22.0'或0或NULLn++或++n或n=n+1或n+=10'或0或NULL\r\nn++或++n或n=n+1或n+=1

23.1a61a6解析:对于指针变量的运算,就是对地址的运算。本题中由于指针指向的是整型变量,所以,使指针变量移动9个位置也就是移动18个字节。注意,本题是以十六进制输出的。

24.GFEDCB。GFEDCB。解析:开始指针cp指向字符串结束标志,在循环中,cp依次向前移动,当打印出第二个字符后,cp指向第一个字符,循环判断条件不满足,退出循环,因此,只打印出第一个字符以后的字符的逆序列。

25.软件开发

26.log2n

27.模块模块

28.3010130101解析:注意地址自增与变量自增的区别。

29.44解析:将程序中所有的宏替换掉可得:M=2+1,K=2+1*2+1/2=4,所以for循环共循环了K-1+1次,即4-1+1共4次。

30.22解析:本题考查的是基本赋值运算符和赋值表达式。表达式c=(b-=a-4)等价于c=(b=b-a+4)等价于c=b=2;表达式a(c%2+(b-1))等价于a=1+2-1=2;因此最后a的值为2。

31.i=1x[i-1]i=1\r\nx[i-1]解析:对于10个数,相邻的两个数相加取和,总共要进行9次加法运算,所以空11处应填入i=1。相邻的两个数相加取和,放在数组a中,x[0]与x[1]的和存放在a[0]中,所以空12处应填入x[i-1]。

32.解析:程序通过语句“s[0]next=s+1;s[1].next=s+2;s[2].next=s;”将结构体变量s中各结点连接成了一个循环链表,即最后一个结点的指针域指向了头结点,整个链表形成了一个环,并通过语句“p=s;q=p->next;r=q->next;”将结构体指针变量p、q、r指向了各结点。

33.67G67G解析:字符型变量中保存的是某个字符的ASCII码值,是一个整数,因此字符型变量的算术运算和整型变量并无区别。所以。a='A'+'5'-'3'='A'+('5'='3')='A'+2=65+2=67:b=a+'6'='2'='C'+('6'-'2')='C'+4='G'。最后分别按十进制整数和字符形式输出a和b的值为:67G。

34.98768769876\r\n876解析:指针是一种数据类型,这种数据类型的变量用来存放内存中分配的存储单元的首地址。指针的定义:

类型说明符*指针变量名;

35.k[7]*kk[7]*k解析:scanf()函数有两个参数,第—个参数是格式控制部分(格式控制部分是字符串,主要由“%”号和格式字符组成)第二个参数是一地址列表(地址列表是由多个地址组成,可以是变量的地址,也可以是字符串的首地址)。而第一个空格处位于scanf()函数的第二个参数处,所以,第一个空应该填地址k。printf()函数有两个参数,第一个参数是输出格式字符串(输出格式字符串是由控制输出格式的字符和非格式字符组成的,通常是字符常量。非格式字符作为输出数据的间隔,输出时原样输出)第二个参数为一输出表达式表(输出表达式表是由若干个需要计算和输出的表达式组成的,表达式之间用逗号分隔开)。而第二个空位于printf()函数的第二个参数处,所以应该填*K。

36.00解析:本题考查的是do厀hile循环。第一次执行循环体,因为k=1,r=1,n=20,所以k=1*20%10*1=0,n=20/10=2,r=2;第二次执行循环体,k=0*2%10*2=0,n=10/10=1,r=3;第三次执行循环体,k=0*1%10*3=0,n=1/10=0,r=4,所以k的值为0。

37.2004170320041703解析:由于参数传递只是将实参的值复制到形参中,形参与实参拥有各自的存储空间,因此形参的改变并不影响实参,所以并不改变s的情况。

38.i+1i

39.序言性序言性解析:注释一般分为序言性注释和功能性注释。

40.x=11x=11解析:在对无符号数的右移是高位补0。

41.C解析:本题考查的知识点是表达式的表示。在该题中,x的n次方应该调用函数pow(x,n)计算,故选项A、B排除。而在选项D中,pow(x,n)的参数写反了。选项C正确。

42.B解析:此题为数据库的基本概念,可以对照办工软件的电子表格进行如下理解:选择:我们根据某条件选择出一行或多行元组(一个元组即为二维表中的一行)。投影:按字段(也称属性,比如学生关系(学号,姓名,出生年月,性别),学号、姓名…都是属性)选取一列或多列(一个二维表中所有元组在某一列或几列上截取出来)。连接:2个或2个以上的表连接组成一张新的表,通常有条件连接。比如学生关系(学号,姓名,系号),又有一张系表(系号,系名,主任),2张表可以合并为一张这样的表(学号,姓名,系号,系名,主任)。

43.C

44.D

45.B解析:解答本题需要注意两个知识点;①结构体变量的长度是其内部成员长度的总和,本题中,structdate中包含year、month、day这3个整型变量,一个整型变量占2个字节:②sizeof是求所占字节数的运算符。

46.A解析:本题首先定义了一个数组并附初值,然后通过两个for循环计算3、4、5、6的累加值,并用s保存。

47.B解析:continue语句的作用是跳过本次循环体中余下尚未执行的语句,接着再一次进行循环条件的判定。当能被2整除时,a就会增1,之后执行continue语句,直接执行到for循环体的结尾,进行i++,判断循环条件。

48.C本题中,首先将0赋给k,表达式变为0,跳出循环,没有执行循环体语句。解答本题的关键是掌握while语句。

49.B解析:在结构体数组class[10]的初始化列表中只有第5个初始值中包含大写字母M,而该结构体只有两个成员变量,所以每两个初始值初始化一个数组元素,故第5个初始值是属于第3个数组元素class[2]的前一个成员变量的,选项A和C不正确。又因为‘M’是“Mary”的第一个元素,所以应该输出class[2]的name[0],B是正确答案。

50.A解析:观察题目,可以发现,*p=&aa[0][0]语句实际是将数组aa的首地址赋给了指针变量p,将i的值带入for循环中,i=0时,aa[0][1]=3,*p=2;*p输出的是指针所指向的数组值,此时p所指向的是aa[O][0],输出2,而i=1时执行了++p操作使指针向后移动指向了aa[0][1],所以在输出*p时应为3。

51.D解析:面向对象思想中的三个主要特征是:封装性、继承性和多态性。

52.D解析:用户标识符与关键字相同时,程序在编译过程中将给出出错信息。注意:选项D)应该改为用户标识符与关键字相同,程序在编译时将给出出错信息。注意:合法的标识符第一个字符必须为字母或下划线。

53.C

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

55.CC[解析]#define是宏命令,而不是C语句

56.B解析:在表达式中根据运算的结合性和运算符的优先级,首先计算的是a/b(8/5=1),再将1+0.4赋值给C,由于C为整型变量所以要将1.4转换为整型,即舍弃小数位(c的值变为1)。所以,4个选项中B符合题意。

57.A解析:本题考核的知识点是指针变量作为函数的参数和递归函数的简单使用。函数fun()中有3个参数,参数a为一个指针变量,接收的实参可以是数组名,参数i和j分别表示数组元素的下标,当下标i小于下标j时,a[i]和a[j]交换,然后对自身进行调用,可见这是一个递归函数。其实现的功能是把数组a,从下标为i的元素到下标为i的元素之间的所有元素反序存放。在主函数中调用fun()函数,把a数组从a[0}到a[5]之间的所有元素反序存放,最后输出从a[0]到a[5]的值,因此输出的值为6、5、4、3,2、1,所以,A选项为所选。

58.A

59.D本题主要考查宏的一些基本概念。通常,预处理命令位于源文件的开头,但不一定必须位于开头,也可以写在函数与函数之间;由于预处理命令的末尾不加分号,不以分号来区分一条宏命令,所以,不能在一行上写多条预处理命令,只能写一条,否则,系统处理时就会把它当做一条命令处理;宏名一般习惯用大写字母表示,以便与变量名相区别,这只是习惯用法,并不是C语言中有这样的规定,宏的定义可用小写字母;C语言中,宏的替换是在程序编译时进行,不占用程序运行的时间,故本题答案为D。

60.A解析:函数f()的作用是形参a为偶数的时候返回0,主函数中首先定义了一个长度为8的一维数组,然后给它赋初值使得s[0]=1、s[1]=3、s[2]=5、s[3]=2、s[4]=4、s[5]=6。其他没有赋值的数组元素将自动赋值为0。for循环中,当s[i]不为偶数的时,将s[i]相加,即当i=3时,s[i]=2为偶数,退出循环,此时d的值为d=s[0]+s[1]+s[2]=1+3+5=9,因此最后输出的d的值为9。

61.D本题考查leon(tp)函数,其功能是:测试所指的文件的位置指针是否已达到文件尾,如果已达到文件尾,则函数返回非0值;否则返回0,表示文件未结束。

62.B软件生命周期被划分为许多阶段。其中,详细设计阶段的根本任务是确定每个模块的内部特征,即确定每个模块内部的执行过程,这个过程一般用时并不需要很多;软件编码的根本任务是根据设计的结果完成代码的编写工作,这个过程一般用时也不需很多;软件测试是对软件规格说明、软件设计和编码的最后复审,目的是在软件产品交付前尽可能多地发现软件中的错误和问题,费时相对也不多;软件维护是指在软件交付后,为了改正错误或满足用户新的需要而修改软件的过程,这个过程是软件生命周期的最后一个阶段,是持续时间最长的一个阶段,费时最多。

63.A

64.B一般较优秀的软件设计,应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。

65.Dregister声明寄存器变量enum声明枚举类型default开关语句中的“其他”分支

66.B

67.C

68.A

69.C

70.D

71.B第一个for循环的结果是p[9]={0,1,2,3,4,,5,6,7,8},第二个for循环:i=0,++p,使得p指向了1,所以输出的结果是1,然后i++,i=1,++p,p指向了3……

72.BB。【解析】在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。即栈是按照“先进后出”或“后进先出”的原则组织数据的。

73.A\n本题中定义了整形变量case,但case是关键字,关键字不能用做标识符。单精度printF不是关键字,因为标识符区分大小写。所以A不正确。

\n

74.A语句必须以分号结束,所以A)正确,c语言中书写格式自由,所以B)、C)、D)错误

75.D

76.A按照从键盘输入的数据可以判断字符1赋给了变量a,字符2赋给了变量b,字符<cR>即回车赋给了变量e,字符3赋给了变量d。因此打印输出的结果为选项A)。

77.A

78.C解析:考查栈和队列概念的掌握。栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。二者的区别是:栈只允许在表的一端进行插入或删除操作,是一种'后进先出'的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种'先进先出'的线性表。模块之间的耦合程度反映了模块的独立性,也反映了系统分解后的复杂程度。按照耦合程度从弱到强,可以将其分成5级,分别是:数据耦合、同构耦合、控制耦合、公用耦合和内容耦合。选项C),没有这种耦合方式。

79.A转义字符又称反斜线字符,这种字符常量以一个反斜线开头,后跟一个特定的字符,用来代表某一特定的ASCII字符,这些字符常量也必须引在一对单引号内。对本题而言,B表示双引号',C表示单引号’,D代表十六进制数cc所对应的ASCII码,A中反斜线后的0表示其后数据为一个八进制数,八进制数每位上的数字为0~7,18中个位上的8显然不符合要求。所以,A是不合法的字符常量。

80.D

81.

82.1voidfun(inta[][n],intm)2{3inti,j;4for(j=0;j

<="">5for(i=0;i<=j;i++)6a[i][j]=a[i][j]*m;/*上三角元素中的值乘以m*/7}本程序实现的是:矩阵上三角元素的值乘以m。上三角元素下标的特点是行下标小于等于列下标,即“i<=j”使用循环语句遍历数组元素,第1个循环用于控制列坐标,第2个循环用于控制行下标。</n;j++)</n;j++)<n;i++)</n;i++)2022-2023年云南省保山市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.下列排序算法中,()算法可能会出现下面情况:初始数据有序时,花费的时间反而最多。

A.堆排序B.冒泡排序C.快速排序D.希尔排序

2.若一个栈以向量V[1..n]存储,初始栈顶指针top为n+1,则下面x进栈的正确操作是()。

A.top=top+1;V[top]=x

B.V[top]=x;top=top+1

C.top=top-1;V[top]=x

D.V[top]=x;top=top-1

3.以下选项中,当x为大于1的奇数时,值为0的表达式是A.x%2==1B.x/2C.x%2!=0D.x%2==0

4.有以下程序段charch;intk;ch='a';k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII十进制代码为97,则执行上述程序段后输出结果是()。A.因变量类型与格式描述符的类型不匹配输出无定值

B.输出项与格式描述符个数不符,输出为零值或不定值

C.a,97,12k=12

D.a,97,k=12

5.下列字符数组初始化语句中,不正确的是()。

A.charc[]=goodmorning;

B.charc[20]="goodmorning";

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

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

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

A.耦合度B.内聚度C.复杂度D.数据传输特性

7.下列函数的功能是

set(s,t)

{char*s,*t;

while((*s)&&(*t)&&(*t++==*s++));

return(*s-*t);

}A.A.求字符串的长度

B.比较两字符串的大小

C.将字符串s复制到字符串t中

D.将字符串s连接到字符串t后

8.以下是根据文件大小分配存储空间的一个算法伪代码,请问其空间复杂度是多少()A.O(n)B.O(n^2)C.O(2^n)D.O(n*log(n))

9.下列选项中,能够满足“若字符串s1等于字符串s2,则执行ST”要求的是()。A.if(strcmp(s2,s1)==0)ST;

B.if(s1===s2)ST;

C.if(strcpy(s1,s2)==1)ST;

D.if(s1,s2==0)ST;

10.若有定义“doublea;floatb;shortc;”,若想把1.2赋给变量a,3.4赋给变量b,5678赋给变量c,程序运行时键盘输入:1.23.45678<回车>则以下正确的读入语句是()。A.scanf("%If%If%d",&a,&b,&c);

B.scanf("%If%If%hd",&a,&b,&c);

C.scanf("%If%f%hd",&a,&b,&c);

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

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

A.可以通过typedef增加新的类型

B.可以typedef将已存在的类型用一个新的名字来代表

C.用typedef定义新的类型名后,原有类型名仍有效

D.用typedef可以为各种类型起别名,但不能为变量起别名

12.

13.有下列程序: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

14.设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩.,则表SC的关键字(键或码)为()

A.课号,成绩B.学号,成绩C.学号,课号D.学号,姓名,成绩

15.下面程序的运行结果是()。#include<stdio.h>main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}

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

16.以下程序拟实现计算sum=1+1/2+1/3+…+1/50。#include<stdio.h>main(){inti;doublesum;sum=1.0;i=1;do{i++-;sum+=1/i;}while(i<50);printf(“sum=%lf\n”,sum);}程序运行后,不能得到正确结果,出现问题的语句是()。

A.sum+=1/i;B.while(i<50);C.sum=1.0D.i++;

17.若有定义“intx=12,y=8,z;”,在其后执行语句“z=0.9+x/y;”,则z的值为()。

A.1B.1.9C.2D.2.4

18.若有宏定义“#defineA_RECT(W,H)W*H”和以下程序段:intx=5,y=6,area1,area2;area1=A_RECT((x-1),(y+1));area2=A_RECT(x+3,y-1);执行上述程序段后,变量area1和area2的值分别是()。

A.022B.2840C.2822D.040

19.

20.链表不具有的特点是A.A.不必事先估计存储空间

B.可随机访问任一元素

C.插入和删除不需要移动元素

D.所需空间与线性表长度成正比

二、2.填空题(20题)21.软件危机出现于60年代末,为了解决软件危机,人们提出了【】的原理来设计软件,这就是软件工程诞生的基础。

22.以下函数把b字符串连接到a字符串的后面,并返回a中新字符串的长度。请填空。

strcen(chara[],charb[])

{intnum=0,n=0;

while(*(a+num)!=【】)num++;

while(b[n]){*(a+num)=b[n];num++;【】;}

return(num);

}

23.下面程序有两个printf语句,如果第一个printf语句输出的是194,则第二个printf语句的输出结果是【】。

main()

{inta[10]={1,2,3,4,5,6,7,8,9,0},*p;

p=a;

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

printf("%x\",p+9);

}

24.下列程序的输出结果是______。

main()

{chara[]="ABCDEFG";

char*cp=&a[7];

while(--cp>&a[0])putchar(*cp);

}

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

26.在长度为n的有序线性表中进行二分查找。最坏的情况下,需要的比较次数为【】。

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

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

structaa

{intx,*y;

}*p;

inta[8]={10,20,30,40,50,60,70,80};

structaab[4]={100,&a[1],200,&a[3],10,&a[5],20,&a[7]};

main()

{p=b;

printf(%d",*++p->y);

printf("%d\n",++(p->x));

}

29.以下程序中,for循环体执行的次数是【】。

#defineN2

#defineMN+1

#defineKM+1*M/2

main()

{

inti;

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

{…}

}

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

31.以下程序的功能是:求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。请填空。

main()

{intx[10],a[9],i;

for(i=0;i<10;i++)scanf("%d",&x[i]);

for([11];i<10;i++)

a[i-1]=x[i]+[12];

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

printf("");

}

32.以下程序运行后的输出结果是______。

structNODE

{inthum;structNODE*next;

};

main()

{structNODEs[3]={{1,'\0'},{2,'\0'},{3,'\0'}},*p,*q,*r;

intsum=0;

s[0].next=s+1;s[1].next=s+2;s[2].next=s;

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

sum+=q=>next->num;sum+=r->next->next->num;

33.已知字母A的ASCII码为65。以下程序运行后的输出结果是______。

main()

{chara,b;

a='A'+'5'-'3';b=a+'6'-'2';

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

}

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

main()

{chars[]="9876",*p;

for(p=s;p<s+2;p++)printf("%s\n",p);

}

35.设有定义:intn,*k=&n;以下语句将利用指针变量k读写变量n中的内容,请将语句补充家整。

seanf("%d",【】);

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

36.执行下面程序段后,k的值是【】。

r=1;n=203;k=1

do{k*=n%10*r;n/=10;r++;}while(n);

37.目前实际存在和使用的广域网基本上都是采用______拓扑结构类型。

有以下程序:

#include<string.h>

structSTU

{intnum;

floatTotalScore;};

voidf(structSTUp)

{structSTUs[2]={{20041,703},{20045,537}};

p.num=s[1].num;p.TotalScore=s[1].TotalScore;

}

main()

{structSTUs[2]={{20041,703},{20042,580}};

f(s[0]);

printf("%d%3.0f\n",s[0].num,s[0],TotalScore);

}

程序运行后的输出结果是【】。

38.以下程序调用invert函数按逆序重新放置a数组元素的值。a数组中的值在main函数中读入。

#include<stdio.h>

#defineN10

invert(s,i,j)

int*s,i,j;

{intt;

if(i<j)

{t=*(s+i);

*(s+i)=(s+j);

*(s+j)=t;

invert(s,【】,j-1);

}

}

main()

{

inta[N],i;

for(i=0;i<N;i++)scanf("%d",a+【】);

invert(a,0,N-1);

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

printf("\n")

}

39.注释说明了程序的功能,它分为【】注释和功能性注释。

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

main()

{unsigneda=0112,x;

x=a>>3;

printf("x=%o",x);

}

三、1.选择题(20题)41.与数学式子对应的C语言表达式是

A.3*xn(2*x-1)

B.3*x**n(2*x-1)

C.3*pow(x,n)*(1/(2*x-1))

D.3*pow(n,x)/(2*x-1)

42.关系数据库管理系统能实现的专门关系运算包括()。

A.排序、索引、统计B.选择、投影、连接C.关联、更新、排序D.显示、打印、制表

43.有以下程序main(){intm,n;printf("Enterm,n:");scanf("%d%d",&m,&n);while(m!=n){while(m>n)m-=n;while(n>m)n-=m;}printf("m=%d\n",m);}如果从键盘上输入6514<回车>,则输出结果为()

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

44.设有如下程序:#include"string.h"main(){staticchars1[20],s2[20];scanf("%s",s1);scanf("%s",s2);if(strcmp(s1,s2))printf("@");elseprintf("$");printf("%d\n",strlen(strcat(s1,s2)));}如果从键盘上输入name<回车>name1<回车>,则程序运行后的输出结果是()

A.$8B.@10C.$9D.@9

45.下列程序的运行结果为()。#include<stdio.h>main(){structdate{intyear,month,day;}today;printf("%d\n",sizeof(structdate));}

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

46.以下程序的输出结果是______。main(){inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d\n",s);}

A.18B.19C.20D.21

47.下列程序的输出结果是#include"stdio.h”"main(){inti,a=0,b=0;for(i=1;i<10;i++){if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b);}

A.a=4,b=4B.a=4,b=5C.a=5,b=4D.a=5,b=5

48.第

13

设有程序段

intk=10;

while(k=0)k=k-1;

则下面描述中正确的是A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次

49.根据下面的定义,能打印出字母M的语句是()。structperson{charname[9];intage;};structpersonclass[10]={"John",17,"Paul",19,"Mary",18,"Adam",16};

A.printf("%c\n",class[3].name};

B.printf("%c\n",class[2].name[0]);

C.printf("%c\n",class[3].name[1]);

D.printf("%c\n",class[2].name[1]);

50.以下程序intaa[3][3]={{2},{4},{6}};main(){inti,*p=&aa[0][0];for(i=0;i<2;i++){if(i==0)aa[i][i+1]=*p+1;else++p;printf("%d",*p);}}的输出是______。

A.23B.26C.33D.36

51.以下不是面向对象思想中的主要特征的是

A.多态B.继承C.封装D.垃圾回收

52.下列关于标识符的说法中错误的是

A.合法的标识符是由字母、数字和下划线组成

B.C语言的标识符中,大写字母和小写字母被认为是两个不同的字符

C.C语言的标识符可以分为三类,即关键字、预定义标识符和用户标识符

D.用户标识符与关键字不同时,程序在执行时将给出出错信息

53.当3.5in(英寸)软盘的写保护窗口开着时,该软盘()

A.只能写不能读B.既能读又能写C.只能读不能写D.不能使用

54.已定义以下函数

fun(int*p)

{return*p;}

该函数的返回值是()

A.不确定的值

B.形参p中存放的值

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

D.形参p的地址值

55.12.以下说法中正确的是()

A.#define和printf都是C语句

B.#define是C语句,而printf不是

C.printf是C语句,但#define不是

D.#define和printf都不是C语句

56.若有定义:inla=8,b=5,c;,执行语句c=a/b+0.4;后,c的值为

A.1.4B.1C.2D.2

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

A.654321B.432156C.456123D.123456

58.请读程序:#include<stdio.h>#include<string.h>main(){char*sl="AbCdEf".*s2="aB";s1++;s2++;printf("%d\n",strcmp(s1,s2));)上面程序的输出结果是()

A.正数B.负数C.零D.不确定的值

59.以下叙述中正确的是______。A.预处理命令行必须位于源文件的开头

B.在源文件的一行上可以有多条预处理命令

C.宏名必须用大写字母表示

D.宏替换不占用程序的运行时间

60.有以下程序:intf(inta){returna%2;}main(){ints[8]={1,3,5,2,4,6},i,d=0;for(i=0;f(s[i]);i++)d+=s[i];printf("%d\n",d);}程序运行后的输出结果是()。

A.9B.11C.19D.21

四、选择题(20题)61.若fp是指向某文件的指针,且尚未读到文件末尾,则函数feof(fp)的返回值是()。

A.EOFB.-lC.非零值D.0

62.软件生命周期中花费时间最多的阶段是

A.详细设计B.软件维护C.软件编码D.软件测试

63.

64.软件设计中划分模块的一个准则是()。A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合

65.下列不属于C语言关键字的是()。A.A.default

B.register

C.enum

D.external

66.(66)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为()

A.PAD图

B.N-S图

C.结构图

D.数据流图

67.

68.

69.

70.

71.有以下程序

main()

{inta[3][3],*p,i;

p=&a[0][0];

for(i=0;i<9;i++)p[i]=i;

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

}

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

A.012B.135C.234D.345

72.下列数据结构中,能够按照“先进后出”原则存取数据的是()。

A.循环队列B.栈C.队列D.二叉树

73.阅读以下程序:

#include<stdio.h>

main()

{intcase;floatprintF;

printf("请输人2个数:");

scanf("%d%fl"&case,&printF);

printf("%dofof\n",case,printF);

}

该程序在编译时产生错误,其出错原因是()。

A.定义语句出错,case是关键字,不能用做用户自定义标识符

B.定义语句出错,printF不能用做用户自定义标识符

C.定义语句无错,scanf不能作为输入函数使用

D.定义语句无错,printf不能输出case的值

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

A.简单c语句必须以分号结束

B.C程序中的每—行只能写—条i{}句

C.c语言程序中的注释必须与语句写在同一行

D.C语句必须在一行内写完

75.

76.有以下程序当执行程序时,按下列方式输入数据(从第l列开始,<CR>代表回车,注意;回车也是--+qz符)12<CR>34<CR>则输出结果是()。

A.1

温馨提示

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

评论

0/150

提交评论