第三章 最简单的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;
}
log_1.c
#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;
}
log_2.c

 

章节小结

 

 

相关/转载:

1,谭浩强 《c语言程序设计》

posted @ 2021-02-19 19:00  子崖子崖  阅读(299)  评论(0)    收藏  举报