C程序设计第四版谭浩强-课后习题答案-共11章_第1页
C程序设计第四版谭浩强-课后习题答案-共11章_第2页
C程序设计第四版谭浩强-课后习题答案-共11章_第3页
C程序设计第四版谭浩强-课后习题答案-共11章_第4页
已阅读5页,还剩232页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1-5#include<stdio.h>intmain()printf(" VeryGood!\n\n");printf(\n");intmain()printf(" VeryGood!\n\n");printf(\n");return0;l-6#include<stdio.h>intmain(){inta,b,c,max;printf("pleaseinputa,b,c:\n");scanf("%d,%d,%d",&a,&b,&c);max=a;if(max<b)max=b;if(max<c)max=c;printf("Thelargestnumberis%d\n",max);return0;)习题36习题823-1#include<stdio.h>#include<math.h>intmain(){floatp,r,n;r=0.1;n=10;p=pow((1+r),n);printf("p=%f\n",p);return0;)3-2-1#include<stdio.h>#include<math.h>intmain(){floatr5,r3,r2,rl,rO,p,pI,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.0468;rl=0.0414;r0=0.0072;pl=p*((l+r5)*5);p2=p*(l+2*r2)*(1+3*r3);息再存3年期p3=p*(l+3*r3)*(l+2*⑵;息再存2年期p4=p*pow(l+rl,5);存再存1年期,连续存5次p5=p*pow(l+r0/4,4*5);ー季度结算ー次printf("pl=%f\n",p1);和printf("p2=%f\n",p2);和//一次存5年期//先存2年期,到期后将本//先存3年期,到期后将本//存1年期,到期后将本息//存活期存款。活期利息每/Z输出按第1方案得到的本息/Z输出按第2方案得到的本息printf("p3=%f\n",p3);/Z输出按第3方案得到的本息和/Z输出按第/Z输出按第4方案得到的本息/Z输出按第5方案得到的本息和printf("p5=%f\n",p5);和return0;)3-2-2#include<stdio.h>#include<math.h>intmain(){doubler5,r3,r2,rl,r0,p,pI,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.0468;rl=0.0414;r0=0.0072;pl=p*((l+r5)*5);//一次存5年期p2=p*(l+2*r2)*(l+3*r3);息再存3年期p3=p*(l+3*r3)*(l+2*r2);息再存2年期p4=p*pow(l+rl,5);存再存1年期,连续存5次p5=p*pow(l+r0/4,4*5);一季度结算一次printf("pl=%f\n",pl);和printf(,'p2=%f\n',,p2);和printf("p3=%f\n",p3);和printf("p4=%f\n",p4);和printf("p5=%f\n",p5);和return0;//先存2年期,到期后将本//先存3年期,到期后将本〃存1年期,到期后将本息//存活期存款。活期利息每/Z输出按第1方案得到的本息/Z输出按第2方案得到的本息/Z输出按第3方案得到的本息/Z输出按第4方案得到的本息/Z输出按第5方案得到的本息3-2-3#include<stdio.h>#include<math.h>intmain(){floatr5,r3,r2,rl,rO,p,pI,p2,p3,p4,p5;p=1000;r5=0.0585;r3=0.054;r2=0.0468;rl=0.0414;r0=0.0072;pl=p*((l+r5)*5); 〃ー次存5年期p2=p*(l+2*i*2)*(l+3*r3); //先存2年期,到期后将本息再存3年期p3=p*(l+3*r3)*(l+2*r2); //先存3年期,到期后将本息再存2年期p4=p*pow(l+rl,5); 〃存1年期,到期后将本息存再存1年期,连续存5次p5=p*pow(l+r0/4,4*5); //存活期存款。活期利息每ー季度结算ー次printf("pl=%10.2f\n",pl);〃输出按第1方案得到的

本息和方案得到的方案得到的方案得到的方案得到的方案得到的方案得到的方案得到的本息和printf("p3=%10.2An",p3); /Z输出按第本息和printf("p4=%10.2f\n",p4); //输出按第本息和printf("p5=%10.2f\n",p5); /Z输出按第本息和return0;)3-3.#include<stdio.h>#include<math.h>intmain(){floatd=300000,p=6000,r=0.0l,m;m=log10(p/(p-d*r))/log10(1+r);printf("m=%6.2f\n",m);return0;3-4#include<stdio.h>intmain(){intcl,c2;cl=197;c2=198;printf("cl=%c,c2=%c\n",c1,c2);printf("cl=%d,c2=%d\n",cl,c2);return0;)3-5#include<stdio.h>intmain(){inta,b;floatx,y;charcl,c2;scanf("a=%db=%d",&a,&b);scanf("%f%e",&x,&y);scanf("%c%c",&cl,&c2);printf("a=%d,b=%d,x=%f,y=%f,cl=%c,c2=%c\n",a,b,x,y,cl,c2)return0;)3-6#include<stdio.h>intmain()(charcl='C',c2='h',c3='i',c4='n',c5='a';cl=cl+4;c2=c2+4;c3=c3+4;c4=c4+4;

c5=c5+4;printf("passworis%c%c%c%c%c\n",cl,c2,c3,c4,c5);return0;)3-7#include<stdio.h>intmain(){floath,r,l,s,sq,vq,vz;floatpi=3.141526;printf("请输入圆半径r,圆柱高h:");scanf("%f,%f,,&r,&h);〃要求输入圆半径r和圆柱咼hl=2*pi*r;〃计算圆周长1s=r*r*pi;〃计算圆面积sq=4*pi*r*r;〃计算圆球表面积sqvq=3.0/4.0*pi*r*r*r;〃计算圆球体积vqvz=pi*r*r*h;vz=pi*r*r*h;〃计算圆柱体积vzprintf("圆周长为:l=%6.2f\n",l);printf("圆面积为:s=%6.2f\n",s);printf("圆球表面积为:sq=%6.2f\n",sq);printf("圆球体积为:v=%6.2f\n",vq);printf("圆柱体积为: vz=%6.2f\n",vz);return0;3-8-1#include<stdio.h>intmain()(intcl,c2; 〃整型定义printf("请输入两个整数cl,c2:");scanf("%d,%d",&cl,&c2);printf("按字符输出结果果");printf("%c,%c\n",cl,c2);printf("按ASCII码输出结果为:\n");printf("%d,%d\n",cl,c2);return0;)3-8-2#include<stdio.h>intmain()charcl,c2;charcl,c2;〃定义字符型变〃定义整型变量〃赋值给整型〃定义整型变量〃赋值给整型〃定〃定义intil,i2;printf("请输入两个字符cl,c2:");scanf("%c,%c",&cl,&c2);il=cl;变量i2=c2;printf("按字符输出结果:'n");printf("%c,%c\n",il,i2);printf("按整数输出结果:'n");printf("%d,%d\n",cl,c2);return0;)3-8-3#include<stdio.h>intmain()(charcl,c2;义为字符型intil,i2;为整型printf("请输入两个整数il,i2:");scanf("%d,%d",&il,&i2);cl=il; 〃将整数赋值给字符变量c2=i2;printf("按字符输出结果:\ゼ);printf("%c,%c\n",cl,c2);printf("按整数输出结果:'n");printf("%d,%d\n",cl,c2);return0;3-8#include<stdio.h>intmain()(charcl,c2;printf("请输入两个字符cl,c2:");cl=getchar();c2=getchar();printf("用putchar语句输出结果为putchar(cl);putchar(c2);printf("\n");printf("用printf语句输出结果为ド);printf("%c%c\n",cl,c2);return0;)习题1114-4-1#include<stdio.h>intmain()(inta,b,c;printf("请输入三个整数:");scanf("%d,%d,%d",&a,&b,&c);if(a<b)if(b<c)printf("max=%d\n",c);elseprintf("max=%d\n",b);elseif(a<c)printf("max=%d\n",c);elseprintf("max=%d\n",a);return0;)4-4-2#include<stdio.h>intmain(){inta,b,c,temp,max;printf("请输入三个整数:");scanf("%d,%d,%d",&a,&b,&c);temp=(a>b)?a:b; /・将a和b中的大者存入temp中・/max=(temp>c)?temp:c; /・将a和b中的大者与c比较,取最大者・/printf("三个整数的最大数是%d\n",max);return0;#include<stdio.h>#include<math.h>#defineM1000intmain()(inti,k;printf("请输入一个小于%d的整数scanf("%d",&i);while(i>M){printf(”输入的数不符合要求,请重新输入一个小于%d的整数i:”,M);scanf("%d",&i);)k=sqrt(i);printf("%d的平方根的整数部分是:%d\n",i,k);return0;)4-5#include<stdio.h>#include<math.h>#defineM1000intmain()(inti,k;printf("请输入一个小于%d的整数scanf("%d",&i);if(i>M){printf("输入的数不符合要求,请重新输入一个小于%d的整数scanf("%d",&i);)k=sqrt(i);printf("%d的平方根的整数部分是:%d\n",i,k);return0;4-6.#include<stdio.h>intmain(){intx,y;printf("输入x:");scanf("%d",&x);if(x<1){y=x;printf("x=%3d,}elseif(x<10){y=2*x-l;printf("x=%d,}else{y=3*x-ll;printf("x=%d,}return0;/*x<l*/y=x=%d\n",x,y);/*l=<x<10*/y=2*x-l=%d\n",x,y);/*x>=10*/y=3*x-11=%d\n",x,y)#include<stdio.h>intmain()(intx,y;printf("enterx:");scanf("%d",&x);y=-i;if(x!=O)if(x>0)y=l;elsey=0;printf("x=%d,y=%d\n",x,y);return0;)4-7-2#include<stdio.h>intmain()intx,y;printf("pleaseenterx:");scanf("%d",&x);y=0;if(x>=0)if(x>0)y=l;elsey="l;printf("x=%d,y=%d\n",x,y);return0;)4-8#include<stdio.h>intmain(){floatscore;chargrade;printf(”请输入学生成绩:");scanf("%f",&score);while(score>100llscore<0){printf("\n输入有误,请重输つ;scanf("%f',&score);switch((int)(score/10)){case10:case9:grade='A';break;case8:grade='B';break;case7:grade='C;break;case6:grade='D';break;case5:case4:case3:case2:case1:case0:grade='E';),score,grade);printf("成绩是%5.1f,相应的等级是%c\nreturn0;,score,grade);)4-9#include<stdio.h>#include<math.h>intmain()int num,indiv,ten,hundred,thousand,ten_thousand,place;〃分别代表个位,十位,百位,千位,万位和位数printf("请输入ー个整数(〇ー99999)ゴ);scanf("%d",&num);if(num>9999)place=5;elseif(num>999)place=4;elseif(num>99)place=3;elseif(num>9)place=2;elseplace=l;printf("位数:%d\n",place);printf("每位数字为:");ten_thousand=num/10000;thousand=(int)(num-ten_thousand*10000)/1000;hundred=(int)(num-ten_thousand*10000-thousand*1000)/100;ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10;indiv=(int)(num-ten_thousand*1OOOO-thousand*1000-hundred*100-ten*10);switch(place){case5:printf("%d,%d,%d,%d,%d",ten_thousand,thousand,hundred,ten,indiv);printf("\n反序数字为ゴ);printf("%d%d%d%d%d\n",indiv,ten,hundred,thousand,ten_thousand);break;case4:printf("%d,%d,%d,%d",thousand,hundred,ten,indiv);printf("\n反序数字为ア);printf("%d%d%d%d\n",indiv,ten,hundred,thousand);break;case3:printf("%d,%d,%d",hundred,ten,indiv);printf("\n反序数字为ぐ);printf("%d%d%d\n",indiv,ten,hundred);break;case2:printf("%d,%d",ten,indiv);printf("\n反序数字为ア);printf("%d%d\n",indiv,ten);break;case1:printf("%d",indiv);printf("\n反序数字为ア);printf("%d\n",indiv);break;}return0;4-10-1#include<stdio.h>intmain()(inti;doublebonus,bon1,bon2,bon4,bon6,bon10;bon1=100000*0.1;bon2=bon1+100000*0.075;bon4=bon2+l00000*0.05;bon6=bon4+100000*0.03;bonl0=bon6+400000*0.015;printf("请输入利润i:");scanf("%d",&i);if(i<=100000)bonus=i*0.1;elseif(i<=200000)bonus=bon1+(i-l00000)*0.075;elseif(i<=400000)bonus=bon2+(i-200000)*0.05;elseif(i<=600000)bonus=bon4+(i-400000)*0.03;elseif(i<=1000000)bonus=bon6+(i-600000)*0.015;elsebonus=bon10+(i-l000000)*0.01;printf("奖金是:%10.2f\n",bonus);return0;4-10-2#include<stdio.h>intmain()(inti;doublebonus,bon1,bon2,bon4,bon6,bon10;intbranch;bon1=100000*0.1;bon2=bon1+100000*0.075;bon4=bon2+200000*0.05;bon6=bon4+200000*0.03;bon10=bon6+400000*0.015;printf("请输入利润i:");scanf("%d",&i);branch=i/100000;if(branch>10)branch=10;switch(branch){case0:bonus=i*0.1;break;casel:bonus=bonl+(i-l00000)*0.075;break;case2;case3;bonus=bon2+(i-200000)*0.05;break;bonus=bon4+(i-400000)*0.03;break;bonus=bon6+(i-600000)*0.015;break;bonus=bon10+(i-1000000)*0.01;Iprintf("奖金是%10.2f\n",bonus);return0;4-11#include<stdio.h>intmain(){intt,a,b,c,d;printf("请输入四个数:");scanf("%d,%d,%d,%d",&a,&b,&c,&d);printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(a>d){t=a;a=d;d=t;}if(b>c){t=b;b=c;c=t;}if(b>d){t=b;b=d;d=t;}if(c>d){t=c;c=d;d=t;}printf("排序结果如下:'n");printf("%d%d%d%d\n" ,a,b,c,d);return0;4-12#include<stdio.h>intmain()(inth=10;floatx1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=2,y4=-2,x,y,dI,d2,d3,d4;printf("请输入ー个点(x,y)ゴ);scanf("%f,%f",&x,&y);dI=(x-x4)*(x-x4)+(y-y4)*(y-y4); /・求该点到各中心点距离・/d2=(x-xl)*(x-x1)+(y-yl)*(y-y1);d3=(x-x2)*(x-x2)+(y-y2)*(y-y2);d4=(x-x3)*(x-x3)+(y-y3)*(y-y3);if(dl>l&&d2>l&&d3>l&&d4>l) h=0;/・判断该点是否在塔外・/printf("该点高度为%d\n",h);return0;)习题1405-2#include<stdio.h>#include<math.h> //程序中用到数学函数fabs,应包含头文件math.nintmain()(intsign=l,count=0; 〃sign用来表示数值的符号,count符号,count用来统计循环次数doublepi=0.0,n=1.0,term=1.0;值,最后代表冗的值,n代表分母,while(fabs(term)>=1e-8)绝对值是否大于或等于!0的(-6)次方pi=pi+term;到pi中n=n+2;母sign=-sign;项的符号与上一项符号相反term=sign/n;termcount++;Ipi=pi*4;以4,オ是冗的近似值printf("pi=%10.8f\n",pi);printf("count=%d\n",count);return0;//pi开始代表多项式的term代表当前项的值/Z检查当前项term的//把当前项term累加〃n+2是下ー项的分〃sign代表符号,下ー/Z求出下ー项的值//count累加1/Z多项式的和pi乘〃输出兀的近似值/Z输出循环次数5-3#include<stdio.h>intmain()(intp,r,n,m,temp;printf("请输入两个正整数n,m:");scanf("%d,%d,",&n,&m);if(n<m){temp=n;n=m;m=temp;}p=n*m;while(m!=O)(r=n%m;n=m;m=r;printf("它们的最大公约数为:%d\n”,n);printf("它们的最小公倍数为:%d\n",p/n);return0;)5-4#include<stdio.h>intmain(){charc;intIetters=0,space=0,digit=0,other=0;printf("请输入一行字符:'n");while((c=getchar())!=*\n,)(if(c>='a'&&c<='z'IIc>='A'&&c<='Z')letters++;elseif(c=='')space++;elseif(c>='0'&&c<='9')digit++;elseother++;printf("字母数:%d\n空格数:%d\n数字数:%d\n其它字符数:%d\n”,letters,space,digit,other);return0;)5-5#include<stdio.h>intmain()(inta,n,i=1,sn=0,tn=0;printf("a,n=:");scanf("%d,%d",&a,&n);while(i<=n)(tn=tn+a;/・赋值后的tn为i个a组成数的值・/sn=sn+tn;/*赋值后的sn为多项式前i项之和・/a=a*10;++i;)printf("a+aa+aaa+...=%d\n",sn);return0;)5-6#include<stdio.h>intmain(){doubles=O,t=l;intn;for(n=l;n<=20;n++)(t=t*n;s=s+t;Iprintf("l!+2!+...+20!=%22.15e\n",s);return0;)5-7#include<stdio.h>intmain()intnl=100,n2=50,n3=10;doublek,sl=0,s2=0,s3=0;for(k=l;k<=nl;k++)/・计算1至U100的和・/{sl=sl+k;}for(k=l;k<=n2;k++)/・计算1至U50各数的平方和・/{s2=s2+k*k;}for(k=l;k<=n3;k++)/・计算1至!J10的各倒数和・/{s3=s3+l/k;}printf("sum=%15.6f\n",sl+s2+s3);return0;5-8#include<stdio.h>intmain()inti,j,k,n;printf("parcissusnumbersare");for(n=100;n<1000;n++)

i=n/100;j=n/10-i*10;k=n%10;if(n==i*i*i+j*j*j+k*k*k)printf("%d",n);)printf("\n");return0;)5-9-1#defineM1000 /・定义寻找范围・/#include<stdio.h>intmain()(intkl,k2,k3,k4,k5,k6,k7,k8,k9,kl0;inti,a,n,s;for(a=2;a<=M;a++) /*a是2-1000之间的整数,检查它是否完数ッ

{n=0;/*它是否完数ッ

{n=0;/*n用来累计a的因子的个数*/s=a; /*s用来存放尚未求出的因子之和,开始时等于a*/for(i=l;i<a;i++) /・检查i是否a的因子・/if(a%i==0) /*如果i是a的因子*/{n++; /*n加1,表示新找到ー个因子*/s=s-i; /*是尚未求出的因子之和s=s-i; /*是尚未求出的因子之和・/switch(n) /*klO*/{case1:kl=i;break;/*k2=i;break; /*k3=i;break; /*k4=i;break; /*k5=i;break; /*s减去已找到的因子,s的新值将找到的因子赋给kl...k9,或找出的笫1个因子赋给kl*/找出的笫2个因子赋给k2*/找出的笫3个因子赋给k3ッ找出的笫4个因子赋给k4*/找出的笫5个因子赋给k5qk6=i;break;/・找出的笫6个因子赋给k6*/k7=i;break;/・找出的笫7个因子赋给k7*/k8=i;break;/・找出的笫8个因子赋给k8*/k9=i;break; /・找出的笫9个因子赋给k9*/kl0=i;break;/・找出的笫10个因子赋给klO*/if(s==0){printf("%d,Itsfactorsare",a);if(n>l)printf("%d,%d",kl,k2); /*n>l表示a至少有2个因子・/if(n>2)printf(",%d",k3); /*n>2表示至少有3个因子,故应再输出ー个因子・/if(n>3)printf(",%d",k4); /*n>3表示至少有4个因子,故应再输出ー个因子・//・/・以下类似*/if(n>5)printf(",%d",k6);if(n>6)printf(",%d",k7);if(n>7)printf(",%d",k8);if(n>8)printf(",%d",k9);if(n>9)printf(",%d",klO);printf("\n");)}return0;)5-9-2#include<stdio.h>intmain(){intm,s,i;for(m=2;m<1000;m++){s=0;for(i=l;i<m;i++)if((m%i)==0)s=s+i;if(s==m){printf("%d,itsfactorsare",m);for(i=l;i<m;i++)if(m%i==0)printf("%d",i);printf("\n");))return0;5-10#include<stdio.h>intmain()(inti,n=20;doublea=2,b=l,s=0,t;for(i=l;i<=n;i++)(s=s+a/b;t=a,a=a+b,b=t;printf("sum=%16.1Of\n",s);return0;5-11#include<stdio.h>intmain()(doublesn=100,hn=sn/2;intn;for(n=2;n<=10;n++){sn=sn+2*hn; /・第n次落地时共经过的米数・/hn=hn/2;/・第n次反跳高度・/}printf("第10次落地时共经过%f米、n",sn);printf("第10次反弹%£米、n”,hn);return0;#include<stdio.h>intmain()(intday,xl,x2;day=9;x2=l;while(day>0){xl=(x2+l)*2; /*第1天的桃子数是第2天桃子数加1后的2倍.*/x2=x1;day—;)printf("total=%d\n",x1);return0;5-13#include<stdio.h>#include<math.h>intmain()floata,xO,xl;printf("enterapositivenumber:");scanf("%f",&a);x0=a/2;xl=(x0+a/x0)/2;do{xO=x1;xl=(x0+a/x0)/2;}while(fabs(x0-xl)>=le-5);printf("Thesquarerootof%5.2fis%8.5f\n",a,xl);return0;5-14#include<stdio.h>#include<math.h>intmain(){doublexl,x0,f,fl;xl=1.5;do{x0=x1;f=((2*x0-4)*x0+3)*x0-6;fl=(6*xO-8)*xO+3;xl=xO-f/fl;}while(fabs(xl-xO)>=le-5);printf("Therootofequationis%5.2f\n",xl);return0;)5-15#include<stdio.h>#include<math.h>intmain(){floatx0,xl,x2,fx0,fxl,fx2;do{printf("enterxl&x2:");scanf("%f,%f",&xl,&x2);fxl=xl*((2*xl-4)*xl+3)-6;fx2=x2*((2*x2-4)*x2+3)-6;}while(fx1*fx2>0);do{x0=(xl+x2)/2;fx0=x0*((2*x0-4)*x0+3)-6;if((fx0*fxl)<0){x2=x0;fx2=fx0;}else{xl=xO;fxl=fxO;)}while(fabs(fxO)>=le-5);printf("x=%6.2f\n",x0);return0;5-16#include<stdio.h>intmain(){inti,j,k;for(i=0;i<=3;i++){for(j=0;j<=2-i;j++)printf("");for(k=0;k<=2*i;k++)printf("*");printf("\n");)for(i=0;i<=2;i++){for(j=O;j<=i;j++)printf("");for(k=0;k<=4-2*i;k++)printf("*");printf("\n");}return0;)5-17#include<stdio.h>intmain()(chari,j,k; /・是a的对手;j是b的对手;k是c的对手・/for(i='x';i<='z';i++)for(j='x';j<='z';j++)if(i!=j)for(k='x';k<='z';k++)if(i!=k&&j!=k)if(i!='x'&&k!='x'&&k!='z')printf("A—%c\nB—%c\nC—%c\n",i,j,k);return0;I第6章利用数组处理批量数据142#include<stdio.h>#include<math.h>intmain(){inti,j,n,a[101];for(i=l;i<=100;i++)a[i]=i;a[l]=0;for(i=2;i<sqrt(100);i++)for(j=i+1;j<=100;j++){if(a[i]!=0&&a[j]!=O)if(a[j]%a[i]==0)a[j]=O;printf("\n");for(i=2,n=0;i<=100;i++){if(a[i]!=0){printf("%5d",a[i]);n++;)if(n==10){printf("\n");n=0;)}printf("\n");return0;)6-2#include<stdio.h>intmain(){inti,j,min,temp,a[11];printf("enterdata:\n");for(i=l;i<=10;i++){printf("a[%d]=",i);scanf("%d",&a[i]);printf("\n");printf("Theorginalnumbers:\n");for(i=l;i<=10;i++)printf("%5d",a[i]);printf("\n");for(i=l;i<=9;i++){min=i;for(j=i+l;j<=10;j++)if(a[min]>a[j])min=j;temp=a[i];a[i]=a[min];a[min]=temp;)printf("\nThesortednumbers:\n");for(i=l;i<=10;i++)printf("%5d",a[i]);printf("\n");return0;6-3#include<stdio.h>intmain()(inta[3][3],sum=0;inti,j;printf("enterdata:\nH);for(i=0;i<3;i++)for(j=O;j<3;j++)scanf(H%3dn,&a[i][j]);for(i=0;i<3;i++)sum=sum+a[i][i];printf("sum二%6d\n”,sum);return0;)6-4#include<stdio.h>intmain(){inta[ll]={1,4,6,9,13,16,19,28,40,100);inttemp1,temp2,number,end,i,j;printf("arraya:\n");for(i=0;i<10;i++)printf("%5d",a[i]);printf("\n");printf("insertdata:");scanf("%d",&number);end=a[9];if(number>end)a[10]=number;else{for(i=0;i<10;i++){if(a[i]>number){templ=a[i];a[i]=number;for(j=i+l;j<ll;j++){temp2=a[j];a[j]=templ;templ=temp2;break;)printf("Nowarraya:\n");for(i=0;i<ll;i++)printf("%5d",a[i]);printf("\n");return0;6-5#include<stdio.h>#defineN5intmain()(inta[N],i,temp;printf(Henterarraya:\nu);for(i=0;i<N;i++)scanf(H%dH,&a[i]);printf(Harraya:\n");for(i=0;ivN;i++)printf(',%4d",a[i]);〃循环的〃循环的作用是将对称的元素的值互换{temp=a[i];a[i]=a[N-i-l];a[N-i-l]=temp;)printf("\nNow,arraya:\n");for(i=0;i<N;i++)printf(n%4dn,a[i]);printf(H\n");return0;6-6#include<stdio.h>#defineN10intmain(){inti,j,a[N][N];for(i=0;i<N;i++){a[i][i]=l;a[i][0]=l;for(i=2;i<N;i++)for(j=l;j<=i-l;j++)a[i][j]=a[i-l][j-l]+a[i-l][j];for(i=0;i<N;i++){for(j=O;j<=i;j++)printf("%6d",a[i][j]);printf("\n");)printf("\n");return0;)6-7#include<stdio.h>intmain(){inta[15][15],i,j,k,p,n;p=l;while(p==l){printf("entern(n=1—15):");scanf("%d",&n);if((n!=0)&&(n<=15)&&(n%2!=0))P=0;for(i=l;i<=n;i++)for(j=l;j<=n;j++)a[i][j]=0;j=n/2+l;a[l]U]=l;for(k=2;k<=n*n;k++){i=i-l;j=j+Uif((i<l)&&(j>n)){i=i+2;)else{if(i<l)i=n;if(j>n)j=l;)if(a[i]U]==0)a[i][j]=k;else{i=i+2;j=j-l;a[i][j]=k;for(i=l;i<=n;i++){for(j=l;j<=n;j++)printf("%5d",a[i][j]);printf("\n");)return0;6-8#include<stdio.h>#defineN4#defineM5 /・数组为4行5列・/intmain()(inti,j,k,a[N][M],max,maxj,flag;printf("pleaseinputmatrix:\n");for(i=0;i<N;i++)for(j=O;j<M;j++)scanf("%d",&a[i][j]);for(i=0;i<N;i++)

{max=a[i][0];*/maxj=0;存・/for(j=O;j<M;j++)if(a[i][j]>max)

{max=a[i][j];max中・/maxj=j;放在maxj中・/)flag=l;为1代表・/for(k=0;k<N;k++)if(max>a[k][maxj])比・/{flag=0;表示不是鞍点令flagl为0・//・输入数组・//・开始时假设a[i][0]最大/・将列号〇赋给maxj保/・找出第i行中的最大数・//・将本行的最大数存放在/・将最大数所在的列号存/・先假设是鞍点,以flag/・将最大数和其同列元素相/・如果max不是同列最小,continue;}if(flag) /・如果flagl为1表示是鞍点・/{printf("a[%d][%d]=%d\n",i,maxj,max);/*输出鞍点的值和所在行列号ッbreak;})if(!flag) /・如果flag为。表示鞍点不存在・/printf("Itisnotexist!\n");return0;6-9#include<stdio.h>#defineN15intmain(){inti,number,top,bott,mid,loca,a[N],flag=l,sign;charc;printf("enterdata:\n");scanf("%d",&a[O]);i=l;while(i<N){scanf("%d",&a[i]);if(a[i]>=a[i-l])i++;elseprintf("enterthisdataagainAn");}printf("\n");for(i=0;i<N;i++)printf("%5d",a[i]);printf("\n");while(flag){printf("inputnumbertolookfor:");scanf("%d",&number);sign=0;top=0; 〃top是査找区间的起始位置bott=N-l; 〃bott是查找区间的最末位置if((number<a[O])ll(number>a[N-1]))〃要查的数不在查找区间内loca=-1;//表不找不到while((!sign)&&(top<=bott)){mid=(bott+top)/2;if(number==a[mid]){loca=mid;positionprintf("Hasfound%d,is%d\n",number,loca+l);positionsign=l;}elseif(number<a[mid])bott=mid-l;elsetop=mid+l;}if(!signllloca==-l)printf("cannotfind%d.\n",number);;printf("continuornot(Y/N)?");scanf("%c",&c);if(c=='N'llc=='n')flag=0;return0;6-10#include<stdio.h>intmain(){inti,j,upp,low,dig,spa,oth;chartext[3][80];upp=low=dig=spa=oth=0;for(i=0;i<3;i++){printf("pleaseinputline%d:\n",i+l);gets(text[i]);for(j=0;j<80&&text[i][j]!='\O';j++){if(text[i][j]>='A'&&text[i][j]<='Z')upp++;elseif(text[i][j]>='a'&&text[i][j]<='z')low++;elseif(text[i][j]>=(0'&&text[i][j]<='9')dig++;elseif(text[i][j]=='')spa++;elseoth++;printf("\nuppercase:%d\n",upp);printf("lowercase:%d\n",low);printf("digit:%d\n",dig);printf("space :%d\n",spa);printf("other :%d\n",oth);return0;)6-11#include<stdio.h>intmain(){chara[5]={inti,j,k;charspace='for(i=0;i<5;i++){printf("\n");printf("");for(j=l;j<=i;j++)printf("%c",space);for(k=0;k<5;k++)printf("%c",a[k]);)printf("\n");return0;6-12a-c#include<stdio.h>intmain(){intj,n;charch[80],tran[80];printf("inputciphercode:");gets(ch);printf("\nciphercode:%s",ch);j=0;while(chU]!='\0'){if((ch[j]>='A')&&(ch[j]<='Z'))tran[j]=155-ch[j];elseif((ch[j]>='a')&&(ch[j]<='z'))tran[j]=219-ch[j];elsetran[j]=ch[j];j++;)n=j;printf("\noriginaltext:");for(j=O;j<n;j++)putchar(tran[j]);printf("\n");return0;6-12b#include<stdio.h>intmain(){intj,n;charch[80];printf("inputciphercode:\n");gets(ch);printf("\nciphercode:%s\n",ch);j=0;while(chU]!='\0'){if((ch[j]>='A')&&(ch[j]<='Z'))ch[j]=155-ch[j];elseif((ch[j]>='a')&&(ch[j]<='z'))ch[j]=219-ch[j];elsech[j]=ch[j];j++;)n=j;printf("originaltext:");for(j=O;j<n;j++)putchar(ch[j]);printf("\n");return0;6-13#include<stdio.h>intmain()(charsl[80],s2[40];inti=O,j=O;printf("inputstring!scanf(H%sn,sl);printf(Hinputstring2:H);scanf("%sn,s2);while(sl[i]!='\Of)i++;while(s2[j]!=,\0,)sl[i++]=s2[j++];sl[i]=\O,;printf(H\nThenewstringis:%s\n",sl);return0;#include<stdio.h>intmain(){inti,resu;charsl[100],s2[100];printf("inputstring1:");gets(sl);printf("\ninputstring2:");gets(s2);i=0;while((sl[i]==s2[i])&&(sl[i]!='\O'))i++;if(sl[i]=='\O'&&s2[i]=='\0')resu=O;elseresu=sl[i]-s2[i];printf("\nresult:%d.\n",resu);return0;6-15#include<stdio.h>#include<string.h>intmain(){charsl[80],s2[80];inti;printf("inputs2:");scanf("%s",s2);for(i=0;i<=strlen(s2);i++)sl[i]=s2[i];printf("sl:%s\n",sl);return0;习题2187-1-1#include<stdio.h>intmain(){inthcf(int,int);intlcd(int,int,int);intu,v,h,l;scanf("%d,%d",&u,&v);h=hcf(u,v);printf("H.C.F=%d\n",h);l=lcd(u,v,h);printf("L.C.D=%d\n",l);return0;)inthcf(intu,intv){intt,r;if(v>u){t=u;u=v;v=t;}while((r=u%v)!=0){u=v;v=r;}retum(v);)intlcd(intu,intv,inth)(return(u*v/h);7-1-2#include<stdio.h>intHcf,Lcd;intmain(){voidhcf(int,int);voidlcd(int,int);intu,v;scanf("%d,%d",&u,&v);hcf(u,v);lcd(u,v);printf("H.C.F=%d\n",Hcf);printf("L.C.D=%d\n",Lcd);return0;)voidhcf(intu,intv){intt,r;if(v>u){t=u;u=v;v=t;}while((r=u%v)!=0){u=v;v=r;)Hcf=v;)voidlcd(intu,intv){Lcd=u*v/Hcf;)7-2#include<stdio.h>#include<math.h>floatxl,x2,disc,p,q;intmain(){voidgreater_than_zero(float,float);voidequal_to_zero(float,float);voidsmaller_than_zero(float,float);floata,b,c;printf("inputa,b,c:");scanf("%f,%f,%f",&a,&b,&c);printf("equation:%5.2f*x*x+%5.2f*x+%5.2f=0\n",a,b,c);disc二b*b-4*a*c;printf("root:\n");if(disc>0)(greater_than_zero(a,b);printf("xl=%f\t\tx2=%f\n",xl,x2);)elseif(disc==0){equal_to_zero(a,b);printf("xl=%f\t\tx2=%f\n",xl,x2);)else{smaller_than_zero(a,b);printf("xl=%f+%fi\tx2=%f-%fi\n",p,q,p,q);)return0;)voidgreater_than_zero(floata,floatb){x1=(-b+sqrt(disc))/(2*a);x2=(-b-sqrt(disc))/(2*a);voidequal_to_zero(floata,floatb)(xl=x2=(-b)/(2*a);)voidsmaller_than_zero(floata,floatb){p=-b/(2*a);q=sqrt(-disc)/(2*a);7-3#include<stdio.h>intmain(){intprime(int);intn;printf("inputaninteger:");scanf(”%d”,&n);if(prime(n))printf(n%disaprimeAn”,n);elseprintf(n%disnotaprime.\nn,n);return0;)intprime(intn){intflag=l,i;for(i=2;i<n/2&&flag==l;i++)if(n%i==0)flag=0;return(flag);)7-4#include<stdio.h>#defineN3intarray[N][N];intmain(){voidconvert(intarray[][3]);intij;printf(Hinputarray:\nn);for(i=0;i<N;i++)for(j=O;j<N;j++)scanf(n%d",&array[i][j]);printf(n\noriginalarray:\nn);for(i=0;i<N;i++){for(j=O;j<N;j++)printf(n%5dn,array[i][j]);printf(H\nn);)convert(array);printf(nconvertarray:\nn);for(i=0;i<N;i++){for(j=O;j<N;j++)printf(n%5d",array[i][j]);printf(n\nn);)return0;)voidconvert(intarray[][3]){inti,j,t;for(i=0;i<N;i++)for(j=i+l;j<N;j++){t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;))7.5#include<stdio.h>#include<string.h>intmain(){voidinverse(charstr[]);charstr[100];printf(ninputstring:H);scanf(n%sH,str);inverse(str);printf(Hinversestring:%s\n",str);return0;voidinverse(charstr[]){chart;inti,j;for(i=0,j=strlen(str);i<(strlen(str)/2);i4-+,j—){t=str[i];str[i]=str[j-l];str[j-l]=t;7-6#include<stdio.h>intmain(){voidconcatenate(charstring1[],charstring2[],charstring[]);charsl[100],s2[100],s[100];printf("inputstring1:");scanf("%s",sl);printf("inputstring2:");scanf("%s",s2);concatenate(sl,s2,s);printf("\nThenewstringis%s\n",s);return0;}voidconcatenate(charstring1[],charstring2[],charstring[]){inti,j;for(i=0;stringl[i]!='\0';i++)string[i]=stringl[i];for(j=0;string2[j]!='\0';j++)string[i+j]=string2[j];string[i+j]='\0';)7-7#include<stdio.h>intmain()voidcpy(char[],char[]);charstr[80],c[80];printf(ninputstring:n);gets(str);cpy(str,c);printf(HThevowellettersare:%s\nH,c);return0;)voidcpy(chars[],charc[])(inti,j;for(i=O,j=O;s[i]!=,\O';i++)if(s[i]==,a,lls[i]==,A,lls[i]==,e,lls[i]==E,lls[i]==,i,ls[i]==Tlls[i]==,o,lls[i]==,O,lls[i]==,u,lls[i]==,U,){c[j]=s[i];j++;}c[j]=\O';7-8#include<stdio.h>#include<string.h>intmain()(charstr[80];voidinsert(char[]);printf("inputfourdigits:*');scanf("%s",str);insert(str);return0;)voidinsert(charstr[]){inti;for(i=strlen(str);i>O;i—){str[2*i]=str[i];str[2*i-l]='}printf("output:\n%s\n",str);7-9#include<stdio.h>intletter,digit,space,others;intmain()(voidcount(char[]);chartext[80];printf(ninputstring:\nH);gets(text);printf("string:");puts(text);letter=0;digit=O;space=0;others=0;count(text);printf("\nletter:%d\ndigit:%d\nspace:%d\nothers:%d\n",letter,digit,space,others);return0;voidcount(charstr[])(inti;for(i=O;str[i]!=,\O,;i++)if((str[i]>=,a'&&str[i]<=,z,)ll(str[i]>='A,&&str[i]<='Z'))letter++;elseif(str[i]>='0'&&str[i]<=,9,)digit++;elseif(str[i]==32)space++;elseothers++;)7-10#include<stdio.h>#include<string.h>intmain(){intalphabetic(char);intlongest(char[]);inti;charline[100];printf("inputoneline:\n");gets(line);printf("Thelongestwordisfor(i=longest(line);alphabetic(line[i]);i++)printf("%c",Iine[i]);printf("\n");return0;)intalphabetic(charc){if((c>='a'&&c<='z')ll(c>='A'&&c<=,z,))retum(l);elseretum(O);)intlongest(charstring[]){intlen=O,i,length=O,flag=l,place=0,point;for(i=O;i<=strlen(string);i++)if(alphabetic(string[i]))if(flag){point=i;flag=0;)elselen++;else{flag=l;if(len>=length){length=len;place=point;len=0;)}retum(place);)7-11#include<stdio.h>#include<string.h>#defineN10charstr[N];intmain(){voidsort(char[]);inti,flag;for(flag=1;flag==1;){printf("inputstring:\n");scanf("%s",&str);if(strlen(str)>N)printf("stringtoolong,inputagain!");elseflag=0;)sort(str);printf("stringsorted:\n");for(i=0;i<N;i++)printf("%c",str[i]);printf("\n");return0;)voidsort(charstr[]){inti,j;chart;for(j=l;j<N;j++)for(i=O;(i<N-j)&&(str[i]!='\0');i++)if(str[i]>str[i+l]){t=str[i];str[i]=str[i+l];str[i+l]=t;))7-12#include<stdio.h>#include<math.h>intmain(){floatsolut(floata,floatb,floatc,floatd);floata,b,c,d;printf("inputa,b,c,d:");scanf("%f,%f,%f,%f",&a,&b,&c,&d);printf("x=%10.7f\n",solut(a,b,c,d));return0;floatsolut(floata,floatb,floatc,floatd){floatx=l,xO,f,fl;do{xO=x;f=((a*xO+b)*xO+c)*xO+d;f1=(3*a*x0+2*b)*x0+c;x=xO-f/fl;}while(fabs(x-x0)>=le-3);retum(x);)7-13#include<stdio.h>#defineN10#defineM5floatscore[N][M];floata_stu[N],a_cour[M];intr,c;intmain(){inti,j;floath;floats_var(void);floathighest();voidinput_stu(void);voidaver_stu(void);voidaver_cour(void);input_stu();aver_stu();aver_cour();cour4printf("\nNO.courlcour2cour3cour5aver\n");cour4for(i=0;i<N;i++){printf("\nNO%2d",i+l);for(j=0;j<M;j++)printf("%8.2f",score[i][j]);printf("%8.2f\n",a_stu[i]);printf("\naveragefor(j=O;j<M;j++)printf("%8.2f",a_cour[j]);printf("\n");h=highest();printf("highest:%7.2fNO.%2dcourse%2d\n",h,r,c);printf("variance%8.2f\n",s_var());return0;)voidinput_stu(void){inti,j;for(i=0;i<N;i++){printf("\ninputscoreofstudent%2d:\n",i+1);for(j=O;j<M;j++)scanf("%f',&score[i][j]);voidaver_stu(void){inti,j;floats;{for(j=O,s=O;j<M;j++)s+=score[i][j];a_stu[i]=s/5.0;voidaver_cour(void){inti,j;floats;for(j=O;j<M;j++){s=0;for(i=0;i<N;i++)s+=score[i][j];a_cour[j]=s/(float)N;floathighest(){floathigh;inti,j;high=score[0][0];for(j=O;j<M;j++)if(score[i][j]>high){high=score[i][j];r=i+l;c=j+l;}retum(high);)floats_var(void){inti;floatsumx,sumxn;sumx=0.0;sumxn=0.0;for(i=0;i<N;i++){sumx+=a_stu[i]*a_stu[i];sumxn+=a_stu[i];retum(sumx/N-(sumxn/N)*(sumxn/N));

7-*14#include<stdio.h>#defineN10#defineM5floatscore[N][M];floata_stu[N],a_cour[M];intr,c;intmain(){inti,j;floath;floats_var(void);floathighest();voidinput_stu(void);voidaver_stu(void);voidaver_cour(void);i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论