阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。 【程序2.1说明】 已知一个排好序的数组,现输入一个数,要求按原来的顺序规律,将它插入到数组中。 【程序2.1】 #include <stdioh> #defin

admin2012-12-10  24

问题 阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。
【程序2.1说明】
   已知一个排好序的数组,现输入一个数,要求按原来的顺序规律,将它插入到数组中。
   【程序2.1】
   #include <stdioh>
   #define N 100
   void main()
   {
       float a[N+l],x;
       int i,p;
       printf("输入已经排好序的数列: ");
       for(i=0; i<N; i++)
             scanf(%f",&a);
       printf("输入要插入的数:");
       scanf("%f",&x);
       for(i=0,p=N; i<N; i++)
             if(x<a)
             {
                   (1)  
                  break;
             }
      for(i=N-1; i>=p; i--)
             (2)  
       (3)  
      for(i=0; i<=N; i++)
            prinff("%f\t",a);
   }
   【程序2.2说明】
   本程序用变量count统计文件中字符的个数。
   【程序2.2】
   #include <stdio.h>
   #include <stdlib.h>
   void main()
   {
       FILE *fp;
       long count=0;
       if((fp=fopen("letter.txt","r"))==NULL)
       {
           printf("can not open file\n");
           exit(0);
       }
       while(!feof(fp))
       {
             (4)  
           count++;
       }
       printf("count=%d\n",count);
         (5)  
   }

选项

答案(1)p=i (2)a[i+1]=a[i]; (3)a[p]=x; (4)fgetc(fp); (5)fclose(fp);

解析 本题考查在C语言中实现对数组的插入和对文件中字符个数的统计。
   我们先来看程序2.1。题目要求在程序2.1中实现在排好序的数组中插入一个数,但不能改变数组中数字排序的规律。由于数组是已经排好序的,它有可能是按不递减的方法排序,也有可能是按不递增的方法排序。在插入时,从数组中第一个数开始,逐个进行比较,直到找到比其大或相等的数,在其前面进行插入,在插入前应该先将数组中的元素逐个后移。
   下面我们来看代码。代码中有三个循环,第(1)空在第一个循环体下面的条件判断语句里,条件判断语句是判断要插入的数J与数组中元素的大小,如果数x小于数组中的元素,就执行第(1)空的语句。从上面的分析,再结合第二个循环语句的条件,我们可以知道,此空的作用是记录数要插入的位置,并把这个结果存放在变量p中,所以,答案为p=i。
   第(2)空所在的位置是第二个循环体下面,根据分析,要完成的任务应该是将数组中要插入位置后的元素逐个往后移动。所以,此空的答案为a[i+1]=a
   在完成了上述两空之后,再结合整个程序来看,很明显还有一个功能没有完成,那就是插入数x,第(3)空就是用于完成这个任务的。由于在代码的前面已经记录下了要插入的位置,所以,此空答案为a[p]=x。
   在程序2.2中,题目要求完成的任务是用变量count统计文件中字符的个数,要实现对文件中字符个数的统计,首先需要我们判断出哪些是字符,这就涉及C语言中对文件中字符的判定。此外,还需要我们掌握对文件的基本操作。
   下面,我们来看程序2.2的代码。首先用一个条件判断语句来打开一个文件,如果打开成功,则执行下面的while循环语句,循环体的功能是对文件中的内容逐个判断,如果是字符,则统计变量count加1,因此,第(4)空的功能就是要找出文件中的所有字符。这里没有条件判断语句来判段是否是字符,需要用到C语言中对文件处理的一个函数fgetc(),其作用是可以取出文件中所有的字符,因此,此空答案为fgetc(fp)。
   第(5)空在代码的最后面,如果我们对文件操作很熟悉的话,不难发现文件在打开后还没有关闭,此空要实现的功能是关闭文件,因此,此空答案为fclose(fp)。
转载请注明原文地址:https://kaotiyun.com/show/EnjZ777K
0

随机试题
最新回复(0)