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

🔥博客主页:小王又困了

📚系列专栏:每日一练

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

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


目录

一、选择题

📝1.第一题 

📝2.第二题

📝3.第三题

📝4.第四题

二、编程题

📝1.第一题 

📝2.第二题


🗒️前言:

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

一、选择题

📝1.第一题 

若有以下程序,则运行后的输出结果是( )

#include<stdio.h>
#define N 2
#define M N + 1
#define NUM (M + 1) * M / 2
int main()
{printf("%d\n", NUM);return 0;
}

 💡解题思路:

本题考查的是宏定义,我们只要在进行操作之前将对应的代码换成对应的宏。我们要打印NUM,只需要将NUM换成(M + 1) * M / 2,M也有宏定义,继续转换,转换成(N+1+1)*N+1/2,最后将表达式中的N也进行替换,就可以计算出结果,(2+1+1)*2+1/2的结果为8.5,但我们打印的是整型数据,所以结果是8。我们在替换时一步一步去换,不要急于求成想一步到位,最重要的是在替换过程中我们不要加任何符号,不要根据自己的主观臆断添加括号。

📝2.第二题

 下面3段程序代码的效果一样吗( )

int b;
(1)const int *a = &b;
(2)int const *a = &b;
(3)int *const a = &b;

💡解题思路:

本题就是考察我们对 const 修饰指针变量的理解,const 在不同的位置,表达的意思就不相同。

  • const放在*的左边,const 修饰的是a指针解引用之后的结果,表示a指向的内容不能修改。
  • const放在*的右边,const 修饰的是指针变量a本身,表示a的指向不能修改。

(1)和(2)的const都在*的左边,所以它们效果一样。 

📝3.第三题

如下函数的 f(1) 的值为( )

int f(int n)
{static int i = 1;if(n >= 5)return n;n = n + i;i++;return f(n);
}

💡解题思路:

本题主要考察的就是 static 修饰的静态变量,静态变量的特点:

  • 静态变量不是存放在栈区,而是存放在静态区,所以它的生命周期会延长,是整个程序运行期间。
  • 静态变量只初始化一次,第二次在遇到该变量时,就不会重新定义。

进入函数 n=1,首先把静态变量 i 初始化为1,n<5,条件不成立,不执行 if 语句,n=n+i,则n=2,i++,则i=2,返回f(2)继续执行,结果为n=4,i=3,再次执行结果为n=7,i=4,此时7>5,返回n,结果为7。

📝4.第四题

如下函数是求两个int数字最大公约数的,指出其中存在的问题()

int gcd(char x,char y)
{int min = x < y ? x : y;for (min = 0; min > 0; min--){if (x % min = 0 && y % min = 0){return min;}}
}

💡解题思路:

问题一:形参的类型不对,我们要求的是 int 型的最大公约数,而形参是用 char 类型接收的,这样数据会截断,会使程序出现问题。

问题二:min 的初始化不正确,当 min 初始化为0,min>0为假,循环一次也不会执行。正确的值应该是上面条件操作符计算得到的结果。

问题三:对赋值和等于的混淆,= 在数学中表达的意思是等于,而在我们编程学习中 = 是赋值,而== 才是等于的意思。当我们记不清时,将数字写在左边,表达式写在右边,例如:0==x % min,这样在写错时编译器会报错。

二、编程题

📝1.第一题 

💡解题思路:

我们先通过一次遍历,找到数组中最大的数,并且记录下最大数的下标;然后再进行一次循环,通过 max<nums[i]*2  判断,如果数组中其他数的二倍大于最大的数,就返回-1;如果最大数都大于其他数的二倍,就返回最大数的下标,这里要注意不能与自身比较,所以要用 i!=index 去掉最大数。

int dominantIndex(int* nums, int numsSize)
{int max=0;int index=0;for(int i=0;i<numsSize;i++){if(nums[i]>max){max=nums[i];index=i;}}for(int i=0;i<numsSize;i++){if(max<nums[i]*2&&i!=index){return -1;}}return index;
}

📝2.第二题

 💡解题思路:

这道题考察我们对异或操作符的理解,异或:对应的二进制位相同为0, 不同则为1。

  • 两个相同的数异或,得到的结果为0。
  • 0与一个数异或,结果仍为这个数。

基于这两个特点,这道题对数组中的所有数据进行逐一异或就可以解决得到奇数次的数字,因为偶数次的数字都被异或成为0了,最后单独保留了奇数次的数字。

#include <stdio.h>
int main()
{int n;while(scanf("%d", &n)!=EOF){int num = 0, tmp = 0;for (int i = 0; i < n; i++) {scanf("%d", &tmp);num ^= tmp;}printf("%d\n", num);} return 0;
}

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

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

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

相关文章

SpringBoot项目,执行install命名时,控制台显示:Unable to find main class

构建springboot多模块项目&#xff0c;启动时可以正常启动&#xff0c;执行了父工程的maven的clean也没问题&#xff0c;执行install的时候就报错了&#xff1a;Unable to find main class。显而易见 这个错是找不到主类。 记录下解决过程&#xff1a; 首先看自己项目的父工程…

鸿蒙系列-如何使用好 ArkUI 的 @Reusable?

如何使用好 ArkUI 的 Reusable&#xff1f; OpenHarmony 组件复用机制 在ArkUI中&#xff0c;UI显示的内容均为组件&#xff0c;由框架直接提供的称为 系统组件&#xff0c;由开发者定义的称为 自定义组件。 在进行 UI 界面开发时&#xff0c;通常不是简单的将系统组件进行组合…

基于Pytorch的神经网络部分自定义设计

一、基础概念&#xff08;学习笔记&#xff09; &#xff08;1&#xff09;训练误差和泛化误差[1] 本质上&#xff0c;优化和深度学习的目标是根本不同的。前者主要关注的是最小化目标&#xff0c;后者则关注在给定有限数据量的情况下寻找合适的模型。训练误差和泛化误差通常不…

JavaScript设计模式(一)——构造器模式、原型模式、类模式

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1f4c3;个人状态&#xff1a; 研发工程师&#xff0c;现效力于中国工业软件事业 &#x1f680;人生格言&#xff1a; 积跬步…

jmeter+nmon+crontab简单的执行接口定时压测

一、概述 临时接到任务要对系统的接口进行压测&#xff0c;上面的要求就是&#xff1a;压测&#xff0c;并发2000 在不熟悉系统的情况下&#xff0c;按目前的需求&#xff0c;需要做的步骤&#xff1a; 需要有接口脚本需要能监控系统性能需要能定时执行脚本 二、观察 >针…

Spring MVC:@RequestMapping

Spring MVC @RequestMapping属性@RequestMapping @RequestMapping, 是 Spring Web 应用程序中最常用的注解之一,主要用于映射 HTTP 请求 URL 与处理请求的处理器 Controller 方法上。使用 @RequestMapping 注解可以方便地定义处理器 Controller 的方法来处理不同的 HTTP 请求…

分类预测 | MATLAB实现SSA-CNN-SVM基于麻雀算法优化卷积支持向量机分类预测

分类预测 | MATLAB实现SSA-CNN-SVM基于麻雀算法优化卷积支持向量机分类预测 目录 分类预测 | MATLAB实现SSA-CNN-SVM基于麻雀算法优化卷积支持向量机分类预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 MATLAB实现SSA-CNN-SVM基于麻雀算法优化卷积支持向量机分类预测…

[linux实战] 华为云耀云服务器L实例 Java、node环境配置

系列文章目录 第一章 [linux实战] 华为云耀云服务器L实例 Java、node环境配置 文章目录 系列文章目录前言一、任务拆解二、修改密码三、配置安全规则四、远程登录并更新apt五、安装、配置JDK环境5.1、安装openjdk,选择8版本5.2、检查jdk配置 六、安装、配置git6.1、安装git6.2…

华为OD机试 - 租车骑绿道 - 双指针(Java 2023 B卷 100分)

目录 一、题目描述二、输入描述三、输出描述四、解题思路1、输入2、输出3、说明4、双指针算法 五、Java算法源码六、效果展示 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 一、题目描述 部门组织绿岛骑行团建活动&#xff0c;租用公共双人自行车骑行&#xff0c;…

科技资讯|苹果发布新专利:可在车内定位苹果的智能设备

根据美国商标和专利局近期公示的清单&#xff0c;苹果公司获得了一项名为《车内定位移动设备的系统和方式》专利&#xff0c;概述了在车内狭窄空间内如何定位 iPhone 等移动设备。 Find My 服务现阶段没有使用 UWB 来追踪 iPhone 或者 iPad&#xff0c;而是依赖 GPS 等相关辅…

数据结构--树4.1

目录 一、树的定义 二、结点的分类 三、结点间的关系 四、结点的层次 五、树的存储结构 一、树的定义 树&#xff08;Tree&#xff09;是n&#xff08;n>0&#xff09;个结点的有限集。当n0时称为空树&#xff0c;在任意一个非空树中&#xff1a; ——有且仅有一个特定的…

运行命令出现错误 /bin/bash^M: bad interpreter: No such file or directory

在系统上运行一个 Linux 的命令的时候出现下面的错误信息&#xff1a; -bash: ./build.sh: /bin/bash^M: bad interpreter: No such file or directory 这个是在 Windows 作为 WSL 的时候出的错误。 原因和解决 出现问题的原因在于脚本在 Windows 中使用的回车换行和 Linux …