21.以下程序的输出结果是( )
long fun(int n)
{ long s;
if(n==1||n==2)s=2;
else s=n-fun(n-1);
return s;}
main()
{ printf(″%1d\n″,fun(3));}
A.1 B.2 C.3 D.4
【参考答案】A
22.以下程序的输出结果是( )
union myun
{ struct
{ int x,y,z;}u;
int k;
} a;
main()
{ a.u.x=4;a.u.y=5;a.u.z=6;
a.k=0;
printf(″%d\n″,a.u.x);}
A.4〖DW〗 B.5〖DW〗 C.6〖DW〗 D.0
【参考答案】D
23.以下有4组用户标识符,其中合法的一组是( )
A.For -sub Case B.4d DO Size C.f2_G3 IF abc D.WORD void define
【参考答案】C
24.已知各变量的类型如下
int i=8,k,a,b;
unsigned long w=5;
double x=1.42,y=5.2;
则以下符合C语言语法的表达式是( )
A.a+=a-=(b=4)*(a=3) B.a=a*3+2 C.x%(-3) D.y=float(i)
【参考答案】A
25.下列程序的输出结果是( )
main()
{
int a=2;a%=4-1;
printf(″%d″,a);a+=a*=a-=a*=3;
printf(″\n%d″,a);
}
A.2,12 B.-1,12 C.1,0 D.2,0
【参考答案】D
26.以下不正确的if语句形式是( )
A.if(x>y&&x!=y);
B.if(x==y)x+=y;
C.if(x!=y)scanf(″%d″,&x)else scanf(″%d″,&y);
D.if(x
【参考答案】C
27.对于下面的程序,说法正确的是( )
main()
{
int x=3,y=4,z=2;
if(x=y+z)printf(″x=y+z″);
else printf(″x!=y+z″);
}
A.不能通过编译 B.输出6 C.输出x!=y+z D.输出x=y+z
【参考答案】D
28.标准库函数fgets(buf,n,fp)的功能是( )
A.从fp所指向的文件中读取长度为n的字符串存入缓冲区buf
B.从fp所指向的文件中读取长度不超过n-1的字符串存入缓冲区buf
C.从fp所指向的文件中读取n个字符串存入缓冲区buf
D.从fp所指向的文件中读取长度为n-1的字符串存入缓冲区buf
【参考答案】D
29.下面程序的输出是( )
int b=3;
fun(int *k)
{
int b=2;
b=*(k++)*b;
return(b);
}
main()
{
int a[]={11,12,13,14,15,16};
b=fun(&a[1])*b;
printf(″%d\n″,b);
}
A.24 B.72 C.11 D.33
【参考答案】B
30.以下能对二维数组a进行正确初始化的语句是( )
A.int a[2][ ]={{1,0,1},{5,2,3}}; B.int a[ ][3]={{1,2,3},{4,5,6}};
C.int a[2][4]={{1,2,3},{4,5},{6}}; D.int a[ ][ ]={{1,0,1}{},{1,1}};
【参考答案】B
31.与y=(x>0? 1:x<0? -1:0);的功能相同的if语句是( )
A.if(x>0)y=1; B.if(x)
else if(x<0)y=-1; if(x>0)y=1;
else y=0; else if(x<0)y=-1;
C. y=-1 D.y=0;
if(x) if(x>=0)
if(x>0)y=1; if(x>0)y=1;
else if(x==0)y=0; else y=-1;
else y=-1;
【参考答案】A
32.下列程序段的输出结果是( )
void fun(int *x,int *y)
{ printf(″%d%d″,*x,*y);*x=3;*y=4;}
main()
{
int x=1,y=2;
fun(&y,&x);
printf(″%d%d″,x,y);
}
A.2 1 4 3 B.1 2 1 2 C.1 2 3 4 D.2 1 1 2
【参考答案】A