复习C部分:1.写一个函数,实现整形有序数组二分查找 2.写一个函数,每调用一次这个函数,就会将num的值增加1 3.函数的嵌套调用和链式访问 4. 函数递归----自己调用自己

简介: 复习C部分:1.写一个函数,实现整形有序数组二分查找 2.写一个函数,每调用一次这个函数,就会将num的值增加1 3.函数的嵌套调用和链式访问 4. 函数递归----自己调用自己

906ebdad60674d3cb95315aa3fd2a144.png

//写一个函数,实现整形有序数组二分查找

//用一个变量接收函数的返回值,并比较,如果找到了就返回下标,找不到就返回-1(因为下标没-1)

//函数部分实现:1.如果(注:key是目标函数)a[mid]<k

//(注:此处mid是下标,a[mid]是对应的数,数与数比较),left=mid++;


//#include<stdio.h>
//int main()
//{
//    int i = 0;
//    int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//    int sz = sizeof(arr) / sizeof(arr[0]);
//    int key = 7;
//    int ret = search_binary(arr, key, sz);
//    if (-1 == ret)
//    {
//        printf("找不到\n");
//    }
//    else
//    {
//        printf("找到了,下标是%d\n", ret);
//    }
//    return 0;
//}
//int search_binary(int a[], int k, int s)
//{
//    int left = 0;
//    int right = s - 1;
//    while (left <= right)
//    {
//        int mid = (left + right) / 2;
//        if (a[mid] < k)
//        {
//            left = mid++;
//        }
//        else if (a[mid] > k)
//        {
//            right = mid--;
//        }
//        else
//        {
//            return mid;
//        }
//    }
//    return -1;
//}

//写一个函数,每调用一次这个函数,就会将num的值增加1

//思路:在函数内部改变函数外部的值,传址调用

//#include<stdio.h>
//int main()
//{
//    int num = 0;
//    Add(&num);
//    printf("%d\n", num);//1
//
//    Add(&num);
//    printf("%d\n", num);//2
//
//    Add(&num);
//    printf("%d\n", num);//3
//}
//void Add(int* p)//传址
//{
//    (*p)++;//解引用操作得到值
//}

   47.函数的嵌套调用和链式访问

//函数不能嵌套定义,但是可以嵌套调用,即一个函数可以调用另一个函数

//链式访问练习1.


//#include<stdio.h>
//#include<string.h>
//int main()
//{
//    int a = strlen("a,b,c");//,也是一个字节
//    printf("%d\n", a);//5
//
// 下面为链式访问的简单写法
//    printf("%d\n", strlen("a,b,c"));//5
//}
//链式访问2.
//#include<string.h>
//#include<stdio.h>
//int main()
//{
//    char arr1[20] = { 0 };//数字用{
//    char arr2[10] = "hey";//英文用"
//    strcpy(arr1, arr2);
//    printf("%s\n", arr1);
//        // 下面为链式访问的简单写法
//    printf("%s\n", strcpy(arr1, arr2));
//    return 0;
//}
//链式访问3.
//#include<stdio.h>
//int main()
//{
//    int a = 43;
//    printf("%d", printf("%d", printf("%d", a)));//43
//    //链式访问,第三个printf打印出来为43,之后第二个printf开始打印第三个的返回值
//    //因为函数返回值是打印在屏幕上的字符的个数,所以返回值是2,即第二个printf打印2,返回1
//    //第一个函数打印第二个函数的返回值1,所以结果为4321
//    return 0;
//}

 函数递归----自己调用自己

//错误示范:


#include<stdio.h>
int main()
{
    printf("hehe\n");
    main();
    return 0;//会进入死循环,然后最终崩溃
}


相关文章
|
2月前
|
Java 程序员 C++
【Python】链式、嵌套调用、递归、函数栈帧、参数默认值和关键字参数
【Python】链式、嵌套调用、递归、函数栈帧、参数默认值和关键字参数
36 0
【Python】链式、嵌套调用、递归、函数栈帧、参数默认值和关键字参数
|
7月前
|
算法 编译器 C语言
C learning_10 (函数的嵌套调用和链式访问、函数的声明和定义、函数递归)
C learning_10 (函数的嵌套调用和链式访问、函数的声明和定义、函数递归)
|
7月前
|
机器学习/深度学习 算法 编译器
【C语言】函数 ---- 函数的嵌套调用和链式访问、函数的声明和定义、变量的声明和定义、函数递归与迭代、递归时的栈溢出问题
【C语言】函数 ---- 函数的嵌套调用和链式访问、函数的声明和定义、变量的声明和定义、函数递归与迭代、递归时的栈溢出问题
149 0
|
7月前
|
算法 Python
函数的递归调用与嵌套调用详解
函数的递归调用与嵌套调用详解
426 0
判断变量是否为数组的几种方法
判断变量是否为数组的几种方法
165 0
|
Serverless
递归访问目录,嵌套函数,递归函数map函数,filter函数,reduce函数
一、递归访问目录: 且目录中嵌套目录,有层次的列出给定目录中所有的文件和文件夹
88 0
|
C++ 容器
C++ vector 赋值、删除、排序类之外的其他函数
C++ vector 赋值、删除、排序类之外的其他函数
129 0
|
存储 C语言
数组的声明,定义,访问,循环遍历
int 表示该数组用来装 int 类型的元素,其他的形式就写其他的,例如:double [10]; a 是数组名字,是合法的c语言标识符即可; [ ] 是指示的作用,表示变量 a 是数组变量; 若没有[ ], 就是普通的整型变量。 10 表示该数组最多装10个int 类型数据,个数自定。
105 0