(21)设有以下程序段
int x=0,s=0;
while(!x!=0)s+=++x;
printf("%d",s);
则
A)运行程序段后输出0
B)运行程序段后输出1
C)程序段中的控制表达式是非法的
D)程序段执行无限次
正确答案: B
(22)有如下程序
main()
{ float x=2.0,y;
if(x<0.0)y=0.0;
else if(x>10.0)y=1.0/x;
else y=1.0;
printf("%f\n",y);}
该程序的输出结果是
A)0.000000
B)0.250000
C)0.500000
D)1.000000
正确答案: D
(23)执行下面的程序段后,变量k中的值为
int k=3, s[2];
s[0]=k; k=s[1]*10;
A)不定值
B)33
C)30
D)10
正确答案: A
(24)以下程序段的描述,正确的是
x=-1;
do
{x=x*x;}
while(!x);
A)是死循环
B)循环执行两次
C)循环执行一次
D)有语法错误
正确答案: C
(25)以下选项错误的是
A)main()
{ int x,y,z;
x=0;y=x-1;
z=x+y;}
B)main()
{ int x,y,z;
x=0,y=x+1;
z=x+y;}
C)main()
{ int x;int
int y;
x=0,y=x+1;
z=x+y;}
D)main()
{ int x,y,z;
x=0;y=x+1;
z=x+y,}
正确答案: D
(26)有如下程序段
int a=14,b=15,x;
char c=′A′;
x=(a&&b)&&(c<′B′);
执行该程序段后,x的值为
A)ture
B)false
C)0
D)1
正确答案: D
(27)下列程序执行后的输出结果是
void func1(int i);
void func2(int i);
char st[]="hello,friend!";
void func1(int i)
{ printf("%c",st[i]);
if(i<3){i+=2;func2(i);}}
void func2(int i)
{ printf("%c",st[i]);
if(i<3){i+=2;func1(i);}}
main()
{ int i=0; func1(i); printf("\n");}
A)hello
B)hel
C)hlo
D)hlm
正确答案: C
(28)以下函数返回a所指数组中最大值所在的下标值
fun(int *a,int n)
{ int i,j=0,p;
p=j;
for(i=j;i<n;i++)
if(a[i]>a[p])_________;
return(p);}
在下划线处应填入的内容是
A)i=p
B)a[p]=a[i]
C)p=j
D)p=I
正确答案: D
(29)下面说明不正确的是
A)char a[10]="china";
B)char a[10],*p=a;p="china"
C)char *a;a="china";
D)char a[10],*p;p=a="china"
正确答案: D
(30)以下程序的输出结果是
#include <stdio.h>
void prt (int *x, int *y, int *z)
{printf("%d,%d,%d\n",++*x,++*y,*(z++));}
main()
{int a=10,b=40,c=20;
prt (&a,&b,&c);
prt (&a,&b,&c);}
A)11,42, 31
12,22,41
B)11,41,20
12,42,20
C)11,21,40
11,21,21
D)11,41,21
12,42,22
正确答案: B
(31)若有函数内部说明:int a[3][4];则数组a中各元素
A)可在程序的运行阶段得到初值0
B)可在程序的编译阶段得到初值0
C)不能得到确定的初值
D)可在程序的编译或运行阶段得到初值0
正确答案: C