1 上课手机关闭2 不许缺课允许请假2次允许旷课1次补课周一到周五的早8点到晚18点之间可以补课3 教材可以做笔记4 骑自行车5 换课制度6小时内可以换课(C语言换VF)6 上课可以不记笔记7 开通手机邮箱C语言程序设计:指令(命令)的有序集合人自然语言(人话)中间语言计算机机器语言0 1中间语言计算机程序设计语言低级语言(接近于机器语言)汇编语言高级语言(C语言<面向过程的程序设计语言> Basic 面向对象程序设计语言)源程序(*.C)→编译(检查语法错误)→目标程序(*.OBJ)→链接→可执行程序(*.EXE)结构化程序设计不论多复杂的程序最终由顺序选择循环三种结构组成顺序结构: 按照程序中命令语句书写的先后次序逐条执行先执行前面的,后执行后面的选择结构:根据某一个条件,再二者之间选其中一个(多选一实质是执行多次二选一)if elseif(条件)条件成立时执行的语句;else条件不成立时执行的语句;循环结构: 根据某一个条件,当条件成立时反复执行一条或多条语句当型循环先判断条件(饿),条件成立执行循环体(吃一口饭),接着再次判断条件(饿)……当型循环的循环体最少执行〇次(第一次判断条件就不成立)直到型循环先执行一次循环体,再判断条件,条件成立则再次执行循环体……直到型循环的循环体最少执行一次模块化程序设计将一个大的任务分解成若干个小任务,再将小任务分解成更小的任务,直到每个任务都只完成一个独立功能每个任务叫做一个模块一个程序有若干个模块组成C语言中模块用函数表示一个C语言有若干个函数组成,各个函数相互独立相互联系相互平等一个C语言程序有并且只能有一个主函数main,程序总是从主函数开始执行一个函数可以调用(使用)另一个函数(的结果) 函数可以嵌套调用(A 调用B,B 调用C)函数中不能再定义函数(函数不可以嵌套定义)函数体必须以{开始,以}结束; 函数体中的叫做语句分为说明定义部分(必须在前面)和执行部分(在后面)语句后面都有一个分号 C 语言的语句必须以分号结束 语句可以占一行也可以占多行,一行内可以写一条语句也可以写多条语句(必须都以分号结束)程序前面以#开头部分叫做预编译处理命令 必须单独占据一行,末尾没有分号 #define PI 3.14159265 表示在下面程序中用PI 代替3.14159265参加运算以/*开头,以*/结束部分叫做注释 注释不能嵌套(注释中不能再写注释) /* /* */ */ 标识符标识符的命名规则:①数字(0~9)字母(a~z A~Z)下划线(_)组成 ②不能以数字开头③大小写字母严格区分标识符的分类:①关键字 ②预定义标识符 大部分是系统提供的函数名 ③用户定义标识符(遵循标识符命名规则 不能与关键字同名, 建议不要和预定义标识符同名,如果用户定义标识符与预定义标识符同名,则以用户定义标识符为准) 以下哪些是合法的用户标识符: sizeof xy Do if3 _while 4x _34 用户标识符 不是 是 是 是 是 不是 是 标识符 是 是 是 是 是 不是 是 表达式:5+7 x-2 3*sin(x) 3+2*7 运算对象(运算量):形式:常量 变量 函数 表达式常量:常数 程序运行过程中值不能发生改变的量 5 变量:值可以发生变化的量叫做变量 变量的实质:内存中的一段存储空间变量名的实质:内存中一段存储空间的名字 定义变量的实质:在内存中申请一段存储空间使用变量的实质:使用内存中一段存储空间中的数据 int x; 定义整型变量x 实质是:在内存中申请4个字节的一段存储空间给起函数头函数体说明定义部分一个名字叫做xx=35; 实质是:将35存放到名叫x的一段存储空间中x+5 实质是:将名叫x的存储空间中的数据35取出与5相加y=x+5实质是:将名叫x的存储空间中的数据35取出与5相加结果40存入到名叫y的存储空间x=x+6实质是:将名叫x的存储空间中的数据取出与6相加结果再存入到名叫x 的存储空间类型:基本数据类型:整型实型字符型无符号:正数〇unsigned long int x;表示定义无符号长整型xsigned long int y;表示定义有符号的长整型y long y;整型数据的表示:八进制:0~7 054十进制:0~9 54十六进制:0~9abcdef ABCDEF 0X54 0x54以下合法的整型表示形式有:487 0487 0x5a 01a 2B合法不合法合法不合法不合法整型数据的存储形式:正整数在计算机中按照原码形式【二进制形式】存放最高位0负整数在计算机中按照补码形式【原码各位取反(反码)再加1】存放最高位1 6 1100000 0000 0000 0110 6的原码1000 0000 0000 0110 -6的原码1111 1111 1111 1001 -6的反码1111 1111 1111 1010 -6的补码实型数据:表示形式:小数形式:5.647指数形式:2.35E6 2.35*106指数必须是整数(可以负数,0,正数)E也可以是e分类:双精度实型:double 占8个字节范围约-10308~10308精度10-308有效数字15~16位单精度实型:float 占4个字节范围约-1038~1038精度10-38有效数字7位整型数据在计算机中可以精确表示和存储,实型数据在计算机中不能精确表示和存储运算符号:目数:运算符所连接的运算量的个数单目双目三目优先级:连续两个运算符号在一起时先算与后算结合性:当两个连续运算符号的优先级相同先算左边的还是先算右边的从左到右从右到左算术运算:运算符:() + - * / %求余优先级:()→* / % →+ -运算法则:+ - *运算法则与数学上完全相同/ 两个整数相除结果【商】是整数【不要小数】15/7 2 54/8 6 38/12 3 54/78 0 1/2 0% 要求运算量必须是整型15%7 1 54%8 6 38%12 2 54%78 54 1%2 1 1234%10 4 587%10 7 82%10 2 10%5 0 24%6 0 15%3 0 18%6 0整除余数等于0 偶数被2除余数等于0已知某个整型变量x已经被赋予合法的数据,请:用一个表达式表示x的个位数:x%10用一个表达式表示x的十位数:x%100/10 x/10%10用一个表达式表示x的百位数:x%1000/100 x/100%10用一个表达式表示x的千位数:x%10000/1000 x/1000%10……赋值运算:运算符号:= 不是等号==优先级比较低【倒数第二】结合性:从右到左表达式:运算量1=运算量2要求:①运算量1只能是变量【赋值号的左边只能是变量】运算量2的形式没有要求【赋值号的右边形式不限制】②运算量1和运算量2的类型必须一致,如果类型不相同则先进行类型转换【将运算量2的类型转换为运算量1的类型在进行赋值将实型数据转换为整型只要其整数部分不要小数部分】int x; x=48.9874; 运行后x的值是:48int x,y,z,w,m;x=y=z=w=m=8;x=x+3 x+=3y=y-4 y-=4z=z*9 z*=9w=w/54 w/=54m=m%8 m%=8其中%=要求运算量必须是整型+= -= *= /= %= 复合的赋值运算符优先级结合性与赋值运算符相同要求赋值号左边的运算量必须有一个初始值强制类型转换:优先级比较高结合性从右到左(类型)表达式:(int)34.5 结果将34.5强制转换为int 是34(int)3.8+5.9 运行后结果是8.9(int)(3.8+5.9) 运行后结果是9自增1自减1运算:++ --优先级比较高表达式:x++ ++x要求:运算量必须是变量,并且有一个初始值y=x+3 将表达式x+3的值赋予变量yx=3y=x++ 将表达式x++的值【x的值】赋予变量y,再将x的值增加1运行后x是:4,y是3y=++x 将x的值增加1,再将表达式++x的值【x的值】赋予变量y运行后x是:4,y是4逗号运算:,优先级最低运算量的形式和类型均没有要求结果:最右边一个运算量的值int x,y,z;z=(x=7,x+2,++x,y=2,y+1,y++,x*y)运行后x,y,z分别是多少?第三章顺序结构语句:表达式的后面加分号赋值语句赋值表达式的后面加分号C语言中没有专门的输入输出语句,输入输出功能通过调用系统提供的标准库函数完成标准输出函数printf格式:printf(格式控制字符串,输出项列表)输出项的形式:可以是常量变量表达式函数等等字符串常量是用“”引起来的一串字符将格式控制字符串中的内容原样输出到屏幕上,并将其中以%开头特定字母结束的部分用后面的输出项值替换不同的字母表示按照不同的形式将输出项值显示在屏幕上d 按照十进制有符号形式输出u 按照十进制无符号形式输出o 按照八进制无符号形式输出不带前导0 用#o带前导Xx 按照十六进制无符号形式输出不带前导0x 用#X带前导在%与特定字母之间可以加控制信息:整数:对应输出项值在屏幕上所占的宽度,如果指定的宽度小于输出项值的最小所需,则指定的宽度无效-:输出数据左对齐,空白位置留右边0:左边空白位置用0补充+:显示输出数据的符号【正数显示正好,负数显示负号】%f表示按照小数形式输出输出项小数部分默认6位%e E表示按照指数形式输出输出项小数部分默认6位在%与f之间也可以加+ - 0并且意义同上在%与f之间可以加两个整数%m.nf表示输出数据共占m个宽度,其中小数点后保留n位%15.4f 表示整个输出项占15个宽度,小数点后保留4位%.4f 表示小数点后保留4位,总宽度是:小数位数+1【小数点】+整数位数%14f 省略小数位数则小数位数默认时6位%14.0f 表示没有小数点以及小数部分,十分位四舍五入要求在屏幕上输出一个%?则在格式控制字符串中使用两个%标准输入函数scanf格式:scanf(格式控制字符串,输入项列表)输入项是&变量名程序运行时,当运行到scanf函数时要求从键盘上原样输入格式控制字符串的内容,将其中以%开头特定字幕结束部分用具体数据代替建议:在格式控制字符串中除了以%开头特定字母结束部分外不要写其他内容当连续两个%开头特定字母结束部分在一起时,从键盘上输入数据如何区分?可以使用空格,回车,TAB键隔开特定字母:i 按照整型形式收入【根据是否有前导确定进制】 d 有符号十进制u 无符号十进制o无符号八进制 x 无符号十六进制fe 实型形式【不区分小数或指数形式】在%与特定字母之间可以加控制信息:整数:在%与d之间加入一个整数m表示对应的输入项最多读入m位的数据* 在%与d之间加入一个*表示对应输入数据不采集按照语句在程序中书写的先后次序逐条执行变量:喜新厌旧新的不来旧的不去变量刚刚定以后没有初始值【初始值是一个不确定的随机数】第四章选择结构关系运算:运算符号: > < >= <= == !=x=y 让x的值等于y【让x与y的值相等,将y的值赋值于x】x==y 判断x和y相等是否成立优先级:> < >= <= 高于== !=表达式的结果:关系成立结果为1,关系不成立结果为05>2 结果是1 3+2>4+7 结果是07==3+4 结果是13+7+8→10+8 结果是: 187>4>3→1>3 结果是05>8>4结果是0x>y>4结果是0在关系运算时连续两个关系运算符在一起时一定要小心!!!x的绝对值大于8,用不等式表示x<-8 或x>8x的绝对值小于8,用不等式表示-8<x<8 -8<x 且x<8逻辑运算:逻辑运算的运算符:&& || !&& 逻辑与and|| 逻辑或or! 逻辑非not!高于&& 高于||表达式逻辑与: A && B 当第一个运算量A不等于0【真】,并且第二个运算量B也不等于0【真】,则结果为1,否则结果为0逻辑或: A || B 当第一个运算量A不等于0【真】,或者第二个运算量B不等于0【真】,则结果为1,否则结果为0逻辑非:!A 当运算量A不等于0【真】,则表达式结果为0,当运算量A 表达式等于0【假】则表达式结果为1int x, y, z;x=7;y=8;z=(x>y+2 && y<x+2 )运行后z的值是:短路现象:对于逻辑与运算,当第一个运算量A等于0时,则不对第二个运算量进行计算,直接得出最终结果是0对于逻辑或运算,当第一个运算量A不等于0时,则不对第二个运算量进行计算,直接得出最终结果是1当第一个运算量x-=3结果是0【假】,则不对第二个运算量y-=3计算【不论y-=3结果是1还是0最终表达式【z=((x-=3)&&(y-=3))】的结果都是0选择结构:根据某一个条件,在二者之间选择其中一个if else语句格式:if( 值)值不等于0时执行的语句;else值等于0时执行的语句;注意:①值的位置上可以是常量、变量、表达式、函数等只要最终有一个值②if后面和else后面都没有分号③else后面再不用写条件④执行的语句【值不等于0和值等于0是执行的语句】超过一条必须用{}括起来【默认条件成立或不成立时执行的语句都只有一条】⑤可以只有if而没有else部分【当值等于0时没有语句可以执行,则将else以及下面的语句都可以省略】满足条件时执行的语句超过一条则必须用{}括起来整个if else语句在语法上可以当做一条语句出现【所有可以出现语句的位置,都可以出现if else结构】if( 条件1 )if( 条件2 )语句11;else语句12;elseif( 条件3 )语句31;else语句32;if else嵌套时一定要注意的是:else和if的搭配关系搭配原则:就近原则【else总是和距离它最近的且没有和其他else搭配的if搭配】与书写格式无关有以下程序:#include <stdio.h> main(){ int a=2, b=-1, c=2;if( a<b )if( b<0 ) c=0;else c+=1;printf(“%d\n”, c); }程序的输出结果是:2 有以下程序:#include <stdio.h>main(){ int a=2, b=-1, c=2;if( a<b );if( b<0 ) c=0;else c+=1;printf(“%d\n”, c);}程序的输出结果是:0有以下程序:#include <stdio.h>main(){ int a=2, b=-1, c=2;if( a<b ){ if( b<0 ) c=0;}else c+=1;printf(“%d\n”, c);}程序的输出结果是:3运算符号:?:唯一的三目运算符号优先级比较低:倒数第三结合性:从右到左两个条件运算在一起时先算右边的表达式的值:A?B:C 当A不等于0【真】B的值就是表达式的结果;当A等于0【假】C的值就是表达式的结果比较简单的选择一般也用条件运算格式:switch( 值){ case 常量1:语句组1;case 常量2:语句组2;case 常量3:语句组3;case 常量4:语句组4;……case 常量n:语句组n;default : 语句组n+1;}注意:①值所在的位置上可以是常量、变量、表达式等等②case与常量之间必须隔开;③常量的位置上只能写常量不能写表达式或变量;④执行过程:用值依次和各个常量进行比较,若等于某个常量则从该常量后面的语句开始执行,如果和所有的常量都不相等则从default后面的语句组开始向下执行,default后面如果没有语句则可以省略break 提前结束正在执行的switch语句,执行下面的内容选择结构例题:可以用if else语句,也可以用条件运算,还可以用上switch case 结构/*输入一个日期,判断该日期是否合法*/。