文档库 最新最全的文档下载
当前位置:文档库 › 1011c语言_1B卷

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( ⑵ ,m<3);

for(i=2;i<=sqrt(m);i++)

if( ⑶ ) { printf("可分解为%d、%d的乘积\n",i,m/i,);break; }

if( ⑷ ) printf("不可分解\n");

}

2.【函数说明】函数f2计算并返回n个float类型数据的平均值。

float f2( ⑴ )

{ int i; float y;

⑵ ;

for(i=0;i

⑶ ;

⑷ ;

}

3.【函数说明】函数find_max在float类型的二维数组中查找值最大的元素之行、列号,下列程序可用于测试函数find_max的正确与否。

#include

void find_max( ⑴ )

{ int i,j;

⑵ ;

for(i=0;i

if(x[i][j]

}

void main()

{ float a[3][3]={{1,3,5},{6,-2,3},{4,2,1}};int i,j;

float *c[3]={a[0],a[1],a[2]};

⑷ ;

printf("%d %d\n",i,j);

}

四、程序设计题(第1小题10分,第2小题10分,第3小题12分,共32分)

1. 编程,输入n后再输入n个数,计算并输出这n个数的和。

2. 自定义函数,可将字符串的的空格符删除。

3. 文本文件e:\a.txt 存放着期末考试信息,每行包含学号(8位字符)和3门考试课的成绩(各3位整数)。编程,将每个学生信息中再增加总分并写入到文件e:\b.txt。

2010/2011一学期C程序设计答卷

选课班级任课教师班级学号考生姓名

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

⑴、⑵、⑶、⑷

⑸⑹

⑺⑻⑼⑽

二、程序阅读题(每小题8分,共24分)

1. 2. 3.

三、程序填空题(每空2分,共24分)

1. ⑴⑵⑶⑷

2.⑴⑵⑶⑷

3. ⑴⑵

⑶⑷

四、程序设计题(第1小题10分,第2小题10分,第3小题12分,共32分)

1. 编程,输入n后再输入n个数,计算并输出这n个数的和。

2. 自定义函数,可将字符串的的空格符删除。

3. 文本文件e:\a.txt 存放着期末考试信息,每行包含学号(8位字符)和3门考试课的成绩(各3位整数)。编程,将每个学生信息中再增加总分并写入到文件e:\b.txt。

2010/2011一学期C程序设计参考答案

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

⑴ 2、2 ⑵ 10、0 ⑶ a[1][2]、*(*(a+1)+2) ⑷ Visual C++6.0

⑸ void f5(float*,int) ⑹ float f6(float*,float,int) 或double

⑺ 6 ⑻ 4 ⑼ -11 ⑽ fopen("e:\\aaa.dat","wb");

二、程序阅读题(每小题8分,共24分)

1. 2

2. 1 4 6 8

3. 1.00 2.00

5 4 1 4

6 3.00 4.00

7 3 2 1 8 -5.00 10.00

4 2 3 4 1 0.44 0.08

三、程序填空题(每空2分,共24分)

1. ⑴ #include ⑵ scanf("%d",&m) ⑶ m%i==0 ⑷ i>sqrt(m)

2.⑴ float* a,int n ⑵ y=0 ⑶ y=y/n ⑷ return y

3. ⑴ float **x,int m,int n,int *ii,int *jj ⑵ *ii=*jj=0;

⑶ *ii=i,*jj=j; ⑷ find_max(c,3,3,&i,&j)

四、程序设计题(第1小题10分,第2小题10分,第3小题12分,共32分)

1. 编程,输入n后再输入n个数,计算并输出这n个数的和。

#include

void main()

{ int n,i; float y=0,a; '2分

scanf("%d",&n); '2分

for(i=1;i<=n;i++) { scanf("%f",&a);y=y+a;} '4分

printf("%f\n",y); '2分

}

2. 自定义函数,可将字符串的的空格符删除。

void f(char* s) '2分

{ int i;

for(i=0;s[i]!='\0';) '4分

if(s[i]==' ') strcpy(s+i,s+i+1); '4分

else i++;

}

3. 文本文件e:\a.txt 存放着期末考试信息,每行包含学号(8位字符)和3门考试课的成绩(各3位整数)。编程,将每个学生信息中再增加总分并写入到文件e:\b.txt。

#include

void main()

{ FILE *p1,*p2; char xh[9]; int c1,c2,c3; '2分

p1=fopen("e:\\a.txt","r"); '2分

p2=fopen("e:\\b.txt","w");

while(fscanf(p1,"%s%d%d%d",xh,&c1,&c2,&c2)!=EOF) '6分

fprintf(p2,"%s %d %d %d %d\n",xh,c1,c2,c3,c1+c2+c3);

fclose(p1); '2分

fclose(p2);

}

相关文档
相关文档 最新文档