`

C语言基础三

    博客分类:
  • c
c 
阅读更多
逻辑操作符(==, !=, >, <, >=, <=, &&, ||)
逻辑操作符优先级低于算术操作符
单目逻辑操作符!表示求反

双目位操作符(|,&和^)
|用来把某个字节中的某个位置设置成1
&用来把某个字节中的某个位置设置成0
^用来把某个字节中的某个位置设置成相反数

单目位操作符(~)

移位操作符(<<,>>)
负数右移后左面空出来的位置补充1,其他情况下补充的是0

三目操作符可以根据一个逻辑表达式在两个数字中选择一个,使用方法如下
0 != 3 ? 1 : 0
这条语句表示0不等于3的情况下计算结果是1,否则计算结果是0。

C语言中可以使用强制类型转换把任何一个数字或变量当成另外一种类型来使用,使用方法如下
(char)shu_zi
其中shu_zi是整数变量名称。
强制类型转换会生成一个新变量而不会修改原变量的内容。

如果一个公式中有多个数据,它们的类型全不一样,则计算机会首先把他们的类型转换成一样的然后再计算。这叫隐式类型转换。计算机会保证转换过程中没有有效数据的丢失。

流程控制语句可以改变程序中语句的执行顺序。
分支是一种流程控制语句,它可以根据逻辑表达式决定某些语句要不要执行。使用方法如下
if (逻辑表达式1) {    //必须有而且只能有一个
    语句块1
}
else if (逻辑表达式2) {  //可以没有也可以有多个
    语句块2
}
else {                 //可以没有,最多一个
    语句块3
}
如果逻辑表达式1结果为真则执行语句块1,否则如果逻辑表达式2结果为真则执行语句块2。如果所有逻辑表达式结果都是假则执行语句块3.

如果每个分支都可以用一个数字来表示则可以使用switch...case语法编写分支语句。


/*
    逻辑操作符练习
*/
#include <stdio.h>
int main() {
    int shu_zi = 0;
    printf("3 == 6是%d\n", 3 == 6);
    printf("3 != 6是%d\n", 3 != 6);
    printf("3 > 6是%d\n", 3 > 6);
    printf("3 < 6是%d\n", 3 < 6);
    printf("3 >= 6是%d\n", 3 >= 6);
    printf("3 <= 6是%d\n", 3 <= 6);
    printf("3 < 6 < 5是%d\n", 3 < 6 < 5);
    printf("3 < 6 && 6 < 5是%d\n", 3 < 6 && 6 < 5);
    printf("3 < 6 || 6 < 5是%d\n", 3 < 6 || 6 < 5);
    1||++shu_zi;   //||操作符有短路特性
    printf("shu_zi是%d\n", shu_zi);
    0&&++shu_zi;   //&&操作符也有短路特征
    printf("shu_zi是%d\n", shu_zi);
    printf("!1是%d\n", !1);
    printf("!5 + 3是%d\n", !5 + 3);  //先计算求反,然后计算加法
    return 0;
}

/*
    位操作符练习
*/
#include <stdio.h>
int main() {
    printf("0x5 | 0x9是0x%x\n", 0x5 | 0x9);
    printf("0x5 & 0x9是0x%x\n", 0x5 & 0x9);
    printf("0x5 ^ 0x9是0x%x\n", 0x5 ^ 0x9);
    printf("~0xd9是0x%x\n", ~0xd9);
    return 0;
}

/*
    奇偶数练习
*/
#include <stdio.h>
int main() {
    char ch;
    printf("结果是%d\n", ch & 1);
    return 0;
}

/*
    移位操作练习
*/
#include <stdio.h>
int main() {
    printf("0x24 << 2是0x%x\n", 0x24 << 2);
    printf("0x24 >> 2是0x%x\n", 0x24 >> 2);
    printf("0xffffffc9 << 2是0x%x\n", 0xffffffc9 << 2);
    printf("0xffffffc9 >> 2是0x%x\n", 0xffffffc9 >> 2);
    return 0;
}

/*
    取地址符号
*/
#include <stdio.h>
int main() {
    int shu_zi = 0;
    printf("&shu_zi是%p\n", &shu_zi);
    return 0;
}



/*
    三目操作符练习
*/
#include <stdio.h>
int main() {
    char ch = 0;
    printf("请输入一个字母:");
    scanf("%c", &ch);
    ch = (ch >= 'a' && ch <= 'z' ? ch - 'a' + 'A' : ch - 'A' + 'a');
    printf("ch是%c\n", ch);
    return 0;
}


/*
    三目操作符练习
*/
#include <stdio.h>
int main() {
    int shu_zi = 0;
    printf("请输入一个数字:");
    scanf("%d", &shu_zi);
    //shu_zi = (0 == shu_zi ? 0 : 1);
    shu_zi = (0 != shu_zi ? 1 : 0);
    printf("转换结果是%d\n", shu_zi);
    return 0;
}


/*
    类型转换练习
*/
#include <stdio.h>
int main() {
    int shu_zi = 400;
    printf("%d %d\n", shu_zi, (char)shu_zi);
    printf("sizeof(1 ? 1 : 0.9)是%d\n", sizeof(1 ? 1 : 0.9));
    return 0;
}



/*
    if练习
*/
#include <stdio.h>
int main() {
    int shu_zi = 0;
    printf("请输入一个数字:");
    scanf("%d", &shu_zi);
    if (0 < shu_zi) {
        printf("你好\n");
    }
    else if (0 > shu_zi) {
        printf("你好坏\n");
    }
    else {
        printf("你\n");
    }
    return 0;
}



/*
    if练习
*/
#include <stdio.h>
int main() {
    int shu_zi = 0;
    printf("请输入一个数字:");
    scanf("%d", &shu_zi);
    if (shu_zi > 0) {
        printf("数字为正\n");
    }
    else if (shu_zi < 0) {
        printf("数字为负\n");
    }
    else {
        printf("数字为0\n");
    }
    return 0;
}

/*
    闰年练习
*/
#include <stdio.h>
int main() {
    int nian = 0;
    printf("请输入一个年份数字:");
    scanf("%d", &nian);
    if (((0 == nian % 4) && (0 != nian % 100)) 
        || (0 == nian % 400)) {
        printf("是闰年\n");
    }
    else {
        printf("不是闰年\n");
    }
    return 0;
}



/*
    switch...case练习
*/
#include <stdio.h>
int main() {
    int shu_zi = 0;
    printf("请输入一个数字:");
    scanf("%d", &shu_zi);
    /*if (1 == shu_zi) {
        printf("男\n");
    }
    else {
        printf("女\n");
    }*/
    switch (shu_zi % 2) {
    case 0:
        printf("女\n");
        break;
    case 1:
        printf("男\n");
        break;
    default:
        printf("你有病吧\n");
        break;
    }
    return 0;
}






分享到:
评论

相关推荐

    C语言基础,详细讲解C语言的基础知识

    C语言是在70年代初问世的。一九七八年由美国电话电报公司(AT&T)...但是,在《K&R》中并没有定义一个完整的标准C语言,后来由美国国家标准学会在此基础上制定了一个C 语言标准,于一九八三年发表。通常称之为ANSI C。

    C语言基础考试题及答案3

    C语言基础C语言基础C语言基础C语言基础C语言基础C语言基础

    c语言基础知识总结.doc

    3、每个C语言程序中main函数是有且只有一个。 4、在函数中不可以再定义函数。 5、算法:可以没有输入,但是一定要有输出。 6、break可用于循环结构和switch语句。 7、逗号运算符的级别最低,赋值的级别倒数第二。

    由浅入深学C语言基础、进阶与必做430题.part3

    本书由4篇组成:第1篇是C语言基础,讲解了C语言的发展历程、特点及C语言程序的编译和链接、顺序结构、条件结构、循环结构;第2篇是C语言技术进阶,包括数组、指针、函数、结构型、共用型、枚举型和用户自定义类型;...

    c语言基础教程电子书

    第一章: C语言概论 第二章: 数据类型、运算符、表达式 第三章: C语言程序设计初步 第四章: 数组 第五章:函数

    C语言基础学习ppt课件

    C语言基础课件对初学C语言者很有帮助,里面课件含有: 1.程序设计基础 2.数据类型 3.循环语句 4.数组 5.函数 6.指针 7.预处理命令 8.文件操作 9.结构体

    iOS开发预备课程之C语言基础视频课程

    通过本课程的学习,你将掌握如下技能: 一、C语言的基本语法... 三、为C语言高级内容提供基础支持,为iOS开发提供语法支持。 学习条件 1、接触过编程语言 或者 对编程有很大兴趣 2、身边有本C语言教材或者电子版书籍

    C语言基础教程3输入输出函数及控制流程语句[汇编].pdf

    C语言基础教程3输入输出函数及控制流程语句[汇编].pdf

    《由浅入深学C语言基础、进阶与必做430题》.part2

    本书由4篇组成:第1篇是C语言基础,讲解了C语言的发展历程、特点及C语言程序的编译和链接、顺序结构、条件结构、循环结构;第2篇是C语言技术进阶,包括数组、指针、函数、结构型、共用型、枚举型和用户自定义类型;...

    c语言基础-c语言编程基础之二维数组操作示例-三维形体的表面积.zip

    c语言基础 c语言基础_c语言编程基础之二维数组操作示例_三维形体的表面积

    C语言基础教程 课件

    C 语言基础教程 第一章 C语言概述 第二章 程序的灵魂-算法 第三章 数据类型、运算符与表达式 第四章 顺序程序设计 第五章 选择结构程序设计 第六章 循环控制 第七章 数组 第八章 函数 第九章 预处理命令 第十章 ...

    C语言基础培训课件(完整版)

    资源名称:C语言基础培训课件(完整版)资源目录:【】01-C语言概述【】02-基本数据类型【】03-控制结构-选择结构【】04-控制结构-循环控制-3【】05-函数【】06-数组【】07-字符与字符串【】08-变量类别与编译预处理...

    C语言基础编程

    C语言基础编程第三个代码文件,欢迎批评指正,与君共勉!

    C语言基础知识

    ---------C基础--------- 第一章 C语言基本知识 【要点1】C程序 用C语言编写的程序被称为C语言源程序,源程序文件的后缀名为".c";源程序经编译后生成后缀名为".obj"的目标文件;目标文件与各种库函数连接,就生成...

    嵌入式系统三级考试C语言基础部分

    嵌入式系统三级考试C语言基础部分第一章数据结构与算法

    C语言基础面试题01(概念和基本结构).docx

    C语言面试基础题,主要涉及:1. continue、break和return的区别?2. 初始化和赋值的区别?3. 声明和定义的区别?4. 全局变量、局部变量、static变量的区别?........等等概念性的问题已经做详细回答,还有一些程序...

    游戏开发C语言基础视频完整版

    教程名称: 游戏开发C语言基础视频完整版章节1:计算机体系结构课时1C与C 课程大纲简介09:18课时2游戏开发技术的两大流派及为什么要学C 26:31课时3C 与其它语言及为什么C 语言的执行效率高11:07课时4什么是计算及...

    关于c语言基础day3.emmx

    关于c语言基础day3.emmx

    C语言教学课件 C语言基础

    第一章 C语言概论 第二章 C语言基础 第三章 C语言的基本控制结构 第四章 数 组 第五章 指 针 第六章 函 数 第七章 结构与联合 第九章 文 件

    C语言基础知识3.pdf

    C语言基础知识3.pdf

Global site tag (gtag.js) - Google Analytics