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的方法头