c#基础练习
更新时间:2024-04-13 10:26:01 阅读量: 综合文库 文档下载
1.编一个程序,输入一个字符串,用ToCharArray()方法把字符串中的内容拷贝到字符数组中,然后用foreach输出该字符数组。string s;
Console.WriteLine(\请输入一个字符串\); s = Console.ReadLine();
char[] ch = new char[s.Length]; ch = s.ToCharArray(); foreach (char c in ch) {
Console.WriteLine(c); }
2.编一个程序,定义一个字符串变量,输入字符串,然后再输入一个字符,在字符串中查找该字符出现的次数。(k10040307)
string a; char b; int d = 0;
Console.WriteLine(\请输入一个字符串\); a = Console.ReadLine();
Console.WriteLine(\请输入一个字符\); b = char.Parse(Console.ReadLine()); for (int c = 0; c <= a.Length - 1; c++) {
if (a[c] == b) d++; }
Console.WriteLine(\字符{0}在字符串{1}中出现了{2}次\, b, a, d);
3.编一个程序,定义一个字符串变量,输入字符串,判断有没有连续重复字符出现,统计重复字符出现次数。例如,aaabccdfff,其中a重复出现二次,c重复出现一次,f重复出现二次,共计字符重复五次。
string i; int a = 0;
Console.WriteLine(\输入一个字符串\); i = Console.ReadLine();
for (int b = 1; b <= i.Length - 1; b++) {
1
if (i[b] == i[b - 1]) a++; }
Console.WriteLine(\, a);
4.编一个程序,利用for语句,打印一个如下形式的一个直角三角形,顶点在屏幕中线上,行数从键盘输入。 * ** *** ****
int i, j, n = 0, m = 40; while (n <= 0) {
Console.WriteLine(\请输入一个正整数:\); n = int.Parse(Console.ReadLine()); }
Console.WriteLine('\\n'); for (i = 1; i <= n; i++) {
Console.Write('\\n');
for (j = 1; j <= m; j++) Console.Write(' '); for (j = 1; j <= i; j++) Console.Write('*'); }
Console.WriteLine();
5 .编一个程序,利用for语句,打印一个如下形式的一个等腰三角形,顶点在屏幕中线上,行数从键盘输入。 * *** ***** *******
int i;
Console.WriteLine(\从键盘上输入一个数\);
2
i = int.Parse(Console.ReadLine()); for (int b = 1; b <= i ; b++) {
for (int a = 1; a <= i - b; a++) {
Console.Write(\); }
for (int c = 1; c <= 2 * b - 1; c++) {
Console.Write (\); }
Console.WriteLine(); }
6.定义一个一维数组,输入任意6个整数,假定为7,4,8,9,1,程序,利用for语句,输出如下方阵的内容: 7 4 8 9 1 5 5 7 4 8 9 1 1 5 7 4 8 9 9 1 5 7 4 8 8 9 1 5 7 4 4 8 9 1 5 7
int[] a ={ 7, 4, 8, 9, 1, }; int temp;
for (int i = 0; i < 6; i++) {
Console.Write(\,a[i]); }
for(int i=0;i< ;i++) {
Console.WriteLine(); temp = a[ ];
for (int j = ; j >0; j--) {
a[j] = a[j - 1]; }
a[0] = temp;
for (int k = 0; k < 6; k++) Console.Write(\,a[k]);
3
。编一个}
7. 编一个程序,定义一个n行n列的二维整数数组,赋初值,然后求出对角线上的元素之和。
int n = ; int s=0;
int[,] arr ={ { 1, 2, 3, 4, }, { 11, 12, 13, 14, 1 }, { 21, 22, 23, 24, 2 }, { 31, 32, 33, 34, 3 }, { 41, 42, 43, 44, 4 } }; int i, j;
for (i = 0; i < arr.GetLength(0); i++) {
for (j = 0; j < arr.GetLength(1); j++) {
if (i == j || i + j == n + 1) s = s + arr[i, j]; } }
Console.WriteLine(\对角线上的元素之和{0}\,s);
8.编一个程序,输入一个正整数,判断它是否为素数。如不是,则输出其所有正约数。
Console.WriteLine(\请输入一个正整数:\); uint i, n, flag; bool f = true;
n = uint.Parse(Console.ReadLine()); //uint.TryParse(Console.ReadLine(),out n); for (i = 2; i < n; i++) {
if (n % i == 0) { f = false; break; } }
if (f) Console.WriteLine(\是一个素数。\, n); else {
Console.Write(\不是一个素数。\\n{1}=\, n, n); i = 2;
4
flag = 0; while (i <= n) {
while (n % i == 0) {
n = n / i;
if (flag != 0) Console.Write('*'); flag = 1;
Console.Write(\, i); } i++; } }
9.编一个程序,输入一个代表身份证号码的字符串,判断字符串长度(18)是否正确,还要判断输入的每个字符是否为数字。否则要求重新输入。
string a; bool q = true;
Console.WriteLine(\请输入你的身份证;\); a = Console.ReadLine();
for (int b=0; b <= a.Length - 1; b++) {
if (a[b] >= '0' && a[b] <= '9') {
continue; } else q=false; }
if (a.Length == 18) {
if(q==true)
Console.WriteLine(\输入正确\); else if(q==false)
Console.WriteLine(\输入不合法,请重新输入\); } else
Console.WriteLine(\输入不合法,请重新输入\);
5
10.编一个程序,输入一个正整数n,把它转换为二进制数,并输出。提示:应该利用数组。
int[] a = new int[80]; int i, j, n = 0; while (n <= 0) {
Console.WriteLine(\请输入一个正整数:\); n = int.Parse(Console.ReadLine()); } i = 0;
Console.Write(\正整数{0}转换为二进制数:\, n); while (n > 0) {
a[++i] = n % 2; n = n / 2; }
for (j = i; j > 0; j--) Console.Write(a[j]); Console.WriteLine();
11.所谓“降序数”是指一个自然数的低位数字不大于高位数字的数。例如: 321都认为是降序数,但是623不是降序数。一位数字被认为是降序数。编一个程序,输入一个数,判定它是否为降序数。该程序是循环执行的,当输入的数为0时,则退出程序运行。
int i, j, m, n; bool pos; while (true) { n = -1; while (n <= 0) {
if (n == 0) return;
Console.WriteLine(\请输入一个正整数或者0:\); n = int.Parse(Console.ReadLine()); }
if (n < 10) pos = true; else {
6
m = n; i = 0; pos = true; while (m > 0) {
j = m % 10; m = m / 10; if (i > j) {
pos = false; break; } i = j; } }
if (pos) Console.WriteLine(\是降序数。\, n); else Console.WriteLine(\不是降序数。\, n); }
12.所谓“回文数”是指读一个自然数,从正方向读和反方向读,结果是一样的。例如:646,1 1,891232198都认为是回文数。编一个程序,输入一个正整数,判定它是否为回文数。当输入的数为0时,则退出程序,否则继续循环执行程序。
int s, k; int i, j;
int[] a = new int[20]; bool pos; while (true) { s = -1; while (s < 0) {
Console.Write(\请输入一个正整数或者只按一个数字0:\); s = int.Parse(Console.ReadLine()); if (s == 0) return; } k = s; pos = true; i = -1; while (k > 0) {
7
i++;
a[i] = k % 10; k = k / 10; }
//注意:数组a的长度为(i+1) for (j = 0; j < (i + 1) / 2; j++) if (a[j] != a[i - j]) {
pos = false; break; }
if (pos) Console.WriteLine(\是回文数。\, s); else Console.WriteLine(\不是回文数。\, s); }
13.编一个程序,定义一个n行n列的二维数组,例如,n=4,输入该数组的全部数据。可以在定义数组时赋于常量值。求二维数组中这样元素的位置:它在行上是最小,在列上也是最小。(注意:它未必是整个数组的最小元素。)
int n = 4;
int[,] a ={ { 2 , 12, 22, 14 }, { 1 , 16, 17, 18 }, { 19, 20, 21, 13 }, { 23, 24, 11, 26 } }; int i, j, k, temp, min; Console.Write(\二维数组:\); for (i = 0; i < n; i++) {
Console.Write(\);
for (j = 0; j < n; j++) Console.Write(\, a[i, j]); }
Console.WriteLine(\行 列 最小值\); for (i = 0; i < n; i++) for (j = 0; j < n; j++) {
temp = a[i, j]; min = temp; /*
for(k=0;k if(a[i,k] 8 for (k = 0; k < n; k++) if (a[i, k] < min) min = a[i, k];//在第i行查找最小值 for (k = 0; k < n; k++) if (a[k, j] < min) min = a[k, j];//在第j列查找最小值 if (temp == min) Console.WriteLine(\, i, j, temp); } 14.给定一个m×n的数值矩阵A,如果矩阵A中存在这样的一个元素A[i][j]满足条件:A[i][j]是第i行中值最小的元素,且又是第j列中值最大的元素,则称之为该矩阵的一个马鞍点。编写一个方法计算出m*n的矩阵A的所有马鞍点。 int i, j, k, m = 4, n = , max, min; int[,] array = new int[,] { { 30, 20, 2 , 40, 4 }, { 80, 19, 70, 90, 11 }, { 24, 14, 42, 91, 96 }, { 32, 17, 82, 72, 38 } }; Console.Write(\行{1}列的数值矩阵为:\); for (i = 0; i < m; i++) { Console.WriteLine(); for (j = 0; j < n; j++) { Console.Write(\, array[i, j]); } } for (i = 0; i < m; i++) for (j = 0; j < n; j++) { max = array[i, j]; min = array[i, j]; for (k = 0; k < n; k++) if (array[i, k] < min) min = array[i, k]; for (k = 0; k < m; k++) if (array[k, j] > max) max = array[k, j]; if (array[i, j] == max && array[i, j] == min) { Console.WriteLine(\马鞍点是第{0}行,第{1}列的{2}\, i, j, array[i, j]); } } 9 15 .编一个程序,输入一个整数,判定它为几位数。例如,99是2位数,-100是3位数。 int m, n, k = 0; Console.Write(\请输入一个整数:\); m = int.Parse(Console.ReadLine()); n = Math.Abs(m); while (n != 0) { n = n / 10; k++; } Console.WriteLine(\是{1}位数。\, m, k); 16.编一个程序,定义一个字符串数组,输入若干国家名称(所有名称全用大写或者全用小写),设计一个算法按字典顺序将这些国家名称进行排序。 int i, j, n = 10; string[] SortArray = new string[n]; string temp; Console.Write(\请输入{0}个字符串:\, n); for (i = 0; i < n; i++) { SortArray[i] = Console.ReadLine(); } for (i = 1; i < n; i++) { for (j = 0; j < n - i; j++) { if (String.Compare(SortArray[j], SortArray[j + 1]) > 0) { temp = SortArray[j]; SortArray[j] = SortArray[j + 1]; SortArray[j + 1] = temp; } } } Console.WriteLine(\已经排序后的国家名称为:\); for (i = 0; i < n; i++) { Console.WriteLine(SortArray[i]); 10 } 17. 编一个程序,定义类student和它的成员(学号,姓名,年龄和c_sharp程序设计成绩),用类student生成对象s,分别对对象s的成员赋值,然后输出对象s。 class student { public string 学号; public string 姓名; public int 年龄; public int c_sharp程序设计成绩; } static void Main(string[] args) { student s; s = new student(); s.学号 = \; s.姓名 = \刘云飞\; s.年龄 = 21; s.c_sharp程序设计成绩 = 9 ; Console.WriteLine(\学生学号:{0}\, s.学号); Console.WriteLine(\学生姓名:{0}\, s.姓名); Console.WriteLine(\学生年龄:{0}\, s.年龄); Console.WriteLine(\程序设计成绩:{0}\, s.c_sharp程序设计成绩); 18. 编一个程序,定义结构(有姓名,年龄,手机号码三个字段),再定义一个一维数组,把结构作为数组元素类型,存入数据,然后依次输出。 struct Contact { public string name; public int age; public string telephone; } class Program { static void Main(string[] args) { 11 Contact[] c = new Contact[3]; //c[0]=new Contact();//此三个语句,对于结构类型可以不用 //c[1]=new Contact(); //c[2]=new Contact(); c[0].name=\刘龙\; c[0].age= 4; c[0].telephone=\; c[1].name=\王鸣\; c[1].age=42; c[1].telephone=\; c[2].name=\张星\; c[2].age=39; c[2].telephone=\; Console.Write(\姓名:{0},\,c[0].name); Console.Write(\年龄:{0},\,c[0].age); Console.WriteLine(\手机号码:{0}\,c[0].telephone); Console.Write(\姓名:{0},\,c[1].name); Console.Write(\年龄:{0},\,c[1].age); Console.WriteLine(\手机号码:{0}\,c[1].telephone); Console.Write(\姓名:{0},\,c[2].name); Console.Write(\年龄:{0},\,c[2].age); Console.WriteLine(\手机号码:{0}\,c[2].telephone); 19.编一个程序,定义类(有姓名,年龄,手机号码三个字段),再定义一个一维数组,使数组元素为类,存入数据,然后依次输出,使用for循环语句进行输入输出操作。 class Contact { public string name; public int age; public string telephone; } class Program { static void Main(string[] args) { int i, n = 3; Contact[] c = new Contact[n]; for (i = 0; i < n; i++) c[i] = new Contact(); for (i = 0; i < n; i++) 12 { Console.Write(\请输入学生姓名:\); c[i].name = Console.ReadLine(); Console.Write(\请输入学生年龄:\); c[i].age = int.Parse(Console.ReadLine()); Console.Write(\请输入手机号码:\); c[i].telephone = Console.ReadLine(); } for (i = 0; i < n; i++) { Console.Write(\姓名:{0},\, c[i].name); Console.Write(\年龄:{0},\, c[i].age); Console.WriteLine(\手机号码:{0}\, c[i].telephone); } 20.编一个程序,输入三个double类型数据,自定义一个静态方法,把这三个数送给它,返回找出的最大数。 class classname { public static double compare(double x, double y, double z) { double temp; if (x > y) temp = x; else temp = y; if (z > temp) temp = z; return temp; } } class Program { static void Main(string[] args) { Console.Write(\请输入一个实数:\); double x = double.Parse(Console.ReadLine()); Console.Write(\请输入一个实数:\); double y = double.Parse(Console.ReadLine()); Console.Write(\请输入一个实数:\); double z = double.Parse(Console.ReadLine()); double temp = classname.compare(x, y, z); Console.WriteLine(\比较后得到的最大数为{0}\, temp); 13 21.编一个程序,利用自定义方法,找出2到100之间的素数。 class primetest { public bool prime(int x) { for (int i = 2; i < x; i++) { if (x % i == 0) return false; } return true; } } class Program { static void Main(string[] args) { primetest c = new primetest(); Console.WriteLine(\到100中的素数:\); for (int i = 2; i < 100; i++) if (c.prime(i)) Console.Write(\, i); 22. 编一个程序,从键盘上输入三个double类型的数,自定义方法,以从小到大的顺序排序,以引用型参数调用方法,然后返回主方法输出结果。 class compare { public void swap(ref double x, ref double y, ref double z) { double temp; if (x > y) { temp = x; x = y; y = temp; double temp; ; 14 if (y > z) { temp = x; y = z; z = temp; double temp; ; if (x > y) { temp = x; x = y; y = temp; } } } } class Program { static void Main(string[] args) { double x, y, z; compare c = new compare(); Console.Write(\请输入一个实数:\); x = double.Parse(Console.ReadLine()); Console.Write(\请输入一个实数:\); y = double.Parse(Console.ReadLine()); Console.Write(\请输入一个实数:\); z = double.Parse(Console.ReadLine()); Console.WriteLine(\排序前的三个数依次为{0},{1},{2}\, x, y, z); c.swap(ref x, ref y, ref z); //c.swap(ref x,ref z); //c.swap(ref y,ref z); Console.WriteLine(\排序后的三个数依次为{0},{1},{2}\, x, y, z); } 23.编一个程序,输入a,b,c的值,定义一个静态方法,求出一元二次方程a*x*x+b*x+c=0的二个实数根。计算二个实数根必须使用Math类中的Sqrt()方法,计算指定数的开方。计算二个实数根,可以用公式 (-b+Math.Sqrt(b*b-4*a*c))/(2*a)和(-b-Math.Sqrt(b*b-4*a*c))/(2*a)。 class ClassName { 15 public static void root(double a, double b, double c, ref double root1, ref double root2) { root1 = (-b + Math.Sqrt(b * b - 4 * a * c)) / (2 * a); root2 = (b + Math.Sqrt(b * b - 4 * a * c)) / (2 * a); } } class Program { static void Main(string[] args) { double a, b, c, root1 = 0, root2 = 0; Console.Write(\请输入一个数:\); a = double.Parse(Console.ReadLine()); Console.Write(\请输入一个数:\); b = double.Parse(Console.ReadLine()); Console.Write(\请输入一个数:\); c = double.Parse(Console.ReadLine()); if (a != 0 && b * b - 4 * a * c >= 0) { ClassName.root(a, b, c, ref root1, ref root2); Console.WriteLine(\, root1, root2); } else Console.WriteLine(\输入的数据有错误\); 24. 编一个程序,定义一个数组,再定义类以及方法,用方法(out参数传递数据)找出这组数据中的最大数和最小数。 class ClassName { public void find(out int max, out int min, params int[] array) { int n = array.Length, i = 1; max = array[0]; min = array[0]; while (i < n) { if (array[i] > max) 16 max = array[i]; else if (array[i] < min) min = array[i]; i++; } } } class Program { static void Main(string[] args) { int max, min; int[] a = new int[10] { 97, 6 , 32, 17, 8, 43, 79, 81, 23, 10 }; ClassName s = new ClassName(); s.find(out max, out min, a); Console.WriteLine(\最大数为:\ + max); Console.WriteLine(\最小数为:\ + min); 25. 编一个程序,定义一个类,该类中定义二个非静态方法,一个方法用来求出这个三角形的周长,另一个方法用来求出这个三角形的面积。已知三角形三条边a,b,c,计算其面积可以用Math类中的Sqrt()方法,有表达式Math.Sqrt(s*(s-a)*(s-b)*(s-c)),可以利用它计算指定数的开方,其中s=(a+b+c)/2。在主方法中输入一个三角形三条边a,b,c,要求调用这二个非静态方法计算三角形的周长和面积。注意:在输入三角形三条边时,必须检查它们的数据合法性。 class triangle { public double c(double a, double b, double c) { double zc; zc = a + b + c; return zc; } public double s(double a, double b, double c) { double mj,s1; s1 = (a + b + c) / 2; mj = Math.Sqrt(s1*(s1-a)*(s1-b)*(s1-c)); return mj; } } class Program 17 { static void Main(string[] args) { triangle tr=new triangle (); double x, y, z; Console.WriteLine(\请输入三角形的三边\); x = double.Parse(Console.ReadLine()); y = double.Parse(Console.ReadLine()); z = double.Parse(Console.ReadLine()); if ((x + y > z && x - y < z) && (x + z > y && x - z < y) && ((y + z) > x && (y - z < x))) { Console.WriteLine(\三角形的周长为{0}\, tr.c(x, y, z)); Console.WriteLine(\三角形的面积为{0}\, tr.s(x, y, z)); } else Console.WriteLine(\三角形三边不合法\); 18
正在阅读:
c#基础练习04-13
中国农业银行现金管理业务10-30
《中共中央关于加强党的执政能力建设的决定》发展与协调04-05
七年级地理下册第七章我们邻近的国家和地区单元练习(新版)新人教版05-07
(全套)2010年二级建造师真题与答案(实务、法规、施工管理)05-04
我爱读书作文350字06-28
基于单片机的函数发生器论文04-22
2020江苏公务员考试申论模拟试题及答案11-21
濒危动物的保护03-13
质量通病防治施工方案206-18
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- c#
- 练习
- 基础
- s版小学语文三年级上册《 揠 苗 助 长》说 课 稿
- 中考语文复习策略 好22 - 图文
- 巧克力包装市场调研 - 图文
- 西方行政思想(学说)史复习资料整理 - 图文
- 服装设计毕业论文 - 图文
- 揭秘美男宋玉被绝世美女偷窥三年而不心动?
- 商品流通会计A
- 02486《商品学》考核说明
- 苏教版语文五年级上册补充习题答案
- 植物体细胞杂交技术教案定稿
- 四川省成都市状元廊学校2015届中考数学思维方法讲义 第5讲 解直
- 语文 2018年宝鸡市高三质量检测(三)语文参考答案
- 对中小学音乐教育中区域音乐文化传承的思考与探索
- 人民币单位的换算教学设计
- 2018宜宾高三一诊理综试题及答案
- 建筑工程经济作业答案1
- 中国传媒大学南广学院学年学分制课程修读与考核管理办法
- Bler研究 - 图文
- 双汇瘦肉精事件内控分析
- 甘肃二级公路建设标准化管理指南 - 图文