《C++程序设计》完整教案(8)

2018-12-08 19:31

cout<<\ sum=0;

for (i=0;i<4;i++)

sum=a[i]+sum; //利用for循环语句求和。 cout<<\ avg=sum/4.0;

cout<<\}

运行结果为: a[0]=1 a[1]=3 a[2]=5 a[3]=7

1 3 5 7 1 3 5 7 sum=16 sum=16 avg=4

第二节 二维数组的定义和数组元素的引用

二维数组定义的一般形式为:

数组类型 数组名[常量表达式1][常量表达式2];

可以把二维数组看作特殊的一维数组,它的元素又是一个一维数组。例如,可以把a[4][3]看作是一个一维数组,它有4个元素:a[0],a[1],a[2],a[3],每个元素又是一个包含3个元素的一维数组,即该数组有4行3列共12个元素,如图4-2所示。在C++语言中,二维数组是按行的顺序存储的。

根据初始化列表的不同,二维数组元素的初始化方法也不同,常用的有以下几种方法: (1)对二维数组元素赋初值,以每行为一组,分行初始化。 例如,int a[4][3]={{0,1,2},{3,4,5},{6,7,8},{9,10,11}}; 例如 , int a[4][3]={{0,1},{},{0,0,2},{0,1}} 例如,a[4][3]={{1},{5},{6},{7}} 注意:省略元素赋值为0

(2)所有的数据写在一个花括弧内,按存储顺序赋值。

例如,int a[3][4]={0,1,2,3,4,5,6,7,8,9,10,11},则a[1][1]=5。 例如,int a[4][3]={0,1,2,3,4,5,6,7,8,9,10,11},则a[3][2]=11。 (3)若采用第二种方法,可以省略第一维的长度。 例如,int a[2][3]={1,2,3,4,5,6}可以写成 int a[ ][3]={1,2,3,4,5,6}。

(4)二维数组的元素赋初始值,可用二重循环语句。 例如,for(int i=0;i<4;i++)

for(int j=0;j<4;j++) a[i][j]=i+j; 引用二维数组元素的格式为:

数组名 [行下标][列下标]

例如,int a[2][3]定义了一个2行3列的整数数组,如引用其中的第2行、第1列元素应写为a[1][0]。 注意:

不要把int a[3][2] 写成int a[3,2]。

下标值要在已定义的数组的最大范围内,即不要越界。 【例4.4】已知4名学生的数理化成绩分别为{78,85,79}、{63,72,70}、{86,78,93}、74,63,77},求出并显示每个学生的平均成绩及总的平均成绩。 #include void main( ) { float sum=0,d[4][3]={{78,85,79}, {63,72,70},{86,78,93},{74,63,77}}; float c[4]={0}; for(int i=0;i<4;i++) {

for(int j=0;j<3;j++) c[i]+=d[i][j]; //求每名学生的总成绩 cout<

cout<

程序的执行结果为:

80.6667 68.3333 85.6667 71.3333 76.5 return

第三节 字符数组的定义及初始化

字符数组定义的格式为:char 数组名[n]; 字符数组的初始化一般有如下两种方法: ⑴逐个字符赋给数组中的元素。

【例4.5】逐个字符初始化字符数组。 #include void main() {

char a[13]={'H','e','l','l','o',',','W','o','r','l','d','!'}; cout<

注意:如果花括弧中提供的初值字符个数大于数组长度,则作语法错误 处理,如果初值个数小于数组长度,则多余的数组元素自动定义为字符 串结束符‘\\0’。

⑵对整个字符数组赋初值。

例如:char a[13]= \ 运行程序,输出结果为: Hello,World! d

编译系统提供的字符串处理函数放在string.h头文件中,在调用字符串处理函数时,要包含string.h头文件。

1.字符串拷贝函数strcpy() 格式:strcpy(str1, str2);

该函数的功能是将str2所指向的字符串复制到str1所指向的字符数组中,然后返回str1的地址值。

2.字符串连接函数strcat() 格式:strcat(str1, str2);

该函数的功能是将str2所指向的字符串连接到str1所指向的字符数组中。然后返回str1的地址值。 注意:

以上两个函数都要保证str1的空间足够大。

两个字符数组连接后,则前一个数组的结束字符'\\0'消失了。

3.字符串比较函数strcmp():功能是从左到右比较两个字符串的大小(按ASCII码值大小比较),直到出现不同的字符或遇到‘\\0’为止。如果两个字符串中全部字符串都相同,则认为两个字符串相等;若出现不相同的字符,则以第一个不相同的字符的比较结果为准,比较的结果由函数值带回。

⑴如果字符串1和字符串2完全相同,函数值为0; ⑵如果字符串1大于字符串2,函数值为1; ⑶如果字符串1小于字符串2,函数值为-1。 格式:strcmp(str1, str2);

4.字符串长度函数strlen():该函数的功能是计算字符串 的长度。

格式:strlen(str);

该函数将计算str所指向字符串的长度,函数值为字符 的实际长度,而不是分配的空间。例如: char str[10]={ \ cout<

输出的结果为5,不是6,也不是10。 【例4.7】字符串处理函数的使用。 #include \#include \void main() { char stra[50]=\ char strb[]=\ char strc[]=\ cout<

strcpy(stra,strb); //字符串复制 cout<

strcat(stra,strc); //字符串连接

cout<

程序执行结果为: china Beijing Beijing Beijing

BeijingShanghai Shanghai x1=-1 x2= 0 x3= 1

BeijingShanghai length is: 15 return

int x1,x2,x3;

x1=strcmp(\ //字符串比较 x2=strcmp(\ //字符串比较 x3=strcmp(\ //字符串比较 cout<< \ cout<< \ cout<< \

cout<

【例4.8】编程求出一个二维字符数组里为'a'的元素个数。 #include #include

void reada(char a[5][4]); void main() {

char a[5][4]; int i ,j,number=0; reada(a);

for(i=0;i<5;i++) for(j=0;j<4;j++) {

if(a[i][j]!='a') continue; number++; }

cout<<\这个字符串中有:\个a\}

void reada(char a[5][4]) { int i,j;

cout<<\请输入字符串:\for(i=0;i<5;i++) for(j=0;j<4;j++)

cin>>a[i][j]; }

程序的执行结果为: 请输入字符串: sfdsgfaahsfyhsfdahdg 这个字符串中有:3个a return

作业

教材P77-78所有习题

第5章 结构体和共用体

本章课时:

8课时

本章重点: 结构体变量的定义 结构体的定义 本章难点: 结构体变量的定义 教学内容及目标:

了解:

结构体和共用体的适用范围和区别 理解:

1.结构体变量与共用体变量的初始化 2.字符串存储和字符串的访问 掌握:

1.结构体和共用体的定义

2.结构体变量和共用体变量的访问 3.结构体数组的使用

第一节 结构体

结构体的定义

结构体定义的一般语法形式为: struct 结构体名 { 数据类型 成员1; 数据类型 成员2; ┇ 数据类型 成员n; };

例如:


《C++程序设计》完整教案(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:计生协会工作制度

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: