【20分求助】几个C语言问题求助!

来源:百度知道 编辑:UC知道 时间:2024/05/16 08:56:22
/* 第一题:【2007年4月考题】*/
#include "stdio.h"
main()
{int k=5,n=0;
do
{ switch(k)
{case 1: case 3:n+=1;k--;break;
default: n=0;k--;
case 2: case 4:n+=2;k--;break;
}
printf("%d",n);
}while(k>0 && n<5);

}

/* 第二题:【2007年4月考题】*/
#include "stdio.h"
main()
{ unsigned int x=0xFFFF;
printf("%u\n",x);
}

/* 第三题【2007年4月考题】*/
设变量x和y均已经正确定义并赋值。一下if语句中,在编译时将产生错误信息的是:
A)if(x++); B)if(x>y && y!=0); C)if(x>0) x-- else y++; D)if(y<0) { ;} else x++;

/* 第四题【2007年9月考题】*/
若在定义语句:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是:
A)scanf("%d",p); B)scanf("%d",&p);

/* 第五题【2007年4月考题】*/
已经定义char ch='$';int i=1,j;,执行j=!ch&&i++以后,i的值为( )。

/* 第六题【2007年4月考题】*/
以下中合法的一组C语言数值常量是:
A) 028 .5e-3 -0xf
B) 12.

1.
235
do
k[5]: //[]内为变量的值
default->n[0],k[4]
case 2->n[2],k[3],break;
print n[2]

n[2]>0 && n[2]<5

k[3]:
case 3->n[3],k[2],break;
print n[3]

n[3]>0 && n[3]<5

k[2]:
case 2->n[5],k[1],break;
print n[5]

n[5]>0 && n[5]<5

//end of while

最终打印:235

2.
65535
0xFFFF以十进制输出就是65535

3.
好像都对了耶...
// 上面说x++只是运算,不会返回布尔值.严重错误了,C里面,只要是一个表达式就一定有一个值,根本非0为真,0为假就可以进行判断.

4.
A
scanf后跟变量地址,&p为指针地址,说实在的没见过这么用的,用%p还可以理解....

5.
1
j=!ch&&i++
!ch==false,所以i++没有执行,为原值.

6.
A
0x表示是16进制
0开头表示8进制,这里出了个028,8是不可能出现在8进制数据里面的.

1:判断K的大小,K=5,所以n=0,K自减,K=4;然后再判断,K=4,n=n+2=2,k--=3,跳出循环。所以结果应该是第一行为0,第二行为2,共两行。

2:%u为输出10进制无符号整数,所以应该输出65535

3:选A,A的条件语句只是一个运算,并不会返回一个布尔值。

4:&符号为取地址符号,所以应该选B,p是一个指针变量,指向一个地址。

5:这条题目考