2022年C语言新答案 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年C语言新答案 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言新答案 .pdf(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章习题编程:(1)有一函数:编写一程序,输入X,输出 Y值。#include int main() double x,y; scanf(%lf,&x); if(x=1.0&x10) y=2*x-11; else y=3*x-11; printf(%lfn,y); return 0; ( 2 ) 从键盘上输入 3个整数,求最小的数。#include int main() double x,y,z,min; scanf(%lf%lf%lf,&x,&y,&z); if(xy) min=y; else min=x; if(minz) min=z; printf(min=%lfn,min); ret
2、urn 0; ( 3 ) 输入某人的出生日期,计算并显示其出生的当天是星期几。#include int main() int y,m,d,flag,s=0,w,i; scanf(%d%d%d,&y,&m,&d); flag=(y%4=0&y%100!=0|y%400=0); w=(y-1)*365+(y-1)/4-(y-1)/100+(y-1)/400)%7; for(i=1;i2) s=s+1; s=(w+s)%7; if(s=0) printf(星期日 n); else printf(星期%dn,s); return 0; ( 4 )企业发放的奖金根据利润提成:利润低于或等于10万元时,奖
3、金可提成 10% ;利润高于 10万元低于 20万元时,低于 10万元的部分按 10%提成,高于 10万元的部分可提成 7.5%;20万到40万之间时,高于 20万元的部分可提成 5%;40万到 60万之间时,高于 40万元的部分可提成 3%;60万到 100万之间时,高于 60万元的部分可提成 1.5% ;高于100万元时,超过 100万元的部分按 1%提成。从键盘输入当月利润,求应发放奖金总数。#include int main() float p,r; scanf(%f,&p); if(p10&p20&p40&p60&p100) 名师资料总结 - - -精品资料欢迎下载 - - - -
4、- - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 25 页 - - - - - - - - - r=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(p-100)*0.01; printf(%fn,r); return 0; ( 5 ) 输入字符,并以回车结束。将其中的小写字母转换成大写字母,而其他字符不变。#include int main() char c; while(c=getchar()!=n) if(c=a&c=z) c=c-32; putchar(c); return 0; ( 6
5、) 输入一个正整数,求它的所有素数因子。#include int main() int m,k=2; printf(输入一个正整数 :n); scanf(%d,&m); while(km) if(m%k=0) printf(%4d,k); m=m/k; else k+; printf(%4dn,m); return 0; ( 7 ) 从键盘输入正整数 a,求 s=a+aa+aaa+ +a a#include int main() int a,n,s=0,p=0,i; scanf(%d %d,&n,&a); for(i=1;i=n;i+) p=p*10+a; s=s+p; 名师资料总结 - -
6、-精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 25 页 - - - - - - - - - printf(%dn,s); return 0; ( 8 ) 输出用 09这10个数字能组成的三位数#include int main() int i,j,k; for(i=1;i=9;i+) for(j=0;j=9;j+) for(k=0;k=9;k+) printf(%5d,100*i+10*j+k); return 0; ( 9 ) 用二分法求方程在区间( -10,10)之间的根 #includ
7、e #include int main() float a=-10,b=10,x,f1,f2,f; f1=(2*a-4)*a+3)*a)-6; f2=(2*b-4)*b+3)*b)-6; do x=(a+b)/2; f=(2*x-4)*x+3)*x)-6; if(f*f1=1e-6); printf(%6.2fn,x); return 0; (10 ) 编写一个程序,计算的近似值#include 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 25 页 - - - - -
8、 - - - - #include int main() int n=2; double eps,t,s=0,x; scanf(%lf %lf,&x,&eps); t=x; s=t; while(fabs(t)=eps) t=-t*(2*n-3)*x*x/(2*n-2); s=s+t/(2*n); n+; printf(%d,%lfn,n,s); return 0; (11 ) 取出一个无符号的十进制整数中所有奇数数字,按原来的顺序组成一个新的数#include int main() unsigned long s,t=0,p=1; scanf(%u,&s); while(s!=0) if(s
9、%10)%2!=0) t=t+(s%10)*p; p=p*10; s=s/10; printf(%un,t); return 0; 第四章编程输入一无符号整数,求所有数位上数字之和#include unsigned int fun(unsigned int); int main() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 25 页 - - - - - - - - - unsigned int s; scanf(%u,&s); printf(%un,fun(s);
10、return 0; unsigned int fun(unsigned int s) unsigned int p=0; while(s!=0) p=p+s%10; s=s/10; return p; ( 2 ) 求一元二次方程的根,用 3个函数分别求判别式大于0,等于 0和小于 0时的根,并输出结果。主函数中输入系数a、b、c#include #include #include void f1(float,float,float,float); void f2(float,float,float,float); void f3(float,float,float,float); int ma
11、in() float a,b,c,d; scanf(%f %f %f,&a,&b,&c); if(a=0) printf(不是一元二次方程 n); exit(0); d=b*b-4*a*c; if(d0) f1(a,b,c,d); else if(d=0) f2(a,b,c,d); else f3(a,b,c,d); return 0; void f1(float a,float b,float c,float d) float x1,x2; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - -
12、- 第 6 页,共 25 页 - - - - - - - - - x1=(-b+sqrt(d)/(2*a); x2=(-b-sqrt(d)/(2*a); printf(%.2f ,%.2fn,x1,x2); void f2(float a,float b,float c,float d) float x1,x2; x1=-b/(2*a); x2=-b/(2*a); printf(%.2f ,%.2fn,x1,x2); void f3(float a,float b,float c,float d) float x1,x2; x1=-b/(2*a); x2=sqrt(-d)/(2*a); pri
13、ntf(%.2f+i*%.2fn,x1,x2); printf(%.2f-i*%.2fn,x1,x2); ( 3 ). 用递归方法求 n解勒让德多项式的值,其递推公式为:#include double p(int,double); int main() int n; double x; do scanf(%d,&n); while(n0); scanf(%lf,&x); printf(%lfn,p(n,x); return 0; double p(int n,double x) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名
14、师精心整理 - - - - - - - 第 7 页,共 25 页 - - - - - - - - - double pn; if(n=0) pn=1; else if(n=1) pn=x; else pn=(2*n-1)*x*p(n-1,x)-(n-1)*p(n-2,x)/n; return pn; ( 4 )计算银行存款余额和利息:假设银行存款季度利息是5.3%,根据输入的原始数据计算利息和账户余额,并以表格的形式输出每个季度的利息和账户余额。要求写两个函数,一个用来计算利息和余额,一个用来输出#include #define RATE 0.053 double fun(float); vo
15、id display(float,int); int main() float dep; int season; scanf(%f %d,&dep,&season); display(dep,season); return 0; double fun(float d) return d*RATE; void display(float d,int s) int i; printf(季度利息余额n); printf(-n); for(i=1;i=s;i+) printf(%-4d %-.2f %-.2fn,i,fun(d),fun(d)*i+d); printf(-n); ( 5 ) 利用函数求
16、,直到,并把计算结果作为函数返回值。 #include double fun(void); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 25 页 - - - - - - - - - int main() printf(%lfn,fun(); return 0; double fun(void) double s=0; int n=1; while(double)(2*n-1)/(2*n)*(2*n)1e-4) s=s+(double)(2*n-1)/(2*n)*(2*
17、n); n+; return s; ( 6 ) 设w是一个大于 10的无符号整数,若 w是n(n=2 )位的整数,函数求出w的低n-1位的数作为函数的返回值。如w=5923 ,则函数返回值位 923 #include int fun(int); int main() int w; scanf(%d,&w); printf(%dn,fun(w); return 0; int fun(int w) int n=1,p=1,m; m=w; while(m10) m=m/10; p=p*10; n+; return w%p; 第五章编程( 1 ) 用循环将 a34 的第一行与第三行对调#include
18、 int main ( ) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 25 页 - - - - - - - - - int a34 = 0, 2,9,7, 5,13,6,8, 27,11,1,3 ; int i,j,temp; for(i=0,j=0;j4;j+) temp = a2-ij; a2-ij = aij; aij = temp; for(i=0;i3;i+) for(j=0;j4;j+) printf(%3d,aij); printf(n); retur
19、n 0; ( 2 )编程实现显示如下形式的数字:#include int main ( ) static int a66; int i,j,t=1; for(i=0;i6;i+) t = i+1; for(j=0;ji+1;j+) aij=t-; for(i=0;i6;i+) for(j=0;j6;j+) printf(” %3d” ,aij); printf(“ n ” ); return 0; (3) 编程实现求两个矩阵相乘#include #define M 3 #define N 4 #define R 5 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -
20、- - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 25 页 - - - - - - - - - int main( ) static int aMN,bNR,cMR; int i,j,k; printf(Matrix a:n); for( i = 0; i M; i+ ) for( j = 0; j N; j+ ) scanf( %d,&aij ); printf(Matrix b:n); for( i = 0; i N; i+ ) for( j = 0; j R; j+ ) scanf( %d,&bij ); for( i = 0; i M; i
21、 + ) for( j = 0; j N; j+ ) for( k = 0; k R; k+) cik += aij*bjk; for( i = 0; i M; i+ ) for( j = 0; j R; j+ ) printf( %3d,cij ); printf(n); return 0; ( 4 ) 输入5个整数,并存放在数组中,找出最大数与最小数所在的下标位置,并把两者对调,然后输出调整后的 5个数#include #define M 5 int main( ) static int aM; int i,max = -1,min = 100,maxi,mini,temp; for( i
22、 = 0; i M; i+ ) scanf( %d,&ai ); /099间的值for( i = 0; i M; i+ ) if( max ai ) min = ai; mini = i; temp = amaxi; amaxi = amini; amini = temp; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 25 页 - - - - - - - - - for( i = 0; i M; i+ ) printf( %3d,ai ); return 0; (
23、5 )编写一个函数计算具有NROWS行和NCOLS列的二维数组中指定列的平均值以及数组各行的和的最小值#include #define M 3 #define N 4 int main( ) static int aMN; int max = -1,sumcol=0,sumrow=0; int i,j,maxi,col; for( i = 0; i M; i+ ) sumrow = 0; for( j = 0; j N; j+ ) scanf( %d,&aij ); sumrow += aij; if ( max 0); scanf(%d,&col); for( i = 0; i M; i +
24、 ) sumcol += aicol-1; printf(The %dth rows sum is max, max=%dn,maxi+1,max); printf(The %dth columns sum=%dn,col,sumcol); return 0; ( 6 ) 输入一段文字统计文字中指定字符的个数#include #define M 81 int main( ) static char strM; int i,count = 0; char ch; gets(str); fflush(stdin); /清空输入缓冲区,以便读入字符数据printf(Which character w
25、ill be found?); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 25 页 - - - - - - - - - ch = getchar(); for( i = 0; i strlen(str); i+ ) if( ch = stri ) count+; printf( The number of character %c is %dn,ch,count ); ( 7 ) 编写程序实现:用二维数组表示10同学的 5门课程成绩以均分作为排序依据,降序排列成绩
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年C语言新答案 2022 语言 答案
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内