C语言模拟题16-字符串.doc_第1页
C语言模拟题16-字符串.doc_第2页
C语言模拟题16-字符串.doc_第3页
C语言模拟题16-字符串.doc_第4页
C语言模拟题16-字符串.doc_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十部分 :字符串 一、选择题 (1)若有语句:char *line5;,以下叙述中正确的是 A A)定义line是一个数组,每个数组元素是一个基类型为char的指针变量 B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组 C)定义line是一个指针数组,语句中的*号称为间址运算符 D)定义line是一个指向字符型函数的指针 (2)有以下程序 #include main() char p=a, b, c, q10=a, b, c; printf(%d %dn, strlen(p), strlen(q); 以下叙述中正确的是 A A)在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3 B)由于p数组中没有字符串结束符,长度不能确定;但q数组中字符串长度为3 C)由于q数组中没有字符串结束符,长度不能确定;但p数组中字符串长度为3 D)由于p和q数组中都没有字符串结束符,故长度都不能确定 (3)有以下程序,其中函数f的功能是将多个字符串按字典顺序排序 #include void f(char *p, int n) char *t; int i,j; for(i=0; in-1; i+) for(j=i+1; j0) t=pi; pi=pj; pj=t; main() char *p5=abc,aabdfg,abbd,dcdbe,cd; f(p, 5); printf(%dn, strlen(p1); 程序运行后的输出结果是 B A)2 B)3 C)6 D)4 (4)有定义语句:int b;char c10; ,则正确的输入语句是B 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 A)int a5=0,1,2,3,4,5; B)char a=0,1,2,3,4,5; C)char a=A,B,C; D)int a5=0123; (6)已有定义:char a=xyz,b=x,y,z;,以下叙述中正确的是 A)数组a和b的长度相同 B)a数组长度小于b数组长度 C)a数组长度大于b数组长度 D)上述说法都不对 (7)以下语句或语句组中,能正确进行字符串赋值的是 A)char *sp; *sp=right!; B)char s10; s=right!; C)char s10; *s=right!; D)char *sp=right!; (8)有以下程序 main() char s=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() char b4=a,b,c,d,*p=b; point(p); printf(%cn,*p); 程序运行后的输出结果是 A)a B)b C)c D)d (11) s12和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是 A) if(s1s2)S; B) if(strcmp(s1,s2)S; C) if(strcmp(s2,s1)0) S; D) if(strcmp(s1,s2)0)S; (12) 有以下程序 main() char str10=China,Beijing,*p=str; printf(%sn,p+10); 程序运行后的输出结果是 A) China B) Bejing C) ng D) ing (13) 有以下程序 main() char s=ABCD,*p; for(p=s+1;ps+4;p+)printf(%sn,p); 程序运行后的输出结果是 A) ABCD B) A C) B D) BCD BCD B C CD CD C D D D D (14) 有以下程序 main() char sYesn/No,*ps=s; puts(ps+4); *(ps+4)=0; puts(s); 程序运行后的输出结果是(选项D中的第一行是空行) A) n/No B) /No C) n/NO D) Yes Yes Yes /No /No /No Yes (15) 有以下定义 #include char a10,*b=a; 不能给数组a输入字符串的语句是 A) gets(A) B) gets(a0) C) gets(&a0); D) gets(B) ; (16) 有以下程序 main( ) char *p10=“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”; printf(“%dn”,strlen(p4); 执行后输出结果是 A) 2 B) 3 C) 4 D) 5 (17) 以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是 A) char s10=”abcdefg”; B) char t=”abcdefg”,*s=t; C) char s10;s=”abcdefg”; D) char s10;strcpy(s,”abcdefg”); (18) 下列选项中正确的语句组是 A) char s8; s=Beijing; B) char *s; s=Beijing; C) char s8; s=Beijing; D) char *s; s=Beijing; (19) 以下程序中函数scmp的功能是返回形参指针s1和 s2所指字符串中较小字符串的首地址 #include #include char *scmp(char *s1, char *s2) if( strcmp (s1, s20) return(s1); else return(s2); main () int I; char string20, str320; for(i=0;i3;i+) gets(stri); strcpy(string,scmp(str0,str1);/*库函数strcpy对字符串进行复制*/ strcpy(string,scmp(string,str2); printf(%sn,string); 运行时依次输入:abcd、abba和abc三个字符串,则输出结果为 A) abcd B) abba C) abc D) abca (20) 有以下程序 #include main() char str20=Hello,Beijing, *p=str; printf(%dn,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=s1; printf(%c,%sn,*(p+1),s0); 执行后输出结果是 A) n,two B) t,one C)w,one D) o,two (23) 阅读以下函数 fun(char *s1,char *s2) int i=0; while(s1i=s2i& s2i!=0)i+; return(s1i= & s2i!=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() char str=xyz,*ps=str; while(*ps)ps+; for(ps-;ps-str=0;ps-) puts(ps); 执行后的输出结果是 A) yz B) z C) z D) x xyz yz yz xy xyz xyz (25) 有以下程序 #include main() char *p=“abcdeOfghjik0”; printf(“%dn”,strlen(p); 程序运行后的输出结果是 A) 12 B) 15 C) 6 D) 5 (26) 有以下程序 void ss(char *s,char t) while(*s) if(*s=t) *s=t-a+A; s+; main() char str1100=“abcddfefdbd”,c=d; ss(str1,c); printf(“%sn”,str1); 程序运行后的输出结果是 A) ABCDDEFEDBD B) abcDDfefDbD C) abcAAfefAbA D) Abcddfefdbd (27) 以下程序的输出结果是 char cchar(char ch) if(ch=A&ch=Z) ch=ch-A+a; return ch; main() char s=ABC+abc=defDEF,*p=s; while(*p) *p=cchar(*p); p+; printf(%sn,s); A) abc+ABC=DEFdef B) abc+abc=defdef C) abcaABCDEFdef D) abcabcdefdef (28) 以下程序段的输出结果是 char s=141141abct; printf (%dn,strlen(s); A) 9 B) 12 C) 13 D) 14 (29) 以下程序的输出结果是 main() char cf35=AAAA,BBB,CC; printf(%sn,ch1); A) AAAA B) BBB C) BBBCC D) CC (30) 以下程序的输出结果是 #include #include main() char b18=abcdefg,b28,*pb=b1+3; while (-pb=b1) strcpy(b2,pb); printf(%dn,strlen(b2); A) 8 B) 3 C) 1 D) 7 (31) 以下定义语句中,错误的是 A) int a=1,2; B) char *a3; C) char s10=”test”; D) int n=5,an; (32) 以下选项中,不能正确赋值的是 A) char s110;s1=“Ctest”; B) char s2=C, t, e, s, t; C) char s320=“Ctest”; D) char *s4=“Ctestn” (33) 以下程序的输出结果是 A) ABCD B) ABCD C) EFG D) EFGH FGH EFG JK IJKL KL IJ O M main() char w10= “ABCD”,”EFGH”,”IJKL”,”MNOP”,k; for(k=1;k3;k+) printf(“%sn”,wk); (34) 当执行下面的程序时,如果输入ABC,则输出结果是 A) ABC6789 B) ABC67 C) 12345ABC6 D) ABC456789 #include “stdio.h” #include “string.h” main() char ss10=“1,2,3,4,5”; gets(ss); strcat(ss, “6789”); printf(“%sn”,ss); (35) 有如下程序 main() char s=”ABCD”, *P; for(p=s+l; ps+4; p+) printf (“%sn”,p); 该程序的输出结果是 A) ABCD B) A C) B D) BCD BCD B C CD CD C D D D D (36) 有如下程序 main() char ch25=“6937”,”8254”,*p2; int i,j,s=0; for(i=0;i2;i+) pi=chi; for(i=0;i0;j+=2) s=10*s+pij-0; printf(“%dn”,s); 该程序的输出结果是 A) 69825 B) 63825 C) 6385 D) 693825 (37) 设有数组定义: char array =China; 则数组 array所占的空间为 A) 4个字节 B) 5个字节 C) 6个字节 D) 7个字节 (38) 设已有定义: char *st=how are you; 下列程序段中正确的是 A) char a11, *p; strcpy(p=a+1,&st4); B) char a11; strcpy(+a, st); C) char a11; strcpy(a, st); D) char a, *p; strcpy(p=&a1,st+2); (39) 下列程序执行后的输出结果是 A) you&ne B) you C) me D) err mai() char arr24; strcpy(arr,you); strcpy(arr1,me); arr03=&; printf(%s n,arr); (40) 执行下列程序时输入:123456789,输出结果是 A) 123,456,789 B) 1,456,789 C) 1,23,456,789 D) 1,23,456 main() char s100; int c, 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) 123 456 780 C) 12345678 D) 147 main( ) char ch34=123,456,78, *p3; int i; for(i=0;i3;i+) pi=chi; for(i=0;i3;i+) printf(%s,pi); (43) 以下程序的输出结果是 A)4 2 1 1 B) 0 0 0 8 C) 4 6 7 8 D) 8 8 8 8 main( ) char *s=12134211; int v4=0,0,0,0,k,i; for(k=0;sk;k+) switch(sk) case 1:i=0; case 2:i=1; case 3:i=2; case 4:i=3; vi+; for(k=0;k4;k+) printf(%d ,vk); (44) 以下程序的输出结果是 A) AfghdEFG B) Abfhd C) Afghd D) Afgd #include main( ) char *p1,*p2,str50=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(%ldn,s); (46) 下面能正确进行字符串赋值操作的语句是 A) char s5=ABCDE; B) char s5=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=0 & chi=9;i+=2) s=10*s+chi-0; printf(%dn,s); (49) 运行下面的程序,如果从键盘上输入: ab c def 则输出结果为 A) a B) a C) ab D) abcdef b b c c c d d d e f #include #define N 6 main() char cN; int i=0; for( ;iN;ci=getchar(),i+); for( i=0;iN;i+) putchar(ci); printf(n); (50) 以下程序运行后,输出结果是 A) 8 B) 7 C) 6 D) 5 #include ss(char *s) char *p=s; while(*p) p+; return(p-s); main() char *a=abded; int i; i=ss(a); printf(%dn,i); (51) 以下程序运行后,输出结果是 A) 6385 B) 22 C) 33 D) 693825 main() char ch25=693,825,*p2; int i,j,s=0; for(i=0;i2;i+) pi=chi; for(i=0;i2;i+) for(j=0;pij=0 & pij=9;j+=2) s=10*s+pij-0; printf(%dn,s); (52) 以下程序运行后,输出结果是 A) 1234567 B) 7654321 C) 1711717 D) 7177171 #inchude #inchude fun(char *w, int n) char t, *s1,*s2; s1=w: s2=w+n-1; while(s1s2) t=*s1+; *s1=*s2-; *s2=t; main() char *p; p=1234567; fun(p,strlen(p); puts(p); (53) 以下程序运行后,如果从键盘上输入: book book 则输出的结果是 A) *8 B) #9 C) #6 D) *9 #include main() char a180,a280,*s1=a1, *s2=a2; gets(s1); gets(s2); if(! strcmp(s1,s2) printf(*); esle printf(#); printf(%d/n,strlen(strcat(s1,s2); (54) 给出以下定义: char x =abcdefg; char y =a,b,c,d,e,f,g; 则正确的叙述为 A) 数组X和数组Y等价 B) 数组x和数组Y的长度相同 C) 数组X的长度大于数组Y的长度 D) 数组X的长度小于数组Y的长度 (55) 有以下程序 main() char a=programming, b=language; char *p1,*p2; int i; p1=a; p2=b; for(i=0;i7;i+) if(*(p1+i)=*(p2+i) printf(c,*(p1+i); 输出结果是 A) gm B) rg C) or D) ga (56) 若有以下定义: char s20=programming,*ps=s; 则不能代表字符o的表达式是 A) ps+2 B)s2 C) ps2 D)ps+=2,*ps (57) 若有以下定义和语句: char *s1=12345,*s2=1234; printf(%dn,strlen(strcpy(s1,s2); 则输出结果是 A) 4 B)5 C)9 D)10 (58) 下面程序的输出是 main() char *s=121; int k=0, a=0, b=0; do k+; if(k%2=0) a=a+sk-0; continue; b=b+sk-0; a=a+sk-0; while (sk+1); printf(k=%d a=%d b=%dn,k,a,b); A)k=3 a=2 b=3 B)k=3 a=3 b=2 C)k=2 a=3 b=2 D)k=2 a=2 b=3 (59) 以下程序输出的结果是 #include #include main() char w10=ABCD,EFGH,IJKL,MNOP,K; for (k=1;k3;k+) printf(%sn,&wkk); A)ABCD B)ABCD FGH EFG KL IJ M C)EFG D)FGH JK KL O (60) 若有以下程序片段: char str=abn012; printf(%d,strlen(str); 上面程序片段的输出结果是 A)3 B)4 C)6 D)12 (61) 函数调用:strcat(strcpy(str1,str2),str3)的功能是 A) 将串str1复制到串str2中后再连接到串str3之后 B) 将串str1连接到串str2之后再复制到串str3之后 C) 将串str2复制到串str1中后再将串str3连接到串str1之后 D) 将串str2连接到串str1之后再将串str1复制到串str3中 (62) 不能把字符串:Hello!赋给数组b的语句是 A) char b10=H,e,l,l,o,!; B) char b10;b=Hello!; C) char b10;strcpy(b,Hello!); D) char b10=Hello!; (63) 下面程序的输出是 main() int x=3,y=6,a=0; while(x+!=(y+=o1) a+o=1; if(y #include main() char ss10=12345; strcat(ss,6789); gets(ss);printf(%sn,ss); A) ABC B) ABC9 C) 123456ABC D) ABC456789 (64) 下面程序的输出是 main() char *a=12134211; int v1=0,v2=0,v3=0,v4=0,k; for(k=0;sk;k+) switch(sk) default:v4+; case 1: v1+; case 3: v3+; case 2: v2+; printf(v1=%d,v2=%d,v3=%d,v4=%dn,v1,v2,v3,v4); A) v1=4,v2=2,v3=1,v4=1 B) v1=4,v2=9,v3=3,v4=1 C) v1=5,v2=8,v3=6,v4=1 D) v1=8,v2=8,v3=8,v4=8 (65) 当执行下面程序且输入:ABC时,输出的结果是 #include #include main() char ss10=12345; gets(ss);printf(%sn,ss); A) ABC B) ABC9 C) 123456ABC D) ABC456789 (66) 下面程序的输出是 #include main() char*a=abcdefgh; fun(a);puts(a); fun (char * s) int x=0,y;char c; for(y=strlen(s)-1;xy;x+,y-) c=sx;sx=sy;sy=c; A)abcdefgh B)hgfdecba C)dcbahgfe D)hgfedcba (67) 下述对C语言字符数组的描术中错误的是 A) 字符数组可以存放字符串 B) 字符数组中的字符串可以整体输入、输出 C) 可以在赋值语句中通过赋值运算符=对字符数组整体赋值 D) 不可以用关系运算符对字符数组中的字符串进行比较 (68) 设有如下函数定义: int f(char *s) char *p=s; while(*p!=0) p+; return(p-s); 如果在主程序中用下面的语句调用上述函数,则输出结果为 printf(%dn,f(goodbey!); A) 3 B) 6 C) 8 D) 0 (69) 设有如下定义: char *aa2=abcd,ABCD; 则以下就法中正确的是 A) aa数组成元素的值分别是abcd和ABCD B) aa是指针变量,它指向含有两个数组元素的字符型一维数组 C) aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 D) aa数组的两个元素中各自存放了字符a和A的地址 (70) 下列程序的输出结果是 main( ) char*p1,*p2,str50=xyz; p1=abcd; p2=ABCD; strcpy(str+2,strcat(p1+2,p2+1); printf)%s,str); A) xyabcAB B) abcABz C) ABabcz D) xycdBCD (71) 下列程序的输出结果是 main( ) char ch25=6934,8254,*p2; int i,j,s=0; for(i=0;i2;i + +) pi=chi; for(i=0;i0&pij=9;j+=2) s=10*s+pij-0; printf(%dn,s); A) 6385 B) 69825 C) 63825 D) 693825 (72) 以下程序的输出结果是 #includectype.h space (char *str) int i,t;char ts81; for(i=0,t=0;stri!=0;i+=2) if(! isspace(*str+i)&(*(str+i)!=a) tst+=toupper(stri); tst=0; strcpy(str,ts); mian( ) char s81=a b c d e f g; space(s); puts(s); A) abcdeg B) bcde C) ABCDE D) BCDE (73) 下面函数的功能是 A) 求字符串的长度 B) 比较两个字符串的大小 C) 将字符串x复制到字符串y D) 将字符串x连接到字符串y后面 int funl(char * x) char * y=x; while(*y+); return(y-x-1); (74) 下面程序的输出是 A) xyzabcABC B) zabcABC C) yzabcABC D) xyabcABC #include #include main() char *p1=abc,*p2=ABC,str50=xyz; strcpy(str+2,strcat(p1,p2); printf(%sn, str); (75) 下面程序的输出是 A) ABCD B) A C) D D) ABCD BCD B C ABC CD C B AB D D A A char s=ABCD; main() char *p; for(p=s; ps+4; p+) printf(%sn,p); (76) 下面各语句行中,能正确进行赋字符串操作的语句行是 A) char st45=ABCDE; B) char s5=A,B,C,D,E; C) char *s; s=ABCDE; D) char *s; scanf(%s,s); (77) 请读程序: #include f(char *s) char *p=s; while( *p!=0) p+; return(p-s); main() printf(%dn,f(ABCDEF); 上面程序的输出结果是 A) 3 B) 6 C) 8 D) 0 (78) 请读程序片段: char str=ABCD, *p=str; printf(%dn,*(p+4); 上面程序的输出结果是 A) 68 B) 0 C) 字符D的地址 D) 不确定的值 (79) 请读程序片段(字符串内没有空格): printf(%dn,strlen(ATSn0121); 上面程序片段的输出结果是 A) 11 B) 10 C) 9 D) 8 (80) 请读程序: #include #include main() char*s1=AbCdEf, *s2=aB; s1+; s2+; printf(%dn,strcmp(s1,s2); 上面程序的输出结果是 A) 正数 B) 负数 C) 零 D) 不确定的值 (81) 请读程序: #include char fun(char *c) if( *c=A) *c-=A-a; return *c; main() char s81, *p=s; gets(s); while(*p) *p=fun(p); putchar(*p); p+; putchar(n); 若运行时从键盘上输入OPEN THE DOOR(表示回车),则上面程序的输出结果是 A) oPEN tHE door B) open the door C) OPEN THE DOOR D) Open The Door (82) 请读程序: #include #include void fun( char *s) char a10; strcpy( a, STRING); s=a; main() char *p; fun(p); x=f(a, 3); printf(%sn,p); 上面程序的输出结果是(表示空格) A) STRING B) STRING C) STRING D) 不确定的值 (83) 请读程序: #include #include void fun( char *w, int m) char s, *p1, *p2; p1=w; p2=w+m-1; while (p1p2) s=*p1+; *p1=*p2-; *p2=s; main() char a=ABCDEFG; fun( a, strlen(a); puts(a); 上面程序的输出结果是 A) GFEDCBA B) AGADAGA C) AGAAGAG D) GAGGAGA (84) 请选出以下语句的输出结果 printf(%dn,strlen(t065xffn); A) 5 B) 14 C) 8 D) 输出项不合法,无正常输出 (85) 设有如下的程序段: char str =Hello; char *ptr; ptr=str; 执行上面的程序段后,*(ptr+5)的值为 A) o B) 0 C) 不确定的值 D) o的地址 (86) 设有 static char str =Beijing; 则执行 printf(%dn, strlen(strcpy(str,China); 后的输出结果为 A) 5 B) 7 C) 12 D) 14 (87) 请选出以下程序段的输出结果 #include main() char sl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论