尖括号<>会被转成HTML标记,因此字符串将变长
没有变化
在浏览器上打印该字符串时,尖括号是可见的
在浏览器上打印该字符串时,尖括号及其内容被识别为HTML标签,因此不可见。
第1题:
A.s.append(“x”);
B.s.concat(“y”);
C.s.substring(3);
D.以上语句都不会
第2题:
A.求字符串的长度
B. 比较两个字符串的大小
C. 将字符串s复制到字符串t中
D. 将字符串s续接到字符串t中
第3题:
有以下函数
int fun(char *s)
{ char *t=s;
while(*t++);
return(t-s);
}
该函数的功能是
A) 比较两个字符 串 的大小
B) 计算 s 所指字符串占用内存字节的个数
C) 计算 s 所指字符串的长度
D) 将 s 所指字符串复制到字符串 t 中
第4题:
下面函数的功能是()sss(s,t)char*s,*t;{ while((*s)&&(*t)&&(*t++==*s++));return(*s- * t); }
A.求字符串的长度
B.比较两个字符串的大小
C.将字符串s复制到字符串t中
D.将字符串s接续到字符串t中
第5题:
有以下函数
int aaa(char *s)
{ char *t=s;
while(*t++);
t--;
return(t-s);
}
以下关于aaa函数的功能的叙述正确的是
A.求字符串s的长度
B.比较两个串的大小
C.将串s复制到串t
D.求字符串s所占字节数
第6题:
●试题四
阅读下列程序说明和C程序,将应填入(n)处的字句写在答卷纸的对应栏内。
【程序说明】
该程序定义了两个子函数strsort和strmerge。它们分别实现了将一个字符串按字母顺序排序和将两个字符串合并排序,并删去相同字符。在主函数里,先输入两个字符串s1和s2,然后调用strsort函数对它们分别排序,然后调用strmerge函数将s1和s2合并,将合并后的字符串赋给字符串s3,最后输出字符串s3。
【程序】
#include<stdio.h>
void strmerge(char*a,char*b,char*c)//将字符串a,b合并到字符串c中
{
char t,*w;
w=c;
while( (1) )
{
//找到字符串a,b当前字符中较小的字符
if(*a<*b)
{
t=*a;
(2) ;
}
else if(*a>*b)
{
t=*b;
(3) ;
}
else//字符串a,b当前字符相等
{
t=*a;
a++;
b++;
}
if( (4) )//开始,可直接赋值
*w=t;
else if(t!=*w)
//如果a,b中较小的当前字符与c中当前字符不相等,才赋值 (5) ;
}
if(*a!=\′\0′)//如果字符串a还没有结束,则将a的剩余部分赋给c
while(*a!=′\0′)
if(*a!=*w)
{
*(++w)=*a;
a++;
}
else
(6) ;
if(*6!=′\0′)//如果字符串b还没有结束,则将b的剩余部分赋给c
while(*b!=′\0′)
if(*b!=*w)
{
*(++w)=*b;
b++;
}
else
b++;
(7) ;
}
void strsort(char*s)//将字符串S中的字符排序
{
int i,j,n;
char t,*w;
W=S;
for(n=0;*w!=′\0′;n++)//得到字符串长度n
w++;
for(i=0;i<n-1;i++)//对字符串s进行排序,按字母先后顺序
for(j=i+1;j<n;j++)
if( (8) )
{
t=s[i];s[i]=s[j]; (9) ;
}
}
void main()
{
char s1[100],s2[100],s3[100];printf("\nPlease,input the first string:");
scanf("%s",s1);
printf("\nPlease input the second string:");
scanf("%s",s2);
strsort(s1);//将字符串s1排序
strsort(s2);//将字符串s2排序
printf("%s\n",s1);
printf("%s\n",s2);
s3[0]=′\0′;//字符串s3的第一个字符先置′\0′结束标志
(10) //将s1和s2合并,按照字母顺序排列,
//且要删去相同字符,存入s3中
printf("%s",s3);
}
●试题四
【答案】(1)(*a!=′\0′)&&(*b!=′\0′)(2)a++
(3)b++(4)*w==′\0′(5)*(++w)=t(6)a++
(7)*(++w)=′\0′(8)s[i]>s[j] (9)s[j]=t(10)strmerge(s1,s2,s3)
【解析】根据题意,对字符串的处理分为三步:第一步是从键盘上输入两个字符串;第二步是将两个字符串分别排序;第三步是将字符串合并;第四步是显示处理结果。
第一步和第四步容易实现,关键是第二步和第三步的处理,下面分别加以说明。
字符串排序是指将一个字符串中各个字符按照ASCⅡ码值的大小排序。例如,字符串"Beijing"由小到大的排序结果应该是:"Bejiign"。排序算法很多,第二个例子,我们就要介绍快速排序算法。在这里使用简单的冒泡排序算法:即将字符串中的每一个字符一个个进行比较,找出最小的字符,然后再在剩下的字符中找最小的字符。例如,字符"Beijing"的排序过程如下:
第一次将字符"Beijing"中的每一个字符:′B′、′e′、′i′、′j′、′i′、′n′、′g′进行比较,找到最小的字符′B′。
第二次在剩下的字符′e′、′i′、′j′、′i′、′n′、′g′中,找到最小的字符′e′。
……
第三次在剩下的字符′j′、′i′、′n′、′g′中,找到最小的字符′j′。
第三步是合并字符串,合并后的字符串仍然由小到大排序。由于待合并的两个字符串已经排好序。假定两个排好序的字符串分别为A和B,合并后的字符串为C,要使待合并后的字符串仍然由小到大排序,可采取下述步骤:
1.从前往后取A中的字符,并按从前往后的顺序与B中的字符比较,若A中的字符较小,则将该字符存入C,并移到A的下一个字符,继续与B中的字符比较。
2.若A中的字符较大,则将B中的字符存入C,并移到B的下一个字符,继续与A中的字符比较。
3.若A与B中的字符相等,则将A或B中的字符存入C,并将A和B均移到下一个字符。
4.若A或B字符串到达末尾,则将B或A的剩余部分加到字符串C中。
需要注意的是:A、B和C三个字符串均可以用字符数组来表示,C数组的长度不能小于A、B两数组的长度之和。另外,判别字符串是否结尾的方法是:从A或B中取出的字符是否为′\0′,所有字符串都是以′\0′结尾的。
第7题:
以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。例如,输入字符串:abc123edf456gh,执行程序后输出:123456。请填空。#include <stdio.h>#include <ctype.h>main(){ char s[80],d[80]; int i,j; gets(s); for(i=j=0;s[i]!=’\0’;i++) if() {d[j]=s[i];j++} d[j]=’\0’; puts(d);}
第8题:
有以下函数
int aaa(char *s)
{ char *t=s;
while(*t++);
t--;
return(t-s);
}
以下关于 aaa 函数的功能叙述正确的是
A) 求字符串s 的长度
B) 比较两个串的大小
C) 将串s 复制到串t
D) 求字符串s 所占字节数
第9题:
有以下函数 int fun(char *s) { char *t=s; while(*t++); return(t-s); } 该函数的功能是
A.比较两个字符串的大小
B.计算s所指字符串占用内存字节的个数
C.计算s所指字符串的长度
D.将s所指字符串复制到字符串t中
第10题: