C#考试复习.docx

上传人:b****6 文档编号:6027966 上传时间:2023-01-03 格式:DOCX 页数:41 大小:37.30KB
下载 相关 举报
C#考试复习.docx_第1页
第1页 / 共41页
C#考试复习.docx_第2页
第2页 / 共41页
C#考试复习.docx_第3页
第3页 / 共41页
C#考试复习.docx_第4页
第4页 / 共41页
C#考试复习.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

C#考试复习.docx

《C#考试复习.docx》由会员分享,可在线阅读,更多相关《C#考试复习.docx(41页珍藏版)》请在冰豆网上搜索。

C#考试复习.docx

C#考试复习

第一部分概述

单选

下列哪个选项不属于冯诺依曼体系的计算机组成部分?

(按照教材上的说明,此题无解,但是若考虑到冯诺依曼那个时代,还没有硬盘,数据直接在内存中存储,计算之后直接输出,硬盘是到后期才有的。

所以,就选B。

A)内存

B)硬盘

C)键盘

D)CPU

单选

软件可以分为系统软件和应用软件,下列哪个属于系统软件?

C

A)IE7.0浏览器

B)B2B购物系统

C)WindowsVista家庭版

D)ERP财务系统

多选

下列关于计算机软件的特征描述中,哪两个选项是正确的?

AC

A)计算机软件是指按照特定的顺序组织、能够使计算机具有特定的信息处理能力。

B)计算机软件可以循环利用,没有生命周期。

C)计算机软件标志一定功能,完成一定任务或产生一定结果。

D)计算机软件价格昂贵,仅仅适合于专业科研人员使用

单选

以下哪个选项不属于算法的特征

A)输入输出

B)简洁性

C)可行性

D)确切性

E)有穷性

答案:

B见教材P4

单选

计算机软件是指令、数据和什么的集合?

A)文档

B)代码

C)逻辑

D)程序

答案:

A

第二部分C#与VS2008

单选

在VS2008的解决方案资源管理器中,使用哪种方式标示项目为启动项目?

C

A)在项目名后标记(启动项目)

B)高亮显示

C)粗体

D)其他三项都有

多选

在“工具”菜单中选择“选项”命令,可以更改启动VS2008时默认出现的用户界面,以下哪些是VS2008支持的启动界面?

ABCD

A)空环境,不打开任何界面。

B)最后一次加载的项目

C)打开起始页

D)打开主页

多选

创建项目后,希望在当前项目中增加一个WindowsForm界面,以下哪些方法可以实现?

AB

A)使用类视图,右键后选择“添加”,再选择“类”

B)在解决方案资源管理器中,右键当前项目,选择“添加”,再选择“新项目”

C)点击“文件”,选择子菜单中的“打开”再选择“项目”

D)点击“文件”,选择子菜单中的“新建”再选择“项目”(这是新建,不是在原有项目中增加。

判断:

“类视图”窗口可以用来浏览当前项目中的文件、命名空间和类

答案:

错误,查看文件要通过解决方案资源管理器

多选

下列C#代码中有哪些错误?

UsingSystem

*

*这是多行注释的格式//这一行有错

*

*

classTesting

{

staticvoidMain()

{

intAge=21;intWeight;stringname=”Jack”;

Console.WriteLine(Age.ToString())(这一行没有正确的结束)

//Console.WriteLine(name.ToString());

}

}

A)单行代码没正确的结束符号

B)多段代码写在同一行中

C)代码中存在大小写敏感问题

D)不正确的注释符号的使用

答案:

BD

单选

在VS2008中,哪个窗口中可以查看当前项目的类和类型的层次信息?

A)属性

B)资源视图

C)类视图

D)解决方案资源管理器

答案:

C

VS2008的安装环境要求,包括硬件和软件两方面的要求

第三部分变量、数据类型和表达式

多选:

下列变量名中,哪些不合法?

AB

A)homyu.shinu

B)string

C)_43zz

D)Int

单选

当你需要使用某一种数据类型表达同一类事物的不同状态,如男人、女人,春夏秋冬等,C#中最直观可靠的方案是?

C

A.用int类型,分别用0,1,2,3......表示

B.使用struct结构

C.使用enum枚举

D.C#中无法做到

判断:

以下代码执行后,String类型变量a的值仍然是“OriginalValue”

classProgram

{

staticvoidMain(string[]args)

{

stringa="OriginalValue";

b(a);

Console.WriteLine(a);

}

staticprivatevoidb(stringc)

{

c="changed";

}

}

正确

判断:

在同一行代码中,等于运算符的优先级高于关系运算符

答案:

错误,这里的等于运算符是“==”其优先级低于关系运算符。

单选

假设a不等于b,且b不等于false,下列哪个表达式的计算结果是false?

B

A)a=b

B)a==b

C)a!

=b

D)a<>b

多选

下列关于“||”运算符的描述中,哪些是正确的?

A)“||”运算符不是关键字

B)“||”运算符执行短路运算

C)“||”运算符是一种比较运算符

D)在使用“||”运算符的运算中,如果结果为真,则运算符左右两边的操作数都为真

答案:

AB

关于短路和非短路运算

判断:

+,-,*,/,%都是三元运算符错误

在C#2008的环境中,int32类型变量可以直接隐式转换成char类型变量。

错误

经过表达式a=3+1>5?

0:

1计算,a的值是多少?

答案:

1

本题考查学生对运算符优先级的掌握情况。

在这一表达式中涉及赋值运算符,算术运算符,关系运算符,条件运算符。

这几类运算符的优先级从高到低依次是:

算术运算符,关系运算符,条件运算符,赋值运算符。

所以,先执行“+“运算,其次再进行大小比较,然后再进行条件运算,最后是赋值。

为1。

多选

从下列选项中,选择变量result值是false的表达式

A)boolresult=(1!

=1);

B)boolresult=0;(错误,不可以将int隐式转换为bool型)

C)boolresult=(4==5);

D)boolresult=(1=1);

答案:

AC

多选

以下选项中哪种变量声明方式可以通过编译

A)intzb

B)constintvalue=2

C)conststringtext

D)Int32_k=7

答案:

ABD

补充内容:

C#3.0var关键字的使用

第四部分分支和循环

单选:

分析以下代码,循环结束后i的值是多少?

for(inti=0;i<=10;i++)

if(i%5==0)

continue;

A.11

B.10

C.6

D.5

答案A

单选:

要在循环执行过程中中断并跳出循环,应该使用哪个语句?

C

A.switch

B.goto

C.break

D.continue

多选

Switch多分支语句的控制表达式可以支持以下哪些类型?

ABCD(实验证明,四个都可以,书上描述不正确)

A.enum类型

B.string类型

C.char类型

D.integer类型

多选

计算机程序通常是由若干语句组成的,组成程序的常用结构分别是下列哪几种?

ABC

A.分支结构

B.顺序结构

C.循环结构

D.跳转结构

改错:

以下代码输出1-100之间的偶数,但编译出错,请找出出错的那一行,并改正。

classProgram

{

staticvoidMain(string[]args)

{

for(i=1;i<=100;i++)//变量i没有定义,需要在这一行之前加上”inti;”定义语句

{

if(i%2==0)

Console.Write(i+"");

}

}

}

填空:

以下代码的功能是找出0-20之间所有能被4整除,但不能被5整除的数,并输出它们的和。

请填空。

staticvoidMain(string[]args)

{

intSum=0;

for(inti=0;i<=20;i++)

{

if(i%4==0&&i%5!

=0)

{

Sum+=i;

continue;

}

}

Console.WriteLine("sum={0}",Sum);

}

划线处为填空处,已填答案。

单选

关于如下程序结构的描述中,哪个是正确的?

for(;;)

{

循环体;

}

A)一直执行循环体,就是死循环

B)不执行循环体

C)执行循环体一次

D)程序不符合语法要求

答案:

A

单选

写出程序运行结果:

classProgram

{

staticvoidMain(string[]args)

{

for(inti=1;i<=16;i++)

if(i%4==0)

Console.Write(i.ToString()+"");

}

}

答案:

481216

程序改错

从输入的字符串中找出小写字母并输出.请查出以下代码的错误,并在其后的空白处填写正确的代码。

classProgram

{

staticvoidMain(string[]args)

{

stringinputString=Console.ReadLine();

stringlowerCase=string.Empty;

foreach(charchininputString)

{

if(ch<='z'||ch>='a')

lowerCase+=ch.ToString();

}

Console.WriteLine("小写字母有:

"+lowerCase);

}

}

划线处改为:

ch<='z'&&ch>='a'

填空

下面的程序要完成的是,输入一个自然数,输出它是奇数还是偶数,请分析以下代码并在空白处填空。

(划线处为填空处。

staticvoidMain(string[]args)

{

intInputNumber=int.Parse(Console.ReadLine());

switch(InputNumber%2)

{

case1:

Console.WriteLine("奇数");break;

default:

Console.WriteLine("偶数");break;

}

}

单选

下面的结构图对应于那种程序语句结构?

(其中A是程序段,P是条件。

A)if…else

B)while

C)foreach

D)do..while..

答案:

B

单选

分析一下while语句,最终i的值是多少?

inti=0;

while(i++<=10)

if(i%5==0)

break;

A)12

B)11

C)10

D)5

答案:

D

分析以下程序,求运行结果

staticvoidMain(string[]args)

{

intSum1=0,Sum2=0;

inti=0;

while(++i<10)

{

Sum1+=1;

}

i=0;

do

{

Sum2+=1;

}while(++i<10);

Console.WriteLine("Sum1={0},Sum2={1}",Sum1,Sum2);

}

运行结果:

Sum1=9,Sum2=10;

单选:

分析以下代码:

staticvoidMain(string[]args)

{

charn;

n=char.Parse(Console.ReadLine());

if(n<'g')

{

if(n<'r')

Console.WriteLine("One");

else

{

if(n!

='x')

Console.WriteLine("Two");

else

Console.WriteLine("Three");

}

}

}

A)n=’y’输出“Three“

B)n=’d’输出“One“

C)n=’x’输出“Two“

D)n=’d’没有输出

答案:

B

以下程序的功能是,输入一个字符串,若字符串中有数字,则计算这些数字的和。

staticvoidMain(string[]args)

{

stringinputString=string.Empty;

intsResult=0;

inputString=Console.ReadLine();

foreach(charchininputString)

{

if(ch>='0'&&ch<='9')

sResult+=Convert.ToInt32(ch.ToString());

}

if(sResult==0)

Console.WriteLine("输入的字符串中没有数字。

");

else

Console.WriteLine("sResult={0}",sResult);

}

划线处为填空处。

第五部分面向对象

关键字partial:

其作用是在一个文件中定义一个类的某部分,然后在另一个文件中再进一步定义这个类。

文件1

publicpartialclassMyClass

{

publicvoidTest1()

{

Console.WriteLine("Test1");

}

}

classProgram

{

staticvoidMain(string[]args)

{

MyClassmc=newMyClass();

mc.Test1();

mc.Test2();

}

}

文件2

publicpartialclassMyClass

{

publicvoidTest2()

{

Console.WriteLine("Test2");

}

}

横线处为填空处

多选:

以下哪些选项正确描述了“属性”及“索引器”之间的关系和概念?

A)索引器是一种特殊的属性,通过索引器可以像引用数组一样引用类本身。

B)想要声明一个只读属性必须在属性前加readonly(不对,只读属性是只有get访问器)

C)索引器可以为静态成员(错,实行可以是静态的,而索引器必须是实例成员)

D)属性get方法没有参数,索引器可以传递参数

答案:

AD

判断:

类和对象的区别是,类是对象的实例,而对象是类的抽象。

错误,说反了。

填空题

以下代码需要实现的功能是:

变量rusult通过方法TestMethod得到一个1到100的随机数,请对代码进行填空。

(本题考察学生对out和ref两个关键字的掌握情况,划线处为要求填空的项目)

classProgram

{

staticvoidTestMethod(outintrandomNum)

{

Randomrd=newRandom();

randomNum=rd.Next(1,100);

}

staticvoidMain(string[]args)

{

intresult;

TestMethod(outresult);

Console.WriteLine("随机数为:

"+result);

}

}

以下程序的功能是:

产生0-7的随机数,如果这个数是在1-5之间,显示“Workday”,如果是“6-7”之间,显示“Weekend”,其他数显示“NoDay”.请按照题目要求对代码进行填空。

staticvoidMain(string[]args)

{

Randomrm=newRandom();//生成随机数

boolflag=true;

stringtestFlag;

intday;

while(flag)

{

Console.WriteLine("Doyouwanttotest?

");

testFlag=Console.ReadLine().ToUpper();

if(testFlag=="Y")

flag=true;

else

flag=false;

day=rm.Next(0,7);

Console.WriteLine(day);

switch(day)

{

case0:

Console.WriteLine("NoDay");break;

case1:

case2:

case3:

case4:

case5:

Console.WriteLine("WorkDay");break;

case6:

case7:

Console.WriteLine("Weekend");break;

}

}

}

单选:

在C#中,TestClass为一个自定义的类,其中有以下属性定义:

publicvoidProperty{…}

使用以下语句创建该类的对象,并使用对象obj名对其进行引用。

TestClassobj=newTestClass();

可以通过什么方式访问Property属性?

B

A.MyClass.Property;

B.obj.Property;

C.obj:

:

Property;

D.obj.Properity();

单选

封装是指使用抽象的数据类型将数据和基于数据的_________包装在一起,封装的主要目的就是为了达到接口和___________的分离。

B

A.操作,数据

B.操作,实现

C.接口,实现

D.接口,操作

多选

SampleDelegate是一个委托,与方法SampleMethod1和SampleMethod2有着相同的签名。

以下代码中,哪一些能够实现多播委托?

ACD

A.SampleDelegated3=newSampleDelegate(SampleMethod1)+newSampleDelegate(SampleMethod2);

B.SampleDelegated3=SampleMethod1+SampleMethod2;(错误)

C.SampleDelegated3=SampleMethod1;

d3+=SampleMethod2;

D.SampleDelegated1=SampleMethod1;

SampleDelegated2=SampleMethod2;

SampleDelegated3=d1+d2;

多选

关于封装的优点,哪些是正确的?

ABC

A.提高数据安全性

B.简化问题,容易操作

C.降低耦合度

D.增强代码重用性(这一条貌似没错,但是应该是面向对象的优点,不属于封装的优点)

判断

1.面向对象将数据和对数据的操作作为一个相互依赖,不可分割的整体,采用了数据抽象和信息隐蔽技术。

正确

2.属性就是实体特征的抽象,比如,对象猫可以有体重、身长等属性。

正确

3.以下代码的功能是在派生类class1中实现对虚方法printf()的重写。

(正确)

abstractpublicclassBaseClass

{

publicvirtualstringprintf()

{

return"这是虚方法";

}

}

publicclassclass1:

BaseClass

{

publicstringprintf()

{

return"这是新方法";

}

}

分析以下代码段,求运行结果

delegatestringSampleDelegate(string_value);

classProgram

{

staticvoidMain(string[]args)

{

SampleDelegated3=newSampleDelegate(SampleMethod1)+newSampleDelegate(SampleMethod2);

Console.WriteLine(d3("test"));

}

publicstaticstringSampleMethod1(string_value1)

{

return_value1+"1";

}

publicstaticstringSampleMethod2(string_value2)

{

return_value2+"2";

}

}

答案:

test2

本题考查学生对“委托”这一概念的掌握情况,可以将两个有返回值的方法都赋给某一个委托,但是最终的返回值是取决于最后一个方法的返回值。

多选

关于结构和类的描述,哪些选项不正确?

A)结构中初始化实例化字段是错误的(正确)

B)结构不能继承(正确)

C)结构实例化需要用new(不用也行)

D)结构和类都是引用类型(错,结构是值类型,类是引用类型)

答案:

CD

多选:

下列关于“方法重载”的描述中,哪些是正确的?

A)方法ConsoleW(int_value)是方法ConsoleW(string_value)的重载

B)方法重载即“同样的方法名但传递的参数不同”

C)构造函数不可以重载

D)方法重载可以扩充现有类的功能

答案:

ABD选项C错误,构造函数是可以重载的。

判断:

对象和对象之间的关系可以分为三类:

包含、继承和关联。

正确,见教材P90

publicdelegatevoidMyTestDelegate(stringstr1,stringstr2);

classProgram

{

staticvoidMain(string[]args)

{

MyTestDelegateMyTest=Compare;

MyTest("Bob","Magic");

}

staticvoidCompare(stringstr1,stringstr2)

{

switch(string.Compare(str1,str2))

{

case1:

Console.WriteLine("Greater");break;

case0:

Console.WriteLine("equal");break;

case-1:

Console.WriteLine("losser");break;

default:

Console.WriteLine("error");break;

}

}

}

划线处为填空处,本题考查委托的概念及委托的赋值和使用。

单选

下列关于继承的说法中,哪个选项不正确?

A)派生类只能从一个类中继承,但可以通过接口实现多重继承

B)类可以定义虚方法,虚属性等,它的派生类

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 艺术创意

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1