C#第3版第2章习题解答.doc_第1页
C#第3版第2章习题解答.doc_第2页
C#第3版第2章习题解答.doc_第3页
C#第3版第2章习题解答.doc_第4页
C#第3版第2章习题解答.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章 基本数据类型与流程控制语句 Ch2 基本数据类型与流程控制语句 习题解答1 简要回答值类型和引用类型有何不同?【解答】值类型和引用类型的区别在于,值类型的变量直接存放实际的数据,而引用类型的变量存放的则是数据的地址,即对象的引用。当把一个值变量赋给另一个值变量时,会在堆栈(stack)中保存两个完全相同的值;而把一个引用变量赋给另一个引用变量,则会在堆栈中保存对同一个堆(heap)位置的两个引用。进行数据操作时,对于值类型,由于每个变量都有自己的值,因此对一个变量的操作不会影响到其他变量;对于引用类型的变量,对一个变量的数据进行操作就是对这个变量在堆中的数据进行操作,如果两个引用类型的变量引用同一个对象,实际含义就是它们在堆栈中保存的堆的地址相同,因此对一个变量的操作就会影响到引用同一个对象的另一个变量。2 C#语言中不同整型之间进行转换的原则是什么?【解答】在整型之间进行转换时,小范围类型可以隐式转换为大范围类型,但大范围类型转换为小范围类型时需要使用显式转换。3、编写一个控制台应用程序,接收一个长度大于3的字符串,完成下列功能。(1)输出字符串的长度。(2)输出字符串中第一个出现字母a的位置。(3)字符串序号从零开始编号,在字符串的第3个字符的前面插入子串“hello”,输出新字符串。(4)将字符串“hello”替换为“me”,输出新字符串。(5)以字符“m”为分隔符,将字符串分离,并输出分离后的字符串。【解答】using System;class T3 public static void Main() string str = ; while (str.Length -1) Console.WriteLine(第一个出现字母a的位置是:0, i); else Console.WriteLine(字符串中不包含字母a。); /(3) string str1 = str.Insert(3, hello); /在第3个(初始序号为)字符前插入hello Console.WriteLine(插入hello后的结果为:0, str1); /(4) string str2 = str1.Replace(hello, me); Console.WriteLine(将hello替换为me后的结果为:0, str2); /(5) string arr = str2.Split(m); Console.WriteLine(以m为分隔符分离后的字符串有:); for (int j = 0; j arr.Length; j+) Console.WriteLine(arrj); Console.ReadLine(); 4编写一个控制台应用程序,输出15的平方值,要求:(1)用for语句实现;(2)用while语句实现;(3)用do-while语句实现。【解答】using System;using System.Collections.Generic;using System.Text;namespace outputSquareValue class Program static void Main() /用for语句实现 for (int i = 1; i = 5; i+) Console.WriteLine(0的平方值为1, i, i * i); /用while语句实现 int j = 0; while (j+ 5) Console.WriteLine(0的平方值为1, j, j * j); /用do-while语句实现 int k = 1; do Console.WriteLine(0的平方值为1, k, k * k); while (k+ 5); Console.ReadLine(); 5编写一个控制台应用程序,要求用户输入5个大写字母,如果用户输入的信息不满足要求,提示帮助信息并要求重新输入。【解答】using System;using System.Collections.Generic;using System.Text;namespace inputCapitalLetter class Program static void Main() bool ok = false; while (ok = false) Console.Write(请输入5个大写字母:); string str = Console.ReadLine(); if (str.Length != 5) Console.WriteLine(你输入的字符个数不是5个,请重新输入。); else ok = true; for (int i = 0; i 5; i+) char c = stri; if (c Z) Console.WriteLine(第0个字符“1”不是大写字母,请重新输入。, i + 1, c); ok = false; break; 6编写一个控制台应用程序,要求完成下列功能。(1)接收一个整数n。(2)如果接收的值n为正数,输出1n的全部整数。(3)如果接收的值为负值,用break或者return退出程序。(4)转到(1)继续接收下一个整数。【解答】using System;using System.Collections.Generic;using System.Text;namespace testOutput class Program static void Main() while (true) Console.Write(请输入一个整数(负值结束):); string str = Console.ReadLine(); try int i = Int32.Parse(str); if (i 0) break; for (int j = 1; j = i; j+) Console.WriteLine(j); catch Console.WriteLine(你输入的不是数字或超出整数的表示范围,请重新输入); 7编写一个控制台应用程序,求1000之内的所有“完数”。所谓“完数”是指一个数恰好等于它的所有因子之和。例如,6是完数,因为6=1+2+3。【解答】using System;using System.Collections.Generic;using System.Text;namespace completeNumber class Program static void Main(string args) for (int i = 2; i = 1000; i+) int s = 1; string str = 1; for (int j = 2; j = (int)Math.Sqrt(i); j+) if (j * (i / j) = i) if (j != i / j) s += j + i / j; str += string.Format(+0+1, j, i / j); else s += j; str += string.Format(+0, j); if (s = i) Console.WriteLine(0=1, i, str); Console.ReadLine(); 8、编写一个控制台应用程序,计算要求精度为108。【解答】using System;class Test8 public static void Main() int n = 50; double x = 3; double s =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论