




免费预览已结束,剩余12页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验三:顺序结构程序设计1编写一个程序,输入一个字符,输出它的前后邻居#include void main() char c1; printf(“Input a character: ”); c1=getchar(); putchar(c1-1); putchar(t); putchar(c1+1); putchar(n); 2编写一个程序,求三角形的面积。其中,a、b、c为三角形的三条边,s=(a+b+c)/2,面积为area=#include #include void main() float a,b,c,s,area; printf(“Input a,b,c: ”); scanf(“%f,%f,%f”,&a,&b,&c); s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c); printf(“area=%fn”,area); 3编写一个程序,求摄氏温度。公式:c=5*(f-32)/9#include void main() float f,c; printf(“Input f: ”); scanf(“%f”,&f); c=5*(f-32)/9; printf(“c=%fn”,c);4设计一个程序,输入正五边形的边长的长度a,按公式计算该五边形外接圆的半径。#include #include void main() float r,a; printf(“Input a: ”); scanf(“%f”,&a); r=a*sqrt(10+2*sqrt(5)/5)/2; printf(“r=%0.2fn”,r); 5设计程序,输入空间中两点的坐标x1,y1,z1和x2,y2,z2计算两点之间的距离。#include #include void main() float x1,x2,y1,y2,z1,z2,d; printf(“Input x1,y1,z1,x2,y2,z2: ”); scanf(“%f,%f,%f,%f,%f,%f”,&x1,&y1,&z1,&x2,&y2,&z2); d=sqrt(x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)+(z2-z1)*(z2-z1); printf(“d=%fn”,z); 6编写一个C程序,输入一个3位整数,分别输出百位数、十位数和个位数。 #include void main() int x, a, b, c; printf(“Input a integer: ”); scanf(“%3d”,&x); a=x/100;b=x/10%10;c=x%10; printf(“a=%d, b=%d, c=%dn”,a,b,c);实验四 选择结构程序设计1编写程序输入四个整数,要求输出最小的一个。#include void main() int a,b,c,d,min; printf(“Input a,b,c,d: ”); scanf(“%d,%d,%d,%d”,&a,&b,&c,&d); min=a; if(minb) min=b; if(minc) min=c; if(mind) min=d; printf(“min=%dn”,min); 2编写程序判断体重。体指数(t)=体重(w)/身高2(h)其中,t18时体重偏轻,18=t25时体重正常,25=t=27时为肥胖。#include void main() float t,w,h; printf(“Input w,h: ”); scanf(“%f,%f”,&w,&h); t=w/(h*h); if(t18) printf(“tai qing len”); else if(t25) printf(“zheng changn”); else if(t27) printf(“pian zhongn”); else printf(“fei pangn”); 3分别用ifelseif语句和switch语句编写书P58#include void main() float dan_jia,zong_e,ze_kou; int n; printf(“Input n: ”); scanf(“%d”,&n); if(n1) printf(“Input error!n”); else if(n=5) ze_kou=n-1; else if(n=20) ze_kou=4+(n-5)*0.4; else if(n=50) ze_kou=10+(n-20)*0.15; else if(n=300) ze_kou=14.5+(n-50)*0.03; else ze_kou=22; dan_jia=10*ze_kou; zong_e=dan_jia*n; printf(“dan_jia=%f, zong_e=%fn”,dan_jia,zong_e); #include void main() float dan_jia,zong_e,ze_kou; int n,m; printf(“Input n: ”); scanf(“%d”,&n); m=(n-1)/5;4有一人过独木桥,到桥中间时看见前面有狼,后面有虎,底下是深深的河水。编程写出此人的最后结局。#include void main() char choice; printf(“Input your choice(a or b or c)”); scanf(“%c”,&choice); if(choice=a) printf(“bei lang chi len”); else if(choice=b) printf(“bei hu chi len”); else if(choice=c) printf(“shuai si len”); else printf(“Input error!n”); 5从键盘输入3个数,判断能否构成三角形,若能构成三角形,计算以这3个数为边长的三角形面积;否则,输出相应的提示信息。#include #include void main() float a,b,c,s,area; printf(“Input a,b,c: ”); scanf(“%f,%f,%f”,&a,&b,&c); if(a+bc & b+ca & a+cb) s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c);printf(“area=%fn”,area); else printf(“bu neng gou cheng san jiao xinn”);6编写一个程序,输入某学生成绩,若成绩在85分以上,则输出“Very Good”,若成绩在60分到85分之间,则输出“Good”,若成绩低于60分,则输出“Bad”。#include void main() float grade; printf(“Input a studentgrade: ”); scanf(“%f”,&grade); if(grade100) printf(“Input error!n”); else if(grade60) printf(“Badn”); else if(grade85) printf(“Goodn”); else printf(“Very Goodn”);7编写程序,读入一个年份和月份,打印出该月有多少天。#include void main() int year,month,days; printf(“Input year and month: ”); scanf(“%d,%d”,&year,&month); if(year%4=0 & year%100!=0 | year%400=0) days=29; else days=28; switch(month) case 1:case 3:case 5: case 7: case 8: case 10: case 12: days=31;break; case 4:case 6:case 9:case 11:days=30;printf(“days=%dn”,days); 实验五 循环结构程序设计1请分别用while语句和do-while语句编程求 的值。#include void main() float sum=0; int k=1; while(k=100) sum=sum+k;k+; k=1; while(k=10) sum=sum+1.0/k;k+; printf(“sum=%fn”,sum); #include void main() float sum=0; int k=1; do sum=sum+k;k+; while(k=100);k=1; do sum=sum+1.0/k;k+; while(k=10); printf(“sum=%fn”,sum); 2请分别用while语句和do-while语句编程求12/(1+1)+22/(2+1)+32/(3+1)+n2/(n+1),n由键盘输入。#include void main() int n,i; float sum=0; printf(“Input n: ”); scanf(“%d”,&n); i=1; while(i=n) sum=sum+i*i/(i+1.0);i+; Printf(“sum=%fn”,sum); #include void main() int n,i; float sum=0; printf(“Input n: ”); scanf(“%d”,&n); i=1; do sum=sum+i*i/(i+1.0);i+; while(i=n); Printf(“sum=%fn”,sum); 3输入一个字符串,将其中的空格和数字删除后输出。#include void main() char ch; While(ch=getchar()!=n)if(!(ch= | ch=0& ch=9) putchar(ch);putchar(n); 4编写程序求出满足不等式1+2+3+n500的最大n值及总和。 #include void main() int sum=0,n=0; while(sum500) n+;sum=sum+n; sum=sum-n; n-; printf(“sum=%d, n=%dn”,sum,n); 5编程实现求数列1/2,3/4,5/8,7/16的所有大于等于0.000001的数据项之和,显示输出计算结果。#include void main() float m,n,sum=0; m=1;n=2; while(m/n=0.000001) sum=sum+m/n;m+=2;n*=2; printf(“sum=%fn”,sum); 6编程找出1000以内的完数。所谓完数是它等于它的因子之和。如:6=1+2+3。#include void main() int m,s,i; for(m=2;m1000;m+) s=0; for(i=1;im;i+) if(m%i)=0) s=s+i; if(s=m) printf(“%d是一个完数。它的因子是:”,m); for(i=1;im;i+) if(m%i=0) printf(“%d”,i); printf(“n”); 实验六 一维数组的使用 1. 用筛法求100以内的素数。#include #define N 100void main() int sushuN=0,k,n; for(j=1;jN;j+)sushuj=j+1; for(j=2;jN;j+) for(n=2;n=sushuj/2;n+)if(j%n=0) sushuj=0; for(j=0;jN;j+)if(sushuj!=0) printf(“%3d”,sushuj); printf(“n”); 2. 编写一个程序,计算若干学生的某门功课的平均成绩、标准差,找出最高分和最低分。#include #include #define N 100void main() float gradeN,aver,stdev,max,min; int m,k; printf(“Input m:”); scanf(“%d”,&m); for(k=0;km;k+) printf(“Input the %ds grade: ”,k+1);scanf(“%f”,&gradek); max=min=grade0;aver=0;for(k=0;km;k+) aver=aver+gradek;if(maxgradek) min=gradek; aver=aver/m;stdev=0; for(k=0;km;k+)stdev=stdev+(gradek-aver)*(gradek-aver); stdev=sqrt(stdev/m); printf(“aver=%f,stdev=%f,max=%f,min=%fn”,aver,stdev,max,min);3. 编写一个程序,让计算机产生20个随机数,用选择法排序。#include #include #define N 20void main() int aN,i,j,p,temp; randomize(); for(i=0;iN;i+)ai=random(100); printf(“Befor sorted:”);for(i=0;iN;i+) if(i%10=0) printf(“n”);printf(“%3d”,ai);printf(“n”); for(i=0;iN-1;i+) p=i;for(j=i+1;jaj) p=j;if(p!=i) temp=ap;ap=ai;ai=temp; printf(“After sorted: ”);for(i=0;iN;i+) if(i%10=0) printf(“n”);printf(“%3d”,ai);printf(“n”); 4. 根据上题的内容1,编一程序在数组中查找一个数。要求:若有该数,则输出该数,否则输出找不到的信息;用顺序查找实现;用折半查找实现。顺序查找:#include #include #define N 20void main() int aN,i,j,p,temp,x,f; randomize(); for(i=0;iN;i+)ai=random(100); for(i=0;iN-1;i+) p=i;for(j=i+1;jaj) p=j;if(p!=i) temp=ap;ap=ai;ai=temp; for(i=0;iN;i+) if(i%10=0) printf(“n”);printf(“%3d”,ai);printf(“n”); printf(“Input you want to find: ”);scanf(“%d”,&x);f=0;for(i=0;iN;i+) if(ai=x) f=1;break;if(f) printf(“Found! The number is: %dn”,x);else printf(“Not found.n”);折半查找:#include #include #define N 20void main() int aN,i,j,p,temp;int x,top,mid,bot,f; randomize(); for(i=0;iN;i+)ai=random(100); for(i=0;iN-1;i+) p=i;for(j=i+1;jaj) p=j;if(p!=i) temp=ap;ap=ai;ai=temp; for(i=0;iN;i+) if(i%10=0) printf(“n”);printf(“%3d”,ai);printf(“n”); printf(“Input you want to find: ”);scanf(“%d”,&x);f=0;top=0;bot=N-1;while(topbot) mid=(top+bot)/2; if(x=amid) f=1;break; else if(xamid) bot=mid-1; else top=mid+1;if(f) printf(“Found! The number is: %dn”,x);else printf(“Not found.n”);5根据实验内容3,编写一程序删除指定的一个数。#include #include #define N 20void main() int aN,i,j,p,temp;int x; randomize(); for(i=0;iN;i+)ai=random(100); for(i=0;iN-1;i+) p=i;for(j=i+1;jaj) p=j;if(p!=i) temp=ap;ap=ai;ai=temp; for(i=0;iN;i+) if(i%10=0) printf(“n”);printf(“%3d”,ai);printf(“n”); printf(“Input you want to delete: ”);scanf(“%d”,&x);for(i=0;iN;i+) if(x=ai) break;for(;iN-1;i+) ai=ai+1;ai=0;for(i=0;iN;i+) if(i%10=0) printf(“n”);printf(“%3d”,ai);printf(“n”); 6根据实验内容3,编写一程序插入一个指定的数,插入后,数组仍然有序。#include #include #define N 20void main() int aN+1,i,j,p,temp;int x,f; randomize(); for(i=0;iN;i+)ai=random(100); for(i=0;iN-1;i+) p=i;for(j=i+1;jaj) p=j;if(p!=i) temp=ap;ap=ai;ai=temp; for(i=0;iN;i+) if(i%10=0) printf(“n”);printf(“%3d”,ai);printf(“n”); printf(“Input you want to insert: ”);scanf(“%d”,&x);for(i=0;xi;f-) af=af-1;ai=x; for(i=0;i=N;i+) if(i%10=0) printf(“n”);printf(“%3d”,ai);printf(“n”); 实验七 二维数组的使用 1找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小。也可能没有“鞍点”。要求用随机函数生成数据。#include #include #define N 5void main() int aNN=0,i,j,k,p,q; randomize(); for(i=0;iN;i+)for(j=0;jN;j+) aij=random(100);for(i=0;iN;i+) p=0;for(j=1;jN;j+) if(aipaij) p=j; q=0; for(k=1;kakp) q=k; if(i=q) printf(“a%d%d=%dn”,i,q,aiq); 2使用二维数组,打印杨辉三角形前10行。#include #define N 10void main() int yhNN=0,i,j; for(i=0;iN;i+) yhii=1;yhi0=1; for(i=2;iN;i+)for(j=1;ji;j+) yhij=yhi-1j+yhi-1j-1; for(i=0;iN;i+) for(j=0;j=i;j+) printf(“%5d”,aij);printf(“n”); 3编写程序,将一个55的矩阵中最大的元素放在中心,4个角分别放4个最小的元素(按从左到右、从上到下的顺序,依次从小到大存放。#include #include #include #define N 5void main() int aNN,i,j,x,y,t; randomize(); clrscr(); for(i=0;iN;i+) for(j=0;jN;j+) aij=random(100); printf(%4d,aij); printf(n); x=y=0; for(i=0;iN;i+) for(j=0;jN;j+) if(axyaij) x=i;y=j; t=a22;a22=axy;axy=t; x=0;y=0; for(i=0;iN;i+) for(j=0;jaij) x=i;y=j; t=a00;a00=axy;axy=t; x=0;y=1; for(i=0;iN;i+) for(j=0;jaij) x=i;y=j; t=a04;a04=axy;axy=t; x=0;y=1; for(i=0;iN;i+) for(j=0;jaij) x=i;y=j; t=a40;a40=axy;axy=t; x=0;y=1; for(i=0;iN;i+) for(j=0;jaij) x=i;y=j; t=a44;a44=axy;axy=t; printf(n); for(i=0;iN;i+) for(j=0;jN;j+) printf(%4d,aij); printf(n); 4 编写程序,用随机函数产生一个二维迷宫(用0表示通道,1表示隔墙)#include #define N 10void main() int aNN,i,j; randomize(); for(i=0;iN;i+)for(j=0;jN;j+) aij=rand()%2; printf(“%2d”,aij); 实验八字符数组1、编写一个程序,将字符数组s2中的全部字符拷贝到字符数组s1中。(不能使用strcpy函数。)#include void main() char s130,s230; int k; printf(“Input a string: ”); gets(s2); for(k=0;s2k!=0;k+)s1k=s2k; puts(s1); 2、有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。#include voi main() char str381; int i,j,upper=0,low=0,digit=0,space=0,other=0; printf(“Input three strings: ”); for(i=0;i3;i+)gets(stri); for(i=0;i=a& strij=A& strij=0& strij=9) digit+;else if(strij= ) space+;else other+; printf(“upper=%d,lower=%d,digit=%dn”,upper,low,digit);printf(“space=%d,other=%dn”,space,other);3、有n个字符串,要求找出其中最大和最小的字符串。#include #include #define N 30#define M 20void main() char strMN,max30,min30; int k; for(k=0;kM;k+) printf(“Input the No.%d string: ”,k+1);gets(strk); strcpy(max,str0);strcpy(min,str0); for(k=1;kM;k+) if(strcmp(max,strk)0) strcpy(min,strk); printf(“The max is: %sn”,max); printf(“The min is: %sn”,min);4、有n个字符串,要求按字母顺序从小到大对其排序。#include #include #define N 30#define M 20void main() char strMN,s30; int j,k,p; for(j=0;jM;j+) printf(“Input the No.%d string: ”,j+1);gets(strj); for(j=0;jM-1;j+) p=j;for(k=j+1;k0) p=k;if(p!=j) strcpy(s,strj);strcpy(strj,strp);strcpy(strp,s); for(k=0;kM;k+)puts(strk);实验九函数的定义与调用 1、写一个判断素数的函数。要求:在主函数中输入一个整数并输出是否素数的信息;用自定义函数判断此数是否素数;测试数据:17、34、2、1、0、49、39。#include int panduan(int n) int i,f=1; if(n=1 | n=0) f=0;for(i=2;i=n/2;i+) if(n%i=0) f=0;break;return f;void main() int x,flag; printf(“Input x: ”); scanf(“%d”,&x); flag=panduan(x); if(flag) printf(“Yesn”); else printf(“Non”); 2、编一个函数,其功能是:求高于平均分的人数,并作为函数值返回。要求:学生的成绩放在student数组中;在主函数中输入学生的成绩,用-1结束成绩的输入;在主函数中输出高于平均分的人数;测试数据:78、34、65、86、54、76、65、48、29、94 87、46、88、71、68、60、83、92、57、51 69、89、79、39、55、44、21、99、96、70#include #define N 100void main() float gradeN;int k,total,n=0;int tongji(int a,int n); k=0; printf(“Input the No.%ds grade: ”,k+1);scanf(“%f”,&gradek);while(gradek!=-1) k+;n+;printf(“Input the No.%ds grade: ”,k+1);scanf(“%f”,&gradek); total=tongji(grade,n); printf(“total=%dn”,total);int tongji(int x,int n) float aver=0; int m,k=0; for(m=0;mn;m+)aver=aver+xm; aver=aver/n; for(m=0;maver) k+; return k;3、P103第三题的第三小题。#include int gys(int m,int n) int r; if(mn) r=m;m=n;n=r; r=m%n; while(r!=0) m=n;n=r;r=m%n; return n;int gbs(int m,int n,int k) return m*n/k;void main() int x,y,gysh,gbsh; printf(“Input x,y: ”); scanf(“%d,%d”,&x,&y); gysh=gys(x,y); gbsh=gbs(x,y,gysh); printf(“gongyueshu: %dn gongbeishu: %dn”,gysh,gbsh);实验十 函数的数据传递、递归调用及模块化程序设计1、用递归法求n阶勒让德多项式的值,递归公式为:#include float pnx(int n,float x) if(n=0) return 1.0; else if(n=1) return x; else return (2*n-1)*pnx(n-1,x)-(n-1)*pnx(n-2,x)/n);void main() float x,n,pn; printf(“Input x,n: ”); scanf(“%f,%d”,&x,&n); pn=pnx(n,x); printf(“%fn”,pn);2、运行汉诺塔程序void move(char x, char y) printf(“%c%cn”, x, y); void Hanoi(int n, char one, char two, char three) if(n=1) move(one, three); else Hanoi(n-1, one, three, two); move(one, three); Hanoi(n-1, two, one, three); main( ) int m; printf(“input the number of diskes:”); scanf(“%d”, &m); printf(“The step to moving %3d diskes:n”,m); Hanoi(m, A, B, C); 测试用例:4,10。 3、写一个函数,使输入的一个字符串反序存放。#include #include void main() char s150; void fun(char s); printf(“Input a string: ”); gets(s1); fun(s1); puts(s1);void fun(char s) int i,j; char ch; for(i=0,j=strlen(s)-1;i=j;i+,j-) ch=si;si=sj;sj=ch;4、编写一个程序,解决以下问题:n个人围成一圈,从第一个人开始顺序报数1、2、3。凡是报到“3”的人退出圈子。找出最后留在圈子中的人的原来的序号。测试用例:15、22、39。#include #define N 50int baoshu(int x,int n) int i,j,k; i=k=j=0; while(jn-1) if(xi!=0) k+; if(k=3) j+;k=0;xi=0; i+; if(i=n) i=0; for(i=0;in;i+) if(xi!=0) return xi;void main() int n,i,k,aN; printf(Input n: ); scanf(%d,&n); for(i=0;in;i+) ai=i+1; k=baoshu(a,n); printf(The end is: %dn,k);实验十一 预处理命令的使用2编写一段程序,用来求两个数的最小值,其中用来求最小值的部分用宏定义来实现。编写完成后编译执行。#include #define MIN(a,b) (a)(b)?(a) : (b)void main() float x,y,min; printf(“Input x,y: ”); scanf(“%f,%f”,&x,&y); min=MIN(x,y); printf(“min is: %fn”,min);实验十二 指针1编制交换整型变量值的函数swap( )。函数swap( )的功能是交换两个整型变量的值,函数swap( )设有两个指向整型变量的指针参数,函数利用指针参数间接访问变量。调用swap( )函数时,两个参数分别是两个待交换值得整型变量的地址。#include void swap(int *a,int *b) int x; x=*a;*a=*b;*b=x;void main() int x,y; printf(“Input x,y: ”); scanf(“%d,%d”,&x,&y); swap(&x,&y); printf(“x=%d, y=%dn”,x,y);2编写程序,用指针来实现数组的输入和输出。数组定义如下:a10=1,2,3,4,5,6,7,8,9,0#include void main() int a10,*p=a,i; for(i=0;i10;i+)scanf(“%d”,p+i); for(i=0;i10;i+,p+)printf(“%3d”,*p); printf(“n”); 3输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:输入10个数;对换处理;输出10个数。#include #define N 10void input(int a,int n) int i; for(i=0;in;i+) printf(“Input the No.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 报警系统施工方案(3篇)
- 南昌工学院《设计创新思维》2024-2025学年第一学期期末试卷
- 河南应用技术职业学院《动物生理学实验综合设计》2024-2025学年第一学期期末试卷
- 湖南安全技术职业学院《计算机控制技术》2024-2025学年第一学期期末试卷
- 广州商学院《社会工作实务三》2024-2025学年第一学期期末试卷
- 阿拉善职业技术学院《数据挖掘与统计应用》2024-2025学年第一学期期末试卷
- 2025年电工(高级)职业技能鉴定试卷及答案(电气设备故障诊断与处理)
- 郑州商贸旅游职业学院《计算机网络技术》2024-2025学年第一学期期末试卷
- 2025年高压电工证资格考试试题50题及答案
- 山东外贸职业学院《化学课程与教学论》2024-2025学年第一学期期末试卷
- 基本药物临床应用管理制度
- 放射科新技术介绍
- 盆底功能障碍问卷(PFDI20)
- 居住证申请表(正式版)
- 护士临床思维建立
- 公共场所卫生知识培训材料
- 证据目录范本
- 标准档案盒脊背(格式已设置好)
- GB/T 21475-2008造船指示灯颜色
- 园林绿化工高级技师知识考试题库(附含答案)
- 安医大生殖医学课件04胚胎的培养
评论
0/150
提交评论