为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

二级C语言

2014-03-14 50页 ppt 4MB 31阅读

用户头像

is_045504

暂无简介

举报
二级C语言null全国计算机等级考试全国计算机等级考试二级C语言第1章 简单的C语言介绍第1章 简单的C语言介绍1.1 程序和程序设计1.2 简单的C语言程序示例1.3 结构化程序设计和模块化结构1.4 熟悉Visual C++1.1 程序和程序设计1.1 程序和程序设计程序 什么是程序? 高级语言、低级语言、机器语言。程序设计的步骤: 确定数据结构。 确定算法。 确定计算机语言,并编写代码(编程)。 调试。 整理并写出文档资料。1.1 程序和程序设计1.1 程序和程序设计以下叙述中错误的是:_____(2011...
二级C语言
null全国计算机等级考试全国计算机等级考试二级C语言第1章 简单的C语言介绍第1章 简单的C语言介绍1.1 程序和程序设计1.2 简单的C语言程序示例1.3 结构化程序设计和模块化结构1.4 熟悉Visual C++1.1 程序和程序设计1.1 程序和程序设计程序 什么是程序? 高级语言、低级语言、机器语言。程序设计的步骤: 确定数据结构。 确定算法。 确定计算机语言,并编写代码(编程)。 调试。 整理并写出文档资料。1.1 程序和程序设计1.1 程序和程序设计以下叙述中错误的是:_____(2011.03) A、C语言的可执行程序是由一些列的机器指令构成的。 B、用C语言编写的源程序不能直接在计算机上执行。 C、通过编译得到的二进制目标程序需要连接才可以运行。 D、在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件。以下关于简单程序设计的步骤和程序的说法正确的是____(2010.09) A、确定算法后,整理并写出文档,最后进行编码和上机调试。 B、首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档。 C、先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档。 D、先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构。 。1.2 简单的C语言程序设计示例1.2 简单的C语言程序设计示例C语言的一个简单示例 #include void main( ) { printf(“This is a C program.\n”); } 示例分析。 另一个示例:求两个数的和。小结:C语言程序的结构特征 1.2 简单的C语言程序设计示例1.2 简单的C语言程序设计示例练习:找出下面程序中的错误。 include stdio.h void main( ) { int s a:=56; printf(There are s weeks in a year.);}1.3 结构化程序设计和模块化程序设计1.3 结构化程序设计和模块化程序设计程序设计的三种基本结构 顺序结构; 选择结构; 循环结构;模块化结构 在程序设计时,程序设计人员分别完成一个或多个小模块,人们称这样的程序设计方法为“模块化”。 模块化可以大大提高程序编写的效率。1.3 结构化程序设计和模块化程序设计1.3 结构化程序设计和模块化程序设计结构化程序所要求的基本结构不包括:_____(2011.03) A、顺序结构。 B、goto跳转。 C、选择(分支)结构。 D、重复(循环)结构。以下关于结构化程序设计中叙述正确的是____(2010.09) A、一个结构化程序必须同时由顺序、分支、循环三种结构组成。 B、结构化程序中使用goto语句会很便捷。 C、在C语言中,程序的模块化是利用函数实现的。 D、由三种基本结构构成的程序只能解决小规模的问题。第2章 数据类型、运算符和达式第2章 数据类型、运算符和表达式2.1 C语言的数据类型2.2 标识符2.3 变量和常量2.4 整型数据2.6 字符型数据2.7 算术运算符和算术表达式2.9 变量赋初值2.1 C语言的数据类型2.1 C语言的数据类型数据类型有几种?2.2 标识符2.2 标识符用于标识名字的有效字符序列称为标识符。命名规则: 只能由字符、数字和下划线3中字符组成。 第一个字符必须是字符或下划线。 区分大小写字母。 C语言的关键字是一种特殊的标识符,具有特殊的含义,不能再做变量名、常量名、或函数名等。 预定义标识符:C语言的库函数名和头文件中定义的标识符。用于定义的标识符应注意避免与预定义标识符重名。(但是否是禁止的呢?)2.2 标识符2.2 标识符C语言的关键字auto、break、case、char、const、continue、default、do、double、else、enum、extern、float、for、goto、if、int、long、register、return、short、signed、sizeof、static、struct、switch、typedef、union、unsigned、void、volatile、while、asm、near、pascal2.3 变量和常量2.3 变量和常量常量什么是常量? 整型常量、实型常量、字符常量、字符串常量。 利用#define定义常量。变量什么是变量? 变量名、变量值和存储单元。 变量名的命名规则。 “先定义、后使用”。 每一个变量名都应该有一个确定的类型。2.4 整型数据2.4 整型数据整型常量十进制数 八进制数 十六进制数 在C语言中,只有十进制数可以是负数。整型变量整数在内存中的存储形式:位、字节。 数的表示形式:原码和补码 整型变量:基本整型、短整型和长整型。 无符号数和有符号数。 整型数据所占用的字节数和表示的数的范围。2.4 整型数据2.4 整型数据练习有以下定义和语句: #include main() { int s, A=10; s=sizeof(A); printf("%d\n",s); } 在VC6平台上编辑运行,程序运行后输出的结果是:______。2.5 浮点数2.5 浮点数什么是浮点数?浮点数:即平常所说的实数。浮点数的数值带有小数点。 浮点数的两种表示方法:小数形式和指数形式。浮点数变量有3种不同的浮点数变量:float、double、long double。 如何知道这三种变量在计算机中所占的字节数?2.5 浮点数2.5 浮点数补充:sizeof使用sizeof运算符可以确定给定的类型占据多少字节。 使用:sizeof(类型); 返回值:返回类型所占的字节数,是size_t类型。 size_t是无符号整数的一个别名。 另外一种使用形式:sizeof 变量名。 使用示例。2.5 浮点数2.5 浮点数浮点数变量的声明与整型变量类似。 一个类型为float的常量,需要在数值的末尾添加一个f,以区别double类型。float Radius; double Biggest; Radius=2.5f; Biggest=123e30;任何数,只要是小数,就是double类型,除非加了f,使他变为float类型。 要声明long double类型的变量,需要在数字末尾天津一个大写L或小写l。long double Huge=1234567.89123L;2.5 浮点数2.5 浮点数程序示例:#include void main() { float x=10.0f; float y=4.0f; float z=0.0f; z=x+y; printf("x= %f\ty=%f\tz=%f\n",x,y,z); }考虑: 1) pringf函数中的%f的作用是什么? 2)如果将%f替换为%d,程序的输出还正确吗?结论:格式指定符必须对应输出的值的类型。2.5 浮点数2.5 浮点数程序练习:利用输入的直径计算一个圆桌的周长和面积。提示: 1)计算中的数值应采用什么类型? 2)数据是如何输入的? 3)数据是如何输出的?2.6 字符型数据2.6 字符型数据字符常量1)用单引号(‘’)括起来的一个字符。 2)以斜杠(\)开头的转义字符。字符变量1)可以存储单个字符。 2)数据类型是char型。char letter; char digit; char exc; letter='A'; digit='9'; exc='!'注意:也可以使用转义字符指定字符常量。2.6 字符型数据2.6 字符型数据字符变量3)可以用整数值初始化char类型的变量。 4)char类型的变量具有双重性:可以把它解释为一个字符,也可以解释为一个整数。char letter; char digit; letter=74 digit='9'+3;2.6 字符型数据2.6 字符型数据字符的输入和输出字符的输入: 使用scanf( )函数和格式指定符%c,可以从键盘上读取单个字符,并将它存储在char类型的变量中。char ch; scanf("%c",&ch);字符的输出: 使用printf( )函数和格式指定符%c,将单个字符输出到屏幕上。char ch='A'; printff("%c", ch);2.6 字符型数据2.6 字符型数据程序示例:example31)读程序,分析程序的输出是什么? 2)体会字符和整数之间的关系。#include void main() { char first = 'T'; char second = 20; printf("\nThe first example as a letter look like this: %c", first); printf("\nThe first example as a number look like this: %d", first); printf("\nThe first example as a letter look like this: %c", second); printf("\nThe first example as a number look like this: %d\n", second); }2.7 算术运算符和算术表达式2.7 算术运算符和算术表达式基本的算术运算在C语言中,算术语句的格式如下: 变量名 = 算术表达式; 1)式子中的“=”表示赋值,而不是数学意义上的两边相等。 2)先计算等号右边的表达式,然后将结果存到等号左边的变量中。2.7 算术运算符和算术表达式2.7 算术运算符和算术表达式基本的算术运算符1)两个整数相除,结果为整数。 2)如果除数和被除数中有一个负值,则输入的方向是不确定的。 3)如果参加运算的两个数中有一个数为实数,则结果是double类型。因为所有的实数都按double类型进行计算。2.7 算术运算符和算术表达式2.7 算术运算符和算术表达式关于除法任务(example4) 假设你有45块饼干,要平均分给7个孩子,计算每个孩子可得到几块饼干,分完后剩下几块饼干。1)注意/和%的含义; 2)二者相除,如果操作数不同号,则结果是正数还是负数?如果操作数同号,结果是正数还是负数? 3)取模运算时,其结果总是和左操作数的符号相同。2.7 算术运算符和算术表达式2.7 算术运算符和算术表达式一元运算符1)只需要一个操作数。 2)常见的两个一元运算符:+和-。2.7 算术运算符和算术表达式2.7 算术运算符和算术表达式运算符的优先级()、+(正)、-(负)、*、/、%、+(加)、-(减)的优先级顺序是什么?运算符的结合性1)一元运算符的结合性是从右到左。 2)其余运算符的结合性是从左到右。2.7 算术运算符和算术表达式2.7 算术运算符和算术表达式程序示例(example5)#include void main() { int top, score; top = score = -(2+5)*6+(4+3*(2+3)); printf("top = %d\n", top); }2.7 算术运算符和算术表达式2.7 算术运算符和算术表达式强制类型转换表达式利用强制类型转换将一个表达式转换成所需类型。 格式: (类型名)(表达式); 1)(类型名)为强制类型转换运算符。 2)转换是根据认为要求进行的。2.7 算术运算符和算术表达式2.7 算术运算符和算术表达式练习:1)表达式: (int)((double)9/2)-9%2的值是_____(2009.09) A、0 B、3 C、4 D、5 2)以下程序运行后的输出结果是_______(2011.03)#include void main() { int a; a=(int)((double)(3/2)+0.5+(int)1.99*2); printf("%d\n",a); }2.7 算术运算符和算术表达式2.7 算术运算符和算术表达式练习:3)若有语句double x=17; int y; 当执行y=(int)(x/5)%2;之后,y的值是_______(2009.09).2.8 赋值运算符与赋值表达式2.8 赋值运算符与赋值表达式赋值运算符1)在C语言里,“=”不表示相等,而是一个赋值运算符。 2)赋值表达式: 变量 = 表达式; 3)左边必须为变量,右边既可以是常量、变量,也可以是函数调用或表达式。2.8 赋值运算符与赋值表达式2.8 赋值运算符与赋值表达式程序示例:#include void main() { int x, y, z; x=y=z=60; printf("x=%d\ty=%d\tz=%d\n",x,y,z); }2.8 赋值运算符与赋值表达式2.8 赋值运算符与赋值表达式复合的赋值运算符1)在“=”之前加上其他运算符,可以构成复合的赋值运算符。 2)常见的复合赋值运算符: +=、-=、*=、/=、%=、<<=、>>=、&=、^=、|= 3)作用①简化成;②提高编译效率。2.8 赋值运算符与赋值表达式2.8 赋值运算符与赋值表达式程序示例:example06#include void main() { int x; x=0; x+=5; printf("%d\n",x); x*=2; printf("%d\n",x); }2.8 赋值运算符与赋值表达式2.8 赋值运算符与赋值表达式练习:1)如果已有变量a,其值为3,计算表达式a+=a-=a+a的值。① 先计算a+a,该表达式的值为6,此时a的值为多少?② 在计算a-=6,此时a的值为多少?③ 最后计算+=运算,此时a的值为多少?注意:赋值运算符与复合的赋值运算符的优先级相同,且运算方向自右向左。2.8 赋值运算符与赋值表达式2.8 赋值运算符与赋值表达式练习:2)若有定义语句:int a=3, b=2, c=1;,以下选项中错误的赋值表达式是______(2011.03) A、a=(b=4)=3; B、a=b=c+1; C、a=(b=4)+c; D、a=1+(b=c=4);3)表达式a+=a-=a=9的值是_________(2010.09) 4)若有定义语句:int x=10; 则表达式x-=x+x的值为:_______(2009.09)2.8 赋值运算符与赋值表达式2.8 赋值运算符与赋值表达式赋值运算中的类型转换1)若赋值右侧表达式类型与左侧表达式类型完全一致时,赋值操作才能进行。 2)若赋值运算符两侧类型不同,在赋值是系统要自动进行类型转换。转换原则是:将赋值号右边的类型转换成左边变量的类型,然后再进行赋值。2.9 变量赋初值2.9 变量赋初值赋值运算中的类型转换1)定义的时候赋初值。 2)被定义变量的一部分赋初值。2.10 逗号运算符和逗号表达式2.10 逗号运算符和逗号表达式逗号运算符:顺序求值运算符用“,”连接起来的式子称为逗号表达式。一般形式为: 表达式1,表达式2,表达式3,……,表达式n第3章 自加自减运算符、关系表达式、逻辑表达式、位运算第3章 自加自减运算符、关系表达式、逻辑表达式、位运算3.1 自加、自减运算符3.2 关系运算符和关系表达式3.3 逻辑运算符和逻辑表达式3.4 位运算符和位运算3.1 自加、自减运算符3.1 自加、自减运算符自增运算符:++1)将操作数的值加1。 2)两种形式:前置和后置。 3)两种形式的区别在于值的增加这一动作发生的准确时间是不同的。程序示例:example8++i:先将i的值增加1,然后再参与其他运算。 i++:先参与其他运算,再是i的值增加1。类比学习自减运算符:--。3.1 自加、自减运算符3.1 自加、自减运算符注意:1)二者只能用于变量,不能用于常量和表达式。 2)结合原则是自右向左。 3)常用在循环语句中,使循环变量自动加1,也用于指针变量,使指针指向下一个地址。3.1 自加、自减运算符3.1 自加、自减运算符练习:1)若有定义语句:int a=5;,则表达式a++的值是______(2009.09) 2)假设所有的变量都为整型,则表达式(a=2,b=a++, b++, a+b)的值为________。 3)已知整型数据a=3,b=-4,c=5,则表达式a++-b+(++c)的值为________。3.2 关系运算符和关系表达式3.2 关系运算符和关系表达式什么是关系运算?1)实际上就是比较运算。 2)如果关系满足,则称表达式的值为真。(真用什么值表示?) 3)如果关系不满足,则称表达式的值为假。(假用什么值表示?) 4)关系表达式:用关系运算符将两个表达式连接成的式子。练习: 设x为逻辑表达式,请写出一个关系表达式______,用以判断x为3的倍数时,关系表达式的值为真。(2010.03) 考虑:如果同时为3的倍数和7的倍数,则表达式该如何写?3.3 逻辑运算符与逻辑表达式3.3 逻辑运算符与逻辑表达式逻辑运算符与:&&1)一个二元运算符,合并两个值为“真”或“假”的表达式。 2)当两个表达式的值都为“真”时,与运算的结果才为真。 3)练习:3.3 逻辑运算符与逻辑表达式3.3 逻辑运算符与逻辑表达式逻辑运算符或: ||1)只要有一个条件成立,结果就为真。 2)练习:3.3 逻辑运算符与逻辑表达式3.3 逻辑运算符与逻辑表达式逻辑运算符非: !1)一元运算符。 2)翻转表达式的值。逻辑运算符的优先级1)优先级从高到低:非、与、或。 2)由高到低:非、算术运算、关系运算、或、非、赋值运算编程练习: 编写代码,实现从键盘上输入一个字符,如果为大写字母,就转换成对应的小写字母并输出。否则就直接输出。3.4 位运算符与位运算3.4 位运算符与位运算位运算符1)~:取反运算符。对一个二进制数按位取反。 2)<<:左移运算符;>>右移运算符。 3)&:按位与。 4)^:按位异或。 5)|:按位或。3.4 位运算符与位运算3.4 位运算符与位运算位取反运算符:~1)二进制位按位取反。 2)单目运算符,优先级比双目运算符和三目运算符都高。位与运算符:&1)按位进行与运算。 2)清零、取某个数中的某些位、保留某个数中的某些位。3.4 位运算符与位运算3.4 位运算符与位运算位或运算符:|1)二进制位按位进行或运算。 2)可用于将某些位置1.位异或运算符:^1)按位进行异或运算。3.4 位运算符与位运算3.4 位运算符与位运算左移运算符:<<1)将一个数的二进制位左移若干位。 2)高位左移溢出,舍弃不用。 3)对有个数左移1位,相当于乘以2,这句话对不对?右移运算符:>>1)将一个数的二进制位右移若干位。 2)移出的位舍弃。 3)对于无符号数的高位补0。 4)有符号数的,正数高位补0,负数高位补0还是1,由不同的编译系统决定。3.4 位运算符与位运算3.4 位运算符与位运算练习:1)有以下程序:#include void main() { unsigned char a=8,c; c=a>>3; printf("%d\n",c); } 程序运行后的输出结果是_________。(2011.03)3.4 位运算符与位运算3.4 位运算符与位运算练习:2)有以下程序:#include void main() { short c=124; c=________; printf("%d\n",c); } 要使程序的运行结果为248,划线处可填入的语句是:(2010.09)A、>>2 B、|248 C、&0248 D、<<13.4 位运算符与位运算3.4 位运算符与位运算练习:3)有以下程序:#include void main() { int a=2,b=2, c=2; printf("%d\n",a/b&c); } 程序运行的结果是:(2010.03)A、0 B、1 C、2 D、33.4 位运算符与位运算3.4 位运算符与位运算练习:4)有以下程序:#include void main() { int r=8; printf("%d\n",r>>1); } 程序运行的结果是:(2009.09)A、16 B、8 C、4 D、23.4 位运算符与位运算3.4 位运算符与位运算练习:5)有以下程序:#include void main() { int a=5,b=1,t; t=(a<<2)|b; printf("%d\n",t); } 程序运行的结果是:(2009.03)A、21 B、11 C、6 D、1第4章 数据输入输出、顺序程序举例第4章 数据输入输出、顺序程序举例4.1 格式输出与输入4.2 字符数据的输出与输入4.3 顺序程序举例考情回顾考情回顾本章题量和分支比较不稳定,大约在1~4道选择题和1~2道填空题,约占试卷分值的3%~6%。考试的重点: 输入输出函数的用法;4.1 格式输出与输入4.1 格式输出与输入printf( )函数功能: 将数据输出到屏幕上或者指定的输出设备上。调用格式: printf(格式控制,输出表列); 格式控制:用双引号括起来的字符串,也称“格式控制字符串”。包括格式说明(%d、%f、%c等)和普通字符(原样输出的字符)。 格式说明的作用:将输出数据转换为指定的格式输出。 输出列表:需要输出的一些数据,可以是表达式。(此项非必须)4.1 格式输出与输入4.1 格式输出与输入printf( )函数:输出示例:请写出能输出以上两个图形的C程序。4.1 格式输出与输入4.1 格式输出与输入printf( )函数:常用格式说明对不同类型的数据用不同的格式字符。 每个格式说明符必须以%开头,以一个格式字符作为结束。 格式说明符见P43,表4-1。补充: %p:输出变量的内存地址。 %%:输出1个%号。4.1 格式输出与输入4.1 格式输出与输入printf( )函数:常用格式说明 注意各格式说明符使用。 格式说明应与后面的输出表列中的类型一致。 注意理解%p.4.1 格式输出与输入4.1 格式输出与输入printf( )函数:常用格式说明 %号的输出。 每一个格式转换说明符都对应一个输出列表项。4.1 格式输出与输入4.1 格式输出与输入printf( )函数:格式说明修饰符4.1 格式输出与输入4.1 格式输出与输入printf( )函数:几个特殊的格式%-10d、%10d、%5.3d、%10.3f各自的意义是什么?4.1 格式输出与输入4.1 格式输出与输入printf( )函数:几个特殊的格式分析上面两段程序的输出结果。4.1 格式输出与输入4.1 格式输出与输入printf( )函数:返回值C函数一般都有一个返回值。 printf( )的返回值是它所打印的字符的数目。 字符的数目包括所有可见字符、空格及不可见的换行符。4.1 格式输出与输入4.1 格式输出与输入printf( )函数:练习1)以下程序运行后的输出结果是:_______(2011.03)2)以下程序运行后的输出结果是:_______(2010.09)4.1 格式输出与输入4.1 格式输出与输入printf( )函数:练习3)以下程序的功能是:将值为三位数的变量x的数值按照 个位、十位、百位的顺序拆分输出,请填空(2010.03)4.1 格式输出与输入4.1 格式输出与输入printf( )函数:练习4)以下程序运行后的输出结果是:_______(2009.09)4.1 格式输出与输入4.1 格式输出与输入printf( )函数:练习5)以下程序运行后的输出结果是:_______(2009.09)4.1 格式输出与输入4.1 格式输出与输入printf( )函数:练习6)以下程序段的输出结果是_________(2009.03)4.1 格式输出与输入4.1 格式输出与输入scanf( )函数功能: C语言提供的标准输入函数,其作用是从终端键盘上读入数据调用格式: scanf(格式控制,输入项地址序列); 格式控制:用双引号括起来的字符串,也成“格式控制字符串”。用于指定输入时的数据格式转换,即格式转换说明,由%开始,气候是格式字符。 输入项地址列表:由若干个地址组成的表列,可以是变量地址,或字符串的首地址。 常见的格式说明符见表4-24.1 格式输出与输入4.1 格式输出与输入知识补充:地址运算符&后跟一个变量名时,&给出该变量的地址。举例: &num表示变量num的地址。4.1 格式输出与输入4.1 格式输出与输入scanf( )注意: 数据输入时需要注意的问题。 &a和a的区别。4.1 格式输出与输入4.1 格式输出与输入scanf( ):指定输入数据所占的宽度可以再格式字符前加一个正整数指定输入数据所占的宽度。 除非数字是“粘连”在一起的,否则不提倡指定输入数据所占的宽度。正常编程时尽量不要使用。但是在计算机等级考试中常有出现。4.1 格式输出与输入4.1 格式输出与输入scanf( ):*修饰符如果在%后有一个*附加修饰符,表示跳过它指定的输入项。printf函数也有*修饰符,你知道它的意思吗?4.1 格式输出与输入4.1 格式输出与输入scanf( ):输入数据时不能规定精度。scanf(“%3.2f”,&x);是不合法的。4.1 格式输出与输入4.1 格式输出与输入scanf( ):练习1)在如下的程序段中,如果要把35和46分别赋给a和b,则正确的输入方式是:__________。4.1 格式输出与输入4.1 格式输出与输入scanf( ):练习2)有以下程序(说明:字符0的ASCII码值为48),若程序运行时从键盘输入48<回车>,则输出结果为:______(2011.03)4.1 格式输出与输入4.1 格式输出与输入scanf( ):练习3)有以下程序:程序运行时输入:12345678,运行后的输出结果是_______。(2010.09)4.2 字符数据的输出与输入4.2 字符数据的输出与输入putchar( )函数功能: 将单个字符输出到屏幕上。调用格式: putchar(ch);输出字符变量ch的值。 ch的可以是字符变量、字符常量、某个字符对应的ASCII码值、表达式、整型变量或控制字符。4.2 字符数据的输出与输入4.2 字符数据的输出与输入putchar( )函数:示例注意ch的类型。4.2 字符数据的输出与输入4.2 字符数据的输出与输入getchar( )函数功能: 从终端输入设备输入一个字符。调用格式: getchar( );getchar函数不需要参数。 把getchar函数得到的字符代码赋给一个字符型或整型变量。 把getchar函数得到的字符代码直接作为表达式的一部分。4.2 字符数据的输出与输入4.2 字符数据的输出与输入getchar( )函数:练习1)有以下程序:程序运行后的输出结果是_______。(2011.03)4.3 顺序结构程序设计举例4.3 顺序结构程序设计举例#include void main() { char c1,c2; c1=getchar(); printf("%c, %d\n",c1,c1); c2=c1+32; printf("%c, %d\n",c2,c2); }上机题目:上机题目总结:1、一个C程序只能有一个main函数。在使用VC6.0进行编程时,应注意,一个工作空间中也只能有一个main函数。 2、C程序中的所有的标点符号都是英文状态下的。 3、定义变量的形式。上机题目总结:上机题目总结:1、一个C程序只能有一个main函数。在使用VC6.0进行编程时,应注意,一个工作空间中也只能有一个main函数。 2、C程序中的所有的标点符号都是英文状态下的。 3、定义变量的形式。 4、以下程序的输出。#include void main() { char ch=322; printf("%c\n",ch); }第5章 选择结构程序设计第5章 选择结构程序设计5.1 if语句5.2 switch语句5.3 goto语句考情回顾考情回顾本章题量和分值比较不稳定,大约在3~4道选择题和1~2道填空题,约占试卷分值的3%~9%。其中2011年3月份的考试中,出现4道选择题(共5分)和2道填空题(共4分)。考试的重点: if语句的用法和规则; 嵌套if语句的用法; Switch语句的用法和规则; 条件表达式构成的选择结构;5.1 if语句5.1 if语句判断过程:生活中的每一天都在判断中度过。情景1:早晨睡醒后:如果感觉良好,就去上课,否则,就躺 在床上不动。情景2:早餐时发现下雨了:如果是小雨,就雨中漫步去上 课;如果是中雨,就坐电瓶车去上课;如 果是大雨,就自己开车去上课。5.1 if语句5.1 if语句判断中的比较机制:关系运算涉及到的关系运算符:小于:< 大于:> 等于:== 小于等于:<= 大于等于:>= 不等于:!=关系表达式由关系运算符组成; 每个关系表达式的结构只有两种:true和false。 1表示true,0表示false。5.1 if语句5.1 if语句基本的if语句格式: if (表达式) 语句1;执行过程: 首先计算if后面圆括号中的表达式的值,若值为非0值,则执行语句1,然后脱离本选择结构,继续执行if语句的下一条语句;否则不执行语句1,直接转去执行if语句的下一条语句。5.1 if语句5.1 if语句基本的if语句:程序分析5.1 if语句5.1 if语句扩展的if语句:if-else任务: 输入两个实数,按照代数值由小到大的顺序输出两个数。 2) 输入3个实数,要求按由小到大的顺序输出。5.1 if语句5.1 if语句扩展的if语句:if-elseif (expression) Statement1; else Statement2; Next _statement;如果expression的值为true,就执行Statement1,之后程序继续执行Next_statement; 如果expression的值为false,就执行Statement2,之后程序继续执行Next_statement;5.1 if语句5.1 if语句扩展的if语句:if-else任务: 假定某产品的售价是$3.5/个,当订购数量大于10时,就提供5%的折扣。使用if-else语句可以计算并输出给定数量的总价。5.1 if语句5.1 if语句在if语句中使用代码块if (expression) { Statement1; Statement2; } else { Statement1; Statement2; } Next _statement;如果expression的值为true,就执行if后面括号中的所有语句,之后程序继续执行Next_statement; 如果expression的值为false,就执行else后面括号中的所有语句,之后程序继续执行Next_statement; 用花括号括起来的语句称为语句块。 语句块是一个整体。5.1 if语句5.1 if语句嵌套的if语句if (expression1) { Statement1; if (expression2) Statement2; else Statement3;} else { Statement4; Statement5;} Next _statement;第二个if条件只有在第一个if条件expression1为true时才检查。 包含Statement1和第二个if语句的{ }是必须的。 注意:else与它所属的if对其。5.1 if语句5.1 if语句任务:此时输入的数是奇数还是偶数,如果是偶数,就接着测试该数的一半是否还是偶数。5.1 if语句5.1 if语句条件运算符可用于测试数据,它根据一个逻辑表达式等于true还是false,执行两个表达式中的一个。 三目运算符。condition ? expression1 : expression2如果condition等于true,就计算expression1,生成该操作的结果; 如果condition等于false,就计算expression2,生成改错做的结果。 注意:只计算一个expression1和expression2中的一个。5.1 if语句5.1 if语句条件运算符:应用举例x = y>7 ? 25:50; your_salary > mysalary ? your_salary : mysalary; Total_price = unit_price * quantity * (quantity >10 ? 1.0: 0.95);任务: 假设产品的单价是$3.5,但提供三个级别的折扣:数量超过50,折扣为15%;数量超过20,折扣为10%;数量超过10,折扣为5%。5.1 if语句5.1 if语句条件运算符:应用举例尽管条件表达式的形式比较古怪,但条件运算符在C程序中使用的相当频繁。这个运算符的一个方便应用时根据表达式的值改变信息的内容和提示信息。printf("You have %d pet%s.",pets, pets == 1? "":"s");5.2 多项选择问题5.2 多项选择问题多重else if嵌套。任务: 根据收入的不同,给某个人下不同的评语。5.2 多项选择问题5.2 多项选择问题switch语句:一个简单的示例 以某一抽奖环节为例,假设用户输入数字,当输入35时,表示获得一等奖,数字122获得二等奖,数字78获得三等奖。其余均为空奖。5.2 多项选择问题5.2 多项选择问题switch语句:一般形式switch(测试表达式) { case 常量表达式1: 语句1; break; case 常量表达式2: 语句2; break; ….. case 常量表达式n: 语句n; break; default: 语句n+1; break; }执行过程: 首先计算switch后面圆括号中表达式的值。 如果该值对应于常量表达式中的某个值,就执行该case值后面的语句。 如果该值不同于所有的case值,就执行default后面的语句。5.2 多项选择问题5.2 多项选择问题switch语句:一般形式说明: 所有的case值必须互不相同。 case值必须是常量表达式。 测试表达式可以是任意的,只要它等于某个整数即可。 注意标点符号和格式。 可以多个case值执行共用一组执行语句。5.2 多项选择问题5.2 多项选择问题switch语句:一般形式从键盘上输入一个字符,并对这个字符做出判断。对元音字母和辅音字母, 就输出相应的语句。如果不是字母,也输出响应的提示信息。5.2 多项选择问题5.2 多项选择问题switch语句:一般形式程序的简化:使用isalpha函数。5.2 多项选择问题5.2 多项选择问题switch语句:一般形式任务:回答y或n。 程序提示用户为一个动作输入值y或Y,为另一个动作输入n或N。5.3 goto语句5.3 goto语句goto语句:无条件地改变程序流。在使用goto语句的时候,程序会跳转到代码中用语句标签指定的位置。 语句标签的定义方式与变量名相同。 语句标签后跟一个冒号(:),将它与它标记的语句分开。 Goto语句用分号结束。 这是一条比较生硬的指令,可以无条件地改变程序流。在编程的过程当中,应尽可能地避免使用goto语句。5.3 goto语句5.3 goto语句goto语句:使用举例#include void main() { int i, sum=0; i=1; loop:if(i<=100) { sum=sum+i; i++; goto loop; } printf("%d\n", sum); }5.1 if语句5.1 if语句练习:if语句的基本形式是: if(表达式) 语句;,以下关于“表达式”值的叙述中正确的是:_______(2011.03) A. 必须是逻辑值 B. 必须是整数值 C. 必须是正数 D. 可以是任意合法的数值 2) 有以下程序:程序运行后的输出结果是:________。(2011.03)5.1 if语句5.1 if语句练习:3)有以下程序,若程序运行时从键盘输入12<回车>,则输出结果为________(2011.03)#include void main() { int x; scanf("%d",&x); if(x>15) printf("%d\n",x=5); if(x>10) printf("%d",x); if(x>5) printf("%d\n",x+5); }5.1 if语句5.1 if语句练习:4)若变量已正确定义,则在if(W) printf(“%d \n”,x);中,不能替代W的是:_______(2011.03)A. ab+c B. c=getchar() C. c==a+b D. a++5.1 if语句5.1 if语句练习:5)以下程序运行后的输出结果是:_______(2010.09)#include void main() { int a=1, b=0; if(!a) b++; else if(a==0) if(a) b+=2; else b+=3; printf("%d\n", b); }5.1 if语句5.1 if语句练习:6)以下程序运行后的输出结果是:_______(2010.09)#include void main() { int a=1, b=0; if(!a) b++; else if(a==0) if(a) b+=2; else b+=3; printf("%d\n", b); }5.1 if语句5.1 if语句练习:#include void main() { int a=1, b=0; if(!a) b++; else if(a==0) if(a) b+=2; else b+=3; printf("%d\n", b); }5.1 if语句5.1 if语句练习:5.1 if语句5.1 if语句练习:nullnullnullnullnullnullnullnullnullnull第6章 循环控制第6章 循环控制6.1 用for语句实现循环6.2 用while语句实现循环6.3 用do….while实现循环6.4 break语句和continue语句6.5 循环嵌套6.6 几种循环的比较考情回顾考情回顾本章题量和分值比较稳定,大约共有2道选择题和3道填空题,约占试卷分值的10%。考试的重点: while语句的执行过程 for语句的用法 循环的嵌套 do….while语句的执行过程6.1 用for语句实现循环6.1 用for语句实现循环for循环的一般形式:for(表达式1;表达式2;表达式3) 循环语句;1)先计算表达式1的值。 2)再计算表达式2的值,若为真,则执行循环体一次,否则转到步骤5。 3)然后计算表达式3的值。 4)转换步骤2。 5)结束循环,执行for语句的下一条语句。6.1 用for语句实现循环6.1 用for语句实现循环for循环的一般形式:说明: 1)for语句中的表达式1可以省略。 2)如果省略表达式2,则循环将无终止地执行下去。 3)如果省略表达式3,也将产生一个无穷循环。此时程序设计者应另想它法保证循环正常终止。 4)可以同时省略表达式1和3. 5)同时省略表达式1、2、3,此时将陷入无穷循环。 6)表达式1和3不仅可以使用简单表达式,也可以使用逗号表达式。6.1 用for语句实现循环6.1 用for语句实现循环for循环的一般形式:说明: 7)表达式2一般为关系表达式或逻辑表达式,但也可以是其它表达式。 8)for语句的循环语句可以空语句,用来实现延时,即在程序执行中等待一定的时间。6.1 用for语句实现循环6.1 用for语句实现循环程序分析:#include void main() { int i, sum; sum=0; for(i=1;i<=100;i++) sum+=i; printf("Sum = %d\n",sum); }6.1 用for语句实现循环6.1 用for语句实现循环程序分析:#include void main() { int count=1; for(;count<=10;++count) printf("\n%d",count); printf("\nWe have finished.\n"); }6.1 用for语句实现循环6.1 用for语句实现循环程序分析:6.1 用for语句实现循环6.1 用for语句实现循环程序分析:null6.2 用while语句实现循环6.2 用while语句实现循环while语句的一般形式while(表达式) 循环语句;1)计算while后表达式的值。 2)若值为非0,则执行循环体中的语句。 3)若值为0,则退出while循环。6.2 用while语句实现循环6.2 用while语句实现循环程序分析:#include void main() { int i=1; int sum=0; while(i<=100) { sum=sum+i; i++; } printf("%d\n",sum); }6.2 用while语句实现循环6.2 用while语句实现循环练习6.2 用while语句实现循环6.2 用while语句实现循环练习6.2 用while语句实现循环6.2 用while语句实现循环练习6.2 用while语句实现循环6.2 用while语句实现循环练习6.3 用do…while语句实现循环6.3 用do…while语句实现循环do…while语句的一般格式:do 循环语句; while(表达式);1)先执行一次循环语句; 2)判断表达式的值是否为0。 3)循环或者退出循环。 4)循环语句至少被执行一次。6.3 用do…while语句实现循环6.3 用do…while语句实现循环程序分析:#include void main() { int i=1; int sum=0; do { sum=sum+i; i++; }while(i<=100); printf("%d\n",sum); }6.3 用do…while语句实现循环6.3 用do…while语句实现循环程序分析:6.4 break语句和continue语句6.4 break语句和continue语句break1)在switch中使用break,可以使流程跳出switch语句。 2)在循环结构中,也可以使用break语句使流程跳出本层循环体,从而提前结束本层循环。continue 结束本次循环,即不再执行循环体中continue语句之后的语句,而是跳到循环的开始处,进行下一次是否执行循环的判断。6.4 break语句和continue语句6.4 break语句和continue语句代码分析#include void main() { char answer; for(;;) { printf("Enter a letter:"); scanf("%c",&answer); if(tolower(answer)=='n') break; else printf("The letter is: %c\n",answer); } } 6.4 break语句和continue语句6.4 break语句和continue语句代码分析#include void main() { int n; for(n=100;n<=200;n++) { if(n%3==0) continue; else printf("%d\n",n); } putchar('\n'); } 6.5 循环的嵌套6.5 循环的嵌套循环嵌套的一般结构在一个循环体内又完整地包含了另一个循环,称为循环嵌套。在编写程序时,循环嵌套的书写要采用缩进形式。6.5 循环的嵌套6.5 循环的嵌套代码分析#include void main() { long sum=0L; int count=0; int i,j; printf("Enter the number of integers you want to sum: "); scanf("%d",&count); for(i=1;i<=count;i++) { sum=0L; for(j=1;j<=i;j++) sum+=j; printf("\n%d\t%ld",i,sum); } }6.5 循环的嵌套6.5 循环的嵌套代码分析#include void main() { long sum=0L; int count=0; int i,j; printf("Enter the number of integers you want to sum: "); scanf("%d",&count); for(i=1;i<=count;i++) { sum=0L; for(j=1;j<=i;j++) sum+=j; printf("\n%d\t%ld",i,sum); } }6.6 几种循环的比较6.6 几种循环的比较请同学们自己阅读课文。第7章 数组和字符串第7章 数组和字符串7.1 一维数组的定义和引用7.2 二维数组7.3 字符数组7.4 字符串考情回顾:数组考情回顾:数组数组部分的考察大约共有2~4道选择题和0~3道填空题,约占试卷分值的4~14%。考试的重点: 一维数组的定义、赋值 一维数组和二维数组元素的引用 数组数据的处理考情回顾:字符串考情回顾:字符串字符串部分的考察大约共有1~4道选择题,约占试卷分值的,2~10%。考试的重点: 字符串的输入输出 字符串数组 字符串处理函数7.1 一维数组的定义和引用7.1 一维数组的定义和引用数组简介:不使用数组的程序任务:计算某班学生的平均成绩。假设班级只有10同学。如何计算平均成绩。 如果需要保存每个同学的成绩,并输出每个同学的成绩,
/
本文档为【二级C语言】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索