计算机C语言实验报告含答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1高级语言程序设计(C语言)实验报告。………………………………………………………………………………………………一、实验题目:语句与顺序结构控制程序设计1)编写程序,已知圆半径radius=1.25,求圆周长和面积。源代码:运行结果:#includestdio.hd=7.853981#definePI3.1415926s=4.908735voidmain(){floatr=1.25,d,s;d=2.0*PI*r;s=PI*r*r;printf(d=%f\n,d);printf(s=%f\n,s);}2)编写程序完成大写字母的小写转换。源代码:运行结果:#includestdio.h请输入一个大写字母:Hvoidmain()Hh{charch1,ch2;printf(请输入一个大写字母:);ch1=getchar();ch2=ch1+32;printf(%c%c\n,ch1,ch2);}23)任意从键盘输入一个三位整数,要求正确分离出它的个位、十位和百位数,并分别在屏幕上显示。源代码:运行结果:#includestdio.h请输入一个整数:123voidmain()b=1,s=2,g=3{inta,g,s,b;printf(请输入一个整数:);scanf(%d,&a);b=a/100;s=(a%100)/10;g=a%10;printf(b=%d,s=%d,g=%d\n,b,s,g);}二、实验题目:选择结构程序设计程序设计1)设变量a、b、c分别存放从键盘输入的3个整数。编写程序,按从大到小的顺序排列这3个整数,使a成为最大的,c成为最小的,并且按序输出这3个整数。源代码:运行结果:#includestdio.hpleaseinputa,b,c:4,6,10voidmain()10,6,4{inta,b,c,t;printf(pleaseinputa,b,c:);scanf(%d,%d,%d,&a,&b,&c);if(ab)t=a,a=b,b=t;if(ac)t=a,a=c,c=t;if(bc)t=b,b=c,c=t;printf(%d%d%d\n,a,b,c);}2)输入某学生的考试成绩等级A、B、C、D,要求按照等级输出对应的分数段。A级对应分数段为80~100,B级对应分数段70~79,C级对应分数段60~69,D级对应分数段为60分以下。源代码:运行结果:3#includestdio.h请输入成绩等级Bvoidmain()B---70~79{charc;printf(请输入成绩等级);c=getchar();switch(c){case'A':printf(%c---80~100\n,c);break;case'B':printf(%c---70~79\n,c);break;case'C':printf(%c---60~69\n,c);break;case'D':printf(%c---60分以下\n,c);break;default:printf(输入错误\n);}}三、实验题目:循环结构程序设计程序设计1)找出100-900之间的无暇素数。所谓无暇素数是指本身为素数,且其逆序数也是素数的数。例如:113是一个素数,311也是一个素数,113就是无暇素数。源代码:运行结果:#includestdio.h101107113131149voidmain()151157167179181{191199311313337inti,j,flag1,flag2,g,s,b,r,count;347353359373383count=0;389701709727733for(i=100;i=900;i++)739743751757761{769787797b=i/100;s=(i%100)/10;g=i%10;r=g*100+s*10+b;flag1=flag2=1;4for(j=2;ji;j++)if(i%j==0)flag1=0;for(j=2;jr;j++)if(r%j==0)flag2=0;if(flag1&&flag2){count++;printf(%5d,i);if(count%5==0)printf(\n);}}}2)编程:用迭代法求某数a的平方根。平方根的迭代公式如下:xn+1=(xn+a/xn)/2;设x0=a/2;当迭代相邻两项差的绝对值小于10-5时,迭代结束。源代码:运行结果:#includestdio.h请输入一个实数:4#includemath.h2.000000,2.000000voidmain(){doublea,x1,x2,d;printf(请输入一个实数:);scanf(%lf,&a);x1=a/2.0;do{x2=(x1+a/x1)/2.0;d=fabs(x1-x2);x1=x2;}while(d=1.0E-5);5printf(%f,%f\n,x2,sqrt(a));}四、实验题目:数组程序设计1)完全数(Perfectnumber),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。编程找出1000以内的所有完全数,并输出使该数成为完全数的因子。(例如6=1+2+3。按照6,itsfactorsare1,2,3格式输出)。源代码:运行结果:#includestdio.h6,itsfactsare123voidmain()28,itsfactsare124714{496,itsfactsare1248163162124248inti,j,count,sum,f[1000];for(i=2;i=1000;i++){count=0;sum=0;for(j=1;ji;j++)if(i%j==0){f[count]=j;sum=sum+f[count];count++;}if(i==sum){printf(%d,itsfactsare,i);for(j=0;jcount;j++)printf(%d,f[j]);printf(\n);}}}62)从键盘输入字符串a和字符串b,并在a串中的最小元素(不含结束符)后面插入字符串b。源代码:运行结果:#includestdio.hdfghj#includestring.hqwerty#defineN80dqwertyfghjvoidmain(){chara[N],b[N],c[N];intmin,i,j,n;gets(a);gets(b);min=0;for(i=1;a[i]!='\0';i++)if(a[i]a[min])min=i;n=strlen(b);for(j=0,i=min+1;a[i]!='\0';i++)c[j++]=a[i];c[j]='\0';a[min+1]='\0';strcat(a,b);strcat(a,c);puts(a);}五、实验题目:函数程序设计1)编程实现求两个正整数的最大公约数,要求计算最大公约数用函数fun(inta,intb)实现。源代码:运行结果:#includestdio.h请输入两个整数:126inthcf(intm,intn)/*求最大公约数的函数*/a=6{intt,r;if(nm){t=n;n=m;m=t;}7while((r=m%n)!=0){m=n;n=r;}return(n);}voidmain(){intm,n,a;printf(请输入两个整数:);scanf(%d%d,&m,&n);a=hcf(m,n);printf(a=%d\n,a);}2)编程实现打印出2~n之间的所有素数,要求判断素数过程用自定义函数实现。源代码:运行结果:#includestdio.hinputn:20intisprime(intn)235711131719{inti;for(i=2;in;i++)if(n%i==0)return0;return1;}voidmain(){inti,n;printf(inputn:);scanf(%d,&n);for(i=2;i=n;i++)if(isprime(i))printf(%d,i);8}3)编写函数fun(intt),它的功能是:求斐波那契数列中大于t的最小的一个数,结果由函数返回。其中斐波那契数列f(n)的定义为:f(1)=1,f(2)=1f(n)=f(n-1)+f(n-2)(n2)例如:当t=1000时,函数值为:1597。源代码:运行结果:#includestdio.hInputnplease:1000intfun(intt)n=1000,f=1597{intf1,f2,f;f1=f2=1;f=f1+f2;while(f=t){f1=f2;f2=f;f=f1+f2;}returnf;}voidmain(){intn;printf(Inputnplease:);scanf(%d,&n);printf(n=%d,f=%d\n,n,fun(n));}六、实验题目:指针程序设计1)分别求出数组中所有3的倍数之和以及5的倍数之和。形参n给了数组中数据的个数,利用指针three返回3的倍数之和,利用指针five返回5的倍数之和。例如:数组中的值依次为:1,5,9,2,3,15,11,6,10;则利用指针three返回3的倍数之和33;利用指针five返回5的倍数之和30。请在下面空白处完善这一函数的功能,并且调试运行出结果。源代码:运行结果:#includestdio.hTheoriginaldatais:#defineN20159231511610voidfun(int*a,intn,int*three,int*five)3的倍数之和:33{inti;5的倍数之和:30*three=*five=0;for(i=0;in;i++){if(a[i]%3==0)*three+=a[i];if(a[i]%5==0)*five+=a[i];}}9voidmain(){inta[N]={1,5,9,2,3,15,11,6,10},i,n=9,three,five;printf(Theoriginaldatais:\n);for(i=0;in;i++)printf(%5d,*(a+i));printf(\n\n);fun(a,n,&three,&five);printf(3的倍数之和:%d\n,three);printf(5的倍数之和:%d\n,five);}2)从键盘输入一个字符串,实现利用字符指针将字符串的字符顺序逆置并输出。(例如输入abcdef,输出fedcba)。请编写相应的程序代码,并调试运行出正确结果。源代码:运行结果:#includestdio.h请输入一个字符串:#includestring.habcdefgvoidreverse(char*p,intn)gfedcba{char*q,t;for(q=p+n-1;pq;p++,q--){t=*p;*p=*q;*q=t;}}voidmain(){chars[80];intn;printf(请输入一个字符串:\n);gets(s);n=strlen(s);reverse(s,n);puts(s);}七、实验题目:结构体和共用体程序验证:10启动vc语言环境,输入并执行个运行结果:#includestdio.hInputstudent’snumberstructstu003{name=Aliceintnum;sex=Wcharname[10];age=22charsex;79789697intage;intscore[4];}students[]={{001,David,'M',25,{80,78,92,94}},{002,Lily,'W',23,{90,84,89,95}},{003,Alice,'W',22,{79,78,96,97}},voidmain(){inti,j,number;printf(Inputstudent’snumber

1 / 14
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功