码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【C语言】编程题专项练习+答案


    目录

    1.删除有序数组中重复的数

    2.用除二取余的方法,把任意一个十进制正数的二进制序列输出(不考虑溢出)

    2.1如果是把任意一个十进制整数的二进制序列输出呢?

    3.输出一个六行六列的整形矩阵,并输出其转置矩阵。矩阵中的元素的十位数是行数,个位数是列数,比如第一行第六列的元素是16

    4.编写程序把4位16进制数转换为短整型(short类型)

    5.分割字符串

    6.二代身份证

    7.绝对素数

    8.输入一个十进制数N,把他转化成R进制数输出(R是11到16之间的整数),比如R=16,输入90,输出就是5A

    9.输入某年某月某日,判断这一天是那年的第几天,并输出本年还剩下多少天。

    10.合并文件内容

    11.检查字符串str2是否为str1的子串

    12.输入10个1~100范围内的整数,删除其中1~50的数,并输出一个新数组。

    13.在一个文件A.txt中取出一个矩阵,然后转置后写入到另一个文件B.txt中

    14.输入年月日,输出这是今年第几天

    15.能否构成三角形

    16.把一个二维数组每行的最小值构成一个新的数组输出


    1.删除有序数组中重复的数

    2.用除二取余的方法,把任意一个十进制正数的二进制序列输出(不考虑溢出)

    2.1如果是把任意一个十进制整数的二进制序列输出呢?

    3.输出一个六行六列的整形矩阵,并输出其转置矩阵。矩阵中的元素的十位数是行数,个位数是列数,比如第一行第六列的元素是16

    4.编写程序把4位16进制数转换为短整型(short类型)

    比如FFF8=>-8,过程如下

    //FFF8:4位16进制数

    //1111 1111 1111 1000:二进制补码

    //1000 0000 0000 0111:二进制反码

    //1000 0000 0000 1000:二进制原码

    法一:考查scanf和printf的占位符写法

    法2:库函数法

    strtol 是 C 语言标准库中的一个函数,用于将字符串转换成长整型数(long int)。这个函数定义在头文件 中。strtol 的名字是 "string to long" 的缩写,表示其功能是将一个字符串转化为一个长整型数值。

    strtol 函数的原型如下:

    long int strtol(const char *str, char **endptr, int base);

    这个函数接受三个参数:

    • const char *str:一个指向要进行转换的以 null 结尾的 C 字符串的指针。
    • char **endptr:一个引用指针,用于存储转换后剩余部分字符串的地址。如果不需要这个值,可以传递 NULL。
    • int base:转换所采用的数制的基数,它必须在 2 和 36 之间,或者是特殊值 0。对于十进制数,这个值应该是 10;对于十六进制数,应该是 16 等等。如果 base 设置为 0,则会根据字符串格式自动推断基数(例如,以 "0x" 或 "0X" 开头的字符串会被识别为十六进制,以 "0" 开头为八进制,其余为十进制)。

    此函数会读取 str,然后根据 base 的值将读取到的内容转换为一个长整型值。转换会忽略任何前导的空白字符(如空格),直到遇到第一个非有效字符或字符串末尾。如果 endptr 不是 NULL,函数还会设置 endptr 指向字符串中未进行转换的第一个字符。

    对于类似的任务,比如将字符串转换成 int,可以使用 atoi或者 strtol 函数后再进行类型转换。然而如果字符串表示的数值可能超出 int 类型的范围,最好直接使用 strtol 然后检查返回值是否在 int 的范围之内。

    请注意,strtol 能处理的最大数值为 LONG_MAX,最小数值为 LONG_MIN,这些极值定义在头文件 中。若字符串转换的结果超出了 long int 类型能表示的范围,则会发生溢出,并且函数将返回 LONG_MAX 或 LONG_MIN,同时设置 errno 为 ERANGE。

    法3:不使用库函数strtol

    5.分割字符串

    编写toArray函数,其函数原型为int toArray(char* st,char c,int arr[])将字符串str用c所指定的分隔符分割并转换为整型数之后存入整形数组arr,函数返回值是该数组元素个数

    运行结果

    6.二代身份证

    2019

    法一:使用库函数

    法二:不使用库函数

    7.绝对素数

    编写代码用来判断一个正整数是否为绝对素数,绝对素数是指这个数本身是素数,他的反置数也是素数,比如37是素数,他的反置数73也是素数,那么这两个数就是绝对素数

    如果题目说是让编写一个函数int is_absolute_Prime(int n),我们现在写了好几个函数,显然不复合要求,实际上我们只要在这个is_absolute_Prime()函数中调用我们写的那好几个函数就行。

    8.输入一个十进制数N,把他转化成R进制数输出(R是11到16之间的整数),比如R=16,输入90,输出就是5A

    法一:转换字符

    这种方法应该注意的是当我们拿到一个大于等于10的数时候,我们应该转化成A~F,在上面的代码中我们是要把数字字符转化成字符A~F,因此应该判断当前数字字符是否大于字符10,但是判断条件不能写>='10'而应该写成>'9',这是因为在C语言中'10'会被认为是一个多字符常量,他的ASCII码值并不是‘9’的ASCII码值+1,我们可以通过写一个代码打印他们两个的ASCII码来观察

    发现这两个的ASCII码值相差了不是一点半点

    因此在判断我们加上'0'之后的ch[i]是否大于'9'的时候就不能写成ch[i]>='10',应该写成ch[i]>'9',同时在转换成A~F的时候也不能直接写成ch[i]-'10'+'A',应该写成ch[i]-'0'-10+'A'。

    法二:创建字符数组法

    我没每次都是拿到的最低位,余数是几,那么这一位实际上就是几,比如我们拿到了余数5,实际上拿到的这一位就应该是5,打印的时候就要打印字符5,余数是10,就打印字符A。

    9.输入某年某月某日,判断这一天是那年的第几天,并输出本年还剩下多少天。

    例如输入2020 12 25,则输出是本年的第360天,今年还剩下6天

    法一:

    代码可以优化一下,让代码看起来更简洁

    10.合并文件内容

    有3个磁盘文件A.txt,B.txt,C.txt在同一路径下, A.txt,B.txt中各存放一行字母,要求把两个文件的信息合并,且按字母顺序排列好,然后输出到文件C.txt中去

    11.检查字符串str2是否为str1的子串

    检查字符串str2是否为str1的子串,如果是,返回子串在str1中的位置,如果不是,返回NULL

    法一:库函数法

    法二:不使用库函数,也即模拟实现strstr

    12.输入10个1~100范围内的整数,删除其中1~50的数,并输出一个新数组。

    13.在一个文件A.txt中取出一个矩阵,然后转置后写入到另一个文件B.txt中

    14.输入年月日,输出这是今年第几天

    另一种写法

    实际上这道题的关键就在于讨论输入的天是否为闰年的二月之后。

    15.能否构成三角形

    输入三个整数作为三角形的三条边,看看能否构成三角形,如果能的话输出这个三角形的面积。

    16.把一个二维数组每行的最小值构成一个新的数组输出

  • 相关阅读:
    无线渗透理论_WPA安全系统
    线扫相机DALSA--采集卡Base模式设置
    Redis —— Could not connect to Redis at 127.0.0.16379 由于目标计算机积极拒绝,无法连接。
    爬虫的法律风险是什么?以及合法使用爬虫技术的建议。
    java毕业设计单位职工房产管理Mybatis+系统+数据库+调试部署
    基于javaweb的oa办公管理系统(java+layui+ssm+mysql+jsp+html)
    [答疑]《实现领域驱动设计》的译者其实没错?(一)
    免费开源的非标项目型制造BOM一键导入方案介绍
    大数据工具之Superset
    ubuntu 设置和取消代理
  • 原文地址:https://blog.csdn.net/2301_76771985/article/details/136490542
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号