C#编程题 考试题库.docx

上传人:b****7 文档编号:11155962 上传时间:2023-02-25 格式:DOCX 页数:25 大小:29.79KB
下载 相关 举报
C#编程题 考试题库.docx_第1页
第1页 / 共25页
C#编程题 考试题库.docx_第2页
第2页 / 共25页
C#编程题 考试题库.docx_第3页
第3页 / 共25页
C#编程题 考试题库.docx_第4页
第4页 / 共25页
C#编程题 考试题库.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

C#编程题 考试题库.docx

《C#编程题 考试题库.docx》由会员分享,可在线阅读,更多相关《C#编程题 考试题库.docx(25页珍藏版)》请在冰豆网上搜索。

C#编程题 考试题库.docx

C#编程题考试题库

C#编程题考试题库

1.编写一个控制台应用程序,允许用户输入一个长英文字符串,然后统计并输出其中大写

字母的个数,小写字母的个数,数字的个数,符号的个数。

2.编写一个控制台应用程序,允许用输入一个字符串,然后在程序中判断该字符串是否为

回文数,如果是回文数,则输出:

“您输入的(用户输入的字符串)是回文数。

”,否则则

输出“您输入的(用户输入的字符串)不是回文数。

3.编写一个控制台应用程序,允许用户输入一个字符串,然后将该字符串逆序输出。

4.编写一个名为Complex的类,用来实现复数的运算。

所谓复数是形如:

RealPart+

ImaginaryPart*i形式的数,其中i表示-1平方根。

使用私有的float类型来保存得数的

实部与虚部,提供以下公共方法:

Plus,用来实现两个复数的相加,复数的加法是分别将

实部与虚部相加。

Subtract,用来实现两个复数的减法,复数的减法是分别将实部与虚部

相减。

重写ToString方法,用来输出该复数的字符串表示形式。

字符串的格式形如:

a+

bi

5.编写一个控制台应用程序,允许用户指定源文件路径,目标文件路径及一个不大于255

的正整数。

然后以二进制方式读出该文件的内容,并使用用户输入的整数对文件内容进

行异或运算后写入到用户给定的目标路径中。

6.编写一个控制台应用程序,首先在应用程序内部生成一个不大于指定数字的随机正整数

(如2048),然后要求用户猜测该数,每次可以让用户从控制台中输入一个整数,如果用

户输入的整数大于程序内部的数字,则提示用户该数字过大,否则则提示数字过小,直

到猜中为止,也可以在程序中指定最大猜测次数。

7.要求一任意长度字符串中不同的字符以及它的个数。

8.把一段字符串用“右起竖排”的古文格式输出。

9.已知数组int[]max={6,5,2,9,7,4,0};用快速排序算法按降序对其进行排列,并返回数组。

10.随即生成一个0~100范围内的数字,然后对其进行猜测~

11.从键盘输入一个正整数,按数字的相反顺序输出。

12.从键盘上输入两个整数,由用户回答它们的和,差,积,商和取余运算结果,并统计出

正确答案的个数。

13.键盘输入正整数n,求出n与其反序数之和并输出。

例如,输入2038,输出应为

2038+8302=10340。

14.利用迭代公式:

计算实数x的立方根,当,yn,1,yn,?

ε时,yn,1为的近似值。

15.输入正整数i和n,由程序负责从i开始找起,连续找出n个素数并显示在屏幕上。

输入10和8后,输出的8个素数应为:

11,13,17,19,23,29,31,37。

16.求下述三个序列的累加和(每一序列各累加n项,正整数n通过cin从键盘输入)。

s1=1/5+1/4+3/11+2/7+5/17+3/10+7/23+…

s2=2/1+3/2+5/3+8/5+13/8+21/13+34/21+…

s3=1/1-3/(1+4)+5/(1+4+7)-7/(1+4+7+10)+9/(1+4+7+10+13)-…

17.对于n=2,5,8,11,„,20,23,分别求出E(n)=1/1!

+1/2!

+„+1/n!

之值并

输出它们。

要求按如下三种方式来进行求解,并对它们的运行速度及优劣性进行比较。

(1)使用如下轮廓的三重循环来实现:

for(intn=2;n<=23;n+=3)//求出多个不同的E

for(inti=1;i<=n;i++)//共累加n个项

for(intj=1;j<=i;j++)//每个项中用到j的阶乘

(2)去掉最内层用来求阶乘的循环,而改为使用二重循环的实现方法:

for(intn=2;n<=23;n+=3)//求出多个不同的E

for(inti=1;i<=n;i++)//共累加n个项

(3)改写成使用一重循环的实现方法:

除了去掉用来求阶乘的最内层循环外,还要在求E(5)时接着使用(而不再重新计算)已算出的E

(2)值,求E(8)时接着使用已算出的E(5)值,如此等等。

for(intn=1;n<=23;n++)//从第1项开始,一共(最多)累加23项

„//当累加到2,5,8,„,20,23项时,输出当时的累加结果E值

18.求满足下述两个条件的最小自然数n:

(1)n的个位数字为8;

(2)将n的个位数字8移到其它各位数字之前(如205128移过后为820512),所得的新数恰为n的4倍。

点评:

若将n的个位数字改为6时(如153846移过后为615384),求解方法完全类似。

思考:

可否任意指定个位数(的数值),以求解相同性质的更具有一般性的问题,

19.任意输入10个正整数,求出其中互不相同的数的个数num,以及此num个数中哪一

个数的出现次数最多,共出现了几次。

#include

usingnamespacestd;

intmain()

{

ints[],num=10,times,max=0,i,t;

cout<<"请输入10个正整数:

"<

for(inti=0;i<10;i++)

{

cin>>s[i];

}

fori=0;i<10;i++)

{

times=1;

for(intj=0;j<10;j++)

if(s[i]==s[j])

{

num--;

times++;

}

if(times>max)

{

max=times;

t=s[i];

}

}

cout<<"互不相同的数的个数为:

"<

cout<

}

20.编程序,输入字符串s,而后统计出s中各数字字符的出现次数并输出结果。

#include#includeusingnamespacestd;intmain()

{

intx=0,num[10];

chars[];

cout<<"请输入一个字符串:

"<

cin>>s[];

for(inti=0;i

{

switch(s[i])

{

case'0':

{num[0]++;

x++;

break;}

case'1':

{num[1]++;

x++;

break;}

case'2':

{num[2]++;

x++;

break;}

case'3':

{num[3]++;

x++;

break;}

case'4':

{num[4]++;

x++;

break;}

case'5':

{num[5]++;

x++;

break;}

case'6':

{num[6]++;

x++;

break;}

case'7':

{num[7]++;

x++;

break;}

case'8':

{num[8]++;

x++;

break;}

case'9':

{num[9]++;

x++;

break;}

}

}

cout<<"字符串中出现了"<

cout<<"数字:

";

for(inti=0;i<10;i++)

{

cout<

}

cout<

cout<<"次数:

";

for(inti=0;i<10;i++)

{

cout<

}

cout<

21.编程序,输入任意一个字符串s1,而后由s1形成另两个字符串s2和s3并显示在屏幕上。

其中s2是s1甩掉其尾部的所有非字母字符后得到的字符串,而s3则由s2甩掉其前导

的所有非字母字符后形成的字符串。

例如,程序执行后的屏幕显示结果可为:

Inputs1:

36262/x+y*z-aD007END!

%%%60++=--!

s2=36262/x+y*z-aD007END

s3=x+y*z-aD007END

22.将输入的2进制数(一个非“0”即“1”的字符串)化为10进制数。

提示:

用字符数组a盛放所输入的二进制数;而后从后往前逐一计算每一位的“位权”w(2的0次方、2的1次方、...),再计算“位权”乘以“位值”并累加到一个初值为0的变量value上,最后输出该value。

思考:

如何把8进制数或16进制数化为10进制数。

更进一步,如何把某一个k进制的数化为10进制数呢,

23.将输入的罗马数据化为10进制数。

假设罗马数据中只使用如下7个“基值”字母:

M、D、C、L、X、V、I,分别用来表示1000、500、100、50、10、5、1。

如,罗马数

据LXXXVII表示10进制的87。

24.将输入的10进制正整数化为2进制数。

提示:

可采用“逐次除以2,倒者排余数”的方法实现。

即是说,使用一个int型数组a盛放逐次得到的各余数,最后将数组a中的各余数倒着输出来。

思考:

如何把10进制正整数化为8进制数或16进制数。

更进一步,如何把10进制正整数化为某一个k进制的数呢,

25.将输入的10进制正整数转换为罗马数据。

假设罗马数据中只使用“基值”字母:

M、D、

C、L、X、V、I,分别用来表示1000、500、100、50、10、5、1。

26.由20个正整数排成一圈,编一个程序找出连续的四个数,其和是最大的(不小于圈

上任何其它连续的四个数之和)。

提示:

说明一个int型数组来存放那20个正整数,而后通过循环,从累加出的20个不同和数中找出其中的最大者。

注意,由于将数组看成是“圈状”的,最后一个数的“后继”应是第一个数,所以要用到取模的运算。

27.对于整型数组a,10,和b,10,,编制程序完成下列任务:

(1)由用户从键盘为两个数组输入值;

(2)求出两个数组的最大元和最小元;

(3)把数组a和b中的整数分别从小到大和从大到小排序;

(4)把两个有序的数组a和b组成一个长度为20的有序数组c,20,。

28.用折半查找方法,在元素呈升序排列的具有15个元素的数组a中查找值为key的那

一元素的序号即下标号并输出(其中的key值通过键盘输入)。

若数组中没有值为key

的元素,则提示信息“Nosuchelement!

”。

所谓的折半查找方法如下:

先用key值与处于15个元素之“中间”的那一元素进行比较,若恰好相等,则那一“中间”元素的序号即为所求;若key值大于那一“中间”元素,则将查找范围缩小到数组的后一半去继续查找,否则将查找范围缩小到前一半去继续查找。

29.设计一个程序,它可以把最近的20天的气温值以柱形图的形式显示出来,假设气温在

22,35度之间(取整),温度的高低以由“*”组成的“柱”的高低来表示。

提示:

在“文本模式”的“字符屏幕”上“画图”时,通常将“字符屏幕”与程序中的一个二维字符数组建立对应关系,而后按某种计算方法(或计算公式)算出应该在“字符屏幕”

的哪些位置处“画点”,最后将已准备好的当前字符数组各元素的值显示到“字符屏幕”上。

30.设有4行4列的数组b,其元素b[i][j]=3*i+2*j-6(i、j=0,1,2,3)。

编程序,实

现:

(1)求第二行4元素的累加和;

(2)求第四列4元素之平均值;

(3)求主对角线4元素中负数的个数。

31.设有二维字符数组dig[10][10],其元素值均为数字字符('0','1',„,'9'),编程

序,首先通过使用rand函数来为数组dig设置初值,而后统计出其中10个数字字符各

自出现的次数。

提示:

通过“rand()%10+48”可生成一个随机数字字符值。

32.说明5个行列数有关系的二维数组用于表示矩阵A、B、C、D、E。

首先给A、B二

矩阵赋初值,而后计算A、B的和矩阵C,乘积矩阵D,以及A的转置矩阵E,并显示

出各运算结果。

33.用户从键盘输入任意一个正整数n,程序负责将该正整数转换为如下形式的“混英表

示字符串”并显示出来:

如输入n为302时,输出:

three(100)-zero(10)-two

(1);输入n

为14895时,相应的输出应为:

one(10000)-four(1000)-eight(100)-nine(10)-five

(1)。

提示:

说明如下一个二维数组eng并在转换过程中使用。

chareng[10][6]={"zero","one","two","three","four","five","six","seven","eight","nine"};

34.写一条for语句,计数条件为n从100~200,步长为2;然后再用while语句实现同样的

循环。

35.编写一段程序,运行时向用户提问“你考了多少分,(0~100)”,接受输入后判断其等

级并显示出来。

判断依据如下:

等级={优(90~100分);良(80~89分);中(60~69分);差(0~59分);}36.输入一个整数,将各位数字反转输出。

37.使用穷举法并分别用for、while、do…while循环语句求出1~100之间的质数。

38.求出1~1000之间的所有能被7整除的树,并计算和输出每5个的和。

39.编写一个控制台程序,分别输出1~100之间的平方、平方根、自然对数、e指数的数学

用表。

40.设计一个包含多个构造函数的类,并分别用这些构造函数实例化对象。

41.编写一个矩形类,私有数据成员为举行的长(len)和宽(wid),无参构造函数将len和

wid设置为0,有参构造函数设置和的值,另外,类还包括矩形的周长、求面积、取举

行的长度、取矩形的长度、取矩形的宽度、修改矩形的长度和宽度为对应的形参值等公

用方法。

42.编写一个类,要求带有一个索引器可以存储100个整型变量。

43.编写一个类Cal1,实现加、减两种运算,然后,编写另一个派生类Cal2,实现乘、除两

种运算。

44.建立三个类:

具名、成人、官员。

居民包含身份证号、姓名、出生日期,而成人继承自

居民,多包含学历、职业两项数据;官员则继承自成人,多包含党派、职务两项数据。

要求每个类中都提供数据输入输出的功能。

45.编写一个类,其中包含一个排序的方法Sort(),当传入的是一串整数,就按照从小到大的

顺序输出,如果传入的是一个字符串,就将字符串反序输出。

46.设计一个类,要求用事件每10秒报告机器的当前时间。

47.编写一个窗体程序,用菜单命令实现简单的加、减、乘、除四则运算,并将结果输出到

对话框。

48.编写一个具有主菜单和快捷菜单的程序,实现文本文件的打开、修改和保存。

49.在label控件中随机输入20个1~1000之间的整数,求出其中所有的素数的和。

50.编写一个程序,通过使用主菜单和工具栏按钮实现与Window记事本间的文本数据拷贝。

51.仿照word中的“文件打开”对话框界面,编制一个自己的文件打开模式对话框。

52.自己编写一个控件,使得该控件放置在窗体上之后,可以通过拖动四个顶点随意地改变

控件的形状。

(提示:

在控件的Paint事件过程中编写外观绘制代码)53.、编写一个程序,将一幅位图显示在一个图片框中,对位图惊醒45度旋转后,将图中

所有的红色替换为黑色,然后存盘。

54.、编写一个控制台程序,分别将字符串“hello,myfriend”写入文件f1.txt,然后,将数

据分别以整型、布尔型、双精度型、字符型读出并显示。

55.编写一个程序,模拟DOS系统中的COPYCON命令功能。

56.分别用Socket类和TCPListener/TCPClient类建立一个通过TCP协议进行文件传输的

程序。

57.利用网络流实现一个利用UDP协议进行聊天的程序,并使一端采用UTF-8编码,另一

端则采用Unicode解码。

58.创建一个带有3个子线程的程序,第一个线程序启动10毫秒后,第二个线程再启动,

然后再等10毫秒后第三个线程启动,每一个线程从1~1000循环输出线程的名称和计数,

当3个线程结束时要输出各自的结束信息,然后,主线程结束。

59.制作一个程序模拟图书馆中的书籍借阅操作,有两个人几乎同时查阅某一本书是否还有

(用两个线程访问同一个变量),如果有,就将书的数量减1,如果没有输出“书籍已经

全部借出”。

用3个线程同步的方法分别实现程序。

编写一个自定义类Employee,要求:

A.该类包含连接到access的Northwind数据库的公用方法。

B.该类包含若干个字段用来存储从“雇员表”中读取的若干字段的值。

C.该类包含在表中移动记录指针的方法。

D.该类包含修改字段值的方法。

E.该类包含将字段值显示出来的方法。

60.编写一个程序,从键盘上输入3个数,输出这3个数的积及它们的和。

要求编写成控制

台应用程序。

61.编写一个程序,输入梯形的上底,下底和高,输出梯形的面积。

要求编写成Window应

用程序。

62.编写一个进行加减乘除四则运算的程序,要求:

输入两个单精度数,然后输入一个运

算符号,输出两个单精度数进行运算后的结果。

要求编写为控制台程序。

63.兔子繁殖问题。

设有一对新生的兔子,从第三个月开始他们每个月都生一对兔子,新

生的兔子从第三个月开始又每个月生一对兔子。

按此规律,并假定兔子没有死亡,20

个月后共有多少个兔子,要求编写为控制台程序。

64.编写程序,把由10个元素组成的一维数组逆序存放再输出。

65.编写程序,统计4X5二维数组中奇数的个数和偶数的个数。

66.写一个求整数任意位数字的过程,过程的调用形式为:

digit(n,k),其功能是取出数n从右

边起的第K位数字,例如:

digit(1234,3)=2,digit(1234,4)=1,digit(1234,6)=0。

67.写一个应用程序用来输入的字符串进行加密,对于字母字符串加密规则如下:

„ad?

„be?

„wz?

……„xa?

„yb?

„zc?

„AB?

„BE?

„WZ?

……„XA?

„YB?

„ZC?

对于其他字符,不进行加密。

68.定义一个车辆(Vehicle)基类,具有Run、Stop等方法,具有Speed(速度)、MaxSpeed

(最大速度)、Weight(重量)等域。

然后以该类为基类,派生出bicycle、car等类。

编程对该派生类的功能进行验证。

69.编写出一个通用的人员类(Person),该类具有姓名(Name)、年龄(Age)、性别(Sex)

等域。

然后对Person类的继承得到一个学生类(Student),该类能够存放学生的5门课

的成绩,并能求出平均成绩,要求对该类的构造函数进行重载,至少给出三个形式。

后编程对student类的功能进行验证。

70.编写一个冒泡法排序程序,要求在程序中能够捕获到数组下标越界的异常。

71.编写一个计算器程序,要求在程序中能够捕获到被0除的异常与算术运算溢出的异常。

72.制作一个简单计算器程序。

程序运行时通过按钮输入运算公式,单击【计算】按钮得到

计算结果。

73.编写一个能够浏览文本文件和图象文件查看程序。

74.编写一个能同时播放视频文件和背景音乐的程序,要求背景音乐和视频文件都能循环播

放。

用MMControl控件设计一个能够播放音乐、MIDI文件的播放器,要求具有自动重

播和显示进度的功能。

75.编程输出1~100中能被3整除但不能被5整除的数,并统计有多少个这样的数。

76.编程输出1000以内的所有素数。

77.编写一个程序,对输入的4个整数,求出其中最大值和最小值。

78.分别用for,while,do…while语句编写程序,实现求前n个自然数之和。

79.编程输出九九乘法表。

80.定义一个行数和列数相等的二维数组,并执行初始化,然后计算该数级两条对角线上的

元素值之和。

81.建立一个一维数组,使用该数组列出所学习的课程名称。

82.编写一个包含学生基本资料的结构类型数据(要求包括姓名,性别,年龄,身高,体重等)。

83.编写程序,将一年中12个月,建立一个枚举类型数据,并对其进行调用。

84.在窗体上建立一个标签,一个文本框,一个命令按钮,标签的text属性设置为“VC#程

序设计”,设计一个程序,单击命令按钮,将标签上的信息显示在文本框中。

85.设计一个简单的计算器,在文本框中,显示输入值和计算结果,用命令按钮做为数字键和

功能键。

86.在窗体上建立一个列表框,一个文本框和一个命令按钮,在列表框中列有本班10个同

学的姓名,当选中某个学生姓名后,单击此命令按钮,则在文本框中显示该学生的籍贯。

87.用定时器控件按秒计时,在窗体上创建一个标签,程序执行后在标签内显示经过的秒。

88.编写程序在E盘下新建一文本文件,并对该文件进行复制,移动,写入,读出操作89.编写一个程序,其中对于每种数据类型,都声明两个变量,并分别将值10和1.879赋给

它们。

90.编写一个程序,检查变量的值是否大于65。

如果是,则打印文本“THEVALUEIS

GREATERTHAN65~”

91.编写一个程序,检查一个字符变量的值是否为T或t。

92.编写一行代码,将long变量MyLong的值赋给short变量MyShort。

93.编写一行代码,将int变量IntVal的赋给short变量ShortVal。

94.编写一行代码,将decimal变量DecVal的值赋给long变量LongVal。

95.编写一行代码,将int变量ch的值赋给字符变量charVal。

96.编写一个从99数到1的while语句。

97.编写一条根据变量name的值执行不同操作的switch语句。

如果该变量的值为Robert,

则打印消息”HiBob”;如果为Richard,则打印消息“HiRich”;如果为Barbara,则打印

消息“HiBarb”;如果为Kalee,则打印消息“YouGoGirl!

”;对于其他情况,则打印“Hix”,

其中x为变量name的值。

98.编写一个掷筛子100次的程序,并打印出各种点数的出现次数。

99.创建一个类,它存储一个int数据成员MyNumber,并给该数据成员创建属性,当该数据

成员被存储时,将其乘以100;当其被读取时,将其除以100。

100.编写一个die类,它存储筛子的面数(sides)以及当前掷筛子得到的点数(value)。

101.编写公有方法xyz的方法头

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 历史学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1