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

C及C++每日练习(3)

选择题:

1.以下程序的输出结果是()

#include <stdio.h> 
main() { char a[10] = {'1', '2', '3', '4', '5', '6', '7', '8', '9', 0}, *p; int i; i = 8; p = a + i; printf("%s\n", p - 3); 
}

A.6  B. 6789   C. '6'   D.789

       对于本题,首先创建了一个大小为10的字符数组,数组名为a,接着创建了char*类型的指针p,随后,让p赋值为a+i,即a+8,此处的加法是针对于指针的加法,在对指针做加法时,表示的是跳过sizeof(type)*n个字节,即跳过指针指向数组类型*n个字节。在本题中,进行加法后,指针指向元素'9'

      在进行打印是,打印的初始位置为p-3,即从元素'6'开始对数组进行打印,此时的打印类型为%s对于这种类型的打印,当遇到结束标志'\0'时停止打印,需要注意的是,此处数组中的0并不是待打印的元素0,而是表示打印结束的标志,因此答案选择B

2.以下程序的输出结果是()

#include <iostream.h> 
int main() 
{ int x=3,y=3; switch(x%2) { case 1: switch (y) { case 0: cout<<"first"; case 1: cout<<"second"; break; default: cout<<"hello"; } case 2: cout<<"third"; } return 0; 
}

A.second third    B.hello    C. first second   D.hellothird

      对于本题,主要考察对于switch选择语句的语法规则。在上述给出的代码中,由于x%2==1,因此在进入switch选择语句时,执行case\, \, 1的情况,在case\, \, 1中,由于y==3,因此执行default情况下的语句,即打印字符串hello,在此处需要注意,由于在case\, \, 1中,并不存在break,因此,在执行完 case\, \, 1后,代码会继续执行case \, \, 2中所对应的代码,即打印字符串third。因此,答案选择D

3.以下能对二维数组a进行正确初始化的语句是()

A. int ta[2][]={{0,1,2},{3,4,5}};B. int ta[][3]={{0,1,2},{3,4,5}}; 
C. int ta[2][4]={{0,1,2},{3,4},{5}}; 
D. int ta[][3]={{0,,2},{},{3,4,5}};

       在初始化二维数组时,需要注意以下的点:表示二维数组行数的参数可以省略,但是表示二维数组列数的参数不能省略。并且,在初始化其中一行时,必须连续初始化,不能出现中断。

     在给出上面的两点后,对比各个选项,其中选项A省略了列参数,因此错误,对于选项C,由于数组的参数表示数组是一个两行四列的数组,但是在初始化时,确实三行,因此错误。对于选项D由于出现了不连续初始化,因此错误。答案选择B

4.能把函数处理结果的二个数据返回给主调函数,在下面的方法中不正确的是()

A. return这二个数

B.形参用数组

C.形参用二个指针

D.用二个全局变量

对于本题,BC两个选项的返回方式大致相同,都是采用指针,正确。对于D,由于全局变量的作用范围是整个程序,因此正确。对于选项A,由于一个函数只能返回一个值,所以错误。

5.int *p[4] 与选择项中的() 等价

A. int p[4]

B. int *p

C. int *(p[4])

D. int (*p)[4]

      对于题目中题目中给定的int*p[4],由于[]的结合优先级大于*,因此,p会先和[]结合,再和*结合,此时的p为指针数数组,即数组中存放了4个类型为int*的指针。

    对于A选项,此时的p只是一个数组的名称,所以不等价

   对于B选项,此时的p表示int类型的指针

    对于C选项,p先和[]结合,再和*结合,此时的p是指针数组,于A等价。

   对于选项Dp先和*结合,再与[]结合,此时的p是一个数组指针。

  综上,答案选择C

6.设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是

A.n=0;while(ch=getchar()!='\n')n++;
B.n=0;while(getchar()!='\n')n++; 
C. for(n=0;getchar()!='\n';n++); 
D.n=0;for(ch=getchar();ch!='\n';n++);

       对于选项A,其整体逻辑为:用变量ch接收getchar()读取的字符,如果不为'\n',则继续统计。因为'\n'为换行标志,因此可以正确的统计出字符个数。

       对于选项B,则是直接利用getchar()函数读取的字符进行判断,原理于选项A相同,正确。

      对于选项C,是将getchar()函数作为for循环中判断是否结束的标志,正确。

     对于选项D,这里需要注意,由于for循环中第一个;之前的内容是表示初始化变量,因此,再这种书写方法中,ch一直是getchar()第一次读取的字符,不会继续向后读取,因此错误,答案选择D

   

7.下面3段程序代码的效果一样吗()

int b; 
(1)const int *a = &b; 
(2)int const *a = &b; 
(3)int *const a = &b;

A. (2)=(3)

B. (1)=(3)

C. (1)=(2)

D.都不一样

       对于判断常量指针和指针常量的题目,在C及C++每日练习(2)-CSDN博客中给出了详细的解释,这里只进行大概的说明:对于常量指针,表示指针指向的内容为常量,不能通过解引用的方式来修改指向的内容,但是可以改变指针的指向,即可以指向另一个常量。其特点是const*之前。

     对于指针常量,表示指针本身就是一个常量,因此,不能改变指针的指向,但是可以通过解引用的方式来改变指针所指向的内容。

    因此,(1)是一个常量指针,(2)同样也是常量指针,(3)是指针常量,所以答案选择C

8.32位系统中,定义**a[3][4],则变量占用内存空间为()。

A.4      B. 48     C.192     D.12

由于是32位地址,因此,指针的大小为4字节,在上面提到了[]的结合优先级是大于*的,因此,题目中的代码表示,a是一个三行四列的二维数组,并且数组中存储的内容是二级指针。因此变量a占用内存空间的大小为12*4,即48字节。

9.假设在一个 32 位 little endian 的机器上运行下面的程序,结果是多少?

#include <stdio.h> 
int main(){ long long a = 1, b = 2, c = 3;  printf("%d %d %d\n", a, b, c);   return 0; 
}

A.1,2,3 B. 1,0,2 C.1,3,2 D.3,2,1

      对于本题,首先需要看到,创建的三个变量的类型为long\, \, long,但是在打印时,却是采用打印int变量的格式。并且,在题干中给出的信息为:机器是一个32位的小端机。对于小端机,其定义为:低位存低地址。对于大端机,其特点为低位存高地址。例如存储一个1,如果采用16进制进行表示,并且左边为低地址,右边为高地址。则在小端机中存储为01\, 00\, 00\, 00。如果是一个大端机,则为00\, 00\, 00\, 01

      在了解了大端机,小端机的概念后,还需要直到,对于printf函数,其需要打印的变量的入栈参数是从右向左入栈的,并且从高地址进行入栈,因此,三个变量入栈的顺序为3,2,1具体效果可以由下面的图展示:
 

由于栈的性质是后进先出,并且,%d是将四个字节的内容以十进制的方式进行打印,因在打印时,首先打印后进入的内容的前四个字节的内容,即01\, 00\, 00\, 00,随后继续打印,即打印00\, 00\, 00\, 00,最后再打印02\, 00\, 00\, 00.因此答案选择B

编程题:

       第一题较为简单,创建3string 类型的对象,第一个命名为str,用于接收题目的输入,剩下二个命名为com,max,当str[i]所对应的字符为数字时com+=str[i],如果str[i]不是数字,此时对应的情况时,连续的数字串已经被遍历完毕,此时让max,com进行比较,如果max<com,则令max = com。随后清楚com中的内容。

     需要注意的一个点是,如果最大的数字串恰好在给定字符串的末尾结束,例如abc123egf1234567,此时需要注意对于一个长度为n的字符串循环时,需要循环n+1次,即i<=str.size()。对于代码如下:
 

#include <iostream>
#include<string>
using namespace std;int main() 
{string str,max,com;cin >> str;for(int i = 0; i <= str.size(); i++){if(str[i] >= '0' && str[i] <= '9'){com += str[i];}else {if(max.size() < com.size()){max = com;}com.clear();}}cout << max;return 0;
}
// 64

题目较为简单,由于需要找出现次数大于数组长度一半的数字,所以直接对数组进行排序,取中间数,随后再进行一次遍历,如果这个是数字在数组中的出现次数超过一半,则返回整个数,代码如下:
 

class Solution {
public:int MoreThanHalfNum_Solution(vector<int>& numbers) {sort(numbers.begin(),numbers.end());int mid = numbers[numbers.size()/2];int count = 0;for(int i = 0; i < numbers.size(); i++){if(numbers[i] == mid){count++;}}if(count > (numbers.size()/2)){return mid;}return 0;}
};

相关文章:

C及C++每日练习(3)

选择题&#xff1a; 1.以下程序的输出结果是&#xff08;&#xff09; #include <stdio.h> main() { char a[10] {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}, *p; int i; i 8; p a i; printf("%s\n", p - 3); } A.6 B. 6789 C. 6 D.789 对于本题&#xff0…...

黑马点评-附近商户实现

GEO数据结构 Redis在3.2版本中加入了对GEO的支持&#xff0c;允许存储地理坐标信息&#xff0c;根据经纬度来检索数据。 GEO本质上是基于sortedSet实现的&#xff0c;在Sorted Set中&#xff0c;每个成员都是与一个分数(score)相关联的&#xff0c;这个分数用于对成员进行排序…...

安装nginx:手动安装和yum安装

本文在centos7.9下分别尝试了yum安装和手动安装&#xff0c;记录一下试验过程。为后来者少踩点坑。 下载 下载地址&#xff1a;链接 。建议下载稳定版本&#xff0c;也就是Stable Version&#xff0c;这里下载的是 nginx-1.24.0 # 我下载在如下文件夹 mkdir/opt/apps cd /op…...

【C++ STL详解】——string类

目录 前言 一、string类对象的常见构造 二、string类对象的访问及遍历 1.下标【】&#xff08;底层operator【】函数&#xff09; ​编辑 2.迭代器 3.范围for 4.at 5.back和front 三、string类对象的容量操作 1.size 和 length 2.capacity 3.empty 4.clear 5.res…...

MatplotlibPython 1 3.7

放大数据&#xff0c;如果想仔细看某一行的数据的时候 可以调不同的颜色&#xff0c;图片的长宽高&#xff0c;以及线的种类 plt.figure 这个命令下的所有东西都在这个figure里面 plt.xlim 改变坐标轴的范围 plt.xlabel 改变坐标轴的总名称 plt.xticks 换单位 plt.yt…...

深入理解 Dubbo:构建分布式服务治理体系

目录 1. 介绍 2. Dubbo 的核心概念 2.1 服务提供者&#xff08;Provider&#xff09;与服务消费者&#xff08;Consumer&#xff09; 2.2 注册中心&#xff08;Registry&#xff09; 2.3 监控中心&#xff08;Monitor&#xff09; 3. Dubbo 的功能特性 3.1 远程调用&…...

唤起原生IOS和安卓Android app的方法

大家好我是咕噜美乐蒂&#xff0c;很高兴又和大家见面了&#xff01; 要唤起原生 iOS 或 Android 应用程序&#xff0c;你可以使用以下方法&#xff1a; 唤起原生 iOS 应用程序 在 iOS 上&#xff0c;你可以使用自定义 URL 方案或 Universal Links 来唤起原生应用程序。以下…...

RabbitMQ的web控制端介绍

2.1 web管理界面介绍 connections&#xff1a;无论生产者还是消费者&#xff0c;都需要与RabbitMQ建立连接后才可以完成消息的生产和消费&#xff0c;在这里可以查看连接情况channels&#xff1a;通道&#xff0c;建立连接后&#xff0c;会形成通道&#xff0c;消息的投递、获取…...

GitHub登不上:修改hosts文件来解决(GitHub520,window)

参考链接&#xff1a;GitHub520: 本项目无需安装任何程序&#xff0c;通过修改本地 hosts 文件&#xff0c;试图解决&#xff1a; GitHub 访问速度慢的问题 GitHub 项目中的图片显示不出的问题 花 5 分钟时间&#xff0c;让你"爱"上 GitHub。 (gitee.com) GitHub网站…...

01-DevOps代码上线-git入门及gitlab远程仓库

一、准备学习环境 10.0.0.71-gitlab 2c2g-20GB 10.0.0.72-jenkins 2c2g-20GB 10.0.0.73-sonarqube 1c1g-20GB 10.0.0.74-nexus 1c1g-20GB 10.0.0.75-dm 1c1g-20GB &#xff08;模拟写代码服务器&#xff09; 在centos系统中&…...

EdgeX Foundry 安全模式安装部署

文章目录 一、安装准备1.官方文档2. 克隆服务器3.安装 Docker4.安装 docker-compose 二、安装部署1.docker-comepse2.启动 EdgeX Foundry3.访问 UI3.1. consul3.2. EdgeX Console EdgeX Foundry # EdgeX Foundryhttps://iothub.org.cn/docs/edgex/ https://iothub.org.cn/docs…...

网络安全-appcms-master

一、环境 gethub上面自己找appcms-master 二、分析一下源码以及闯关思路 首先是有一个函数循环以及函数过滤&#xff0c;我们的post会将我们所传的所有val值去进行一个循环&#xff0c;之后通过htmlspecialchars这个函数进行过滤和转换所以val值不能通过单双引号闭合注入的方…...

ThreadLocal 与 synchronized 区别

我的理解 目的都是为了一个大前提:操作内容的线程安全。 任务不同&#xff1a;synchronized 解决的是多线程下线程操作权限的问题&#xff0c;以及原子性的保证。通过对锁的竞争&#xff0c;达到对资源的访问有序。 ThreadLocal是解决的事多线程下资源的隔离问题&#xff0c;即…...

灵魂指针,教给(二)

欢迎来到白刘的领域 Miracle_86.-CSDN博客 系列专栏 C语言知识 先赞后看&#xff0c;已成习惯 创作不易&#xff0c;多多支持&#xff01; 目录 一、数组名的理解 二、使用指针访问数组 三、一维数组传参本质 四、冒泡排序 五、二级指针 六、指针数组 七、指针数组…...

线程安全--浅谈Ad-hoc与加锁的区别

浅谈Ad-hoc 与加锁 两者要解决的都是对对象的语义混乱操作&#xff0c;即有个count进行累加操作。 我的理解/文心一言的反馈如下: 加锁是保证我们对同一个count在多线程下的访问有序&#xff0c;即“读写-修改-写入”具有原子性。 而Ad-hoc机制就是通过程序员自己定义一个私有…...

数据治理实战——翼支付金融板块业务数仓建设和数据治理之路

目录 一、数据治理背景 二、数据治理建设内容 2.1 组织协同 2.2 平台建设 2.3 数据应用治理 2.4 数据规范 2.5 数据安全 三、企业级数仓建设 3.1 调研阶段 2.2 平台护航 2.3 数仓分层 2.4 维度建模 2.4.1 维度建模四步曲 2.4.2 命名规范 2.4.3 资产沉淀 2.4.4 …...

[Buuctf] [MRCTF2020]Transform

1.查壳 64位exe文件&#xff0c;没有壳 2.用64位IDA打开 找到主函数&#xff0c;F5查看伪代码 从后往前看&#xff0c;有一个判断语句&#xff0c;是两个数组进行比较的&#xff0c;我们双击byte_40F0E0查看里面的内容 所以能够推出byte_414040的内容&#xff0c;byte_4140…...

【C++】C++模板基础知识篇

个人主页 &#xff1a; zxctscl 文章封面来自&#xff1a;艺术家–贤海林 如有转载请先通知 文章目录 1. 泛型编程2. 函数模板2.1 函数模板概念2.2 函数模板格式2.3 函数模板的原理2.4 函数模板的实例化2.5 模板参数的匹配原则 3. 类模板3.1 类模板的定义格式3.2 类模板的实例化…...

golang 注释插件

Goanno插件 自动生成golang注释,该插件为 Intellij/Goland 中的 golang 提供自动生成注释 如何使用&#xff1f; control command / (for windows: control alt /)&#xff08;生成注释&#xff09;Right click -> Generate -> Goanno&#xff08;生成注释&#x…...

Unity插件之天气系统UniStorm

首先呢&#xff0c;它是一款强大的动态昼夜天气系统&#xff0c;能够以较快的帧速率创建AAA级动态生成的天气、照明和天空&#xff0c;并且具有300多个可定制的组件&#xff0c;允许用户创建任何可以想象的环境。 第一步&#xff1a;他需要两个物体Camera摄像机、Player播放器…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问&#xff08;基础概念问题&#xff09; 1. 请解释Spring框架的核心容器是什么&#xff1f;它在Spring中起到什么作用&#xff1f; Spring框架的核心容器是IoC容器&#…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机

这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机&#xff0c;因为在使用过程中发现 Airsim 对外部监控相机的描述模糊&#xff0c;而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置&#xff0c;最后在源码示例中找到了&#xff0c;所以感…...

CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝

目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为&#xff1a;一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...

Linux中《基础IO》详细介绍

目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改&#xff0c;实现简单cat命令 输出信息到显示器&#xff0c;你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...

Modbus RTU与Modbus TCP详解指南

目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...

向量几何的二元性:叉乘模长与内积投影的深层联系

在数学与物理的空间世界中&#xff0c;向量运算构成了理解几何结构的基石。叉乘&#xff08;外积&#xff09;与点积&#xff08;内积&#xff09;作为向量代数的两大支柱&#xff0c;表面上呈现出截然不同的几何意义与代数形式&#xff0c;却在深层次上揭示了向量间相互作用的…...

游戏开发中常见的战斗数值英文缩写对照表

游戏开发中常见的战斗数值英文缩写对照表 基础属性&#xff08;Basic Attributes&#xff09; 缩写英文全称中文释义常见使用场景HPHit Points / Health Points生命值角色生存状态MPMana Points / Magic Points魔法值技能释放资源SPStamina Points体力值动作消耗资源APAction…...