C Language核心技术之基础程序设计(三)

1 总体说明

运算符概述

算术运算符

自增自减运算符

赋值运算符

关系运算符

逻辑运算符

三目运算符

2 运算符概述

计算机的核心人物就是数据的计算,而在程序语言层次上就是使用各种运算符来完成之前提到的数据类型之间算术,关系,逻辑,位运算符的,它们都有自己的优先级和结合性,优先级和运算符相关,也就是谁先计算,谁后计算,结合性就是在优先级相等的情况下,是从左到右开始计算的。

3 算术运算符

算术运算符是用来进行基本的数学运算,其运算的结果仍然是数值,就是参与运算的最大数据类型。C语言支持常用的五个算术运算符(+、-、*、/、%),其中/也就是取模运算符,就是用于求两个整数的余数,求余运算结果的符号与被除数相同。

使用算术运算实现数值反转

#include "common.h"
//整数反转
void int_reversal(){
    printf("请输入一个反转的整数\n"); //假设输入的是10000-99999之间的整数
    int num;
    scanf("%d",&num);
    //获取该整数的个位,十位和百位,千位,万位数
    int num_val = num % 10;
    int ten_val = num / 10 % 10;
    int hundred_val = num / 100%10;
    int thousand_val = num / 1000%10;
    int ten_thousand_val = num / 10000;
    printf("反转之后的num = %d",num_val*10000+ten_val*1000+hundred_val*100+thousand_val*10+ten_thousand_val);
}

使用算术运算实现求模运算符

#include "common.h"
/*
    算术运算符实现求模运算
*/
void alg(){
    int one = 10;
    int two = 3;
    int result = one / two; //取模就是求余数,10/3=3...1 求余的结果就是1
    printf("10%3的结果是%d\n",result);

    //使用算术运算完成取模运算
    result = 10 - (10 / 3) * 3;
    printf("算术运算 10%3的结果是%d\n", result);
}

使用算术运算符完成温度转换(华氏温度和摄氏温度转换)

华氏温度计算公式

华氏温度=摄氏温度*1.8+32

#include "common.h"
void convert(){
    float f;//华氏温度
    float c;//摄氏温度
    printf("请输入华氏温度\n");
    scanf_s("%f", &f);
    // 注意不能写成5/9*(f-32),5/9两个整数相除结果是0
    c = (f +32) * 5 / 9;
    printf("摄氏温度:%-5.2f", c);
    system("pause");
}

4 自增自减运算符

自增(–)自减(–)运算符的作用就是只能将变量的值增加1或者减少1。

在循环时通常会使用自增自减运算符用来作为修改循环条件的方式。

++和–可以放在变量的前面或者后面,当++或者–放在变量的前面则就意味着会先自增1再参与运算,放在变量的后面则会先参与运算后自增1,两者的区别在于一个是先自增再执行程序,另一个是先执行程序再自增,最终变量的结果都是加1。

自增运算符的优先级高于算术运算符

#include "common.h"
/*
    自增运算符  自增运算符的优先级高于算术运算符
*/
void autoinc(){
    int num = 9;
    printf("%d\n",num--);//先打印num的值 也就是9 再减1
    printf("%d\n",num);//最后的结果就是8
}

使用循环,自减运算和线程中断实现倒计时

#include "common.h"
/*倒计时*/
void timer(){
    int second = 50; //倒计时50秒
    while (second>0){
        printf("倒计时%d秒\n",second);
        second--;
        Sleep(1000);
    }
    printf("Time Over");
}

使用循环计算1-100以内偶数的和

#include "common.h"
void getsum(){
    //计算1-100之间的偶数和
    int i = 2;
    int sum = 0;
    while (i <= 100){
        sum += i;
        i += 2;
        printf("i=%d\t\tsum=%d\n",i,sum);
    }
    printf("1-100之内的偶数和为%d\n",sum);
}

5 赋值运算符

赋值运算符就是将”=“右边的表达式或者常量值赋值给”=”左边的变量,在赋值时会执行数据类型转换,也即是将=右边的值自动转换成左边变量的类型。如果赋值运算符右边是复杂表达式时,会按照表达式的从右到左边开始计算。

#include "common.h"
/*赋值运算符*/
void assigment(){
    int num = 10.5; //赋值时会做自动类型转换,这里会将double转换为int再赋值给num变量
    //3 = num + 1; //只有变量能被赋值    ,常量不可以
    //num + 1 = 3;   //表达式不可以
    printf("num=%d\n", num);
    num -= 1;//num =num-1
    int copy =++num;
    //赋值时是复杂表达式会从右到左开始计算
    copy += copy - 10;//==>copy=copy+copy-10==>copy=10
    printf("copy=%d\n",copy);
}

6 关系运算符

关系运算符主要是比较两个数值(整型,浮点型和字符)或者表达式,整数和浮点数比较的是大小,字符比较的是ASC||码的大小,浮点型的数值不推荐采用==和!=来进行关系运算。

关系运算返回的结果是1(逻辑真)或者0(裸机假),C++或者Java都采用了一种boolean类型的true或false来替代。

常用的关系运算符包含大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)、和不等于(!=),关系运算符是从左到右开始运算的。

关系运算符的运算结果 1表示逻辑真 0表示逻辑假

#include "common.h"
/*关系运算符的结果*/
void relation_sample(){
    printf("%d\n",10>8); //true
    printf("%d\n",10<8);//false
}

使用关系运算符和循环实现打印26个大小写字母

#include "common.h"
/*关系运算符*/
void relation(){
    //循环递增打印小写字母
    printf("小写字母\n");
    char c = ‘a‘;
    while (c<=‘z‘){
        putchar(c);
        c++;
    }
    //循环递减打印大写字母
    printf("\n大写字母\n");
    char v = ‘Z‘;
    while (v >= ‘A‘){
        putchar(v);
        v--;
    }
    printf("\n");
}

7 逻辑运算符

逻辑运算符主要是判断两个或者多个表达式的逻辑关系,逻辑运算符主要有三个:

逻辑与(&&):当表达式两边都为1时,结果为1,否则为0

逻辑或(||):当表达式两边有一个表达式的结果为1,结果为1,否则为0

逻辑非(!):对表达式结果取反,0改变为1,1变为0

#include "common.h"
/*
    逻辑运算符
*/
void logic(){

    //定义面试条件
#define 年龄 28
#define 工作年限 5
    int age;
    int workinglife;
    printf("请输入你的年龄和工作年限\n");
    scanf("%d", &age);
    scanf("%d", &workinglife);
    printf("面试的要求为年龄%d岁,工作年限%d年\n",年龄,工作年限);
    //逻辑与要满足俩条件
    age > 年龄&&workinglife > 工作年限 ? printf("逻辑与可以参与本轮面试\n") : printf("逻辑与年龄太小或者工作年限不够,不能参与本轮面试\n");
    //逻辑非满足一个条件
    age>年龄 || workinglife > 工作年限 ? printf("逻辑或可以参与本轮面试\n") : printf("逻辑或年龄太小或者工作年限不够,不能参与本轮面试\n");
    //逻辑非
     int value = 0;
     printf("逻辑非运算之后value的结果为%d\n\n",!value); //0 逻辑非之后值为1   取反....
}

逻辑与和逻辑或都存在短路现象,即当计算左边表达式的值就能够明确整个表达式的结果时,不在计算右边表达式的结果,就构成了短路现象。

#include "common.h"
/*逻辑运算的短路特性*/
void logic_short_circurt(){
    int x = 0;
    int y = 20;
    x && ++y;   //x=0 意味着整个表达式的结果为0,不会执行y自增1再参与逻辑与运算
    printf("x =%d\ty=%d\n",x,y);

    x =1 ;
    x || ++y; //1 意味着整个表达式的结果为1,不会执行++y
    printf("x =%d\ty=%d\n", x, y);

}

8 三目运算符

三目运算符是简易的if else结构, 其表现形式为 expression?expression1:expresson2;如果表达式的结果为真,则执行问号后的表达式expression1,否则执行:后的表达式expresson2。

使用三目运算符实现随机数判断,执行对应的操作

#include "common.h"
/*
    三目运算符
*/
void tenery(){
    time_t  ts; //声明一个时间变量
    srand((unsigned int)time(&ts)); //定义随机数种子,以时间的无符号整数
    int num = rand()%100; //随机值
    printf("num = %d\n",num);
    num >=70 ? printf("num>70"),system("calc") :printf("num<70") ,system("notepad");
}

使用三目运算符将大写字母转换为小写字母

#include "common.h"
/*三目运算符*/
void getcharcontent(){
    char charcontent =getchar(); //将输入的字符保存到charcontent变量中
    //判断输入的是大写还是小写字母
    charcontent >= ‘A‘ &&charcontent <= ‘Z‘ ? printf("你输入的是大写字母") : printf("你输入的是小写字母");

//使用三目运算符将大写字母转换为小写字母
    charcontent >= ‘A‘ && charcontent <= ‘Z‘ ? charcontent += 32, printf("charcontent = %c", charcontent) : printf("charcontent %c", 

charcontent);

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-09 23:47:32

C Language核心技术之基础程序设计(三)的相关文章

第一部分:Java基础程序设计

Java(a)--Java 基础程序设计 Java 语言介绍(认识JAVA) JVM(Java虚拟机):JVM是可运行java代码的假想计算机,其保证了java可以进行跨平台地运行,亦即其可移植性,也符合sun公司提出的口号:Write Once, Run Anywhere.(一次编写,处处运行) 运行示意图如下:(由于图片无法加载,因此暂时不上传) Java技术的架构包括三个方面: J2EE(Java 2 Platform Enterprise Edition)企业版,是以企业为环境而开发应用

【Java面向对象基础(三)】面向对象思想

[喵"的Android之路][基础篇(三)][Java面向对象基础]面向对象思想 1 面向对象的WWH 1.1 What--什么是面向对象 首先,要理解“对象”.在Thinking in Java中提到“Everything is an object”,即万物皆对象.这里的“对象”指的是任何实体或者任何可以当作实体看待的“虚幻的事物”.比如现实中的人(男人.女人.老人.小孩而...).动物(大象.狮子.猴子...).桌子.凳子.汽车.ATM机等等,也可以使看不见摸不着的空气(氧气.二氧化碳.氮气

java基础学习03(java基础程序设计)

java基础程序设计 一.完成的目标 1. 掌握java中的数据类型划分 2. 8种基本数据类型的使用及数据类型转换 3. 位运算.运算符.表达式 4. 判断.循环语句的使用 5. break和continue的区别 二.数据类型划分 java的数据类型可分为基本数据类型与引用数据类型.基本数据类型包括了最基本的boolean.char.byte.short.int.long.float.double;引用数据类型是以一种特殊的方式指向变量的实体,这种机制类似于C/C++. 三.基本数据类型 j

MySQL数据库基础(三)——SQL语言

MySQL数据库基础(三)--SQL语言 一.SQL语言简介 1.SQL语言简介 SQL是结构化查询语言(Structured Query Language),是用于访问和处理数据库的标准的计算机语言.SQL语言的功能如下:A.SQL面向数据库执行查询B.SQL可从数据库取回数据C.SQL可在数据库中插入新的记录D.SQL可更新数据库中的数据E.SQL可从数据库删除记录F.SQL可创建新数据库G.SQL可在数据库中创建新表H.SQL可在数据库中创建存储过程I.SQL可在数据库中创建视图J.SQL

Java语言核心技术之基本程序设计

Java语言核心技术之基本程序设计 Java语言核心技术 2.1 标识符和关键字 标识符是在程序开发时给包,类.接口.注解,变量,方法命名的字符序列. 标识符在命名时需要遵守相关的命名规则和命名规范: 标识符的命名规则: 标识符不能是Java的关键字和保留字,关键字是Java中被赋予赋予特殊含义的单词,例如public static void等等.保留字是现有Java版本尚未使用,但是未来的Java版本可能会做关键字使用的单词,例如goto,const.但是可以包含关键字,保留字. 标识符可以由

20_Shell语言———VIM编辑器基础知识三之窗口属性定制、配置文件及查找替换功能

Vim编辑器可以让用户按照需求来定制一些使用属性. 一.窗口属性定义 1)显示行号 行号不是内容,只是用来帮助用户确认文本所在的行.在vim编辑器中,如果要显示行号,可以在末行模式下输入: set number 如果想关闭,则可以在功能名称前面加上no,即: set nonumber 命令可以被简写,如set number 可以简写为 set nu:set nonumber 可以简写为 set nonu. 注意,上述设定仅对当前vim的进程有效,一旦当前进程关闭,这些设定就会失效,如果要使设定永

数字视频基础(三)

2.3 HDMI和DVI 2.3.1 HDMI 2.3.1.1 概述 如下图所示,HDMI电缆和连接器有4对差分线,3对TMDS数据线和1对时钟通道.这些通道用来传输视频.音频和辅助数据.另外,HDMI还有DDC通道,DDC是用来配置显示器和获得显示器状态,这里我们不讨论DDC. 音频.视频和辅助数据通过3个TMDS数据通道来传输,TMDS时钟,其频率通常是视频像素时钟频率,作为接收器的参考频率.TMDS将每个TMDS数据通道的并行8bit数据转换为直流平衡跳变最少的串行10bit数,因此发送是

Swift语法基础入门三(函数, 闭包)

Swift语法基础入门三(函数, 闭包) 函数: 函数是用来完成特定任务的独立的代码块.你给一个函数起一个合适的名字,用来标识函数做什么,并且当函数需要执行的时候,这个名字会被用于“调用”函数 格式: func 函数名称(参数名:参数类型, 参数名:参数类型...) -> 函数返回值 { 函数实现部分 } 没有参数没有返回值 可以写为 ->Void 可以写为 ->() 可以省略 Void.它其实是一个空的元组(tuple),没有任何元素,可以写成() func say() -> V

这回真的是挤时间了-PHP基础(三)

hi 刚看了唐人街探案,5星好评啊亲.由于是早就约好的,也不好推辞(虽然是和男的..),但该写的还是得挤时间写.明天早上老师的项目结题,虽然和我关系不大,但不要添乱就好!! 1.PHP  一.PHP基础(三)1.3.2 Int 整型. 几个点:进制问题(2,8,16): 溢出——溢出后自动转为float型: 整除: float转为int——向下取整: 例子给出 $shi=123;$bin=0b100001;$ba=0123;$shiliu=0x1234555; function show($a)