2024年1月27日发(作者:)

C#程序设计

一、单选题

C#语言取消了( )语法。B. 指针

B

C

C

A

A

在C#语言中,下列能够作为变量名的是( )。 C. a_3b

C#语言从( )语言演化而来。C. C和C++

保存所有打开的文件使用的快捷键是( )。A. Ctrl+S

.NET 是一个用于建立应用程序的平台,它在内部封装了大量的功能强大的( ),利用这些函数可以开发各类Windows 应用软件。

A. 运行时库(CLR)

(Text, Title, Buttons, Icon, Default);方法中,修改消息框的标题可以设置哪个参数?( ) B. Title

B

修改控件的BackColor 属性可改变控件的( )。C. 背景色

设有定义变量:char w; int x; float y; double z;则表达式w﹡x+z-y 值的数据类型为( )。D. double

关于运算符 & 和 && ,以下说法正确的是( )。D. & 可以用于整型数值运算,而 && 不能

已知字母A 的ASCII 码为十进制数65,且i 为整型,则执行语句i=‘A’+‘6’-‘3’后,i 中的值为 ( )B. 68

若有语句“char a;”,要求把字符a 赋给变量a,下面的表达式正确的是( )。B. a='a';

每个case 子句,包括default 子句内必须包含( )语句。C. break

C

D

D

B

B

C

D

C

D

D

A

B

声明一个数组:int[,] arr=new int[3,5],请问在这个数组内包含有多少个元素?( )D. 15

'5' + 12 的结果是什么数据类型?( )C. int

关于形参和实参关系的描述错误的是( )。D. 名称相同

复选框(CheckBox)的CheckState 属性表示三种状态,以下描述错误的一项是( )。D. 不可见状态

下述强制类型形式正确的是( )。A. (类型)(表达式);

当a=150 时运行下列代码,最后a 结果为( )。

if (a > 100)

{a=100+1}

else if(a > 200)

{a=100+2}

else {a=100+3}

B. 101

if语句后面的表达式应该是( )。A. 逻辑表达式

下列哪种if 语句的形式是错误的?( )C. if (表达式)then{语句块1}else{语句块2}

case 标签后面的值必须是( )表达式。A. 常量

switch 语句是一个( )语句。D. 多分支

条件判断语句是通过判断( )而选择执行相应语句的。A. 给定条件

执行语句:

int i;

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

后变量 i 的值是( )。C. 5

A

A

C

A

D

C

模式窗体的打开,一般使用哪种方法?( )C. alog();

finally语句包含了( )。 D. 异常处理程序

以下程序段的运行结果是( )。

int i = 0;

while(i++ <= 2);

ine(i);

B. 4

以下哪个属性用于保存数组中当前包含的元素总数?( )

B. Length

具有n 个元素的数组的索引是0~( )。

A. n-1

请指出下列哪个选项属于引用类型?( )

B. string

在程序中加入( )可以提高程序的可读性,使程序易于阅读和理解。 B. 【代码注释】

能返回数组arr第一维最大下标值的是( )。

C. erBound (0)

二维数组就像一个具有行和列的表格一样,如要将第3行第2 列的元素赋值为10,则可表示为( )。

D. arr[2,1]=10;

当SizeMode 属性取何值时,PictureBox 中的图像被拉伸或收缩,以适合 PictureBox的大小?( )

A. StretchImage

关于数组参数的描述不正确的是( )。

B. 数组型参数允许使用ref和out修饰符

要使控件外观为三维,应将控件的FlatStyle 属性值设置成( )。

C. Standard

用于设置菜单项快捷键的属性是( )。

A. ShortcutKeys

以下用来设置窗体标题属性的是哪一个?( )

B. Text

窗体可以创建为( )。

C. 模式和非模式窗体

用户自定义异常类需要从以下哪个类继承?( )

A. Exception

窗体的哪个属性用于指示是否在窗体的标题栏中显示图标?( )

C. ShowIcon

使得程序直接跳出方法体,回到调用方法处的语句是( )。

D. return

关于catch语句块说法正确的是( )。

B. 声明有可能会引发异常的语句块

A

A

A

C

D

B

B

A

B

B

C

D

B

C

B

C

C

D

B

二、判断题

C/C++语言的复杂性比C#语言高。( )

C#语言是从C和C++语言演化而来的。( )

在C#中保留了指针这一语法。 ( )

C#不适合开发与硬件密切相关的代码,比如网卡的驱动程序、数据采集系统的接口控制程序等。( )

C#程序必须包含一个Main 方法。( )

WriteLine 方法,是类库中Console 类的输入方法之一。( )

“//”开始的注释称为“多行注释”。 ( )

锁定控件操作不能锁定全部控件。( )

T

T

F

T

T

F

F

F

最简单的控件是标签控件。( )

在标识符的命名中不能包含空格。( )

int a = 2.5 语句定义了一个实数。( )

在C#中实数不能进行模运算。( )

表达式18 / 4 * sqrt(4.0) / 8 值的数据类型为int。( )

在C#中只有一个三元运算符。( )

&& 操作符可以用于对整数进行运算。 ( )

!false || !true 的结果是 false。( )

Timer 控件只有唯一的事件,即Tick 事件。 ( )

& 既可以用于整数运算,也可以用于bool 值运算。 ( )

C#中条件判断语句只有一种if 语句。( )

for 语句的3 个表达式都可以省略。( )

三种循环(while 循环、do…while 循环和for 循环)可以互相嵌套。( )

数组是具有相同类型的一组数据。( )

在声明或创建数组时,[]内的逗号数目即为数组的维度数。( )

Brush对象可以用于绘制线条。( )

方法体中任何位置可以出现任意数目的return语句,但只有最后一个renturn语句能在赋予返回值的同时退出方法。( )

Point结构与PointF结构的区别是Point结构存储int类型,而PointF结构存储float类型。( )

不能在指定的矩形内绘制图象。( )

当一个窗体改变大小时,不会触发窗体的Paint事件。( )

Picture 属性用于获取或设置PictureBox 显示的图像。( )

窗体的客户区域指的是整个窗体。( )

方法可以不带参数,也可以带多个参数。( )

Enabled 属性用来设置控件的可见性。如果将其设置为false,则将隐藏该对象。( )

当需要用户在多个选项中选择多个项时,可以使用复选框(CheckBox)或复选列表框(CheckedListBox)。

( )

if 语句中的语句块只包含一条语句时,可以把大括号省略掉。( )

CheckBox 的CheckState 属性只有勾选和未勾选两种状态。( )

MDI 子窗体是一种较特殊的窗体,包含并不完全显示在主窗体之内。( )

模式窗体很多情况下都作为对话框存在,为了节省任务栏的宝贵空间,应该把ShowInTaskbar 设置为true。( )

赋值运算符的优先级最低。( )

T

T

F

F

F

T

F

F

T

T

F

T

T

F

F

F

T

F

F

F

F

T

F

T

T

F

F

T

B

三、填空题

在简化语法的同时,C#并没有失去________。 灵活性

Maximized

要使窗体运行最大化,可通过设置其WindowState 属性值为____________来实现。

C#的先进设计思想可以消除软件开发中的许多常见错误,并提供了包括类型安全在内安全性能

的完整的________。

________是用户与 MDI 应用程序在其中进行交互的子窗口。 MDI 子窗口

通常情况下,在 finally

块内放置的是清理资源的代码。

.NET 开发平台向广大的程序员提供了功能强大的__________。 集成开发环境(IDE)Visual

重载

在一个类中允许有同名的方法存在,这称为方法的__________。

在Windows 中,使用列表框输入数据是________的重要手段。 保证数据标准化

用户可以使用________控件编辑和显示文本。 文本框(TextBox)

Button 控件最常用的事件是________。

设置________属性可以调整文本对齐方式。

使对象对某些预定义的外部动作进行响应称为________。

在Visual Studio 2005 中,按Ctrl+F 快捷键打开【查找和替换】对话框,它就是一个___________窗体。

12 +'a' 的结果为________。

C#语言的各类数据类型之间提供两种转换:________和显式转换。

t('b')的结果为________。

(2.24,1 )=________。

C#中唯一的三元运算符是________。

当if 的表达式返回true 值时,将________,当表达式返回false 值时,将跳过语句块;执行大括号后面的语句。

3>2 && 5!=6 的结果是________。

'6' * '7' 的结果是________。

表达式 x = 3 * (y = 6) 的值为________。

条件判断语句和________是所有程序设计语言的基础内容。

数组是具有相同__________________的一组数据。

case 和default 标签以________结束。

一个解决方案中可以包含多个项目,它使用户能够方便地组织需要开发和设计的项目文件,以及配置________。

用while 语句表达式进行判断,一直到表达式返回________值时,才会跳出语句块。

顺序结构、选择结构和________是结构化程序的三种基本结构。

do…while 语句是先执行________,再判断条件是否为真。

符合IEEE 规范的浮点类型包括________和双精度两种。

在C#中,使用________关键字创建数组的对象。

基本数据类型是值类型,数组是________类型。

在程序运行时可以动态地改变其长度的数组被称为________。

8 / 3 的结果是________。

________事件是把窗体载入工作区时所发生的事件。

下拉式菜单由________、菜单标题、菜单项组成。

无论try块中的语句是否发生异常,总是执行__________块中的语句。

是一个结构体,表示在二维平面中来表示一个矩形。

C#中可以使用

类和 RectangleF 类来表示一个矩形。

要使以下程序段输出10 个整数,请填入一个整数________。

for(int i = 0;i <= ____;i += 2)

{

ine(i);

}

C#中的变量从作用域上来说分为局部变量和___ ___。

在方法中直接或间接地调用自己称为方法的__ ____。

.NET 的核心是_________。

Click

TextAlign

事件

非模式

109

隐式转换

false

2.2

?:

执行大括号里的语句块

true

2970

18

循环语句

类型

break

应用程序或组件

false

循环结构

循环体

单精度

new

引用

动态数组

2

Load

菜单栏

异常处理程序

Point

Rectangle

18

MessageBox 最常用的方法是________。

108 % 12 的结果是________。

模式窗体另一个很重要的特征是在被关闭时,会返回一个________类型的值。

成员变量

递归

Microsoft .NET

Framework(微软.NET框架体系)

Show

0

DialogResult

模式窗体都具备一定的特征,这些特征可以通过________、ShowInTaskbar、FormBorderStyle 、lBox 等属性来设置。

在C#中一般使用 进行绘图。

if 语句中的表达式可以是关系表达式或________。

finally语句包含异常处理程序和 。

声明方法时不带任何修饰符的参数是 。

一个循环体内又包含另一个完整的循环结构,称为________。

引用类型对象之间的赋值只是复制对象的引用________,而不是对象的内容。

方法的返回值可以通过方法体中的______语句获得。

当一个RadioButton 的Checked 属性值发生改变时,将会触发________事件。

如果方法没有返回值,则方法的返回类型为___________。

ShowIcon

GDI+

逻辑表达式

清理代码

值参数

循环的嵌套

地址

return

CheckedChanged

void

四、简答题

简述C#语言的特点。

请说明C#标识符命名规则。

①简洁易用的语法。② 自动的资源回收机制。③ 与Web的紧密结合。④

完整的安全性与错误处理。⑤ 版本处理技术。⑥ 灵活性和兼容性。

不能跟系统关键字重名。

标识符由字母、下划线“_”、数字或中文组成。

标识符应以字母、中文或下划线开头。

标识符中间不能包含空格。

C#标识符大小写敏感。

for语句的一般表现形式为:

for (表达式1;表达式2;表达式3)

{

语句块

}

for语句的执行顺序如图所示,其中,当表达式2的值为假时,则直接跳出循环。

表达式1:一般情况下用于给循环变量赋初值。

表达式2:返回值必须是一个bool值,作为循环是否继续执行的条件。

表达式3:一般情况下用于给循环变量增值。

switch关键字后面的表达式,其值的类型必须是字符串或整数(char、int、long),都属于整数类型。

case标签后面的值必须是常量表达式,不允许使用变量。

case和default标签以冒号而非分号结束。

case标签后面的语句块,无论是单条语句还是多条语句,都无需用括号包围。

default标签可以有,也可以没有。case子句的排放顺序是无关紧要的,甚至可以把default子句放在最前面。

请列出图片框(PictureBox)支持哪几种类型的图像,并进行简单的说明。

位图(bitmap):是将图像定义为像素的图案,这种图像格式体积很大,未经压缩。位图文件的扩展名是.bmp或.dib。

图标(icon):是特殊类型的位图。图标的最大尺寸为32×32像素。图标文件的扩展名是.ico。

Windows文件(metafile):将图形定义为编码的线段和图形。普通图元文件扩展名为.wmf,增强图元文件扩展名为.emf。

请说明for 语句的用法。

使用switch 语句时需要注意什么?

GIF:由CompuServe开发的一种压缩位图格式,是Internet上流行的一种文件格式。

JPEG:是一种支持8位和24位颜色的压缩位图格式,也是Internet上流行的请简述Array 和ArrayList 主要的区别。

一种文件格式。

(1) Array 的容量是固定的,而 ArrayList的容量可根据需要自动扩充。

(2) ArrayList提供添加、插入或移除某一范围元素的方法。在 Array 中,您只能一次获取或设置一个元素的值。

(3) Array 可以具有多个维度,而 ArrayList始终只是一维的。

方法允许将程序分为不连续的逻辑单元。调试单独的单元与调试不包含方法的整个程序相比要容易得多。

可以在其他程序中使用为某个程序开发的方法,而通常只需要进行少量修改,甚至不需要修改。

请简述什么是递归。

请简述非模式窗体和模式窗体的区别。

在方法中直接或间接地调用自己叫方法的递归调用。树型关系问题的求解往往需要使用到递归算法。

(1)打开一个非模式窗体后,用户可以跟应用程序的其他部分交流,而模式窗体不行。这意味着,程序在执行到创建模式窗体的代码时,会停下来等待模式窗体关闭后再继续往下执行。而程序在打开非模式窗体的同时会继续往下执行后面的代码。

(2)非模式窗体没有返回值,模式窗体有返回值。

(3)关闭非模式窗体会直接在内存中释放窗体,而模式窗体则不会。

(4)非模式窗体使用Show方法创建,模式窗体使用ShowDialog方法创建。

请简述用方法构造代码的好处。

五、编程题

从键盘上输入4 个数,编写程序,计算出这4 个数的平均值。

private void button1_click(object sender, eventargs e)

{

double a = ();

double b = ();

double c = ();

double d = ();

= ng((a + b + c + d) / 4);

}

定义两个包含5 个元素的整型数

private void button1_click(object sender, eventargs e)

组x 和y,并对数组x 进行初始化, {

编程实现颠倒数组x 元素值的顺 int[] x = new int[] { 1, 2, 3, 4, 5 };

序,并将它们存储到数组y 中。

int[] y = new int[5];

string output1 = "x数组:";

string output2 = "y数组:";

for (int i = 0; i < 5; i++)

{

y[i] = x[4 - i];

output1 += x[i] + "t";

output2 += y[i] + "t";

}

(output1 +"n"+ output2);

}

设计一个列表框程序,要求利用文本框添加项目到右边的列表框,通过按钮控件实现2 个列表框之间进行的项目转换。

private void button1_click(object sender, eventargs e)

{

();

}

private void button3_click(object sender, eventargs e)

{

(editem);//添加到左边

(editem); //删除选中项

}

private void button2_click(object sender, eventargs e)

{

(editem);//添加到右边

(editem); //删除选中项

}

一个称为“身体质量指数”(BMI)的量用来计算与体重有关的健康问题的危险程度。

BMI 按以下的公式计算:BMI =

private void button1_click(object sender, eventargs e)

{

float w = ();

float h = ();

= ng(w / (h * h));

}

Wh2

其中 W 是以kg 为单位的体重。h

是以m 为单位的身高。大约20~25 的BMI 的值被

认为是“正常的”,编写一个应用程序,输入体重和身高并输出BMI。

设计一个消息框程序,要求显示5 种常用的消息框类型。

private void button1_click(object sender, eventargs e)

{

("消息内容", "返回值 确定1",

, on);

}

private void button2_click(object sender, eventargs e)

{

("消息内容", "返回值 确定1 取消2",

el, sk);

}

private void button3_click(object sender, eventargs e)

{

("消息内容", "返回值 终止3 重试4 忽略5",etryignore, );

}

private void button4_click(object sender, eventargs e)

{

("消息内容", "返回值 是6 否7 取消2",

ancel,

ation);

}

private void button5_click(object sender, eventargs e)

{

("消息内容", "返回值 是6 否7",

, );

}

编写一个应用程序,确定咖啡厅服务员的小费。小费应是账单的10%,最小值为2 元。

private void button1_click(object sender, eventargs e)

{

double d = ();

double result = d / 10;

if (result < 2)

{

result = 2;

}

= ng();

}

编写一个程序,输入3 个整数,求3 个数的和、积、平均值。

private void button1_click(object sender, eventargs e)

{

int a = ();

int b = ();

int c = ();

= ng(a + b + c);

= ng(a * b * c);

= ng((a + b + c) / 3);

}

用while 循环求1 + 2 + 3 + … +

static void Main(string[] args)

99

{

+ 100 的值

int sum = 0;

int i = 1; // 初始化

while (i <= 100) // 循环语句

{

sum += i; // 把i 的值累加到变量sum 内

i++;

}

ine(sum); // 打印结果

();

}

编写一个应用程序,要求用户用2

个文本框输入2 个数,关将它们的和、差、积、

商显示在标签(Label)中。

private void button1_click(object sender, eventargs e)

{

double x = ();

double y = ();

= "和:" + ng(x + y);

= "差:" + ng(x - y);

= "积:" + ng(x * y);

= "商:" + ng(x / y);

}

字符检查,从键盘输入一个字符,检查输入字符是否为字母字符或数字,如果不是,则在标签控件显示“您输入的是字母、数字以外的字符”。如果是字符或数字,则输出该字母字符的整数值。

private void form1_keypress(object sender, keypresseventargs e)

{

if (t(r) || er(r))

{

= ng((int)r);

}

else

{

= ("您输入的是字母、数字以外的字符");

}

}

求1~100 的所有奇数和。

private void button1_click(object sender, eventargs e)

{

int result = 0;

for (int i = 0; i <= 100; i++)

{

if (i % 2 == 1)

{

result += i;

}

}

= ng();

}

编写一个程序,估计一个职员在65 岁退休之前能赚到多少钱。用年龄和起始薪水

作为输入,并假设职员每年工资增长5%。

private void button1_click(object sender, eventargs e)

{

int age = ();

decimal salary = ();

decimal result = 0;

for (int i = age + 1; i <= 65; i++)

{

result += salary;

salary += salary * 0.05m;

}

= ng();

}

编写程序,找出数组中的最大值。

private void button1_click(object sender, eventargs e)

{

int[] number = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

int max=number[0];

for (int i = 1; i < 10; i++)

{

if (max < number[i])

{

max = number[i];

}

}

= "数组中的最大值是:" + max;

}

打印字母表及对应的ASCII 码。

private void button1_click(object sender, eventargs e)

{

string s = "";

for (int i = 0; i < 128; i++)

{

if(er((char)i))

{

s += ng((char)i) + "=" + ng() + " ";

}

}

= s;

}

一个计算机商店销售光盘,对于少量的订购,每盘3.5 元。订购超过200 张时,每盘3 元。编写程序,要求输入订购光盘数量,并显示总价格。

private void button1_click(object sender, eventargs e)

{

int count = ();

double result = 0;

if (count < 200)

{

result = count * 3.5;

}

else

{

result = count * 3;

}

= ng();