《2022年C语言课后答案.pdf》由会员分享,可在线阅读,更多相关《2022年C语言课后答案.pdf(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第 3 章三、编程题1 编写程序,输入一个非负数,输出以此数为半径的圆周长以及面积。#include #define PI void main()float r,area,circumference;scanf(%f,&r);area=PI*r*r;circumference=2*r*PI;printf(area=%6.2fncircumference=%6.2fn,area,circumference);2 编写程序,输出下面结果,注意,双引号也要输出:“Im a student!”#include void main()printf(Im a student!n);3 编写程序,输入一个小
2、写字母,将其转换为大写字母输出。例如输入b,则输出 B。提示:小写字母和对应的大写字母的ASCII 码值相差 32。void main()char ch;ch=getchar();ch-=32;putchar(ch);)32f (95c5.2f5.2f5.2f#include #define n 10void main() int an,i,count1=0,count2=0,sum=0;float ave;for (i=0;i80) count1+=1; else精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - -
3、 -第 1 页,共 15 页 - - - - - - - - - - if(ai60) count2+=1;ave=sum/n;printf(%d个优秀 , %d 个不及格 , 平均分 :%f 。,count1,count2,ave);2. #include #define n 10void main() int an,i,j,k,max,min;for (i=0;in;i+)scanf(%d,&ai); if (!i) max=min=ai; j=k=i; else if (maxai) min=ai; k=i; printf(最大值 %d在第 %d位, 最小值 %d在第 %d位。 ,max
4、,j+1,min,k+1); 3. #include #include void main() char s20,ch;int i,n; printf(请输入字符串:); gets(s); n=strlen(s); for(i=0;in/2;i+) ch=si; si=sn-1-i; sn-1-i=ch; printf(逆序存放的字符串:);精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 15 页 - - - - - - - - - - puts(s); 4. #include #define
5、 N 10void main() int i,j,n,aN+1;printf(请输入 %d个由小到大排列的整数:,N);for(i=0;iN;i+)scanf(%d,&ai);printf(请输入要插入的数:);scanf(%d,&n);for(i=0;in) j=i; break; if (i=N) j=i; for(i=N-1;i=j;i-) ai+1=ai;aj=n;printf(插入后的排列:);for(i=0;i=N;i+) printf(%d ,ai);5. #include #define N 3void main() int i,j,aNN,sum=0; printf(请输入
6、%d*%d矩阵的元素: ,N,N); for(i=0;iN;i+) for(j=0;jN;j+) scanf(%d,&aij); if(i=j) sum+=aij; printf(主对角线元素之和:%d 。,sum); 6. #include #includevoid main() int i,j, n,k=0, b300; for (i=1;i300;i+) n=int(sqrt(i);精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 15 页 - - - - - - - - - - for(
7、j=2;jn) bk=i; k+; for(i=0;ik;i+) printf(%5d,bi); 7. #include #define N 7void main() int i,j,k,aN,temp;printf(请输入 %d个整数: ,N); for(i=0;iN;i+) scanf(%d,&ai); for(i=0;iN-1;i+) k=i; temp=ai; for(j=i+1;jaj) k=j; temp=aj; if (k!=i) ak=ai; ai=temp; printf(排序后的数列:); for(i=0;iN;i+) printf(%3d,ai); 8. #include
8、 void main() int i=0,count1=0,count2=0,count3=0; char s20; printf(请输入字符串:); gets(s); while(si!=0) if(si=a&si=A&si=0&si=9) count2+; else count3+; i+; printf(字符 %d个,数字 %d个,其他 %d个。 ,count1,count2,count3); 9. #include #include void main()char s20,ch;int i=0; printf(请输入字符串:); gets(s); while(si!=0) si+=3;
9、 if (siz) si-=26; i+; printf(加密后: ); puts(s); 10. #include #include void main()char s120,s220;int i=0,j=0; printf(请输入字符串1:); gets(s1); printf(请输入字符串2:); gets(s2); while (s1i!=0) i+; s1i=s2j; do i+; j+; s1i=s2j; while (s2j!=0); printf(连接后: ); puts(s1);精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 -
10、 - - - - - - - - -第 5 页,共 15 页 - - - - - - - - - - 11. #include #include void main()char s120,s220,s340;int i=0,j=0,k=0; printf(请输入按字母序排列的字符串1:); gets(s1); printf(请输入按字母序排列的字符串2:); gets(s2); while(s1i!=0&s2j!=0) if (s1is2j) s3k=s1i; k+;i+; else s3k=s2j; k+;j+; while(s1i!=0) s3k=s1i; k+;i+; while(s2j
11、!=0) s3k=s2j; k+;j+; s3k=0; printf(合并后的字符串:); puts(s3); 12. #include void main()int i,j,a55; for(i=0;i=0;j-) if(j=i) aij=1; else aij=aij+1+1; for(i=0;i5;i+) for(j=0;j5;j+) printf(%3d,aij); printf(n);精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 15 页 - - - - - - - - - - 1
12、3. #include void main()int i,j,a88; for(i=0;i8;i+) for(j=0;j8;j+) if(j=i|(i+j)=7) aij=1; else aij=0; for(i=0;i8;i+) for(j=0;j8;j+) printf(%3d,aij); printf(n); 14. #include void main()int i,j,sum,a53=20,30,26,30,20,25,25,50,20,46,15,10,35,15,12; for(i=0;i5;i+) sum=0; for(j=0;j3;j+) sum+=aij; switch (
13、i) case 0:printf(第一个 );break; case 1:printf(第二个 );break; case 2:printf(第三个 );break; case 3:printf(第四个 );break; case 4:printf(第五个 );break; printf(企业的总产值是:%d万元。 n,sum); for(j=0;j3;j+) sum=0; for(i=0;i5;i+) sum+=aij; switch (j) case 0:printf(A);break; case 1:printf(B);break; case 2:printf(C);break; 精品资
14、料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 15 页 - - - - - - - - - - printf(产品的总产值是:%d万元。 n,sum); 15. #include #define N 5void main()int i,j,aNN,bN; printf(请输入 %d个数: ,N); for(i=0;iN;i+) scanf(%d,&bi); for(i=0;iN;i+) for(j=i;jN;j+) aij=bj-i; for(j=0;ji;j+) aij=aji; for(i=0
15、;iN;i+) for(j=0;jN;j+) printf(%3d,aij); printf(n); 16. #include void main()int i=0,j=0,m,n,a20,b20;printf(请输入数组a 中的数据,以0 结束: ); scanf(%d,&ai);while(ai!=0) i+;scanf(%d,&ai);printf(请输入数组b 中的数据 , 以 0 结束: );scanf(%d,&bj);while(bj!=0)j+;scanf(%d,&bj);for(m=0;mi;m+) for(n=0;nj;n+) if(am=bn) printf(%3d在 a
16、中下标为 %d ,在 b 中下标为 %d 。,am,m,n); 17. #include 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 15 页 - - - - - - - - - - void main()int a2020,b2020,flag12020,flag22020,i,j,s,t,k,l,m,n;printf(请输入数组a 的一维长度:);scanf(%d,&k);printf(请输入数组a 的二维长度:);scanf(%d,&l);printf(请输入数组a 中的数据: );
17、for(i=0;ik;i+) for(j=0;jl;j+) scanf(%d,&aij);for(i=0;ik;i+) for(j=0;jl;j+) printf(%3d,aij); flag1ij=1; printf(n);printf(请输入数组b 的一维长度:);scanf(%d,&m);printf(请输入数组b 的二维长度:);scanf(%d,&n);printf(请输入数组b 中的数据: );for(i=0;im;i+) for(j=0;jn;j+) scanf(%d,&bij);for(i=0;im;i+) for(j=0;jn;j+) printf(%3d,bij); fla
18、g2ij=1; printf(n);for(i=0;ik;i+) for(j=0;jl;j+) for(s=0;sm;s+) for(t=0;tn;t+) if(aij=bst) flag1ij=0;flag2st=0; printf(只在一个数组中存在的有:); for(i=0;ik;i+) for(j=0;jl;j+)精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 15 页 - - - - - - - - - - if(flag1ij) printf(%3d,aij);for(i=0;im
19、;i+) for(j=0;jn;j+) if(flag2ij) printf(%3d,bij); 18. #include void main()int a101,i,j,count=0;for(i=1;i=100;i+) ai=1;for(i=2;i=100;i+) for(j=i;j=100;j+)if(j % i =0)aj*=-1;for(i=1;i=100;i+) if(ai=1) count+; printf(第%d张正面朝上。 n,i);printf(共有 %d张正面朝上。 n,count); 19. #include void main()int n,i,j,k,top,bot
20、tom,left,right,goup,godown,goleft,goright,a2020;i=0;j=0;goright=1;goup=0;godown=0;goleft=0;printf(请输入方阵的维数:);scanf(%d,&n);top=-1;bottom=n;left=-1;right=n;for(k=1;k=n*n;k+) aij=k; if(goright) if(jright-1) j+; else goright=0; godown=1; top+; i+; continue; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归
21、纳 - - - - - - - - - -第 10 页,共 15 页 - - - - - - - - - - if(godown) if(ileft+1) j-; elsegoleft=0; goup=1; bottom-; i-; continue; if(goup) if(itop+1) i-; elsegoup=0; goright=1; left+; j+; continue; for(i=0;in;i+) for(j=0;jn;j+) printf(%5d,aij); printf(n);第 7 章第 8 章精品资料 - - - 欢迎下载 - - - - - - - - - - -
22、欢迎下载 名师归纳 - - - - - - - - - -第 11 页,共 15 页 - - - - - - - - - - 三、编程题1. #include #define N 10void main()int i_valN;int *p;int i,j,val,k;for (i = 0 ; i N ; i+)scanf(%d,i_val+i);p = &i_val0;printf(排序前结果如下 :n);for(i = 0 ; i N; i+)printf(%dn,*(p+i);printf(n);for( i = 0 ; i N-1; i+)k=i;for(j = i+1 ; j N ;
23、 j+) if (pj pk) k=j;if (k!=i) val=pi;pi=pk;pk=val;printf(排序后结果如下 n);for(i = 0 ; i N; i+)printf(%dn,*(p+i);printf(n);2#include #define N 3精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 12 页,共 15 页 - - - - - - - - - - void main()int i_valNN=11,12,13,21,22,23,31,32,33;int *p;int n
24、Sum=0;int i;p = i_val0;printf(求对角线元素之和 ); for( i = 0 ; i N; i+)nSum += pi*N+i; nSum += p(N-i-1)*N+i; if(N%2) nSum-=pN/2*N+N/2;printf(结果如下 :n);printf(%dn,nSum);3#include #define N 5void f(int val ,int size)int min_index=0,max_index= 0;int i =0;int v;for (i = 1 ; i size ; i +)if(valivalmax_index) max_
25、index = i;v = valmax_index;valmax_index = valsize-1;valsize-1= v;v = valmin_index;valmin_index = val0;val0= v;精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 13 页,共 15 页 - - - - - - - - - - void main()int valN=91, 55 ,11, 44 , 33;int i;printf(执行函数 f 之前n);for(i = 0 ; i N; i+)prin
26、tf(%dn,*(val+i);f(val,N);printf(执行函数 f 之后n);for(i = 0 ; i N; i+)printf(%dn,*(val+i);printf(n);4.#include #include #define N 5void strcpy2(char * src ,char *dest)int i = 0; int len = strlen(src);for(i = 0 ; i len ; i+)desti= srci;destlen+i= srci;dest2*len=0;void main()char a1024,b1024;scanf(%s,a);str
27、cpy2(a,b);printf(%sn,b);精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 14 页,共 15 页 - - - - - - - - - - 5#include #include #define N 5int ishuiwen(char * str)int i = 0; int len = strlen(str);for(i = 0 ; i len /2 ; i+)if(stri!= strlen -1 -i )return 0;return 1;void main()char a100;scanf(%s,a);if(ishuiwen(a)printf(yesn);elseprintf(non);printf(n);精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 15 页,共 15 页 - - - - - - - - - -