题目内容

下面程序的功能是将一个字符串s2插入到字符串s1中,其起始插入位置为n。程序运行示例如下:main string:hello,world!sub string:ccsite of begining:(<=12)5After instert:hellocc,world!按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include #include #define N 100int main(){ int n, i, j, k, len; char s1[N], s2[N], s3[2 * N]; printf("main string:"); gets(s1); printf("sub string:"); gets(s2); len = strlen(s1); do {printf("site of begining:(<=%d)", len);scanf("%d", &n); }while (__________); for (i = 0; i < n; i++) {s3[i] = s1[i]; } for (j = 0; s2[j] != '\0'; j++) {__________________; } for (________; s1[k] != '\0'; k++) {________________; } s3[j + k] = '\0'; printf("After instert:%s\n", s3); return 0;}

A. 第17行: n < len第25行: s3[i] = s2[j]第27行: k = n第29行: s3[j] = s1[k]
B. 第17行: n <= len第25行: s2[j]=s3[i + j]第27行: k = 0第29行: s3[j] = s1[k]
C. 第17行: n > len第25行: s3[i + j] = s2[j]第27行: k = n第29行: s3[j + k] = s1[k]
D. 第17行: n >= len第25行: s3[j] = s2[j]第27行: k = 0第29行: s1[k] =s3[j + k]

查看答案
更多问题

下面程序的功能是从键盘输入一行字符(最长不超过80字符),用函数编程统计其中单词(以空格作为间隔符的字符串)的个数。基本思路是:当前被检验字符不是空格,而前一被检验字符是空格,则表示有新单词出现。按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。(下面答案中两个单引号''中间都有一个空格)样例1:Input a string:How are you↙Numbers of words = 3样例2:Input a string: How are you↙Numbers of words = 3#include int CountWords(char str[]);int main(){ char str[81]; int num; printf("Input a string:\n"); gets(str); num=CountWords(str); printf("Number of words=%d\n", num); return 0;}int CountWords(char str[]){ int i, num; num = (__________) ? 1 : 0; i=1; while (str[i]!='\0') {if (_______________________){num++;}__________; } return num;}

A. 第17行: str[0] == ' '第21行:str[i]!=' ' || str[i-1] == ' '第25行:i++
B. 第17行:str[0] != ' '第21行:str[i]!=' ' && str[i-1] == ' '第25行:i++
C. 第17行:str[0] != '\0 '第21行:str[i]==' ' && str[i-1] == ' '第25行:i++
D. 第17行:str[0] != ' '第21行:str[i]!=' ' && str[i-1] != ' '第25行:num++

下面程序的功能是实现字符串逆序存放。程序运行结果如下:Input a string:ABCDEFGHI↙Inversed results:IHGFEDCBA按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include #include #define N 80void Inverse(char *pStr);int main(){ char a[N]; printf("Input a string:"); gets(a); Inverse(a); printf("Inversed results:%s\n", a); return 0;}/* 函数功能: 实现将字符数组中的字符串逆序存放 */void Inverse(____________){ int len; char temp; char *pStart; /* 指针变量pStart指向字符串的第一个字符 */ char *pEnd; /* 指针变量pEnd指向字符串的最后一个字符 */ len = strlen(pStr); /* 求出字符串长度 */ for (pStart=pStr,___________; pStart

A. 第16行:char *pStr第23行:pEnd=pStr+len-1pEnd--第26行: *pStart = *pEnd
B. 第16行: char pStr第23行: pEnd=pStr+lenpEnd--第26行: *pStart = *pEnd
C. 第16行: char *pStr第23行: pEnd=pStr+len-1pEnd++第26行: pStart = pEnd
D. 第16行: char pStr第23行: pEnd=pStr+len+1pEnd++第26行: *pStart = *pEnd

下面程序的功能是从键盘输入一行字符(不超过80个),统计其中的英文字符、数字字符、空格和其他字符的个数。例如,输入的一行字符为*****c language.*****输出为English character: 9digit character: 0space: 1other character: 11按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include #include #define STR_LEN 80int main(){ char str[STR_LEN+1]; int len, i, letter = 0, digit = 0, space = 0, others = 0; printf("Please input a string:"); ___________; for (i = 0; __________; i++) {if (___________________________)letter ++; /*统计英文字符 */else if (______________________)digit ++; /*统计数字字符 */else if (str[i] == ' ' )space ++; /*统计空格*/elseothers ++; /*统计其他字符的个数*/ } printf("English character: %d\n", letter); printf("digit character: %d\n", digit); printf("space: %d\n", space); printf("other character: %d\n", others); return 0;}

A. 第9行: gets(str)第10行:str[i] != '\0'第12行:str[i] >= 'a' && str[i] <= 'z' || str[i] >= 'A' && str[i] <= 'Z'第14行:str[i] >= '0' && str[i] <= '9'
B. 第9行: scanf("%s",str)第10行: str[i] != '\0'第12行: 'z'>=str[i] >= 'a' || 'A' <= str[i] <= 'Z'第14行: 9 >= str[i] >= 0
C. 第9行: puts(str)第10行:str[i] != '\n'第12行:'z' >= str[i] >= 'a' || 'A' <= str[i] <= 'Z'第14行:str[i] >= '0' && str[i] <= '9'
D. 第9行: scanf("%s",str)第10行:str[i] != '\n'第12行:str[i] >= 'a' || str[i] <= 'z' && str[i] >= 'A' || str[i] <= 'Z'第14行:str[i] >= 0 && str[i] <= 9

下面程序的功能是在字符串每个字符间插入一个空格。程序的运行结果如下:Input a string:Howareyou↙Insert results:H o w a r e y o u按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include #include #define N 100void Insert(char s[]);int main(){ char str[N]; printf("Input a string:"); gets(str); Insert(str); printf("Insert results:%s\n", str); return 0;}void Insert(char s[]){ char t[N]; int i, j; ____________; for (i=0, j=0; ____________; i++, j++) {________;j++;________; } s[j] = '\0';/* 在字符串s的末尾添加字符串结束标志 */}

A. 第19行:strcpy(t, s)第20行:t[i]!='\0'第22行:s[j] = t[i]第24行:s[j] = ' '
B. 第19行:t=s;第20行:t[i]!='\0'第22行:s[i] = t[j]第24行:s[j] = ' '
C. 第19行:strcpy(t, s)第20行:t[i]='\0'第22行:t[j] = s[i]第24行:s[j] = '\0 '
D. 第19行:strcpy(s, t)第20行:t[i]=='\0'第22行:s[j] = t[i]第24行:s[j] = '0 '

答案查题题库