1、 1 1、基础题、基础题 1.11.1 题目题目 编写函数,求取两个整数m,n的最大公约数和最小公倍数。 1.21.2 题目分析题目分析 求两个整数的最大公约数和最小公倍数可以用辗转相除法,用两个函数max 和min分别求出最大公约数和最小公倍数。在主函数中输入两个整数m和n,并传递 给函数max,求出最大公约数返回主函数并赋给整型变量h,然后h和两个整数m,n 一起作为实参传递给函数min,从而求出最小公倍数,返回主函数赋给l。输出最大 公约数和最小公倍数。 主函数:N-S图如图一 输入两个整数m和n 调用max函数求出最大公约数h 调用min函数求出最小公倍数l 输出两个整数的最大公约数和
2、最小公倍数 图一主函数 max函数:N-S图 如图二 min函数:N-S图如图三 输入m和n Y nm N t=m;m=n;n=t 当(r=m%n)!=0 m=n,n=r 向主函数返回n的值 图二max函数 图三min函数 1.31.3 源程序源程序 #include int main() int max(int,int); int min(int,int,int); 输入m,n和h 向主函数返回m*n/h的值 C 语言程序设计课程设计 1 int m,n,h,l; scanf(“%d,%d“, h=max(m,n); printf(“最大公约数是%dn“,h); l=min(m,n,h);
3、printf(“最小公倍数是%dn“,l); return 0; int max(int m,int n) int t,r; if(nm); t=m;m=n;n=t; while(r=m%n)!=0) m=n; n=r; return(n); int min(int m,int n,int h) return(m*n/h); 1.41.4 程序运行结果程序运行结果如图四如图四: 图四基础题运行截图 C 语言程序设计课程设计 2 2 2、改错题、改错题 2.12.1 题目题目 #include #include void fun(int a, b) int t; t = b; b = a ; a
4、 = t; main( ) int a, b; clrscr( ); printf(“Enter a,b :“); scanf(“%d%d“, fun( printf(“a=%d b=%dn“, a, b); 2.22.2 题目分析题目分析 该源程序的目的是交换两个数的值,有主函数可以看出该函数是应用指针交 换两个数的值。所以调用函数中的a,b都要改成*a,*b, void fun(int a, b)改成void fun(int *a,int *b)。clrscr( )只能在Turbo-C中可用所以改用system(“cls“)。 viod fun函数:N-S图如图五 main函数:N-S图如
5、图六 图五 viod fun函数 图六main 函数 输入*a,*b t=*b;*b=*a;*a=t 清屏 输入a,b 将a,b赋值到 t= *b; *b = *a ; *a = t; main( ) int a, b; system(“cls“); printf(“Enter a,b :“); scanf(“%d%d“, fun( printf(“a=%d b=%dn“, a, b); 2.42.4 程序运行结果程序运行结果如图七如图七: 图七改错题运行结果截图 C 语言程序设计课程设计 4 3 3、综合题、综合题 3.13.1 题目题目 设计课题四:猜数字游戏设计课题四:猜数字游戏 一、问
6、题描述: 该游戏可以由程序随机产生或由用户输入四个0到9之间的数字,且不重复。 玩游戏者通过游戏提示输入八次来匹配上面所输入的数字。A表示位置正确且数字 正确,B表示数字正确而位置不正确。 二、功能要求: 1. 本游戏显示这样的菜单: (1) 随机产生数据 (2) 用户输入数据 (3) 退出游戏 2. 游戏成功与否都能返回主菜单 三、算法提示: 1. 数据结构:数组 2. 用简单的程序设计方法 四、测试数据: 测试数据: 3792 第一次输入: 1234 0A2B 第二次输入: 5678 0A1B 第三次输入: 0867 0A1B 第四次输入: 9786 1A1B 第五次输入: 1794 2A0B 第六次输入: 2793 2A2B 第七次输入: 3792 C 语言程序设计课程设计 5 4A0B 游戏成功! 五、其它: 对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能, 如:破记录