问答题

问答题1:下列指令运行的结果为?

int a[5] = {1,3,5,7,9};
int *p = (int *)(&a+1);
printf(“%d,%d”,*(a+1),*(p-1));

提示:对 a 取地址后+1,这时候 a 指向了9的下一位,然后-1解引用后得到 9,对于 a + 1 解引用得到 3

问答题2:print()函数是一个类的常成员函数,它无返回值,下列表示中正确的是?

(A) const void print();
(B) void const print();
(C) void print() const;
(D) void print(const);

提示:const 在函数参数中表示参数不可修改,const 在函数最前面表示返回值不可修改,const 在函数最后面表示的是常成员函数,常成员函数一般出现在类中,表示类中的常成员变量不可修改. const 在函数名前面,类型后面起的作用也是返回值不可修改.

答案:C

问答题3:以下关于纯虚函数的说法,正确的是?
A 声明纯虚函数的类不能实例化
B 声明纯虚函数的类成虚基类
C 子类必须实现基类的
D 纯虚函数必须是空函数

提示a:声明纯虚函数的类叫抽象类,无法实例化对象,因为抽象类的作用就是产生子类的同时给于子类一些特定的属性和方法.由子类实例化出对象.

如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类,就比如:苹果实现一个子类,葡萄实现一个子类,但是在抽象类中只有些他们共同的特点,是水果,有皮,但是却无法具体描述他们是什么,具体都在子类中实现.所以在抽象类实例化对象时没有意义的.

提示b:基类被虚继承才是虚基类

提示c:没有规定子类必须实现基类,如果没有完全实现基类的方法,那么子类也依然是抽象类.

提示d: 空函数指的是什么都不做,比如:

void fun(){}

但是虚函数是指在函数后面加 ‘等于号和0’

virtual int fun(int x int y)=0;

问答题4:下列情况中,不会调用拷贝构造函数的是?

(A) 用一个对象去初始化同一个类的另一个新对象时
(B) 将类的一个对象赋值给该类的另一个对象时
(C) 函数的形参对象,调用函数进行形参和实参结合时
(D) 函数的返回值是类的对象,函数执行返回调用时

提示a:由于另一个新的对象没有被构造好,所以会调用拷贝构造函数

提示b:无法直接将一个类对象赋值给另一个类对象,必须进行类型转换

提示c:函数的形参和实参相结合的时候,可能会调用拷贝构造函数,但是如果传指针,或者传引用就不会调用了.

提示d:函数在返回前,如果返回的是类对象,会调用拷贝构造函数,例如:

要调用拷贝构造函数一定是被拷贝的对象还没有构造,赋值的对象已经构造好了,如果都已经构造好了,那就会调用赋值函数.单纯的构造一个对象,会调用构造函数.

问答题5:下面程序输出什么?

#include<iostream>
using namespace std;class A{
public:     A(char *s){cout<<s<<endl;}};class B:virtual public A{
public: B(char *s1,char*s2):A(s1){cout<<s2<<endl;}
};class C:virtual public A{
public: C(char *s1,char*s2):A(s1){cout<<s2<<endl;}  };class D:public B,C{public:D(char*s1,char *s2,char *s3,char *s4):B(s1,s2),C(s3,s4),A(s1){cout<<s4<<endl;}int main(){D *p = new D("class A", "class B", "class C", "class D");delete p;return 0;
}

提示:D 对象进入类的初始化区,那个顺序是和类的创建顺序有关,和书写的顺序没有关系,所以首先 执行 A(s1) 然后是 B(s1,s2),C(s3,s4),最后执行cout<<s4<<endl; 如果构造好的对象,就不会重复构造了.

答案:class A    class B    class C    class D

编程题

编程题1:发糖果

A,B,C三个人是好朋友,每个人手里都有一些糖果,我们不知道他们每个人手上具体有多少个糖果,但是我们知道以下的信息:

A - B,B - C, A + B,B + C. 这四个数值.每个字母代表每个人所拥有的糖果数.现在需要通过这四个数值计算出每个人手里有多少个糖果,即A,B,C 这里保证最多只有一组整数A,B,C 满足所有题设条件

输入为一行,一共4个整数,分别为A - BB - CA + BB + C,用空格隔开,范围均在 -30 到 30 之间(闭区间)

#include <iostream>
using namespace std;int main(){int a,b,c,d;cin>>a>>b>>c>>d;int A = (a+c)/2;int C = (d-b)/2;int B1 = (b+d)/2;int B2 = (c-a)/2;if(B1==B2){cout<<A<<" "<<B1<<" "<<C<<endl;}else{cout<<"No"<<endl;}return 0;
}

B1==B2 比较用两种方法计数出来的 B 是否相等,如果相等就说明数字是有效的,但是如果不相等,则说明给出的数字是有误的,不满足题意;

编程题2: 十进制转为任意进制

给定一个十进制数M,以及需要转换的进制数N,将十进制数M转化为N进制,

提示:将16进制所有数都写出来

table = “0123456789ABCDEF”;

然后通过取模的方式,将对应的字符添加到输出字符串中,最后要进行翻转.另外负数需要标记一下

#include <iostream>
#include<string>
#include<algorithm>
using namespace std;int main(){string s, table = "0123456789ABCDEF";int m, n;cin >> m >> n;bool flag = false;// 如果是负数,则转成正数,并标记一下if (m < 0){m = 0 - m;flag = true;}// 按进制换算成对应的字符添加到swhile (m){s += table[m%n];m /= n;}if (flag){s += '-';}reverse(s.begin(), s.end());cout << s << endl;return 0;
}

十进制转为任意进制,发糖果相关推荐

  1. Python数据结构14:递归的原理,递归实现数列求和、求阶乘、十进制转为任意进制

    1. 概念:什么是递归? 递归(Recursion)是一种解决问题的方法.尤其是复杂问题,有时用递归解决复杂问题可能会出奇的简单. 递归将一个比较复杂的问题分解成更小规模的问题,持续分解直到问题规模小 ...

  2. 十进制与任意进制的转换

    进制转换 任意进制转为十进制 代码实现 十进制转为任意进制 代码实现 任意进制转为十进制 方法:∑i n 系数X基数权值(累加) 将二进制转成十进制 10110110 = 1×27+1×25+1×24 ...

  3. 十进制转任意进制-数论

    十进制转任意进制-数论 #include <stdio.h> #include <string.h> #include<memory.h>/*** 十进制转x进制- ...

  4. c++语言将任意进制转化10进制,C++ 基础编程之十进制转换为任意进制及操作符重载...

    C++ 基础编程之十进制转换为任意进制及操作符重载 最近学习C++ 的基础知识,完成十进制转换为任意进制及操作符重载,在网上找的不错的资料,这里记录下, 实例代码: #include #include ...

  5. 进制转换【最全进制转换汇总】(整数_小数_正数_负数)正负数整数小数十进制转任意进制-正负数整数小数任意进制转十进制-正负数低进制转高进制-正负数高进制转低进制

    文章目录: 补充知识点:各进制符号表示及其关系--二进制(B).八进制(O).十进制(D).十六进制(前缀OX,后缀H) 扩展:在线进制转换 第一部分:正数 一:[整数]正数十进制转任意进制:辗转相除 ...

  6. 十进制转为K进制代码的实现

    十进制转为K进制代码的实现 利用栈来实现,进制的转换就用从高位到低位读出,正和栈的先进后出的顺序一样. #include<stdio.h> #include<stdlib.h> ...

  7. 关于java实现十进制转换为任意进制

    这原本是Noip2000的一个题目 https://www.luogu.com.cn/problem/P1017 被我们的伟大的唯心主义编程大师拿来当成了作业题,我正好复习一下进制问题 首先十进制转换 ...

  8. 进制转换:十进制转换为任意进制、任意进制转换为十进制

    目录 十进制转换为任意进制 任意进制转换为十进制 十进制转换为任意进制 //将10进制数num转换为d进制数 void convert_base(int num, int d) {int k;stac ...

  9. 十进制转换任意进制--链栈实现

    首先,先了解一下c语言const用法: 修饰局部变量,int const a = 9; const int b = 8;这两种写法是一样的,表示a和b都是常量,不可改变.需要注意的是,用const修饰 ...

最新文章

  1. 2019年上半年收集到的人工智能循环神经网络干货文章
  2. 页面导航的基础与深入
  3. idea每次都要配置tomcat_电脑每次开机时间都不对?电脑每次开机都要重新设置时间解决方法...
  4. php fpm安装curl后,nginx出现connect() to unix:/var/run/php5-fpm.sock failed (13: Permission denied)的错误...
  5. Leetcode每日必刷题库第1题,如何实现两数之和?
  6. python 类成员变量是否存在_python中类变量与成员变量的使用注意点总结
  7. jmeter web监听结果_jmeter使用总结
  8. HttpClient简单请求和返回样例
  9. python 目标直方图_深入了解扩展事件–直方图目标
  10. java+io+scanner_Java知识点总结(JavaIO- Scanner类 )
  11. 移远NB-IOT BC28 模组 与自建的UDP服务器通信
  12. 黑马程序员顺义校区php_传智播客·黑马程序员顺义新校区来校路线介绍
  13. sinx加expx定积分计算c语言,8.13 写一个用矩阵法求定积分的通用函数,分别求 sinx,cosx,exp(x)的积分;...
  14. 怎样让数学学渣看懂什么叫做傅里叶变换?
  15. C#数字黑洞之一(水仙花数黑洞153)
  16. Java 的 FileInputStream 是否需要 close
  17. mac 卸载php版本,mac 系统下删除旧的php版本安装最新的php版本及Xdebug
  18. 阿里云大数据开发三面面经,已过,面试题已配答案
  19. java中怎么计算一个方法执行时,耗费多少毫秒
  20. Android数据库高手秘籍(六)——LitePal的修改和删除操作

热门文章

  1. (转)开发仅用两天三个人,谈谈小咖秀背后的技术故事
  2. 斯坦福Nature论文宣布新突破:深度学习皮肤癌诊断达专家水平
  3. 汇丰银行 java_汇丰银行java框架_汇丰银行面试经历(IT类).doc
  4. 框架体系——SpringIOC
  5. ViewPager实现Gallery画廊效果——仿慕课网app-求职路线计划-效果(一)
  6. Java: Date转sql date
  7. 站在工业互联时代,看“新晋独角兽”思谋科技的“远方”与“现实”
  8. 在不格式化原有系统盘的情况下,利用grub4dos+firadisk制作RamOS VHD Win7总结
  9. 4片74LS194接成16位双向移位寄存器
  10. python创建文件夹