⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1999-ۤ-+

📁 这是软件水平考试 1996-1999年考试试题。
💻
字号:
<html>
<!-- #BeginTemplate "/Templates/temp1.dwt" --> 
<head>
<!-- #BeginEditable "doctitle" --> 
<title>全国软件水平考试</title>
<!-- #EndEditable --> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="775" border="0" cellspacing="0" cellpadding="0" align="center">
  <tr> 
    <td><!-- #BeginLibraryItem "/Library/top.lbi" -->
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr> 
    <td width="18%"><img src="images/logo.gif" width="276" height="70"></td>
    <td width="82%" align="center"><a href="http://ad.adfee.com/Link/Link5b.jsp?i=fortuneage&o=0012001080100253&a=0012001071900001" target=_blank><img src="http://www.goeway.com/adbanner/book2.gif" width=468 height=60 border="0" alt="" ></a></td>
  </tr>
</table>
<table cellspacing=0 cellpadding=0 width=100% border=0>
  <tbody> 
  <tr bgcolor=#ffffff> 
    <td height=1><img height=1 src="Library/%B9%FA%BC%CA%C9%CC%CE%F1%D7%A8%D2%B5%CD%F8.files/dian1.gif" width=1></td>
  </tr>
  <tr bgcolor=#ffb457> 
    <td class=zt1 bgcolor="#336699" align="right">&nbsp;&nbsp; <a 
      href="index.php"><font color="#FFFFFF">主页</font></a><font 
      color=#ffffff>|&nbsp;</font><a 
      href="news/news.php"><font color="#FFFFFF">最新消息</font></a><font 
      color=#ffffff>&nbsp;|&nbsp;</font><a 
      href="policy/policy.php"><font color="#FFFFFF">政策说明</font></a><font 
      color=#ffffff>&nbsp;|&nbsp;</font><a 
      href="test/test.php"><font color="#FFFFFF">每日一题</font></a><font 
      color=#ffffff>|&nbsp;</font><a 
      href="paper/paper.php"><font color="#FFFFFF">历届试题</font></a><font 
      color=#ffffff>&nbsp;|&nbsp;</font><a 
      href="cmbook/cmbook.php"><font color="#FFFFFF">推荐书目</font></a><font 
      color=#ffffff>&nbsp;|&nbsp;</font><a 
      href="download/download.php"><font color="#FFFFFF">下载专区</font></a><font 
      color=#ffffff>&nbsp;|&nbsp;</font><a 
      href="vbbs/index.php"><font color="#FFFFFF">考网论坛</font></a><font 
      color=#ffffff>&nbsp;|&nbsp;</font><a 
      href="ebook/ebook.php"><font color="#FFFFFF">网上教程</font></a><font 
      color=#ffffff>&nbsp;|&nbsp;</font><a 
      href="#"><font color="#FFFFFF">网站导航</font></a><font 
      color=#ffffff>&nbsp;</font></td>
  </tr>
  </tbody> 
</table>
<!-- #EndLibraryItem --></td>
  </tr>
  <tr> 
    <td><!-- #BeginEditable "location" --> 
            现在位置:首页 &gt; 
      历届试题      <!-- #EndEditable --></td>
  </tr>
  <tr> 
    <td align="center"><!-- #BeginEditable "content" -->
      <table width="600" border="0" cellspacing="0" cellpadding="0" >
        <tr> 
          <td height="10" colspan="2"></td>
        </tr>
        <tr> 
          <td colspan="2" height="40"> 
            <div align="center"> 
              <h3> 
                1999年度程序员级 下午试卷              </h3>
            </div>
          </td>
        </tr>
        <tr> 
          <td width="370" height="30"> 
            <div align="right" >( 
              2001-09-30 23:46:25              ) </div>
          </td>
          <td width="230"> 
            <div align="right" >本文浏览次数: 
              1060              次</div>
          </td>
        </tr>
        <tr> 
          <td  colspan="2" class="content"> 
                        一九九九年度程序员级 下午试卷
<br>
<br>试题一
<br>
<br>函数strcpy(char *to,char *from)将字符串from复制到字符串to.
<br>
<br>void strcpy(char *to,char *from)
<br>{while (____(1)____);}
<br>
<br>
<br>函数merge(int a[],int n,int b[],int m,int *c)是将两个从小到大有序数组,a和b复制合并出一个有序整数序列c,其中形参n和m分别是数组a和b的元素个数.
<br>
<br> void merge(int a[],int n,int b[],int m,int *c)
<br>{ int i,j;
<br> for (i=j=0;i  *c++=a[i]  while (____(2)____) *c++=a[i++];
<br>  while (____(3)____) *c++=b[j++];
<br>  }
<br>
<br>
<br>  递归函数sum(int a[],int n)的返回值是数组a[]的前n个元素之和
<br>
<br>int sum(int a[],int n)
<br>{ if (n>0) return ____(4)____ ;
<br>  else ____(5)_____;
<br>}
<br>
<br>试题二
<br>阅读下列函数说明和C代码,将应填入____(n)____处的子句写在答卷的对应栏内.
<br>
<br>  本题中的函数encode()和decode()分别实现对字符串的变换和复原.变换函数encode()顺序考察已知字符串的字符,按以下规则逐组生成新字符串:
<br>  (1)若已知字符串的当前字符不是数字字符,则复制该字符于新字符串中.
<br>  (2)若已知字符串的当前字符是一个数字字符,且它之后没有后继字符,则简单地将它复制到新字符串中
<br>  (3)若已知字符串的当前字符是一个数字字符,并且还有后继字符,设该数字字符的面值为n,则将它的后继字符(包括后继字符是一个数字字符)重复复制n+1次到新字符串中.
<br>  (4)以上述一次变换为一组,在不同组之间另插入一个下划线'_'用于分隔.例如:encode()函数对字符串26a3t2的变换结果为666_a_tttt_2
<br>  复原函数decode()做变换函数encode()的相反的工作.即复制不连续相同的单个字符,而将一组连续相同的字符(不超过10个)变换成一个用于表示重复次数的数字符和一个重复出现的字符,并在复原过程中掠过变换函数为不同组之间添加的一个下划线字符.
<br>  假定调用变换函数encode()时的已知字符串中不含下划线字符.
<br>
<br>int encode(char *instr,char *outstr)
<br>{ char *ip,*op,c;int k,n;
<br> ip=instr; op=outstr;
<br> while (*ip) {
<br>  if (*ip>='0'&&*ip    n=____(1)____;
<br>    c=____(2)____;
<br>    for (k=0;k      *op++=c;
<br>   }else____(3)____;
<br>   *op++='_';
<br>   ip++;
<br>  }
<br>  if (op>outstr) op--;
<br>  ____(4)____;
<br>  return op - outstr;
<br>}
<br>int decode(char *instr,char *outstr)
<br>{ char *ip,*op,c;  int n;
<br>  ip=instr; op=outstr;
<br>  while (*ip) {
<br>   c=*ip; n=0;
<br>   while (*ip==c&&n   if (____(5)_____) *op++='0'+n-1;
<br>   *op++=c;
<br>   if (____(6)____) ip++;
<br> }
<br> *op='\0';
<br> return op - outstr;
<br> }
<br>
<br>试题三
<br>  本程序从正文文件text.ini读入一篇英文短文,统计该短文中不同单词和它的出现次数,并按词典编辑顺序将单词及它的出现次数输出到正文文件word.out中.
<br>  程序用一棵有序二叉树存储这些单词及其出现的次数,一边读入一边建立.然后中序遍历该二叉树,将遍历经过的二叉树上结点的内容输出.
<br>  程序中的外部函数
<br>  int getword(FILE *fpt,char *word)
<br>从与fpt所对应的文件中读取单词置入word,并返回1;若读单词遇文件尾,已无单词可读时,则返回0.
<br>
<br>  #include 
<br>  #include 
<br>  #include 
<br>  #include 
<br>  #define INF "TEXT.IN"
<br>  #define OUTF "WORD.OUT"
<br>  typedef struct treenode { char *word;
<br>               int count;
<br>               struct treenode *left, *right;
<br>               }BNODE;
<br>int getword(FILE *fpt,char *word);
<br>void binary_tree(BNODE **t,char *word)
<br>{ BNODE *ptr, *p; int cmpres;
<br> p=NULL; ____(1)____;
<br> while (ptr) {/*寻找插入位置*/
<br>   cmpres=strcmp(word,____(2)____); /* 保存当前比较结果 */
<br>   if (!cmpres) { ____(3)____; return;}
<br>   else { ____(4)____;
<br>      ptr=cmpres>0 ? ptr->right:ptr->left;
<br>      }
<br>}
<br>ptr=(BNODE *)malloc(sizeof(BNODE));
<br>ptr->right=ptr->left=NULL;
<br>ptr->word=(char *)malloc(strlen(word)+1);
<br>strcpy(ptr->word,word); ptr->count=1;
<br>if (p==NULL) ____(5)_____
<br>else if (cmpres >0) p->right=ptr;
<br>    else p->left=ptr;
<br>}
<br>
<br>void midorder(FILE *fpt, BNODE *t)
<br>{ if ( ____(6)____) return;
<br> midorder(fpt,t->left);
<br> fprintf(fpt,"%s  %d\n",t->word,t->count);
<br> midorder(fpt,t->right);
<br>}
<br>
<br>void main()
<br>{ FILE *fpt; char word[40];
<br> BNODE *root=NULL;
<br> if ((fpt=fopen(INF,"r"))==NULL) {
<br>   printf("Can't open file %s\n",INF);
<br>   return;
<br>}
<br>while (getword(fpt,word)==1)
<br>   binary_tree(____(7)____);
<br> fclose(fpt);
<br> fpt=fopen(OUTF,"w");
<br> midorder(fpt,root);
<br> fclose(fpt);
<br>}
<br>
<br>试题4
<br>  本程序在3X3方格中填入数字1~N(N>=10)内的某9个互不相同的整数,使所有相邻两个方格内的两个整数之和为质数.试求出满足这个要求的所有填法.3X3方格中的每个方格序号如图4所示.
<br>  程序采用试探法,即从序号为0的方格开始,为当前方格寻找一个合理的可填整数,并在当前位置正确填入后,为下一方格寻找可填入的合理整数.如不能为当前方格寻找一个合理的可填整数,就要后退到前一方格,调整前一方格的填入整数.当直至序号为8的方格也填入合理的整数后,就找到了一个解。为了检查当前方格的填入整数的合理性,程序引入二维数组CheckMatrix,存放需要进行合理性检查的相邻方格的序号。
<br>
<br>  #include 
<br>  #define N 12
<br>  int pos;
<br>  int a[9]; /*用于存储方格所填入的整数 */
<br>  checkMatrix[][3]={{-1},{0,-1},{1,-1},
<br>            {0,-1},{1,3,-1},{2,4,-1},
<br>            {3,-1},{4,6,-1},{5,7,-1}};
<br>void write(int a[])
<br>{ int i,j;
<br> for (i=0;i  for (j=0;j  printf("\n");
<br>  }
<br>}
<br>int isPrime(int m)
<br>{ int i;
<br> if (m==2) return 1;
<br> if (m==1 || m%2==0) return 0;
<br> for (i=3; i*i   if (m%i==0) return 0;
<br>   i+=2;
<br> }
<br> return 1;
<br>}
<br>int selectNum(int start)
<br>{ int j;
<br> for (j=start;j  if (b[j]) return j;
<br> return 0;
<br>}
<br>int check() /*检查填入pos位置的整数是否合理*/
<br>{int i,j;
<br> for (i=0; (j=____(1)____) >=0; i++)
<br>    if (!isPrime(a[pos]+a[j])) ____(2)____;
<br>   (3)  ;
<br>}
<br>extend() /*为下一方格找一个尚未使用过的整数*/
<br>{ a[____(4)____]=selectNum(1); b[a[pos]]=0; }
<br>void change() /*为当前方格找下一个尚未使用过的整数*/
<br>{ a[____(4)____]=selectNum(1);b[a[pos]]=0;}
<br>void change() /*为当前方格找下一个尚未使用过的整数。(找不到回溯)*/
<br>{ int j;
<br> while (pos>=0 && (j=selectNum(____(5)____))==0) _____(6)_____;
<br> if (pos b[a[pos]]=1; a[pos]=j; b[j]=0;
<br>}
<br>find()
<br>{int ok=1;
<br> pos=0;a[pos]=1; b[a[pos]]=0;
<br> do {
<br>   if (ok)
<br>    if (____(7)____) {
<br>      write(a);
<br>      change();
<br>    }
<br>    else extend();
<br>   else change();
<br>   ok=check(pos);
<br>  }while (pos>=0);
<br>}
<br>main()
<br>{ int i;
<br> for (i=1;i find();
<br>} 
<br>           </td>
        </tr>
        <tr> 
          <td  colspan="2">&nbsp; </td>
        </tr>
      </table>
      <!-- #EndEditable --></td>
  </tr>
  <tr> 
    <td><!-- #BeginLibraryItem "/Library/foot.lbi" -->
<table align=center border=0 cellpadding=0 cellspacing=0 width=100% vspace="0" 
hspace="0">
  <tbody> 
  <tr> 
    <td height=10> 
      <div align=center>
        <hr size=1>
      </div>
    </td>
  </tr>
  <tr>
    <td height=11 align="center">如有任何问题,请<a href="link.htm" target="_blank"><font color="#3333CC">联系我们</font></a></td>
  </tr>
  <tr> 
    <td height=22> 
      <div align="center"><a href="http://www.kaowang.com/">考网版权所有 </a> Copyight(c) 
        2000 kaowang.com. All Rights Reserved.</div>
    </td>
  </tr>
  </tbody> 
</table>
<!-- #EndLibraryItem --></td>
  </tr>
</table>
</body>
<!-- #EndTemplate -->
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -