C语言课后习题答案_c语言课后习题答案
C语言课后习题答案由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言课后习题答案”。
C语言课后习题答案-第四版-第一章
5、请参照本章例题,编写一个C语言程序,输出以下信息: **************************** V e r y G o o d!**************************** #include int main(){
printf(“**************************nn”);printf(“
Very Good!nn”);printf(“**************************n”);return 0;}
6、编写一个C语言程序,输入a,b,c三个值,输出其中最大值。#include int main(){ int a,b,c,max;printf(“please input a,b,c:n”);scanf(“%d%d%d”,&a,&b,&c);max=a;if(max int main(){ int a,b,c,max;printf(“please input a,b,c:n”);scanf(“%d%d%d”,&a,&b,&c);max=a>b?a:b;max=max>c?max:c;printf(“The largest number is %dn”,max);return 0;}
第3章
1、假如我国国民生产总值的年增长率为9%,计算10年后我国国民生产总值与现在相比增长多少百分比。计算公式为
P=(1+r)^n r 为年增长率,n 为年数,p为与现在相比的倍数。#include #include int main(){ float p,r,n;r=0.1;n=10;p=pow(1+r,n);printf(“p=%fn”,p);return 0;}
2、存款利息计算。有1000元,想存5年,可按以下5种办法存:(1)一次存5年期。
(2)先存2年期,到期后将本息在存3年期。(3)先存3年期,到期后将本息在存2年期。
(4)先存1年期,到期后将本息在存1年期,连续存5次。(5)存活期存款。活期利息每一季度结算一次。2007年12月的银行存款利息如下: 1年定期存款利息为4.14%; 2年定期存款利息为4.68%; 3年定期存款利息为5.4%; 5年定期存款利息为5.85%;
活期存款利息为0.27%(活期利息每一季度结算一次。)如果r 为年利率,n 为存款年数,则计算本息和的公式为 1年期本息和:P=1000*(1+r);n年期本息和:P=1000*(1+n*r);存n次1年期的本息和:P=1000*(1+ r)^n;存活期本息和:P=1000*(1+r/4)^4n。
说明:P=1000*(1+r/4)^4n。是一个季度的本息和。#include #include int main(){ float r5,r3,r2,r1,r0,p,p1,p2,p3,p4,p5;r5=0.0585;r3=0.054;r2=0.0468;r1=0.0414;r0=0.0072;p=1000;p1=p*((1+r5)*5);
// 一次存5年期
p2=p*(1+2*r2)*(1+3*r3);
// 先存2年期,到期后将本息再存3年期
p3=p*(1+3*r3)*(1+2*r2);
// 先存3年期,到期后将本息再存2年期
p4=p*pow(1+r1,5);
// 存1年期,到期后将本息存再存1年期,连续存5次
p5=p*pow(1+r0/4,4*5);
// 存活期存款。活期利息每一季度结算一次
printf(“p1=%fn”,p1);
// 输出按第1方案得到的本息和
printf(“p2=%fn”,p2);
// 输出按第2方案得到的本息和
printf(“p3=%fn”,p3);
// 输出按第3方案得到的本息和
printf(“p4=%fn”,p4);
// 输出按第4方案得到的本息和
printf(“p5=%fn”,p5);
// 输出按第5方案得到的本息和
return 0;}
3、购房从银行贷了一笔款d,准备每月还款额为p,月利率为r,计算多少月能还清。设d为300000元,p为6000元,r为1%。对求得的月份取小数点后一位,对第2位按四舍五入处理。提示:计算还请月数m 的公式如下: m =[ log p –log(p-d*r)] / log(1+r)可以讲公式该写为
m ={ log [p /(p – d*r)] }/ log(1+r)C的库函数中有求对数的函数log10,是求以10为底的对数,log(p)表示log p。#include #include int main(){ float d=300000,p=6000,r=0.01,m;m=log10(p/(p-d*r))/log10(1+r);printf(“m=%6.2fn”,m);return 0;}
6、请编将“China”,编译成密码,密码规律是:用原有的字母后面第4个字母代替原来的字母。#include int main(){ char c1='C',c2='h',c3='i',c4='n',c5='a';c1=c1+4;c2=c2+4;c3=c3+4;c4=c4+4;c5=c5+4;printf(“pawor is %c%c%c%c%cn”,c1,c2,c3,c4,c5);return 0;}
7、设圆半径r =1.5,圆柱高h=3,求圆周长、圆面积、圆柱表面积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。请编程序。#include int main(){ float h,r,l,s,sq,vq,vz;float pi=3.141526;printf(“请输入圆半径r,圆柱高h∶”);scanf(“%f,%f”,&r,&h);
//要求输入圆半径r和圆柱高h
l=2*pi*r;
//计算圆周长l s=r*r*pi;
//计算圆面积s sq=4*pi*r*r;
//计算圆球表面积sq vq=3.0/4.0*pi*r*r*r;
//计算圆球体积vq vz=pi*r*r*h;
//计算圆柱体积vz printf(“圆周长为:
l=%6.2fn”,l);printf(“圆面积为:
s=%6.2fn”,s);
printf(“圆球表面积为:
sq=%6.2fn”,sq);printf(“圆球体积为:
v=%6.2fn”,vq);printf(“圆柱体积为:
vz=%6.2fn”,vz);return 0;}
第四章
4、有3个正整数a,b,c,有键盘输入,输出其中最大的数。#include int main(){ int a,b,c;printf(“请输入三个整数:”);scanf(“%d,%d,%d”,&a,&b,&c);if(a
if(b
printf(“max=%dn”,c);
else
printf(“max=%dn”,b);
else if(a
printf(“max=%dn”,c);else
} printf(“max=%dn”,a);return 0;
4、有3个正整数a,b,c,有键盘输入,输出其中最大的数。#include int main(){
int a,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(“三个整数的最大数是%dn”,max);return 0;}
5、从键盘输入一个小于1000的正整数,要求输出它的平方根(如平方根不是整数,则输出其整数部分)。要求在输入数据后先对其检查是否为小于1000的正数。若不是,则要求从新输入。#include #include #define M 1000 int main(){ int i,k;
printf(“请输入一个小于%d的整数i:”,M);scanf(“%d”,&i);while(i>M)
{ printf(“输入的数不符合要求,请重新输入一个小于%d的整数i:”,M);
} k=sqrt(i);printf(“%d的平方根的整数部分是:%dn”,i,k);return 0;} 6、有一个函数: scanf(“%d”,&i);
x
(x
y(1
3*x – 11
(x>=10)=
2*x1
(x
Y =
0
(x=0)
(x>0)
写程序,输入x 的值,输出y 相应的值。#include int main(){
int x,y;
printf(“please enter x:”);
scanf(“%d”,&x);
y=0;
if(x>=0)
if(x>0)y=1;
else y=-1;
printf(“x=%d,y=%dn”,x,y);return 0;{ }
8、给出一百分制成绩,要求输出成绩等级‘A’,’B’,’C’,’D’,’E’。90分以上为‘A’,80~89分为’B’,70~79分为’C’,60~69分为’D’,60分以下为’E’。#include int main(){ float score;
char grade;
printf(“请输入学生成绩:”);
scanf(“%f”,&score);
while(score>100||score
}
switch((int)(score/10)){ case 10: case 9: grade='A';break;case 8: grade='B';break;case 7: grade='C';break;printf(“n 输入有误,请重输”);scanf(“%f”,&score);case 6: grade='D';break;case 5: case 4: case 3: case 2: case 1: case 0: grade='E';}
printf(“成绩是 %5.1f,相应的等级是%cn ”,score,grade);return 0;}
9、给出一个不多于5位数的正整数;(1)求出它是几位数;(2)分别输出每一位数字;
(3)按逆顺序输出各位数,例如原有数为123,应输出321.#include #include int main(){ int num,indiv,ten,hundred,thousand,ten_thousand,place;//分别代表个位,十位,百位,千位,万位和位数
printf(“请输入一个整数(0-99999):”);scanf(“%d”,&num);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(“位数:%dn”,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*10000-thousand*1000-hundred*100-ten*10);printf(“n反序数字为:”);switch(place){ case 5: printf(“%d%d%d%d%dn”,indiv,ten,hundred,thousand,ten_thousand);break;case break;case 3:printf(“%d%d%dn”,indiv,ten,hundred);break;case 2: printf(“%d%dn”,indiv,ten);break;case 1: printf(“%dn”,indiv);break;} return 0;}
11、输入4个整数,要求按由小到大的顺序输出。#include int main(){ int t,a,b,c,d;printf(“请输入四个数:”);scanf(“%d%d%d%d”,&a,&b,&c,&d);printf(“a=%d,b=%d,c=%d,d=%dn”,a,b,c,d);if(a>b)
{ t=a;a=b;b=t;} if(a>c)4: printf(“%d%d%d%dn”,indiv,ten,hundred,thousand);
{ 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);return 0;}
12、有4个圆塔,圆心分别为(2,2)、(-2,2)、(-2,-2)、(2,-2),圆半径为 1,这4个圆塔高位10cm, 塔以外无建筑物。求该点的建筑物高度(塔外的高度为零)。#include int main(){ 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(“%f,%f”,&x,&y);d1=(x-x4)*(x-x4)+(y-y4)*(y-y4);
/*求该点到各中心点距离*/ d2=(x-x1)*(x-x1)+(y-y1)*(y-y1);d3=(x-x2)*(x-x2)+(y-y2)*(y-y2);d4=(x-x3)*(x-x3)+(y-y3)*(y-y3);if(d1>1 && d2>1 && d3>1 && d4>1)
h=0;/*判断该点是否在塔外*/ printf(“该点高度为 %dn”,h);return 0;} 第五章
例5.7
用pi/4=1-1/3+1/5-1/7+„„公式求pi近似值,直到发现某一项的绝对值小于10^6为止。
#include #include
// 程序中用到数学函数fabs,应包含头文件math.n int main(){ int sign=1,count=0;
// sign用来表示数值的符号,count用来统计循环次数 double pi=0.0,n=1.0,term=1.0;// pi开始代表多项式的值,最后代表π的值,n
代
表
分
母,term代表当前项的值
while(fabs(term)>=1e-8)
// 检查当前项term的绝对值是否大于或等于10的(-6)次方
{
pi=pi+term;
// 把当前项term累加到pi中 n=n+2;
// n+2是下一项的分母
sign=-sign;
// sign代表符号,下一项的符号与上一项符号相反
} pi=pi*4;
// 多项式的和pi乘以4,才是π的近似值
printf(“pi=%10.8fn”,pi);
// 输出π的近似值
printf(“count=%dn”,count);
// 输出循环次数
return 0;}
3、输入两个正整数m和n,求其最大公约数和最小公倍数。#include int main()term=sign/n;
// 求出下一项的值term count++;
// count累加1 { int p,r,n,m,temp;printf(“请输入两个正整数n,m:”);scanf(“%d,%d,”,&n,&m);if(n
temp=n;
n=m;
m=temp;} p=n*m;while(m!=0){
r=n%m;
n=m;
m=r;} printf(“它们的最大公约数为:%dn”,n);printf(“它们的最小公约数为:%dn”,p/n);return 0;}
4、输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。#include int main(){
char c;
int letters=0,space=0,digit=0,other=0;
printf(“请输入一行字符:n”);
while((c=getchar())!='n')
{
if(c>='a' && c='A' && c
letters++;
else if(c==' ')
space++;
else if(c>='0' && c
digit++;
else
other++;
}
printf(“字母数:%dn空格数:%dn数字数:%dn其它字符数:%dn”,letters,space,digit,other);
return 0;
}
5、求Sn=a+aa+aaa+„„+aa„„a之值,其中a是一个数字,n 表示a 的位数。n 由键盘输入。#include int main(){ int a,n,i=1,sn=0,tn=0;printf(“a,n=:”);scanf(“%d,%d”,&a,&n);while(i
} printf(“a+aa+aaa+...=%dn”,sn);return 0;}
6、求和:1!+2!+3!+„„+20!。#include int main(){ tn=tn+a;/*赋值后的tn为i个 a组成数的值*/ sn=sn+tn;/*赋值后的sn为多项式前i项之和*/ a=a*10;++i;double s=0,t=1;int n;for(n=1;n
t=t*n;
s=s+t;} printf(“1!+2!+...+20!=%22.15en”,s);return 0;}
7、求1+2+3+„„+100+1+2^2+3^2+4^2++50^2+1+1/2+1/3+1/4+„„+1/10。#include int main(){ int n1=100,n2=50,n3=10;double k,s1=0,s2=0,s3=0;for(k=1;k
{s1=s1+k;} for(k=1;k
{s2=s2+k*k;} for(k=1;k
„
„
{s3=s3+1/k;} printf(“sum=%15.6fn”,s1+s2+s3);return 0;}
8、输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如153是一位水仙花数,因为153=13+53+33。#include int main(){ int i,j,k,n;printf(“parcius numbers are ”);for(n=100;n
} printf(“n”);return 0;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);}
9、编程求1000之内的完数,并按下面格式输出其因子:its factors are 1,2,3 #include int main(){ int m,s,i;for(m=2;m
s=0;for(i=1;i
if((m%i)==0)s=s+i;if(s==m){
} printf(“%d,its factors are ”,m);for(i=1;i
} return 0;}
10、有一个分数序列:
2/1,3/2,5/3,8/5,13/8,21/13,„„ 求出这个数列前20项之和。#include int main(){ int i,n=20;double a=2,b=1,s=0,t;for(i=1;i
} printf(“sum=%16.10fn”,s);return 0;}
11、一个球从100米敢赌下落,每次反弹高度为原来的一半,在下落,在反弹。求第10次落地时共经过多少米?第10次反弹多高?
#include s=s+a/b;t=a, a=a+b, b=t;int main(){ double sn=100,hn=sn/2;int n;for(n=2;n
} printf(“第10次落地时共经过%f米n”,sn);printf(“第10次反弹%f米n”,hn);return 0;}
12、猴子吃桃问题。猴子第1天摘了若干个桃子,当即吃了一半零一个;第2剩下的吃了一半零一个,一次循环。到第十天时想吃就剩下一个桃子。求第一天摘了几个桃子? #include int main(){ int day,x1,x2;day=9;x2=1;sn=sn+2*hn;
/*第n次落地时共经过的米数*/ hn=hn/2;
/*第n次反跳高度*/ while(day>0){ x1=(x2+1)*2;
/*第1天的桃子数是第2天桃子数加1后的2倍.*/
} printf(“total=%dn”,x1);return 0;}
16、输出以下图案:
*
*** ***** ******* ***** *** * #include int main(){ int i,j,k;for(i=0;i
for(j=0;j
printf(“ ”);
for(k=0;k
printf(“*”);
printf(“n”);} for(i=0;i
for(j=0;j
printf(“ ”);
for(k=0;k
printf(“*”);
printf(“n”);} return 0;}
17、甲队A,B,C 3 人,乙队 X,Y,Z 3人。A不和X比;X,Z比,请编程找出3 对赛手的名单。#include
int main(){
C不和 char i,j,k;
/*是a的对手;j是b的对手;k是c的对手*/ for(i='x';i
} 第六章
1、用筛选法求100之内的素数。#include #include int main(){ int i,j,n,a[101];
for(i=1;i
a[i]=i;
a[1]=0;
for(i=2;i
if(i!=j)
for(k='x';k
if(i!=k && j!=k)
if(i!='x' && k!='x' && k!='z')
printf(“A--%cnB--%cnC--%cn”,i,j,k);
return 0;
for(j=i+1;j
{ if(a[i]!=0 && a[j]!=0)
if(a[j]%a[i]==0)
a[j]=0;
}
printf(“n”);
for(i=2,n=0;i
{ printf(“%5d”,a[i]);
n++;
}
if(n==10)
{ printf(“n”);
n=0;
}
}
printf(“n”);
return 0;}
2、用选择法对10个整数排序。#include int main(){ int i,j,min,temp,a[11];
printf(“enter data:n”);
for(i=1;i
{ printf(“a[%d]=”,i);
scanf(“%d”,&a[i]);
}
printf(“n”);
printf(“The orginal numbers:n”);
for(i=1;i
printf(“%5d”,a[i]);
printf(“n”);
for(i=1;i
for(j=i+1;j
if(a[min]>a[j])min=j;
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
printf(“nThe sorted numbers:n”);
for(i=1;i
printf(“%5d”,a[i]);
printf(“n”);
return 0;}
3、求一个3 x 3 的整型矩阵对角线元素之和。#include int main(){ int a[3][3],sum=0;int i,j;
printf(“enter data:n”);
for(i=0;i
for(j=0;j
scanf(“%3d”,&a[i][j]);
for(i=0;i
sum=sum+a[i][i];
printf(“sum=%6dn”,sum);
return 0;}
4、有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中。#include int main(){ int a[11]={1,4,6,9,13,16,19,28,40,100};
int temp1,temp2,number,end,i,j;
printf(“array a:n”);
for(i=0;i
printf(“%5d”,a[i]);
printf(“n”);
printf(“insert data:”);
scanf(“%d”,&number);
end=a[9];
if(number>end)
a[10]=number;
else
{ for(i=0;inumber)
{ temp1=a[i];
a[i]=number;
for(j=i+1;j
{ temp2=a[j];
a[j]=temp1;
temp1=temp2;
}
break;
}
}
}
printf(“Now array a:n”);
for(i=0;i
printf(“%5d”,a[i]);
printf(“n”);
return 0;}
5、将一个数组中的值按逆顺序重新存放。例如:8,6,5,4,1。要求改为:1,4,5,6,8.。#include #define N 5 int main(){ int a[N],i,temp;
printf(“enter array a:n”);
for(i=0;i
scanf(“%d”,&a[i]);
printf(“array a:n”);
for(i=0;i
printf(“%4d”,a[i]);
for(i=0;i
素的值互换 { temp=a[i];
a[i]=a[N-i-1];
a[N-i-1]=temp;
} printf(“nNow,array a:n”);for(i=0;i
printf(“%4d”,a[i]);
//循环的作用是将对称的元
printf(“n”);
return 0;}
6、输出以下杨辉三角形(要求输出10行)。1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 „„„„„„„„„„„„ #include #define N 10 int main(){ int i,j,a[N][N];
for(i=0;i
{ a[i][i]=1;
a[i][0]=1;
}
for(i=2;i
for(j=1;j
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i
printf(“%6d”,a[i][j]);
printf(“n”);
}
printf(“n”);
return 0;}
7、输出“魔方阵”。所谓魔方阵就是每行每列和对角线之和相等。例如:1 6 3 5 7 4 9 2 要求输出1~n^2的自然数构成的魔方阵。#include int main(){ int a[15][15],i,j,k,p,n;
p=1;
while(p==1){ printf(“enter n(n=1--15):”);
scanf(“%d”,&n);
if((n!=0)&&(n
p=0;
}
for(i=1;i
for(j=1;j
a[i][j]=0;
j=n/2+1;
a[1][j]=1;
for(k=2;k
j=j+1;
if((in))
{ i=i+2;
j=j-1;
}
else
{ if(i
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
{for(j=1;j
printf(“%5d”,a[i][j]);
printf(“n”);
}
return 0;}
9、有15个数按由大到小顺序存放在一个数组中,输入一个数,要求折半查找法找出该数是数组中第几个元素值。如果不在数组中则输出“无此数”。#include #define N 15 int main(){
int i,number,top,bott,mid,loca,a[N],flag=1,sign;
char c;
printf(“enter data:n”);
scanf(“%d”,&a[0]);
i=1;
while(i
{ scanf(“%d”,&a[i]);
if(a[i]>=a[i-1])
i++;
else
printf(“enter this data again:n”);
}
printf(“n”);
for(i=0;i
printf(“%5d”,a[i]);
printf(“n”);
while(flag){ printf(“input number to look for:”);
scanf(“%d”,&number);
sign=0;
top=0;
//top是查找区间的起始位置
bott=N-1;
//bott是查找区间的最末位置
if((numbera[N-1]))//要查的数不在查找区间内
loca=-1;
// 表示找不到
while((!sign)&&(top
{mid=(bott+top)/2;
if(number==a[mid])
{ loca=mid;
printf(“Has is %dn”,number,loca+1);
sign=1;
}
else if(number
bott=mid-1;
else
found
%d,its
position
top=mid+1;
}
if(!sign||loca==-1)
printf(“cannot find %d.n”,number);;
printf(“continu or not(Y/N)?”);
scanf(“ %c”,&c);
if(c=='N'||c=='n')
flag=0;
}
return 0;
}
10、有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符个数。
#include int main(){ int i,j,upp,low,dig,spa,oth;
char text[3][80];
upp=low=dig=spa=oth=0;
for(i=0;i
{ printf(“please input line %d:n”,i+1);
gets(text[i]);
for(j=0;j
{ if(text[i][j]>='A'&& text[i][j]
upp++;
else if(text[i][j]>='a' && text[i][j]
low++;
else if(text[i][j]>='0' && text[i][j]
dig++;
else if(text[i][j]==' ')
spa++;
else
oth++;
}
}
printf(“nupper case: %dn”,upp);
printf(“lower case: %dn”,low);
printf(“digit
: %dn”,dig);
printf(“space
: %dn”,spa);
printf(“other
: %dn”,oth);return 0;}
11、输出以下图案:* * * * *
* * * * * * * * * * * * * * * * * * * * #include int main(){ char a[5]={'*','*','*','*','*'};
int i,j,k;
char space=' ';
for(i=0;i
{ printf(“n”);
printf(“
”);
for(j=1;j
printf(“%c”,space);
for(k=0;k
printf(“%c”,a[k]);
}
printf(“n”);
return 0;}
12、有一行电文,已按下面规律译成密码:A>Z,B>Y,C>X„„a>z,b>y,c>x„„
编程译回原文并输出密码和原文。#include int main(){ int j,n;
char ch[80],tran[80];
printf(“input cipher code:”);
gets(ch);
printf(“ncipher code :%s”,ch);
j=0;
while(ch[j]!=' ')
{ if((ch[j]>='A')&&(ch[j]
tran[j]=155-ch[j];
else if((ch[j]>='a')&&(ch[j]
tran[j]=219-ch[j];
else
tran[j]=ch[j];
j++;
}
n=j;
printf(“noriginal text:”);
for(j=0;j
putchar(tran[j]);
printf(“n”);
return 0;}
12、有一行电文,已按下面规律译成密码:a>z,b>y,c>x„„
编程译回原文并输出密码和原文。#include int main(){ int j,n;
char ch[80];
printf(“input cipher code:n”);
gets(ch);
printf(“ncipher code:%sn”,ch);
j=0;
while(ch[j]!=' ')
A>Z,B>Y,C>X„„
{ if((ch[j]>='A')&&(ch[j]
ch[j]=155-ch[j];
else if((ch[j]>='a')&&(ch[j]
ch[j]=219-ch[j];
else
ch[j]=ch[j];
j++;
}
n=j;
printf(“original text:”);
for(j=0;j
putchar(ch[j]);
printf(“n”);
return 0;}
15、编写一个程序,将S2中的全部字符复制到字符数组S1中。不用strcpy函数。复制时‘ ’ 也要复制过去。‘ ’后面的字符不复制。#include int main(){ char s1[80],s2[40];
int i=0,j=0;
printf(“input string1:”);
scanf(“%s”,s1);
printf(“input string2:”);
scanf(“%s”,s2);
while(s1[i]!=' ')
i++;
while(s2[j]!=' ')
s1[i++]=s2[j++];
s1[i]=' ';
printf(“nThe new string is:%sn”,s1);
return 0;}
15、编写一个程序,将S2中的全部字符复制到字符数组S1中。不用strcpy函数。复制时‘ ’ 也要复制过去。‘ ’后面的字符不复制。#include #include int main(){ char s1[80],s2[80];
int i;
printf(“input s2:”);
scanf(“%s”,s2);
for(i=0;i
s1[i]=s2[i];
printf(“s1:%sn”,s1);
return 0;} 第七章
1、写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。程序有误
#include int main(){ int hcf(int,int);
int lcd(int,int,int);
int u,v,h,l;
scanf(“%d,%d”,&u,&v);
h=hcf(u,v);
printf(“H.C.F=%dn”,h);
l=lcd(u,v,h);