华东理工大学c语言
华东理工大学
2009 - 2010 学年 第 1 学期 c程序设计 试卷( )
题号一二三四五六七八九总 分得分一、选择题(本题共20道小题,共40分。)
1. 有下列程序
#include
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)100765.12 B)i=100,f=765.12
C)100765.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()
{
int i,k,a[10],p[3]:
K=5;
for (i=0;i<10;i++) a[i]=i;
for (i=0;i<3;i++) p[i]=a[i*(i+1)];
for (i=0;i<3;i++) k=p[i]*2;
printf("%d\n",k);
}
A)20 B)21 C)22 D)23
6. 若有以下说明:
int w[3][4]o={{0,1},{2,4},{5,8}};
int(*p)[4]=w;
则数值为4的表达式是
A) *w[1]+1 B) p++,*(p+1)
C) w[2][2] D) p[1][1]
7. 若k是int型变量,且有下面的程序片段:
k=-3
if(k<=0) printf("####")
else printf("&&&&");
上面程序片段的输出结果是
A) #### B) &&&& C) ####&&&& D) 有语法错误,无输出结果
8. 以下程序运行后,输出结果是
main( )
{
int y=18,i=0,j,a[8];
do
{
a[i]=y%2;i++;
y=y\2;
} while(y>1=1);
for(j=i-1;j>=0;j--)
printf("%d",a[j]);
printf("\n")
}
A)10000 B)10010 C)00110 D)10100
9. 以下叙述中不正确的是
A)在不同的函数中可以使用相同名字的变量
B)函数中的形式参数是局部变量
C)在一个函数内定义的变量只在本函数范围内有效
D)在一个函数内的复合语句中定义的变量
10. 请读程序:
#include
func( int a, int b)
{ int c;
c=a+b;
return c;
}
main()
{ int x=6, y=7, z=8, r;
r=func( x--,y==,x+y),z--);
printf("%d\n",r);
}
上面程序的输出结果是
A) 11 B) 20 C) 21 D) 31
11. 以下程序的输出结果是
# include
main()
{ int a=2,c=5;
printf("a=%%d,b=%%d\n",a,c); }
A) a=%2,b=%5 B) a=2,b=5 C) a=%%d,b=%%d D) a=%d,b=%d
12. 设a