6.3字符型数组(教学设计)-《C语言(上)》同步教学(高教版)

2024-08-03
| 3页
| 125人阅读
| 0人下载
普通

内容正文:

课 题 6.3字符型数组 教 学 目 的 1、 掌握字符数组的定义、初始化,结束标志 2、 字符串数据在内存中的存放 教 材 分 析 教学重点 数组的定义 教学难点 符数组定义与存放 课时安排 1 教学方法 讲授与演示法相结合讨论法 教具 计算机、投影仪 教 学 内 容 及 过 程 设 计 第一课时 一、 复习引导 从一般的一维数组、二维数组到特殊的字符数组 二 讲授新课 一)、字符数组的定义: char 数组名[exp]; 如:char c[10]; 二)、字符数组的初始化 1. 给每一个字符型数组元素依次赋给一个单字符。 如:char str[6]={‘C’, ‘h’, ‘i’, ‘n’, ‘a’, ‘\0’}; 2. 直接在赋值号右边给出字符串常量。如: char str[6]=“China”; 注意:a) 字符数组的长度可以通过赋初值的方式隐含定义;如: char str[ ]={‘C’, ‘h’, ‘i’, ‘n’, ‘a’, ‘\0’}; char str[ ]=“China”; b)如果括号中提供的初值个数(即字符个数)大于数组长度,则作语法错误处理。如果初值个数小于数组长度,则只将这些字符赋给数组中前面那些元素,其余的元素自动定义为空字符(即‘\0’)。 c) 如果提供的初值个数与预定的数组长度相同,在定义时可以省略数组长度,系统会自动根据初值个数确定数组长度。 char c[]={′I′,′ ′,′a′,′m′,′ ′,′h′,′a′,′p′,′p′,′y′};数组c的长度自动定为10。 三)、字符串和字符串结束标志 为了测定字符串的实际长度,C语言规定了一个“字符串结束标志”——‘\0’ 字符数组并不要求它的最后一个字符为′\0′,甚至可以不包含′\0′。 例如:char c[5]={′C′,′h′,′i′,′n′,′a′}; 但是由于系统对字符串常量自动加一个′\0′。因此,为了使处理方法一致在字符数组中也常人为地加上一个′\0′。 例如:char c[6]={′C′,′h′,′i′,′n′,′a′,′\0′}; 组讨论思考: 定义字符数组∶char c[]={“Pascal program”};要用一个新的字符串代替原有的字符串”Pascal program” ,从键盘向字符数组输入∶Hello如果不加′\0′的话,字符数组中的字符将是什么?参考答案:Hellol program 例如:下面是对s的初始化,其中不正确的是 D 。 A)char s[5]={"abc"}; B)char s[5]={'a','b','c'}; C)char s[5]=""; D)char s[5]="abcde"; 三、小结 1、  字符串的结束标记 2、字符数组的定义存放 第二课时 一、 复习引导 字符数组的定义与引用 二 讲授新课 一)、字符数组的输入和输出 1、字符数组的输出 (1)用格式符“%c”控制的 printf(),逐个字符输出 (2)用格式符“%s”控制的 printf();字符数组值整体输出 (3)puts (字符数组名);字符数组值整体输出 例如: char c[]={″China″};printf(″%s″,c); 在内存中数组c的状态 说明:(1)用“%s”格式符输出字符串时,printf函数中的输出项是字符数组名,而不是数组元素名。 (2)如果数组长度大于字符串实际长度,也只输出到遇′\0′结束。 (3)输出字符不包括结束符′\0′。 (4)如果一个字符数组中包含一个以上′\0′,则遇第一个′\0′时输出就结束。 (5)可以用scanf函数输入一个字符串 如果利用一个scanf函数输入多个字符串,则在输入时以空格分隔 例如: char strl[5],str2[5],str3[5];scanf(″%s %s %s″,str1,str2,str3); 输入数据:How are you? 数组中未被赋值的元素的值自动置′\0′ (6)puts用字符数组名,而不用数组元素名; (7)输出的字符串中可含转义字符;如:static char str[]=“China Beijing”; puts(str); 2、字符数组的输入 (1)用格式符“%s”控制的scanf(); 如: static char str1[5],str2[5],str3[5];scanf(“%s%s%s”, str1,str2,str3); /*不能写成&str1*/ 若输入数据流为:How are you? str1、str2、str3分别接收到“How”、“are”、“you?”,且在各个字符串的最后自动加‘\0’。 如果利用一个scanf函数输入多个字符串时,则以空格分隔; (2) 用gets( );如:char ch[16]; gets(ch); 注意: ①gets一次只能输入一个字符串; ②自变量应是数组名,而不能是数组元素名; ③要求从键盘上输入一个字符串直到遇到换行符为止,系统会自动把换行符换成“\0”加在字符串末尾。 与scanf不同,输入字符串中的空格也会被接收。 scanf函数中的输入项如果字符数组名。不要再加地址符&,因为在C语言中数组名代表该数组的起始地址。下面写法不对: scanf(″%s″,&str) 三、课堂小结 1、  字符串的输出与输入 四、作业: 汇编P79 29-81 (其中34.35.39要求上机调试 学科网(北京)股份有限公司 $$

资源预览图

6.3字符型数组(教学设计)-《C语言(上)》同步教学(高教版)
1
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。