当前位置:首页 >> IT认证 >>

C#练习题及答案


第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; Console.WriteLine(“{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;
label1.Text=a++*b+c*--d; (A)144 (B)160 (C)140 (D)164

16、阅读下面的程序,程序的运行结果为(B) int x=3,y=4,z=5; String s=”xyz”
label1.Text=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;
label1.Text=i%j+””; label2.Text=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=""; label1.text = "游戏正在进行....../n"; speed = 0; score = 30; status = "正常运行"; label1.Text = label1.Text + "当前速度:" + speed + "像素/秒"; label1.Text += label1.Text + "当前得分:" + score + "分"; label1.Text += label1.Text + "当前状态:"+ status; }

2、模拟连连看游戏判断是否打破记录的程序,参考程序如下,但该程序还存在一些错误, 请调试改正。
private void button1_Click(object sender, EventArgs e) { int a = 32;//代表原纪录 int b = 101;//代表新纪录 int c=(a<b) ?"打破记录":"未打破记录"; label1.Text = "原记录:"+a+"\n"; label1.Text += "新记录:\n"+b+"\n"; label1.Text += "当前结构:\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; } Console.WriteLine(“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(i?3) –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 = int.Parse(textBox1.Text);//消费总额 if (totalAmount < 0) { label1.Text = "输入有误!"; } Else if(totalAmount >= 100) { label1.Text = "打7折"; } Else if(totalAmount > 90) { label1.Text = "打8折"; } Else if(totalAmount > 50) { label1.Text = "打9折"; } Else { label1.Text = "不打折"; } }

2、从键盘输入 2012 年的某一月份,打印出该月份的天数。参考程序如下,该参考程序还 存在一定的错误,请调试改正。
private void button1_Click(object sender, EventArgs e) { int day; int month = int.Parse(textBox1.Text);//月份 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) { label1.Text="无效输入"; } else { label1.Text="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<i;j++);//打印行并控制每行的*数量 { label1.Text+="*" } label1.Text+="\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) m.Length() B) m.Length C) m.Length-1 D) m.Length()-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++) { label1.Text=label1.Text+"成绩"+(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(); Console.Write(p.Age++); 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 设计和实现一个登录界面 (使用 student.rar 中的数据库, 参考界面如图 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#程序设计教程期末复习题及答案
C#程序设计教程期末复习题及答案_理学_高等教育_教育专区 暂无评价|0人阅读|0次下载|举报文档C#程序设计教程期末复习题及答案_理学_高等教育_教育专区。习题 1 一...
C#基础试题(附答案)
C#基础试题(附答案)_计算机软件及应用_IT/计算机_专业资料。一、选择题 1、能...口腔执业医师实践技能复习资料 中医护理学基础重点 执业医师实践技能考试模拟试题 ...
C#小程序练习题及答案
C#小程序练习题及答案_财会/金融考试_资格考试/认证_教育专区。《 C# 程序设计 基础》 习题库程序 三个数,用三元运算符(? :)把最大 数找出来。(k10031505)...
C#试题汇总(有答案)
C#试题汇总(有答案)_IT/计算机_专业资料。C#试题汇总(有答案)一、单项选择题(每小题 2 分,共 20 分) 1.在类作用域中能够通过直接使用该类的( A. 私有 ...
C#练习题及答案
C#练习题及答案_语文_高中教育_教育专区。第1章 一.选择题 1.关于 C#程序的书写,下列不正确的说法是【D】 。 A) 区分大小写 B) 一行可以写多条语句 C) ...
C#测试题1答案
C#测试题1答案_IT认证_资格考试/认证_教育专区。一、单项选择题() 1.在类作用域中能够通过直接使用该类的( D )成员名进行访问。 A. 私有 B. 公用 C. ...
C#笔试题_经典50题(含答案)
C#笔试题_经典50题(含答案)_英语考试_外语学习_教育专区。IT ...C笔试题(50题) 42页 5下载券 经典C语言测试题(众多知... 10页 5下载券...
C#经典习题(答案)
Index 答案:A 得分 评卷 人 二、填空题(每空 2 分,共 20 分) 1.C#数组类型是一种引用类型,所有的数组都是从 System 命名空间的 引用对象。 答案:object...
C#程序设计复习题及答案
C#程序设计》复习题一、填空题 1、当 MSIL 被执行时,___CLR___ 通过 ___JIT___编译器将 MSIL 代码进行最后的、与机器匹配的 优化,然后将其编译为真正...
C#基础知识考题 - 答案
C#基础知识考题 - 答案_教学案例/设计_教学研究_教育专区。C#基础知识考题- 答案 C#基础知识考题姓名:一 选择题 1.属于 C#语言的关键字(A )。 A. abstract ...
更多相关标签: