C语言笔试程序题

进制转换

题目

十进制转化为二进制
思路:

将输入的十进制数,利用除2取余法,将每次遍历得到的余数存入数组中,最后逐个输出数组中的元素(倒序输出)

代码:

c 复制代码
#include <stdio.h>

void change(int i){
    int arr[100]={0};
    int j = 0;
    while(i > 0){
        arr[j] = i%2;
        i /= 2;
        j ++;
    }
    for(int k = j-1;k >= 0;k --){
        printf("%d", arr[k]);
    }
}

int main()
{
	int i = 20;
	change(i);
	return 0;
}

数字反转

题目:1234->4321

思路 :不断取最后一位乘倍率;

4+3* 10+2* 100+1* 1000;

代码:

c 复制代码
#include <stdio.h>

void func(int a) {
    int sum = 0;   // 用来存储反转后的数字
    while (a > 0) {
        int x = a % 10;       // 取最后一位
        sum = sum * 10 + x;   // 反转数字
        a /= 10;              // 去掉最后一位
    }
    printf("%d\n", sum);
}

int main() {
    int t = 278;
    func(t);   // 输出 872
    return 0;
}

反转两次

思路:

对于整数:反转两次一定等于原数,但末尾有 0 的数不成立。

比如 120 -> 21 -> 12

c 复制代码
#include <stdio.h>

int reverse(int n)
{
    int r = 0;
    while (n) /和上一道题一样
    {
        r = r * 10 + n % 10;
        n /= 10;
    }
    return r;
}

int main()
{
    int x = 120;

    if (reverse(reverse(x)) == x)
        printf("true\n");
    else
        printf("false\n");
}
相关推荐
故事和你911 小时前
sdut-程序设计基础Ⅰ-实验三while循环(1-10)
开发语言·数据结构·c++·算法·类和对象
爱编码的小八嘎1 小时前
C语言完美演绎3-7
c语言
再一次等风来1 小时前
声源定位算法5----SRP-PHAT(1)
算法·信号处理·srp
Yupureki1 小时前
《算法竞赛从入门到国奖》算法基础:数据结构-并查集
c语言·数据结构·c++·算法
DeepModel1 小时前
【概率分布】伯努利分布详解
算法·概率论
再一次等风来1 小时前
声源定位算法5----SRP-PHAT(2)
算法·信号处理·srp·声源定位·gcc-phat
CappuccinoRose2 小时前
MATLAB学习文档 - 汇总篇
学习·算法·matlab
艾莉丝努力练剑2 小时前
静态地址重定位与动态地址重定位:Linux操作系统的视角
java·linux·运维·服务器·c语言·开发语言·c++
菜鸟小九2 小时前
hot100(31-40)
java·算法