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的变化而变化,但是页面不会刷新 因此,可以通过前端路由可…...
深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...
汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
LRU 缓存机制详解与实现(Java版) + 力扣解决
📌 LRU 缓存机制详解与实现(Java版) 一、📖 问题背景 在日常开发中,我们经常会使用 缓存(Cache) 来提升性能。但由于内存有限,缓存不可能无限增长,于是需要策略决定&am…...
android13 app的触摸问题定位分析流程
一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...
为什么要创建 Vue 实例
核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...
git: early EOF
macOS报错: Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...
运行vue项目报错 errors and 0 warnings potentially fixable with the `--fix` option.
报错 找到package.json文件 找到这个修改成 "lint": "eslint --fix --ext .js,.vue src" 为elsint有配置结尾换行符,最后运行:npm run lint --fix...

