C#所有的自测题Word文件下载.docx
《C#所有的自测题Word文件下载.docx》由会员分享,可在线阅读,更多相关《C#所有的自测题Word文件下载.docx(25页珍藏版)》请在冰豆网上搜索。
4.工具栏包含程序员能够拖入窗体的控件的图标。
5.窗体和卷标都有标题栏。
6.只有在编写代码时才能够修改控件的属性。
7.图形框控件通常显示图像。
8.C#文件的扩展名为.csharp。
9.窗体的背景色是用BackColor属性设置的。
第三章
3.1填空题
1.每个方法体以左大括号({)开始,以右大括号(})结束。
2.大多数语句都以分号(;
)结束。
3.if语句用来作出判断。
4.单行注释以//开始。
5.空行、空白字符和制表符被称为可能空白字符。
换行符也被认为是空白字符。
6.关键字是C#保留使用的。
7.C#程序从Main方法开始执行。
8.Console.writeLine和Console.write会在控制台窗口显示信息。
3.2判断下列语句是否正确。
1.当执行程序时,程序中的注释会使计算机在屏幕上显示//之后的文本。
2.C#会认为变量number和NuMbEr是相同的。
3.求余运算符(%)只能用于整形操作数。
4.算数运算符*,/,%,+,—都具有相同的优先级。
3.3编写语句,完成下列任务。
1.将变量c,thisIsAVariable,q76354和number声明成int类型。
Intc,thisIsAVariable,q76354,number;
或者
Intc;
IntthisIsAVariable;
Intq76354;
Intnumber;
2.提示用户输入一个整数。
Console.Write(“Enteraninterger:
”);
3.输入一个整数并将它赋予一个int型变量value。
Value=ConvertToInt32(Console.ReadLine());
5.如果变量number不等于7,显示“Thevariablenumberisnotequalto7”。
Ifnumber(!
=7)
Console.WriteLine(“Thevariablenumberisnotequalto7”);
6.在控制台窗口的一行中显示“thisisaC#application”
Console.WriteLine(“ThisisaC#application”);
7.在控制台窗口的两行中显示“thisisaC#application”,第一行应以“C#”结尾,使用Console.WriteLine方法。
Console.WriteLine(“ThisisaC#\napplication”);
8.在控制台窗口的两行中显示“thisisaC#application”,第一行应以“C#”结尾,使用Console.WriteLine方法和两个格式项。
Console.WriteLine(“{0}/n{1}”,“ThisisaC#”,“application”);
3.4找出并改正以下语句中的错误。
1.if(c<
7);
Console.WriteLine(“Cislessthan7”);
错误:
if语句中条件(c<
7)的有圆括号之后的分号错误。
改正:
将这个分号删除。
[注:
如果不删除分号,则不管if中的条件是否为真,输出语句都会执行。
]
2.if(C=>
7)
Console.WriteLine(“Cisequaltoorgreaterthan7”);
错误:
关系运算符=>
不正确。
将=>
改为>
=。
3.5编写声明、语句或注释,完成下列任务。
1.表明程序将计算三个整数的乘积。
//Calculatingtheproductofthreeintegers
2.将变量x,y,z和result声明成int型。
Intx,y,z,result;
或者
Intx;
Inty;
Intz;
Intresult;
3.提示用户输入第一个整数。
Console.Write(“Enterfirstinterger:
4.读取用户输入的第一个整数,并将它保存在变量x中。
X=ConvertToInt32(Console.ReadLine());
5.提示用户输入第二个整数。
Console.Write(“Entersecondinterger:
6.读取用户输入的第二个整数,并将它保存在变量y中。
y=ConvertToInt32(Console.ReadLine());
7.提示用户输入第三个整数。
Console.Write(“Enterthirdinterger:
8读取用户输入的第三个整数,并将它保存在变量z中。
z=ConvertToInt32(Console.ReadLine());
9.计算包含在变量x,y和z中的三个整数的乘积,并将结果赋值给变量result。
Result=x*y*z;
10.显示消息“Productis”,后接变量result的值。
Console.WriteLine(“Productis{0}”,result);
3.6利用在练习3.5中编写的语句,写一个完整的程序,它计算并显示三个整数的乘积。
Usingsystem;
Publicclassproduct
{
Publicstaticvoidmain(string[]args)
}
Enterfirstinteger:
10Entersecondinteger:
20
Enterthirdinteger:
30Productis6000
第四章
4.1填空题
1.蓝图对于房子而言,就如同对象对于类一样。
2.每个类声明都包含关键字class,后面紧跟着类的名称。
3.操作符new会创建在它的右边指定的类的对象。
4.每个参数都必须指定类型和名称。
5.默认情况下,没有在名字空间中显示声明的类,会被隐式的放入全局名字空间中。
6.当类的每个对象维护它自己的属性副本时,表示该属性的字段也被称为实例变量。
7.C#为存储实数提供了三种简单类型:
float,double和decimal。
8.double类型的变量表示双精度浮点数。
9.Convert方法ToDecimal返回一个decimal值。
10.关键字public是一个访问修饰符。
11.返回类型void表明当方法完成任务后,它不会返回任何信息。
12.Console方法ReadLine读取字符,知道遇到换行符,然后返回一个字符串,包含除换行符之外的全部字符。
13.如果总是用完全限定类名引用类,则不要求有using指令。
14.float类型的变量表示单精度浮点数。
15.格式指定符C用于以货币格式显示值。
16.类型是值类型或者引用类型。
17.对于自实现属性,编译器会自动产生一个私有实例变量以及set和get访问方法。
4.2判断下列语句是否正确。
1.按照约定,方法名的第一个字母小写,而后续所有单词的首字母都大写。
2.属性的get访问方法使客户能够修改与该属性相关变量的实例变量的值。
3.当名称空间中的某个类使用同一个名字空间中的另一个类时,不要求有using指令。
4.如果方法声明中的方法名后面是空圆括号,则表明这个方法执行任务时不需要任何参数。
5.定义属性后,可以像使用方法一样使用它,但它带的是空圆括号,因为没有实参会传递给属性。
6.用private访问修饰符声明的变量或方法,只能由声明它们的类的属性和方法访问。
7.在特定方法体中声明的变量,称为实例变量,它们只能用在这个类的属性和方法访问。
8.属性声明必须同时包含get访问方法和set访问方法。
9.方法体或属性体都用左右两个大括号隔离出来。
10.默认情况下局部变量会被初始化。
11.引用类型实例变量默认被初始化为null值对
12.包含publicstaticvoidmain(string[]args)声明的任何类,都可以用来执行程序。
13.方法调用中的实参个数,必须与被调用的方法声明参数表中的参数个数形同。
14.默认情况下,出现在源代码中的实数被称为浮点字面文字,都是float类型的。
4.3局部变量与实例变量有什么不同?
局部变量在方法体内声明,只能用于声明它的方法内。
实例变量是在类中声明的,而不是在类的任何方法体内声明。
类的每个对象(实例)都有该实例变量的一个单独副本。
而且,类的所有方法都可以访问实例变量。
4.4解释方法参数的作用。
参数与实参有什么不同?
参数代表额外的信息,方法要求这些信息才能执行任务。
方法要求的每个参数,在方法的声明中指定。
实参是当调用方法时传递给方法参数的实际值。
第五章
5.1填空题
1.所有的程序都能够以三种控制结构类型编写,这三种结构是顺序、选择和循环。
2.当条件为真时执行一个动作,为假时执行另一个动作的语句是if`·
·
else语句。
3.重复执行一组指令特定次数的循环,称为计算器控制循环。
4.当无法预先知道一组语句将重复执行多少次的时,应使用标记值、信号值、标志值或哑值来终止这个循环。
5.C#中内置的语句执行结构是顺序结构,即默认情况下语句会按照它们出现的顺序来执行。
6.int类型实例变量默认值为0。
7.C#是一种强类型化语言,它要求所有的变量都具有类型。
8.如果对变量使用前置递增运算符,则变量的值会首先加1,然后将它的新值用在表达式上。
5.2判断下列语句是否正确。
1.算法是关于要执行的动作以及执行它们的顺序的问题求解过程。
对
2.包含在一对圆括号内的一组语句,称为语句块。
3.选择语句指定当某个条件为真时要重复执行的某一条语句。
4.嵌套控制语句出现在另一个控制语句的语句体中。
5.C#提供了几个算数复合赋值运算符用来简化赋值表达式,这些运算符包括+=,—=,*=,/=和%=。
6.指定在程序中执行语句(动作)的顺序,被称为程序控制。
7.一元强制转换运算符“(double)”会创建它的操作数的一个临时整数型副本。
8.bool类型实例变量的默认值为true。
9.伪代码是用来帮助程序员在用编程语言编写程序之前“思考”的。
5.3编写4条不同的C#语句,它们都将int变量x加1。
x=x+1;
x+=1;
++x;
x++;
5.4编写C#语句,完成下列任务。
1.将x和y的和赋值给z,并在计算之后将x的值加1.只使用一条语句。
Z=x+++y;
2.测试变量count的值是否大于10。
如果是,显示“countisgreaterthan10”。
If(count>
10)
Console.WriteLine(“Countisgreaterthan10”);
3.将变量x的值减1,然后用变量total与它相减。
只是用一条语句。
Total-=--x;
4.计算q除以divisor之后的余数,并将结果赋予q。
以两种方式编写这条语句。
q%=divisor;
q=q%divisor;
5.5编写C#语句,完成下列任务。
1.将变量sum声明为int类型。
Intsum;
2.将变量x声明为int类型。
3.将变量x赋值1。
X=1;
4.为变量sum赋值0。
Sum=0;
5.计算变量x和sum的和,并将结果赋予变量sum。
Sum+=x;
或者sum=sum+x;
6.显示“Thesumis”,后接变量sum的值。
Console.WriteLine(“Thesumis{0}”,sum);
5.6将练习5.5中的语句组合成C#程序。
计算并显示整数1~10的和。
使用while语句循环计算语句和递增语句。
循环应当在X的值变为11时终止。
Usingsystem;
PublicclassCalculate
{
PublicstaticvoidMain(string[]args)
Intx;
X=1;
Sum=0;
While(x<
=10)
}
Console.WriteLine(“Thesumis{0}”,sum);
Thesumis55
5.7执行下列语句后,确定变量的值,假设开始执行语句时,所有变量的类型都为int,且都有值5。
Product*=x++;
Product=25,x=6
5.8找出并更正如下代码段中的错误。
1.while(c<
=5)
Product*=c;
++c;
忘记了while语句的闭右括号。
在语句“++c;
”之后添加一个闭右括号。
2.if(gender==1)
Console.WriteLine(“Woman”);
else;
Console.WrieLine(“Man”);
else之后的分号会导致逻辑错误。
第二条输出语句会总是执行。
改正:
5.9下面的while语句中有什么错误?
While(z>
=0)
Sum+=z;
While语句中变量z的值永远不会改变。
因此,如果初始时循环继续条件(z>
=0)为真,则会出现无限循环。
为了防止出现无限循环,必须递减Z的值,以使它最终变为小于0。
第六章
6.1填空题
1.一般而言,for语句用于计算器控制循环,而while语句用于标记控制循环。
2.do·
while语句在执行循环体之后测试循环继续条件,因此循环体总是至少会执行一次。
3.根据整形变量或表达式可能的值,switch语句会在多个动作中间进行选择。
4.当在循环语句中执行时,continue语句会跳过循环体中的剩余语句,继续进行循环的下一次迭代。
5.&
&
(条件与)或&
(布尔逻辑与)运算符在选择某个执行路径之前,可用来确保两个条件都为真。
6.如果在for首部中的循环继续条件最初为假,则不会执行for语句体。
7.执行通用任务、不需要在对象上调用的方法,被称为静态方法。
6.2判断下列语句是否正确。
1.在switch选择语句中,要求有默认分支。
2.在switch语句的每一个分支中,都要求有break语句。
3.如果(x>
y)为真,或者(a<
b)为真,则表达式((x>
y)&
(a<
b))就为真。
4.如果包含||运算符的表达式的两个操作数有一个为真或者两个都为真,则这个表达式就为真。
5.格式项(例如{0.4})中逗号后面的整数表示要显示的字符串的字段宽度。
6.为了测试switch语句中的值得范围,需在分支标签的起始值和结尾值之间使用连字符(—)。
7.连续地列出多个分支,让它们之间没有语句,可使这些分支执行同一组语句。
6.3编写一条或一组C#语句,完成下列任务。
1.使用一条for语句,求1~99de奇数和。
假设已经声明了整形变量sum和count。
Sum=0;
For(count=1;
count<
=99;
count+=2)
sum+=count;
2.用Pow方法计算2.5的三次幂。
doubleresult=Math.Pow(2.5,3);
3.使用while循环和计算器变量i,显示1~20的整数。
假设已经声明了变量i,但没有初始化它,每行显示五个整数。
[提示:
利用i%5。
当它的结果为0时,显示一个换行符,否则显示一个制表符。
使用Console.WriteLine()方法输出换行符,而使用console。
Write(‘\t’)方法输出制表符。
i=1;
while(i<
=20)
{
Console.write(i)
if(i%5==0)
Console.writeline();
else
Console.Write(‘\t’);
++i;
4.用for语句解第3题部分同样的问题。
for(i=1;
i<
=20;
i++)
Console.Write(i);
if(i%5==0)
6.4找出如下代码中的错误并改正。
1.i=1;
While(i<
=10);
++i;
while首部后面的分号会导致无限循环,且while语句体中缺失左大括号。
删除分号并在循环体之前添加一个左大括号。
2.for(k=0.1;
k!
=1.0;
k+=0.1)
Console.WriteLine(k);
使用浮点数来控制for语句可能会出现错误,因此在大多数计算机中,浮点数是近似表示的。
使用整数,且为了获得所期望的值需执行正确的计算,如下所示。
for(k=1,k<
10;
k++)
Console.WriteLine((double)k/10);
3.switch(n)
case1:
Console.WriteLine(“Thenumberis1”);
case2:
Console.WriteLine(“Thenumberis2”);
break;
default:
Console.WriteLine(“Thenumberisnot1or2”);
break;
分支1不能落入分支2中。
应以某种方式终止分支,比如在第一个分支的语句末尾添加一条break语句。
5.下面的代码应显示值1~10。
n=1;
while(n<
Console.WriteLine(n++);
错误。
在while循环继续条件中使用了错误的关系运算符。
将<
替换成<
=,或者将10改成11。
第七章
7.1填空题。
a)在程序中使用方法是通过方法调用实现的。
b)只在声明它的方法中可知的变量,称为局部变量。
c)被调方法中return语句可用来将表达式的值回传给调用方法。
d)关键字void表示方法不返回值。
e)数据只能从栈的顶添加或删除。
f)栈被称为后入先出(LIFO)的数据结构——压入栈(插入)的最后一项,是从栈中弹出(移走)的第一项。
g)有三种途径可将控制从被调方法返回到调用方法,它们是return、returnexpression和遇到方法的闭右括号时。
h)Random类的对象处理伪随机数。
i)在程序执行期间,程序执行栈里包含每次调用方法时用到的局部变量的内存。
这一数据作为程序执行栈的一部分被保存,它被称为方法调用的活动记录或栈帧。
j)如果方法调用的个数超过了程序执行栈的容量,就会发生称为栈溢出的错误。
k)声明的作用域是程序中可以用非限定名引用所声明实体的部分。
l)多个方法可以具有相同的名称,它们对不同类型或数量的实参进行操作。
这一特性被称为方法重载。
m)程序执行栈也被称为方法调用栈。
n)直接或间接调用自己的方法,是递归方法。
o)递归方法通常具有两个部分:
提供通过测试基本情况终止递归的部分,和将问题表述成一个递归调用,比原始调用稍微简单一些的部分。
7.2对于图7.8中的Craps类,给出如下每个实体的作用域。
a)randomNumbers变量。
类体
b)diel变量。
定义RollDice方法体的语句块。
c)RollDice方法
类体。
d)Main方法。
e)sumOfDice变量。
定义Main方法体的语句体。
7.3编写一个程序,它测试图7.2中给出的Math类方法调用的例子是否真的会产生所给出的结果。
1//Exersise7.3Solution:
MathTest.cs