⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xt3.htm

📁 有关C++程序设计的复习资料
💻 HTM
📖 第 1 页 / 共 3 页
字号:
                  cout&lt;&lt;a&lt;&lt;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&lt;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 
                  &lt;iostream.h&gt;<BR>extern int x;// 说明 x 为外部变量 , 
                  作用域从这里开始直程序结束 , 生存期在整个文件中<BR>void change(void)<BR>{ register 
                  int y=0,z=3;// 动态局部变量 , 变量的生存期从这里开始到 change() 函数结束<BR>  
                  cout&lt;&lt;x&lt;&lt;'\t'&lt;&lt;y&lt;&lt;'\t'&lt;&lt;z&lt;&lt;endl;<BR>  
                  x=2;y=2;<BR>  
                  cout&lt;&lt;x&lt;&lt;'\t'&lt;&lt;y&lt;&lt;'\t'&lt;&lt;z&lt;&lt;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&lt;&lt;x&lt;&lt;'\t'&lt;&lt;y&lt;&lt;'\t'&lt;&lt;z&lt;&lt;endl;<BR> change();<BR> cout&lt;&lt;x&lt;&lt;'\t'&lt;&lt;y&lt;&lt;'\t'&lt;&lt;z&lt;&lt;endl;<BR> cout&lt;&lt;::x&lt;&lt;'\t'&lt;&lt;::y&lt;&lt;'\t'&lt;&lt;z&lt;&lt;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 
                  &lt;iostream.h&gt;<BR>void main(void)<BR>{ int i;// 动态局部变量 , 
                  变量的生存期从这里开始到 main() 函数结束<BR> void 
                  add1(void),add2(void);<BR> for 
                  (i=0;i&lt;3;i++)<BR> { add1();<BR>   add2();<BR>  
                   cout&lt;&lt;endl;<BR>  }<BR>}<BR>void add1(void)<BR>{ int 
                  x=0;// 动态局部变量 , 变量的生存期从这里开始到 add1() 
                  函数结束<BR> x++;<BR> cout&lt;&lt;x&lt;&lt;'\t';<BR>}<BR>void 
                  add2(void)<BR>{ static int x=0; // 静态局部变量 , 该变量只能在定义它的函数体内使用 , 
                  生存期为整个程序运行期间  x++;<BR>  
                  cout&lt;&lt;x&lt;&lt;'\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 
                  &lt;iostream.h&gt;<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&lt;&lt;"x="&lt;&lt;x&lt;&lt;'\t'&lt;&lt;"y="&lt;&lt;y 
                  &lt;&lt;'\t'&lt;&lt;"z="&lt;&lt;z&lt;&lt;endl;<BR>}<BR>// 文件名 
                  : exercise5_161.cpp<BR>#include &lt;iostream.h&gt;<BR>extern 
                  int x,y;// 说明 x,y 为外部变量<BR>void add(void)<BR>{ x+=3;<BR>  
                  y+=4;<BR>  
                  cout&lt;&lt;"x="&lt;&lt;x&lt;&lt;'\t'&lt;&lt;"y="&lt;&lt;y&lt;&lt;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 
                  &lt;iostream.h&gt;<BR>void main(void)<BR>{ float f,c;<BR>  
                  float change(float x);// 函数原型说明<BR>  cout&lt;&lt;" 请输入华氏温度: 
                  "&lt;&lt;endl;<BR>  cin&gt;&gt;f;<BR>  c=change(f);<BR>  
                  cout&lt;&lt;" 转换后的摄氏温度为 "&lt;&lt;c&lt;&lt;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 
                  &lt;iostream.h&gt;<BR>void main(void)<BR>{ int prime(int x);// 
                  函数原型说明<BR>  int n;<BR>  cout&lt;&lt;" 请输入一个整数: 
                  "&lt;&lt;endl;<BR>  cin&gt;&gt;n;<BR>  if(prime(n))<BR>  
                   cout&lt;&lt;n&lt;&lt;" 是一个素数 "&lt;&lt;endl;<BR>  else<BR>   
                  cout&lt;&lt;n&lt;&lt;" 是一个非素数 "&lt;&lt;endl;<BR>}<BR>int 
                  prime(int x)<BR>{<BR>  int flag=1,i;<BR>  
                  for(i=2;i&lt;x/2&amp;&amp;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 &lt;iostream.h&gt;<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&gt;0)<BR> { while(i&lt;=n)<BR>   { z=x*z;<BR>    
                  i++;<BR>   }<BR> }<BR> else<BR> { while(i&lt;=(-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&lt;&lt;" 请输入 X 和 n 的值 
                  "&lt;&lt;endl;<BR>  cin&gt;&gt;x&gt;&gt;n;<BR>  
                  y=power(x,n);<BR>  cout&lt;&lt;" 结果为: 
                  "&lt;&lt;y&lt;&lt;endl;<BR>}<BR>程序运行结果 :<BR>请输入 x 和 n 的值<BR>5 
                  2<BR>求和结果为 :25</P>
                  <P class=xt12>3.21 编写一个计算 1 至 n 的平方和的函数。<BR>解:<BR>#include 
                  &lt;iostream.h&gt;<BR>long int fun(int n)// 计算 1 到 n 
                  次的平方和<BR>{<BR>  long int sum=0;<BR>  int i=1;<BR>  
                  while(i&lt;=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&lt;&lt;" 结果为: "&lt;&lt;y&lt;&lt;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 
                  &lt;iostream.h&gt;<BR>int hcf(int m,int 
                  n)//求最大公约数的函数<BR>{<BR> int 
                  a,b;<BR> if(n&gt;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&lt;&lt;"请输入两个整数"&lt;&lt;endl;<BR> cin&gt;&gt;x&gt;&gt;y;<BR> a=hcf(x,y);<BR> cout&lt;&lt;"最大公约数为"&lt;&lt;a&lt;&lt;endl;<BR> b=lcd(x,y,a);<BR> cout&lt;&lt;"最小公倍数为"&lt;&lt;b&lt;&lt;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 &lt;iostream.h&gt;<BR>int fun(int 
                  n)<BR>{<BR> int 
                  z;<BR> if(n&lt;=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&lt;&lt;"请输入X的值"&lt;&lt;endl;<BR> cin&gt;&gt;x;<BR> sum=fun(x);<BR> cout&lt;&lt;"求和结果为:"&lt;&lt;sum&lt;&lt;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 
                  &lt;iostream.h&gt;<BR>double power(float x,int 
                  n)<BR>{<BR> double z;<BR> if(n==0)<BR> z=1;<BR> else 
                  if(n&gt;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&lt;&lt;"请输入x和n的值"&lt;&lt;endl;<BR> cin&gt;&gt;x&gt;&gt;n;<BR> while(i&lt;=n)<BR> {<BR>  sum=sum+sign*power(x,i);<BR>  i++;<BR>  sign=sign*(-1);<BR> }<BR> cout&lt;&lt;"结果为:"&lt;&lt;sum&lt;&lt;endl;<BR>}<BR>程序运行结果:<BR>请输入x和n的值<BR>5 
                  2<BR>求和结果为:25</P>
                  <P 
                  class=xt12>3.25编写一个排序函数用选择法对一批整数按从大到小的次序进行排序。在主函数内输入数据,调用排序函数对数据排序,输出排序结果。<BR>解:<BR>#include 
                  &lt;iostream.h&gt;<BR>#include &lt;iomanip.h&gt;<BR>void 
                  sort(int a[])<BR>{<BR> int 
                  i,j,max,temp;<BR> for(i=1;i&lt;=9;i++)<BR> {<BR>  max=i;<BR>  for(j=i+1;j&lt;=10;j++)<BR>  if(a[max]&lt;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&lt;&lt;"请输入10个数:"&lt;&lt;endl;<BR> for(i=1;i&lt;11;i++)<BR> cin&gt;&gt;a[i];<BR> sort(a);<BR> cout&lt;&lt;"输出排好序的10个数:"&lt;&lt;endl;<BR> for(i=1;i&lt;11;i++)<BR> cout&lt;&lt;setw(5)&lt;&lt;a[i];<BR> cout&lt;&lt;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 
                  &lt;iostream.h&gt;<BR>#include &lt;iomanip.h&gt;<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&lt;&lt;"请输入字符串1"&lt;&lt;endl;<BR> cin.getline(s1,100);<BR> cout&lt;&lt;"请输入字符串2"&lt;&lt;endl;<BR> cin.getline(s2,100);<BR> concat(s1,s2,s);<BR> cout&lt;&lt;"连接后的字符串为:"&lt;&lt;s&lt;&lt;endl;<BR>}<BR>程序运行结果:<BR>请输入字符串1<BR>Hellow<BR>请输入字符串2<BR>China!<BR>连接后的字符串为:Hellow 
                  china!</P>
                  <P 
                  class=xt12>3.27用内联函数实现求出一维数组的最大值。在主函数中输入数组元素值,调用求最大值函数,并输出数组最大值。<BR>解:<BR>#include 
                  &lt;iostream.h&gt;<BR>inline max(int a[],int n )<BR>{<BR> int 
                  i,max;<BR> max=a[0];<BR> for(i=1;i&lt;=n-1;i++)<BR> if 
                  (max&lt;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&lt;&lt;"请输入10个数:"&lt;&lt;endl;<BR> for(i=0;i&lt;10;i++)<BR> cin&gt;&gt;a[i];<BR> cout&lt;&lt;"数组中最大的数为:"&lt;&lt;max(a,10)&lt;&lt;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 
                  &lt;iostream.h&gt;<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&lt;&lt;"请输入长方体的长、宽、高:"&lt;&lt;endl;<BR> cin&gt;&gt;l&gt;&gt;w&gt;&gt;h;<BR> v=vir(l,w,h);<BR> cout&lt;&lt;"该长方体的体积是:"&lt;&lt;v&lt;&lt;endl;<BR>} 
                  <BR>程序运行结果是:<BR>请输入长方体的长、宽、高:<BR>4 5 6<BR>该长方体的体积是:120</P>
                  <P><SPAN 
                  class=xt12>3.29编写两个名为max的重载函数,分别实现求两个整数和两个实数中的大数。<BR>解:<BR>#include 
                  &lt;iostream.h&gt;<BR>int max(int x,int y )<BR>{<BR> int 
                  maxint;<BR> if(x&gt;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&gt;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&lt;&lt;"请输入两个整数:"&lt;&lt;endl;<BR> cin&gt;&gt;a&gt;&gt;b;<BR> cout&lt;&lt;"两个整数中较大的为:"&lt;&lt;max(a,b)&lt;&lt;endl;<BR> cout&lt;&lt;"请输入两个实数:"&lt;&lt;endl;<BR> cin&gt;&gt;m&gt;&gt;n;<BR> cout&lt;&lt;"两个实数中较大的为:"&lt;&lt;max(m,n)&lt;&lt;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&copy; 2004-2005 Depart of 
      Computer Science &amp; Technology Nuist</FONT></DIV></TD>
    <TD width=15 bgColor=#176bab>&nbsp;</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 + -