面试
# 面试
不脱发的码农~~~~
发呆
展开
-
C++ 一个数组只有两个不同的数出现了奇数次,请找出这两个数
一个数组只有两个不同的数出现了奇数次,请找出这两个数。原创 2022-08-21 10:13:10 · 265 阅读 · 0 评论 -
一个满的10L容器,7L、4L空的容器,如何得到5L的水
再把4升里全部的倒入7升,10升里面的倒入3升给7升的(10升还剩1升),之后再把7升里的倒满4升容器。4升先填满,7升装满6升,之后4升到入10升,7升里面的倒满4升,7升剩余的全部丢掉。最终,把4升的再倒入10升的就是五升。...原创 2022-07-26 14:30:19 · 712 阅读 · 0 评论 -
用c语言编写一个函数用来删除字符串中的空格并返回空格个数
用c语言编写一个函数用来删除字符串中的空格并返回空格个数原创 2022-07-21 22:02:28 · 504 阅读 · 0 评论 -
c语言自定义memcpy
c原创 2022-07-12 22:28:29 · 422 阅读 · 0 评论 -
⾯向对象的三⼤特性,并举例说明
C++ ⾯向对象的三⼤特征是:封装、继承、多态。所谓封装就是把客观事物封装成抽象的类,并且类可以把⾃⼰的数据和⽅法只让信任的类或者对象操作,对不可信的进⾏信 息隐藏。⼀个类就是⼀个封装了数据以及操作这些数据的代码的逻辑实体。在⼀个对象内部,某些代码或某些数据 可以是私有的,不能被外界访问。通过这种⽅式,对象对内部数据提供了不同级别的保护,以防⽌程序中⽆关的部 分意外的改变或错误的使⽤了对象的私有部分。所谓继承是指可以让某个类型的对象获得另⼀个类型的对象的属性的⽅法。它⽀持按级分类的概念。继承是指这样原创 2022-07-09 12:05:58 · 194 阅读 · 0 评论 -
volatile 和 extern 关键字
volatile 三个特性易变性:在汇编层⾯反映出来,就是两条语句,下⼀条语句不会直接使⽤上⼀条语句对应的 volatile 变量的寄存器内容,⽽是重新从内存中读取。不可优化性:volatile 告诉编译器,不要对我这个变量进⾏各种激进的优化,甚⾄将变量直接消除,保证程序员写在代码中的指令,⼀定会被执⾏。顺序性:能够保证 volatile 变量之间的顺序性,编译器不会进⾏乱序优化。extern在 C 语⾔中,修饰符 extern ⽤在变量或者函数的声明前,⽤来说明 “此变量/函数原创 2022-07-09 11:20:43 · 1013 阅读 · 0 评论 -
new / delete ,malloc / free 区别
都可以⽤来在堆上分配和回收空间。new /delete 是操作符,malloc/free 是库函数。原创 2022-07-09 11:09:55 · 283 阅读 · 0 评论 -
说⼀下 const 修饰指针如何区分?
下⾯都是合法的声明,但是含义⼤不同:理解这些声明的技巧在于,查看关键字const右边来确定什么被声明为常量 ,如果该关键字的右边是类型,则值是常量;如果关键字的右边是指针变量,则指针本身是常量。...原创 2022-07-09 10:57:16 · 194 阅读 · 0 评论 -
C++面试:指针和引⽤的区别
指针和引用都是一种内存地址的概念,区别呢,指针是一个实体,引用只是一个别名。在程序编译的时候,将指针和引用添加到符号表中。原创 2022-07-09 10:36:51 · 361 阅读 · 0 评论 -
c语言双链表之插入元素到头部
感觉比单链表容易原创 2022-07-07 21:45:15 · 349 阅读 · 0 评论 -
C面试24. (指针)定义一个含有20个元素的double型数组a
C原创 2022-07-06 21:39:48 · 672 阅读 · 0 评论 -
c语言(结构体)定义一个User结构体,含以下字段:
(结构体)定义一个User结构体,含以下字段:id: 一个数字,每个用户不同的idemail: email地址,一般网站的用户允许以email地址登录gender: 性别,男or女QQ: QQ号码写一个函数,在User数组中查找某个id的User(知识点:结构体数组初始化;指针访问成员变量)函数描述:User* find (User* all, int n, int id);其中,all: 输入一个User数组n : 数组长度id: 待查找的id...原创 2022-07-06 20:59:14 · 801 阅读 · 0 评论 -
c语言面试写一个函数在字符串N中查找第一次出现子串M的位置。
c语言面试写一个函数在字符串N中查找第一次出现子串M的位置。原创 2022-07-06 20:14:15 · 404 阅读 · 0 评论 -
TCP-三次握手和四次挥手简单理解
三次握手(three-way handshaking)1.背景:TCP位于传输层,作用是提供可靠的字节流服务,为了准确无误地将数据送达目的地,TCP协议采纳三次握手策略。2.原理:1)发送端首先发送一个带有SYN(synchronize)标志地数据包给接收方。2)接收方接收后,回传一个带有SYN/ACK标志的数据包传递确认信息,表示我收到了。3)最后,发送方再回传一个带有ACK标志的数据包,代表我知道了,表示’握手‘结束。通俗的说法1)Client:嘿,李四,是我,听到了吗?2)Server:我听到了,你能转载 2022-07-03 17:40:06 · 218 阅读 · 0 评论 -
(指针)编写函数void fun(int x,int *pp,int *n)
C原创 2022-07-03 17:15:40 · 537 阅读 · 0 评论 -
(指针)自己写一个比较字符串大小的函数,功能与strcmp类似。
C原创 2022-07-03 17:02:45 · 388 阅读 · 0 评论 -
27. 输入3个整数,按从大到小的次序输出。要求用指针方法实现。
C原创 2022-07-03 12:51:55 · 259 阅读 · 0 评论 -
定义一个结构体Fraction,表示分数,用于表示 2/3, 5/6这样的分数
(结构体)定义一个结构体Fraction,表示分数,用于表示 2/3, 5/6这样的分数。描述:(1) 定义Fraction(2) 完成分数的加法和乘法**Fraction add (Fraction a, Fraction b);Fraction mul (Fraction a, Fraction b);原创 2022-07-03 12:02:53 · 715 阅读 · 0 评论 -
面试题1:赋值运算符函数
题目:如下为类型CMyString的声明,请为该类型添加赋值运算符函数。class CMyString{public:CMyString(char *pData=NULL);//构造函数CMyString(const CMyString& str);//拷贝构造函数~CMyString();//析构函数private:char* m_pData;//数据域,字符指针};绍重载赋值重载操作符是一些函数,其名字为关键字operator后紧跟需要重载的运算符,比如"operator转载 2021-11-25 09:47:26 · 124 阅读 · 0 评论 -
【C语言程序设计】约瑟夫环问题-终于解决
编号为 1,2,3,…,n 的 n 个人围坐一圈,任选一个正整数 m 作为报数上限值,从第一个人开始按顺时针方向报数,报数到 m 时停止,报数为 m 的人出列。从出列人的顺时针方向的下一个人开始又从 1 重新报数,如此下去,直到所有人都全部出列为止。主要思路:每次找到一个就填充为零void myfun(int *array,int size,int stop){ int total=0; int step=0; int i; while(1) { int count=0; wh原创 2021-11-24 15:56:26 · 734 阅读 · 0 评论 -
天梯赛L1-吃火锅
以上图片来自微信朋友圈:这种天气你有什么破事打电话给我基本没用。但是如果你说“吃火锅”,那就厉害了,我们的故事就开始了。本题要求你实现一个程序,自动检查你朋友给你发来的信息里有没有 chi1 huo3 guo1。输入格式:输入每行给出一句不超过 80 个字符的、以回车结尾的朋友信息,信息为非空字符串,仅包括字母、数字、空格、可见的半角标点符号。当读到某一行只有一个英文句点 . 时,输入结束,此行不算在朋友信息里。输出格式:首先在一行中输出朋友信息的总条数。然后对朋友的每一行信息,检查其中是否包含原创 2021-11-23 09:20:53 · 284 阅读 · 0 评论 -
C++ 字符串全排列(包含所有长度)
vector<string>res;void sortStr(vector<string>&res,string str,int step){ cout<<str<<endl; res.push_back(str); if(str.size()-1==step) return ; for(int i=1;i<str.size();i++) { swap(str[0],str[i]); sortStr(res,str,原创 2021-11-22 14:53:34 · 598 阅读 · 0 评论 -
c++排列组合,不考虑颠倒
void strList(string str,int strLen,int step){ if(str.size()==strLen) { cout<<str<<endl; return; } string temp=""; for(int i=0;i<str.size();i++) { if(strLen==1) { temp=str.substr(i,strLen); cout<<temp<<endl原创 2021-11-22 14:08:24 · 255 阅读 · 0 评论 -
【容斥原理】练习赛:2 3 5 7的倍数
给出一个数N,求1至N中,有多少个数不是2 3 5 7的倍数。 例如N = 10,只有1不是2 3 5 7的倍数。Input输入1个数N(1 <= N <= 10^18)。Output输出不是2 3 5 7的倍数的数共有多少。Sample Input10Sample Output1容斥原理的描述如下:要计算几个集合并集的大小,我们要先将单个集合的大小计算出来,然后减去两个集合相交的部分,再加回三个集合相交的部分,再减去四个集合相交的部分,以此类推,一直计算到所有集合相交的.转载 2021-11-21 16:23:01 · 300 阅读 · 0 评论 -
2020年第十一届蓝桥杯省赛B组真题:回文日期
资源限制时间限制:1.0s 内存限制:256.0MB问题描述2020年春节期间,有一个特殊的日期引起了大家的注意:2020年2月2日。因为如果将这个日期按 yyyymmdd 的格式写成一个8位数是 ,恰好是一个回文数。我们称这样的日期是回文日期。有人表示 是“千年一遇”的特殊日子。对此小明很不认同,因为不到2年之后就是下一个回文日期: 即2021年12月2日。也有人表示 并不仅仅是一个回文日期,还是一个 型的回文日期。对此小明也不认同,因为大约 100 年后就能遇到下一个 型的回文日期: 即212原创 2021-11-21 12:14:14 · 517 阅读 · 0 评论 -
程序题 链表拼接
#include <stdio.h>#include <stdlib.h>struct ListNode { int data; struct ListNode *next;};struct ListNode *createlist(); /*裁判实现,细节不表*/struct ListNode *mergelists(struct ListNode *list1, struct ListNode *list2);void printlist( st.转载 2021-11-21 09:15:23 · 167 阅读 · 0 评论 -
天梯赛训练:检查密码
题意:本题要求你帮助某网站的用户注册模块写一个密码合法性检查的小功能。该网站要求用户设置的密码必须由不少于6个字符组成,并且只能有英文字母、数字和小数点 .,还必须既有字母也有数字。输入格式:输入第一行给出一个正整数 N(≤ 100),随后 N 行,每行给出一个用户设置的密码,为不超过 80 个字符的非空字符串,以回车结束。输出格式:对每个用户的密码,在一行中输出系统反馈信息,分以下5种:如果密码合法,输出Your password is wan mei.;如果密码太短,不论合法与否,都输出Y原创 2021-11-20 17:07:08 · 142 阅读 · 0 评论 -
天梯赛训练:整除光棍(妙哉妙哉)
题意:这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。 现在,你的程序要读入一个整数x,这个整数一定是奇数并且不以5结尾。然后,经过计算,输出两个数字:第一个数字s,表示x乘以s是一个光棍,第二个数字n是这个光棍的位数。这样的解当然不是唯一的,题目要求你输出最小的解。提示:一个显然的办法是逐渐增加光棍的位数,直到可以整除x为止。但难点在于,s可能是个非常大的数 —— 比转载 2021-11-20 16:48:25 · 214 阅读 · 0 评论 -
2018年第九届蓝桥杯省赛B组真题 C题:乘积尾零
乘积尾零题意:如下的10行数据,每行有10个整数,请你求出它们的乘积的末尾有多少个零?5650 4542 3554 473 946 4114 3871 9073 90 43292758 7949 6113 5659 5245 7432 3051 4434 6704 35949937 1173 6866 3397 4759 7557 3070 2287 1453 98991486 5722 3135 1170 4014 5510 5120 729 2880 90192049 698 4582 4转载 2021-11-20 12:15:27 · 348 阅读 · 0 评论 -
C程序-2018年第九届蓝桥杯B组-第三题:乘积尾零
如下的10行数据,每行有10个整数,请你求出它们的乘积的末尾有多少个零?5650 4542 3554 473 946 4114 3871 9073 90 43292758 7949 6113 5659 5245 7432 3051 4434 6704 35949937 1173 6866 3397 4759 7557 3070 2287 1453 98991486 5722 3135 1170 4014 5510 5120 729 2880 90192049 698 4582 4346 4427原创 2021-11-20 12:11:56 · 291 阅读 · 0 评论 -
C程序-蓝桥-日期计算
问题描述已知2011年11月11日是星期五,问YYYY年MM月DD日是星期几?注意考虑闰年的情况。尤其是逢百年不闰,逢400年闰的情况。输入格式输入只有一行 YYYY MM DD输出格式输出只有一行 W数据规模和约定1599 <= YYYY <= 2999 1 <= MM <= 12 1 <= DD <= 31,且确保测试样例中YYYY年MM月DD日是一个合理日期 1 <= W <= 7,分别代表周一到周日样例输入2011转载 2021-11-20 11:05:56 · 147 阅读 · 0 评论 -
C程序-蓝桥-简单加法
问题描述小于10的自然数中有四个数字能除尽3或5(3, 5, 6, 9),它们的和为23。 请计算所有小于1000的自然数中能除尽3或5的数字的合。然后使用标准输出cout,输出你的结果。int myfun(){ int res=0; for(int i=0;i<1000;i++) { if(isDiv(i)) res+=i; } return res;}...原创 2021-11-20 10:27:55 · 429 阅读 · 0 评论 -
C程序-蓝桥-P1001(大数乘法)
#include <iostream>#include <stdio.h>#include <stdlib.h>#include <string.h>#define N 10 //宏定义 int main( ) { //定义的数组稍微比目标数组大,防止溢出 char a[N],b[N]; int c[2*N]={0}; int i,j; scanf("%s",a); scanf("%s",b); int len1=str转载 2021-11-20 09:40:14 · 105 阅读 · 0 评论 -
C程序-蓝桥-算法提高 最大乘积
求一数组里N项中最大乘机其中每个数字的范围满足:a[i]的绝对值小于等于4。int myfun(int *arr,int arrSize,int count){ int temp; bool isSwap=false; for(int i=0;i<arrSize-1;i++) { isSwap=false; for(int j=0;j<arrSize-1;j++) { if(arr[j]<arr[j+1]) { isSwap=true原创 2021-11-20 09:20:49 · 638 阅读 · 0 评论 -
C程序-蓝桥-算法提高 周期字串
问题描述右右喜欢听故事,但是右右的妈妈总是讲一些“从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事,讲的什么呢?从前有座山……”这样循环的故事来搪塞右右。 我们定义,如果一个字符串是以一个或者一个以上的长度为k的重复字符串所连接成的,那么这个字符串就叫做周期为k的串。 例如: 字符串’abcabcabcabc’周期为3,因为它是由4个循环’abc’组成的。它同样是以6为周期(两个重复的’abcabc’)和以12为周期(一个循环’abcabcabcabc’)。 右右现在想给他的朋友大灰狼原创 2021-11-19 18:39:32 · 149 阅读 · 0 评论 -
C程序-蓝桥-算法提高 逆序排列
问题描述编写一个程序,读入一组整数(不超过20个),并把它们保存在一个整型数组中。当用户输入0时,表示输入结束。然后程序将把这个数组中的值按逆序重新存放,并打印出来。例如:假设用户输入了一组数据:7 19 -5 6 2 0,那么程序将会把前五个有效数据保存在一个数组中,即7 19 -5 6 2,然后把这个数组中的值按逆序重新存放,即变成了2 6 -5 19 7,然后把它们打印出来。 输入格式:输入只有一行,由若干个整数组成,中间用空格隔开,最末尾的整数为0。 输出格式:输出也只有一行,即逆序排列后原创 2021-11-19 15:18:40 · 174 阅读 · 0 评论 -
C程序-蓝桥-Excel地址(递归)
void myfun(char array[],int step,int num){ if(num==0) { array[step]='\0'; return; } if(num%26==0) { array[step]='Z'; myfun(array,step+1,(num-1)/26); } else { array[step]='A'+num%26-1; myfun(array,step+1,num/26); } }int main()原创 2021-11-18 13:56:00 · 111 阅读 · 0 评论 -
2017年第八届蓝桥杯B组-第七题:日期问题
小明正在整理一批历史文献。这些历史文献中出现了很多日期。小明知道这些日期都在1960年1月1日至2059年12月31日。令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的,有采用月/日/年的,还有采用日/月/年的。更加麻烦的是,年份也都省略了前两位,使得文献上的一个日期,存在很多可能的日期与其对应。比如02/03/04,可能是2002年03月04日、2004年02月03日或2004年03月02日。给出一个文献上的日期,你能帮助小明判断有哪些可能的日期对其对应吗?输入格式一个日期,格式是原创 2021-11-18 13:07:49 · 214 阅读 · 0 评论 -
【无标题】
问题描述利用字母可以组成一些美丽的图形,下面给出了一个例子:ABCDEFGBABCDEFCBABCDEDCBABCDEDCBABC这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。输入格式输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。输出格式输出n行,每个m个字符,为你的图形。样例输入5 7样例输出ABCDEFGBABCDEFCBABCDEDCBABCDEDCBABC数据规模与约定1 <= n, m <=原创 2021-11-17 13:46:09 · 107 阅读 · 0 评论 -
C程序-蓝桥-基础练习 查找整数
问题描述给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。输入格式第一行包含一个整数n。第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。第三行包含一个整数a,为待查找的数。输出格式如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。样例输入61 9 4 8 3 99样例输出2数据规模与约定1 <= n <= 1000。int find(int *array,int arraysize,int原创 2021-11-17 13:06:37 · 158 阅读 · 0 评论