特意为大家整理的09年4月全国计算机等级二级C语言考前练习,希望对大家的备考有好的帮助!
1.以下程序的输出结果是()
#include
main ()
{int a,b,d=241;
a=d/100%9
b=(-1)&&(+1);
printf("%d,%d,a,d"); }
A)6,1
B)2,1
C)6,0
D)2,0
2.关于if后一对圆括号中的表达式,以下叙述中正确的是()
A)只能用逻辑表达式
B)只能用关系表达式
C)既可用逻辑表达式也可用关系表达式
D)可用任意表达式
3.有以下程序
main()
{ int a,b;
for(a=1,b=1;a<=100;a++)
{if(b>=20)break;
if(b%3==1)
{b+=3;
continue;}
b-=5;
}
printf("%d\n",a);
}
程序运行后的输出结果是()
A)7
B)8
C)9
D)10
4.C语言中()
A)不能使用do-while语句构成的循环
B)do-while语句构成的循环必须用break语句才能退出
C)do-while语句构成的循环,当while语句中的表达式值为非零时结束循环
D)do-while语句构成的循环,当while语句中的表达式值为零时结束循环
5.当a=1、b=3、c=5、d=4时,执行下面一段程序:
if(a if(c else
if(a if(b elsex=3;
elesx=6;
elsex=7;
程序执行后,x的值为()
A)1
B)2
C)3
D)6
6.若x、y、z、m均为int型变量,则执行下面语句后m的值是()
m=1;x=2;y=3;
m= (m m= (m m= (m A)1
B)2
C)3
D)4
7.设有如下的函数
funct(x)
float x;
{ x*=x;printf("\n%d",x);return(x);}
则函数的类型()
A)与参数x的类型相同
B)void
C)int
D)无法确定
8.在C语言中,不适用于局部变量的存储类说明符是()
A)auto
B)register
C)static
D)extern
9.有以下程序
intf(intn)
{if(n==1)return1;
elsereturnf(n-1)+1;
}
main()
{inti,j=0;
for(i=1;i<5;i++)j+=f(i);
printf("%d\n",j);
}
程序运行后的输出结果是()
A)15
B)10
C)6
D)3
10.有以下程序
intb=2;
int func(int*a)
{b+=*a;return(b);}
main()
{inta=2,res=2;
res+=func(&a);
printf("%d\n",res);
}
程序运行后的输出结果是()
A)4
B)6
C)8
D)10
答案:1.B 2.D 3.B 4.D 5.B 6.A 7.C 8.D 9.B 10.B
11.下面叙述正确的是()
A)define和auto都不能定义为用户标识符
B)可以把define和auto定义为用户标识符
C)可以把define定义为用户标识符,但auto是C语言的关键字
D)可以把auto定义为用户标识符,但define是C语言的关键字
12.以下的for循环()
for(x=0,y=0;(y!=123)&&(x<4);x++)
A)是无限循环
B)循环次数不定
C)执行4次
D)执行3次
13.下述对C语言字符数组的描述中错误的是()
A)字符数组可以存放字符串
B)字符数组中的字符串可以整体输入、输出
C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值
D)不可以用关系运算符对字符数组中的字符串进行比较
14.设有定义:int a,*p=&a,**pp=&p;,则与a=100;等价的语句为()
A)**p=100;
B)**pp=100;
C)&*p=100;
D)*pp=10;
15.有以下程序
int x=3;
do {printf("%d",x-=2);}while(!(--x));
程序运行后的输出结果是()
A)1
B)30
C)1-2
D)死循环
16.执行下面程序的正确结果是()
main()
{ float a=1.9;
switch(a)
{ case 0∶printf("0000");
case 1∶printf("1111");
case 2∶printf("3333");
}
printf("%f",a);
}
A)1.900000
B)111133331.900000
C)33331.900000
D)00001111233331.900000
17.对下述程序,正确的判断是()
main ()
{ int a, b;
scanf("%d,%d",&a,&b);
if(a>b)a=b;b=a;
else a++;b++;
printf("%d,%d",a,b);}
A)有语法错误不能通过编译
B)若输入4,5则输出5,6
C)若输入5,4则输出4,5
D)若输入5,4则输出5,5
18.若有如下程序:
sub(int n)
{intt;
if(n==1)returnt=5;
else t=sub(n-1)+3;
returnt;}
main()
{printf("%d\n",sub(5));}
则程序运行后的输出结果是()
A)17
B)18
C)19
D)20
19.下面各被调用函数首部书写正确的是()
A)void sub(float x;float y);
B)void sub(float x,y)
C)void sub(float x,float y)
D)void sub(float x,float y);
20.设有如下程序:
#include"string.h"
main()
{static char s1[20],s2[20];
scanf("%s",s1);scanf("%s",s2);
if(strcmp(s1,s2))printf("@");
elseprintf("$");
printf("%d\n",strlen(strcat(s1,s2)));}
如果从键盘上输入name<回车>name1<回车>,则程序运行后的输出结果是()
A)$8
B)@10
C)$9
D)@9
答案:1.C 2.C 3.C 4.B 5.C 6.B 7.A 8.A 9.C 10.D
3COME考试频道为您精心整理,希望对您有所帮助,更多信息在http://www.reader8.net/exam/