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
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 - 9. C#提供的4种跳转语句中,不推荐使用的是【 】。 A) return B) break C) continue 二.填空题 D) goto 1.在switch语句中,在每个分支的最后应有一条【 break 】语句。 2.在C#中,实现循环的语句主要有【while】、do……while和【 for】语句。 3.在循环执行过程中,希望当某个条件满足时强行退出循环,应使用【break 】语句。 4.下列程序完成的功能是求出所有的水仙花数。(所谓水仙花数是指这样的数:该数是三位数,其 各位数字的立方和等于该数。例如:153=13+53+33,所以153是一个水仙花数。)请填空。 class Program { public static void Main(string[] args) { int a, b, c, t; for(i=100; i<=【 999 】; i++) { t=i; a=t; t=t/10; b=t; c=t/10; if(【 i==a*a*a+b*b*b+c*c*c 】) Console.WriteLine(\ \ } } } 5.下列程序的功能是:输出100以内能被3整除且个位数为6的所有整数。请填空。 class Program { public static void Main(string[] args) { int i, j; for(i=0;【 i<10 】; i++) { j=i*10+6; if(【 j%3==0 】) Console.Write (\ \ } } } 6.下列程序的功能是:产生100个两位随机正整数,求这些数中所有能被3整除的数的和,以及所 有不能被3整除的数的各位数字和。请填空。 static void Main(string[] args) { float sum1=0,sum2=0; int i,num; Random randObj1=new Random(); for(i=1;i<=100;i++) { num=【randObj1.Next(10,100) 】; if(num%3==0) { sum1=sum1+num; 【 continue; 】 } sum2=sum2+num; sum2=sum2+num/10; } Console.WriteLine(\能被3整除的数的和为:{0}\ Console.WriteLine(\不能被3整除的所有数的各位数字和为:{0}\ Console.Read (); } - 8 - 三.读程序题 1.有以下程序代码,若执行时从键盘上输入9,则输出结果是【 10 】。 class Program { public static void Main(string[] args) { int n; n=int.Parse (Console.ReadLine()); if (n++<10) Console.WriteLine(\ else Console.WriteLine(\ Console.Read(); } } 2.下列程序的运行结果是【i=11, s=0 】。 class Program { public static void Main(string[] args) { int i=0,s=1; do { s/=s+1; i++; }while(i<=10); Console.WriteLine(\ } } 3.下列程序的运行结果是【 m=51,n=50 】。 class Program { public static void Main(string[] args) { int i=0,m=0,n=0; while(i<=100) { if(i%2==0) m+=1; else n=n+1; i++; } Console.WriteLine(\ } } 4.下列程序的运行结果是【 m=3 】。 static void Main(string[] args) { int a=15,b=21,m=0; switch (a%2) { case 0: m++; break; case 1: m++; switch (b%2) { case 0: m++; break; default: m=m+2; break; } break; } - 9 -