2021-2022年湖南省郴州市全国计算机等级考试C语言程序设计_第1页
2021-2022年湖南省郴州市全国计算机等级考试C语言程序设计_第2页
2021-2022年湖南省郴州市全国计算机等级考试C语言程序设计_第3页
2021-2022年湖南省郴州市全国计算机等级考试C语言程序设计_第4页
2021-2022年湖南省郴州市全国计算机等级考试C语言程序设计_第5页
已阅读5页,还剩105页未读 继续免费阅读

下载本文档

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

文档简介

2021-2022年湖南省郴州市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.有下面程序段#include"stdio.h"#include"string.h"main(){chara[3][20]={{"china"};{"isa"},{bigcountry!"}};chark[100]={0},*p=k;inti;for(j=0;j<3;i++){p=strcat(p,a[i]);}i=strlen(p);printf("%d\n",i);}则程序段的输出结果是

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

2.下列关于逻辑运算符两侧运算对象的叙述中正确的是()。

A.只能是整数0或1B.只能是整数0或非0整数C.可以是结构体类型的数据D.可以是任意合法的表达式

3.以下程序的输出结果是()。#include<stdio.h>main(){intn=4;while(n--)printf("%d",--n);}

A.20B.31C.321D.210

4.将E-R图转换到关系模式时,实体与联系都可以表示成________。

A.属性B.关系C.键D.域

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

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

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

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

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

6.设有定义“inta;floatb;”,执行“scanf(“%2d%f”,&a,&b);”语句时,若从键盘输入876543.0并按<Enter>键,则a和b的值分别是()。

A.87和6.0B.876和543.0C.87和543.0D.76和543.0

7.用链接方式存储的队列,在进行删除运算时()。

A.仅修改头指针B.仅修改尾指针C.头、尾指针都要修改D.头、尾指针可能都要修改

8.对于静态表的顺序查找法,若在表头设置监视哨,则正确的查找方式为()A.从第0个元素往后查找该数据元素

B.从第1个元素往后查找该数据元素

C.从第n个元素往开始前查找该数据元素

D.与查找顺序无关

9.排序方法中,从未排序序列中依次取出元素与已排序序列中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为()。

A.希尔排序B.冒泡排序C.插入排序D.选择排序

10.以下叙述中正确的是

A.语句inta[4][3]={{1,2},{4,5}};是错误的初始化形式

B.语句inta[4][3]={1,2,4,5};是错误的初始化形式

C.语句inta[][3]={1,2,4,5};是错误的初始化形式

D.在逻辑上,可以把二维数组看成是一个具有行和列的表格或矩阵

11.

12.下列程序的输出结果是()。#include<stdio.h>voidmain(){inta=0,b=1,c=2;if(++a>0‖++b>0)++c;printf("%d,%d,%d",a,b,c);}

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

13.若有以下定义和语句

chars1[10]="abcd!",*s2="\n123\\";

printf("%d%d\n",strlen(s1),strlen(s2));

则输出结果是A.A.55B.105C.107D.58

14.设x=011050,则x=x&01252的值是()。A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

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

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

16.对于长度为n的线性表,在最坏情况下,下列各种排序法所对应的比较次数中正确的是(

A.冒泡排序为n/2B.冒泡排序为nC.快速排序为nD.快速排序为n(n-1)/2

17.有以下程序:#include<stdio.h>#include<string.h>main(){printf(“%d\n”,strlen(“0\t\n\0C011\1”));}程序运行后的输出结果是()。

A.3B.13C.1D.0

18.设有定义:intn=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是()A.p=1;B.*q=2;C.q=p;D.*p=5;

19.判定一个顺序栈st(最多元素为MaxSize)为空的条件是()。

A.st->top!B.st->top!C.top==-1D.top==MaxSize

20.若已知一个栈的进栈序列是1,2,3,,n,其输出序列为p1,p2,p3,?,pn,若p1=n,则pi为()。

A.iB.n-iC.n-i+1D.不确定

二、2.填空题(20题)21.以下函数用来在w数组中插入x。n所指向的存储单元中存放w数组中字符个数。数组w中的字符已按从小到大的顺序排列,插入后数组w中的字符仍有序。请填空。

voidfun(char*w,charx,int*n)

{inti,p;

p=0;

w[*n]=x;

while(x>w[p])p++;

for(i=*n;i>p;i--)w[i]=【】;

w[p]=x;

++*n;}

22.以下程序中函数fun的功能是:构成一个如图所示的带头结点的单向链表,在结点的数据域中放入了具有两个字符的字符串。函数disp的功能是显示输出该单链表中所有结点中的字符串。请填空完成函数disp。

#include<stdio.h>

typedefstructnode/*链表结点结构*/

{charsub[3];

structnode*next;

}Node;

Nodefun(chars)/*建立链表*/

{……}

voiddisp(Node*h)

{Node*p;

p=h->next;

while(【】)

{printf("%s\n",P->sub);p=【】;}

}

main()

{Node*hd;

hd=fun();disp(hd);printf("\n");

}

23.以下程序的功能是调用函数fun计算:m=1-2+3-4+…+9-10,并输出结果。请填空。

intfun(intn)

{intm=0,f=1,i;

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

m+=i*f;

f=【】;

returnm;

}

main()

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

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

main()

{

inta[]={2,4,6},*ptr=&a[0],x=8,y,z;

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

z=(*(ptr+y)<x)?*(ptr+y):x;

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

}

25.以下程序的定义语句中,x[1]的初值是【】,程序运行后输出的内容是【】。

#include<stdio.h>

main()

{intx[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,161},*p[4],i;

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

{p[i]=&x[2*i+1];

printf("%d",p[i][0]);

}

printf("\n");

}

26.C语言程序的注释可以出现在程序中的任何地方,一个注释以【】分别作为开始和结束。

27.要使以下程序段输出10个整数,请填入一个整数;

for(i=0;i<=【】;printf("%d\n",i+=2));

28.已知字符'A'的ASCII码为65,以下程序运行后的输出结果是【】。

#include<stdio.h>

main()

{chara,b;

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

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

}

29.软件测试分为白箱(盒)测试和黑箱(盒)测试。基本路径测试方法属于()测试。

30.下面程序执行后输出的结果是【】。

intm=13;

intfun(intx,inty)

{intm+3;

return(x*y-m);

}

main()

{inta=7,b,5;

prntf("%d\n",fun(a,B)/m);

}

31.数据字典是各类数据描述的集合,它通常包括五个部分,即数据项、数据结构、数据流、【】和处理过程。

32.下列程序的运行结果为【】。

main()

{inta,b,c,x,y,z;

a=10;b=2;

c=!(a%b);x=!(a/b);

y=(a<b)&&(b>=0);

z=(a<b)||(b>=0);

printf("c=%d,x=%d,y=%d,z=%d\n",c,x,y,z);

}

33.实现算法所需的存储单元多少和算法的工作量大小分别为算法的【】。

34.以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0。请填空。

intisprime(inta)

for(i=2;i<=a/2;i++)

if(a%i==0)[8];

[9];

35.程序的运行结果为【】。

main()

{charc1='a',c2='b',c3='c';

printf("a%cb%c\tc%c\n",c1,c2,c3);

}

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

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

}

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

main()

{char*p[]={"BOOL","OPK","H","SP"};

inti;

for(i=3,i>=0;i--,i--)printf("%c",*p[i]);

printf("\n");

}

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

#include<stdio.h>

#defineS(x)4*x*x+1

main()

{inti=6,j=8;

prinff("%d\n",S(i+j));

}

39.下面程序的功能是将字符串a下标值为偶数的元素由小到大排序,其他元素不变,请填空。

#include<stdio.h>

main()

{chara[]="labchmfye",t;

inti,j;

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

for(j=i+2;j<9;【】)

if(【】)

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

puts(a);

printf("\n");

}

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

#include<string.h>

cbar*ss(char*s)

{char*p,t;

p=s+1;t=*s;

while(-p){*(p-1)=*p;p++;}

*(p-1)=t;

returns;

}

main()

{char*p,str[10]="abcdefgh";

p=ss(str);

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

}

三、1.选择题(20题)41.C语言中用于结构化程序设计的三种基本结构是A.顺序结构、选择结构、循环结构

B.if、switch、break

C.for、while、do-while

D.if、for、continue

42.以下程序的输出结果是______。longfun(intn){longs;if(n==1||n==2)s=2;elses=n-fun(n-1);returns;}main(){printf("%ld\n",fun(3));}

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

43.关系表中的每一横行称为一个()。A.元组B.字段C.属性D.码

44.以下程序的输出结果是______。main(){intx=10,y=10,i;for(i=0;x>8;y=++i)printf("%d%d",x--,y);}

A.10192B.9876C.10990D.101091

45.设有关系R和S,关系代数表达式为R-(R-S)表示的是

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

46.C语言中while循环和do-while循环的主要区别是______。

A.do-while的循环体至少无条件执行一次

B.while的循环控制条件比do-while的循环控制条件严格

C.do-while允许从外部转到循环体内

D.do-while的循环体不能是复合语句

47.以下非法的赋值语句是

A.n=(i=2,++i);B.j++;C.++(i+1);D.x=j>0;

48.以下程序的输出是______。structst{intx;int*y;}*p;intdt[4]={10,20,30,40};structstaa[4]={50,&dt[0],60,&dt[1],60,&dt[2],60,&dt[3]};main(){p=aa;printf("%d\n",++(p->X));}

A.51B.11C.50D.60

49.

有以下程序:

main

{intk=5;

while(--k)printf("%d",k-=3);

printf("\n");

}

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

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

50.以下程序的输出结果是______。structHAR{intx,y;structHAR*p;}h[2];main(){h[0].x=1;h[0].y=2;h[1].x=3;h[1].y=4;h[0].p=&h[1];h[1].p->y);printf("%d%d\n",(h[0].p)->x,(h[1].p)->y);}

A.12B.23C.14D.32

51.有以下程序:#include<stdioh>intfun(intx,inty){if(x!=y)return(y);elsereturn((x+y)/2);}main(){inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,C)));}程序运行后的输出结果是()。

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

52.请读程序:#include<stdio.h>main(){floax,y;scanf("%f",&x);if(x<0.0)y=0.0;elseif((x<5.0)&&(x!=2.0))y=1.0/(x+2.0);elseif(x<10.0)y=1.0/x;elsey=10.0;printf("%f\n",y);}若运行时从键盘上输入2.0<CR>(<CR>表示回车),则该程序的输出结果是()

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

53.有以下程序

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

54.有如下程序main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf("%f\n",y);}该程序输出结果是______。

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

55.下面各选项中,均是C语言合法标识符的选项组是

A.33weautoB._23me_3ewC._433e_elseD.ER-DF32

56.若有定义:floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是()。

A.switch(x){case1.0:printf("*\n");case2.0:printf("**\n");}

B.switch((int)x);{case1:printf("*\n");case2:printf("**\n");}

C.switch(a+b){case1:printf("*\n");case2+1:printf("**\n");}

D.switch(a+b){case1:printf("*\n");casec:printf("**\n");}

57.有以下程序:

#include<stdlib.h>

structNODE

{intnum;structNODE*next;};

main()

{structNODE*p,*q,*r;

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

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

r=(structNODE*)malloc(sizeof(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.40

58.C语言中,运算对象必须是整型数的运算符是______。

A.%B./C.%和/D.**

59.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是A.函数调用可以作为独立的语句存在

B.函数调用可以作为一个函数的实参

C.函数调用可以出现在表达式中

D.函数调用可以作为一个函数的形参

60.已知在ASCⅡ代码中,字母A的序号为65,以下程序的输出结果是______。#include<stdio.h>main(){charc1='A',c2='Y';printf("%d,%d\n",c1,c2);}

A.65,90B.因输出格式不合法,输出错误信息C.A,YD.65,89

四、选择题(20题)61.设x,y和z都是int型变量,且x=3,y=4,z=5,则下面表达式中,值为0的表达式是()。

A.

B.

C.

D.

62.

63.有以下程序:main(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;printf("%d\n",*p+*q);}

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

64.有以下程序程序运行后的输出结果是()。

A.Zha0,m,85,90,Qian,f,95,92

B.Zha0,m,85,90,Zha0,m,85,90

C.Qian.f,95,92,Qian,f,95,92

D.Qian,f,95,92,Zha0,m,85,90

65.要求通过while循环不断读入字符,当读人字母N时结束循环,若变量已正确定义,下列正确的程序段是()。A.B.C.D.A.A.AB.BC.CD.D

66.

67.

68.负责数据库中查询操作的数据库语言是()。

A.数据定义语言B.数据管理语言C.数据操纵语言D.数据控制语言

69.有以下程序

#include<stdio.h>

#defineN4

voidfun(inta[][N],intb[])

{inti;

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

b[i]=a[i][i];

}

main()

{intx[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},y[N],i;

fun(x,y);

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

printf("\n");

}

程序的运行结果是

A.l,2,3,4,

B.1,0,7,0,

C.1,4,5,9,

D.3,4,8,10,

70.

71.

下面程序输出的是()。

main

{intt=l;fun(fun(t));}

fun(inth)

{staticinta[3]={1.2.3};

intk;

for(k=0;k<3;k++)a[k]+=a[k]-h;

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

printf("\n");

return(a[h]);}

A.1,2,3,1,5,9,

B.1,3,5,1,3,j,

C.1,3,5,0,4,8,

D.1,3。5,-1,3,7,

72.

设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句:

if(a<b)

if(c==d)y=0;

elsey=1;

该语句所表示的含义是()。

A.y=0,a<b且c=dy=1,a≥b

B.y=0,a<b且c=dy=1,a≥b且c≠d

C.y=0,a<b且c=dy=1,a<b且c≠d

D.y=0,a<b且c=dy=1,c≠d

73.数据的存储结构是指

A.存储在外存中的数据B.数据在计算机中的顺序存储方式

C.数据的逻辑结构在计算机中的表示D.数据所占的存储空间量

74.以下选项中非法的字符常量是()。

A.\101B.\65C.\xffD.\019

75.(15)在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是()

A.概要设计

B.详细设计

C.可行性分析

D.需求分析

76.

77.

78.

79.若变量已正确定义为int型,要通过语句:scanf(”%d,%d,%d”,&;a,&;b,&C.;给a赋值l、给b赋值2、给C赋值3,以下输入形式中错误的是()。(注:口代表一个空格符)

80.

五、程序改错题(1题)81.下列给定程序中,fun()函数的功能是:求3个数的最小公倍数,例如,给变量a、b、c、分别输入15、11、2,则输出结果应当是330。请修改函数中的错误,得出正确的结果。注意:不要改动main()函数,不能增行或减行,也不能更改程序的结构。试题程序:

六、程序设计题(1题)82.请编一个函数intfun(inta),它的功能是:判断a是否是素数,若a是素数,返回1;若不是素数,返回0。A的值由主函数从键盘读入。

参考答案

1.B解析:字符串连接函数strcat的调用形式如下:strcat(s1,s2)。此函数用来把s2所指字符串的内容连接到s1所指的字符串后面,并自动覆盖s1串末尾的尾标,函数返回s1的地址值。

2.D解析:逻辑运算符两侧的运算对象可以是任意合法的表达式。逻辑表达式的运算结果或者为1(“真”),或者为0(“假”)。

3.A解析:n--是先使用后自减,--n是先自减后使用。n=4时,执行n--后,n变为3,执行--n后,n变为2,所以,第一次输出时,n为2;同上过程,第二次输出时,n为0。

4.B解析:关系数据库逻辑设计的主要工作是将\ue008E-R\ue009图转换成指定RDBMS中的关系模式。首先,从E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E-R图中属性也可以转换成关系的属性,实体集也可以转换成关系。

5.Btypedef并不是增加一种新的类型,而是对已存在的类型用一个新的名字来代表,所以B选项错误。故本题答案为B选项。

6.Ascanf函数中,在格式字符前加入一个整数可以指定输入数据所占的宽度,所以赋值时会将87赋给变量a,把6.0赋给float型变量b。故本题答案为A选项。

7.D

8.C

9.C

10.D二维数组在初始化时,可以省第1维,但是不可以省第2维。可以为部分数组元素初始化。A选项、B选项和C选项内的初始化都没有错误。因此D选项正确。

11.D

12.C解析:本题考查if语句。先判断if语句的条件是否成立,++a=1>0,此条件成立,又因为是进行逻辑或运算,在已知其中一个运算对象为真的情况下,不必判断另外一个运算符的真假,即不进行++b操作,就可以直接得出整个表达式的值为逻辑1,执行下列的++c。

13.A

14.A本题考查按位与运算,按位与就是相同为1,不同为0,把x=011050化成二进制为0001001000101000,把01252化成二进制为0000001010101010,两者相与得0000001000101000。

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

16.D在最坏情况下,冒泡排序和快速排序的比较次数都是n(n一1)/2。【知识拓展】所谓冒泡排序,就是将相邻的两个数据比较,如前面的数据大于后面的,则位置互换。这样不停地比较、互换,其实就是把大的数往后排,小的数往前排(就像冒泡一样冒出来了)。

17.AC语言中的转义字符也是一个字符。字符串“0\\t\\n\\0C011\\1”,共有字符‘0’、‘\\t’、‘\\n’3个字符。strlen遇到‘\\0’字符计数结束,因此计数为3。故本题答案为A选项。

18.D解析:本题考核的知识点是指针变量定义和赋值语句的基本应用。在使用一个指针变量之前,先要用声明语句对其进行定义,在定义了一个指针变量之后,系统就为这个指针变量分配了一个存储单元,用它来存放地址。在C语言中有两个有关指针的运算符:&运算符,为取地址运算符,*运算符是指针运算符,*p代表p所指向的变量。本题中首先定义了整型变量n,其初值为0,接着定义一个指针变量p并让它指向n,然后定义了一个指向指针的指针变量q并让它指向p,选项A中将常量1赋给指针p不正确;选项B也是将常量2赋给*p,故选项B不正确;选项C中P不是指向指针的指针变量,而将他赋值给一个指向指针的指针变量小显然不正确,所以,4个选项中选项D符合题意。

19.B

20.C

21.w[i-1]w[i-1]解析:在用数组实现的有序序列中插入内容,必须先寻找插入位置。插入位置找到后,需将插入位置之后的元素向后移动一个位置,留出插入点。最后,将元素插入,并增加序列的元素个数。函数为了简化寻找插入位置循环的循环条件,预先在序列的最后置入插入值。插入位置之后的元素向后移动一个位置必须从最后一个元素开始往前逆序移动,是将前一个元素向后移,所以在空框处应填入w[i-1]。

22.p!=NULLp->nextp!=NULL,p->next解析:考查了单链表的相关知识。NULL的ASCII码的值和'\\0'的ASCII码的值相等,条件到NULL停止循环。把下一个节点的地址赋给p,这样循环,节点可以依次向后取值。

23.-f或f*-1或-1*f或f*(-1)或(-1)*ffun(10)-f或f*-1或-1*f或f*(-1)或(-1)*f\r\nfun(10)解析:调用fun()函数计算m的值,在主函数中的空格处应该填调用fun()函数的语句。fun()函数有一个形参n,为每次参加计算的值的个数,故在主函数中的空格处应该填fun(10),回到fun()函数,函数用到了一个for循环,共循环n次,当循环第i次的时候,m的值等于m=1-2+……+[(-1)的i-1次方]*i,所以在fun()函数的空格处应该填使f改变符号的语句,故应填-f或f*-1或-1*f或f*(-1)或(-1)*f。

24.66解析:条件运算符的优先级高于赋值运算符,因此本题先计算关系表达式(*ptr+y)<x)?*(ptr+y):x的值,再赋给变量z。当y=0时,*(ptr+y)=2,而x=8,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(ptr+y)=2,所以z=2;当y-1时,*(ptr+y)=4,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(ptr+y)=4,所以z=4;当y=2时,*(ptr+y)=6,(*(ptr+y)<x)条件为真,则整个条件表达式的值为*(ptr+y)=6,所以z=6;循环结束。因此输出z的结果为6。

25.224682\r\n2468解析:在主函数中根据整型数组x[]的定义可知,x[1]的初值等于2。在for循环语句中,当i=0时,p[0]=&x[1],p[0][0]=2;当i=1时,p[1==&x[3],p[1][0]=4;当i=2时,p[2]=&x[5],p[2][0]=6;当i=3时,p[3]=&x[7],p[3][0]=8,所以程序输出的结果为2、4、6、8。

26./**//**/解析:C语言程序的注释可以出现在程序基本单词之间的任何地方,C语言程序的注释以“/*”作为开始标记,并以“*/”作为结束标记。

27.18或1918或19

28.67G67G解析:由于\'5\'-\'3\'=2,所以a=\'A\'+\'5\'-\'3\'=\'C\',按'%d'格式输出\'C\'的ASCII码为67;同理,\'6\'-\'2\'=4,b=a+\'6\'-\'2\'=\'C\'+4=\'G\',按'%c'格式输出为\'G\'。

29.自盒自盒解析:自盒测试法即结构测试,它与程序内部结构相关,要利用程序结构的实现细节设计测试实例。白盒测试法主要有逻辑覆盖、基本路径测试等。

30.22解析:本题变量m既是外部变量(值是13),又是fun函数的局部变量(值为3)。函数fun(x*y-m)的值为7*5-3=32,在main函数中,fun(a,b)/m中的m应取外部变量的值13,因此输出2。

31.数据存储数据存储

32.c=1x=Oy=Oz=1

33.空间复杂度和时间复杂度空间复杂度和时间复杂度解析:算法的复杂性是指对一个在有限步骤内终止算法和所需存储空间大小的估计。算法所需存储空间大小是算法的空间复杂性,算法的计算量是算法的时间复杂性。

34.如果a能被i整除,则a是素数,返回值为0。如果a不能被i整除,则a不是素数,返回值为1。

35.aabbccaabbcc解析:printf函数先输出a,遇%c,接着输出变量c1的值a,然后输出bb,遇%t,从第9个位置开始输出cc。

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

37.SO

38.8181解析:带参数的宏定义是按#define命令行中指定的字符串从左到右进行替换。本题替换后得到:4*i+j*i+j+1,代入i,j的值得81。

39.j++a[i]>a[j]或a[j]<a[i]j++\r\na[i]>a[j]或a[j]<a[i]解析:题目要求排序的元素是下标值为偶数的元素,外循环循环4次,i的值分别为0、2、4、6,所以内循环也循环4次,i的值就应为2、4、6、8,在循环体中已经有了对j加1的操作,因此for后括号中的语句应再对j加1,保证下标为偶数。if语句的功能是如果后一个数比前一个数小则交换位置。

40.bcdefghabcdefgha解析:while循环的功能把字符从第二个元素开始左移一位,并将原第一个元素赋给最后一个元素。

41.A解析:结构化程序由3种基本结构组成,即顺序结构、循环结构(包括for语句、while语句及do…\u3000while语句)和选择结构(包括if语句和switch语句)。

42.A解析:该题考查的是递归函数的调用,题中读fun函数进行了递归调用,第1次调用:fun(3)n=3s=3-fun(2);第二次调用时:fun(2)n=2s=2返回第一次调用后,s=3-2=1。

43.A解析:关系表中,每一行称为一个元组,对应表中的一条记录;每一列称为表中的一个属性,对应表中的一个字段;在二维表中凡能惟一标识元组的最小属性集称为该表的键或码。

44.D解析:第1次循环,i=0,x=10,y=10,先输出x=10,y=10,再执行x--使得x变为9,其次再执行y=++i(i加1后参与赋值)使得y变为1:第2次循环,i=1,x=9,y=1,先输出x=9,y=1,再执行x--使得x变为8,其次再执行y=++i(i加1后参与赋值)使得y变为2。x=8,不满足x>8,循环结束。

45.A解析:R-S表示属于R但不属于S,R-(R-S)\ue009表示属于R但不属于(R-S),即相当于R∩S。

46.A解析:本题考核C++语言中while循环和do-while循环之间的区别。do-while语句与while语句不同的是,do-while循环中的<语句>至少会执行一次,而while语句中当条件在第一次循环就不满足时,语句一次也不会执行。

47.C解析:本题考查的知识点是赋值语句的基本知识。在表达式的运算中,双目赋值运算符的格式为“变量二表达式”,单目运算符一般形式为“运算符表达式”或“表达式运算符”。常量和表达式是不能被赋值的。选项A为复合表达式,首先计算(i=2,++i)的值,然后赋值给n,故选项A正确;选项B为简单自加运算,故选项B正确;选项C在表达式++(i+1);中,(i+1)不是变量,该表达式的值为常量,而在++运算中,其运算对象必须为变量,故选项C错误;选项D中为复合赋值表达式,正确.所以应当选择C。

48.A解析:p是指向结构aa的结构指针,++(p->x)是对p的x成员的值进行加1。p=aa使得p指向aa的首地址,p->x的值为50,那么++(p->X)就等于51。

49.A解析:因为在while循环的循环条件中,一运算符是前缀形式,所以表达式—k的值是k自减之后的值。程序开始时,将k的值初始化为5,然后进入while循环,因为—k的值为4(非零),所以执行循环体输出k-=3的值1,此时k的值也变为1。第2次执行循环条件,—k的值为0,所以循环结束。因此最后输出的结果是1,故应该选择A。

50.D解析:本题中是一个结点的循环链表。C语言中结构体的定义为:struet结构体类型名{成员项表;};

51.B

52.C

53.B解析:此程序考察了for循环和x++。对于大循环,有两个x++,其中循环3次,对于小循环,循环三次,但是运行了两次x++,所以最后结果是6+2=8。

54.C解析:本题考查的是if...else语句的使用。x=2.0,符合第二个IF语句的条件x<10.0,所以执行y=1.0/x语句,即y=1.0/2.0=0.500000。

55.B解析:合法的标识符是由字母、数字和下划线组成,并且第一个字符必须为字母或下划线,用户定义的标识符不能与关键字相同。选项A),数字不能为第一个字母,auto为关键字;选项C)中,也是数字不能为第一个字母,else为关键字;选项D)中负号不合法。

56.C解析:switch后的括号中只能是整型或字符型表达式,选项A中使用的是浮点型变量x,故不正确。选项B在switch的括号后面多了一个分号,故也不正确。switch的case标号后只能是常量或常量表达式,而不能是变量,所以选项D也不正确。故应该选择C。

57.D解析:本题在主函数中首先定义了3个结构体指针变量p,q,r。然后调用内存分配函数分别为其分配地址空间,程序中变量p->num的值为10,指针变量q->next指向指针变量r,r->num的值为30,所以变量q->next->num的值为30,因此,表达式p->num+q->next->num的值为10+30=40。所以4个选项中D正确。

58.A解析:本题考查运算符的运算对象,“%”为双目运算符,且操作数只能为整型。

59.D解析:本题考查函数的调用。在有参函数调用中,是将主调函数的实参值传给被调函数的形参。按函数在程序中出现的位置来分,有以下三种函数调用形式:

①函数调用作为一条语句。例如:fun();这时不要求函数带回值,只要求函数完成一定的操作。故选项A)正确。

②函数出现在表达式中,这种表达式称为函数表达式。这时要求函数带回一个确定的值以参加表达式的运算。例如:c=5*max(a,b);函数max是表达式的一部分,将其值乘以5后赋给c。故选项C)正确。

③函数调用作为一个函数的实参,例如:m=max(a,max(b,c));其中max(b,c)是一次函数调用,它的值作为max另一次调用的实参。故选项B)正确。

函数调用不可作为一个函数的形参,因为函数调用参数的数据传递是单向传递,即实参传给形参,不能由形参传给实参。故选项D)错误。

60.D解析:在C语言中,将一字符常量赋值给一个变量,是把此字符常量所对应的ASCII码值赋值给此字符变量,所以一个字符既可作为字符形式输出,也可以整数形式输出。

61.D该题考查逻辑与”&&”和逻辑或”||”以及逻辑非”!¨符号的用法。选项A)即3&&4为真;选项B)即3<=4为真;选项C)是一个逻辑或与逻辑与的混合运算,只要执行了逻辑或左半部分,程序将直接停止执行逻辑或右半部

分程序,因为x的值为真;此时选项c)变为l&&一1为真。选项D)不用计算,括号内逻辑或右边的值为l,因而括号内的值为1,再进行逻辑非运算得0。

62.B

63.B解析:本题定义了一维数组a和两个指针变量。指针变量p的初值为第4个数组元素的地址,指针变量q的初值为,第6个数组元素的地址。*p+*q=4+6=10。

64.A本题考查的是函数调用时的参数传递问题。程序在调用函数时,传给函数啪参数只是结构变量C在栈中的一个拷贝,函数馓的所有操作只是针对这个数据拷贝进行的修改,这些都不会影响变量C的值。因此本题答案为A)。

65.Awhile循环的执行过程如下:①计算while后面圆括号中表达式的值。当值为非0时,执行步骤②。当值为0时,执行步骤④。②执行循环体一次。③转去执行步骤①④退出循环。在选项A中,表达式(ch=get-char())!="N"表示输入的字符不等于N,如果这个条件表达式成立,则执行循环体,打印输出输入的字符。如果这个条件表达式不成立,即输入的字符等于N,则退出循环。所以选项A为正确答案。

66.D

67.B

68.C数据定义语言:负责数据的模式定义与数据的物理存取构建;数据操纵语言:负责数据的操纵,包括查询及增加、删除、修改等操作;数据控制语言:负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。因此本题答案为C)。

69.B本题考查二维数组的相关操作。程序主要包括两个部分:主函数部分和fun函数。主函数初始给出了一个4×4的二维矩阵,并对每一行赋初值,可以看出每一行都要有4个元素,而对于给出的初值个数不满足4个的,要先从第一列开始将各个值赋给各列,不足的部分用0补齐。函数fun的作用是将二维矩阵a中行号与列号相同的数据赋值给一维矩阵y,y的下标与该数据在a中的行号相同。题目所要求解的即通过printf函数将矩阵y中的元素按照顺序输出。本题中二维矩阵a初始化后为{{1,2,3,0},{4,0,0,0},{5,6,7,8},{9,10,0,0}}。将行号与列号相同的元素赋给y,则y矩阵的数据为{1,0,7,0},输出即可得到结果。

70.C

71.D

\n本题考查双重函数调用及for循环使用,fun函数中第一个for循环语句的作用是给数组a赋值。当第一次调用fun函数时,把实参1传给形参,输出a数组的元素为1,3,5;第二次调用fun函数时,由于数组a为静态局部变量,故输出a数组的元素为一1,3,7。

\n

72.C

\n语句“if(c==d)y=0;elsey=1;”是if(a<b)语句的一个子句。所以整个语句表达式的意思是:在a<b的情况下,如果c=b,则y=0,否则y=1;如果a<b,则执行第2个if语句,如果C等于d,那么y=0,如果c不等于d,那么y=1,所以,选项C为正确答案。

\n

73.C数据结构是相互之间存在一种或多种特定关系的数据元素的集合。数据结构在计算机中的表示称为数据的物理结构,又称存储结构。它包括数据元素的表示和关系的表示。数据之间的关系在计算机中有两种不同的表示方法:顺序映像和非顺序映像,并由此得到两种不同的存储结构,即顺序存储结构和链式存储结构。

74.D在选项中,\\019,以0开头的数都为八进制数,而八进制的表示数字是0~7,所以答案选择D。

75.D注:即第一个阶段

76.C

77.B

78.D

79.Dscanf()的格式控制串可以使用其他非空白字符,如本题中的逗号,但在输入时必须输入这些字符;以保证匹配。所以逗号必须输入。

80.A

81.(1)错误:j=1;

正确:i=0;

(2)错误:while(temp!=0&&m!=0&&n!=0)

正确:while(temp!=0||m!=0I{n!=0)

【解析】其中while循环是判断能否除尽x、y、z,循环中“i=i+1;”进行了加1操作,i应该从1开始进行循环,所以i的初始值应该是0,这样第一个错误标识下的“i=1;”就改为“i=0;”。

第二个标识下while循环逻辑关系应该是或的关系,因为最小公倍数成立的条件是同时除尽,所以只要不是同时除尽,循环就继续,这样“while(temp!=0&&m!=0&&n!=0)”应该是“while(temp!=0||m!=0||n!=0)”。

82.\n#include”stdio.h”

\nintfun(inta)

\n{intI;

\nif(a==2)return1;I=2;

\nwhile((a%I)!=0I<=sqrt((float)a))

\nI++;

\nif(a%I==0)

\n{printf(“%disnotaprime!”,a);

\nreturn0;}

\nprintf(“%disaprime!”,a);

\nreturn1;}

\nmain

\n{intx;

\nprintf(“\\npleaseenteranumber:”);

\nscanf(“%d”,&x);

\nprintf(“%d\\n”,fun(x));}

\n2021-2022年湖南省郴州市全国计算机等级考试C语言程序设计学校:________班级:________姓名:________考号:________

一、单选题(20题)1.有下面程序段#include"stdio.h"#include"string.h"main(){chara[3][20]={{"china"};{"isa"},{bigcountry!"}};chark[100]={0},*p=k;inti;for(j=0;j<3;i++){p=strcat(p,a[i]);}i=strlen(p);printf("%d\n",i);}则程序段的输出结果是

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

2.下列关于逻辑运算符两侧运算对象的叙述中正确的是()。

A.只能是整数0或1B.只能是整数0或非0整数C.可以是结构体类型的数据D.可以是任意合法的表达式

3.以下程序的输出结果是()。#include<stdio.h>main(){intn=4;while(n--)printf("%d",--n);}

A.20B.31C.321D.210

4.将E-R图转换到关系模式时,实体与联系都可以表示成________。

A.属性B.关系C.键D.域

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

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

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

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

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

6.设有定义“inta;floatb;”,执行“scanf(“%2d%f”,&a,&b);”语句时,若从键盘输入876543.0并按<Enter>键,则a和b的值分别是()。

A.87和6.0B.876和543.0C.87和543.0D.76和543.0

7.用链接方式存储的队列,在进行删除运算时()。

A.仅修改头指针B.仅修改尾指针C.头、尾指针都要修改D.头、尾指针可能都要修改

8.对于静态表的顺序查找法,若在表头设置监视哨,则正确的查找方式为()A.从第0个元素往后查找该数据元素

B.从第1个元素往后查找该数据元素

C.从第n个元素往开始前查找该数据元素

D.与查找顺序无关

9.排序方法中,从未排序序列中依次取出元素与已排序序列中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为()。

A.希尔排序B.冒泡排序C.插入排序D.选择排序

10.以下叙述中正确的是

A.语句inta[4][3]={{1,2},{4,5}};是错误的初始化形式

B.语句inta[4][3]={1,2,4,5};是错误的初始化形式

C.语句inta[][3]={1,2,4,5};是错误的初始化形式

D.在逻辑上,可以把二维数组看成是一个具有行和列的表格或矩阵

11.

12.下列程序的输出结果是()。#include<stdio.h>voidmain(){inta=0,b=1,c=2;if(++a>0‖++b>0)++c;printf("%d,%d,%d",a,b,c);}

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

13.若有以下定义和语句

chars1[10]="abcd!",*s2="\n123\\";

printf("%d%d\n",strlen(s1),strlen(s2));

则输出结果是A.A.55B.105C.107D.58

14.设x=011050,则x=x&01252的值是()。A.0000001000101000

B.1111110100011001

C.0000001011100010

D.1100000000101000

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

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

16.对于长度为n的线性表,在最坏情况下,下列各种排序法所对应的比较次数中正确的是(

A.冒泡排序为n/2B.冒泡排序为nC.快速排序为nD.快速排序为n(n-1)/2

17.有以下程序:#include<stdio.h>#include<string.h>main(){printf(“%d\n”,strlen(“0\t\n\0C011\1”));}程序运行后的输出结果是()。

A.3B.13C.1D.0

18.设有定义:intn=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是()A.p=1;B.*q=2;C.q=p;D.*p=5;

19.判定一个顺序栈st(最多元素为MaxSize)为空的条件是()。

A.st->top!B.st->top!C.top==-1D.top==MaxSize

20.若已知一个栈的进栈序列是1,2,3,,n,其输出序列为p1,p2,p3,?,pn,若p1=n,则pi为()。

A.iB.n-iC.n-i+1D.不确定

二、2.填空题(20题)21.以下函数用来在w数组中插入x。n所指向的存储单元中存放w数组中字符个数。数组w中的字符已按从小到大的顺序排列,插入后数组w中的字符仍有序。请填空。

voidfun(char*w,charx,int*n)

{inti,p;

p=0;

w[*n]=x;

while(x>w[p])p++;

for(i=*n;i>p;i--)w[i]=【】;

w[p]=x;

++*n;}

22.以下程序中函数fun的功能是:构成一个如图所示的带头结点的单向链表,在结点的数据域中放入了具有两个字符的字符串。函数disp的功能是显示输出该单链表中所有结点中的字符串。请填空完成函数disp。

#include<stdio.h>

typedefstructnode/*链表结点结构*/

{charsub[3];

structnode*next;

}Node;

Nodefun(chars)/*建立链表*/

{……}

voiddisp(Node*h)

{Node*p;

p=h->next;

while(【】)

{printf("%s\n",P->sub);p=【】;}

}

main()

{Node*hd;

hd=fun();disp(hd);printf("\n");

}

23.以下程序的功能是调用函数fun计算:m=1-2+3-4+…+9-10,并输出结果。请填空。

intfun(intn)

{intm=0,f=1,i;

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

m+=i*f;

f=【】;

returnm;

}

main()

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

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

main()

{

inta[]={2,4,6},*ptr=&a[0],x=8,y,z;

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

z=(*(ptr+y)<x)?*(ptr+y):x;

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

}

25.以下程序的定义语句中,x[1]的初值是【】,程序运行后输出的内容是【】。

#include<stdio.h>

main()

{intx[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,161},*p[4],i;

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

{p[i]=&x[2*i+1];

printf("%d",p[i][0]);

}

printf("\n");

}

26.C语言程序的注释可以出现在程序中的任何地方,一个注释以【】分别作为开始和结束。

27.要使以下程序段输出10个整数,请填入一个整数;

for(i=0;i<=【】;printf("%d\n",i+=2));

28.已知字符'A'的ASCII码为65,以下程序运行后的输出结果是【】。

#include<stdio.h>

main()

{chara,b;

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

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

}

29.软件测试分为白箱(盒)测试和黑箱(盒)测试。基本路径测试方法属于()测试。

30.下面程序执行后输出的结果是【】。

intm=13;

intfun(intx,inty)

{intm+3;

return(x*y-m);

}

main()

{inta=7,b,5;

prntf("%d\n",fun(a,B)/m);

}

31.数据字典是各类数据描述的集合,它通常包括五个部分,即数据项、数据结构、数据流、【】和处理过程。

32.下列程序的运行结果为【】。

main()

{inta,b,c,x,y,z;

a=10;b=2;

c=!(a%b);x=!(a/b);

y=(a<b)&&(b>=0);

z=(a<b)||(b>=0);

printf("c=%d,x=%d,y=%d,z=%d\n",c,x,y,z);

}

33.实现算法所需的存储单元多少和算法的工作量大小分别为算法的【】。

34.以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0。请填空。

intisprime(inta)

for(i=2;i<=a/2;i++)

if(a%i==0)[8];

[9];

35.程序的运行结果为【】。

main()

{charc1='a',c2='b',c3='c';

printf("a%cb%c\tc%c\n",c1,c2,c3);

}

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

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

}

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

main()

{char*p[]={"BOOL","OPK","H","SP"};

inti;

for(i=3,i>=0;i--,i--)printf("%c",*p[i]);

printf("\n");

}

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

#include<stdio.h>

#defineS(x)4*x*x+1

main()

{inti=6,j=8;

prinff("%d\n",S(i+j));

}

39.下面程序的功能是将字符串a下标值为偶数的元素由小到大排序,其他元素不变,请填空。

#include<stdio.h>

main()

{chara[]="labchmfye",t;

inti,j;

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

for(j=i+2;j<9;【】)

if(【】)

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

puts(a);

printf("\n");

}

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

#include<string.h>

cbar*ss(char*s)

{char*p,t;

p=s+1;t=*s;

while(-p){*(p-1)=*p;p++;}

*(p-1)=t;

returns;

}

main()

{char*p,str[10]="abcdefgh";

p=ss(str);

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

}

三、1.选择题(20题)41.C语言中用于结构化程序设计的三种基本结构是A.顺序结构、选择结构、循环结构

B.if、switch、break

C.for、while、do-while

D.if、for、continue

42.以下程序的输出结果是______。longfun(intn){longs;if(n==1||n==2)s=2;elses=n-fun(n-1);returns;}main(){printf("%ld\n",fun(3));}

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

43.关系表中的每一横行称为一个()。A.元组B.字段C.属性D.码

44.以下程序的输出结果是______。main(){intx=10,y=10,i;for(i=0;x>8;y=++i)printf("%d%d",x--,y);}

A.10192B.9876C.10990D.101091

45.设有关系R和S,关系代数表达式为R-(R-S)表示的是

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

46.C语言中while循环和do-while循环的主要区别是______。

A.do-while的循环体至少无条件执行一次

B.while的循环控制条件比do-while的循环控制条件严格

C.do-while允许从外部转到循环体内

D.do-while的循环体不能是复合语句

47.以下非法的赋值语句是

A.n=(i=2,++i);B.j++;C.++(i+1);D.x=j>0;

48.以下程序的输出是______。structst{intx;int*y;}*p;intdt[4]={10,20,30,40};structstaa[4]={50,&dt[0],60,&dt[1],60,&dt[2],60,&dt[3]};main(){p=aa;printf("%d\n",++(p->X));}

A.51B.11C.50D.60

49.

有以下程序:

main

{intk=5;

while(--k)printf("%d",k-=3);

printf("\n");

}

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

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

50.以下程序的输出结果是______。structHAR{intx,y;structHAR*p;}h[2];main(){h[0].x=1;h[0].y=2;h[1].x=3;h[1].y=4;h[0].p=&h[1];h[1].p->y);printf("%d%d\n",(h[0].p)->x,(h[1].p)->y);}

A.12B.23C.14D.32

51.有以下程序:#include<stdioh>intfun(intx,inty){if(x!=y)return(y);elsereturn((x+y)/2);}main(){inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,C)));}程序运行后的输出结果是()。

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

52.请读程序:#include<stdio.h>main(){floax,y;scanf("%f",&x);if(x<0.0)y=0.0;elseif((x<5.0)&&(x!=2.0))y=1.0/(x+2.0);elseif(x<10.0)y=1.0/x;elsey=10.0;printf("%f\n",y);}若运行时从键盘上输入2.0<CR>(<CR>表示回车),则该程序的输出结果是()

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

53.有以下程序

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

54.有如下程序main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf("%f\n",y);}该程序输出结果是______。

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

55.下面各选项中,均是C语言合法标识符的选项组是

A.33weautoB._23me_3ewC._433e_elseD.ER-DF32

56.若有定义:floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是()。

A.switch(x){case1.0:printf("*\n");case2.0:printf("**\n");}

B.switch((int)x);{case1:printf("*\n");case2:printf("**\n");}

C.switch(a+b){case1:printf("*\n");case2+1:printf("**\n");}

D.switch(a+b){case1:printf("*\n");casec:printf("**\n");}

57.有以下程序:

#include<stdlib.h>

structNODE

{intnum;structNODE*next;};

main()

{structNODE*p,*q,*r;

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

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

r=(structNODE*)malloc(sizeof(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.40

58.C语言中,运算对象必须是整型数的运算符是______。

A.%B./C.%和/D.**

59.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是A.函数调用可以作为独立的语句存在

B.函数调用可以作为一个函数的实参

C.函数调用可以出现在表达式中

D.函数调用可以作为一个函数的形参

60.已知在ASCⅡ代码中,字母A的序号为65,以下程序的输出结果是______。#include<stdio.h>main(){charc1='A',c2='Y';printf("%d,%d\n",c1,c2);}

A.65,90B.因输出格式不合法,输出错误信息C.A,YD.65,89

四、选择题(20题)61.设x,y和z都是int型变量,且x=3,y=4,z=5,则下面表达式中,值为

温馨提示

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

最新文档

评论

0/150

提交评论