U128803.阅读程序

通过率:0%

题目描述

#include  <ctype.h>
#include  <stdio.h>
void expand(char s1[], char s2[])
{
    int i, j, a, b, c;
    j = 0;
    for (i = 0; (c = s1[i]) != '\0'; i++)
        if(c == '-')
        {
            a = s1[i - 1]; b = s1[i + 1];
            if (isalpha(a) && isalpha(b) || isdigit(a) && isdigit(b))
            {
                j--;
                do
                    s2[j++] = a++;
                while (tolower(a) < tolower(s1[i + 1]));
            }
            else s2[j++] = c;
        } else s2[j++] = c;
    s2[j] = '\0';
}
int main()
{
    char s1[100], s2[300];
    gets(s1);
    expand(s1, s2);
    printf("%s\n", s2);
}

规定:输入的字符串只包含大小写字母,数字和“-”,且保证“-”不会出现在首位和末位。

(1)

1.若输入的字符串不包含“-”号,则输出的字符串和输入相同。()(2分)

  • 正确

  • 错误

(2)

若输入的字符串包含“-”号,输出的字符串长度可能与输入的相同。()(2分)

  • 正确

  • 错误

(3)

若存在一个字符,只存在于s2字符串中而不存在于s1字符串中,则s1字符串中一 定存在“-”号。( )(2分)

  • 正确

  • 错误

(4)

若存在一个字符,只存在于s2字符串中而不存在于s1字符串中,则该字符一定不可能是大写字母。( )(2分)

  • 正确

  • 错误

(5)

若输入6个字符,最多输出( )个字符。(3分)

  • 6

  • 20

  • 52

  • 54

(6)

若输出500个字符,至少输入()个字符。(3分)

  • 20

  • 59

  • 60

  • 500

暂无数据

提交答案之后,这里将显示提交结果~

首页