当前位置:首页 > 浙江大学C语言01-02春季学期
浙江大学“程序设计基础-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 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
{ return str=\ }
void main( )
{ char *str=\
printf(\}
13. 13. 下列程序的输出结果是_____。 #include
{ ++ *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 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( ⑸ ) ⑹ }
共分享92篇相关文档