高级语言程序设计C平时作业.docx
- 文档编号:8358026
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:13
- 大小:18.36KB
高级语言程序设计C平时作业.docx
《高级语言程序设计C平时作业.docx》由会员分享,可在线阅读,更多相关《高级语言程序设计C平时作业.docx(13页珍藏版)》请在冰豆网上搜索。
高级语言程序设计C平时作业
一、分析程序,写输出结果
1.#include
#include
voidmain()
{intm,k,i;
for(m=1;m<=10;m+=2)
{k=m/3;
for(i=2;i<=k;i++)
if(m%i)cout< } } 79 2.#include voidfun(); voidmain() {inti; for(i=1;i<5;i++)fun(); cout< } voidfun() {staticinta; intb=2; a+=2; cout< } 46810 3.#include intfun(intn) {if(n==0)return1; return2*fun(n-1); } voidmain() {inta=5; cout< } 32 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.下面程序的功能是输出1至100之间每位数字的乘积大于每位数的和的数。 例如,45两位数字的乘积为4×5=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;inti,n; cout<<"n=";cin>>n; s=0; for(i=1;i s=s=s+(1.0/(n*n*n); cout<<"s="< } 4.函数create从键盘输入整数序列,以输入0为结束。 按输入顺序建立一个以head为表头的单向链表。 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≤x,y,z≤100) #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 222 33333 4444444 #include voidmain() { inti,n; for(i=0;i<5;i++){ for(n=0;n<2*i-1;n++){ cout< } cout< } } 2.请编程序,输入两个正整数啊a和b(a 每行输出数据不超过10个。 例如,若输入a为6,b为8,则输出格式要求如下: thefactorsof6: 23 thefactorsof7: nofactor thefactorsof8: 24 #include usingnamespacestd; voidprintFactor(inti); voidmain() { intnumA,numB; cout<<"InputTwoNumbers: "< cin>>numA>>numB; for(inti=numA;i<=numB;i++) { printFactor(i); } } voidprintFactor(inti) { cout<<"FACTORSOF"< "< int*fact=newint(); 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< if((j+1)%10==0) { 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 usingnamespacestd; template TCOUNT(charop,Ta,Tb) { 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."< } } intmain() { inta,b; charop; cin>>a>>op>>b; if(op=='/'&&b==0) { cout<<"InputError."< } cout<<"Resultis"< system("pause"); return0; } 5.编写一个程序,实现如下功能: (1)输入k(<100)个整数到数组x[100]中; (2)计算k个数的平均值及大于平均值的元素个数。 #include floataverage(int[],int); 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 sum+=u[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 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 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的i^2是不是回文数的函数 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文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 语言程序设计 平时 作业