二级 C 语言考试
一、选择题(本题共 20 道小题,共 40 分。)
1. 有下列程序
#include <stdio.h>
main()
{
union
{
int k;
char i[2];
}*s,a;
s=&a;
s->i[0]=0x39;s->i[1]=0x38;
printf("%x\n",s->k);
}
输出结果是
A)3839 B)3938 C)380039 D)390038
2. 设 i 是 int 型变量,f 是 float 型变量,用下面的语句给这两个变量输入值:
scanf("i=%d,f=%f",&i,&f);
为了把 100 和 765.12 分别赋给 i 和 f,则正确的输入为
A)100<空格>765.12<回车> B)i=100,f=765.12<回车>
C)100<回车>765.12<回车> D)x=100<回车>,y=765.12<回车>
3. 设已有定义: char *st="how are you"; 下列程序段中正确的是
A) char a[11], *p; strcpy(p=a+1,&st[4]);
B) char a[11]; strcpy(++a, st);
C) char a[11]; strcpy(a, st);
D) char a[], *p; strcpy(p=&a[1],st+2);
4. 设 j 为 int 型变量,则下面 for 循环语句的执行结果是
for(j=10;j>3;j--)
{
if(j%3)j--;
--j;--j;
printf("%d",j);
}
A)6 3 B)7 4 C)6 2 D)7 3
5. 以下程序的输出结果是
main()
{
1