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

🔥博客主页:小王又困了

📚系列专栏:每日一练

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

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


目录

一、选择题

📝1.第一题 

📝2.第二题

📝3.第三题

📝4.第四题

二、编程题

📝1.第一题 

📝2.第二题


🗒️前言:

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

一、选择题

📝1.第一题 

若运行以下程序时,从键盘输入ADescriptor<回车> ,则下面程序的运行结果是( )

int main()
{char c;int v0 = 0, v1 = 0, v2 = 0;do{switch (c = getchar()){case'a':case'A':case'e':case'E':case'i':case'I':case'o':case'O':case'u':case'U':v1 += 1;default:v0 += 1; v2 += 1;}} while (c != '\n');printf("v0=%d,v1=%d,v2=%d\n", v0, v1, v2);return 0;
}

 💡解题思路:

我们通过观察代码发现,这个程序读取字符,在switch语句中进行计算,当读到 ‘\0’ 时停止 。判断是否是元音字母进行不同的计算,但是在本题switch语句中没有break,执行完case语句还会继续执行default语句。输入ADescriptor这串字符中有4个元音字母,所以case语句和default语句都执行,v0=v1=v2=4;其他7个字符只执行default语句,所以v1=4,v0=v2=11。但是这里要注意,本题使用的是do…while循环,先执行在判断,所以输入‘\0’也要执行语句,最后结果为v1=4,v0=v2=12。

📝2.第二题

下面代码 *pa 的值是()

    float a[3] = { 1.5,2.5,3.5 };float* pa = a;*(pa++) *= 3;

💡解题思路:

a 是数组名,数组名是首元素地址,pa中存放的就是数组名是首元素地址。*(pa++) *= 3 这里是后置++,要先使用,再++。*pa 就是数组的首元素1.5,1.5*=3的结果为4.5,这时数组首元素的值被修改为4.5,这里我们不要忘记++,pa++就指向了2.5所在的位置,对pa解引用结果就是2.5。

📝3.第三题

若给定条件表达式 (M)?(a++):(a--) ,则下面表达式哪个 M 等价( ) 

A: 和(M==0)等价 B: 和(M==1)等价 C: 和(M!=0)等价 D: 和(M!=1)等价

💡解题思路:

我们观察题目,代码的意思是:M为真,执行a++;M为假,执行a--。当M非0时为真,M为0时为假。

选项A: M==0 的意思是,M为0时,表达式为真;M非0时,表达式为假,与题中M不等价。

选项B: M==1 的意思是,M为1时,表达式为真,但题意是M非0时为真,不等价。

选项C: M!=0 的意思是, M不等于0时为真,也就是非0;M为0,表达式为假,与M等价。

选项D: M!=1 的意思是, M不等于1时为真,但题意是M非0时为真,不等价。

📝4.第四题

 test.c 文件中包括如下语句,文件中定义的四个变量中,是指针类型的变量为【多选】( )


define INT_PTR int*
typedef int* int_ptr;
INT_PTR a, b;
int_ptr c, d;

💡解题思路:

根据宏定义的理解,我们直接将INT_PTR给替换成int*,则为int*a,b;故可以判断出,a为指针变量,b不是,而typedef int* int_ptr相当于是给int*取了个叫int_ptr的类型,是一个将int和*联合在一起的整体,故c,d为指针变量 

二、编程题

📝1.第一题 

 💡解题思路:

我们将A和B进行异或操作,异或的作用是对应的二进制位相同位0,相异为1。异或后我们只需要统计二进制中1个数,就可以知道A转成B要改变几位。

统计个数时,我们通过 num>>i&1==1 判断,条件成立计数器就加1。

  • &  -  对应的二进制位有0,则为0;都为1,则为1
  • ^  -  对应的二进制位相同位0,相异为1
int convertInteger(int A, int B)
{int num=A^B;int count=0;for(int i=0;i<32;i++){if(num>>i&1==1){count++;}}return count;
}

📝2.第二题

  💡解题思路:

我们通过观察可以发现,杨氏矩阵的右上角的元素是有特点的,右上角的元素是一行中最大的,一列中最小的。我们从右上角开始查找,当右上角的元素比我们要查找的元素小,我们就可以去掉右上角元素所在的这一行;右上角的元素比我们要查找的元素大,我们就可以去掉右上角元素所在的这一列。然后继续找右上角的元素和要查找的值比较。这样每一次去掉一行或一列,小路远高于遍历数组元素。

int main()
{int k = 0;scanf("%d", &k);int arr[3][3] = { 1,2,3,4,5,6,7,8,9 };int flag = 0;//右上角的元素int x = 0;int y = 2;while (x <= 2 && y >= 0){//去掉一行if (arr[x][y] < k){x++;}//去掉一列else if (arr[x][y] > k){y--;}else{printf("找到了,下标为%d %d\n", x, y);flag = 1;break;}}if (flag == 0){printf("找不到\n");}return 0;
}

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

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

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

相关文章

记录http与mqtt的区别

HTTP是最流行和最广泛使用的协议。但在过去几年中&#xff0c;MQTT迅速获得了牵引力。当我们谈论物联网开发时&#xff0c;开发人员必须在它们之间做出选择。 设计和消息传递 MQTT以数据为中心&#xff0c;而HTTP是以文档为中心的。HTTP是用于客户端 – 服务器计算的请求 – …

2023-08-25力扣每日一题

链接&#xff1a; 1448. 统计二叉树中好节点的数目 题意&#xff1a; 判断根节点到每个节点X的过程中&#xff0c;如果没有值大于X&#xff0c;则该节点为好节点&#xff0c;求好节点数量 解&#xff1a; 由于求根节点到其他节点的路径&#xff0c;则使用dfs算法&#xff…

Golang struct 结构体注意事项和使用细节

结构体所有字段在内存当中是连续的 type Point struct {x, y int }type Rect struct {leftUp, rightDown Point }func main() {//r1会在内存当中有四个整数r1 : Rect{leftUp: Point{x: 1,y: 2,},rightDown: Point{x: 3,y: 4,},}//r1有四个int&#xff0c;在内存当中是连续分布的…

基于Java+SpringBoot+Vue前后端分离社区智慧养老监护管理平台设计和实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

Python——列表(list)推导式

本文基于python3。 目录 1、Python推导式2、列表(list)推导式2.1、定义2.2、实际操作2.2.1、一个表达式&#xff0c;后面为一个 for 子句2.2.2、一个表达式&#xff0c;后面为一个 for 子句&#xff0c;然后&#xff0c;跟着if 子句。2.2.3、一个表达式&#xff0c;后面为一个…

vscode 与 C++

序 具体流程的话&#xff0c;官方文档里都有的&#xff1a;C programming with Visual Studio Code 浏览器下载一个mingw64&#xff0c;解压&#xff0c;配置环境变量vscode里安装c相关的插件没了 第一步只看文字&#xff0c;可能有点抽象&#xff0c;相关视频&#xff1a; …

24 WEB漏洞-文件上传之WAF绕过及安全修复

目录 WAF绕过上传参数名解析:明确哪些东西能修改?常见绕过方法&#xff1a;符号变异-防匹配( " ;)数据截断-防匹配(%00 ; 换行)重复数据-防匹配(参数多次)搜索引擎搜索fuzz web字典文件上传安全修复方案 WAF绕过 safedog BT(宝塔) XXX云盾 宝塔过滤的比安全狗厉害一些&a…

UML 类图

面向对象设计主要就是使用 UML 的类图&#xff0c;类图用于描述系统中所包含的类以及它们之间的相互关系&#xff0c;帮助人们简化对系统的理解&#xff0c;它是系统分析和设计阶段的重要产物&#xff0c;也是系统编码和测试的重要模型依据。 类&#xff08;class /struct&…

MySQL 存储过程 循环处理数据 while repeat

最近搞数据&#xff0c;需要搞搞mysql 的存储过程&#xff0c;很多忘记了&#xff0c;就查查&#xff0c;然后总结下。。 文章目录 介绍循环repeat方式循环while方式外传 介绍 MySQL存储过程中使用循环处理数据 存储过程就像一份写好的由多条SQL组合的代码&#xff0c;这份SQ…

全流程R语言Meta分析核心技术教程

详情点击链接&#xff1a;全流程R语言Meta分析核心技术教程 一&#xff0c;Meta分析的选题与检索 1、Meta分析的选题与文献检索 1)什么是Meta分析&#xff1f; 2)Meta分析的选题策略 3)精确检索策略&#xff0c;如何检索全、检索准 4)文献的管理与清洗&#xff0c;如何制定文…

【Acwing291】蒙德里安的梦想(状态压缩dp)详细讲解

题目描述 题目分析 显而易见的重要事实 首先&#xff0c;需要明白一个很重要的事实&#xff1a; 所有的摆放方案数所有横着摆放且合理的方案数 这是因为&#xff0c;横着的确定之后&#xff0c;竖着的一定会被唯一确定&#xff0c;举一个例子&#xff1a; ------唯一确定-…

gma 2 教程(二)数据操作:6.NumPy数组交互

gma 栅格数据集可以通过 ToArray 方法将栅格数据转为NumPy数组&#xff0c;也提供将NumPy数据转换为栅格数据&#xff08;集&#xff09;的方法。 读取NumPy数组到数据集 &#xff08;一&#xff09;函数简介   &#xff08;二&#xff09;示例 保存NumPy数组到文件 &…

C++笔记之智能指针和单例、依赖注入结合使用

C笔记之智能指针和单例、依赖注入结合使用 code review! 文章目录 C笔记之智能指针和单例、依赖注入结合使用例1.一个类不使用单例&#xff0c;另一个类使用单例例2.两个类都使用单例&#xff0c;并且通过getInstance()传入类的实例例3.std::make_unique不能访问私有的构造函…

5.基于多能互补的热电联供型微网优化运行

MATLAB代码链接&#xff1a;基于多能互补的热电联供型微网优化运行 MATLAB代码&#xff1a;基于多能互补的热电联供型微网优化运行 关键词&#xff1a;多能互补 综合需求响应 热电联产 微网 优化调度 参考文档&#xff1a;《基于多能互补的热电联供型微网优化运行》基本完全…

【云原生】Docker的数据管理(数据卷、容器互联)

目录 一、数据卷&#xff08;容器与宿主机之间数据共享&#xff09; 二、数据卷容器&#xff08;容器与容器之间数据共享&#xff09; 三、 容器互联&#xff08;使用centos镜像&#xff09; 总结 用户在使用Docker的过程中&#xff0c;往往需要能查看容器内应用产生的数据…

【android12-linux-5.1】【ST芯片】HAL移植后配置文件生成报错

根据ST官方源码移植HAL源码后&#xff0c;执行readme指示中的生成配置文件指令时报错ST_HAL_ANDROID_VERSION未定义之类&#xff0c;应该是编译环境参数问题。makefile文件中是自动识别配置的&#xff0c;参数不祥就会报错&#xff0c;这里最快的解决方案是查询确定自己android…

Docker去除sudo权限

Docker去除sudo权限 使用docker命令时&#xff0c;每次都要sudo提权&#xff0c;否则就会报错提示无权限。 1.查看docker用户组及成员 sudo cat /etc/group | grep docker2.添加docker用户组 sudo groupadd docker3.添加用户到docker组 sudo gpasswd -a ${USER} docker4.增…

selenium Chrome驱动下载地址

Chrome驱动官方最新版下载地址:https://googlechromelabs.github.io/chrome-for-testing/ 有稳定版&#xff0c;开发版等版本可以选择下载 选择 操作系统复制下载链接直接下载

机器学习笔记之优化算法(十九)牛顿法与正则化

机器学习笔记之优化算法——再回首:牛顿法与正则化 引言回顾&#xff1a;经典牛顿法及其弊端牛顿法&#xff1a;算法步骤迭代过程中可能出现的问题正则化 Hessian Matrix \text{Hessian Matrix} Hessian Matrix与相应问题 引言 本节我们介绍经典牛顿法在训练神经网络过程中的迭…

【Flink实战】Flink中的分流

Flink中的分流 在Flink中将数据流切分为多个子数据流&#xff0c;子数据流称为”旁路输出数据流“。 #mermaid-svg-bnbf0HOpEUsgi9nh {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-bnbf0HOpEUsgi9nh .error-icon{…