版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1本章教学目标理解C#语言的基本字符集和词汇集理解C#的数据类型和常量、变量的定义方法,掌握简单数据类型转换的方法熟练掌握C#的运算符,掌握利用变量、常量和运算符构成表达式的方法22.1C#的基本字符集数字:
0123456789英文字母:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz特殊字符:
Space!“#$%&‘()*+,-./:;<=>?@[\]^_{|}~3C#的关键字abstract
event
new
struct
as
explicit
null
switch
base
extern
object
this
bool
false
operator
throw
break
finally
out
true
byte
fixed
override
try
case
float
params
typeof
catch
for
private
uint
char
foreach
protected
ulong
checked
goto
public
unchecked
class
if
readonly
unsafe
const
implicit
ref
ushort
continue
in
return
using
decimal
int
sbyte
virtual
default
interface
sealed
volatile
delegate
internal
short
void
do
is
sizeof
while
double
lock
stackalloc
else
long
static
enum
namespace
string
42.2C#的简单数据类型5标识符的命名规则第一个字符必须是英文字母(也可以是汉字、希腊字母、俄文字母等其他Unicode字符)。从第二个字符开始,可以使用英文字母、数字和下划线,但不能包含空格、标点符号、运算符号等字符。不能与关键字重名,但如果在关键字前面加上@前缀,也可以成为合法标识符(不推荐,一般不要这样用)。长度不能超过255个字符。6实例2.1例2.1
在控制台应用程序中使用无符号整数变量,企图用来保存负数时出现的错误。创建控制台应用程序以后,删除可以省略的代码行,代码如下:usingSystem;classcalculation{staticvoidMain(){
ushort
a,b,c; //定义了3个无符号短整型变量
a=8; b=6; c=b-a; //表达式的值为负,无法向变量c赋值
Console.WriteLine(c);}}7实例2.2例2.2
在控制台应用程序中使用无符号短整数变量,企图存储的数值过大而导致的溢出错误。usingSystem;classcalculation{staticvoidMain(){shorta,b,c; //定义了3个短整型变量
a=51200; //常量51200超出了short类型的表达范围
b=16;c=a*b; //表达式的值超出了short类型的表达范围
Console.WriteLine(c);}}8常用的转义字符转义字符意义Unicode编码(十六进制)\′单引号\u0027\"双引号\u0022\\反斜杠\u005C\0空字符(null)\u0000\a响铃\u0007\b退格(从当前位置后退一列)\u0008\f换页(从当前位置移到下页的开头)\u000C\n换行(从当前位置移到下一列的开头)\u000A\r回车(从当前位置移到本行的开头)\u000D\t水平制表(跳到下一个Tab位置)\u0009\v垂直制表\u000B9实例2.3例2.3利用转义字符,使计算机发出响铃声的控制台应用程序。usingSystem;classbell{staticvoidMain(){
charx,y; //声明字符型变量x,y
x='\a'; //向变量x赋值为表示响铃的转义字符
y='\''; //向变量y赋值为表示单引号的转义字符
Console.Write("您将听到{0}计算机小喇叭{1}发出的一声响",y,y);
Console.WriteLine(x); //计算机小喇叭发出响铃声
}}10实例2.4例2.4利用Unicode编码值向字符型变量赋值的控制台应用程序。usingSystem;classunicode{staticvoidMain(){chara,b; //声明了两个字符型变量a和b
a='\u59DA'; //向字符型变量a赋予一个Unicode编码值
b='\u660E'; //向字符型变量b赋予另一个Unicode编码值
Console.WriteLine("你输入的两个Unicode编码的意思是:{0}{1}",a,b);
}}11实例2.5例2.5下列控制台应用程序执行时,向单精度浮点变量x赋值3.14159326,查看输出结果。usingSystem;classsingle{staticvoidMain(){floatx; //定义变量x为单精度浮点类型
x=3.1415926f;//若省略后缀f,则认为是double类型,发生错误
Console.WriteLine(x);}}12实例2.6例2.6下面的控制台应用程序用于计算3的平方根,结果保存在双精度变量x中。usingSystem;classsingle{staticvoidMain(string[]args){doublex;x=Math.Sqrt(3);
//计算平方根
Console.WriteLine("3的平方根=
{0}",x);
}}
13实例2.7例2.7用浮点类型进行数值计算时可能出现的误差。usingSystem;classmiscount{staticvoidMain(){doublex,y,z; //定义了三个双精度浮点类型变量
x=10; //向变量x赋以常数值时,默认类型为double
y=9.90; //向变量y赋以常数值时,默认类型为double
z=x-y; //将算术表达式x–y的值赋给double变量z
Console.WriteLine("浮点数计算{0}-{1}={2}",x,y,z);
}}14实例2.8例2.8
用decimal类型进行带有小数的数值计算时可以避免误差。usingSystem;{staticvoidMain(string[]args){decimalx,y,z;x=10M; //decimal类型的常数值后面必须跟一个M或my=9.9M;z=x-y;
Console.WriteLine("十进制小数计算{0}-{1}={2}",x,y,z);}}152.3变量2.3.1声明变量2.3.2变量的初始化操作与初值
16实例2.9例2.9
企图引用未初始化变量的控制台应用程序。usingSystem;classcalculation{staticvoidMain(){
inta,b,c;c=a+b;
Console.WriteLine(c);}}172.3.3简单类型数据之间的转换
简单类型允许隐式转换到的类型sbyteshort、int、long、float、double、decimalbyteshort、ushort、int、uint、long、ulong、float、double、decimalshortint、long、float、double、decimalushortint、uint、long、ulong、float、double、decimalintlong、float、double、decimaluintlong、ulong、float、double、decimallongfloat、double、decimalulongfloat、double、decimalcharushort、int、uint、long、ulong、float、double、decimalfloatdouble18实例2.10例
2.10计算圆面积的控制台应用程序。usingSystem;classarea{staticvoidMain(){doublemyarea,pi=3.14159;//定义了两个双精度浮点类型变量
intradius=8; //定义了整型变量
myarea=pi*radius*radius;//整数类型与浮点类型的混合运算
Console.WriteLine("圆的面积={0}",myarea);
}}19实例2.11例2.11
将三基色(R、G、B)表示的彩色像素转换成灰度像素的计算公式为
Gray=0.30R+0.59G+0.11B根据这个公式计算出任意一个指定像素的灰度值。程序代码如下:usingSystem;classpixel{staticvoidMain(){bytegray;byter=240,g=201,b=129;
//像素的三基色分量值
gray=(byte)(0.30*r+0.59*g+0.11*b); //显式转换成byte类型
Console.WriteLine("计算得到的像素灰度值={0}",gray);
}}202.5运算符与表达式运算符运算表达式示例+加法x+y-减法x-y*乘法x*y/除法x/y%求模x%y++自增x++++x--自减x----x表2-5C#算术运算符21加法运算符的多重作用两个操作数均为数字,相加的结果为两个操作数之和两个操作数均为字符串,把两个字符串连接在一起两个操作数分别为数字和字符串,则先把数字转换成字符串,然后连接在一起两个操作数分别为数字和字符,则先把字符转换成Unicode代码值,然后求和22算术运算符的优先级当一个表达式中含有多种算术运算符时,将按以下顺序求值:乘、除运算符(*/)求模运算符(%)加、减运算符(+-)23关系运算符关系运算符测试关系表达式示例==相等x==y!=不相等x!=y<小于x<y>大于x>y<=小于或等于x<=y>=大于或等于x>=y24逻辑运算符1.!(非)唯一的单目逻辑运算符。它的结果是操作数原有逻辑值的反值。2.&&(与)只有左、右操作数的值都为True时,结果为True,否则结果为False。3.||(或)左、右操作数只要有一个为True,结果即为True。仅当左、右操作数的值均为False时,结果才为False。25位运算符
1.~(按位取反)将二进制数的各位取原有值的反值。即原来为0,取反为1;原来为1,取反为0。2.&(对应位“与”)只有左、右操作数对应位的值都为1时,结果为1,否则结果为0。3.|(对应位“或”)左、右操作数只要对应位有一个为1,结果即为1。仅当左、右操作数的值均为0时,结果才为0。4.^(对应位“异或”)当左、右操作数对应位的值相同(即都为1或0)时,结果为0,否则结果为1。5.<<(左移)将二进制操作数的各位向左移若干位,相当于逐次乘2的操作。6.>>(右移)将二进制操作数的各位向右移若干位,相当于逐次除2的操作。262.6枚举与结构枚举(enumeration)
有限、可数的数据元素组成的集合星期一到星期日7个数据元素组成的集合一年内12个月组成的集合在C#语言中,枚举是用标识符表示的整型常量的集合,枚举成员是具有整数类型的符号常量什么叫“屈指可数”?什么叫“不胜枚举”?27声明枚举类型的一般形式enum
枚举名[:基本数据类型]{枚举常量列表}其中:enum
:定义枚举类型的关键字枚举名:定义枚举类型时赋予的名称基本数据类型:可选,指定枚举成员的基本数据类型,默认为int枚举常量列表:用标识符组成的列表,两个相邻的枚举成员之间用逗号分隔28定义星期enum
weekDays{ Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday}默认Sunday=0Saturday=?29定义枚举时指定枚举成员的值enum
weekDays{ Monday=1,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday}Monday=1Saturday=?Sunday=?30定义太阳系中行星轨道周期的枚举enum
planetPeriods{Mercury=88,Venus=225,Earth=365,Mars=687}31实例2.18例2.18
创建Windows窗体应用程序,显示太阳系中水星、金星、地球以及火星的轨道周期(即绕太阳一圈的天数)enum
planetPeriods:int
//声明枚举{Mercury=88,Venus=225,Earth=365,Mars=687}privatevoidForm1_Click(objectsender,EventArgse){label1.Text+=“水星周期"+(int)planetPeriods.Mercury+"天\n";label1.Text+="金星周期"+(int)planetPeriods.Venus+"天\n";label1.Text+="地球周期"+(int)planetPeriods.Earth+"天\n";label1.Text+="火星周期"+(int)planetPeriods.Mars+"天\n";}32结构结构:多个不同数据类型的相关元素组合在一起而形成的一种数据结构声明结构类型的一般形式:struct
结构名{
结构成员声明语句1;结构成员声明语句2;…
结构成员声明语句n;}33例如,下面的语句声明了一个Student结构:structStudent{publicstringname;publicstringsex;publicuintage;publicstringphone;publicuintscore;}34实例2.19usingSystem;usingSystem.Windows.Forms;namespaceex2_18{publicpartialclassForm1:Form{publicForm1(){
InitializeComponent();}
structStudent//声明结构
{------------------------------------//见下页
}}例2.19创建一个名为Student的结构,并且对它的成员执行读写操作35实例2.19(声明结构)structStudent //声明结构{publicstringname;//姓名(字符串类型)publicstringsex;//性别(字符串类型)publicuintage;//年龄(无符号整数)publicstringphone;//电话号码(字符串类型)publicuintscore;//成绩(无符号整数)}36实例2.19(事件过程)privatevoidForm1_Click(objectsender,EventArgse){Studentstudent1; //创建Student类型的一个实例
="田一妮";student1.sex="女";student1.age=19;student1.phone="68752220";studen
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 脚链市场发展前景分析及供需格局研究预测报告
- 垃圾焚化行业市场调研分析报告
- 含有电导体丝的玻璃产品供应链分析
- 电子防盗报警器项目运营指导方案
- 储热型取暖器产品供应链分析
- 药用石斛茎市场分析及投资价值研究报告
- 电动开窗器产品供应链分析
- 牛油杯细分市场深度研究报告
- 草垫机细分市场深度研究报告
- 花盆托架细分市场深度研究报告
- 湖北省荆楚初中名校联盟2023-2024学年七年级上学期期中数学试题
- 高教社马工程经济法学(第三版)教学课件13
- 学校课程整体框架图
- 力学原来这么有趣
- 《如何上好一堂课》课件
- 10G409《预应力混凝土管桩》
- 竣工测量技术规程
- 医学影像设备学试题库
- 大单元背景下的高中数学高效课堂构建 论文
- 武汉市某房地产项目可行性报告
- 基于Android平台的天气预报系统设计
评论
0/150
提交评论