




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C教案第6讲范文 C#语言程序设计09计应1班信息工程系付贤政第第5章数组、结构章数组、结构内容提要数组、结构的概念一维数组、二维数组的定义及使用结构的定义及使用数组、结构的概念一维数组、二维数组的定义及使用结构的定义及使用目的要求理解数组的含义掌握一维数组、二维数组的用法掌握结构的定义及使用理解数组的含义掌握一维数组、二维数组的用法掌握结构的定义及使用重点难点一维数组、二维数组和结构5.1数组5.1.1数组的概念数组是一种数据结构,它包含大量相同类型的变量,这些变量可以通过一个数组名和数组下标(或者叫索引数组是一种数据结构,它包含大量相同类型的变量,这些变量可以通过一个数组名和数组下标(或者叫索引),来访问。 包含在数组中的变量,也称为数组元素。 在,来访问。 包含在数组中的变量,也称为数组元素。 在C#中,数组有一维(只有一个下标)或者多维(有多个下标)。 对于每一维中,数组中数组元素的个数叫这个维的数组长度。 无论是一维数组还是多维数组,每个维的下标都是从中,数组有一维(只有一个下标)或者多维(有多个下标)。 对于每一维中,数组中数组元素的个数叫这个维的数组长度。 无论是一维数组还是多维数组,每个维的下标都是从0开始,结束于这个维的数组长度减1。 5.1.2一维数组1一维数组的定义格式数组类型数组名;例inta;stringarr;charcarr;2动态初始化动态初始化需要借助动态初始化动态初始化需要借助new运算符,为数组元素分配内存空间,并为数组元素赋初值,数值类型初始化为运算符,为数组元素分配内存空间,并为数组元素赋初值,数值类型初始化为0,布尔类型初始化为,布尔类型初始化为false,字符串类型初始化为null。 格式数组名=new数据类型数组长度;例a=new int6;也可以将定义和动态初始化写在一起例stringarr=new string3“as”,”vb”,”23”;using System;class zy4static voidMain()boola=new bool2;charb=new char3;doublec=new double4;stringd=new string5;Console.WriteLine(a0);Console.WriteLine(b0);Console.WriteLine(c0);Console.WriteLine(d0);3静态初始化静态初始化数组的格式如下数据类型静态初始化数组的格式如下数据类型数组名=元素1,元素2.;用这种方法对数组进行初始化时,无须说明数组元素的个数,只需按顺序列出数组中的全部元素即可,系统会自动计算并分配数组所需的内存空间。 例如;用这种方法对数组进行初始化时,无须说明数组元素的个数,只需按顺序列出数组中的全部元素即可,系统会自动计算并分配数组所需的内存空间。 例如intIntArr=-45,9,29,32,46;charStringArr=a,b,c,d;4关于一维数组初始化的几点说明在关于一维数组初始化的几点说明在C#中,数组初始化是程序设计中经常容易出错的部分,为加深读者对中,数组初始化是程序设计中经常容易出错的部分,为加深读者对C#中数组的理解,下面列出一些需要读者注意的方面(中数组的理解,下面列出一些需要读者注意的方面 (1)动态初始化数组时,可以把定义与初始化分开在不同的语句中进行;()动态初始化数组时,可以把定义与初始化分开在不同的语句中进行; (2)静态初始化数组必须与数组定义结合在一条语句中,否则程序就会出错;()静态初始化数组必须与数组定义结合在一条语句中,否则程序就会出错; (3)在数组初始化语句中,如果大括号中已明确列出了数组中的元素,即确定了元素个数,则表示数组元素个数的数值(即方括号中的数值)必须是常量,并且该数值必须与数组元素个数一致。 )在数组初始化语句中,如果大括号中已明确列出了数组中的元素,即确定了元素个数,则表示数组元素个数的数值(即方括号中的数值)必须是常量,并且该数值必须与数组元素个数一致。 5访问一维数组中的元素在访问一维数组中的元素在C#中是通过数组名和下标来访问数组元素的。 例中是通过数组名和下标来访问数组元素的。 例inta=new int12;int c=5;int b=6;ab+c+=2;每一个C#的数组都知道自己的长度,数组的长度由Length决定。 int i=a.Length;/i=12例计算a数组中前3个元素的总和,并且把结果保存到变量个元素的总和,并且把结果保存到变量sum中。 int sum=a0+a1+a2;如果要把数组中的元素全部相加,则用循环比较方便。 例如果要把数组中的元素全部相加,则用循环比较方便。 例for(int i=0;i 例写出下列程序的结果。 using System;class Arraysortstatic voidMain()intnums=new int10,8,36,12,24;foreach(int jin nums)Console.Write(“00”,j);Console.WriteLine();for(int j=nums.Length-1;j=0;j-)Console.Write(“00”,numsj);Console.WriteLine();运行结果如下using System;class Rnd_36_7static voidMain()inta=new int7;Random ran=new Random();for(int i=0;i (36)+1;for(int j=0;j 随机产生7个数,每个数在136范围内,要求每个数不同。 排序算法?选择排序(递增)的方法是找出数组元素中最小的数据,使它与第一个元素中的数据交换位置在余下的元素中继续找最小的元素,与第二个元素中的数据交换位置6.用一维数组模拟栈操作栈是一种数据结构,它是一种操作受限的数组,因为它只允许用户从数组的一头进行操作,其操作原则是先进后出,或者说是后进先出。 栈这种数据结构的操作主要有两个,一个操作叫入栈(用一维数组模拟栈操作栈是一种数据结构,它是一种操作受限的数组,因为它只允许用户从数组的一头进行操作,其操作原则是先进后出,或者说是后进先出。 栈这种数据结构的操作主要有两个,一个操作叫入栈(push)操作,它的作用是把当前数据保存到栈顶,另一个操作是出栈()操作,它的作用是把当前数据保存到栈顶,另一个操作是出栈(pop)操作,它的作用是取出栈顶的数据。 )操作,它的作用是取出栈顶的数据。 1下面是几条动态初始化一维数组的语句,其中正确的是()下面是几条动态初始化一维数组的语句,其中正确的是()A.intarr2=new int;B.intarr2=new int4;C.intarr2=new inti6,5,1,2,3;D.intarr2=new int46,5,1,2,3;练习5.1.3二维数组在多维数组中,二维数组是最简单也是最常用的数组。 1二维数组的定义数据类型二维数组的定义数据类型,数组名;例如数组名;例如double,dArr;/定义一个double型二维数组2二维数组的初始化格式数组名二维数组的初始化格式数组名=new数据类型数组长度1,数组长度2;例如;例如dArr=new double3,4;也可以将二维数组的定义与动态初始化合并在一条语句中。 例如也可以将二维数组的定义与动态初始化合并在一条语句中。 例如double,dArr=new double3,4;在动态初始化二维数组时,也可以直接为其赋予初始化值。 例如在动态初始化二维数组时,也可以直接为其赋予初始化值。 例如int,IntArr=new int,1,3,2,4,5,6;二维数组也可以进行静态初始化char,c=a,b,c,x,y,z;写出下列程序的结果class myClassstatic voidMain()double,a=1.2,2.3,3.4,4.5,5.6,6.7,7.8,8.9;doubleb=1.2,6.7,5.4;bool exist;foreach(double iin a)exist=false;foreach(double kin b)if(i=k)exist=true;if(exist=false)Console.WriteLine(0,i);运行结果using System;class YHtrianglestatic voidMain()int,a=new int6,6;a0,0=1;for(int i=1;i=5;i+)ai,0=1;ai,i=1;for(int j=1;j=i;j+)ai,j=ai-1,j-1+ai-1,j;for(int i=0;i=5;i+)for(int j=0;j=i;j+)Console.Write(00,ai,j);Console.WriteLine();编程输出如右图所示的杨辉三角。 1下面是几条定义并初始化二维数组的语句,指出其中正确的是()下面是几条定义并初始化二维数组的语句,指出其中正确的是()Aint arr3=new int2,3;Bintarr3=new int2,3;Cint arr3,=new int2,3;Dint,arr3=new int2,3;练习2写出下列程序的输出结果。 int,a=new int2,2;for(int i=0;i3;i+)for(int j=0;j3;j+)if(i=j)ai,j=1;elseai,j=0;Console.WriteLine();结果结构是用户自定义的数据类型。 结构类型是指把各种不同类型数据信息组合在一起形成的组合类型。 结构是用户自定义的数据类型。 结构类型是指把各种不同类型数据信息组合在一起形成的组合类型。 5.2结构类型5.2.1结构的声明结构类型也是先声明后使用。 声明结构类型时要使用结构类型也是先声明后使用。 声明结构类型时要使用struct关键字,声明结构类型的一般语法格式如下关键字,声明结构类型的一般语法格式如下struct标识符/结构成员定义例定义一个表示矩形的结构。 struct Rectangle/定义名为Rectangle的结构public double长;public double宽;public代表这个成员是公有成员,可以被外界访问。 结构体中也可以放方法成员,如可以在结构体中计算面积。 例结构体中也可以放方法成员,如可以在结构体中计算面积。 例struct Rectangle/定义名为Student的结构public double长;public double宽;public void面积()Console.WriteLine(“面积=0”,长*宽);5.2.2结构成员的访问结构成员可分为两类,一是实例成员,一是静态成员。 若成员名前有结构成员可分为两类,一是实例成员,一是静态成员。 若成员名前有static关键字,则该成员为静态成员,否则为实例成员。 静态成员通过结构名来访问,格式关键字,则该成员为静态成员,否则为实例成员。 静态成员通过结构名来访问,格式:结构名.静态成员名实例成员的访问是通过创建结构类型的变量来访问结构的实例成员。 格式结构名标识符;实例成员访问格式为结构变量名静态成员名实例成员的访问是通过创建结构类型的变量来访问结构的实例成员。 格式结构名标识符;实例成员访问格式为结构变量名.实例成员名练习:1.声明结构类型的关键字为()AclassBdoubleCstructDint5.2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 20206-2025银行业印鉴核验系统技术规范
- GB 15760-2025金属切削机床安全防护通用技术规范
- GB/T 10267.1-2025金属钙分析方法第1部分:氯离子选择性电极法测定氯
- 2025年安全员考试高频难点题库
- 2025年政府会计准则医院考题预测
- 吉安县2025届中考猜题数学试卷含解析
- 迎新年春节致辞模板
- 2025年电力行业高级专家认证考试模拟题电力电缆方向及答案解析
- 2025年本科院校保卫处面试模拟题与参考答案
- 2025年事业单位地震招考高频题解
- 2025海南省老干部服务管理中心招聘事业编制人员6人(第1号)考试备考题库及答案解析
- 2025年内江市总工会公开招聘工会社会工作者(14人)笔试模拟试题及答案解析
- 2025云南辅警笔试题目及答案
- 2025四川内江市总工会招聘工会社会工作者14人笔试备考试题及答案解析
- 2025-2026学年湘教版(2024)初中数学八年级上册教学计划及进度表
- 2025至2030中国公安行业发展趋势分析与未来投资战略咨询研究报告
- GB/T 45763-2025精细陶瓷陶瓷薄板室温弯曲强度试验方法三点弯曲或四点弯曲法
- 全过程工程咨询投标方案(技术方案)
- (高清版)DZT 0388-2021 矿区地下水监测规范
- 有害物质污染源识别与评价表
- 餐具洗消保洁制度管理办法
评论
0/150
提交评论