《高级语言程序设计C》平时作业.doc

上传人:s****u 文档编号:12743026 上传时间:2020-05-21 格式:DOC 页数:13 大小:68.02KB
返回 下载 相关 举报
《高级语言程序设计C》平时作业.doc_第1页
第1页 / 共13页
《高级语言程序设计C》平时作业.doc_第2页
第2页 / 共13页
《高级语言程序设计C》平时作业.doc_第3页
第3页 / 共13页
点击查看更多>>
资源描述
一、分析程序,写输出结果1 #include201709#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=2和k=3时才执行,当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;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 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()函数用递归求出2的n次方,结果为:324 #includevoid main() char *cp=word; for (int i=0 ; i4; i+ ) coutcp+i t; 解:主函数4次循环中,第一次输出cp+i,此时cp指向“word”的第一个字符,所以输出“word”,之后cp依次往后移一个位置,输出此位置及后面的字符结果为: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下面程序的功能是输出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+1/(i*i*i) ; couts=sp-data; while( p-data ) q = p q=q-next ; q-next = p; cinp-data; if (head = p) head = NULL; else p=newnode ; ; return head;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=0&z101 ) /检查z的范围 cout x= x y= y z= z endl ; 三、程序设计1. 编写函数输出以下形状的图形,其中构成图形的数字和输出的行数通过参数传送。12 2 23 3 3 3 34 4 4 4 4 4 4答:voidPrintFigure(intnum,introw)inti,j,k;num=num-row+1;for(i=1;i=row;i+)j=2*i-1;for(k=1;k=j;k+)coutnum;num+;coutendl;2. 请编程序,输入两个正整数啊a和b(ab),输出a、b之间所有整数的因数(除1和本身)。每行输出数据不超过10个。例如,若输入a为6,b为8,则输出格式要求如下:the factors of 6 :2 3the factors of 7 :no factorthe factors of 8 :2 4答:#include#includevoidout(inta,intb)inti,j,count;for(i=a;i=b;i+)count=0;printf(nthefactorof%dn,i);for(j=2;ji;j+)if(i%j=0)printf(%s%d,(count=0?:,),j);count+;if(count=0)printf(nofactor);3请编程序,找出1至99之间的全部同构数。同构数是这样一组数:它出现在平方数的右边。例如:5是25右边的数,25是625右边的数,所以5和25都是同构数。答:#includeusingnamespacestd;voidmain()inti,j,k;k=10;for(i=1;i=99;i+)if(i=k)k*=10;j=i*i;if(j%k=i)couti;coutendl;4. 编写一个程序,实现如下功能: (1)从键盘输入a op b。其中a, b为数值;op为字符,限制为+、-、*、/ 。 (2)调用函数count(op,a,b),计算表达式a op b的值。由主函数输出结果。答:#includestdafx.h#includeusingnamespacestd;classcalpublic:intadd(intx,inty)/加法定义函数returnx+y;intsub(intx,inty)/减法定义函数returnx-y;intmul(intx,inty)/乘法定义函数returnx*y;intdiv(intx,inty)/除法定义函数if(y=0)cout0不能作除数endl;elsereturnx/y;intmain()calc;/定义对象intx,y;charID;cout请输入要计算的两个数及运算符,中间用空格隔开比如23+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个数的平均值及大于平均值的元素个数。答:#includevoidmain()Intx100,k,i,n;Doublesum=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);逆置数组ary的元素。例如实参数组原来为 1,5,3,2,6,8,9,4 ,调用函数reversion后变成为 4,9,8,6,2,3,5,1 。答:voidreversion(intary,intsize)inttemp;for(inti=0;isize/2;i+)temp=aryi;aryi=arysize-1-i;arysize-1-i=temp;7. 数组a包含50个整数,把a中所有的后项除以前项之商取整后存入数组b(即bi=ai/ai-1,并且b0=a0/a49),最后按每行5个元素的格式输出数组b。答:#includevoidmain() inta50,b5,i,j;printf(请输入50个数);for(i=0;i0;i-2)for(j=0;j5;j+)bj=ai%ai-1;for(j=0;j5;j+)for(i=1;i5;i+)printf(%d,bi;printf(n);8. 编程输出所有不超过100 的其平方具有对称性质的正整数(也称回文数)。输出格式如下:number square1 12 43 911 12122 48426 676答:#includeIntmainIntj=0;For(i=0;j=i)Printf(n,n*n);Returno;9. 编写程序,打印如下杨辉三角。11 1 1 2 11 3 3 11 4 6 4 1答:#include#includeusingnamespacestd;voidmain()constintm=5;intamm;for(inti=0;im;i+)ai0=1;aii=1;for(intj=2;jm;j+)for(intk=1;kj;k+)ajk=aj-1k-1+aj-1k;for(inti=0;im;i+)coutsetw(m-i);for(intj=0;j=i;j+)coutaij;coutendl;10定义一个函数,计算长度为k的整型数组元素的平均值及大于平均值的元素个数。调用函数的语句为:count(a,k,ave,num);其中a是数组名,k是数组元素个数,ave返回的平均值,num返回大于平均值的元素个数。答:#includecount(a,k,&ave,&num)intcount=0,sum=0;inti;for(i=0;ia;i+)sum+=ai;ave=(float)sum/(float)a;for(i=0;iave)count+;num=count;
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!