2021-2022年四川省攀枝花市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第1页
2021-2022年四川省攀枝花市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第2页
2021-2022年四川省攀枝花市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第3页
2021-2022年四川省攀枝花市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第4页
2021-2022年四川省攀枝花市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

2021-2022年四川省攀枝花市全国计算机等级考试C语言程序设计知识点汇总卷(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.设有程序段:intk=12:while(k=1)k=k-1:则下列描述中正确的是()。

A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次

2.广义表(a,b,c,d)的表尾是()。

A.aB.(a)C.(b,c,d)D.((b,c,c))

3.线性表是具有n个()的有限序列。

A.表元素B.字符C.数据元素D.数据项

4.若有定义语句:"inta[4][10],*P,*q[4];"且0≤i<4,则错误的赋值是()。

A.D=aB.q[i]=a[i]C.p=a[l]D.P=&a[2][1]

5.若有定义“intb[8],*p=b;”,则p+6表示()。

A.数组元素b[6]的值B.数组元素b[6]的地址C.数组元素b[7]的地址D.数组元素b[0]的值加上6

6.在嵌套使用if语句时,C语言规定else总是A.和之前与其具有相同缩进位置的if配对

B.和之前与其最近的if配对

C.和之前与其最近的且不带else的if配对

D.和之前的第一个if配对

7.有以下程序:#include<stdio.h>main(){inta=7;while(a--);print[("%d\n",a);}程序运行后的输出结果是()。A.-1B.0C.1D.7

8.下列定义数组的语句中,正确的是()。

A.intN=10;intx[N]:

B.#defineNl0;intx[N];

C.intx[0..10];

D.intx[];

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

B.可随机访问任意元素

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

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

10.以下选项中,能用作数据常量的是______。A.o115B.0118C.1.5e1.5D.115L

11.有以下程序:#include<stdio.h>main(){FILE*fp;inta[10]={1,2,3},i,n;fp=fopen(“d1.dat”,“w”);for(i=0;i<3;i++)fprintf(fp,“%d”,a[i]);fprintf(fp,“\n”);fclose(fp);fp=fopen(“d1.dat”,“r”);fscanf(fp,“%d”,&n);fclose(fp);printf(“%d\n”,n);}程序的运行结果是()。

A.321B.12300C.1D.123

12.若有定义和语句:inta,b;scanf("%d,%d",&a,&b);以下选项中的输人数据,不能把值3赋给变量a、5赋给变量b的是()。A.3,5,B.3,5,4C.3,5D.3,5

13.下列定义数组的语句中错误的是()。

A.intx[2][3]={1,2,3,4,5,6};

B.intx[][3]={0};

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

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

14.下列程序的输出结果是______。main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}

A.69825B.63825C.6385D.693825

15.程序中若有如下说明和定义语句charfun(char*);main(){char*s="one",a[5]={0},(*f1)()=fun,ch;.....}以下选项中对函数Fun的正确调用语句是______。A.(*f1)(a);B.*f1(*s);C.fun(&a);D.ch=*f1(s);

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

A.,C—STR’B.2014.1C.”\l.0D.2EK

17.第

3

已知:intc[3][4];则对数组元素引用正确的是

A.c[1][4]B.c[1.5][0]C.c[1+0][0]D.以上表达都错误

18.下列定义数组的语句中正确的是______。

A.#definesize10charstr1[size],str2[size+2];

B.charstr[];

C.intnum['10'];

D.intn=5;inta[n][n+2];

19.采用邻接表存储的图的深度优先遍历算法类似于二叉树的()。

A.先序遍历B.中序遍历C.后序遍历D.按层遍历

20.有下列程序:程序执行后的输出结果是()。A.Sun,f,90,Sun,f,90

B.Zhao,m,85,Sun,f,90

C.Zhao,m,85,Qian,f,95

D.Sun,f,90,Qian,f,95

二、2.填空题(20题)21.在面向对象方法中,属性与操作相似的一组对象称为【】。

22.实体联系模型是一种常用的高级概念数据模型,而______是实体联系模型中的核心。

23.若有定义doublea[5];,则a数组元素下标的上限为______。

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

25.在关系模型中,把数据看成一个二维表,每一个二维表称为一个______。

26.【】是数据库设计的核心。

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

main()

{ints=0,i=1;

while(s<=10)

{s=s+i*i;

i++;

}

printf("%d",--i);

}

28.下列程序执行输出的结果是______。

#include<stdio.h>

f(intA)

{intb=0;

staticc=7;

a=c++;b++;

return(A);

}

main()

{inta=2,i,k;

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

k=f(a++);

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

}

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

scanf("%d",【】);

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

30.执行以下程序后,输出#号的个数是【】。

#include<stdio.h>

main()

{inti,j;

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

for(j=2;j<=i;j++)putchar('#');

}

31.以下程序输出的结果是#include<stdio.h>#include<string.h>main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"}1,k;for(k=1;k<3;k++)printf("%s\n",&w[k][k]);}

32.结构化程序设计的3种基本结构分别是顺序、选择和______。

33.需求分析的最终结果是产生【】。

34.若a是血型变量,且a的初值为4,则计算a+=a-=a*a表达式后a的值为______。

35.下面程序的功能是根据公式e=1+1/1!+1/2!+1/3!+1/4!+...计算e的近似值,精度要求为10-5。请填空。

main()

{intn;

doublee=1.0,t=1.0;

for(n=1;【】n++);

{【】e+=t;}

printf("%f\n",e);}

36.在C语言中,while和do…while循环的主要区别是______的循环至少被执行一次。

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

#defineN10

#defines(x)x*x

#definef(x)(x*x)

mam()

{

intil,i2;

i1=1000/s(N);i2=1000/f(N);

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

}

38.若按功能划分,软件测试的方法通常分为白盒测试方法和【】测试方法。

39.若有下列定义(设int类型变量占两个字节),则i=【】,j=【】。

inti=8,j=9;floatx=123.456;

print("i=%oj=%o\n",i,j);

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

main()

{

intx=0210;

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

}

三、1.选择题(20题)41.下列关于队列的叙述中正确的是______。A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表

42.下列可用于C语言用户标识符的一组是

A.void,define,WORD

B.a3_b3,_123,Car

C.For,-abc,IFCase

D.2a,DO,sizeof

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

A.'\t'B.'\039'C.','D.'\n'

44.若有以下定义,则对a数组元素的正确引用是()。inta[5],*p=a;

A.*&a[5]B.*a+1C.*(p+5)D.*(a+2)

45.下列关于栈的叙述中正确的是

A.在栈中只能插入数据B.在栈中只能删除数据C.栈足先进先出的线性表D.栈是先进后出的线性表

46.以下不能定义为用户标识符的是()。

A.scanfB.VoidC.3comD.int

47.下列叙述中,不属于测试的特征的是

A.测试的挑剔性B.完全测试的不可能性C.测试的可靠性D.测试的经济性

48.设血a=12;,则执行完语句a+=a-=a*a;后,a的值是______。

A.522B.264C.144D.-264

49.有以下程序

main()

{inti;

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

{if(i++%5==0)

if(++i%8==0)printf("%d",i);

}

printf("\n");

}

执行后的输出结果是

A.5B.24C.32D.40

50.在C语言中,函数的隐含存储类别是______。

A.autoB.staticC.externD.无存储类别

51.以下叙述中错误的是

A.gets函数用于从终端读入字符串

B.getehar函数用于从磁盘文件读入字符

C.fputs函数用于把字符串输出到文件

D.fwrite函数用于以二进制形式输出数据到文件

52.在数据库管理系统提供的数据语言中,负责数据的查询及增、删、改等操作的是

A.数据定义语言B.数据转换语言C.数据操纵语言D.数据控制语言

53.若有以下说明和定义uniondt{inta;charb;doublec;}data;以下叙述中错误的是

A.data的每个成员起始地址都相同

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

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

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

54.有以下程序:mare(){inti,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf("%d\n",s);}程序执行后的输出结果是()。

A.45B.20C.25D.36

55.有以下程序#defineF(X,Y)(X)*(Y)main(){inta=3,b=4;printf("%d\n",F(a++,b++));}程序运行后的输出结果是

A.12B.15C.16D.20

56.有以下程序#include<stdio.h>main(){ints[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;for(i=0;i<12;i++)c[s[i]]++;for(i=1;i<5;i++)printf("%d",c[i]);printf("\n");}程序的运行结果是

A.1234B.2344C.4332D.1123

57.现有格式化输入语句,scanf("x=%d],sum]y=%d,line]z=%dL",&x,&y,&z);,已知在输入数据后,x,y,z的值分别是12,34,45,则下列选项中是正确的输入格式的是

[注]:"]"表示空格,<Enter>表示回车

A.12,34,45<Enter>

B.x=12,y=34,z=45<Enter>

C.x=12C,sumy=34,z=45<Enter>

D.x=12],sum]y=34,line]z=45<Enter>

58.有如下程序: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

59.有以下程序:structSTU{charnum[10];floatscore[3];);main(){structstus[3]={{"20021",90,95,85},{"20022",95,80,75},{"20023",100,95,90}},*p=s;inti;floatsum=0;for(i=0;i<3,i++)sum=sum+p->score[i];printf("%6.2f\n",sum);}程序运行后的输出结果是()。

A.260B.270C.280D.285

60.若有下列定义和语句:intu=011,y=0x11,w=11;printf("%o,%x,%d\n",u,v,w);则输出结果是()。

A.9,17,11B.9,11,11C.11,11,11D.11,17,11

四、选择题(20题)61.

62.

63.

64.有以下程序程序运行后的输出结果是()。A.a+b=0B.a+b=30C.a+b=lOD.出错

65.

66.有以下程序

main()

{inti;

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

switch(i)

{case1:printf("%d",i);

case2:printf("%d",i);

default:printf("%d",i);

}

}

程序执行后的输出结果是

A.011122B.012

C.012020D.120

67.

有以下程序:

#include<stdio.h>

main

{intx=4,y;

do

{y=x;

if(!y)printf("x");

else

printf("y"):

x--;

}while(x);

}

程序的输出结果是()。

A.xyyxB.yyyyC.yyxxD.yxyx

68.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和()。

A.可重用性差B.安全性差C.非持久性D.冗余性

69.以下对一维数组c进行正确的定义初始化的语句是

A.intc[10]=0;B.intc[10]={0}*10;

C.intc[1]={0,0,0,0,0,0,0};D.intc[10]={0};

70.

若希望下列的程序运行后输出25,程序空白处的正确选项是()。

main

{intid=50,a[]=(7,4,10,5,8};

for()

j+=a[i];

printf("%d",j-40);

}

A.i=1;i<4;++i

B.i=l;i<3;++i

C.i=4;i>2;i--

D.i=2;i<4;++i

71.

72.读取二进制文件的函数调用形式为:fread(buffer,size,count,fp);,其中buffer代表的是()。

A.一个内存块的字节数

B.一个整型变量,代表待读取的数据的字节数

C.一个文件指针,指向待读取的文件

D.一个内存块的首地址,代表读人数据存放的地址

73.视图设计一般有3种设计次序,下列不属于视图设计次序的是()。

A.自顶而下B.由内向外C.由外向内D.自底向上

74.

有以下程序

#include<stdio.h>

#include<string.h>

typedefstrlIct{charname[9];charsex;floatscore[2];}STU;

STUf(STUa)

{STUb={"Zhao",m,85.0,90.0);inti;

strcpy(aname,b.name);

sex:b.sex;

for(i=0;i<2;i++)a.score[i]=b.score[i];

returna;

}

main

{STUc="Qian",f,95.0,92.0},d;

d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);

}

程序的运行结果是()。

A.Qian,f,95,92

B.Qian,m,85,90

C.Zhao,m,85,90

D.Zhao,f,95,92

75.以下数组定义中错误的是()。

A.

B.

C.

D.

76.

77.有以下程序则以下函数调用语句错误的是()。

A.k=*f(a,b);B.k=add(a,b);C.k=(*f)(a,b);D.k=f(a,b);

78.设有宏定义:

#defineIsDIV(k,n)((k%1"1==1)?1:O)且变量m已正确定义并赋值,则宏调用:

IsDIV(m,5)&&;IsDIV(m,7)为真时所要表达的是()。

A.判断m是否能被5和7整除

B.判断m被5和7整除是否都余l

C.判断m被5或者7整除是否余1

D.判断m是否能被5或者7整除

79.以下能定义为用户标识符的是()。

A.printfB.charC._8abcD.Void

80.若有定义“intb[8],*p=b;”,则p+6表示()。

A.数组元素b[6]的值B.数组元素b[6]的地址C.数组元素b[7]的地址D.数组元素b[o]的值加上6

五、程序改错题(1题)81.给定程序中,函数fun的功能是:首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符:按排列的顺序交叉合并到C所指数组中,过长的剩余字符接在C所指的数组的尾部。例如,当a.所指字符串中的内容为“abcdef9”,b所指字符串中的内容为“1234”时,c所指数组中的内容应“a4b3c2dlef9”;而当a所指字符串中的内容为“1234”,b所指字符串的内容为“abcdef9”时,c所指数组中的内容应该为“lg2f3e4dcba”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:

六、程序设计题(1题)82.

参考答案

1.C本题考查while,while循环表达式k-1是个赋值表达式而不是逻辑表达式,k的初值为l2不符合循环条件,所以循环体语句一次也不执行。

2.C

3.A

4.A数组名是一个存放一个数组首地址的值,是一个地址常量。而p=a不是合法的,因为p和a的基本类型不同。

5.B指针中存放的是变量的地址,指针也可以进行增减运算,这时指针移动的最小单位是一个存储单元,而不是一个字节。所以题中“P+6”指的是将指针向后移动了6个存储单元,即指向uE63,存放的是b[6]的地址。

6.C解析:C语言的语法规定:else子句总是与前面最近的不带else的if相结合,与书写格式无关。所以选项C)为正确答案。

7.A此题考查a--和--a之间的区别,当while(a--)为真循环执行,a--是执行再减1,所以答案选择A。

8.D选项A、B中n为变量,C语言中不允许动态定义数组维数,即维数不能是变量。选项C无此语法。

9.B链表采用的是链式存储结构,它的结点空间可以动态申请和释放;它的数据元素的逻辑次序靠结点的指针来指示,插入、删除不需要移动数据元素。但是链式存储结构也有不足之处:每个结点中的指针域需额外占用存储空间,它是一种非随机存储结构。

10.D在C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。整型常量和实型常量又称数值型常量。基本整型常量只能用数字表示,不带小数点,例如12、-1和0等,在VC6.0中可以在整型常量的后面加—个字母l(L的小写)或L;实型常量必须用带小数点的数表示,例如3.14159、-2.71828、0.0等;选项A中字母o不符合要求,选顶B中超出八进制的范围,选项C中e后面的不为整数,因此选顶D是正确的。

11.D程序首先将数组a中的元素1、2、3分别写入了d1.dat文件中,再将d1.dat文件中的数据“123”整体写到变量n的空间中,所以输出的数据为123。故本题答案为D选项。

12.C在输入3和5之间除逗号外不能有其他字符。

13.DD选项中“x[2][3]”定义的是一个2行3列的二维数组,而在给数组元素赋值时却赋成了3行,所以错误。故本题答案为D选项。

14.C

15.A解析:题中将函数fun的入口地址赋给了指针变量f1,这时f1和fun都指向函数的开头,调用*f1就是调用函数fun。

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

17.C

18.A

19.A

20.A程序定义结构体类型STU,定义类型STU的全局变量a。main函数定义局部类型为STU变量b,并对它初始化,调用函数f。将局部变量c的各个成员值赋给a,覆盖a的旧值,将a的新值返回并赋给b,此时a、b的各个成员值都是Sun,f,90,程序输出:Sun,f,90,Sun,f,90。本题答案为A选项。

21.类类解析:在面向对象方法中,类描述的是具有相似性质的一组对象。所以,属性与操作相似的一组对象称为类。

22.实体联系图或E-R图实体联系图或E-R图解析:实体联系图(B-R图)是实体联系模型中的核心。由于E-R图描述的是数据流图中数据存储及其之间的关系,因此它是数据库观念设计的最常用的工具。

23.44解析:一维数组元素的定义形式为:数组名[N],则该数组中元素的下限是0,上限是N-1。

24.数据存储数据存储

25.关系关系解析:关系模型用;维表表示,则每个;维表代表一种关系。

26.数据模型数据模型

27.33解析:分析程序运行过程,第1次循环:s=s+i*i=0+1*1=1,i=2;第2次循环:s=s+i*i=1+2*2=5,i=3;第3次循环:s=s+i*i=5+3*3=14,i=4;循环条件不成立输出i,--i使i的值减1,输出结果为3。

28.88解析:第1次for循环,i=0,调用函数f(2),然后将a的值加1,在f()函数中,变量c为static类型,所以c=8:第2次for循环,i=1,调用函数f(3),然后将a的值加1,调用函数f(3)时,a=c++=8,所以k=8。

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

30.66解析:本题中i循环执行4次,当i=1时,j循环执行0次;当i=2时,j循环执行1次;当i=3时,j循环执行2次;当i=4时,j循环执行3次,所以输出#号的个数是0+1+2+3=6。

31.D

32.重复(循环)重复(循环)解析:结构化程序设计包括3种基本的结构:顺序结构、选择结构和重复结构(循环结构),利用这3种结构就足以表达出各种其他形式结构的程序设计方法。其中利用循环结构,可以简化大量的程序执行。

33.需求规格说明书需求规格说明书解析:软件需求规格说明书是需求分析阶段的最后成果,是软件开发中的重要文档之一。需求规格说明书包括正确性、无歧义性、完整性、可验证性、一致性、可理解性、可修改性和可追踪性等。

34.-24-24解析:本题考查赋值运算符a+=b等价于a=a+b;a-=a*a等价于a-a-a*a=4-4*4=-12:a+=a,即a=a+a=-24。

35.t>=le-5;t=t/n;

36.do…whiledo…while解析:考查while和do…while循环的主要区别。while循环的控制出现在循环体之前,只有当while后面的表达式的值为非零时,才可能执行循环体;在do…while构成的循环体中,总是先执行一次循环体,然后再求表达式的值,因此无论表达式的值是否为零,循环体至少要被执行一次。

37.100010100010解析:首先将程序中的宏替换掉,两处的宏替换后分别为i1=1000/10*10和i2=1000/(10*10),即i1=1000,i2=10,所以最后输出的i1和i2的值分别为1000和10。

38.黑盒软件测试的方法有三种:动态测试、静态测试和正确性证明。设计测试实例的方法一般有两类:黑盒测试法和白盒测试法。在使用黑盒法设计测试实例时,测试人员将程序看成一个“黑盒”,即不关心程序内部是如何实现的,只是检查程序是否符合它的“功能说明”,所以使用黑盒法设计的测试用例完全是根据程序的功能说明来设计的。

39.1011

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

41.C队列是指允许在一端进行插入、而在另一端进行删除的线性表,选项A和选项B错误。允许插入的一端称为队尾,允许删除的一端称为队头。在队列中,最先插入的元素将最先能够被删除,反之,最后插入的元素将最后才能被删除。所以,队列又称为“先进先出”或“后进后出”的线性表,它体现了“先来先服务”的原则,选项C正确,选项D错误。

42.B解析:C语言规定标识符只能由字母、数字和下画线3种字符组成,且第一个字符必须为字母或下画线,排除选项C)和D);C语言中还规定标识符不能为C语言的关键字,而选项A)中void为关键字,故排除选项A)。

43.B水平制表符中,'\t'表示的是横向跳若干格;选项B中,'\039'错误,'\039'是八进制形式表的字符,最大数为7,但其中出现'9',','是字符逗号;选项D中,'\n'表示的是换行。

44.D本题考查通过指针引用数组元素。选项A)、B),没有这种引用形式;选项c),*(p5)是引用数组的第6个元素,而数组一共有5个元素,出现越界;选项D),*(a2)引用数组的第3个元素。

45.D解析:对栈可进行插入和删除数据的操作,但必须牢记插入和删除数据都只能在栈顶,是一种特殊的线性表.所以栈是先进后出的线性表。

46.D解析:标识符是C语言中用来表示变量名、数组名、函数名、指针名、结构名、联合名、枚举常数名、用户定义的数据类型名、语句标号等用途的字符序列。标识符由1~32个字符组成,第一个字符必须是字母或下划线,后面的字符可以是字母、数字或下划线。标识符不能与C关键字相同,并区分大小写。选项D)错误,因为int是C语言中的关键字。

47.C解析:软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。它有3个方面的重要特征,即测试的挑剔性、完全测试的不可能性及测试的经济性。其中没有测试的可靠性这一说法。注意:软件测试与软件调试的概念,以及相应的方法。

48.D

49.C解析:当for循环执行到第30次时,i的值为30能被5整除,然后继续执行两次if语句,i经过两次自加1运算,值变为32,能被8整除,故此时第一次执行'printf('%d',i);'语句,即输出32。

50.C解析:C语言规定,只要在定义函数时不进行存储类型的显式说明,函数的存储类型就隐含为外部类型,即extern型,外部类型允许其他文件中的函数调用。

51.B

52.C【解析】在数据库管理系统提供的数据语言中,数据操纵语言负责数据的查询及增、删、改等操作。故答案为C。

53.D解析:选项A),共用体的每个成员的起始地址都相同;选项B),共用体变量所占的内存长度等于最长的成员的长度;选项C)因为每个成员的起始地址相同,所以整型数5以浮点型输出时为5.000000;选项D)C语言规定,不能把共用体变量作为函数的参数。

54.C解析:要获得数组t的第i个元素的内容,既可以使用常规的t[i]表达式,也可以将数组名t看作一个指针常量,使用表达式*(t+i)来获取数组t的第i个元素的内容。在本题中,for循环会循环5次,循环变量i从。开始,每次加2。所以,循环结束后,s中的值为t[0]+t[2]+t[4]+t[6]+t[6]+t[8]=1+3+5+7+9=25。故应该选择C。

55.A解析:此题考查的是编译预处理命令以及自加运算符。F(a++,b++)先取a和b的值,参加运算,再把a和b的值分别加1,所以F(a++,b++)=F(3,4)=3*4=12。

56.C解析:程序中定义了两个数组s和c,数组c中有5个元素,每个元素的初始值为0;数组s中有12个元素,包含4个“1”,3个“2”,3各“3”,2个“4”。第一个for语句中,用s[i]作为c数组的下标,用于统计s[i]中相同数字的个数,同时将统计的结果放在以该数字为下标的c数组中。第二个for语句用于将c数组中a[1]~a[4]4个元素输出。

57.D解析:若在scanf的格式化控制串中插入了其他字符,则在输入时要求按一一对应的位置原样输入这些字符。格式化输入函数必须严格按照双引号里面的格式进行输入。在格式化输出函数中,格式控制串中除了合法的格式说明外,可以包含任意的合法字符。

58.A解析:题中的外循环只执行了2次:

第1次:a[1][0]=3,a[1][1]=4,所以s=7;

第2次:a[2][0]=5,a[2][1]=6,a[2][2]=0,所以s=7+5+6+0=18。

59.B解析:程序中首先定义了一个结构体,其成员为一字符数组和一实型数组。在main()中首先定义了一个结构体数组并初始化。接下来在for循环中遍历了结构体数组的第一个元素中数组成员即{'20021',90,95,85'}循环结果为90+95+85=270最后sum为270,又输出格式为%6.2f\\n要求保留两位小数,故最后输出为270.00。所以4个选项中B正确。

60.C解析:在C语言中,“%d”表示输出带符号的十进制整型数;“%x”表示以十六进制无符号型输出整型数据(即不带前导0x或0x);“%o”表示以八进制无符号型输出整型数据(即不带前导0)。

61.B

62.B

63.A

64.A注释/*和*/,之间计算机不参与编译,所以a、b值仍为0,答案选择A)。

65.C

66.A在本题中,程序首先定义了一个循环变量i,然后执行for循环,从循环变量的初始值及循环的结束条件可以判断出循环执行3次。

第一次循环时,i=0,然后执行switch语句,由于i=0,无法找到匹配的case结构,执行default结构,此时输出变量i的值0。本次循环结束。

第二次循环时,i=1,然后执行switch语句,由于i=1,首先执行case1结构,输出1,由于没有break,程序接着执行case1结构,又输出1,接着又执行default结构,又输出一个1。在本次循环中,总共输出3个1。

第三次循环时,i=2,然后执行switch语句,由于i=2,首先执行case2结构,输出2,由于没有break,程序接着执行default结构,又输出一个2。在本次循环中,总共输出2个2。三次循环后循环结束,主函数结束。

从上面对程序的分析我们可以知道,程序最后的输出结果是011122。因此本题的正确答案选A。

67.C

\n本题考查do-while语句和if…else语句。do-while语句的功能是先执行循环体再判断条件,所以,先判断if语句的条件,y=-4,!y为逻辑0,条件不成立,执行下面的else语句,输出y,然后将x的值减1,x=3,条

温馨提示

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

评论

0/150

提交评论