C语言操作符和输入输出函数

C语言操作符和输入输出函数
C语言的操作符分为运算符、赋值符以及单目操作符等运算符加法运算符“”加法运算符通常用在多个数据或者变量进行相加的情形在代码中使用如下图#includestdio.h int main() { int a 10; int b 20; printf(a b %d,ab);//运行结果为a b 30 return 0; }减法运算符“-”减法运算符通常用在多个数据或者变量进行相减的情形在代码中使用如下图#includestdio.h int main() { int a 20; int b 10; printf(a - b %d,a-b);//运行结果为a - b 10 return 0; }乘法运算符“*”乘法运算符通常用在多个数据或者变量进行相乘的情形在代码中使用如下图#includestdio.h int main() { int a 20; int b 10; printf(a * b %d,a*b);//运行结果为a * b 200 return 0; }除法运算符“/”除法运算符通常用在多个数据或者变量进行相除的情形当被除数和除数均为整数时正常进行运算当需要最后的结果为浮点数时被除数和除数二者其中一个必须为浮点型否者不能输浮点型的商在代码中使用如下图#includestdio.h int main() { float a 10.0; int b 20; printf(a / b %f,a/b);//运行结果为a / b 0.5 return 0; }取模运算符“%”取模运算符通常用于两个整数之间求两者相除后的余数当进行负数取模时由前面一个数的符号决定最后取模结果的符号取模运算常用于求一个任意数的最后一位数将任意一个数对10进行取模运算在代码中使用如下图#includestdio.h int main() { int a 10; int b 3; int c -10; int d -3; printf(a % b %d,a%b);//运行结果为a % b 1 printf(c % b %d,c%b);//运行结果为c % b -1(符号由c决定) printf(a % d %d,a%d);//运行结果为a % d 1(符号由a决定) return 0; }赋值运算符基础赋值运算符“”基础赋值运算符只有一个“”一般用于直接给变量赋值在代码中使用如下图#includestdio.h int main() { int a 0; a 10;//这里的“”为赋值符 return 0; }复合赋值符复合赋值符有“”、“-”、“*”、“/”、“%”等均是进行运算后再赋值例如“a 3”等同于“a a3”在代码中使用如下图#includestdio.h int main() { int a 10; printf(%d,a3);//运行结果为13 printf(%d,a-3);//运行结果为7 printf(%d,a*3);//运行结果为30 printf(%d,a/3);//运行结果为3 printf(%d,a%3);//运行结果为1 return 0; }单目操作符单目操作符有“”、“--”、“”、“-”四种并且“”和“--”前置和后置是不同的前置时a先进行1运算再进行赋值后置时a先进行赋值再进行1运算“”、“-”仅改变变量符号 在代码中使用如下图#includestdio.h int main() { int a 2; printf(%d,a)//最终运算结果为2 printf(%d,a)//最终运算结果为3 printf(%d,a--)//最终运算结果为2 printf(%d,--a)//最终运算结果为1 printf(%d,-a)//最终运算结果为-2 return 0; }强制类型转换在有需要时可以强制进行数据类型的转换例如int a (int)1.23,将浮点型数据1.23强制转换为整数类型1但是有些类型之间是不能够进行转换的例如结构体不能转换为整形、浮点型在代码中使用如下图#includestdio.h int main() { int a (int)3.45;//a 3 return 0; }输出函数“printf()”输出函数常用于输出一些数据其基本输出形式分为两种一种是“printf(数据)”另一种是“printf(数据类型对应的占位符,变量名称或直接写数据)”。占位符占位符顾名思义用于占着位置的符号在输入、输出函数中应用广泛占位符有“%d”int“%hd”short int“%ld”(long int)“%lld”(long long int)“%u”(unsigned int)“%hu”(unsigned short int)“%lu”(unsigned long int)“%llu”(unsigned long long int)“%o”(八进制整数)“%x”(十六进制整数)“%f”(float)“%lf”(double)“%Lf”(long double)“%c”(char)%s(str)字符串“%a”十六进制浮点数字母用小写字母“%A”十六进制浮点数字母用大写字母“%e”(使用科学计数法的浮点数指数部分的e为小写)“%E”(使用科学计数法的浮点数指数部分的E为大写)“%zu”(size_t类型)“%%”输出一个百分号“%p”(用于打印地址)占位符的限宽整形占位符的限宽%5d (限宽5位)long int,long long int等其他整形数据类型的占位符限宽形式与其一致浮点形占位符的限宽%12f (限宽12位)float,double,long double等其他浮点形数据类型的占位符限宽形式与其一致浮点型数据进行小数点后为位数的控制%.3f (保留三位小数)限宽与保留小数可同时作用%5.3f (宽度为5且保留三位小数的浮点型数据)字符型占位符的限宽%.3s (限宽3个字符)占位符的对齐方式默认为右对齐方式右对齐意味着限宽位数比输出的数据位数多出的位数会在最左边添加空格进行补位操作左对齐方式是在占位符中间添“-”例如%-5d (左对齐方式下的5位整形数据)其他类型数据的占位符的左对齐方式设定方法也是一致。printf()函数在代码中的使用如下#includestdio.h int main() { int a 10; float b 3.14; char str1[5] abcde; printf(%3d,a);//最终运行结果 10 printf(%5.3f,b);//最终运行结果3.140 printf(%3s,c);//最终运行结果abc return 0; }目录运算符加法运算符“”减法运算符“-”乘法运算符“*”除法运算符“/”取模运算符“%”赋值运算符基础赋值运算符“”复合赋值符单目操作符强制类型转换输出函数“printf()”占位符占位符的限宽占位符的对齐方式输入函数“scanf()”注意事项输入函数scanf()常用于输入数据一般形式为“scanf(对应数据类型的占位符变量名)”允许输出多个变量。scanf()函数的返回值是一个整数代表成功读取到的数据个数在读取时如果遇到读取数据类型不匹配读取失败则后面的数据将不会继续读取在未识别到任何数据就发生读取错误或者读取到文件结尾则返回EOF-1。输入函数的返回值常用于循环语句中的判断条件从而进行具体功能的实现例子如下#includestdio.h int main()//实现可以连续不断的输入两个数据进去进行加法计算 { int a; int b; while(scanf(%d%d,a,b) 2)//识别成功读取两个数据后进入循环计算加法 { int c a b; printf(%d,c); } return 0; }注意事项scanf()的 中不能加“\n”(加入后按回车键无法完成输入)%[ ]可以限定数组中的输出内容范围其在代码中的使用如下在输入数据时“%c”不能忽略空格其余数据类型均可忽略输入时的空格“%s”在输入数据时从第一个非空白字符开始遇到空白字符空格、换行符制表符结束scanf()函数不会限制读取字符个数可能会溢出这是它不安全的原因。因此在在输入字符串时最好进行限宽处理scanf()输入数据的格式和“ ”中的格式必须一致如果想更自由一点输入需要在每两个挨着的输入数据占位符之间使用一个赋值忽略符在占位符中间加上“*”就会变成赋值忽略符赋值忽略符对应输入的数据会被识别到但是识别到后会被立刻丢弃不会把值赋给后面的变量 因此在后面不用提供对应变量地址。#includestdio.h int main()//注意事项2 { char str1[100]; scanf(%[0-9],str1);//数组名本身就是地址 printf(%s,str1);//输入123456A456789,最终的运行结果为:123456 return 0; }#includestdio.h int main() { int year; int mouth; int day; scanf(%d-%d-%d,year,mouth,day)//输入数据时格式为2026-07-07与“ ”中格式保持一致 return 0; }想要输入得更自由使用赋值忽略符如下#includestdio.h int main() { int year; int mouth; int day; scanf(%d%*c%d%*c%d,year,mouth,day)//输入数据时格式为2026 07 07或者每个数据之间按回 车也可以正常输入数据相对更 自由。 return 0; }