函数练习参考代码Word文件下载.docx
- 文档编号:5754170
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:13
- 大小:22.01KB
函数练习参考代码Word文件下载.docx
《函数练习参考代码Word文件下载.docx》由会员分享,可在线阅读,更多相关《函数练习参考代码Word文件下载.docx(13页珍藏版)》请在冰点文库上搜索。
b?
a:
b;
2)编写一个程序,调函数实现功能:
(1)求两个数之和;
(2)求两个数之差;
(3)求两个数之积。
doubleadd(doublea,doubleb)
returna+b;
doublesubtract(doublea,doubleb)
returna-b;
doublemultiple(doublea,doubleb)
returna*b;
intmain()
doublenum1,num2;
printf(“pleaseinputtownumber:
”);
scanf(“%lf%lf”,&
num1,&
num2);
printf(“%5.2f+%5.2f=%5.2f\n”,num1,num2,add(num1,num2));
printf(“%5.2f+%5.2f=%5.2f\n”,num1,num2,subtract(num1,num2));
printf(“%5.2f+%5.2f=%5.2f\n”,num1,num2,multiple(num1,num2));
3)编写一个函数,函数的3个参数是一个字符和两个整数。
字符参数是需要输出的字符,第一个整数说明了在每行中该字符输出的个数,而第二个整数指的是需要输出的行数,编写一个调用该函数的程序。
voidchLineRow(charch,intc,intr);
charch;
intcol,row;
Enteracharacter(#toquit):
while((ch=getchar())!
='
#'
)
{
if(ch=='
\n'
continue;
Enternumberofcolumnsandnumberofrows:
if(scanf("
%d%d"
col,&
row)!
=2)
break;
chLineRow(ch,col,row);
\nEnternextcharacter(#toquit):
}
Bye!
\n"
voidchLineRow(charch,intc,intr)
for(row=0;
row<
r;
row++)
for(col=0;
col<
c;
col++)
putchar(ch);
putchar('
}
4)以下函数的功能是用递归的方法计算x的n阶勒让德多项式的值。
已有调用语句p(n,x);
编写函数实现功能。
递归公式如下:
floatp(intx,intn)
floatt,t1,t2;
if(n==0)return1;
elseif(n==1)returnx;
else
t1=(2*n-1)*x*p(x,(n-1));
t2=(n-1)*p(x,(n-2));
t=(t1-t2)/n;
returnt;
intx,n;
printf(“inputtwoint(xandn):
scanf(“%d%d”,&
x,&
n);
printf(“%.2f\n”,p(x,n));
5)编写一个函数taxis()实现数组的排序,在函数中调用swap()实现两个数的交换。
打印出排序结果。
voidswap(int*a,int*b)
inttmp;
tmp=*a;
*a=*b;
*b=tmp;
voidtaxis(int*a,intnum)
inti,j;
for(i=0;
i<
num-1;
i++)
for(j=i+1;
j<
num;
j++)
{
if(a[i]>
a[j])
swap(&
a[i],&
a[j]);
inti,a[]={2,5,9,8,7,6,4,3,1};
taxis(a,sizeof(a)/sizeof(int));
sizeof(a)/sizeof(int);
printf(“%d\t”,a[i]);
printf(“\n”);
return0;
二、进阶能力落实:
1)编写一个函数,实现两个字符串的比较。
intmy_strcmp(char*p,char*q)
inti=0;
;
while(*(p+i)==*(q+i))
if(*(p+i)==’\0’)return0;
i++;
}
return(*(p+i)-*(q+i));
intm;
charstr1[20],str2[20];
printf(“Inputtowstrings:
gets(str1);
gets(str2);
printf(“result:
%d\n”,my_strmp(str1,str2));
2)编写一个函数is-within().它接受两个参数,一个是字符,另一个是字符串指针。
其功能是如果字符在字符串中。
就返回一个非0值(真);
如果字符不在字符串中,就返回0值(假)。
在一个使用循环语句为这个函数提供输入的完整程序中进行测试。
#defineLEN80
intis_within(constchar*str,charc);
intmain(void)
charinput[LEN];
intfound;
Enterastring:
while(gets(input)&
&
input[0]!
\0'
Enteracharacter:
scanf(“\n%c”,&
ch);
found=is_within(input,ch);
if(found==0)
%cnotfoundinstring.\n"
ch);
else
%cfoundinstring%s\n"
ch,input);
Nextstring:
puts("
Done.\n"
intis_within(constchar*str,charch)
while(*str!
=ch&
*str!
str++;
return*str;
/*=0if‘\0’isreached,non-zerootherwise*/
3)有一个班,有3个学生,各四门课,计算总平均分数,以及地n个学生的成绩。
(用函数average求平均成绩,用函数search找出并输出第i个学生的成绩)
intnum;
floatscore[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}};
printf(“average=%5.2f\n”,average(score[0],12));
while
(1)
printf(“Inputanumber(1~3):
scanf(“%d”,&
num);
if((num>
3)||(num<
1))
printf(“error!
\n”);
elsesearch(score,num);
floataverage(float*p,intn)
float*p_end;
floatsum=0,aver;
p_end=p+n-1;
for(;
p<
=p_end;
p++)
sum+=*p;
aver=sum/n;
returnaver;
intsearch(float(*p)[4],intn)
inti;
printf(“thescoreofNO.%dare:
”,n);
4;
printf(“%2.0f”,*(*(p+n-1)+i));
4)编写并测试函数larger_of(),其功能是将两个double类型变量的数值替换成它们中的较大值,例如:
larger_of(x,y)会把x,y中的较大数值重新赋给变量x和y.
#inlcude<
voidlarger_of(double*p1,double*p2);
Entertwonumbers(qtoquit):
while(scanf("
y)==2)
larger_of(&
Themodifiedvaluesare%fand%f.\n"
x,y);
Nexttwovalues(qtoquit):
voidlarger_of(double*p1,double*p2)
doubletemp=*p1>
*p2?
*p1:
*p2;
*p1=*p2=temp;
5)编写一个函数,其参数为一个字符串,函数删除字符串中的空格,在一个可以循环读取的程序中进行测试,直到用户输入空行,对于任何输入字符串,函数都应该使用和并可以显示结果
#defineLEN81
intdrop_space(char*s);
charorig[LEN];
while(gets(orig)&
orig[0]!
{
drop_space(orig);
puts(orig);
"
intdrop_space(char*s)
char*p,*q;
p=q=s;
while(*q!
=‘\0’)
if(*q!
=‘‘)
*p++=*q++;
q++;
*p=‘\0’;
6)给主函数传递参数实现echo功能:
#incldue<
intmain(intargc,char*argv[])
{inti=1;
while(i<
argc)
printf(“%s”,argv[i]);
i++;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 函数 练习 参考 代码
![提示](https://static.bingdoc.com/images/bang_tan.gif)