计算机C语言实验报告含答案
- 格式:doc
- 大小:68.50 KB
- 文档页数:14
1 高级语言程序设计(C语言)实验报告。 „„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„ 一、实验题目:语句与顺序结构控制
程序设计 1)编写程序,已知圆半径radius=1.25,求圆周长和面积。 源代码: 运行结果:
#include d=7.853981 #define PI 3.1415926 s=4.908735 void main() { float r=1.25,d,s; d=2.0*PI*r; s=PI*r*r; printf("d=%f\n",d); printf("s=%f\n",s); }
2)编写程序完成大写字母的小写转换。 源代码: 运行结果:
#include 请输入一个大写字母:H void main() H h { char ch1,ch2; printf("请输入一个大写字母:"); ch1=getchar(); ch2=ch1+32; printf("%c %c\n",ch1,ch2); } 2
3)任意从键盘输入一个三位整数,要求正确分离出它的个位、十位和百位数,并分别在屏幕上显示。 源代码: 运行结果:
#include 请输入一个整数 :123 void main() b=1,s=2,g=3 { int a,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个整数。 源代码: 运行结果: #include please input a,b,c:4,6,10 void main() 10,6,4 { int a,b,c,t; printf("please input a,b,c: "); scanf("%d,%d,%d",&a,&b,&c); if(aif(aif(bprintf("%d %d %d\n",a,b,c); }
2)输入某学生的考试成绩等级A、B 、C、 D,要求按照等级输出对应的分数段。A级对应分数段为80~100,B级对应分数段70~79, C级对应分数段60~69 , D级对应分数段为60分以下。 源代码: 运行结果: 3
#include 请输入成绩等级B void main() B--- 70 ~79 { char c; 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就是无暇素数。 源代码: 运行结果:
#include 101 107 113 131 149 void main() 151 157 167 179 181 { 191 199 311 313 337 int i,j,flag1,flag2,g,s,b,r,count; 347 353 359 373 383 count=0; 389 701 709 727 733 for (i=100;i<=900;i++) 739 743 751 757 761 { 769 787 797 b=i/100; s=(i%100)/10; g=i%10; r=g*100+s*10+b; flag1=flag2=1; 4
for (j=2;jif (i%j==0) flag1=0; for (j=2;jif (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时,迭代结束。 源代码: 运行结果:
#include 请输入一个实数:4 #include 2.000000,2.000000 void main() { double a,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); 5
printf("%f,%f\n",x2,sqrt(a)); } 四、实验题目:数组 程序设计 1) 完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。编程找出 1000 以内的所有完全数,并输出使该数成为完全数的因子。(例如6=1+2+3。按照6, its factors are 1,2,3格式输出)。 源代码: 运行结果:
#include 6,its facts are 1 2 3 void main() 28,its facts are 1 2 4 7 14 { 496,its facts are 1 2 4 8 16 31 62 124 248 int i,j,count,sum,f[1000]; for (i=2;i<=1000;i++) { count=0;sum=0; for (j=1;jif (i%j==0) { f[count]=j; sum=sum+f[count]; count++; } if (i==sum) { printf("%d,its facts are ",i); for (j=0;jprintf("\n"); } } } 6
2) 从键盘输入字符串a和字符串b,并在a串中的最小元素(不含结束符)后面插入字符串b。 源代码: 运行结果:
#include dfghj #include qwerty #define N 80 dqwertyfghj void main () { char a[N],b[N],c[N]; int min,i,j,n; gets(a); gets(b); min=0; for(i=1;a[i]!='\0';i++) if(a[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(int a,int b)实现。 源代码: 运行结果:
#include 请输入两个整数:12 6 int hcf(int m,int n) /*求最大公约数的函数*/ a= 6 { int t,r; if(n>m) { t=n;n=m;m=t;} 7
while ((r=m%n)!=0) { m=n; n=r; } return (n); } void main() { int m,n,a; printf("请输入两个整数:"); scanf("%d%d",&m,&n); a=hcf(m,n); printf("a=%d\n",a); }
2) 编程实现打印出2~n之间的所有素数,要求判断素数过程用自定义函数实现。 源代码: 运行结果:
#include input n:20 int isprime(int n) 2 3 5 7 11 13 17 19 { int i; for(i=2;iif(n%i==0) return 0; return 1; } void main() { int i,n; printf("input n:"); scanf("%d",&n); for(i=2;i<=n;i++) if(isprime(i)) printf("%d ",i);