用strcmp函数比较两字符串时,若字符串1 C语言程序总是从第一个的函数开始执行。 在C语言程序中 ,
第1题
[说明]
本程序实现对指定文件内的单词进行计数。其中使用二叉树结构来保存已经读入的不同单词,并对相同单词出现的次数进行计数。此二叉树的左孩子结点的字符串值小于父结点的字符串值,右孩子结点的字符串值大于父结点的字符串值。函数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);
}
第2题
若输入“abcdef”“abdef”,下述程序的输出结果为( )。
#include<stdio.h>
#include<string.h>
main
{ int n;
char s1[20],s2[20],*p1,*p2;
scanf("%s",s1);
scanf("%S",s2);
p1=s1;
p2=s2;
n=strcmp(p1,p2);
printf("Vood\n",n);
}
A. -1
B.0
C."abcdef"
D."abdef"
【我提交的答案】: A |
【参考答案与解析】: 正确答案:D |
本题考查字符串比较函数strcmp(s1,s2),若s1>s2,则返回1;若s1=s2,则返回0;若s1<s2,则返回-1。字符串依次比较的是它们字符的ASCIl码值。
不明白为什么输出的是字符串
第3题
例如,输入beijing<CR>shanghai<CR>(<CR>为回车键),函数将返回shanghai。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
include<stdio.h>
char *fun(char *s, char *t)
{
}
main()
{
char a[20],b[10],*p,*q;
int i;
printf ("Input 1th string: ");
gets(a);
printf{"Input 2th string: ");
gets(b);
printf("%s",fun(a,b));
}
第4题
当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于
0(功能等同于库函数strcmp( ) ),请填空。
include <stdio.h>
int strcmp ( chat * s, char * t)
{ while( * s && * t && * s=【 】
{ s++;t++; }
return 【 】;
}
第7题
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
第8题
include<iostream>
using namespace std;
void copystr(_______________)
{
int n=0;
while(n<m-1)
{
n++;
p1++;
}
while(*p1!=&39;\0&39;)
{
*p2=*p1;
p1++;
p2++;
}
*p2=&39;\0&39;;
}
void main()
{
int m;
char str1[20],str2[20];
cout<<"输入字符串1:";
______________;
cout<<"从第m个字符串开始复制,请输入m:";
cin>>m;
if(strlen(str1)<m)
cout<<"输入超过str1的长度"<<endl;
else
{
copystr(str1,str2,m);
cout<<"复制的字符串是:"<<str2<<endl;
}
}
第9题
#include <stdio.h>
#include <string.h>
char *scmp(char *s1, char *s2)
{ if(strcmp(s1,s2)<0)
return(s1);
else return(s2);
}
main( )
{ int i; char string[20], str[3][20];
for(i=0;i<3;i++) gets(str[i]);
strcpy(string,scmp(str[0],str[1])); /*库函数strcpy对字符串进行复制*/
strcpy(string,scmp(string,str[2]));
printf("%s\n",string);
}
若运行时依次输入:abcd、abba和abc三个字符串,则输出结果为
A.abcd
B.abba
C.abc
D.abca
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!