计算机二级题目及答案.docx
《计算机二级题目及答案.docx》由会员分享,可在线阅读,更多相关《计算机二级题目及答案.docx(26页珍藏版)》请在冰豆网上搜索。
计算机二级题目及答案
1.选择题
1.C语句x*=y+2;可以写作________。
B
A、x=y+2B、x=x*(y+2);
C、x=2+y*x;D、x=x*y+2;
2.下列运算符中优先级最高的是________。
A
A、>=B、=C、||D、-=
3.在一个C程序中,________。
A
A、main函数可以在任何函数之间出现B、main函数必须出现在所有函数之后
C、main函数必须出现在所有函数之前D、main函数必须出现在固定位置
4.C语言程序的三种基本结构是________。
A
A、顺序、选择、循环B、选择、递归、循环
C、顺序、循环、子程序D、嵌套、选择、循环
5.若有以下定义:
chara;intb;floatc;doubled;则表达式a*b+d-c值的类型是___A_____。
A、doubleB、floatC、intD、char
6.字符型常量在内存中存放的是该字符对应的________。
D
A、BCD代码值B、内部码值C、十进制代码值D、ASCII代码值
7.下列说法中正确的是________。
D
A、C语言程序总是从第一个函数开始执行
B、在C语言程序中,要调用的函数必须在main()函数中定义
C、C语言程序中的main()函数必须放在程序的开始部分
D、C语言程序总是从main()函数开始执行
8.若变量已正确定义,要将a和b中的数进行交换,下列选项中不正确的是________。
B
A、t=a,a=b,b=t;B、a=t;t=b;b=a;
C、t=b;b=a;a=t;D、a=a+b,b=a-b,a=a-b;
9.完成C源程序编辑后,到生成执行文件,C语言处理系统必须执行的步骤依次为________。
B
A、连接、运行B、编译、连接
C、运行D、连接、编译
10.若有说明和语句:
inta=5,b;b=a++;此处变量b的值是________。
C
A、6B、4C、5D、7
11.下面不是C语言整型常量的是________。
D
A、-32768B、01C、0x11D、081
12.sizeof(double)是一个________。
A
A、整型表达式B、双精度型表达式
C、字符型表达式D、不合法的表达式
13.若定义x和y为double类型,当x=1时,y=x+3/2的值是________。
B
A、2.5B、2.0C、1D、2
14.设x和y均为int型变量,则语句:
x+=y; y=x-y; x-=y;的功能是________。
D
A、无确定结果B、把x和y按从小到大排列
C、把x和y按从大到小排列D、交换x和y中的值
15.设有如下程序段:
intx=2002,y=2003;
printf(″%d\n″,(x,y));
则以下叙述中正确的是________。
C
A、输出值为2002B、运行时产生出错信息
C、输出值为2003D、输出语句中格式说明符的个数少于输出项的个数,不能正确输出
16.设有如下的变量定义:
unsignedlongw=5;doublex=1;
则执行printf(″%ld\n″,sizeof(x)+w);输出的结果是________。
B
A、6.0B、13C、9D、6
17.C语言中运算对象必须是整型的运算符是________。
B
A、/B、%C、*D、+
18.对于下列程序段:
intx=10,y=3;
printf(″%d\n″,x%y,x/y);
其输出结果是________。
A
A、1B、0C、3D、4
19.下面不是C语言基本数据类型的是________。
D
A、无符号长整型B、单精度型
C、整型D、指针类型
20.若inta,b,c;,则表达式(a=2,b=5,b++,a+b)的值是________。
A
A、8B、2C、7D、6
21.从键盘输入x,不能输出x的语句段是________。
C
A、c=getchar();putchar(c);B、scanf(″%c″,&c);printf(″%c″,c);
C、getchar(c);putchar(c);D、putchar(getchar());
22.下列变量名中合法的是________。
B
A、-TomB、_6a7bC、3a6bD、$ABC
23.若有以下程序段:
#include
main()
{intx=102,y=012;
printf(″%2d,%2d\n″,x,y);
}执行后输出结果是________。
B
A、02,10B、102,10C、02,12D、10,01
24.#include
main()
{inta=0x12;
printf(″a=%d\n″,a+=12);A
}
A、a=30
B、a=24
C、a=22
D、a=36
25.#include
main()
{
intx=1,a=0,b=0;
switch(x)
{
case0:
b++;
case1:
a++;
case2:
a++;b++;
}
printf(″a=%d,b=%d\n″,a,b);
}C
A、a=2,b=2B、a=1,b=0
C、a=2,b=1D、a=1,b=1
26.设初始化inta=0,b=0,c=0,x=9;则执行下列语句之后,变量x的值是________。
D
if(a)x--;
elseif(b)
if(!
c)x=3;
elsex=4;
A、3B、4C、8D、9
27.为了避免嵌套的条件分支语句if-else的二义性,C语言规定程序中的else总是与________组成配对的关系。
A
A、在其之前未配对的最近的ifB、同一行上的if
C、在其之前未配对的ifD、编排位置相同的else
28.运行下列程序段后,x,y的值分别为________。
D
intx=1,y=1;
if(x=2)y=3;elsey=4;
A、1,1B、1,4C、2,4D、2,3
29.以下程序,运行后输入65,程序的输出结果是________。
#include
main()
{
intm;
scanf(″%d″,&m);
if(m>45)printf(″%d″,m);
elseprintf(″%d″,m++);
if(m<35)printf(″%d″,m);
elseprintf(″%d″,++m);
if(m>25)printf(″%d″,m);
}C
A、6565B、65C、656666D、不能确定
30.有如下程序,运行后的输出结果是________。
B
#include
main()
{
inta=2,b=-1,c=2;
if(a)
if(b<0)c=0;
elsec++;
printf(″%d\n″,c);
}
A、1B、0C、3D、2
31.有以下程序,运行后的输出结果是________。
A
#include
main()
{
inta=15,b=21,m=0;
switch(a%3)
{
case0:
m++;break;
case1:
m++;
switch(b%2)
{
default:
m++;
case0:
m++;break;
}
}
printf(″%d\n″,m);
}
A、1B、4C、3D、2
32.运行下列程序后,结果是________。
B
#include
main()
{
intx=3,y=0,z=0;
if(x=y+z)printf(″****″);
elseprintf(″####″);
}
A、可以通过编译但不能通过连接,因而不能B、输出****
C、输出####D、有语法错误不能通过编译
33.以下程序段中与语句k=a>b?
(b>c?
1:
0):
0;功能等B
A、if((a>b)||(b>C))k=1;elsek=0;B、if((a>b)&&(b>C))k=1;elsek=0;
C、if(a<=b)k=0;elseif(b<=C)k=1;D、if(a>b)k=1;elseif(b>C)k=1;
34.运行下面程序时,当输入字符B后,输出的结果是________。
C
#include
main()
{
chara;
scanf(″%c″,&a);
switch(a)
{
case′a′:
printf(″1″);break;
case′b′:
printf(″2″);break;
case′c′:
printf(″3″);break;
default:
printf(″4″);
}
}
A、1B、3C、4D、2
35.有如下程序,运行后的输出结果是________。
A
#include
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、0.500000B、0.250000C、1.000000D、0.000000
36.阅读以下程序,程序运行后,如果从键盘上输入5,则输出结果是#include
main()C
{
intx;
scanf(″%d″,&x);
if(x--<5)printf(″%d″,x);
elseprintf(″%d″,x++);
}
A、6B、3C、4D、5
37.有以下程序,程序运行后输入2,程序的输出结果是________。
C
#include
main()
{
intc;c=getchar();
switch(c-′2′)
{
case0:
case1:
putchar(c+4);
case2:
putchar(c+4);break;
case3:
putchar(c+3);
case4:
putchar(c+2);break;
}
}
A、没有输出内容B、6654C、66D、6
38.下列关于switch和break语句的论述中,正确的是D
A、switch语句中必须使用break语句B、以上结论中有两个正确
C、break语句是switch语句中的一部分D、switch语句中可以根据需要使用或不使用break语句
39.执行语句:
for(i=l;10;++i),其中表达式i=l将被执行________次A
A、1B、无穷次C、0D、不确定
40.对于以下程序段,其运行后的输出结果为________。
C
intx=2;
while(x=1)printf(″%2d″,x--);
A、2,1B、2C、反复输出1的死循环D、不显示任何内容
41.下面程序的运行结果是________。
B
#include
main()
{
inti,sum=0;
for(i=1;i<=3;i++);sum+=i;
printf(″%d\n″,sum);
}
A、6B、4C、3D、死循环
42.运行以下程序段,其输出结果是________。
B
intx=3;
do
{
printf(″%d″,x-=2);
}while((--x));
A、12B、1C、30D、死循环
43.有以下程序,运行后的输出结果是________。
C
#include
main()
{
inti,n=0;
for(i=2;i<5;i++)
{
do
{
if(i%3)
continue;
n++;
}while(!
i);
n++;
}
printf(″n=%d\n″,n);
}
A、n=2B、n=5C、n=4D、n=3
44.以下关于C语言的叙述中,正确的是________。
C
A、不能使用do…while语句构成的循环
B、do…while语句构成的循环必须用break语句才能退出
C、在do…while语句构成的循环中,当while语句中表达式的值为零时结束循环
D、在do…while语句构成的循环中,当while语句中表达式的值为非零时结束循环
45.运行以下程序后的输出结果是________。
C
#include
main()
{
intn=9;
while(n>6){n--;printf(″%d″,n);}
}
A、987B、8765C、876D、9876
46.以下程序的输出结果是________。
D
#include
main()
{
inti,j,m=0;
for(i=2;i<=14;i+=4)
for(j=3;j<=19;j+=4)m++;
printf(″%d\n″,m);
}
A、16B、8C、25D、20
47.语句while(!
E);中的条件!
E为真等价于________。
B
A、E==1B、E==0C、~ED、E!
=0
48.下面程序的功能是求满足下述条件的最小偶数:
当它分别被3.4.5.6除时余数均为2,请在________处选择正确答案。
D
#include
main()
{
inti=0;
while(____________)
{
if((i%3==2)&&(i%4==2)&&(i%5==2)&&(i%6==2))
{
printf(″%d″,i);
break;
}
i=i+2;
}
}
A、0B、i==0C、i!
=0D、1
49.语句for(表达式1;;表达式3)等价于________。
A
A、for(表达式1;1;表达式3)B、for(表达式1;表达式1;表达式3)
C、for(表达式1;0;表达式3)D、for(表达式1;表达式3;表达式3)
50.将下列程序补充完整,使其能打印出1000以内的所有"完全数"。
"完全数"是指一个正整数,
其所有小于该数的因子之和等于该数本身。
例如:
6=1+2+3,又如:
28=1+2+4+7+14。
#include
main()D
{
inti,j,s;
for(j=2;j<=1000;j++)
{
s=0;
for(i=1;iif(____________)s+=i;;
if(j==s)printf(″%4d″,j);
}
}
A、j!
=sB、j%iC、j==sD、j%i==0
51.下列程序的输出结果是________。
D
#include
main()
{
inti;
for(i=1;i<5;i++)
{
if(i%2)
printf(″*″);
else
continue;
printf(″#″);
}
printf(″$\n″);
}
A、#*#*$B、*#*#*#$C、#*#*#*$D、*#*#$
52.在运行以下程序时,如果从键盘上输入,ABCdef,则输出结果为________。
B
#include
main()
{
charch;
while((ch=getchar())!
=′\n′)
{
if(ch>=′A′&&ch<=′Z′)ch=ch+32;
elseif(ch>=′a′&&ch<=′z′)ch=ch-32;
printf(″%c″,ch);
}
printf(″\n″);
}
A、abcB、abcDEFC、DEFD、ABCdef
53.以下程序的输出结果是________。
A
#include
main()
{
inti,j;
for(j=10;j<11;j++)
{
for(i=9;iif(!
(j%i))break;
if(i>=j-1)printf(″%d″,j);
}
A、10B、9C、1011D、11
54.下面的for循环________。
B
for(x=0,y=0;(y!
=123)&&(x<4);x++);
A、循环次数不定B、执行4次
C、执行3次D、执行无限次
55.以下程序的功能是:
按顺序读入10位学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:
B
#include
main()
{
intn,k;
floatscore,sum,ave;
sum=0.0;
for(n=1;n<=10;n++)
{
for(k=1;k<=4;k++)
{
scanf(″%f″,&score);
sum+=score;
}
ave=sum/4.0;
printf(″NO%d:
%f\n″,n,ave);
}
}
上述程序运行后
A、ave=sun/4.0;B、sum=0.0;
C、printf(″NO%d:
%f\n″,n,ave);D、sum+=score;
56.下列程序的运行结果是________。
A
#include
#include
main()
{
intm,k,i,n=0;
for(m=6;m<15;m++)
{
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)
break;
if(i>=k+1)
{
printf(″%3d″,m);
n=n+1;
}
}
}
A、71113B、68101214
C、8101214D、11713
57.以下程序运行后的输出结果是________。
A
#include
main()
{
intx=15;
while(x>10&&x<50)
{
x++;
if(x/3){x++;break;}
elsecontinue;
}
printf(″%d\n″,x);
}
A、17B、15C、16D、18
58.若i、j已定义为int类型,则以下程序段中内循环体的总的执行次数是________。
C
for(i=5;i;i--)
for(j=0;j<4;j++)
{…}
A、24B、25C、20D、30
59.若有以下程序段
charstr[]=″ab\n\012\\\″″;
printf(″%d\n″,strlen(str));
运行后的输出结果是____B____。
A、4B、6C、3D、12
60.C程序中二维数组y有m列,则按先行后列存储在y[i][j]前的数据元素个数是_____B___。
A、(i-1)*m+j-1B、i*m+j
C、j*m+iD、i*m+j-1
61.若说明:
inta[2][3];则对a数组元素的正确引用是(A)。
A、a[1>2][!
1]B、a[2][0]
C、a[1,3]D、a(1,2)
62.以下关于数组的描述正确的是___D_____。
A、数组的大小是固定的,但可以有不同的类型的数组元素
B、数组的大小是可变的,但所有数组元素的类型必须相同
C、数组的大小是可变的,可以有不同的类型的数组元素
D、数组的大小是固定的,所有数组元素的类型必须相同
63.以下程序的输出结果是____B____。
#include
#include
main()
{
chara[9]=′1234567′;charb[4]=″abc″;
strcpy(a,b);
a[3]=′&′;
printf(″%c\n″,a[4]);
}
A、cB、5C、\0D、4
64.以下对一维数组m进行正确初始化的是(c)。
A、intm[10]={};B、intm[10]=(0,0,0,0);
C、intm[]={0};D、intm[10]={10*2};
65.下列对C语言字符数组的描述中错误的是__C______。
A、字符数组可以存入字符串
B、字符数组中的字符串可以整体输入、输出
C、可以在程序中通过赋值运算符“=”对字符数组整体赋值
D、不可以用关系运算符对字符数组中的字符串进行比较
66.假定int类型变量在内存中占两个字节,若有定义:
intx[10]={0,2,4};则数组x在内存中所占字节数是__C______。
A、10B、6C、20D、3
67.下面程序运行时输入WindowsXP1.0,则输出的结果是D_____。
#include
main()
{
charstr[17];
scanf(″%s″,str);
printf(″%s\n″,str);
}
A、程序中的scanf()函数格式有错,程序无法运行B、WindowsXP
C、WindowsXP1.0D、Windows
68.以下定义语句中,错误的是___A_____。
A、intn=5,a[n];B、chars[10]=″test″;
C、inta[]={1,2};D、chara[3];
69.函数调用:
strcat(strcpy(str1,str2),str3)的功能是__D
______。
A、将串str1连接到串str2之后再复制到串str3之后
B、将串str2连接到串str1之后再将串str1复制到串str3中
C、将串str1复制到串str2中后再连接到串str3之后
D、将串str2复制到串str1中后再将串str3连接到串str1之后
70.在定义intn[5][6]后第10个元素是(D
)。
A、n[2][5]B、n[2][4]
C、n[1][4]D、n[1][3]
71.有以下程序
#include
#include
main()
{
chara[]={′a′,′b′,′c′,′d′,′e′,′f′,′g′,′h′,′\0′};
inti,j;
i=sizeof(a);
j=strlen(a);
printf(″%d,%d\b″,i,j);
}
运行后的输出结果是____D____。
A、