您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 广告经营 > 第3章 C语言的基本语句和程序结构设计
李唐山tangshan.li@cn.necel.com日电电子(中国)有限公司NECElectronics(China)Co.LtdNEC第3章C语言的基本语句和程序结构设计NECC语言程序设计-第3章C语言的基本语句和程序结构设计2目录基本语句关系运算符和关系表达式逻辑运算符和逻辑表达式分支程序设计循环程序设计NECC语言程序设计-第3章C语言的基本语句和程序结构设计3基本语句(Statements)控制语句表达式语句函数调用语句空语句复合语句NECC语言程序设计-第3章C语言的基本语句和程序结构设计4控制语句完成一定的控制功能C语言的9种控制语句if-elsewhilecontinueswitchreturnfordo-whilebreakgotoNECC语言程序设计-第3章C语言的基本语句和程序结构设计5表达式语句形式expression;表达式最后加一个分号举例a=3;/*赋值语句*/z=x*y,z++;/*一条语句*/x-y;/*语句,但无实际意义*/i++;/*语句*/i++/*表达式,不是语句*/NECC语言程序设计-第3章C语言的基本语句和程序结构设计6函数调用语句形式function(arguments);函数调用后加一个分号函数调用语句可以看作一种表达式语句举例printf(%d,i);getchar();myfun(a,b);NECC语言程序设计-第3章C语言的基本语句和程序结构设计7空语句形式;只有一个分号用法作为转向点作为循环语句中的循环体举例for(i=1;i=100;i++)sum+=i;for(i=1;i=100;sum+=i++);NECC语言程序设计-第3章C语言的基本语句和程序结构设计8复合语句(块语句,Block)形式{statements}用{}把若干条语句组合成为一个复合语句{}内可以没有任何语句,可以只有一条语句,也可以有多条语句可以包括复合语句、空语句、控制语句等用法一个复合语句当作一条语句来使用需要把多条语句放在只允许一条语句的场合NECC语言程序设计-第3章C语言的基本语句和程序结构设计9复合语句举例intx,y,t;if(xy){/*复合语句开始*/t=x;x=y;y=t;}/*复合语句结束*/printf(%d,%d,x,y);NECC语言程序设计-第3章C语言的基本语句和程序结构设计10C语言语句使用说明除复合语句外,语句都以分号;作为结束语句书写格式比较自由,确定语句结束的唯一标准是分号(;)注意区分表达式和表达式语句,它们的用法不同举例,if((a=b)0)t=a;错例,if((a=b;)0)t=a;举例,if(xy){x--;y++;}错例,if(xy){x--;y++}NECC语言程序设计-第3章C语言的基本语句和程序结构设计11关系运算符(RelationalOperators)运算符名称举例优先级(算术运算符)小于i100高=小于等于a=MAX大于f3.14=大于等于c='a'==等于a==b低!=不等于x!=0(赋值运算符)NECC语言程序设计-第3章C语言的基本语句和程序结构设计12关系表达式用关系运算符将两个表达式连接起来a+bc+d,(a=3)x注意区分等于(==)和赋值运算符(=)a=b,a==b关系表达式的值是逻辑值—“真”或“假”C语言用整型表示逻辑值,“真”—1、“假”—0举例,a=3,b=2,c=1;d=ab;/*d=1*/f=abc;/*f=(ab)c=0*/NECC语言程序设计-第3章C语言的基本语句和程序结构设计13逻辑运算符(LogicalOperators)运算符名称举例优先级!逻辑非!(ab)(算术运算符)(关系运算符)&&逻辑与(xy)&&(yz)||逻辑或(x3)||(x-3)(赋值运算符)NECC语言程序设计-第3章C语言的基本语句和程序结构设计14逻辑运算规则!a若a为“真”,!a为“假”若a为“假”,!a为“真”a&&b若a、b都为“真”,则a&&b为“真”若a、b不全为“真”,则a&&b为“假”a||b若a、b都为“假”,则a||b为“假”若a、b不全为“假”,则a||b为“真”NECC语言程序设计-第3章C语言的基本语句和程序结构设计15逻辑表达式逻辑运算符把逻辑量或表达式连接起来(y%4==0&&y%100!=0)||(y%400==0)逻辑表达式的值是逻辑值用整型表示逻辑值“真”1,“假”0把一个表达式的值作为逻辑值使用非零“真”,零“假”这里的非零与零,包括整型、浮点型等NECC语言程序设计-第3章C语言的基本语句和程序结构设计16逻辑表达式举例inti=3;charc='a';floatf=0.0;i==0;!i;/*两者逻辑值相同*/i!=0;i;/*两者逻辑值相同*/c&&!f;/*“真”*/i&&1.23||f;/*“真”*/c&&4&&f;/*“假”*/NECC语言程序设计-第3章C语言的基本语句和程序结构设计17逻辑表达式求值特点逻辑表达式中的运算符,只有会影响表达式求值时,才会执行a&&b&&c若a为“假”,则不再判断b和ca||b||c若a为“真”,则不再判断b和c举例,(m=ab)&&(n=cd)DeMorgan定理!(a&&b)(!a)||(!b)!(a||b)(!a)&&(!b)!((a&&b)||c)(!a||!b)&&!cNECC语言程序设计-第3章C语言的基本语句和程序结构设计18分支程序设计if语句条件运算符?:switch语句分支程序设计举例NECC语言程序设计-第3章C语言的基本语句和程序结构设计19if语句的三种形式①if(expression)statement②if(expression)statement1elsestatement2③if(expression1)statement1elseif(expression2)statement2elseif(expression3)statement3......elseif(expressionn-1)statementn-1elsestatementnNECC语言程序设计-第3章C语言的基本语句和程序结构设计20if语句的说明无论哪种形式,一条if语句,包括else或elseif子句,只算作一条语句if语句中的子句,可以是一条任何类型的语句,包括表达式语句、空语句、复合语句、控制语句子句末尾的分号,只表示子句的结束,不表示if语句结束注意复合语句末尾没有分号else子句都是可以没有的NECC语言程序设计-第3章C语言的基本语句和程序结构设计21if语句举例if(xy)/*y为x和y的较大值*/y=x;if(xy)/*d为x和y之间的距离*/d=x-y;elsed=y-x;if(xy);/*合法,但没有实际操作*/NECC语言程序设计-第3章C语言的基本语句和程序结构设计22if语句的嵌套if语句的各子句都可以又是if语句应注意if-else的配对关系else总是与其上面最近的if配对可以用{}明确if-else的配对关系if(exp1)if(exp1)if(exp2){if(exp2)statement1statement1}elseelsestatement2statement2NECC语言程序设计-第3章C语言的基本语句和程序结构设计23条件运算符(ConditionalOperator)条件运算符?:条件表达式exp1?exp2:exp3先判断exp1若exp1为“真”,表达式的值为exp2的值若exp1为“假”,表达式的值为exp3的值举例,max=(xy)?x:y;同:if(xy)max=x;elsemax=y;NECC语言程序设计-第3章C语言的基本语句和程序结构设计24switch语句switch(expression){caseconst-exp:statementscaseconst-exp:statements......caseconst-exp:statementsdefault:statements}NECC语言程序设计-第3章C语言的基本语句和程序结构设计25switch语句的说明先求switch后表达式的值,若此值与某个case后的常量表达式的值相等,则跳转到这个case后的语句;若没有相等的常量表达式,则跳转到default跳转后程序一直往下执行,不会因为遇到另一个case而直接跳出switch根据实际需要,可以没有default若需要跳出switch,可使用break语句case和default的顺序不影响执行结果NECC语言程序设计-第3章C语言的基本语句和程序结构设计26switch语句举例(1)switch(day){/*打印星期的缩写*/case1:printf(Mon.\n);break;case2:printf(Tue.\n);break;case3:printf(Wed.\n);break;case4:printf(Thu.\n);break;case5:printf(Fri.\n);break;case6:printf(Sat.\n);break;default:printf(Sun.\n);}NECC语言程序设计-第3章C语言的基本语句和程序结构设计27switch语句举例(2)switch(deptno){/*根据系编号打印学院*/case15:case16:case17:printf(商学院\n);break;case18:case25:printf(人文学院\n);break;case7:printf(地空学院\n);break;default:printf(其他学院\n);}NECC语言程序设计-第3章C语言的基本语句和程序结构设计28分支程序设计举例求一元二次方程的根当a=0时,不是一元二次方程当a≠0时,方程的根为•当b2-4ac≥0,方程有两个实根•当b2-4ac0,方程有两个共轭复根02cbxaxaacbabx24)2/(2NECC语言程序设计-第3章C语言的基本语句和程序结构设计29例1:求一元二次方程的根真a=0假真真假假b2-4ac=0b2-4ac0输出两个实根x1,x2输出两个复根p+qi,p-qiaacbbx2421aacbbx2422计算复根的实部和虚部实部p=-b/2a虚部aacbq2)4(2输出两个相等的实根-b/2a输出提示信息|不是二次方程NECC语言程序设计-第3章C语言的基本语句和程序结构设计30循环程序设计while语句do-while语句for语句break和continue语句循环程序设计举例NECC语言程序设计-第3章C语言的基本语句和程序结构设计31while语句while(expression)statementwhile型循环先判断表达式,后执行语句一般情况下,循环中应含有能使循环语句结束的操作statementabexpr.真假NECC语言程序设计-第3章C语言的基本语句和程序结构设计32while语句举例inti,sum;i=1;sum=0;while(i=100){sum+=i;/*循环体缩进书写*/i++;/*使循环趋向结束*/}1001iisumNECC语言程序设计-第3章C语言的基本语句和程序结构设计33do-while语句dostatementwhile(expression);类似于Until型循环先执行一次循环体语句,后判断表达式statementabexpr.真假NECC语言程序设计-第3章C语言的基本语句和程序结构设计34do-while语句举例inti,sum;i=1;sum=0;do{s
本文标题:第3章 C语言的基本语句和程序结构设计
链接地址:https://www.777doc.com/doc-3609354 .html