天大《C语言程序设计》2017年12月考试期末大作业 下载本文

谋学网www.mouxue.com

C语言程序设计

要求: 一、

独立完成,下面三组题目中,请任选其中一组题目作答,满分100分;

二、答题步骤:

1. 使用A4纸打印学院指定答题纸(答题纸请详见附件);

2. 在答题纸上使用黑色水笔按题目要求手写作答;答题纸上全部信息要求手......写,包括中心、学号、姓名、科目、答题组数等基本信息和答题内容,请写明题型、题号;

三、提交方式:请将作答完成后的整页答题纸以图片形式依次粘贴在一个 .......Word....文档中上传(只粘贴部分内容的图片不给分),图片请保持正向、清晰; ...

1. 上传文件命名为“中心-学号-姓名-科目.doc” 2. 文件容量大小:不得超过20MB。

提示:未按要求作答题目的作业及雷同作业,成绩以分记! ....................0...

题目如下: 第一组:

一、编程题(每题20分,共40分)

1、编写程序。输入一行字符(以回车符结束),分别统计其中字母、数字和其他符号的个数。

2、编写程序。要求编写子函数prime(m)判断m是否为素数,当m为素数时返回1,否则返回0,再调用该子函数求100以内的全部素数(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。

二、程序填空。在程序中的序号处填上正确的内容。(每空4分,共48分)

1、按照公式 e=1+

1111+++?+求e的近似值,至n=10为止。 1!2!3!n!#include

void main ( )

{ float_____①_____; int n=1, i;

谋学网www.mouxue.com

for(_____②_____) { n=_____③_____; e=_____④_____; }

printf (“ e= %f\\n” ,e); }

2、将文件file1.dat中的内容复制到file2.dat中。 #include

#define Null 0 void main()

{ FILE_____①_____; charch;

if((p1=fopen(“file1.dat”,”r”)= =Null)||(p2=fopen(“file2.dat”,”w”)==Null)) { printf(“Can?t open file\\n”); _____②_____; } while(_____③_____) { ch=_____④_____; fputc(ch,p2); } fclose(p1); fclose(p2); }

3、求二维数组a[5][4]中所有元素的平均值。

#include ____ _①_ ____ void main ( ) { int a[5][4],i ,j, pa; for (i=0;i<5;i++) for (j=0;j<4;j++)

scanf(“%d”, &a[i][j]); pa=_____②_____;

printf (“average=%d\\n”,pa); }

int average(int s[ ][4] ) { int i,j,aver=0; for (i=0;i<5;i++)

for (j=0;j<4;j++)aver=aver+s[i][j]; aver=_____③_____; _____④_____;

谋学网www.mouxue.com

}

三、写出程序的执行结果(每题4分,共12分)

1、

#include

void main()

{ int i, j, k=4;

for (int i=1;i<=k;i++)

printf(\?*?); printf(\

for (int i=1;i<=k-2;i++) { printf(\?*?);

for (j=1;j<= k-2;j++) printf(\

printf(\*\\n\ }

for (i=1;i<=k;i++) printf(\?*?); printf(\

} 2、

#include void fun(int s[ ]); void main()

{ int a[ ]={1,2,3,4,5,6},k; fun(a);

for(k=0;k<=5;k++) printf(“%d ”,a[k]); printf(“\\n”); }

void fun(int s[ ]) { int i=0;

while(i<3) { s[i]=s[i]+5; i++; } }

3、

#include

谋学网www.mouxue.com

void main()

{ int j, a[ ]={1,2,3,4,10,12,13,15}; for( j=3; j>0; j--) switch ( j ) { case 1:

case 2: printf(“%d,”, a[j+4]); break; case 3: printf(“%d,”, a[j-1]); }

printf(“\\n”);

}

第二组:

一、编程题(每题20分,共40分)

1、 编写程序。定义数组存放任意输入的10个实数,求出其中的最大值以及第一个最 大值的下标并输出。

2、编写程序。要求编写一个求最大供公约数的子函数,调用该子函数对输入的a、b求它们的最大公约数并输出。

二、程序填空。在程序中的序号处填上正确的内容。(每空4分,共48分) 1、程序用于输出如下图形。

1 2 3 4 5 6 7 8 9

1 2 4

3 6 9 4 8 12 16 5 10 15 20 25 6 12 18 24 30 36

7 14 21 28 35 42 49 8 16 24 32 40 48 56 64 9 18 27 36 45 54 63 72 81

#include voidmain( ) { int i, j; for(i=1; i<10; i++)

printf(“M”,_____①_____); for(i=1;i<10;i++)

{ for(j=1; _____②_____;j++) printf(“M”, _____③_____ ); _____④_____; } }