C程序设计实验指导2011
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
f(x源自文库 =
具体要求如下: 用 if 语句实现分支,自变量和函数值均用双精度类型。 自变量用 scanf 函数输入,给一些输入提示。 分别输入三种区间中 x 的值,检查输出函数值是否正确。 2. 编写程序,用 scanf 函数输入某年某月某日,判断这一天是这一年的第几天。 提示:闰年的条件为,年份能被 4 整除但不能被 100 整除,或者年份能被 400 整除。 3. 下面的程序,按颜色代码和颜色名称的对应关系,根据输入的颜色号,输出对应的颜色名称: 0 -- Black , 1 -- Blue , 2 -- Green , 3 -- Red , 4 -- Yellow #include<stdio.h> int main() { int color; /* 用整型数表示颜色号*/ printf("Enter color number: "); scanf("%d",&color); switch (color) { case 0: printf(" Black\n"); break; case 1: printf(" Blue\n"); break; case 2: printf(" Green\n"); break; case 3: printf(" Red\n"); break; case 4: printf(" Yellow\n"); break; default: printf(" Error Input\n"); } return 0; } 6
5
实验 3 选择结构程序设计
【实验目的】 1. 2. 3. 4. 5. 理解 C 语言表示逻辑量的方法,学会正确使用逻辑运算符和逻辑表达式。 掌握利用 if 结构实现选择结构的方法。 掌握利用 switch 结构实现多分支选择结构。 掌握若干简单算法。 学习选择结构程序的调试。
【实验内容】 1. 编写程序计算下面分段函数的值: 2x+5 (x<0) 2 x -x+3 (0≤x<10) x3-7x (x≥10)
【实验内容】 1. 编写程序,设计一个判别素数的函数,在主函数中输入一个整数,调用这个判别函数,并输出是否为素数的 信息。准备 5 个以上测试数据。验证程序执行结果是否正确。 2. 编写程序, 设计函数 (分别用递归和非递归两种方法) 求两个整数的最大公约数的函数和最小公倍数的函数。
键【Enter】 。 查看运行结果,判断结果正确与否。 保存文件,查看你的工作目录下是否有该文件。
实验 2 简单 C 程序设计
【实验目的】 1. 2. 3. 4. 5. 6. 7. 8. 9. 掌握 C 语言基本数据类型的概念,理解数据类型与运算的关系。 熟悉简单变量的定义和赋值方法,掌握不同类型数据之间赋值的规律。 学习 C 语言运算符优先级和结合性的概念,掌握算术表达式的计算方法及表达式计算中的类型转换方法。 掌握数学表达式的程序表示方法。 熟练掌握格式输入与格式输出函数的使用,理解 scanf 函数的工作过程。 熟练掌握赋值语句的使用方法。 进一步体会 C 程序的结构组成,体会主函数 main 的作用。 使用顺序结构解决几个简单的计算问题。 进一步熟悉 C 程序的编辑、编译、连接和运行的过程。
运行程序,使用 VC 中跟踪执行功能(功能键 F11,F10,请注意两者的区别)查看程序执行过程。体会 break 语句的作用。去掉若干个 break 语句,观察运行结果有什么变化。并试着将程序结构改为嵌套 if 结构。运行 并查看结果。 4. scanf 函数输入一个百分制成绩,输出成绩等级 A、B、C、D、E,其中 90~100 分为 A,80~89 分为 B,70~79 分为 C,60~69 分为 D ,60 分以下分为 E。 要求百分制成绩用整数输入,在输入前要有提示,输入后要判断成绩的合理性,对不合理的成绩,应输出出 错信息。输出结果中应包括百分制和等级成绩,并要有文字说明。使用 if 语句和 switch 语句分别实现。分 数数据类型是整型。
6. 小明有五本新书,要借给 A,B,C 三位小朋友,若每人每次只能借一本,试编写一程序,计算有多少种不 同的借法?并输出这些借法。
实验 5 函数与模块化程序设计
【实验目的】 1. 2. 3. 4. 5. 掌握 C 语言中定义函数的方法 掌握函数嵌套调用和递归调用的方法。 掌握通过“值传递”调用函数的方法。 理解变量作用域和存在期的概念, 掌握全局变量和局部变量, 动态变量和静态变量的定义、 说明和使用方法。 学习多文件程序的组织方法
2 3 5 8 13 21 , , , , , ,... 1 2 3 5 8 13
4. 百钱百鸡问题。一只公鸡值五文钱;一只母鸡值三文钱;三只小鸡值一文钱。请问用一百文钱买一百只鸡, 公鸡、母鸡和小鸡各有几只? 5. *某刑侦大队对涉及 6 个嫌疑人的一桩疑案进分析,得出初步结论: 1) A、B 至少有一人作案; 2) A、E、F 这 3 人中至少有两人参与作案; 3) A、D 不可能是同案犯; 4) B、C 或同时作案,或与本案无关; 5) C、D 中有且仅有 1 人作案; 6) 如果 D 没有参与作案,则 E 也不可能参与作案。 试编程,找出作案人。 7
【实验内容】 1. 编程计算下面数学表达式的值,其中的 a,b,c,x,y 作为变量。 (1)
1200 24 4 5
(2)c×
a b
2
2
(3)lnln(103.5+2) (4)y+a%5*(int)(x+y)/2%4
2. 输入并运行下面程序,对照程序分析运行结果,并分析原因: (1) 将一个大于 32767 的长整型数赋给短整型变量,会得到什么结果? (2) 将一个负整数赋给一个无符号的变量,会得到什么结果? (3) 将一个字符型赋给一个整型变量,会得到什么结果? 程序如下: #include <stdio.h> int main() { short a; unsigned b; int c; a = 32767; printf("%d\n", a); b = -100; printf("%u\n", b); c = 'c'; printf("%d\n", c); 4
return 0; } 3. 编写程序,使用格式输入函数,从键盘按顺序输入下列数据,再将其用合适的格式分类输出到屏幕上。注意 scanf 函数的格式要求。
'a'、100、450.34、2147483648、4294967296、126.3455568
4. 编程计算半径 r=2.5 的圆面积、圆周长、球体积及球表面积。如果高 h=4.5,计算圆柱体的表面积和体积。显 示结果保留两位小数。 5. 输入下面程序并运行 #include <stdio.h> int main() { int a,b,c; a = getchar(); b = getchar(); c = getchar(); printf("a=%d b=%d c=%d\n", a, b, c); printf("a=%c b=%c c=%c\n", a, b, c); return 0; } 输入: 1【Enter】 ab【Enter】 试解释本题程序的输出结果。 如果希望用 scanf 函数替代 getchar 函数达到一样的效果,应该怎么做,试写出程序? 6. 以下 C 程序的功能是:从键盘依次输入 4 个整数,计算并输出这 4 个数的平均值。 #include <stdio.h> int main() { int a,b,c,d,av; printf(" Input a,b,c,d: "); scanf(" %d,%d,%d,%d", &a, &b, &c, &d); av = (a + b + c + d) / 4.0; printf("av=%f\n", av); return 0; } 观察运行结果,想一想为什么,将最后一句中的“%f”改为“%d” ,观察结果有什么变化?如果想计算 4 个 实数的平均数,如何修改程序?
二、学时分配
10 个实验共 28 学时,两个选作综合实验。 实验名称 实验 1 实验 2 实验 3 实验 4 实验 5 实验 6 实验 7 实验 8 实验 9 C 程序的设计环境和运行方法 简单 C 程序设计 选择结构程序设计 循环结构程序设计 函数与模块化程序设计 数组程序设计 指针程序设计 结构、联合与位运算 文件程序设计 学时分配 2 2 4 4 4 4 6 4 2 2
实验 10 编译预处理 综合实验一 学生成绩管理 综合实验二 21 点扑克牌游戏
2
三、基本要求和实验内容
实验 1 C 程序的设计环境和运行方法
【实验目的】 1. 熟悉所用计算机系统的基本操作方法。 2. 学习 VC 6.0 的使用方法,掌握利用 VC 6.0 编辑、编译、链接、运行及查看 C 程序运行结果的方法。 3. 熟悉 C 程序的基本结构。 【实验内容】 1. 熟悉使用的计算机系统的基本操作,创建自己的工作目录,掌握 VC 6.0 的启动方法,初步了解 VC 6.0 系统 的安装路径和结构,初步熟悉 VC 6.0 的系统菜单组成及功能,学习使用功能键和快捷键调用菜单项的方法。 2. 参照附录一在 VC 编译器输入并运行下面最简单的 C 程序。 在编辑区输入下面程序: #include <stdio.h> int main() { printf(" Hello World!\n") return 0; } 选择菜单“Buile-Compile 源文件名”(或者 Ctrl+F7)进行编译,或者直接选择 F7 进行编译和连接,观察屏幕 显示的编译信息。 如果出现出错信息, 信息输出窗口中将显示错误内容及定位错误时的语句行号, 修改错误, 再进行编译链接。 如果编译链接无错,按 Ctrl+F5(菜单 Build-Execute)运行程序,观察运行结果。 改变源程序中双引号内的字符串内容,重新编译和连接,并查看运行结果。 查看你的源程序所在的目录,说明目录下有什么文件?编译前后文件有什么不同? 3. 输入并运行下面一个需要在运行时输入数据的程序,程序要求从键盘输入三个浮点数,输出它们的和。 #include <stdio.h> mian() { float a,b,c,sum; printf(" input a,b,c: ") scanf("%f %f %f",&a,&b,&c); sum=a+b+c; printf("\n sum=%f\n",sum); } 输入该程序,然后进行编译和链接,如果出错,仔细检查并修改错误,再进行编译连接直到没有错误为止。 按 Ctrl+F5 运行程序,按照屏幕提示输入 a、b、c 三个变量的值,变量值之间用空格分隔,输入完毕按回车 3
实验 4 循环结构程序设计
【实验目的】 1. 2. 3. 4. 练习并掌握利用 while 语句、for 语句、do_while 语句实现循环结构的方法。 掌握循环结构和选择结构的嵌套设计方法。 掌握多重循环的设计方法,掌握控制语句 break、continue、goto 语句的使用方法。 调试和修改循环结构的程序。
【实验内容】 1. 编写程序,分别用 while 循环、for 循环和 do_while 循环计算 12+22+...+n2 的值。比较三个程序在循环控制上 的特点。 2. 编写程序,分别计算并打印菲波那契数列前 n 项的值。注意数列项的数据类型,应考虑足够大项的数据表示 要求。 3. 分析下列分数数列的特点,至少用两种不同的方法(两种循环不属于两种方法之列)计算其前 100 项之和,说 明你的程序是否有溢出现象?
C 语言程序设计实验指导
编 单 写:张锋 位: 计算机学院
2010 年 6 月
支持网站:
1
一、教学目的与教学要求:
本书是针对软件学院基础课程《程序设计语言 C》的上机训练而编写的。教学的主要任务是从应用和实践 的角度出发,通过实验学习 C 语言的特点和方法,理解 C 语言程序的执行过程;学会独立编写和调试 C 程序; 掌握高级语言的程序设计思想和程序设计技术;建立良好的编程风格,提高分析问题和解决问题的能力,为后 续课程的学习和应用开发打下扎实的理论和实践基础。