请补充函数fun(),该函数的功能是:把字符下标为非素数的字符从字符串sb中删除,把字符下标为素数的字符重新保存在字符串e口中。字符串sb从键盘输入,其长度作为参数传入函数fun()。 例如,输入“abcdefghijkl”,输出“cdfhl”。

admin2013-06-12  31

问题 请补充函数fun(),该函数的功能是:把字符下标为非素数的字符从字符串sb中删除,把字符下标为素数的字符重新保存在字符串e口中。字符串sb从键盘输入,其长度作为参数传入函数fun()。
   例如,输入“abcdefghijkl”,输出“cdfhl”。
   注意:部分源程序给出如下。
   请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。
   试题程序:
   #include <stdio.h>
   #define N 80
   void fun(char s[],int n)
   {
        int i, j, k, flag;
           【  】;
        for(i=0; i<n; i++)
        {
            if (i>1)
              s [k++] =s ;
            flag=I;
            for(【  】; j<i&&flag; j++)
              if (i%j==0)
              {
                 flag=0;
               【  】
               }
        }
        s [k]=’\0’;
   }
   main()
   {
        int i=0, strlen=0;
        char str[N];
        clrscr ();
        printf("\n Input a string:\n");
        gets (str);
        while (str !=’\0’)
        {
           strlen++;
           i++;
        }
        fun (str, strlen);
        printf("\n*** display string ***\n");
        puts (str);
   }

选项

答案k=0 j=2 k--

解析 第一空:变量k声明时没有初始化,所以要在使用前初始化为0。第二空:如果一个数能被除了1和其自身之外的数整除,即余数为0,则这个数不是素数。所以除数j从2开始取数。第三空:如果当前字符的下标为非素数,则应将此字符删除,所以变量k减1,使下一个字符覆盖它,达到删除的目的。
转载请注明原文地址:https://kaotiyun.com/show/ogJp777K
0

最新回复(0)