实验九 函数和程序结构
实验目的
1.熟练掌握递归函数的定义和调用 2.掌握全局变量的定义和使用 3.掌握static变量定义和使用 实验内容
1.调试,用递归函数计算xn的值 #include
printf(“Input x,n:”); scanf(“%lf%d”,&x,&n); root=fun(n,x);
printf(“Root=%.2f\\n”,root); } /*调试时设置断点*/ double fun(int n,double x) { if(n==1) return 1; else
return x*fun(n-1,x); }
运行结果(改正后程序的运行结果) Input x,n:2 3 Root=8.00
2.编程,输出Fibonacci数列1,1,2,3,5,8,…的前20个数,每行输出5个。要求用递归函数计算Fibonacci数列。
输入输出示例: 1 1 2 3 5 8 13 21 。。。。。。
提示:Fibonacci数列可以表示为:fib(1)=1,fib(2)=1,fib(n)=fib(n-1)+fib(n-2) (n>=3)
思考:如何用递归实现字符串的逆序存放,例如,将字符串”-16385”转换为”-58361”
3.编程,设u、v取值为区间[-20,20]的整数,找出使f(u,v)取最大值的u和v。f(u,v)=(3.8*u*u+6.2*v-2*u)/-1.2*6+3*v)。要求定义和调用函数计算f(u,v)的值。
输入输出示例: Max_u=-20.00 Min_v=3.00 Max=877.00
4.编程,输入3个整数x、y、z,计算并输出s=x!+y!+z!。要求定义2个函数,一个是求阶乘的递归函数,另一个函数求累加和(使用static变量)。
输入输出示例: Input x,y,z: 5 6 7 Sum=5580
实验报告要求 将以上各题的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。
26
实验十 指针
实验目的
1.熟练掌握指针的定义和使用
2.掌握使用二维字符数组和指针数组处理字符串
3.熟练掌握指针作为函数参数,包括数组名作为函数的参数 4.熟练使用字符串处理函数strcmp、strcpy、strlen、strcat。
实验内容
1.调试,将5个字符串从小到大排序后输出。 源程序(有错误的程序) #include
#include
void fsort(char cname[][6],int n) { int k,j;
char tmp[6];
for(k=1;k if(cname[j]>cname[j+1]) { t=cname[j]; cname[j]=cname[j+1]; cname[j+1]=t; } } void main() { int i; char cname[5][6]={“wang”,”li”,”zhang”,”jin”,”xian”}; fsort(cname,5); for(i=0;i<5;i++) printf(“%s \\n”,cname[i]); } /*调试时设置断点*/ 运行结果(改正后程序的运行结果) Jin Li Wang Xian Zhang 2.编程,输入n(3 输入输出示例: 输入数组元素的个数:5 27 输入5个数:12 8 3 6 19 最小值是a[2]=3 思考:如何在二维数组中找出最大值、最小值及其对应的行列下标,要求定义函数实现。 3.编程,输入一个3╳4的数组,先找出每一行中的最大元素,再分别除该行中的所有元素,最后输出数组。要求:定义和调用函数处理数组中的元素,在函数中使用指针、数组各一次。 输入输出示例: 输入3╳4数组 1 2 3 4 5 6 7 8 9 10 11 12 0.25 0.50 0.75 1.00 0.63 0.75 0.88 1.00 0.75 0.83 0.92 1.00 提示:定义函数形参时,如果把二维数组定义为指针,调用时要用一级指针的地址。 思考:输入一个3╳4的数组,先找出每一行中绝对值最大的元素,再分别除该行中的所有元素,最后输出数组,试编制程序。 4.编程,输入6个字符串,先按从小到大的顺序输出这些字符串,再输出其中最大和最小的字符串,要求定义和调用函数。 输入输出示例: 输入6行字符串: Hangzhou Shanghai Beijing Nanjing Guangzhou Tianjing 字符串从小到大排列后: Beijing Guangzhou Hangzhou Nanjing Shanghai Tianjing 最短的字符串是Beijing 最长的字符串是Tianjing 提示:定义函数形参时,如果把二维数组定义为指针,调用时要用一级指针的地址 5.编程,把命令行中的字符串(由数字字符组成)转换为整数并累加输出(如:字符地串”test 12 348”转换为整数并累加,值为360) 输入输出示例: test 12 34 sum=46 28 提示: 1)在Dos命令方式下和在VC++环境下各运行一次。其中VC++下的运行方式是:执行“工程”->“设置”->“Debug”->程序变量中设置参数命令 2)命令行参数都是字符串,不是数字。 思考:如果命令行参数中包括文件名,要求从文件中读出数据,如何编程 6.编程,从键盘上输入一个3╳3的矩阵,求矩阵的主对角线和副对角线之和,要求定义和调用函数。 输入输出示例: 输入3╳3数组 8 6 12 5 9 10 7 11 5 Sum=41.00 实验报告要求 将以上各题的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。 29 实验十一 函数和程序结构 实验目的 1.理解文件、缓冲文件和文件指针的概念 2.掌握文件的基本操作 3.使用与文件操作有关的函数,如文件的打开、关闭以及读、写等 实验内容 1.调试,从键盘输入一行字符,写到文件a.txt中。 源程序(有错误的程序) #include if((fp=fopen(“a.txt”,”w”))!=NULL) { printf(“can?t open file!”); exit(0); } while((ch=getchar())!=?\\n?) /*调试时设置断点*/ fputc(ch,fp); fclose(fp); } /*调试时设置断点*/ 运行结果(改正后程序的运行结果) 高等院校 2.编程,从键盘输入5个同学的学号、姓名和数学成绩,写到文本文件f2.txt中,再从文件读出,显示在屏幕上。 输入输出示例(输出略): 3050811 黄军 78 3050812 董枫 82 3050813 高星 75 3050814 沈远 88 3050815 张涛 80 提示:程序运行后,打开文本文件f2.txt,检查写入文件中的数据是否正确。 3.编程,从键盘输入以下10个学生的学号、姓名,以及数学、语文和英语成绩,写到文本文件f3.txt中,再从文件中取出数据,计算每个学生的总成绩和平均分,并将结果显示在屏幕上。 输入输出示例略 提示:程序运行后,打开文本文件f3.txt,检查写入文件中的数据是否正确。 4.编程,将下列C源程序文件hello.c中的所有注释去掉后,存入另外一个文件new_hello.c中。 30 源程序文件hello.c /*显示”Hello World!”*/ /*注释文本*/ #include printf(“Hello World!\\n”); /*调用printf函数输出文字*/ } 输入输出示例(没有键盘输入和屏幕输出): New_hello.c中的内容应该是:(去除hello.c中的注释后) #include printf(“Hello World!\\n”); } 提示: 1)在运行程序前,应该首先建立C源程序文件hello.c 2)运行程序时,不需要从键盘输入数据,也没有屏幕输出 3)程序运行后,打开文本文件new_hello.c,检查文件的内容是否与上面给出的信息一致 实验报告要求- 将以上各题的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。 31 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库VC6.0上机指导(C语言实验讲义)(6)在线全文阅读。
相关推荐: