C期末考练习题.docx
《C期末考练习题.docx》由会员分享,可在线阅读,更多相关《C期末考练习题.docx(10页珍藏版)》请在冰豆网上搜索。
![C期末考练习题.docx](https://file1.bdocx.com/fileroot1/2022-12/17/0e16dcff-c326-4c9e-a831-69ddfd8bef05/0e16dcff-c326-4c9e-a831-69ddfd8bef051.gif)
C期末考练习题
《C#程序设计》练习题
一.选择题(25分)
1.C#中每个int类型的变量占用___A____个字节的内存。
A.1B.2C.4D.8
2.在C#中,表示一个字符串的变量应使用以下哪条语句定义?
B
A.CStringstr;B.Stringstr;C.DimstrasstringD.char*str;
3.数组的下标从(B)开始
A.–1B.0C.1D.2
4.C#中,新建一字符串变量str,并将字符串"Tom'sLivingRoom"保存到串中,则应该使用下列哪条语句?
A
A.stringstr="Tom\'sLivingRoom";B.stringstr=‘Tom'sLivingRoom’;
C.stringstr("Tom'sLivingRoom");D.stringstr("Tom"sLivingRoom");
5.下列语句创建了多少个string对象?
D
string[,]strArray=newstring[3][4];
A.0B.3C.4D.12
6.WindowsForm应用程序中,要求下压按钮控件Button1有以下特性:
正常情况下,该按钮是扁平的,当鼠标指针移动到它上面时,按钮升高。
那么,在程序中,属性Button1.FlatStyle的值应设定为:
B
A.System.Windows.Forms.FlatStyle.FlatB.System.Windows.Forms.FlatStyle.Popup
C.System.Windows.Forms.FlatStyle.StandardD.System.Windows.Forms.FlatStyle.System
7.关于C#程序的书写,下列不正确的说法是__D__。
A.区分大小写B.一行可以写多条语句C.一条语句可写成多行
D.一个类中只能有一个Main()方法,因此多个类中可以有多个Main()方法
8.在C#语言中,下列能够作为变量名的是_C___。
A.ifB.3abC.a_3bD.a-bc
9.在C#语言中,下面的运算符中,优先级最高的是__B__。
A.%B.++C./=D.>>
10.能正确表示逻辑关系“a>=10或a<=0”的C#语言表达式是_D___。
A.a>=10ora<=0B.a>=10|a<=0C.a>=10&&a<=0D.a>=10||a<=0
11.以下程序的输出结果是__C__。
Usingsystem;
ClassExample1
{
PublicStaticvoidmain()
{
Inta=5,b=4,c=6,d;
d=a>b?
(a>c?
a:
c):
b;
Console.Writeline(d);
}
}
A.5B.4C.6D.不确定
12.要看到程序运行的结果,必须按下列哪个组合键(A)。
A.Ctrl+F5B.Ctrl+F9C.Alt+F5D.Alt+F
13...有如下程序
Usingsystem;
ClassExample1
{
PublicStaticvoidmain()
{
Intx=1,a=0,b=0;
Switch(x)
{
Case0:
b++,break;
Case1:
a++,break;
Case2:
a++,b++,break;
}
Console.Writeline(“a={0},b={1}”,a,b);
}
}的输出结果是C
A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2
14.以下叙述正确的是__D。
A.do….while语句构成的循环不能用其他语句构成的循环来代替
B.do….while语句构成的循环只能用break语句退出
C.用do….while语句构成的循环,在while后的表达式为true时结束循环
D.用do….while语句构成的循环,在while后的表达式应为关系表达式或逻辑表达式
15.以下关于for循环的说法不正确的是___A_。
A.for循环只能用于循环次数已经确定的情况
B.for循环是先判定表达式,后执行循环体语句
C.for循环中,可以用break语句跳出循环体
D.for循环体语句中,可以包含多条语句,但要用花括号括起来。
16.若有定义:
int[]x=newint[10]{0,2,4,4,5,6,7,8,9,10};则数组x在内存中所占字节数是__C__。
A.6B.20C.40D.80
17.有定义语句:
int[,]a=newint[5,6];则下列正确的数组元素的引用是__C__。
A.a(3,4)B.a(3)(4)C.a[3][4]D.a[3,4]
18.下列的数组定义语句,不正确的是_C___。
A.int[]a=newint[5]{1,2,3,4,5}B.int[,]a=newint[3][4]
C.int[][]a=newint[3][];D.int[]a={1,2,3,4};
19.要使文本框控件能够显示多行而且能够自动换行,应设置它的______B___属性。
A.MaxLength和MultlineB.Multlineh和WordWrap
C.PassWordChar和MultlineD.MaxLength和WordWra
20.c#源程序文件的默认扩展名为___C__。
A.cppB.exeC.csD.lik
21.下面有关for语句的描述有错误的是___D_。
A.使用for语句时,可以省略其中的某个或多个表达式,但不能同时省略全部3个表达式
B.在省略for语句的某个表达式时,如果该表达式后面原来带有分号,则一定要保留它所带的分号
C.在for语句表达式中,可以直接定义循环变量,以简化代码
D.for语句的表达式可以全部省略
22.下面有关break,continue和goto语句描述正确的是__D__。
A.break语句和continue语句都是用于终止当前整个循环
B.使用break语句可以一次跳出多重循环
C.使用语句可以方便地跳出多重循环,因而编程时应尽可能多使用goto语句
D.goto语句必须和标识符配合使用,break和continue语句则不然
23.下面是几条动态初始化一维数组的语句,指出其中正确的是__B__。
A.int[]arr2=newint[];没有设置长度B.int[]arr2=newint[4];
C.int[]arr2=newint[i]{6,5,1,2,3};【】不能是变量D.int[]arr2=newint[4]{6,5,1,2,3};
24.下面对Write()和WriteLine()方法的描述,哪些是正确的__A__。
A.WriteLine()方法在输出字符串的后面添加换行符
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#中,进行注释有两种方法:
使用“//”和使用“/**/“符号对,其中(“//”)只能进行单行注释。
4.数组定义与赋值语句如下:
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]];
6.8/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;
}
Console.WriteLine(t);
2.运行以下程序段,结果是(总和为25)
usingSystem;
classSumw
{
staticvoidMain()
{
inti=1,sum=0;
while(i<=10)
{
sum+=i;
i+=2;
}
Textbox1.text=“总和为:
”+sum.ToString();
}
}
3.以下程序运行后,变量a的值为(10)
inta=100;
for(intj=10;j>0;j-=2)
a-=j*3;
4.以下程序运行后,控件textBox1显示内容为(1112131416171819)
inti;
For(i=10;i<=20;i++)
{
if(i%5==0)
{
Continue;
}
textBox1.text+=i.ToString()+”“;
}
5.给出下列程序的运行结果:
(5050)
usingSystem
ClassDome
{
StaticvoidMain()
{intn=1,sum=0;
while(n<101)
{
sum+=n;
n++;
}
Console.WriteLine(“1+2+3+…+100=”+sum);
}
}
6.
给出下列程序的运行结果:
(123456)
StaticvoidMain()
{
int[,]twoarray=newint[2,3]{{1,2,3},{4,5,6}};
console.writeline(“***矩阵***”);
for(inti=0;iI{
for(intj=0;j(1);j++)
{
Console.Write(twoarray[i,j]+”“);
}
Console.WriteLine();
}
}
7.给出下列程序的运行结果:
(15)
usingSystem;
publicclasstest
{
publicintnum;
publictest(inti)
{this.num=i+5;}
StaticvoidMain()
{testclassone=newtest(10);
intx=classone.num;
Console.WriteLine(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++)
Console.Write(“{0}\t”,a[i,j]);
Console.WriteLine(“{0}\t”,a[i,j]);
}
}
四,程序完善题,如:
1.
publicvoidMain()
{boolb1=false,b2=true;
console.WriteLine(“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++;
}
console.WriteLine(“{0}个奇数,{1}个偶数“,jshu,oshu);
}
3.StaticvoidMain()
{
charch;
stringstr;
console.WriteLine(“请输入任意长度的字母并按回车键:
“);
ch=Convert.ToChar(Console.ReadLine().Substring(0,1));//getachar
str=Console.ReadLine();//getastring
console.WriteLine(“您输入的第一个字母是:
”+ch);
console.WriteLine(“您输入的字符串是:
”+str);}
五、简答题:
(考一些重要的概念,如)
1.简述命名空间
C#中的类是利用命名空间来组织的。
命名空间提供了一种从逻辑上组织类的方式,防止命名冲突。
2.简述什么是构造函数及其特点
构造函数是一种特殊的成员函数,它主要用于为对象分配存储空间,对数据成员进行初始化.
特点:
构造函数的函数名和类的名称必须一样。
构造函数在对象定义的时候被自动调用。
构造函数可以被重载,但是不可以被继承。
3.创建文件的常用方法
(1)File.Creat("路径")
(2)StreamWritesw=newStreamWrite("路径");
sw.Write("内容");
4.什么是方法的重载,系统如何区分重载的方法
方法的重载是指在一个类里面可以有多个方法名字相同的不同方法。
但是方法的参数个数,顺序,不能相同。
系统通过方法调用时给的参数来区分重载的方法。
六、编程题(一般是我们课堂上练习过的,如:
)
1、(递归法或者使用循环实现)求某一个数的阶乘
2、