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

C语言属刷题训练【第八天】

文章目录

  • 🪗1、如下程序的运行结果是( )
  • 💻2、若有定义: int a[2][3]; ,以下选项中对 a 数组元素正确引用的是( )
  • 🧿3、在下面的字符数组定义中,哪一个有语法错误( )
  • 📔4、下列定义数组的语句中正确的是【多选】( )
  • 💵5、已知 i,j 都是整型变量,下列表达式中,与下标引用 X[i][j] 不等效的是【多选】( )
  • 💣字符个数统计
  • 🛋多数元素

🪗1、如下程序的运行结果是( )

char c[5]={'a', 'b', '\0', 'c', '\0'};
printf("%s", c);

A: ‘a’ ‘b’ B: ab\0c\0
C: ab c D: ab

字符串的结束标志是’\0’,而’\0’的ASCII值是0,而c[2]被初始化为0,就相当于是’\0’,故字符串打印的内容只有"ab"。
🧥知识点:字符串的结束标志

💻2、若有定义: int a[2][3]; ,以下选项中对 a 数组元素正确引用的是( )

A: a[2][0] B: a[2][3]
C: a[0][3] D: a[1>2][1]

本题主要考虑数组越界访问的情况,二维数组的行和列都是从0开始的,对于a数组来说,行下标最大是1,列下标最大是2,
D选项中1>2表达式的值是0(假),是正确的,其他选项行和列都可能存在越界,A是行越界,B是行和列都越界,C是列越界。
🩳知识点:二维数组的范围

🧿3、在下面的字符数组定义中,哪一个有语法错误( )

A: char a[20]=“abcdefg”; B: char a[]=“x+y=5.”;
C: char a[15]; D: char a[10]=‘5’;

D 中的’5’是一个字符常量,不能给字符型数组a初始化
👘知识点:数组定义规则

📔4、下列定义数组的语句中正确的是【多选】( )

A:#define size 10 char str1[size], str2[size+2]; B: char str[]; C:
int num[‘10’]; D: int n=5; int a[n][n+2];

A选项:宏替换,没问题;B选项:非法定义,一维数组必须定义数组元素个数;C选项:字符’0’,转换成十进制为48,所以
该选项最终为int num[48];D选项:错误,数组定义下角标不能为变量,注:C99标准中支持了使用变量,这里不做特殊考

🛍知识点:数组定义规则

💵5、已知 i,j 都是整型变量,下列表达式中,与下标引用 X[i][j] 不等效的是【多选】( )

A: *(X[i]+j) B: *(X+i)[j] C: *(X+i+j) D: ((X+i)+j)

本题考查的是二维数组的元素访问,A选项是 正确的,X[i]就是第i行的数组名,数组名表示首元素的地址,X[i]表示第i行的第
一个元素的地址,+j后就是第i行下标为j的元素的地址,整体解引用就是X[i][j],A正确。B选项因为[]的优先级高于*,所以代
码相当于**((x+i)+j),X+i+j后就越界了,并不代表X[i][j],所以错误。C选项也明显不对,X是二维数组的数组名,数组名相当于第
一行的地址,X+i+j,跳过了i+j行,就越界了,C错误。D选项是标准的指针形式访问二位数组的一个元素。
🎒知识点:指针与数组

💣字符个数统计

编写一个函数,计算字符串中含有的不同字符的个数。字符在 ASCII 码范围内( 0~127 ,包括 0 和 127 ),换行表示结束符,不算在字符里。不在范围内的不作统计。多个相同的字符只计算一次例如,对于字符串 abaca 而言,有 a、b、c 三种不同的字符,因此输出 3

输入描述:输入一行没有空格的字符串。
输出描述:输出 输入字符串 中范围在(0~127,包括0和127)字符的种数。
在这里插入图片描述

这道题其实比较简单,定义两个指针,一个指向数组的前一个元素,一个指向数组元素。定义一个变量 count ,如果前一个元素与这个元素不同,count 就加1,如果相同,两个指针同时往后走,知道遍历完数组。
当然,博主这段代码,是刚开始将题意理解为将相同的数拷贝进另一个数组,不过只需要在同样的思路下加一个 count 变量即可。
知识点:双指针

#include <stdio.h>
#include<stdlib.h>
#include<string.h>
int com(const void*p1,const void*p2){return *(char*)p1-*(char*)p2;
}
int main(){char *str1=(char*)malloc(sizeof(char)*500);char *str2=(char*)malloc(sizeof(char)*500);int count=1;scanf("%s",str1);qsort(str1,strlen(str1),1,com);char*p1=str1,*p2=str2,*p3=str1;*p2=*p1;p1++;while(*p1){if(*p1==*p3){p1++;p3++;}else{*p2=*p1;p1++;p3++;p2++;count++;}}*p2='\0';printf("%d",count);return 0;
}

🛋多数元素

给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。
在这里插入图片描述
这个题目,理论上来讲可以用暴力求解的方法来实现,可当题目的测试用例搞出一些非常恶心的操作,例如
在这里插入图片描述
说实话,这样的测试用例估计就是专门针对暴力求解的,也是没谁了。

暴力求解的代码也给大家放这里吧

    int i=0;int *numscpy=(int*)malloc(sizeof(int)*numsSize);for(i=0;i<numsSize;i++){int j=0;int count=0;for(j=0;j<numsSize;j++){if(nums[i]==nums[j])count++;}numscpy[i]=count;}int max=numscpy[0];int idx=0;for(i=0;i<numsSize;i++){if(numscpy[i]>max){max=numscpy[i];idx=i;}}return nums[idx]; } ```

当然,肯定是有更好用的方法的,可以荣题目中多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素这句话入手,先对数组进行排序,那么中间的元素 arr[n/2] 地方的元素肯定是出现最多的元素

int com(const void*p1,const void*p2){return *(int*)p1-*(int*)p2;
}
int majorityElement(int* nums, int numsSize){qsort(nums,numsSize,sizeof(int),com);return nums[numsSize/2];
}

就是利用 qsort 排序再返回数组中间元素,多一行代码就是对qsort 的不尊重!
🪖知识点:qsort排序

相关文章:

C语言属刷题训练【第八天】

文章目录 &#x1fa97;1、如下程序的运行结果是&#xff08; &#xff09;&#x1f4bb;2、若有定义&#xff1a; int a[2][3]; &#xff0c;以下选项中对 a 数组元素正确引用的是&#xff08; &#xff09;&#x1f9ff;3、在下面的字符数组定义中&#xff0c;哪一个有语法错…...

阿里云PolarDB数据库倚天ARM架构详细介绍

阿里云云原生数据库PolarDB MySQL版推出倚天ARM架构&#xff0c;倚天ARM架构规格相比X86架构规格最高降价45%&#xff0c;PolarDB针对自研倚天芯片&#xff0c;从芯片到数据库内核全链路优化&#xff0c;助力企业降本增效。基于阿里云自研的倚天服务器&#xff0c;同时在数据库…...

pytest 编写规范

一、pytest 编写规范 1、介绍 pytest是一个非常成熟的全功能的Python测试框架&#xff0c;主要特点有以下几点&#xff1a; 1、简单灵活&#xff0c;容易上手&#xff0c;文档丰富&#xff1b;2、支持参数化&#xff0c;可以细粒度地控制要测试的测试用例&#xff1b;3、能够…...

Vue.use和vue.component的区别

Vue.use 注册全局插件vue.use时会将自动将开发者 vue构造函数传入插件,vue.use参数必须是function或者object,object中必须有install方法vue.use会自动判断当前插件时候已经被注册过了,防止重复注册 Vue.component 注册全局组件 为什么有了Vue.component还要用Vue.use呢 V…...

张驰咨询:提高企业竞争力,六西格玛设计公司(DFSS)在行动

六西格玛设计公司(DFSS)是一种专业从事六西格玛设计的企业&#xff0c;其主要作用是为客户提供高效的六西格玛设计服务&#xff0c;以帮助客户实现高品质、低成本和高效率的产品开发过程。六西格玛设计公司通常拥有一支专业的团队&#xff0c;具有丰富的六西格玛设计经验和技术…...

影响 40% 用户,Ubuntu 发行版被曝 2 个安全漏洞

导读近日消息&#xff0c;Wiz 的研究专家 S. Tzadik 和 S. Tamari 近日在 Ubuntu 系统中发现了 2 个安全漏洞&#xff0c;可以提升本地权限&#xff0c;预估影响 40% 的 Ubuntu 用户。 根据博文内容&#xff0c;汇总两个漏洞内容如下&#xff1a; 追踪编号&#xff1a;CVE-202…...

SpringCache的介绍和入门案例

文章目录 概述常用注解入门案例 概述 Spring Cache是Spring框架提供的一个缓存抽象层&#xff0c;用于在应用程序中实现缓存的功能。它通过在方法执行前检查缓存中是否已经存在所需数据&#xff0c;如果存在则直接返回缓存中的数据&#xff0c;如果不存在则执行方法体&#xf…...

闪马智能又上榜!

近日&#xff0c;上海市经济和信息化委员会公布了2023年度上半年&#xff08;第30批&#xff09;市级企业技术中心拟认定企业名单。凭借在技术创新方面的突出成就&#xff0c;闪马智能上榜其中。 本次认定由上海市经济和信息化委员会组织开展&#xff0c;综合企业的地位和作用、…...

C++中的四种类型转换(Type Casting)方式

在C中&#xff0c;有四种常见的类型转换&#xff08;Type Casting&#xff09;方式&#xff0c;它们分别是&#xff1a; 一、静态转换&#xff08;Static Cast&#xff09;&#xff1a; static_cast是最常见的类型转换方式&#xff0c;用于基本数据类型的转换、非多态类型之间…...

Linux系列:从0到1用Docker部署springboot项目

目录 1.前提条件 2.编写DockerFile镜像文件 3.打包SpringBoot项目 4.通过软件Xftp进行传输&#xff08;*&#xff09; 1.点击“文件-新建”​编辑 5.操作远程主机 1.docker构建 2.容器运行 6.容器的关闭和删除 1.前提条件 Linux、docker、xftp的安装、一台可以访问的远…...

zabbix监控mysql数据库、nginx、Tomcat

文章目录 一.zabbix监控mysql数据库1.环境规划2.zabbix-server安装部署&#xff08;192.168.198.17&#xff09;3.zabbix-mysql安装部署&#xff08;192.168.198.15&#xff09;3.1 部署 zabbix 客户端3.2 服务端验证 zabbix-agent2 的连通性&#xff08;192.168.198.17&#x…...

深入探索二叉树算法:理解、构建和应用C语言

引言 二叉树是计算机科学中的一种重要数据结构&#xff0c;它在各种算法和应用中都扮演着重要角色。本篇博客将带您深入探索二叉树的世界&#xff0c;从基本概念到高级应用&#xff0c;逐步展开二叉树的奥秘&#xff0c;助您更好地理解、构建和应用二叉树算法。 什么是二叉树…...

(css)点击前隐藏icon图表 点击后显示

(css)点击前隐藏icon图表 点击后显示 效果 html <liv-for"(item,index) in sessionList":key"index"class"liClass":class"{ active: change2 index }"tabindex"2">...<el-tooltip class"item" effec…...

Tomcat的动静分离以及多实例部署

一、动静分离 Nginx实现负载均衡的原理&#xff1a; Nginx实现负载均衡是通过反向代理实现Nginx服务器作为前端&#xff0c;Tomcat服务器作为后端&#xff0c;web页面请求由Nginx服务来进行转发。 但不是把所有的web请求转发&#xff0c;而是将静态页面请求Ncinx服务器自己来处…...

uniapp+vue3项目中使用vant-weapp

创建项目 通过vue-cli命令行创建项目 Vue3/Vite版要求 node 版本^14.18.0 || >16.0.0 uni-app官网 (dcloud.net.cn) npx degit dcloudio/uni-preset-vue#vite my-vue3-project打开项目 点击顶部菜单栏终端/新建终端 执行安装依赖指令 yarn install 或 npm install 安装vant…...

WordPress:实现发布文章自动添加TAG标签

在给我们的WordPress博客更新文章时&#xff0c;大多数人应该会给文章添加一些TAG标签&#xff0c;文章添加TAG标签也是我们做WordPress优化必不可少的一项&#xff0c;但是如果每一篇文章的关键字标签都要手动添加链接&#xff0c;那也太麻烦了。今天给大家分享一篇自动给文章…...

ubuntu下FFmpeg安装和使用以及CMakeLists.txt模板

sudo apt install ffmpeg sudo apt-get install libavfilter-devcmakelist模板 CMakeLists.txt cmake_minimum_required(VERSION 3.16) project(ffmpeg_demo)# 设置ffmpeg依赖库及头文件所在目录&#xff0c;并存进指定变量 set(ffmpeg_libs_DIR /usr/lib/x86_64-linux-gnu) …...

数据结构顺序表和链表(超详细)

线性表&#xff1a; 线性表 &#xff08; linear list &#xff09; 是 n 个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使 用的数据结构&#xff0c;常见的线性表&#xff1a;顺序表、链表、栈、队列、字符串 ... 线性表在逻辑上是线性结构&#xff0c;也就…...

free 查看 buff/cache 很大,处理方法

如果 free 命令输出中的 buff/cache 很大&#xff0c;这意味着系统将一部分内存用于缓存文件系统的数据。这是正常的行为&#xff0c;因为缓存可以提高文件访问的速度。然而&#xff0c;如果需要释放缓存来腾出内存空间&#xff0c;可以尝试以下方法&#xff1a; 清理 PageCach…...

【Quarkus技术系列】「云原生架构体系」在云原生时代下的Java“拯救者”是Quarkus,那云原生是什么呢?

云原生时代下的Java"拯救者" 在云原生时代&#xff0c;其实Java程序是有很大的劣势的&#xff0c;以最流行的spring boot/spring cloud微服务框架为例&#xff0c;启动一个已经优化好&#xff0c;很多bean需要lazy load的application至少需要3-4秒时间&#xff0c;内…...

后进先出(LIFO)详解

LIFO 是 Last In, First Out 的缩写&#xff0c;中文译为后进先出。这是一种数据结构的工作原则&#xff0c;类似于一摞盘子或一叠书本&#xff1a; 最后放进去的元素最先出来 -想象往筒状容器里放盘子&#xff1a; &#xff08;1&#xff09;你放进的最后一个盘子&#xff08…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用&#xff0c;操作系统&#xff1a;Ubuntu24.04&#xff0c;Neofj版本&#xff1a;2025.04.0。 Apt安装 Neofj可以进行官网安装&#xff1a;Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化&#xff1a;人工智能的自我改进与监管挑战 文章目录 递归进化&#xff1a;人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管&#xff1f;3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出&#xff1a;JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中&#xff0c;随机数的生成看似简单&#xff0c;却隐藏着许多玄机。无论是生成密码、加密密钥&#xff0c;还是创建安全令牌&#xff0c;随机数的质量直接关系到系统的安全性。Jav…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下&#xff0c;江苏艾立泰以一场跨国资源接力的创新实践&#xff0c;重新定义了绿色供应链的边界。 跨国回收网络&#xff1a;废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点&#xff0c;将海外废弃包装箱通过标准…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...