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

下载本文档

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

文档简介

2021-2022年贵州省贵阳市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.有以下程序:#include<stdio.h>main(){FILE*fp;inti,a[6]={1,2,3,4,5,6},b[6];fp=fopen(“d.dat”,“w+b”);fwrite(a,sizeof(int),6,fp);for(i=0;i<6;i++)fwrite(&a[2],sizeof(int),1,fp);rewind(fp);fseek(fp,sizeof(int)*2,SEEK_CUR);fread(b,sizeof(int),6,fp);fclose(fp);for(i=0;i<6;i++)printf(“%d,”,b[i]);}程序运行后的输出结果是()。

A.3,4,5,6,3,3,B.1,2,3,4,5,6,C.3,4,5,6,1,2,D.3,4,5,6,1,1,

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

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

3.有以下程序:#includeMain(){charc1.c2;.c1='A'+'8'-'4';c2='A'+'8'-'5';.printf("%c,%d\n",,c1.c2);}已知字母A的ASCI码为65.程序运行后的输出结果是()。A.E.68B.D.69C.E,DD.输出无定值

4.下面程序的输出结果是()。

#include<stdio.h>

main()

{inta[4][5]={1,2,4,-4,5,-9,3,6,-3,2,7,8,4};

inti,j,n;

n=9;

i=n/5;

j=n-i*5-1;

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

}

执行后输出结果是()。A.A.a[1][3]=6

B.a[1][3]=-3

C.a[1][3]=2

D.不确定

5.有以下程序:#include<stdio.h>intfun(intx){intp;if(x==0||x==1)return(3);p=x-fun(x-2);returnp;}main(){printf(“%d\n”,fun(7));}程序的运行结果是()。A.2B.3C.7D.0

6.下列程序的运行结果为()。

#deflneMAX(x,y)(x)>(y)(x):(y)

main()

{inta=2,b=3,c=1,d=3,t;

printf("%d\n",(MAX(a+b,c+D))*100);

}A.A.500B.5C.4D.400

7.下列语句中,显示没有下画线的超链接的语句是()。

A.a{text—decoration:none}

B.a{text—decoration:nounderline}

C.a{underline:none}

D.a{decoration:nounderline}

8.下列方法中,属于白盒法设计测试用例的方法的是()。

A.错误推测B.因果图C.基本路径测试D.边界值分析

9.若已知一个栈的入栈序列是1,2,3,......,n,其输出序列为p1,p2,p3,..,pn,若p1=n-1,则pi可能为()

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

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

A.由3种基本结构构成的程序只能解决简单问题

B.结构化程序由顺序、分支、循环3种基本结构组成

C.C语言是一种结构化程序设计语言

D.结构化程序设计提倡模块化的设计方法

11.若有宏定义“#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

12.设有定义“floata=12.3f;doubleb=456.78;”,若想用printf函数输出a和b的值,关于输出格式,以下说法正确的是()。

A.只能用%lf输出a,用%f输出b

B.只能用%f输出a,用%lf输出b

C.只能用%lf输出a,用%lf输出b

D.既可以用%f输出a,也可以用%f输出b

13.设有以下函数“voidfun(intn,char*s){…}”,则下列对函数指针的定义和赋值均正确的是()。

A.void(*pf)(int,char);pf=&fun;

B.void*pf();pf=fun;

C.void*pf();*pf=fun;

D.void(*pf)(int,char*);pf=fun;

14.设s1="Good",s2="",s3="Bye",则s1、s2和s3连接后的结果是()。

A.GoodB.GoodByeC.GoodByeD.Bye

15.已知inta=2,b=3;则执行表达式a=a<b后,变量a的值为()。

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

16.以下选项中表示一个合法的常量是(说明:符号口表示空格)()。

A.9口9口9B.0XabC.123E0.2D.2.7e

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

A.数据库系统B.文件系统C.人工管理D.数据项管理

18.p指向线性链表中某一结点,则在线性链表的表尾插入结点s的语句序列是()。

A.while(p->next!=NULL)p=p->next;p->next=s;s->next=NULL;

B.while(p!=NULL)p=p->next;p->next=s;s->next=NULL;

C.while(p->next!=NULL)p=p->next;s->next=p;p->next=NULL;

D.while(p!=NULL)p=p->next->next;p->next=s;s->next=p->next;

19.下面程序的输出结果是main(){charstr[10],c='a';inti=0;for(;i<5;i++)str[i]=c++;printf("%s",str);}

A.abcdeB.aC.不确定D.bcdef

20.有以下程序:intfun(intn){if(n==l)returnl;elsereturn(n+fun(n一1)):}main{intx;scanf("%d",&x);x=fun(x);printf("%d\n",x):}执行程序时,给变量X输入10,程序的输出结果是()。A.55B.54C.65D.45

二、2.填空题(20题)21.数据结构分为线性数据结构和非线性数据结构,带链的队列属于()。

22.下面程序有两个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("%\n",p+9);

}

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

main()

{

inti,m=0,n=0,k=0;

for(i=9;i<=11;i++)

switch(i/10)

{

case0:m++;n++;break;

case10:n++;;break;

default:k++;n++;

}

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

}

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

25.某二义树中度为2的结点有18个,则该二叉树中有______个叶子结点。

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

main()

{intk=1;

white(k<=15)

if(++k%3!=2)continue;

elseprintf("%d",k);

printf("\n");

}

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

28.数据结构分为逻辑结构与存储结构,线性链表属于【】。

29.下列语句能循环______次。

ints=12;

while(s);

--s;

30.设Y是int型变量,请写出判断Y为奇数的关系表达式【】。

31.以下程序的功能是:通过函数func输入字符并统计输入字符的个数。输入时用字符作为输入结束标志。请填空。#include<stdio.h>long();/*函数说明语句*/main(){longn;n=func();printf"n=%1d\n",n);}longfunc(){longm;for(m=0;getchar()!='';());returnm:}

32.排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、______和选择排序。

33.函数调用语句:“fgets(buf,n,fp);”从中指向的文件中读入n个字符放到buf字符数组中,函数返回值为______。

34.下列程序段中循环体的执行次数是______。

a=15;

b=0;

do{b+=2;a-=2+b;}while(a>=0);

35.常用的黑箱测试有等价类划分法、【】和错误推测法3种。

36.在数据库系统中,实现各种数据管理功能的核心软件称为【】。

37.设x和y均为int型变量,且x=1,y=2,则表达式double(1+x/y)的值为【】。

38.以下程序的输出结果是()。

#include<stdio.h>

main()

fintx=0;

sub(&x,16,2);

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

}

sub(int*a,intn,intk)

{if(k<=n)sub(a,n/2,2*k);

*a+=k;

}

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

intfun(int*x,intn)

{if(n==0)returnx[0];

elsereturnx[0]+fun(x+1,n-1);

}

main()

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

printf("%d\n",fun(a,3));}

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

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

}

三、1.选择题(20题)41.若有以下说明和定义uniondt{inta;charb;doublec;}data;以下叙述中错误的是______。A.data的每个成员起始地址都相同

B.变量data所占的内存字节数与成员c所占字节数相等

C.程序段data.a=5;printf("%f\n",data.c);输出结果为5.000000

D.data可以作为函数的实参

42.有以下程序main(){chara,b,c,d;scanf("%c,%c,%d,%d",&a,&b,&c,&d);printf("%c,%c,%c,%c\n",a,b,c,d);}若运行时从键盘上输入:6,5,65,66<回车>。则输出结果是

A.6,5,A,BB.6,5,65,66C.6,5,6,5D.6,5,6,6

43.若定义了以下函数:voidf(……){……*p=(double*)malloc(10*sizeof(double));……}p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调函数,则形参p的正确定义应当是()

A.double*pB.float**pC.double**pD.float*p

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

A.在面向对象的程序设计中,各个对象之间具有密切的关系

B.在面向对象的程序设计中,各个对象都是公用的

C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小

D.上述3种说法都不对

45.交换两个变量的值,不允许用临时变量,应该使用下列()位运算符。A.A.&B.^C.||D.~

46.已定义c为字符型变量,则下列语句中正确的是()。

A.c='97'B.c="97"C.c=97D.c="a"

47.有以下程序:#include<string.h>main(){charp[20]={'a','b','c','d'},q[]="abc",r[]="abcde";strcat(p,r);strcpy(p+strlen(q),q);printf("%d\n",strlen(p));}程序运行后的输出结果是()。

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

48.以下正确的程序段是

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

49.下列不是合法的C语言语句是()。

A.a=5B.{inti;i++;}C.;D.{;}

50.已知a=15,执行fprintf(fp,"%d",a)后,写入fp指向的文件的是______。

A.15B.1111C.63D.1111

51.有下列程序:main(){inti,j;for(i=1;i<4;i++){for(j=i;j<4;j++)printf("%d*%d=%d",i,j,i*j);printf("\n");}}程序运行后的输出结果是()。

A.1*1=11*2=21*3=32*1=22*2=43*1=3

B.1*1=11*2=21*3=32*2=42*3=63*3=9

C.1*1=11*2=22*2=41*3=32*3=63*3=9

D.1*1=12*1=22*2=43*1=33*2=63*3=9

52.已定义ch为字符型变量,以下赋值语句中错误的是

A.ch='\';B.ch=62+3;C.ch=NULL;D.ch='\xaa';

53.以下语句或语句组中能正确进行字符串赋值的是()。

A.ehar以*sp;*sp="right!";

B.chars[10];s="right!";

C.chars[10];*s="right!";

D.char*sp="right!";

54.假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入:PROGABCDEFGHIJKL<回车>,则输出结果为main(intargc,char*argv0[]){while(--argc>0)printf("%s",argv[argc]);printf("\n");}

A.ABCDEFGB.IJHLC.ABCDEFGHIJKLD.IJKLABCDEFGH

55.设intb=2;,表达式(b<<2)/(b>>1)的值是()

A.0B.2C.4D.8

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

A.构成C程序的基本单位是函数

B.可以在一个函数中定义另一个函数

C.main函数必须放在其他函数之前

D.C函数定义的格式是K&R格式

57.下列二维数组初始化语句中,正确且与语句floata[][3]={0,3,8,0,9};等价的是

A.floata[2][]={{0,3,8},{0,9}};

B.floata[][3]={0,3,8,0,9,0};

C.floata[][3]={{0,3},{8,0},{9,0}};

D.floata[2][]={{0,3,8},{0,9,0}};

58.若t为doudle类型,表达式t=1,t+5,t++的值是()

A.1B.6C.2D.1

59.以下能正确定义二维数组的是______。

A.inta[][3];

B.inta[][3]={2*3};

C.inta[][3]={};

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

60.有以下程序:#include<string.h>main(intargc,char*argv[]){inti,len=0;for(i=1;i<argc;i+=2)len+=strlen(argv[i]);printf("%d\n",len);}经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行exabcdefgh3k44执行后输出的结果是()。

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

四、选择题(20题)61.数据库系统的核心是()。

A.数据模型B.数据库管理系统C.数据库D.数据库管理员

62.

63.

有以下程序:

#include<stdio.h>

voidfun(char*t,char*s)

{while(*t!=O)t++;

while((*t++=*s++)!=0);

}

main

{charss[10]="acc",aa[10]="bbxxyy";

fun(ss,aa);printf("%S,%s",ss,aa);

}

程序运行结果是()。

A.accxyy,bbxxyy

B.ace,bbxxyy

C.accxxyy,bbxxyy

D.accbbxxyy,bbxxyy

64.有以下程序:

#include<stdio.h>

main()

{intX=011;

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

}

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

A.12B.11C.10D.9

65.

66.下列数据结构中,属于非线性结构的是A.循环队列B.带链队列C.二叉树D.带链栈

67.定义无符号整数类为UInt,下面可以作为类UInt实例化值的是()。

A.-369B.369C.0.369D.整数集合{1,2,3,4,5}

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

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

69.交换两个变量的值,不允许用临时变量,应该使用下列()位运算符。

A.&B.^C.D.E.F.~

70.

71.下列叙述中正确的是()。A.数据库系统可以解决数据冗余和数据独立性问题,而文件系统不能

B.数据库系统能够管理各种类型的文件,而文件系统只能管理程序文件

C.数据库系统可以管理庞大的数据量,而文件系统管理的数据量较少

D.数据库系统独立性较差,而文件系统独立性较好

72.

73.若x=5,y=3则y*=x+5;y的值为___________.

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

74.利用fseek函数可实现的操作是()。

A.实现文件的顺序读写B.改变文件的位置指针C.实现文件的随机读写D.以上答案均正确

75.关系数据库管理系统所管理的关系是()。A.若干个二维表B.一个DBF文件C.一个DBC文件D.若干个DBC文件

76.以下结构体类型说明和变量定义中正确的是()。

77.

78.下列程序的输出结果是()。#includeintfun(inta){intb=0;staticintc=4;a=c++;b++;return(a);}main{inta=2,i,c;for(i=0:i<2;i++)c=f(a+1);printf("%d\n",c);}A.4B.7C.6D.5

79.

80.

有下列程序:

intfun(intx[],intn)

{staticintsum=0,i:

for(i0;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.45B.50C.60D.55

五、程序改错题(1题)81.下列给定的程序中,函数proc()的功能是:计算并输出m以内最大的6个能被7或11整除的自然数之和。m的值由主函数传人。例如,若m的值为600,则函数的值为3515。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.假定输入的字符串中只包含字母和*号。请编写函数proc(),它的功能是:除了尾部的*号之外,将字符串中其他*号全部删除。形参P已指向字符串中最后一个字母。在编写函数时,不得使用C语言的字符串函数。例如,若字符串中的内容为****a*bc*def*g****,删除后,字符串中的内容应当是abcdefg****。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。试题程序:

参考答案

1.A程序首先以读二进制文件的方式打开文件d.dat;然后使用fwrite函数将数组a中6个元素写入d.dat中。并调用for循环将a[2]元素(值为3)6次写入d.dat文件中;接着使用rewind函数将文件指针fp移动到文件头;再使用fseek函数将fp从当前位置向后移动2个整数位置;最后使用fread函数从fp指向的位置向后读取6个整数。由此可知这6个整数分别是:3,4,5,6,3,3。故本题答案为A选项。

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

3.A[解析]本题目中字符变量c1是字符A的ASCII码加上4.即69所对应的字符E。字符变量c2是字符'A'的ASCII码加上3.即68所对应的字符D'。但是打印输出时,c1以%c的格式输出,所以是E,c2以%d的格式输出,所以是68.

4.Bn=9,i=n/5=1;j=9-1*5-1=3,输出为a[1][3]=-3

5.A因为fun(intx)是一个递归函数。在主函数中fun(7)经过3次递归调用。其过程可以描述为fun(7)=7-fun(5)=7-(5*fun(3))=7*(5*(3*fun(1)))=7-(5-(3-3))=7-5=2。最后的输出结果为2。故本题答案为A选项。

6.A解析:本题考查带参数的宏的定义及相关运算:(x)>(y)(x):(y)是x>y时输出x,否则输出y,调用(MAX(a+b,c+d))*100时,(a+b=5)>(c+d=4),所以输出a+b=5,所以x=5*100。

7.A

8.CC)【解析】白盒测试方法也称为结构测试或逻辑测试,主要方法有逻辑覆盖测试、基本路径测试等。

9.D

10.A由顺序、选择(分支)、循环3种基本结构构成的程序可以解决所有问题,而不只是解决简单问题,所以A选项错误。故本题答案为A选项。

11.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选项。

12.DC语言中,%f是格式控制符,它既可以输出单精度数也可以输出双精度数。故本题答案为D选项。

13.D函数的参数可以是指针类型,它的作用是将一个变量的地址传送到另一个函数中。函数名代表函数的入口地址,指向函数的指针应该定义为“void(*Pf)();”。如果定义为“void*pf();”,则表示函数pf的返回值是一个基类型为void的指针。故本题答案为D选项。

14.C

15.B解析:先计算关系表达式a<b=2<3为真(表达式为真时,如果变量为int型变量则真用1表示,假用0表示),即a=1。

16.B当用指数形式表示浮点数据时,E的前后都要有数据,并且E的后面数要为整数。

17.A在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是数据库系统这一阶段。数据库系统阶段用数据模型来表示复杂的数据,有较高的数据独立性。数据库系统为用户提供了方便的用户接口,用户既可使用查询语言或终端命令操作数据库,也可以用程序方式来操作。数据库管理系统提供了数据控制功能。

18.A

19.C解析:字符串少一个结束标志,所以输出的结果不确定。

20.A函数intfun(intn)的功能是求1+2+…+n的值并返回。所以执行程序时,给变量x输入10后,执行语句“x=fun(x);”,X的值将变为1到10中10个整数的累加和,即55。

21.线性数据结构线性数据结构解析:队列的链式存储称为链队列,它属于线性数据结构。

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

23.132132解析:本题考核的知识点是for循环与switch语句的综合运用。主函数中用了一个for循环,for循环里嵌套了一个switch语句,for循环了三次,当i=9时,i/10=0,执行switch语句中case0分支,m和n的值各加1,变为1和1,然后遇到breake语句,退出switch语句;当i=10,i/10=1,执行switch语句中default分支,使k和n的值各加1,变为1和1,退出switch语句:当i=11时,i/10=1,执行switch语句中default分支,k和n的值各加1变,为2和3,退出switch语句,循环结束。故该空格处应该填132。

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

25.1919解析:二叉树具有如下性质:在任意一棵二叉树中,度为。的结点(即叶子结点)总是比度为2的结点多一个。根据题意,度为2的节点为18个,那么,叶子结点就应当是19个。

26.25811142581114解析:本题通过while和if语句,求得出1~15之间与3取模为2的整数,并依次输出。

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

28.存储结构

29.无限无限解析:分析程序“while(s)”语句后面有一个“;”不能执行后面的语句,只是执行空语句,所以s=12保持不变,因此,没有条件限制的能循环无限次(即死循环)。

30.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判断变量是否为奇数可以用变量与2取模,判断结果是为1或下为0。本题具体做法如下:Y%2=1或Y%2!=0。

31.tunc()m++tunc()m++解析:第一空白处,在C语言中如果子函数在主函数之后定义,就要对其进行说明,说明的形式为:“函数类型名函数名”。所以此处填写func()。第二空白处,整型变量m表示输入字符的个数,所以每输入一个字符,变量m的值就加1。所以此处填写m++。

32.交换排序交换排序解析:所谓排序是指将一个无序序列整理成按值非递减顺序排列成的有序序列,常用的排序方法有:交换排序、插入排序和选择排序。其中交换排序包括冒泡排序和快速排序,插入排序包括简单插入排序和希尔排序,选择排序包括直接选择排序和堆排序。

33.buf的首地址buf的首地址解析:考查fsets()函数的功能,f8ets()函数用来从文件中读入字符串。调用格式为:f8ets(buf,n,fp)。此处,fp是文件指针,buf是存放字符串的起始地址,n是一个int型变量。调用函数fsets()时,最多能读入n-1个字符,系统自动在最后加字符串结束标志,并以buf作为函数值返回。

34.33解析:本题考查do…while语句形式:

do循环体

while表达式

首先执行循环体语句,然后检测循环控制条件表达式的值,若为真,则重复执行循环体语句,否则退出循环。第1次循环:b+=2,b=2,a-=2+b,a=11;第2次循环:b=4,a=5;第3次循环:b=6,a=-3,此时再判断循环条件不满足,退出循环。

35.边界值分析法边界值分析法解析:黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例。常用的黑箱测试有等价类划分、边界值分析法和错误推测法3种。

36.数据库管理系统或DBMS数据库管理系统或DBMS解析:数据库管理系统(DatabaseManagementSystem,DBMS)是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。它提供多种功能,可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。因此,数据库系统中,数据库管理系统是实现各种数据管理功能的核心软件。本题的答案是数据库管理系统或DBMS。

37.11解析:本题考查两个知识点:一是x/y的值为整型,即为0;二是数1是double类型。

38.1414解析:本题考查递归函数的调用。在主函数中调用sub(&x,16,2)函数,此时n=16,k=2,if语句的控制的条件k<=n成立,所以执行下面的语句,调用sub(x,8,4),此时n=8,k=4,if语句的控制条件k<=n成立,所以执行下面的语句,调用sub(x,4,8),此时n=4,k=8,if语句控制的条件k<=n不成立,因此,最后得x=2+4+8=14。

39.1010解析:题目中的fun()函数直接调用了自身,所以它是递归函数。函数中只有一条if语句,意思是:若n为0,则返回x所指内容(x[0]等价于*x),否则返回x所指内容加上fun(x+1,n-1)。即,当n>0时,fun(x,n)=x[0]+fun(x+1,n-1)=x[0]+x[1]+fun(x+2,n-2)=…=x[0]+x[1]+…+x[n];当n=0时,fun(x,n)=x[0];当n<0时,函数将无限循环递归调用下去,因为n-1下去永远也不会等于0。所以本题中fun(a,3)=a[0]+a[1]+a[2]+a[3]=12+3+4=10。故应该填10。

40.3535解析:主函数中通过定义和赋初值使p和q分别指向了x和y,执行函数调用swap(p,q),把p和q中的地址值传给了形参指针变量a和b,此时a和b分别指向了主函数中的变量x和y。在函数swap()中交换了指针变量a和b的值,但并没有改变a和b所指向的内容,所以函数调用返回后x和y依旧是原来的值。故运行结果为35。

41.C解析:共用体成员a,b,c共占用同一个内存空间,所以data的每个成员起始地址都相同;共用体变量所占的内存长度等于最长的成员的长度,故变量data所占的内存字节数与成员所占字节数相等;由于各成员变量的类型不一致,所以它们的存储方式也不相同,整型占用2个字节的存储空间,double型占用8个字节的存储空间;data可以作为函数的实参,此时data作为一个地址进行地址传送;执行data.a=5;printf('%f\\n',data.c);系统不能自动将整型变量转换为浮点型值,printf函数只是将内存中的数据以不同类型输出,而不能将内存中的整型数据自动转换为等值的浮点数,故选项C)错误。

42.A解析:主函数中首先定义了4个字符变量a、b、cd,然后通过scanf()函数输入a、b、c、d输入中a和b是按字符格式c输入的,c和d是按整型符号d输入的。在看下面的printf()函数中,要求a、b、c、d都按字符输出,故a和b原样输出为6、5,c和d将把与其ASCII码对应的字符输出,65和66的ASCII码对应字符A和B,故最后的输出为6,5,A,B。所以,4个选项中选项A符合愿意。

43.C解析:从上面程序中对指针变量p值的定义可见,p所指单元的内容又是一个地址,这个地址是申请分配内存空间后的返回首地址,而分配的空间中又存放double型的数据,因此p是指向指针的指针变量,通过两层间接寻址对double型的数据操作,故正确答案应该是选项C。

44.C本题考查对面向对象的理解。面向对象的程序设计是对象模拟问题领域中的实体,各对象之间相对独立,相互依赖性小,通过消息来实现对象之间的相互联系。

45.B解析:按逻辑位运算的特定作用主要有3点:①用按位与运算将特定位清0或保留特定位:②用按位或运算将特定的位置设置为1;③用按位异或运算将某个变量的特定位翻转或交换两个变量的值。

46.C解析:本题考核的知识点是字符型变量的基本概念。用单引号括起来的一个字符称为字符常量,而选项B和选项D中用的是双引号,而用双引号括起来的字符为字符串常量,故选项B和选项D不正确。因为在C语言中,字符常量在存储时,并不是把该字符本身放到内存单元中去,而是将该字符的相应的ASCII代码放到存储单元中,所以C语言使字符型数据和整形数据之间可以通用,选项C正确.而选项A中,给字符型变量赋值时只能赋一个字符,而9,7作为字符时为两个字符且必须分别为单引号括起来,故选项A不正确,所以,4个选项中选项C符合题意。

47.B解析:本题首先定义了3个字符数组p、q、r并分别被初始化。数组p指定的大小为20,初始化列表为{\'a\',\'b\',\'c\',\'d\'},即只指定了前4个元素的内容,根据C语言的规定,初始化列表不足时,其余元素均自动初始化为0。然后通过strcat()函数,将字符串,连接到字符串p之后,即执行后p中的内容为'abcdabcde'。因为“strlen(q)”表示求字符串q的长度,很明显为3,所以语句“strcpy(p+strlen(q),q);”的作用就是:将字符串q拷贝到数组p的第3个元素位置处。注意,strcpy函数拷贝字符串会将其结束标志位一起拷贝,故拷贝完后p中的内容为”ababc\\0de',但通过strlen函数取p的长度碰到\'\\0\\即停止,故p中字符串的长度是6,应该选择B。

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

49.A解析:选项A)是一个表达式,它后面没有分号结尾(C语言中规定语句必须以分号结束),所以它不是语句;选项B)用一个花括号把几条语句括起来了,这是一个复合语句;选项C)中只有一个分号,是一个空语句;选项D)是个复合语句,也是一个空语句。

50.C解析:使用fprintf()函数时,函数向文件输出的是ASCⅡ码,特别在输出数值时,输出的是该数值的ASCⅡ码,而不是数值本身。

51.B解析:外层for循环的自变量i从1开始,每次循环后增1,直到i等于3结束.对于外层循环自变量i的每一个值,内层循环的自变量j每次从i开始,每次循环后增1,直到j等于3结束。所以在每次外循环开始后,内层循环在一行先打印i*j=两个乘数的积,然后回车换行,下次循环从下一行开始打印输出结果。

52.A解析:字符型变量用来存放字符常量,且只能存放一个字符。赋值反斜杠线“\\”,必须用转义字符实现,即ch='\\\\',所以选项A)错误;字符型变量可以赋0~255之间的ASCII码值,整型数据和字符型数据有时可以通用,所以选项B)正确;可以将NULL赋给一个字符型变量,NULL代表一个空字符,相当于0,选项C)正确;'\\xaa'表示的是1~2位16进制数所代表的字符,所以选项D)正确。

53.D解析:选项A)应将*sp='right!';中的*叩改为sP,即把字符串'right!”的首地址赋给指针变量sp;选项B)中的s代表数组的首地址,不能给它赋字符串,只能在定义数组时,对其进行初始化;选项C)中的。s指的是数组的第一个元素,不能给它赋字符串。

54.D解析:本题中,argc表示参数的个数,应为3,argv是一个指向字符串的指针数组,指针数组argv中的元素argv[0]指向字符串'PROG',元素argv[1]指向字符串“ABCDEFGH”,argv[2]指向字符串“IJKL”。在while循环条件中,先进行自减运算,再执行相应的printf语句。

55.D

56.A解析:本题考查C语言的综合基础知识。构成C程序的基本单位是函数,一个C程序总是从main函数开始执行,而不论main函数在整个程序中的位置如何。C语言的函数定义都是互相平行、独立的,在定义函数时,一个函数内不能定义另一个函数。C函数定义的一般格式有两种:传统格式和现代格式。传统格式也称K&R格式,是早期编译系统使用的格式;现代格式又称ANSI格式,是现代编译系统使用的格式。

57.B解析:在选项B)中,因为数组的第一维的数目不明确,所以理解会有歧义,可以理解为1行3列,或者2行3列等。所以选项B)错误。注意:数组中元素的引用。

58.C

59.B解析:(1)二维数组的定义

二维数组的定义方式为:类型说明符数组名[常量表达式][常量表达式]。

二维数组在内存中是按行优先的顺序存放的,即先存放第一行的元素,再存放第二行的元素,依次类推。

(2)二维数组元素的引用

二维数组元素的表示形式为:数组名[下标][下标],下标可以是整型常量或整型表达式;其范围为:0~(常量表达式-1)。

(3)二维数组的初始化

可以用以下方法对二维数组元素初始化。

①分行给二维数组赋初值,例如;

inta[2][2]=({1,2),{3,4));

这种赋值方式比较直观,把第1个大括号内的数据赋给第1行的元素,第2个大括号内的数据赋给第2行的元素,即按行赋值。

②可以将所有数据写在一个大括号内,按数组排列的顺序对各个元素赋初值。

③可以对部分元素赋初值,没有初始化的元素值为0。

④如果对全部数组元素赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省略。

60.D解析:主函数的第一个参数argc为整形参数,记下从命令行输入的参数的个数;第二个参数argv是一个字符型的指针数组,它的每一个元素指向命令行输入的参数字符数。在本例中argc的值为5,argv[0]指向字符串“ex”,argv[l]指向参数字符串“abcd”,argv[2]指向字符串“efg”,argv[3]指向参数字符串“h3”,argv[4]指向参数字符串“k44”。在main()函数中,for循环执行了两次,当i=1时,len=O+strlen(argv[1]),而其中argv[l]=“abcd”,故此时len的值为4;当i=3时,len=4+strlen(argv[3]),而其中argv[3]=“h3”,故此时len的值为6;当i=5时,退出循环,故最后输出的len值为6。所以,4个选项中选项D符合题意。

61.B解析:数据库管理系统是数据库系统的核心,是负责数据库的建立、使用和维护的软件。数据库管理系统建立在操作系统之上,实施对数据库的统一管理和控制。用户使用的各种数据库命令以及应用程序的执行,最终都必须通过数据库管理系统。另外,数据库管理系统还承担着数据库的安全保护工作,按照数据库管理员所规定的要求,保证数据库的完整性和安全性。

62.D

63.D

\n主函数中语句fun(ss,aa)的功能是将字符串8a连接到字符串ss的末尾。

\n

64.C\n考查简单的c程序,题目中x=011而输出函数中是++x,说明是先加l,所以为l0,答案选择C。

\n

65.B

66.C根据数据结构中各数据元素之间的前后件关系的复杂程度,一般将数据结构分为两大类:线性结构和非线性结构。循环队列、带链队列和带链栈都是线性结构,而二叉树是非线性结构。

67.BB【解析】只有B选项369可以用无符号整数来表示和存储。A选项一369有负号,选项C0.369是小数都不能用无符号整数类存储。选项D是一个整数集合得用数组来存储。

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

69.B按逻辑位运算特点:①用按位与运算将特定位清为0或保留特定位;②用按位或运算将特定的位置为1;③用按位异或运算将某个变量的特定位翻转或交换两个变量的值。

70.D

71.A数据管理技术的发展经历了3个阶段:

人工管理阶段、文件系统阶段和数据库系统阶段。三者各自的特点如下表所示。\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t特点\t\t\t\t\t\t\t人工管理阶段\t\t\t\t\t\t\t文件系统阶段\t\t\t\t\t\t\t数据库系统阶段\t\t\t\t\t\t\t管理者\t\t\t\t\t\t\t人\t\t\t\t\t\t\t文件系统\t\t\t\t\t\t\t数据库管理系统\t\t\t\t\t\t\t面向对象\t\t\t\t\t\t\t某个应用程序\t\t\t\t\t\t\t某个应用程序\t\t\t\t\t\t\t现实世界\t\t\t\t\t\t\t共享程度\t\t\t\t\t\t\t无共享,冗余度大\t\t\t\t\t\t\t共享性差,冗余度大\t\t\t\t\t\t\t共享性大,冗余度小\t\t\t\t\t\t\t独立性\t\t\t\t\t\t\t不独立,完全依赖于程序\t\t\t\t\t\t\t独立性差\t\t\t\t\t\t\t具有高度的物理独立性和一定的逻辑独立性\t\t\t\t\t\t\t结构化\t\t\t\t\t\t\t无结构\t\t\t\t\t\t\t记录内有结构,整体无结构\t\t\t\t\t\t\t整体结构化。用数据筷基誊述\t\t\t\t\t\t\t控制能力\t\t\t\t\t\t\t由应用程序控制\t\t\t\t\t\t\t由应用程序控制\t\t\t\t\t\t\t由DB蝰墨供数据安全性、完整性、并发控剖和恢复\t\t\t\t数据库系统可以解决数据冗余和数据独立性问题,面文件系统不能。数据库系统和文件系统的区别不仅在于管理的文件类型与数据量的多少。数据库系统具有高度的物理独立性和一定的逻辑独立性,而文件系统独立性较好。故本瑟答案为A选项。

72.C

73.D

74.D解析:改变文件位置指针函数fseek()的功能:①改变文件的位置指针;②辅助实现文件的顺序读写;③辅助实现文件的随机读写。

75.A解析:VisualFoxPro就是一种关系数据库管理系统,一个“表”就是一个关系,一个关系就是一个二维表。关系数据库管理系统可管理若干个二维表。

76.B本题考查结构体的相关知识,选项A中structREC后面不能有分号,C选项中typedefstructREC的后面也不能有分号,选项D中REC已经是结构体变量,不能当做结构体类型来使用。

77.C

78.Dstatic变量是局部度量,函数无法修改,所以当i=1时,第2次进入f函数时c=5,所以最终main函数中C的值为5。

79.A

80.C

\n在函数intfun(intxE],intn)的定义中,变量sum为一个静态局部变量。由于在整个程序运行期间,静态局部变量在内存中的静态存储中占据着永久的存储单元。函数intfun(intx[],intn)的功能是求出数组X[]各个元素的和,所以在j三函数中,调用函数fun(a,5)后,变量sum=1+2+3+4+5=15,当再次调用fun(b,4)后,变量sum=15+6+7+8+9=45,所以S=l5+45=60。

\n

81.

82.

题目中要求除了尾部的*号之外,将字符串中其他*号全部删除。首先将所有不是*的字符放在字符串str中,然后将尾部的*接在字符的后面,最后为字符串str加上结束符。

2021-2022年贵州省贵阳市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.有以下程序:#include<stdio.h>main(){FILE*fp;inti,a[6]={1,2,3,4,5,6},b[6];fp=fopen(“d.dat”,“w+b”);fwrite(a,sizeof(int),6,fp);for(i=0;i<6;i++)fwrite(&a[2],sizeof(int),1,fp);rewind(fp);fseek(fp,sizeof(int)*2,SEEK_CUR);fread(b,sizeof(int),6,fp);fclose(fp);for(i=0;i<6;i++)printf(“%d,”,b[i]);}程序运行后的输出结果是()。

A.3,4,5,6,3,3,B.1,2,3,4,5,6,C.3,4,5,6,1,2,D.3,4,5,6,1,1,

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

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

3.有以下程序:#includeMain(){charc1.c2;.c1='A'+'8'-'4';c2='A'+'8'-'5';.printf("%c,%d\n",,c1.c2);}已知字母A的ASCI码为65.程序运行后的输出结果是()。A.E.68B.D.69C.E,DD.输出无定值

4.下面程序的输出结果是()。

#include<stdio.h>

main()

{inta[4][5]={1,2,4,-4,5,-9,3,6,-3,2,7,8,4};

inti,j,n;

n=9;

i=n/5;

j=n-i*5-1;

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

}

执行后输出结果是()。A.A.a[1][3]=6

B.a[1][3]=-3

C.a[1][3]=2

D.不确定

5.有以下程序:#include<stdio.h>intfun(intx){intp;if(x==0||x==1)return(3);p=x-fun(x-2);returnp;}main(){printf(“%d\n”,fun(7));}程序的运行结果是()。A.2B.3C.7D.0

6.下列程序的运行结果为()。

#deflneMAX(x,y)(x)>(y)(x):(y)

main()

{inta=2,b=3,c=1,d=3,t;

printf("%d\n",(MAX(a+b,c+D))*100);

}A.A.500B.5C.4D.400

7.下列语句中,显示没有下画线的超链接的语句是()。

A.a{text—decoration:none}

B.a{text—decoration:nounderline}

C.a{underline:none}

D.a{decoration:nounderline}

8.下列方法中,属于白盒法设计测试用例的方法的是()。

A.错误推测B.因果图C.基本路径测试D.边界值分析

9.若已知一个栈的入栈序列是1,2,3,......,n,其输出序列为p1,p2,p3,..,pn,若p1=n-1,则pi可能为()

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

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

A.由3种基本结构构成的程序只能解决简单问题

B.结构化程序由顺序、分支、循环3种基本结构组成

C.C语言是一种结构化程序设计语言

D.结构化程序设计提倡模块化的设计方法

11.若有宏定义“#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

12.设有定义“floata=12.3f;doubleb=456.78;”,若想用printf函数输出a和b的值,关于输出格式,以下说法正确的是()。

A.只能用%lf输出a,用%f输出b

B.只能用%f输出a,用%lf输出b

C.只能用%lf输出a,用%lf输出b

D.既可以用%f输出a,也可以用%f输出b

13.设有以下函数“voidfun(intn,char*s){…}”,则下列对函数指针的定义和赋值均正确的是()。

A.void(*pf)(int,char);pf=&fun;

B.void*pf();pf=fun;

C.void*pf();*pf=fun;

D.void(*pf)(int,char*);pf=fun;

14.设s1="Good",s2="",s3="Bye",则s1、s2和s3连接后的结果是()。

A.GoodB.GoodByeC.GoodByeD.Bye

15.已知inta=2,b=3;则执行表达式a=a<b后,变量a的值为()。

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

16.以下选项中表示一个合法的常量是(说明:符号口表示空格)()。

A.9口9口9B.0XabC.123E0.2D.2.7e

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

A.数据库系统B.文件系统C.人工管理D.数据项管理

18.p指向线性链表中某一结点,则在线性链表的表尾插入结点s的语句序列是()。

A.while(p->next!=NULL)p=p->next;p->next=s;s->next=NULL;

B.while(p!=NULL)p=p->next;p->next=s;s->next=NULL;

C.while(p->next!=NULL)p=p->next;s->next=p;p->next=NULL;

D.while(p!=NULL)p=p->next->next;p->next=s;s->next=p->next;

19.下面程序的输出结果是main(){charstr[10],c='a';inti=0;for(;i<5;i++)str[i]=c++;printf("%s",str);}

A.abcdeB.aC.不确定D.bcdef

20.有以下程序:intfun(intn){if(n==l)returnl;elsereturn(n+fun(n一1)):}main{intx;scanf("%d",&x);x=fun(x);printf("%d\n",x):}执行程序时,给变量X输入10,程序的输出结果是()。A.55B.54C.65D.45

二、2.填空题(20题)21.数据结构分为线性数据结构和非线性数据结构,带链的队列属于()。

22.下面程序有两个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("%\n",p+9);

}

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

main()

{

inti,m=0,n=0,k=0;

for(i=9;i<=11;i++)

switch(i/10)

{

case0:m++;n++;break;

case10:n++;;break;

default:k++;n++;

}

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

}

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

25.某二义树中度为2的结点有18个,则该二叉树中有______个叶子结点。

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

main()

{intk=1;

white(k<=15)

if(++k%3!=2)continue;

elseprintf("%d",k);

printf("\n");

}

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

28.数据结构分为逻辑结构与存储结构,线性链表属于【】。

29.下列语句能循环______次。

ints=12;

while(s);

--s;

30.设Y是int型变量,请写出判断Y为奇数的关系表达式【】。

31.以下程序的功能是:通过函数func输入字符并统计输入字符的个数。输入时用字符作为输入结束标志。请填空。#include<stdio.h>long();/*函数说明语句*/main(){longn;n=func();printf"n=%1d\n",n);}longfunc(){longm;for(m=0;getchar()!='';());returnm:}

32.排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、______和选择排序。

33.函数调用语句:“fgets(buf,n,fp);”从中指向的文件中读入n个字符放到buf字符数组中,函数返回值为______。

34.下列程序段中循环体的执行次数是______。

a=15;

b=0;

do{b+=2;a-=2+b;}while(a>=0);

35.常用的黑箱测试有等价类划分法、【】和错误推测法3种。

36.在数据库系统中,实现各种数据管理功能的核心软件称为【】。

37.设x和y均为int型变量,且x=1,y=2,则表达式double(1+x/y)的值为【】。

38.以下程序的输出结果是()。

#include<stdio.h>

main()

fintx=0;

sub(&x,16,2);

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

}

sub(int*a,intn,intk)

{if(k<=n)sub(a,n/2,2*k);

*a+=k;

}

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

intfun(int*x,intn)

{if(n==0)returnx[0];

elsereturnx[0]+fun(x+1,n-1);

}

main()

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

printf("%d\n",fun(a,3));}

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

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

}

三、1.选择题(20题)41.若有以下说明和定义uniondt{inta;charb;doublec;}data;以下叙述中错误的是______。A.data的每个成员起始地址都相同

B.变量data所占的内存字节数与成员c所占字节数相等

C.程序段data.a=5;printf("%f\n",data.c);输出结果为5.000000

D.data可以作为函数的实参

42.有以下程序main(){chara,b,c,d;scanf("%c,%c,%d,%d",&a,&b,&c,&d);printf("%c,%c,%c,%c\n",a,b,c,d);}若运行时从键盘上输入:6,5,65,66<回车>。则输出结果是

A.6,5,A,BB.6,5,65,66C.6,5,6,5D.6,5,6,6

43.若定义了以下函数:voidf(……){……*p=(double*)malloc(10*sizeof(double));……}p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调函数,则形参p的正确定义应当是()

A.double*pB.float**pC.double**pD.float*p

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

A.在面向对象的程序设计中,各个对象之间具有密切的关系

B.在面向对象的程序设计中,各个对象都是公用的

C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小

D.上述3种说法都不对

45.交换两个变量的值,不允许用临时变量,应该使用下列()位运算符。A.A.&B.^C.||D.~

46.已定义c为字符型变量,则下列语句中正确的是()。

A.c='97'B.c="97"C.c=97D.c="a"

47.有以下程序:#include<string.h>main(){charp[20]={'a','b','c','d'},q[]="abc",r[]="abcde";strcat(p,r);strcpy(p+strlen(q),q);printf("%d\n",strlen(p));}程序运行后的输出结果是()。

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

48.以下正确的程序段是

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

49.下列不是合法的C语言语句是()。

A.a=5B.{inti;i++;}C.;D.{;}

50.已知a=15,执行fprintf(fp,"%d",a)后,写入fp指向的文件的是______。

A.15B.1111C.63D.1111

51.有下列程序:main(){inti,j;for(i=1;i<4;i++){for(j=i;j<4;j++)printf("%d*%d=%d",i,j,i*j);printf("\n");}}程序运行后的输出结果是()。

A.1*1=11*2=21*3=32*1=22*2=43*1=3

B.1*1=11*2=21*3=32*2=42*3=63*3=9

C.1*1=11*2=22*2=41*3=32*3=63*3=9

D.1*1=12*1=22*2=43*1=33*2=63*3=9

52.已定义ch为字符型变量,以下赋值语句中错误的是

A.ch='\';B.ch=62+3;C.ch=NULL;D.ch='\xaa';

53.以下语句或语句组中能正确进行字符串赋值的是()。

A.ehar以*sp;*sp="right!";

B.chars[10];s="right!";

C.chars[10];*s="right!";

D.char*sp="right!";

54.假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入:PROGABCDEFGHIJKL<回车>,则输出结果为main(intargc,char*argv0[]){while(--argc>0)printf("%s",argv[argc]);printf("\n");}

A.ABCDEFGB.IJHLC.ABCDEFGHIJKLD.IJKLABCDEFGH

55.设intb=2;,表达式(b<<2)/(b>>1)的值是()

A.0B.2C.4D.8

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

A.构成C程序的基本单位是函数

B.可以在一个函数中定义另一个函数

C.main函数必须放在其他函数之前

D.C函数定义的格式是K&R格式

57.下列二维数组初始化语句中,正确且与语句floata[][3]={0,3,8,0,9};等价的是

A.floata[2][]={{0,3,8},{0,9}};

B.floata[][3]={0,3,8,0,9,0};

C.floata[][3]={{0,3},{8,0},{9,0}};

D.floata[2][]={{0,3,8},{0,9,0}};

58.若t为doudle类型,表达式t=1,t+5,t++的值是()

A.1B.6C.2D.1

59.以下能正确定义二维数组的是______。

A.inta[][3]

温馨提示

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

评论

0/150

提交评论