1、01.C 程序基本结构一、C 语言的特点:1、C 语言源程序的基本组成单位是函数;一个 C 程序可由若干个函数组成,其中必须有且仅有一个以 main 命名的主函数,其余的函数名称可由编程者自行设定。,2、C 程序的执行总是由 main()函数的第一个可执行语句开始,到 main()函数的最后一个可执行的语句结束;而其他函数都是在 main()函数开始执行以后,通过其他函数的调用才得以运行。3、C 语言系统提供了丰富的库函数,用户在程序中需要调用某个库函数时,必须用#include 编译预处理命令将描述该库函数的头文件包含进去。二、C 程序的书写格式:1、语句可从分开放在任意多行内;如:prin
2、tf(“To C,”);printf(“ or not to C:”);与 printf(“To C , or not to C:”);是等价的2、一行中可以有若干个语句;如:a=123;b=345;3、每个语句和数据定义的最后必须有一个分号;三、C 语言程序的运行:1、编译(Compile):将 C 源程序文件翻译成能被计算机识别的二进制形式的“目标”文件;编译时,编译器将检查源程序每一条语句的语法错误。2、建造(Bulid): C 语言程序示例:显示“Hello”#includeint main(void)printf(“Hello.n”);return 0;说明:#include 是必不
3、可少的,它包含了 C 语言标准输入输出库的相关信息;printf 函数来自” 标准输入输出库” ,可以产生格式化输出;n 告诉 printf 函数执行完信息显示后要进行换行操作;return 0 表明程序终止时会向操作系统返回值 0; 来标出 main()函数的起始和结束。02.数据类型一、C 语言的特点:1、C 语言源程序的基本组成单位是函数;一个 C 程序可由若干个函数组成,其中必须有且仅有一个以 main 命名的主函数,其余的函数名称可由编程者自行设定。2、C 程序的执行总是由 main()函数的第一个可执行语句开始,到 main()函数的最后一个可执行的语句结束;而其他函数都是在 ma
4、in()函数开始执行以后,通过其他函数的调用才得以运行。3、C 语言系统提供了丰富的库函数,用户在程序中需要调用某个库函数时,必须用#include 编译预处理命令将描述该库函数的头文件包含进去。二、C 程序的书写格式:1、语句可从分开放在任意多行内;如:printf(“To C,”);printf(“ or not to C:”);与 printf(“To C , or not to C:”);是等价的2、一行中可以有若干个语句;如:a=123;b=345;3、每个语句和数据定义的最后必须有一个分号;三、C 语言程序的运行:1、编译(Compile):将 C 源程序文件翻译成能被计算机识别的
5、二进制形式的“目标”文件;编译时,编译器将检查源程序每一条语句的语法错误。2、建造(Bulid):C 语言程序示例:显示“Hello”#includeint main(void)printf(“Hello.n”);return 0;说明:#include 是必不可少的,它包含了 C 语言标准输入输出库的相关信息;printf 函数来自” 标准输入输出库” ,可以产生格式化输出;n 告诉 printf 函数执行完信息显示后要进行换行操作;return 0 表明程序终止时会向操作系统返回值 0; 来标出 main()函数的起始和结束。03,运算符和表达式1、算术运算符和表达式+:加法运算符,如 3
6、5;-:减法运算符,如 5-3;*:乘法运算符,如 5*8;/:除法运算符,如 3/6;参与运算量均为整型时,结果也为整型,舍去小数;若运算量中有一个是实型,则结果为双精度实型。%:模运算符,也称“取余运算符”,用于计算两数相除后的余数,如 5%3=2;2、赋值运算符和赋值表达式 赋值运算符:” ,其作用是将一个表达式的值赋给一个变量;其一般形式为:变量=表达式如:x=a+b;赋值表达式的功能是计算表达式的值再赋予左边的变量。赋值运算符具有右结合性。因此 a=b=c=5 可理解为 a=(b=(c=5);复合赋值运算符:+=、-=、 *=、/= 、%=、=、main()int i=8;print
7、f(“%dn“,+i); /* i 先加 1,再输出 i ,输出结果为 9 */printf(“%dn“,-i); /* i 先减 1,再输出 i ,结果为 8 */printf(“%dn“,i+); /* 先输出 i ,输出结果为 8,i 再加 1, */printf(“%dn“,i-); /* 先输出 i ,输出结果为 9,i 再减 1, */printf(“%dn“,-i+); /* 先加输出-i,输出结果为-8,i 再加 1 */printf(“%dn“,-i-); /* 先输出-i ,输出结果为-9,i 再减 1 */ 5、求字节运算符计算表达式的结果所占字节数或某种数据类型的定义字
8、节数。一般格式:sizeof(数据类型标识符) 或 sizeof(表达式)如: sizeof(float)的值为 4,占 4 个字节;sizeof(2*3)的值为 2,占 2 个字节;6、关系运算符和关系表达式 关系运算符:“”(大于)、 ”=”(大于等于) 、 ”=”(等于) 、 “!=”(不等于) 关系表达式:若关系表达式成立,其值为 “真”,否则为“假”;在 C 语言中,用 0 代表“假”,用 1 代表“真”;7、逻辑运算符和逻辑表达式: 逻辑运算符: “!” (非) 、 “a=b+3;特别提示:分号(;)是表达式语句中不可缺少的一部分。2、函数调用语句:如:printf(”I am a
9、 student!”);其中:printf()为系统提供的函数,用于显示信息。3、复合语句:所谓“复合语句” 即由一对“”括起来的一组语句,也称“块语句”或“分程序” 。一般形式为:语句 1语句 2.语句 n如:i+;j=a+3;printf(“%d,j=“,i,j);特别提示:复合语句中的最后一条语句的分号不得缺少;复合语句的“”之后不得有分号。4、空语句:“空语句”即为一个独立的分号。如:main().;.二、数据的输入输出C 语言提供了一些输入输出函数,如 printf()和 scanf(),在程序中调用这些输入输出函数时,必须将标准输入输出头文件“stdio.h”包含到用户所编写的源程
10、序中。如:#include 其中:#include 命令一般写在程序的开头位置。1、格式输入输出1、格式输出函数 printf()(1)一般格式: printf(格式字符串,输出列表)其中:“格式字符串”包括“ 输出字符”和“格式控制字符”(由%和格式字符组成,指定输出项的输出格式) 。 d 格式符:用于输出十进制整数;%d:以十进制形式显示输出变量的值;%5d:以十进制形式显示变量的值,且至少占用 5 个字符的空间,若不够 5 位数字,则左侧补空格;%-5d:以十进制形式显示变量的值,且至少占用 5 个字符的空间,左对齐;%5.3d:以十进制形式显示变量的值,且至少占用 5 个字符的空间并至
11、少有 3 位数字,若不够 3 位数字,则左侧补 0;如:#includemain()int i;i=40;printf(“%dn”,i);printf(“%5dn”,i);printf(“%-5dn”,i);printf(“%5.3dn”,i); f 格式符:用于以小数形式输出实数;%10.3f:以定点十进制形式显示变量的值,且总共用 10 个字符,其中,整数位 6 位,小数位 3 位,小数点1 位;如:#includemain()float x;x=839.21f;printf(“%10.3fn”,x); c 格式符:用于输出一个字符;如: x=”a”,y =”b”,则 printf(%c
12、%c“,x,y)的输出结果为:a b若变量的值为整数,则输出该整数值为 ASCII 码的字符:如 x=65,y=98,则 printf(“%c, %c”,x,y)的输出结果为: A, b;同理,一个字符的数据也可以以整数的形式输出;如 x=a,y=B,则 printf(“%d,%d”,x,y)的输出结果为:97,66 s 格式符:用于输出一个字符串。如:printf(“%s”,”I am a student !”) e,E 格式符:用于以指数形式输出实数。如:printf(“%e”, 123.456) ,则输出结果为:1.234560e+002; g,G 格式符:用于输出实数,根据数值的大小自
13、动选择 f 格式或 e 格式。2、格式输入函数 scanf()(1)一般格式:scanf(格式字符串,变量地址表)其中:格式字符串使用双引号括起来的字符串,包括“普通字符”(按原样输入) 、 “格式控制字符”(由%和格式字符组成,用来标定输入数据的格式) 。变量地址表是由若干个变量地址组成的表列,可以是变量的地址,也可以使字符串的首地址。 d 格式:用于输入十进制整数;如:scanf(“%d,%d”,则输入格式为:123 ,3456u 格式:用于输入十进制无符号整数;f 格式:用于输入以小数形式的实数;如:scanf(“%f,%f”,则输入格式为:123.23,23.456c 格式:用于输入一
14、个字符;如:scanf(“%c,%c”,则输入格式为:a,bs 格式:用于输入一个字符串;如:scanf(“%s”,a); 假定 a 为字符数组,则输入格式为:abcdef注:输入的字符串中间不能包含空格。特别说明: 对于变量, ”表示只能输入 5 个字符给字符串指针 p;3、字符数据的输入输出:(1)putchar()函数:是向标准输入输出设备输出一个字符;其调用格式为:putchar(ch); 其中:ch 为一个字符变量或常量;putchar()函数作用等同于 printf(“%c”,ch);(2)getch() getche()和 getchar()函数:getch():从键盘上读入一个
15、字符,但不显示在屏幕上;getche():从键盘上读入一个字符,显示在屏幕上;getchar():从键盘上读入一个字符,并显示在屏幕上,但直到输入回车键时才结束输入,第一个字符为其函数的返回值。 05.选择结构一、if 语句:一般格式:if(表达式) 语句;表示:当“表达式” 成立时,则执行“ 语句”;否则跳过“语句 ”;如:if (ab) printf(“ab!”);例:若用户输入的数为 3 的倍数,则显示”OK”#includemain()int a;scanf(“%d”,if(a %3=0) printf(“OK”);二、if-else 语句:一般格式:if (表达式 ) 语句 1;el
16、se语句 2;例:给出用户输入的两个整数的较大者#includemain()int a,b;scanf(“%d,%d”,if(ab)printf(“the max=%d”,a);elseprintf(“ the max=%d”,b);三、if 语句的嵌套1、if 子句中嵌套: if(表达式 1)if(表达式 2) 语句 1;else 语句 2;else 语句 3; if(表达式 1) if(表达式 2) 语句 1; else 语句 2;2、else 子句中嵌套 if (表达式 1) 语句 1;elseif(表达式 2) 语句 2;else 语句 3; if(表达式 1) 语句 1;elseif
17、(表达式 2) 语句 2;3、嵌套一般格式:if (表达式 1) 语句 1;else if (表达式 2) 语句 2;else if (表达式 3) 语句 3 ;else if(表达式 n) 语句 n;else 语句 n+1;例:将用户输入的成绩按以下规则转换成等级成绩:分数: 90100 等级:优分数: 8089 等级:良分数: 7079 等级:中分数: 6069 等级:及格分数: 60 以下 等级:不及格# includemain()int d;printf(“输入分数:”);scanf(“%d”,if(d=90 ) printf(“优”);else if(d=80) printf(“ 良
18、”);else if(d=70) printf(“ 中”);else if(d=60) printf(“ 及格”);else printf(“ 不及格 ”);四、条件语句:表达式 1 ? 表达式 2 :表达式 3 执行的过程:若表达式 1 的值为非 0 时,该条件语句的职位表达式 2,否则为表达式 3;例:求一个整数的绝对值#includemain()int i,absi;scanf(“%d”,absi=i0 ? i : -i;printf(“%d 绝对值是%dn”,i,absi);五、switch 语句switch (表达式)case 常量表达式 1:语句 1 ;break;case 常量表
19、达式 2:语句 2 ;break;case 常量表达式 n:语句 n ;break; default: 语句 n+1;例:商店卖货物,每一件 3.5 元,按购买的数量给与优惠:购买 100 件,优惠 5%;购买 200 件以上,优惠 6%;购买 300 件以上,优惠 8%;购买 400 件以上,优惠 10%;购买 500 件以上,优惠 15%;#includemain()int n;float p,price;scanf(“%d“,switch(n/100)case 1:p=0.05;break;case 2:p=0.06;break;case 3:p=0.08;break;case 4:p=
20、0.10;break;case 5:p=0.15;break;price=3.5*n*(1-p);printf(“%应付款=%7.2fn“,price);06.循环结构一、for 语句:一般格式: for( 表达式 1 ;表达式 2;表达式 3) 语句;表示:先计算表达式 1 的值,再计算表达式 2 的值,若表达式 2 的值为 0,则跳出循环体,转去执行循环体后面的程序命令;若表达式 2 的值非 0,则执行循环体中的语句,接着计算表达式 3 的值;而后,再从计算表达式 2 的值开始重复上诉操作,直到表达式 2 的值为 0 时结束。例:计算 sum=1+2+3+100 的值”#includema
21、in()int i,sum;sum=0;for(i=1;i语句;表示:先计算表达式的值,若为非 0,则执行循环体语句,然后再计算表达式的值,重复上述过程,直到计算表达式的值为 0 时结束循环。例:计算 sum=1+2+3+100 的值#includemain()int i,sum;i=1;sum=0;while(i;表示:先执行一次循环语句,然后计算表达式的值,若表达式的值非 0,则再执行循环语句,然后从计算表达式的值开始重复上述过程,直到计算表达式的值为 0,循环结束。例:计算 sum=1+2+3+100 的值#includemain()int i,sum;i=1;sum=0;dosum=sum+i;i+;while(imain()int a,d;printf(“请输入一个整数:”);scanf(“%d”,for(d=2;dmain()int i,n=0,sum=0;while(n中包含使循环趋于结束的语句;3、对于 while 和 do-while 循环语句,循环变量的初始化应在 while 和 do-while 语句之前完成;for 循环语句可以在中进行;4、while 和 for 语句是先判断表达式,后执行循环; do-while 循环语句是先执行循环,后判断表达式;