`

第九章 函数

 
阅读更多

 

1.设计函数 min(x,y),返回两个double数值中较小的数值,同时用一个简单的驱动程序测试该函数。

 

 

//exercise01
#include<stdio.h>

double min(double x,double y);

int main(void)
{
	double x= 0;
	double y = 0 ;
	double min_num = 0;
	printf("enter two double number:");
	while(scanf("%lf %lf",&x,&y) != 2)
	{
		printf("enter error,try again!\n");
		while(getchar() != '\n')
			continue;
	}
   min_num = min(x,y);
   printf("the minium number is %.2f\n",min_num);
   return 0;
}

double min(double x,double y)
{
	if( x < y)
		return x;
	return y;
}
 

 

2.设计函数chline(ch, i, j),实现指定字符在i列到j列的输出,并用一个简单的驱动程序测试该函数。

 

 

 

//exercise02
#include<stdio.h>

void chline(char ch , int i , int j);

int main(void)
{
    int i = 0;
	int j = 0 ;
	char ch = ' ';

	printf("enter the char you want to print:");
	ch = getchar();
	printf("enter i , j:");
    scanf("%d %d",&i,&j);
	chline(ch,i,j);
	return 0;
}


void chline(char ch , int i , int j )
{
	for(int col1 = 1 ; col1 < i ; col1++)
		putchar(' ');
	for(int col2 = i ; col2 <= j ; col2 ++)
		putchar(ch);
	putchar('\n');
	
}
 

 

3.编写一个函数。函数的3个参数是一个字符和两个整数。字符参数是需要输出的字符。第一个整数说明了在每行中该字符输出的个数,而第二个整数指的是需要输出的行数。编写一个调用该函数的程序。

 

 

*chap9_03.cpp -- exercise02*/
#include<stdio.h>

void chline(char ch , int i , int j);

int main(void)
{
    int rows = 0;
	int cols = 0 ;
	char ch = ' ';

	printf("enter the char you want to print:");
	ch = getchar();
	printf("enter rows and colums:");
    scanf("%d %d",&rows,&cols);
	chline(ch,rows,cols);
	return 0;
}


void chline(char ch , int i , int j )
{
	for(int row = 0 ; row < i ; row++)
	{
		for(int col = 0 ; col < j ; col ++)
			putchar(ch);
		putchar('\n');
	}
}
 

 

 

 

 4.两数值的谐均值可以这样计算:首先对两数值的倒数取平均值,最后再取倒数。编写一个带有两个double参数的函数,计算这两个参数的谐均值。

 

 

#include<stdio.h>

double meanValue(double x,double y);

int main()
{
	double x = 1;
	double y = 1;
	double result = 0;

	printf("enter two numbers(can not 0):");
	while(scanf("%lf %lf",&x,&y) == 2 && x != 0 && y != 0)
	{
           result = meanValue(x,y);
		   printf("mean value is %.2f\n",result);
		   printf("enter two numbers(can not 0,q to quit):");
	}
	return 0;
}

double meanValue(double x , double y)
{
	double temp = 1;
	temp = (1 / x + 1 / y) / 2;
	return  1/temp;
}
 

 

 

 

 

 

5.编写并测试函数larger_of(),其功能是将两个double类型变量的数值替换成它们中的较大值。例如,larger_of(x,y)会把x和y中的较大数值重新赋给变量x和y

 

 

//exercise05
#include<stdio.h>

void large_of(double *x, double * y);
int main()
{
	double x = 1;
	double y = 1;
	
	printf("enter two numbers(can not 0):");
	while(scanf("%lf %lf",&x,&y) == 2 )
	{
           large_of(&x,&y);
		   printf("x = %.2f , y = %.2f \n",x , y);
		   printf("enter two numbers(can not 0,q to quit):");
	}
	printf("Done!\n");
	return 0;
}

void large_of(double *x , double * y)
{
	if(*x > *y)
		*y = *x;
	else
		*x = *y;
}
 

 

 

 

 6.编写一个程序,使其从标准输入读取字符,直到遇到文件结尾。对于每个字符,程序需要检查并报告该字符是否是一个字母。如果是的话,程序还应报告该字母在字母表中的数值位置。例如,c和C的字母位置都是3。可以先实现这样一个函数:接受一个字符参数,如果该字符为字母则返回该字母的数值位置,否则返回-1。

 

 

//exercise06
#include<stdio.h>
#include<ctype.h>

int isChar(char ch);

int main(void)
{
    char ch;
	int position;
	printf("printf chars(ctrl + z is end):\n");
	
	while(( ch = getchar() ) != EOF)
	{
		position = isChar(ch);
		if(position > 0)
		   printf("%c  %d\n",ch,position);
	}
	printf("Done!\n");
	return 0;
}

int isChar(char ch)
{
	if(isalpha(ch))
	{
		ch = toupper(ch);
		return ch - 64;
	}
	return -1 ;
}
 

 

 

 

7.在第6章“C控制语句:循环”的程序清单6.20中,函数power()的功能是返回一个double类型数的某个正整数次幂。现在改进该函数,使其能正确地计算负幂。同时,用该函数实现0的任何次幂为0,并且任何数值的0次幂为l。使用循环的方法编写该函数并在一个程序中测试它。

 

 

//exercise07
#include<stdio.h>

double power(double x, int y);  //计算 x 的 y 次方

int main(void)
{
    double x=0;
	int y = 0 ;
	double result = 0;

	printf("enter base number and exponent number:");
	while(scanf("%lf %d",&x , &y) == 2)
	{
         result = power(x,y);
		 printf("result is %.2f\n",result);
		printf("enter base number and exponent number(q to quit):");
	}
	printf("Done! \n");
	return 0;
}

double power(double x, int y)  // x 的 y次方
{
	double result = 1;
	if( x == 0)
		return 1;
	else
	{
		if( y > 0)
			for(int i = 0 ; i < y ; i ++)
				result *=x;
		else if ( y < 0)
			for(int i = 0 ; i < -y ; i ++)
				result *= 1 / x;
		else
			return 1;
	}
	return result ;

}
 

 

 

 

  8.使用递归函数重做练习7。

 

 

#include<stdio.h>
//#include<math.h>

double power(double x , int y); // x 的 y次方

int main(void)
{
	double x=0;
	int y = 0 ;
	double result = 0;

	printf("enter base number and exponent number:");
	while(scanf("%lf %d",&x , &y) == 2)
	{
         result = power(x,y);
		 printf("result is %.2f\n",result);
		printf("enter base number and exponent number(q to quit):");
	}
	printf("Done! \n");
	return 0;
}

double power(double x , int y)  // x 的 y次方
{
	double result = 0;
	if( x == 0 )
		return 1 ;
	if( y > 0)
		return x * power(x,y-1);
	else if( y < 0)
		return  ( 1 / x ) * power(x , y + 1);
	else
		return 1;
   return result;
		
		
}
 

 

 

 9.为了使程序清单 9.八 中的函数to_binary()更一般化,可以在新的函数to_base_n()中使用第二个参数,且该参数的范围从2到10。然后,这个新函数输出第一个参数在第二个参数规定的进制数下的数值结果。例如,to_base_n (129,8)的输出是201,也就是129的八进制数值。最后在一个完整的程序中对该函数进行测试。

 

 

//exercise09
#include<stdio.h>
void convert(int input, int n) ; //把input转换成n进制的数

int main(void)
{
	int input = 0;
	int n = 0;

	printf("please enter number and scale: ");
	while(scanf("%d %d", &input, & n) == 2)
	{
       convert(input , n);
	}
	return 0;
}

*input 要转换的数, n 要转换的进制*/
void convert(int input, int n)  
{
     int r ;
	 r = input % n;
	 if(input >= n)
		 convert( input / n, n);
	 putchar('0' + r);
	 return;
}
 

 

10.编写并测试一个函数Fibonacci(),在该函数中使用循环代替递归完成斐波纳契数列的计算。

 

 

//exercise10
#include<stdio.h>

int Fibonacci(int n) ;
int main(void)
{
    int n = 0;
	
	printf("please input an integer:");
	while(scanf("%d",&n) == 1)
		printf("%d",Fibonacci(n));
	
	return 0 ;
}
int Fibonacci(int n)
{
	if( n <= 2)
		return 1;
	else
	    return Fibonacci(n -1) + Fibonacci( n - 2) ;
}
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0
0
分享到:
评论

相关推荐

    C语言从入门到精通视频教程下载第9章 函数.zip

    在本"C语言从入门到精通视频教程下载第9章 函数"中,我们将深入学习C语言的核心概念之一——函数。函数是C语言中模块化编程的基础,它允许我们将代码组织成独立的、可重用的部分,提高代码的可读性和维护性。本章节...

    Excel_2016办公从入门到精通教程第9章函数的应用——设计薪资管理系统.zip

    通过这个“Excel 2016办公从入门到精通教程第9章函数的应用——设计薪资管理系统”,你将全面了解和掌握Excel函数在薪资管理中的应用,提升你的职场竞争力。通过不断的练习和实践,你将能够创建出一套完善的薪资管理...

    C++基础课件第九章函数的高级应用.ppt

    第九章的C++基础课件主要讲解了函数的高级应用,包括数组作为函数参数、查找算法的函数实现、排序算法的函数实现、函数模板的定义和应用以及函数重载的应用。 1-2 数组作为函数参数 在C++中,数组可以作为函数参数...

    精品课件 Python从入门到精通 第9章 函数(共18页).ppt

    在第9章“函数”中,我们将深入探讨这一核心概念。 首先,我们来看函数的创建。在Python中,使用`def`关键字定义一个函数,接着是函数名,然后是一对圆括号,其中可以包含参数列表。例如: ```python def function...

    第6章 函数.pptx

    ### 第6章 函数 #### 一、什么是函数? 在编程中,函数是一段被封装起来的代码,它可以实现特定的功能并且可以被多次调用。使用函数的主要目的是提高代码的复用性和模块性,使程序结构更加清晰。例如,在一个程序...

    E.xcel_2010中文版办公应用案例教程第9章 函数的应用——设计薪资管理系统.zip

    在本《Excel 2010中文版办公应用案例教程》第9章“函数的应用——设计薪资管理系统”中,我们将深入探讨如何利用Excel强大的计算功能和函数来构建一个高效的薪资管理系统。这一章节的教学内容旨在帮助用户提升在日常...

    即用即查PHP函数参考手册.part2.rar

    第九章 Directories函数 第十章 FilePro函数 第十一章 FileSystem函数 第十二章 Stream函数 第五篇 网络通信篇 第十三章 Socket函数 第十四章 SNMP函数 第十五章 Session函数 第十六章 URL函数 第十七章 Mail函数 ...

    Delphi函数参考大全-(上)

    第9章 日期函数 第10章 类型转换函数 第11章 异常处理函数 第12章 文件处理函数 第13章 图形计算与处理函数 第14章 格式化函数 第15章 对话框函数 第16章 打印机函数 第17章 COM实用函数 第18章 窗口控制...

    Delphi函数参考大全---(下)

    第9章 日期函数 第10章 类型转换函数 第11章 异常处理函数 第12章 文件处理函数 第13章 图形计算与处理函数 第14章 格式化函数 第15章 对话框函数 第16章 打印机函数 第17章 COM实用函数 第18章 窗口控制...

    \即用即查PHP函数参考手册.part4.rar

    第九章 Directories函数 第十章 FilePro函数 第十一章 FileSystem函数 第十二章 Stream函数 第五篇 网络通信篇 第十三章 Socket函数 第十四章 SNMP函数 第十五章 Session函数 第十六章 URL函数 第十七章 Mail函数 ...

    Linux C 函数库参考手册 中文版

    第9章 数据结构函数 第10章 随机数函数 第11章 初级 I/O 函数 第12章 标准I/O函数 第13章 进程及流程控制 第14章 格式化输入输出函数 第15章 文件及目录函数 第16章 信号函数 第17章 错误处理函数 第18章 管道相关...

    c语言\第8章 函数.ppt

    第8章主要讨论了以下几个关键知识点: 1. **函数的定义与调用**:函数定义包括指定返回类型、函数名以及参数列表。例如,`int add(int a, int b) { return a + b; }` 定义了一个名为`add`的函数,它接收两个整数并...

    第3章 函数

    【第3章 函数】 在C++编程语言中,函数是一种组织代码的机制,它封装了一段可重复使用的代码块,执行特定的任务。函数能够提高代码的可读性,降低复杂性,使得程序设计更加模块化。本章将深入探讨C++中的函数,包括...

    Csharp入门经典(第四版).part5.rar

    第9章 定义类 第10章 定义类成员 第11章 集合、比较和转换 第12章 泛型 第13章 其他OOP技术 第14章 C#3.0语言的改进 第2部分 Windows编程 第15章 Windows编程基础 第16章 Windows Forms的高级功能 第17章 使用通用...

    oracle第4章 单行函数

    ### Oracle 第四章 单行函数 #### 一、引言 在Oracle数据库的学习过程中,了解并掌握单行函数是非常重要的一步。单行函数是指针对每一行的数据进行处理,并返回一个处理结果的函数。这类函数在查询语句中非常常见,...

    c语言第8章函数习题.pdf

    "C语言第8章函数习题.pdf" 本资源主要讲解C语言中的函数习题,涵盖了函数的基本概念、函数类型、函数调用、函数返回值、函数参数传递、函数嵌套调用等多个方面。通过本资源的学习,读者可以深入理解C语言函数的使用...

    Windows API函数参考手册 含C++源码 第四章 绘图函数[rar]

    Windows API函数参考手册 含C++源码 第二章 窗口处理 第三章 设备上下文 第四章 绘图函数 第五章 位图和图表 ...第九章 处理文本和字体 第十章 硬件和系统 第十一章 Windows 消息 第十二章 进程和线程

    C语言程序设计第7章函数ppt课件.ppt

    "C语言程序设计第7章函数ppt课件.ppt" 本资源是关于C语言程序设计第7章函数ppt课件的概括,包含了函数的定义、函数的调用、函数的原型、函数的参数传递、函数的返回值、递归函数、函数的封装、函数的重用、函数的...

    即用即查PHP函数参考手册.part1.rar

    第九章 Directories函数 第十章 FilePro函数 第十一章 FileSystem函数 第十二章 Stream函数 第五篇 网络通信篇 第十三章 Socket函数 第十四章 SNMP函数 第十五章 Session函数 第十六章 URL函数 第十七章 Mail函数 ...

    即用即查PHP函数参考手册.part3.rar

    第九章 Directories函数 第十章 FilePro函数 第十一章 FileSystem函数 第十二章 Stream函数 第五篇 网络通信篇 第十三章 Socket函数 第十四章 SNMP函数 第十五章 Session函数 第十六章 URL函数 第十七章 Mail函数 ...

Global site tag (gtag.js) - Google Analytics