为了账号安全,请及时绑定邮箱和手机立即绑定

c#程序开发期末复习题(一)

标签:
C#

1.编一个程序,输入一个整数,判定它为几位数。例如,99是2位数,-100是3位数。
int m, n, k = 0;
Console.Write("请输入一个整数:");
m = int.Parse(Console.ReadLine());
n = Math.Abs(m);
while (n != 0)
{
n = n / 10;
k++;
}
Console.WriteLine("{0}是{1}位数。", m, k);

2.所谓“回文数”是指读一个自然数,从正方向读和反方向读,结果是一样的。例如:646,1551,891232198都认为是回文数。编一个程序,输入一个正整数,判定它是否为回文数。当输入的数为0时,则退出程序,否则继续循环执行程序。
int s, k;
int i, j;
int[] a = new int[20];
bool pos;
while (true)
{
s = -1;
while (s < 0)
{
Console.Write("请输入一个正整数或者只按一个数字0:");
s = int.Parse(Console.ReadLine());
if (s == 0) return;
}
k = s;
pos = true;
i = -1;
while (k > 0)
{
i++;
a[i] = k % 10;
k = k / 10;
}
//注意:数组a的长度为(i+1)
for (j = 0; j < (i + 1) / 2; j++)
if (a[j] != a[i - j])
{
pos = false;
break;
}
if (pos) Console.WriteLine("{0}是回文数。", s);
else Console.WriteLine("{0}不是回文数。", s);
}

3.编一个程序,从键盘输入10个实数,存入一个数组,用冒泡法对这个数作升序排序。
int i, j, temp;
const int n = 10;
int[] SortArray = new int[n];
for (i = 0; i < n; i++)
{
Console.Write("\n请输入一个数:");
SortArray[i] = int.Parse(Console.ReadLine());
}
Console.Write("\n等待排序的数据序列为:");
for (i = 0; i < n; i++)
{
Console.Write("{0} ", SortArray[i]);
}
for (i = n - 1; i >= 0; i--)
{
for (j = 0; j <= i - 1; j++)
{
if (SortArray[j] > SortArray[j + 1])
{
temp = SortArray[j];
SortArray[j] = SortArray[j + 1];
SortArray[j + 1] = temp;
}
}
}
Console.Write("\n已经排序后的数据序列为:");
for (i = 0; i < n; i++)
{
Console.Write("{0} ", SortArray[i]);
}
Console.WriteLine();

4.编一个程序,定义数组,用for循环语句,顺序输入10个实数,然后逆序输出这10个数。
int i;
int[] a = new int[10];
for (i = 0; i < 10; i++)
{
Console.Write("请输入一个数:");
a[i] = int.Parse(Console.ReadLine());
}
Console.WriteLine();
for (i = 9; i >= 0; i--)
{
Console.Write("{0} ", a[i]);
}
Console.WriteLine();

5.编一个程序,把一张面值100元的钞票换成5元,1元和5角面值的钞票,要求100元换以上的零钱100张,且要求每种不少于一张。请问,有哪几种换法?
int i, j, k;//设5元有i张,1元有j张,5角有k张
Console.WriteLine("5元:\t1元:\t5角:");
for (i = 1; i <= 20; i++)
for (j = 1; j <= 100; j++)
for (k = 1; k <= 100; k++)
if (5 i + j + (0.5 k) == 100 && i + j + k == 100) Console.WriteLine("{0}\t{1}\t{2}", i, j, k);

6.编一个程序,把一张1元的钞票换成5分,2分和1分的硬币,要求每种至少一枚,并且所换硬币数不超过30枚。请问,有哪几种换法?
int i, j, k;
Console.WriteLine("一分:\t二分:\t五分:");
for (i = 1; i <= 100; i++)
for (j = 1; j <= 50; j++)
for (k = 1; k <= 20; k++)
if (i + 2 j + 5 k == 100 && i + j + k <= 30) Console.WriteLine("{0}枚\t{1}枚\t{2}枚", i, j, k);

点击查看更多内容
4人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消