c++0210757Word格式文档下载.docx
《c++0210757Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《c++0210757Word格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。
{
if(k==0)
return1;
else
returnpower(x,k-1)*x;
}
intmain()
doublex1;
intk1;
cout<
<
"
请输入任意给定的实数x和整数k"
;
cin>
>
x1>
k1;
x1<
的"
k1<
次方是:
power(x1,k1)<
endl;
return0;
3.实验结果
(二)实验题目二:
第7章第3题
1要点分析:
构造递归函数。
2程序源代码:
#include<
intfib(intn)
if(n==0)
return0;
elseif(n==1)
returnfib(n-1)+fib(n-2);
intn;
请输入待求的数列的项数:
n;
数列的第"
n<
项是:
fib(n)<
3实验结果:
(三)实验题目三:
第7章第5题
按照不同的参数和返回值,设计不同的一组同名函数,使用时直接把相应的数据带入即可。
intmax(intx,inty)
return(x>
y)?
x:
y;
doublemax(doublex,doubley)
charmax(charx,chary)
intm1=5,m2=3;
doubled1=12.2,d2=43.2;
charc1='
a'
c2='
b'
m1<
和"
m2<
中的最大值是:
max(m1,m2)<
d1<
d2<
max(d1,d2)<
c1<
c2<
max(c1,c2)<
(四)实验题目四:
第7章第7题
定义一个指向字符的指针并判断字符串前面是否有空格,若有,继续向后判断直到第一个非空格的字符出现,将从该指针开始的字符串复制到原字符串即可。
cstring>
char*myltrim(char*string)
char*ptr=string;
while(*ptr=='
'
)
ptr++;
strcpy(string,ptr);
returnstring;
charstr[]="
theartofcomputerprogramming"
截取空格前的原始字符是:
["
str<
'
]'
截取空格后的字符串是:
myltrim(str)<
str;
五.实验题目五:
第7章第9题
指向函数的指针的说明与使用。
cmath>
doubleequation(double(*func)(double),doublea,doubleb,doubleeps)
doublex;
do
{
x=(a+b)/2;
if(func(x)*func(a)>
0)
a=x;
else
b=x;
}while(fabs(func(x))>
eps);
returnx;
doublef1(doublex)
returnx*x+2*x-3;
doublea,b;
doubleeps=1.0e-7;
请输入区间的两个端点:
a>
b;
结果是:
equation(f1,a,b,eps)<
六.实验题目六:
将数字、小数点、正负号组成的字符串转换成相应的实数,例如:
-3.14159"
变成-3.14159。
函数原型如下:
doublemyatof(char*num);
要求编写主函数加以测试。
程序源代码:
doublemyatof(char*num)
intn=1;
doublex=0.0,y=0.0;
if(*num=='
-'
n=-1;
num++;
}
+'
n=1;
while(*num!
=0&
&
*num>
='
0'
*num<
9'
x=x*10+*num-'
n*x;
if(*num=='
.'
)
{
num++;
n=1;
While(*num!
y=y*10+*num-'
chara[20],*p=a;
请输入待转换的字符:
a;
转换后的结果是:
myatof(p);
return0;
实验结果:
七.实验题目七:
在字符串T中查找子串S,若找到,返回子串的个数,若找不到返回0。
#include<
intstrchr(char*t,char*s)
inti=0;
char*q=s,*p;
while(*t!
=0)
p=t;
while(*q!
=0)
{
if(*p==*q)
{
p++;
q++;
}
elsebreak;
if(*q==0)
i++;
q=s;
t++;
returni;
chart[50],s[20],*p=t,*q=s;
请输入被查找的字符串:
cin.get(t,50);
请输入要查找的字符串:
s;
查找的字符串个数是:
strchr(p,q)<
三.个人小结
本次上机实验做的是函数与指针的应用,遇到了较多困难。
首先不能完全理解指针的含义,在运用的过程中出现定义错误。
其次在实验中不能很好的运用指针去简化算法。
有时在编写程序的过程中由于涉及到的指针变量有点多,不能很好的理解各个变量所代表的含义,这就造成了程序在理解上的障碍。
另外有许多疑问:
指向函数的指针,它的意义是什么?
只是表示存储函数的地址吗?
还有定义了一个指针*ptr,那么为什么在输出时输出ptr和*ptr有区别?
它们的含义分别是什么呢?