C#实验考查题目20.docx
- 文档编号:10321907
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:34
- 大小:653.60KB
C#实验考查题目20.docx
《C#实验考查题目20.docx》由会员分享,可在线阅读,更多相关《C#实验考查题目20.docx(34页珍藏版)》请在冰点文库上搜索。
C#实验考查题目20
C#实验题库
说明:
基本题目是上机课考查题目。
综合题目是可选题目。
安排测试时间:
按正常进度安排实验指导书中的上机实验题目,然后针对每部分的知识,进行上机实验考查,每次考查记入实验总成绩。
第一部分(Ch1-3)C#基本语法
一基本题目
1、创建一个包含10个元素的int一维数组,从键盘接收其值;当用户输入非法时,提示重新输入;计算一维数组中的元素平均值,并显示(保留小数点后4位);
2、从键盘循环接收字符串,并换行逆序显示;当用户直接回车时,结束;
3、从键盘循环接收字符串,计算其中的单词个数,并逐单词逆序显示,假定单词之间以空格为分隔符;
4、创建一个包含10个元素的int型一维数组,从键盘接收其值,当用户输入非法时,提示;使用foreach循环语句逐个显示该数组的值;
5、从键盘循环接收字符串,判断用户输入,若为5个大写字母,则显示提示信息后退出,否则,重新接收字符串判断;
6、使用随机数,填充数组arr,并使用循环语句显示该二维数组的值,同时计算并显示每一行元素的和;
假定数组定义如下:
int[,]arr=newint[2,3];
7、使用随机数填充一个具有10个元素的一维byte数组,并按降序排列显示其值;
8、自定义一个包含10个元素的一维int数组,并在声明语句中为其赋值;使用循环语句,随机选取该数组中的5个不重复的数据,拼成字符串(可使用空格将每个元素分隔),并显示;
9、从键盘循环接收字符串,判断其是否可以转换成日期,若可以则以长格式显示(“****年**月**日”),若不可以则显示提示信息。
10、随机生成一个60~100之间的整数,判断该值的大小,若在60~75之间,则显示“Ok”,若在76~90之间,则显示“good”,若在91~100之间,则显示“excellent”。
11、随机生成一个100~999之间的整数,将该整数的个位、十位、百位的值相加,显示其值;
12、从键盘接收一个int整数,若为负数,则显示negative,若为零,则显示zero,若为正数,则显示positive。
13、创建一个byte类型的数组,数组长度由用户输入指定,并使用随机数填充该数组;
14、从键盘接收一个字符串,显示字符串的长度,并查找该串中是否存在字母A(无论大小写),若不存在,则将大写字母A插入到串首位置,并显示新串。
15、从键盘接收一个字符串,统计数字字符出现的次数,并显示每次出现的位置;
16、从键盘接收一个字符串,将其中的所有数字字符去除后,显示;
17、从键盘接收一个字符串,将字符串中的子串“ab”替换为“cd”,显示替换前后的字符串,并显示替换的次数。
18、从键盘接收一个字符串,将其转换成一个double类型的数据,若转换成功,则显示转换之后的结果(保留小数点之后的4位,小数点之前的数字每3位加一个逗号);若转换失败,则显示提示信息,并继续接收用户输入,重新转换;
19、从键盘接收两个整型数据x和y,x在0-100之间,y在0-30之间,求z=x*0.7+y,保留小数点后2位显示结果。
20、从键盘接收一个0-10之间的数据,使用while循环语句,求该数据的立方值,并以3位整数的形式显示,位数不足用0补充。
21、从键盘接收一个字符串,将其按照字符“\”进行拆分成数组,显示该数组的元素个数,并按倒序显示数组中的每个元素。
22、使用随机数填充一个包含10个元素的int数组,找出其中的最大值,显示,并计算该数组的平均值,显示;
23、创建一个string类型的泛型列表list,由键盘输入,向list中添加5个元素;查找其中是否包含“net”,若不存在,添加该元素;查找其中是否包含“java”,若存在,则删除该元素;显示list的各项;
24、创建一个
25、使用字典Dictionary
26、统计一个字符串中的数字字符的数目,并显示;
27、从键盘接收一个字符串,将其中的所有字母(包括大写字母和小写字母)删除后,显示结果字符串;
28、从键盘接收3个整数,将其按照从小到大的顺序显示;
29、将输入的任一字符串翻译成密文,密码规则:
用原来的字母后的第3个字母代替原来的字母;例如遇到A用D代替,依次类推。
30、从键盘循环接收一个字符串,输入空串时退出循环。
对接收的字符串执行以下操作:
(1)统计字符串中数字字符出现的次数以及每次出现的位置。
(2)将字符串中的所有字符按照原顺序用大写字母构成新的字符串,并输出。
31、从键盘接收一个整数n,构造含有n个元素的整型数据,用0~100之内的随机数填充该数组,然后分别输出该数组中的最大值/最小值和平均值。
32、请编写一个程序,可以将英语规则名词(不考虑不满足以下规则的英语单词)由单数变成复数。
已知规则如下:
a)以辅音字母y结尾,则将y改成i,再加es;b)以s,x,ch,sh结尾,则加es;
c)以元音o结尾,则加es;d)其他情况直接加s。
要求用键盘输入英语规则名词,屏幕输出该名词的复数形式。
二综合题目
1.逆数对问题
题目描述:
设A[1…..n]是一个包含n个不同数的数组,如果在i
请编写程序,根据用户输入的正整数n(n>=2)和n个不同的数,求出数组A[n]的逆序对个数。
其中,第一行输入数组包含的元素个数n,第二行输入n个不同的数(以逗号分隔)。
假设有数组A[10],给数组输入10个数,则
样例输入:
10
1,2,3,6,4,5,7,8,9,10
样例输出:
2
2.数组排序问题
题目描述:
输入30个数到一个5行6列的数组,经排序后该数组各元素值按列从小到大排列,并显示该2维数组。
请编写程序实现此功能。
样例输入:
1320111310
2621121819
5427141516
7917222324
8025262829
样例输出:
0510152025
1611162126
2712172227
3813182328
4914192429
3.字符串处理问题
问题描述:
从键盘接收一个字符串(不多于80个字符),将其中的数字字符按原顺序组成一个新字符串,将其中的英文字母都用大写按原顺序组成另一个新字符串,然后再输出这两个新字符串,每个一行。
如果原字符串中没有数字字符或没有英文字母,则输出"Therearenotdigits."或"Therearenotletters."。
当接收的字符串为”**”时程序结束。
样例输入:
a@B1C3D$5ef&gh
样例输出:
135
ABCDEFGH
样例输入:
abcd%eG#h
样例输出:
Therearenotdigits
ABCDEGH
4.矩阵转换问题
问题描述:
行与列的个数均为n的矩阵称为n阶方阵。
假定矩阵中的每个元素的值在0到9之间,则可以将矩阵中的所有元素按行依次排列得到一个“单行矩阵字符串”。
例如,3*3的3阶方阵
435
245
019
可以描述为"435245019"。
你的任务是从键盘接收“单行矩阵字符串”并将其以矩阵样式输出,若判断行数与列的个数不一样,即非n阶方阵,则输出“Error”
样例输入:
435245019
样例输出:
435
245
019
样例输入:
9
样例输出:
9
样例输入:
0123456789
样例输出:
Error
5.数字图形问题
问题描述:
从键盘接收一个自然数N(1≤N≤9),当输入的自然数N不属于此范围时退出程序。
对于N(1≤N≤9),在屏幕上输出如下图形,并且保证N在图形中只出现一次,且在图形的中心。
当N=1时:
当N=3时:
当N=4时:
1 11111 1111111
12221 1222221
12321 1233321
12221 1234321
11111 1233321
1222221
1111111
6.数字排列问题
问题描述:
对于给定的正整数n,则1到n这n个数可以构成n!
种排列,把这些排列按照从小到大的顺序(字典顺序)列出。
例如当n=3时,列出123,132,213,231,312,321六个排列。
任务描述:
给出某个排列,求出这个排列的下k个排列,如果遇到最后一个排列,则下1个排列为第1个排列,即排列123…n。
比如:
n=3,k=2给出排列231,则它的下1个排列为312,下2个排列为321,因此答案为321。
输入:
第一行是一个正整数m,表示测试数据的个数,下面是m组测试数据,每组测试数据第一行是2个正整数n(1<=n<1024)和k(1<=k<=64),第二行有n个正整数,是1,2…n的一个排列。
输出:
对于每组输入数据,输出一行,n个数,中间用空格隔开,表示输入排列的下k个排列。
样例输入:
2
31
231
31
321
样例输出:
312
123
7.水果计数问题
问题描述:
水果店老板认为,只要两种水果的名字中有一个字相同就属于同样的类别。
例如“小雪梨”和“大雪梨”是同一种水果,而“核桃”和“水蜜桃”也被认为是同一种水果。
尤其要指出的是,如果有三种水果x,y,z同时出现,且x和y是同一种水果,y和z也是同一种水果的时候,x和z在此时也被认为是同一种水果(即使x和z并不包含相同的字)。
现在老板想知道,今天共有多少种水果?
输入:
若干组包含水果信息的字符串数据,每组数据以回车换行结束。
字符串中,以空格分割每一种水果。
如果仅输入回车,表示输入结束。
输出:
输出水果种类个数。
样例输入:
雪梨柠檬西瓜苹果花生水蜜桃
样例输出:
6
样例输入:
雪梨柠檬大梨雪莲果
样例输出:
2
样例输入:
冬枣沙枣沙糖橘橘子
样例输出:
1
8、斐波纳契数列(fib)
【问题描述】
斐波纳契数列的定义:
Fib
(1)=1,
Fib
(2)=1,
Fib(n)=Fib(n-1)+Fib(n-2)(n>=3)
现在给你2个数字a和b,计算在[a,b]之间有多少个斐波纳契数字。
【输入】
若干组数据,每组数据为2个非负整数a和b(a<=b<=10^100);如果a=b=0,表示输入结束。
【输出】
每行输出一组[a,b]之间的斐波纳契数字个数。
【样例输入】
10100
12345678909876543210
00
【样例输出】
5
4
9、加密问题
【问题描述】加密操作如下,取两个正整数X、Y,对于一段明文字符串中的字母,将其按行填入一个X行Y列的矩阵中(非字母忽略不填、而且所有字母要求全转换为大写),若未填满,则按字母表顺序顺次填充(’A’…’Z’循环填充)。
比如对于X=3,Y=3,明文为”Problem”时,矩阵填充后的结果为:
PRO
BLE
MAB
这样,就得到了一个矩阵,将矩阵按列输出就得到了所要的密文“PBMRLAOEB”。
你的任务是,编写程序使得对于任意给定的X、Y以及明文,程序都能输出正确的密文。
【输入】
第一行X,Y(0 第二行至末尾每行均为一个明文(保证明文中字母的个数N<=X*Y)。 【输出】 对于每一行明文中的字母部分输出对应的一行密文。 【样例输入】 33 Problem test lI156-*/-St 【样例输出】 PBMRLAOEB TTCEADSBE LTCIADSBE 10、垂直柱状图问题 【问题描述】编写一个程序接收4行大写字母组成的字符串(每行字符串中字符的个数不能超过72),打印每个字母(不考虑空格、标点符号、分隔符和数字)在这4行字符串文本输入中出现的字数,并按照要求的输出格式显示结果。 【输入】 共4行,每行输入的都是大写字母构成的字符串,并且每行长度不超过72 【输出】 1行或者多行;使用*号表示字母出现的次数,其中每个大写字母之间用空格进行分割。 要求每一行的结尾不要输出不必要的空格,在空行部分不要输入其他的符号(比如,等)。 【样例输入】 THEQUICKBROWNFOXJUMPEDOVERTHELAZYDOG. THISISANEXAMPLETOTESTFORYOUR HISTOGRAMPROGRAM HELLO! 【样例输出】 11、找位置问题 【问题描述】 n个人围成一圈,并依次编号1~n。 从编号为1的人开始,按顺时针方向每隔一人选出一个,剩下的人重新围成一圈,如此循环直到剩下两人,这剩下的两人就是幸运儿。 如果你想成为最后两个幸运儿,请问开始时应该站在什么位置? (设3<=n<=50) 【输入】 开始时的人数n 【输出】 第1行是选出顺序,第2行是两名幸运儿的开始位置(按升序排列),位置编号之间用一个空格分开。 【样例输入】 12 【样例输出】 2468101237115 19 第二部分(ch4-5)面向对象编程 1、编写控制台应用程序,定义一个Book类: (1)具有Name(书名)、Price(定价)、Press(出版社)三个属性; (2)提供无参构造函数和带参的构造函数,构造函数中设置相应的属性值; (3)提供一个Print方法,显示Book实例的三个属性值; 2、编写控制台应用程序,定义一个Course类: (1)具有Name(课程名)、Time(开课时间)、Count(选课人数)三个属性,其中开课时间为枚举值{春季学期、秋季学期},选课人数范围0~100; (2)具有一个静态变量Counter,每创建一个Course实例,将该变量值加1; (3)提供无参构造函数和带参的构造函数; 3、编写控制台应用程序,定义一个类A: (1)具有一个int型私有静态变量staticNumber和一个int型私有实例变量number; (2)提供一个静态构造函数,设置静态变量staticNumber的初值为50; (3)提供一个实例方法Input,从键盘接收一个int值,若转换成功,则同时为staticNumber和number赋值,否则,将staticNumber和number的值置为100; (4)提供一个静态方法Print和一个实例方法Printn,分别输出显示staticNumber和number的值; 4、试编写控制台应用程序,完成下列要求: (1)定义一个类StringInput,具有一个string类型的实例变量string1和一个string类型的静态变量string2; (2)提供一个静态方法InputS和一个实例方法Input,分别用于从键盘输入字符串,为string1和string2赋值; (3)在Main方法中,分别调用InputS方法和Input方法; 5、试编写控制台应用程序,在Program类中完成下列要求: (1)提供一个方法Add,包括两个int型加数作为参数,方法中将两个参数相加,并显示结果; (2)提供一个方法AddOne,包含一个int型ref参数,方法中将该参数加1; (3)Main方法中,从键盘输入两个int型数值,调用Add方法显示两数之和;再分别调用AddOne方法将输入数值加1,调用Add方法显示修改后的两数之和; 6、试编写控制台应用程序,完成下列要求: (1)在Program类中,提供一个方法Calculate,包含两个int型参数,一个运算符参数(枚举类型: Add、Sub、Mul、Div),一个输出参数; (2)在Main方法中,从键盘输入两个int型数据,分别调用Calculate方法,计算其和、差、乘积和商,并输出; 7、试编写控制台应用程序,完成下列要求: 在Program类中提供一个包含2种重载形式Sub方法 (1)第一种重载形式: 包含int型的两个参数inta和intb,返回两值的差(inta-intb); (2)第二种重载形式: 包含string型的两个参数str和substr,返回从str中移除substr的结果(只移除第一个子串即可); 8、试编写控制台应用程序,完成下列要求: (1)定义一个类Student,包含属性值: ID(学号)、Name(姓名)、Department(院系)、Courses(选修课程,字符串数组); (2)类graduateStudent继承自类Student,具有自己的属性Research(研究方向); (3)类Student和类graduateStudent均包含无参的构造函数和有参的构造函数; 9、试编写控制台应用程序,完成下列要求: (1)定义一个长方体类,数据成员包括length(长)、width(宽)、height(高); (1)方法Input: 通过键盘接收长方体的长、宽、高的值; (2)方法GetVolume: 计算机长方体的体积,并输出; (3)属性值IsCube: 布尔类型,根据长、宽、高的值判断是否立方体; 10、试编写控制台应用程序,完成下列要求: (1)定义一个抽象类Shape,具有一个抽象方法PrintArea(); (2)定义一个Triangle(三角形)类,继承自Shape类; (1)Triangle类中包括三个数据成员: 两条边长,和这两条边的夹角; (2)Triangle类中定义布尔类型属性值IsAreTriangle(是否正三角形); (3)Triangle类中实现父类Shape类的PrintArea()(计算并输出三角形的面积) 11、试编写控制台应用程序,完成下列要求: (1)定义一个抽象类Shape,具有一个抽象方法PrintArea(); (2)定义一个Rectangle(距形)类,继承自Shape类; (3)Rectangle类中包含两个数据成员: 长和宽; (4)Rectangle类中包含两个方法的实现: 一是父类抽象方法PrintArea()(计算并输出面积);二是Rectangle类的GetPerimeter()方法,计算周长; 12、试编写控制台应用程序,完成下列要求: (1)定义一个Person类,包含姓名、年龄、手机号码三个只读属性值,注意年龄范围在0-150直接,手机号码为11位; (2)为Person类添加一个带有姓名、年龄、手机号码三个参数的构造函数; (3)为Person类添加一个SetAttributes的方法,可设置三个属性值; (4)为Person类添加一个Print方法,在一行内输出实例的三个属性值; (2)在Main方法中,添加以下代码,调试无误,看到不同输出结果; 13、试编写控制台应用程序,完成下列要求: (1)定义一个Person类,包含姓名、年龄、手机号码三个属性值,注意年龄范围在0-150直接,手机号码为11位; (2)Person类仅包含默认的无参构造函数; (3)为Person类添加一个InputAttributes的方法,从键盘获取属性值(注意给出提示信息); (4)为Person类添加一个Print方法,在一行内输出实例的三个属性值; (5)在Main方法中,定义一个Person类的数组,包含3个数组元素,使用for循环语句每个Person对象赋值;查找数组中是否存在年龄为20的成员,若有,则调用其Print方法显示结果,若没有,则显示提示信息; 14、试编写控制台应用程序,完成下列要求: (1)在Program类中定义一个求数组最大最小值的方法,签名如下: publicvoidfind(outintmax,outintmin,paramsint[]array) (2)在Main方法中,定义相关的数据,调用该方法,并显示找到的最大最小值; 15、试编写控制台应用程序,完成下列要求: (1)定义一个类Cal,包含4个静态方法: AddOne、SubOne、MulTwo、DivTwo,均包含一个int型的参数,方法功能为将int型参数的值加1、减1、乘2、除2; (2)在Program类的Main方法中,从键盘输入4个int型数据num1、num2,num3,num4,调用Cal类的4种方法,分别显示这四个数据的原值、加1、减1、乘2、除2的值; 16、试编写控制台应用程序,完成下列要求: (1)定义一个Person类,具有身份证号(字符串类型,18位)、姓名(字符串类型)、出生日期(日期型)三个数据成员,包含一个方法GetAge,可根据出生日期计算年龄,并输出显示; (2)定义一个Student类,继承自Person类,具有学校(字符串类型)、入学时间(日期型)和学制(int型,比如大学一般为4年制,小学6年制)三个数据成员,包含一个方法GetGrade,可根据入学时间和学制计算当前的年级; (3)在Main方法中,创建Student对象,设置相应的属性值,并使用Console.WriteLine方法显示该对象的所有六个数据成员; 17、试编写控制台应用程序,完成下列要求: (1)定义一个Vehicle(车辆)类,具有Type(车型)、MaxSpeed(最大速度)、Weight(重量)属性,具有Run方法、Stop方法(方法体内只做一个输出即可); (2)定义以Vehicle(车辆)类为基类的扩充类: Bicycle类、Car类,要求具有Print方法,输出其所有的属性值; (3)在Program类的Main方法中,分别创建Bicycle类、Car类的实例,并调用其Print方法,查看结果。 18、试编写控制台应用程序,完成下列要求: (1)定义一个Person类,具有姓名(Name)、年龄(Age)、性别(Sex)等属性; (2)从Person类派生一个Student类,具有一个能够存放5门课程成绩的数据成员,并具有SetScores方法(输入学生的5门成绩)、GetAverage方法(求平均成绩); (3)Student类要求其构造函数具有三种重载形式: 1、无参;2、具有姓名、年龄、性别三个参数的构造函数;3、具有姓名、年龄、性别、成绩数组四个参数的构造函数; (4)在Program类的Main方法中,使用Student的三个重载形式创建对象,并调用其GetAverage方法显示平均成绩; 19、试编写控制台应用程序,完成下列要求: (1)定义一个Digit类,具有一个char类型的私有数据成员Number,具有Input方法(从键盘输入一个0-9的数字,为Number赋值),Output方法(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 实验 考查 题目 20