第三章 最简单的C程序设计--顺序程序设计
说明:谭浩强 《c语言程序设计》一书的总结
一,算法的表示
1,自然语言表示算法
2,流程图表示算法


3,N-S流程图表示算法

4,伪代码表示算法
二,控制语句
1,if() --- else --- 条件语句,用来实现选择结构
2,switch 多分支选择语句
3,for() --- 4,while() --- 5,do --- while()
循环语句,用来实现循环结构
6,continue 结束本次循环语句
7,break 中止执行循环语句或 switch
8,return 从函数返回的语句
9,goto 转向语句,弃用
三,赋值表达式(左值/右值)
1,在 “a=5” 中,“a” 是变量,可被赋值,为左值。“5”为右值,但左值也可以是右值
2,赋值表达式赋值时从右到左,括号优先
四,printf 中的格式字符
1,%o 声明八进制整型
2,%x 声明十六进制整型,%X时表示十六进制使用大写字母
3,%d 声明十进制整型
%md 指定长度为m,长度小于m则在左侧补空格,长度大于m则按实际位数输出。(%4d)
%ld 输出 long,但可以使用 %d 输出 long
4,%i 声明十进制整型,少用
5,%u 声明无符号十进制整型,少用
6,%c 声明字符
%mc 指定长度为m,在左侧补空格
7,%s 声明字符串
%ms 指定长度为m,长度小于m则在左侧补空格,长度大于m则按实际位数输出
%-ms 指定长度为m,长度小于m则在右侧补空格,长度大于m则按实际位数输出
%m.ns 指定长度为m,但只取字符串左侧n个字符并位于右侧,之后长度小于m则在左侧补空格,长度大于m则按实际位数输出
%-m.ns 指定长度为m,但只取字符串左侧n个字符并位于左侧,之后长度小于m则在左侧补空格,长度大于m则按实际位数输出
8,%f 声明浮点数。整数部分全部输出,小数部分输出六位。当输出 float 数据时,有可能输出非有效数字
%m.nf 指定长度为m,但小数部分长度为n,之后长度小于m则在左侧补空格,长度大于m则按实际位数输出
%-m.nf 指定长度为m,但小数部分长度为n,之后长度小于m则在右侧补空格,长度大于m则按实际位数输出
9,%e 声明指数形式的浮点数。也可以写成 E
%m.ne,%-m.ne 与%f相同
10,%g 声明浮点数,并根据数值的大小,自动下载 %f 或者 %e 格式,且不输出无意义的零(小数后面的零)。也可以写成 G
五,scanf 中的格式字符
1,与 printf 类似
2,scanf(%d%d) 输入多个变量时,分隔符可以是一个或者多个空格、Enter 和 Tab。
3,如果为scanf(%d,%d),那么分隔符需要对应为”,“。其他同理,需要按照 scanf 括号内的字符完整的输入数据。
4,scanf(%c%c)字符时不需要分隔符
5,指定输入数据的列数 scanf("%3d%3d", &g1, &g2)
6,跳过指定的列数 scanf("%2d%*2d%2d", &g3, &g4)
其他记录
1,程序的三种基本结构:顺序结构、选择结构和循环结构
2,C语句的五类语句:控制语句、表达式语句、复合语句、函数调用语句和空语句(前三个重要)
3,a += 3 等价于 a = a + 3;x *= y+8 等价于 x = x * y+8
4,if的条件中可以包含赋值表达式,但不能包含赋值语句(包含 ; 的语句)
5,printf 函数的格式为 printf(格式控制,输出表列...),格式控制包含格式声明和普通字符
6,地址运算符 & 。a 是变量名,&a 是变量地址
7,无符号数转有符号数范围是 -32767~32767[2^15],范围外失真。有符号数转无符号数范围是 0~32767[2^15],范围外失真。
8,格式字符的三个附加 "l" "m" "n" "-",代表 长整型整数、数据宽度、小数或者字符长度、右侧添加空格
9,printf 中 "%%" 可以输出 "%"
代码
#include<stdio.h> #include<math.h> int main() { // 类型转化 // int a1 = 1.1; // printf("a1=%d\n", a1); // int a2 = 'a'; // printf("a2=%d\n", a2); // 赋值 // int b1, b2 = 1; // if ((b1 = b2) > 0) // printf("ture\n"); // 字符数据的输入输出 // char c1 = 'a', c2 = 'b', c3 = 65; // putchar(c1); // putchar(c2); // putchar('\n'); // putchar(c3); // putchar('\101'); // char c4, c5; // c4 = getchar(); // c5 = getchar(); // putchar(c4); // putchar(c5); // putchar('\n'); // putchar(getchar()); // putchar('\n'); // printf("%c\n", getchar()); // 输出的格式字符 // char d1 = 'a'; // int d2 = 3; // double d3 = 59.13; // printf("d=%d i=%i c=%c f=%f s=%s e=%e E=%E\n", d2, d2, d1, d3, "world", d3, d3); // printf("d1 c=%c, d1 d=%d\n", d1, d1); // printf("d2 c=%c, d2 d=%d\n", d2, d2); // 输入 // int e1, e2; // scanf("%d%d", &e1, &e2); // printf("e1=%d, e2=%d\n", e1, e2); // scanf("%d,%d", &e1, &e2); // printf("e1=%d, e2=%d\n", e1, e2); // scanf("%d:%d", &e1, &e2); // printf("e1=%d, e2=%d\n", e1, e2); // scanf("请输入%d请输入%d", &e1, &e2); // printf("e1=%d, e2=%d\n", e1, e2); // char e3, e4; // scanf("%c%c", &e3, &e4); // printf("e3=%c, e4=%c", e3, e4); return 0; }
#include<stdio.h> #include<math.h> int main() { // 输入三角形的三边长,求三角形的面积 // double a1, a2, a3, a4, area; // printf("请依次输入三角形的边长,使用逗号分隔;\n"); // scanf("%lf,%lf,%lf", &a1, &a2, &a3); // a4 = (a1 + a2 + a3) / 2; // area = sqrt(a4 * (a4 - a1) * (a4 - a2) * (a4 - a3)); // printf("a =%7.3f\n", a1); // printf("b =%7.3f\n", a2); // printf("c =%7.3f\n", a3); // printf("s =%7.3f\n", a4); // printf("area =%.3f\n", area); // 大写字母改成小写字母 // A-Z:065-090 a-z:097-122 // char b1; // b1 = getchar(); // printf("%c, %d\n", b1 ,b1); // printf("%c, %d\n", b1+32, b1+32); // printf("%c\n", getchar() + 32); // 求二元一次方程的根 // double c1, c2, c3, c4, c5; // printf("请依次输入二元一次方程的a,b,c 使用逗号分隔;\n"); // scanf("%lf,%lf,%lf", &c1, &c2, &c3); // c4 = -c2 / (2 * c1); // c5 = sqrt(pow(c2, 2) - 4 * c1 * c3) / (2 * c1); // printf("%f %f", c4 + c5, c4 - c5); // 无符号数 // // 无符号数转有符号数范围是 -32767~32767[2^15],范围外失真 // unsigned short d1; // short d2 = -1; // d1 = d2; // printf("d1=%u d2=%d\n", d1, d2); // // 有符号数转无符号数范围是 0~32767[2^15],范围外失真 // unsigned short d3 = 65535; // short d4; // d4 = d3; // printf("d3=%u d4=%d\n", d3, d4); // 格式控制 // int e1 = 123, e2 = 12345; // printf("e1=%5d\ne2=%5d\n", e1, e2); // printf 格式字符 // short f1 = -1; // printf("d=%d\no=%o\nx=%x\n", f1, f1, f1); // int f2 = 010, f3 = 0x10; // printf("f2 %d\nf3 %d\n", f2, f3); // printf("4c=%4c", 'a'); // printf("%7s,%-7s,%7.2s,%-7.2s|\n", "CHINA", "CHINA", "CHINA", "CHINA"); // printf("%7f,%7.2f,%-7.2f|\n", 123.45, 123.45, 123.45); // printf("1=%6.2f\n2=%6.2f\n3=%6.2f\n", 1.456, 12.456, 123.456); // printf("%f\n%e\n%g\n", 123.456, 123.456, 123.456); // printf("%%"); // scanf 格式字符 // int g1, g2, g3, g4; // scanf("%3d%3d", &g1, &g2); // printf("g1 %d\ng2 %d\n", g1, g2); // scanf("%2d%*2d%2d", &g3, &g4); // printf("g3 %d\ng4 %d\n", g3, g4); return 0; }
章节小结
无
相关/转载:
1,谭浩强 《c语言程序设计》

浙公网安备 33010602011771号