收藏 分销(赏)

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

上传人:pc****0 文档编号:8045665 上传时间:2025-02-01 格式:DOC 页数:14 大小:75.50KB 下载积分:10 金币
下载 相关 举报
《高级语言程序设计C++》平时作业.doc_第1页
第1页 / 共14页
《高级语言程序设计C++》平时作业.doc_第2页
第2页 / 共14页


点击查看更多>>
资源描述
一、分析程序,写输出结果 1. #include<iostream.h> #include<math.h> void 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 << " "; } } 7 9 2. #include<iostream.h> void fun(); void main() {int i; for(i=1;i<5;i++) fun(); cout<<endl; } void fun() { static int a; int b=2; a += 2 ; cout<< a+b <<'\t'; } 4 6 8 10 3. #include<iostream.h> int fun(int n) { if(n==0) return 1; return 2*fun(n-1); } void main() { int a=5; cout<<fun(a)<<endl; } 32 4. #include<iostream.h> void main() { char *cp="word"; for (int i=0 ; i<4; i++ ) cout<<cp+i << '\t'; } word ord rd d 二、.根据程序功能填空。 1. 程序把10个数存储到一维数组a中,并求该数组中最大值。 #include<iostream.h> void main() { int max; int a[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= "<<max<<endl; } 2.下面程序的功能是输出1至100之间每位数字的乘积大于每位数的和的数。例如,45两位数字的乘积为4×5=20,和为4+5=9。 #include<iostream.h> void main() { int n, 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; 3 m/=10 ; } if(k>s) cout<<n<<'\t'; } } 3.程序对输入的n求s = 1 + 1/23 + 1/33 + … + 1/n3 。 #include<iostream.h> void main() {double s; int i, n; cout<<" n= "; cin>>n; s = 0; for (i=1; i<n ; i++) s= s=s+(1.0/(n*n*n) ; cout<<"s="<<s<<endl; } 4.函数create从键盘输入整数序列,以输入0为结束。按输入顺序建立一个以head为表头的单向链表。 struct node{int data; node * next;}; create( node *head ) {node *p, *q; p=new node; cin>>p->data; q=p; while( p->data ) {if(head==NULL) head=p; else q->next=p; ; q=p; p=new node; ; cin>>p->data; } q->next=NULL; delete p; } } 5.以下程序求方程的全部整数解: 3x + 2y - 7z = 5 ( 0 ≤ x, y, z ≤ 100 ) #include<iostream.h> void 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 ) break ; z=3*x+2*y-5)/7 ; //求出z的值 if( z<=100&&z>=0 ) //检查z的范围 cout << "x=" << x << " y=" << y << " z=" << z << endl ; } 三、程序设计 1. 编写函数输出以下形状的图形,其中构成图形的数字和输出的行数通过参数传送。 1 2 2 2 3 3 3 3 3 4 4 4 4 4 4 4 #include<iostream.h> void main() { int i,n; for (i=0;i<5; i++){ for (n=0;n<2*i-1;n++){ cout<<i; } cout<<endl; } } 2. 请编程序,输入两个正整数啊a和b(a<b),输出a、b之间所有整数的因数(除1和本身)。每行输出数据不超过10个。例如,若输入a为6,b为8,则输出格式要求如下: the factors of 6 : 2 3 the factors of 7 : no factor the factors of 8 : 2 4 #include <iostream> using namespace std; void printFactor(int i); void main() { int numA,numB; cout<<"Input Two Numbers:"<<endl; cin>>numA>>numB; for (int i=numA;i<=numB;i++) { printFactor(i); } } void printFactor(int i) { cout<<" FACTORS OF "<<i<<":"<<endl; int *fact=new int(); int n=0; for (int k=2;k<i;k++) { if (i%k==0) { fact[n]=k; n++; } } if (n==0) { cout<<"NO FACTOR"<<endl; } else { for (int j=0;j<n;j++) { cout<<fact[j]<<" "; if ((j+1)%10==0) { cout<<endl; } } cout<<endl; } } 3.请编程序,找出1至99之间的全部同构数。同构数是这样一组数:它出现在平方数的右边。例如:5是25右边的数,25是625右边的数,所以5和25都是同构数。 #include<iostream> using namespace std; int main() { long x,y,i=10; int flag=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<<x<<' '<<y<<endl; flag=0; i=10; } return 0; } 4. 编写一个程序,实现如下功能: (1)从键盘输入a op b。其中a, b为数值;op为字符,限制为+、-、*、/ 。 (2)调用函数count(op,a,b),计算表达式a op b的值。由主函数输出结果。 #include <iostream> using namespace std; template<typename T> T COUNT(char op,T a,T b) { switch(op) { case '+':return (a+b);break; case '-':return (a-b);break; case '*':return (a*b);break; case '/':return (a/b);break; default:cout << "Error." << endl;break; } } int main() { int a,b; char op; cin >> a >> op >> b; if( op == '/' && b == 0 ) { cout << "Input Error." << endl; } cout << "Result is " << COUNT(op,a,b) << endl; system("pause"); return 0; } 5. 编写一个程序,实现如下功能: (1)输入k(<100)个整数到数组x[100]中; (2)计算k个数的平均值及大于平均值的元素个数。 #include<iostream.h> float average(int [],int); int num(int [],int); void main() { int k,i,x[100];float ave; for(k=0;k<100;k++) { cin>>i; if(i==0){ break; } x[k]=i; } ave=average(x,k); cout<<"平均值"<<ave<<endl; cout<<"大于平均值的元素个数"<<num(x,k)<<endl; } float average(int u[],int k) { int a,sum=0; for(a=0;a<k;a++) sum+=u[a]; return (float)sum/k; } int num(int u[],int k) { int b,c,m=0; int ave=average(u,k); for(c=0;c<k;c++) { if(u[c]>ave)m++;} return m; }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 ]。 void reversion(int ary[],int size){ int i; int temp; for(i=0;i<size/2;i++){ temp = ary[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<iostream.h> void main() { int a[50],b[50]; int i,j=0;//j用来控制换行 for(i=1;i<=50;i++) { cout<<"\nInput a[ "<<i<<"]: "; cin>>a[i]; } for(i=1;i<=50;i++) { if(i!=50) b[i]=a[i]/a[i-1]; else b[i]=a[20]/a[1]; } for(i=0;i<=50;i++) { if(j!=5) cout<<"\n"; cout<<" "<<b[i]; } } 8. 编程输出所有不超过100 的其平方具有对称性质的正整数(也称回文数)。输出格式如下: number square 1 1 2 4 3 9 11 121 22 484 26 676 #include<iostream.h> void main() { int i; long text(int i);//判断i的i^2是不是回文数的函数 for(i=4;i<=100;i++) { if(text(i)!=0) cout<<"\n "<<i<<" "<<text(i); } } long text(int i) { long sum,k,sum1=0; sum=i*i; k=sum; while(k>0) { sum1=sum1*10+k%10 ; k=k/10; } if(sum1==sum) return i*i; else return 0; } 9. 编写程序,打印如下杨辉三角。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 #include<stdio.h> void main() { int a[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返回大于平均值的元素个数。 void count(a,k,&ave,&num){ int count = 0,sum = 0; int i; //求平均数 for(i = 0; i < a; i++){ sum += a[i]; } ave = (float)sum / (float)a; //求大于平均数的个数 for(i = 0; i < a; i++){ if(a[i] > ave) count++; } num = count; }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服