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
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
{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 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