输入与输出
/* 注意事项: 1.输入的格式非常重要! 2.输出的时候可能会发生——数据的溢出 */ # include <stdio.h> int main(){ int a,b; scanf("%d,%d", &a, &b); // 输入的时候,一定要按照左边代码的输入格式 printf("Hello World! a = %d and b = %d.\n", a, b); // 输出 return 0; }
格式化输出
/* %a(%A) [浮点数]、[十六进制数字] 和 [p - 记数法(C99)] %c 字符 %d 有符号十进制整数 %f 浮点数(包括float和doulbe) %e(%E) 浮点数指数输出[e(E)记数法] %g(%G) 浮点数不显无意义的零"0" %i 有符号十进制整数(与%d相同) %u 无符号十进制整数 %o 八进制整数(e.g. 0112) %x(%X) 十六进制整数(e.g. 0x1213) %p 指针 %s 字符串 %% "%" */
运算符、表达式、语句
/* <运算符> 1.算术运算符 加减乘除: + - * / 求余数:% 自增自减:++ -- 2.关系运算符 大于 > 大于等于 >= 小于 < 小于等于 <= 等于 = 3.逻辑运算符 逻辑与 && 逻辑或 || 逻辑非 ! 4.条件运算符 条件?操作1:操作2(如果条件为真,执行操作1,如果条件为假,执行操作2) 例如: x > y ? x : y 补充:可以嵌套使用 5.位运算符(计算机中的数据按补码形式存储,因此在进行位运算时,直接操作的是补码) 按位与 & 同1为1 按位或 | 有1为1 按位非 ~ 取反 按位异或 ^ 同则为0,异则为1(同性相斥,异性相吸) 左移 << 向左移动,低位补零 右移 >> 向右移动,高位补符号位 ---例如:3 & 5 = 1 -3 & 5 = 5 -----原码、反码、补码的知识: 正数的二进制xxx码: 原码、反码、补码都相同 负数的二进制xxx码: 原码 -> 反码: 原码的“符号位”不变,其他的“位”全部取反。 反码 -> 补码: 反码 + 1 即可得到补码 6.赋值运算符 1.简单赋值 = 2.复合算术赋值 += -= *= %= 3.复合位运算赋值 &= |= ^= >>= <<= 7.逗号运算符(英文输入法的逗号) ---起连接作用 第一部分, 第二部分, ……, 第n部分 上面的所有内容是依次运算,但最终取值为:第n部分的值 8.指针运算符 ---用于指针运算 1.取内容 * 2.取(首)地址 & 9.求字节运算符 用于计算所占的字节数 sizeof() 10.其他运算符 () 强调优先级 或 强制转换类型--------如:int n = (int) 3.14 [] 下标 + - 数学规则 如:+8、-9 :: 范围解析 -> 成员运算符 <表达式> 一种有值的语法结构 由运算符将变量,常量函数调用返回值结合而成 例如:a + b <语句> 当程序运行时,执行某个动作的语法结构 它改变变量的值,产生输出或处理输入 以分号“;”结尾,(注意是英文输入法) 空语句 只有一个分号的语句,什么也不做 表达式语句 在表达式的后面加个分号 语句块 { z = a + b; z = z + 1; } 控制语句 循环语句、条件语句、转移语句 */
if 语句
int main() { int a = 2; if (a > 1) { printf("a > 1"); } else if (a = 1) { printf("a = 1"); } else { printf("a < 1"); } return 0; }
switch 语句
int main() { switch (2 * 0) { case 0: printf("This is a case 0.\n"); // 结果:执行case 0的代码,如果不加上 break 将继续向下执行 break; case 1: printf("This is a case 1.\n"); break; case 2: printf("This is a case 2.\n"); switch (0 / 1) // switch 语句可以嵌套使用 { case 0: printf("aaa"); break; case 1: printf("bbb"); break; default: printf("ccc"); break; } break; default: printf("This is a default.\n"); break; } return 0; }
for 循环
int main() { for (int i = 0; i < 10; i++) { printf("第%d次循环\n", i); } return 0; }
while 循环
int main() { int i = 0; while (i < 10) { printf("第%d次循环\n", i++); } return 0; }
do...while 循环
int main() { int i = 1; do { printf("现在do第%d次\n", i++); } while (i < 10); return 0; }
break continue 语句
int main() { for (int i = 0; i < 10; i++) { if (i == 2) { continue; } printf("第%d次循环\n", i); if (i == 6) { break; } } return 0; }
goto 语句
/* 1.作用:无条件转移 2.建议:谨慎使用!!如果用的不好可能会破坏程序的逻辑性和安全性!! 很多书籍上在提及goto语句时都会提醒读者并不推荐使用它。 但我们还是推荐读者可以合理的使用goto语句。 下面为了学习使用goto,我们可以通过goto语句来实现一个“类while语句”的循环功能: */ int main() { int day = 1; loop: if (day <= 28) { printf("now is day %d\n", day++); goto loop; } return 0; } /* 上面程序就是利用了goto和if语句来实现了循环功能, 它与while实现的循环功能一样, 其中loop为我们定义的一个label(标签)。 */
浙公网安备 33010602011771号