C语言经典题目(九)

简介: C语言经典题目(九)

41.实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定

输入9,输出9*9口诀表
输入12,输出12*12的乘法口诀表。

void CFB(int n)
{
    int i = 0;
    int j = 0;
    for (i = 1; i <= n; i++)
    {
        for (j = 1; j <= i; j++)
        {
            printf("%d * %d = %d  ", i, j, i * j);
        }
        printf("\n");
    }
}
#include<stdio.h>
int main()
{
    int cs = 0;
    scanf("%d", &cs);
    CFB(cs);
    return 0;
}

42.实现一个函数来交换两个整数的内容。

#include<stdio.h>
void Swap(int* pa,int* pb)
{
    int t = 0;
    t = *pa;
    *pa = *pb;
    *pb = t;
}
int main()
{
    int a, b;
    scanf("%d %d", &a, &b);
    printf("交换前为%d    %d \n", a, b);
    Swap(&a, &b);
    printf("交换后为%d    %d \n",a,b );
    return 0;
}

43.实现一个函数来进行整型有序数组的二分查找

数组在进行传参时,并不会把整个数组都传过去
数组在传参的过程中,本质上传的是首元素的地址
#include<stdio.h>

int binary_search(int arr[], int k, int sz)
{
    int lift = 0;
    int right = sz - 1;
    while (lift <= right)
    {
        int mid = lift + (right - lift) / 2;
        if (arr[mid] > k)
            right = mid - 1;
        else if (arr[mid] < k)
            lift = mid + 1;
        else
            return mid;
    }
    if (lift > right)
        return -1;
}

int main()
{
    int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
    int k = 5;
    int sz = sizeof(arr) / sizeof(arr[0]) ;
    int ret = binary_search(arr, k,sz);
    if (-1 == ret)
        printf("找不到!");
    else
        printf("找到了,下标是:%d", ret);
    return 0;
}

44.接收一个无符号整型,按照它们的顺序打印每一位。

例:
输入:1234
输出:1 2 3 4

利用递归(函数自己调用自己)来大事化小
递归=递推+回归
递归书写是必须有限制条件,当满足限制条件时递归停止。
每次递归后,会越来越接近递归停止的条件。
#include<stdio.h>
void print(int n)
{
    if (n > 9)
        print(n / 10);
    printf("%d ", n % 10);
}

int main()
{
    unsigned int n;
    scanf("%d", &n);
    print(n);
    return 0;
}

45.利用递归的方式求N的阶乘

#include<stdio.h>

int Fac(unsigned int n)
{
    int f;
    if (n == 0 || n == 1)
        f = 1;
    else 
    f=Fac(n - 1)*n;
    return (f);
}

int main()
{
    unsigned int n= 0;
    int y = 0;
    scanf("%d", &n);
    y = Fac(n);
    printf("%d\n", y);
    return 0;
}
相关文章
|
6月前
|
C语言
C语言:数组和指针笔试题解析(包括一些容易混淆的指针题目)
C语言:数组和指针笔试题解析(包括一些容易混淆的指针题目)
|
6月前
|
存储 C语言 C++
C语言------------指针笔试题目深度剖析
C语言------------指针笔试题目深度剖析
47 1
|
11月前
2.C语言题目---字符串左旋
2.C语言题目---字符串左旋
77 1
|
1月前
|
程序员 C语言
【C语言】LeetCode(力扣)上经典题目
【C语言】LeetCode(力扣)上经典题目
|
11月前
|
存储
1.C语言题目---指针类(基础)
1.C语言题目---指针类(基础)
60 1
|
3月前
|
存储 编译器 C语言
【C语言】指针练习题目
【C语言】指针练习题目
|
5月前
|
测试技术 C语言
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
46 1
|
6月前
|
算法 编译器 API
C语言易混淆、简单算法、结构体题目练习、常见关键字总结-1
C语言易混淆、简单算法、结构体题目练习、常见关键字总结
|
5月前
|
C语言
c语言循环题目
c语言循环题目
|
6月前
|
C语言
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-4 报数 (20分)
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-4 报数 (20分)