《(中职)C语言程序设计练习题4及答案.docx》由会员分享,可在线阅读,更多相关《(中职)C语言程序设计练习题4及答案.docx(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、练习题41、在考生文件夹下,给定程序MODI.C的功能是:求一维数组a中所有元素的平均值,结果保留两位小数。例如,当一维数组a中的元素为:10,4,2,7,3,12,5,34,5,9程序的输出应为:The aver is: 9.10 。#include #include void main() int a10=10,4,2,7,3,12,5,34,5,9,i;float aver,s; /*found*/ int aver,s; /*found*/s=a0; s = 0; for ( i=1; i10; i+) s += ai; aver = s / i; printf(The aver is
2、: %.2fn, aver);2、在考生文件夹下,给定程序MODI.C的功能是:求二维数组a中的最大值和最小值。 例如,当二维数组a中的元素为: 4 4 34 37 3 12 5 6 5程序的输出应为:The max is: 37 The min is: 3 。 #include #include void main() int a33=4,4,34,37,3,12,5,6,5,i,j,max,min; max = min = a00; for ( i=0; i3; i+)for(j=0;j3;j+) /*found*/ for ( j=1; j3; j+) if ( max aij) if
3、(min aij) min = aij; printf(The max is: %dn, max); printf(The min is: %dn, min); 3、在考生文件夹下,给定程序MODI.C的功能是:求一维数组a中的最大元素及其下标。例如,当一维数组a中的元素为:1,4,2,7,3,12,5,34,5,9,程序的输出应为:The max is: 34,pos is: 7 。 #include #include void main() int a10=1,4,2,7,3,12,5,34,5,9,i,max,pos; max = a0; pos = 0; for ( i=1; i10;
4、 i+) /*found*/if(max ai) max = ai; /*found*/pos=i;i = pos; printf(The max is: %d ,pos is: %dn, max , pos);4、在考生文件夹下,给定程序MODI.C的功能是:求二维数组a中的最小值。 例如,当二维数组a中的元素为: 4 2 34 7 3 12 5 6 5程序的输出应为:The min is: 2 。#include #include void main() int a33=4,2,34,7,3,12,5,6,5,i,j,min; min = a00;for(i=0;i3;i+) /*foun
5、d*/ for ( i=1; i3; i+) for ( j=0; j aij) /*found*/min=aij;min = aij; printf(The min is: %dn, min); 5、在考生文件夹下,给定程序MODI.C的功能是:求一维数组a中所有元素的平均值。例如,当一维数组a中的元素为:10,4,2,7,3,12,5,34,5,9程序的输出应为:The aver is: 9.10 。#include #include void main() int a10=10,4,2,7,3,12,5,34,5,9,i; double aver,s; s = a0;for ( i=1;
6、 i10; i+) /*found*/ for ( i=0; i10; i+) /*found*/s = s + ai; s = s + i; aver = s / i; printf(The aver is: %.2fn, aver);6、在考生文件夹下,给定程序MODI.C的功能是:输入一个百分制成绩,打印出五级记分成绩。考试成绩在90分或90分以上为优秀,8089分为良好,7079为中等,6069为及格,低于60分为不及格。 #include #include #include #include void main() int score,t; printf(Please enter a
7、 score:); do scanf(%d,&score); while(score100); t=score/10;switch(t) /*found*/ switch(score) case 10: case 9:printf(优秀!n);break; case 8:printf(良好!n);break; case 7:printf(中等!n);break; case 6:printf(及格!n);break; /*found*/ else :printf(不及格!n);default: printf(不及格!n); 7、在考生文件夹下,给定程序MODI.C的功能是:输出100200之间既
8、不能被3整除也不能被7整除的整数并统计这些整数的个数,要求每行输出8个数。#include #include #include #include void main() int i; /*found*/int n=0; int n; for(i=100;i=200;i+) /*found*/ if(i%3=0&i%7=0) if(n%8=0) printf(n);if(i%3!=0 & i%7!=0) printf(%6d,i); n+; printf(nNumbers are: %dn,n);8、在考生文件夹下,给定程序MODI.C的功能是:学习优良奖的条件如下:所考5门课的总成绩在450分
9、(含)以上;或者每门课都在88分(含)以上。输入某学生5门课的考试成绩,输出是否够学习优良奖的条件。 #include main() int score,sum=0; int i,n=0; for(i=1;i=88) n+; /*found*/ if(score=450 | n=5 ) /*found*/ if(sum=450 & n=5 ) printf(The student is very good!n); else printf(The student is not very good!n); 9、在考生文件夹下,给定程序MODI.C的功能是:输出200300之间的所有素数,要求每行输
10、出8个素数。#include #include main() int m,j,n=0,k; for(m=200;m=300;m+) k=sqrt(m); for(j=2;jk) if(n%8=0) printf(n); /*found*/printf(%d,m); printf(%d,j); n+; 10、在考生文件夹下,给定程序MODI.C的功能是:求出a所指数组中最小数(规定最小数不在a0中),最小数和a0中的数对调。例如数组中原有的数为:7、10、12、0、3、6、9、11、5、8,输出的结果为:0、10、12、7、3、6、9、11、5、8。 #include #include #def
11、ine N 20 main( ) int aN=7,10,12,0,3,6,9,11,5,8, n=10, i, k,m,min,t; for ( i = 0; in; i+) printf(%d ,ai); printf(n); min= a0; m=0; for ( k = 0; k n; k+ ) /*found*/ if(akmin ) min = ak; m = k; /*found*/ t = a0; am=a0; am = t; for ( i=0; in; i+ ) printf(%d ,ai); printf(n);11、在考生文件夹下,给定程序MODI.C的功能是:求一维数
12、组a中的最小元素及其下标。例如,当一维数组a中的元素为:1,4,2,7,3,12,5,34,5,9,程序的输出应为:The min is: 1,pos is: 0 。#include #include main() int a10=1,4,2,7,3,12,5,34,5,9,i,min,pos; /*found*/min=a0; min = 0; pos = 0; for ( i=1; i ai) min = ai; /*found*/pos=i;pos = ai; printf(The min is: %d ,pos is: %dn, min , pos);12、在考生文件夹下,给定程序MO
13、DI.C的功能是:求一维数组a中值为偶数的元素之和。例如,当一维数组a中的元素为:10,4,2,7,3,12,5,34,5,9 ,程序的输出应为:The result is: 62。#include #include sum ( int arr ,int n ) int i,s; s = 0; for ( i=0; in; i+) if (arri % 2 = 0) /*found*/s=s+arri; s = s + i; return (s); void main() int a10=10,4,2,7,3,12,5,34,5,9,s;s=sum(a,10); /*found*/ sum(
14、a ,2 ); printf(The result is: %dn, s); t=a0;a0=am;am=t;13、在考生文件夹下,给定程序MODI.C的功能是:求一维数组a中的最大元素及其下标。例如,当一维数组a中的元素为:1,4,2,7,3,12,5,34,5,9,程序的输出应为:The max is: 34,pos is: 7 。#include #include void main() int a10=1,4,2,7,3,12,5,34,5,9,i,max,pos; max = a0; pos = 0; for ( i=1; i10; i+) /*found*/if(max ai) /
15、*found*/max=ai; max = a; pos =i; printf(The max is: %d ,pos is: %dn, max , pos); 14、在考生文件夹下,给定程序MODI.C的功能是:求一维数组a中值为奇数的元素之和。例如,当一维数组a中的元素为:10,4,2,7,3,12,5,34,5,9, 21 ,19程序的输出应为:The result is: 69。#include #include int sum( int b ,int n ) int i,s = 0; for ( i=0; in; i+) if (bi % 2 = 1) /*found*/s=s+bi
16、; s = s + bi return (s); main() int a12=10,4,2,7,3,12,5,34,5,9,21,19,n;sum(a,12); /*found*/ sum(a,2); printf(The result is :%dn,n ); 15、在考生文件夹下,给定程序MODI.C的功能是:求一维数组a中的最大元素及其下标。例如,当一维数组a中的元素为:34,4,2,7,3,12,5,8,5,9,程序的输出应为:The max is: 34,pos is: 0 。#include #include int max; maxarr(int arr ) int pos,i
17、; /*found*/ max=arr0; max = 0; pos = 0; for ( i=1; i10; i+) if (max arri) max = arri;pos = i; /*found*/return(pos); return (i); main() int a10=34,4,2,7,3,12,5,8,5,9; printf(The max is: %d ,pos is: %dn, max , maxarr(a); 程序填空题(共15题)1、在考生文件夹下,给定程序FILL.C的功能是:求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积(注意:圆面积公式为
18、:S=3.14159*r*r,在程序中定义的变量名要与公式的变量相同)。例如,输入圆的半径值:2.5,输出为s=9.817469。#include /*found*/double fun ( float r) double fun ( float _1_ ) return 3.14159 * r*r/2.0 ; main() float x; printf ( Enter x: );scanf ( %f, &x); /*found*/ scanf ( %f, _2_ ); printf ( s = %fn , fun ( x ) ); 2、在考生文件夹下,给定程序FILL.C的功能是:计算并输
19、出下列级数的前n项之和Sn,直到Sn大于q为止,q的值通过形参传入。 Sn = 2/1 + 3/2 + 4/3 + + (n+1)/n 例如,若q的值为50.0,则函数值为50.416691。#include float fun( float q ) int n; float s; n = 2; s = 2.0; /*found*/while(s=q) while (s_1_q) s=s+(float)(n+1)/n; /*found*/n+; _2_; return s; main() printf(%fn, fun(50); 3、在考生文件夹下,给定程序FILL.C的功能是:统计整数n的各
20、个位上出现数字1、2、3的次数,并通过外部(全局)变量c1、c2、c3返回主函数。 例如,当n=123114350时,结果应该为:c1=3 c2=1 c3=2。#include int c1,c2,c3; void fun(long n) c1 = c2 = c3 = 0; while (n) switch(n%10) /*found*/ switch(_1_) case 1: c1+; break; /*found*/break; case 2: c2+;_2_; case 3: c3+; n /= 10; main() int n=123114350; fun(n); printf(nn=
21、%d c1=%d c2=%d c3=%dn,n,c1,c2,c3); 4、在考生文件夹下,给定程序FILL.C的功能是:程序的功能是计算y = 0! + 1! + 2! + 3! + 4! + + n! 如输入n的值为5的话,则输出y值为154#include int fun(int n) int i; int s; s=1; for (i=1; i=n; i+) /*found*/s=s*i; s=_1_; return s; main() int s; int k,n; scanf(%d,&n); s=0; for (k=0; k=n; k+) /*found*/s=s+fun(k); s
22、=_2_; printf(%dn, s); 5、在考生文件夹下,给定程序FILL.C的功能是:计算并输出下列多项式的值。 S = 1 + 1/(1+2) + 1/(1+2+3) + + 1/(1+2+3+50)例如,若主函数从键盘给n输入50后,则输出为S=1.960784。#include /*found*/float fun(int n) _1_ fun(int n) int i,j; double sum=0.0, t; for(i=1;i=n;i+) t=0.0; T=T+J; T+=J; for(j=1;j=i;j+) /*found*/t+=j; t+= _2_; sum+= 1.
23、0/t; return sum; main() int n; double s; printf(nInput n: ); scanf(%d,&n); s=fun(n); printf(nns=%fnn,s);6、在考生文件夹下,给定程序FILL.C的功能是:计算两个整数n和m(m1000)之间所有数的和。n和m从键盘输入。例如,当n=1,m=100时,sum=5050,当n=100,m=1000时,sum=495550。#include #include main() int n,m; int sum; /*found*/sum=0; _1_; printf(nInput n,mn); sca
24、nf(%d,%d,&n,&m); while( n=m ) /*found*/sum=sum+n; _2_; n+; printf(sum=%d n,sum); 7、在考生文件夹下,给定程序FILL.C的功能是:计算N*N矩阵的主对角线元素和副对角线元素之和,并作为函数值返回。(要求:先累加主对角线元素中的值,然后累加副对角线元素中的值。) 例如,若N=3,有下列矩阵: 1 2 3 4 5 6 7 8 9 fun函数首先累加1、5、9,然后累加3、5、7,函数的返回值为30。#include #define N 3 fun(int tN, int n) int i, sum; /*found*
25、/sum=0; _1_; for(i=0; in; i+)sum+=tii; /*found*/ sum+=_2_ ; for(i=0; in; i+) sum+= tin-i-1 ; return sum; main() int tN=1,2,3,4,5,6,7,8,9,i,j; for(i=0; iN; i+) for(j=0; jN; j+) printf(%4d,tij); printf(n); printf(The result is: %dn,fun(t,N); 8、在考生文件夹下,给定程序FILL.C的功能是:打印出1至1000中满足其个位数字的立方等于其本身的所有整数。本题的结
26、果为:1 64 125 216 729。#include main() int i,g; for(i=1;i1000;i+) g=i%10; /*found*/ g=i_1_10;if(i=g*g*g) /*found*/ if(_2_) printf(%4d,i); printf(n);9、在考生文件夹下,给定程序FILL.C的功能是:把数组a(大小为M)中前M-1个元素中的最小值放入a的最后一个元素中#include #define M 11 void main() int aM,i; for(i=0;iM-1;i+) scanf(%d,&ai); aM-1=a0;for(i=1;iai)
27、 if(_(2)_) aM-1=ai; printf(Max is %dn,aM-1); 10、在考生文件夹下,给定程序FILL.C的功能是:统计一维数组a中素数的个数。例如:如果数组a的元素为:2,3,5,7,8,9,10,11,12,13,则程序的输出应为:prime number(s) is(are): 6。#include #include #include prinum( int a) int count,i,j,k; count = 0; for ( i=0; i10; i+) k=ai-1; for ( j=2; j= k+1) count+; return count; /*f
28、ound*/ _(1)_; void main() int a10=2,3,5,7,8,9,10,11,12,13,n; /*found*/n=prinum(a); n = _(2)_; printf(prime number(s) is(are): %dn, n ); 11、在考生文件夹下,给定程序FILL.C的功能是:求一维数组a中素数之和。例如:如果数组a的元素为:2,3,5,7,8,9,10,11,12,13,15,17,则程序的输出应为:Sum is: 58。#include #include #include void main() int a12=2,3,5,7,8,9,10,1
29、1,12,13,15,17,i,j,k,s; /*found*/s=0; _(1)_; for ( i=0; i12; i+) k=(int)sqrt(ai); for ( j=2;j k ) /*found*/s=s+ai; s=s+_(2)_; printf(Sum is: %dn,s); 12、在考生文件夹下,给定程序FILL.C的功能是:从键盘上输入两个正整数x,y,求它们的最大公约数。例如:如果从键盘上输入24,36,程序的输出应为:max is : 12。 #include #include #include void main() int x,y,t,i; printf(Please enter two numbers:); scanf(%d,%d,&x,&y); if(x y)/*found*/ t = x; _(1)_ ; y = t;x=y; t = x % y; while( t ) x = y; y=t; t = x % y; /*found*/ printf(max is : %dn,_(2)_);printf(maxis:%dn,y);13、在考生文件夹下,给定程序FILL.C的功能是:求一维数组a中非
限制150内