C语言程序设计第三版谭浩强课后习题答案完整版
更新时间:2024-01-13 00:59:01 阅读量: 教育文库 文档下载
1.5C ************************** Very Good! **************************
mian()
{printf(“**************************”); printf(“\\n”);
printf(“Very Good!\\n”); printf(“\\n”);
printf(“**************************”); } 1.6 a、b、c
mian()
{int a,b,c,max;
printf(“请输入三个数a,b,c:\\n”); scanf(“%d,%d,%d”,&a,&b,&c); max=a; if(max
第三章
3.6写出以下程序运行的结果。 main()
{char c1=’a’,c2=’b’,c3=’c’,c4=’\\101’,c5=’\\116’; printf(“a?%c\\tc%c\\tabc\\n”,c1,c2,c3); printf(“\\t\\b%c %c”,c4,c5); }
aaㄩbbㄩㄩㄩccㄩㄩㄩㄩㄩㄩabc AㄩN 3.7 要将\4例
\后面第4个字母是\\代替\\应译为\。请编一程
cl、c2、c3、c4、c5C’、’h’、’i’、’n’、’
a
c1、c2、c3、c4、c5分别变为’G’、’l’、’m’、’r’、’e
#include
{ char c1=’C’,c2=’h’,c3=’i’,c4=’n’,c5=’a’; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4;
printf(\密码是%c%c%c%c%c\\n\}
密码是Glmre
3.9求下面算术表达式的值。 1x+a%3*(int)(x+y)%2/4 设x=2.5,a=7,y=4.7
2(float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=3.5,y=2.5 12.5 23.5
3.10写出程序运行的结果。 main()
{int i,j,m,n; i=8; j=10; m=++i; n=j++;
printf(“%d,%d,%d,%d”,i,j,m,n); }
911910
3.12 写出下面表达式运算后aa=12。设a和n都已定义为整型变量。 1a+=a 2 a-=2 3 a*=2+3 4a/=a+a 5 a%=(n%=2)n的值等于5 6a+=a-=a*=a
(1) 24 (2) 10 (3) 60 (4) 0 (5) 0 (6) 0
第四章
44若a=3b=4c=5x=1.2y=2.4z=-3.6u=51274n=128765c1=’a’c2=’b’。
a=_3_ _b=_4_ _c=_5
x=1.200000,y=2.400000,z=-3.600000
x+y=_3.600_ _y+z=-1.20_ _z+x=-2.40
c1=ˊaˊ_or_97(ASCII) www.docin.comc2=ˊbˊ_or_98(ASCII) main()
{int a=3,b=4,c=5;
long int u=51274,n=128765; float x=1.2,y=2.4,z=3.6; char c1=’a’,c2=’b’;
printf(\printf(\
printf(\printf(\
printf(\’a’\printf(\’a’\} 47用scanfa=3b=7x=8.5y=71.82ˊa
main() {
int abfloat xychar c1c2 scanf\&a&b scanf\&y scanf\&c1&c2 }
a=3_b=7
_x=8.5_y=71.82 _c1=A_c2=a 48设圆半径r=1.5h=3积。 用scanf
main()
{float r,h,C1,Sa,Sb,Va,Vb; scanf(\C1=2*3.14*r; Sa=3.14*r*r; Sb=4*Sa;
Va=4*3.14*r*r*r/3; Vb=Sa*h;
printf(\
printf(\}
c1=ˊAc2=
49
c=5(F-32)/9
2小数。 www.docin.commain()
{float F,c; scanf(\c=5*(F-32)/9;
printf(\} 410getchar函数读入两个字符给c1、c2个
c1、c2
求输出c1和c2值的ASCIIputchar函数还是printf
char c1c2 与
int c1c2
#include\main()
{char c1,c2;
c1=getchar();c2=getchar();
putchar(c1);putchar(’\\n’);putchar(c2);putchar(’\\n’); }
#include\main()
{char c1,c2;
c1=getchar();c2=getchar(); printf(\printf(\}
第五章 5.1
5.2 C
10表
示。
00代表“假”。例如3&&5的值为“真”
系统给出3&&5的值为1。
5.3 写出下面各逻辑表达式的值。设a=3b=4c=5。 (1) a+b>c&&b==c
(2) a||b+c&&b-c www.docin.com(3) !(a>b)&&!c||1 (4) !(x=a)&&(y=b)&&0 (5) !(a+b)+c-1&&b+c/2 解 (1) 0 (2) 1 (3) 1 (4) 0 (5) 1
5.4 有3个整数a、b、c
方法一
#include
{ int a,b,c; printf(\请输入3\scanf(\if(a
if(b else if(a #include { int a,b,c,temp,max; printf(\请输入3\scanf(\ temp=(a>b)?a:b; /* 将a和b中的大者存人temp中 */ max=(temp>c)?temp:c; /* 将a和b中的大者与c*/ printf(\个整数的最大数是%d\\n”,max); } 5.5 www.docin.com xy值。 #include printf(\输入x\scanf(\ if(x<1) /* x<1 */ { y=x; printf(\} else if (x<10) /* 1≤x-10 */ { y=2*x-1; printf(\} else /* x≥10 */ { y=3*x-11; printf(\} } 5.6 要求输出等级’A’、’B’、’C’、’D’、’E’。90分以上为’A80~90分为’B70~79分为’C60分以下为’D’。 #include { float score; char grade; printf(\\scanf(\ while(score>100||(score<0) { printf(\输入有误,\scanf(\} switch((int)(score/10)) { case 10: case 9: grade=’A’;break; case 8: grade=’B’;break; www.docin.comcase 7: grade=’C’;break; case 6: grade=’D’;break; case 5: case 4: case 3: case 2: case 1: case 0: grade=’E’; } printf(\成绩是%5.1f%c。\\n\} 0或大于100(int)(score/10)的作 用 是将 (score/10) 5.7 给定一个不多于5 求它是 ③ 按逆序打印出各位数字。例如原数为321123。 #include { long int num; int indiv,ten,hundred,thousand,ten_thousand,place; /*分别代表个位、十位、百位、千位、万位和位数*/ printf(\0~99999\ scanf(\ if (num>9999) place=5; else if(num>999) place=4; else if(num>99) place=3; else if(num>9) place=2; else place=1; printf(\ ten_thousand=num/10000; thousand=num/1000; hundred=num/100; ten=num0/10; indiv=num; switch(place) { case 5: printf(\ printf(\\ printf(\ break; case 4: printf(\ printf(\\ www.docin.com printf(\ break; case 3: printf(\ printf(\\ printf(\ break; case 2: printf(\ printf(\\ printf(\ break; case 1: printf(\ printf(\\ printf(\ break; } } 5.8 企业发放的奖金根据利润提成。利润I低于或等于1010% 高于1020100000 7.5% 200000 高于20万元的部分按5@0000 〈I≤100000060万的部分按1.5%I>1000000100万元的部分按1% 提成。从键盘输入当月利润I(1)用if(2)用switch 语句编程序。 1510 万元按10%5万元则按7.5%提成。 (1) 用if语句编程序。 #include float bonus,bon1,bon2,bon4,bon6,bon10; bon1=100000*0.1; /*利润为10万元时的奖金*/ bon2=bon1+100000*0.075; /*利润为20万元时的奖金*/ bon4=bon2+200000*0.05; /*利润为40万元时的奖金*/ bon6=bon4+200000*0.03; /*利润为60万元时的奖金*/ bon10=bon6+400000*0.015; /*利润为100万元时的奖金*/ printf(\请输入利润i\scanf(\if(i<=100000) bonus=i*0.1; /*利润在10万元以内按0.1提成奖金*/ else if(i<=200000) bonus=bon1+(i-100000)*0.075; /*利润在10万至20万元时的奖金*/ www.docin.comelse if(i<=400000) bonus=bon2+(i-200000)*0.05; /*利润在20万至40万元时的奖金*/ else if(i<=600000) bonus=bon4+(i-400000)*0.03; /*利润在40万至60万元时的奖金*/ else if(i<=1000000) bonus=bon6+(i-600000)*0.015; /*利润在60万至100万元时的奖金*/ else bonus=bon10+(i-1000000)*0.01; /*利润在100万元以上时的奖金*/ printf(”奖金是.2f\\n\} 此题的关键在于正确写出每一区间的奖金计算公式。例如利润在10万元至20 10万元时应得的奖金。即100000ⅹ0.110万元以上部分应得 的奖金。即(num-100000)ⅹ0.0752040 ①利润为20100000ⅹ0.1ⅹ10万ⅹ0.07520万元以上部分应得的 (num-200000)ⅹ0.05。程序中先把10万、20万、40万、60万、100万各关键点的 bon1、bon2、bon4、bon6、hon10 (2) 用switch语句编程序。 输入利润ibranch 根据branch确定奖金值 0 奖金=i*0.1 1 奖金=bon1+(i-105)*0.075 2 奖金=bon2+(i-2*105)*0.05 3 4 奖金=bon4+(i-4*105)*0.03 5 6 奖金=bon6+(i-6*105)*0.015 7 8 9 10 奖金=bon10+(i-106)*0.01 输出奖金 #include float bonus, bon1, bon2, bon4, bon6, bon10; int c; bon1=100000*0.1; bon2=bon1+100000*0.075; bon4=bon2+200000*0.05; bon6=bon4+200000*0.03; www.docin.combon10=bon6+400000*0.015; printf(\请输入利润i\scanf(\c=i/100000; if(c>10) c=10; switch(c) { case 0: bonus=1*0.1;break; case 1: bonus=bon1+(i-100000)*0.075;break; case 2 : case 3: bonus=bon2+(i-200000)*0.05; break; case 4: case 5: bonus=bon4+(i-400000)*0.03;break; case 6: case 7: case 8: case 9: bonus=bon6+(i-600000)*0.015;break; case 10: bonus=bon10+(i-1000000)*0.01; } printf(\奖金是.2f\} 5.9 输入4 序方法。 #include { int t,a,b,c,d; printf(\请输入4\ scanf(\ printf(\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=a; 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(\} 5.10 有4(22)、(-22)、(2-2)、(-2-2)1。这4个塔 的高度分别为10m(塔外的高www.docin.com度为零)。 #include { int h=10; float x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=-2,y4=-2,x,y,d1,d2,d3,d4; printf(\请输入一个点(x,y)\scanf(\ d1=(x-x1)*(x-x1)+(y-y1)*(y-y1); /*求该点到各中心点的距离*/ d2=(x-x2)*(x-x2)+(y+y2)*(y+y2); d3=(x+x3)*(x+x3)+(y-y3)*(y-y3); d4=(x+x4)*(x-x4)*(y+y4)*(y+y4); if(d1>1&&d2>1&&d3>1&&d4>1) h=0; /*判断该点是否在塔外*/ printf(\该点高度为%d\\n\} 第六章 第六章 循环控制 6.1输入两个正整数m和n main() {long m,n,i=1,j,s; scanf(\for(;i<=m&&i<=n;i++) {if(m%i==0&&n%i==0) s=i;} if(m>=n) j=m; else j=n; for(;!(j%m==0&&j%n==0);j++); www.docin.comprintf(\} 6.2#include\main() {char c;int i=0,j=0,k=0,l=0; while((c=getchar())!=’\\n’) {if(c>=65&&c<=90||c>=97&&c<=122) i++; else if(c>=48&&c<=57) j++; else if(c==32) k++; else l++;} printf(\} 6.3求Sn=a+aa+aaa+?+aa?aaan个a2+22+222+2222+22222n=5n由键盘输入。#include\main() {int n,sum=0,i=1,s=2; scanf(\while(i<=n) {sum=sum+s;s=s+2*pow(10,i); i++;} printf(\} 6.4 求 1!+2!+3!+4!+5!+?+20! main() {int n,i=1;long sum=0,s=1; scanf(\ while(i<=n) {s=s*i;sum=sum+s;i++;} printf(\} 6.5 求 main() {double i=1,j=1,k=1,s1=0,s2=0,s3=0,sum; for(;i<=100;i++) s1=s1+i; a for(;j<=50;j++) s2=s2+j*j; for(;k<=10;k++) s3=s3+1/k; sum=s1+s2+s3; printf(\} www.docin.com 6.6打印出所有\水仙花数\\水仙花数\ 153153=1^3+5^3+3^3。 #include\main() {int x=100,a,b,c; while(x>=100&&x<1000) {a=0.01*x;b=10*(0.01*x-a);c=x-100*a-10*b; if(x==(pow(a,3)+pow(b,3)+pow(c,3))) printf(\} 6.7\完数\6的因子为1、2、3 而6=1+2+36是\完数\。编程序找出1000 6 its factors are 1、2、3 main() {int m,i,j,s; for(m=6;m<10000;m++) {s=1; for(i=2;i {printf(\printf(\} } 或 main() {int m,i,j,s; for(m=6;m<1000;m++) {s=m-1; for(i=2;i {printf(\printf(\} } 6.8 求出这个数列的前20项之和。 main() {int i=1,n;double t,x=1,y=2,s,sum=0; scanf(\printf(\} 6.9一球从10010次落 10 main() {int i,n;double h=100,s=100; scanf(\for(i=1;i<=n;i++) {h*=0.5;if(i==1) continue;s=2*h+s;} printf(\} 6.10 零一个。到第10 main() {int i=1,sum=0; for(;i<=10;sum=2*sum+1,i++); printf(\} 6.11用迭代法求 要求前后两次求出的得差的绝对值少于0.00001。 #include\main() {float x0,x1,a; scanf(\x1=a/2; do {x0=x1;x1=(x0+a/x0)/2;} while(fabs(x0-x1)>=0.00001); printf(\} 6.12 用牛顿迭代法求方程在1.5附近的根。 main() {double x,y;x=1.5; do{y=2*x*x*x-4*x*x+3*x-6; x=x-y/(6*x*x-8*x+3);} while(y!=0); www.docin.comprintf(\} 6.13用二分法求方程在(-1010)之间的根 main() {double x1,x2,y1,y2;x1=-10;x2=10; do{y1=2*x1*x1*x1-4*x1*x1+3*x1-6; x1=x1-y1/(6*x1*x1-8*x1+3);} while(y1!=0); do {y2=2*x2*x2*x2-4*x2*x2+3*x2-6; x2=x2-y2/(6*x2*x2-8*x2+3);} while(y2!=0); printf(\} 6.14打印以下图案 * * * * * * * * * * * * * * * * * * * * * * * * * #include\main() {int i,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(\ } for(i=0;i<=2;i++) {for(j=0;j<=i;j++) printf(\ printf(\ printf(\ } } 第七章 第七章 数组 7.1 用筛法求之内的素数。 main() { int i,j,a[100]; for(i=2;i<100;i++) { a[i]=i; for(j=2;j<=i;j++) {if(j if(a[i]%j==0) break; if(a[i]-j==0) printf(\} } printf(\} 或 #include\main() {static int i,j,k,a[98]; for(i=2;i<100;i++) {a[i]=i;k=sqrt(i); for(j=2;j<=a[i];j++) if(j if(j>=k+1) printf(\} printf(\} 7.2用选择法对10个整数从小到大排序。 main() { int i,j,a[10],t; for(i=0;i<10;i++) scanf(\for(i=0;i<=9-j;i++) if(a[i]>a[i+1]) {t=a[i+1];a[i+1]=a[i];a[i]=t;} for(i=0;i<10;i++) printf(\} 或 main() {static int a[10],i,j,k,t; for(i=1;i<11;i++) scanf(\for(j=1;j<10;j++) for(i=1;i<=10-j;j++) if (a[i]>a[i+1]) {t=a[i+1];a[i+1]=a[i];a[i]=t;} for(i=1;i<11;i++) printf(\printf(\} 7.3求一个3×3矩阵对角线元素之和。 main() {int i=0,j=0,a[3][3],s1,s2; for(i=0;i<3;i++) for(j=0;j<3;j++) scanf(\ s1=a[0][0]+a[1][1]+a[2][2]; s2=a[0][2]+a[1][1]+a[2][0]; printf(\} 或 main() { static int i,j,s1,s2,a[3][3]; for(i=1;i<=3;i++) for(j=1;j<=3;j++) scanf(\ s1=a[1][1]+a[2][2]+a[3][3]; s2=a[1][3]+a[2][2]+a[3][1]; printf(\} 7.4已有一个已排好的数组今输入一个数要求按原来排序的规律将它插入数组中。 www.docin.commain() { static int a[10]={1,7,8,17,23,24,59,62,101};int i,j,t; scanf(\for(i=9;i>0;i--) if(a[i] {t=a[i-1];a[i-1]=a[i];a[i]=t;} for(i=0;i<10;i++) printf(\} 或 main() { static int a[5]={1,4,5,6,7}; int i,t,b; scanf(\for(i=0;i<5;i++) {if(b<=a[i]) {t=a[i];a[i]=b;b=t;} printf(\printf(\} 7.514 568。 main() { int i,b[10]; for(i=0;i<10;i++) scanf(\for(i=9;i>-1;i--) printf(\printf(\ 7.610 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 ∶ ∶ main() 86541{ static int m,n,k,b[15][15]; b[0][1]=1; www.docin.comfor(m=1;m<15;m++) {for(n=1;n<=m;n++) { b[m][n]=b[m-1][n-1]+b[m-1][n]; printf(\} } } 或 main() { int i,j,n,k,a[10][10]; static a[][1]={{1},{1},{1},{1},{1},{1},{1},{1},{1},{1}}; a[1][1]=1; for(k=2,k<11;k++) for(i=2;i<=k;i++) for(j=2;j<=i;j++) a[i][j]=a[i-1][j-1]+a[i-1][j]; for(k=1;k<11;k++) for(i=1;i<=k;i++) for(j=1;j<=i;j++) printf(\} 7.7 8 1 6 3 5 7 4 9 2 要求打印出由1n2的自然数构成的魔方阵。 #include { int a[16][16],i,i,k,p,m,n; p=1; while(p==1) /*要求阶数为115的商数*/ { printf(\15)\ scanf(\ if((n!=0)&&(n<=15)&&(n%2!=0)) p=0; } for(i=1;i<=n;i++) /*初始化*/ for(j=1;j<=n;j++) a[i][j]=0; j=n/2+1; /*建立魔方阵*/ a[1][j]=1; for(k=2;k<=n*n;k++) { i=i-1; j=j+1; www.docin.com if((i<1)&&(j>n)) { i=i+2; j=j-1; } else { if(i<1) i=n; if(j>n) j=1; } if(a[i][j]==0) a[i][j]=k; else { i=i+2; j=j-1; a[i][j]=k; } } for(i=1;i<=n;i++) /*输出魔方阵*/ { for(j=1;j<=n;j++) printf(\ printf(\ } } 7.8 没有鞍点。 main() {int a[5][5],b[5],c[5],d[5][5],k=0,l=0;int i,j; for(i=0;i<5;i++) for(j=0;j<5;j++) scanf(\for(i=0;i<5;i++) for(j=0;j<5;j++,a[i][j]=d[i][j]); for(i=0,k=0;i<5;i++,k++) for(j=0;j<4;j++) {if(a[i][j]>=a[i][j+1]) b[k]=a[i][j+1]=a[i][j]; else b[k]=a[i][j+1]; } for(j=0,l=0;j<5;j++,l++) for(i=0;i<4;i++) {if(a[i][j]<=a[i+1][j]) c[l]=a[i+1][j]=a[i][j]; else c[l]=a[i+1][j]; www.docin.com} for(i=0,k=0;i<5;i++,k++) for(j=0,l=0;j<5;j++,l++) if(d[i][j]-b[k]==0) {if(d[i][j]-c[l]==0) printf(\else printf(\} } 7.9有个15 \无此数\ #include\main() {static int i,j,m,a[15]={1,4,9,13,21,34,55,89,144,233,377,570,671,703,812}; scanf(\for(j=0;j<15;j++) printf(\printf(\i=7; while(fabs(i-7)<8) {if(m {printf(\else if(m>a[7]) {if(a[i]-m==0) {printf(\else printf(\} if(fabs(i-7)-8==0) printf(\} 7.10380字符。要求分别统计出其中英文大写字母、 小写字母、空格以及其它字符的个数。 main() {int i,j=0,k=0,l=0,m=0,n=0;char str0[301],str1[100],str2[100],str3[100]; gets(str1);gets(str2);gets(str3); strcat(str0,str1);strcat(str0,str2);strcat(str0,str3); for(i=0;str0[i]!=’\\0’;i++) {if(str0[i]>=65&&str0[i]<=90) j++; else if(str0[i]>=97&&str0[i]<=122) k++; www.docin.comelse if(str0[i]>=48&&str0[i]<=57) l++; else if(str0[i]==32) m++; else n++;} printf(\printf(\} 7.11打印以下图案 main() {int i,j,k;char a[5][5]; for(i=0;i<5;i++) {for(j=0;j<5;j++) {a[i][j]=’*’;printf(\printf(\ for(k=1;k<=i+1;k++) printf(\printf(\} 7.12 A->Z a->z B->Y b->y C->X c->x ? 即第一个字母变成第26i26-i+1要 main() { int i;char str1[100],str2[100]; gets(str1); for(i=0;str1[i]!=’\\0’;i++) if(str1[i]>=65&&str1[i]<=90) str2[i]=155-str1[i]; else if(str1[i]>=97&&str1[i]<=122) str2[i]=219-str1[i]; else str2[i]=str1[i]; printf(\} www.docin.com7.13strcat函数。 main() { int i,j;char str1[100],str2[100],str3[201]; gets(str1); gets(str2); for(i=0;str1[i]!=’\\0’;i++) str3[i]=str1[i]; for(j=0;str2[j]!=’\\0’;j++) str3[j+i]=str2[j]; printf(\} 7.14S1和S2S1>S2S1=S2 0S1 或负数的绝对值应是相比较的两个字符串相对应字符的ASCIIA’与’C’ A’<’CA’与’C’的码差值为2\。 \和\2n’比’i’大5\。 #include { int i,resu; char s1[100],s2[100]; printf(\\ gets(s1); printf(\\ gets(s2); i=0; while(s1[i]==s2[i]&&s1[i]!=’\\0’) i++; if(s1[i]==’\\0’&&s2[i]==’0’) resu=0; else resu=s1[i]-s2[i]; printf(\%d\\n\} 7.15 编写一个程序,将字符数组s2中的全部字符拷贝到字符数组s1中,不用strcpy函数。拷 \\0\\0’后面的字符不拷贝。 #include \main() { char s1[80],s2[80]; int i; printf(\\ scanf(\ for(i=0;i 第八章 第八章 函数 1.1 并输出结果两个整数由键盘输入。 maxyueshu(m,n) int m,n; { int i=1,t; for(;i<=m&&i<=n;i++) {if(m%i==0&&n%i==0) t=i; } return(t); } minbeishu(m,n) int m,n; {int j; if(m>=n) j=m; else j=n; for(;!(j%m==0&&j%n==0);j++); return j; } main() {int a,b,max,min; printf(\scanf(\max=maxyueshu(a,b); min=minbeishu(a,b); printf(\} 8.2求方程 b2-4ac大于0、等于0、和小于0 果。从主函数输入a、b、c的值。 #include\ float yishigen(m,n,k) float m,n,k; {float x1,x2; x1=(-n+sqrt(k))/(2*m); x2=(-n-sqrt(k))/(2*m); www.docin.comprintf(\shigen is x1=%.3f and x2=%.3f\\n\} float denggen(m,n) float m,n; {float x; x=-n/(2*m); printf(\} float xugen(m,n,k) float m,n,k; {float x,y; x=-n/(2*m); y=sqrt(-k)/(2*m); printf(\} main() {float a,b,c,q; printf(\scanf(\printf(\q=b*b-4*a*c; if(q>0) yishigen(a,b,q); else if(q==0) denggen(a,b); else xugen(a,b,q); } 8.2 psushu(m) int m; {int i=2,t; for(;i<=m;i++) if(m%i==0&&i main() {int a,s; printf(\scanf(\s=psushu(a); if(s==1) printf(\else printf(\} www.docin.com 8.4 int zhuangzhi(b) int b[3][3]; {int i,j,t; for(i=0;i<3;i++) for(j=0;j>=i&&j<3-i;j++) {t=b[i][j];b[i][j]=b[j][i];b[j][i]=t;} } main() {int a[3][3];int i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) scanf(\for(i=0;i<3;i++) {for(j=0;j<3;j++) printf(\printf(\zhuangzhi(a); for(i=0;i<3;i++) {for(j=0;j<3;j++) printf(\printf(\} 8.5 main() {char str0[100]; gets(str0); fanxu(str0); puts(str0); } fanxu(str1) char str1[100]; {int i,t,j; char str2[100];strcpy(str2,str1); t=strlen(str1); for(i=0,j=t-1;j>-1;i++,j--) str1[i]=str2[j]; } 8.6 lianjie(a,b) char a[100],b[100]; www.docin.com{strcat(a,b); } main() {char str1[100],str2[100]; gets(str1);gets(str2); lianjie(str1,str2); puts(str1); } 8.7 fuzhi(a,b) char a[100],b[100]; {int i,j=0; for(i=0;a[i]!=’\\0’;i++) if(a[i]==97||a[i]==101||a[i]==105||a[i]==111||a[i]==117||a[i]==65|| a[i]==69||a[i]==73||a[i]==85) {b[j]=a[i];j++;} } main() {char str1[100],str2[100]; gets(str1); fuzhi(str1,str2); puts(str2); } 8.8写一函数入1990\。 char f(b) char b[4]; {int i=0; for(;i<4;i++) {printf(\ printf(\printf(\} main() {int a,u,v,w,t;char c[4]; scanf(\ u=a*0.001;v=0.01*(a-1000*u);w=(a-1000*u-100*v)*0.1;t=a-1000*u-100*v-10*w; c[0]=u+48; c[1]=v+48; c[2]=w+48; c[3]=t+48; f(c); } www.docin.com 8.9 char tongji(str0,b) char str0[100]; int b[4]; {int i; for(i=0;str0[i]!=’\\0’;i++) {if(str0[i]>=65&&str0[i]<=90||str0[i]>=97&&str0[i]<=122) b[0]++; else if(str0[i]>=48&&str0[i]<=57) b[1]++; else if(str0[i]==32) b[2]++; else b[3]++;} } main() {char str1[100];static int i,a[4]; gets(str1); tongji(str1,a); printf(\for(i=0;i<4;i++) printf(\} 8.10出。 cechang(str1,word0) char str1[100],word0[15]; {int i=0,j=0,t=0; static char word1[15]; for(;str1[i]!=’\\0’;i++) {if(!(str1[i]>=97&&str1[i]<=122||str1[i]>=65&&str1[i]<=90)) {t=j;j=0;continue;} word1[j]=str1[i];j++; if(j>=t) strcpy(word0,word1);} } main() {char str0[100],longword[15]; gets(str0); cechang(str0,longword); puts(longword); } 8.11写一函数用起泡法对输入的个字符按由小到大的顺序排列。 int paixu(x) int x[]; {int i,j,t; www.docin.comfor(j=1;j<10;j++) for(i=0;i<=9-j;i++) if(x[i]>x[i+1]) {t=x[i+1];x[i+1]=x[i];x[i]=t;} } main() {int y[10];int i; for(i=0;i<10;i++) scanf(\paixu(y); for(i=0;i<10;i++) printf(\printf(\} 8.12 abc一 个实根。求出后由主函数输出。 double qigen(s,t,u,v) int s,t,u,v; {double x,y;x=1; do{y=s*x*x*x+t*x*x+u*x+v; x=x-y/(3*s*x*x+2*t*x+u);} while(y!=0); return x; } main() {int a,b,c,d;double x; scanf(\x=qigen(a,b,c,d); printf(\} 8.13用递归方法求n阶勒让德多项式的值递归公式为 float p(x0,n) int n;float x0; {float y; if(n==0||n==1) if(n==1) y=x0;else y=1; else y=((2*n-1)*x0*p(x0,n-1)-(n-1)*p(x0,n-2))/n; return(y); } www.docin.commain() {float x,y0;int a,i; scanf(\y0=p(x,a); d由主函数输入。求X在1附近的printf(\} 8.14输入10个学生5 www.docin.com
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 浩强
- 整版
- 课后
- 习题
- 程序设计
- 答案
- 语言
- 集体土地所有权 - 地籍区和地籍子区划分工作技术报告
- 科举制度与当今考试制度
- 高中物理鲁科版必修1第六单元第2课《牛顿第二定律》优质课公开课教案教师资格证面试试讲教案
- 高校校园规划设计调研报告
- SCI 论文投稿步骤及其经验总结
- 创新设计2012高考数学二轮专题复习试题:1-3-2(数列的综合应用)
- 党风廉政建设大会上的讲话
- 出纳岗位持证上岗考试题库
- 苏教版四年级数学上册第二单元测试卷及答案
- 关于园林绿化工程施工技术探析
- 计算机网络交换技术试卷B卷
- 日本奥斯卡颁奖《桐岛退部》包揽影片导演奖
- 大学辅导员主题演讲稿
- 变频器散热设计
- 法律逻辑练习题 第六、七章 演绎推理
- 基于TDABC演变的成本管理系统设计及改进原则探讨
- 工业塑料的种类与用途
- 2003年广西大学硕士研究生入学考试数分与高代试题
- 新厂筹建项目计划书
- 功能测试与性能测试区别-b