字符串.docx

上传人:b****5 文档编号:7035191 上传时间:2023-01-16 格式:DOCX 页数:39 大小:79.75KB
下载 相关 举报
字符串.docx_第1页
第1页 / 共39页
字符串.docx_第2页
第2页 / 共39页
字符串.docx_第3页
第3页 / 共39页
字符串.docx_第4页
第4页 / 共39页
字符串.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

字符串.docx

《字符串.docx》由会员分享,可在线阅读,更多相关《字符串.docx(39页珍藏版)》请在冰豆网上搜索。

字符串.docx

字符串

第十部分字符串

一、选择题

(1)若有语句:

char*line[5];,以下叙述中正确的是

A)定义line是一个数组,每个数组元素是一个

基类型为char的指针变量。

B)定义line是一个

指针变量,该变量可以指向一个长度为5的

字符型数组。

C)定义line是一个指针数组,语

句中的*号称为间址运算符。

D)定义line是一个

指向字符型函数的指针

(2)有以下程序

#include

main()

{charp[]={‘a’,‘b’,‘c’},q[10]={‘a’,‘b’,‘c’};

printf(“%d%d\n”,strlen(p),strlen(q));}

以下叙述中正确的是

A)在给p和q数组置初值时,系统会自动添加

字符串结束符,故输出的长度都为3。

B)由于p

数组中没有字符串结束符,长度不能确定;

但q数组中字符串长度为3。

C)由于q数组中

没有字符串结束符,长度不能确定;但p数组

中字符串长度为3。

D)由于p和q数组中都没有

字符串结束符,故长度都不能确定。

(3)有以下程序,其中函数f的功能是将多个字

符串按字典顺序排序

#include

voidf(char*p[],intn)

{char*t;inti,j;

for(i=0;i

for(j=i+1;j

if(strcmp(p[i],p[j])>0){t=p[i];p[i]=p[j];p[j]=t;}}

main()

{char*p[5]={“abc”,”aabdfg”,”abbd”,”dcdbe”,

”cd”};f(p,5);printf(“%d\n”,strlen(p[1]));}

程序运行后的输出结果是

A)2B)3C)6D)4

(4)有定义语句:

intb;charc[10];,则正确

的输入语句是_____

A)scanf(“%d%s”,&b,&c);

B)scanf(“%d%s”,&b,c);

C)scanf(“%d%s”,b,c);

D)scanf(“%d%s”,b,&c);

(5)以下能正确定义一维数组的选项是_____

A)inta[5]={0,1,2,3,4,5};

B)chara[]={0,1,2,3,4,5};

C)chara={‘A’,’B’,’C’};

D)inta[5]=“0123”;

(6)已有定义:

chara[]=“xyz”,b[]={‘x’,’y’,’z’};,以下叙述中正确的是_____

A)数组a和b的长度相同

B)a数组长度小于b数组长度

C)a数组长度大于b数组长度

D)上述说法都不对

(7)以下语句或语句组中,能正确进行字符串赋值的是

A)char*sp;*sp=“right!

”;

B)chars[10];s=“right!

”;

C)chars[10];*s=“right!

”;

D)char*sp=“right!

”;

(8)有以下程序

main()

{chars[]=“159”,*p;

p=s;printf(“%c”,*p++);

printf(“%c”,*p++);}

程序运行后的输出结果是

A)15B)16C)12D)59

(9)有以下函数

fun(char*a,char*b)

{while((*a!

=‘\0’)&&(*b!

=‘\0’)&&(*a==*b))

{a++;b++;}return(*a-*b);}

该函数的功能是

A)计算a和b所指字符串的长度之差

B)将b所指字符串复制到a所指字符串中

C)将b所指字符串连接到a所指字符串后面

D)比较a和b所指字符串的大小

(10)有以下程序

point(char*p)

{p+=3;}

main()

{charb[4]={‘a’,’b’,’c’,’d’},*p=b;

point(p);printf(“%c\n”,*p);}

程序运行后的输出结果是

A)aB)bC)cD)d

(11)s12和s2已正确定义并分别指向两个字符

串。

若要求:

当s1所指串大于s2所指串时,

执行语句S;则以下选项中正确的是_____

A)if(s1>s2)S;B)if(strcmp(s1,s2))S;

C)if(strcmp(s2,s1)>0)S;D)if(strcmp(s1,s2)>0)S;

(12)有以下程序

main()

{charstr[][10]={“China”,”Beijing”},*p=str;

printf(“%s\n”,p+10);}

程序运行后的输出结果是

A)ChinaB)BejingC)ngD)ing

(13)有以下程序

main()

{chars[]=“ABCD”,*p;

for(p=s+1;p

程序运行后的输出结果是

A)

B)

C)

D)

(14)有以下程序

main()

{chars[]”Yes\n/No”,*ps=s;

puts(ps+4);

*(ps+4)=0;

puts(s);}

程序运行后的输出结果是(选项D中的第一行

是空行)

A)B)C)D)

(15)有以下定义

#include

chara[10],*b=a;

不能给数组a输入字符串的语句是

A)gets(A)B)gets(a[0])

C)gets(&a[0]);D)gets(B);

(16)有以下程序

main()

{char*p[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”};

printf(“%d\n”,strlen(p[4]));}

执行后输出结果是

A)2B)3C)4D)5

(17)以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是

A)chars[10]=“abcdefg”;B)chart[]=“abcdefg”,*s=t;

C)chars[10];s=“abcdefg”;D)chars[10];strcpy(s,”abcdefg”);

(18)下列选项中正确的语句组是

A)chars[8];s={“Beijing”};B)char*s;s={“Beijing”};

C)chars[8];s=“Beijing”;D)char*s;s=“Beijing”;

(19)以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址

#include

#include

char*scmp(char*s1,char*s2)

{if(strcmp(s1,s2<0)

return(s1);

elsereturn(s2);}

main()

{inti;charstring[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)abcdB)abbaC)abcD)abca

(20)有以下程序

#include

main()

{charstr[][20]={“Hello”,”Beijing”},*p=str;

printf(“%d\n”,strlin(p+20));}

程序运行后的输出结果是

A)0B)5C)7D)20

(21)已定义以下函数

fun(char*p2,char*p1)

{while((*p2=*p1)!

=‘\0’){p1++;p2++;}}

函数的功能是

A)将p1所指字符串复制到p2所指内存空间。

B)将p1所指字符串的地址赋给指针p2。

C)对p1和p2两个指针所指字符串进行比较。

D)检查p1和p2两个指针所指字符串中是否

有’\0’。

(22)有以下程序

main()

{char*s[]={“one”,”two”,”three”},*p;

p=s[1];

printf(“%c,%s\n”,*(p+1),s[0]);}

执行后输出结果是

A)n,twoB)t,oneC)w,oneD)o,two

(23)阅读以下函数

fun(char*s1,char*s2)

{inti=0;

while(s1[i]==s2[i]&&s2[i]!

=‘\0’)i++;

return(s1[i]==&&s2{i}!

==‘\0’);}

此函数的功能是

A)将s2所指字符串赋给s1

B)比较s1和s2所指字符串的大小,若s1比

s2的大,函数值为1,否则函数值为0

C)比较s1和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0

D)比较s1和s2所指字符串的长度,若s1比

s2的长,函数值为1,否则函数值为0

(24)有以下程序

main()

{charstr[]=“xyz”,*ps=str;

while(*ps)ps++;

for(ps--;ps-str>=0;ps--)puts(ps);}

执行后的输出结果是

A)

B)

C)

D)

(25)有以下程序

#include

main()

{char*p=“abcde\Ofghjik\0”;

printf(“%d\n”,strlen(p));}

程序运行后的输出结果是

A)12B)15C)6D)5

(26)有以下程序

voidss(char*s,chart)

{while(*s)

{if(*s==t)*s=t-’a’+’A’;

s++;}}

main()

{charstr1[100]=“abcddfefdbd”,c=‘d’;

ss(str1,c);printf(“%s\n”,str1);}

程序运行后的输出结果是

A)ABCDDEFEDBDB)abcDDfefDbD

C)abcAAfefAbAD)Abcddfefdbd

(27)以下程序的输出结果是

charcchar(charch)

{if(ch>=‘A’&&ch<=‘Z’)ch=ch-’A’+’a’;

returnch;}

main()

{chars[]=“ABC+abc=defDEF”,*p=s;

while(*p)

{*p=cchar(*p);

p++;}

printf(“%s\n”,s);}

A)abc+ABC=DEFdefB)abc+abc=defdef

C)abcaABCDEFdefD)abcabcdefdef

(28)以下程序段的输出结果是

chars[]=“\\141\141abc\t”;

printf(“%d\n”,strlen(s));

A)9B)12C)13D)14

(29)以下程序的输出结果是

main()

{charcf[3][5]={“AAAA”,”BBB”,”CC”};

printf(“\”%s\”\n”,ch[1]);}

A)”AAAA”B)”BBB”C)”BBBCC”D)”CC”

(30)以下程序的输出结果是

#include

#include

main()

{charb1[8]=“abcdefg”,b2[8],*pb=b1+3;

while(--pb>=b1)strcpy(b2,pb);

printf(“%d\n”,strlen(b2));}

A)8B)3C)1D)7

(31)以下定义语句中,错误的是

A)inta[]={1,2};B)char*a[3];

C)chars[10]=“test”;D)intn=5,a[n];

(32)以下选项中,不能正确赋值的是

A)chars1[10];s1=“Ctest”;

B)chars2[]={‘C’,‘t’,‘e’,‘s’,‘t’};

C)chars3[20]=“Ctest”;

D)char*s4=“Ctest\n”

(33)以下程序的输出结果是

A)

B)

C)

D)

main()

{charw[][10]={“ABCD”,”EFGH”,”IJKL”,

”MNOP”},k;

for(k=1;k<3;k++)printf(“%s\n”,w[k]);}

(34)当执行下面的程序时,如果输入ABC,则输出结果是

A)ABC6789B)ABC67

C)12345ABC6D)ABC456789

#include“stdio.h”

#include“string.h”

main()

{charss[10]=“1,2,3,4,5”;

gets(ss);strcat(ss,“6789”);printf(“%s\n”,ss);}

35)有如下程序同第13题

(36)有如下程序

main()

{charch[2][5]={“6937”,”8254”},*p[2];

inti,j,s=0;

for(i=0;i<2;i++)p[i]=ch[i];

for(i=0;i<2;i++)

for(j=0;p[i][j]>‘\0’;j+=2)

s=10*s+p[i][j]-’0’;

printf(“%d\n”,s);}

该程序的输出结果是

A)69825B)63825C)6385D)693825

(37)设有数组定义:

chararray[]=“China”;则

数组array所占的空间为

A)4个字节B)5个字节

C)6个字节D)7个字节

(38)设已有定义:

char*st=“howareyou”;下

列程序段中正确的是

A)chara[11],*p;strcpy(p=a+1,&st[4]);

B)chara[11];strcpy(++a,st);

C)chara[11];strcpy(a,st);

D)chara[],*p;strcpy(p=&a[1],st+2);

(39)下列程序执行后的输出结果是

A)you&neB)youC)meD)err

mai()

{chararr[2][4];

strcpy(arr,”you”);strcpy(arr[1],”me”);

arr[0][3]=‘&’;

printf(“%s\n”,arr);}

(40)执行下列程序时输入:

123<空格>456<空格>789<回车>,输出结果是

A)123,456,789B)1,456,789

C)1,23,456,789D)1,23,456

main()

{chars[100];intc,i;

scanf(“%c”,&c);scanf(“%d”,&i);scanf(“%s”,s);

printf(“%c,%d,%s\n”,c,i,s);}

(41)下列描述中不正确的是

A)字符型数组中可以存放字符串

B)可以对字符型数组进行整体输入、输出

C)可以对整型数组进行整体输入、输出

D)不能在赋值语句中通过赋值运算符”=“对字符型数组进行整体赋值

(42)以下程序的输出结果是

A)123456780B)123456780C)12345678D)147

main()

{charch[3][4]={“123”,”456”,”78”},*p[3];inti;

for(i=0;i<3;i++)p[i]=ch[i];

for(i=0;i<3;i++)printf(“%s”,p[i]);}

(43)以下程序的输出结果是

A)4211B)0008C)4678D)8888

main()

{char*s=“12134211”;intv[4]={0,0,0,0},k,I;

for(k=0;s[k];k++)

{switch(s[k])

{case‘1’:

i=0;

case‘2’:

i=1;

case‘3’:

i=2;

case‘4’:

i=3;}

v[i]++;}

for(k=0;k<4;k++)printf(“%d“,v[k]);}

(44)以下程序的输出结果是

A)AfghdEFGB)AbfhdC)AfghdD)Afgd

#include

main()

{char*p1,*p2,str[50]=“ABCDEFG”;

p1=“abcd”;p2=“efgh”;

strcpy(str+1,p2+1);strcpy(str+3,p1+3);

printf(“%s”,str);}

(45)以下程序运行后,输出结果是

A)cdeB)字符c的ASCII码值

C)字符c的地址D)出错

main()

{char*s=“abcde”;

s+=2;printf(“%ld\n”,s);}

(46)下面能正确进行字符串赋值操作的语句是

A)chars[5]={“ABCDE”};

B)chars[5]={‘A’,’B’,’C’,’D’,’E’};

C)char*s;s=“ABCDEF”;

D)char*s;scanf(“%s”,s);

(47)以下程序运行后,如果从键盘上

输入ABCDE<回车>,则输出结果为

A)8B)7C)6D)5

#include

#include

func

{intnum=0;

while(*(str+num)!

=‘\0’)num++;

return(num);}

main()

{charstr[10],*p=str;

gets(p);printf(“%d\n”,func(p));}

(48)下面程序运行的结果是

A)2ba56B)6521C)6D)62

main()

{charch[7]={65ab21”};

inti,s=0;

for(i=0;ch[i]>=‘0’&&ch[i]<=‘9’;i+=2)

s=10*s+ch[i]-’0’;

printf(“%d\n”,s);}

(49)运行下面的程序,如果从键盘上输入:

ab<回车>,c<回车>,def<回车>

则输出结果为

A)

B)

C)

D)abcdef

#include

#defineN6

main()

{charc[N];inti=0;

for(;i

for(i=0;i

(50)以下程序运行后,输出结果是

A)8B)7C)6D)5

#include

ss(char*s)

{char*p=s;

while(*p)p++;

return(p-s);}

main()

{char*a=“abded”;

inti;

i=ss(a);

printf(“%d\n”,i);}

(51)以下程序运行后,输出结果是

A)6385B)22C)33D)693825

main()

{charch[2][5]={‘693”,”825”},*p[2];

inti,j,s=0;

for(i=0;i<2;i++)p[i]=ch[i];

for(i=0;i<2;i++)

for(j=0;p[i][j]=‘0’&&p[i][j]<=‘9’;j+=2)

s=10*s+p[i][j]-’0’;

printf(“%d\n”,s);}

(52)以下程序运行后,输出结果是

A)1234567B)7654321C)1711717D)7177171

#inchude

#inchude

fun(char*w,intn)

{chart,*s1,*s2;

s1=w;s2=w+n-1;

while(s1

{t=*s1++;*s1=*s2--;*s2=t;}}

main()

{char*p;p=“1234567”;

fun(p,strlen(p));puts(p);}

(53)以下程序运行后,如果从键盘上输入:

book<回车>,book<空格><回车>

则输出的结果是

A)*8B)#9C)#6D)*9

#include

main()

{chara1[80],a2[80],*s1=a1,*s2=a2;

gets(s1);gets(s2);

if(!

strcmp(s1,s2))printf(“*”);

esleprintf(“#”);

printf(“%d/n”,strlen(strcat(s1,s2)));}

(54)给出以下定义:

charx[]=“abcdefg”;

chary[]={‘a’,’b’,’c’,’d’,’e’,’f’,’g’};

则正确的叙述为

A)数组X和数组Y等价

B)数组x和数组Y的长度相同

C)数组X的长度大于数组Y的长度

D)数组X的长度小于数组Y的长度

(55)有以下程序

main()

{chara[]=“programming”,b[]=“language”;

char*p1,*p2;inti;

p1=a;p2=b;

for(i=0;i<7;i++)

if(*(p1+i)==*(p2+i))printf(“%c”,*(p1+i));}

输出结果是

A)gmB)rgC)orD)ga

(56)若有以下定义:

chars[20]=“programming”,*ps=s;

则不能代表字符o的表达式是

A)ps+2B)s[2]C)ps[2]D)ps+=2,*ps

(57)若有以下定义和语句:

char*s1=“12345”,*s2=“1234”;

printf(“%d\n”,strlen(strcpy(s1,s2)));

则输出结果是_____

A)4B)5C)9D)10

(58)下面程序的输出是_____

main()

{char*s=“121”;

intk=0,a=0,b=0;

do{k++;

if(k%2==0){a=a+s[k]-’0’;continue;}

b=b+s[k]-’0’;a=a+s[k]-’0’;

}while(s[k+1]);

printf(“k=%da

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1