《高级语言程序设计C++》平时作业.docx
- 文档编号:28226551
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:13
- 大小:18.80KB
《高级语言程序设计C++》平时作业.docx
《《高级语言程序设计C++》平时作业.docx》由会员分享,可在线阅读,更多相关《《高级语言程序设计C++》平时作业.docx(13页珍藏版)》请在冰豆网上搜索。
《高级语言程序设计C++》平时作业
一、分析程序,写输出结果
1.#include
for(m=1;m<=10;m+=2){k=m/3;
for(i=2;i<=k;i++)if(m%i)cout< 2.#include voidfun(); voidmain() {inti; for(i=1;i<5;i++)fun();cout< } voidfun() {staticinta; intb=2; a+=2; cout< } 46810 3.#include } voidmain() {inta=5;cout< 4.#include voidmain() {char*cp="word"; for(inti=0;i<4;i++) cout< } wordordrdd 二、.根据程序功能填空。 1.程序把10个数存储到一维数组a中,并求该数组中最大值。 #include voidmain() {intmax; inta[10]={76,55,95,87,85,83,65,90,77,85}; int*p=a; max=*p; for(;p<&a[10];p++) if(*p>max)max=*p; cout<<"max="< } 2. 45两位 下面程序的功能是输出1至100之间每位数字的乘积大于每位数的和的数。 例如,数字的乘积为4X5=20,和为4+5=9。 #include voidmain() {intn,k=1,s=0,m; for(n=1;n<=100;n++) {k=1;s=0; 1m=n; while(2m) {k*=m%10; s+=m%10; 3m/=10; } if(k>s)cout< 3.程序对输入的n求s=1+1/23+1/33+…+1/n3。 #include voidmain() {doubles;int i,n; cout<<"n=”; cin»n; s=0; for(i=1; i ;i++) s=s=s+(1.0/(n*n*n) cout<<"s="< } head为表头 4.函数create从键盘输入整数序列,以输入0为结束。 按输入顺序建立一个以 的单向链表。 structnode{intdata;node*next;}; create(node*head) {node*p,*q; p=newnode; cin>>p->data; q=p; while(p->data) {if(head==NULL)head=p; elseq_>next=p;; q=p; p=newnode;; cin>>p->data; } q->next=NULL; deletep; }} 5•以下程序求方程的全部整数解: 3x+2y-7z=5(0 #include voidmain() {intx,y,z; for(x=0;x<=100;x++) for(y=0;y<=100;y++) {if((z=3*x+2*y-5)%7) break; z=3*x+2*y-5)/7;//求岀z的值if(z<=100&&z>=0)//检查z的范围 cout<<"x="< } 三、程序设计 1.编写函数输出以下形状的图形,其中构成图形的数字和输出的行数通过参数传送。 1 222333334444444#include }cout< }} 1和本身) 2.请编程序,输入两个正整数啊a和b(a 每行输出数据不超过10个。 例如,若输入a为6,b为8,则输出格式要求如下: thefactors of 6 23 thefactors of 7 nofactor thefactors of 8 24 #include voidmain() { intnumA,numB; cout<<"InputTwoNumbers: "< for(inti=numA;i<=numB;i++) { printFactor(i); } } voidprintFactor(inti) { cout<<"FACTORSOF"< "< intn=0; for(intk=2;k { if(i%k==0) { fact[n]=k; n++; } } if(n==0) { cout<<"NOFACTOR"< } else { for(intj=0;j { cout< } } cout< } } 3.请编程序,找出1至99之间的全部同构数。 同构数是这样一组数: 它出现在平方数的右边。 例如: 5是25右边的数,25是625右边的数,所以5和25都是同构数。 #include usingnamespacestd; intmain() { longx,y,i=10; intflag=0; for(x=1;x<100;x++) { y=x*x; while(y/i! =0) { if(y%i==x) { flag=1; break; } i=i*10; } if(flag==1)cout< flag=0; i=10; } return0; 4.编写一个程序,实现如下功能: (1)从键盘输入aopb。 其中a,b为数值;op为字符,限制为+、-、*、/。 (2)调用函数count(op,a,b),计算表达式aopb的值。 由主函数输出结果。 #include template TCOUNT(charop,Ta,Tb) { switch(op) f case '+': return (a+b);break; case '-': return (a-b);break; case '*': return (a*b);break; case '/': return (a/b);break; default: cout<<"Error."< } intmain() { inta,b; charop; cin>>a>>op>>b; if(op=='/'&&b==0) { cout<<"InputError."< } cout<<"Resultis"< return0; 5.编写一个程序,实现如下功能: (1)输入k(<100)个整数到数组x[100]中; (2)计算k个数的平均值及大于平均值的元素个数。 #include intnum(int[],int);voidmain() { intk,i,x[100];floatave;for(k=0;k<100;k++) {cin>>i; if(i==0){break; } x[k]=i; }ave=average(x,k);cout<<"平均值"< cout<<"大于平均值的元素个数"< floataverage(intu[],intk) { inta,sum=0; for(a=0;a return(float)sum/k; }intnum(intu[],intk) { intb,c,m=0; intave=average(u,k);for(c=0;c { if(u[c]>ave)m++;}returnm; 6.定义函数 voidreversion(intary[],intsize); 逆置数组ary的元素。 例如实参数组原来为[1,5,3,2,6,8,9,4],调用函数reversion后变成为[4,9,8,6,2,3,5,1]。 voidreversion(intary[],intsize){inti; inttemp; for(i=0;i tempary[i] =ary[i]; =ary[size-i]; ary[size-i]=temp;} } 7.数组a包含50个整数,把a中所有的后项除以前项之商取整后存入数组b(即b[i]=a[i] /a[i-1],并且b[50]=a[20]/a[1]),最后按每行5个元素的格式输出数组b。 #include voidmain() {inta[50],b[50]; inti,j=0;//j用来控制换行 for(i=1;i<=50;i++) {cout<<"\nInputa["< ";cin>>a[i]; } for(i=1;i<=50;i++) {if(i! =50)b[i]=a[i]/a[i-1]; elseb[i]=a[20]/a[1]; } for(i=0;i<=50;i++) {if(j! =5)cout<<"\n"; cout<<""< } } 8.编程输出所有不超过100的其平方具有对称性质的正整数(也称回文数)。 输出格式如下: numbersquare 11 24 39 11121 22484 26676 #include voidmain() {inti; longtext(inti);〃判断i的iA2是不是回文数的函数 for(i=4;i<=100;i++) {if(text(i)! =0)cout<<"\n"< } } longtext(inti) {longsum,k,sum1=0; sum=i*i; k=sum; while(k>0) {sum1=sum1*10+k%10;k=k/10; } if(sum1==sum)returni*i; elsereturn0; 9.编写程序,打印如下杨辉三角。 1 11 121 1331 14641 #include voidmain() { inta[5][5],i,j; for(i=0;i<5;i++) { for(j=5;j>=i;j--) printf("%2c",'');/*两个空格*/ for(j=0;j<=i;j++) { if(i==j||j==0)a[i][j]=1; else a[i][j]=a[i-1][j]+a[i-1][j-1]; 个空格*/ printf("%3d",a[i][j]);/*%3d后if(i==j)printf("\n"); 10.定义一个函数,计算长度为k的整型数组元素的平均值及大于平均值的元素个数。 调用函 数的语句为: count(a,k,ave,num); 其中a是数组名,k是数组元素个数,ave返回的平均值,num返回大于平均值的元素个数。 voidcount(a,k,&ave,&num){ intcount=0,sum=0; inti; //求平均数 for(i=0;i sum+=a[i]; } ave=(float)sum/(float)a; //求大于平均数的个数 for(i=0;i if(a[i]>ave)count++; } num=count; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级语言程序设计C+ 高级 语言程序设计 平时 作业