·8 第一讲编程基础 int a,b,c,d; a size f(b) //童最b所占的字节数 b-sizeof(int) 川存储单个1 t型数据所禽的字节数 c=sizeof(3+5):存储表达结果所 需的字节数 5 d sizeof(3.0L 5); 1.2.5常用数学函数 需加入math.h头文件(https:/zh.cppreference..com/w/c/numeric/math) 绝对值 abs(x) 平方根 sqrt(x) 指数函数 exp(x),exp2(x) pow(x,y) 对数函数 1og(x),1og18(x),1og2(x) 取整函数 ceil(x).floor(x),round(x),trunc(x) 三角函数 sin,cos,tan,asin,acos,atan 双曲三角函数sinh,cosh,tanh,asinh,acosh,atanh 1.3C语言格式化输人输出 1.3.1Cc语言格式化输出 printf("格式控制字符事",输出变量列表);/建议加头文件stdio.h ()格式控制字符串:包括“普通字符串”、“格式字符串”、“转义字符 (2)普通字符串:原样输出 (③)格式字符串:以%开头,后面跟格式说明符和其它选项 紅f1g][输出最小宽度][.精度]格式说明符 printf("pi=%-12.6f In",pi) 以%开头 →格式说明符 flag+ 输出最小宽度 +:输出符号 小数点后的输出位数 1int k=5: double a=3.14 3 printf("k=%d,afn",k,a)j∥普通字符按原样输出;一个格式字符串对应一个变量 http://math.ecnu.edu.cn/-jypan
· 8 · 第一讲 编程基础 ✞ ☎ 1 int a, b, c, d; 2 a = sizeof(b); // 变量 b 所占的字节数 3 b = sizeof(int); // 存储单个 int 型数据所需的字节数 4 c = sizeof(3 + 5); // 存储表达式结果所需的字节数 5 d = sizeof(3.0L + 5); ✝ ✆ 1.2.5 常用数学函数 需加入 math.h 头文件(https://zh.cppreference.com/w/c/numeric/math) 绝对值 abs(x) 平方根 sqrt(x) 指数函数 exp(x), exp2(x) x y pow(x,y) 对数函数 log(x), log10(x), log2(x) 取整函数 ceil(x), floor(x), round(x), trunc(x) 三角函数 sin, cos, tan, asin, acos, atan 双曲三角函数 sinh, cosh, tanh, asinh, acosh, atanh 1.3 C 语言格式化输入输出 1.3.1 C 语言格式化输出 ✞ ☎ printf("格式控制字符串", 输出变量列表); // 建议加头文件 stdio.h ✝ ✆ (1) 格式控制字符串: 包括 “普通字符串”、“格式字符串”、“转义字符” (2) 普通字符串: 原样输出 (3) 格式字符串: 以 % 开头, 后面跟格式说明符和其它选项 ✞ ☎ 1 int k=5; 2 double a=3.14; 3 printf("k=%d, a=%f\n", k, a); // 普通字符串按原样输出; 一个格式字符串对应一个变量. ✝ ✆ http://math.ecnu.edu.cn/~jypan
1.3C语言格式化输入输出 .9 ·常见的格式说明符 c字符型 g浮点数(系统自动选择输出格式) d十进制整数 。八进制 e浮点数(科学计数法) 5字符 f浮点数(小数形式) x/X十六进制 ·常见的转义字符(输出特殊符号】 b退后一格 八t水平制表符 八f换页 、反斜打 1n换行 ”双引号 r回车 百分号 1.3.2C语言格式化输人 canf("格式控制字符串",输入变量地址列表);/建议加头文件stdio.h int a,b; printf("input a and b:") 5canf(“%d%d”,&a,&b);/1一个格式字符串对应一个输入变量地址 http://math.ecnu.edu.cn/-jypan
1.3 C 语言格式化输入输出 · 9 · • 常见的格式说明符 c 字符型 g 浮点数(系统自动选择输出格式) d 十进制整数 o 八进制 e 浮点数(科学计数法) s 字符串 f 浮点数(小数形式) x/X 十六进制 • 常见的转义字符(输出特殊符号) \b 退后一格 \t 水平制表符 \f 换页 \\ 反斜杠 \n 换行 \" 双引号 \r 回车 %% 百分号 1.3.2 C 语言格式化输入 ✞ ☎ scanf("格式控制字符串", 输入变量地址列表); // 建议加头文件 stdio.h ✝ ✆ ✞ ☎ 1 int a, b; 2 printf("input a and b: "); 3 scanf(“%d%d”, &a, &b); // 一个格式字符串对应一个输入变量地址 ✝ ✆ http://math.ecnu.edu.cn/~jypan
第二讲选择与循环 2.1关系运算与逻辑运算 。关系运算,即比较大小>《=>=<== (①)结论是真则返回1,否则返回日 (2)C语言中用1表示true,表示false (3)bool型变量的值为0时表示false,其他它值都表示true (④)注意=与=的区别 (5)对浮点数进行比较运算时尽量不要使用= ·逻辑运算:&(逻辑与),川(逻辑或),!(逻辑非》 (1)表达式1&表达式2 -先计算表达式1的值,若是tue,再计算表达式2的值: 若表达式1的值是false,则不再计算表达式2 (2)表达式1|川表达式2 .先计算表达式1的值,若是fa1se,再计算表达式2的值: 若表达式1的值是true,则不再计算表达式2. 白注记:注意&和川的运算方式 (3)优先级:!优于&优于I川 ·条件运算符:?: 条件表达式?表达式1:表达式2 ()C语言中唯一的三目运算符: (2)条件表达式为真时返回表达式1的值,否则返回表达式2的值: (3)表达式(1的值和表达式2的值的数据类型要一致 2.2选择结构 2.2.1F语句 ()单分支: 1f(条件表达式)语句/如果“条件表达式”的值非零,则执行后面的语句 注记:这里的语句可以是复合语句(如果是复合语句的话,别忘了大括号!) (2)双分支 1f(条件表达式) 语句1 else 语句2 0
第二讲 选择与循环 2.1 关系运算与逻辑运算 • 关系运算, 即比较大小: > < == >= <= != (1) 结论是真则返回 1, 否则返回 0 (2) C 语言中用 1 表示 true, 0 表示 false (3) bool 型变量的值为 0 时表示 false, 其他它值都表示 true (4) 注意 == 与 = 的区别 (5) 对浮点数进行比较运算时尽量不要使用 == • 逻辑运算: &&(逻辑与), ||(逻辑或), !(逻辑非) (1) 表达式 1 && 表达式 2 先计算 表达式 1 的值, 若是 true, 再计算 表达式 2 的值; 若 表达式 1 的值是 false, 则不再计算 表达式 2. (2) 表达式 1 || 表达式 2 先计算 表达式 1 的值, 若是 false, 再计算 表达式 2 的值; 若 表达式 1 的值是 true, 则不再计算 表达式 2. b 注记:注意 && 和 || 的运算方式. (3) 优先级: ! 优于 && 优于 || . • 条件运算符: ? : ✞ ☎ 条件表达式 ? 表达式1 : 表达式2 ✝ ✆ (1) C 语言中唯一的 三目运算符; (2) 条件表达式 为真时返回 表达式 1 的值, 否则返回 表达式 2 的值; (3) 表达式 {}1 的值和 表达式 2 的值的数据类型要一致. 2.2 选择结构 2.2.1 IF 语句 (1) 单分支: ✞ ☎ if (条件表达式) 语句 // 如果“条件表达式”的值非零, 则执行后面的语句 ✝ ✆ b 注记:这里的语句可以是复合语句(如果是复合语句的话, 别忘了大括号!) (2) 双分支: ✞ ☎ if (条件表达式) 语句1 else 语句2 10
2.2选择结构 11 /如果“条件表达式”的值为true,则执行“语句1”,否则执行“语句2" (3)多分支 1f(条件表达式) 语句1 else if(条件表达式) 语句2 else if(条件表达式) 语句3 else 语句n 白注记:条件表达式两边的小括号不能省略! (4)1f语句回可以按套 (⑤)嵌套时每一层if都要和else配套,若没有e1se,则需将该层1f语句用()括起来 2.2.2 SWITCH结构 switch(表达式)/这里的“表达式”的值可以是整型、字符型或枚举型 case常量表达式1: 语句 case常量表达式2: 语句 case常量表达式n: 语句 default: 语句 (I)先计算switch后面的“表达式”的值,然后依次与每个case后面的“常量表达式”进行匹配, 一旦匹配成功,则开始执行其后面的语句,包括其后面所有case以及default的语句(除非遇到 break); (2)如果没有匹配的,则执行default后面的语句: (B)default不是必需的,即可以没有: (④)每个case分支最后一般都会加上break语句 (5)每个case后面的常量表达式的值不能相同: (6)每个case后面可以有多个语句(复合语句),但可以不用{. http://math.ecnu.edu.cn/-jypan
2.2 选择结构 · 11 · // 如果“条件表达式”的值为 true, 则执行“语句1”, 否则执行“语句2” ✝ ✆ (3) 多分支: ✞ ☎ if (条件表达式) 语句1 else if (条件表达式) 语句2 else if (条件表达式) 语句3 ... else 语句n ✝ ✆ b 注记:条件表达式两边的小括号不能省略! (4) if 语句可以嵌套; (5) 嵌套时每一层 if 都要和 else 配套, 若没有 else, 则需将该层 if 语句用 { } 括起来. 2.2.2 SWITCH 结构 ✞ ☎ switch(表达式) // 这里的“表达式”的值可以是整型、字符型或枚举型 { case 常量表达式1: 语句 case 常量表达式2: 语句 ... case 常量表达式n: 语句 default: 语句 } ✝ ✆ (1) 先计算 switch 后面的“表达式”的值, 然后依次与每个 case 后面的“常量表达式”进行匹配, 一旦匹配成功, 则开始执行其后面的语句, 包括其后面所有 case 以及 default 的语句(除非遇到 break); (2) 如果没有匹配的, 则执行 default 后面的语句; (3) default 不是必需的, 即可以没有; (4) 每个 case 分支最后一般都会加上 break 语句; (5) 每个 case 后面的常量表达式的值不能相同; (6) 每个 case 后面可以有多个语句(复合语句), 但可以不用 { }. http://math.ecnu.edu.cn/~jypan
.12. 第二讲选择与循环 2.3循环结构 ·重复执行:代码不变,但数据在变 ·循环结构的三种实现方式:while循环,do while循环和for循环。 ·循环可以嵌套 循环体语句 表达式 假 WHILE循环 DO WHILE循环 FOR循环 2.3.1WHLE循环 while(条件表达式) 循环体语句 ·执行过程 (①)计算条件表达式的值 (2②)如果是“真”,则执行循环体语句:否则退出循环 (3)返回第(1)步. 白注记:如果循环体语句是复合语句,别忘了大括号! 2.3.2D0WHLE循环 do 循环体语句 while(条件表达式); ·执行过程 (1)执行循环体语句: (2)判断条件表达式的值,如果是“真”,则返回第(①)步:否则退出循环 ·与while循环的区别:无论条件是否成立,循环体语句至少执行一次. http://math.ecnu.edu.cn/-jypan
· 12 · 第二讲 选择与循环 2.3 循环结构 • 重复执行: 代码不变, 但数据在变; • 循环结构的三种实现方式: while 循环, do while 循环和 for 循环. • 循环可以嵌套. WHILE 循环 DO WHILE 循环 FOR 循环 2.3.1 WHILE 循环 ✞ ☎ while(条件表达式) { 循环体语句 } ✝ ✆ • 执行过程 (1) 计算条件表达式的值; (2) 如果是“真”, 则执行循环体语句; 否则退出循环; (3) 返回第 (1) 步. b 注记:如果循环体语句是复合语句, 别忘了大括号! 2.3.2 DO WHILE 循环 ✞ ☎ do { 循环体语句 } while(条件表达式); ✝ ✆ • 执行过程 (1) 执行循环体语句; (2) 判断条件表达式的值, 如果是“真”, 则返回第 (1) 步; 否则退出循环. • 与 while 循环的区别: 无论条件是否成立, 循环体语句至少执行一次. http://math.ecnu.edu.cn/~jypan