二级c习题范俊伟.docx
《二级c习题范俊伟.docx》由会员分享,可在线阅读,更多相关《二级c习题范俊伟.docx(31页珍藏版)》请在冰点文库上搜索。
二级c习题范俊伟
一、选择题答案
1.下列选项中,合法的C语言关键字是B
A)VAR
B)cher
C)integer
D)default
你所选择的答案是:
*,正确答案是:
B×
2.下列程序的运行结果是B
voidfun(int*a,int*b)
{int*k;
k=a;a=b;b=k;
}
main()
{inta=3,b=6,*x=&a,*y=&b;
fun(x,y);
printf("%d%d",a,b);
}
A)63
B)36
C)编译出错
D)00
你所选择的答案是:
*,正确答案是:
B×
3.下面程序的输出结果是C
main()
{inta[]={1,2,3,4,5,6,7,8,9,0,},*p;
p=a;
printf("%d\n",*p+9);
}
A)0
B)1
C)10
D)9
你所选择的答案是:
*,正确答案是:
C×
4.以下程序的输出结果是A
longfun(intn)
{longs;
if(n==1||n==2)s=2;
elses=n-fun(n-1);
returns;
}
main()
{printf("%ld\n",fun(3));}
A)1
B)2
C)3
D)4
你所选择的答案是:
*,正确答案是:
A×
5.以下选项中合法的字符常量是B
A)"B"
B)'\010'
C)68
D)D
你所选择的答案是:
*,正确答案是:
B×
6.以下程序的输出结果是
main()
{intnum=0;
while(num<=2)
{num++;printf("%d\n",num);
}
A)1
2
3
4
B)1
2
3
C)1
2
D)l
你所选择的答案是:
*,正确答案是:
B×
7.假定int类型变量占用两个字节,其有定义:
intx[10]={0,2,4};,则数组x在内存中所占字节数是
A)3
B)6
C)10
D)20
你所选择的答案是:
*,正确答案是:
D×
8.以下叙述正确的是
A)可以把define和if定义为用户标识符
B)可以把define定义为用户标识符,但不能把if定义为用户标识符
C)可以把if定义为用户标识符,但不能把define定义为用户标识符
D)define和if都不能定义为用户标识符
你所选择的答案是:
*,正确答案是:
B×
9.以下程序的输出结果是
main()
{inta=0,i;
for(i=;i<5;i++)
{switch(i)
{case0:
case3:
a+=2;
case1:
case2:
a+=3;
default:
a+=5;
}
}
printf("%d\n",a);
}
A)31
B)13
C)10
D)20
你所选择的答案是:
*,正确答案是:
A×
10.在C语言中,形参的缺省存储类是
A)auto
B)register
C)static
D)extern
你所选择的答案是:
*,正确答案是:
A×
11.若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是
A)p=2*(int*)malloc(sizeof(int));
B)p=(int*)malloc(2*sizeof(int));
C)p=(int*)malloc(2*2);
D)p=(int*)calloc(2,sizeof(int));
你所选择的答案是:
*,正确答案是:
A×
12.以下不能正确进行字符串赋初值的语句是
A)charstr[5]="good!
";
B)charstr[]="good!
";
C)char*str="good!
";
D)charstr[5]={'g','o','o','d'};
你所选择的答案是:
*,正确答案是:
A×
13.已知i、j、k为int型变量,若从键盘输入:
1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是
A)scanf("%2d%2d%2d",&i,&j,&k);
B)scanf("%d%d%d",&i,&j,&k);
C)scanf("%d,%d,%d",&i,&j,&k);
D)scanf("i=%d,j=%d,k=%d",&i,&j,&k);
你所选择的答案是:
*,正确答案是:
C×
14.有一函数,
1(x>0)
y=0(x=0)
-1(x<0)
以下程序段中不能根据x值正确计算出y值的是
A)if(x>0)y=1;
elseif(x==0)y=0;
elsey=-1;
B)y=0;
if(x>0)y=1;
elseif(x<0)y=-1;
C)y=0;
if(x>=0);
if(x>0)y=1;
elsey=-1;
D)if(x>=0)
if(x>0)y=1;
elsey=0;
elsey=-1;
你所选择的答案是:
*,正确答案是:
C×
15.有以下程序
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)1
B)2
C)3
D)4
你所选择的答案是:
*,正确答案是:
A×
16.有以下程序
voidfun(char*c,intd)
{*c=*c+1;d=d+1;
printf("%c,%c,",*c,d);
}
main()
{chara='A',b='a';
fun(&b,a);printf("%c,%c\n",a,b);
}
程序运行后的输出结果是
A)B,a,B,a
B)a,B,a,B
C)A,b,A,b
D)b,B,A,b
你所选择的答案是:
*,正确答案是:
D×
17.有以下程序
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);
}
程序运行后的输出结果是
A)9,9
B)8,9
C)1,8
D)9,8
你所选择的答案是:
*,正确答案是:
D×
18.有以下程序
#include
main()
{char*p="abcde\Ofghjik\0";
printf("%d\n",strlen(p));
}
程序运行后的输出结果是
A)12
B)15
C)6
D)5
你所选择的答案是:
*,正确答案是:
D×
19.若有以下程序段(n所赋的是八进制数)
intm=32767,n=032767
printf("%d,%o/n",m,n);
执行后输出结果是( )。
A)32767,32767
B)32767,032767
C)32767,77777
D)32767,077777
你所选择的答案是:
*,正确答案是:
A×
20.以下函数的功能是:
通过键盘输入数据,为数组中的所有元素赋值。
#defineN10
voidarrin(intx[N])
{inti=0;
while(i scanf("%d",_____);
}
在下划线处应填入的是( )。
A)x+i
B)&x[i+1]
C)x+(i++)
D)&x[++i]
你所选择的答案是:
*,正确答案是:
C×
21.有以下程序
main()
{chars[]="\n123\\";
printf("%d,%d\n",strlen(s),sizeof(s));
}
执行后输出结果是( )。
A)赋初值的字符串有错
B)6,7
C)5,6
D)6,6
你所选择的答案是:
*,正确答案是:
C×
22.有以下程序
main()
{union{unsignedintn;
unsignedcharc;
}u1;
ul.c=`A`;
printf("%c\n",u1.n);
}
执行后输出结果是( )。
A)产生语法错
B)随机值
C)A
D)65
你所选择的答案是:
*,正确答案是:
C×
23.以下程序段中,能够通过调用函数fun,使main函数中的指针变量p指向一个合法的整型单元的是( )。
A)main()
{int*p;
fun(p);
}
intfun(int*p)
{ints;p=&s;}
B)main
{int*p;
fun(&p);
}
intfun(int**p)
{ints;*p=&s;}
C)#include
main()
{int*p;
fun(&p);
}
intfun(int**p)
{*p=(int*)malloc
(2);}
D)#include
main()
{int*p;
fun(p);
}
intfun(int*p)
{p=(int*)malloc(sizeo(int));}
你所选择的答案是:
*,正确答案是:
C×
24.以下叙述中不正确的是( )。
A)C语言中的文本文件以ASCⅡ码形式存储数据
B)C语言中对二进制文件的访问速度比文本文件快
C)C语言中,随机读写方式不适用于文本文件
D)C语言中,顺序读写方式不适用于二进制文件
你所选择的答案是:
*,正确答案是:
D×
25.以下程序企图把从终端输入的字符输出到名为abc.txt的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。
#include
main()
{FILE*fout;charch;
fout=fopen('abc.txt','w');
ch=fgetc(stdin);
while(ch!
='#')
{fputc(ch,fout);
ch=fgetc(stdin);
}
fclose(fout);
}
出错的原因是( )。
A)函数fopen调用形式错误
B)输入文件没有关闭
C)函数fgetc调用形式错误
D)文件指针stdin没有定义
你所选择的答案是:
*,正确答案是:
A×
26.有以下程序
main()
{intk=4,n=0;
for(;n {n++;
if(n%3!
=0)continue;
k--;}
printf("%d,%d\n",k,n);
}
程序运行后的输出结果是( )。
A)1,1
B)2,2
C)3,3
D)4,4
你所选择的答案是:
*,正确答案是:
C×
27.若以下选项中的变量已正确定义,则正确的赋值语句是( )。
A)x1=26.8%3; B)1+2=x2 C)x3=0x12 D)x4=1+2=3;
你所选择的答案是:
*,正确答案是:
A×
28.有以下程序
main()
{chark;intI;
for(i=1;i<3;i++)
{scanf(“%c”,&k);
switch(k)
{case‘0’:
printf(“another\n”);
case‘1’:
printf(“number\n”);
}
}
}
程序运行时,从键盘输入:
01<回车>,程序执行后的输出结果是( )。
A)another
number
another
B)another
number
number
C)another
number
D)number
number
你所选择的答案是:
*,正确答案是:
C×
29.有以下程序
main()
{ intx=0,y=5,z=3;
while(z-->0&&++x<5)y=y-1;
printf(“%d,%d,%d\n”,x,y,z);
}
程序执行后的输出结果是( )。
A)3,2,0 B)3,2,-1 C)4,3,-1 D)5,-2,-5
你所选择的答案是:
*,正确答案是:
B×
30.有以下程序
charfun(charx,chary)
{if(xreturny;
}
main()
{inta=’9’,b=’8’,c=’7’;
printf(“%c\n”,fun(fun(a,B),fun(b,C)));
}
程序的执行结果是( )。
A)函数调用出错 B)8 C)9 D)7
你所选择的答案是:
*,正确答案是:
D×
31.有以下程序
intf(intb[][4])
{inti,j,s=0;
for(j=0;j<4;j++)
{i=j;
if(i>2)i=3-j;
s+=b[i][j];
}
returns;
}
main()
{inta[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};
printf(“%d\n”,f(A));
}
执行后的输出结果是( )。
A)12 B)11 C)18 D)16
你所选择的答案是:
*,正确答案是:
D×
32.用C语言编写的代码程序( )。
A)可立即执行
B)是一个源程序
C)经过编译即可执行
D)经过编译解释才能执行
你所选择的答案是:
*,正确答案是:
B×
33.有以下定义语句
doublea,b;intw;longc;
若各变量已正确赋值,则下列选项中正确的表达式是( )。
A)a=a+b=b++
B)w%(int)a+b)
C)(c+w)%(int)a
D)w=a==b;
你所选择的答案是:
*,正确答案是:
C×
34.有以下程序
main()
{
inta=3,b=4,c=5,d=2;
if(a>b)
if(b>c)
printf("%d",d+++1);
else
printf("%d",++d+1);
printf("%d\n",d);
}
程序运行后的输出结果是( )。
A)2
B)3
C)43
D)44
你所选择的答案是:
*,正确答案是:
A×
35.有以下定义和语句
inta[3][2]={1,2,3,4,5,6,},*p[3];
p[0]=a[1];
则*p[0]+1)所代表的数组元素是( )。
A)a[0][1]
B)a[1][0]
C)a[1][1]
D)a[1][2]
你所选择的答案是:
*,正确答案是:
C×
36.有以下程序
main()
{unsignedinta;
intb=-1;
a=b;
printf("%u",a);
}
程序运行后的输出结果是( )。
A)-1
B)65535
C)32767
D)-32768
你所选择的答案是:
*,正确答案是:
B×
37.数字字符0的ASCII值为48,若有以下程序
main()
{chara='1',b='2';
printf("%c,",b++);
printf("%d",b-a);
}
程序运行后的输出结果是( )。
A)3,2
B)50,2
C)2,2
D)2,50
你所选择的答案是:
*,正确答案是:
C×
38.有定义语句:
intb;charc[10];,则正确的输入语句是( )。
A)scanf("%d%s",&b,&c);
B)scanf("%d%s",&b,c);
C)scanf("%d%s",b,c);
D)scanf("%d%s",b,&c);
你所选择的答案是:
*,正确答案是:
B×
39.有以下程序
main()
{
intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;
while(i++<7)if(p[i]%2)j+=p[i];
printf("%d",j);
}
程序运行后的输出结果是( )。
A)42
B)45
C)56
D)60
你所选择的答案是:
*,正确答案是:
B×
40.已有定义:
chara[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是( )。
A)数组a和b的长度相同
B)a数组长度小于b数组长度
C)a数组长度大于b数组长度
D)上述说法都不对
你所选择的答案是:
*,正确答案是:
C×
41.有以下程序
main()
{inta[]={1,2,3,4,5,6,7,8,9,0},*p;
for(p=a;pprintf("%d,",*p);
}
程序运行后的输出结果是( )。
A)1,2,3,4,5,6,7,8,9,0,
B)2,3,4,5,6,7,8,9,10,1,
C)0,1,2,3,4,5,6,7,8,9,
D)1,1,1,1,1,1,1,1,1,,1,
你所选择的答案是:
*,正确答案是:
A×
42.有以下程序
main()
{
intc=35;printf("%d",c&c);
}
程序运行后的输出结果是( )。
A)0
B)70
C)35
D)1
你所选择的答案是:
*,正确答案是:
C×
43.有以下函数
fun(char*a,char*b)
{
while((*a!
='')&&(*b!
='')&;&(*a==*b))
{a++;b++;}
return(*a-*b);
}
该函数的功能是( )。
A)计算a和b所指字符串的长度之差
B)将b所指字符串复制到a所指字符串中
C)将b所指字符串连接到a所指字符串后面
D)比较a和b所指字符串的大小
你所选择的答案是:
*,正确答案是:
D×
44.程序中若有如下的说明和定义语句
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)
你所选择的答案是:
*,正确答案是:
A×
45.以下关于函数的叙述中正确的是( )。
A)每个函数都可以被其它函数调用(包括main函数)
B)每个函数都可以被单独编译
C)每个函数都可以单独运行
D)在一个函数内部可以定义另一个函数
你所选择的答案是:
*,正确答案是:
B×
46.设变量已正确定义,则以下能正确计算f=n!
的程序段是( )。
A)f=0;
for(i=1;i<=n;i++)
f*=i;
B)f=1;
for(i=1;i>=2;i--)
f*=i;
C)f=1;
for(i=n;i>1;i--)
f=f*i;
D)f=1;
for(i=n;i>=2;i--)
f=f*i
你所选择的答案是:
*,正确答案是:
A×
47.设有定义:
intn1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是( )。
A)*p=*q;B)p=q;C)*p=&n1;D)p=*q;
你所选择的答案是:
*,正确答案是:
A×
48.有以下程序
#include
main()
{charc1='1',c2='2';
c1=getchar();c2=getchar();putchar(c1);putchar(c2);
}
当运行时输入:
a<回车>后,以下叙述正确的是( )。
A)变量c1被赋予字符a,c2被赋予回车符
B)程序将等待用户输入第2个字符
C)变量c1被赋予字符a,c2中仍是原有字符2
D)变量c1被赋予字符a,c2中将无确定值
你所选择的答案是:
*,正确答案是:
A×
49.有以下程序
voidsort(inta[],intn)
{inti,j,t;
for(i=0;i for(j=i+1;j if(a[i] }
main()
{intaa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(aa+2,5);
for(i=0;i<10;i++)printf("%d,",aa[i]);
printf("\n");
}
程序运行后的输出结果是( )。
A)1,2,3,4,5,6,7,8,9,10, B)1,2,7,6,3,4,5,8,9,10,
C)1,2,7,6,5,4,3,8,9,10, D)1,2,9,8,7,6,5,4,3,10,
你所选择的答案是:
*,正确答案是:
C×
50.有以下程序
voidsum(inta[])
{a[0]=a[-1]+a[1];}
main()
{inta[10]={1,2,3,4,5,6,7,8,9,10};
sum(&a[2]);
printf("%d\n",a[2]);
}
程序运行后的输出结果是( )。
A)6 B)7 C)5 D)8
你所选择的答案是:
*,正确答案是:
A×
51.有以下程序
inta=2;
intf(intn)
{staticinta=3;
i