灵魂腐蚀 发表于 2015-1-16 22:48:15

ASP.NET网站制作之C#收集使用编程基本实习题与谜底(二)...

我有个同学,他是搞Java的,他给我说“Java不是效率低,而是速度慢。”,我不是搞Java的,我实在想不透这句话的含义,难道执行速度不就是效率低吗?难道执行速度慢还成效率高了?编程|收集  1.C#撑持的数据范例有那些?与C++比拟有哪些特性?
  【解答】
  C#撑持的数据范例有:
  (1)值范例
  包含:复杂范例、布局范例、列举范例。个中,复杂范例又分为:整型、布尔型、字符型、浮点型、小数型。
  (2)援用范例
  包含:工具范例、类范例、接口、元数据、字符串范例、数组。
  与C++比拟,C#的次要特性有:
  1)C#言语自C/C++演化而来。可是,它是完整依照面向工具的头脑来计划的,并包管了范例的平安性。
  2)C#简化了C++在类、称号空间、办法重载和非常处置等方面的利用。摒弃了C++的庞大性,使它更容易用、更少堕落。
  3)C#削减了C++的一些特征,不再有宏、多重承继。出格对企业开辟者来讲,上述功效只会发生更多的贫苦而不是效益。
  4)C#接纳严厉的范例平安、版本把持、渣滓搜集(garbagecollect)等等。一切的这些功效的方针都是对准了开辟面向组件的软件开辟。
  5)C#中不再有“::”、“.”、和“->”操纵符,仅利用单个操纵符“.”。
  6)C#利用一致的范例体系,摒弃了C++多变的范例体系。
  7)在C#中,不克不及在类的内部界说全局函数、变量大概是常量等。一切的器材都必需封装在类中,包含实例成员或静态成员。从而使C#代码加倍易读且有助于削减潜伏的定名抵触。
  8)在C#中,不克不及利用没有初始化的变量。从而制止了因为利用不经初始化的变量而招致的盘算了局毛病。
  2.C#言语中,值范例和援用范例有何分歧?
  【解答】
  值范例和援用范例的区分在于,值范例的变量间接寄存实践的数据,而援用范例的变量寄存的则是数据的地点,即工具的援用。
  值范例变量间接把变量的值保留在仓库中,援用范例的变量把实践数据的地点保留在仓库中,而实践数据则保留在堆中。注重,堆和仓库是两个分歧的观点,在内存中的存储地位也不不异,堆一样平常用于存储可变长度的数据,如字符串范例;而仓库则用于存储流动长度的数据,如整型范例的数据int(每一个int变量占用四个字节)。由数据存储的地位能够得知,当把一个值变量赋给另外一个值变量时,会在仓库中保留两个完整不异的值;而把一个援用变量赋给另外一个援用变量,则会在仓库中保留对统一个堆地位的两个援用,即在仓库中保留的是统一个堆的地点。在举行数据操纵时,关于值范例,因为每一个变量都有本人的值,因而对一个变量的操纵不会影响到别的变量;关于援用范例的变量,对一个变量的数据举行操纵就是对这个变量在堆中的数据举行操纵,假如两个援用范例的变量援用统一个工具,实践寄义就是它们在仓库中保留的堆的地点不异,因而对一个变量的操纵就会影响到援用统一个工具的另外一个变量。
  3.布局和类的区分是甚么?
  【解答】
  1)布局是一个值范例,保留在栈上,而类是一个援用范例,保留在受控制的堆上。
  2)对布局中的数据举行操纵比对类或工具中的数据举行操纵速率要快。
  3)一样平常用布局存储多品种型的数据,当创立一个良多类或工具共用的小型工具时,利用布局效力更高。
  4.C#中的数组范例有何特性?
  【解答】
  1)数组一样平常用于存储统一品种型的数据,包含Object范例。
  2)数组是一种援用范例,而不是值范例。
  3)C#中除能够有一维数组、多维数组外,另有交织型数组。
  5.C#中分歧整型之间举行转换的准绳是甚么?
  【解答】
  在整型之间举行转换时,小局限范例能够隐式转换为年夜局限范例,但年夜局限范例转换为小局限范例时必要利用显式转换。
  6.简述装箱和拆箱的历程。
  【解答】
  装箱是将值范例隐式地转换为object范例大概转换为由该值范例完成了的接口范例。装箱一个数值会为其分派一个工具实例,并把该数值拷贝到新工具中。拆箱是显式地把object范例转换成值范例,大概把值范例完成了的接口范例转换成该值范例。
  7.以下写法哪些是毛病的?为何?
  1)if(nMyValue1=5)i=1;
  2)if(nMyValue2==1)i=1;
  3)int[]myInt={1,2,3};
  foreach(inttestinmyInt)
  {
  test++;
  Console.WriteLine(temp);
  }
  4)int[]myInt1={1,2,3};
  foreach(inttestinmyInt1)
  {
  Console>WriteLine(test);
  }
  【解答】
  1)毛病。if中的前提表达式了局不是布尔型。
  2)准确。
  3)毛病一:temp没有界说。
  毛病二:在foreach块内,test作为列举成员是只读的,不克不及利用test++修正其值。
  4)毛病。Console后应当是点,而不该该是年夜于号。
  8.毛病和非常有甚么区分,为何要举行非常处置,用于非常处置的语句有哪些?
  【解答】
  毛病是指在实行代码过程当中产生的事务,它中止或搅扰代码的一般流程并创立非常工具。当毛病中止流程时,该程序将实验寻觅非常处置程序(一段告知程序怎样对毛病做出呼应的代码),以匡助程序恢复流程。换句话说,毛病是一个事务,而非常是该事务创立的工具。
  当利用短语“发生非常”时,暗示存在成绩的办法产生毛病,并创立非常工具(包括该毛病的信息及产生的工夫和地位)来呼应该毛病。招致呈现毛病和随后非常的要素包含用户毛病、资本失利和编程逻辑失利。这些毛病与代码完成特定义务的办法有关,而与该义务的目标有关。
  假如不举行非常处置,即不合错误毛病做出呼应,程序的强健性就会年夜打扣头,乃至没法包管一般运转,以是必需要举行非常处置。
  用于非常处置的语句有:try-catch语句、try-catch-finally语句、throw语句。
  9.编写一个把持台使用程序,输入1到5的平方值,请求:
  1)用for语句完成。
  2)用while语句完成。
  3)用do-while语句完成。
  【解答】
<P>  usingSystem;
  usingSystem.Collections.Generic;
  usingSystem.Text;
  namespaceoutputSquareValue
  {
  classProgram
  {
  staticvoidMain()
  {
  //用for语句完成
  for(inti=1;i<=5;i++)
  {
  Console.WriteLine("{0}的平方值为{1}",i,i*i);
  }
  //用while语句完成
  intj=0;
  while(j++<5)
  {
  Console.WriteLine("{0}的平方值为{1}",j,j*j);
  }
  //用do-while语句完成
  intk=1;
  do
  {
  Console.WriteLine("{0}的平方值为{1}",k,k*k);
  }while(k++<5);
  Console.ReadLine();
  }
  }
  }
  10.编写一个把持台使用程序,请求用户输出5个年夜写字母,假如用户输出的信息不满意请求,提醒匡助信息并请求从头输出。
  【解答】
<P>  usingSystem;
  usingSystem.Collections.Generic;
  usingSystem.Text;
  namespaceinputCapitalLetter
  {
  classProgram
  {
  staticvoidMain()
  {
  boolok=false;
  while(ok==false)
  {
  Console.Write("请输出5个年夜写字母:");
  stringstr=Console.ReadLine();
  if(str.Length!=5)
  {
  Console.WriteLine("你输出的字符个数不是5个,请从头输出。");
  }
  else
  {
  ok=true;
  for(inti=0;i<5;i++)
  {
  charc=str;
  if(c<A||c>Z)
  {
  Console.WriteLine("第{0}个字符“{1}”不是年夜写字母,请从头输出。",i+1,c);
  ok=false;
  break;
  }
  }
  }
  }
  }
  }
  }
  11.编写一个把持台使用程序,请求完成以下功效。
  1)吸收一个整数n。
  2)假如吸收的值n为负数,输入1到n间的全体整数。
  3)假如吸收的值为负值,用break大概return加入程序。
  4)转到(1)持续吸收下一个整数。
  【解答】
<P>  usingSystem;
  usingSystem.Collections.Generic;
  usingSystem.Text;
  namespacetestOutput
  {
  classProgram
  {
  staticvoidMain()
  {
  while(true)
  {
  Console.Write("请输出一个整数(负值停止):");
  stringstr=Console.ReadLine();
  try
  {
  inti=Int32.Parse(str);
  if(i<0)break;
  for(intj=1;j<=i;j++)Console.WriteLine(j);
  }
  catch
  {
  Console.WriteLine("你输出的不是数字或超越整数的暗示局限,请从头输出");
  }
  }
  }
  }
  }
  12.编写一个把持台使用程序,求1000以内的一切“完数”。所谓“完数”是指一个数刚好即是它的一切因子之和。比方,6是完数,由于6=1+2+3。
  【解答】
<P>  usingSystem;
  usingSystem.Collections.Generic;
  usingSystem.Text;
  namespacecompleteNumber
  {
  classProgram
  {
  staticvoidMain(string[]args)
  {
  for(inti=2;i<=1000;i++)
  {
  ints=1;
  stringstr="1";
  for(intj=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();
  }
  }
  }
你所列的那些其实差不多都可以称为应用服务器(servlet应该说是一种语言更合适)java是开放的,相同的工具就会有很多公司在做,加上java已经发展了很多年了,因此这些工具就很多了。他们很多都是类似的。

山那边是海 发表于 2015-1-19 23:53:03

ASP在执行的时候,是由IIS调用程序引擎,解释执行嵌在HTML中的ASP代码,最终将结果和原来的HTML一同送往客户端。

谁可相欹 发表于 2015-1-28 16:02:47

使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。

第二个灵魂 发表于 2015-2-5 19:52:12

这也就是最近几年来随着各种新的后台技术的诞生,CGI应用在Internet上越来越少的原因。CGI方式不适合大访问量的应用。

分手快乐 发表于 2015-2-13 06:52:22

我的意思是.net好用,从功能上来说比JAVA强还是很明显的。

兰色精灵 发表于 2015-3-3 17:25:27

在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。这时,由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数。

仓酷云 发表于 2015-3-11 12:12:43

ASP.NET可以无缝地与WYSIWYGHTML编辑器和其他编程工具(包括MicrosoftVisualStudio.NET)一起工作。这不仅使得Web开发更加方便,而且还能提供这些工具必须提供的所有优点,包括开发人员可以用来将服务器控件拖放到Web页的GUI和完全集成的调试支持。微软为ASP.net设计了这样一些策略:易于写出结构清晰的代码、代码易于重用和共享、可用编译类语言编写等等,目的是让程序员更容易开发出Web应用,满足计算向Web转移的战略需要。

乐观 发表于 2015-3-25 18:04:29

ASP在执行的时候,是由IIS调用程序引擎,解释执行嵌在HTML中的ASP代码,最终将结果和原来的HTML一同送往客户端。
页: [1]
查看完整版本: ASP.NET网站制作之C#收集使用编程基本实习题与谜底(二)...