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

void main()

{ int m,n.i=0,j; int bb[16];

scanf(“%d”,&n);

m=_________(8)______; while(m>0) {bb[i]=m%2;

______________(9)__________; i++; }

printf(“%binary number is:”);

for (_______________(10)__________) printf(“%d”,bb[i]); }

五、编程题(10分) (略)

2005试卷答案 一.单项选择题(每题2分,共20分)

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

二、填空题(每题3分,共24分)

25. 24,24,c

26. sqrt(s*(s-a)*(s-b)*(s-c)) 27. 0.35 28. 1,4,8 29. 41

30. x=4,y=5,z=1

31. 3

32. 对形参y必须作类型说明

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

7. k=6,x=0 8. 8 5

8 7 5 8 7 5 2 8 7 6 5 2 9. \\n 54321 4. Happy

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

(1) flag*1./k (2) flag=-flag (3) FILE *fp; (4) c:\\\\tc\\\\k2.txt

(5) (ch=getchar()!=?@?(6) fp(fopen(“c:\\\\tc\\\\k2.txt”,”r”))==NULL (7) “%c”,ch (8) n<<3

(9) m/=2 (10) j=i-1;j>=0;j--

2003~2004学年“C程序设计基础”试卷

考试时间: 2004年6月25日上午8:30-10:30

姓名___________________ 学号___________________ 成绩____________________

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

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

A.递归

B.转移

C.循环 C.?: C.* C.?%d? C. x!=0

D.嵌套 D.& D.+ D.10 D.x!=1

2. 下列运算符中,优先级最高的是______。

A.+= B.[] 3. 运算符______不能做为单目运算符。 A./ B.& 4. 以下选项中不正确的字符常量是______。 A.?1? B.!?\\0? 5. 表达式x&&1等价于______。 A.x==0 B.x==1

15. 已知字符?a?的ASC码为97,执行下列语句的输出是_____。 printf(“%c%d”,?b?,?b?+1);

A.b99 A.全局变量

B.98c B.外部变量

C.9899 C.局部变量

D.bc D.内部变量 D.%f

7. 在C语言程序中,在函数内部定义的变量称为_______。

8. 执行语句printf(“_________”,”hello”); 将得到出错信息。

A.%u B.%s C.%x

9. 对于以下韵变量定义,表达式_______是不正确的。

Struct node{float x,y;}point,*p=&point; A.p->x=2.0 B.(*p).y=3.0 A.指针

B.数组

C.point.x=2.0 C.函数

D.*p->y=3.0 D.数组元素

10. 对于变量定义int **p[10], p是一个_______。 二、填空题(每题2分,共20分)

1.写出计算s(s-a)(s-b)(s-c)的C语言表达式__________。

2.如果运算符*和/都是右结合的,则表达式7·2/3的值是____________。 3.表达式!!10的值是_______________________。

4.表达式~(~1<<1) 的值是______________________。 5.下列程序段的输出结果是_______________________。

#define MM(x,y) (x)+(y) printf(“%d”,MM(2*3,15)*2);

6. 对于变量定义:int a[10],*p=a+3;数组a的最后一个元素是p [___]。 7. 下列程序的输出结果是_____________。 int k=1,j=2;

int *p=&k,*q=&j; (*p)++; k=j;(*p)++; printf(“%d,%d”,k,j);

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

char *st[]={“ONE”,”TWO”,”FOUR”,”K”};

printf(“%s,%c\\n”,*(st+1)+1,*(*(st+2)+2)-1);

9.下列程序的输出结果是_______________。 #include

void p(int *x,int *y)

{int *p; p=x;x=y;y=p; }

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

printf(“%d %d”,x,y);

}

10. 用typedef定义一个整型指针类型PA _____________。

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

11. 输入2 59 60<回车>后,下列程序的输出结果是_________。

# include void main( ) { int ri,repeat; int mark;

scanf(“%d”,&repeat); for(ri=1;ri<=repeat;ri++) scanf(“%d”,&mark); if(mark>=60);

printf(“Pass”);

else

printf(“Fail”);

}

12. 输入2+5*3/2$=<回车>后,下列程序的输出结果是___________________。

# include void main() {int op1,op2,res; char operator; scanf(“%d”,&op1); operator=getchar(); while(operator!=?=?) { scanf(\switch(operator)

{case ?+?: res=op1+op2;break;

case ?-?: res=op1-op2;break; case ?*?: res=op1*op2;break;

case ?/?: res=op1/op2;break; default: res=0; } op1=res;

printf(“%d#”,res); operator=getchar(); }

}

3. 调用函数f(2004,4,10)的返回值是___________________。 int f(int x,int y,int z) {int k,flag;

int tab[2][13]={

{0,31,28,31,30,31,30,31,31,30,31,30,31}, {0,31,29,31,30,31,30,31,31,30,31,30,31}}; flag=x%4==0&&x0!=0||x@0==0; for(k=1;k

4. 调用函数f(15)的输出结果是_________________。 void f(int n) { if(n<3) printf(\ else {

f(n/3);

printf(“%d”,n%3); }

return;

}

5. 输入how are you?<回车>后,下列程序的输出结果是_________________。 # include # include void main() { int i;

char s[60],ss[80];

scanf(“%s”,s); strcpy(ss,s); for(i=1;i<3;i++){

scanf(“%s”,s); if(strcmp(s,ss)>0)

strcpy(ss,s); }

printf(“%s\\n”,ss); }

6. 下列程序的功能是_________________。 # include # include void main()