C语言:选择+编程(每日一练Day15)
目录
选择题:
题一:
题二:
题三:
题四:
题五:
编程题:
题一:寻找奇数
思路一:
题二:寻找峰值
思路一:
本人实力有限可能对一些地方解释和理解的不够清晰,可以自己尝试读代码,或者评论区指出错误,望海涵!
感谢大佬们的一键三连! 感谢大佬们的一键三连! 感谢大佬们的一键三连!
选择题:
题一:
1、有如下代码,则 *(p[0]+1) 所代表的数组元素是()
int a[3][2] = {1, 2, 3, 4, 5, 6}, *p[3];
p[0] = a[1];
A: a[0][1] B: a[1][0] C: a[1][1] D: a[1][2]
答案解析:
p是一个指针数组,p[0] = a[1];此处a[1]是二维数组的第二行的数组名,数组名表示首元素的地址,a[1]是a[1][0]的地址,所以p[0]中存储的是第2行第1个元素的地址,p[0]+1就是第二行第2个元素的地址,*(p[0]+1)就是第二行第二个元素了。所以C正确。
题二:
2、关于指针下列说法正确的是【多选】( )
A: 任何指针都可以转化为void * B: void *可以转化为任何指针
C: 指针的大小为8个字节 D: 指针虽然高效、灵活但可能不安全
答案解析:
C选项,指针占几个字节要看平台,64位环境下8个字节,32位环境下4个字节。
题三:
3、以下 scanf 函数调用选项中, 错误的是( )
struct T
{char name[20];
int age;
int sex;
} a[5], *pa=a;
A: scanf("%s",a[0].name); B: scanf("%d", &pa[0].age);
C: scanf("%d",&(pa->age)); D: scanf("%d", pa->age);
答案解析:
该题考察的是通过scanf函数的调用对结构体数据类型进行初始化。scanf("输入控制符", 输入参数);功能:将从键盘输入的字符转化为“输入控制符”所规定格式的数据,然后存入以输入参数的值为地址的变量中。scanf输入时要通过地址找空间,B、C用了&是正确的。name属于字符数组的数组名,相当于数组的首地址,A正确。单独的pa->age可用于输出语句获取
值的形式,用在scanf中的时候需要&操作符,D错误。
题四:
4、如下函数 fun 计算 prod=1*2*3*…*n ,并返回计算结果值。但当 n>12 时,返回值不正确。要找出该程序的错误,正确的调试方法是( )
int fun(int n)
{
int prod = 1 , i = 0;
for(i = 1;i <= n;i++)
{
prod *= i;
}return prod;
}
A: 监视变量prod的值,在prod *= i;行处设置断点,然后单步运行,直到发现错误原因
B: 监视变量prod的值,在return prod;行处设置断点,程序中断后,即可发现错误原因
C: 在prod=1;处设置断点,然后在函数调用堆栈中即可发现错误原因
D: 监视变量i的值,在for (i=1; i<=n; i++)行处设置断点,然后单步运行,直到发现错误原因
答案解析:
依题目已知情况,当n<=12时结果是正确的,说明是随着参数的变大计算过程中哪里出了问题,故而要在prod *= i;处设断点,查看原因。错误原因是数据过大时整型溢出。
题五:
5、下列给定程序中,函数 fun 的功能是:把形参a所指数组中的奇数按原顺序依次存放到 a[0]、a[1]、a[2]… 中,把偶数从数组中删除,奇数个数通过函数值返回。 例如,若a所指数组中的数据最初排列为: 9,1,4,2,3,6,5,8,7 ,删除偶数后,a所指数组中的数据为: 9,1,3,5,7 ,返回值为5。请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果( )
int fun(int a[], int n)
{
int i, j;
j=0;
for (i=0; i<n; i++)
if (a[i]%2== _________ )
{
a[j]=a[i];
_________;
}return _________;
}
A: 0 j++ j B: 1 j++ j+1 C: 0 j++ j+1 D: 1 j++ j
答案解析:
代码实现的思路应该是arr[i]是奇数的时候要存储起来,所以第一个空是1,最开始j是0,每次找到一个奇数就存储到arr[j]的位置,那接下里j需要+1,所以得第二个空是j++,当循环停止的时候,j其实就是奇数的个数。所以最后返回j,第三个空是j。所以选D。
编程题:
题一:寻找奇数
寻找奇数_牛客题霸_牛客网 (nowcoder.com)

示例1
输入:
52 1 2 3 1输出:
3
思路一:
必懂知识:按位异或(“ ^ ”):二进制位相同为“0”,不同为“1”。
第一步:定义记录元素值的result,以及元素个数n;
第二步:遍历题目所给数组,并输入各个下标对应的元素给result,按位异或,最终将相同的数抵消为“0”;
第三步:最后得到的就是数组中奇数个元素,打印。
#include <stdio.h>
#include <string.h>int main()
{int n = 0;int result = 0;scanf("%d", &n);int num = 0;//遍历题目数组for (int i = 0; i < n; i++){//输入各个下标对应的元素scanf("%d", &result);//按位异或,最终将相同的数抵消为“0”num ^= result;}//最后得到的就是数组中奇数个元素printf("%d\n", num);return 0;
}
题二:寻找峰值
寻找峰值_牛客题霸_牛客网 (nowcoder.com)

示例1
输入:
[2,4,1,2,7,8,4]返回值:
1说明:
4和8都是峰值元素,返回4的索引1或者8的索引5都可以
思路一:
二分查找:
第一步:首先排除边界情况,再定义首元素下标left,尾元素下标right;
第二步:二分查找:nums[mid] < nums[mid+1]时,说明峰在右边,即需要left = mid + 1;
nums[mid] >= nums[mid+1]时,说明峰在左边,即需要 right = mid;
第三步:最后二分查找使下标left就是最大值,返回left。
int findPeakElement(int* nums, int numsLen )
{//排除边界情况if(numsLen == 1 || nums[0] > nums[1])return 0;if(nums[numsLen-1] > nums[numsLen-2])return numsLen-1;int left = 0;int right = numsLen-1;//二分查找使下标left就是最大值while(left < right){int mid = (left + right) / 2;if(nums[mid] < nums[mid+1]){left = mid + 1;}else {right = mid;}}return left;
}
本人实力有限可能对一些地方解释和理解的不够清晰,可以自己尝试读代码,或者评论区指出错误,望海涵!
感谢大佬们的一键三连! 感谢大佬们的一键三连! 感谢大佬们的一键三连!

相关文章:
C语言:选择+编程(每日一练Day15)
目录 选择题: 题一: 题二: 题三: 题四: 题五: 编程题: 题一:寻找奇数 思路一: 题二:寻找峰值 思路一: 本人实力有限可能对一些地方解…...
确定Mac\Linux系统的架构类型是 x86-64(amd64),还是 arm64 架构
我们在下载软件或镜像时会有很多版本,那需要根据我们的系统架构选择正确的软件或镜像版本。 要确定你的系统使用的是 x86-64(amd64) 还是 arm64 架构,可以使用以下方法之一: 使用 uname 命令: 打开终端&am…...
Python脚本
update_format.py 批量转视频格式,超级慢,没什么卵用 import os import asyncio import subprocess import concurrent.futures import tracemalloctracemalloc.start()# 创建日志文件 log_file open(conversion_log.txt, w)async def convert_mkv_t…...
Kotlin的遍历方法
for循环 在下面代码中1…10表示的是1到10,两边都是闭包,输出12345678910 for (i in 1..10) println(i)加上花括号也支持 for (i: Int in 1..10) {println(i)}另外,当对整数进行for循环时,Kotlin还提供了一个step函数来定义迭代的…...
AskIt: Unified Programming Interface for Programming with Large Language Models
本文是LLM系列文章,针对《AskIt: Unified Programming Interface for Programming with Large Language Models》的翻译。 AskIt:用于大型语言模型编程的统一编程接口 摘要1 引言2 动机例子3 设计与实现4 实验评估5 相关工作6 结论 摘要 在不断发展的软…...
【wireshark抓取数据包-PGSQL协议】
测试查看PGSQL协议的网络流量数据明细 1)捕获过滤的条件设置,tcp.port5432(数据库的端口) 2)上面是wireshark的主窗口,分三大主块:Packlist List(数据包列表)…...
【idea学习】
1.debug: 文章详解 2.导入SpringBoot项目 文章详情...
ZooKeeper数据模型/znode节点深入
1、Znode的数据模型 1.1 Znode是什么? Znode维护了一个stat结构,这个stat包含数据变化的版本号、访问控制列表变化、还有时间戳。版本号和时间戳一起,可让Zookeeper验证缓存和协调更新。每次znode的数据发生了变化,版本号就增加。…...
容器编排工具的比较:Kubernetes、Docker Swarm、Nomad
随着容器化技术的普及,容器编排工具成为了现代应用部署和管理的重要组成部分。容器编排工具能够自动化容器的部署、扩展和管理,从而提高应用的可靠性和可伸缩性。在众多的容器编排工具中,Kubernetes、Docker Swarm和Nomad是三个备受关注的主要…...
nginx--技术文档--架构体系--底层核心-原理
Nginx的架构体系可以概括为“一个核心、两个模型。” “一个核心”指Nginx的核心功能,即HTTP请求处理。Nginx作为一个高性能的Web服务器,其核心功能是处理HTTP请求,包括接收请求、解析请求、处理请求和返回响应等。 “两个模型”指Nginx的多…...
Java23种设计模式之【单例模式】
目录 一.单例模式的起源,和应用场景 1.单例模式的前世今生! 2.什么是单例模式? 2.1使用单例模式的注意事项 2.2如何理解单例模式? 2.3单例模式的优势以及不足! 2.4使用场景 二.实现 1.实现思路 1.1创建一个 S…...
SQLserver基础入门理论(超基础)二
♥️作者:小刘在C站 ♥️个人主页: 小刘主页 ♥️努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏…...
macbookpro怎么删除软件没有鼠标
macbookpro怎么删除软件没有鼠标,macbookpro触摸板可以替代鼠标进行操作。左右键功能与鼠标相同,可用于执行删除操作。此外,还可以利用键盘上的Delete键来删除选中的文件。 删除软件方法 方法1、打开应用程序,键盘按住control,加点…...
华为数通方向HCIP-DataCom H12-821题库(单选题:241-260)
第241题 LS Request报文不包括以下哪一字段? A、通告路由器(Advertising Router) B、链路状态 ID (Link Srate ID) C、数据库描述序列号(Database Dascription Sequence lumber) D、链路状态类型 Link state type) 答案:C 解析: LS Request 报文中包括以下字段…...
PHP8内置函数中的变量函数-PHP8知识详解
在php8中,与变量相关的内置函数比较多,本文说一些比较重要的、常见的内置函数。今日着重讲解了5个,分别是:检测变量是否为空的函数empty()、判断变量是否定义过的函数isset()、销毁指定的变量的函数unset()、获取变量的类型的函数…...
9月3日,每日信息差
第一、中国中铁与广州市城中村改造做地主体签署战略合作框架协议。根据协议,双方将积极响应广州市统筹做地推进高质量发展工作精神,充分发挥双方优势资源,共同加大在物业复建安置、基础设施建设、综合开发投资、城中村改造(微改造…...
2023年了,java后端还有未来吗?
前言 Java当下确实是比较的内卷,但关键在于个人,可以看看不同地方(这里主要举例北上广深一线城市)对于Java开发工程师这个职位的具体要求: 在以下北上广深这些一线大城市的面试招聘当中不难看出,凡是工资…...
使用cmake,将github上的某一个库进行集成到vs2022上
可以参考如下链接的内容: (还未完成,将在后序补充) 1.首先使用cmake,得到对应库的lib,include,bin文件夹 可以参考 https://www.youtube.com/watch?vu5-Df1YlxCI 2.现在我用cmake对这个第三方库进行编译,生成了三个文件夹:一个放的是lib文件(lib文件…...
第二张微服务的调用与注册
文章目录 工程导入利用RestTemplate调用服务需求创建RestTemplate的实例到Spring容器使用RestTemplate发送请求消费者和提供者 Eureka注册中心服务远程调用会出现的问题Eureka的结构和作用Eureka的配置过程搭建注册中心服务注册服务发现 Ribbon负载均衡负载均衡原理源码跟踪总结…...
iWatch框架设计
iWatch框架设计 一、项目框架结构设计 1、项目文件介绍 OverSeaProject:是IOS相关文件文件内容iWatchApp和iWatch Extension:是之前使用xcode14之前的xcode创建的360 app的Watch App,产生的文件结构,包含一个app和Extension的ta…...
KMS_VL_ALL_AIO:智能激活脚本的完整使用指南
KMS_VL_ALL_AIO:智能激活脚本的完整使用指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO KMS_VL_ALL_AIO是一款基于微软官方KMS协议开发的智能激活脚本,为Windows系统…...
Raw Accel深度解析:从零掌握Windows内核级鼠标加速的终极指南
Raw Accel深度解析:从零掌握Windows内核级鼠标加速的终极指南 【免费下载链接】rawaccel kernel mode mouse accel 项目地址: https://gitcode.com/gh_mirrors/ra/rawaccel 你是否厌倦了Windows默认鼠标加速的不稳定表现?是否在游戏中苦苦寻找更精…...
Vibe Vibe 测试自动化:如何用AI帮你写测试代码,保证项目质量
Vibe Vibe 测试自动化:如何用AI帮你写测试代码,保证项目质量 【免费下载链接】vibe-vibe The First Systematic Vibe Coding Open-Source Tutorial | From Zero to Full-Stack, Empowering Everyone to Build Products with AI | Live at: www.vibevibe.…...
智能停车系统告别拥堵!巨有科技让景区停车畅行无忧
每逢节假日,景区停车场便成了“重灾区”——入口大排长龙、场内找位半小时、缴费排队苦不堪言。这不仅严重消耗游客耐心,更直接拉低景区口碑与运营效率。在文旅消费持续回暖的今天,停车体验已成为衡量景区服务力的关键指标。巨有科技以数据驱…...
清华大学打造实时交互视频生成新方案:让AI“边想边说“不再卡顿
这项由清华大学与人民大学联合开展的研究,于2026年5月以预印本形式发布,论文编号为arXiv:2605.15141,有兴趣深入了解的读者可通过该编号查询完整论文。研究团队来自清华大学和生数科技(ShengShu),与人民大学…...
3分钟搞定M3U8视频下载:免费开源工具的终极懒人包
3分钟搞定M3U8视频下载:免费开源工具的终极懒人包 【免费下载链接】N_m3u8DL-CLI-SimpleG N_m3u8DL-CLIs simple GUI 项目地址: https://gitcode.com/gh_mirrors/nm3/N_m3u8DL-CLI-SimpleG 还在为下载在线视频发愁吗?那些藏在网页里的M3U8格式视频…...
使用TaotokenCLI工具一键配置开发环境与模型密钥
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 使用Taotoken CLI工具一键配置开发环境与模型密钥 在接入大模型进行开发时,手动配置API密钥、Base URL和模型ID是常见的…...
工业自动化设备电流检测解决方案——工业控制系统为什么越来越重视隔离电流检测
在工业自动化设备中,电流检测已经成为控制系统的重要组成部分。无论是PLC控制柜、伺服驱动器、工业电源、机器人控制系统还是变频器系统,控制器都需要实时获取负载电流信息,用于过流保护、闭环控制、功率计算以及设备状态监测。但很多工程师在…...
2026年度AI接入方案复盘:六大主流API中转/API聚合平台深度测评与选型建议
2026年度AI接入方案复盘:六大主流API中转平台深度测评与选型建议 站在2026年的技术节点回望,企业在构建大模型应用时,早已告别了单纯追求低价的阶段。经过一整年的行业沉淀,我们发现真正影响生产效率的并非单一Token的成本&#…...
主芯片LP3717BTT+LP3568C,5V3.1A过认证适配器⽅案(电路原理图)
LP3717BTT LP3568C 是一套 5V/3.1A(15.5W)隔离型反激电源方案,主打"过认证、高效率、低温度"。LP3717BTT 是原边 PWM 控制器,LP3568C 是次级同步整流芯片,两者配合实现高精度恒压输出,板端效率可…...

