c语言上机实验答案46.docx
- 文档编号:6199529
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:14
- 大小:17.85KB
c语言上机实验答案46.docx
《c语言上机实验答案46.docx》由会员分享,可在线阅读,更多相关《c语言上机实验答案46.docx(14页珍藏版)》请在冰豆网上搜索。
c语言上机实验答案46
实验四循环结构程序设计(4学时)
一、实验方式:
一人一机
二、实验目的:
1、熟练掌握while语句、do-while语句和for语句。
2、练习并掌握循环结构的嵌套形式。
3、掌握循环结构的程序设计方法。
三、实验内容:
说明:
前四题为必做题目,后两题为选做题目。
1、从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。
(实验指导书P117)
2、求所有的水仙花数。
水仙花数是一个3位数的自然数,该数各位数的立方和等于该数本身。
(实验指导书P118)
3、判断输入的某个数是否为素数。
若是,输出YES,否则输出NO。
(书P123)
4、计算π的近似值。
公式如下:
π/4=1-1/3+1/5-1/7+……,直到最后一项的绝对值小于10-6为止。
(书P123)
5、计算s=1!
+2!
+……+20!
的值并输出。
6、输入10个整数,统计并输出其中正数、负数和零的个数。
四、实验步骤与过程:
1.
#include
#include
voidmain()
{
floatx,max,min;
printf("pleaseinputscores:
");
scanf("%f",&x);
max=min=x;
while(x>=0)
{
if(x>max)max=x;
if(x scanf("%f",&x); } printf("\nmax=%f\nmin=%f\n",max,min); getch(); } 2. #include voidmain() { intx,y,z; intk=100; while(k<1000) { x=k/100; y=(k/10)%10; z=k%10; if(k==x*x*x+y*y*y+z*z*z) printf("%d\n",k); k++; } } 3. #include #include voidmain() { inti,x,yes,a; printf("enterintegernumber: "); scanf("%d",&x); yes=1; i=2; a=(int)sqrt((double)x); while(yes&&i<=a) { if(x%i==0)yes=0; i=i+1; } printf("%d",x); if(yes) printf("YES\n"); else printf("NO\n"); getchar(); } 4. #include #include voidmain() {floatpi,t,n; intsign=1; pi=0.0;n=1.0;t=1.0; while(fabs(t)>=1e-6) {t=sign/n; pi+=t; n+=2; sign=-sign; } pi=pi*4; printf("pi=%f\n",pi); getchar(); } 5. #include voidmain() { inti,j,n; doublem,s=0; for(i=1;i<=20;i++) { for(j=1,m=1;j<=i;j++) m*=j; s+=m; } printf("resultis: %g",s); getchar(); } 6. #include voidmain() { inta,b,c,n,i; a=0; b=0; c=0; printf("pleaseentertennumbers: "); for(i=1;i<=10;i++) {scanf("%d",&n); if(n==0) a++; else if(n>0) b++; else c++;} printf("零的个数为: %d",a); printf("正数的个数为: %d",b); printf("负数的个数为: %d",c); } 实验五综合实验1: 结构化程序设计(2学时) 一、实验方式: 一人一机 二、实验目的: 1、进一步掌握选择结构、循环结构的编程特点。 2、掌握C语言的结构化程序设计思想。 3、学习利用循环结构实现的一些常用算法(如穷举、迭代、递推等)。 三、实验内容: 说明: 前两题为必做题目,后两题为选做题目。 1、编一程序,对于给定的一个百分制成绩,输出对应A,B,C,D,E表示的的等级成绩。 设: 90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。 (书P93) 2、百马百担问题。 (实验指导书P121) 3、输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。 4、输出如下图案: * *** ***** ******* ***** *** * 四、实验步骤与过程: 1. #include voidmain() { intscore,temp,logic; chargrade; logic=1; while(logic) {printf("inputscore: "); scanf("%d",&score); if((score>100)||(score<0)) printf("\nerror,inputagain! \n"); else logic=0; printf("\n"); } if(score==100) temp=9; else temp=(score-score%10)/10; switch(temp) { case9: grade='A';break; case8: grade='B';break; case7: grade='C';break; case6: grade='D';break; case5: case4: case3: case2: case1: case0: grade='E'; } printf("scoreis: %d,thegradeis: %c.\n",score,grade); } 2. #include voidmain() { intm,n,k; intsum=0; printf("各种驮法如下: \n"); for(m=1;m<=100;m++) for(n=1;n<=100-m;n++) { k=100-m-n; if(k%2==0&&3*m+2*n+0.5*k==100) { printf("大马%3d匹;中马%3d匹;小马%3d匹.\n",m,n,k); sum++; } } printf("共有%d种驮法.\n",sum); } 3. #include voidmain() { intm=0,n=0,k=0,j=0; charx; printf("请输入一行字符: \n"); scanf("%c",&x); while(x! =10) {if(x>=48&&x<=57) m++; elseif(x>=65&&x<=90||x>=97&&x<=122) n++; elseif(x==32) j++; elsek++; scanf("%c",&x);} printf("这行字符中有数字%d个,英文字母%d个,空格%d个,其他字符%d个。 \n",m,n,j,k); } 4. #include voidmain() { inti,j,k; for(i=1;i<=4;i++) { for(j=1;j<=20-i;j++)printf(""); for(k=1;k<=2*i-1;k++)printf("*"); printf("\n"); } for(i=3;i>0;i--) { for(j=1;j<=20-i;j++)printf(""); for(k=1;k<=2*i-1;k++)printf("*"); printf("\n"); } getchar(); } 实验六函数程序设计(4学时) 一、实验方式: 一人一机 二、实验目的: 1、掌握C语言中函数的三要素: 函数定义、函数调用和函数说明。 2、掌握通过参数在函数间传递数据的方法。 3、掌握全局变量、局部变量、动态变量、静态变量的概念和使用方法。 三、实验内容: 说明: 前四题为必做题目,后两题为选做题目。 1、从键盘输入三角形的3条边,调用三角形面积函数求出其面积,并输出结果。 (实验指导书P130) 2、输入整数n,输出高度为n的等边三角形。 当n=5时的等边三角形如下: (实验指导书P134) * *** ***** ******* ********* 3、输入并运行以下程序,分析运行结果。 #include inta=5; intb=7; voidmain() {inta=4,b=5,c; c=plus(a,b); printf(“a+b=%d\n”,c); } plus(intx,inty) {intz; z=x+y; return(z); } 4、求500以内的所有亲密数对。 若正整数A的所有因子(包括1但不包括自身,下同)之和为B,而B的因子之和为A,则称A和B为一对亲密数对。 (实验指导书P136) 5、输入并运行以下程序,分析运行结果。 #include intd=1; fun(intp) {staticintd=5; d+=p; printf(“%d”,d); return(d); } voidmain() {inta=3; printf(“%d”,fun(a+fun(d))); } 6、设计一个函数,输出整数n的所有素数因子。 (书P157) 四、实验步骤与过程: 1. #include #include floatarea(floata,floatb,floatc) { floats,p,area; s=(a+b+c)/2; p=s*(s-a)*(s-b)*(s-c); area=sqrt(p); return(area); } voidmain() { floatx,y,z,ts; scanf("%f,%f,%f",&x,&y,&z); if((x+y>z)&&(x+z>y)&&(y+z>x)) {ts=area(x,y,z); printf("area=%f\n",ts); } elseprintf("dataerror! "); } 2. #include voidtrangle(intn) { inti,j; for(i=0;i { for(j=0;j<=20-i;j++) printf(""); for(j=0;j<=2*i;j++) printf("*"); putchar('\n'); } } voidmain() { intn; printf("请输入一个整数: "); scanf("%d",&n); printf("\n"); trangle(n); } 3. #include inta=5; intb=7; voidmain() {inta=4,b=5,c; c=a+b; printf("a+b=%d\n",c); } plus(intx,inty) {intz; z=x+y; return(z); } 4. #include intfacsum(intm) { intsum=1,f=2; while(f<=m/2) { if(m%f==0) {sum=sum+f;} f++; } returnsum; } voidmain() { intm=3,n,k; while(m<=500) { n=facsum(m); k=facsum(n); if(m==k&&m<=n) printf("亲密对数是: %d\n%d\n",m,n); m++; } } 5. #include intd=1; fun(intp) {staticintd=5; d+=p; printf("%d",d); return(d); } voidmain() {inta=3; printf("%d",fun(a+fun(d))); } 6. #include intprime(intn) { inti,flag=1; for(i=2;i<=n/2;i++); if(n%i==0) { flag=0; returnflag; } returnflag; } voidfactor(intn) { inti; i=2; while(i<=n) { if((n%i==0)&&prime(i)) { printf("%d",i); n=n/i; continue; } i++; } } voidmain() { intnum; printf("Enternum: "); scanf("%d",&num); printf("primefactoris: \n"); factor(num); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 上机 实验 答案 46