C#期末考练习题.docx
《C#期末考练习题.docx》由会员分享,可在线阅读,更多相关《C#期末考练习题.docx(11页珍藏版)》请在冰豆网上搜索。
C#期末考练习题
《C#程序设计》练习题
一.选择题(25分)
#中每个int类型的变量占用___A____个字节的内存。
在C#中,表示一个字符串的变量应使用以下哪条语句定义?
B
;;数组的下标从(B)开始
A.–中,新建一字符串变量str,并将字符串"Tom'sLivingRoom"保存到串中,则应该使用下列哪条语句?
A
="Tom\'sLivingRoom";=‘Tom'sLivingRoom’;
("Tom'sLivingRoom");("Tom"sLivingRoom");
5.下列语句创建了多少个string对象?
D
string[,]strArray=newstring[3][4];
应用程序中,要求下压按钮控件Button1有以下特性:
正常情况下,该按钮是扁平的,当鼠标指针移动到它上面时,按钮升高。
那么,在程序中,属性的值应设定为:
B
.
.
7.关于C#程序的书写,下列不正确的说法是__D__。
A.区分大小写B.一行可以写多条语句C.一条语句可写成多行
D.一个类中只能有一个Main()方法,因此多个类中可以有多个Main()方法
8.在C#语言中,下列能够作为变量名的是_C___。
在C#语言中,下面的运算符中,优先级最高的是__B__。
A.%B.++C./=D.>>
10.能正确表示逻辑关系“a>=10或a<=0”的C#语言表达式是_D___。
>=10ora<=>=10|a<=>=10&&a<=>=10||a<=0
11.以下程序的输出结果是__C__。
Usingsystem;
ClassExample1
{
PublicStaticvoidmain()
{
Inta=5,b=4,c=6,d;
d=a>b?
(a>c?
a:
c):
b;
(d);
}
}
不确定
12.要看到程序运行的结果,必须按下列哪个组合键(A)。
++++F
13...有如下程序
Usingsystem;
ClassExample1
{
PublicStaticvoidmain()
{
Intx=1,a=0,b=0;
Switch(x)
{
Case0:
b++,break;
Case1:
a++,break;
Case2:
a++,b++,break;
}
(“a={0},b={1}”,a,b);
}
}的输出结果是C
=2,b==1,b==1,b==2,b=2
14.以下叙述正确的是__D。
….while语句构成的循环不能用其他语句构成的循环来代替
….while语句构成的循环只能用break语句退出
C.用do….while语句构成的循环,在while后的表达式为true时结束循环
D.用do….while语句构成的循环,在while后的表达式应为关系表达式或逻辑表达式
15.以下关于for循环的说法不正确的是___A_。
循环只能用于循环次数已经确定的情况
循环是先判定表达式,后执行循环体语句
循环中,可以用break语句跳出循环体
循环体语句中,可以包含多条语句,但要用花括号括起来。
16.若有定义:
int[]x=newint[10]{0,2,4,4,5,6,7,8,9,10};则数组x在内存中所占字节数是__C__。
有定义语句:
int[,]a=newint[5,6];则下列正确的数组元素的引用是__C__。
(3,4)(3)(4)[3][4][3,4]
18.下列的数组定义语句,不正确的是_C___。
[]a=newint[5]{1,2,3,4,5}[,]a=newint[3][4]
[][]a=newint[3][];[]a={1,2,3,4};
19.要使文本框控件能够显示多行而且能够自动换行,应设置它的______B___属性。
和和WordWrap
和和WordWra
#源程序文件的默认扩展名为___C__。
下面有关for语句的描述有错误的是___D_。
A.使用for语句时,可以省略其中的某个或多个表达式,但不能同时省略全部3个表达式
B.在省略for语句的某个表达式时,如果该表达式后面原来带有分号,则一定要保留它所带的分号
C.在for语句表达式中,可以直接定义循环变量,以简化代码
语句的表达式可以全部省略
22.下面有关break,continue和goto语句描述正确的是__D__。
语句和continue语句都是用于终止当前整个循环
B.使用break语句可以一次跳出多重循环
C.使用语句可以方便地跳出多重循环,因而编程时应尽可能多使用goto语句
语句必须和标识符配合使用,break和continue语句则不然
23.下面是几条动态初始化一维数组的语句,指出其中正确的是__B__。
[]arr2=newint[];没有设置长度[]arr2=newint[4];
[]arr2=newint[i]{6,5,1,2,3};【】不能是变量[]arr2=newint[4]{6,5,1,2,3};
24.下面对Write()和WriteLine()方法的描述,哪些是正确的__A__。
()方法在输出字符串的后面添加换行符
B.使用Write()输出字符串时,光标将会位于字符串的后面
C.使用Write()和WriteLine()方法输出数值变量时,必须要先把数值变量转换成字符串
D.使用不带参数的WriteLine()方法时,将不会产生任何输出
25.设a=6,b=4,则表达式b*a+3的值为(C)
A.3B.18
C.27D.36
26.标识符的名字不能使用c#语言中的关键字,如果要使用,则应使用(C)字符作为前缀:
A.’B.任意字符C.@D./
二、填空题(20分)
1.结构化的程序设计的3种基本结构是(顺序),(循环),(选择)。
2.在C#程序中,程序的执行总是从(Main())方法开始的。
3.、在C#中,进行注释有两种方法:
使用“组定义与赋值语句如下:
int[]a={1,2,3,4,5};则a[2]的值是(3)。
5.下列程序段执行后,a[4]的值为(4)。
int[]a={1,2,3,4,5};a[4]=a[a[2]];
3的结果是:
(2)
7.具有n+1个元素的数组的索引是0--(n)
8.在调用一个方法的过程又调用另一个方法,称为(函数调用),一个方法直接或间接的调用它本身,称为(递归调用)。
三、程序分析题
1.运行以下程序段,结果是(150)
doublek,t;
t=0;
for(intn=1;n<=10;n++)
{
For(k=1;k<=5;k++)
t=t+k;
}
(t);
2.运行以下程序段,结果是(总和为25)
usingSystem;
classSumw
{
staticvoidMain()
{
inti=1,sum=0;
while(i<=10)
{
sum+=i;
i+=2;
}
=“总和为:
”+();
}
}
3.以下程序运行后,变量a的值为(10)
inta=100;
for(intj=10;j>0;j-=2)
a-=j*3;
4.以下程序运行后,控件textBox1显示内容为(819)
inti;
For(i=10;i<=20;i++)
{
if(i%5==0)
{
Continue;
}
+=()+”“;
}
5.给出下列程序的运行结果:
(5050)
usingSystem
ClassDome
{
StaticvoidMain()
{intn=1,sum=0;
while(n<101)
{
sum+=n;
n++;
}
(“1+2+3+…+100=”+sum);
}
}
6.
给出下列程序的运行结果:
(123456)
StaticvoidMain()
{
int[,]twoarray=newint[2,3]{{1,2,3},{4,5,6}};
(“***矩阵***”);
for(inti=0;iI<(0);i++)
{
for(intj=0;j<
(1);j++)
{
(twoarray[i,j]+”“);
}
();
}
}
7.给出下列程序的运行结果:
(15)
usingSystem;
publicclasstest
{
publicintnum;
publictest(inti)
{=i+5;}
StaticvoidMain()
{testclassone=newtest(10);
intx=;
(x);
}
}
8.给出下列程序的运行结果:
(1,1)
StaticvoidMain()
{
int[,]a=newint[3,3];
a[0,0]=1;
for(inti=1;i<3;i++)
{a[i,0]=1;
a[i,i]=1;
for(intj=1;j
}
for(inti=0;i<3;i++)
{
for(intj=0;j<=i;j++)
(“{0}\t”,a[i,j]);
(“{0}\t”,a[i,j]);
}
}
四,程序完善题,如:
1.
publicvoidMain()
{boolb1=false,b2=true;
(“b1={0}b2={1}“,b1,b2);
}
2.
publicvoidMain()
{intjshu=0,oshu=0;
int[]a=newint[]{0,4,7,8,9,10,14,15,19,20,50,48,55};
foreach(intkina)
{
if(K%2==0)oshu++;
elsejshu++;
}
(“{0}个奇数,{1}个偶数“,jshu,oshu);
}
3.StaticvoidMain()
{
charch;
stringstr;
(“请输入任意长度的字母并按回车键:
“);
ch=().Substring(0,1));特点:
构造函数的函数名和类的名称必须一样。
构造函数在对象定义的时候被自动调用。
构造函数可以被重载,但是不可以被继承。
1.创建文件的常用方法
(1)("路径")
(2)StreamWritesw=newStreamWrite("路径");
("内容");
2.什么是方法的重载,系统如何区分重载的方法
方法的重载是指在一个类里面可以有多个方法名字相同的不同方法。
但是方法的参数个数,顺序,不能相同。
系统通过方法调用时给的参数来区分重载的方法。
六、编程题(一般是我们课堂上练习过的,如:
)
1、(递归法或者使用循环实现)求某一个数的阶乘
2、