C语言开发工程师测试题

匿名网友 匿名网友 发布于: 2015-08-30 00:00:00
阅读 145 收藏 0 点赞 0 评论 0

一、选择题
1. 下列选项中,()是引用类型(选择一项)
a)enum类型
b)struct类型
c)string类型
d)int类型

2. 以下描述错误的是()(选择一项)
a)在C++中支持抽象类而在C#中不支持抽象类。
b)C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在 C#中没有头文件并且在同一处声明和定义类的成员。
c)在C#中可使用 new 修饰符显式隐藏从基类继承的成员。
d)在C#中要在派生类中重新定义基类的虚函数必须在前面加Override。

3. C#的数据类型有()(选择一项)
a)值类型和调用类型;
b)值类型和引用类型;
c)引用类型和关系类型;
d)关系类型和调用类型;

4. 下列有关.NET类的描述错误的是()(选择三项)
a)类不可以多层继承而接口可以;
b)抽象类自身可以定义成员而接口不可以;
c)抽象类和接口都不能被实例化;
d)一个类可以有多个基类和多个基接口;

5. 下列关于.NET构造函数的描述正确的是()(选择一项)
a)构造函数可以声明返回类型。
b)构造函数不可以用private修饰
c)构造函数必须与类名相同
d)构造函数不能带参数

6. 以下是一些C#中的枚举型的定义,其中错误的用法有()(选择一项)

a)public enum var1{ Mike = 100, Nike = 102, Jike }
b)public enum var1{ Mike = 100, Nike, Jike }
c)public enum var1{ Mike=-1.23 , Nike, Jike } 枚举型应为整型的
d)public enum var1{ Mike , Nike , Jike }

7. 下列代码执行结果是()(选择一项)
public static void Main(string[] args)
{
int i = 2000;
object o = i;
i = 2001;
int j =(int) o;
Console.WriteLine(“i={0},o={1}, j={2}”,i,o,j);
}
a) i=2001,o=2000,j=2000
b) i=2001,o=2001,,j=2001
c) i=2000,o=2001,,j=2000
d) i=2001,o=2000,j=2001
8. 下列关于C#中索引器理解正确的是( ) (选择一项)
a)索引器的参数必须是两个或两个以上
b)索引器的参数类型必须是整数型
c)索引器没有名字
d)以上皆非

9. 要对多线程进行操作则必须包含( ) (选择一项)
a)System.ComponentModel命名空间;
b)System. Collections命名空间;
c)System. Threading命名空间;
d)Microsoft.Win32命名空间;

10.
以下说法正确的是()(选择一项)
①执行该程序发生异常
②catch块执行
③finally块执行
④catch块不执行
a) ①③④
b) ①③
c) ①②③
d) ③④

11)在C#中,允许多接口继承,从多个接口继承时,使用“:”后跟被继承的接口的名字,多个接口名称之间使用()符号进行分割。(选择一项)
a)“.”
b)“,”
c)“-〉”
d)“::”

12) 有C#代码如下:

在横线处填入语句(),输出为:C# is simple。(选择两项)
a) Console.PrintLine(“C# is simple”)
b) Console.WriteLine(“C# is simple”)
c) System.Console.WriteLine(“C# is simple”)

13) 阅读下列程序

在myClass的Main()函数中,有代码如下:method1( );代码执行后,
输出为()。(选择一项)
a) 3
b) 0
c) 非法的方法调用,没有输出

14) C#中,声明一个带参数的Main方法,代码为()。(选择一项)
a) public static void Main()
b) public static void Main(String[])
c) public static void Main(String[] args)
d) public static void Main(String * args)

15) 要将一个C#程序编译为扩展名为DLL的程序库应用程序,要打开的编译器选项为()。(选择两项)
a) /target:library
b) /t: library
c) /t: exe
d) /target: winexe

16) 在C#程序中,如果类B要继承A,类B正确的定义为()。(选择一项)
a) public class B inheritA
b) public class B:A
c) public classB::A
d) public class B form A

17)下列说法正确的是()(选择一项)
①c#是面向对象的编程语言
②装箱是从值类型到引用类型的转换
③cla(公共语言规范)是cts的子集,确保了跨语言互操作
④.NET平台使用统一的API
a) 以上都正确
b) ④正确
c) ①③④正确
d) ①②③正确

18)下列说法正确的是()(选择两项)
a) 在c#中使用关键字static定义静态成员
b) 静态成员不与任何特定对象相关联
c) 变量名命名为@关键字是不合法的

19)下列说法正确的是()(选择一项)
a) c#支持for、foreach、while和do-while循环语句
b) c#只支持for、while和do-while循环语句
c) c#支持foreach、while和do-while循环语句
d) c#支持for、foreach、和while循环语句

20)可用于在控制台显示文本的方法是()(选择两项)
a) System.Console.Read方法
b) System.Console.ReadLine方法
c) System.Console.Write方法
d) System.Console.WriteLine方法

21)下列说法错误的是()(选择两项)
a).NET提供多语言支持
b).NET应用程序不需要CLR的管理即可执行
c).NET应用程序要经过两次编译方可执行
d)IL是机器码

22)在c#中密封类()(选择两项)
a) 用final指定
b) 用对指定
c) 可以被继承
d) 不可以被继承

23)下列有关事件的说法正确的是()(选择一项)
①定义事件时首先定义委托
②可以让多个对象预订事件
③引发事件时,将调用所有预订了该事件的对象的委托
a) ①②③
b) ①
c) ②③

24)()关键字用于创建抽象类(选择一项)
a) interface
b) internal
c) using
d) abstract

25)在.NET中,以下关于命名空间的描述,正确的是()。(选择一项)
a) 命名空间不可以进行嵌套
b) 在一个.cs文件中,只能存在一个命名空间
c) 用using导入命名空间

26)在.NET中,程序中的错误可以划分为以下三类,除了()。(选择一项)
a) 逻辑错误
b) 语义错误
c) 语法错误
d) 规格错误

27)下列说法中正确的是()(选择一项)
①使用.NET基类库可以读取文本文件
②使用.NET基类库可以从内存中读取数据和将数据写入内存中
③System.IO命名空间包含用于在数据流和文件中读取和写入数据的类
④使用.NET基类库可以读取二进制文件
a) ①②③
b) ①②③④
c) ③④
d) ①②

28)只读属性通过()关键字来设置(选择一项)
a) Get 得到
b) readonly
c) set 设置
d) this

29)下列说法正确的是()(选择两项)
a) c#操作符重载不使用任何关键字即可完成
b) namespace表示命名空间
c) 使用internal修饰的成员仅可以从声明它的程序集内部访问
d) 命名空间不可以嵌套

30)c#的数组属于引用类型,其正确使用方法是()(选择两项)
a) string [] str = new string [6];
b) string str[] = new string [6];
c) int [] array = {1,2,3,4,5}; 括号在变量之前

31)下列有关命名空间和程序集的说法正确的是()(选择一项)
①一个命名空间可以分布在多个程序集中
②一个程序集中可以包含多个命名空间
③程序集的类型包含私有程序集和共享程序集
④.NET使用程序集的模式共享和重用代码
a) ②③
b) ①②③
c) ①②
d) ①②③④

32)下列说法是否全部正确()(选择一项)
①多态可以通过虚方法、抽象基类和接口的技术来实现
②多态是指同一操作用于不同的类的实例,不同的类将进行不同的解释,最后产生不同的执行结果
③虚方法在基类中用virtual来修饰,在派生类中使用override来修饰方法重写基类的虚方法
④一个接口可以从其他接口继承
a) 是
b) 否

33)c#的构造函数,描述错误的是()(选择一项)
a) 支持实例构造和静态构造
b) 可以重载
c) 和类同名
d) 静态构造可以带有参数

34)有关结构的说法,错误的是()(选择一项)
a) 使用struct关键字
b) 可以包含数据成员和函数成员
c) 支持继承 结构不能继承
d) 是值类型并且不需要堆分配

1.分析如下所示C#代码,编译运行后的输出结果是( )。(选择一项)
public static void Main(string[] args)
{
int param = 2;
string position = “”;
switch (param)
{
case 1:
position = “兄长”;
break;
case 2:
position = “兄弟”;
break;
}
Console.WriteLine(position);
}
a) 兄长
b) 兄弟
c) 小妹
d) 兄长兄弟

2.现有如下一段C#代码,该代码的运行结果是( )。(选择一项)
public static void Main(){
for (int i=1;i<=3;i++){ switch(i){ case 1: Console.Write(i.ToString()); break; default: Console.Write((i*3).ToString()); } } } a) 169 b) 有编译错误 没有break!!! c) 369 d) 123 3.看以下一段程序: Console.Write("hello world !"); Console.WriteLine("friend."); int i=0; do { Console.Write("thank you !"); i++; }while(i<2); 程序的输出结果是( )(选择一项) a) hello world ! friend thank you !thank you ! b) hello world ! friend thank you !thank you! Writeline 代表能换行 c) hello world ! friend. thank you ! thank you ! d) hello world ! friend. thank you ! 4. using System; class Test{ static void Main(String [] args){ int a=10,b=20,c=30; if(a>b||b>c)
Console.WriteLine(a);
else if(ab‖b>c)
Console.WriteLine(++b);
else
Console.WriteLine(a+b+c);
}
}
a) 22
b) 23
c) 66
d) 编译出错

9. 以下关于C#代码的说法正确的是( )。(选择一项)
for(int i=1;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标签不能贯穿到另一个标签,不能运行 没有写Break!!!! b) 输出149 c) 输出123246369 d) 正确运行,但没有输出 10. 针对以下的C#代码: using System; class A { static void Main() { int[] B = new int[10]; for(int I=1;I<=10;I++) { //空白处 } foreach (int C in B) { Console.WriteLine (C); } } } 要在控制台输出1到10的数字,空白处应填写的正确的代码为( )。(选择一项) a) B[I]=I+1; b) B[I]=I; c) B[I-1]=I; d) B[I+1]=I; 11.在C#中,下列代码的运行结果是( )(选择一项) int a=30,b=20; b=a; a=10; Conlose.WriteLine(a); Conlose.WriteLine(b); a) 10 10 b) 10 30 c) 30 20 d) 10 20 12.下列语句执行后,变量i的值为多少?( )(选择一项) string str = @"""Ahoy"",cried the caption. "; string str2 = ""Ahoy",cried the caption. "; int I = string.Compare(str,str2); a) false b) -1 c) 1 d) 0 13.在VS.Net开发环境中,为程序代码增加断点,快捷键为( )。(选择一项) a) F2 b) F5 c) F8 d) F9 14.在ADO.NET中,( )对象的结构类似于关系数据库的结构,并在与数据库断开的情况下,在缓存中存储数据。(选择一项) a) DataAdapter 加载数据源 b) DataSet 重载 c) DataTable d) DataReader 读取机制 15. 下面关于数据库操作的代码,错误的是( )(选择两项) a) SqlConnection conn = new SqlConnection(); SqlCommand comm = new SqlCommand(); comm.ExecuteNonQuery(); b) SqlConnection conn = new SqlConnection(“server=.;uid=sa;pwd=sa;database=db1”); conn.Open(); SqlCommand comm = new SqlCommand(“delete * from table1”, conn); comm.ExecuteNonQuery(); conn.Close() c) SqlConnection conn = new SqlConnection(“server=.,uid=sa,pwd=sa,database=db1”); conn.Open(); SqlCommand comm = new SqlCommand(“delete * from table1”); comm.ExecuteNonQuery(); conn.Close(); d) SqlConnection conn = new SqlConnection(“server=.;uid=sa;pwd=sa;database=db1”); conn.Open(); SqlCommand comm = new SqlCommand(“delete * from table1”, conn); comm.ExecuteNonQuery(); 16.运行下面一段代码: class Class1 { public static int count = 0; static Class1() { count++; } public Class1() { count++; } } Class1 o1 = new Class1(); Class1 o2 = new Class1(); 请问,o1.count的值是多少?( )(选择一项) a) 1 b) 2 c) 3 d) 4 17.在C#中,下列代码的运行结果是( )。(选择一项) class A{ public void printStr(string str){ Console.WriteLine(str); } } class B:A{ new public void printStr(string str){ str=str+"(override)"; Console.WriteLine(str); } public static void Mail(string[] args){ A a=new A(); B b=new B(); a.printStr(“test”); b.printStr(“test”); } } a) test test(override) b) test(override) c) test d) test(override) test(override) 18.分析以下C#代码,根据面向对象的多态性,代码的运行结果是( )。(选择一项) class A{ public void F(){ Console.Write("A"); } 方法重载 public void F(string chr){ Console.Write(chr); } } class B:A{ public void F(){ Console.Write("B"); } } public class Test{ public static void Main(string[] args){ A a = new B(); a.F(); } } a) B b) A c) AB d) BA 二、判断题: ( 错)在C#中,索引器是专门用来访问对象中的数组信息的。 ( 对)在C#中,接口可以被多重继承而类不能。 ( 对)异常类对象均为System.Exception类的对象。 (对)声明委托实际上是声明了一个方法。 (对)任何事物都是对象。 三、问答 1、this关键字有什么作用,请描述 2、请叙述const与readonly修饰得类成员的区别。 一个是常量,一个是变量 3、根据事件(event)的知识,请写出完整的运用事件,并触发事件的程序。 P74

评论列表
文章目录