浙江大学C语言01-02春季学期 联系客服

发布时间 : 星期三 文章浙江大学C语言01-02春季学期更新完毕开始阅读775203c5d5bbfd0a7956739e

浙江大学“程序设计基础-C”试题卷

2001-2002学年春季学期

考试时间: 2002年6月30日下午2:00-4:00

注意:答题内容必须写在答题卷上,写在本试题卷上无效

一.单项选择题(每题2分,共20分)

1. 1. C 语言程序的三种基本结构是顺序结构、选择结构和______结构。

A.递归 B.转移 C.循环 D.嵌套 2. 2. 下列运算符中,优先级最高的是_____。

A.-> B.++ C.&& D.= 3. 3. 表达式 !(x>0&&y>0) 等价于_____。

A.!(x>0)||!(y>0) B.!x>0||!y>0 C.!x>0&&!y>0 D.!(x>0)&&!(y>0) 4. 4. 表达式 sizeof(\的值是______。

A.8 B.9 C.10 D.11 5. 5. 以下选项中不正确的实型常量是_____。

A.0.23E B.2.3e-1 C.1E3.2 D.2.3e0 6. 6. 表达式______的值不是1。

A.0?0:1 B.5%4 C.!EOF D.!NULL 7. 7. 数组定义为 int a[11][11],则数组a 有_____个数组元素。

A.12 B.144 C. 100 D. 121 8. 8. 对于以下的变量定义,表达式______是不正确的。 struct node { int j, k; } x, *p=&x;

A.p->k=2 B.(*p).k=2 C.x.k=2 D.x->k=2 9. 9. 不正确的赋值或赋初值的方式是______。

A.char str[ ]=\B.char str[10]; str=\ C.char *p=\D.char *p; p=\

10. 10. 设程序中不再定义新的变量,写出在函数main中可以使用的所有变量______。 #include int z;

int p(int x) { static int y; return(x+y); }

void main( ) { int a,b;

printf(\ …… }

A.a, b B.a,b,z C. a,b,y,z D.a,b,x,y,z

二、填空题(每题2分,共30分)

1. 1. 设字符型变量ch的值是小写英文字母,将它转换为相应大写字母的表达式是______。

2. 2. 表达式 1<0<5 的值是______。

3. 3. 表达式 ~(10>>1^ ~5) 的值是______。 4. 4. 下列程序段的输出结果是______。

int a=1;

long b=a*0x12345678; printf(\

5. 5. 设变量已正确定义,在程序段B中填入正确的内容,使程序段A和程序段B等价。

程序段A

for(k=s=0; k<=10; s+=a[k++]) if (a[k]<0) break; 程序段B

for(k=0, s=0; ; s+=a[k++]) if (______) break;

6. 6. 下列程序段的输出结果是_____。 #define T 10 #define MD 3*T printf(\

7. 7. 下列程序段的输出结果是_____。

int k, s; for(k=s=0; k<10&&s<=10; s+=k) k++;

printf(\

8. 8. 下列程序的输出结果是_____。

# include

int f(int m)

{ static int k=2; k++;

return k+m;

}

void main( ) { int s; s=f(2);

printf(\}

9. 9. 对于以下递归函数f,调用 f (3) 的返回值是_____。

f (int n)

{ return ((n<=0) ? n: f(n-1)+f(n-2)); }

10. 10. 下列程序段的输出结果是_____。

int c[ ]={10, 0, -10}; int *k=c+2;

printf(\

11. 11. 下列程序段的输出结果是_____。

int k=1, j=2, *p=&k, *q=p; p=&j;

printf(\

12. 12. 下列程序的输出结果是_____。

# include char * f(char *str)

{ return str=\ }

void main( )

{ char *str=\

printf(\}

13. 13. 下列程序的输出结果是_____。 #include void p(int *x,int y)

{ ++ *x; y --; }

void main()

{ int x=0, y=3; p(&x, y);

printf(\ }

14. 14. 下列程序的输出结果是_____。 # include \ void main( )

{ int j, k, a[2][2]; for(k=1; k<3; k++) for(j=1; j<3; j++)

a[k-1][j-1]=(k/j)*(j/k); for(k=0; k<2; k++) for(j=0; j<2; j++)

printf(\ }

15. 15. 用typedef定义一个指向函数的指针类型FP,该函数的返回值为整型。

三、程序阅读题(每题5分,共15分)

1. 1. 输入c2470f ?<回车>后,下列程序的输出结果是_______,该程序的主要功能是

_______。

# include \ int main( ) { char ch;

long number=0;

while((ch=getchar())<'0'||ch>'6') ;

while(ch!='?'&&ch>='0'&&ch<='6'){ number=number*7+ch-'0'; printf(\ ch=getchar(); } }

2.输入4<回车>后,下列程序的输出结果是_______。

# include \int main( ) { int j,k,n; float f,s;

scanf(\ s=0; f=1;

for(k=1;k<=n;k++){ for(j=1;j

3.输入55 92 63 69 -1<回车>后,下列程序的输出结果是_______。

#include #include struct link { int mark; struct link * next; };

void f(struct link **); main( )

{ struct link * head, *p;

head=(struct link *)malloc(sizeof(struct link)); head->mark = 0; head->next=NULL; f(&head);

for (p=head; p!=NULL; p=p->next) printf(\}

void f(struct link ** head) { int mark; struct link *p; scanf(\ if ( mark<=0){

(*head)->mark++; return ; } else{

p=(struct link *)malloc(sizeof(struct link)); p->mark = mark; p->next = *head; *head = p; f(head); } }

四、程序填空题(每空2分,共20分)

1. 1. 输入10个浮点数,调用函数f(x)计算并输出相应的函数值。 f(x)的功能是计算分段函数:

x2+2x+1 x<0 y= 0 x=0 3 x>0 #include

{ if (x<0) ⑵ ; else ⑶ ; else return 3; }

void main( ) { int k; float x;

for(k=1; k<=10; k++){ scanf(\

printf(\ } }

2. 2. 函数sort 使用冒泡法将一维整型数组中各元素按值从大到小排序。 void sort( int a[ ], int n) { int k, j, t;

for(k=1; k

for( ⑷ ; j < n-k; j++)

if( ⑸ ) ⑹ }