c程序2007级试卷

更新时间:2024-04-24 04:05:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

浙江大学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 页,共10页

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 页,共10页

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 页,共10页

9. 执行以下代码后,将输出________________。

char a[][5]={\ printf(\ 10. 若定义函数时省略该函数的返回值类型,则它的实际返回值类型是____。

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

1. 以下程序的输出结果是_________________。 #include #include typedef char (*AP)[5]; AP defy(char *p) {

int i;

for(i=0; i<3; i++)

p[strlen(p)] = 'A'; return (AP)p + 1; }

void main() {

char a[]=\?SEAL\\?LION\\?LAMB\ puts( defy(a)[1]+2 ); }

2. 以下程序的输出结果是_________________。 #include void main() {

int i, j, sum=0; for(i=1; i<=3; i++) {

if(i==2)

continue;

for(j=1; j<=6; j++) {

sum += j; if(sum >= 6) break; }

sum += i*10; }

printf(\ }

3. 以下程序的输出结果是___________________。 #include int g=96;

void gf(void) { g++; }

第4 页,共10页

int df(void) {

int g=10; g++;

return g; }

int * sf(void) {

static int g=20; g++;

return &g; }

void main() {

int a, b, c, *p; gf(); gf(); a=g; b=df(); b=df();

p=sf(); *p=32765; p=sf(); c=*p;

printf(\ }

4. 假定运行以下程序时输入 3+4*5-3/2=

则程序的输出结果是___________________。 #include int calc(void) { int x; char p;

scanf(\ if(p == '=') return x; switch(p) {

case '+': return x + calc(); case '-': return x - calc(); case '*': return x * calc(); case '/': return x / calc(); } }

void main() {

printf(\ }

5. 以下程序的输出结果是___________________。

注意:本题输出结果中的空格请用 标出,一个空格用一个 代替。 #include #define N 4 void main() {

第5 页,共10页

本文来源:https://www.bwwdw.com/article/5hrp.html

Top