程序设计基础(C语言)实验报告册_第1页
程序设计基础(C语言)实验报告册_第2页
程序设计基础(C语言)实验报告册_第3页
程序设计基础(C语言)实验报告册_第4页
程序设计基础(C语言)实验报告册_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序设计基础(c语言)实践报告 专 业 :计算机科学与技术 班 级 : 姓 名 : 学 号 : 教 师 : 程序设计基础(c语言)课程组实验一1、编写程序,输入一个四位数,打印输出其个位数、十位数、百位数和千位数。#include#includemain() int a,b,i;printf(please enter a number:n);scanf(%d,&a); for(i=1;i=4;i+) b=a%10; a=a/10; printf(%dn,b);getch();2、 编写程序,从键盘上输入两个电阻的值,求它们并联和串连的电阻值,输出结果保留两位小数。#include#includemain() double a,b,chuanlian,binglian; printf(please enter a&b:n); scanf(%lf%lf,&a,&b); chuanlian=a+b; binglian=1/(1/a)+(1/b); printf(chuanlian=%.2lfnbinglian=%.2lfn,chuanlian,binglian); getch();3、编写一个程序,从键盘上输入学生的三门课程成绩,求总成绩和平均成绩。#include#includemain()double a,b,c,pingjun,zonghe;printf(enter a&b&cs mark:n);scanf(%lf%lf%lf,&a,&b,&c);pingjun=(a+b+c)/3;zonghe=a+b+c;printf(pingjun=%lfnzonghe=%lfn,pingjun,zonghe);getch();#include#includemain()printf( 5 2 0n);printf(+ 1 3 1 4n);printf( 1 8 3 4 * 10n);4、输入一元二次方程的三个系数,求根。#include#includevoid main()double a,b,c,x1,x2,d;printf(pleae enter a,b,c:n);scanf(%lf%lf%lf,&a,&b,&c);d=b*b-4*a*c;x1=(-b-sqrt(d)/(2*a);x2=(-b+sqrt(d)/(2*a);printf(x1=%lfnx2=%lfn,x1,x2);5、输入三角形的三个边长a,b,c,输出面积s。#include#includemain()double a,b,c,s,r;printf(pleae enter a,b,c:n);scanf(%lf%lf%lf,&a,&b,&c);r=(a+b+c)/2;s=sqrt(r*(r-a)*(r-b)*(r-c);printf(s=%lfn,s);getch();实验2选择结构程序设计一、实验目的1、了解C语言表示逻辑量的方法(以0代表“假”,以非0代表“真” )。2、学会正确使用逻辑运算符和逻辑表达式。3、熟练掌握if语句和switch语句。4、结合程序掌握一些简单的算法。1.有一个函数用scanf函数输入x的值(分别为x0,输出方程X1,X2的解。当a0,0,输出无实根。5、键盘输入一个至多五位数,判断它是几位数,并将该数逆序输出。例:输入1456,输出结果是:四位数,逆序后:6541。7、编写程序,要求从键盘输入成绩,输出对应的等级(100分为A,90-99为B,80-89为C,70-79为D,60-69为E,小于60为F)。8、设计一个简单的计算机程序,用户输入运算数和四则运算符(+、-、*、/),输出计算结果。二、实验内容三、实验源码及测试数据#include#includemain()double x,y;scanf(%lf,&x);if(x=1&x=10)y=3*x-11;printf(%lfn,y);getch();#includestdio.hmain()int a,b,c,k,max,mid,min;scanf(%d%d%d,&a,&b,&c);if(ab)k=a;a=b;b=k if(ac)k=a;a=c;c=k if(bc)k=b;b=c;c=k; printf(max=%dmid=%dmin=%d,a,b,c);#include#includemain()double a,b,c,s,r;printf(please enter a,b,c:n);scanf(%lf%lf%lf,&a,&b,&c);if(a+b)-c)0&(a-b)-c)0)r=(a+b+c)/2; s=sqrt(r*(r-a)*(r-b)*(r-c); printf(s=%lfn,s);else printf(不能构成三角形n);getch();#include#includemain()double a,b,c,x1,x2,d,x;printf(please enter a,b,c:n);scanf(%lf%lf%lf,&a,&b,&c);d=b*b-4*a*c;if(a=0&b=0)printf(bushifangchengn);if(a=0&b!=0)x=-c/b; printf(一元一次方程n); printf(%lfn,x);if(a!=0&d0)x1=(-b-sqrt(d)/(2*a); x2=(-b+sqrt(d)/(2*a); printf(x1=%lfnx2%lfn,x1,x2);if(a!=0&d0)printf(wujien);getch();#include#includemain()int a,b,c=0,i;printf(please enter a numbern);scanf(%d,&a);while(a0)b=a%10; c=b+10*c; a=a/10; printf(%d,c);getch(); #include#includemain()int a;printf(please enter a:n);scanf(%d,&a);if(a=100)printf(An);if(a=90&a=80&a=70&a=60&a=60)printf(En);if(an2),k1k2同上。 1005、求 n!+(n3-3n2+2)(-1)n n=16、找出5000以内所有完数。完数:一个数是它所有的因子的和。7、任意输入10个数,分别算出其中负数和正数的个数。8、.键盘输入字符串,遇#结束,分别统计字母、数字和其它字符个数。9、计算1-100内所有含有6的数的和。10、输出所有3位水仙花数。所谓水仙花数是指所有位的数字的立方和等于该数。例:153=13+53+33。 b11、梯形法求数值积分。F(x)= (4-X*X)0.5dx。 a12、用二分法求3X3+2X2-4X=6的解。13、用牛顿迭代法求3X3+2X2-4X=6的解。14、利用循环嵌套,输出九九乘法表。 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 2 4 6 8 10 15、观察数列,输出其前20项,每4个数一行,每个数占8列。 2 ,2, 4, 4, 6, 16, 816、编写程序输出下面图形。12 34 5 67 8 9 0三、实验源码及测试数据#include#includemain()char a200;int i,b,num=0,emp=0,oth=0,lat=0;gets(a);b=strlen(a);for(i=0;i=0&ai=a&ai=A&ai=Z)lat+; else if(ai= )emp+; else oth+;printf(num=%dnlat=%dnemp=%dnoth=%dn,num,lat,emp,oth);getch();#include#includemain()int a=1,i;for(i=1;i10;i+) a=2*(a+1); printf(%dn,a);getch();#includemain()int i,b,a;a=0;for(i=1;i=100;i+)b=i%3; if(b=0) a=a+i; printf(%dn,a);getch();#include #includevoid main()double n1,n2,k1,k2,i,j,k;double a=0,b=0,c=1,d=0;printf(enter n1,n2:);scanf(%lf%lf,&n1,&n2);printf(enter k1,k2:);scanf(%lf%lf,&k1,&k2);if(n1n2)printf(error);if(k1k2)printf(error);for(j=n1;j=n2;j+)a=a+2*j*j;for(i=k1;i=k2;i+)for(k=1;k=i;k+)c=c*k;b=b+c*pow(-1),i);d=a+b;printf(%lf,d);#include#includevoid main()int k;double n,a,s1,s2,s;s1=0;s2=0;for(n=1;n=10;n+)a=1; for(k=1;k=n;k+) a=a*k; s1=s1+a; s2=s2+(n*n*n-3*n*n+2)*pow(-1,n);s=s1+s2;printf(%lf,s);#include#include#includemain()int i,j,b,a,c;for(i=2;i=5000;i+) a=0; for(j=1;ji;j+) b=i%j; if(b=0) a=a+j; if(a=i) printf(%dn,a); getch();#include#include#includemain()int i,j,b,a,c;for(i=2;i=5000;i+) a=0; for(j=1;ji;j+) b=i%j; if(b=0) a=a+j; if(a=i) printf(%dn,a); getch();#include#include#includemain()int a10,i,zhengshu=0,fushu=0;for(i=0;i10;i+)scanf(%d,&ai);for(i=0;i0)zhengshu+; if(ai0)fushu+;printf(zhengshu=%dfushu=%d,zhengshu,fushu);getch();#include#include#includemain()char c;int num=0,oth=0,lat=0;for(;(c=getchar()!=#;)if(c=0&c=a&c=A&c=Z)lat+; else oth+;printf(num=%dnlat=%dnoth=%dn,num,lat,oth);getch();#includemain()int i,a,b,c=0; for(i=1;i=100;i+) a=i%10; b=i/10; if(a=6)|(b=6) c=c+i; printf(c=%dn,c); getch();#includemain()int i,a,b,c,d,f,e;e=0;for(i=101;i1000;i+)b=i%10; c=(i-b*1)%100)/10; d=(i-b-c*10)%1000)/100; f=b*b*b+c*c*c+d*d*d; if(f=i) printf(i=%dn,i); getch();#include#includevoid main() double s=0,n,a,b,i,A; printf(输入下限a:);scanf(%lf,&a); printf(输入上限b:);scanf(%lf,&b); printf(输入最小分段n:);scanf(%lf,&n);for(i=a;ib;i=i+n)A=(pow(4-i*i),0.5)+pow(4-(i+n)*(i+n),0.5)*n/2;s=s+A;printf(%lf,s);#include#include#define fang(x) (3*x*x*x-2*x*x-4*x-6)void main()float a,b,c,m;scanf(%f%f,&a,&b);m=fang(a)*fang(b);if(m=0)do c=(a+b)/2; if(fang(b)*fang(c)0) a=c; if(fang(a)*fang(c)0.0001) ; printf(%f%f,a,b); elseprintf(在%d和%d中没有跟或有两个跟,a,b);#include#includevoid main()double e;e=0.1;double x,x0,f,fl;scanf(%lf,&x);do x0=x; f=3*x0*x0*x0+2*x0*x0-4*x0-6; fl=(9*x0+4)*x0-4; x=x0-f/fl; while(fabs(x-x0)e);printf(x=%lfn,x);#include#include#includemain()int i,j;for(i=1;i10;i+)printf(%-5d,i);printf(n);for(i=1;i10;i+)printf(n);for(j=1;j10;j+)printf(%-5d,i*j); getch();#includevoid main()int q,i,j,a=2,b;printf(%-8d%-8d,a,a);for(i=2;i=10;i+)printf(%-8d,2*i);a=a*a;printf(%-8d,a);b=i%5; if(b=0)printf(n); #includemain()int i,j,n=1;for(i=0;i4;i+)for(j=0;j=90),及格率(=60),和平均分。输出排行榜(编号+成绩)。9、输入一个矩阵,找出所在行上最大,列上最小的数。(可能没有)10、读入下列数字存放在数组a54中,分别求各行、各列元素之和。将结果补在最后1行和最后1列后,输出整个矩阵。 12 4 6 8 23 3 15 7 9 2 5 17 11、键盘输入7个评委对7个选手的打分,算出平均分,要求去掉最低分,最高分,输出成绩排行榜。三、实验源码及测试数据#includemain()int a10;int i,j,t;for(i=0;i10;i+)scanf(%d,&ai);for(j=0;j10;j+) for(i=0;iai+1) t=ai;ai=ai+1;ai+1=t;for(i=0;i10;i+)printf(%-3d,ai);getch();#include stdio.h#include string.hvoid main()int a15=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,;int i,b;scanf(%d,&b);for(i=0;i15;i+)if(b=ai)printf(这个数是第%d个数n,i+1); break; if(b!=ai) printf(没有这个数);#include stdio.h#include string.h#include math.hvoid main()char a100,b100;int c,d,i;printf(enter a);scanf(%s,a);printf(enter b);scanf(%s,b);c=strlen(a);d=strlen(b);for(i=0;ic+d;i+)ac+i=bi;printf(%sn,a);#includestdio.hmain()int i,j,k,a;for(i=0;i5;i+) k=i;for(j=0;j5)a=k-5; else a=k; printf(%d,a);printf(n);#include#include#includemain()int i,t,a10;for(i=0;i10;i+)scanf(%d,&ai);for(i=0;i4;i+)t=ai;ai=a9-i;a9-i=t;for(i=0;i10;i+)printf(%d,ai);getch();#include stdio.h#include string.hvoid main()int a7;int i,j,t,b=0,pinjun;for(i=0;i7;i+)scanf(%d,&ai);for(j=0;j7;j+)for(i=0;iai+1)t=ai;ai=ai+1;ai+1=t; for(i=1;i6;i+)b=b+ai;pinjun=b/5;printf(%-dn,pinjun);#include stdio.h#include string.hvoid main()char a100;int i=0,b;do scanf(%c,&ai);i+; while(ai-1!=#);b=strlen(a);for(i=0;ib;i+)if(ai=f)printf(%dn,i+1); #include#includevoid main()int a55;int i,j,k,b,max,min;for(i=0;i5;i+)for(j=0;j5;j+)scanf(%d,&aij);max=0;min=100;for(i=0;i5;i+)for(j=0;jmax) max=aij; printf(max=%dn,max); b=j; printf(b=%dn,b);for(k=0;k5;k+)if(akbmin)min=akb;printf(min=%dn,min);if(min=max)printf(这个数在第%d行第%d列n,i,j);else printf(无此数n);游戏大赛12、输入某游戏大赛10个队伍的名称(以字符串:如good good study),队伍过关数(整数),耗时数(如:90分钟)。输出排行榜(包括过关数、耗时,队伍名称)。排行规则:先以过关数为标准。 过关数一样的以时间为标准。 过关数、时间一样的以队伍名称的首字母为标准。#include Stdio.h #includestring.hvoid main()char name1020;int time10;int floor10;int i,j,k,tem,temp;char a20;printf(intput the name time(minites) and floor); for(i=0;i10;i+) scanf(%s%*c,namei); scanf(%d%d,time,floor); printf( the name time and floor); for(i=0;i10;i+) printf(name:%sn,namei); printf(time:%d minitesn,timei); printf(floor:%dnn,floori); for(j=0;j10;j+) for(i=0;ifloori+1) temp=floori; tem=timei; strcpy(a,namei); floori=floori+1; timei=timei+1; strcpy( namei,namei+1); floori+1=temp;timei+1=tem; strcpy( namei+1,a); if(floori=floori+1) if(timeitimei+1) tem=timei; strcpy(a,namei); timei=timei+1; strcpy( namei,namei+1); timei+1=tem; strcpy( namei+1,a); if(timei=timei+1) if(namei1namei+11) strcpy(a,namei); strcpy( namei,namei+1); strcpy( namei+1,a); for(i=9;i=0;i-) printf(NO.%k name:%sn,namei20); printf(time:%d minitesn,timei); printf(floor:%dnn,floori); k+; #include#includestruct teamchar name30; int floor; int time;st10,p;void main() int i,j;for(i=0;i10;i+)scanf(%s%d%d,,&sti.floor,&sti.time);for(j=0;j9;j+)for(i=0;isti+1.floor )p=sti; sti=sti+1; sti+1=p; else if (sti.floor=sti+1.floor ) if(sti.timesti+1.time ) p=sti; sti=sti+1; sti+1=p; else if(sti.time=stj.time) if(strcmp(,sti+1.name)=0;i-)printf(%st%dt%dn,,sti.floor,sti.time);实验5函数一、实验目的1、掌握定义函数的方法;2、掌握函数实参与形参的对应关系以及“值传递”的方式;3、掌握函数的嵌套调用和递归调用的方法;4、掌握全局变量和局部变量动态变量、静态变量的概念和使用方法。二、实验内容1、编写三个函数分别求某学生三门课程总成绩和平均成绩和及格率。2、 用一个函数来实现将一行字符串中最长的单词输出。此行字符串从主函数传递给该函数3、 用递归法将一个整数n转换成字符串。例如,输入483,应输出字符串“483”。n的位数不确定,可以是任意的整数。4、输入三个字符串,按由小到大的顺序输出这些字符串。要求,对于三个字符串进行两两比较,将最小的串放在str1中,将最大的串放在str3中。设计一个函数,对两个字符串进行交换。提示:使用strcmp(str1,str2)函数。5、已知abc+bcc=1333,其中 a、b、c均为一位整数,编写一个函数,求出a、b、c分别代表什么数字。6、编写一个程序,包括主函数和如下子函数。(1) 输入10个无序的整数;(2) 用起泡方法从大到小排序;(3) 要求输入一个整数,用折半查找法找出该数,若存在,在主函数中输出其所处的位置,否则,插入适当位置。7、定义一个函数,功能是计算n个学生的成绩中,高于平均成绩的人数,并作为函数值。用主函数来调用它,统计50个学生成绩中,高于平均成绩的有多少人?8、编写函数 n 2 k 2求 2j2 + i!(-1)i j = n 1 i = k 19、写函数实现2分法求方程的根10、写函数求求5000以内的完数。11、写函数求输出数列2、2、4、4、6、16、8前20项。12、求函数 1 n=0 Hn= x-2x+7 n=1hn-1(x)*(x3+2)+hn-2(x)*(x2-7x)。n113、比较数组a和数组b,得出a中的数(每一个)比b中的几个数大,并输出。14、投票选班长,5个候选人,10个人每人投一票,输入投票结果,输出每个候选人的得票数。三、实验源码及测试数据#include#includemain() int i,a3;float ave,pass,sum;float summ(int a3);float passion(int a3);for(i=0;i3;i+)scanf(%d,&ai);sum=summ(a);ave=sum/3;pass=passion(a); printf(总分%.0fn平均分%.2fn及格率%.2f%n,sum,ave,pass);float summ(int a3) /函数int sum=0,i;for(i=0;i3;i+)sum=sum+ai;return sum;float passion(int a3) / 函数float pass;int i,k=0; for (i=0;i60) k+; pass=100*k/3 ; return (pass);#include stdio.h#includestring.h void main() char a200; int i,k;int hanshu(char a);int panduan(char a); gets(a); k=hanshu(a); for(i=k;panduan(ai);i+) printf(%c,ai);printf(n);int hanshu(char a)int i,l=0, k=0,m,n; int panduan(char a); for(i=0;ik) n=i;k=l;l=0; else l=0; return (n-k); int panduan(char a) if(a=a&a=A&a0)jiaohuan(str1,str2);if(strcmp(str1,str3)0)jiaohuan(str1,str3);if(strcmp(str2,str3)0)jiaohuan(str2,str3);puts(str1);puts(str2);puts(str3); void jiaohuan(char str1,char str2)char x20;strcpy(x,str1);strcpy(str1,str2);strcpy(str2,x); #include stdio.h void main() void h();h();void h()int a,b,c;for(a=0;a10;a+) for(b=0;b10;b+) for(c=0;c10;c+) if(a*100+b*10+c+b*100+c*10+c)=200) printf(%dn%dn%dn,a,b,c);#include void main()int a11,weizhi11;int i,j,b,t=0;void paixu(int a,int weizhi); void charu(int a,int b); int chazhao(int a,int weizhi,int b); a0=0;weizhi0=0; for(i=1;i11;i+) scanf(%d,&ai); weizhii=i; scanf(%d,&b); /输入要判断的数 paixu(a,weizhi); /从大到小排序for(i=1;i11;i+)printf(数值%dt位置%dn,ai,weizhii);t=chazhao(a,weizhi,b); /用t判断是否存在if(t)printf(存在该数位置为:);printf(%dn,t); else charu(a,b);void paixu(int a,int weizhi) int i,j,t,te;for(j=1;j10;j+)for(i=1;i10-j;i+)if(aiai+1) t=ai; te=weizhii; ai=ai+1; weizhii=weizhii+1; ai+1=t; weizhii+1=te; int chazhao(int a,int weizhi,int b) int i,j,t=0; for(i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论