2017.8.7习题(进制)
1、风力预警系统有如下标准:普通风力小于5级,为蓝色;大于5小于8,为黄色;大于8小于10为橙色;
大于10位红色。如果风为龙卷风或台风等特殊情况,大于8级即为红色,实现上述判定标准,输入风力级别,输出预警颜色。
Console.WriteLine("请输入风力大小1—12:");
string WindLevel = Console.ReadLine(); //readline 为方法,返回值为string类型,所以用string接收
Console.WriteLine("当前是否为台风或龙卷风,如果是请输入1,否则输入0:");
string isTyphoon = Console.ReadLine ();
//把string强转为int
int WindLevel_num = int.Parse (WindLevel);
int isTyphhoon_num = int.Parse (isTyphoon);
if (WindLevel_num>0 && WindLevel_num <= 5) {
Console.WriteLine ("蓝色");
} else if (WindLevel_num > 5 && WindLevel_num <= 8) {
Console.WriteLine ("黄色");
} else if (WindLevel_num > 8) {
if (isTyphhoon_num == 1) {
Console.WriteLine ("红色");
} else {
Console.WriteLine ("橙色");
}
} else if (WindLevel_num > 10) {
Console.WriteLine ("红色");
} else {
Console.WriteLine ("mdzz");
}
2、实现一个程序,控制台实现如下效果,现在控制台输出如下语句。
请输入编号选择您想购买的商品:
1、笔 2、作业本 3、橡皮擦 4、直尺
用户输入编号后打印出用户选择的商品
Console.WriteLine ("输入你想要的编号:\n1、笔 2、作业本 3、橡皮擦 4、直尺");
string Num = Console.ReadLine ( );
int Num_num = int.Parse (Num);
switch(Num_num){
case 1:
{
Console.WriteLine ("笔");
break;
}
case 2:
{
Console.WriteLine ("作业本");
break;
}
case 3:
{
Console.WriteLine ("橡皮擦");
break;
}
case 4:
{
Console.WriteLine ("直尺");
break;
}
default:
{
Console.WriteLine("你是瓜皮吗");
break;
}
}
3、实现在控制台输入数据n, 计算n并打印出n的阶乘;
// n! = 1 *2 *3 *4 *…* (n-1) *n
Console.WriteLine ("请输入一个数,计算其阶乘");
int n = int.Parse(Console.ReadLine());
Int64 sum = 1;
if (n == 0) {
sum = 0;
} else {
for (Int64 i = 1; i <= n; ++i) {
sum *= i;
}
}
Console.WriteLine ("{0}!={1}",n,sum);
4、从控制台输入一个年份,判断是否为闰年(闰年的条件:1、年份能被4整除 2、年份若是100的整数倍的话,需被400整除)
Console.WriteLine("输入一个年份");
string Year = Console.ReadLine ( );
int Year_num = int.Parse (Year);
if ((Year_num % 4 == 0 && Year_num % 100 != 0) || Year_num % 400 == 0) {
Console.WriteLine ("{0}年是闰年");
} else {
Console.WriteLine ("你是个假人");
}
5、连续输入一周七天的温度,同时求出该周平均温度。
int sum = 0;
for(int i = 0;i<7;++i){
Console.WriteLine ("请输入星期{0}的温度",i+1);
string temp = Console.ReadLine ( );
int temp_num = int.Parse (temp);
sum += temp_num;
}
Console.WriteLine ("七天的气温平均值为{0}",sum/7.0f);
6、猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,
又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。
求第一天共摘了多少。
int x = 1; //第十天剩余的桃子数量
for (int i = 0; i < 9; ++i) {
x = (x+1)*2;
}
Console.WriteLine ("第一天的桃子数量为{0}",x);
7、分析下列语句中a、b的结果
int a = 1, b = 3;
a += b %= 2;
//a = 2,b = 1
int a = 1,b = 4;
a = ++b/a++;
//a = 5,b= 5
8、如何用代码将以下数据转换成二进制和十六进制,1000和2049。
int x = 1000;
//十进制转二进制 结果倒着读
while (x>0) {
int n = x % 2;
Console.WriteLine ("{0}",n);
x /= 2;
}
//数组改
int x = 1000;
int[] binary = new int[16];
int index = 0;
while (x>0) {
int n = x % 2;
binary [index] = n;
++index;
x/= 2;
}
for (int i = binary.Length-1; i >= 0; --i) {
Console.Write ("{0}",binary[i]);
}
int x = 2049;
//十进制转十六进制
while (x>0) {
int n = x % 16;
if (n >= 10) {
Console.WriteLine ("{0}",(char)(n+55)); //转字符ABC ACLL码
} else {
Console.WriteLine ("{0}",n);
}
x /= 16;
}
数组改
int x = 2049;
int[] hexadecimal = new int[8];
int index = 0; //下标
while (x>0) {
int n = x % 16;
hexadecimal[index] = n; //n替换index位置的数值
++index;
x /= 16;
}
for (int i = hexadecimal.Length-1; i >=0; --i) {
int n = hexadecimal [i];
if (n >= 10) {
Console.Write ("{0}", (char)(n + 55));
} else {
Console.Write("{0}",n);
}
}