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)) / 4W = A / L 来计算矩形的长和宽。这个公式是通过解一元二次方程得到的,其中 P 为周长,A 为面积。公式计算出的 LW 保证了矩形的周长和面积分别等于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);
}
}

相关推荐
宝哥的菜鸟之路5 分钟前
Python 数据分析概述 ①
开发语言·python·数据分析
全栈若城5 分钟前
03 Python字符串与基础操作详解
java·开发语言·python
honghongstand41 分钟前
代码随想录D52-53 图论 Python
开发语言·python·图论
过客猫20221 小时前
使用 deepseek实现 go语言,读取文本文件的功能,要求支持 ascii,utf-8 等多种格式自适应
开发语言·后端·golang
程序媛-徐师姐1 小时前
基于 Python Django 的校园互助平台(附源码,文档)
开发语言·python·django·校园互助·校园互助平台
且听风吟ayan1 小时前
leetcode day20 滑动窗口209+904
算法·leetcode·c#
进击的_鹏1 小时前
【C++】list 链表的使用+模拟实现
开发语言·c++·链表
m0_738355691 小时前
java泛型
java·开发语言
大模型铲屎官2 小时前
哈希表入门到精通:从原理到 Python 实现全解析
开发语言·数据结构·python·算法·哈希算法·哈希表
L_09072 小时前
【C】队列与栈的相互转换
c语言·开发语言·数据结构