版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、仅供参考,理论上都能运行出结果。2.5循环结构程序设计实验一循环结构程序设计1、求!+2!+10!0#iiicludevoidmain()longi,n=l,s=0;fbr(i=l;i=10;i+)n*=i;s+=n;pnntf(Ml!+2!+10!=%dn,;s);2、打印一下图案(用循环实现)2#rjwrjw2#rjwrfwrjw2#rjwrjw*#iiicludevoidmain()inti,j,k;fbr(i=l;i5;i+)for0=lj5-ij+)pnntff”);fbi(k=1;k0;i)for(j=lj5-ij+)pnntf(HM);fbi(k=1;k=2*i-l;k+)pnn
2、tfC*”);pmirffW);3、猴子吃桃。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。#iiicludevoidmain()iiitLn=l;fbi(i=9;i0;i-)n=(n+l)*2;4、打印九九乘法表。#iiicludevoidmain()Ultlj;for(i=l;i10;i-H-)for(j=l;j=i;j+)printf(M%d*%d=%d.H,ij,i*j);pmirffW);5、输出10-100之间的
3、全部素数。#iiicludevoidmain()iiitLu;fbi(n=10;n101;n+)for(i=2;i=n)printf(Mt%d,n);实验二综合运用3种基本结构进行程序设计K百马百担。100匹马,驮100担,大马3担,中马2担,2个小马1担,问大、中、小马各多少?#includevoidmain()mtxyz;fbr(x=0;x34;x+)fbi(y=0;y51;y+)z=100-(x+v);if(z%2=0&x*3+y*2+刃2=100)printf(Mx=%d,y=%d,z=%dn,x,yz);2、输入一行字符,分别统计其中英文字母、空格、数字和其他字符个数。#includ
4、evoidmain()mttzm=0,kg=0,sz=0.qt=0;charc100=M”;字符串:”);gets(c);fbi(i=O;ci?=O,;i+)if(ci=a*&ci=,Ar&civ=Z)zm+;elseif(ci=-)kg卄;elseif(ci=*0&civ=9)sz+;elseqt+;printf(Mzm=%dkg=%dsz=%dqt=%dn,zm,kg.s乙qt);其各位数打印输出“水仙花数”。“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身,如153就是一个水仙花数。#includevoidmain()iiiti,a5b,c;foi(i=100;i1000;i+
5、)a=i/100;b=(i-a*100)/10;c=i%10;if(a*a*a+b*b*b+c*c*c=i)pnntfCWd-j);4、将一个正整数分解成每个质例如:4、将一个正整数分解成每个质例如:输入90,打印90=2*3*3*5.#includevoidmain()mti.n;printHpleasemputanumber:);scanf(H%d,&n);pnntf(M%d=,n);fdi(i=2;i=n;i+)wliile(n!=i)if(n%i=O)n=ivi;elsebreak;pnntf(M%d,n);5、利用循环语句编写程序以实现以下功能:对一个正整数,讲各位数字反序后的数组成
6、一个整数输出。例如:输入12345,输出54321。(方法一)#iiicludevoidmain()mtscanf(”dj&n);while(n!=0)m=n%10;n=n/10;pnntfC%d;m);(方法二)iiicludeiiicludevoidmain()inti,l;chaia100;scanf(”s役a);l=stilen(a);6一个素数加上1000以后是37的倍数,求满足这个条件的最小素#iiicludevoidmain()iiiti,n;for(n=2;n=1000;n+)foi(i=2;in;i-H-)if(n%i=0)break:if(n+1000)%37=0)pnnt
7、f(M%dirn);break;7、找1000以内的所有“完数”。一个数如果恰好等于它的因子之和,这个数就称为“完数”,如6就是一个完数,因为6二1+2+3。#iiicludevoidmain()intij,s;for(i=3;i=1000;i+)s=0;for(j=lji;j+)s=s+j;if(i=s)pdntf(%d舄s);2.6数组实验数组的定义及使用IK从键盘输入一个整数n(n=10)和n个整数,存入数组a中,先依次输出各个数组元素的值,然后对数组a的所有元素值从小到大的顺序重新排列后,再依次输出。#includevoidmain()iiita10卫,ijjniiht;scanf(”
8、d役&n);fdr(i=O;in;i+)scanf(”d”,&ai);fdr(i=O;in;i+)printf(H%dH,ai);fdr(i=O;in;i+)min=i;for(j=i+ljn;j+)if(ajamin)inin=j;t=ai;ai=aniiii;anun=t;fbr(i=O;i编程并上机调试运行。将一个数组中的值逆序存储,然后按顺序输出数组。如原来数组储存为1、2、3、4、5的,按要求重新存为5、4、3、2、1#mcludcASs.10hv#inchldcASRl=ghvvoid宀ErlJ-charalookscanf(二fsml=splcn(axfbr(li,lrrvHO;
9、il)plllltfufcvs)八pnrnfcw);(2)JTS圧IT囲wlll(删洱JrgQCb)。includeAss-lo.hvvoidBKllnolmlJKaa=8wlsfbr(li-278x+)aEolllforvljfij+)aEuH吕ip+arlE;fbrTov-ff-H-)fbAk=0;k3*(8k+)pnl=f(-;);for7ojfij+)pl.hf(=脅6dvE=Mpnmfrm-)(3)sincludeAsrdlo.hvvoidmam()宀intasE.bEs.匚s=0-fblT5?ii+)fbl75?A4;j+)scanfvwdJRP吕吕fdr(i=0;i4;i+)s+
10、=aii+a3-ii;for(i=0;i4;i+)foi(j=0;j4j+)bji=aij;pnntf(MAiraya:ir);fbr(i=0;i4;i-H-)for(j=0j4j+)pnntf(”4d”,aij);pnntf(HnM);p】mtf(”s=%dn”,s);pnntf(MAirayb:ir);fbr(i=0;i4;i-H-)for(j=0j4j+)pimtfC%4dbi|j);pgrf(”n”);(4)输出Fibonacci数列的前20项。#includevoidmain()inti;longa20=l,l;fbr(i=2;i20;i+)ai=ai-l+ai-2;fbi(i=0;
11、i20;i+)if(i%5=0)pnngn”);printf(”-101d”,ai);pnntf(MnM);(5)按公式计算,求A20的值。Al=l,A2=l;A3=3*A1+A2;(1)(1)A4=3*A2+A3;#includevoidmain()mti;longa20=l,l;foi(i=2;i20;i+)ai=3*ai-2+ai.l;pnntf(MA20=%diral刃);实验二数组的定义及使用uK输入并改正源程序中的错误。#include#includevoidmain()iiitn=0j;chars81;gets(s);1=0;wliile(si!=,0,)if(!(si=lA,&
12、si=Z)sn+=si;sn=,0,;puts(s);2、编写程序并上机调试运行。入10入10个整数,采用冒泡法排序后输出。(1)(1)#includevoidmain()intl.jj;mta10;pnntf(MInput10numbers:nn);fbr(i=0;i10;i+)scanff%d”,&ai);for(j=0jaj+l)aj=aj+l;aj+l=t;pnntf(Mthesortednumbers:iin);fbr(i=0;i10;i+)pnntf(HnM);(2)将两个字符串连接起来,不要用strcat函数。#include#includevoidmain()intij=Ojl
13、J2;chara100,b100;gets(a);gets(b);ll=strlen(a);12=strlen(b);for(i=ll;ill+12;i+)ai=b|j;J卄;all+l=0:puts(a);输入一行字符串,统计其中单词个数,单词之间用空格隔开。例如:输入“lamaboy!”其中单词的个数为4个()#include#includevoidmain()iiiti,Ln=l;chara100;gets(a);l=strlen(a);foi(i=0;il;i+)if(ai=,)n+;找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大在该列上最小,也有可能没有鞍点。#iiiclu
14、deFrdefineN3FrdefineM4main()intaNMj,j,k4uax,iow,col;pnntf(”Input%d*%dmatrix:irN,M);for(i=0;iN;i+)for(j=0jM;j+)scanf(”for(i=0;iN;i+)for(j=0jM;j+)scanf(”d役&aij);for(i=0;iN;i+)niax=ai0;iow=i;col=0;foi(j=ljM;j+)if(maxaij)max=aiIj;col=j;for(k=0;kN;k+)if(akcolmax)break;if(k=N)/*求鞍点*/*求矩阵中每一行的最人值及其所行列号*/*判
15、断每一行的最人值在其所在列是否最人*/严得到鞍点引prmtf(nthepomtis%djow=%d.col=%dntmaxow,col);break;严没有鞍点勺严没有鞍点勺if(i=N)printf(MnopointnM);已有一个排序好的数组(从小到大排序),现输入一个数,要求按原来排序的规律将它插入数组中。#include#defineN10voidmain()iiitaN+ljj;prmtf(nFromsmalltobigNnumbersfbr(i=0;iN;i+)scanff%d”,&恥);prmtf(HIiiputanumber:aN=H);scaiif(H%d,&aN);fbr(
16、i=N;aiai-1;i)t=ai;ai=ai-l;ai=t;prmtf(nthesortednumbers:nM);fbr(i=0;iN+l;i+)printf(%5d,ai);prmtf(nnH);比较用户输入的字符串是否为表示同意的“yes”(用户可以用大写或小写)。#include#includevoidmain()mti.k;chara10,b4=MyesH;printfIiiputstimg:nn);gets(a);stilwr(a);k=sticmp(a,b);if(k=O)pnntf(输入的是yes。n”);elsepnntf(输入的不是yes。n”);2、7函数预处理实验一、
17、函数程序设计IK完成程序,求解n!。#includef(intn)retuin(l);elsereturn(f(n-l)*n);voidmain()liltxj;scanfC%cT,&i);X=f(l);pnntf(Mi!=%dirx);2、计算s=lk+2k+3k+Nko#includelongfl(intijntj)longpowei-i;intm;fbr(m=1;mj;m+)powei*=i;returnpower;voidmain()intn.k.m;longsum=O;(3)(3)、printf(MPleasemputN,k:nn);scanf(H%d,%d,&n,&k);fbr(m
18、=1;mn+1;m+)sum+=fl(m、k);printf(Msumis%ldn,sum);3、写出下面3个程序的输出结果,说明每个程序中的各个x有何不同。(IX#includeiiitx=5;mtmaiii(void)pmitf(”nxl=%d”,x);mtx=3;prmtf(niix2=%d,x);xl=5x2=3(2)、#includeiiitx=5;mtmaiii(void)pnntf(,nxl=%d,x);mtx=3;prmtf(niix2=%d,x);pnntf(,nx3=%d,x);xl=5x2=3X3=5(3)(3)、#includemtmaiii(void)voidsub(
19、void);inti;staticmtx;inty;i=l;x=10;y=5;pnntfC,HELLOoiH);piintf(”i=%d、x=%d,y=%dn”d,x,y);subO;pnntfC,HELLOoiH);piintf(”i=%d、x=%d,y=%dn”d,x,y);retum(O);voidsub()inti;staticmtx;i=18;x=20;prmtf(nCPROGRAMS);piintf(”i=%d,x=%dn”lx);HELLOi=l,x=10,y=5CPROGRAMi=18,x=20HELLOi=l,x=10,y=54、编程并上机调试运行。(1)求方程ax2+bc+
20、c=0的根,用三个函数分别求当b2-4ac大于0,等于0和小于0时的根,并输出结果。从主函数输入a、b、c的值。#include#includevoidfl(doublem.doublen.doubled)doublerootl4oot2;root1=(-n+sqrt(d)/2*m;root2=(-n-sqrt(d)/2*m;pnntf(MRealRoots:iiH);piintf(Mrootl=%lf4Oot2=%lfarrootljoot2);voidf2(doublem.doublen)doubleroot;root=-ii/2*m;printf(Mthesamerootis%lfn,i
21、oot);voidf3(doublem.doublen.doubled)doublelealjniage;real=-ii/2*m;iniage=sqrt(-d)/2*m;printf(MComplexRoots:nH);printf(Mrealpart=%lfimagepait=%lfii,ieaLiniage);voidmain()doublea.b.c.delta;printfCEntera,b,c:H);if(a=O)if(b=O)prmtf(nenor!nn);elseprmtf(nthesinglerootis%lfn”、c/b);elsedelta=b*b-4*a*c;if(de
22、lta0)fl(a,b,delta);elseif(delta=0)f2(a,b);elsef3(a,b,delta);写一个判断素数的函数,在主函数输入一个整数,输出是否为写一个判断素数的函数,在主函数输入一个整数,输出是否为素数的信息。#include素数的信息。#includevoid11)inti;for(i=2;in;i+)if(n%i=O)break;if(i=n)pnntfC%d是素数。voidmain()intn;printf(MIiiputanumber:H);scanfC%dt&n);f(n);(3)用递归法求n阶勒让德多项式的值,递归公式为1(N=0)Pn(X)=X(N=
23、l)(N$l)(2N1)XPn.!(X)(N1)Pn.2(X)/N(N$l)#includelongf(intn.iiitx)longt;if(n0)printf(Hthedateerror!M);t=-1;elseif(n=0)t=l;elseif(n=l)t=x;elset=(2*n-l)*x-f(n-l)*f(n-2,x)/n;retuin(t);voidmain()intii、x;longp;scanf(H%d,%d,&n,&x);p=f(n,x);if(p!=-l)pnntf(M%dirp);实验二、函数与预处理程序设计u1、阅读程序,理解程序的功能,写出预期结果并上机验证。#inc
24、ludevoidsort(inta)mt心;fbr(i=0;i4;i-H-)for(j=0j4-ij+)叱=叩+1;aj+l=t;voidmain()inta=5,10,-7,3,74;sort(a);fbr(i=0;i阅读程序,理解程序的功能,写出预期结果并上机验证。#include#defineSQR(X)X*Xvoidmain()inta=15,k=l,m=l;a/=SQR(k+m)/SQR(k+m);结果:33、编程并上机调试运行。编写一函数,由实参传递一个字符串,统计此字符串中字母、【字、空格和其他字符的个数,在主函数中输入字符串以及输出上述结果。#includevoidf(chai
25、c)intiqZm=0kg=0、sz=0、qt=0;fb(i=O;ci!=O:i+)if(ci=la,&ci=1A&ci=,0,&ci=9)SZ+;elseqt卄;piintfpzm=%dkg=%dsz=%dqt=%d乙qt);voidmain()chai-a100=M”;printf(MString:H);gets(a);f(a);写_函数,输入一个十六进制数,输入相应的十进制#include#include#includelongf2(inttjntn)longs;s=t*pow(16.n);returns;longfl(charc)intijj;longsum=O;l=stilen(c)
26、;fbi(i=O;i=0,&c1=A&ci=Tr)t=ci-55;elset=ci-87;sum+=2(tj-i-l);returnsum;voidmain()longs;chara100;pmitf(请输入十六进制数:”);gets(a);s=fl(a);pnntfC+进制数为:dn”,s);定义一个带参数的宏,使两个参数的值互换,并写出程序,输入两个输作为使用宏时的参数。输出已交换后的两个值。#includedefineS(a,b)t=a;a=b;b=t;voidmain()inta.b,t;scanf(”d,%d”,&a,&b);S(a,b);piintf(Ma=%d.b=%d,di,a
27、.b);编写函数,实现两个字符串连接,在主函数中输入两个字符串以及输出连接后的结果(不要用库函数中的strcat函数)。#include#includevoidf(chaia,charb)intij=0ji,12;ll=strlen(a);12=strlen(b);fbr(i=ll;ill+12;i+)J+;all+=3;puts(a);voidmain()chara1005b100;gets(a);gets(b);f(a,b);编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。例如,对于如下的二维数组如下,其firn函数的函数值为771357
28、92468103456745678#includedefineN3defineM3mtfiin(intaMJ)intij,hl=0Ji2=0,ll=0J2=0,s;for(j=OjMj卄)hl+=aO(j;h2+=aN-l|j;ll+=aiOJ;12+=aiM-l;s=h1+112+11+12;returns;voidmain()intij,sum,aNM;fbi(i=0;iN;i+)for(j=OjMj+)scanfC%d”,&aij);sum=fun(a);2、8指针实验一、指针的定义及使用IK分析下列程序并填空。使5X5数组的对角线元素为1,其他为0,即输出5X5的对角矩阵。#inclu
29、devoidmain()intj,k,a55,*p=a0;for(j=0j5J+)for(k=0;k5;k-H-)if(k=j|k=4-j)*p=l,p-H-;else*p=0,p-H-;for(j=0j5j+)for(k=0;k5;k+)pruitf(,%2d,a|jk);pnntf(”n”);利用函数求两个数的和以及差O#includevoidfun(mtx,intyint*cp.iiit*dp)*cp=x+y;*dp=x-v;voidmain()inta,b,c,d;a=30;b=50;piintf(M%d.%dn,c,d);2、分析下列程序的功能和结果并上机验证。(1)#include
30、voidmain()intnuml4iuni2;int*pl=&numl,*p2=&ui】m2、*p;printf(MIiiputtliefirstnumber/*);scmff%cT,pl);printf(MIiiputtliesecondnumber:H);scanf(,%d,p2);printHnuml=%d,nuni2=%diin4ium1,nuni2);if(*pl*p2)p=pl,pl=p2,p2=p;pnntf(,min=%djiiax=%dn,*p1、*p2);(2)#includevoidpti(iiit*x)pnntf(,%dn,+*x);voidmain()inta=25
31、;ptr(&a);3、编程并上机调试运行(用指针编写程序并上机验证)。(1)使用变量的指针作函数的实参,降序输出3个整数。#includevoidzx(int*zl.iiit*z2,iiit*z3)mtt;if(*zl*z2)t=*zl;*zl=*z2;*z2=t;t=*zl;*zl=*z3;*z3=t;if(*z2*z3)t=*z2;*z2=*z3;*z3=t;voidmain()inta、b,c;int*pl=&a,*p2=&b,*p3=&c;scanf(H%d,%d,%d,p1,p2,p3);zx(pl,p2,p3);printf(ll%d,%d,%dn,a,b,c);(2)将数组a中的
32、n个整数按相反顺序存放。#include#defineN10voidf(mtn)inti,t;for(i=0;iii/2;i+)t=*(p+l);*(p+i)=*(p+n-l-i);*(p+n-l-i)=t;voidmain()inti,aN;fbr(i=0;iN;i-H-)scanf(”d“.&ai);printf(MTheoriginalarray:fb】(i=0;iN;i+)printf(”5d”,ai);pnntf(HnM);f(a,N);printf(MThearrayhasberniinvertedfb】(i=0;iN;i+)printf(”5d”,ai);pnntf(HnM);从
33、7个数中找出其中最大值和最小值(用指针实现九#includemta_max(iiit*m)inti丄max;max=*m;for(i=0;i7;i+)if(inax*(m+i)t=max;max=*(m+i);*(m+i)=t;retuinmax;mta_inui(mt*n)inti化min;niui=*n;for(i=0;i*(n+i)t=iniii;inin=*(n+i);*(n+i)=t;retuinmin;voidmain()intijnaxjnin.a7,*p=a;for(i=0;i7;i+)scanf(”d”,p+i);max=a_niax(a);mm=a_min(a);print
34、f(M%d.%dn,niax4iiin);(4)编写函数实现在字符数组w中插入字符Xo函数原型:voidfun(char*w,char*x,int*n)0说明:假设W数组中的数已按由小到大顺序存放;n指向存储单元中数组元素的个数;插入后数组中的数仍有序。mcludeiiicludevoidfun(char*w,chai*x,mt*n)inti;wrn+lHO:w*n=*x;i=*n-l;while(i=0&wi*x)wi+l=wi;1-;wi+l=*x;voidmain()mt1;charx;chaiw100=n123xyzH;scanff%ct&x);pmitf(”sn”,w);l=stil
35、en(w);fiin(w,&x,&l);pmitf(”sn”,w);29结构体与公用体实验一、结构体的定义使用1、分析并验证以下程序的结果。#iiicludestmctstudentlongnum;clwname21;floatscore;stu5=100001;,zhao,85.5,100002quid;795,100003异sun”、95,100004;ir82.5J100005;,wang,94;voidmain()inti;stmctstudent*sp;sp=stu;fbr(i=0;iscore=90)1Old%10s%6.1fji,sp-nunKsp-naine,sp-scoie)
36、;2、改错、分析并验证一下程序的结果。#include#includestructstudentintnum;clwnaine20;intscore;voidmain()stmctstudentstud5;int11=0;fbr(i=0;i5;i+)prmtf(nIiiputNO.%dnuni:nj+l);scaiif(,%d,&smdi.num);NO.%dnaine/i+l);scanf(”st&studi.nanw);priiitf(nIiiputNO.%dscore:*i+l);scanf(%d冷&studi.score);printf(MmimtnamettscoieiiH);1=0;while(i5)if(studiscore60)prmtf(n%dt%-15st%dirstudi.nunL,studi.score);n+;i+;3、编程并上机调试运行。(1)有5个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入每个学生的数据,要求打印出3门课总平均成绩,以及高分的学生数据(包括学号、姓名、3门课的成绩、平均分数),在主函数中输出结果。#includestmctstudentintnum;cl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 食堂安全管理培训内容
- 04预测维度四 议题探究热点解码
- 出纳转会计职业规划路径
- 2025江西省中考历史真题
- 护理会诊流程详解
- 上海旅游高等专科学校《Android 移动端系统开发》2025-2026学年第一学期期末试卷(B卷)
- 上海政法学院《安全法规》2025-2026学年第一学期期末试卷(A卷)
- 上海戏剧学院《阿拉伯国家概况》2025-2026学年第一学期期末试卷(A卷)
- 上海电力大学《安全与危机管理》2025-2026学年第一学期期末试卷(B卷)
- 儿童经典阅读题目及答案
- 渗透检测 课件 第5章 渗透检测技术
- 2024年高考真题-政治(江西卷) 含答案
- 星球版七年级下册地理复习知识点归纳总结
- 工装室内装修合同范本
- 招标代理服务服务方案
- 水泥厂应急预案培训课件
- 肺癌(肺癌)中医临床路径
- 天融信防火墙NGFW4000配置手册
- 2014年西山禅海国际禅修养生中心概念报告30p
- 自动喷淋系统试压冲洗及调试方案
- YY/T 1670.1-2019医疗器械神经毒性评价第1部分:评价潜在神经毒性的试验选择指南
评论
0/150
提交评论