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

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)

目录 选择题&#xff1a; 题一&#xff1a; 题二&#xff1a; 题三&#xff1a; 题四&#xff1a; 题五&#xff1a; 编程题&#xff1a; 题一&#xff1a;寻找奇数 思路一&#xff1a; 题二&#xff1a;寻找峰值 思路一&#xff1a; 本人实力有限可能对一些地方解…...

确定Mac\Linux系统的架构类型是 x86-64(amd64),还是 arm64 架构

我们在下载软件或镜像时会有很多版本&#xff0c;那需要根据我们的系统架构选择正确的软件或镜像版本。 要确定你的系统使用的是 x86-64&#xff08;amd64&#xff09; 还是 arm64 架构&#xff0c;可以使用以下方法之一&#xff1a; 使用 uname 命令&#xff1a; 打开终端&am…...

Python脚本

update_format.py 批量转视频格式&#xff0c;超级慢&#xff0c;没什么卵用 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&#xff0c;两边都是闭包&#xff0c;输出12345678910 for (i in 1..10) println(i)加上花括号也支持 for (i: Int in 1..10) {println(i)}另外&#xff0c;当对整数进行for循环时&#xff0c;Kotlin还提供了一个step函数来定义迭代的…...

AskIt: Unified Programming Interface for Programming with Large Language Models

本文是LLM系列文章&#xff0c;针对《AskIt: Unified Programming Interface for Programming with Large Language Models》的翻译。 AskIt&#xff1a;用于大型语言模型编程的统一编程接口 摘要1 引言2 动机例子3 设计与实现4 实验评估5 相关工作6 结论 摘要 在不断发展的软…...

【wireshark抓取数据包-PGSQL协议】

测试查看PGSQL协议的网络流量数据明细 &#xff11;&#xff09;捕获过滤的条件设置&#xff0c;tcp.port5432(数据库的端口&#xff09; &#xff12;&#xff09;上面是wireshark的主窗口&#xff0c;分三大主块&#xff1a;Packlist List&#xff08;数据包列表&#xff09…...

【idea学习】

1.debug: 文章详解 2.导入SpringBoot项目 文章详情...

ZooKeeper数据模型/znode节点深入

1、Znode的数据模型 1.1 Znode是什么&#xff1f; Znode维护了一个stat结构&#xff0c;这个stat包含数据变化的版本号、访问控制列表变化、还有时间戳。版本号和时间戳一起&#xff0c;可让Zookeeper验证缓存和协调更新。每次znode的数据发生了变化&#xff0c;版本号就增加。…...

容器编排工具的比较:Kubernetes、Docker Swarm、Nomad

随着容器化技术的普及&#xff0c;容器编排工具成为了现代应用部署和管理的重要组成部分。容器编排工具能够自动化容器的部署、扩展和管理&#xff0c;从而提高应用的可靠性和可伸缩性。在众多的容器编排工具中&#xff0c;Kubernetes、Docker Swarm和Nomad是三个备受关注的主要…...

nginx--技术文档--架构体系--底层核心-原理

Nginx的架构体系可以概括为“一个核心、两个模型。” “一个核心”指Nginx的核心功能&#xff0c;即HTTP请求处理。Nginx作为一个高性能的Web服务器&#xff0c;其核心功能是处理HTTP请求&#xff0c;包括接收请求、解析请求、处理请求和返回响应等。 “两个模型”指Nginx的多…...

Java23种设计模式之【单例模式】

目录 一.单例模式的起源&#xff0c;和应用场景 1.单例模式的前世今生&#xff01; 2.什么是单例模式&#xff1f; 2.1使用单例模式的注意事项 2.2如何理解单例模式&#xff1f; 2.3单例模式的优势以及不足&#xff01; 2.4使用场景 二.实现 1.实现思路 1.1创建一个 S…...

SQLserver基础入门理论(超基础)二

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a; 小刘主页 ♥️努力不一定有回报&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️学习两年总结出的运维经验&#xff0c;以及思科模拟器全套网络实验教程。专栏&#xf…...

macbookpro怎么删除软件没有鼠标

macbookpro怎么删除软件没有鼠标,macbookpro触摸板可以替代鼠标进行操作。左右键功能与鼠标相同&#xff0c;可用于执行删除操作。此外&#xff0c;还可以利用键盘上的Delete键来删除选中的文件。 删除软件方法 方法1、打开应用程序&#xff0c;键盘按住control&#xff0c;加点…...

华为数通方向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中&#xff0c;与变量相关的内置函数比较多&#xff0c;本文说一些比较重要的、常见的内置函数。今日着重讲解了5个&#xff0c;分别是&#xff1a;检测变量是否为空的函数empty()、判断变量是否定义过的函数isset()、销毁指定的变量的函数unset()、获取变量的类型的函数…...

9月3日,每日信息差

第一、中国中铁与广州市城中村改造做地主体签署战略合作框架协议。根据协议&#xff0c;双方将积极响应广州市统筹做地推进高质量发展工作精神&#xff0c;充分发挥双方优势资源&#xff0c;共同加大在物业复建安置、基础设施建设、综合开发投资、城中村改造&#xff08;微改造…...

2023年了,java后端还有未来吗?

前言 Java当下确实是比较的内卷&#xff0c;但关键在于个人&#xff0c;可以看看不同地方&#xff08;这里主要举例北上广深一线城市&#xff09;对于Java开发工程师这个职位的具体要求&#xff1a; 在以下北上广深这些一线大城市的面试招聘当中不难看出&#xff0c;凡是工资…...

使用cmake,将github上的某一个库进行集成到vs2022上

可以参考如下链接的内容: (还未完成,将在后序补充) 1.首先使用cmake,得到对应库的lib,include,bin文件夹 可以参考 https://www.youtube.com/watch?vu5-Df1YlxCI 2.现在我用cmake对这个第三方库进行编译&#xff0c;生成了三个文件夹&#xff1a;一个放的是lib文件(lib文件…...

第二张微服务的调用与注册

文章目录 工程导入利用RestTemplate调用服务需求创建RestTemplate的实例到Spring容器使用RestTemplate发送请求消费者和提供者 Eureka注册中心服务远程调用会出现的问题Eureka的结构和作用Eureka的配置过程搭建注册中心服务注册服务发现 Ribbon负载均衡负载均衡原理源码跟踪总结…...

iWatch框架设计

iWatch框架设计 一、项目框架结构设计 1、项目文件介绍 OverSeaProject&#xff1a;是IOS相关文件文件内容iWatchApp和iWatch Extension&#xff1a;是之前使用xcode14之前的xcode创建的360 app的Watch App&#xff0c;产生的文件结构&#xff0c;包含一个app和Extension的ta…...

KMS_VL_ALL_AIO:智能激活脚本的完整使用指南

KMS_VL_ALL_AIO&#xff1a;智能激活脚本的完整使用指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO KMS_VL_ALL_AIO是一款基于微软官方KMS协议开发的智能激活脚本&#xff0c;为Windows系统…...

Raw Accel深度解析:从零掌握Windows内核级鼠标加速的终极指南

Raw Accel深度解析&#xff1a;从零掌握Windows内核级鼠标加速的终极指南 【免费下载链接】rawaccel kernel mode mouse accel 项目地址: https://gitcode.com/gh_mirrors/ra/rawaccel 你是否厌倦了Windows默认鼠标加速的不稳定表现&#xff1f;是否在游戏中苦苦寻找更精…...

Vibe Vibe 测试自动化:如何用AI帮你写测试代码,保证项目质量

Vibe Vibe 测试自动化&#xff1a;如何用AI帮你写测试代码&#xff0c;保证项目质量 【免费下载链接】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.…...

智能停车系统告别拥堵!巨有科技让景区停车畅行无忧

每逢节假日&#xff0c;景区停车场便成了“重灾区”——入口大排长龙、场内找位半小时、缴费排队苦不堪言。这不仅严重消耗游客耐心&#xff0c;更直接拉低景区口碑与运营效率。在文旅消费持续回暖的今天&#xff0c;停车体验已成为衡量景区服务力的关键指标。巨有科技以数据驱…...

清华大学打造实时交互视频生成新方案:让AI“边想边说“不再卡顿

这项由清华大学与人民大学联合开展的研究&#xff0c;于2026年5月以预印本形式发布&#xff0c;论文编号为arXiv:2605.15141&#xff0c;有兴趣深入了解的读者可通过该编号查询完整论文。研究团队来自清华大学和生数科技&#xff08;ShengShu&#xff09;&#xff0c;与人民大学…...

3分钟搞定M3U8视频下载:免费开源工具的终极懒人包

3分钟搞定M3U8视频下载&#xff1a;免费开源工具的终极懒人包 【免费下载链接】N_m3u8DL-CLI-SimpleG N_m3u8DL-CLIs simple GUI 项目地址: https://gitcode.com/gh_mirrors/nm3/N_m3u8DL-CLI-SimpleG 还在为下载在线视频发愁吗&#xff1f;那些藏在网页里的M3U8格式视频…...

使用TaotokenCLI工具一键配置开发环境与模型密钥

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 使用Taotoken CLI工具一键配置开发环境与模型密钥 在接入大模型进行开发时&#xff0c;手动配置API密钥、Base URL和模型ID是常见的…...

工业自动化设备电流检测解决方案——工业控制系统为什么越来越重视隔离电流检测

在工业自动化设备中&#xff0c;电流检测已经成为控制系统的重要组成部分。无论是PLC控制柜、伺服驱动器、工业电源、机器人控制系统还是变频器系统&#xff0c;控制器都需要实时获取负载电流信息&#xff0c;用于过流保护、闭环控制、功率计算以及设备状态监测。但很多工程师在…...

2026年度AI接入方案复盘:六大主流API中转/API聚合平台深度测评与选型建议

2026年度AI接入方案复盘&#xff1a;六大主流API中转平台深度测评与选型建议 站在2026年的技术节点回望&#xff0c;企业在构建大模型应用时&#xff0c;早已告别了单纯追求低价的阶段。经过一整年的行业沉淀&#xff0c;我们发现真正影响生产效率的并非单一Token的成本&#…...

主芯片LP3717BTT+LP3568C,5V3.1A过认证适配器⽅案(电路原理图)

LP3717BTT LP3568C 是一套 5V/3.1A&#xff08;15.5W&#xff09;隔离型反激电源方案&#xff0c;主打"过认证、高效率、低温度"。LP3717BTT 是原边 PWM 控制器&#xff0c;LP3568C 是次级同步整流芯片&#xff0c;两者配合实现高精度恒压输出&#xff0c;板端效率可…...