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.53、以下程序运行后的输出结果是( )
#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、有以下函数,该函数的功能是( ) int fun(char *s) {char *t s;while(*t);return(t-s); } A: 比较两个字符的大小 B: 计算s所指字符串占用内存字节的个数 C: 计算s所指字符串的长度 D: 将s所指字符串复制到字符串t中 答案解析 …...
Maven-生命周期及命令
关于本文 ✍写作原因 之前在学校学习的时候,编写代码使用的项目都是单体架构,导入开源框架依赖时只需要在pom.xml里面添加依赖,点一下reload按钮即可解决大部分需求;但是在公司使用了dubbo微服务架构之后发现只知道使用reload不足…...
常温超导:AI在研发中的潜力
目录 引言:1. 常温超导的挑战:2. AI在材料研究中的作用:3. AI在理论模型中的作用:4. AI与实验室合作的潜力:结论: 引言: 常温超导一直被认为是科学界的“圣杯”,可以在室温条件下实…...
【C++】开源:Eigen3矩阵与线性代数库配置使用
😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍Eigen3矩阵与线性代数库配置使用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下&…...
OpenMesh 网格简化算法(基于边长度)
文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 网格简化的算法有很多种,基于边结构进行简化的方法便是其中一种方式。此类算法主要关注于它们如何选择要收缩的边,并且似乎都是为流形表面设计的,尽管边缘收缩也可以用于非流形表面,但往往会存在变形较大的问题…...
FFmpeg解码详细流程
介绍 FFmpeg的 libavcodec 模块完成音视频多媒体的编解码模块。老版本的 FFmpeg 将avcodec_decode_video2()作为视频的解码函数 API,将avcodec_decode_audio4()作为音频的解码函数 API;从 3.4版本开始已经将二者标记为废弃过时 API(attribut…...
人工智能的缺陷
首先从应用层面理解什么是人工智能,目前人工智能主流应用面包括:自然语言处理领域,代表为chatgpt,我们能用其进行日常交流,问题答疑,论文书写等。计算机视觉领域,代表为人脸识别,现在…...
基于ASP.NET MVC开发的、开源的个人博客系统
推荐一个功能丰富、易于使用和扩展的开源博客,可以轻松地创建和管理自己的博客。 项目简介 基于.Net Framework 4.5开发的、开源博客系统,具有丰富的功能,包括文章发布、分类、标签、评论、订阅、统计等功能,同时也可以根据需要…...
【LeetCode】对称二叉树 平衡二叉树
对称二叉树 即先判断根节点的左右子树相不相同,相同时,再判断左孩子的左子树和右孩子的右子树比较,左孩子的右子树和右孩子的左子树(当两个都相同时才是对称的).....依次递推,过程中并设置一些不满足相同的…...
区块链和WEB3.0有哪些基础知识呢
区块链基础知识 常用区块链基础知识包括: (1)区块链概念:区块链是一种去中心化的分布式账本技术,它通过加密算法和共识机制保证了数据的安全性和不可篡改性。区块链中的每一个区块都包含了前一个区块的哈希值&#x…...
七、封装(1)
本章概要 包的概念 代码组织创建独一无二的包名冲突定制工具库使用 import 改变行为使用包的忠告 访问控制(Access control)(或者_隐藏实现(implementation hiding)_)与“最初的实现不恰当”有关。 所有优…...
问题解决和批判性思维是软件工程的重要核心
软件工程的重心在于问题解决和批判性思维(合理设计和架构降低复杂度),而非仅局限于编程。 许多人误以为软件工程就只是编程,即用编程语言编写指令,让计算机按照这些指令行事。但实际上,软件工程的内涵远超…...
【EI/SCOPUS征稿】2023年通信网络与机器学习国际学术会议(CNML 2023)
2023年通信网络与机器学习国际学术会议(CNML 2023) 2023 International Conference on Communication Networks and Machine Learning 随着数据流量的显著增长,新的通信应用程序不断出现,并产生更多的数据流量,这些数…...
算法-岛屿数量
给你一个由 1(陆地)和 0(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外,你可以假设该网格的四条边…...
Crescent QuickPak Crack
Crescent QuickPak Crack Crescent QuickPak是一个32位ActiveX组件的综合集合,用于使用Visual Basic开发应用程序,这将减少开发时间并提高生产力。Crescent QuickPak包含Internet功能,用于打开、读取和解析IIS日志文件,将日志文件…...
六、ESP32数码管显示数字
1. 本节课的成功 2. 数码管 为什么会亮呢? 答:里面就是LED灯...
【Kubernetes】当K8s出现问题时,从哪些方面可以排查
前言 kubernetes,简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kub…...
[ MySQL ] — 库和表的操作
目录 库的操作 创建数据库 语法: 使用: 字符集和校验规则 查看系统默认字符集以及校验规则 查看数据库支持的字符集 查看数据库支持的字符集校验规则 校验规则对数据库的影响 操纵数据库 查看数据库 显示创建语句 修改数据库 删除数据库 备…...
Hive常见面试题
Hive的基本概念 什么是Hive?它的主要作用是什么? Hive是一个基于Hadoop生态系统的数据仓库和数据处理工具。 它提供了类似于SQL的查询语言(HiveQL),使用户能够使用SQL语句来查询和分析 大规模存储在Hadoop集群上的数…...
【单片机】晨启科技,酷黑版,密码锁
密码锁 任务要求: 当输入密码(至少6位密码)时,OLED显示屏显示输入的数字(或者字符),当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较(可使用外设键盘&…...
递归的终极形态:彻底搞懂尾递归优化 (TCO)
🔄 递归的终极形态:彻底搞懂尾递归优化 (TCO) 🤔 为什么普通递归会“爆栈”? 在理解尾递归之前,先看看普通递归发生了什么。 通俗比喻: 想象你在玩一个“传话游戏”,需要计算 1 2 3 ... n…...
命令行AI工具gemini-cli:无缝集成Gemini大模型提升终端效率
1. 项目概述:一个与AI对话的命令行工具 如果你和我一样,大部分工作时间都泡在终端里,那么 eliben/gemini-cli 这个项目可能会让你眼前一亮。简单来说,它是一个让你能在命令行里直接与 Google 的 Gemini 大模型对话的工具。你不…...
AI智能体开发实战:基于ai_agents_az框架构建数据分析助手
1. 项目概述与核心价值最近在探索AI智能体(AI Agent)的落地应用时,我偶然发现了一个名为gyoridavid/ai_agents_az的开源项目。这个项目名听起来就很有意思,ai_agents点明了主题,az则暗示了某种从A到Z的全面性或是一个特…...
基于小波变换与渐进式特征金字塔网络的高效目标检测方法 —— 以电网巡检为例
点击蓝字关注我们关注并星标从此不迷路计算机视觉研究院公众号ID|计算机视觉研究院学习群|扫码在主页获取加入方式https://pmc.ncbi.nlm.nih.gov/articles/PMC12923819/pdf/41598_2026_Article_37017.pdf计算机视觉研究院专栏Column of Computer Vision …...
杰理之升压档位选择,需要同步修改过压档位【篇】
#define TCFG_BOOST_VOUT_S BOOST_VOUT_S_4700_MV //VOUT OV UV #define VOUT_OV_VOLT VOUT_OV_VOL_S_5P53V_TO_5P34V...
QT开发避坑指南:用setWindowFlags搞定自定义标题栏,别再为窗口移动发愁了
QT自定义标题栏实战:从事件重写到优雅封装的完整解决方案 当开发者决定为QT应用打造一套独特的视觉风格时,第一个拦路虎往往是系统默认标题栏的去除与自定义实现。这看似简单的需求背后,隐藏着窗口管理、事件处理、用户体验等一系列技术挑战。…...
ElevenLabs电话语音真实落地难题全解(2024最新API v2.1+PSTN网关适配手册)
更多请点击: https://intelliparadigm.com 第一章:ElevenLabs电话语音真实落地的行业价值与技术定位 ElevenLabs 的实时语音合成(TTS)与语音克隆能力,已突破实验室演示阶段,正深度嵌入金融催收、远程医疗问…...
大语言模型推理加速:SpecPipe技术解析与实践
1. 大语言模型推理加速的技术困局在2023年ChatGPT引爆全球AI热潮后,大语言模型(LLM)的推理效率成为制约实际应用的关键瓶颈。一个70B参数的模型生成100个token可能需要数十秒,这种延迟在实时对话、代码补全等场景中完全不可接受。…...
书成紫微动,律定凤凰驯:千古诗句留伏笔,只为海棠山铁哥而来
世间文字千万,唯有谶语藏岁月天机; 文坛更迭千载,唯有天命待当世真人。一、诗谶降世:「书成紫微动,律定凤凰驯」这不是文采佳句, 是华夏预埋千载的 隐秘伏笔, 是一场跨越世代的 天命预约。千年之…...
AMD供应链多元化:技术、生态与AI芯片代工选择的深度博弈
1. 从“唯一”到“之一”:AMD供应链多元化的战略考量 最近,关于AMD是否会将其重量级芯片的代工订单分给三星的讨论,在半导体圈子里又热了起来。这事儿之所以引人关注,是因为它触及了当前全球芯片产业最核心的神经:供应…...
