3.已知二阶Fibonacci数列:
0 若n=0 Fib(n)= 1 若n=1 Fib(n-1)+Fib(n-2) 其他情况 定义递归函数求Fib(n)。
4.写一个函数完成下列任务:输入一个表示正整数的字符串,将字符串转换成对应的数字。例如,输入3个字符组成的字符串“123”,将它转换成整型数123。
5.设计一个含有多个菜单项的菜单演示程序。程序运行后,给出4个菜单项的内容和输入提示:
1.求最大公约数 2.求最小公倍数 3.判断素数 4.退出程序 选择1-4:
使用数字1~4来选择菜单项,其他输入则不起作用。 实验八 预处理命令 一、实验目的
1.掌握宏定义的方法;
2.掌握文件包含处理方法; 3.掌握条件编译的方法。 二、实验内容
编程序并上机调试运行。
1.定义一个带参数的宏,使两个参数的值互换。在主函数中输入两个数作为使用宏的实参,输出已交换后的两个值。
说明:在程序主函数使用宏时只能用两个实参,如SWAP(a,b),不能用三个参数。 2.设计输出实数的格式,包括:(1)一行输出一个实数;(2)一行内输出两个实数;(3)一行内输出三个实数。实数用“%6.2f”格式输出。
用一个文件“format.h”包含以上用#define命令定义的格式。在自己的文件(自己命名)中用#include命令将“format.h”文件包含进来。在程序中用scanf函数读入三个实数给f1,f2,f3。然后用上面定义的三种格式分别输出①f1;②f1,f2;③f1,f2,f3。
3.用条件编译方法实现以下功能:
输入一行电报文字,可以任选两种输出,一为原文输出;一为将字母变成其下字母(如‘a’变成‘b’,…,‘z’变成‘a’。其它字符不变)。用#define命令来控制是否要译成密码。例如:
#define CHANGE 1 则输出密码。若
#define CHANGE 0
则不译成密码,按原码输出。 用条件编译方法来处理。 实验九 指针 一、实验目的
1.掌握指针的概念,会定义和使用指针变量; 2.学会使用数组的指针和指向数组的指针变量;
3.学会使用字符串的指针和指向字符串的指针变量;
6
4.学会使用指向函数的指针变量;
5.了解指向指针的指针的概念及其使用方法。 二、实验内容
编程序并上机调试运行程序(都要求用指针处理)。
1.定义函数void fun(int x[ ],int *max,int *min),找出数组x中的最大值和最小值,最大值和最小值通过形参指针max和min传回。
2.编写一个函数comp(s1,s2)实现两个字符串的比较。
如果s1=s2,则函数返回值为0;如果s1≠s2,返回它们二者第一个不同字符的ASCII码差值(如“BOY”与“BAD”,第二个字母不同,“O”与“A”之差为79-65=14);如果s1>s2,则输出正值;如s1 两个字符串s1,s2由main函数输入,strcmp函数的返回值也在main函数输出。 3.从键盘输入一个字符串与一个指定字符,调用函数,将字符串中出现的指定字符全部删除。 4.编程将从键盘输入的每个单词的第一个字母转换为大写字母,输入时各单词必须用空格隔开,用 “.”结束输入。 5.在主函数中输入5个字符串,用另一个函数对它们排序(要求用指针数组来完成),然后在主函数输出排好序的字符串。 实验十 结构体和共用体 一、实验目的 1.掌握结构体类型变量的定义和使用; 2.掌握结构体类型数组的概念和应用; 3.掌握链表的概念,初步学会对链表进行操作; 4.掌握共用体的概念与使用。 二、实验内容 编程序,然后上机调试运行。 1.有3个学生,每个学生的数据包括学号、三门课的成绩,要求用input函数实现从键盘输入学生数据,用average函数求每个人的平均分,用output函数打印学生数据及平均成绩。 2.建立一个带有头结点的单链表,每个结点包括:学号、年龄,并输出链表中所有结点的数据。在链表中查找年龄最大的结点,并将链表中等于此年龄的结点删除(年龄最大的结点可能不止一个)。 3.将一个链表按逆序排列,即将链头当链尾,链尾当链头。 4.上机输入如下程序: main( ) {union bt {int k; char c[2];}a; a.k= -7; printf(“%o,%o\\n”,a.c[0],a.c[1]); } 分析其运行结果。 实验十一 位运算 一、实验目的 1.掌握按位运算的概念和方法,学会使用位运算符; 2.学会通过位运算实现对某些位的操作。 7 二、实验内容 编写程序,上机调试并运行。 1.编一个函数getbits,从一个16位的单元中取出某几位(即该几位保留原值,其余位为0)。函数调用形式为:getbits(value,n1,n2) value为该16位数的值,n1为欲取出的起始位,n2为欲取出的的结束位。如:getbits(0101675,5,8)表示对八进制数101675,取出其从左面起的第5位到第8位。 要求把这几位数用八进制数打印出来。注意,应当将这几位数右移到最右端,然后用八进制形式输出。 2.利用位运算操作,实现交换两个变量的值。 3.将一个十六进制整数的各位循环左移4位,然后用十六进制形式输出。 实验十二 文件 一、实验目的 1.掌握文件以及缓冲文件系统、文件指针的概念; 2.学会使用文件打开、关闭、读、写等文件操作函数。 3.学会用缓冲文件系统对文件进行简单的操作。 二、实验内容 编写程序并上机调试运行。 1.编程序求100以内的素数,分别将它输出到显示器屏幕和x.txt文件中,要求每行5个数。 2.从键盘输入几本书的数据,每本书的数据包括条形码、书名和价格,将每项数据分别写入文本文件s.txt和二进制文件s.dat。 3.从上题的文本文件s.txt或二进制文件s.dat中读入每本书的数据,计算所有书的平均价格。要求用input函数读入,average函数求平均价格。 实验十三 学生成绩管理(综合设计性实验) 一、实验目的 综合《C语言程序设计》课程中的基本知识,对所学内容和算法进行复习,进一步提高程序设计的能力。 二、实验内容 编写一个C程序,对一个班(不多于35人)的学生成绩进行管理,其中:每个学生的数据包括学号、姓名、三门课的成绩(英语、数学、计算机)、平均成绩和总成绩。主菜单如下:1、添加数据 2、数据输出 3、数据排序(按平均分)4、数据查找(按学号)5、数据删除 6、数据统计(按平均分)7、退出 其中各个选项的功能如下: 1、添加数据:按一定格式输入若干名学生的数据追加到stu.txt文件中。 2、数据输出:从stu.txt文件中读取数据,用比较美观的格式输出所有学生的数据。如果没有记录,输出提示信息。 如: 学号 姓名 英语 数学 计算机 平均成绩 ========================================= …… …… …… …… …… …… ========================================= 3、数据排序:对输入的数据按平均分进行由低→高的排序。 4、数据查找:查找指定学号的学生数据,并按照一定的格式输出查找结果。 5、数据删除:删除指定学号的学生数据。(如果没有找到该学生,输出提示信息。) 6、数据统计:按平均分统计各个分数段的学生人数,用比较美观的格式输出统计结果。 8 如: 按平均分统计各分数段学生人数 ========================================= 分数段 0—59 60—69 70—79 80—89 90—100 人 数 ..... ...... ...... ...... ...... ========================================= 7、退出:退出整个程序的运行。(注:1—6功能运行后,程序仍返回主界面,可接着选择其他功能继续运行,只有选择选项7才真正退出程序的运行。) 十、其他 学科说明:本课程是一门以培养学生编程能力为主要目的学科,加强实践技能是本课程的特色。 9 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库《C语言程序设计》实验教学大纲.(2)在线全文阅读。
相关推荐: