• 牛课-C++基础知识-选择2


    1、在32系统下输出的结果为(      )

    #include <stdio.h>
    
    #pragma pack(2)
    struct Test1
    {
        int a;
        char b;
        short c;
        int *d;
    }A;
    #pragma pack()
    
    #pragma pack(4)
    struct Test2
    {
        int *d;
        char b;
        int a;
        short c;
    }B;
    #pragma pack()
    
    int main()
    {
        printf("%d,%d
    ",sizeof(A),sizeof(B));
        return 0;
    }
    输出:12,16

    2、计算机程序设计语言的发展,经历了从_________的历程。

    机器语言,汇编语言,高级语言

    3、用户自定义函数包含两个部分,即_________在前,___在后这两部分的顺序不能颠倒,也不能有交叉。

    声明部分、执行部分、声明部分、执行部分。

    4、用户定义的函数,必须先定义后使用

    5、int a[10],*p=a,*q;q=&a[5];",则表达式p-q的值是 (-5)

    6、C++中父类的虚函数必需要实现吗?

    class Vir{
    public:
    	virtual void tryVirtual();
    };
    
    class CVir:public Vir{
    public:
    	void tryVirtual(){
    		std::cout<<"CVir"<<std::endl;
    	}
    };
    

    (1)在main函数中,假设父类或者子类的实例对象,就须要有父类的虚函数的实现

    (2)在main函数中,假设没有父类或者子类的实例对象能够不实现父类的虚函数。

    (3)假设把虚函数写成纯虚函数,也就不须要实现了。也没不会发生上述讨论。

    7、#include "file.h"和#include <file.h>的区别是

    当用#include“file.h”时,先搜索当前工作目录,如果没有,再去搜索,库没有再搜索资源库
    当用#include<file.h>时,编译器先从标准库路径开始搜索,如果没再搜索资源库目录,最好搜索当前工作目录。 

    8、类的静态成员

    1. 类的静态成员不能由类的构造函数来初始化。
    2. 因为即使不存在类的任何对象时,类的静态成员依然存在并且可以被使用。
    3. 类的静态成员也不能访问任何类的非静态成员(因为此时,非静态成员可能没有被构造)。类的静态成员函数也只能访问静态成员(变量或函数)
    4. 类名和类对象都可以直接调用静态数据成员。因为静态数据成员在执行构造函数之前都已经存在了。
    5. static修饰的函数表示该函数是属于类的,而不是属于某一个对象的,没有this指针。 
    6. static是加了访问控制的全局变量,不被继承。

    9、定点整数

    1. 用8位二进制补码表示有符号的定点整数,可表示的最大整数是(127),最小整数是(-128)。

    2. 用16位二进制码表示无符号的定点整数,可表示的最大整数是(65535),最小整数是(0)。

    10、下面代码打印结果为()

    class Base {
    char data[3];
    public:
        virtual void f() { cout << "Base::f" << endl; }
        virtual void g() { cout << "Base::g" << endl; }
        virtual void h() { cout << "Base::h" << endl; }
     
    };
    int main()
    {
        cout << sizeof(Base)<< endl;
        return 0; 
    }
    

    正确答案:8

    虚函数会保存一个虚表指针,考虑字节对齐 3+4+1=8

    11、目前计算机最常用的输入设备有:键盘、鼠标

    12、在C语言中,基本数据类型主要有:整形、字符型、实型

    13、计算机的CPU主要是由:控制器与运算器组成

    14、机器数的三种表示形式是:原码、补码、反码

    细节见:https://www.cnblogs.com/GuoXinxin/p/11687712.html

    15、下面程序的输出结果是(      )

    #include <stdio.h>
    int main()
    {
    int  intArray[] = {1, 2, 3, 4, 5};
    int  *p = (int *)(&intArray+1);
    printf("%d,%d",*(intArray+1),*(p-1));
    
    return 0;
    }
    A 1,5
    B 1,6
    C 2,4
    D 2,5
    

    正确答案:D

    数组取地址后加一是直接增加数组长度 和二维数组类似

    16、下面程序的输出结果是(      )

    #include <stdio.h>
     
    int main()
    { 
    int i, n = 0;
    float x = 1, y1 = 2.1 / 1.9, y2 = 1.9 / 2.1;
     
    for ( i = 1; i < 22; i++)
    x = x * y1;
     
    while ( x != 1.0 )
    {
    x = x * y2; n++;
    }
     
    printf( "%d
    ", n );
     
    return 0; 
    }
    

    程序无线循环

      

      

  • 相关阅读:
    IntelliJ IDEA 14.x 快捷键/个性化设置
    Memcache的mutex设计模式 -- 高并发解决方案
    导出/导入Eclipse的workspace配置(备份Eclipse配置)
    URL、URN、URI的区别?
    Thinkpad E440个性化设置:如何/禁用关闭触摸板?
    PHP 正则表达式匹配函数 preg_match 与 preg_match_all
    PHP合并2个数字键数组的值
    编译安装 Zend Opcache 缓存Opcache,加速 PHP
    Linux 新建用户、用户组,给用户分配权限(chown、useradd、groupadd、userdel、usermod、passwd、groupdel)
    alter table锁表,MySQL出现Waiting for table metadata lock的场景浅析及解决方案
  • 原文地址:https://www.cnblogs.com/GuoXinxin/p/11687969.html
Copyright © 2020-2023  润新知