C#程序设计基础测试题(一) 下载本文

学号: 姓名:

C#程序设计基础测试题

一、填空题:

1、( )是所有数组的基类。

2、布尔型的变量可以赋值为关键字( )或( )。

3、System.Array有一个( )属性,通过它可以获取数组的长度。 4、设x=10; 则表达式 x<10?x=0:x++ 的值为( )

5、已知整型变量a=5,b=4,c=6,则a>b?(a>c?a:c):b的结果为( )。

6、有一个字符串的定义为string s = “hello world!”; 在此字符串中,字符w的索引是( )。 7、C#语言源代码文件的后缀名是( )。

8、在C#程序中,程序的执行总是从( )方法开始的

9、在循环执行过程中,希望当某个条件满足时退出循环,使用( )语句 10、下列程序段执行后,a[4]的值为( )。 int []a={1,2,3,4,5};a[4]=a[a[2]]; 11、8/3的结果是( )。

12、在Array类中,可以对一维数组中的元素进行排序的方法是( )。 13、( )是独立于CPU 的指令集,它可以被高效地转换为特定于某种CPU 的代码。 14、C#中执行下列语句后,int n=21; n<<=1;n的值为( ) 15、C#中每个char类型量占用( )个字节的内容。 16、表达式 2+5/10*10 的值为( )。 17、float f=-123.567F; int i=(int)f.则i的值现在是( )。

18、C#中的字符串有两类,规则字符串和逐字字符串,定义逐字字符串时,应该在其前面加上( )号。 19、计算表达式“10*10*10>10||2<2+3”结果为( )。

20、循环语句“for(int i=30;i>=10;i=i-3)”循环次数为( )次。

二、选择题:

1、关于如下程序结构的描述中,哪一项是正确的?( ) for ( ; ; ) { 循环体; }

a) 不执行循环体 b) 一直执行循环体,即死循环 c) 执行循环体一次 d) 程序不符合语法要求

2、枚举类型是一组命名的常量集合,所有整形都可以作为枚举类型的基本类型,如果类型省略,则定义为( )。

a) int b) sbyte c) uint d) ulong 3、C#数组主要有三种形式,它们是( )。

a) 一维数组 、二维数组、三维数组 b) 整型数组、浮点型数组、字符型数组 c) 一维数组、多维数组、不规则数组 d) 一维数组、二维数组、多维数组 4、可用作C#程序用户标识符的一组标识符是( )。

A. void define +WORD B. a3_b3 _123 YN C. for -abc Case D. 2a DO sizeof 5、下列类型中, 哪些不属于引用类型? ( )。 a) String b) int c) Class d) Delegate 6、C#中导入某一命名空间的关键字是( )。

a) using b) use c)import d) include 7、以下程序的输出结果是( )。

enum Color

{ Red, Green = 2, Blue }

static void Main(string[] args)

{ Color c = 0;

Color c1 = (Color )2;

Console.WriteLine(\ Console .Read (); }

a) Green,Red b) Red,Green c) Red,Blue d) Green,Blue

8、分析下列代码段,运行结果是什么?( )。

static void Main(string [] args) {

string[] words = new string[] {“a”,“b”,“c”}; foreach (int word in words) {

word =“abc”;

Console.WriteLine(word); }

Console.ReadKey (); }

a) a b c b) abc abc abc c) bc ac ab d)不能正确编译

9、在数组中对于for 和 foreach 语句,下列那些选项中的说法不正确?( )。

a) foreach语句能使你不用索引就可以遍历整个数组 b) foreach语句总是从索引1遍历到索引Length c) foreach总是遍历整个数组

d) 如果需要修改数组元素就必须使用for语句 10、在C#中,( )表示 “” 。

a) 空字符 b) 空串 c) 空值 d) 以上都不是

11、当( )时,条件“expression1 XOR expression2”的值为真。

a) expression1为真而expression2为假 b) expression1为假而expression2为真 c) expression1和 expression2均为真 d) a和b都对

12、在C#中无需编写任何代码就能将int型数值转换为double型数值,称为( )。

a) 显式转换 b)隐式转换 c) 数据类型转换 d) 变换 13、下面代码的输出结果是( )。

int x = 5; int y = x++;

Console.WriteLine(y); y = ++x;

Console.WriteLine(y);

a)5 6 b) 6 7 c) 5 6 d) 5 7 14、当month 等于6时,下面代码的输出结果是( )。

int days = 0; switch (month)

{ case 2: days = 28; break; case 4: case 6: case 9:

case 11: days = 30; break; default: days = 31; break; }

a) 0 b)28 c) 30 d)31

15、声明double a; int b;下列哪个选项中的表达式能够正确的进行类型转换?( )。

A. a=(decimal)b; B。a=b; C. a=(int)b ; D. b=a;

16、请问经过表达式a = 3 + 1 >5 ? 0 : 1的运算,变量a的最终值是( )。

A。4 B。0 C。1 D。3 17、下列哪个选项能正确的创建数组?( )。

A. int[,] array=int[4,5];

B.int size=int.Parse(Console.ReadLine()); int[] pins=new int [size]; C. string[] str=new string[]; D. int pins[] = new int[2];

18、能作为C#程序的基本单位是( )。

A. 字符 B. 语句 C. 函数 D. 源程序文件

19、将变量从字符串类型转换为整型可以使用的类型转换方法是( )。

A.Str() B.Cchar C.CStr() D.int.Parse(); 20、字符串连接运算符包括&和( )。

A. + B. - C. * D. / 21、先判断条件的当循环语句是( )。

A. do...while B. while C. while...do D. do ...loop

22、假定一个10行20列的二维整型数组,下列哪个定义语句是正确的( )。

A. int[]arr = new int[10,20] B. int[]arr = int new[10,20] C. int[,]arr = new int[10,20] D. int[,]arr = new int[20;10]

23、有两个double类型的变量x和y,分别取值为8.8和4.4,则表达式(int)x-y/y的值是(A、7 B、7.0 C、7.5 D、8.0 24、运行int a=20,b=5,c=10,d=3;bool s,e=false;

则表达式(s=a0)运算后,e的值是( )。

A、0 B、1 C、true D、false 25、以下程序的输出结果是( )。

string str=”b856ef10”; string result=””;

for(int i=0;str[i]>=’a’&&str[i]<=’z’;i+=3) {

result =str[i]+result;

Console.WriteLine(result); }

A、10fe658b B、feb C、10658 D、b 26、在下面循环语句中循环体执行的次数为( )。 for(int i=0; in/2) break;

A. n/2 B. n/2+1 C. n/2-1 D. n-1 27、在C#程序中,使用( )关键字来创建数组。

a) new b) array c) staic d) this

28、在C#语言的循环结构中,首先执行一次,然后再判断条件的循环结构是( )。

a) while循环 b) do?while循环 c) for循环 d) foreach循环 29、在C#中,下列代码的运行结果是( )。

int[]age=new int[]{16,18,20,14,22}; foreach(int i in age){ if(i>18)

。 )

continue;

Console.Write(i.ToString()+” ”); }

a)16,18,20,14,22 b)16,18,14,22 c)16,18,14 d)16,18 30、以下关于C#代码的说法正确的是( )。

for(int i=l;i<=3;i++) {

switch(i) {

case 1: Console.Write{i.ToString());

case 2: Console.Write((i*2).ToString()); case 3: Console.Write((i*3).ToString()); } }

a)有编译错误,提示case标签不能贯穿到另一个标签,不能运行 b) 输出149 c) 输山123246369 d) 正确运行,但没有输出

31、在c#中,下列代码的运行结果是( )。

using System; class Test{ static Void Main(string [] args){ int a=10,b=20; int c=a>b?a++:--b; Console.WriteLine(c); }

}

a)10 b)11 c)19 d)20

32、C#程序的(a)方法被成为程序的大门,应用程序从这里开始运行 a) Main() b) Begin() c) Start() d) main()

33、以下的C#程序代码,程序运行时在控制台打印输出值为( )。 int count=3;

while(count>1) {

Console.Write(- -count); }

a) 32 b) 321 c) 21 d) 2

34、在下列C#代码中,程序的命名空间是( )。

using System; namespace Test{ class Program{

static void Main(string[]args){

Console.Write(“Hello World!”); } } }

a)Test b)Main c)namespace d)Program

35、请问经过表达式 a=3+1>5?0:1 的运算,变量a的最终值是( )。

A 3 B 1 C 0 D 4

36、设int型变量x的值为9,那么表达式的值为( )。 A . 27 B. 24 C. 21 D .18 37、以下数组声明中,不正确的有( )。 A int[] a ; B int a[]=new int[2]; C int [] a={1,3} D int [] a=int []{1,3} 38、C#中每个char类型变量占用( )字节内存。

A 1 B 2 C 3 D 4

39、以下语句不可以在屏幕上输出Hello,World语句是( )。

A. Console.WriteLine(“Hello”+”,World”); B. Console.Write(“Hello{0}”,”World”);

C. Console.WriteLine(“{0},{1}”,”Hello,World”); D. Console.Write(“Hello,World”);

40、下列选项中属于字符串常量的是 ( )。

A. ABC B. “ABC” C. ?abs? D. ?a?

41、设int a=9, b=6, c 执行语句c=a/b+0. 8 后c 的值是( )。

A. 1 B. 1. 8 C. 2 D. 2. 3 E. 出错

42、在C#编制的财务程序中,需要创建一个存储流动资金金额的临时变量,则应使用下列哪条语句( A.decimal EMoney; B.int EMoney;

C.string EMoney; D.Dim EMoney as double;

43、在C#中,将路径名”C:\\Documents\\”存入字符串变量path中的正确语句是( )。

A. path=’C:\\\\Documents\\\\’’; B. path=”C://Documents//”; C. path=”C:\\Documents\\”; D. path=”C:\\/Documents\\/”; 44、在C#中定义一个数组,正确的代码为( )。

A.int arraya = new int[5]; B.int[] arraya = new int[5]; C.int arraya = new int[]; D.int[5] arraya = new int; 45、for(int i=1;i<=3;i++){

switch(i){

case 1:Console.write(i.ToString());

case 2:Console.write((i * 2).ToString()); case 1:Console.write((i * 3).ToString()); }

}上述关于C#代码的描述正确的是( )。 A) 程序将报告编译错误,提示Case标签不能贯穿到 一个标签,不能运行 B) 运行时输出149 C) 运行时输出123246369 D) 运行时在屏幕上没有输出

46、在C#中,下列代码的运行结果是( )。

string[] names = {“ACCP”,”BENET”,”BETEST”}; foreach(string name in names)

Console.WriteLine(name);

A) ACCP B) n C) name D) “ACCP”

BENET a name “BENET” BETEST m name “BETEST”

e s

47、运行如下的C#代码段将( )。

int a = 10;

string b = “10”;

。 )

Console.WriteLine (a + b); A)输出:20 B)输出:1010 C)输出:10+10 D) 编译报错,提示数据类型不匹配 48、 在C#中,下列代码的运行结果是( )。 static void Main(){ string name=”bird”; foreach(char c in name){ Console.Write(c); } } a)输出name b)输出bird c)输出cccc d)编译出错,存在语法错误 49、Switch的语法结构不正确的是( )。

a)Switch条件判断接收int,char,string三种类型 b)Switch的case块,必须要加上break; c)Switch的case块,可以没有break

d)Switch的default块,在条件都不满足的情况下执行 50、下列语句在控制台上的输出是( )。

string msg = @”Hello\\nWorld!”; System.Console.WriteLine(msg);

a)Hello\\nWorld! b)@”Hello\\nWorld!” c)Hello World! d)Hello

三、判断题:

1、if语句后面的表达式可以是任意表达式。 ( )

2、switch语句中必须有default标签。 ( ) 3、布尔型变量可以赋值为0或1。 ( )

4、在控制台应用程序中,若想从键盘上输入数据,可以使用Console.Read()和Console.ReadLine()方法。( 5、有定义:int [ ] a=new int[5]{2,3,5,7,8}; 则a[5]的值为8。( ) 6、foreach语句既可以用来遍历数组中的元素,又可以改变数据元素的值。( ) 7、一个数组的元素可以是多种类型的数据。 ( ) 8、 z=x>y?x:y的含义是获取x和y中的较大值并且赋给z。( ) 9、C#程序的执行是从第一个方法开始,到Main方法结束。( )

10、DotNet包含两个部分,即公共语言运行时和框架类库。 ( ) 11、在定义数组时不允许为数组中的元素赋值。 ( )

12、枚举型的默认基础类型为int,第一个枚举数的值必须为0,后面每个枚举型的值依次递增1。( ) 13、不同的命名空间中不能有同名的方法。 ( ) 14、在C#中,int[][]是定义一个int型的二维数组。 ( ) 15、可以不使用new关键字来对数组进行初始化。( ) 16、允许创建大小为0的数组。( )

17、数组元素的访问是从1开始,到Length结束;( ) 18、函数是C#程序的基本单位。( )

19、在C#中可以使用String作为变量名,但不能使用string作为变量名。( ) 20、在一个程序内,不可以包含2个及以上的Main方法。( )

四、读程序填空题:

1、class Program {

static void Main(string[] args) {

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

{

Console.Write(i); if (i % 5 == 0)

Console.WriteLine(); else

Console.Write('\\t'); }

}

}

程序的运行结果是_______

____ ________________

2、完善如下程序: 键入10个整数,统计其中正数(neg)、负数(pos)和零(zero)的个数并将三者输出。 int i; int num;

int zeroNum = 0;

int __ ___ int FuNum = 0;

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

Console.WriteLine(\请输入第{0}个整数\ string str = Console.ReadLine(); num = ___ ______ if (num > 0) {

ZengNum++; }

else if (num == 0) {

zeroNum++; } else {

FuNum++;_ } }

Console.WriteLine(\正数:{0}、负数: {1}、 零:{2}\

3、下列代码的功能是要遍历整个数组并将其显示出来,但是有一行代码是错误的。请检查下列代码,并在错误代码行后填入该行完整的正确代码: 1). static void Main(string [] args) 2). {

3). string [ ] myArray = new string[ ] { “C#”, “C++”, “VB”, “java” }; 4). for(int i = 1; i

6). Console.WriteLine(myArray[i]); 7). } 8). }

答: 第__ _行错误。

应改为___ _________

4、写出下列函数的功能。 static float FH() { float y=0,n=0;

int x = Convert.ToInt32(Console.ReadLine()); //从键盘读入整型数据赋给x while (x!=-1) {

n++; y+=x;

x = Convert.ToInt32(Console.ReadLine()); } if (n==0) return y; else

return y/n; }

5、下面的程序完成的是:从输入串中找出所有的字母,并把这些字母转换成大写,然后输出到终端。请分析下列代码段, 并在空白行补全Visual C#代码。

using System; class Program {

static void Main(string[] args) {

string inputString = string.Empty; string result = string.Empty; inputString = Console.ReadLine();

for (int i = 0; i < inputString.Length; i++) {

if (inputString[i] >= 'a' __ ___ inputString[i] <= 'z') result += inputString[i].ToString().ToUpper(); if (inputString[i] >= 'A' && inputString[i] <= 'Z') ________ _________________; }

Console.WriteLine(\字母有: \ } }

五、 编程题:

1、声明一个数组,将一年中的12个月的英文存入其中。当用户输入月份的数字时,打印出月份的英文。若输入0则退出,并提供输入信息不合法提示,如下:

请输入月份数,若输入0则退出:(输入2,显示February)

2、判断从键盘上输入字符串的首字符是字母、数字或是其它字符。 3、输入两个数和运算符,根据运算符进行相应的操作并输出结果。 4、使用foreach语句实现求数组中元素的最大值。

5、已知有5个元素的数组a,请用冒泡排序法将其排序。