C#基础练习题,编程题汇总

news2024/11/15 23:23:48

C#基础练习题,编程题汇总

    • 一、C#提取输入的最大整数
    • 二、秒数换算为相应的时、分、秒
    • 三、C#计算电梯运行用时demo
    • 四、C#用一维数组求解问题
    • 五、C#程序教小学生学乘法
    • 六、C#winfrm简单例题
    • 七、C#类继承习题
    • 八、C#绘图例子

一、C#提取输入的最大整数

编程实现在一行内输入若干个整数(不超过30个),输出最大的一个整数。

样例如下:

输入(在一行内输入,空格分隔):

5 6 78 -89 0 23 100 4 6

输出:

100

C#具体设计:

1.先让用户输入一些整数,

2.再装其读入到字符串用,

3.用空格符来分割字符成,存成字符数组

4.用foreach语句进行数组遍历,将字符转成整型后,比较大小,找出最大整数

5.输出最大整数

using System;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            System.Console.Write("Please Input Number...");
            string strnums = Console.ReadLine();
            string[] arr = strnums.Split(new char[] { ' ' });
            int max = int.MinValue;
            foreach(string str in arr)
            {
                int temp = Convert.ToInt32(str);
                if (max < temp) 
                    max = temp;
            }
            Console.WriteLine(max);
            Console.Read();
        }
    }
}

二、秒数换算为相应的时、分、秒

输入一个总的秒数,将该秒数换算为相应的时、分、秒。

如输入3600秒,则输出结果为1小时;输入3610秒,结果为1小时10秒。

样例1:

3601

1小时1秒

样例2:

67

0小时1分7秒

解:从题上分析可得出,先要用户输入秒数,然后进行转换成时、分、秒等,最后将计算结果按指定要求输出。

1.用户输入秒数,读入秒数,转换成int整型

2.换算成时、分、秒,具体方法就是3600秒等于1小时,60秒等于1分钟,从小时开始换算起

3.按要求输出换算的结果

4.最后将代码放入while循环中,用户将可以一直输入

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
 
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            while (true)
            {
                Int32 Seconds = Convert.ToInt32(Console.ReadLine());
                int hour = Seconds / 3600;
                Seconds -= hour * 3600;
                int minu = Seconds / 60;
                Seconds -= minu * 60;
                int sec = Seconds;
 
                if(minu == 0)
                    Console.WriteLine("{0}小时{1}秒", hour, sec);
                else
                    Console.WriteLine("{0}小时{1}分{2}秒", hour, minu, sec);
 
            }          
        }
    }

运行结果:
在这里插入图片描述

三、C#计算电梯运行用时demo

某城市最高的楼只有一部电梯。该电梯和一般电梯不同的是它依照输入楼层数的先后次序运行。电梯最初在0层。运行完一个输入序列后就停止在该楼层,不返回0层。编写程序计算电梯运行一个序列的时间。每次都假设电梯在0层开始,无论上一次运行到几层。电梯每上1层需要6秒。每下1层需要4秒。如在某层停留,无论上下人多少,均停留5秒。

输入:楼层的值大于等于1,小于100 ,N=0表示结束输入。

输出:计算每个序列电梯运行的时间。

输入:

2 1 0

输出:

26

题目分析:

1.先读入输入的字符串,也就是电梯的楼层数,

2.将读入字符串进行分割,分割字符用空格“ ”就可以了

3.用for循环进行遍历字符串数组,计算时间,当循环到0层时,就退出循环

4.输出计算的用时

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
            int preLevel = 0;
            int Seconds = 0;
 
            string str = Console.ReadLine();
            string[] strarr = str.Split(' ');
 
            for(int i=0;i< strarr.Length; i++)
            {
                int Level = Convert.ToInt32(strarr[i]);
                if (Level == 0)
                    break;
                int LevNum = Level - preLevel;
                if (LevNum != 0)
                    Seconds += 5;
                if (LevNum > 0)
                    Seconds += 6 * Math.Abs(LevNum);
                else if(LevNum < 0)
                    Seconds += 4 * Math.Abs(LevNum);
 
                preLevel = Convert.ToInt32(strarr[i]);
            }
 
            Console.WriteLine(Seconds);
            Console.ReadKey();
        }
    }
}

四、C#用一维数组求解问题

利用一维数组求解问题。读入若干(1-15个)整数(一行输入,空格分隔),每个数在10-100之间的整数包括10和100。在读入每个数时,确认这个数的有效性(在10到100之间),并且若它和之前读入的数不一样,就把它存储到数组中,无效的数不存储。读完所有数之后,仅显示用户输入的不同的数值。

样例1:

输入:

12 34 99 123 12 123 78 0 12 99

输出:

12 34 99 78

样例2:

输入:

-9 -9 0 34 99 99 99 34 34 34

输出

34 99

题目分析:

1.读入输入字符串,用空格进行分割字符串,变成字符串数组

2.用for循环遍历字符串数组,将其转化成int整型,判断数是否有效,判断数组中是否存在此数,不存在就加入到数组中

3.用foreach语句按题目要求格式输出数组中的数字

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
            string str = Console.ReadLine();
            string[] strarr = str.Split(' ');
            List<int> iList = new List<int>();
 
            for (int i = 0; i < strarr.Length; i++)
            {
                int num = Convert.ToInt32(strarr[i]);
                if (num > 100 || num < 10)
                    continue;
 
                bool CheckNum = false;
                for (int j = 0; j < iList.ToArray().Length; j++)
                {
                    if (num == iList[j])
                    {
                        CheckNum = true;
                        break;
                    }                        
                }
                if (!CheckNum)
                    iList.Add(num);
            }
 
            foreach(int i in iList)
            {
                Console.Write("{0} ", i);
            }
 
            Console.Read();
        }
    }
}

五、C#程序教小学生学乘法

开发计算机辅助教学程序,教小学生学乘法。程序功能:

(1)程序开始时让用户选择“年级”为1或2。一年级使只用1位数乘法;二年级使用2位数乘法。

(2)用Random对象产生两个1位或2位正整数,然后输入以下问题,例如:How much is 6 times 7?然后学生输入答案,程序检查学生的答案。如果正确,则打印“Very good!”,然后提出另一个乘法问题。如果不正确,则打印“No,Please try again.”,然后让学生重复回答这个问题,直到答对。

(3)答对3道题后程序结束。

(4)使用一个单独方法产生每个新问题, 这个方法在程序开始时和每次用户答对时调用。

分析:

1.让用户输入1或2年级

2.进行3次循环(练习3次全对),循环体内有出题函数,判断输入答案是否正确

3.出题函数设计,三个参数,第一个是输入年级,2、3两个参数是根据年级来随机生成的乘数

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication2
{
    class Program
    {
        public static void GenerateTwoNum(int Level, out int miu1, out int miu2)
        {
            Random Rand = new Random();
            int min = 0;
            int max = 0;
            if (Level == 1)
            {
                min = 1;
                max = 10;
            }
            else if (Level == 2)
            {
                min = 10;
                max = 100;
 
            }
            miu1 = Rand.Next(min, max);
            miu2 = Rand.Next(min, max);
        }
 
        static void Main(string[] args)
        {
            Console.WriteLine("请输入年级 1:一年级 2:二年级");
 
            string str = Console.ReadLine();
            int level = Convert.ToInt32(str);
 
            int Count = 0;
 
            while (Count < 3)
            {
                int miu1;
                int miu2;
                GenerateTwoNum(level, out miu1, out miu2);
 
                Console.WriteLine("How much is {0} times {1} ?", miu1, miu2);
 
 
                while (Convert.ToInt32(Console.ReadLine()) != miu1 * miu2)
                {
                    Console.WriteLine("No,Please try again");
                }
 
                Console.WriteLine("Very good!");
                Count++;
            }
        }
 
    }
}

结果:
在这里插入图片描述

六、C#winfrm简单例题

编写一个程序,含有1个ComboBox控件和1个ListBox控件。在ComboBox中显示9种状态名。从ComboBox中选择一个项目时,将其从ComboBox删除并加ListBox中。程序要保证ComboBox中至少有一个项目,否则用消息框打印一个消息,然后在用户关闭消息框时终止执行程序。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace WindowsFormsApplication3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            AddComBox();
        }
 
 
        private void AddComBox()
        {
            comboBox.Items.Add("Q");
            comboBox.Items.Add("W");
            comboBox.Items.Add("E");
            comboBox.Items.Add("R");
            comboBox.Items.Add("T");
            comboBox.Items.Add("Y");
            comboBox.Items.Add("U");
            comboBox.Items.Add("I");
            comboBox.Items.Add("O");
        }
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            
        }
 
        private void comboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            listBox.Items.Add(comboBox.SelectedItem.ToString());
            comboBox.Items.RemoveAt(comboBox.SelectedIndex);
 
            if (comboBox.Items.Count == 0)
            {
                if (DialogResult.OK == MessageBox.Show("没有数据项"))
                    Close();
            }
        }
    }
}

运行结果:
在这里插入图片描述

七、C#类继承习题

定义圆类Circle,包含半径r,属性R能判断半径r的合理性(r>=0),计算圆面积的方法double Area()。

从Circle类派生出圆柱体类Cylinder类,新增圆柱体的高h,属性H能判断高h的合理性(h>=0),新增计算圆柱体体积的方法double Volume()。
在主方法中,创建一个Cylinder对象,并输出该对象的底面半径,高以及体积。(要求:不使用构造方法,并且类中的域为私有,方法为公有)。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
            Cylinder cylinder = new Cylinder();
 
            cylinder.R = 10;
            cylinder.H = 20;
 
            cylinder.show();
 
            Console.Read();
        }
    }
 
    class Circle
    {
        private double r;
 
        public Circle()
        {
            R = 0;
        }
 
        public Circle(double r)
        {
            R = r;
        }
 
        public double R
        {
            set { r = R >= 0 ? value : 0; }
            get { return r; }
        }
 
        public double Area()
        {
            return Math.PI * r * r;
        }
 
        public virtual void show()
        {
            Console.WriteLine("圆的面积:{0}", Area());
        }
    }
 
    class Cylinder : Circle
    {
        private double h;
 
        public double H
        {
            set { h = H >= 0 ? value : 0; }
            get { return h; }
        }
 
        public double Volume()
        {
            return Area() * h;
        }
 
        public override void show()
        {
            base.show();
            Console.WriteLine("圆柱的体积:{0}", Volume());
        }
 
    }
 
}

测试结果:
在这里插入图片描述

八、C#绘图例子

使用图形方法,在Form上画出:

  1. 画出5不同颜色直线并形成一个多边形;

  2. 用红色画笔画一个圆形;

3.用图片填充一个矩形。、

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        Random rand = new Random();
        Point[] p = new Point[5];
 
        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            Graphics grap = e.Graphics;               
 
            p[0] = new Point(100, 100);
            p[1] = new Point(200, 200);
            p[2] = new Point(100, 300);
            p[3] = new Point(000, 200);
            p[4] = new Point(100, 100);
 
            Pen pen = new Pen(Color.FromArgb(rand.Next(256), rand.Next(256), rand.Next(256)),2);
            grap.DrawLines(pen, p);
 
            Pen redpen = new Pen(Color.Red, 2);
            grap.DrawArc(redpen, new Rectangle(new Point(300, 50), new Size(80, 80)), 0, 360);
 
            grap.FillRectangle(new TextureBrush(new Bitmap("1.bmp")), new Rectangle(new Point(300, 200), new Size(80, 80)));
       
        }
    }
}

测试结果:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/356324.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分布式任务调度(XXL-JOB)

什么是分布式任务调度&#xff1f; 任务调度顾名思义&#xff0c;就是对任务的调度&#xff0c;它是指系统为了完成特定业务&#xff0c;基于给定时间点&#xff0c;给定时间间隔或者给定执行次数自动执行任务。通常任务调度的程序是集成在应用中的&#xff0c;比如&#xff1a…

[译]PostgreSQL16-新特性-新增IO统计视图:pg_stat_io

PostgreSQL16-新特性-新增IO统计视图&#xff1a;pg_stat_io我们DBA常遇到的问题是&#xff1a;如何优化数据库的IO操作&#xff1f;获取PG服务产生的所有IO情况历来都是一个挑战。首先&#xff0c;PG将IO行为范围内为写WAL和读写数据目录(也就是数据文件)。真正的挑战是&#…

解决实际项目中stalled时间过久的问题

背景 在公司参与了一个做度量统计的项目&#xff0c;该项目的特点是页面上的表格、卡片、图标非常多。项目经常出现一种情况&#xff1a;页面加载速度较慢&#xff0c;开始怀疑是由于计算量较大&#xff0c;后端接口相应速度较慢。优化了一版后端接口后&#xff08;加缓存、优…

方法区和元空间有什么关系?

一.什么是方法区&#xff1f; 方法区属于是 JVM 运行时数据区域的一块逻辑区域&#xff0c;是各个线程共享的内存区域。 《Java 虚拟机规范》只是规定了有方法区这么个概念和它的作用&#xff0c;方法区到底要如何实现那就是虚拟机自己要考虑的事情了。也就是说&#xff0c;在…

电子技术——分析放大器的高频响应的有用工具

电子技术——分析放大器的高频响应的有用工具 在前几章我们使用米勒效应估计了CS和CE放大器模型的高频响应 fHf_HfH​ &#xff0c;以及分析了其限制和影响因素。然而&#xff0c;这个方法不能有效的处理负载是容性负载 CLC_LCL​ 的情况。同时&#xff0c;这个方法不能扩展到更…

【FPGA】Verilog:实现十六进制七段数码管显示 | 7-Segment Display

写在前面&#xff1a;本章主要内容为理解七点数码管显示的概念&#xff0c;并使用 Verilog 实现。生成输入信号后通过仿真确认各门的动作&#xff0c;通过 FPGA 检查在 Verilog 中实现的电路的操作。 Ⅰ. 前置知识 七段数码管是利用多重输出功能的非常有用的元件。该元件用于字…

spring+springboot+mybatis志愿者报名系统 ssm java

本盐城疫情防控志愿者报名系统以SSM作为框架&#xff0c;B/S模式以及MySql作为后台运行的数据库。本系统主要包括以下功能模块&#xff1a;防疫视频、优秀事迹、报名条件、在线报名等模块&#xff0c;通过这些模块的实现能够基本满足日常盐城疫情防控的操作。 根据盐城疫情防控…

基于微信小程序的中国各地美食推荐平台小程序

文末联系获取源码 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7/8.0 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.3.…

【js】export default也在影响项目性能呢

这里写目录标题介绍先说结论分析解决介绍 无意间看到一个关于export与exprot default对比的话题&#xff0c; 于是对二者关于性能方面&#xff0c;有了想法&#xff0c;二者的区别&#xff0c;仅仅是在于写法吗&#xff1f; 于是&#xff0c;有了下面的测试。 先说结论 太长…

.NET3.5安装步骤及相关问题。

.NET3.5全称 Microsoft.NETFramework3.5 最新版本-.NET4.8 第一步打开控制面板 windows系统打开控制面板 选择程序 选择.NET3.5安装。 可能会出现问题。 解决方案&#xff1a; 报错代码80240438的常用解决办法&#xff1a; 方法一&#xff1a;检测windows update servic…

【NLP实战】Python字符串处理

一、Python字符串基本操作 1. 去掉前后的特殊字符&#xff08;strip&#xff09; Python的strip操作可以去除字符串前后的空格&#xff08;不改变原串&#xff09;下例将前后的空格均删掉&#x1f447; str 人工智能 str.strip() # OUT:人工智能rstrip删除右边的空格&a…

linux016之安装JDK

linux上安装JDK&#xff1a; 一&#xff1a;首先检查一下linux上是否已经安装有jdk rpm -qa | grep jdk &#xff1a;查询目前系统已安装的jdk&#xff0c;直接复制该命令执行&#xff0c;如下图就是系统已经安装好的JDK rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps &…

线段树(维护区间信息)

一&#xff0c;定义&#xff1a; 可以在logN时间内实现区间修改&#xff0c;单点修改&#xff0c;区间查询等操作的工具 二&#xff0c;思路&#xff08;修改无乘法时&#xff09;&#xff1a; 1&#xff0c;建树 通过把区间不断二分建立一颗二叉树 我们以维护一个数组a{1…

流程引擎之compileflow简介

背景compileflow 是一个非常轻量、高性能、可集成、可扩展的流程引擎。compileflow Process 引擎是淘宝工作流 TBBPM 引擎之一&#xff0c;是专注于纯内存执行&#xff0c;无状态的流程引擎&#xff0c;通过将流程文件转换生成 java 代码编译执行&#xff0c;简洁高效。当前是阿…

JVM内存布局

JVM的主要组成&#xff1a;JVM包含俩个子系统和俩个组件&#xff0c;俩个子系统为Class loader&#xff08;类装载&#xff09;、Execution engine&#xff08;执行引擎&#xff09;&#xff1b;俩个组件为Runtime data area&#xff08;运行时数据区&#xff09;、Native Inte…

认证全家桶(Cookie、Session、Token、JWT)

什么是认证(Authentication) 通俗地讲就是验证当前用户的身份&#xff0c;证明“你是你自己”&#xff08;比如&#xff1a;你每天上下班打卡&#xff0c;都需要通过指纹打卡&#xff0c;当你的指纹和系统里录入的指纹相匹配时&#xff0c;就打卡成功&#xff09;互联网中的认…

independentsoft.de/MSG .NET Framework Crack

MSG .NET 是用于 .NET Framework / .NET Core 的 Microsoft Outlook .msg 文件 API。API 允许您轻松创建/读取/解析/转换 .msg 文件等。API 不需要在机器上安装 Microsoft Outlook 或任何其他第三方应用程序或库即可工作。 以下示例向您展示了如何打开现有文件并显示消息的某些…

sklearn学习-线性回归大家族

文章目录一、多元线性回归二、回归类的评估指标三、多重共线性&#xff1a;岭回归和Lasso四、Lasso选取最佳的正则化参数取值总结一、多元线性回归 二、回归类的评估指标 三、多重共线性&#xff1a;岭回归和Lasso 多重共线性 Multicollinearity 与 相关性 Correlation: 多重共…

达梦8共享存储集群DSC

简介&#xff1a; DM 共享存储数据库集群的英文全称 DM Data Shared Cluster&#xff0c;简称 DMDSC。 熟悉Oracle的朋友会知道目前国产数据库只有达梦数据库有共享存储集群架构&#xff0c;Oracle通过私网进行不同节点之间的缓存融合&#xff0c;而达梦通过自己的MAL系统&…

Java牛客编程刷算法记录--2022-12-7+2023-2-19

https://www.nowcoder.com/ta/classic-code 牛客上经典必刷题库 https://www.nowcoder.com/practice/e08819cfdeb34985a8de9c4e6562e724?tpId46&tqId29030&rp1&ru/ta/classic-code&qru/ta/classic-code&difficulty&judgeStatus&tags/question-ran…