C语言实验报告2.doc
文本预览下载声明
一、实验目的
1. 掌握函数的定义、调用和参数的传递方式。
2. 掌握数组的定义、初始化,以及数组元素的下标法引用和指针法引用。
二、实验内容
1. 输出 Fibonacci 序列
程序填空,不要改变与输入输出有关的语句。
输入 2 个正整数m 和n(1=m,n=10000),输出m 和n 之间所有的fibonacci 数。
Fibonacci 序列(第1 项起):1 1 2 3 5 8 13 21 ......
要求定义并调用函数fib(n),它的功能是返回第n 项Fibonacci 数。例如,fib(7)的返回值是13。
输出语句:printf(%d , f);
文件命名---学号C1.C
主要代码:
if(f=mf=n) /*确定f是在m、n之间*/
printf(“%d”,f);
long fib(int n) /*定义求第n项Fibonacci数的函数*/
int i,x1,x2,x; /*x1、x2一次代表前两项,x表示其后一项*/
x1=1; /*前两项都是1*/
x2=1;
for(i=1;i=n-2;i++){ /*循环输出后n-2项*/
x=x1+x2; /*计算新项*/
x1=x2; /*更新x1和x2,为下一次计算新项x做准备*/
x2=x;}
截图:
2.十进制转换二进制
程序填空,不要改变与输入输出有关的语句。
输入 1 个正整数n,将其转换为二进制后输出。
要求定义并调用函数 dectobin(n),它的功能是输出 n 的二进制。例如,调用dectobin(10),输出1010。
输出语句:printf(%d);
文件命名---学号C2.C
主要代码:
#includestdio.h
int main(void)
{
int i,n;
void dectobin(int n);
scanf(%d,n);
dectobin(n); /*定义函数,将n转换为二进制之后的数值*/
printf(\n);
}
void dectobin(int n)
{
if(n1)
dectobin(n/2);
printf(%d,n%2); /*输出二进制数值*/
}
截图:
3.求平均值
程序填空,不要改变与输入输出有关的语句。
输入一个正整数 n (1n=10),再输入n 个整数,输出平均值(保留2 位小数)。
文件命名---学号C3.C
主要代码:
#include stdio.h
int main()
{
int i, n,;
float aver,sum=0;
int a[10];
scanf(%d, n);
for(i=0; in; i++)
scanf(%d, a[i]);
for(i=0;in;i++)
sum=sum+a[i]; /*求和*/
aver=sum/n; /*求n个整数的平均值*/
printf(aver=%.2f\n, aver); /*输出平均值*/
}
截图:
4.求最大值及其下标
程序填空,不要改变与输入输出有关的语句。
输入一个正整数 n (1n=10),再输入n 个整数,输出最大值极其下标(设最大值惟一,下标从0 开始)。
文件命名---学号C4.C
主要代码:
#include stdio.h
int main(void)
{
int i, index, n;
int a[10];
scanf(%d, n);
for(i=0; in; i++)
scanf(%d, a[i]);
/*找最大值a[index]*/
index=0; /*假设a[0]是最大值,即下标为0的元素最大*/
for(i=1; in; i++)
if(a[i]a[index]) /*如果a[i]比假设的最大值还大*/
index=i;/*再假设a[i]是新的最大值,即下标为i的元素最大*/
printf(max=%d,index=%d\n, a[index],index);/*输出最大值和相应的下标*/
}
截图:
收获、体会及问题
收获、体会:总的来说,这次实验的完成是不大轻松的,尤其是在对数组的相关学习方面,在实验的过程中暴露了诸多问题,说实话,数组这一章节的内容可以算是一个瓶颈,但经过实验操作以及对书本相应例题的研究,加深了对函数的定义、调用和参数的传递方式的理解,同时也进一步掌握了数组的定义、初始化以及数组元素的下标法引用和指
显示全部