1011c语言_1B卷
2010/2011一学期C程序设计试卷
说明:考生应将所有答案填写在答卷上,否则无效。
一、填空题(每小题2分,共20分)
⑴ int类型变量a、b当前值分别为4、3,执行“a=++a-b--;”后a、b当前值分别为 、 。
⑵ 执行“s=0;n=5;while(n) s+=--n;”后,变量s、n的当前值分别为 、 。
⑶ 声明“float a[3][4];”,a数组第二行第三列的元素可以表示为 或 。
⑷ 声明“char s1[20]="Visual ",s2[]="C++6.0";”,调用函数strcat(s1,s2);后,执行语句
“puts(s1);”的显示结果为 。
⑸ 自定义函数f5将n个元素的float类型数组按值从小到大排序,函数原型为 。
⑹ 自定义函数f6,计算并返回一元n-1次代数多项式的值,函数原型为 。
⑺ 对下列递归函数,函数调用f7(123)的返回值为 。
int f7(int n) { return n==0? 0: n%10+f7(n/10); }
⑻ int类型变量a的当前值分别为-5,表达式 ~a 的值为 。
⑼ int类型变量a的当前值为-11,执行语句“a=a^27^27;”后,a的当前值为 。
⑽ 打开二进制文件e:\aaa.dat用于写的函数为 。
二、程序阅读题(每小题8分,共24分)
阅读下列程序,将运行时的输出结果写在答卷纸相应题号下。
1. #include
void main()
{ int a[6]={2,5,-3,7,9,4},b[6]={2,5,4,7,3,6},i,j;
for(i=0;i<6;i++) {
for(j=0;j<6;j++) if(a[i]==b[j])break;
if(j<6) printf("%d\n",a[i]);
}
}
2. #include
void main()
{ int a[4][4]={{2,4,6,8},{8,2,4,6},{6,4,2,8},{4,6,8,2}},i,j;
for(i=0;i<4;i++) for(j=0;j<4;j++) a[i][j]/=a[i][i];
for(i=0;i<4;i++) {
for(j=0;j<4;j++) printf("%d ",a[i][j]); putchar('\n');
}
}
3. #include
struct complex { double x,y;};
complex mul(complex a,complex b)
{ complex c; c.x=a.x*b.x-a.y*b.y; c.y=a.x*b.y+a.y*b.x;
return c;
}
complex div(complex a,complex b)
{ complex c; double d=b.x*b.x+b.y*b.y;
c.x=(a.x*b.x+a.y*b.y)/d; c.y=(-a.x*b.y+a.y*b.x)/d;
return c;
}
void main()
{ complex a={1,2},b={3,4},c;
printf("%.2f %.2f\n",a.x,a.y);
printf("%.2f %.2f\n",b.x,b.y);
c=mul(a,b); printf("%.2f %.2f\n",c.x,c.y);
c=div(a,b); printf("%.2f %.2f\n",c.x,c.y);
}
三、程序填空题(每空2分,共24分)
阅读下列程序说明和程序,将答案填写在答卷纸相应题号下。
1.【程序说明】下列程序输入整数m(必须大于2),判断其是否为2个大于1的整数的乘积。
#include
⑴
void main()
{ int m,i;
while( ⑵