浙江大学2007–2008学年夏季学期C程期末试卷 下载本文

内容发布更新时间 : 2024/5/20 0:49:08星期一 下面是文章的全部内容请认真阅读。

浙江大学2007–2008学年夏季学期

《 C程序设计基础与实验》课程期末考试试卷

开课学院: 计算机学院 ,考试形式:闭卷,允许带 / 入场 考试时间:2008年6月26日上午10:30-12:30, 所需时间:120分钟 任课教师:______________

考生姓名: _____学号: ______专业:_______________

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

一、单选题(每题1分,共10分)

1. 假定以下表达式中所有变量均已定义为int类型并已赋值,请问其中哪个 表达式没有语法错误? A. x = 3.14%2; B. y = 2a+b; C. m = a

2. 表达式 'A'+'B' 的类型为: A. char B. int C. double D. void

3. 执行以下这段程序后, unsigned char a=0; int b=1; do {

b++; a--;

} while(a!=0); 变量b的值等于多少? A. 0 B. 1 C. 128 D. 257

4. 如果一个函数的返回值类型为void,则以下哪个说法是正确的? A. 该函数中不可以用return语句

B. 该函数中可以用return语句,但必须是最后一个语句

C. 该函数中可以用return语句,但return后面不能跟任何表达式 D. 该函数可以返回一个任意类型的值,也可以没有返回值

第1 页,共12页

5. 执行以下程序后, char a[]=\ int n; n = sizeof(a); 变量n的值等于多少? A. 10 B. 14 C. 9 D. 17

6. 用scanf()输入一个double类型的变量的值,则输入格式要用 A. \ B. \

C. \或\ D. \

7. 假定有以下变量定义语句, float * p,q; 请问哪个说法是正确的?

A. p和q的类型均为(float *)

B. p的类型为(float *),q的类型为float C. p的类型为float,q的类型为(float *) D. 此变量定义语句有语法错误

8. 执行以下程序后, char a = '0'; printf(\ 将输出什么结果? A. 30 B. 0x30 C. 0X30

9. 假定有如下定义, struct st {

char name[10]; int score;

} a[3], *p=a; 请问哪个用法是正确的? A. p->name=\ B. *p.name[0]='B'; C. (*p)->name[0]='C'; D. *(*p).name='D'; 10. 执行以下语句后,

int n = strcmp(\ 则以下关于n值的描述哪一个是正确的? A. n=0 B. n=1 C. n>1 D. n<0

第2 页,共12页

D. 0

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

1. 执行以下代码后,将输出______________。 #define FOR while(x--); int x=3, y=0; FOR {

y++; } printf(\

2. 执行以下代码后,将输出______________。 int a=2, b=5, c=8;

c |= (~a && b) ^ !(a & b); printf(\

3. 执行以下代码后,变量d的值=__________。 int a=-10, b=0, c=20, d;

d = a > b ? -3.14 : b > c ? 2.68 : 4.99;

4. 执行以下代码后,变量x的值=__________。 int a=3, b=4, c=3, x; x = a != (b = c);

5. 执行以下代码后,将输出_______________。 char t[]=\

int a[]={5,1,2,3,4,0,2,4,5}, i=0, go; do {

putchar( t[go=a[i++]] ); } while(go);

6. 若定义unsigned long int a;且变量a已赋值,试写出判断a的二进制最高位即最左边那位与1相等的表达式(要求不调用任何函数)________。

7. 执行以下代码后,将输出_______________。

long int a[5]={10, 20, 30, 40, 50}; long int *p = a+1; long int *q = &a[3]; printf(\

8. 执行以下代码后,变量max的值=_________。 int x=3, y=2, z=1, max; if(x>=y && x>=z) max = x;

if(y>=x && y>=z) max = y; else

max = z;

第3 页,共12页