Quiet corners hold universes

第三次学习c语言

{mtitle title="运算符及输入输出符C"/}

第一学习输入输出符,第二学习运算符,第三进行练习
普通运算符的基础理解还不错,对于位运算符,移位运算符和逗号表达式理解不是非常明白,只能超过了没有一点想法,此外实验了几道题目,也是前面的会,后面的能猜到用什么,但是输出不完整。

//printf是一个库函数=》C语言已经实现好了,要想使用库函数,必须引用头函数stdio.h
//要想换行要在其中加入\n

//占位符第一个字符为%,第二个字符为占位符的类型,
// %d表示代入的值必须是十进制整数,%s表示代入的是字符串,%c表示字符,,%f小数,%p指针(用来打印地址)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>


int main()
{
    printf("Change World\n");
    printf("Change world\nHello world");
    printf("There are %d apples, %d bananas\n", 3, 9);  
//第一个占位符就占的是第一个逗号后面的内容,第二个就占用第二个逗号后面的内容
    printf("%s是一个动漫人物\n", "王麻子");

    printf("%5d\n", 123);  // 不足五位会在左边(前面)加空格,因为输出值默认为右对齐
    printf("%5d\n", 123456);  // 超过是多少就输出多少
    printf("%-5d\n", 123);  //在%后面添加-号会导致输出的值变为左对齐,会在后面加空格
//printf允许限定占位符的最小宽度

    printf("Number is %.2f\n", 0.5);  //限定小数位数是在%后添加 .2 表示小数点后两位

    printf("%6.2f\n", 1.2);  //代表数据的宽度是6,这个宽度包含小数点的,且要求小数点后两位
    //空格 空格 1 . 2 0


    int score = 0;
    int a = 0;
    int b = 0;
    //printf("请输入成绩:");
    //从键盘获取一个数据,写道变量score里面,&为取地址符号
    //scanf("%d", &score);  //要想使用score需要在最前面加 #define _CRT_SECURE_NO_WARNINGS
    //第一个参数是占位符,第二个参数表示用户输入的参数存入变量中
    //程序开始后,控制台会等待输入
    //scanf中有什么输入什么,如果在%d后加入\n,必须输入\n才能继续
    //printf("成绩是:%d\n", score);

    scanf("%d%d", &a, &b);
    //scanf()返回值的含义
    //正常情况下会返回读取的变量个数
    //如果没有任何读取项或者匹配失败返回0
    //如果没有读取任何数据前,发生读取错误,或者读取到文件结尾,返回常量EOF(-1)
    //end of file 文件结束的标志
    //读取多个数值时,如果想要提前结束按ctrl+z

    int ret = scanf("ret = %d\n", );

    printf("数字是:%d,%d\n", a, b);


    int year = 0;
    int month = 0;
    int day = 0;

    scanf("%d-%d-%d",&year, &month, &day);
    //scanf里面有什么就输入什么,比如上述2025-12-2
    printf("%d%d%d\n", year, month, day);

    return 0;
}
#include<stdio.h>

int main()
{
    int a = 1 + 2;
    int b = 5 - 3;
    int c = 5 - 16;
    //负数也是可以被输出的
    int d = 3 * 5;
    float e = 3.3 * 5.5;
    printf("a=%d\nb=%d\nc=%d\nd=%d\ne=%f\n", a, b, c, d, e);
    
    
    float x = 6 / 4;
    int y = 6 / 4;
    //整数除法,只会返回整数部分,丢弃小数部分
    float z = 6.0 / 4;
    //如果想要出现小数就要变成浮点数6.0
    float w = 7.0 / 22;
    printf("x=%f\ny=%dz=%f\nw=%f\n", x, y, z, w);

    int g = 3 % 2;
    int h = -8 % -3;
    
    //只能用于整数不能用于浮点数
    printf("g=%d\nh=%d\n", g, h);
    
    //赋值操作符
    //int a = 100其实就是运算符,就是吧100给了a,a =200就是把200给到了a

    //复合运算符
    //+=,-=,*=,/=,%=,》=(右移),《=(左移),&=,|=,^=
    int j = 5;
    j += 3;  //其实就是j = j + 3
    printf("j=%d\n",j);  

    //单目运算符
    int i = 7;
    //i++;  //相当于给i自增1,把++放在i的前面也是给i加了1(++i),
    //++在前,先自增,在赋值                 ++在后,先赋值,后自增
    int k = ++i;//相当于把i自增1,在把值赋给k
    int l = i++;//把i赋值给l,在给i自增1
    //--也是和++一样的运算规律
    printf("i = %d\n", i);//输出的是在k自增和在l自增后的       9
    printf("k = %d\n", k);//输出的是   8
    printf("l = %d\n", l);//输出的是   8

    //移位运算符,移的是比特位bit
    //左移在右边补零,在左边掉0   左移是乘法,2的乘方运算
    int num = 10;
    int num1 = num << 1;  //  输出的是20           10*2的一次方
    int num2 = num << 2;  //   输出的是40          10*2的二次方
    printf("num=%d\nnum1=%d\nnum2=%d\n", num, num1, num2);

    int nmu = 10;
    int nmu1 = nmu >> 1;  //  输出的是5             10/(2的一次方)
    int nmu2 = nmu >> 2;  //  输出的是2             10/(2的二次方)
    printf("nmu=%d \nnmu1=%d \nnmu2=%d \n", nmu, nmu1, nmu2);

    int unm = -1;  //非常特殊,如果这个数字是-1,移位后还是-1
    int unm1 = unm >> 1;
    int unm2 = unm >> 2;
    printf("unm=%d\nunm1=%d\nunm2=%d\n", unm, unm1, unm2);

    int umn = -100;
    int umn1 = umn >> 1;
    int umn2 = umn >> 2;
    printf("umn=%d\numn1=%d\numn2=%d\n", umn, umn1, umn2);

    //位操作符
    //按位与 &          按位或 |           按位亦或 ^          按位取反 ~
    /*
                                                                                0101 1011
                                                                                0001 1001

    按位与        对应位上都是1,结果才会出现1,只要对应位上出现0,结果就是0    0001 1001
    按位或        对应位上都是0,结果才会出现0,只要对应位上出现1,结果就是1    0101 1011
    按位异或      对应位上一样,结果出现0,对应位上出现不一样的,结果就是1      0100 0010
    按位取反      原来是0,结果就是1,原来是1,结果就是0
    */
    int mun1 = -3;
    int mun2 = 5;
    printf("%d\n", mun1 & mun2);
    printf("%d\n", mun1 | mun2);
    printf("%d\n", mun1 ^ mun2);
    printf("%d\n", ~0);

    //关系运算符
    int m = 11;
    int n = 12;
    printf("%d\n", m > n);
    printf("%d\n", m < n);
    printf("%d\n", m >= n);
    printf("%d\n", m <= n);
    printf("%d\n", m != n);
    printf("%d\n", m == n);
    //输出0表示假,输出1表示真


    //逻辑运算符
    /*
    逻辑与  &&
    逻辑或  ||
    逻辑非  !
    */


    //逗号表达式       从左向右一次执行,整个表达式的结果就是最后一个表达式的结果
    int o = 1;
    int p = 2;
    int q = (o > p, o = p +10, a, b = a + 1);  
    printf("%d\n", q);

    return 0;
}

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »