C#习题集 联系客服

发布时间 : 星期日 文章C#习题集更新完毕开始阅读903fa8b401f69e31433294f8

下列语句正确的是【 】。 A) f=12.3; B) n=df; C) df=n=100; D) f=df; 19.下列表达式或语句中,有语法错误的是【 】。

A) n=12%3.0;(n为int型) B) 12/3.0 C) 12/3 D) ?a?>?b? 20.以下装箱、拆箱语句中,错误的有【 】。

A) object obj=100; int m=(int)obj; B) object obj=100; int m=obj; C) object obj=(int)100; int m=(int)obj; D) object obj=(object)100; int m=(int)obj; 21.下面有关变量和常量的说法,正确的是【 】。

A) 在程序运行过程中,变量的值是不能改变的,而常量是可以改变的 B) 常量定义必须使用关键字const

C) 在给常量赋值的表达式中不能出现变量 D) 常量在内存中的存储单元是固定的,变量则是变动的 22.代码public static const int A=1;中的错误是【 】。

A) A需要定义类型 B) 格式错误 C) const不能用static修饰符 D) const不能用public修饰符 23.以下对枚举类型的定义,正确的是【 】。

A) enum a={one,two,three}; B) enum a{a1,a2,a3}; C) enum a{'1', '2', '3'}; D) enum a{ \25.枚举型常量的值不可以是【 】类型。

A) int B) long C) ushort D) double 26.执行下列两条语句后,结果s2的值为【 】。 string s=\ string s2=s.Substring(2,3);

A) \ B) \ C) \ D) \ 二.填空题

1.在C#中,使用【 const 】关键字来声明符号常量。 2.在C#中,表达式Math.Pow(2,-2)的值是【 0.25 】。

3.为计算表达式ex+y的值,应使用的C#语言的表达式是【 Math.Exp(x+y) 】。 4.C#语言规定,变量在使用之前必须先【 定义 】。

5.下列程序完成的功能是:从键盘上输入一个直角三角形的斜边长度和一个角的度数,计算出另两

条直角边的长度并输出。请填空。 class Program { public static void Main(string[] args) { double a, b, c, d, jd; c= Convert.ToSingle(Console.ReadLine()); //输入斜边的长度 jd=Convert.ToSingle(Console.ReadLine()); //输入角的度数 d=【jd *Math .PI /180 】; a=c*Math.Sin(d); b=【c*Math .Cos (d) 】; Console.WriteLine(\ //输出两直角边的值 } }

6.设x为int型变量,请写出描述“x是奇数”的C#语言表达式【 x%2==1 】。 7.请写出描述“-10≤x≤10”的C#语言表达式【 x>=-10 && x<=10 】。

- 4 -

8.在代码中明确表示将某种数据类型转换为另一种数据类型称为【 显式类型转换 】。 9.下面程序的运行结果是【 】。

class Program

{ public static void Main(string[] args)

{ string str1=\星期一\\\\星期二\\\\星期三\ string str2=@\星期一\\\\星期二\\\\星期三\ Console.WriteLine(\ Console.WriteLine(\ } }

str1=星期一\\星期二\\星期三 str2=星期一\\\\星期二\\\\星期三 10.C#中的字符串有两类:规则字符串和逐字字符串,定义逐字字符串时,应在其前面加上【 @ 】号。

11.下列程序的执行结果是【 False 】。 class Program { public static void Main(string[] args) { string str1,str2; str1=\ str2=\

Console.WriteLine(\

} }

12.已知str的值为”abcdefgh”,则表达式str.Substring(1,3)的值为【 bcd 】。

13.若要从字符串str的第3个字符开始取5个字符作为一个子串赋给sstr,可以使用语句

【 sstr=str.Substring(2,5) 】实现。 14.以下程序的执行结果是【 123 】。 public static void Main(string[] args) { string str=\ int i; for(i=0;i='0'&& str[i]<='9') Console.Write(str[i]); } 15.将一个值类型隐式或显示地转换成一个object类型称为【 装箱 】。所谓拆箱就是将一个【 object类型 】显式地转换成一个值类型。

16.下列程序段的输出结果是【 True 】。 int a=1,b=2,c=3; Console.WriteLine(a>b&&b==c||a

17.下列程序的执行结果是【my,your,5,15 】。 class Program { enum team{my,your=4,his,her=his+10};

public static void Main(string[] args)

{ Console.WriteLine(\

(int)team.his, (int)team.her);

} }

18.以下程序的输出结果是【 6 】。

- 5 -

class Program { public static void Main(string[] args) { int a=5,b=4,c=6,d; Console.WriteLine(“{0}”,d=a>b?(a>c?a:c):b); } }

19.以下程序的输出结果是【 】。

class Program

{ public static void Main(string[] args) { int[] a = new int[3] { 1, 2, 3 };

for (int i = 0; i < 3; i++) Console.Write(\ Console.WriteLine(); int[] b = a;

for (int i = 0; i < 3; i++) b[i] = 2 * b[i];

for (int i = 0; i < 3; i++) Console.Write(\ Console.WriteLine(); Console.Read(); } } 1 2 3 2 4 6 20.以下程序的输出结果是【 】。

class Program

{ public static void Main(string[] args) { int a=4,b=5,m,n;

m=(a++)+(b++); n=a+b; Console.WriteLine(\ n={1}\ m=(++a)+(++b); n=a+b;

Console.WriteLine(\ n={1}\ } }

m=9 n=11 m=13 n=13 三.问答题

1.什么是字符类型和字符串类型?两者有何区别和联系?

2.是否可以定义这样的数组:它即包含int类型数据,也包含float类型数据?为什么? 3.变量与常量有何区别?

4.什么是数据类型转换?有哪几种方法?

5.数据类型的隐式转换和显式转换分别在什么场合使用?它们可以相互替换吗? 6.除(/)运算对整型数据和浮点型数据有何不同? 7.简述C#中有哪些数据类型。

8.说明C#值类型与引用类型数据的区别。 9.简述C#中结构类型和枚举类型的声明方法。

10.简述C#中常用类的静态方法和非静态方法的差异。

- 6 -

第4章 C#控制语句

一.选择题

1.在C#语言中,if语句后面的表达式应该是【 】。

A) 逻辑表达式 B) 条件表达式 C) 关系表达式 D) 布尔类型的表达式 2.在C#语言中,if语句后面的表达式,不能是【 】。

A) 逻辑表达式 B) 算数表达式 C) 关系表达式 D) 布尔类型的表达式 3.在C#语言中,switch语句用【 】来处理不匹配case语句的值。

A) default B) anyelse C) break D) goto 4.下列程序的输出结果是【 】。 public static void Main(string[] args) { int x=1,a=0,b=0; switch(x) { case 0: b++; break; case 1: a++; break; case 2: a++; b++; break; } Console.WriteLine(“a={0},b={1}”,a,b); }

A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2 5.以下叙述正确的是【 】。

A) do……while语句构成的循环不能用其他语句构成的循环来代替 B) do……while语句构成的循环只能用break语句结束循环

C) 用do……while语句构成的循环,在while后的表达式为true时结束循环

D) 用do……while语句构成的循环,在while后的表达式应为关系表达式或逻辑表达式 6.以下关于for循环的说法不正确的是【 】。

A) for循环只能用于循环次数已经确定的情况 B) for循环是先判定表达式,后执行循环体 C) 在for循环中,可以用break语句跳出循环体

D) for循环体语句中,可以包含多条语句,但要用花括号括起来 7.以下关于if语句和switch语句的说法,正确的【 】。

A) 如果在if语句和switch语句中嵌入break语句,则在程序执行过程中,一旦执行到break语句,就会结束相应的执行,转向执行其后面的语句

B) 凡是能够使用if语句的地方就可以使用switch语句,反之亦然 C) if语句有3种基本形式:if…、if…else…和if…else if…else… D) if语句是实现“单判断二分支”的选择结构,switch语句是实现“单判断多分支”的选择结构。 8.以下关于for循环的说法,不正确的是【 】。

A) for语句中的3个表达式都可以省略

B) for语句中的3个表达式中,若第2个表达式的值为true,则执行循环体中的语句,直到第3个表达式的返回值为false C) for语句中的3个表达式中,第2个表达式必须是布尔类型的表达式,其他两个可以是任意类型的表达式。

D) for语句中的3个表达式中,第1个表达式执行且仅执行一次;每当循环体语句被执行后,第3个表达式都跟着被执行一次。

- 7 -