C语言程序设计 要求: 1. 独立完成,作答时要按照模版信息填写完整,写明题型、题号; 2. 作答方式:手写作答或电脑录入,请使用学院统一模版(模版详见附件); 3. 提交方式:以下两种方式任选其一, 1) 手写作答的同学可以将作业以图片形式打包压缩上传; 2) 提交电子文档的同学可以将作业以word文档格式上传; 4. 上传文件命名为“中心-学号-姓名-科目.rar” 或“中心-学号-姓名-科目.doc”;5. 文件容量大小:不得超过20MB。
请同学们按照学院平台“课程考试——离线考核——离线考核课程查看”中指定的“做题组数”作答,满分100分; 例如:“做题组数”标为1,代表学生应作答“第一组”试题; 提示:未按要求作答题目的同学,成绩以0分记!
第一组: 一、编程题(每题20分,共40分) 1、编写程序。从输入的若干个大于零的整数中选出最小值(输入-1时结束输入)。 2、编写程序。写一个子函数fac求n!,然后再编写main()调用fac函数分别输出1~5的阶乘。 二、程序填空。在程序中的序号处填上正确的内容。(每空4分,共48分) 1、程序用于输出以下图形。
S SS SSS SSSS SSSSS SSSSSS
|
#include "stdio.h" void main ( ) { int i,j; for(i=1;i<= ____①____;i++) { for(j=1;j<= 9-i ; ____②____) printf (""); for(j=1;j<=i;j++) printf("%c", ____③____ ); ________④________; } }
2、程序由键盘输入10个整型数写入名为fdada.txt的文件 #include "stdio.h" #include"process.h" void main() { _____①_____*fp; int i,a; if((fp=fopen("_____②_____","w"))==NULL) { printf("文件不能打开!\n"); exit(1);} else { printf("请输入10个整数\n"); for(i=1;i<=10;i++) { scanf("%d",&a); fprintf(____③____,"%d ",a);} ________④________ ; } }
3、输入4×5数组中所有元素,求所有元素的平均值并输出。 #include <stdio.h> void main( ) { int a[4][5],i,j,sum; for(i=0;i<4;i++) for(j=0;j<5;j++) scanf(“%d”, _____①_____ ); _____②_____; for(i=0;i<4;i++) for(j=0;j<5;j++) sum=____ ③ ____; printf(“average=%f\n”, ____④____ ); }
三、写出程序的执行结果(每题4分,共12分) 1、 #include <stdio.h> int x=10; void f1() { int a=10; static int b=10; a+=10; b+=10; x+=10; printf (“%d %d %d ”, a,b,x) ; } void main ( ) { f1( ); f1( ); }
2、 #include <stdio.h> void main() { int a[ ]={2,3,5,4},i; for (i=0;i<4;i++) switch(i%2) { case 0: switch(a%2) { case 0: a++;break; case 1:a--; }break; case 1:a=0; } for (i=0;i<4;i++) printf("%2d ",a); printf("\n"); }
3、 #include <stdio.h> void main() { int beta=10; int *pointer,*q; pointer=β *pointer=20; beta=*pointer+30; q=β printf("\n *q=%d ",*q); }
第二组: 一、编程题(每题20分,共40分) 1、 编写程序。定义N个大小的整型数组,任意输入10个整数,找出其中的最大值和 最小值并输出。 2、 编写程序。自定义函数求y!,调用该函数求s=m!+n!+k!并输出(m、n、k的值从 键盘输入)。 二、程序填空。在程序中的序号处填上正确的内容。(每空4分,共48分) 1、求数列0,1,1,2,3,5,8,13,21,34,……的前40 个数。其中第一、二两个数为0、1,以后每个数是前两个数之和。 #include <stdio.h> void main() { int _____①_____,i; printf(“%d %d”, _____②_____); for(_____③_____;i<=21; i++) { f1=f1+f2; f2=_____④_____; printf(“%d %d”,f1,f2); if((i+1)%2==0) printf(“\n”); } }
2、在D盘建一个名为”file1.dat”的文件,从键盘输入若干字符(以回车作为结束)存入该文件,。 #include <stdio.h> #define Null 0 void main() { _____①_____; char c; if(( fp=fopen(“d:\file.dat”, _____②_____))==Null) { printf(“Can’t open file!\n”); exit(0) ; } do{ c=getcher(); _____③_____; }while(c!=’\n’) _____④_____; }
3、输出如下所示的菱形。
* *** ***** *** *
#include <stdlib.h> void main() { int i,j,k; for(i=1;i<=3; i++) { for(j=1; j<=3-i; j++) printf(""); for(k=1; k<=_____①_____; k++) printf("*"); printf("\n"); } for(i=1; _____②_____; i++) { for(j=1; _____③_____; j++) printf(""); for(k=1; k<=6-2*i-1; k++) _____④_____; printf("\n"); } }
三、写出程序的执行结果(每题4分,共12分) 1、 #include <iostream.h> void main() { int i, j, N, a[5][5]={{1,2,3,4,5},{2,3,4,5},{3,4,5},{4,5},{5}}; N=5; for(i=0; i<N; i++) for(j=0; j<N-i; j++) printf("%d%s",a[j], " "); printf("\n"); }
2、 #include<stdio.h> int fun( int x ) { int p; if(x==0||x==1 ) p=1; else p=x*fun( x-2 ); return p; } void main() { printf("%d\n", fun (6 ) ); }
3、 #include<stdio.h> void main() { int a=1,b=0; switch(a) { case 1:switch(b) { case 0:printf(“**0**”);break; case1:printf(“**1**”);break; } case2:printf(“**2**”);break; } }
第三组: 一、编程题(每题20分,共40分) 1、编写程序。任意输入10个数,输出这10个数中正数的平均值并将这10个数按相 反的次序并输出。 2、编写程序。自定义函数重复输出给定的一个字符n次,调用该函数输出给定的字符和输出的次数。 二、程序填空。在程序中的序号处填上正确的内容。(每空4分,共48分) 1、程序用于输出以下图形。
1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 6 6 6 6 6 6 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 9 9 9 9 9 9 9 9 9
|
#include <stdio.h> void main( ) { int i, j; for (i=1; i<10; i++) { for( j=1; j<=12-i; j++) _____①_____; for (j=1; _____②_____; j++) printf(“%4d”, _____③_____); _____④_____; } }
2、将1到100各数的平方根按照每行5个数存到磁盘的file.dat文件中。 #include <stdio.h> #include <math.h> #define Null 0 void main() { FILE *p1; int i=1; if((p1=____ _①_ ____)==Null) { printf(“Can’t open file\n”); exit(0) ; } while(i<=100) { fprintf(p1,”%f5.3”,sqrt((double)(i))); if(_____②_____) fprintf(p1,”\n”); _____③_____; } _____④_____; }
3、用公式 计算π的值, 直到最后一项的绝对值<10 。 #include <stdio.h> #include <math.h> void main() { int s; float n, t, pi; t=1; n=1.0; pi=0; s=1; while(_____①_____) { pi=pi+t; n+=2; s=_____②_____; t=_____③_____; } _____④_____; printf(“pi=%10.6f\n”, pi); }
三、写出程序的执行结果(每题4分,共12分) 1、 #include <stdio.h> int sum(int p[ ], int a); void main() { int data[ ][3]={{3,2,1},{1,2,3},{4,5,6}}; for(int s,i=0; i<3; i++) { printf("%ds=%d\n", sum(data,s),s);} } int sum(int p[ ], int a) { int i, k=0; static int s=0; for(i=0; i<3; i++) { s+=p; k+=p; } a=k; return s; }
2、 #include <stdio.h> void pp(int x[]); void main ( ) { int i ,a[ ]={1,2,3,4,5,6}; pp(a); for (i=0;i<6;i++) printf(“%3d”,a); } void pp(int x[ ]) { int k; for (k=0;k<6;k++) x[k]=x[k]*x[k]; return; }
3、 #include <stdio.h> void main() { int a[6][6],i,j; for(i=1;i<6;i++) for(j=1;j<6;j++) a[j]=(i/j)*(j/i); for(i=1;i<6;i++) { for(j=1;j<6;j++) printf("%2d",a[j]); printf("\n"); } }
|