首页 > 编程语言 >C#题目问答

C#题目问答

时间:2024-07-04 15:28:07浏览次数:22  
标签:题目 C# DateTime int numbers WriteLine new Console 问答

目录

1.整数转换,整数和字符串,字符串和整数之间的转换怎么实现?

2.日期转换,获取当前日期,字符串转日期,日期转字符串怎么实现?

3.举例一维、二维、三维数组。

4.需求:有个88笔费用记录,总额3亿,金额在300万~800万之间,随机数如何实现?并记录总耗时。

5.简述常见的集合类型的存储结构和它们的作用以及优缺点,并写出实现案例


1.整数转换,整数和字符串,字符串和整数之间的转换怎么实现?

答:1)整数转换为字符串使用ToString()方法,Convert.ToString()它是一个静态方法,可以接受不同的数据类型作为参数,比对象直接调用的ToString()方法更为通用。

2)字符串转换为整数使用int.Parse()或者int.TryParse()(比前者更安全)方法,也可用Convert.ToInt32()静态方法将各种类型数据转化为int类型,在处理字符串、bool 值或其他数值类型转换为整数时非常有用。

int num = 123;
string strNum = num.ToString();
Console.WriteLine(strNum);

string strNumber = Convert.ToString(num);
Console.WriteLine(strNumber);

string str = "123";
int a=int.Parse(str);
Console.WriteLine(a);

int b = Convert.ToInt32(str);
Console.WriteLine(b);

运行结果为:


2.日期转换,获取当前日期,字符串转日期,日期转字符串怎么实现?

答:1)使用DateTime.Parse()、DateTime.ParseExact()或更安全的DateTime.TryParse()、DateTime.TryParseExact()方法可以将符合格式的字符串转换为DateTime对象。

2)要获取当前的日期和时间,你可以使用DateTime.Now或DateTime.UtcNow属性

3)要将DateTime对象转换为字符串,可以使用ToString()方法,并提供一个格式字符串来定义输出的样式。

tring c = "2024-07-04 09:12:45";
DateTime d = DateTime.Parse(c);
Console.WriteLine(d.ToString());
DateTime dateTime = DateTime.Now;
Console.WriteLine(dateTime.ToString());
DateTime dt = new DateTime(2024, 7, 4, 9, 5, 09);
Console.WriteLine(dt.ToString());

运行结果:



3.举例一维、二维、三维数组。

1)一维数组

int []e=new int[3];
for(int i=0; i<e.Length; i++)
{e[i] = i;}
for(int i=0; i<e.Length; i++)
{Console.Write(e[i]+" ");}
 Console.WriteLine();

int[] g = {1,2,3,4,5,8,9};
foreach(int i in g)
{ Console.Write(i+" "); }
Console.WriteLine();

int[]h=new int[2];
Random random = new Random();
for (int i = 0; i< h.Length; i++)
{
    h[i] = random.Next(100, 105);
}
foreach(int i in h)
{Console.Write(i+" "); }

运行结果:

2)二维数组

int[,] x = new int[2, 3]//初始化一个2*3的二维数组
{{1,2,4},{2,4,5},};
x[0, 0] = 100;//将第0行第0个数重新赋值为100
for(int i=0;i<x.GetLength(0);i++)
{
    for(int j=0;j<x.GetLength(1);j++)
    {
        Console.Write(x[i,j] + " ");
    }
    Console.WriteLine();
}//输出打印二维数组

运行结果:

3)三维数组

int[,,] a3 = new int[2, 2, 2]
{{{ 1,2 },{ 3,4 }},{{ 5,6},{ 7,8 }}};
a3[0, 0, 0] = 100;
a3[1, 1, 1] = 999;
for (int i = 0; i < a3.GetLength(0); i++)
{
    for (int j = 0; j < a3.GetLength(1); j++)
    {
        for (int k = 0; k < a3.GetLength(2); k++)
        {
            Console.Write(a3[i, j, k] + " ");
        }
        Console.WriteLine();
    }
    Console.WriteLine();
}

运行结果:



4.需求:有个88笔费用记录,总额3亿,金额在300万~800万之间,随机数如何实现?并记录总耗时。

using System;
using System.ComponentModel.DataAnnotations;
using System.Diagnostics;

class Program
{
    static void Main(string[] args)
    {
        int num = 88;
        int total = 300000000;
        int sum = 0;
        Stopwatch stopwatch = new Stopwatch();
        stopwatch.Start();
        int[] amounts = new int[num];
        Random random = new Random();//随机数

        for (int i = 0; i < amounts.Length; i++)
        {
            amounts[i] = random.Next(3000000, 8000000);
            Console.WriteLine(amounts[i]);
        }
        amounts[num - 1] = total - sum;
        stopwatch.Stop();
        TimeSpan elapsedTime = stopwatch.Elapsed;
        Console.WriteLine("总耗时:{0}ms", elapsedTime.TotalMilliseconds);
    }
}

运行结果:



5.简述常见的集合类型的存储结构和它们的作用以及优缺点,并写出实现案例。

1. List<T>(动态数组)

  • 存储结构:基于数组实现,但容量可自动扩展。
  • 作用:存储和操作有序数据,支持索引访问。
  • 优点:访问速度快(索引访问O(1)),插入和删除效率取决于位置(尾部O(1),中间O(n))。
  • 缺点:大量插入删除操作在列表中间会较慢。
    using System.Collections.Generic;
    List<int> numbers = new List<int>();
    numbers.Add(1);
    numbers.Add(2);
    numbers.Add(9);
    numbers.Add(25);
    numbers.Add(27);
    numbers.RemoveAt(0); // 删除第一个元素
    Console.WriteLine(numbers[2]);//打印第2个数

    运行结果:

2.Dictionary<TKey, TValue>(哈希表)

  • 存储结构:哈希表,使用键值对进行存储。
  • 作用:快速查找、添加、删除键值对。
  • 优点:平均情况下查找、插入和删除操作接近O(1)。
  • 缺点:哈希冲突可能导致性能下降;键必须唯一。
    Dictionary<string, int> ages = new Dictionary<string, int>();
    ages.Add("A", 30);
    ages["B"] = 25;
    ages.Remove("A");
    Console.WriteLine(ages["B"]); // 输出B的年龄

    运行结果:

3. HashSet<T>(集合)

  • 存储结构:基于哈希表,用于存储不重复元素。
  • 作用:高效地执行集合运算,如并集、交集等。
  • 优点:快速的添加、删除和查找,元素唯一。
  • 缺点:无序,不支持索引访问。
    HashSet<int> uniqueNumbers = new HashSet<int>();
    uniqueNumbers.Add(1);
    uniqueNumbers.Add(2);
    uniqueNumbers.Add(1); // 不会添加重复的元素
    Console.WriteLine(uniqueNumbers.Contains(2)); // 检查是否包含某个元素

    运行结果:

4. LinkedList<T>(链表)

  • 存储结构:每个元素包含值和指向下一个元素的指针。
  • 作用:高效的插入和删除操作,尤其是表头和表尾。
  • 优点:插入和删除操作快(O(1)),不需要连续内存。
  • 缺点:索引访问慢(O(n)),占用额外的内存(指针)。
    LinkedList<int> numbers = new LinkedList<int>();
    numbers.AddLast(1);
    numbers.AddFirst(0); // 在头部添加
    numbers.AddFirst(6); // 在头部添加
    numbers.AddFirst(5); // 在头部添加
    numbers.AddFirst(80); // 在头部添加
    numbers.RemoveLast(); // 删除最后一个
    numbers.RemoveFirst(); 
    foreach (int i in numbers)
    {
        Console.WriteLine(i);
    }

    运行结果:

5. Stack<T>(栈)

  • 存储结构:LIFO(后进先出)原则的线性数据结构。
  • 作用:临时存储数据,如函数调用堆栈。
  • 优点:操作简单,仅允许一端进行添加和移除。
  • 缺点:不适合需要频繁访问中间元素的场景。
    Stack<int> stack = new Stack<int>();
    stack.Push(1);
    stack.Push(2);
    stack.Push(52);
    stack.Push(26);
    Console.WriteLine(stack.Pop()); 

    运行结果:

6. Queue<T>(队列)

  • 存储结构:FIFO(先进先出)原则的线性数据结构。
  • 作用:处理需要按顺序访问的数据,如任务调度。
  • 优点:操作简单,两端明确,适合顺序处理。
  • 缺点:与栈相似,不适合随机访问。
    Queue<int> queue = new Queue<int>();
    queue.Enqueue(15);
    queue.Enqueue(6);
    queue.Enqueue(56);
    queue.Enqueue(27);
    Console.WriteLine(queue.Dequeue());

    运行结果:

标签:题目,C#,DateTime,int,numbers,WriteLine,new,Console,问答
From: https://blog.csdn.net/m0_67688142/article/details/140176223

相关文章

  • 京东面试 rockmq是推消息还是拉消息?他的消息模型是啥?
    在消息队列系统中,消费者模型(即消费者获取消息的方式)通常分为“拉”(pull)模式和“推”(push)模式。这两种模式在性能和实用性上有各自的优势和局限性,特别是在处理不同吞吐量和实时性需求的场景中。RocketMQ的推拉模型RocketMQ本质上使用的是拉模式,但它通过长轮询等技术实现了......
  • C语言函数静态库和动态库的创建和使用
    使用库函数是源码的一种保护???<我猜的.>库函数其实不是新鲜的东西,我们一直都在用,比如C库.我们执行pringf()这个函数的时候,就是调用C库的函数. 下面记录静态库和动态库的生成和使用. 静态库:libxxx.a动态库:libxxx.so 静态库: 在程序编译的时候,将库编译进可......
  • VMware vSphere Tanzu部署_13_创建TKC集群
    1.登录tanzu集群登录语法为:kubectlvspherelogin--server=--vsphere-username--insecure-skip-tls-verify$kubectlvspherelogin--server=192.168.203.194--vsphere-usernameadministrator@vsphere.local--insecure-skip-tls-verify登录示例jianhua@napp:~$k......
  • Salesforce开发入门指南:零基础学习宝典!
    开发人员将Salesforce组织扩展到声明式配置之外,构建应用程序,进而优化业务运营。Salesforce开发人员通常会使用两种编程语言:Apex和JavaScript。然而,Salesforce开发不仅仅只包括代码。为了在职业道路上脱颖而出,开发人员还需要了解声明性功能,将组织的设计和性能保持最佳状态。Sal......
  • Apache SeaTunnel社区首位学生Committer诞生!
    采访对象|陈炳烨采访人&编辑|DebraChenApacheSeaTunnel社区第一位学生Committer就此诞生!这位来自西安交通大学软件工程专业的同学从较为简单的文档修改工作,逐步深入到代码层面,到最后独立负责开发模块,为ApacheSeaTunnel项目的发展添砖加瓦的同时,他本人也在这份独特的开源......
  • HTML5 WebSocket技术使用详解
    HTML5WebSocketAPI提供了一种在单个连接上进行全双工通信的方式。这意味着客户端和服务器可以同时发送和接收数据,而不需要像传统的HTTP请求那样进行多次请求和响应的轮询。WebSocket允许更实时的交互,非常适合需要快速、连续数据交换的应用场景,如在线游戏、实时通讯和股票行......
  • 2024 MWC上海,“翼”彩纷呈!
    2024年6月26日,2024世界移动通信大会上海(简称“MWC上海”)盛大开幕。围绕“未来先行”主题,来自全球的产业、技术和社区等各界代表齐聚一堂,共话产业高质量发展。在“智启云领 向新未来”主题馆内,天翼云展出了“息壤”“云骁”“慧聚”三大智算平台和“天翼AI云电脑”“一体化紫金算......
  • el-date-picker type="daterange" 根据动态给的开始日期,结束日期,设置范围内可选
    注意:1、elementui和elementplus的时间禁用属性不同,elementui用picker-options,elementplus用disabled-date。原文链接:https://blog.csdn.net/weixin_44358713/article/details/136539121<z-formref="versionForm":model="form"class="refresh-form&q......
  • 通过vscode写博客
    通过Vscode写博客到博客园前言在以前的写作方式都是通过博客园内置的markdown进行工作,但是在实际使用过程中,感觉不是很方便,所以找到了用VSCode插件写作的方法。所需插件博客园CnblogsMarkdownAllinOneMardownShortcuts简单介绍博客园插件博客园Cnblogs客户端这个插......
  • SpringBoot拦截器中获取注解、拦截器中注入Service
    拦截器中获取注解来源:https://blog.csdn.net/wangmx1993328/article/details/81030268/publicclassJWTInterceptorimplementsHandlerInterceptor{privateSysSettingServicesysSettingService;//构造函数传入ServicepublicJWTInterceptor(SysSettingServ......