background image

二级 语言考试

一、选择题(本题共 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