(14)设变量已正确定义并赋值,以下正确的表达式是
A)x=y*5=x+z B)int(15.8%5) C)x=y+z+5,++y D)x=25%5.0
(15)若变量已正确定义并赋值,以下符合C语言语法的表达式是
A)a:=b+1 B)a=b=c+2 C)int 18.5%3 D)a=a+7=c+b
(16)以下程序的运行结果是
int k=0;
void fun(int m)
{m+=k;k+=m;printf("m=%d k=%d ",m,k++);}
main()
{int i=4;
fun(i++); printf("i=%d k=%d\n",i,k);
}
A)m=4 k=5 i=5 k=5 B)m=4 k=4 i=5 k=5 C)m=4 k=4 i=4 k=5 D)m=4 k=5 i=4 k=5
(17)已有定义:char c;,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是
A)isupper(c) B)′A′<=c<=′Z′ C)′A′<=c&&c<=′Z′ D)c<=(′z′-32)&&(′a′-32)<=c
(18)设有:
int a=1,b=2,c=3,d=4,m=2,n=2;
执行 (m=a>b)&&(n=c>d)后,n的值是
A)1 B)2 C)3 D)4
(19)若变量已正确定义,有以下程序段
int a=3,b=5,c=7;
if(a>b) a=b; c=a;
if(c!=a) c=b;
printf("%d,%d,%d\n",a,b,c);
其输出结果是
A)程序段有语法错 B)3,5,3 C)3,5,5 D)3,5,7
(20)若有定义:float x=1.5;int a=1,b=3,c=2;,则正确的switch语句是
A)switch(x)
{case 1.0:printf("*\n");
case 2.0:printf("**\n");}
B)switch((int)x);
{case 1:printf("*\n");
case 2:printf("**\n");}
C)switch(a+b)
{case 1:printf("*\n");
case 2+1:printf("**\n");}
D)switch(a+b)
{case1:printf(**\n);}
casec:printf(**\n);}
(21)有以下程序
#include
main0
{ int y=9;
for( ; y>0;y--)
if(y%3==0) printf("%d",--y);
}
程序的运行结果是
A)741 B)963 C)852 D)875421
(22)以下描述中正确的是
A)由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
C)在do-while循环体中,是先执行一次循环,再进行判断 D)do-while循环中,根据情况可以省略while
(23)有以下程序
#include
main()
{ int a[ ]={1,2,3,4},y,*p=&a[3];
--p; y=*p;printf("y=%d\n",y);
}
程序的运行结果是
A)y=0 B)y=1 C)y=2 D)y=3
(24)以下数组定义中错误的是
A)int x[][3]={0}; B)int x[2][3]={{l,2},{3,4},{5,6}}; C)int x[][3]={{l,2,3},{4,5,6}}; D)int x[2][3]={l,2,3,4,5,6};
(25)下面说明不正确的是
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"
(26)若有定义:int a[2][3];,以下选项中对a数组元素正确引用的是
A)a[2][!1] B)a[2][3] C)a[0][3] D)a[1>2][!1]