c语言笔试准备

  1. 若以下说明语句:char x; float y; double z; 则表达式x-y+z的类型为(double) 。
    字节转换从低到高 char–>float–>short–>int–>double
    规律:占用字节数小的类型在与占用字节数大的类型运算时会被转化为占用字节数大的类型。

  2. 设int a=3,b=5,m,执行表达式m=a<=3&&a+b<8后,m的值为 (0)
    ! > 算术运算符 > 关系运算符 > && > || > 赋值运算符
    m是整型,因此将false转为整型即为0。
    m=1&&0
    m=0

  3. 用数组名作函数实参时,形参可以用同类型的指针变量。
    比如数组
    int S[10];
    数组名S可以理解为就是指向数组首地址的指针,即 S 和 &S[0] 等价,*S和S[0]等价, 数组名作函数实参时,参数类型就是指向整型的指针

  4. 字符型数据在计算机内部是以ASCII码存储的,数字、英文大写字母和小写字母在ASCII码表中都是连续的。数字字符‘0’‘9’是4857,大写字母A~Z是从65~90,小写字母a~z是从97~122

  5. 数组可以在定义时整体赋初值,但不能在赋值语句中整体赋值。

  6. 继承方式和可见性

    • 公有继承意味着继承派生类的类能访问基类的公有和保护成员。私有继承意味着继承派生类的类也不能访问基类的成员。保护继承意味着继承派生类的类能访问基类的公有和保护方法。
    • 默认为私有继承,但常用的却是公有继承。
    • 基类的私有成员在派生类中都是不可见的,如果一个派生类要访问基类中声明的私有成员,可以将这个派生类声明为友元。
    • 公有继承时,同样继承了基类的私有成员,对基类的公有成员和保护成员的访问属性不变,派生类的新增成员可以访问基类的公有成员和保护成员,但是访问不了基类的私有成员。派生类的对象只能访问派生类的公有成员(包括继承的公有成员),访问不了保护成员和私有成员。
  7. 可以把z=x>y? x : y理解为

    1
    2
    3
    4
    5
    if(x>y){
    z=x;
    }else{
    z=y;
    }

    对于条件表达式b ? x : y,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。一个条件表达式绝不会既计算x,又计算y。条件运算符是右结合的,也就是说,从右向左分组计算

  8. auto被解释为一个自动存储变量的关键字,也就是申明一块临时的变量内存。
    其中auto和register对应自动存储期。具有自动存储期的变量在进入声明该变量的程序块时被建立,它在该程序块活动时存在,退出该程序块时撤销。

  9. register:这个关键字命令编译器尽可能的将变量存在CPU内部寄存器中而不是通过内存寻址访问以提高效率。如果一个变量被register来修饰,就意味着该变量作为一个寄存器变量,让该变量的访问速度达到最快。

  10. 全局变量在静态区;局部变量在动态区;static变量在静态区

文章目录
|