📄 xt3.htm
字号:
cout<<a<<endl;<BR>}<BR>void fun(char s[],int
k)<BR>{ int x,y;<BR> char c;<BR> x=0;<BR> for
(y=k-1;x<y;y--)<BR> { c=s[y]; s[y]=s[x]; s[x]=c;<BR>
x++;<BR> }<BR>}<BR>程序的运行结果是: fedcba</P>
<P class=xt12>3.15
指出下列程序各函数中的全局变量与局部变量,静态变量与动态变量,各变量的存储类型、作用域与生存期,并写出下列程序的运行结果:<BR>解:<BR>#include
<iostream.h><BR>extern int x;// 说明 x 为外部变量 ,
作用域从这里开始直程序结束 , 生存期在整个文件中<BR>void change(void)<BR>{ register
int y=0,z=3;// 动态局部变量 , 变量的生存期从这里开始到 change() 函数结束<BR>
cout<<x<<'\t'<<y<<'\t'<<z<<endl;<BR>
x=2;y=2;<BR>
cout<<x<<'\t'<<y<<'\t'<<z<<endl;<BR>}<BR>int
x=3,y=4;// 全局变量 x,y<BR>void main(void)<BR>{ auto int x,z=
-3;// 动态局部变量 , 变量的生存期从这里开始到 main()
函数结束<BR> x=1;<BR> cout<<x<<'\t'<<y<<'\t'<<z<<endl;<BR> change();<BR> cout<<x<<'\t'<<y<<'\t'<<z<<endl;<BR> cout<<::x<<'\t'<<::y<<'\t'<<z<<endl;<BR>}<BR>程序的运行结果是:<BR>1
4 -3<BR>3 0 3<BR>2 2 3<BR>1 4 -3<BR>2 4 -3 </P>
<P class=xt12>3.16
指出下列各函数中各变量的存储类型、作用域与生存期,写出下列程序的运行结果:<BR>解:<BR>#include
<iostream.h><BR>void main(void)<BR>{ int i;// 动态局部变量 ,
变量的生存期从这里开始到 main() 函数结束<BR> void
add1(void),add2(void);<BR> for
(i=0;i<3;i++)<BR> { add1();<BR> add2();<BR>
cout<<endl;<BR> }<BR>}<BR>void add1(void)<BR>{ int
x=0;// 动态局部变量 , 变量的生存期从这里开始到 add1()
函数结束<BR> x++;<BR> cout<<x<<'\t';<BR>}<BR>void
add2(void)<BR>{ static int x=0; // 静态局部变量 , 该变量只能在定义它的函数体内使用 ,
生存期为整个程序运行期间 x++;<BR>
cout<<x<<'\t';<BR>}<BR>程序的运行结果是:<BR>1 1<BR>1
2<BR>1 3</P>
<P class=xt12>3.17 指出下列各文件中变量的存储类型、作用域与生存期,写出下列程序的运行结果:<BR>解
:<BR>// 文件名 : exercise5_16.cpp<BR>#include
<iostream.h><BR>int x=1,y=2;// 全局变量 x,y,
变量的生存期从这里开始到文件结束<BR>static int z=3;// 静态全局变量 ,
变量有作用域只能在本文件中<BR>extern void add(void);<BR>void
main(void)<BR>{ add();<BR>
cout<<"x="<<x<<'\t'<<"y="<<y
<<'\t'<<"z="<<z<<endl;<BR>}<BR>// 文件名
: exercise5_161.cpp<BR>#include <iostream.h><BR>extern
int x,y;// 说明 x,y 为外部变量<BR>void add(void)<BR>{ x+=3;<BR>
y+=4;<BR>
cout<<"x="<<x<<'\t'<<"y="<<y<<endl;<BR>}<BR>在第二个文件中能否将第一个文件中的变量
z 定义为外部变量?<BR>程序运行结果是 :<BR>x=4 y=6<BR>x=4 y=6
z=3<BR>在第二个文件中不能将第一个文件中的变量 z 定义为外部变量 , 因为 static
定义的静态变量已经被限定在文件 exercise5_16.cpp 内使用 , 而不能用 extern
说明成外部变量在其它文件中使用 .</P>
<P class=xt12>3.18 编写一个函数把华氏温度转换成摄氏温度,温度转换公式为: c=(f-32)*5/9
。在主函数中输入华氏温度值,转换后输出相应的摄氏温度值。<BR>解:<BR>#include
<iostream.h><BR>void main(void)<BR>{ float f,c;<BR>
float change(float x);// 函数原型说明<BR> cout<<" 请输入华氏温度:
"<<endl;<BR> cin>>f;<BR> c=change(f);<BR>
cout<<" 转换后的摄氏温度为 "<<c<<endl;<BR>}<BR>float
change(float x)<BR>{ float y;<BR> y=(x-32)*5/9;<BR>
return(y);<BR>}<BR>程序的运行结果是:<BR>请输入华氏温度:<BR>33<BR>转换后的摄氏温度为
0.555556 </P>
<P class=xt12>3.19
编写一个函数判断一个整数是否为素数。在主函数中输入一个整数,输出该整数是否为素数的信息。<BR>解:<BR>#include
<iostream.h><BR>void main(void)<BR>{ int prime(int x);//
函数原型说明<BR> int n;<BR> cout<<" 请输入一个整数:
"<<endl;<BR> cin>>n;<BR> if(prime(n))<BR>
cout<<n<<" 是一个素数 "<<endl;<BR> else<BR>
cout<<n<<" 是一个非素数 "<<endl;<BR>}<BR>int
prime(int x)<BR>{<BR> int flag=1,i;<BR>
for(i=2;i<x/2&&flag==1;i++)<BR> if(x%i==0)<BR>
flag=0;<BR>
return(flag);<BR>}<BR>程序运行结果是:<BR>请输入一个整数:<BR>19<BR>19
是一个素数</P>
<P class=xt12>3.20 编写一个函数 power(float x,int n) ,用于计算 x 的 n
次幂。在主函数中实现输入输出。<BR>解:<BR>#include <iostream.h><BR>double
power(float x,int n)// 计算 x 的 n 次幂用循环实现<BR>{<BR> double
z=1;<BR> int i=1;<BR> if(n==0)<BR> z=1;<BR> else
if(n>0)<BR> { while(i<=n)<BR> { z=x*z;<BR>
i++;<BR> }<BR> }<BR> else<BR> { while(i<=(-n))<BR> {
z=x*z;<BR> i++;<BR> }<BR> return(1/z);<BR> }<BR>
return(z);<BR>}<BR>void main(void)<BR>{ float x;<BR> double
y;<BR> int n;<BR> cout<<" 请输入 X 和 n 的值
"<<endl;<BR> cin>>x>>n;<BR>
y=power(x,n);<BR> cout<<" 结果为:
"<<y<<endl;<BR>}<BR>程序运行结果 :<BR>请输入 x 和 n 的值<BR>5
2<BR>求和结果为 :25</P>
<P class=xt12>3.21 编写一个计算 1 至 n 的平方和的函数。<BR>解:<BR>#include
<iostream.h><BR>long int fun(int n)// 计算 1 到 n
次的平方和<BR>{<BR> long int sum=0;<BR> int i=1;<BR>
while(i<=n)<BR> {<BR> sum=sum+i*i;<BR>
i++;<BR> }<BR> return(sum);<BR>}<BR>void
main(void)<BR>{ long int y;<BR> y=fun(12)+fun(15);<BR>
cout<<" 结果为: "<<y<<endl;<BR>}<BR>程序运行结果
:<BR>求和结果为 :1890</P>
<P class=xt12>3.22 编写两个函数,分别求两个整数 m 、 n
的最大公约数和最小公倍数。在主函数中输入两个整数,分别调用这两个函数求得结果并输出。求两个整数 m 、 n
的最大公约数和最小公倍数的算法提示如下:<BR>(1)将m、n中的最大数赋给变量a,最小数赋给变量b。<BR>(2)用大数a除以小数b,若余数c为0,则余数c为最大公约数,否则进行(3)。<BR>(3)将小数b赋给a,余数c赋给b,再进行(2),直到余数等于0为止。<BR>(4)最小公倍数=(m*n)/最大公约数。<BR>例如:求20与14的最大公约数方法:20%14=6,14%6=2,6%2=0,则2为20与14的最大公约数。最小公倍数=20*14/2=140。<BR>解:<BR>#include
<iostream.h><BR>int hcf(int m,int
n)//求最大公约数的函数<BR>{<BR> int
a,b;<BR> if(n>m)<BR> {a=m;m=n;n=a;}<BR> while((b=m%n)!=0)<BR> {<BR> m=n;<BR> n=b;<BR> }<BR> return(n);<BR>}<BR>int
lcd(int m,int n,int
h)//求最小公倍数的函数<BR>{<BR> return(m*n/h);<BR>}<BR>void
main(void)<BR>{<BR> int
x,y,a,b;<BR> cout<<"请输入两个整数"<<endl;<BR> cin>>x>>y;<BR> a=hcf(x,y);<BR> cout<<"最大公约数为"<<a<<endl;<BR> b=lcd(x,y,a);<BR> cout<<"最小公倍数为"<<b<<endl;<BR>}<BR>程序运行结果:<BR>请输入两个整数<BR>20
14<BR>最大公约数为2<BR>最小公倍数为140</P>
<P><SPAN
class=xt12>3.23编写一个函数用递归的方法求1+2+3+4+…+n的值。在主函数中进行输入输出。</SPAN><BR><SPAN
class=xt12>解:<BR>#include <iostream.h><BR>int fun(int
n)<BR>{<BR> int
z;<BR> if(n<=0)<BR> z=0;<BR> else<BR> z=n+fun(n-1);<BR> return(z);<BR>}<BR>void
main(void)<BR>{<BR> int
x,sum;<BR> cout<<"请输入X的值"<<endl;<BR> cin>>x;<BR> sum=fun(x);<BR> cout<<"求和结果为:"<<sum<<endl;<BR>}<BR>程序运行结果:<BR>请输入X的值<BR>10<BR>求和结果为:55</SPAN></P>
<P class=xt12>3.24 编写一个函数power(float x,int
n)用递归的方法计算x的n次幂。在主函数中实现输入输出。<BR>解:<BR>#include
<iostream.h><BR>double power(float x,int
n)<BR>{<BR> double z;<BR> if(n==0)<BR> z=1;<BR> else
if(n>0)<BR> z=x*power(x,n-1);<BR> else
<BR> { z=x*power(x,-(n)-1);<BR>
return(1/z);}<BR> return(z);<BR>}<BR>void
main(void)<BR>{<BR> float x;<BR> double sum=0;<BR> int
n,i=1,sign=1;<BR> cout<<"请输入x和n的值"<<endl;<BR> cin>>x>>n;<BR> while(i<=n)<BR> {<BR> sum=sum+sign*power(x,i);<BR> i++;<BR> sign=sign*(-1);<BR> }<BR> cout<<"结果为:"<<sum<<endl;<BR>}<BR>程序运行结果:<BR>请输入x和n的值<BR>5
2<BR>求和结果为:25</P>
<P
class=xt12>3.25编写一个排序函数用选择法对一批整数按从大到小的次序进行排序。在主函数内输入数据,调用排序函数对数据排序,输出排序结果。<BR>解:<BR>#include
<iostream.h><BR>#include <iomanip.h><BR>void
sort(int a[])<BR>{<BR> int
i,j,max,temp;<BR> for(i=1;i<=9;i++)<BR> {<BR> max=i;<BR> for(j=i+1;j<=10;j++)<BR> if(a[max]<a[j])
max=j;<BR> temp=a[i];<BR> a[i]=a[max];<BR> a[max]=temp;<BR> }<BR>}<BR>void
main(void)<BR>{<BR> int i;<BR> int
a[11];//定义数组a的长度为11,a[0]不用,只用a[1]到a[10],以符合人们的习惯<BR> cout<<"请输入10个数:"<<endl;<BR> for(i=1;i<11;i++)<BR> cin>>a[i];<BR> sort(a);<BR> cout<<"输出排好序的10个数:"<<endl;<BR> for(i=1;i<11;i++)<BR> cout<<setw(5)<<a[i];<BR> cout<<endl;<BR>}<BR>程序运行结果:<BR>请输入10个数:<BR>90
78 68 96 88 75 67 85 92 84<BR>输出排好序的10个数:<BR>96 92 90 88 85 84
78 75 68 67</P>
<P
class=xt12>3.26编写一个字符串连接函数将两个字符串连接起来。在主函数中输入两个字符串,调用字符串连接函数,并输出连接后的字符串。<BR>解:<BR>#include
<iostream.h><BR>#include <iomanip.h><BR>void
concat(char string1[],char string2[],char
string[])<BR>{<BR> int
i,j;<BR> for(i=0;string1[i]!='\0';i++)<BR> string[i]=string1[i];<BR> for(j=0;string2[j]!='\0';j++)<BR> string[i+j]=string2[j];<BR> string[i+j]='\0';<BR>}<BR>void
main(void)<BR>{<BR> char
s1[100],s2[100],s[100];<BR> cout<<"请输入字符串1"<<endl;<BR> cin.getline(s1,100);<BR> cout<<"请输入字符串2"<<endl;<BR> cin.getline(s2,100);<BR> concat(s1,s2,s);<BR> cout<<"连接后的字符串为:"<<s<<endl;<BR>}<BR>程序运行结果:<BR>请输入字符串1<BR>Hellow<BR>请输入字符串2<BR>China!<BR>连接后的字符串为:Hellow
china!</P>
<P
class=xt12>3.27用内联函数实现求出一维数组的最大值。在主函数中输入数组元素值,调用求最大值函数,并输出数组最大值。<BR>解:<BR>#include
<iostream.h><BR>inline max(int a[],int n )<BR>{<BR> int
i,max;<BR> max=a[0];<BR> for(i=1;i<=n-1;i++)<BR> if
(max<a[i])<BR> max=a[i];<BR> return max;<BR>}</P>
<P class=xt12>void main(void)<BR>{<BR> int i;<BR> int
a[10];<BR> cout<<"请输入10个数:"<<endl;<BR> for(i=0;i<10;i++)<BR> cin>>a[i];<BR> cout<<"数组中最大的数为:"<<max(a,10)<<endl;<BR>}<BR>程序运行结果:<BR>请输入10个数:<BR>34
56 78 53 57 38 97 88 22 19<BR>数组中最大的数为:97</P>
<P
class=xt12>3.28编写一个函数求长方体的体积,长方体的长、宽、高的默认值分别为30、20、10。在主函数中进行输入输出。<BR>解:<BR>#include
<iostream.h><BR>int vir(int a=30,int b=20,int
c=10)<BR>{<BR> int v;<BR> v=a*b*c;<BR> return v;<BR>}<BR>void
main(void)<BR>{<BR> int
l,w,h,v;<BR> cout<<"请输入长方体的长、宽、高:"<<endl;<BR> cin>>l>>w>>h;<BR> v=vir(l,w,h);<BR> cout<<"该长方体的体积是:"<<v<<endl;<BR>}
<BR>程序运行结果是:<BR>请输入长方体的长、宽、高:<BR>4 5 6<BR>该长方体的体积是:120</P>
<P><SPAN
class=xt12>3.29编写两个名为max的重载函数,分别实现求两个整数和两个实数中的大数。<BR>解:<BR>#include
<iostream.h><BR>int max(int x,int y )<BR>{<BR> int
maxint;<BR> if(x>y) maxint=x;<BR> else maxint=y;<BR> return
maxint;<BR>}<BR>float max(float x,float y )<BR>{<BR> float
maxfloat;<BR> if(x>y) maxfloat=x;<BR> else
maxfloat=y;<BR> return maxfloat;<BR>}<BR>void
main(void)<BR>{<BR> int a,b;<BR> float
m,n;<BR> cout<<"请输入两个整数:"<<endl;<BR> cin>>a>>b;<BR> cout<<"两个整数中较大的为:"<<max(a,b)<<endl;<BR> cout<<"请输入两个实数:"<<endl;<BR> cin>>m>>n;<BR> cout<<"两个实数中较大的为:"<<max(m,n)<<endl;<BR>}<BR>程序运行结果:<BR>请输入两个整数:<BR>45
67<BR>两个整数中较大的为:67<BR>请输入两个实数:45.6
67.8<BR>两个实数中较大的为:67.8</SPAN><BR></P></TD></TR></TBODY></TABLE><!-- InstanceEndEditable --></TD></TR></TBODY></TABLE></TD></TR>
<TR vAlign=center bgColor=#eeeeee>
<TD colSpan=3 height=28>
<DIV align=center><A
onclick="this.style.behavior='url(#default#homepage)';this.setHomePage('http://www.nuist.edu.cn')"
href="http://www.nuist.edu.cn/JSJ/syjx/xt/xt3.htm#"><SPAN
class=mb14>设为首页</SPAN></A><STRONG>|</STRONG><A class=mb14
href="javascript:addme()">加入收藏</A><STRONG>|</STRONG><A
href="http://www.nuist.edu.cn/"><SPAN
class=mb14>学校首页</SPAN></A><STRONG>|</STRONG><A
href="http://www.nuist.edu.cn/jsj"><SPAN
class=mb14>计科系首页</SPAN></A></DIV></TD></TR>
<TR>
<TD class=mb14 vAlign=top bgColor=#176bab colSpan=2 height=88>
<DIV align=center><BR><FONT color=#ffffff>Copyright© 2004-2005 Depart of
Computer Science & Technology Nuist</FONT></DIV></TD>
<TD width=15 bgColor=#176bab> </TD></TR>
<TR>
<TD height=1></TD>
<TD width=581></TD>
<TD></TD></TR></TBODY></TABLE><MAP name=Map><AREA shape=RECT coords=9,9,75,25
href="http://www.nuist.edu.cn/JSJ/syjx/index.htm"><AREA shape=RECT
coords=86,9,150,26 href="http://www.nuist.edu.cn/JSJ/syjx/jxdg.htm"><AREA
shape=RECT coords=157,9,220,27
href="http://www.nuist.edu.cn/JSJ/syjx/skja.htm"><AREA shape=RECT
coords=230,9,310,26 href="http://www.nuist.edu.cn/JSJ/syjx/dmt.htm"><AREA
onclick="MM_goToURL('parent','../xt.htm');return document.MM_returnValue"
shape=RECT coords=320,10,397,26
href="http://www.nuist.edu.cn/JSJ/syjx/xt.htm"><AREA
onclick="MM_showHideLayers('Layer1','','hide','Layer2','','show')" shape=RECT
coords=405,10,469,25 href="http://www.nuist.edu.cn/JSJ/syjx/xt/xt3.htm#"><AREA
onclick="MM_showHideLayers('Layer1','','show','Layer2','','hide')" shape=RECT
coords=476,10,538,26 href="http://www.nuist.edu.cn/JSJ/syjx/xt/xt3.htm#"><AREA
shape=RECT coords=549,10,612,26
href="http://www.nuist.edu.cn/JSJ/syjx/ckwx.htm"><AREA shape=RECT
coords=620,9,684,26
href="http://www.nuist.edu.cn/JSJ/syjx/zlxz.htm"></MAP></CENTER><!-- InstanceEnd --></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -