《C程序設(shè)計》(譚浩強著)為了使初學者易于接受,能盡快地學會用C語言編寫程序并上機實踐,在第一部分中只介紹了 C 語言中最基本的三種數(shù)據(jù)類型。以下是由學生范文網(wǎng)小編整理關(guān)于《C程序設(shè)計》(譚浩強著)第四版課后答案下載地址,希望大家喜歡!
點擊進入:《C程序設(shè)計》(譚浩強著)第四版課后答案下載地址
《C程序設(shè)計》(譚浩強著)第四版第10章課后答案
第十章 指針
10.1輸入三個整數(shù),按由小到大的順序輸出。
main()
{ int a,b,c,*p1,*p2,*p3,t;
scanf("%d,%d,%d",&a,&b,&c);
p1=&a;p2=&b;p3=&c;
if(*p1>*p2)
{t=p1;p1=p2;p2=t;}
if(*p1>*p3)
{t=p1;p1=p3;p3=t;}
if(*p2>*p3)
{t=p2;p2=p3;p3=t;}
printf("%d,%d,%d\n",*p1,*p2,*p3);
}
或
main()
{int a,b,c,*p1,*p2,*p3,t;
scanf("%d,%d,%d",&a,&b,&c);
p1=&a;p2=&b;p3=&c;
if(a>b)
{t=*p1;*p1=*p2;*p2=t;}
if(a>c)
{t=*p1;*p1=*p3;*p3=t;}
if(b>c)
{t=*p2;*p2=*p3;*p3=t;}
printf("%d,%d,%d\n",a,b,c);
}
10.2輸入三個字符串,按由小到大的順序輸出
#define N 3
#define M 20
main()
{char str0[N][M],str1[M],*p,*q;
int i,l,m,n;
q=str0;
for(;p<q+N;p++)
gets(p);
l=strcmp(q,q+1);
if(l>0)
{strcpy(str1,q);strcpy(q,q+1);strcpy(q+1,str1);}
m=strcmp(q,q+2);
if(m>0)
{strcpy(str1,q);strcpy(q,q+2);strcpy(q+2,str1);}
n=strcmp(q+1,q+2);
if(n>0)
{strcpy(str1,q);strcpy(q+1,q+2);strcpy(q+2,q+1);}
for(p=q;p<q+N;p++)
puts(p);
}
10.3輸入10個整數(shù),將其中最小的數(shù)與第一個數(shù)對換,把最大的數(shù)與最后一個數(shù)對換。寫三個函數(shù);①輸入10個數(shù);②進行處理;③輸出10個數(shù)。
f(x,n)
int x[],n;
{int *p0,*p1,i,j,t,y;
i=j=x[0];p0=p1=x;
for(y=0;y<n;y++)
{if(x[y]>i)
{i=x[y];p0=&x[y];}
else if(x[y]<j)
{j=x[y];p1=&x[y];}}
t=*p0;*p0=x[n-1];x[n-1]=t;
t=*p1;*p1=x[0];x[0]=t;
return;
}
main()
{int a[10],u,*r;
for(u=0;u<10;u++)
scanf("%d",&a[u]);
f(a,10);
for(u=0,r=a;u<10;u++,r++)
printf(" %d",a[u]);
printf("\n");
}
10.4有n個整數(shù),使前面各數(shù)順序向后移m個位置,最后m個數(shù)變成前面m個數(shù),見圖。寫一函數(shù):實現(xiàn)以上功能,在主函數(shù)中輸入n個數(shù)和輸出調(diào)整后的n個數(shù)。
#define N 10
void shift(p,x)
float *p;int x;
{float a[N],*q,*o;int i;
o=a;q=p;
for(i=0;i<x;i++)
*(o+i)=*(q+N-x+i);
for(p=p+N-1;p>=q;p--)
*p=*(p-x);
for(i=0;i<x;i++)
*(q+i)=*(o+i);
return;}
main()
{float shuzhu[N],*u,*v;
int h,i;u=v=shuzhu;
scanf("%f",&h);
for(;u<v+N;u++)
scanf("%f",u);
shift(v,h);
for(u=v;u<v+N;u++)
printf("%.2f ",*u);
printf("\n");
}
10.5有n人圍成一圈,順序排號。從第1個人開始報數(shù)(從1到3報數(shù)),凡報到3的人退出圈子,問最后留下的是原來的第幾號的那位。
#define N 5
main()
{int i,j,k,a[N+1],*p;
for(i=0,p=a;p<=a+N;i++,p++)
*p=i;
p=a+1;k=N;
for(i=0,j=1;k!=1;j++)
{if(p>(a+N))
p=a+1;
if(*p!=0)
i++;
if((i-3)==0)
{*p=0;i=0;k--;}
p++;
}
for(i=1;i<=N;i++)
if(a[i]!=0)
printf("The last number is %d\n",a[i]);}
10.7有一字符串,包含n個字符。寫一函數(shù),將此字符串中從第m個字符開始的全部字符復制成為另一個字符串。
#include"stdio.h"
#define N 10
main()
{char a[N+1],b[N+1],*p,*q;
int m;
gets(a);
scanf("%d",&m);
p=a+m;q=b;
strcpy(q,p);
puts(q);
}
10.6寫一函數(shù),求一個字符串的長度。在主函數(shù)種輸入字符串,并輸出其長度。
看過“《C程序設(shè)計》(譚浩強著)第四版第10章課后答案下載”的人還看了:
1.《C程序設(shè)計》譚浩強 第四版課后答案完整版 清華大學出版社