C# 基础编程题集锦
简单字符串加密
编写一个应用程序用来输入的字符串进行加密,对于字母字符串加密规则如下:
'a→d’ ‘b'→’e’ ‘w’→z' ...... x'→’a’ ‘y'→b' ‘z→c’ ‘A’→’D’ ‘B'→’E’ ‘W’→’Z’ ‘X’→’A’ ‘Y’→’B’ ‘Z’→’C’ ?对于其他字符,不进行加密。
static void Main(string[] args)
{
string str = Console.ReadLine();
Char[] chars = str.ToCharArray();
for (int i = 0; i < chars.Length; i++)
{
if ((chars[i] >= 'a' && chars[i] <= 'z') || (chars[i] >= 'A' && chars[i] <= 'Z'))
{
chars[i] = (char)(chars[i] + 3);
if ((chars[i] > 'z' && chars[i] <= 'z' + 3)||(chars[i] > 'Z' && chars[i] <= 'Z' + 3))
{
chars[i] = (char)(chars[i] -26);
}
}
}
foreach (char c in chars)
{
Console.Write(c);
}
Console.ReadKey();
}
找到最小值
输入(n<100)个数,找出其中最小的数,将它与最前面的数交换后输出这些数。
【假设输入的数字以空格字符隔开,例:23 15 45 78 】
static void Main(string[] args)
{
string str = Console.ReadLine();
string[] strArray = str.Split(' ');
int[] intArray = new int[strArray.Length];
for (int i = 0; i < intArray.Length; i++)
{
intArray[i] = int.Parse(strArray[i]);
}
int min = intArray[0];
int minIndex = 0;
for (int i = 1; i < intArray.Length; i++)
{
if (intArray[i] < min)
{
min = intArray[i];
minIndex = i;
}
}
intArray[minIndex] = intArray[0];
intArray[0] = min;
foreach (var item in intArray)
{
Console.Write(item + " ");
}
Console.ReadKey();
}
在适当位置插入
有 n (n<=100) 个整数,已经按照从小到大顺序排列好,现在另外给一个整数 x ,请将该数插入到序列
中,并使新的序列仍然有序。
static void Main(string[] args)
{
int[] array = { 2, 3, 5, 10, 89 };
int target = int.Parse(Console.ReadLine());
int index = 0;
bool isFound = false;
for (int i = 0; i < array.Length - 1; i++)
{
if (target >= array[i] && target <= array[i + 1])
{
index = i;
isFound = true;
break;
}
}
List<int> list = array.ToList();
if (isFound)
{
list.Insert(index + 1, target);
}
else
{
if (target < list[0])
{
list.Insert(0, target);
}
else
{
list.Add(target);
}
}
array = list.ToArray();
for (int i = 0; i < array.Length; i++)
{
Console.Write(array[i] + " ");
}
Console.ReadKey();
}
排序
编写一个控制台程序,要求用户输入一组数字用空格间隔,对用户输入的数字从小到大输出。
(Array.Sort()方法和冒泡排序)
Array.Sort
static void Main(string[] args)
{
string[] strArray = Console.ReadLine().Split(' ');
int[] intArray = new int[strArray.Length];
for (int i = 0; i < intArray.Length; i++)
{
intArray[i] = int.Parse(strArray[i]);
}
Array.Sort(intArray);
for (int i = 0;i < intArray.Length; i++)
{
Console.Write(intArray[i]+" ");
}
Console.ReadKey();
}
冒泡排序
static void Main(string[] args)
{
string[] strArray = Console.ReadLine().Split(' ');
int[] intArray = new int[strArray.Length];
for (int i = 0; i < intArray.Length; i++)
{
intArray[i] = int.Parse(strArray[i]);
}
for (int i = 0; i < intArray.Length-1; i++)
{
for (int y = 0; y < intArray.Length-1; y++)
{
if (intArray[y] > intArray[y+1])
{
int temp = intArray[y];
intArray[y]= intArray[y+1];
intArray[y+1]= temp;
}
}
}
foreach (var item in intArray)
{
Console.Write(item+" ");
}
Console.ReadKey();
}
判断合法标识符
输入一个字符串,判断其是否是C#合法标识符。
【合法标识符即合法命名】 - 字母、数字、下划线
static void Main(string[] args)
{
char[] chars = Console.ReadLine().ToCharArray();
bool isLeagal = true;
if ((chars[0] >= '0' && chars[0] <= '9'))
{
isLeagal = false;
}
else
{
foreach (char c in chars)
{
if (!((c>='0'&&c<='9')||(c>='a'&&c<='z')||(c>='A'&&c<='Z')||c=='_'))
{
isLeagal=false;
break;
}
}
}
if (isLeagal)
{
Console.WriteLine("字符串合法");
}
else { Console.WriteLine("字符串不合法"); }
Console.ReadKey();
}
回文串
回文串"是一个正读和反读都一样的字符串,比如level或者noon等等就是回文串。请写一个
程序判断读入的字符串是否是“回文串”。
static void Main(string[] args)
{
char[] chars = Console.ReadLine().ToCharArray();
bool isHui = true;
for (int i = 0; i < chars.Length / 2; i++)
{
if (chars[i] != chars[chars.Length - 1 - i])
{
isHui = false;
break;
}
}
if (isHui)
{
Console.WriteLine("是回文串");
}
else
{
Console.WriteLine("不是回文串");
}
Console.ReadKey();
}
判断第二大值
输入是个不相等的正整数,输出这10个正整数中的第二大的数。
样例输入
3729531038
样例输出
9
static void Main(string[] args)
{
string[] strArray = Console.ReadLine().Split(' ');
int[] intArray = new int[strArray.Length];
for (int i = 0; i < intArray.Length; i++)
{
intArray[i] = int.Parse(strArray[i]);
}
int max1 = 0, max2 = 0;
for (int i = 0; i < intArray.Length; i++)
{
if (intArray[i]>max1)
{
max2 = max1;
max1 = intArray[i];
}
else
{
if (intArray[i]>max2)
{
max2 = intArray[i];
}
}
}
Console.WriteLine($"第二大值 {max2}");
Console.ReadKey();
}
真素数
区间内的真素数
找出正整数M和N之间(N不小于M)的所有真素数。真素数的定义:如果一个正整数P为素数,且其反序也为素数,那么P就为真素数。
例如,11,13均为真素数,因为11的反序还是为14,13的反序为31也为素数。
输入格式:输入两个数M和N,空格间隔,1<=M<=N<=100000。
输出格式:按从小到大输出M和N之间(包括M和N)的真素数,逗号间隔。如果之间没有真素数,则输出N0。
输入样例:1035
输出样例:11.13,17,31
static void Main(string[] args)
{
string[] strArray = Console.ReadLine().Split(' ');
int[] intArray = new int[strArray.Length];
for (int i = 0; i < intArray.Length; i++) // m n
{
intArray[i] = int.Parse(strArray[i]);
}
int m = intArray[0];
int n = intArray[1];
for (int i = m; i < n + 1; i++)
{
bool isSu = true;
for (int j = 2; j < i; j++)
{
if (i % j == 0)
{
isSu = false;
}
}
if (isSu)
{
// 取反
int temp = i;
int number = 0;
while (temp % 10 != 0)
{
number = number * 10 + temp % 10;
temp = temp / 10;
}
bool isSu2 = true;
for (int j = 2; j < number; j++)
{
if (number % j == 0)
{
isSu2 = false;
break;
}
}
if (isSu2)
{
Console.Write(i + " ");
}
}
}
Console.ReadKey();
}
递归函数类
f( n )=f(n-1)+ f(n-2) ,f(0)=2 ,f(1) = 3 , 用程序求得 f(40)
循环
static void Main(string[] args)
{
// fn = fn1 + fn2 f0=2 f1=3
int n1 = 2; // f0
int n2 = 3; // f1
int n40 = 0;
for (int i = 2; i < 41; i++)
{
n40 = n1 + n2;
n1 = n2;
n2 = n40;
}
Console.WriteLine(n40);
Console.ReadKey();
}
递归函数
static void Main(string[] args)
{
// fn = fn1 + fn2 f0=2 f1=3
int n40 = F(40);
Console.WriteLine(n40);
Console.ReadKey();
}
static int F(int n)
{
if (n == 0) { return 2; }
if (n == 1) { return 3; }
int res = F(n - 1) + F(n - 2);
return res;
}

阶乘
利用递归函数取得10!
循环
static void Main(string[] args)
{
// n! = n*(n-1)*(n-2)*...*(n-(n-1))
// 5! = 5*4*3*2*1
int result = 10;
for (int i = 9; i > 0; i--)
{
result = result * i;
}
Console.WriteLine(result);
Console.ReadKey();
}
递归函数
static void Main(string[] args)
{
// n! = n*(n-1)*(n-2)*...*(n-(n-1)) = n*(n-1)!
// 5! = 5*4*3*2*1
Console.WriteLine(F(10));
Console.ReadKey();
}
static int F(int n)
{
if (n == 1) { return 1; }
int res = n * F(n - 1);
return res;
}
找规律!!!
阶乘变种
1+2!+3!+4!+..+10!
利用多个方法计算结果
static void Main(string[] args)
{
// n! = n*(n-1)*(n-2)*...*(n-(n-1)) = n*(n-1)!
// 5! = 5*4*3*2*1
Console.WriteLine(S(10));
Console.ReadKey();
}
static int F(int n)
{
if (n == 1) { return 1; }
int res = n * F(n - 1);
return res;
}
static int S(int n)
{
if(n==1) { return 1; }
int res=F(n) + S(n - 1);
return res;
}
递归练习
有关系式1 x 1+2 x 2+3 x 3+..+ k x k<2000,编一个程序,求出满足此关系式的k的最大值
利用递归和循环解决这个问题
static void Main(string[] args)
{
// 不清楚循环何时结束 - while
int k = 1;
while (true)
{
int res = F(k);
if (res >= 2000)
{
break;
}
k++;
}
Console.WriteLine(k - 1);
Console.ReadKey();
}
static int F(int n)
{
if (n == 1) { return 1; }
int res = n * n + F(n - 1);
return res;
}
C# 基础编程题集锦的更多相关文章
- JavaScript数组基础编程题归纳
之前的随笔"JavaScript中数组类型的属性和方法"中有介绍很多数组类型的方法,但都是一些理论.最近在练习在线编程题,发现自己还是习惯于用常规的循环来答题,对于数组的方法的使用 ...
- 《ACM国际大学生程序设计竞赛题解Ⅰ》——基础编程题
这个专栏开始介绍一些<ACM国际大学生程序设计竞赛题解>上的竞赛题目,读者可以配合zju/poj/uva的在线测评系统提交代码(今天zoj貌似崩了). 其实看书名也能看出来这本书的思路,就 ...
- java基础编程题练习(一)
1.编程实现用户输入4个整数,按从大到小的顺序排列输出. 思路:将输入的数据存入数组,使用冒泡排序对数组数据进行排序后输出数组 冒泡排序的代码如下: import java.util.Scanner; ...
- java面向对象基础编程题
第一题: 设计一个形状类Shape,方法:求周长和求面积.形状类的子类:Rect(矩形),Circle(圆形).Rect类的子类:Square(正方形).不同的子类会有不同的计算周长和面积的方法1.总 ...
- java基础编程题(1)
1. 题目:打印出杨辉三角形(要求打印出10行如下图) 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1...... package com.jzq.test1; ...
- PAT 基础编程题 4-11 求自定类型元素序列的中位数(希尔排序)
4-11 求自定类型元素序列的中位数 (25分) 本题要求实现一个函数,求N个集合元素A[]的中位数,即序列中第\lfloor N/2 +1\rfloor⌊N/2+1⌋大的元素.其中集合元素的类型 ...
- java基础编程题练习(二)
1.回文数 思路一:使用java特有解法,将原数字以字符串存储,翻转后赋值给新的字符串变量,再使用equals与原字符串进行对比 import java.util.Scanner; public cl ...
- k2datas 基础编程题,判断字符串是否有重复串
package String; public class DuplicateString { public static boolean isDup(String s) throws Exceptio ...
- 海龟绘图turtle库之二级基础编程题
一.画一个太极图 import turtle as t t.pensize(2)#设置笔画宽度 t.circle(100)#以100为半径的圆 t.circle(50, 180) t.circle(- ...
- Java基础编程题——打印九九乘法表
package com.yangzl.basic; /** * 九九乘法表 * @author Administrator * */ public class Nine_Nine_Multiplica ...
随机推荐
- 你的开发套件已到货「GitHub 热点速览」
这周的 GitHub 热点榜,撇开上周的介绍过的几个项目,剩下就两字:套件.像是搜罗了大量黑客工具的 hackingtool,还有打算一统米哈游游戏客户端的 Starward,以及好用的 CV 库 s ...
- 无界AI绘画基础教程,和Midjourney以及Stable Diffusion哪个更好用?
本教程收集于:AIGC从入门到精通教程汇总 简单的总结 Midjourney,Stable Diffusion,无界AI的区别? Midjourney,收费,上手容易,做出来高精度的图需要自己掌握好咒 ...
- 《Kali渗透基础》10. 提权、后渗透
@ 目录 1:提权 2:Admin 提权为 System 2.1:at 2.2:sc 2.3:SysInternal Suite 2.4:进程注入提权 3:抓包嗅探 4:键盘记录 5:本地缓存密码 5 ...
- 《Linux基础》01. 概述
@ 目录 1:Linux的应用领域 1.1:个人桌面领域的应用 1.2:服务器领域 1.3:嵌入式领域 2:Linux介绍 3:Linux和Unix的关系 4:Linux基本规则 Linux介绍 1: ...
- springboot整合seata1.5.2+nacos2.1.1
一.前言 Seata出现前,大部分公司使用的都是TCC或者MQ(RocketMq)等来解决分布式事务的问题,TCC代码编写复杂,每个业务均需要实现三个入口,侵入性强,RocketMQ保证的是最终一致性 ...
- mpi转以太网连接200plc以太网监控同时与步科触摸屏通信
西门子PLC200 226PLC转以太网通过PPI-ETH-XD1.0集中采集不占用编程口同时与步科触摸屏通信 现有设备及联网要求客户车间内有6台纺机设备,控制系统采用西门子PLC,型号为CPU226 ...
- studio
- 它让你1小时精通RabbitMQ消息队列、且能扛高并发
支持.Net Core(2.0及以上)与.Net Framework(4.5及以上) 本文所述方案近期被江苏省某亿级数据量+高并发的政府"物联网"项目采用,获得圆满成功!! [目录 ...
- APIO 2023 游记
真心话大冒险很有趣. rand 一个房间去敲门加 QQ 很有趣.这么看社恐猫好像也没那么社恐. 面到了 zpl pcq iee dx.单方面认识了很多神仙. 比赛只会写暴力,评测 queue 害人不浅 ...
- mysql 实用语句
-- 查询内存大小 SELECT TABLE_NAME, concat( TRUNCATE (data_length / 1024 / 1024, 2), ' MB' ) AS data_size, ...