全国计算机等级考试二级C语言题库及答案超强.docx
《全国计算机等级考试二级C语言题库及答案超强.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C语言题库及答案超强.docx(69页珍藏版)》请在冰豆网上搜索。
全国计算机等级考试二级C语言题库及答案超强
2020年3月全国计算机等级考试二级C语言题库及答案(超强)
1.程序流程图中带有箭头的线段表示的是( C )。
A)图元关系B)数据流C)控制流D)调用关系
2.结构化程序设计的基本原则不包括( A )。
A)多态性B)自顶向下C)模块化D)逐步求精
3.软件设计中模块划分应遵循的准则是( B )。
A)低内聚低耦合B)高内聚低耦合C)低内聚高耦合D)高内聚高耦合
4.在软件开发中,需求分析阶段产生的主要文档是( B )。
A)可行性分析报告B)软件需求规格说明书C)概要设计说明书D)集成测试计划
5.算法的有穷性是指( A )。
A)算法程序的运行时间是有限的B)算法程序所处理的数据量是有限的
C)算法程序的长度是有限的D)算法只能被有限的用户使用
6.对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是( D )。
A)快速排序B)冒泡排序C)直接插入排序D)堆排序
7.下列关于栈的叙述正确的是( B )。
A)栈按"先进先出"组织数据B)栈按"先进后出"组织数据
C)只能在栈底插入数据D)不能删除数据
8.在数据库设计中,将E-R图转换成关系数据模型的过程属于( C )。
A)需求分析阶段B)概念设计阶段C)逻辑设计阶段D)物理设计阶段
9.有三个关系R、S和T如下:
由关系R和S通过运算得到关系T,则所使用的运算为( D )。
A)并B)自然连接C)笛卡尔积D)交
10.设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为( C )。
A)课号,成绩B)学号,成绩C)学号,课号D)学号,姓名,成绩
11.以下叙述中错误的是( A )。
A)C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
B)C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
D)C语言源程序经编译后生成后缀为.obj的目标程序
12.以下选项中,合法的一组C语言数值常量是( A )。
A)12. 0Xa23 4.5e0B)028 .5e-3 -0xf
C).177 4e1.5 0abcD)0x8A 10,000 3.e5
13.以下选项中不合法的标识符是( A )。
A)&aB)FORC)printD) 00
14.若有代数式
(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是( A )。
A)sqrt(fabs(pow(n,x)+exp(x)))B)sqrt(fabs(pow(n,x)+pow(x,e)))
C)sqrt(abs(n^x+e^x))D)sqrt(fabs(pow(x,n)+exp(x)))
15.若有定义:
doublea=22;inti=0,k=18;,则不符合C语言规定的赋值语句是( B )
A)i=(a+k)<=(i+k);B)i=a%11;C)a=a++,i++D)i=!
a;
16.有以下程序:
#include
main()
{ ints,t,A=10;doubleB=6;
s=sizeof(A);t=sizeof(B);
printf("%d,%d\n",s,t);
}
在VC6.0平台上编译运行,程序运行后的输出结果是( D )。
A)10,6B)4,4C)2,4D)4,8
17.有以下程序:
#include
main()
{ chara,b,c,d;
scanf("%c%c",&a,&b);
c=getchar();d=getchar();
printf("%c%c%c%c\n",a,b,c,d);
}
当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:
回车也是一个字符)
12
34
则输出结果是( D )。
A)12
34
B)12
C)1234
D)12
3
18.下关于逻辑运算符两侧运算对象的叙述中正确的是( A )。
A)可以是任意合法的表达式B)只能是整数0或非0整数
C)可以是结构体类型的数据D)只能是整数0或1
19.有以下程序:
#include
main()
{ inta=0,b=0,c=0,d=0;
if(a=1)b=1;c=2;
elsed=3;
printf("%d,%d,%d,%d\n",a,b,c,d);
}
程序输出( C )。
A)1,1,2,0B)0,0,0,3C)编译有错D)0,1,2,0
20.有以下程序:
#include
main()
{ intx=1,y=0,a=0,b=0;
switch(x)
{ case1:
switch(y)
{ case0:
a++;break;
case1:
b++;break;
}
case2:
a++;b++;break;
case3:
a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
程序的运行结果是( B )。
A)a=2,b=2B)a=2,b=1C)a=1,b=1D)a=1,b=0
21.以下程序段中的变量已正确定义:
for(i=0;i<4;i++,i++)
for(k=1;k<3;k++);printf("*");
程序段的输出结果是( C )。
A)**B)****C)*D)********
22.有以下程序段:
#include
inti,n;
for(i=0;i<8;i++)
{ n=rand()%5;
switch(n)
{ case1:
case3:
printf("%d\n",n);break;
case2:
case4:
printf("%d\n",n);continue;
case0:
exit(0);
}
printf("%d\n",n);
}
以下关于程序段执行情况的叙述,正确的是( D )。
A)for循环语句固定执行8次B)当产生的随机数n为4时结束循环操作
C)当产生的随机数n为1和2时不做任何操作D)当产生的随机数n为0时结束程序运行
23.有以下程序:
#include
intf(intx);
main()
{intn=1,m;
m=f(f(f(n)));printf("%d\n",m);
}
intf(intx)
{returnx*2;}
程序运行后的输出结果是( A )。
A)8B)2C)4D)1
24.以下叙述中错误的是( A )。
A)可以给指针变量赋一个整数作为地址值
B)函数可以返回地址值
C)改变函数形参的值,不会改变对应实参的值
D)当在程序的开头包含头文件stdio.h时,可以给指针变量赋NULL
25.设已有定义:
floatx;,则以下对指针变量p进行定义且赋初值的语句中正确的是( B )。
A)int*p=(float)x;B)float*p=&x;C)floatp=&x;D)float*p=1024;
26.以下数组定义中错误的是( D )。
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}};
27.有以下程序:
#include
voidfun(inta[],intn)
{ inti,t;
for(i=0;i}
main()
{ intk[10]={1,2,3,4,5,6,7,8,9,10},i;
fun(k,5);
for(i=2;i<8;i++)printf("%d",k[i]);
printf("\n");
}
程序的运行结果是( A )。
A)321678B)876543C)1098765D)345678
28.有以下程序:
#include
#defineN4
voidfun(inta[][N],intb[])
{ inti;
for(i=0;i}
main()
{ intx[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N],i;
fun(x,y);
for(i=0;i}
程序运行后的输出结果是( A )。
A)-3,-1,1,3,B)-12,-3,0,0,C)0,1,2,3,D)-3,-3,-3,-3,
29.设有定义:
chars[81];inti=0;,以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是( C )。
A)gets(s);B)while((s[i++]=getchar())!
='\n');s[i]='\0';
C)scanf("%s",s);D)do{scanf("%c",&s[i]);}while(s[i++]!
='\n');s[i]='\0';
30.设有定义:
charp[]={'1','2','3'},*q=p;,以下不能计算出一个char型数据所占字节数的表达式是( A )。
A)sizeof(p)B)sizeof(char)C)sizeof(*q)D)sizeof(p[0])
31.有以下程序:
#include
#include
main()
{ charstr[][20]={"One*World","One*Dream!
"},*p=str[1];
printf("%d,",strlen(p));printf("%s\n",p);
}
程序运行后的输出结果是( A )。
A)10,One*Dream!
B)9,One*Dream!
C)9,One*WorldD)10,One*World
32.有以下程序:
#include
main()
{ chars[]="012xy\08s34f4w2";
inti,n=0;
for(i=0;s[i]!
=0;i++)
if(s[i]>='0'&&s[i]<='9')n++;
printf("%d\n",n);
}
程序运行后的输出结果是( B )。
A)0B)3C)7D)8
33.有以下程序:
#include
fun(intx,inty)
{staticintm=0,i=2;
i+=m+1;m=i+x+y;returnm;
}
main()
{intj=1,m=1,k;
k=fun(j,m);printf("%d,",k);
k=fun(j,m);printf("%d\n",k);
}
执行后的输出结果是( A )。
A)5,11B)5,5C)11,11D)11,5
34.在C语言中,只有在使用时才占用内存单元的变量,其存储类型是( C )。
A)auto和staticB)extern和registerC)auto和registerD)static和register
35.下面结构体的定义语句中,错误的是( A )。
A)structord{intx;inty;intz;}structorda;
B)structord{intx;inty;intz;};structorda;
C)structord{intx;inty;intz;}a;
D)struct{intx;inty;intz;}a;
36.有以下程序:
#include
typedefstruct{intb,p;}A;
voidf(Ac)/*注意:
c是结构变量名*/
{intj;
c.b+=1;c.p+=2;
}
main()
{inti;
Aa={1,2};
f(a);
printf("%d,%d\n",a.b,a.p);
}
程序运行后的输出结果是( B )。
A)2,4B)1,2C)1,4D)2,3
37.以下叙述中正确的是( A )。
A)在C语言中,预处理命令行都以"#"开头B)预处理命令行必须位于C源程序的起始位置C)#include必须放在C程序的开头D)C语言的预处理不能实现宏定义和条件编译的功能
38.有以下程序:
#include
#include
intfun(intn)
{ int*p;
p=(int*)malloc(sizeof(int));
*p=n;return*p;
}
main()
{ inta;
a=fun(10);printf("%d\n",a+fun(10));
}
程序的运行结果是( C )。
A)0B)10C)20D)出错
39.有以下程序:
#include
main()
{ unsignedchara=8,c;
c=a>>3;
printf("%d\n",c);
}
程序运行后的输出结果是( B )。
A)16B)1C)32D)0
40.读取二进制文件的函数调用形式为:
fread(buffer,size,count,fp);,其中buffer代表的是( D )。
A)一个内存块的字节数B)一个整型变量,代表待读取的数据的字节数
C)一个文件指针,指向待读取的文件D)一个内存块的首地址,代表读入数据存放的地址
11.下列叙述中错误的是( B )。
A)C程序可以由多个程序文件组成B)一个C语言程序只能实现一种算法
C)C程序可以由一个或多个函数组成D)一个C函数可以单独作为一个C程序文件存在
12.以下选项中,能用作数据常量的是( A )。
A)115LB)0118C)1.5e1.5D)o115
13.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( D )。
A)大写字母B)下划线C)数字字符D)连接符
14.设变量已正确定义并赋值,以下正确的表达式是( A )。
A)x=y+z+5,++yB)int(15.8%5)C)x=y*5=x+zD)x=25%5.0
15.设有定义:
intx=2;,以下表达式中,值不为6的是( A )。
A)2*x,x+=2B)x++,2*xC)x*=(1+x)D)x*=x+1
16.有以下程序:
#include
main()
{ intx,y,z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);
}
程序运行后的输出结果是( C )。
A)2,3,3B)2,3,2C)2,3,1D)2,2,1
17.有以下程序:
#include
main()
{ charc1,c2;
c1='A'+'8'-'4';
c2='A'+'8'-'5';
printf("%c,%d\n",c1,c2);
}
已知字母A的ASCII码为65,程序运行后的输出结果是( A )。
A)E,68B)D,69C)E,DD)输出无定值
18.若有定义intx,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?
(x++):
(y++)中的条件表达式(x-y)等价的是( A )。
A)(x-y<0||x-y>0)B)(x-y<0)C)(x-y>0)D)(x-y==0)
19.有以下程序:
#include
main()
{ intx=1,y=0;
if(!
x)y++;
elseif(x==0)
if(x)y+=2;
elsey+=3;
printf("%d\n",y);
}
程序运行后的输出结果是( D )。
A)3B)2C)1D)0
20.若有定义:
floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是( A )。
A)switch(a+b)
{case1:
printf("*\n");
case2+1:
printf("**\n");}
B)switch((int)x);
{case1:
printf("*\n");
case2:
printf("**\n");}
C)switch(x)
{case1.0:
printf("*\n");
case2.0:
printf("**\n");}
D)switch(a+b)
{case1:
printf("*\n");
casec:
printf("**\n");}
21.有以下程序:
#include
main()
{ inty=9;
for(;y>0;y--)
if(y%3==0)printf("%d",--y);
}
程序的运行结果是( A )。
A)852B)963C)741D)875421
22.有以下程序:
#include
main()
{ inti,j,m=1;
for(i=1;i<3;i++)
{ for(j=3;j>0;j--)
{if(i*j>3)break;
m*=i*j;
}
}
printf("m=%d\n",m);
}
程序运行后的输出结果是( C )。
A)m=4B)m=2C)m=6D)m=5
23.有以下程序:
#include
intfun(intx,inty)
{ if(x!
=y)return((x+y)/2);
elsereturn(x);
}
main()
{ inta=4,b=5,c=6;
printf("%d\n",fun(2*a,fun(b,c)));(A)
}
A)6B)3C)8D)12
24.有以下程序:
#include
intadd(inta,intb){return(a+b);}
main()
{intk,(*f)(),a=5,b=10;
f=add;
…
}
则以下函数调用语句错误的是( D )。
A)k=f(a,b);B)k=add(a,b);C)k=(*f)(a,b);D)k=*f(a,b);
25.有以下程序:
#include
main()
{intn,*p=NULL;
*p=&n;
printf("Inputn:
");scanf("%d",&p);printf("outputn:
");printf("%d\n",p);
}
该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是( A )
A)intn,*p=NULL;B)*p=&n;C)scanf("%d",&p)D)printf("%d\n",p);
26.下列定义数组的语句中,正确的是( A )。
A)#defineN10intx[N];B)intN=10;intx[N];
C)intx[0..10];D)intx[];
27.有以下程序:
#include
main()
{ inta[]={2,3,5,4},i;
for(i=0;i<4;i++)
switch(i%2)
{case0:
switch(a[i]%2)
{ case0:
a[i]++;break;
case1:
a[i]--;
}break;
case1:
a[i]=0;
}
for(i=0;i<4;i++)printf("%d",a[i]);printf("\n");
}
程序运行后的输出结果是( D )。
A)0304B)2050C)3344D)3040
28.有以下程序:
#include
main()
{ intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
for(i=0;i<3;i++)
for(j=i;j<=i;j++)t+=b[i][b[j][i]];
printf("%d\n",t);
}
程序运行后的输出结果是( B )。
A)3B)4C)1D)9
29.以下语句中存在语法错误的是( A )。
A)charss[6][20];ss[1]="right?
";B)charss()[20]={"right?
"};
C)char*ss[6];ss[1]="right?
";D)char*ss()={"rig