《高级语言程序设计C++》平时作业_第1页
《高级语言程序设计C++》平时作业_第2页
《高级语言程序设计C++》平时作业_第3页
《高级语言程序设计C++》平时作业_第4页
《高级语言程序设计C++》平时作业_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、分析程序,写输出结果1 #include#includevoid main()int m, k, i ;for( m=1; m=10; m+=2 ) k = m/3;for( i=2; i=k; i+ )if( m%i ) cout m ;解:m的取值为1,3,5,7,9 对应k的取值为0,1,1,2,3,第二个for循环:只有当k=2和k=3时才执行, 当k=2, i=2 , m%i 等于1为真,输出m为7当k=3, i=2,m%等于1为真,输出m为9, i=3 , m%等于0为假,无输出 结果为:7 92 #includevoid fun();void main()int i;for(

2、i=1;i5;i+) fun();coutendl;void fun() static int a;int b=2;a += 2 ;cout a+b t;解:主函数循环 4次调用 fun ();fun ()函数内定义了静态局部变量a,所以a的值会保持到下一 次调用。 结果为:4 6 8 103 #includeint fun(int n) if(n=0) return 1;return 2*fun(n-1);void main() int a=5; coutfun(a)endl;解:fun()函数用递归求出2的n次方,结果为:324 #includevoid main() char *cp=w

3、ord;for (int i=0 ; i4; i+ ) coutcp+i t;解:主函数 4次循环中,第一次输出cp+i ,此时cp指向“word”的第一个字符,所以输出“word” ,之后cp依次往后移一个位置,输出此位置及后面的字符结果为:word ord rd d二、根据程序功能填空。1. 程序把 10个数存储到一维数组 a 中,并求该数组中最大值 。#includevoid main() int max;int a10=76,55,95,87,85,83,65,90,77,85;max=*p;for( ; pmax ) max=*p;coutmax= maxe ndl;2 .下面程序的

4、功能是输出1至100之间每位数字的乘积大于每位数的和的数。例如,45两位数字的乘积为 4X 5=20,和为4+5=9。#in cludevoid mai n() int n, k=1, s=0, m;for(n=1; n0) k*=m%10;s+=m%10; m=m/10;if(ks) cout n t;3 .程序对输入的 n求s = 1 + 1/23 + 1/33 + 1/n3。#in cludevoid mai n()double s; int i, n;cout n= ; cinn;s = 0;for (i=1; in ; i+)s=_s+1/(i*i*i);couts=s p-data

5、;q=p;whiie( -data)if(head=NULL) head=p;else _ q=q-next q=p;p=new nodecin p-data;q- next=NULL;delete p;5 以下程序求方程的全部整数解:3x + 2y - 7z = 5( 0 x, y, z 100 )#in cludevoid mai n() int x, y, z ;for( x=0; x=100; x+ )for( y=0; y=0 & z101 ) / 检查 z 的范围cout x= x y= y z= z endl ;三、程序设计1.编写函数输出以下形状的图形,其中构成图形的数字和输出

6、的行数通过参数传送。14 4 4 4 4 4 4 答: void PrintFigure(int num, int row) int i, j, k;num = num - row +1; for(i = 1; i = row; i+) j = 2*i-1;num+;for(k = 1;k = j; k+) coutnum coutendl; 1 和本身)。j i; j+)2请编程序,输入两个正整数啊a和b (ab),输出a、b之间所有整数的因数(除每行输出数据不超过10个。例如,若输入a为6,b为8,则输出格式要求如下:the factors of 6 :2 3the factors of

7、7 :no factorthe factors of 8 :2 4答:#include #includevoid out(int a, int b) int i, j, count;for(i = a; i = b; i+)count = 0;printf(nthe factor of %dn, i); for(j = 2;if(i % j = 0)printf(%s%d, (count = 0 ? :,), j);count+; if(count = 0)printf(no factor); 3请编程序, 找出 1至 99之间的全部同构数。 同构数是这样一组数: 它出现在平方数的右边。 例如

8、: 5 是 25 右边的数, 25 是 625 右边的数,所以 5 和 25 都是同构数。#include using namespace std; void main() int i, j, k; k = 10;for(i = 1; i = 99; i+) if(i = k) k *= 10; 亠 j = i * i;if(j % k = i)cout i ;coutendl;4. 编写一个程序,实现如下功能:(1)从键盘输入a op b。其中a, b为数值;op为字符,限制为+、-、*、/。( 2)调用函数 count(o p , a , b) ,计算表达式 a op b 的值。由主函数输

9、出结果。答: #include stdafx.h #include using namespacestd; class cal public:int add(int x,int y)/加法定义函数 return x+y; int sub(int x,int y)/减法定义函数 return x-y; int mul(int x,int y)/ 乘法定义函数 return x*y; int div(int x,int y)/除法定义函数 if(y=0)cout0 不能作除数 endl; else return x/y; ;int main() cal c;/ 定义对象 int x,y; char

10、 ID;cout 请输入要计算的两个数及运算符,中间用空格隔开比如2 3+xyID; switch (ID) case +: coutc.add(x,y)endl; break; case -:coutc.sub(x,y)endl; break; case *:coutc.mul(x,y)endl; break; case /:coutc.div(x,y)endl; ;return 0; 5. 编写一个程序,实现如下功能:(1)输入 k( 100)个整数到数组 x100 中;( 2)计算 k 个数的平均值及大于平均值的元素个数。答:#include voidmain() Int x100,k,

11、i,n; Double sum=0.0,ave; coutk;for(i=0;ixi;sum+=xi; ave=sum/k; n=0;for(i=0;iave)n+; coutaverage=aven;coutTherearenelementslargethanaverage.n; 6. 定义函数 void reversion(int ary,int size);4 ,调用函数逆置数组 ary 的元素。例如实参数组原来为 1 ,5,3,2,6,8,9, reversion 后变成为 4 ,9,8,6,2,3,5,1 。void reversion(int ary,int size) int t

12、emp;for(int i = 0; i size/2; i+) temp = aryi;aryi = arysize -1 -i; arysize -1 -i = temp; 7. 数组 a 包含 50 个整数,把 a 中所有的后项除以前项之商取整后存入数组b (即bi=ai/ai-1, 并且 b50=a20/a1 ),最后按每行 5 个元素的格式输出数组 b。答:# include void main() int a50,b5,i,j;printf ( 请输入 50 个数 ); for (i=0;i0;i-2) for (j=0;j5;j+) bj=ai%ai-1; for(j=0;j5;

13、j+) for (i=1;i5;i+) printf(%d,bi; printf(n); 8. 编程输出所有不超过 100 的其平方具有对称性质的正整数 (也称回文数 ) 。输出格式如下: number square1 12 43 911 12122 48426 676答: #includeInt main Int j=0;For (i=0;j=i)Printf(n,n*n); Return o; 9. 编写程序,打印如下杨辉三角。11 11 2 11 3 3 11 4 6 4 1 答:#include #include using namespace std; void main() const int m = 5; int amm;for(int i = 0; i m; i+) ai0 = 1;aii = 1; for(int j = 2; j m; j+) for(int k = 1; k j; k+)ajk = aj-1k-1 + aj-1k;for(int i = 0; i m; i+) coutsetw(m-i);10定义一个函数,计算长度为k 的整型数组元素的平均值及大于平均值的元素个数。调用函数的语句为:count(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论