内容发布更新时间 : 2024/12/25 1:49:40星期一 下面是文章的全部内容请认真阅读。
通 知
各位老师:
本学期非计算机专业《计算机程序设计基础(C语言)》课实验报告要求: 1. 统一用《武汉科技大学实验报告》本写。(和15级用过的一样,教三楼的一楼复印
室有售)
2. 本学期交三次实验报告。
① 循环结构程序设计。 ② 数组。 ③ 函数。
要求:学生在完成以下实验报告时,参考《C语言程序设计课程实验与题解》认真完成,每次报告中例题也要抄写,编程后的运行结果需截图打印附在报告上。
实验1 循环结构程序设计
一、实验目的
1. 熟悉用while语句,do-while语句和for语句实现循环的方法。
2. 掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。 3. 熟悉break语句和continue语句用法的不同之处。 二、实验内容
【例】以下程序,输出下三角形状的乘法九九表。
#include
for (i=1;i<=9;i++) /* 打印表头*/ printf(\printf(\ for (i=0;i<=50;i++) printf(\ printf(\
for (i=1;i<=9;i++) /* 循环体执行一次,打印一行*/ { for (j=1;j<=i;j++)
printf(\ /* 循环体执行一次,打印一个数据*/ printf(\ /* 每行尾换行*/ }
printf(\}
输入并执行该程序,观察输出结果,试着修改程序打印上三角形状的乘法九九表。
三、编程序并上机调试运行。
1.找出1000以内的所有完数,并输出其因子。
说明:一个数如恰好等于它的因子(自身除外)之和,这个数称为完数,如 6=1+2+3。 2.输入一个正整数,输出它的所有质数因子。
四、实验小结(结合本次实验的经验谈谈想法,忌空洞无物,不少于100字)
实验2 数组
一、实验目的
1. 掌握一维数组、二维数组的定义、赋值和输入输出的方法; 2. 掌握字符数组的使用;
3. 掌握与数组有关的算法(例如排序算法)。 二、实验内容
【例】有一个 M×N 阶矩阵,求其中最大值和最小值,以及它们的行号和列号。
#include
{ int i, j, max, min, row1, row2, colum1, colum2, a[M][N]; for(i=0;i for(j=0;j scanf( “%d”,&a[i][j]); //输入矩阵 row1=row2=colum1=colum2=0; max=min=a[0][0]; for(i=0;i { max=a[i][j]; //将当前最大值赋给max row1=i; //记录最大值的行号 colum1=j; //记录最大值的列号 } if(a[i][j] { 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.已有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中。 2. 输入两个字符串(小于40个字符),连接后输出(不得使用系统串连接函数)。 四、实验小结(结合本次实验的经验谈谈想法,忌空洞无物,不少于100字) 实验3 函数 一、实验目的 1掌握定义函数的方法; 2掌握函数实参与形参的对应关系以及“值传递”的方式; 3掌握函数的嵌套调用和递归调用的方法; 4掌握全局变量和局部变量,动态变量和静态变量的概念和使用方法; 二、实验内容 【例】:有5个人,第5个人说他比第4个人大2岁,第4个人说他对第3个人大2岁,第3个人说他对第2个人大2岁,第2个人说他比第1个人大2岁,第1个人说他10岁。求第5个人多少岁。 分析: 10 (n=1) age(n)= age(n-1)+2 (n>1) 程序如下: #include if (n==1) c=10; else c=age(n-1)+2; return c; } void main() { printf(\} 结果:18 结合以上程序,思考一下age( )函数递归调用的过程。 三、编程序并上机调试运行。 (1)编一个函数sort(),用“冒泡法”对一维字符数组中的字符按由小到大的顺序排列,要求主函数调用sort(),要有完整的程序。 (2)编写程序,计算下面公式并输出结果。 C要求:(a)编写一个函数计算n! mn?n! (n?m)!m!