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

相关推荐
就是有点傻13 分钟前
WPF中的Button按钮中的PreviewMouseLeftButtonDown事件和MouseLeftButtonDown的区别
c#·wpf
shepherd枸杞泡茶24 分钟前
C# 数据结构之【队列】C#队列
开发语言·数据结构·c#
scoone41 分钟前
C++中的原子操作:原子性、内存顺序、性能优化与原子变量赋值
开发语言·c++
轩情吖42 分钟前
模拟实现Bash
linux·c语言·开发语言·c++·后端·bash·环境变量
旧故新长1 小时前
版本控制和idea简体中文教程
java·开发语言·intellij-idea
疯一样的码农1 小时前
使用 Maven 构建一个简单的 Java 项目
java·开发语言·maven
易风有点疯1 小时前
Python:序列化
开发语言·python
Biomamba生信基地1 小时前
R语言基础| 时间序列分析
开发语言·r语言·kotlin·编程
Promising_GEO1 小时前
使用R语言绘制简单地图的教程
开发语言·python·r语言
微尘81 小时前
C++条件编译指令:#if、#elif、#ifdef、#ifndef、#elifdef、#elifndef、#else、#endif
开发语言·c++