C语言假期作业 DAY 10

一、选择题

1、求函数返回值,传入 -1 ,则在64位机器上函数返回( )

int func(int x)
{
int count = 0;
while (x)
{
count++;
x = x&(x - 1);//与运算
} r
eturn count;
}

A: 死循环

B: 64

C: 32

D: 16

答案解析

正确答案: C
x=x&(x-1) 这个表达式执行一次就会将 x 的 2 进制中最右边的 1 去掉,在 x 变成 0 之前,表达式能执行几次,就去掉几个 1 ,所以 这个代码实现了求一个有符号整数二进制补码中1 的个数的功能,我们知道 -1 的补码是全 1 ,而 int 类型 4 个字节 32 位,选 C  

2、读代码选结果( )

int count = 0;
int x = -1;
while(x)
{
count++;
x = x >> 1;
}
printf("%d",count);
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;
}

A: 1
B: 2
C: 32
D: 死循环,没结果

答案解析

正确答案: D

此题一个关键,有符号数右移运算高位是补符号位的,负数的符号位是 1 ,所以 x 永远不会变为 0 ,是个死循环

3、下述赋值语句错误的是( )

A: a = (b = (c = 2 , d = 3))
B: i++
C: a/b = 2
D: a = a < a + 1

答案解析

正确答案: C

C 选项中 a/b 是表达式,表达式计算的结果是一个值不能做左值

4、若有 int w=1, x=2, y=3, z=4; 则条件表达 w < x ? w : y < z ? y : z 的值是( )

A: 1
B: 2
C: 3
D: 4

答案解析

正确答案: A

w<x?w:(y<z?y:z) 加个括号应该就好理解了 w<x 为真,返回 w ,即表达式的值为 1

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

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;
}

A: 0,0

B: 0,1

C: 1,0

D: 1,1 

答案解析

正确答案: A
k=(n=b<a)&&(m=a); 这部分的执行顺序如下:先执行 n=b<a 部分,其中,关系运算符优先级高于赋值运算符,所以先算b<a,得到 0 , n=0 赋值运算的结果将作为括号内表达式的结果,即 (n=b<a)&&(m=a) 转换成 (0)&&(m=a) , && 运算前表达式为假,则后面的括号(m=a) 不运算, m 值还是 0 ,最后, && 的结果是 0 ,即 k=0

二、编程题

1:不用加减乘除做加法

不用加减乘除做加法_牛客题霸_牛客网 (nowcoder.com)

描述

写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。

数据范围:两个数都满足 0 \le n \le 10000≤n≤1000
进阶:空间复杂度 O(1)O(1),时间复杂度 O(1)O(1)

示例1

输入:1,2

返回值:3

示例2

输入:0,0

返回值:0

【答案解析】

十进制相加思想: 15+07 , 先计算不考虑进位的相加结果 12 (因为 5+7 的不考虑进位的结果是 2 ,遇 10 进位嘛),然后计算进位 5+7 进位是 10 ,则 10 与 12 再次相加,得到 22 ,进位为 0 ,则计算到此结束。
这里使用二进制求和完成,思想类似,但是二进制计算相加和进位不需要使用 + 符号二进制相加思想:与十进制相同,先计算不考虑进位的相加结果( 0+0 得 0 , 1+1 进位得 0 , 1+0 得 1 ),使用异或可以取得; 然后计算相加的进位结果(同 1 的位置左移一位即可),使用相与后左移取得。

示例

int Add(int num1, int num2)
{
	while (num2 != 0) 
	{ //进位不为0则持续与相加结果进行相加 
		int tmp = num1 ^ num2;     //得到每位相加不考虑进位的数据 
		num2 = (num1 & num2) << 1; //同1的位相加则会进位
		num1 = tmp;
	}
	return num1;
}

2:LeetCode448. 找到所有数组中消失的数字

448. 找到所有数组中消失的数字 - 力扣(LeetCode)

给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。

示例 1

输入:nums = [4,3,2,7,8,2,3,1]
输出:[5,6]


示例 2

输入:nums = [1,1]
输出:[2]
 

提示

n == nums.length
1 <= n <= 105
1 <= nums[i] <= n

进阶

你能在不使用额外空间且时间复杂度为 O(n) 的情况下解决这个问题吗? 你可以假定返回的数组不算在额外空间内。

【答案解析】

numsSize 大小的数组,其中每个元素的数据在 [1, numsSize] 区间之内,解法其实并不复杂,以数组元素的绝对值作为下标,将对应位置的数据置为负数,比如 0 号位置是 3 ,则把 3 号位置的数据重置为负值,等到数组遍历重置完毕,只有缺失的这个数字对应的位置保留正数,其他出现过的数字位置都会是负数, 要注意不要重复设置负数,因为负负得正。

示例

 

int* findDisappearedNumbers(int* nums, int numsSize, int* returnSize) 
{
	for (int i = 0; i < numsSize; i++)
	{ 
		if (nums[abs(nums[i]) - 1] > 0) nums[abs(nums[i]) - 1] = -(nums[abs(nums[i]) - 1]);
	}
	int* ret = (int*)malloc(sizeof(int) * (numsSize)); 
	*returnSize = 0; 
	for (int i = 0; i < numsSize; i++)
	{
		if (nums[i] > 0) 
		{ 
			ret[*returnSize] = i + 1;
			*returnSize += 1; 
		}
	}
	return ret;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HCIA-datacom数通题库和录播视频资料

HCIA-Datacom&#xff0c;是华为数通认证的初级考试&#xff0c;培训与认证具备数通基础通用知识和技能水平的工程师&#xff0c;只是入门了解数通的一些基础通用知识&#xff0c;适用于小白了解和学习数通知识点起点。 个人建议还是有必要考的&#xff0c;如果在企业考试考试…

ffplay——QT项目移植

一、ffmpeg源码编译 参考&#xff1a; https://blog.csdn.net/sgzed/article/details/119850119 在生成时做了一些修改&#xff1a; ./configure --toolchainmsvc --enable-shared --enable-postproc --enable-gpl --prefixwindows 二、对文件做调整 ffplay只需要三个文件&…

品牌活动 | 阿里云云原生技术实践营:大模型+CloudOS,实现企业智能化

近日&#xff0c;由阿里云举办的“云原生技术实践营-应用和容器实践专场”在广州顺利开展。行云创新CEO马洪喜作为受邀嘉宾之一&#xff0c;参加了本次活动&#xff0c;分享了主题为“API大语言模型&#xff0c;以非侵入式实现企业业务智能化变革”的演讲&#xff0c;向参会者展…

JS判断类型的方法和对应的局限性(typeof、instanceof和Object.prototype.toString.call()的用法)

JS判断类型的方法和对应的局限性(typeof、instanceof和Object.prototype.toString.call()的用法&#xff09; 一、typeof 返回&#xff1a; 该方法返回小写字符串表示检测数据属于什么类型&#xff0c;例如&#xff1a; 检测函数返回function 可判断的数据类型&#xff1a…

Vcenter 创建 虚拟机配置 Thin Provision 模式 disk

介绍 在vCenter中选择虚拟磁盘格式通常也取决于您的需求和使用情况。 vSphere支持多种虚拟磁盘格式&#xff0c;以下是一些常见的格式&#xff1a; Thick Provision Lazy Zeroed&#xff1a;这是vSphere中的默认格式。它会预分配虚拟磁盘所需的存储空间&#xff0c;但只有在虚…

Meta “地平线世界”移动端应用即将上线,手机快乐元宇宙?

根据海外记者 Janko Roettgers 的报道&#xff0c;Meta 预计很快推出移动版的 VR 元宇宙服务 "地平线世界"&#xff0c;这是Meta 长期开发的产品。 根据最新报道&#xff0c;Meta宣布正在研发“地平线世界”的移动版&#xff0c;并表示这一服务已经可以在Quest VR设…

杜教筛的小结

总所周知&#xff0c;杜教筛是一个可以快速求积性函数前缀和的工具&#xff0c;为了快速理解杜教筛&#xff0c;自己给自己写了一个文章快速理解。 它可以在O(n2/3)的复杂度快速求出某个积性函数的前缀和。 例如&#xff0c;我们想要知道 f f f函数的前缀和&#xff0c;我们可…

《向量数据库指南》——腾讯云向量数据库Tencent Cloud VectorDB产品特性,架构和应用场景

腾讯云向量数据库(Tencent Cloud VectorDB)是一款全托管的自研企业级分布式数据库服务,专用于存储、检索、分析多维向量数据。该数据库支持多种索引类型和相似度计算方法,单索引支持 10 亿级向量规模,可支持百万级 QPS 及毫秒级查询延迟。腾讯云向量数据库不仅能为大模型提…

刷题笔记:day 1

力扣 283 移动零 解法一&#xff1a;双指针 定义一个指针 cur 去遍历数组 &#xff1b; 定义一个指针 dest 去指向已处理区间中&#xff0c;非零的最后一个位置。 然后让 指针 cur 遇到 0 &#xff0c;就往后走 &#xff1b; 遇到的数不是 0 &#xff0c;就与 dest指针的下…

Django使用用户列表的展示和添加

接着上一篇&#xff1a;https://blog.csdn.net/javascript_good/article/details/132027702 来实现用户表的查询和添加 1、创建数据库表 在models.py 中&#xff0c;增加UserInfo类&#xff0c;包括字段姓名、密码、年龄、账号余额、入职时间、所属部门、性别 verbose_name 就…

web-6-深入理解JSP:探索其核心概念和特性

JSP 今日目标&#xff1a; 理解 JSP 及 JSP 原理 能在 JSP中使用 EL表达式 和 JSTL标签 1&#xff0c;JSP 概述 JSP&#xff08;全称&#xff1a;Java Server Pages&#xff09;&#xff1a;Java 服务端页面。是一种动态的网页技术&#xff0c;其中既可以定义 HTML、JS、CSS…

医药化工企业洁净厂房改造消防防爆安全的重要性

设计 【摘要】&#xff1a;近年来&#xff0c;我国医药化工企业规模不断扩大。医药化工企业的情况复杂&#xff0c;稍有不慎将发生火灾或者爆炸&#xff0c;对人员生命以及财产安全造成巨大的损害&#xff0c;酿成悲剧。所以&#xff0c;“三同时”原则的落实&#xff0c;如何…

分布式事务之CAP理论和BASE理论详解

&#x1f680; 分布式事务 &#x1f680; &#x1f332; AI工具、AI绘图、AI专栏 &#x1f340; &#x1f332; 如果你想学到最前沿、最火爆的技术&#xff0c;赶快加入吧✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;CSDN-Java领域优质创作者&#x1f3c6;&…

【软件安装】MATLAB_R2021b for mac 安装

Mac matlab_r2021b 安装 下载链接&#xff1a;百度网盘 下载链接中所有文件备用。 我所使用的电脑配置&#xff1a; Macbook Pro M1 Pro 16512 系统 macOS 13.5 安装步骤 前置准备 无此选项者&#xff0c;自行百度 “mac 任何来源”。 1 下载好「MATLAB R2021b」安装文…

【RabbitMQ】golang客户端教程1——HelloWorld

一、介绍 本教程假设RabbitMQ已安装并运行在本机上的标准端口&#xff08;5672&#xff09;。如果你使用不同的主机、端口或凭据&#xff0c;则需要调整连接设置。如果你未安装RabbitMQ&#xff0c;可以浏览我上一篇文章Linux系统服务器安装RabbitMQ RabbitMQ是一个消息代理&…

学习笔记|大模型优质Prompt开发与应用课(二)|第五节:只需3步,优质Prompt秒变应用软件

原作者&#xff1a;依依│百度飞桨产品经理 一乔│飞桨开发者技术专家 分享内容 01:大模型应用简介 02:LLM应用开发范式 03: Al Studio大模型社区 04:AI对话类应用开发技巧 大模型技术爆发&#xff0c;各类应用产品涌现 文心产业级知识增强大模型 工作中的“超级助手”—…

【数据结构】实验十一:图

实验十一 图 一、实验目的与要求 1&#xff09;掌握图的存储表示与操作实现。 2&#xff09;掌握图的连通性及其应用。 二、 实验内容 1.用邻接表存储一个图形结构&#xff0c;并计算每个顶点的度。 2. 采用深度和广度优先搜索算法&#xff0c;遍历上述这张图&#xff0c;…

网络基础-认识每层的设备和每层的特点用途

目录 网络层次常见设备各层介绍数据链路层网络层传输层应用层 网络层次 常见设备 各层介绍 数据链路层 有了MAC地址。数据链路层工作在局域网中的&#xff0c;以帧为单位进行传输和处理数据。 网络层 网络层有了IP。不同的网络通过路由器连接成为互联网 路由器的功能:   …

数据挖掘实战:基于KMeans算法对超市客户进行聚类分群(文末送书)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

1.2 eureka注册中心,完成服务注册

目录 环境搭建 搭建eureka服务 导入eureka服务端依赖 编写启动类&#xff0c;添加EnableEurekaServer注解 编写eureka配置文件 启动服务,访问eureka Euraka服务注册 创建了两个子模块 在模块里导入rureka客户端依赖 编写eureka配置文件 添加Services 环境搭建 创建父…