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);

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值