博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#笔试题(一)
阅读量:6136 次
发布时间:2019-06-21

本文共 3795 字,大约阅读时间需要 12 分钟。

一、下面是一个由*号组成的4行倒三角形图案。

要求:

1、输入倒三角形的行数,行数的取值3-21之间,对于非法的行数,要求抛出提示“非法行数!”;

2、在屏幕上打印这个指定了行数的倒三角形。 

******* 

***** 
  *** 
   *

static void Main(string[] args)        {            //1、每行需要填充的星号个数2*RowNum-1,            //2、假设有RowNum行,每行需要输出的元素总个数(包含空格占位符):2*RowNum-1            //3、从左边到右边开始填充的位置Position=RowNum - RowIndex            Console.WriteLine("请输入行数");            int RowNum=Convert.ToInt32( Console.ReadLine());      //总的行数            while (RowNum<3 ||RowNum>21)                          //判断输入是否合法            {                Console.WriteLine("总行数小于3或者大于21,请重新输入");                RowNum=Convert.ToInt32( Console.ReadLine());            }            int ToFillCounter;            for (int RowIndex = RowNum; RowIndex>0; RowIndex--)       //控制行            {                 ToFillCounter = 1;                for (int ColumnIndex = 0; ColumnIndex < 2*RowNum-1; ColumnIndex++)//控制列                {                    if (RowNum - RowIndex <= ColumnIndex && ToFillCounter<=2*RowIndex-1)                    {                        Console.Write('*');                        ToFillCounter++;                    }                    else                    {                        Console.Write(' ');                    }                }                Console.WriteLine();            }        }

截图:

 

二、一个文本文件含有如下内容,分别表示姓名和成绩:

张三 90 

李四 96 
王五 78 
赵六 82

提供用户一个控制台界面,允许用户输入要查询的姓名,输入姓名并且按回车以 

后,打印出此人的成绩,如果不输入姓名直接按回车则显示所有人的姓名以及成 
绩。(注意:不能使用数据库)

static void Main(string[] args)        {            String Path = @"D:\Data.txt";            if (!System.IO.File.Exists(Path))            {                Console.WriteLine("要读取的文件不存在");                return;            }            Console.WriteLine("请输入要查询的名称");            //1、读取用户输入的指令。要嘛回车、要嘛姓名             string Request = Console.ReadLine();            //2、读取文件(打开文件、文件是否存在、按行读取)            using (StreamReader file = new StreamReader(Path, System.Text.Encoding.Unicode))            {                bool IsShowAllData = string.IsNullOrEmpty(Request.Trim());                if (IsShowAllData)                {                    Console.WriteLine(file.ReadToEnd());                }                else                {  //3、按行查找文件中的内容                    string LineReaded = string.Empty;                    while (!file.EndOfStream)                    {                        LineReaded = file.ReadLine();                        //4、找到了                        if (LineReaded.Contains(Request))                        {                            Console.WriteLine(LineReaded);                            return;                        }                    }                    Console.WriteLine("没找到指定信息");//没找到输出提示信息                }                //5、关闭文件                file.Close();            }        }

结果截图:

 

三、说出TCP和UDP之间的区别,各有什么优缺点?

的两大协议和,到底用哪一个?这是所有基于网络通讯的应用程序在设计、开发时需要考虑的。

下面,我们先分别来看看TCP和UDP的优缺点,在后面,再来分析一下,什么时候该用TCP什么时候该用UDP

TCP的优点

  • 可靠,稳定 
    TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。

TCP的缺点

  • 慢,效率低,占用系统资源高,易被攻击 
    TCP在传递数据之前,要先建连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间,而且要在每台设备上维护所有的传输连接,事实上,每个连接都会占用系统的CPU、内存等硬件资源。 
    而且,因为TCP有确认机制、三次握手机制,这些也导致TCP容易被人利用,实现DOS、DDOS、CC等攻击。

UDP的优点

  • 快,比TCP稍安全 
    UDP没有TCP的握手、确认、窗口、重传、拥塞控制等机制,UDP是一个无状态的传输协议,所以它在传递数据时非常快。没有TCP的这些机制,UDP较TCP被攻击者利用的漏洞就要少一些。但UDP也是无法避免攻击的,比如:UDP Flood攻击……

UDP的缺点

  • 不可靠,不稳定 
    因为UDP没有TCP那些可靠的机制,在数据传递时,如果网络质量不好,就会很容易丢包。

基于上面的优缺点,那么:

什么时候应该使用TCP: 

当对网络通讯质量有要求的时候,比如:整个数据要准确无误的传递给对方,这往往用于一些要求可靠的应用,比如HTTP、HTTPS、FTP等传输文件的协议,POP、SMTP等邮件传输的协议。 
在日常生活中,常见使用TCP协议的应用如下:

  • 浏览器,用的HTTP
  • FlashFXP,用的FTP
  • Outlook,用的POP、SMTP
  • Putty,用的Telnet、SSH
  • QQ文件传输
  • …………

什么时候应该使用UDP: 

当对网络通讯质量要求不高的时候,要求网络通讯速度能尽量的快,这时就可以使用UDP。 
比如,日常生活中,常见使用UDP协议的应用如下:

  • QQ语音
  • QQ视频
  • TFTP
  • ……

以上《说出TCP和UDP之间的区别,各有什么优缺点? 》转载自

本文转自陈哈哈博客园博客,原文链接http://www.cnblogs.com/kissazi2/p/3328437.html如需转载请自行联系原作者
kissazi2
你可能感兴趣的文章
onInterceptTouchEvent和onTouchEvent调用时序
查看>>
android防止内存溢出浅析
查看>>
4.3.3版本之引擎bug
查看>>
SQL Server表分区详解
查看>>
使用FMDB最新v2.3版本教程
查看>>
SSIS从理论到实战,再到应用(3)----SSIS包的变量,约束,常用容器
查看>>
STM32启动过程--启动文件--分析
查看>>
垂死挣扎还是涅槃重生 -- Delphi XE5 公布会归来感想
查看>>
淘宝的几个架构图
查看>>
Android扩展 - 拍照篇(Camera)
查看>>
JAVA数组的定义及用法
查看>>
充分利用HTML标签元素 – 简单的xtyle前端框架
查看>>
设计模式(十一):FACADE外观模式 -- 结构型模式
查看>>
iOS xcodebuile 自动编译打包ipa
查看>>
程序员眼中的 SQL Server-执行计划教会我如何创建索引?
查看>>
cmake总结
查看>>
数据加密插件
查看>>
linux后台运行程序
查看>>
win7 vs2012/2013 编译boost 1.55
查看>>
IIS7如何显示详细错误信息
查看>>