C#基础练习61-65
61.已知一个矩形的周长为100,面积为300,求该矩形的边长?
62.在屏幕上用”*”打印输出如下等腰梯形(要求使用控制语句完成)
* * * * * * * * *
* * * * * * * * * *
* * * * * * * * * * *
* * * * * * * * * * * *
* * * * * * * * * * * * *
* * * * * * * * * * * * * *
63.用一个数组来存放一个8进制数,并将该8进制数转换为16进制后存入该数组中,最后输出。
64.数组x中存有一字符串,请编制函数,把所有字符的ASCII码值减4,如果减4后,其字符的ASCII值小于等于32或大于100,则原字符保持不变,否则减4后的字符的ASCII码值加上原字符的ASCII码值,得到的新字符仍存入原字符对应的位置上。最后将数组x输出。
65.数组x中存有一字符串,请编制函数,把字符串中所有小写字母改写成它的上一个字母,其它字符不变,如果是'a'则改成'z',处理后的字符仍存入原字符对应的位置上,最后输出x。
61、我们首先定义了周长 perimeter
和面积 area
。然后,我们使用公式 L = (P + sqrt(P^2 - 4 * A * 2)) / 4
和 W = A / L
来计算矩形的长和宽。这个公式是通过解一元二次方程得到的,其中 P
为周长,A
为面积。公式计算出的 L
和 W
保证了矩形的周长和面积分别等于100和300。
最后,代码输出了矩形的长和宽。注意,我们使用了 Math.Sqrt
函数来计算平方根,它定义在 System
命名空间下的 Math
类中,代码如下:
private static void Main(string[] args)
{
// 周长和面积
double perimeter = 100;
double area = 300;
// 解方程找到长和宽
double length = (perimeter + Math.Sqrt(perimeter * perimeter - 4 * area * 2)) / 4;
double width = area / length;
// 输出结果
Console.WriteLine($"矩形的长为: {length}");
Console.WriteLine($"矩形的宽为: {width}");
}
62、代码如下:
63、我们首先定义了一个8进制数的字符串 octalNumber
,然后创建一个整数数组 octalArray
来存储8进制数的每一位。ConvertOctalArrayToHex
函数首先将数组转换为8进制字符串,然后使用 Convert.ToInt32
方法将其转换为10进制整数,其中第二个参数指定基数为8。之后,我们使用 Convert.ToString
方法将10进制整数转换为16进制字符串,其中第二个参数指定基数为16。最后,为了使输出结果更加清晰,我们使用 ToUpper
方法将16进制字符串转换为大写,代码如下:
private static void Main(string[] args)
{
// 8进制数字符串
string octalNumber = "173"; // 例如,将8进制数173存入数组
// 存储8进制数的数组
int[] octalArray = { 1, 7, 3 };
// 将8进制数组转换为16进制字符串
string hexadecimalString = ConvertOctalArrayToHex(octalArray);
// 输出结果
Console.WriteLine($"8进制数 {octalNumber} 转换为16进制后为 {hexadecimalString}");
}
// 将8进制数的数组转换为16进制字符串的函数
static string ConvertOctalArrayToHex(int[] octalArray)
{
// 将数组转换为8进制字符串
string octalString = string.Join("", octalArray);
// 将8进制字符串转换为整数
int decimalNumber = Convert.ToInt32(octalString, 8);
// 将整数转换为16进制字符串
string hexString = Convert.ToString(decimalNumber, 16).ToUpper();
return hexString;
}
64、在 TransformArray
函数中,我们遍历字符串数组 x
中的每个字符串,并创建一个新的字符数组 transformedChars
。对于字符串中的每个字符,我们先将其转换为ASCII值,然后执行减4操作。如果结果小于等于32或大于100,我们保留原始字符。否则,我们将减4后的ASCII值与原始ASCII值相加,得到新字符,并存入 transformedChars
。
最后,我们使用 x.ToList().IndexOf(str)
找到原始字符串在数组 x
中的索引,并用修改后的字符串替换原位置的字符串。
Main
方法定义了一个示例字符串数组 x
,调用 TransformArray
函数对数组中的字符串进行转换,然后输出转换后的数组X。代码如下:
private static void Main(string[] args)
{// 示例字符串数组x
string[] x = { "Hello, World!", "C# Programming" };
TransformArray(x); // 调用函数进行字符转换
// 输出修改后的数组x
foreach (string str in x)
{
Console.WriteLine(str);
}
}
// 函数用于根据特定规则修改字符串中每个字符的ASCII值
static void TransformArray(string[] x)
{
foreach (string str in x)
{
char[] transformedChars = new char[str.Length];
// 遍历字符串中的每个字符
for (int i = 0; i < str.Length; i++)
{
char originalChar = str[i];
int asciiValue = (int)originalChar; // 当前字符的ASCII值
// 减4操作
asciiValue -= 4;
// 如果减4后的ASCII值小于等于32或大于100,则保留原字符
if (asciiValue <= 32 || asciiValue > 100)
{
transformedChars[i] = originalChar;
}
else
{
// 减4后,其字符的ASCII值加上原字符的ASCII码值,得到新字符
asciiValue += (int)originalChar;
transformedChars[i] = (char)asciiValue;
}
}
// 将修改后的字符串存回数组x对应的位置
x[x.ToList().IndexOf(str)] = new string(transformedChars);
}
}
65、在 TransformLowercaseChars
函数中,我们遍历字符串数组 x
中的每个字符串,并将其转换为字符数组 transformedChars
。接着,我们遍历 transformedChars
中的每个字符,检查是否为小写字母。如果是,则执行相应的替换操作:如果是 'a',则替换成 'z';否则,将该字符的 ASCII 值减去 1,得到它的上一个字符。
最后,我们将修改后的字符数组转换回字符串,并使用 x.ToList().IndexOf(str)
找到原数组中的索引位置,更新字符串数组 x
。
Main
方法定义了一个示例字符串数组 x
,调用 TransformLowercaseChars
函数对数组中的字符串进行转换,然后输出转换后的数组 x.代码如下:
private static void Main(string[] args)
{ // 示例字符串数组x
string[] x = { "Hello World!", "C# Programming", "a", "z", "ab" };
TransformLowercaseChars(x); // 调用函数进行转换
// 输出转换后的数组x
foreach (string str in x)
{
Console.WriteLine(str);
}
}
// 函数用于将字符串中所有小写字母改写成它的上一个字母
static void TransformLowercaseChars(string[] x)
{
foreach (string str in x)
{
char[] transformedChars = str.ToCharArray();
for (int i = 0; i < transformedChars.Length; i++)
{
// 检查字符是否为小写字母
if (char.IsLower(transformedChars[i]))
{
// 如果是 'a',则改写成 'z'
if (transformedChars[i] == 'a')
{
transformedChars[i] = 'z';
}
else
{
// 否则改写成前一个字母
transformedChars[i] = (char)(transformedChars[i] - 1);
}
}
}
// 将转换后的字符数组转换回字符串,并更新原数组的位置
x[x.ToList().IndexOf(str)] = new string(transformedChars);
}
}