第5章C语言程序设计习题答案
《C语言程序设计(Visual C++6.0环境)》习题答案
习题五#include "stdio.h"
int f1(int x,int y)
{int z;
z=x+y;
return z;}
int f2(int x,int y)
{int c;
c=x-y;
return c;}
main()
{int m,n,sum,dec;
scanf("%d%d",&m,&n);
sum=f1(m,n);
dec=f2(m,n);
printf("sum=%d,,dec=%d\n",sum,dec);}
2、编写一个将两个字符串连接的函数。
①?# include
cvs(char str1[],char str2[],char str[])
{int i,j;
for(i=0;str1[i]!='\0';i++)
str[i]=str1[i];
for(j=0;str2[j]!='\0';j++)
str[i+j]=str2[j];
str[i+j]='\0';
}
main()
{ char s1[100],s2[100],s[100];
printf("输入2个字符串\n");
scanf("%s%s",s1,s2);
cvs(s1,s2,s);
printf("两字符串连接后:%s\n" ,s);
}
②#include "stdio.h"
#include "string.h"
void lj(char s1[],char s2[])
{int i,j;
for(i=strlen(s1),j=0;s2[j]!='\0';i++,j++)
s1[i]=s2[j];
s1[i]='\0';
}
main()
{char s1[200],s2[100];
printf("请输入第一个字符串");
gets(s1);
printf("请输入第二个字符串");
gets(s2);
printf("输入的字符串是:");
puts(s1);
puts(s2);
lj(s1,s2);
printf("连接后的字符串是:");
puts(s1);}
3、编写一个函数,输入一个十进制数,输出相应的二进制数。
数组:
#include "stdio.h"
void zh(int number,int a[])
{
int ys;
int i=0,n;
while (number/2!=0)
{a[i++]=number%2;
number/=2;}
a[i]=number%2;
for(n=i;n>=0;n--)
printf("%5d",a[n]);
}
main()
{
int number;
int a[10];
printf("Please input nunber: ");
scanf("%d",&number);
zh(number,a);
}
递归
(1)#include "stdio.h"
void zh(int number)
{
int ys;
ys=number%2;
number=number/2;
if (number==1)
printf("%d",number);
else
zh(number);
printf("%d",ys);
}
main()
{
int number;
printf("Please input nunber: ");
scanf("%d",&number);
zh(number);
}
(2)
#include "stdio.h"
void zh(int m)
{int f;
f=m%2;
if (m/2==0)
{printf("%d",m%2);return ;}
else
zh(m/2);
printf("%d",f);
}
main( )
{int m;
printf("请输入一个十进制数:");
scanf ("%d", &m);
zh(m);
}
4、编写一个函数,使输入的字符串反序存放,在主函数中输入和输出字符串。
①
# include
# include
inver(char str[])
{