C程序设计第四版谭浩强习题例题Word格式.docx
- 文档编号:7837891
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:39
- 大小:165.46KB
C程序设计第四版谭浩强习题例题Word格式.docx
《C程序设计第四版谭浩强习题例题Word格式.docx》由会员分享,可在线阅读,更多相关《C程序设计第四版谭浩强习题例题Word格式.docx(39页珍藏版)》请在冰点文库上搜索。
floatadd(floatx,floaty);
floata,b,c;
pleaseenteraandb:
c=add(a,b);
sumis%f\n"
floatadd(floatx,floaty)
z=x+y;
intmax4(inta,intb,intc,intd);
inta,b,c,d,max;
pleaseenter4intergernumber:
%d%d%d%d"
b,&
c,&
d);
max=max4(a,b,c,d);
max=%d\n"
max);
intmax4(inta,intb,intc,intd)
intmax2(inta,intb);
intm;
m=max2(a,b);
m=max2(m,c);
m=max2(m,d);
return(m);
intmax2(inta,intb)
if(a>
=b)returna;
elsereturnb;
return(max2(max2(max2(a,b),c),d));
return(a>
ba:
intage(intn);
age:
%d\n"
age(5));
intage(intn)
if(n==1)c=10;
elsec=age(n-1)+2;
return(c);
例递归方法求n!
intfac(intn);
intn,y;
inputaintergernumber:
%d"
n);
y=fac(n);
%d!
=%d\n"
n,y);
intfac(intn)
intf;
if(n<
0)printf("
n<
0,dataerror!
elseif(n==0||n==1)f=1;
elsef=fac(n-1)*n;
return(f);
例汉诺塔
voidhanoi(intn,charone,chartwo,charthree);
inputthenumberofdiskes:
m);
Thesteptomove%ddiskes:
m);
hanoi(m,'
A'
'
B'
C'
voidhanoi(intn,charone,chartwo,charthree)
n"
m,n+1);
return(x>
y);
floataverage(floatarray[10]);
floatscore[10],aver;
inti;
enter10scores:
for(i=0;
i<
10;
i++)
scanf("
%f"
score[i]);
aver=average(score);
averagescoreis%\n"
aver);
floataverage(floatarray[10])
floataver,sum=array[0];
for(i=1;
sum=sum+array[i];
aver=sum/10;
return(aver);
floataverage(floatarray[10],intn);
floatscore1[5]={,97,,60,55};
floatscore2[10]={,,99,,77,,,54,60,};
TheaverageofclassAis%\n"
average(score1,5));
TheaverageofclassBis%\n"
average(score2,10));
floataverage(floatarray[10],intn)
n;
aver=sum/n;
voidsort(intarray[],intn);
inta[10],i;
enterarray:
a[i]);
sort(a,10);
Thesortedarray:
printf("
%d"
a[i]);
voidsort(intarray[],intn)
inti,j,k,t;
n-1;
{
k=i;
for(j=i+1;
j<
j++)
if(array[j]<
array[k])
k=j;
t=array[k];
array[k]=array[i];
array[i]=t;
}
intmax_value(intarray[][4]);
inta[3][4]={{1,3,5,7},{2,4,6,8},{15,17,34,12}};
Maxvalueis%d\n"
max_value(a));
intmax_value(intarray[][4])
inti,j,max;
max=array[0][0];
3;
for(j=0;
4;
if(array[i][j]>
max)max=array[i][j];
return(max);
floatMax=0,Min=0;
floataverage(floatarray[],intn);
floatave,score[10];
Pleaseenter10score:
ave=average(score,10);
max=%\nmin=%\naverage=%\n"
Max,Min,ave);
floataverage(floatarray[],intn)
Max=Min=array[0];
for(i=1;
if(array[i]>
Max)Max=array[i];
elseif(array[i]<
Min)Min=array[i];
sum+=array[i];
inta=3,b=5;
intmax(inta,intb);
inta=8;
max(a,b));
intmax(inta,intb)
c=a>
b;
intf(int);
inta=2,i;
for(i=0;
f(a));
intf(inta)
autointb=0;
staticc=3;
b=b+1;
c=c+1;
return(a+b+c);
=5;
i,fac(i));
staticintf=1;
f=f*n;
intmax();
externintA,B,C;
Pleaseenterthreeintergernumbers\n"
%d%d%d"
A,&
B,&
C);
max());
intA,B,C;
intmax()
m=A>
BA:
B;
if(C>
m)m=C;
intA;
intpower(int);
intb=3,c,d,m;
enterthenumberaanditspowerm:
c=A*b;
%d*%d=%d\n"
A,b,c);
d=power(m);
%d**%d=%d\n"
A,m,d);
externA;
intpower(intn)
inti,y=1;
=n;
y*=A;
return(y);
externvoidenter_string(charstr[]);
externvoiddelete_string(charstr[],charch);
externvoidprint_string(charstr[]);
charc,str[80];
enter_string(str);
%c"
c);
delete_string(str,c);
print_string(str);
voidenter_string(charstr[80])
gets(str);
voiddelete_string(charstr[],charch)
inti,j;
for(i=j=0;
str[i]!
='
\0'
;
if(str[i]!
=ch)
str[j++]=str[i];
str[j]='
voidprint_string(charstr[])
printf("
%s\n"
str);
习题
1.
intdivisor(x,y)
intr;
if(x<
y)
r=x;
x=y;
y=r;
while(r)
r=x%y;
return(x);
intmultiple(intx,inty)
z=x*y/divisor(x,y);
inta,b;
请输入两个整数a和b:
a和b的最大公约数为%d.\n"
divisor(a,b));
a和b的最小公倍数为%d.\n"
multiple(a,b));
2.
floatd;
voiddisc1(floata,floatb,floatc)
方程有两不等实根:
x1=%,x2=%\n"
(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a));
voiddisc2(floata,floatb,floatc)
方程有两相等实根:
x1=x2=%\n"
-b/(2*a));
voiddisc3(floata,floatb,floatc)
x1=%+%,x2=%%\n"
-b/(2*a),sqrt(-d)/(2*a),-b/(2*a),sqrt(-d)/(2*a));
请输入a,b,c:
%f,%f,%f"
d=b*b-4*a*c;
if(d>
0)disc1(a,b,c);
elseif(fabs(d)<
=1e-6)disc2(a,b,c);
elsedisc3(a,b,c);
3.
voidf(inta)
inti,n=(int)sqrt(a),t;
for(i=2,t=1;
if(a%i==0)
{
t=0;
这是一个合数.\n"
break;
}
if(t)printf("
这是一个素数.\n"
inta;
请输入一个正整数a:
a);
f(a);
4.
voidf(inta[3][3])
inti,j,t;
=2;
for(j=0;
i;
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
voidmain()
inti,j,a[3][3]={1,2,3,4,5,6,7,8,9};
printf("
%5d"
a[i][j]);
5.
voidf(chara[])
inti,t;
charb;
t=strlen(a);
=t/2;
b=a[i];
a[i]=a[t-i-1];
a[t-i-1]=b;
charch[80];
gets(ch);
f(ch);
puts(ch);
6.
voidf(chara[],charb[])
a[i]!
i++);
b[j]!
i++,j++)
a[i]=b[j];
charch1[80]="
ch2[]="
Fine,thankyou,andyou"
f(ch1,ch2);
puts(ch1);
7.
voidf(chara[80],charb[40])
for(i=0,j=0;
if(a[i]=='
||a[i]=='
E'
I'
O'
U'
a'
e'
i'
o'
u'
)
b[j]=a[i];
j++;
}
b[j]='
}
intmain()
charch1[80]="
HowareyouFine,thankyou,andyou"
ch2[40];
f(ch1,ch2);
puts(ch2);
return0;
8.
voidf(intn,intch[])
ch[0]=n/1000;
ch[1]=(n-ch[0]*1000)/100;
ch[2]=(n-ch[0]*1000-ch[1]*100)/10;
ch[3]=n%10;
intn,i,ch[4];
输入一个四位整数:
f(n,ch);
=3;
%c"
ch[i]+48);
9.
intupp,low,num,space,other;
voidf(charc[])
for(upp=0,low=0,num=0,space=0,other=0,i=0;
c[i]!
if(c[i]>
&
c[i]<
Z'
)upp++;
elseif(c[i]>
z'
)low++;
0'
9'
)num++;
elseif(c[i]=='
'
)space++;
elseother++;
输入一句英文,限80字符内:
大写字母%d个,小写字母%d个,数字%d个,空格%d个,其他%d个\n"
upp,low,num,space,other);
10.
voidf(chara[100],charb[40][30])
inti,m,n,k,g;
for(i=m=n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 第四 版谭浩强 习题 例题