2016年C语言实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

printf("input n fail\n"); exit(EXIT_FAILURE); } printf("Please input m:"); if(0==scanf("%d",&m)||m<1||m>n) { printf("input m fail\n"); exit(EXIT_FAILURE); } cmn=fun(n)/( fun(n-m)*fun(m) ); printf("The result is %d\n",cmn); return EXIT_SUCCESS; }
1 8
7 7

C
0 8

四、实验小结(结合本次实验的经验谈谈想法,忌空洞无物,不少于 100 字)
}
#include<stdio.h> #include<stdlib.h> int fun(int number) { int n=number,i,result=1; for(i=2;i<=number;++i) { result *= i; } return result; } int main() { int m,n,cmn; printf("Please input n:"); if( 0==scanf("%d",&n)||n<1 ) {


各位老师: 本学期非计算机专业《计算机程序设计基础(C 语言)》课实验报告要求: 1. 统一用《武汉科技大学实验报告》本写。(和上学期 15 级用过的一样) 2. 本学期交三次实验报告。 1 循环结构程序设计。 2 数组。 3 函数。 要求学生在完成以下实验报告时,参考《C 语言程序设计课程实验与题解》认真完成。
#include <stdio.h> void main() { int i,j; for (i=1;i<=9;i++) /* 打印表头*/ printf(" %4d",i); printf("%c",'\n'); for (i=0;i<=50;i++) printf("%c",'_'); printf("%c",'\n'); for (i=1;i<=9;i++) /* 循环体执行一次,打印一行*/ { for (j=1;j<=i;j++) printf(" %4d",i*j); /* 循环体执行一次,打印一个数据*/ printf("%c",'\n'); /* 每行尾换行*/ } printf("%c",'\n'); } #include <stdio.h> int main() { int i,j; for(i=9;i>0;--i) { for(j=1; j<=i; ++j) printf("%d×%d=%2d ",j,i,i*j); printf("\n"); }
他的岁数之和是 873,请编写程序计算李先生及其夫人的岁数各是多少。}
main() { int s1,s2; for(s1=1;s1<=100;s1++) for(s2=1;s2<=100;s2++) if((s1*s1+s2==1053)&&(s1+s2*s2==873)) printf("s1=%d,s2=%d",s1,s2); }
{ printf("%d ",n); } } }
#include #include
void main() { int s,t,a,b,c; printf("水仙花数:\n"); for(a=1;a<10;a++) for(b=0;b<10;b++) for(c=0;c<10;c++) { s=a*a*a+b*b*b+c*c*c; t=a*100+b*10+c; if(s%t==0) printf("%d ",t); } }试着修改程序打印上三角形状的乘法九九表#include<stdio.h>
打印出所有“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字的立方和正好等 于该数本身。public static void main(String[] args) { for(int i=100;i<=999;i++){ //截取个位和十位,百位 int a=i%10; int b=i/10%10; int c=i/100%10; if(Math.pow(a, 3)+Math.pow(b, 3)+Math.pow(c, 3)==i){ System.out.println(i); } } }
实验 1 循环结构程序设计
一、实验目的 1. 熟悉用 while 语句,do-while 语句和 for 语句实现循环的方法。 2. 掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。 3. 熟悉 break 语句和 continue 语句用法的不同之处。 二、实验内容 【例】以下程序,输出下三角形状的乘法九九表。 #include <stdio.h> void main() { int i,j; for (i=1;i<=9;i++) /* 打印表头*/ printf(" %4d",i); printf("%c",'\n'); for (i=0;i<=50;i++) printf("%c",'_'); printf("%c",'\n'); for (i=1;i<=9;i++) /* 循环体执行一次,打印一行*/ { for (j=1;j<=i;j++) printf(" %4d",i*j); /* 循环体执行一次,打印一个数据*/ printf("%c",'\n'); /* 每行尾换行*/ } printf("%c",'\n'); } 输入并执行该程序,观察输出结果,试着修改程序打印上三角形状的乘法九九表。 三、编程序并上机调试运行。 1.打印出所有“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字的立方 和正好等于该数本身。例如:153 是一个“水仙花数”,因为 153=13+53+33。 解题思路:根据题目要求只要分别求出一个三位数的个位、十位、百位上的数字, 然后判断是否满足 (某一三位数 a=a 的百位的立方+a 的十位的立方+a 的个位的立方) 这个 公式,满足这个三位数就是“水仙花数”。
public static void main(String[] args) { for(int i=100;i<=999;i++){ //截取个位和十位,百位 int a=i%10; int b=i/10%10; int c=i/100%10; if(Math.pow(a, 3)+Math.pow(b, 3)+Math.pow(c, 3)==i){ System.out.println(i); } } }#include #include void main() { int n,a,b,c; printf("水仙花数:\n"); for(n=100;n<=999;n++) { a = n%10; b = n/10%10; c = n/100; if(a*a*a+b*b*b+c*c*c==n)
int main() { int i=0,j; for(i=1;i<=9;i++) { for(int k=1;k<i;k++) printf(" "); for(j=i;j<=9;j++) { printf("%3d",i*j); } printf("\n"); } return 0; }
#include <stdio.h>int main() { int i,j; for(i = 9;i > 0;--i) { for(j = 1; j <= i; ++j) printf("%d×%d = %2d ",j,i,i * j); printf("\n"); } return 0;}
C
m n

n! (n m)!m!
要求:(a)编写一个函数计算 n! (b)编写主函数,由键盘输入 n 和 m,调用(a)中的函数完成计算。 (c)输入 n 和 m 要给出提示,并检查 n 和 m 的合理性,不合理的输入应输出错误信 息,并不再进行计算。 (d)运行程序并计算
C
5 8

C
2 7

C 、C
main( ) { int a, b, c ,n ; for(n=100 ; n<1000 ;n++) { a=n/100 ; b=n/10-a*10 ; c=n%10 ; if(a*100+b*10+c==a*a*a+b*b*b+c*c*c) printf(“%5d” , n) ; }
}
李先生岁数的平方与他的夫人的岁数之和是 1053,而他的夫人的岁数的平方与
2. 打印出以下的杨辉三角形(要求打印出 10 行)。 1 11 121 1331 14641 1 5 10 10 5 1 四、实验小结(结合本次实验的经验谈谈想法,忌空洞无物,不少于 100 字)
实验 3
函数
一、实验目的 1 掌握定义函数的方法; 2 掌握函数实参与形参的对应关系以及“值传递”的方式; 3 掌握函数的嵌套调用和递归调用的方法; 4 掌握全局变量和局部变量,动态变量和静态变量的概念和使用方法; 二、实验内容 【例】:有 5 个人,第 5 个人说他比第 4 个人大 2 岁,第 4 个人说他对第 3 个人大 2 岁,第 3 个人说他对第 2 个人大 2 岁,第 2 个人说他比第 1 个人大 2 岁,第 1 个人说他 10 岁。求 第 5 个人多少岁。 分析: age(n)= age(n-1)+2 程序如下: #include <stdio.h> int aBaidu Nhomakorabeae(int n) { int c; if (n==1) c=10; else c=age(n-1)+2; return c; } void main() { printf("%d",age(5)); } (n>1) 10 (n=1)
结果:18 结合以上程序,思考一下 age( )函数递归调用的过程。 三、编程序并上机调试运行。 (1)写一个判别素数的函数,在主函数输人一个整数,输出是否素数的信息。 本程序应当准备以下测试数据:17、34、2、l、0。分别输人数据,运行程序并检查结果是 否正确。 (2)编写程序,计算下面公式并输出结果。
2. 李先生岁数的平方与他的夫人的岁数之和是 1053,而他的夫人的岁数的平方与他 的岁数之和是 873,请编写程序计算李先生及其夫人的岁数各是多少。 四、实验小结(结合本次实验的经验谈谈想法,忌空洞无物,不少于 100 字)
实验 2
数组
一、实验目的 1. 掌握一维数组、二维数组的定义、赋值和输入输出的方法; 2. 掌握字符数组的使用; 3. 掌握与数组有关的算法(例如排序算法)。 二、实验内容 【例】有一个 M×N 阶矩阵,求其中最大值和最小值,以及它们的行号和列号。 #include <stdio.h> # define M 5 # define N 5 void main( ) { int i, j, max, min, row1, row2, colum1, colum2, a[M][N]; for(i=0;i<M;i++) for(j=0;j<N;j++) scanf( “%d”,&a[i][j]); //输入矩阵 row1=row2=colum1=colum2=0; max=min=a[0][0]; for(i=0;i<M;i++) for(j=0;j<N;j++) { if(a[i][j]>max) { max=a[i][j]; //将当前最大值赋给 max row1=i; //记录最大值的行号 colum1=j; //记录最大值的列号 } if(a[i][j]<min) { min=a[i][j]; /* 将当前最小值赋给 min*/ row2=i; /*记录最小值的行号*/ colum2=j; /*记录最小值的列号*/ } } printf(“max=%d,row1=%d,colum1=%d\n”,max,row1,colum1); printf(“min=%d,row2=%d,colum2=%d\n”,min,row2,colum2); } 输入并执行该程序,观察输出结果。 三、编程序并上机调试运行。 1.已有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中。
相关文档
最新文档