C及C++每日练习(1)
一.选择:
1.以下for循环的执行次数是()
for(int x = 0, y = 0; (y = 123) && (x < 4); x++);
A.是无限循环 B.循环次数不定 C.4次 D.3次
对于循环,其组成部分可以四个部分:
for(初始化;循环进行条件;调整)
{循环语句//
}
对于上面给出的循环的循环条件,由于中间用于&&连接,因此,必须左右的条件都为真,循环才能继续进行。因此,当循环进行五次时,此时的
,不满足条件,退出循环,因此答案选择:
循环四次
2.以下程序的运行结果是()
#include <stdio.h>
int main(void) { printf("%s , %5.3s\n", "computer", "computer"); return 0;
}
A.computer , puter
B. computer , com
C. computer , computer
D.computer , compu.ter
此题目的考点主要在于打印的格式,即题目中的%。对于这种%
格式的格式。其中
表示输出字符串的宽度,
表示左起截取字符串中的多少字符,且对齐格式为右对齐,如果字符不足则用空格补足。但是也存在特殊情况:
当字符串长度,此时
的作用不再生效。即输出左起截取字符串中的前
个字符。
当字符串长度时,直接从头打印至尾部。
例如本题中,,字符串长度
,所以上述的打印格式应该为:打印字符串的长度
,从左截取字符串中的
个字符,由于截取的字符小于需要打印的字符,因此,用空格补齐,由于存在右对称,所以打印结果为:
computer,空格空格com
答案选择,不过此处的答案并没有体现右对齐和补齐空格。
3.下列main()函数执行后的结果为()
int func(){ int i, j, k = 0; for(i = 0, j = -1;j = 0;i++, j++){ k++; } return k;
}
int main(){ cout << (func());
A.-1
B. 0
C.1
D.2
在上面给出的代码中,调用了函数,结果打印
函数的返回值。在
函数的循环中,由于
,因此,并不符合循环的判断条件,因此不会进入循环,所以直接返回
.。答案选择
4.下面程序输出是什么?
#include <stdio.h>
int main()
{ int a=1,b=2,c=3,d=0; if(a == 1 && b++==2) if(b!=2||c--!=3) printf("%d,%d,%d\n" ,a,b,c);else printf("%d,%d,%d\n" ,a,b,c);else printf("%d,%d,%d\n" ,a,b,c);return 0;
}
A.1,2,3
B. 1,3,2
C.3,2,1
D.1,3,3
在本题给出的代码中,由于并没有搭配相应的括号,因此会有些混乱,下面将题目的格式进行一定的更改,即:
#include <stdio.h>
int main()
{ int a=1,b=2,c=3,d=0; if(a == 1 && b++==2) {if(b!=2||c--!=3) {printf("%d,%d,%d\n" ,a,b,c);}else {printf("%d,%d,%d\n" ,a,b,c);}else printf("%d,%d,%d\n" ,a,b,c);}return 0;
}
在第一个判断中,第一个条件
判断为真,第二个条件由于是后置
,即:先使用,后
,因此也满足条件。但是在判断结束后,
在第二个判断中,需要注意,此时的操作符
存在短路机制,即如果第一个条件满足,则结果直接判断为真,不再判断第二个条件,哟与
为真,因此不再运行
。直接进行打印,此时
的值分别是
,因此答案选择
5.若有定义语句:
int a=10 ; double b=3.14 ; 则表达式 'A'+a+b 值的类型是()
A.char B. int C.double D. float
针对此题目,需要注意,不同类型的变量在进行运算时,会出现自动提升的机制,即表示数据范围小的类型会自动提升到表示范围大的类型,在题目给出的类型中,占用一个字节,
占用
字节,
占用
字节,因此,运算结果在最后会转换为
。因此答案选择
。
6.在下面给出的数组中中,p[1][2]的值是():
int p[][4] = {{1}, {3, 2}, {4, 5, 6}, {0}};
A.1 B. 0 C.6 D.2
给出的数组是一个二维数组,其行数没有给出,列数为,在数组中的数组中,如果给出的数没有达到
位,则会用
补齐。因此,题目中给出的二维数组的结构为:
{1,0,0,0}
{3,2,0,0}
{4,5,6,0}
{0,0,0,0}
对于二维数组,其行、列数都是从开始算起的,因此,
.,因此答案选择
7.选择表达式 11|10 的结果(本题数值均为十进制):
A.11 B. 10 C.8 D.2
题目涉及到二进制的运算,将转为二进制形式,其后八位为:
0000 1011
对于,其二进制位数为:
0000 1010
对于二者的运算,规则为二进制位数有
为
,全
则为
.:
11:0000 1011
10:0000 1010 运算结果:0000 1011
因此答案选择
8.fun(21)运行结果是
int fun(int a){ a^=(1<<5)-1; return a;
}
A.10 B. 5 C.3 D.86
在本题目中,涉及到了两个操作符,分别是异或操作符^,以及位运算操作符
。对于异或操作符,其运算规则为两个二进制位相异为
,相同则为
。
对于本处的位操作符是左移操作符,其规则是右边二进制位丢弃且补
而对于右移操作符,则分为算术右移和逻辑右移,对于题目,一般默认采用算术右移,即右边丢弃,左边补上符号位,负数补
,正数补
.
在本题中,,其位移后为:
移动前:0000 0001
移动后:0010 0000
移动后,此时二进制位数转换为进制,则表示的数为
。所以,答案是变量
,即
与
的异或,即:
21的二进制位:0001 0101
31的二进制位:0001 1111
异或结果: 0000 1010
所以答案选择
9.若有定义语句:int year=1009,*p=&year;以下不能使变量 year 中的值增至 1010 的语句是
A.*p+=1;
B. (*p)++;
C.++(*p)
D. *p++
在本题目中,涉及到了操作符结合的优先顺序,在选项中,
的优先级大于
,因此可以增到
。对于
存在括号,因此不做解释,可以增到
.对于选项
由于后置
的优先级大于
。但是由于是后置
,因此
选项的整体运行顺序为:解引用指针,在对指针进行
,答案选择
10.下面关于"指针"的描述不正确的是
A.当使用free释放掉一个指针内容后,指针变量的值被置为NULL
B. 32位系统下任何类型指针的长度都是4个字节
C.指针的数据类型声明的是指针实际指向内容的数据类型
D.野指针是指向未分配或者已经释放的内存地址
对于选项,当指针被
后,指针变量的值不是
,而是依旧指向一块空间的地址,但是由于这块空间被释放,因此指针为野指针。
对于选项,指针的定义,正确
对于选项正确,此处给出避免野指针的措施,即创建指针时即使初始化,
掉指针指向的空间后将指针置空,不进行数组的越界访问
二.编程:
2.1 删除公共字符:
题目对于链接如下:
删除公共字符_牛客题霸_牛客网 (nowcoder.com)
对于本题,可以利用哈希的思想进行解决,首先创建两个类型的对象,分别命名为
,其中,
分别用于接收第一行、第二行的输入。
在完成输入后,创建一个数组,用于统计
中各个字符出现的次数,如果出现一个字符,则对于数组的位置置为
.
最后,从头遍历中的字符,如果
位置的值为
,即
中的字符在数组中在
中没有出现过。则输出该字符,具体代码如下:
int main()
{string str1,str2;getline(cin,str1);getline(cin,str2);int arr[256] = {0};for( size_t i = 0; i < str2.size(); i++){arr[str2[i]] = 1;}for(size_t j = 0; j < str1.size(); j++){if(arr[str1[j]] == 0){cout << str1[j];}}return 0;}
2.2 组队竞赛:
题目分析:
本题题目较长,看起来较为复杂,其实原理并不难,具体如下:
题目会给定个队伍,每个队伍均有三名选手,对于每个选手都定义了一个水平值,为了方便表示,这里将水平值定义为
。
对于一个队伍整体的水平值等于队伍中第二高的水平值。
对于题目的要求,是需要个队伍的整体水平值达到最大。例如题目中给出的例子:
。最大水平值的组合应该是
和
.不难看出,在本题目中,最大的水平值永远无法取到。如果想要让两个队伍的水平值之和为最大。最优情况,是在每组中,均能取到所有人水平值的第二高。具体如下:
假如对于的组,其每个人的水平值为:
。对于最优的水平值上面说到了,是取总体水平值的第二高。因此,也就是
,而为了能取到
,队伍中需要一个比
大的值,一个最小的值,也就是
.所以第一组分组为
。同理,第二组的分组为
。第三组为
。
所以,解决题目的重点有两个,一是将选手的水平值排列成升序序列,此问题比较简单,直接调用函数即可。
第二个问题,是如何取到第二大的值:
对于上面给出的图:蓝色方框表示需要选中的数,下面的蓝色数字表示数组的下标。对于数组的长度设为,不难看出,蓝色方框选出的数的下标可以通过下面给出的式子表示,即:
因此,代码为:
#include <iostream>
#include<vector>
#include<algorithm>
using namespace std;int main()
{vector<int> v;int n = 0;cin >> n;v.resize(3*n);for( size_t i = 0; i < 3*n; i++){cin >> v[i];}long long sum = 0;sort(v.begin(),v.end());for( size_t j = 0; j < n; j++){sum += v[v.size()-2*(j+1)];}cout << sum;return 0;}
相关文章:
C及C++每日练习(1)
一.选择: 1.以下for循环的执行次数是() for(int x 0, y 0; (y 123) && (x < 4); x); A.是无限循环 B.循环次数不定 C.4次 D.3次 对于循环,其组成部分可以四个部分: for(初始化;循环进行条件;调整) …...
Oracle 12c dataguard查看主备库同步情况的新变化
导读 本文介绍Oracle 12c dataguard在维护方面的新变化 前提:主库备库的同步是正常的。 1、主库上查看archive Log list SYScdb1> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination…...

时间序列-AR MA ARIMA
一、AR模型(自回归) AR探索趋势和周期性 预测依赖于过去的观测值和模型中的参数。模型的阶数 p pp 决定了需要考虑多少个过去时间点的观测值。 求AR模型的阶数 p和参数 ϕ i \phi_i ϕi ,常常会使用统计方法如最小二乘法、信息准则(如AIC、BIC…...
Spring Boot(六十六):集成Alibaba Druid 连接池
1 Alibaba Druid介绍 在现代的Java应用中,使用一个高效可靠的数据源是至关重要的。Druid连接池作为一款强大的数据库连接池,提供了丰富的监控和管理功能,成为很多Java项目的首选。本文将详细介绍如何在Spring Boot项目中配置数据源,集成Druid连接池,以实现更高效的数据库…...

leetcode 经典题目42.接雨水
链接:https://leetcode.cn/problems/trapping-rain-water 题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 思路分析 首先,我们需要遍历数组,对于每个元素&am…...
高防服务器的主要作用有哪些?
高防服务器是属于服务器的一种,主要是为了解决流量攻击而设计的,高防服务器能够维护服务器的稳定性和安全性,具备很高的防御能力和更加优质的网络带宽,能够提供更加可靠的服务保障,那么高防服务器主要都有哪些作用呢&a…...
【30 天 JavaScript 挑战】学习笔记
30 天 JavaScript 挑战 专为 JavaScript 初学者设计 掌握必备 JavaScript 技能 前端人,前端魂,刷完 JS 即入门! 题目地址:https://leetcode.cn/studyplan/30-days-of-javascript/ 个人学习笔记:https://github.com/kaimo313/…...
生成 Linux/ubuntu/Debian 上已安装软件包的列表
你可以在终端中使用以下命令生成已安装软件包的列表: 列出所有已安装的软件包: dpkg --get-selections要将列表保存到文件中: dpkg -l > installed_packages_detailed.txt这将在当前目录中创建一个名为“installed_packages_detailed.txt”…...

精品中国货出海wordpress外贸独立站建站模板
旗袍唐装wordpress外贸网站模板 旗袍、唐装、华服wordpress外贸网站模板,适合做衣服生意的外贸公司官网使用。 https://www.jianzhanpress.com/?p3695 劳动防护wordpress外贸独立站模板 劳动防护wordpress外贸独立站模板,劳动保护、劳动防护用品外贸…...

使用Animated.View实现全屏页面可以向下拖动,松开手指页面返回原处的效果
使用Animated.View实现全屏页面可以向下拖动,松开手指页面返回原处的效果 效果示例图代码示例 效果示例图 代码示例 import React, {useRef, useState} from react; import {View,Text,Animated,Easing,PanResponder,StyleSheet, } from react-native;const TestDragCard () …...

【教程】uni-app iOS打包解决profile文件与私钥证书不匹配问题
摘要 当在uni-app中进行iOS打包时,有时会遇到profile文件与私钥证书不匹配的问题。本文将介绍如何解决这一问题,以及相关的技术细节和操作步骤。 引言 在uni-app开发过程中,iOS打包是一个常见的操作。然而,有时会出现profile文…...

预约自习室
预约自习室 1、技术介绍 自习室预约系统的后端开发语言采用Node,后端开发框架采用Express,数据库采用的Node的最佳搭档MySQL。采用Vue作为前端开发框架,Element-UI作为开发的组件库,微信小程序。期间采用axios实现网页数据获取&a…...

网络安全审计是什么意思?与等保测评有什么区别?
网络安全审计和等保测评在信息安全领域中都是非常重要的环节。但不少人对于这两者是傻傻分不清楚,今天我们就来简单聊聊网络安全审计是什么意思?与等保测评有什么区别? 网络安全审计是什么意思? 网络安全审计是通过对网络系统和网…...
HarmonyOS学习——HarmonyOS习题
harmonyOS开发学习课程 HarmonyOS第一课 1.【习题】运行Hello World工程 判断题 1. DevEco Studio是开发HarmonyOS应用的一站式集成开发环境。(√) 2. main_pages.json存放页面page路径配置信息。(√) 单选题 1. 在stage模…...
Python程序怎么让鼠标键盘在后台进行点击,不干扰用户其他鼠标键盘操作
在Python中实现鼠标和键盘在后台点击而不干扰用户的其他操作是一个比较复杂的任务。大多数库,如pyautogui或pynput,都是直接控制鼠标和键盘的,这意味着它们的操作会干扰用户的正常活动。 为了在不干扰用户的情况下实现这一点,你可…...

HTML静态网页成品作业(HTML+CSS)——新年春节介绍网页设计制作(3个页面)
🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示1、首页2、子页13、子页2 三、代码目录四、网站代码HTML部分代码CSS部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码࿰…...
vue实现base64格式转换为图片
找了很多,但是都不太好用,打算自己总结一个保姆级教学,无需动脑,电脑有电就能实现 在HTML部分,我们需要一个标签来放置图片 <template><div><img :src"imageSrc" alt"未获取到图片&qu…...
【杂言】迟到的 2024 展望
研一下开学已有半月,本来想在家写的新年展望拖到了现在。翻看 2021 年的展望,我发现 flag 基本达成了(除了 12 点睡觉),所以给新的一年立下大方向也是很有必要的。也许等到 60 岁我再回看,也是一件趣事吧。…...

结构体(C语言进阶)(一)
目录 前言 1、结构体声明 1.1 结构体基本概念 1.2 结构体声明 1.3 特殊的结构体声明 1.3.1 匿名结构体声明 1.4 结构体自引用 1.5 结构体变量的定义和初始化 1.6 结构体内存对齐 1.7 修改默认对齐数 1.8 结构体传参 总结 前言 C语言除了有其内置类型,还有…...
【react】对React Router的理解?常用的Router 组件有哪些
1 react-router 是什么 react-router等前端路由的原理大致相同,可以实现无刷新的条件下切换显示不同的页面 路由的本质就是页面的URL发生改变时,页面的显示结果可以根据URL的变化而变化,但是页面不会刷新 因此,可以通过前端路由可…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...

Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...

k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...
CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝
目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为:一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...
Bean 作用域有哪些?如何答出技术深度?
导语: Spring 面试绕不开 Bean 的作用域问题,这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开,结合典型面试题及实战场景,帮你厘清重点,打破模板式回答,…...

《信号与系统》第 6 章 信号与系统的时域和频域特性
目录 6.0 引言 6.1 傅里叶变换的模和相位表示 6.2 线性时不变系统频率响应的模和相位表示 6.2.1 线性与非线性相位 6.2.2 群时延 6.2.3 对数模和相位图 6.3 理想频率选择性滤波器的时域特性 6.4 非理想滤波器的时域和频域特性讨论 6.5 一阶与二阶连续时间系统 6.5.1 …...

工厂方法模式和抽象工厂方法模式的battle
1.案例直接上手 在这个案例里面,我们会实现这个普通的工厂方法,并且对比这个普通工厂方法和我们直接创建对象的差别在哪里,为什么需要一个工厂: 下面的这个是我们的这个案例里面涉及到的接口和对应的实现类: 两个发…...
精益数据分析(98/126):电商转化率优化与网站性能的底层逻辑
精益数据分析(98/126):电商转化率优化与网站性能的底层逻辑 在电子商务领域,转化率与网站性能是决定商业成败的核心指标。今天,我们将深入解析不同类型电商平台的转化率基准,探讨页面加载速度对用户行为的…...