C语言学习笔记——运算符(下)

简介: C语言学习笔记——运算符

3.4三元运算符

3.4.1基本语法

条件表达式 ? 条件1 :条件2;
  1. 如果条件表达式为非 0 (真),运算后的结果是表达式 1;
  2. 如果条件表达式为 0 (假),运算后的结果是表达式 2;

3.4.2代码

#include<stdio.h>
void main() {
  int a = 9;
  int b = 7;
  int c = a > b ? a++ : --b;//a > b为真,因此a++赋值给c;而a++先进行赋值操作,即c = a,再进行 a = a + 1
  printf("a = %d\nb = %d\nc =%d\n", a, b, c);
  int d = 9;
  int e = 7;
  int f = d < e ? d++ : --e;//d < e为假,因此e--赋值给f;而e--先进行e = e - 1,在进行赋值操作
  printf("d = %d\ne = %d\nf =%d\n", d, e, f);
  //三元运算符中,如果被赋值的变量精度小于赋值变量,则会产生精度损失
  int num1 = a > b ? 1.2 : 1.3;
  printf("num1 = %d\n", num1);
  //三元可以转换为eif else语句
  int num2;
  if (a > b) {
    num2 = 1.2;
  }
  else {
    num2 = 1.3;
  }
  printf("num2 = % d\n", num2);
}

f6f2cad1a51848a8bc86397dd06ffe90.png

  1. 三元运算符中,如果被赋值的变量精度小于赋值变量,则会产生精度损失
  2. 三元可以转换为eif else语句

3.4.3练习

输出三个数中的最大值

#include<stdio.h>
void main() {
  int a = 9;
  int b = 7;
  int c = 97;
  int temp = a > b ? a : b;
  temp = temp > c ? temp : c;
  printf(" a,b,c中的最大值为%d", temp);
}

18687c94d5494da696e6b8d2307ff294.png

3.5运算符优先级

  1. 结合的方向只有三个是从右向左,其余都是从左向右,分别是赋值运算符、单目运算和三目运算
  2. 逗号的运算符优先级最低
  3. 优先级的大概顺序为算数运算符>关系运算符>逻辑运算符(逻辑非除外,其优先级较高)>赋值运算符>逗号运算符

3.6.1标识符的概念

  1. C语言对各种变量、函数等命名时使用的字符序列称为标识符
  2. 凡是自己可以起名字的地方都叫标识符

3.6.2标识符的命名规则

  1. 由 26 个英文字母大小写,0-9 ,_或 $ 组成
  2. 数字不可以开头
  3. 不可以使用关键字和保留字,但能包含关键字和保留字
  4. C语言中严格区分大小写,长度无限制
  5. 标识符不能包含空格

3.6.3标识符的规范

  1. 程序中不得出现仅靠大小写区分的相似的标识符
  2. 所有宏定义、枚举常数、常量(只读变量)全用大写字母命名,用下划线分隔单词    
  3. 定义变量别忘了初始化。定义变量时编译器并不一定清空了这块内存,它的值可能是无效的数据, 运行程序, 会异常退出
  4. 变量名、函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写

3.6.4关键字

关键字的定义:被C语言赋予了特殊意义,用于专门用途的字符串

3.7键盘输入语句

3.7.1介绍

在编程中,需要接收用户输入的数据,就可以使用键盘输入语句来获取。

3.7.2步骤

  1. #include<stdio.h>
  2. 使用scanf函数
  3. 使用恰当的格式参数接收输入

3.7.3代码

#include<stdio.h>
void main() {
  char name[20] = "";
  int age;
  double sal = 0.0;
  char gender ;
  printf("请输入名字");//提示用户输入信息
  scanf_s("%s", name, sizeof(name));//scanf_s("%s", name)表示接收一个字符串,并将其存入name数组中
  printf("请输入年龄");
  scanf_s("%d", &age);//将用户输入的信息存入name所指向的地址中,因此需要用&
  printf("请输入薪水");
  scanf_s("%lf", &sal);//在使用scanf时,double对应的参数是%lf
  printf("请输入性别(m/f)");
  scanf_s("%c", &gender, sizeof(gender));//第一个scanf接收回车
  scanf_s("%c", &gender, sizeof(gender));//第二个scanf接收用户数据 
  printf("\n姓名为%s\t年龄为%d\t薪水为%f\t性别为%c", name, age, sal, gender);
}

f4c00dbc2bc7486596616086f52c5c27.png

3.8练习

  1. 定义变量保存 秒数,打印输出 xx 小时 xx 分钟 xx 秒
#include<stdio.h>
void main() {
  int seconds = 0;
  int hours = 0;
  int minutes = 0;
  int leftSeconds = 0;
  printf("请输入秒数:");
  scanf_s("%d", &seconds);
  hours = seconds / 3600;
  minutes = seconds % 3600 / 60;
  leftSeconds = seconds % 3600 % 60;
  printf("%d小时%d分%d秒", hours, minutes, leftSeconds);
}

30c3bf5e97d7485aaa0ac8541b0016a7.png

2.实现对三个整数进行排序,输出时按照从小到大的顺序输出

#include<stdio.h>
void main() {
  int a = 0;
  int b = 0;
  int c = 0;
  int temp = 0;
  printf("请输入三个数字:");
  scanf_s("%d%d%d", &a, &b, &c);
  if (a > b) {
    temp = a;
  }
  else {
    temp = b;
    b = a;
    a = temp;
  }
  if (a > c && b > c) {
    printf("这三个数字中最大的数字为%d,且它们的从大到小的顺序为%d %d %d", temp, a, b, c);
  }
  else if ( a > c &&  b < c){
    printf("这三个数字中最大的数字为%d,且它们的从大到小的顺序为%d %d %d", temp, a, c, b);
  }
  else {
    printf("这三个数字中最大的数字为%d,且它们的从大到小的顺序为%d %d %d", c, c, a, b);
  }
}

53752f9210274646a5ca783d0cb3a776.png



相关文章
|
14天前
|
存储 C语言 C++
【c语言】运算符汇总(万字解析)
今天博主跟大家分享了c语言中各种操作符的功能、使用方法以及优先级和结合性,并且与大家深入探讨了表达式求值的两个重要规则--算数转换和整形提升。学习这些知识对我们的C语言和C++学习都有着极大的帮助。
68 2
|
27天前
|
C语言
c语言运算符
C的运算符有以下几种: 算术运算符:+、-、*、/、% 结合方向自左向右 关系运算符:>、<、==、>=、<=、!= 逻辑运算符:!、&&、|| 位运算符<<、>>、~、|、^、& 赋值运算符:=及符号扩展赋值运算符(+=、-=、*=、/=) 条件运算符:? : 逗号运算符:, 指针运算符:*、& 求字节运算符:sizeof 强制类型转换运算符:((类型)) 分量运算符:.、-> 下标运算符:[]
31 4
|
4月前
|
存储 C语言
C语言数据类型、变量和运算符以及printf相关问题
C语言数据类型、变量和运算符以及printf相关问题
|
10天前
|
C语言
【C语言】条件运算符详解 - 《 A ? B : C 》
条件运算符(也称为三元运算符)是C语言中唯一的三元运算符。它通常用于替代简单的 `if-else` 语句。
44 6
|
3月前
|
C语言
C语言判断和运算符联系
在 C 语言中,判断与运算符紧密相关,主要体现在条件表达式的使用上。
197 87
|
3月前
|
安全 C语言
C语言运算符的使用注意点
在C语言中,正确使用运算符能提升代码的可读性和效率。本文介绍了八大注意事项:运算符优先级和结合性影响运算顺序;自增/自减运算符分前缀和后缀形式;逻辑运算符有短路特性;位运算符直接操作二进制位需谨慎;条件运算符简洁但避免复杂嵌套;类型转换避免意外结果;使用括号明确运算顺序。掌握这些要点有助于编写更安全高效的代码。
202 72
|
2月前
|
存储 Java C语言
【一步一步了解Java系列】:了解Java与C语言的运算符的“大同小异”
【一步一步了解Java系列】:了解Java与C语言的运算符的“大同小异”
42 3
|
2月前
|
C语言
C语言学习笔记-知识点总结上
C语言学习笔记-知识点总结上
89 1
|
2月前
|
C语言
C语言条件运算符详解
C语言条件运算符,也称为三元运算符,是一种简化if-else语句的表达式,形式为:条件?表达式1:表达式2。当条件为真时,计算并返回表达式1的值;否则计算并返回表达式2的值。它可用于快速实现简单的条件分支逻辑。
|
3月前
|
安全 C语言
在C语言中,正确使用运算符能提升代码的可读性和效率
在C语言中,运算符的使用需要注意优先级、结合性、自增自减的形式、逻辑运算的短路特性、位运算的类型、条件运算的可读性、类型转换以及使用括号来明确运算顺序。掌握这些注意事项可以帮助编写出更安全和高效的代码。
56 4