A1卷 第 PAGE 1 页
一九九九学年<>试卷
考试时间: 1999.6.29
A1卷
注: 请将正确答案写在答卷纸上
一.从下列四个供选择的答案中选出一个正确的答案(共20分,每题2分)
1.下列运算符中自右向左结合的是:
A) * B) = = C) -> D) ++
2.下列赋值语句中正确的是:
int a[3] = { 1, 2, 3 }, *p;
A) p=&a; B) *p=a; C) *(a+1)=a; D) p=a+1;
3.如下程序段:
int c[]={1, 2, 3};
int *k;
k=c;
printf("next k is %d",*++k);
其输出应为:
A) 1 B) 2 C) 3 D) 以上均不对
4.执行 i=0; if(i>2) if ( i<3 ) i=1; else i=2; i=3; 后i的值应为:
A) 1 B) 2 C) 3 D) 语句错误
5.对于以下结构定义:
struct {
int len;
char *str;
} *p;
++p->str中的++加在
A) 指针str上 B) 指针p上 C) str所指的内容上 D) 以上均不是
6.下列程序段的输出结果是:
char *c[3]={“FIRST”, “SECOND”, “THIRD”};
printf(“%s”, c+1);
A) SECOND B) E C) ECOND D) 语法有错
7.对于以下递归函数f, 调用f(4),其返回值为:
int f(int n)
{
if (n <= 0) return 1;
return f(n-1)+(n++);
}
A) 10 B) 11 C) 15 D) 以上均不是
8.循环 for(i=1,j=6; ++i!=--j; ) s=i+j; 将执行
A) 2次 B) 3次 C) 4次 D) 以上均不是
9.下列语句执行后n的值为:
n=(4 > 4 - !2) && (2 > 1) || (2 & 6);
A) 0 B) 1 C) 6 D) 以上均不对
10.执行完下列语句段后, i值为:
int i;
int f(int n)
{ static int m = 1;
n+=m++;
return n;
}
n=f(1);
n=f(2);
3 B) 4 C) 5 D) 以上均不是
二、在下列空栏中填入正确的内容 (共30分,每空2分)
1.运行下列程序段后,n的值是:_________
int n;
n = 7 & 3;
switch (n) {
case 1: n=1; break;
case 2: n=2; break;
case 3: n=3; break;
default: n=4; break;
}
2.下列程序段的输出结果是:_______________
int i=010, j=10;
printf("i=%d, j=%%\n",i,j);
3.如下函数
void f(char *s, char *t)
{ int i;
i=0;
while (s[i]=t[i]) i++;
}
等价于:
void f(char *s, char *t)
{while (_______ = *t++);
}
4.下列程序段的输出结果是:_______________
int a=0,b=0;
if(++a>0 && ++b>0)
++a;
printf("a=%d,b=%d",a,b);
5.下列程序段执行后,i 和j的值分别是 ________________
int i=6, j=0;
while(i--, i!=1){j += --i;};
6.下列程序段执行后,x 和y的值分别是 ________________
int x=5,y=1;
do {(x>y) ? (x-=1,y+=3) : (x+=4,y-=2);
}while (x+y<15);
7.用下列for循环将小写字母逆序输出(即从z到a), 其语句应为:
for (i=0; i<26;