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 ...
随机推荐
- 《SQL与数据库基础》07. 约束
目录 约束 常见约束案例 外键约束 删除/更新行为 本文以 MySQL 为例 约束 概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据. 目的:保证数据库中数据的正确性.有效性和完整性. 分 ...
- WPF学习 - 闭坑(持续更新)
坑1:自定义控件设计原则: 既然称之为控件,那么就必定有界面与行为两部分. 界面就是展示给用户看的,用于承载类的属性.方法.事件等. 行为就是类的方法,以及这些方法需要用到的属性.字段等. WPF设计 ...
- Python实现与MySQL长连接的客户端
下面的代码是使用Python建立的和MySQL长连接的简单客户端示例. 当和MySQL的连接断开后,会自动进行重连(被动式的重连,即只有调用增self.execute().删self.execute( ...
- 爬虫系列——selenium
文章目录 一 介绍 二 安装 三 基本使用 四 选择器 五 等待元素被加载 六 元素交互操作 七 其他 八 项目练习 一 介绍 selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决r ...
- Use Closures Not Enumerations
http://c2.com/ Use Closures Not Enumerations I was really disappointed when this turned out not to ...
- LVS+keepalived配置高可用架构和负载均衡机制(1)
一.基础知识 1. 四层负载均衡(基于IP+端口的负载均衡) 所谓四层负载均衡,也就是主要通过报文中的目标ip地址和端口,再加上负载均衡设备设置的服务器选择方式(分发策略,轮询),决定最终选择的内部服 ...
- RK3588平台产测之ArmSoM产品高温环境测试
1. 简介专栏总目录 ArmSoM团队在产品量产之前都会对产品做几次专业化的功能测试以及性能压力测试,以此来保证产品的质量以及稳定性 优秀的产品都要进行严苛的多次全方位的功能测试以及性能压力测试才能够 ...
- Groovy初学者指南
本文已收录至GitHub,推荐阅读 Java随想录 微信公众号:Java随想录 原创不易,注重版权.转载请注明原作者和原文链接 目录 Groovy & Java Groovy语法 动态类型 元 ...
- C/C++中的ACM题目输入处理——简单易上手
这里就不按其他文章的以各种情况为分类方法,而是以方法本身为分类办法.因为有一些方法是不同情况通用的,比如已知数量数字的输入和未知数量数字的输入,其实可以用同一种办法. 输入 C/C++ :scanf正 ...
- CSS 还原拉斯维加斯球数字动画
我的小册 <CSS 技术揭秘与实战通关>上线了,想了解更多有趣.进阶.系统化的 CSS 内容,可以猛击 - LINK. 最近大家刷抖音,是否有刷到拉斯维加斯的新地标 「Sphere」: 场 ...