模拟题16字符串.docx
- 文档编号:27012705
- 上传时间:2023-06-25
- 格式:DOCX
- 页数:56
- 大小:32.15KB
模拟题16字符串.docx
《模拟题16字符串.docx》由会员分享,可在线阅读,更多相关《模拟题16字符串.docx(56页珍藏版)》请在冰豆网上搜索。
模拟题16字符串
第十部分:
字符串
一、选择题
(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)2 B)3 C)6 D)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)15 B)16 C)12 D)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)a B)b C)c D)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)China B)Bejing C)ng D)ing (13)有以下程序 main() {chars[]="ABCD",*p; for(p=s+1;p } 程序运行后的输出结果是 A)ABCDB)AC)BD)BCD BCDBCCD CDCDD DD (14)有以下程序 main() {chars[]"Yes\n/No",*ps=s; puts(ps+4); *(ps+4)=0; puts(s); } 程序运行后的输出结果是(选项D中的第一行是空行) A)n/No B)/No C)n/NO D) YesYesYes/No /No/No Yes (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)2 B)3 C)4 D)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)abcd B)abba C)abc D)abca (20)有以下程序 #include main() {charstr[][20]={"Hello","Beijing"},*p=str; printf("%d\n",strlin(p+20)); } 程序运行后的输出结果是 A)0 B)5 C)7 D)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,two B)t,one C)w,one D)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)yzB)zC)zD)x xyzyzyzxy xyzxyz (25)有以下程序 #include main() {char*p=“abcde\Ofghjik\0”; printf(“%d\n”,strlen(p)); } 程序运行后的输出结果是 A)12 B)15 C)6 D)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)ABCDDEFEDBD B)abcDDfefDbD C)abcAAfefAbA D)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=DEFdef B)abc+abc=defdef C)abcaABCDEFdef D)abcabcdefdef (28)以下程序段的输出结果是 chars[]="\\141\141abc\t"; printf("%d\n",strlen(s)); A)9 B)12 C)13 D)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)8 B)3 C)1 D)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)ABCDB)ABCDC)EFGD)EFGH FGHEFGJK IJKL KLIJ O M main() {charw[][10]={“ABCD”,”EFGH”,”IJKL”,”MNOP”},k; for(k=1;k<3;k++)printf(“%s\n”,w[k]); } (34)当执行下面的程序时,如果输入ABC,则输出结果是 A)ABC6789 B)ABC67 C)12345ABC6 D)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)有如下程序 main() {chars[]=”ABCD”,*P; for(p=s+l;p } 该程序的输出结果是 A)ABCDB)AC)BD)BCD BCDBCCD CDCDD DD (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)69825 B)63825 C)6385 D)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&ne B)you C)me D)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)123456780 B)123456780 C)12345678 D)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)4211 B)0008 C)4678 D)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)cde B)字符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)8 B)7 C)6 D)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)2ba56 B)6521 C)6 D)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)aB)aC)abD)abcdef bbc ccd dd e f #include #defineN6 main() {charc[N]; inti=0; for(;i for(i=0;i } (50)以下程序运行后,输出结果是 A)8 B)7 C)6 D)5 #include
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模拟 16 字符串