当前位置: 首页 > news >正文

C语言假期作业 DAY 14

一、选择题

1、有以下函数,该函数的功能是( ) 

int fun(char *s)
{char *t = s;while(*t++);return(t-s);
}

A: 比较两个字符的大小

B: 计算s所指字符串占用内存字节的个数

C: 计算s所指字符串的长度

D: 将s所指字符串复制到字符串t中

答案解析

正确答案: B
循环在 *t 为 0 时停止,同时 t++ , t 最后会停在字符串结束的 '\0' 之后的一个位置, t 作为尾部指针减去头部指针就是整个字符串占用内存的字节数,包含\0 在内;而 c 答案字符串长度不包括最后的 \0
 

2、若有“ float a[3]={1.5,2.5,3.5},*pa=a;*(pa++)*=3; ”,则 *pa 的值是( ) 

A: 1.5

B: 2.5

C: 3.5

D: 4.5

答案解析

正确答案: B
在 *pa=a 中指针 pa 指向 a[0] ; pa++ 返回值仍是操作之前的值; *(pa++) 取 pa 指向的地址的值; *(pa++)*=3 将该值变为原来的3 倍,也就是数组 a 的第一个值为 4.5 ;由于 pa++ 之后 pa 指针移动了 sizeof(float) 个字节,所以 pa 指向 a[1], 所以值为 2.5

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

#include <stdio.h>
int main()
{int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}, *p = a + 5, *q = NULL;*q = *(p+5);printf("%d %d\n", *p, *q);return 0;
}

A: 运行后报错

B: 6 6

C: 6 11

D: 5 10

答案解析

正确答案: A
指针 q 初始化为 NULL ,接着又解引用指针 q ,是错误的,对 NULL 指针是不能解引用的。

4、设有定义 char *p[]={"Shanghai","Beijing","Honkong"}; 则结果为 j 字符的表达式是( )

A: *p[1] +3

B: *(p[1] +3)

C: *(p[3] +1)

D: p[3][1]

答案解析

正确答案: B
B 选项, p 是个 char* 类型的数组, p[1] 拿到字符串 "beijing" 的首地址,再加 3 便是 'j' 的地址,解地址拿到 'j'

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

A: 即使不进行强制类型转换,在进行指针赋值运算时,指针变量的基类型也可以不同

B: 如果企图通过一个空指针来访问一个存储单元,将会得到一个出错信息

C: 设变量p是一个指针变量,则语句p=0;是非法的,应该使用p=NULL;

D: 指针变量之间不能用关系运算符进行比较

答案解析

正确答案: B
A 选项描述不正确,不同类型指针一般不可以直接赋值; C 选项中, p=NULL; 和 p=0; 是等价的; D 选项中,指向同一数组的两指针变量进行关系运算可表示它们所指数组元素之间的位置关系。B 选项正确

二、编程题

1:LeetCode面试题 16.15. 珠玑妙算

面试题 16.15. 珠玑妙算 - 力扣(LeetCode)

描述

珠玑妙算游戏(the game of master mind)的玩法如下。

计算机有4个槽,每个槽放一个球,颜色可能是红色(R)、黄色(Y)、绿色(G)或蓝色(B)。例如,计算机可能有RGGB 4种(槽1为红色,槽2、3为绿色,槽4为蓝色)。作为用户,你试图猜出颜色组合。打个比方,你可能会猜YRGB。要是猜对某个槽的颜色,则算一次“猜中”;要是只猜对颜色但槽位猜错了,则算一次“伪猜中”。注意,“猜中”不能算入“伪猜中”。

给定一种颜色组合solution和一个猜测guess,编写一个方法,返回猜中和伪猜中的次数answer,其中answer[0]为猜中的次数,answer[1]为伪猜中的次数。

示例

输入: solution="RGBY",guess="GGRR"
输出: [1,1]
解释: 猜中1次,伪猜中1次。

提示

len(solution) = len(guess) = 4
solution和guess仅包含"R","G","B","Y"这4种字符

【答案解析】

遍历两个数组,统计猜中次数和伪猜中次数 猜中次数:若位置相同且颜色字符也相同在猜中次数计数器+1 伪猜中次数:颜色相同,但是在不同位置,这时候只需要除去猜中位置之外,统计两个数组中各个字符出现的数量, 取较小的一方就是每种颜色伪猜中的数量了

int* masterMind(char* solution, char* guess, int* returnSize)
{*returnSize = 2;static int arr[2] = { 0 };arr[0] = 0; arr[1] = 0;//静态空间不会进行二次初始化因此每次重新初始化,可以使用memset函数int s_arr[26] = { 0 };//26个字符位 solution 四种颜色数量统计int g_arr[26] = { 0 };//26个字符位 guess 四种颜色数量统计for (int i = 0; i < 4; i++) {if (solution[i] == guess[i]) {arr[0] += 1;//位置和颜色完全一致则猜中数量+1}else {//统计同一位置不同颜色的两组颜色数量,伪猜中不需要对应位置相同,只需要有对应数量的颜色就行s_arr[solution[i] - 'A'] += 1; //统计solution对应颜色字符出现次数g_arr[guess[i] - 'A'] += 1;//统计guess对应颜色字符出现次数}}//在两个颜色数量统计数组中查看颜色数量,取相同位置较小的一方就是为猜中数量for (int i = 0; i < 26; i++) {arr[1] += s_arr[i] > g_arr[i] ? g_arr[i] : s_arr[i];}return arr;
}

2:NC61 两数之和

两数之和_牛客题霸_牛客网 (nowcoder.com)

描述

给出一个整型数组 numbers 和一个目标值 target,请在数组中找出两个加起来等于目标值的数的下标,返回的下标按升序排列。

(注:返回的数组下标从1开始算起,保证target一定可以由数组里面2个数字相加得到)

数据范围:2\leq len(numbers) \leq 10^52≤len(numbers)≤105,-10 \leq numbers_i \leq 10^9−10≤numbersi​≤109,0 \leq target \leq 10^90≤target≤109

要求:空间复杂度 O(n)O(n),时间复杂度 O(nlogn)O(nlogn)

示例1

输入:[3,2,4],6

返回值:[2,3]

说明:因为 2+4=6 ,而 2的下标为2 , 4的下标为3 ,又因为 下标2 < 下标3 ,所以返回[2,3]

示例2

输入:[20,70,110,150],90

返回值:[1,2]

说明:20+70=90

【答案解析】

在数组中拿到一个数字 num 后,在剩下的数字中查找是否有等于 target - num 的数字即可。

int* twoSum(int* numbers, int numbersLen, int target, int* returnSize) 
{*returnSize = 2;static ret_arr[2] = { 0 };memset(ret_arr, 0x00, sizeof(ret_arr));//静态空间不会二次初始化,因此手动初始化for (int i = 0; i < numbersLen; i++) {//从第0个位置开始一个一个数字找for (int j = i + 1; j < numbersLen; j++) {//从第一个数字往后的数字中找出另一个数字//与numbers[i]相加等于target的数字找到了则i和j就是对应两个数字下标if (numbers[i] + numbers[j] == target){ret_arr[0] = i + 1;//题目要求下标从1开始ret_arr[1] = j + 1;return ret_arr;}}}*returnSize = 0;//没有符合的下标则返回数组大小为0;return NULL;
}

相关文章:

C语言假期作业 DAY 14

一、选择题 1、有以下函数&#xff0c;该函数的功能是&#xff08; &#xff09; int fun(char *s) {char *t s;while(*t);return(t-s); } A: 比较两个字符的大小 B: 计算s所指字符串占用内存字节的个数 C: 计算s所指字符串的长度 D: 将s所指字符串复制到字符串t中 答案解析 …...

Maven-生命周期及命令

关于本文 ✍写作原因 之前在学校学习的时候&#xff0c;编写代码使用的项目都是单体架构&#xff0c;导入开源框架依赖时只需要在pom.xml里面添加依赖&#xff0c;点一下reload按钮即可解决大部分需求&#xff1b;但是在公司使用了dubbo微服务架构之后发现只知道使用reload不足…...

常温超导:AI在研发中的潜力

目录 引言&#xff1a;1. 常温超导的挑战&#xff1a;2. AI在材料研究中的作用&#xff1a;3. AI在理论模型中的作用&#xff1a;4. AI与实验室合作的潜力&#xff1a;结论&#xff1a; 引言&#xff1a; 常温超导一直被认为是科学界的“圣杯”&#xff0c;可以在室温条件下实…...

【C++】开源:Eigen3矩阵与线性代数库配置使用

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍Eigen3矩阵与线性代数库配置使用。 无专精则不能成&#xff0c;无涉猎则不能通。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&…...

OpenMesh 网格简化算法(基于边长度)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 网格简化的算法有很多种,基于边结构进行简化的方法便是其中一种方式。此类算法主要关注于它们如何选择要收缩的边,并且似乎都是为流形表面设计的,尽管边缘收缩也可以用于非流形表面,但往往会存在变形较大的问题…...

FFmpeg解码详细流程

介绍 FFmpeg的 libavcodec 模块完成音视频多媒体的编解码模块。老版本的 FFmpeg 将avcodec_decode_video2()作为视频的解码函数 API&#xff0c;将avcodec_decode_audio4()作为音频的解码函数 API&#xff1b;从 3.4版本开始已经将二者标记为废弃过时 API&#xff08;attribut…...

人工智能的缺陷

首先从应用层面理解什么是人工智能&#xff0c;目前人工智能主流应用面包括&#xff1a;自然语言处理领域&#xff0c;代表为chatgpt&#xff0c;我们能用其进行日常交流&#xff0c;问题答疑&#xff0c;论文书写等。计算机视觉领域&#xff0c;代表为人脸识别&#xff0c;现在…...

基于ASP.NET MVC开发的、开源的个人博客系统

推荐一个功能丰富、易于使用和扩展的开源博客&#xff0c;可以轻松地创建和管理自己的博客。 项目简介 基于.Net Framework 4.5开发的、开源博客系统&#xff0c;具有丰富的功能&#xff0c;包括文章发布、分类、标签、评论、订阅、统计等功能&#xff0c;同时也可以根据需要…...

【LeetCode】对称二叉树 平衡二叉树

对称二叉树 即先判断根节点的左右子树相不相同&#xff0c;相同时&#xff0c;再判断左孩子的左子树和右孩子的右子树比较&#xff0c;左孩子的右子树和右孩子的左子树&#xff08;当两个都相同时才是对称的&#xff09;.....依次递推&#xff0c;过程中并设置一些不满足相同的…...

区块链和WEB3.0有哪些基础知识呢

区块链基础知识 常用区块链基础知识包括&#xff1a; &#xff08;1&#xff09;区块链概念&#xff1a;区块链是一种去中心化的分布式账本技术&#xff0c;它通过加密算法和共识机制保证了数据的安全性和不可篡改性。区块链中的每一个区块都包含了前一个区块的哈希值&#x…...

七、封装(1)

本章概要 包的概念 代码组织创建独一无二的包名冲突定制工具库使用 import 改变行为使用包的忠告 访问控制&#xff08;Access control&#xff09;&#xff08;或者_隐藏实现&#xff08;implementation hiding&#xff09;_&#xff09;与“最初的实现不恰当”有关。 所有优…...

问题解决和批判性思维是软件工程的重要核心

软件工程的重心在于问题解决和批判性思维&#xff08;合理设计和架构降低复杂度&#xff09;&#xff0c;而非仅局限于编程。 许多人误以为软件工程就只是编程&#xff0c;即用编程语言编写指令&#xff0c;让计算机按照这些指令行事。但实际上&#xff0c;软件工程的内涵远超…...

【EI/SCOPUS征稿】2023年通信网络与机器学习国际学术会议(CNML 2023)

2023年通信网络与机器学习国际学术会议&#xff08;CNML 2023&#xff09; 2023 International Conference on Communication Networks and Machine Learning 随着数据流量的显著增长&#xff0c;新的通信应用程序不断出现&#xff0c;并产生更多的数据流量&#xff0c;这些数…...

算法-岛屿数量

给你一个由 1&#xff08;陆地&#xff09;和 0&#xff08;水&#xff09;组成的的二维网格&#xff0c;请你计算网格中岛屿的数量。 岛屿总是被水包围&#xff0c;并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外&#xff0c;你可以假设该网格的四条边…...

Crescent QuickPak Crack

Crescent QuickPak Crack Crescent QuickPak是一个32位ActiveX组件的综合集合&#xff0c;用于使用Visual Basic开发应用程序&#xff0c;这将减少开发时间并提高生产力。Crescent QuickPak包含Internet功能&#xff0c;用于打开、读取和解析IIS日志文件&#xff0c;将日志文件…...

六、ESP32数码管显示数字

1. 本节课的成功 2. 数码管 为什么会亮呢? 答:里面就是LED灯...

【Kubernetes】当K8s出现问题时,从哪些方面可以排查

前言 kubernetes&#xff0c;简称K8s&#xff0c;是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的&#xff0c;用于管理云平台中多个主机上的容器化的应用&#xff0c;Kubernetes的目标是让部署容器化的应用简单并且高效&#xff08;powerful&#xff09;,Kub…...

[ MySQL ] — 库和表的操作

目录 库的操作 创建数据库 语法&#xff1a; 使用&#xff1a; 字符集和校验规则 查看系统默认字符集以及校验规则 查看数据库支持的字符集 查看数据库支持的字符集校验规则 校验规则对数据库的影响 操纵数据库 查看数据库 显示创建语句 修改数据库 删除数据库 备…...

Hive常见面试题

Hive的基本概念 什么是Hive&#xff1f;它的主要作用是什么&#xff1f; Hive是一个基于Hadoop生态系统的数据仓库和数据处理工具。 它提供了类似于SQL的查询语言&#xff08;HiveQL&#xff09;&#xff0c;使用户能够使用SQL语句来查询和分析 大规模存储在Hadoop集群上的数…...

【单片机】晨启科技,酷黑版,密码锁

密码锁 任务要求&#xff1a; 当输入密码&#xff08;至少6位密码&#xff09;时&#xff0c;OLED显示屏显示输入的数字&#xff08;或者字符&#xff09;&#xff0c;当密码位数输入完毕按下确认键时&#xff0c;对输入的密码与设定的密码进行比较&#xff08;可使用外设键盘&…...

ChatGPT_JCM前端构建工具对比:Webpack、Vite与Rollup

ChatGPT_JCM前端构建工具对比&#xff1a;Webpack、Vite与Rollup 【免费下载链接】ChatGPT_JCM 项目地址: https://gitcode.com/gh_mirrors/ch/ChatGPT_JCM ChatGPT_JCM是一个基于AI技术的前端项目&#xff0c;在开发过程中选择合适的构建工具对于提升开发效率和优化项…...

新手必看,用快马生成的示例代码轻松学懂stm32f103c8t6引脚配置

作为一个刚接触STM32的开发者&#xff0c;我完全理解新手面对芯片引脚配置时的困惑。最近在InsCode(快马)平台尝试生成STM32F103C8T6的示例代码时&#xff0c;发现它特别适合用来建立引脚功能与代码的映射关系。下面分享我的学习过程&#xff1a; 理解芯片引脚特性 STM32F103C…...

实战指南:基于快马平台与yolov11快速开发货架商品检测系统

今天想和大家分享一个最近用yolov11实现的零售商品检测项目&#xff0c;整个过程在InsCode(快马)平台上完成得特别顺利。这个系统可以自动识别超市货架上的商品&#xff0c;特别适合库存管理或者智能结算场景。 项目背景与需求分析 超市货架商品识别看似简单&#xff0c;实际会…...

基于MATLAB的智能车牌识别模型:实现定位、分割与识别一体化解决方案

基于MATLAB的车牌识别模型。 包括车牌识别系统&#xff0c;完成车牌定位、车牌字符分割和车牌字符识别。 用到灰度化、图像增强、边缘检测、车辆定位、分割车牌、车辆预处理、字符分割最后得到识别结果。 程序已调通&#xff0c;可直接运行。直接上干货&#xff01;今天带大家用…...

3步释放20GB空间:Windows驱动清理神器完全指南

3步释放20GB空间&#xff1a;Windows驱动清理神器完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 驱动管理痛点分析 系统臃肿的隐形杀手 随着电脑使用时间增长&#xff0c;Wi…...

提升vue开发效率的秘诀,快马平台一键生成通用组件库

最近在重构公司的中后台管理系统时&#xff0c;发现很多重复性的工作占用了大量开发时间。经过实践总结&#xff0c;我发现通过合理封装通用组件和工具集&#xff0c;可以显著提升Vue3项目的开发效率。今天就来分享下我的实战经验。 通用表格组件的封装 这个组件基于Element Pl…...

高效图像压缩:MozJPEG从入门到精通

高效图像压缩&#xff1a;MozJPEG从入门到精通 【免费下载链接】mozjpeg Improved JPEG encoder. 项目地址: https://gitcode.com/gh_mirrors/mo/mozjpeg 在数字媒体传播中&#xff0c;图像体积与加载速度始终是开发者面临的核心矛盾。传统JPEG压缩算法受限于基础编码框…...

Phi-4-Reasoning-Vision镜像使用指南:双卡负载均衡与CUDA内存优化技巧

Phi-4-Reasoning-Vision镜像使用指南&#xff1a;双卡负载均衡与CUDA内存优化技巧 1. 工具概述 Phi-4-Reasoning-Vision是基于微软Phi-4-reasoning-vision-15B多模态大模型开发的高性能推理工具&#xff0c;专为双卡4090环境优化设计。这个工具能够充分发挥15B大模型的深度推…...

113. 强制使用 Letsencrypt ECDSA 和 DNS-01 续期挑战的默认 HTTPS Rancher 证书

Environment 环境 2.9 Situation 地理位置A self-signed default Rancher certificate is currently used and will be migrated to a stronger Let’s Encrypt ECDSA-386 certificate using the DNS-01 renewal challenge. 目前使用自签名默认的牧场证书&#xff0c;并将通过…...

实战应用:基于快马构建抖音版本更新深度分析系统,赋能产品决策

今天想和大家分享一个实战项目&#xff1a;如何用InsCode(快马)平台快速搭建抖音版本更新分析系统。作为产品经理&#xff0c;每次版本更新后都需要快速掌握用户反馈和市场反应&#xff0c;这个工具帮我节省了大量手工整理数据的时间。 数据采集模块搭建 首先需要获取两个核心数…...