拒绝摆烂!C语言练习打卡第三天

🔥博客主页:小王又困了

📚系列专栏:每日一练

🌟人之为学,不日近则日退 

❤️感谢大家点赞👍收藏⭐评论✍️

 


目录

一、选择题

📝1.第一题 

📝2.第二题 

📝3.第三题 

二、编程题

📝1.第一题 

📝2.第二题 


🗒️前言:

在前面我们学习完C语言的所以知识,当然练习巩固也不能落下。俗话说:“无财之谓贫,学而不能行之谓病。”可见实践对我们学习的重要。接下来就让小王带着大家进行练习,巩固我们C语言的学习。

一、选择题

📝1.第一题 

以下程序运行后的输出结果是( )

int main()
{int a=1,b=2,m=0,n=0,k;k=(n=b<a)&&(m=a);printf("%d,%d\n",k,m);return 0;
}

💡解题思路:

这道题是要打印 k 和 m 的值,我们通过执行上面的表达式来得到它两的值。在这里括号的优先级最高,先执行括号中的代码,关系运算符的优先级大于赋值操作符,这里我们要注意 && ,当左边为假时,就不用执行右边的代码。

  1. 先执行 b<a 为假值为0,再将0赋值给n,表达式结果为零
  2. 再将0赋值给 k,表达式 k=0表达式为假
  3. 左侧表达式为假,右侧表达式也不执行,所以 k 和 m 的值都为0

📝2.第二题 

读代码选结果( )

int main()
{int count = 0;int x = -1;while (x){count++;x = x >> 1;}printf("%d", count);
}

 💡解题思路:

通过观察代码,可以得知代码的目是计算一个整数 x 的二进制表示中有多少个1。

  • 首先,初始化计数器count为0,用于记录1的个数。
  • 然后,将整数 x 初始化一个值。接下来进入while循环,条件是x不为0。在循环内部,首先将count加1,表示找到了一个1。然后将x右移一位(相当于除以2),继续检查新的x值。当x变为0时,循环结束。
  • 最后,使用printf函数输出计数器count的值,即整数 x 的二进制表示中1的个数。

但是这里 x 初始化为-1,-1的二进制补码全部都是1,第一位是符号位。右移分为算数右移逻辑右移,一般编译器都是算术右移:右边丢弃,左边补原来的符号位。所以计数器会一直加,程序陷入死循环。

📝3.第三题 

请阅读以下程序,其运行结果是( )

int main()
{char c='A';if('0' <=c<= '9') {    printf("YES");}else {printf("NO");}return 0;
}

 💡解题思路:

这道题很容易对大家产生误解,'0' <=c<= '9' 这段代码的意思就是 c 大于 ‘0’小于 ‘9’ 就为真,但这种是数学中的写法,在程序中这样的代码要从左向右执行:

  • 先执行 ‘0’<= c,'A' 的ASCII码值为65,‘0’ 的ASCII码值为48,‘0’ <=c 为真值为1
  • 然后进行下面的判断 1<= ‘9’ 为真,所以打印YES

正确的代码应该写成 c >='0'  && c <= '9',if语句判断为真,打印YES。

虽然两段代码的结果相同,但逻辑并不相同,所以我们在平常写代码时一定要规范。

二、编程题

📝1.第一题 

💡解题思路:

我们想在数字中添加逗号,将每一位通过 %10 /10 的方式拆分下来,在需要的地方将逗号插入进去。由于加入逗号,原来的数字就不能用整型表示,而是要变成字符型,在得到每位的数据加上 ‘0’ 就可以变成字符型。将得到的数据存放在字符数组中,每存放3个数据就插入一个逗号,即k%3==0 就插入,这里要注意判断条件,当插入第一个数时,k%3==0 的条件也满足,但是不需要插入逗号,所以我们要加上 k!=0 ,使条件完整。

#include <stdio.h>
int main()
{int n = 0;scanf("%d", &n);//存放最后的结果char arr[14] = { 0 };int i = 0;//记录加逗号int k = 0;while (n){if (k != 0 && k % 3 == 0){arr[i++] = ',';}arr[i++] = n % 10 + '0';n /= 10;k++;}//打印for (i--; i >= 0; i--){printf("%c", arr[i]);}return 0;
}

📝2.第二题 

 💡解题思路:

我们通过两个循环遍历数组,当找到 numbers[i]+numbers[j] 和目标值相同的直接 return 。由于题目中还要求时间复杂度为 O(nlogn) ,两次循环时间复杂度为 O(n^2)。所以我们可以使用 contine ,在第二次循环之前先判断,如果 numbers[i]>target ,两数之和一定大于 target,使用 continue就可以跳过第二次循环,执行下一次。

  • continue:提前结束本次循环,接着执行下一次循环 

 

int* twoSum(int* numbers, int numbersLen, int target, int* returnSize) 
{int* newarr = (int*)malloc(sizeof(int) * 2);int i = 0;for (i = 0; i < numbersLen; i++){if (numbers[i] > target){continue;}int j = 0;for (j = i + 1; j < numbersLen; j++){if (numbers[i] + numbers[j] == target){newarr[0] = i + 1;newarr[1] = j + 1;*returnSize = 2;return newarr;}}}*returnSize = 0;return 0;
}

本次的内容到这里就结束啦。希望大家阅读完可以有所收获,同时也感谢各位读者三连支持。文章有问题可以在评论区留言,博主一定认真认真修改,以后写出更好的文章。你们的支持就是博主最大的动力。

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

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

相关文章

java练习3.快速查找

题目: 数组 arr[6,1,3,7,9,8,5,4,2],用快速排序进行升序排序. import java.util.Random;public class recursionDemo {public static void main(String[] args) {/*快速排序:* 第一轮:以0索引为基准数,确定基准数在数组正确的位置,* 比基准数小的放到左边,比基准数大的放在右边…

【Linux】【驱动】应用层和驱动层传输数据

【Linux】【驱动】应用层和驱动层传输数据 绪论1.如果我在应用层使用系统0 对设备节点进行打开&#xff0c;关闭&#xff0c;读写等操作会发生什么呢? 2 我们的应用层和内核层是不能直接进行数据传输的3 驱动部分的代码4 应用代码5 编译以及运行代码 绪论 Linux一切皆文件! 文…

Maven自定义脚手架(多module模块)+自定义参数

脚手架 视频教程&#xff1a; Maven保姆级教程 脚手架是一个项目模板&#xff0c;包含常用的工程结构、代码。 1 自定义脚手架 脚手架创建的步骤如下&#xff0c;先创建一个工程&#xff0c;把常用的代码写好&#xff0c;进入工程根目录&#xff0c;进行如下操作&#xff1a; …

Angular安全专辑之二——‘unsafe-eval’不是以下内容安全策略中允许的脚本源

一&#xff1a;错误出现 这个错误的意思是&#xff0c;拒绝将字符串评估为 JavaScript&#xff0c;因为‘unsafe-eval’不是以下内容安全策略中允许的脚本源。 二&#xff1a;错误场景 testEval() {const data eval("var sum2 new Function(a, b, return a b); sum2(em…

使用 PyTorch 进行高效图像分割:第 1 部分

一、说明 在这个由 4 部分组成的系列中&#xff0c;我们将使用 PyTorch 中的深度学习技术从头开始逐步实现图像分割。我们将在本文中从图像分割所需的基本概念和想法开始本系列。 图1&#xff1a;宠物图像及其分割掩码&#xff08;来源&#xff1a;牛津-IIIT宠物数据集) 图像分…

DAY2,ARM(特殊功能寄存器,数据操作指令,跳转指令)

1.cmp、sub、b指令的使用&#xff1b; 代码&#xff1a; .text .global _start _start:mov r0,#9mov r1,#15loop:cmp r0,r1beq stopsubcc r1,r1,r0subhi r0,r0,r1b loopstop:b stop .end结果&#xff1a; 2.汇编指令计算1~100之间和&#xff1b; 代码&#xff1a; .text .gl…

Oracle执行计划

Oracle执行计划 1. 什么是执行计划Oracle explain使用3. Explain执行顺序 1. 什么是执行计划 执行计划是一条查询语句在Oracle中的执行过程或访问路径的描述。 执行计划描述了SQL引擎为执行SQL语句进行的操作&#xff1b;分析SQL语句相关的性能问题或仅仅质疑查询优化器的决定…

2023年排行前五的大规模语言模型(LLM)

2023年排行前五的大规模语言模型(LLM) 截至2023年&#xff0c;人工智能正在风靡全球。它已经成为热门的讨论话题&#xff0c;吸引了数百万人的关注&#xff0c;不仅限于技术专家和研究人员&#xff0c;还包括来自不同背景的个人。人们对人工智能热情高涨的原因之一是其在人类多…

1AE4 的魔改混合放大电路

先上电路图&#xff1a; 最新的1AE4的电路&#xff0c;目标依旧是极致的音效。 因此&#xff0c;为了将1AE4的潜力榨干&#xff0c;采用了一些完全不同的思路&#xff1a; 1&#xff09;原有的屏极接地&#xff0c;因为是一个壳子&#xff0c;所以能起到很好的屏蔽作用&#…

bug记录:微信小程序 给button使用all: initial重置样式

场景&#xff1a;通过uniapp开发微信小程序 &#xff0c;使用uview的u-popup弹窗&#xff0c;里面内嵌了一个原生button标签&#xff0c;因为微信小程序的button是有默认样式的&#xff0c;所以通过all: initial重置样式 。但是整个弹窗的点击事件都会被button上面的点击事件覆…

lvs负载均衡群集

目录 群集的含义 群集使用的场景 lvs集群的分类 1、根据群集所针对的目标差异&#xff0c;可分为三种类型 2、负载均衡群集(Load Balance Cluster) 3、高可用群集 (High Availability Cluster) 4、高性能运算群集 (High Performance Computer Cluster) 负载均衡群集架构…

复数混频器、零中频架构和高级算法开发

文章里讲解了关于射频IQ调制器、零中频架构相关的原理及技术&#xff0c;全都是干货&#xff01;其实好多同行对软件无线电的原理、IQ调制、镜像抑制都是一知半解&#xff0c;知其然不知其所以然。好好研读这篇文章&#xff0c;相信会让你有种恍然大悟的感觉。 RF工程常被视为…

头条移动端项目Day04 ——自媒体文章审核

❤ 作者主页&#xff1a;欢迎来到我的技术博客&#x1f60e; ❀ 个人介绍&#xff1a;大家好&#xff0c;本人热衷于Java后端开发&#xff0c;欢迎来交流学习哦&#xff01;(&#xffe3;▽&#xffe3;)~* &#x1f34a; 如果文章对您有帮助&#xff0c;记得关注、点赞、收藏、…

【Java转Go】快速上手学习笔记(二)之基础篇一

目录 创建项目数据类型变量常量类型转换计数器键盘交互流程控制代码运算符 创建项目 上篇我们安装好了Go环境&#xff0c;和用IDEA安装Go插件来开发Go项目&#xff1a;【Java转Go】快速上手学习笔记&#xff08;一&#xff09;之环境安装篇 。 这篇我们开始正式学习Go语言。我…

qt初入门0:结构体中QString用memset导致崩溃分析及QLatin1String简单查看源码

初识Qt,进行开发时遇到一个崩溃问题 简单整理 1&#xff1a;问题描述如下&#xff0c;结构体中QString成员&#xff0c;然后对结构体调用了memset导致问题&#xff1a; 2&#xff1a;问题分析&#xff0c;加断点调试的方式可以明确分析到行数 可以明确看出&#xff0c;初始化…

Linux:shell函数

目录 一、基本格式 二、查看函数 三、删除函数 四、函数的返回值 五、函数的传参数 六、函数的作用范围 ​七、函数的递归 在编写脚本时&#xff0c;有些脚本可以反复使用&#xff0c;可以调用函数来解决 语句块定义成函数约等于别名 函数使用方法&#xff1a; 定义函…

金蝶软件实现Excel数据复制分录信息粘贴到单据体分录行中

>>>适合KIS云专业版V16.0|KIS云旗舰版V7.0|K/3 WISE 14.0等版本<<< 实现Excel数据复制分录信息粘贴到金蝶单据体分录中,在采购订单|采购入库单|销售订单|销售出库单等类型单据中,以少量的必要字段在excel表格中按模板填列好,很方便快捷地复制到金蝶单据表体…

网络安全威胁与防御策略

第一章&#xff1a;引言 随着数字化时代的快速发展&#xff0c;网络已经成为人们生活和工作中不可或缺的一部分。然而&#xff0c;网络的广泛应用也引发了一系列严峻的网络安全威胁。恶意软件、网络攻击、数据泄露等问题层出不穷&#xff0c;给个人和企业带来了巨大的风险。本文…

JVM - 垃圾回收机制

JVM的垃圾回收机制(简称GC) JVM的垃圾回收机制非常强大&#xff0c;是JVM的一个很重要的功能&#xff0c;而且这也是跟对象实例息息相关的&#xff0c;如果对象实例不用了要怎么清除呢&#xff1f; 如何判断对象已经没用了 当JVM认为一个对像已经没用了&#xff0c;就会把这个…

Airbnb开源数据可视化工具Visx

一、什么是visx visx 是用于 React 的富有表现力的底层可视化组件集合,结合了 d3 的强大功能来生成可视化,以及 React 更新 DOM 的诸多优势。 在 Airbnb 内部,visx 的目标是统一整个公司的可视化堆栈,在此过程中,创建了 visx 项目,从而有效的将 D3 的强大功能与 React …