admin 管理员组文章数量: 1184232
2024年4月21日发(作者:css横向滚动)
第1章
一.选择题
1.关于C#程序的书写,下列不正确的说法是【D】。
A) 区分大小写
B) 一行可以写多条语句
C) 一条语句可以写成多行
D) 一个类中只能有一个Main()方法,因此多个类中可以有多个Main()方法。
2.C#应用程序项目文件的扩展名是【A】。
A) csproj B) cs C) sln D) suo
3.运行C#程序可以通过按【A】键实现。
A) F5 B) Alt+F5 C) Ctrl+F5 D) Alt+Ctrl+F5
4. 公共语言运行库可简写为(C )。
A) MSIL B) JIT C) CLR D) MSDN
5 .NET编程语言不包括下面哪种语言?(D)
A) Visual Basic B) Visual C++ C) Visual C# D) JAVA
第2章
一.选择题
1.在C#语言中,下列能够作为变量名的是【 C 】。
A) if B) 3ab C) a_3b D) a-bc
2.在C#语言中,转义字符不可以表示【 B 】。
A) 任何字符 B)字符串 C)字母 D)小数点
3.表达式5/2+5%2-1的值是【 B 】。
A) 4 B) 2 C) 2.5 D) 3.5
4.下列数值类型的数据精度最高的是【C】。
A) int B) float C) decimal D) ulong
5.在C#语言中,下面的运算符中,优先级最高的是【 B 】。
A) % B) ++ C) *= D) >
6.能正确表示逻辑关系“a≥10 或 a≤0”的C#语言表达式是【 D 】。
A) a>=10 or a<=0 B) a>=10 | a<=0
C) a>=10 && a<=0 D) a>=10 || a<=0
7.以下程序的输出结果是【 C 】。
using System;
class Program
{ public static void Main(string[] args)
{ int a=5,b=4,c=6,d;
ine(“{0}”,d=a>b?(a>c?a:c):b);
}
}
A) 5 B) 4 C) 6 D) 不确定
8.要使用变量score来存储学生某一门课程的成绩(百分制,可能出现小数部分),则最好
将其定义为【 C 】类型的变量。
A) int B) decimal C) float D) double
9.已定义下列变量:
int n; float f; double df;
df=10; n=2;
下列语句正确的是【 C 】。
A) f=12.3; B) n=df; C) df=n=100; D) f=df;
10.下列表达式或语句中,有语法错误的是【 A 】。
A) n=12%3.0;(n为int型) B) 12/3.0
C) 12/3 D) ‘a’>’b’
11.下面有关变量和常量的说法,正确的是【 B 】。
A) 在程序运行过程中,变量的值是不能改变的,而常量是可以改变的
B) 常量定义必须使用关键字const
C) 在给常量赋值的表达式中不能出现变量
D) 常量在内存中的存储单元是固定的,变量则是变动的
12、下列类型转换中正确的是【 A 】
(A) int i=’A’ (B) long L=1.1f (C) int i=(float)1.1 (D) int i=1.1
13、以下选项中,合法的赋值语句是(B )
(A) int a==1 (B) int i=1;int j=i++;
(C) int a=a+1=2; (D) int i=int (j);
14、下列运算符中属于关系运算符的是(A)
(A) == (B) = (C) += (D) -=
15、阅读下面的程序,程序的运行结果为(C)
int a=10,b=4,c=20,d=6;
=a++*b+c*--d;
(A)144 (B)160 (C)140 (D)164
16、阅读下面的程序,程序的运行结果为(B)
int x=3,y=4,z=5;
String s=”xyz”
=s+x+y+z;
(A)xyz12 (B)xyz345 (C)xyzxyz (D)12xyz
17、阅读下面的程序,程序的运行结果为(B)
int i=10,j=3;
float m=213.5f,n=4.0f;
=i%j+””;
=m%n+””;
(A)1.0和1.5 (B)1和1.5
(C)1.0和2.5 (D)1和2.5
二、程序改错题
1、在编写贪吃蛇游戏中,使用变量输出贪吃蛇游戏当前的状态、运行速度、得分,参
考程序如下,但该程序还存在一些错误,请调试改正。
private void button1_Click(object sender, EventArgs e)
{
int speed = 0;
int score = 0;
String status="";
= "游戏正在进行....../n";
speed = 0;
score = 30;
status = "正常运行";
= + "当前速度:" + speed + "像素/秒";
+= + "当前得分:" + score + "分";
+= + "当前状态:"+ status;
}
2、模拟连连看游戏判断是否打破记录的程序,参考程序如下,但该程序还存在一些错误,
请调试改正。
private void button1_Click(object sender, EventArgs e)
{
int a = 32;//代表原纪录
int b = 101;//代表新纪录
int c=(a
= "原记录:"+a+"n";
+= "新记录:n"+b+"n";
+= "当前结构:n"+c+"n";
}
第3章
一.选择题
1.在C#语言中,if语句后面的表达式应该是【 B 】。
A) 逻辑表达式 B) 条件表达式
C) 关系表达式 D) 布尔类型的表达式
2.在C#语言中,if语句后面的表达式,不能是【 B 】。
A) 逻辑表达式 B) 算数表达式
C) 关系表达式 D) 布尔类型的表达式
3.在C#语言中,switch语句用【 A 】来处理不匹配case语句的值。
A) default B) anyelse
C) break D) goto
4.下列程序的输出结果是【C 】。
using System;
class Program
{ public static void Main(string[] args)
{ int x=1,a=0,b=0;
switch(x)
{ case 0: b++; break;
case 1: a++; break;
case 2: a++; b++; break;
}
ine(“a={0},b={1}”,a,b);
}
}
A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2
5.以下叙述正确的是【D 】。
A) do……while语句构成的循环不能用其他语句构成的循环来代替
B) do……while语句构成的循环只能用break语句结束循环
C) 用do……while语句构成的循环,在while后的表达式为true时结束循环
D) 用do……while语句构成的循环,在while后的表达式应为关系表达式或逻辑表达式
6.以下关于for循环的说法不正确的是【A 】。
A) for循环只能用于循环次数已经确定的情况
B) for循环是先判定表达式,后执行循环体
C) 在for循环中,可以用break语句跳出循环体
D) for循环体语句中,可以包含多条语句,但要用花括号括起来
7.以下关于if语句和switch语句的说法,正确的【 CD 】。
A) 如果在if语句和switch语句中嵌入break语句,则在程序执行过程中,一旦执行到
break语句,就会结束相应的执行,转向执行其后面的语句
B) 凡是能够使用if语句的地方就可以使用switch语句,反之亦然
C) if语句有3种基本形式:if…、if…else…和if…else if…else…
D) if语句是实现“单判断二分支”的选择结构,switch语句是实现“单判断多分支”的
选择结构。
8.以下关于for循环的说法,不正确的是【 C 】。
A) for语句中的3个表达式都可以省略
B) for语句中的3个表达式中,若第2个表达式的值为true,则执行循环体中的语句,
直到第3个表达式的返回值为false
C) for语句中的3个表达式中,第2个表达式必须是布尔类型的表达式,其他两个可以
是任意类型的表达式。
D) for语句中的3个表达式中,第1个表达式执行且仅执行一次;每当循环体语句被执
行后,第3个表达式都跟着被执行一次。
9. C#提供的4种跳转语句中,不推荐使用的是【 D 】。
A) return B) break C) continue D) goto
10 执行下列语句序列后,i和j的值分别是【 C 】
int i=3,j=5;
if(i-1>j) i--;else j--;
A) 2,4 B)2,5 C)3,4 D)3,5
11 下列语句序列执行后,j的值是【 B 】
int j=5,i=6;
while(i3) –j;
A)1 B)2 C)3 D)4
12 以下for循环的执行次数是【 B 】
for(int i=1;(i==1)&(i>2);i++)
A)无限次 B)一次也不执行 C)执行1次 D)执行2次
13 以下由do-while语句构成的循环执行次数是【 C 】
int m=1;
do{++m}while(m<1);
A)有语法错误,不能执行 B)一次也不执行 C)执行1次 D)执行2次
二.改错题
1、根据消费总额进行打折,消费总额在100元以上(含100元)时打7折,90元以上(含
90元)100元以下时打8折,50元以上(含50元)90元以下时打9折,50元以下的不打
折。参考程序如下,但是该参考程序有错误,请调试并改正。
private void button1_Click(object sender, EventArgs e)
{
int totalAmount = ();//消费总额
if (totalAmount < 0)
{
= "输入有误!";
}
Else if(totalAmount >= 100)
{
= "打7折";
}
Else if(totalAmount > 90)
{
= "打8折";
}
Else if(totalAmount > 50)
{
= "打9折";
}
Else
{
= "不打折";
}
}
2、从键盘输入2012年的某一月份,打印出该月份的天数。参考程序如下,该参考程序还
存在一定的错误,请调试改正。
private void button1_Click(object sender, EventArgs e)
{
int day;
int month = ();//月份
switch (month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: ;
day=31;
break;
case 4:
case 6:
case 9:
case 11:
day=30;
break;
default:
day=-1;
break;
}
if(day==-1)
{
="无效输入";
}
else
{
="2012年"+month+"月的共有"+day+"天";
}
}
3、利用for循环打印出以下格式的内容,参考程序如下,但该参考程序有一定的错误,请
调试改正。
*****
****
***
**
*
private void button1_Click(object sender, EventArgs e)
{
for(int i=5;i>0;i--)//打印列
{
for(int j=0;j
{
+="*"
}
+="n"
}
}
第4章
一.选择题
1.下面哪个语句是创建数组的正确语句【 C 】。
A) float f[]=new float[6] B) float f[6]=new float[6]
C) float [] f=new float[6] D) float f=new float[6]
2.已知表达式int[] m={0,1,2,3,4,5,6},下面哪个表达式的值与数组的下标量总数相等【 B 】
A) () B)
C) -1 D) ()-1
3.数组中各个元素的数据类型是【 A 】。
A) 相同的 B) 不同的
C) 部分相同的 D)任意的
4.语句int []a=new int[12]定义了几个数组元素【 A 】。
A) 12 B) 13
C) 11 D)0
二.改错题
1、编写用数组保存某个学生的三门课程的成绩的程序,参考程序如下,但该参考程序有一
些错误,请调试改正。
private void button1_Click(object sender, EventArgs e)
{
Int []score =new int[3];
score[1]=90;
score[2]=80;
score[0]=70;
for(int i=0;i<3;i++)
{
=+"成绩"+(i+1)+":"+score[i];
}
}
第五章
一.选择题
1.下列的( )不是构造函数的特征【 D 】。
A) 构造函数的函数名和类名相同 B) 构造函数可以重载
C) 构造函数可以带有参数 D) 可以指定构造函数的返回值类型
2.已知类MyClass定义如下:
class MyClass
{
int a1=1;
private int a2=2;
protected int a3=3;
public int a4=4;
}
obj是MyClass的一个对象,则下列哪条语句是正确的?( D )
A) obj.a1=2; B) obj.a2=2; 3
C) obj.a3=2; D) obj.a4=2;
3.已知类MyClass定义如下:
class MyClass
{
static int a1=1; //没指定默认是私有的
protected int a3=3;
static public int a4=4;
}
obj是MyClass的一个对象,则下列哪条语句是正确的【 D 】。
A) obj.a1=2; B) obj.a4=2;
C) MyClass.a1=2; D) MyClass.a4=2;
4.分析下列程序
class Class1
{
ushort u1;
public Class1(ushort u)
{
this.u1=u;
}
}
则以下哪条语句能够正确创建对象?【 A 】。
A) Class1 c1=new Class1('u'); B) Class1 c1=new Class1("u");
C) Class1 c1=new Class1(); D) Class1 c1=new Class1(5.7);
5.分析下列程序
class Class1
{
ushort u1;
public Class1(ushort u)
{
this.u1=u;
}
}
则以下哪条语句能够正确创建对象?【 A 】。
A) Class1 c1=new Class1('u'); B) Class1 c1=new Class1("u");
C) Class1 c1=new Class1(); D) Class1 c1=new Class1(5.7);
6.分析下列程序
public class People
{
int age=8;
public int Age
{
get { return age;} //只读不可写
}
}
则调用下列语句,输出的是?【 C 】
People p=new People();
(++);
A) 8 B) 9
C) 编译错误 D) 0
7.要使一个类能被同一命名空间中的其他类访问,但不能被这个命名空间以外的类访问,
该类可以【 A 】。
A) 不使用任何修饰符
B) 使用private修饰符
C) 使用const关键字
D) 使用protected修饰符
8.类的字段和方法的默认访问修饰符是【 B 】。
A) public B) private C) protected D) internal
9.下列关于构造函数的描述中,【 A 】是正确的。
A) 构造函数名必须与类名相同 B) 构造函数不可以重载
C) 构造函数不能带参数 D) 构造函数可以声明返回类型
10.C#中的TestClass为一自定义类,其中有如下属性定义:
public void Property{……}
使用以下语句创建了该类的对象,并让变量obj引用该对象。
TestClass obj=new TestClass();
那么,可通过【 B 】方式访问类TestClass的Property属性。
A) MyClass. Property B) obj. Property
C) TestClass. Property D) obj. Property()
11.调用重载方法时,系统根据【 B 】来选择具体的方法。
A) 方法名 B) 参数的个数和类型
C) 参数名及参数个数 D) 方法的返回值类型
12.下列的【 D 】不是构造函数的特征。
A) 构造函数的函数名与类名系统 B) 构造函数可以重载
C) 构造函数可以带有参数 D) 可以指定构造函数的返回值类型
13.类ClassA有一个名为M1的方法,在程序中有如下一段代码,假设该段代码是可以执
行的,则声明M1方法时一定使用了【 B 】修饰符。
ClassA Aobj=new ClassA();
ClassA.M1();
A) public B) static C) private D) virtual
14.已知类B是由类A继承而来,类A中有一个名为M的非虚方法,现在希望在类B中
也定义一个名为M的方法,且两方法的参数个数和类型完全相同,若希望编译时不出现
警告信息,则在类B中声明该方法时,应使用【 B 】关键字。
A) static B) new C) override D) virtual
15.下列关于类的定义,错误的是【 D 】。
A) class A B) class A
{ void f(){ } { void f(){}
} };
C) class A B) class A
{ private void f(){ return; } { f(){}
} }
16.在类A中试图重载构造函数,并使用构造函数创建对象:
class A
{ A(){ } //语句1
public void A(int x) { } //语句2 //不可以指定构造函数的返
回值类型
public A(int x,int y) { } //语句3
}
class program
{ static void Main(string[] args)
{ A a=new A(); //语句4
A b=new A(100,200); //语句5
}
}
其中,正确的语句包括【 B 】。
A) 语句2和语句4 B) 语句1、语句3和语句5
C) 语句1、语句2和语句3 D) 语句4和语句5
17.假设类B继承了类A,下列说法错误的是【 C 】。
A) 类B中的成员可以访问类A中的公有成员
B) 类B中的成员可以访问类A中的保护成员
C) 类B中的成员可以访问类A中的私有成员
D) 类B中的成员可以访问类A中的静态成员
程序设计题
1 设计和编码实现一个实用的计算器,具体要求如下:
(1) 界面设计整洁美观,参考界面如图1所示
(2) 点击数字按钮和操作符按钮能够在输入框正确显示信息
(3) 点击“=”按钮至少能够计算一个操作符的表达式
(4) 点击“清空”按钮能够将内容清空
(5) 点击“=”按钮能够计算两个操作符以上的表达式
(6) 能够正确显示标题,标题信息为“计算器”
图1 计算器参考界面
2 设计和实现一个登录界面(使用中的数据库,参考界面如图2和图3所示),
具体要求如下:
1) 界面设计美观
2) 如果数据库不存在该用户,则提示用户不存在
3) 如果存在用户,则提示密码错误
4) 学号和密码正确,则提示登录成功
5)能够关闭数据库
图2 学生管理系统登录失败页面一
图3 学生管理系统登录失败页面二
3 编写一个长方形类Rectangles
(1) 成员数据:int length, int width
(2) 构造方法:Rectangles(int, int)
(3) 成员方法:
1)打印长方形面积printArea()
2)打印长方形周长printPermeter()
(4)界面展示要求美观,能够显示周长和面积,参考界面如图4所示
图4 面积计算示例图
4 编写一个书本类Book,包含:
(1) 4个字段 (每个字段的类型能够和实际生活对应):
书名(bookName)、
作者名(authorName)、
书号(isbn)、
库存(stock);
(2) 每个字段拥有对应的读写属性
(3) 1个方法:
printInfo:用于输出书本的相关信息。
(5)界面展示要求美观,能够显示书本的相关信息,参考界面如图5所示
图5 面积计算示例图
版权声明:本文标题:C#练习题及答案. 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1713662866a645940.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论