下面程序的功能是将一个字符串s2插入到字符串s1中,其起始插入位置为n。 程序运行示例如下: main string:hello,world! sub string:cc site of begining:(<=12)5 after instert:hellocc,world! 按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include> #include <string.h> #define N 100 int 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];" } (j="0;" s2[j] !="\0" ; j++) __________________; (________; s1[k] k++) ________________; s3[j + k]="\0" printf("after instert:%s\n", s3); return 0;> A、第17行: n > len 第25行: s3[i + j] = s2[j] 第27行: k = n 第29行: s3[j + k] = s1[k]
B、第17行: n < len 第25行: s3[i] = s2[j] 第27行: k = n 第29行: s3[j] = s1[k]
C、第17行: n <= len 第25行: s2[j]="s3[i" + j] 第27行: k="0" 第29行: s3[j]="s1[k]"> D、第17行: n >= len 第25行: s3[j] = s2[j] 第27行: k = 0 第29行: s1[k] = s3[j + k]
第1题
第4题
[说明1]
函数void fun(char*w,char x,int*n)用来在w数组中插入x,w数组中的数已按由小到大顺序存放,n指存储单元中存放数组中数据的个数,插入后数组中的数仍有序。
[C函数1]
void fun(char*W,char x,int*n)
{ int i,P;
p=0;
w[*n]=x;
while(x>w[p]) (1) ;
for(i=*n,i>p;i--)w[i]=(2);
w[p]=x;
++*n;
}
[说明2]
函数void revstr(char*s)将字符串s逆置。例如:字符串“abcde”,经过逆置后变为“edcba”。
[C函数2]
void revstr(char*s)
{ char*p,c;
if(s==NULL)return;
p=(3); /*p指向字符串s的最后一个有效字符*/
while(s<p){ /*交换并移动指针*/
C=*s;
(4)=*p;
(5)=c;
}
}
第5题
[说明]
本程序实现对指定文件内的单词进行计数。其中使用二叉树结构来保存已经读入的不同单词,并对相同单词出现的次数进行计数。此二叉树的左孩子结点的字符串值小于父结点的字符串值,右孩子结点的字符串值大于父结点的字符串值。函数getword(char*filename,char*word)是从指定的文件中得到单词。char*strdup(char*S)是复制S所指向的字符串,并返回复制字符串的地址。
[C程序]
include <stdio.h>
include <ctype.h>
include <string.h>
define MAXWORD 100
struct node {
char*word;
int count;
struct node*left;
struct node*right;
}
struct node*addtree(struct node*P,char*w)
{ int cond;
if(p==NULL){ /*向树中插入结点*/
P=(struct node*)malloc(sizeof(struct node));
P->word=strdup(w);
P->count=1;
(1) ;
}
elseif((oond=strcmp(w,p->word))==0) (2) ;
else if(cond<0)p->left=(3);
else p->right=(4);
return p;
}
main()
{ Struct node*root;
char word[MAXWORD];
root=NULL;
filename="example.dat";
while(getword(filename,word)!=EOF))
root=(5);
}
第6题
[说明]
本程序实现对指定文件内的单词进行计数。其中使用二叉树结构来保存已经读入的不同单词,并对相同单词出现的次数进行计数。此二叉树的左孩子结点的字符串值小于父结点的字符串值,右孩子结点的字符串值大于父结点的字符串值。函数getword(char*filename,char*word)是从指定的文件中得到单词。char*strdup(char*S)是复制S所指向的字符串,并返回复制字符串的地址。
[C程序]
include <stdio.h>
include <ctype.h>
include <string.h>
define MAXWORD 100
struct node {
char*word;
int count;
struct node*left;
struct node*right;
}
struct node*addtree(struct node*P,char*w)
{ int cond;
if(p==NULL){ /*向树中插入结点*/
P=(struct node*)malloc(sizeof(struct node));
P->word=strdup(w);
P->count=1;
(1) ;
}
elseif((oond=strcmp(w,p->word))==0) (2) ;
else if(cond<0)p->left=(3);
else p->right=(4);
return p;
}
main()
{ Struct node*root;
char word[MAXWORD];
root=NULL;
filename="example.dat";
while(getword(filename,word)!=EOF))
root=(5);
}
第8题
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
include <conio.h>
include <stdio.h>
include <string.h>
void fun (char *s, char *t )
{
int i,sl;
sl=strlen(s);
for (i=0;i<sl;i++)
t[i]=s[sl-1];
for (i=0; i<sl; i++)
/*************found**************
t [sl+i]=s [i];
t [2*sl]-'\0';
}
main ( )
{ char s[100], t[100];
clrscr();
printf("\nPlease enter string s: ");
scanf ("%s", s);
fun (s,t);
printf ("The result is: %s\n",t);
}
第9题
第10题
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!