C语言基础——函数

【函数】
什么是函数:
抽象化功能语句模块

【模块化编程】
代码复用率

1. 函数声明
返回值数据类型 《函数名》(形式参数, ...);

2. 返回值   值传递  
(1) 无返回值  void  
(2) 有返回值:int  char  
        1. 返回值 传递信息;
        2. main  函数执行效果, 0  成功   , 负数   失败
        3. 判断真假    1, 0   或者  if  或者  ?;  ---》 bool  

3. 形式参数    局部变量   值传递  
 注意:逗号分隔参数,个数依据逗号表达式决定
【基本数据类型
(1)复制传递方式   值赋值  a = A;
(2)地址传递方式   值赋值, 值--》地址
(3)全局变量    理想 !
【数组构造类型
 (1)复制传递方式   值赋值  a[] = A[10]; 地址复制;
 (2)地址传递方式   值传递  int A[10], int * str = A;
 (3)全局变量
【多维数组  拓展
 (1)复制传递方式   值赋值  int *a[]
 (2)地址传递方式   值传递  int **a
 (3)全局变量
 
4. 函数实现
返回值数据类型 《函数名》(形式参数, ...){
    语句体;
    return 值;
}

5. 函数调用:
形参:局部变量, 复制实参值参与运算;
实参:传递将要参与运算的值给形参;

函数命名:
驼峰命名法  FoxMail
fox_mail


【实践】
1. 写一个函数,实现两个数据的交换

2.编写一个函数,统计字符串中小写字母的个数,并把字符串中的小写字母转化成大写字母

3. 编写函数实现, 计算x^n (x的n次);  数据类型  复制传递

4. 编写函数实现, 一维数组累加和;    数组   

5. 编写函数实现, 删除字符串中的空格;  

6. 函数实现: 一维数组排序(升序);

7. 编写函数,计算一个二维整形数组的所有元素的和  拓展
void fun(int a[3][4]);

void fun(int *a);

void fun( int (*a)[]);

void fun( int *a[]);!!!

void fun( int **a);

指针的指针:
void fun( int **a ){
    *a == &a; 
}

int a = 10;
int *data = &a ;

fun(&data)


面试题:
1. 自己实现字符串函数功能
(strlen、strcmp)**  
(strcat、strcpy) ***  返回值 int char float  ? 指针类型    

2. 编写函数,计算一个二维整形数组的所有元素的和  **** (多维数组传参)

3. consider a function which ,for a given whole number n,returns the number of ones required when writing out all numbers between 0 and n.
For example,f(1) = 1,f(13) = 6,Notice that f(1)=1.What is the next largest that f(n)=n?
n<4 000 000 000
e.g. f(13)=6
because the number of “1” in 1,2,3,4,5,6,7,8,9,10,11,12,13 is 6(1,11,12,13)
美国著名搜索引擎公司G 面试题 *****
答案:
题目翻译:现在要我们写一个函数,计算4 000 000 000以内的最大的那个f(n)=n的值,函数f的功能是统计所有0到n之间所有含有数字1的数字个数和。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值