C语言之练习题

在这里插入图片描述

欢迎来到我的:世界

希望作者的文章对你有所帮助,有不足的地方还请指正,大家一起学习交流 !


目录

  • 前言
  • 填空题:
    • 第一题
    • 第二题
    • 第三题
  • 编程题:
    • 第一题:不用加减乘除做加法
    • 第二题:完全数计算
    • 第三题:单词倒排
  • 总结

前言

今天是学校开学的第一天😊,真是个特殊的日子,步入写博客已经不知不觉有6个月了,我能感受写博客越来越从容了,那就让我俯视这我所热爱的一切。😎

在这里插入图片描述


填空题:

第一题

请问下列程序输出的结果是什么?

在这里插入图片描述

思路:无符号位char类型范围是:0~255
所以这题就是让我们寻找等于0的时候;
知道-211111110变成254;同理-111111111变成255,最后减到0的时候就跳出循环,不满足就继续循环;
7 4 1 -2 == > 共(7-1)/3+1=3次(1- 3 = -2,即254,继续循环)
254 251…5 2 -1 == > 共(254-2)/3+1=85次(2- 3 = -1 ,即255,继续循环 )
255 252…6 3 0 == > 共(255-5)/3+1=85次(3-3=0,退出循环)
所以一共循环了: 85+85+3=173次

第二题

请问下列程序输出的结果是什么?

在这里插入图片描述
思路:

这道题考察的是:隐式类型转换
x是有符号数-1,内存中是全1,当有符号的x和无符号数进行比较时,x会隐式类型转换被当做无符号数,是一个很大的数,所以会进入(x > y),且打印出:x is greater

第三题

在这里插入图片描述
思路:

我们首先要知道x|(x + 1)意味着什么?
假设x=3就是011,那么x+1=4就是100按照按位或|的运算原则:有1则为1,两者都为0,则为0;所以知道x|(x+1)111,从右往左数第一个0变成了1
总结:x|(x+1)作用是每次循环把x的二进制中从右往左数的最后一位0变成1;
x所有二进制位的都变成了1,那x+1就会溢出为0,循环结束;
2014的二进制序列是:0000 0000 000 0000 0000 0111 1101 1110,所以应该为23;

编程题:

第一题:不用加减乘除做加法


地址:oj地址


在这里插入图片描述
解题思路:

这道题考察的是:加法的运算原理
肯定要根据利用数据的二进制位来实现,那就需要运用了按位与&按位异或^
首先知道&的运算原则:有0则为0,两者都为1,则为1
^的运算原则:相同则为0,相异则为1;
如果用他们的二进制来计算:
假如不需要进位,则直接就可以得到答案:
51012010,不需要进位,则101 ^ 010等于1117
假如需要进位,则需要&找出需要进位值再进行<<1进位;
假设两个值 32,二进制分别为011010,结果应该为5,即101,那就来看二进制011 & 010,就可以找到需要进位的二进制位,再<<1,代表进1位;

知道了&的运算原则,那肯定可以用来进位的时候用;

代码实现:

int Add(int num1, int num2 ) {// write code hereint tem=num1;while(num2){tem=num1^num2;//不考虑进位num2=(num1&num2)<<1;//考虑进位num1=tem;}return tem;
}

第二题:完全数计算


地址:oj地址


在这里插入图片描述

解题思路:

思路:可以看出要为完全数,应该其所以的真因子之和要是该完全数的两倍;
要遍历该数的所有真因子在加起来,判断是否是该数的两倍,如果是那就是完全数,否则就不是;遍历完每个数记得将其记录真因子之和清空;

代码实现;

int main() {int n=0;scanf("%d",&n);int i=0;int count=0;//记录真因子之和int sum=0;//记录完全数的个数for(i=1;i<n;i++){int j=0;for(j=1;j<=i;j++){if(i%j==0)//是真因子就进入{count+=(i/j);}}if(count==2*i)//真因子之和是否为该数的两倍{sum++;}count=0;}printf("%d",sum);return 0;
}

第三题:单词倒排


地址:oj地址


在这里插入图片描述

解题思路:

思路:要满足题目要求的四个条件;
根据示例2:如果不是构成单词的字符只有26个大写或小写英文字母中的范围内,就打印空格.

如果要单词倒排,我们可以创造两个数组,一个数组存放的原输入的字符串,另一个数组用来存放倒排之后的字符串,然后打印出来就可以;

具体过程:
注意:设存放原输入的字符串的数组为 arr,另一个数组设为num;我们可以在输入进arr数组的时候就进行判断,如果不是 (构成单词的字符只有26个大写或小写英文字母)该范围里的,就输入一个空格‘ ’
设置一个指针指right向数组的最后一个元素,然后往前找空格,找到空格(记录该位置)就代表找到了最后一个单词的首字符,然后在依次输入num数组中,完成后,让指针又回到记录的那个空格的位置,判断是否为空格,如果是空格,就把空格输入num数组的同时指针right往前走,直到不是空格,这时指针指向的是倒数第二个单词的最后一个字符,然后后续按照上述的过程进行循环,直到将原来arr数组中的字符串全部都输入进了num数组,就跳出总循环;

代码实现:

#include <stdio.h>int main() {char arr[10001];char num[10001];char ch = 0;int i = 0;int j = 0;while ((ch = getchar()) != '\n') {if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))arr[i] = ch;elsearr[i] = ' ';i++;}int right = i - 1;int count = 0;//记录这个单词多少个字节while (right >= 0) {//找到单词的开头位置while (arr[right] != ' ' && right >= 0) {count++;right--;}int tem = right;//记住这个位置while (count--) //输入num数组{num[j] = arr[right + 1];j++;right++;}right = tem;while (arr[right] == ' ') //如果是空格也传入num数组{num[j] = arr[right];right--;j++;}count = 0;//记得每次传完单词后要记录新的单词,这里要清0;}for (i = 0; i < j; i++) {printf("%c", num[i]);}return 0;
}

总结


到了最后:感谢支持

我还想告诉你的是:
------------对过程全力以赴,对结果淡然处之
也是对我自己讲的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/67487.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

字节9.3秋招研发笔试 【后端方向】第三题

题目 小红拿到了一个无向图&#xff0c;初始每人节点是白色&#xff0c;其中有若干个节点被染成了红色。小红想知道&#xff0c;若将 i 号节点染成红色&#xff0c;当前的红色连块的数量是多少? 你需要回答i∈[1,n] 的答案。 定义&#xff0c;若干节点组成一个红色连通块&am…

lintcode 1827 · 停在原地的方案数2 【动态规划 中等 vip】

题目 https://www.lintcode.com/problem/1827/ 有一个长度为 arrLen 的数组&#xff0c;开始有一个指针在索引 0 处。 每一步操作中&#xff0c;你可以将指针向左或向右移动 1 步&#xff0c;或者停在原地&#xff08;指针不能被移动到数组范围外&#xff09;。 给你两个整数…

Redis快速入门

文章目录 1. Centos下Redis安装2. redis.conf配置文件介绍3. redis相关命令4. redis封装系统服务5. 问题与解决 1. Centos下Redis安装 Linux_Study 目录&#xff1a;5.2 https://blog.csdn.net/meini32/article/details/128562114 2. redis.conf配置文件介绍 https://blog.c…

【GPT引领前沿】GPT4技术与AI绘图

推荐阅读&#xff1a; 1、遥感云大数据在灾害、水体与湿地领域典型案例实践及GPT模型应用 2、GPT模型支持下的Python-GEE遥感云大数据分析、管理与可视化技术 GPT对于每个科研人员已经成为不可或缺的辅助工具&#xff0c;不同的研究领域和项目具有不同的需求。例如在科研编程…

Union类型和集合的union()方法-set.union()

Union类型和集合的Union 方法 一、Union类型1.Union类型由来2.Union类型的语法3.Union类型的使用4.一些等价写法 二、Set.union()union() 语法示例代码 一、Union类型 1.Union类型由来 Python中的Union类型是 3.10版本引入的新功能之一。它是一种特殊的类型注释&#xff0c;用…

ChatGPT AIGC 完成动态堆积面积图实例

先使用ChatGPT AIGC描述一下堆积面积图的功能与作用。 接下来一起看一下ChatGPT做出的动态可视化效果图: 这样的动态图案例代码使用ChatGPT AIGC完成。 将完整代码复制如下: <!DOCTYPE html> <html> <head><meta charset="utf-8"><tit…

Ansible_自动化运维实战(一)

1.DELL的一款服务器的价格、型号、配置&#xff08;CPU&#xff0c;内存、硬盘、支持的RAID功能&#xff09; DELL 服务器的定价、型号和配置因型号而异&#xff0c;可以通过访问 DELL 官方网站或联系 DELL 客户服务获取具体信息。一种示例是 DELL PowerEdge R740&#xff0c;其…

使用kubasz快速搭建Kubernetes集群

Kubernetes安装 Kubernetes 也称为 K8s,是用于自动部署、扩缩和管理容器化应用程序的开源系统。ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。使用ans…

Python Flask Web开发二:数据库创建和使用

前言 数据库在 Web 开发中起着至关重要的作用。它不仅提供了数据的持久化存储和管理功能&#xff0c;还支持数据的关联和连接&#xff0c;保证数据的一致性和安全性。通过合理地设计和使用数据库&#xff0c;开发人员可以构建强大、可靠的 Web 应用程序&#xff0c;满足用户的…

Ubuntu系统下使用宝塔面板实现一键搭建Z-Blog个人博客的方法和流程

文章目录 1.前言2.网站搭建2.1. 网页下载和安装2.2.网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar临时数据隧道3.2.Cpolar稳定隧道&#xff08;云端设置&#xff09;3.3.Cpolar稳定隧道&#xff08;本地设置&#xff09; 4.公网访问测试5.结语 1.前言 Ubuntu系统作…

Ansible之playbook剧本

一、playbook概述1.1 playbook 介绍1.2 playbook 组成部分 二、playbook 示例2.1 playbook 启动及检测2.2 实例一2.3 vars 定义、引用变量2.4 指定远程主机sudo切换用户2.5 when条件判断2.6 迭代2.7 Templates 模块1.先准备一个以 .j2 为后缀的 template 模板文件&#xff0c;设…

算法leetcode|76. 最小覆盖子串(rust重拳出击)

文章目录 76. 最小覆盖子串&#xff1a;样例 1&#xff1a;样例 2&#xff1a;样例 3&#xff1a;提示&#xff1a;进阶&#xff1a; 分析&#xff1a;在这里插入图片描述 题解&#xff1a;rust&#xff1a;go&#xff1a;c&#xff1a;python&#xff1a;java&#xff1a; 76.…

若依新建模块

下面介绍如何在若依框架下新建一个子模块 第一步&#xff1a; 如图操作&#xff1a; 1. 2. 3. 4.在刚建立的子模块的pom.xml文件添加通用工具依赖 代码&#xff1a; <dependencies> <!-- 导入通用工具--><dependency><groupId>com.rchuing&l…

2023-09-04 Linux 让shell编译脚本里面设置的环境变量改变kernel里面驱动文件的宏定义值方法,我这里用来做修改固件版本

一、原生的读取版本接口是/proc/version&#xff0c;我这里需要提供获取固件版本号的api给app&#xff0c;因为版本号会经常需要修改&#xff0c;如果每次都到kernel下修改比较麻烦&#xff0c;我这里是想在编译脚本里面对版本号进行修改&#xff0c;这样方便一点。 二、主要修…

解决Jenkins执行Python脚本不能实时输出打印信息的问题

问题&#xff1a; 在使用Jenkins的shell command来执行python脚本时&#xff0c;总是会等脚本执行完毕&#xff0c;最后一次性才把脚本中的print语句给打印出来&#xff1b; 解决方法&#xff1a; 在print语句后加上sys.stdout.flush(), 就可以达到实时输出的目的了。

无需租云服务器,Linux本地搭建web服务,并内网穿透发布公网访问

文章目录 前言1. 本地搭建web站点2. 测试局域网访问3. 公开本地web网站3.1 安装cpolar内网穿透3.2 创建http隧道&#xff0c;指向本地80端口3.3 配置后台服务 4. 配置固定二级子域名5. 测试使用固定二级子域名访问本地web站点 前言 在web项目中,部署的web站点需要被外部访问,则…

2023 最新前端面试题 (HTML 篇)

1. src 和 href 的区别 src 用于替换当前元素&#xff08;引入&#xff09;&#xff0c;href 用于在当前文档和引用资源之间确立联系&#xff08;引用&#xff09; &#xff08;1&#xff09;src&#xff08;source&#xff09; 指向外部资源的位置&#xff0c;指向的内容将会嵌…

安卓 MeasureCache优化了什么?

安卓绘制原理概览_油炸板蓝根的博客-CSDN博客 搜了一下&#xff0c;全网居然没有人提过 measureCache。 在前文中提到过&#xff0c;measure的时候&#xff0c;如果命中了 measureCache&#xff0c;会跳过 onMeasure&#xff0c;同时会设置 PFLAG3_MEASURE_NEEDED_BEFORE_LAYOU…

CentOS 7上安装Python 3.11.5,支持Django

CentOS 7上安装Python 3.11.5,支持Django 今天安装django&#xff0c;报了“Django - deterministicTrue requires SQLite 3.8.3 or higher upon running python manage.py runserver”。查了一番资料&#xff0c;记录下来。 参考链接&#xff1a; 参考链接: Django的web项目…

TypeScript_树结构-BST树

树结构 树的特点 树通常有一个根。连接着根的是树干树干到上面之后会进行分叉成树枝&#xff0c;树枝还会分又成更小的树枝在树枝的最后是叶子 树的抽象 树可以模拟生活中的很多场景&#xff0c;比如&#xff1a;公司组织架构、家谱、DOM Tree、电脑文件夹架构 优秀的哈希函…