天大《C语言程序设计》2020年10月期末大作业答案
C语言程序设计请在以下三组题目中任选一组作答,满分100分。题目如下:第一组:一、编程题(每题20分,共40分)1、编写程序。计算(求n项,n由键盘输入并要求最后一项小于10-6结束。2、编写程序。自定义函数求N名学生1门课程成绩的平均分,调用该函数求10名学生1门课程成绩的平均分。二、程序填空。在程序中的序号处填上正确的内容。(每空4分,共48分)1、判断一个整数的各位数字是否都相同,相同则显示“yes“,否则显示”no”。#include <stdio.h>void main( ){ int a, r1, r2; scanf(“%d”,_____①_____);do{r1=a%10; _____②_____; r2=a%10; }while( a!=0&&_____③_____ ); if(a!=0 ) printf(”no \n”);else _____④_____;}2、输出如下图形。12345 11234111231111211111#include<stdio.h>void fun(_____①_____){ int i,j;for(i=1;i<=n;i++){for(j=1; _____②_____;j++)printf(“%3d”,1);for(j=2;j<=_____③_____;j++) printf(“%3d”,j);printf(“\n”); }}void main(){ _____④_____;} 3、输入一个3行5列的整数矩阵,输出其中最大值和它们的下标。#include<stdio.h>void main(){ int a,i,j,t,n=3,m=5,max,maxrow,maxcol;printf(“Enter%d*%dnumbers!\n”,n,m);for(i =0;i<n;i++)for(j=0;j<m;j++){ scanf(“%d”,&t);_____①_____; } max=a;_____②_____; for(i=0;i<n;i++)for(j=0;j<m;j++)if(_____③_____){ _____④_____;maxrow=i;maxcol=j;}printf(“MAX=a[%d][%d]=%d\n”,maxrow,maxcol,max,);}三、写出程序的执行结果(每题4分,共12分)1、#include<stdio.h>void main(){int a[]={9,7,5,3,l,2,4,6,8}; int i,j,sl=0,s2=0;for(i=0;i<3;i++)for(j=0;j<3;j++) { if(i==j)s1=s1+a;if(i+j==2)s2=s2+a;} printf(“%d%4d\n”,sl,s2);}2、#include<stdio.h>void main(){ char a[]={‘*’,‘*’,‘*’,‘*’,‘*’};int i,j,k;for(i=0;i<4;i++){ printf(“\n”);for(j=0;j<i;j++)printf(“%c”,‘ ’);for(k=0;k<4;k++)printf(“%c”,a);}printf(“\n”);} 3、#include <stdio.h> void main() { int s; for (i=0;i<5;i++) s=i*2; for(i=4;i>=0;i--) printf(“%5d”,s); printf(“\n”); }第二组:一、编程题(每题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>#defineNull0void 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={{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, ""); printf("\n");}2、#include<stdio.h> int fun( int x ){ intp; if (x==0||x==1 ) p=1;elsep=x*fun( x-2 );returnp;}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;case 1:printf(“**1**”);break;}case 2:printf(“**2**”);break;} }第三组:一、编程题(每题20分,共40分)1、编写程序。任意输入10个数,输出这10个数中正数的平均值并将这10个数按相反的次序并输出。 2、编写程序。自定义函数重复输出给定的一个字符n次,调用该函数输出给定的字符和输出的次数。二、程序填空。在程序中的序号处填上正确的内容。(每空4分,共48分)1、程序用于输出以下图形。#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>#defineNull0void 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,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; returns;} 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=x*x; return; } 3、 #include <stdio.h> void main(){int a,i,j;for(i=1;i<6;i++)for(j=1;j<6;j++)a=(i/j)*(j/i);for(i=1;i<6;i++){for(j=1;j<6;j++)printf("%2d",a);printf("\n");}}答案需要的请自助下载
要求编写一个求最大供公约数的子函数,调用该子函数对输入的a、b求它们的最大公约数并输出。
gaojiaoren 发表于 2016-6-20 10:41
要求编写一个求最大供公约数的子函数,调用该子函数对输入的a、b求它们的最大公约数并输出。
...
怎么样才能编写程序语言,不知道 c语言好难啊,对我来说就是天书 c语言不太好学,需要不断地敲 老铁答案 :)感觉不错 感觉好难 呀看不懂需要学习 简单,但是不会做,咋办呢 感谢楼主,正好需要这个 天大2020年春学期考试《C语言程序设计》离线作业考核试题第三组参考答案 难度有些大 C语言好难啊
页:
[1]