菜学C++ Day2

  1. 标识符命名注意:
    只有字母(A-Z,a-z)、数字(0-9)、下划线_
    一般对变量名用小写,符号常量命名用大写
    关键字、预定义标识符(如printf)、用户标识符(自定义)
  2. 字节又名长度
  3. 基本数据类型默认为long,且无符号时取值的范围大小相同(-128——127==0——255)
    整型(除unsigned)第一位为符号位 0正1负
         char型按ASCII码存储,可通过查找对应字符变量值的ASCII值,利用其在ASCII里的对应的int值进行加减运算。
    #include<iostream>
    using namespace std;
    
    int main(void) {
        char X = 'A', Y = 'B';
        int Z=X+Y;
        cout<<Z<<"\n";
        system("pause");
        return 0;
    }

    但是当定义Z为char型时,不报错却没有结果,那是由于两个char相加是整型


     

           当对byte、short、char类型进行混合运算时,最终结果一定是整型,当然你也可以把它们都转换成int类型的,之后在进行混合运算

           当多种数据类型进行混合运算的时候,最后的数据类型一定是它们中取值最大的数据类型,如果里面有字符串的话,那最后的数据类型一定是字符串类型

    #include<iostream>
    using namespace std;
    
    int main(void) {
        char X = 'A', Y = 'B';
        string a = "1234",b=a+X;
        int Z=X+Y;
        cout<<Z<<"\n"<<b<<"\n";
        system("pause");
        return 0;
    }

           实型均为有符号数据,不能用unsigned,且数字默认为double
  4. 代码返回为0是因为我们最终main函数return 0,其实没什么问题
    system("pause")是个函数调用,在stdlib.h中定义
    作用是中断当前程序并等待一个输入后继续。 不加这个一闪而过是因为程序运行完退出了
  5. 字符串型结尾多了一个’\0'空字符位,但也多了一位
  6. scanf()   scanf_s()  printf()
    VS中scanf由于安全等级太低,所以强制使用scanf_s函数来接收输入值
    其中"%[标志][宽度][.精度][长度]类型"
  7. iostream头文件是标准类,包含cin和cout
    cin>>a>>b>>c;可以多个输入,以空格、tab、回车做间隔,回车做结尾
    cin不能接收空格和回车符,用cin.get(X),X是变量名
    cout同理
  8. 整形数和整形数相除,结果将舍弃小数部分只取整数,除非除数或被除数有浮点数,结果才是浮点数
    双目运算中,将精度较低的向精度较高的转换
    char-short-int-long-float-double
    1-------2-----4----4----4-------8
    类型字长
    bool

    1

    char1
    int4
    float4
    double8
    #include<iostream>
    using namespace std;
    int main() {
        int a = 9, b = 2;
        //2.0默认为double类型了,float精度不满足,溢出
        float d = (a +b) / 2.0;
        cout << d;
        return 0;
    }

    在做加法运算之前,先把a,b强制转换成double的8个字节型,避免因加四个字节而引起的算术溢出

    #include<iostream>
    using namespace std;
    int main() {
        int a = 9, b = 2;
        double c = ((double)a + (double)b)/2.0;
        cout << c;
        system("pause");
        return 0;
    }
  9. 字符型数据参与运算是ASCII码进行的,自动转换成整型
    实型数据参与运算会自动转换成双精度型数据
    赋值运算时,左右类型不同时,会将右操作数自动转换为左类型再赋值给左边

  10. 取余运算(求模运算)
    必须是整数,若有一方为负数,则先绝对值取余,再根据被除数取正负
  11. 前置自增:先自增后参与运算++x  在前管自己
    后置自增:先参与运算后自增x++
  12. 表达式相等用“==”,赋值用“=”
  13. 逻辑运算符的结合性:相同优先级的运算符在同一个表达式中,且没有括号的时候,运算符和操作数的结合方式,通常有从左到右结合和从右到左结合两种方式
    比如三目运算符?:是从右向左结合的,那么表达式a > b ? b > c ? 1 : 0 : 2将被解析为 a > b ? (b > c ? 1 : 0) : 2
  14. 逻辑表达式在值能够确定的情况下,运算将不在进行,不作为判定的地方还是原来的数据
    #include<iostream>
    using namespace std;
    int main() {
        int a = 4, b = 7;
        printf("a=%d b=%d\n", a, b);
        //由于b=5已经为真,那么后续的a不考虑运算,仍为原值4
        cout << ((b = 5) || (a = 6));
        printf("\na=%d b=%d", a, b);
        system("pause");
        return 0;
    }
  15. 三目运算符:
    a?b:c;
    若a真,则执行b,否则执行c
  16. 分支结构中的swtich语句
    表达式以及常量表达式的值只能是整型、字符型或枚举型
    表达式==常量表达式i时,执行语句i,不需要判定新条件,继续执行i+1……n+1

    switch(表达式){
    case 常量表达式1:语句序列1;break;(不是必须的,作用是结束switch)
    case 常量表达式2:语句序列2;break;
    ……
    default:语句序列n+1;(可省略default,且它可在任意位置,且无break)
    #include<iostream>
    using namespace std;
    int main() {
        int score;
        cin >> score;
        switch (score/10) {
            case 10:
            case 9:cout << 'A' << endl; break;
            case 8:cout << 'B' << endl; break;
            case 7:cout << 'C' << endl; break;
            case 6:cout << 'D' << endl; break;
            default:cout << 'E' << endl;
        }
        system("pause");
        return 0;
    }

做题:

今天做了题单里的题,在分类别在做

 

前面整数类的题目基本没什么问题,就是小学数学计算,这个1031小数类的还困了我几分钟哈哈哈,明明今天才学了整数与整数相除依然是整数来着,下次还是要更加细心呀! 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值