ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:148.44KB ,
资源ID:7031645      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7031645.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第四章数组与结构体.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第四章数组与结构体.docx

1、第四章数组与结构体 第1章 数组和结构体本章目标掌握数组定义的规则。掌握数组的初始化方法及数组元素的引用。掌握有关数组的基本算法。掌握字符串处理函数的应用。掌握结构体定义和使用的规则学会使用VC+6.0开发环境中的Debug调试功能:单步执行、设置断点、观察变量值。授 课 内 容 4.1 数组4.2 字符型数组和字符串处理库函数4.3 结构体类型 4.4 数组和结构体4.5 构体嵌套 程序设计举例调试技术4.1、数组 迄今为止,我们使用的都是属于基本类型(整型、字符型、实型)的数据,c语言还提供了构造类型的数据,它们有:数组类型、结构体类型、共用体类型。构造类型数据是由基本类型数据按一定规则组

2、成的,因此有的书称它们为“导出类型”。 问题的引出: 实际应用的程序设计中,只用几个变量的情况是极少的;更多的情况是处理大批量的相同类型或不同类型的数据。相同类型数据举例:统计交大15,000学生英语4级统考成绩;不同类型数据举例:管理交大15,000学生学籍信息记录,包括:姓名、学号、出生日期、班级、各科成绩等。 用什么样的数据结构来描述这类应用更简洁?一维数组常用于处理大批量数据;数据特点:存在内在联系;数组具有相同数据类型的变量集合;这些变量都有相同名字,但下标不同;称这些变量为数组元素;只有一个下标一维数组;有两个下标二维数组。一维数组定义 数组是具有一定顺序关系的若干变量的集合体,组

3、成数据的变量称为该数组的元素变量,简称元素。一维数组的定义方式为: 例如: int a10;它表示数组名为a,此数组有10个元素。说明:(1) 数组名定名规则和变量名相同,遵循标识符定名规则。(2) 数组名后是用方括弧括起来的常量表达式,不能用圆括弧, 下面用法不对:int a(10);(3)方括弧括中的下标表示元素在数组中的位置。C语言的下标从0, 必须是整型变量或常量。(4) 编译系统处理数组说明语句时,为它在内存中分配一定的存储 空间,数组在内存中存储时,是按下标递增的顺序连续存储各 元素的值的。一维数组的初始化(1) 在定义数组时对数组元素赋以初值。例如: int a10=0,1,2,

4、3,4,5,6,7,8,9;(2) 可以只给一部分元素赋值。例如: int a10=0,1,2,3,4;定义a数组有10个元素,但花括弧内只提供5个初值,这表示只给前面5个元素赋初值,后5个元素值为0。(3) 如果想使一个数组中全部元素值为0,可以写成 int a10=0,0,0,0,0,0,0,0,0,0;不能写成 int a10=0*10;这是与FORTRAN语言不同的,不能给数组整体赋初值。(4) 在对全部数组元素赋初值时,可以不指定数组长度。例如: int a5=1,2,3,4,5;可以写成 int a=1,2,3,4,5;在第二种写法中,花括弧中有5个数,系统就会据此自动定义a数组的

5、长度为5。例:int A5; 在内存存储如图数组的首地址是数组名A数组的首地址也是第一个元素的地址&A0C语言中,数组的整体不能参加数据处理,参加处理的只能是数组中的元素变量。所以要对数组进行初始化。例如:int data5=,4,8,;赋值如图例4-1题目:给一维数组x输入10个整数,找出x数组中的最大数和最小数。算法分析:1、假设数组中第1个元素最大,令xmax=a02、将ai(0= i n)与max进行比较, 若ai xmax ,i=i+1,再执行2 否则,令xmax=ai,i=i+1,再执行23、循环结束,求出最大元素并输出max。#include int main() int arr

6、ay7;coutPlease input an array with seven elements: endl; for(int i=0; iarrayi; int big = array0; for(int j=0; jbig) big = arrayj; coutmax=bigname;cin.get(name, n);/第一个是字符数组变量,第二个指定向这个变量/中读入几个字符 coutname; 例4-2 字符串的输入与输出#include int main() char name120, name220; coutPlease input a name with blank(with

7、in 19 characters): endl; cin.get(name1, 20); coutPlease input the name againname2; coutUsing function get, the name storing in the variable is: name1endl; coutUsing operater , the name storing in the variable is: name2endl; return 0;字符串处理库函数需要添加#include stpcpy(): 字符串拷贝;strcat(): 字符串连接;strchr(): 在字符串

8、中查找字符;strcmp(): 字符串比较;strlen(): 求字符串长度;strlwr(): 将字符串中的大写字母转换为小写字母;strrev(): 反转字符串;strstr(): 在字符串中查找另一个字符串;strupr(): 将字符串中的小写字母转换为大写字母; 例4-3编写一个用来计算字符串长度的函数mystrlen(),并用主函数验证 算法分析:1)设一个计数器变量len=02)从数组slen第一个元素开始进行处理3)若当前的元素值slen非空(0),则len+1,继续执行3;否则,退出循环。4)打印结果len#include /计算字符串的长度的函数int mystrlen(ch

9、ar string) int len = 0; while(stringlen!=0) len = len+1; return len;/测试计算字符串长度的主函数int main() char string100; int len = 0; coutPlease input a string (within 99 characters): string; coutThe lengthof the string is:mystrlen(string)A(I+1),则交换它们的位置 A(I) A(I+1);(2) 对剩下的N-1个元素,再两两进行比较,按同样规则交换它们 的位置,经过N-2次比较

10、,将次最大值交换到A(N-1)的位置;(3) 如法炮制,经过N-1趟的“冒泡处理”,每趟进行N-i次的 比较,全部数列有序。/ Example 4-5:冒泡排序#include int main() const int COUNT=16; int listCOUNT=503, 87, 512, 61, 908, 170, 897, 275, 653, 426, 154, 509, 612, 677, 765, 703; for(int i=0; ii; j=j-1) if(listj-1listj) int tmp = listj-1; listj-1 = listj ; listj = tm

11、p; cout The result is : endl; for(int k=0;k16;k+) cout listk ; coutendl; return 0;例4-6 将小写字母转换为大写字母算法分析: 将大写字符转换为小写,用到转换公式: stri=stri-A+a; 将小写字符转换为大写,用下列公式: stri=stri-a+A;#include int main() char str=This is a sample; coutThe original string is: str=a & stri=z) stri = stri-a+A; i = i+1; coutAfter tr

12、ansform: strendl; return 0;例4-7 统计学生课程平均分的程序 定义二维数组student65,其中,给数组student前4列元素读值,第1列为学号,第2列到第4列为门课程的成绩。第5列为平均分,通过计算求得。#include #define PERSON 6#define COURSE 3int main() int studentPERSONCOURSE+2; int i, j; coutPlease input data of student :endl; for(i=0; istudenti0;studentiCOURSE+1=0; for(j=1; jst

13、udentij; studentiCOURSE+1=studentiCOURSE+1+studentij; studentiCOURSE+1=studentiCOURSE+1/ COURSE; cout学号 高数 英语 体育 平均分endl; cout-endl; for(i=0; i PERSON; i=i+1) for(j=0; j= COURSE+1; j=j+1) coutstudentijt; coutendl; return 0;例4-8 使用结构体重新编写上题的程序算法 定义一个结构体类型StudentType,其中包含学号、各门课程成绩和平均分等数据成员,其值分别通过输入和计算

14、求得。/Example 4-9: 统计学生课程的平均分#include #define PERSON 6#define COURSE 3struct StudentType char id10; /学号 int scoreCOURSE; /课程成绩 int GPA; /平均分;int main() StudentType xjtuStudentPERSON; int i, j; coutPlease input data of student :endl; for(i=0; i xjtuStudenti.id; xjtuStudenti.GPA=0; for(j=0; j xjtuStudenti. scorej; xjtuStudenti.GPA=xjtuStudenti.GPA +xjtuStudenti.scorej; xjtuStudenti. GPA = xjtuStudenti. GPA / COURSE; cout学号 高数 英语 体育 平均分endl; cout-endl; for(i=0; i PERSON; i=i+1) coutxjtuStudenti.idt; for(j=0; j COURSE; j=j+1) cout xjtuStudenti.scorejt; cout xjtuStudenti.GPAendl; return 0;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1