当前位置: 首页 > 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…...

Mirage Flow 运维效率提升实战:智能日志排查与故障自愈方案

Mirage Flow 运维效率提升实战&#xff1a;智能日志排查与故障自愈方案 你是不是也经历过这样的深夜&#xff1f;告警短信突然炸了锅&#xff0c;几十上百条日志涌进来&#xff0c;你得像侦探一样&#xff0c;在成百上千行日志里大海捞针&#xff0c;试图找出那个导致系统崩溃…...

ADG实时同步失效的深层原因:从MRP0的WAIT_FOR_LOG状态看standby redolog设计要点

ADG实时同步失效的深层解析&#xff1a;从WAIT_FOR_LOG状态看SRL设计关键点 当Oracle Data Guard环境中MRP0进程陷入WAIT_FOR_LOG状态时&#xff0c;这就像高速公路上的应急车道被占用——整个容灾系统的实时同步能力将陷入瘫痪。本文将带您穿透现象看本质&#xff0c;从存储结…...

逻辑分析仪采样率设置玄学:用Acute 3134E抓eMMC信号时如何平衡精度与时长

逻辑分析仪采样率设置玄学&#xff1a;用Acute 3134E抓eMMC信号时如何平衡精度与时长 在消费电子维修和固件开发领域&#xff0c;捕获准确的eMMC信号波形往往决定着故障诊断的成败。Acute 3134E逻辑分析仪作为工程师手中的利器&#xff0c;其采样率设置却常被戏称为"玄学&…...

告别景深烦恼:用PyTorch+PyQt5打造你的专属多焦点图像融合桌面工具(附完整源码)

告别景深烦恼&#xff1a;用PyTorchPyQt5打造你的专属多焦点图像融合桌面工具 每次拍摄微距或静物时&#xff0c;是否总在景深和清晰度之间纠结&#xff1f;按下快门后才发现前景清晰时背景模糊&#xff0c;背景聚焦时前景又失焦。专业摄影师会告诉你&#xff1a;这是光学镜头的…...

3D点云检测实战-Nuscenes数据集解析与Python工具链深度指南

1. Nuscenes数据集全景解析 第一次接触Nuscenes数据集时&#xff0c;我也被它复杂的结构搞得晕头转向。相比KITTI那种"一个txt文件对应一帧数据"的简单结构&#xff0c;Nuscenes采用了基于token的网状索引体系。这种设计虽然初期学习成本较高&#xff0c;但熟悉后会发…...

三相光伏逆变器研发深度解析:全源代码解读与性能优化指南

三相10Kw光伏并网逆变器。包含全套理图/PCB/源代码一、概述 本文档详细解读基于TI F28379D DSP芯片的三相10kW光伏并网逆变器代码系统。该代码采用模块化设计&#xff0c;涵盖核心控制、硬件抽象、参数配置、驱动适配等多个功能层级&#xff0c;支持交流开环、电流环独立逆变、…...

QT无边框窗口圆角化实战:用paintEvent和样式表两种方法,打造你的专属UI(附完整代码)

QT无边框圆角窗口开发指南&#xff1a;从原理到实战的深度解析 在当今追求极致用户体验的桌面应用开发领域&#xff0c;无边框圆角窗口已经成为现代化UI设计的标配元素。从音乐播放器的沉浸式界面到社交软件的柔和视觉风格&#xff0c;圆角设计不仅能够降低用户的视觉疲劳&…...

前端可访问性:让所有人都能使用你的应用

前端可访问性&#xff1a;让所有人都能使用你的应用 一、引言 又到了我这个毒舌工匠上线的时间了&#xff01;今天咱们来聊聊前端可访问性这个话题。别以为可访问性只是给残障人士用的&#xff0c;实际上&#xff0c;良好的可访问性能够让所有人都能更好地使用你的应用&#xf…...

人流后多久干净才算正常?行业洞察与科学修护指南

人工流产后&#xff0c;出血排净时间是判断身体恢复状态的核心指标&#xff0c;也是女性关注的首要问题。结合行业研究与临床实践&#xff0c;本文将深入解析人流后出血的正常范围、异常信号&#xff0c;同时结合行业修护标准&#xff0c;为女性提供科学、实用的恢复指引&#…...

告别杂乱飞线!用Allegro约束管理器高效规划你的单片机板卡布局布线

告别杂乱飞线&#xff01;用Allegro约束管理器高效规划你的单片机板卡布局布线 在单片机板卡设计中&#xff0c;工程师们常常面临一个共同的痛点&#xff1a;随着元件密度增加和信号速率提升&#xff0c;传统的"先布局后修补"模式会导致后期出现大量飞线交叉、电源噪…...