• 请补充函数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 ='\0';
    }
    main()
    {
    int i=0, strlen=0;
    char str;
    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=0j=2k--k=0j=2k-- 解析:第一空:变量k声明时没有初始化,所以要在使用前初始化为0。第二空:如果一个数能被除了1和其自身之外的数整除,即余数为0,则这个数不是素数。所以除数j从2开始取数。第三空:如果当前字符的下标为非素数,则应将此字符删除,所以变量k减1,使下一个字符覆盖它,达到删除的目的。
  • 2021年07月15日 22时30分来自  问答库 >> 计算机类
  • 评论 0
  • 手机玩微博

    手机版 手机端
    Powered by 日新微博 © 2018 - 2020 日新网