版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、会计学1第第C编程基础编程基础(jch)第一页,共95页。表表2.1 C#简单简单(jindn)类型类型第1页/共95页第二页,共95页。第2页/共95页第三页,共95页。一个引用变量,然后在堆上创建对象本身,再把这个内存的句柄(也是内存的首地址)赋给引用变量。n例如:nstring s1, s2;ns1=ABCD; s2 = s1; n其中,s1,s2是指向字符串的引用变量,s1的值是字符串“ABCD”存放在内存的地址,这就是对字符串的引用,两个引用型变量之间的赋值,使得s2、s1都是对“ABCD”的引用。如图2.2所解。堆内存(ni cn)栈内存ABCDs1s2图图2.2 引用类型赋值示意
2、引用类型赋值示意第3页/共95页第四页,共95页。nclass Demon npublic static void Main ( )n int x = 123;nobject obj1=x; / 装箱操作nx = x+100; / 改变x的值,obj1的值并不会随之改变nConsole.WriteLine ( x= 0 , x ); / x=223nConsole.WriteLine ( obj1= 0 , obj1 ); / obj1=123nn第4页/共95页第五页,共95页。堆堆x装箱后123int123xobj1栈栈动态地生成一个新的对象的实例图图2.3 装箱机制装箱机制(jzh)第5
3、页/共95页第六页,共95页。n object obj1=x; n x = x+100; / 改变x的值,此时obj1的值并不会随之改变n y = (int) obj1; / 拆箱操作,必须进行强制类型转换n Console.WriteLine ( x= 0 , x ); / x=223n Console.WriteLine ( obj1= 0 , obj1 ); / obj1=123n nn注意:当一个装箱操作把值类型转换为一个引用类型时,不需要显示地强制类型转换;而拆箱操作把引用类型转换到值类型时,由于它可以强制转换到任何可以相容的值类型,所以必须显示地强制类型转换 。第6页/共95页第七
4、页,共95页。它通常可以分为n字面常量和符号常量。常量及其使用非常直观,以能读懂的固定格式表示n固定的数值,每一种值类型都有自己的常量表示形式。第7页/共95页第八页,共95页。n32L / 这是一个这是一个long类型类型n在常量后面加在常量后面加U或或u(不区分大小写)表(不区分大小写)表示无符号整数。例如:示无符号整数。例如:n128U / 这是一个这是一个uint 类型类型n128UL / 这是一个这是一个ulong类型类型n整型常量既可以采用十进制也可以采用整型常量既可以采用十进制也可以采用十六进制,不加特别十六进制,不加特别(tbi)说明就默认为十说明就默认为十进制,在数值前面加进
5、制,在数值前面加0 x(或(或0X)则表示十)则表示十六进制数,十六进制基数用六进制数,十六进制基数用09,AF(或(或af)。例如:)。例如:n0 x20 / 十六进制的十六进制的20,相当于十进,相当于十进制的制的32n0 x1F / 十六进制的十六进制的1F,相当于十进,相当于十进制的制的31第8页/共95页第九页,共95页。n3.14 , 3.14e2, 0.168E-2 / 这些都是这些都是double类型常量,其中类型常量,其中3.14e2相当于相当于,n/ 0.618E-2 相当于相当于 3.14f, 0.168f / 这些都是这些都是float类型常量类型常量n 3.14D,
6、0.168d / 这些都是这些都是double类型常量类型常量n 3.14M, 0.168m / 这些都是这些都是decimal类型常量类型常量第9页/共95页第十页,共95页。416 X0041 。nUnicode码表示形式,以码表示形式,以“U”或或“u”开开始,后面跟始,后面跟4位位16进制数如:进制数如: U0041。n显式转换整数字符代码,如:显式转换整数字符代码,如:(char) 65。第10页/共95页第十一页,共95页。表表2.2 转义转义(zhun y)符符第11页/共95页第十二页,共95页。nC:windowsMicrosoft / 表示字符表示字符串串 C:window
7、sMicrosoftn(2) 逐字字符串逐字字符串n在常规的字符串前面加一个在常规的字符串前面加一个,就形成了,就形成了逐字字符串,它的意思是字符串中的每个逐字字符串,它的意思是字符串中的每个字符均表示本意,不使用转义字符。如果字符均表示本意,不使用转义字符。如果在字符串中需用到双引号,则可连写两个在字符串中需用到双引号,则可连写两个双引号来表示一个双引号。双引号来表示一个双引号。n例如:例如:nC:windowsMicrosoft / 与与C:windowsMicrosoft 含义相同含义相同nHe saidHello to me / 与与He saidHello to me 含义相同含义相
8、同第12页/共95页第十三页,共95页。第13页/共95页第十四页,共95页。n字母 | _ | 1 字母 | 数字| _ 0+n说明:n 0+ 表示 内的内容可以出现0次或任意多次n opt 表示 内的内容是可选的,最多出现一次n 1 表示 内的内容必须出现1次n | 由竖线分隔的内容任意选择一个第14页/共95页第十五页,共95页。nfloat y1=0.0, y2 =1.0, y3 ; / 说明的同时可以设置初始数值nstring char / 不合法,因为char是关键字nstring char / 合法nC#允许在任何模块内部声明变量,模块开始(kish)于“”结束于“”。每次进入声
9、明变量所在的模块时,则创建变量分配存储空间,离开这个模块时,则销毁这个变量收回分配的存储空间。实际上变量只在这个模块内有效,所以称为局部变量,这个模块区域就是变量的作用域。nC#中与变量相关的主题还有变量的类别、属性等,随着后面内容的展开你会对变量有更深地了解。第15页/共95页第十六页,共95页。n运算符 (4) 位运算符n(5) 赋值运算符 (6) 条件运算符 (7) 其它(分量运算符 ,下标运算符 等)第16页/共95页第十七页,共95页。其中:“+-*/ ”运算与一般代数意义(yy)及其它语言相同,但需要注意的是:当“/”作用到的两个操作数都是整型数据类型时,其计算结果也是整型。 表表
10、2.3 算术运算符算术运算符第17页/共95页第十八页,共95页。表表2.4 关系关系(gun x)运算符运算符C#中,简单类型和引用类型都可以通过= =或!=来比较它们的数据内容是否相等。对简单类型,比较的是它们数据值;而对引用类型来说,由于它的内容是对象实例的引用,所以若相等,则说明这两个引用指向同一个对象实例,如果要测试两个引用对象所代表的内容是否相等,则通常会使用对象本身所提供的方法,例如:Equals( )。第18页/共95页第十九页,共95页。nb1 = x ; b2 = b1; b3 = y ;nx = = y ; / 结果为truenb1 = =b2; / 结果为truenb1
11、!=b3; / 结果为truens1 = =s2; / 结果为falsens1 = =s3; / 结果为truen关系比较运算“, =, , flase在C#中是没有意义的。第19页/共95页第二十页,共95页。表表2.5 逻辑逻辑(lu j)运算符运算符假设p,q是两个bool类型的操作数,表2.6给出了这些逻辑运算的真假值。表表2.6 逻辑运算真值表逻辑运算真值表第20页/共95页第二十一页,共95页。YesYesNoNop | q执行流程计算p的值p值为真吗?计算q的值计算结果为true计算结果为falseq值为真吗?Yesq值为假吗?Nop & q执行流程计算p的值p值为假吗?
12、计算q的值计算结果为false计算结果为trueNoYes图图2.4 “&”和和 “|”运算运算(yn sun)执行流程图执行流程图第21页/共95页第二十二页,共95页。表表2.7 位运算符位运算符第22页/共95页第二十三页,共95页。 00011001000000100111100110110011 &10100110 11010010 11111011111110110111100110110011 |1001101101001010 1110001011111001 0111100110110011 1001101101001010 0110010010110101
13、1001101101001010 按位取反与逻辑(lu j)取反都是一元运算符,它对操作数上的每一位取反,1取反变为0,0取反变为1。第23页/共95页第二十四页,共95页。1 ) ;nn = n & 0 x7ffff ; / n 的最高位(第15位)置0,其它位不变nn = n | 0 x8000 ; / n 的最高位(第15位)置1,其它位不变n按位异或运算(yn sun)有一个特别的属性,假设有两个整型数x和 y,则表达式 (x y) y值还原为x,利用这个属性可以创建简单的加密程序。例如:nusing System;nclass Encode nnpublic static v
14、oid Main( ) n第24页/共95页第二十五页,共95页。nConsole.WriteLine (解码: + ch1 + ch2 ) ;nnn移位运算符有两个:一个左移()。其基本形式为:n value num_bitsn左操作数value是要被移位的值,右操作数num_bits是要移位的位数。第25页/共95页第二十六页,共95页。010110000001011000向左移动(ydng)2位 0 x1A(十进制26)经过左移2位运算,结果值是0 x68(十进制104),相当于对0 x1A的值乘以 但如果左移丢掉的位含有1,那么左移之后的值可能(knng)反而会变小。例: 0 x4A
15、2 ; 010100010101000111 空出的位补0010100010101000100 0 x8AU 2 空出的位补0右移运算符的作用(zuyng)基本上相当于将value的值整除以bitsnum_2 第27页/共95页第二十八页,共95页。换(显式类型转换)。一般(ybn)的原则是,从占用内存较少的短数据类型向占用内存较多的长数据类型赋值时,可以不做显式的类型转换,C#会进行自动类型转换,反之当从较长的数据类型向占用较少内存的短数据类型赋值时,则必须做强制类型转换。第28页/共95页第二十九页,共95页。一起构成复合赋值运算。一起构成复合赋值运算。表表2.8 复合复合(fh)赋值运算
16、赋值运算第29页/共95页第三十页,共95页。Exp3(zhngg)结果。n例如:nz = x y ? x : y ; / z 的值就是x,y中较大的一个值nz = x =0 ? x : -x ; / z的值就是x的绝对值第30页/共95页第三十一页,共95页。表表2.9 运算符的优先级与结合运算符的优先级与结合(jih)性性第31页/共95页第三十二页,共95页。double;n(3) 一个操作数是float类型,另一个操作数提升为float;n(4) 一个操作数是ulong类型,另一个操作数提升为ulong,但带符号数如sbyte,short,int或long不能自动提升;n(5) 一个操
17、作数是long类型,另一个操作数提升为long;n(6) 一个操作数是uint类型,另一个操作数若是sbyte,short或int,那么这两个操作数都提升为long;n(7) 一个操作数是uint类型,另一个操作数提升为uint;n(8) 除以上(yshng)情况之外,两个数值类型的操作数都提升为int类型。第32页/共95页第三十三页,共95页。nn if (条件表达式) 语句;n如果条件为真,则执行语句。在语法上这里的语句是指单个语句,若想执行一组语句,可加将这一组语句用“”和“”括起来构成一个块语句,当然在语法上块语句就是一条语句,n下面涉及到语句都是这个概念。n例如:nif ( xc
18、& b+ca & a+cb) / 判断数据合法性n n p = (a+b+c) / 2 ; n s = Math.Sqrt (p * (p-a) * (p-b) * (p-c) ) ; / 求三角形面积n第33页/共95页第三十四页,共95页。nif (a+bc & b+ca & a+cb) / 判断数据合法性判断数据合法性n n p = (a+b+c) / 2 ; n s = Math.Sqrt (p * (p-a) * (p-b) * (p-c) ) ; / 求三角形面积求三角形面积n n elsen Console.WriteLine ( 三角形的三条边三
19、角形的三条边数据有错!数据有错! ) ;第34页/共95页第三十五页,共95页。n语句语句3 ;nn else n语句语句n ;第35页/共95页第三十六页,共95页。nConsole.WriteLine ();n else if (studentGrade=80)n Console.WriteLine (成绩良好);n else if (studentGrade=60)n Console.WriteLine (成绩及格);n elsen Console.WriteLine (成绩不及格);第36页/共95页第三十七页,共95页。)0(1)0(0)0(1xxxy下面是用嵌套的if语句写的程序(
20、chngx)片断。y=0; if (x=0) if (x0) y=1 ; elsey=-1; 第37页/共95页第三十八页,共95页。n else y=-1; n通过对嵌套的if语句(yj)加“ ”,把离else最近的if语句(yj)屏蔽了,这样else就与if (x=0)匹配,从而正确地完成了这个函数的功能。第38页/共95页第三十九页,共95页。n break ;ncase 常量2:n语句序列2;n break ;n .n default: / default 是任选项,可以不出现n语句序列n;nbreak ;n第39页/共95页第四十页,共95页。defaul,则不执行任何操作。nC#的
21、switch语句(yj)需要注意以下几点:n(1) switch语句(yj)的表达式必须是整数类型,如char、sbyte、byte、ushort、short、uint、int、ulong、long或string、枚举类型,case常量必须是与表达式类型相兼容,case常量的值必须互异,不能有重复。n(2) 将与某个case相关联的语句(yj)序列接在另一个case语句(yj)序列之后是错误的,这称为“不穿透”规则,所以需要跳转语句(yj)结束这个语句(yj)序列,通常选用break语句(yj)作为跳转,也可以用goto转向语句(yj)等。“不穿透”规则是C#对C、C+、Jave这类语言中的s
22、witch语句(yj)的一个修正,这样做的好处是:一是允许编译器对switch语句(yj)做优化处理时可自由地调整case的顺序;二是防止程序员不经意地漏掉break语句(yj)而引起错误。n(3) 虽然不能让一个case的语句(yj)序列穿透到另一个case语句(yj)序列,但是可以有两个或多个case前缀指向相同的语句(yj)序列。第40页/共95页第四十一页,共95页。第41页/共95页第四十二页,共95页。n语法形式:n while (条件表达式) n循环体语句;n如果条件表达式为真(true),则执行循环体n语句。while语句执行流程如图2.5所示。T条件表达式循环体语句F图图2.
23、5 while语句语句(yj)执行流程图执行流程图第42页/共95页第四十三页,共95页。n Sum+=i;n i+;n n Console.WriteLine (Sum is + Sum);n n1001ii第43页/共95页第四十四页,共95页。环语句执行流程如图环语句执行流程如图2.6所示。所示。FT循环体语句 条件表达式图图2.6 do_while 语句语句(yj)执行流程图执行流程图 第44页/共95页第四十五页,共95页。1001ii第45页/共95页第四十六页,共95页。环(xnhun)控制变量的初值;表达式2是bool类型的表达式,作为循环(xnhun)控制条件;表达式3是设置
24、循环(xnhun)控制变量的增值(正负亦可)。TF计算表达式2计算表达式1循环体语句计算表达式3图图2.7 for语句语句(yj)执行流程图执行流程图第46页/共95页第四十七页,共95页。1001ii第47页/共95页第四十八页,共95页。第48页/共95页第四十九页,共95页。1001ii第49页/共95页第五十页,共95页。n public static void Main ( ) n nint Sum =0;n for (int i=1; i=100; i+) / i只在这个for循环(xnhun)中有效nSum+=i;n Console.WriteLine (i = + i ); /
25、 编译出错,i这时已经无效n Console.WriteLine (Sum is + Sum);n n1001ii第50页/共95页第五十一页,共95页。环体语句,对while和do_while结构的循环,在continue执行之后就立刻测试循环条件,以决定循环是否(sh fu)继续下去;对for结构循环,再continue执行之后,先求表达式3(即循环增量部分),然后再测试循环条件。通常它会和一个条件语句结合起来用,不会是独立的一条语句,也不会是循环体的最后一条语句,否则没有任何意义。n如果continue语句陷于多重循环结构之中,它只对包含它最内层循环有效。第51页/共95页第五十二页,共
26、95页。ncontinue ; / 如果如果n不能不能被被3整除,则直接进入整除,则直接进入(jnr)下一轮循环下一轮循环n Console.WriteLine (n ); / 只有能只有能被被3整除的数,才会执行到此整除的数,才会执行到此n n n第52页/共95页第五十三页,共95页。第53页/共95页第五十四页,共95页。第54页/共95页第五十五页,共95页。第55页/共95页第五十六页,共95页。n(0,-4,m ); n if (+n %10 =0)nConsole.WriteLine (n );n nnConsole.Read ();nnn第56页/共95页第五十七页,共95页。
27、图图2.8 求求1100之间所有素数运行之间所有素数运行(ynxng)结果结果第57页/共95页第五十八页,共95页。n另外另外goto语句如果用在语句如果用在switch语句中,它的语句中,它的格式是:格式是:n goto case 常量常量;n goto default ;n它只能在本它只能在本switch语句中从一种情况转向另语句中从一种情况转向另一种情况。一种情况。第58页/共95页第五十九页,共95页。第59页/共95页第六十页,共95页。图图2.9 百钱百鸡问题百钱百鸡问题(wnt)的运行结果的运行结果第60页/共95页第六十一页,共95页。第61页/共95页第六十二页,共95页。
28、第62页/共95页第六十三页,共95页。图图2.10 课程表查询课程表查询(chxn)程序运行结果程序运行结果 第63页/共95页第六十四页,共95页。第64页/共95页第六十五页,共95页。第65页/共95页第六十六页,共95页。第66页/共95页第六十七页,共95页。nint jagged ; / jagged是一是一个个int类型的二维不规则数组类型的二维不规则数组n创建数组对象创建数组对象n以二维不规则数组为例:以二维不规则数组为例:nint jagged;njagged = new int 3 ;njagged0 = new int 4;njagged1 = new int 2;nj
29、agged2 = new int 6;第67页/共95页第六十八页,共95页。ntype arrayName = new type val1, val2, ,valn ;n省略size,由编译系统根据初始化表中的数据个数,自动计算数组的大小。n语法形式3:ntype arrayName = val1, val2, ,valn ;n数组声明(shngmng)与初始化同时进行,还可以省略new运算符。n语法形式4:ntype arrayName ;narrayName = new type size val1, val2, ,valn ;第68页/共95页第六十九页,共95页。nnums = ne
30、w int 10 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ; 第69页/共95页第七十页,共95页。行分别用一个花括号括起来,每个花括号行分别用一个花括号括起来,每个花括号内的数据就是这行的每一列元素的值,初内的数据就是这行的每一列元素的值,初始化时的赋值顺序按矩阵的始化时的赋值顺序按矩阵的“行行”存储原则。存储原则。n语法形式语法形式2:ntype arrayName = new type , val11, val12, ,val1n ,n val21, val22, ,val2n , valm1, valm2, ,valmn ;n省略省略size,由编译系统根据初始化表中
31、花括,由编译系统根据初始化表中花括号号的个数确定行数,再根据的个数确定行数,再根据内的数据确内的数据确定列数,从而得出数组的大小。定列数,从而得出数组的大小。n语法形式语法形式3:ntype , arrayName = val11, val12, ,val1n ,n val21, val22, ,val2n , valm1, valm2, ,valmn ;n数组声明数组声明(shngmng)与初始化同时进行,与初始化同时进行,还可以省略还可以省略new运算符。运算符。第70页/共95页第七十一页,共95页。同的。同的。nint , a = new int 3,4 0, 1, 2, 3, 4,
32、5, 6, 7, 8, 9, 10, 11 ;nint , a = new int , 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ;nint , a = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ;nint a ;na = new int 3, 4 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ;第71页/共95页第七十二页,共95页。val2, , valn1;narrayName1 = new type size1 val1, val2, , valn2;n n例如:例如:nchar st1 = n
33、ew char 3 ; / st1是由三个数组组成的数组是由三个数组组成的数组nst10 = new char S, e, p, t, e, m, b, e, r ;nst11 = new char O, c, t, o, b, e, r;nst12 = new char N, o, v, e, m, b, e, r ; 第72页/共95页第七十三页,共95页。相对位移,记住相对位移是从0开始的,所以下标(xi bio)的值从0到数组元素的个数-1为止。第73页/共95页第七十四页,共95页。nmax = min = queue0;nfor ( int i = 1; imax) max=queuei;nif (queueimin) min=queuei;nnConsole.WriteLine(最大数是0,最小数是1, max, min );nn第74页/共95页第七十五页,共95页。第75页/共95页第七十六页,共95页。第76页/共95页第七十七页,共95页。161520156115101051146411331121111第77页/共95页第七十八页,共95页。第78页/共95页第七十九页,共95页。第79页/共95页第八十页,共
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- HY/T 0497-2025雷达自动验潮仪
- 企业管理-PNC(规划-导航-控制)管理制度
- 龙岩市五县重点达标名校2026年初三中考总复习单元同步滚动测试卷物理试题含解析
- 陕西商南县2025-2026学年初三1月阶段测试数学试题试卷含解析
- 2026年云南省施甸县初三第一次质量预测数学试题含解析
- 四川省成都市高新南区重点名校2026届初三数学试题二模试卷含解析
- 2026年四川省简阳市简城区初三下学期第一次联考物理试题试卷含解析
- 安徽界首地区市级名校2025-2026学年初三下学期8月开学数学试题含解析
- 广西南宁市青秀区第二中学2026届初三4月调研测试(二模)物理试题含解析
- 高中语文《登岳阳楼》课件+统编版高一语文必修下册
- 5.1人民代表大会制度 课件(23张幻灯片)+内嵌视频 道德与法治统编版八年级下册
- 高考18个文言虚词用法详解
- 超高性能混凝土进展及工程应用
- 旋毛虫法语课件
- 五原县供热工程专项规划(2014-2030年) 说明书
- 上海市2023年基准地价更新成果
- 拔牙术拔牙并发症
- 选派援疆医疗卫生人才协议书
- XB/T 405-2016铈铁合金
- GB/T 9966.16-2021天然石材试验方法第16部分:线性热膨胀系数的测定
- GB/T 3733.2-1983卡套式端直通接头体
评论
0/150
提交评论