华工网络教育,《高级语言程序设计C++》作业_第1页
华工网络教育,《高级语言程序设计C++》作业_第2页
华工网络教育,《高级语言程序设计C++》作业_第3页
华工网络教育,《高级语言程序设计C++》作业_第4页
华工网络教育,《高级语言程序设计C++》作业_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

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%i等于1为真,输出m为9,i=3,m%i等于0为假,无输出结果为:7 92 #includevoid fun();void main()int i; for(i=1

2、;i5;i+) fun(); coutendl;void fun() static int a; int b=2; a += 2 ; cout a+b t;答:static变量只会第一次初始化为0,之后保留就是上一次的值 输出4 6 8 10 3 #includeint fun(int n) if(n=0) return 1; return 2*fun(n-1);void main() int a=5; coutfun(a)endl;答:fun是递归函数如果是0就返回1,如果不是0就返回2*f(n-1),展开就是求2的n次方结果为: 324 #includevoid main() char *

3、cp=word; for (int i=0 ; i4; i+ ) coutcp+i t; 答:cp是指向word的字符指针cp+i表示每次cp之后第i个字符的指针cout表示输出字符指针只想的字符串,遇到0后停止答案 wordordrdd二、根据程序功能填空。1. 程序把10个数存储到一维数组a中,并求该数组中最大值。#includevoid main() int max; int a10=76,55,95,87,85,83,65,90,77,85; int *p= a ; max=*p; for( ; pmax ) max= *p ; coutmax= maxendl;2下面程序的功能是输出

4、1至100之间每位数字的乘积大于每位数的和的数。例如,45两位数字的乘积为45=20,和为4+5=9。#includevoid main() int n, k=1, s=0, m; for(n=1; n0 ) k*=m%10; s+=m%10; m=m/10 ; if(ks) coutnt; 3程序对输入的n求s = 1 + 1/23 + 1/33 + + 1/n3 。#includevoid main()double s; int i, n; coutn; s = 0; for (i=1; in ; i+) s= s+(double)1/(i*i*i) ; couts=sp-data; q=

5、p; while( p-data ) if(head=NULL) head=p; else q-next=p ; q=p; p=new node ; cinp-data; q-next=NULL; delete p;5以下程序求方程的全部整数解:3x + 2y - 7z = 5( 0 x, y, z 100 )#includevoid main() int x, y, z ; for( x=0; x=100; x+ ) for( y=0; y=100; y+ ) if( ( z=3*x+2*y-5 ) % 7 ) continue ; z=z/7 ;/求出z的值 if( z=0 ) /检查z的

6、范围 cout x= x y= y z= z endl ; 三、程序设计1. 编写函数输出以下形状的图形,其中构成图形的数字和输出的行数通过参数传送。12 2 23 3 3 3 34 4 4 4 4 4 4答:#include void main() int i,n; for (i=0;i5; i+) for (n=0;n2*i-1;n+) couti;coutendl;2. 请编程序,输入两个正整数啊a和b(ab),输出a、b之间所有整数的因数(除1和本身)。每行输出数据不超过10个。例如,若输入a为6,b为8,则输出格式要求如下:the factors of 6 :2 3the facto

7、rs of 7 :no factorthe factors of 8 :2 4答:#includeUsing namespace std:Viod main() int a, b;bool x;cin a b for (int i = a;i =b;i+) cout “the factors of” i “:” endl; x = false; for (int j=2; j i;j+) if(i % j =0) cout j ,x=true if (x) cont endl; else cont“no factors”endl; 3请编程序,找出1至99之间的全部同构数。同构数是这样一组数:

8、它出现在平方数的右边。例如:5是25右边的数,25是625右边的数,所以5和25都是同构数。答:#includeUsing namespace std:Viod main() for (int i = 1;i = 99;i+) if(i * i- i)% 10=0) couti; 4. 编写一个程序,实现如下功能: (1)从键盘输入a op b。其中a, b为数值;op为字符,限制为+、-、*、/ 。 (2)调用函数count(op,a,b),计算表达式a op b的值。由主函数输出结果。答:#includeUsing namespace std:double conut( char op,

9、double a,double b) swith(op)case+: return a + b ; case-: return a b;case*: return a * b;case/: return a / b;default:return 0;viod main () double a,b ; char op; cin a op b; cout count(op, a, b) endl; 5. 编写一个程序,实现如下功能:(1)输入k(100)个整数到数组x100中;(2)计算k个数的平均值及大于平均值的元素个数。答:#include#include#include#include#in

10、clude#include#include Using namespace std:void main() istream_iteratoritr(cin);vector v(itr, istream_iterator();double d = 0; size_t k = 0d = accumulate(V.begin(),V.end(),d)/v.size();k = coumt_if(V.begin(),v,end(),bind2nd(less(),d);cout d /t k endl;输入完成之后按Ctrl+D表示输入完成6. 定义函数void reversion(int ary,in

11、t size);逆置数组ary的元素。例如实参数组原来为 1,5,3,2,6,8,9,4 ,调用函数reversion后变成为 4,9,8,6,2,3,5,1 。答:#include#include Using namespace std:Viod reversion(int any,int size) int *a = ary, *b = ary + size - 1, t; while (a b) t = *a,*a = *b; *b =1; a+,b+; viod main () int a5= 1,2,3,4,5;copy(a, a+5,ostream_iterator(cout,”)

12、;cout endl;reversion(a,5) copy(a, a+5,ostream_iterator(cout,”); 7. 数组a包含50个整数,把a中所有的后项除以前项之商取整后存入数组b(即bi=ai/ai-1,并且b50=a20/a1),最后按每行5个元素的格式输出数组b。答:#include void main() int a50,b50; int i,j=0;/j用来控制换行 for(i=1;i=50;i+) coutnInput a iai; for(i=1;i=50;i+) if(i!=50) bi=ai/ai-1; else bi=a20/a1; for(i=0;i=

13、50;i+) if(j!=5) coutn; cout bi; 8. 编程输出所有不超过100 的其平方具有对称性质的正整数(也称回文数)。输出格式如下:number square1 12 43 911 12122 48426 676答:#include void main() int i; long text(int i);/判断i的i2是不是回文数的函数 for(i=4;i=100;i+) if(text(i)!=0) coutn i 0) sum1=sum1*10+k%10 k=k/10; if(sum1=sum) return i*i; else return 0; 9. 编写程序,打

14、印如下杨辉三角。11 1 1 2 11 3 3 11 4 6 4 1答:#include#includeusing 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);for(int j = 0; j = i; j+)cout aij ;coutendl;10定义一个函数,计算长度为k的整型数组元素的平均值及大于平均值的元素个数。调用函数的

温馨提示

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

评论

0/150

提交评论