C语言02 - 08年春夏学期考试试卷及答案汇总

发布时间 : 星期六 文章C语言02 - 08年春夏学期考试试卷及答案汇总更新完毕开始阅读

2008试卷答案 一.单项选择题(每题1分,共10分)

1.C 2.B 3.D 4.C 5.A 6.B 7.B 8.A 9.D 10.C

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

1. x=-1,y=1? 2. c=8 3. 4 4. 0 5. TUGWEB

6. (a>>31)==1或a&(1<<31)或~a

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

1. ONALAMB 2. sum=47

3. a=98,b=11,c=32766 4. 19 5. 1 1 1 1 2 1 1 3 3 1

6. 9 10 11 12 13 8 21 22 23 14 7 20 25 24 15 6 19 18 17 16 5 4 3 2 1

四、程序(段)填空题(每空2分,共40分) (1) j=i+1 (2) break (3) j<=n-1或j!=n (4) i==n-1或i>=n-1或i>n-2 (5) a[n]='\\0'

(6) unsigned int x,char a[]或unsigned int x,char *a (8) n+1 (9) fp1==NULL||fp2==NULL

(10) !feof(fp1) (11) fscanf(fp1,\(12)strcpy(max.name,a.name) (13) n=strlen(s) (14) j=n-1;j>=1;j-- (15) s[0]=c (16) rotate(a,3)

(17) a[i]='\\0'

(18) a[i+n]!=' '&&a[i+n]!='\\0' (19) a[i+n-1-j] (20) i+=n

(7) t[x] 2006~2007学年“C程序设计基础”试卷

考试时间: 2007年7月8日上午8:00-10:00

姓名___________________ 学号___________________ 成绩____________________

一.单项选择题(每题1分,共10分)

2. 已知int i=1,j;char a=?a?;执行j=!a&&i++后,i和j的值分别是______。

A. i=1,j=1 B. i=2,j=1 2. 关于语句return,下列正确说法是,______。 A.可以在同一函数中出现多次

C. i=1,j=0

D. i=2,j=0

B.必须在每个函数中出现

C.只能在除主函数之外的函数中出现一次 D.在主函数中不能出现 3. 循环for(i=1,j=6;++i!=j--;)s=i+j;将执行是______。 A.2次 B.3次 C.4次 4. 字符串\的长度是_____________.

A.8. B.7 C.6

D.5次 D.5

5. a,b为整型变量,二者均不为0,以下关系表达式中恒成立的是_______。 A.a*b/a*b==1; B.a/b*a/b==1; C.a/b*b+a%b==a; D.a/b*b==a; 6. 在C语言中,如果下面变量都是int类型,则输出的结果是_____。 sum=pad=5;pAd=sum++,pAd++,+pAd;printf(\A.7 B.6 C.5

D.4

7. 以下关于switch语句和break语句的描述中,只有_______是正确的。 A.在switch语句中必须使用break语句

B.break语句只能用于switch语句

C.在switch语句中可以根据需要使用或不使用break语句 D.break语句是switch语句的一部分

8. 以下对二维数组a进行正确初始化的是___________。

A.int a[2][3]={{1,2},{3,4},{5,6}}; B.int a[][3]={1,2,3,4,5,6}; C.int a[2][]={1,2,3,4,5,6}; D.int a[2][]={{1,2,3},{4,5,6}};

9.

int a,要使((1<<2>>1)|a)==a;则可以是____________.A.2 B.6 C.10 D.2,6,10均可 10. 若以下说明,int a[4][10],*p,*q[4];且0

A.p=a;

B.q[i]=a[i];

C.p=a[i];

D.q[i]=&a[2][0];

对于

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

1.设x,y,z均为int型变量,请写出x,y和z中有两个为负数的关系表达式。( ) 2.将26个英文字母按aAbBcCdD…….zZ先小写后大写的顺序依次打印出来。 #include main()

{int i;char ch;ch='a';

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

printf(\ , ); }

3.下列程序的输出结果是( )。 #define N 2

#define M N+2

#define CUBE(a,b) a*b+a/b

#include void main() { int i=m;

printf(\ }

4.下列程序的输出结果是( )。 char s[20]=\ sp=sp+2; sp=\ puts(s);

5.下列程序的输出结果是( )。 #include int sum(int k); main()

{ int s,i;

for(i=1;i<=10;i++) s=sum(i);

printf(\ }

int sum(int k) { static int x=0; return x+=k; }

6. 执行该程序段后,i的值是( )。

int i; int f(int x)

{ return((x>0)?f(x-1)+f(x-2)+2:1); }

i=f(3);

7. 下列程序的输出结果是( )。 void maon()

{ char s1[20]=\

if(strcmp(s1,s2)) printf(\else printf(\ }

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

{ static int a[]={2,4,6,8,10};

static *ptr[]={&a[0],&a[1],&a[2],&a[3],&a[4]}; int **p,j;

for(i=0;i<5;i++) a[i]=a[i]/2+a[i]; p=ptr;

printf(\

printf(\

9. 若有以下的定义和语句,则表达式*++p->b的值是( )。

struct wc{ int a;int *b;}p;int x0[]={11,12},x1[]={31,32}; static struct wc x[2]={100,x0,300,x1};p=x; 10, 用typedef 定义一个字符型指针STRING。

三、程序阅读题(共30分) 2. 下列程序的输出结果。(3分)

# include void main( ) { int a=2,b=7,c=5; switch(a>0){ case 1:

switch(b>0){

case 1:printf(\

case 2: printf(\}

case 0:

switch(c==5){

case 0:printf(\ case 1:printf(\ case 2: printf(\}

default: printf(\}

printf(“\\n”); }

3. 下列程序的输出结果。(4分)

# include static int x=5; void f1(); void f2(); void main()

{ int x=3;

pintf(“1.x=%d\\n”,x); f1(); f2();

pintf(“4.x=%d\\n”,x); }

void f1()

{ x+=1;

pintf(“2.x=%d\\n”,x); }

void f2() { int x=1;

联系合同范文客服:xxxxx#qq.com(#替换为@)