您的位置: 首页 计算机类> 水平考试> 复习资料> 软件设计师
计算机软件水平考试软件设计师复习资料 全国计算机水平考试复习资料
公务员考试辅导课程

软件设计师试题疑难解答(2):选择排序

发布时间:06-20

来 源:

页 数:1页

上一篇:软件设计师UML知识点:第二章Hello-World

下一篇:


问题1
本程序从键盘输入N(0<N<100)个整数,计算并输出其中出现次数最多且数值最大的元素及其出现的次数;
    # include<stdio.h>
    # define N 100
    void main()   
 {     int a[N],n,i,j,ind,c1,c2;
      do{
     printf(“输入n(0<n<100);n”);
    scanf(“%d”,&n);
    }while(n<=0|| n>99 );  空1
    printf(“输入数组元素:n”);
    for(i=0;i<n;i++)
    scanf(“%d”,&a[i]);
    for(c2=I=0;I<n;I++)
    {
     for(c1=1,j=I+1;j<n;j++)
       if(a[j]==a[I]) c1=c1+1;  空2
    if (c1>c2 空三||c1==c2&&a[I]>a[ind]
    {
      c2==c1; ind=I;空四
    }
    }
    printf(“其中%d出现%d次n”,a[ind], c2)空五;
    }
    在这道题目中我认为C1,为数组元素下标,用来追踪数组元素;C2为数组元素出现的次数;所以空2中C1加1;那空三如何解释呢??a[ind]为原来找到的最大数,所以ind=I;既然要打印出最大数据出现的次数,那为什么空5为C2,不是C1呢???
    解答:
      题目中C1是用来计算元素的出现次数的,如果出现了相同的则C1+1,直到最后一个元素。那么C2就是用来存储出现次数最多的元素出现的次数。所以空三的解释就是用C2来记录C1的最大值;
    a[ind]为原来找到的最大数,所以ind=I;,也正因为如此,最后打印出最大数据出现的次数是C2;   

    问题2
关于选择排序:下面的选择排序的算法:
    void ss_sort(int e[], int n)
    {   int i, j, k, t;
           for(i=0; i< n-1; i++) {
                  for(k=i, j=i+1; j<n; j++)
                         if(e[k]>e[j]) k=j;
                  if(k!=i) {
                         t=e[i]; e[i]=e[k]; e[k]=t;
                  }
           }
    }
    我在作题和理解算法的时候总是忘记了k=j;我觉得这好象没有意义,那去掉为什么不可以,能帮我解释k=j的含义吗??
    解答:
    首先这个语句是不能去掉的,因为所有排序的判断都需要它。
    if(e[k]>e[j]) k=j;的意思是如果有一个元素比e[k]小,那么就要把K的值更改为较小元素的下标,也就是j,更改过后就要判断
    if(k!=i)是否成立,如果K的值变化就要做元素的顺序调整,否则就不变,所以针对这个算法,建议你看一下专门的数据结构的排序算法,弄清楚原理后再理解;
     
    3.如何调试ASP页面?

  答:当ASP页面在运行出错时,虽然浏览器会报告一些简单的错误信息,但信息太简约,一般仅提示出现HTTP 500号错误,即服务器内部错误。为此,在调试时,可在IIS管理器中打开服务器端的ASP脚本调试功能,其打开方法为:
打开IIS管理器主目录配置应用程序调试,然后选中启用ASP服务器端脚本调试。
    4.ASP、PHP和JSP有什么区别?
  答:这三个都是用来开发动态网页的。彼此间的差异主要在于所使用的编程脚本不同,运行速度不同。ASP一般采用VBScript进行服务器端编程;PHP使用的是自身的脚本语言,很类似于C语言的语法,优点运行速度比ASP略快,支持跨平台运行;JSP的编程采用的是Java编程语言,运行速度很快,效率较快,支持跨平台运行。




Google
 

     

考试信息

热点

课程

更新

©2005-2006 100ksw.com 版权所有 皖ICP备06013378号