【暑期每日一练】 day6

news2024/11/27 14:29:25

目录

选择题

(1)

解析 

(2)

解析 

(3)

解析

(4)

解析

(5)

解析

编程题

题一

描述

示例

提示 

解析 

代码实现

题二

描述

示例

提示 

解析 

代码实现

总结


选择题

(1)

1、以下叙述中正确的是( )

A: 只能在循环体内和switch语句体内使用break语句
B: 当break出现在循环体中的switch语句体内时,其作用是跳出该switch语句体,并中止循环体的执行
C: continue语句的作用是:在执行完本次循环体中剩余语句后,中止循环
D: 在while语句和do-while语句中无法使用continue语句
答案:A

解析 

break语句通常用在循环语句和switch语句中。当break用于switch语句中时,可使程序跳出switch而执行switch以后的语句;当break语句用于do-while、for、while循环语句中时,可使程序终止循环而执行循环后面的语句,即满足条件时便跳出循环。continue语句的作用是跳过循环体中剩余的语句而强行执行下一次循环。B、C和D三个选项中均有错误。因此A选项正确

(2)

2、下列 for 循环的次数为( )

for(int i = 0 ; i || i++ < 5;);

A: 0 B: 5 C: 1 D: 无限
答案: D

解析 

逻辑或运算如果前表达式为真,后表达式不计算,第一次循环时i为0,执行i++,第二次循环时i为1,是个真值,不再执行i++,也就死循环了

(3)

3、以下描述中正确的是( )

A: 由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B: do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
C: 在do-while循环体中,不一定要有能使while后面表达式的值变为零("假")的操作
D: do-while循环中,根据情况可以省略while
答案:C

解析

do-while循环中的循环体通常都是复合语句代码块,A错误,while(表达式)后面要写分号,B错误,while不能省,D错误

(4)

4、设函数 fun 和实参数组的说明是如下形式,则对函数的调用语句中,正确的是( )

void fun(char ch,float x[]);
float a[10];

A: fun("asd" , a[]); B: fun('x' , A); C: fun('68' , 2.8); D: fun(32 , a)
答案: D

解析

A选项数组传参只需要写数组名就行,a[]时错误的,B选项第二个参数写成了大写,错了。C选项第二个参数是浮点数,但是fun函数的第二参数是数组不匹配,fun函数参数x需要传一个数组或者float *指针,只有D选项的形式是正确的。

(5)

5、在c语言中,一个函数不写返回值类型,默认的返回类型是( )

A: int B: char C: void D: 都不是
答案:A

解析

一个函数不写返回值类型,默认的返回类型是int,但不提倡这么做
 

编程题

题一

描述

给你一个整数数组 nums ,其中总是存在 唯一的 一个最大整数 。

请你找出数组中的最大元素并检查它是否 至少是数组中每个其他数字的两倍 。如果是,则返回 最大元素的下标 ,否则返回 -1 

示例

提示 

解析 

暴力破解:双重循环遍历数组,对每个元素判断是否是其他元素的两倍。或者先遍历一遍找出最大值,然后遍历一遍判断是否是其他数字二倍。
更优思想:一次遍历找出最大的数字和次大的数字,判断最大的数字是否是次大数字2倍即可

代码实现

int dominantIndex(int* nums, int numsSize) {
	if (numsSize == 1) return 0;//特殊情况只有一个元素则特殊处理
	int max, sec, idx;
	//先对最大和次大进行选择赋值,注意max和sec不能随意赋初值,因为有可能你赋予的初值就是最大值
	//因此要使用数组中的数据进行初值赋予。
	if (nums[0] > nums[1]) {
		max = nums[0];
		idx = 0;
		sec = nums[1];
	}
	else {
		max = nums[1];
		idx = 1;
		sec = nums[0];
	} 
	for (int i = 2; i < numsSize; i++) {
		if (nums[i] > max) { //当前元素大于max,则意味着要替换
			sec = max; //先将原先最大的保存到sec中,则他就是次大的
			max = nums[i]; //再将最大的放到max中
			idx = i; //保存max值的下标
		}
		else if (nums[i] > sec) {
			//避免刚好nums[0]就是最大的情况,因为不切换最大而导致次大无法判断情况
			sec = nums[i];
		}
	} if
		(max >= sec * 2) {
		return idx;
	} 
	return - 1;
}

题二

描述

给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。

示例

提示 

解析 

暴力破解即可,将 nums1 数组中的每一个数字,判断是否存在于 nums2 数组中,通过这种方式找出交集数据,找出之后判断这个数组是否已经在返回数组中存在,不存在则添加到返回数组中即可

代码实现

int* intersection(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize) {
	static int arr[1000];
		* returnSize = 0;
	int i, j, k;
	for (i = 0; i < nums1Size; i++) {
		for (j = 0; j < nums2Size; j++) {
			if (nums2[j] == nums1[i]) break;//判断nums1[i] 是否在nums2数组中
		} if
			(j == nums2Size) {// nums1中i位置的数据在nums2数组中不存在,则非交集数据
			continue;
		} 
		//只有在另一个数组中存在的数据才能走下来,判断是否已经被添加到返回数组中
			for (j = 0; j < *returnSize; j++) {
				if (nums1[i] == arr[j]) break;//判断nums1[i] 是否在 arr 这个返回数组中
			} if
				(j == *returnSize) {//不在返回数组中,则添加到返回数组中
				arr[*returnSize] = nums1[i];
				*returnSize += 1;
			}
	} 
	return arr;
}

总结

关于今日练习讲解到这儿,欢迎各位留言交流以及批评指正,如果文章对您有帮助或者觉得作者写的还不错可以点一下关注,点赞,收藏支持一下。

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

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

相关文章

如何将表格中的状态数据转换为Tag标签显示

考虑到系统前端页面的美观程度&#xff0c;通常通过Tag标签来代替某条数据中的状态信息。仅通过一点操作&#xff0c;便能够使得页面美观程度得到较大提升&#xff0c;前后对比如下所示。代码基于Vue以及Element-ui组件实现。 修改前&#xff1a; 修改后&#xff1a; 修改前…

阿里内部一份手打 524 页《Java 中高级核心知识》令人醍醐灌顶

说在前面 知乎上有个很热门的话题&#xff1a;中国的程序员数量是否已经饱和或者过剩&#xff1f; 今年大家都有一个共同的感受&#xff1a;工作不好找&#xff0c;面试越来越难。 其实&#xff0c;造成这种现象不仅是因为今年受疫情影响&#xff0c;倒闭了很多公司&#xff…

Excalidraw 简介及 Docker Compose 部署指南

家人们好&#xff0c;我们在工作生活中经常需要画些图&#xff0c;我们往期了已经出过draw-io私有化部署的文章了&#xff0c;今天我要向大家介绍一款名为 Excalidraw 的绘图工具&#xff0c;这款工具了我个人非常喜欢使用&#xff0c;是因为它可以修改成类似于手写体的字体&am…

IDEA Groovy 脚本一键生成实体类<mybatisplus>

配置数据库&#xff08;mysql&#xff09; 一键生成&#xff08;右键点击table&#xff09; 配置自己的groovy脚本 import com.intellij.database.model.DasTable import com.intellij.database.util.Case import com.intellij.database.util.DasUtil import com.intellij.data…

Vue过度与动画

Test.vue:元素外面包一层transition&#xff0c;展示的时候就默认调用style里面的v-enter-action和v-leave-action执行进入和退出效果&#xff0c;appear上来默认展示动画效果 <template><div><button click"isShow !isShow">显示/隐藏</butto…

消息队列- 背景知识

这里写目录标题 前言消息队列消息队列的作用常见的消息队列消息队列的核心概念BrokerServer核心概念消息队列的核心API消息队列与消费者之间的工作模式交换机的类型消息队列的持久化 总结 前言 消息队列,不知道大家是否陌生,如果说消息队列感到陌生的话, 有一个模型肯定大家都…

【驱动开发day4作业】

头文件代码 #ifndef __HEAD_H__ #define __HEAD_H__ typedef struct{unsigned int MODER;unsigned int OTYPER;unsigned int OSPEEDR;unsigned int PUPDR;unsigned int IDR;unsigned int ODR; }gpio_t; #define PHY_LED1_ADDR 0X50006000 #define PHY_LED2_ADDR 0X50007000 #…

springboot 自定义注解 ,实现接口限流(计数器限流)【强行喂饭版】

思路&#xff1a;通过AOP拦截注解标记的方法&#xff0c;在Redis中维护一个计数器来记录接口访问的频率&#xff0c; 并根据限流策略来判断是否允许继续处理请求。 另一篇&#xff1a;springboot 自定义注解 &#xff0c;aop切面Around&#xff1b; 为接口实现日志插入【强行喂…

LeetCode第 N 个泰波那契数 (认识动态规划)

认识动态规划 编写代码代码空间优化 链接: 第 N 个泰波那契数 编写代码 class Solution { public:int tribonacci(int n) {if(n 0){return 0;}else{if(n 1 || n 2)return 1;}vector<int> dp(n 1);dp[0] 0;dp[1] 1;dp[2] 1;for(int i 3;i < n;i){dp[i] dp[i-3]…

多巴胺色彩青春来袭!体验全能轻薄本华硕无畏Pro15 2023

这个烈日炎炎的夏季&#xff0c;还是来临了&#xff01; 40℃的高温&#xff0c;恍然才知道这个地球真的是在“发光发热”&#xff0c;对于莘莘学子来说&#xff0c;青春的炙热与憧憬也在即将告别的毕业季中变得热烈。回首停留在校园中的一幕幕&#xff0c;总有一些记忆&#…

javascript 7种继承-- new操作符的原理以及实现

new 运算符 new 运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例。 MDN参考资料&#xff1a;点击 语法 new constructor[([arguments])]参数 constructor 一个指定对象实例的类型的类或函数。 arguments 一个用于被 constructor 调用的参数列表。 …

JAVA基础-基于多线程的聊天程序

引言 什么是程序 &#xff1f; 一个程序可以有多个进程 。程序是一段静态的代码&#xff0c;它是应用程序执行的蓝本。 什么是进程 &#xff1f; 一个进程可以有多线程 进程是指一种正在运行的程序&#xff0c;有自己的地址空间。 作为蓝本的程序可以被多次加载到系统的不同内…

Visual Studio Code配置免密远程开发环境

VSCode安装插件 要是想连接远程服务器&#xff0c;先在本地安装下面的插件&#xff08;红色圈起来的需要装&#xff09; 连接远程服务器 配置服务器信息 保存然后再连接&#xff0c;输入密码&#xff0c;如果能连接上说明是没问题的&#xff0c;下面开始免密登录 免密配置 客…

【多线程带来的的风险-线程安全的问题的简单实例-线程不安全的原因】

文章目录 前言线程不安全的5大原因1. 抢占式执行和随机调度2. 多个线程同时修改一个变量(共享数据&#xff09;3. 修改操作不是原子性的4. 内存可见性5. 指令重排序 前言 什么是线程安全&#xff1f; 简单来说&#xff0c;如果多线程环境下代码运行的结果是符合我们预期的&am…

7月《中国数据库行业分析报告》已发布,聚焦图数据库、首发【全球图数据库产业图谱】

为了帮助大家及时了解中国数据库行业发展现状、梳理当前数据库市场环境和产品生态等情况&#xff0c;从2022年4月起&#xff0c;墨天轮社区行业分析研究团队出品将持续每月为大家推出最新《中国数据库行业分析报告》&#xff0c;持续传播数据技术知识、努力促进技术创新与行业生…

Yunfly 一款高效、性能优异的node.js企业级web框架

介绍 Yunfly 一款高性能 Node.js WEB 框架, 使用 Typescript 构建我们的应用。 使用 Koa2 做为 HTTP 底层框架, 使用 routing-controllers 、 typedi 来高效构建我们的 Node 应用。 Yunfly 在 Koa 框架之上提升了一个抽象级别, 但仍然支持 Koa 中间件。在此基础之上, 提供了一…

不同薪资阶段的Android 对“binder 的理解”

转载地址&#xff1a;https://zhuanlan.zhihu.com/p/420660511 面试官提了一个问题&#xff0c;我们来看看三位应聘者的表现如何吧 自认为无所不知&#xff0c;水平已达应用开发天花板&#xff0c;目前月薪 10k 面试官️&#xff1a;谈谈你对 binder 的理解 A&#xff1a;bind…

5-linux中的定时任务调度

定时任务调度 crond 任务调度概述基本语法常用选项快速入门应用实例crond 相关指令 at 定时任务基本介绍at 命令格式at 命令选项at 时间的定义其他指令 crond 任务调度 crontab 进行 定时任务调度 概述 任务调度&#xff1a;是指系统在某个时间执行的特定的命令或程序 任务…

CISP-PTE和CISP-PTS哪个更适合?

CISP-PTE和CISP-PTS是两个与网络安全渗透测试相关的认证&#xff0c;虽然它们有相似之处&#xff0c;但也存在一些区别。 CISP-PTE&#xff1a;证书持有人员主要从事信息安全技术领域网站渗透测试工作&#xff0c;具有规划测试方案、编写项目测试计划、编写测试用例、测试报告…

【C++ 异步任务 】`std::future`

1.基础知识 std::future 是 C 标准库中的一个类模板&#xff0c;定义在 <future> 头文件中。它提供了一种异步操作的机制&#xff0c;用于获取异步任务的结果。 std::future 类模板表示一个未来可能会获得的值。你可以将一个异步任务交给 std::future 来管理&#xff0…