c++试题(19)

WPS 5月19号 C++实习 笔试题回顾 5月19号,和同学一块去西电老校区参加了wps的c++实习生的笔试,总体感觉wps的笔记题还是比较实在,没有那些坑爹的智力题,java题。废话不多说,先上笔试题。 选择题我几乎把每个题都运行了一遍,得到了下面一组答案,大家可以参考一下,如果有不放心的可以自己再运行测试一下。 1 2 3 4 5 6 7 8 9 10 B B C 阅读详情

给定两个正整数m,n(m>=n!),将m拆成n个数相加:m=a(1)+a(2)+...+a(n),使之满足:a(1)<a(2)<...<a(n);
编成列出所有的拆法.
例如:若m=7,n=3则只有一种拆法:
7=1+2+4

 

分析:
int   a,b;
a=m/n;b=m%n;
1:当n小于4时
n=2:可分为a-1,a+b+1
n=3:可分为a-1,a,a+b+1;
2:当n大于4时
此时可以证明a>n(用数学归纳法)
此时m=a+a+a+....+(a+b)共n项,令a(1)=a-(n-1),a(2)=a-(n-2),....a(n-1)=a-(n-(n-1))
a(n)=a+b+1+2+...+(n-1);
这样不就满足了吗,且程序的具体实现也较简单
补充:
2应为"当n大于或等于时"

 #include "stdlib.h"
#include "stdio.h"
#include "conio.h"

int m,n,*group;//m被干的数,n干的数,group干完得出的数

void split(int start,int end,int x,int sum)//目的是实现数的抽取,即从start---end 自然数列上抽取递增的x个数,使x个自然数的和为sum.
{
 int i,j;//i j
 if(sum<0)
  return;
 if(x)
 {
  for(i=start+1;i<end;i++)
  {
   group[n-x]=i;
   if(x==1)
    split(i,end,x-1,sum-i);
            else split(i,sum/(x-1)+1,x-1,sum-i);
  }
 }
 else
 {
  if(sum==0)
  {
   for(j=0;j<n;j++)
   {
    printf("%8d",group[j]);
   }
   printf("/n");
  }
 }
}

void main()
{
 printf("Please Input m:");
 scanf("%d",&m);
 printf("Please Input n:");
 scanf("%d",&n);
 group=(int*)malloc(n*sizeof(int));
 split(0,m,n,m);
 free(group);
 // getch();
 system("pause");
}

 

#include "stdlib.h"
#include "stdio.h"

int output[10];
int m=7,n=3;

void print(int pos,int cursum,int prepos)
{
 int   i=1,max;
 int   sum=0;
 max=m-pos-cursum+1;
 if (pos==1)
 {
  if (max>=prepos)
   return;
  output[1]=max;
  for(int j=1;j<=n;j++)
   printf("%d",output[j]);
  printf("**");
  return;
 }
 else
 {
  int   e=0;
  if   (max/2>=1)
   e=max/2;
  for(i=max;i>e;i--)
  {
   if (i>=prepos)
    continue;
            output[pos]=i;
   print(pos-1,cursum+i,i);
  }
 }
}
int main(int argc,char* argv[])
{
 print(n,0,m);
 system("pause");
 return   0;
}

 

#include <stdio.h>
#include "stdlib.h"

#define   M   7
#define   N   3
int   *s;
 
void   find(int   m,   int   n);
int   main(int   argc,   char*   argv[])
{
s=new   int[M+1];
s[0]=M+1;
find(M,1);
delete   []s;
system("pause");
return   0;
}

void   find(int   m,   int   n)
{
int   i;
if   (n==N&&m<s[n-1])
{
s[n]=m;
for   (i=1;i<=N;i++)
printf("%d     ",s[i]);
printf("/n");
return;

}
else
if(n==N)
return;
for   (i=s[n-1]-1;i>0;i--)
{
if(m-i<=0)
continue;
s[n]=i;
find(m-i,n+1);

}
return;
}

 

#include   "stdafx.h"
#include   "iostream.h"
//運行效率問題的比較是重要的
void   back2(int   No,int   AllNo,int   up,int   down);

int   data[1000];
int   count,count1,m,n;

int   main(int   argc,   char*   argv[])
{
int   up,down;

cout<<"Input   m   &   n:/n";
cin>>m>>n;

for   (int   i=0;i<=n;i++)   data[i]=0;

down=m-(n-1)*n/2-n+1;
up=1;
count=0; count1=0;
back2(1,n,up,down);
cout<<"/nThe   account   is   "<<count<<"."<<endl;
return   0;
}

void   back2(int   No,int   AllNo,int   up,int   down){
if   (No<AllNo)
for(int   i=up;i<=down;i++)   {
data[No]=i;
count1+=data[No];
if(count1>m)   break;
back(No+1,AllNo,data[No]+1,down+1);
}
else{
data[No]=m-count1;
if   (data[No]<=data[No-1])   return;
//if   (count1==m)  
{
for(int   j=1;j<AllNo;j++)
                                                                              cout<<data[j]<<",";
cout<<data[j]<<"/n";
count++;      
}  
  count1-=data[AllNo-1];
}
}

#include   "afx.h"
#include   "stdlib.h"
#include   "stdio.h"
#include   "conio.h"
#define   arithmetic_2
int   m,n,*group,No;
void   split(int   start,int   end,int   x,int   sum   )
{
int   i,j;
if(m-sum<start)   return;
if(x)
{
for(i=start+1;i<end/*i+(end-i)/x*/;i++)
{
group[n-x]=i;
#ifdef   arithmetic_1
split(i,end,x-1,sum-i);
#else   if

if(x==1)
split(i,end,x-1,sum-i);
else   split(i,sum/(x-1)+1,x-1,sum-i);
#endif  
}
}
else
{
if(sum==0)
{
for(j=0;j<n;j++)
{
printf("%8d",group[j]);
}
printf("/n");
No++;
}
}
}


void   main()
{
No=0;
CTime   Begin,End;
CTimeSpan   Total;
CString   szBegin,szEnd,szTotal;
printf("Please   Input   m:");
scanf("%d",&m);
printf("Please   Input   n:");
scanf("%d",&n);
group=(int*)malloc(n*sizeof(int));
Begin=CTime::GetCurrentTime();
split(0,m,n,m);
End=CTime::GetCurrentTime();
Total=End-Begin;
printf("/nThe   Total   No:%d/n",No);
szBegin=Begin.Format("%Y-%m-%d   %H:%M:%S");
printf("/nBegin   Time:%s",(LPSTR)(LPCTSTR)szBegin);
szEnd=Begin.Format("%Y-%m-%d   %H:%M:%S");
printf("/nBegin   Time:%s",(LPSTR)(LPCTSTR)szEnd);

szTotal=Total.Format("%H:%M:%S");
printf("/nTotal   Time:%s/n",(LPSTR)(LPCTSTR)szTotal);
free(group);
// getch();

}
/*
Please   Input   m:100
Please   Input   n:4

The   Total   No:5952

Begin   Time:2001-12-19   16:42:05
Begin   Time:2001-12-19   16:42:05
Total   Time:00:00:35
Press   any   key   to   continue
*/


C++期末试题<兰州理工大学,19年> 试卷 : 链接: https://pan.baidu.com/s/1p0F04x1qRpFimlZXMJjxPg 提取码: pjqt 一、简述题 Q:简述面向对象程序设计方法的主要特征 A:抽象、封装、继承、多态、 Q:什么叫内联函数?它有哪些特点? A:内联函数简单来说就是由关键字`inline`修饰的函数。 内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处。 如此,节省了参数传递、控制转移等开销。 Q:构造函数的主要作用是什么?它有什么特性? A:构造函数 阅读详情

相关推荐

牛客网C++笔试题——错题集19/04/12

准备面试之前刷点笔试题,每天做个几十道题,总结下错题: 下面说明不正确的是()。 A. char a[10]=“china”; B. char a[10],*p=a;p=“china” C. char *a;a=“china”; D. char a[10],*p;p=a=“china” 正确答案:D。我的答案:C ...

梦醒时分@ying的博客 717

C++ 有用的资源||19道必须掌握的C++面试题

答:面向对象是一种对现实世界理解和抽象的方法、思想,通过将需求要素转化为对象进行问题处理的一种思想。

爱编程的鱼的博客 392

19道必须掌握的C++面试题

在面试C++方面的工作时,经常会遇到各种面试题,这对应聘人员的知识掌握能力要求较高。本文将为大家带来的就是19道必须掌握的C++面试题,不要错过哦!问1:请用简单的语言告诉我C++ 是什么?答:C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。C++支持多种编程范式 --面向对象编程、泛型编程和过程化编程。 其编程领域众广,常用于系统开发,引擎开发等应用领域,是最受广大程序员受用的最强大编程语言之一,支持类:类、封装、重载等特性!问2:C和C++的区别?答:c++在c的基础上增添类,C是一个结构

啊渊的专栏 1245

cpp面试秘笈:第3章面试题19:this指针

代码输入: #include<iostream> #include<Windows.h> using namespace std; class Myclass { public: int data; Myclass(int data) { this->data = data; } void print() { //cout<<data&l...

dlvector的博客 263

UE5笔记【十二】蓝图函数BluePrint Function

蓝图函数BluePrint Function。蓝图类。蓝图变量。

xiaoyaolangwj的博客 4393

【技术解析】AlexNet——从ReLU到Dropout的深度学习关键突破

本文深入解析AlexNet在深度学习领域的关键突破,重点探讨了ReLU激活函数和Dropout技术的革命性应用。作为卷积神经网络的里程碑,AlexNet通过ReLU解决梯度消失问题,利用Dropout有效防止过拟合,为现代深度学习模型奠定了重要基础。这些创新技术至今仍在计算机视觉和自然语言处理等领域发挥重要作用。

weixin_33719619的博客 272

Day1 C++算法题—525.连续数组&面试题17.19.消失的两个数字

525.连续数组和面试题17.19.消失的两个数字

T_X_Parallel的博客 847

虚拟机VirtualBox下载与安装、安装Ubuntu超详细图文步骤,对一些配置问题也有所写。

自己使用过两款虚拟机,相较于VMware虚拟机来说,virtuabox虚拟机所占内存更小,只有几十兆,且完全开源不收费,里面的功能与VMware基本差不多(在日常开发、学习使用完全够用)。最主要的是,在博主自己使用VMware时经常出错,而virtualbox就更稳定一些,所以这篇是针对virtualbox的安装与一些细节部分。

l1015649309的博客 4万+

19day---C++面试题

1.C++语言中,类ClassA的构造函数和析构函数的执行次数分别是5,1 ClassA * pclassa = new ClassA[5]; delete pclassa ; 解:本题考察的是delete和delete[]之间的区别。delete只会调用一次析构函数,delete[]还会调用后续所有对象的析构函数。 2.用c语言编写的代码程序是一个源程序 解:c语言所写的程序肯定是源程序,它不能立即执行,你必须经过编译成可执行代码。如果源程序中没有main函数,编译后的代码也是不可执行的。c语言不是解释

jjjstephen的博客 696

DIY音乐播放器:用VS1053模块+Arduino打造你的专属MP3播放器(附完整代码)

本文详细介绍了如何使用VS1053音频解码模块与Arduino开发板,从零开始构建一个功能完备的桌面级MP3播放器。内容涵盖硬件架构设计、SPI总线共享、底层驱动编写、双缓冲区数据流管理以及用户交互实现,并提供完整的代码示例与性能优化建议,帮助创客打造高度可定制的专属音乐播放设备。

weixin_29189003的博客 286

OpenCV图像去畸变实战指南:从原理到参数调优(附完整代码与效果对比)

本文详细解析了OpenCV图像去畸变的原理与实战方法,对比了三种核心函数(标准、鱼眼、全景模型)的适用场景与效果。重点提供了完整的代码示例,并深入探讨了alpha、焦距、中心点等关键参数的调优技巧,以帮助开发者有效矫正镜头畸变,提升计算机视觉任务精度。

life6的博客 553

[C/C++]华为8-19笔试题

1、逆时针遍历+报数 M*N的矩阵,从(0,0)开始,先从顺时针从最外围走到原点,再从里面一层继续顺时针兜圈,直至走完 // // ->->->->->-> // | | // ^ v // | | // <-<-<-<-<-<-v // 每个元素从1开始编号,若编号的个位数为7,十位数为奇数,则被挑选出来

qq_41221520的博客 377

YOLOv8融合改进 更换检测头为Detect_DyHead同时添加C2f_DBB模块

yolov8独家训练测试融合网络结构,提供详细步骤详细代码,手把手教你在yolov8官方包中把检测头更换为Detect_DyHead检测头,并且将原始的C2f模块更换成C2f_DBB模块,提高检测精度,亲测在多个数据集上有涨点!!!!!

分享一些自己改进代码的实例 4747

leetcode---数组系列---面试题 17.19. 消失的两个数字(消失的一个数字->消失的两个数字)C++

#leetcode—数组系列—面试题 17.19. 消失的两个数字(消失的一个数字->消失的两个数字) 首先得到消失的第一个数字再根据这个数字分成两个数字。 题目描述: 给定一个数组,包含从 1 到 N 所有的整数,但其中缺了两个数字。你能在 O(N) 时间内只用 O(1) 的空间找到它们吗? 以任意顺序返回这两个数字均可。 示例 1: 输入: [1] 输出: [2,3] 示例 2: 输入: [2,3] 输出: [1,4] 对于示例1,我们首先得到[1,nums.size()+2]区间的总和,

qq_41293722的博客 292

AI驱动芯片设计的端到端验证:AI应用架构师的全流程指南

想象你要建造一座1000层的超级摩天大楼,每个房间都有独特的功能,管道、电路、电梯系统交织如迷宫。传统的检查方式是派1000个工程师逐层逐房手动检查,耗时十年且仍可能遗漏火灾隐患。这就是今天芯片设计面临的困境:7nm芯片含百亿晶体管,相当于百亿个"房间",传统验证方法(人工编写测试用例、随机仿真)已难以应对。本文的目的,是为AI应用架构师提供一份"AI驱动芯片验证导航图",范围涵盖从验证需求分析到芯片签核的全流程,包括AI模型如何融入传统验证工具链、数据如何驱动验证效率提升、以及端到端闭环系统的构建方法。

2501_92132293的博客 1240

YOLOv11改进 | 模型知识蒸馏篇 | 利用模型蒸馏改进YOLOv11进行无损涨点 | 离线蒸馏(附代码 + 完整文件 + 解析教程)

这篇文章给大家带来的最新改进是模型的蒸馏,利用教师模型指导学生模型从而进行模型的涨点,本文的内容不仅可以用于论文中,在目前的绝大多数的工作中模型蒸馏是一项非常重要的技术,所以大家可以仔细学习一下本文的内容,本文从YOLOv8的项目文件为例,进行详细的修改教程,文章内包括完整的修改教程,针对小白我出了视频修改教程,如果你还不会我提供了修改后的文件大家直接运行即可,所以说不用担心不会适用!模型蒸馏真正的无损涨点,蒸馏你只看这一篇文章就足够了!欢迎大家订阅我的专栏一起学习YOLO!

Snu77的博客 4318

C++ 位运算 高频面试考点 力扣 面试题 17.19. 消失的两个数字 题解 每日一题

本文围绕力扣面试题 17.19 “消失的两个数字” 展开,先说明题目要求在 O (N) 时间、O (1) 空间内找出 1 到 N 中缺失的两个数,强调其是位运算经典组合题,融合 “丢失的数字” 与 “只出现一次的数字 Ⅲ” 逻辑,是面试高频考点。接着阐述算法原理,利用异或 “x^x=0”“0^x=x” 特性,先得两缺失数异或结果,再找结果最低为 1 的位拆分集合,最后分别异或两组得缺失数。还提供基础与优化版代码,对比优化点,分析其他解法优劣势,给出面试避坑指南,最后总结位运算题解题关键,文末预告下一题学习内

Q741_147的博客 1050

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Linux下的C和C++面试题(10/19自己整理小结)

一、基本题             1、头文件中的 ifndef/define/endif 干什么用? 答:防止多重编译,重复引用该头文件。#ifndef和#endif是配套使用的条件编译指令,若#ifndef后的宏没有定义则编译#idndef---#endif之间的代码,否则不编译。 2、#include 答: 而“”则通常是展开自己定义的头文件,编译器先查找当前目录,在查找标

程序员沙子的专栏 5149

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

牛客网C++笔试题——错题集19/04/13

准备面试之前刷点笔试题,每天做个几十道题,总结下错题: 以下哪些做法是不正确或者应该极力避免的:【多选】( ) A. 构造函数声明为虚函数 B. 派生关系中的基类析构函数声明为虚函数 C. 构造函数中调用虚函数 D. 析构函数中调用虚函数 正确答案:ACD。我的答案:BD 分析:老实说这个构造函数和析构函数,派生之类的具体知识还不是很清楚,需要好好查点资料,专门研究。 ...

梦醒时分@ying的博客 548

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

繁星云LeetCode面试题 16.19. 水域大小 C++代码解析

LeetCode面试题 16.19. 水域大小 原题链接:水域大小1. 难点:如何计算每个水域的大小,并不会把水域的子集添加进去。2. 思路循环遍历二维数组,当碰到0时进入深度搜索,然后八个方向广度搜索,计算每个水域的大小,被记录过的0标记为1,避免重复统计。3. 代码注释变量定义的解释void dfs(vector<vector<int>>& land, int...

繁星云博客 447

面试题19/leetcode10:正则表达式匹配 C++

题目:请实现一个函数用来匹配包含 .和* 的正则表达式。模式中的字符.表示任意一个字符,而 *表示它前面的字符可以出现任意次(含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但与模式"aa.a"及"ab*a"均不匹配。 分析:这道题的核心其实在于分析'*', 对于'.'来说,它和任意字符都匹配,可把其当做普通字符。对于'...

Gunther的博客 1250

《剑指offer》面试题 19:正则表达式匹配(C++实现)

题目 请实现一个函数用来匹配包含'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但与"aa.a"及"ab*a"均不匹配。 代码 #pragma once // 题目:请实现一个函数用来匹配包含'.'和'*'的正则...

$慕雪$的博客 424

2018年烽火通信c语言笔试题,2018-9-19 烽火通信C++面经

烽火通信C++面经多线程锁互斥锁用于控制多个线程对他们之间共享资源互斥访问的一个信号量。也就是说是为了避免多个线程在某一时刻同时操作一个共享资源。例如线程池中的有多个空闲线程和一个任务队列。任何是一个线程都要使用互斥锁互斥访问任务队列,以避免多个线程同时访问任务队列以发生错乱。在某一时刻,只有一个线程可以获取互斥锁,在释放互斥锁之前其他线程都不能获取该互斥锁。如果其他线程想要获取这个互斥锁,那么这...

weixin_29819639的博客 1527

面试题 16.19. 水域大小

本篇博客我们讨论了 LeetCode 上的面试题 16.19 水域大小。我们介绍了问题的背景和详细描述,并给出了两种解决方案,分别使用深度优先搜索(DFS)和广度优先搜索(BFS)。我们给出了具体的代码实现,并对解决方案进行了详细的解释。希望这篇博客对你理解和解决这道问题有所帮助。如果你有任何疑问或建议,请随时在评论区提出。

bigBbug的博客 782

C++面试题(19)------二叉树中和为某一值的路径

输入一棵二叉树和一个整数,打印出二叉树中所有满足从根节点到叶节点的路径和等于该整数的路径。

jndingxin的专栏 217
上一篇: atoi实现
下一篇: c++试题(20)
manplus
博客等级 码龄22年 6粉丝 160原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值