版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言章节测试:字符串一、选择题 (1)若有语句:char *line5;,以下叙述中正确的是 A)定义line是一个数组,每个数组元素是一个基类型为char的指针变量 B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组 C)定义line是一个指针数组,语句中的*号称为间址运算符 D)定义
2、line是一个指向字符型函数的指针 (2)有以下程序 #include <string.h> main() char p='a', 'b', 'c', q10='a', 'b', 'c'
3、 printf("%d %dn", strlen(p), strlen(q); 以下叙述中正确的是 A)在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3 B)由于p数组中没有字符串结束符,长度不能确定;但q数组中字符串长度为3 C
4、)由于q数组中没有字符串结束符,长度不能确定;但p数组中字符串长度为3 D)由于p和q数组中都没有字符串结束符,故长度都不能确定 (3)有以下程序,其中函数f的功能是将多个字符串按字典顺序排序 #include <string.h> void f(char *p, int n)
5、160; char *t; int i,j; for(i=0; i<n-1; i+) for(j=i+1; j<n; j+) if(strcmp(pi,pj)>0) t=pi; pi=pj;
6、0; pj=t; main() char *p5="abc","aabdfg","abbd","dcdbe","cd" f(p, 5); printf(
7、"%dn", strlen(p1); 程序运行后的输出结果是 A)2 B)3 C)6 D)4 (4)有定义语句:int b;char c10; ,则正确的输入语句是_ A)scanf(&
8、quot;%d%s",&b,&c); B)scanf("%d%s",&b,c); C)scanf("%d%s",b,c); D)scanf("%d%s",b,&c); (5)以下能正确定义一维数组的选项是_ A)int a5=0,1,2,3,4,5;
9、60; 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',以下叙述中正确的是_
10、160;A)数组a和b的长度相同 B)a数组长度小于b数组长度 C)a数组长度大于b数组长度 D)上述说法都不对 (7)以下语句或语句组中,能正确进行字符串赋值的是 A)char *sp; *sp="right!" B)char
11、s10; s="right!" C)char s10; *s="right!" D)char *sp="right!" (8)有以下程序 main() char s="
12、;159",*p; p=s; printf("%c",*p+); printf("%c",*p+); 程序运行后的输出结果是 A)15
13、;B)16 C)12 D)59 (9)有以下函数 fun(char *a,char *b) while(*a!='0')&&(*b!='0')&&(*a=*b)
14、 a+; b+; return (*a-*b); 该函数的功能是
15、0; A)计算a和b所指字符串的长度之差 B)将b所指字符串复制到a所指字符串中 C)将b所指字符串连接到a所指字符串后面 D)比较a和b所指字符串的大小 (10)有以下程序 point(char
16、60; *p) p+=3; main() char b4='a','b','c','d',*p=b; point(p);
17、; printf("%cn",*p); 程序运行后的输出结果是 A)a B)b C)c D)d(11) s12和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指
18、串时,执行语句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()
19、; char str10="China","Beijing",*p=str; printf("%sn",p+10); 程序运行后的输出结果是 A) China B) Bejing C) ng D) ing
20、160; (13) 有以下程序 main() char s="ABCD",*p; for(p=s+1;p<s+4;p+)printf("%sn",p); 程序运行后的输出结果是 A) ABCD
21、; B) A C) B D) BCD BCD B C
22、160; CD CD C D D (14) 有以下程序
23、160; main() char s"Yesn/No",*ps=s; puts(ps+4); *(ps+4)=0; puts(s); 程序运行后的输出结果是(选项D中的第一行是空行) A)
24、n/No B) /No C) n/NO D) Yes Yes Yes
25、; /No /No /No Yes (15) 有以下定义
26、60; #include <stdio.h> char a10,*b=a; 不能给数组a输入字符串的语句是 A) gets(A) B) gets(a0) C) gets(&a0); D) gets(B) ; (16) 有以下程序 m
27、ain( ) char *p10=“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”; printf(“%dn”,strlen(p4); 执行后输出结果是 A) 2 B) 3 C) 4 D)
28、 5 (17) 以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是 A) char s10=”abcdefg”; B) char t=”abcdefg”,*s=t; C) char s10;s=”abcdefg”; D) char s10;strcpy(s,”abcdefg”); (18) 下列选项中正确的语句组是
29、0;A) char s8; s="Beijing" B) char *s; s="Beijing" C) char s8; s="Beijing" D) char *s; s="Beijing" (19) 以下程序中函数scmp的功能是返回形参指针s1和 s2所指字符串中较小字符串的
30、首地址 #include <stdio.h> #include <string.h> char *scmp(char *s1, char *s2) if( strcmp (s1, s2<0) return(s1);
31、160; else return(s2); main () int I; char string20, str320; for(i=0;i<3;i+) gets(stri); str
32、cpy(string,scmp(str0,str1);/*库函数strcpy对字符串进行复制*/ strcpy(string,scmp(string,str2); printf("%sn",string); 运行时依次输入:abcd、abba和abc三个字符串,则输出结果为 A) abcd
33、; B) abba C) abc D) abca (20) 有以下程序 #include <string.h> main()&
34、#160; char str20="Hello","Beijing", *p=str; printf("%dn",strlin(p+20); 程序运行后的输出结果是 A) 0
35、 B) 5 C) 7 D) 20(21) 已定义以下函数 fun(char *p2, char *p1) while(*p2=*p1)
36、!=0)p1+;p2+; 函数的功能是 A) 将p1所指字符串复制到p2所指内存空间 B) 将p1 所指字符串的地址赋给指针 p2 C) 对p1和p2两个指针所指字符串进行比较 D) 检查p1和p2两个指针所指字符串中是否有0 (22) 有以下程序 main()
37、 char *s="one","two","three",*p; p=s1; printf("%c,%sn",*(p+1),s0); 执行后输出结果是 A) n,two &
38、#160; B) t,one C)w,one D) o,two (23) 阅读以下函数 fun(char *s1,char *s2) int i=0; while(s1i=s2i&& s2i!=0)i+;
39、; return(s1i= && s2i!=0); 此函数的功能是 A) 将s2所指字符串赋给s1 B) 比较s1和s2所指字符串的大小,若s1比s2的大,函数值为1,否则函数值为0 C) 比较s1和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0 D) 比较s1和s2所指字符串的长度
40、,若s1比s2的长,函数值为1,否则函数值为0 (24) 有以下程序 main() char str="xyz",*ps=str; while(*ps)ps+; for(ps-;ps-str>=0;ps-) puts(ps);
41、 执行后的输出结果是 A) yz B) z C) z D) x xyz yz yz xy xyz xyz
42、 (25) 有以下程序 #include <string.h> main() char *p=“abcdeOfghjik0”; printf(“%dn”,strlen(p); 程序运行后的输出结果是 A) 12
43、60; B) 15 C) 6 D) 5 (26) 有以下程序 void ss(char *s,char t) while(*s) if(*s=t) *s=t-a+A; s+;
44、160; main() char str1100=“abcddfefdbd”,c=d; ss(str1,c); printf(“%sn”,str1); 程序运行后的输出结果是 A) ABCDDEFEDBD B)
45、abcDDfefDbD C) abcAAfefAbA D) Abcddfefdbd (27) 以下程序的输出结果是 char cchar(char ch) if(ch>=A&&ch<=Z') ch=ch-A'+a'
46、60; return ch; main() char s="ABC+abc=defDEF",*p=s; while(*p) *p=cchar(*p); p+;
47、; printf("%sn",s); A) abc+ABC=DEFdef B) abc+abc=defdef C) abcaABCDEFdef D) abcabcdefdef
48、160; (28) 以下程序段的输出结果是 char s="141141abct" printf ("%dn",strlen(s); A) 9 B) 12
49、60; C) 13 D) 14 (29) 以下程序的输出结果是 main() char cf35="AAAA","BBB","CC" printf(""%s"n",ch1
50、); A) "AAAA" B) "BBB" C) "BBBCC" D) "CC" (30) 以下程序的输出结果是 #include <stdio.h>
51、160; #include <string.h> main() char b18="abcdefg",b28,*pb=b1+3; while (-pb>=b1) strcpy(b2,pb); printf("%dn",strlen(b2);
52、0; 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;
53、 (32) 以下选项中,不能正确赋值的是 A) char s110;s1=“Ctest”; B) char s2=C, t, e, s, t; C) char s320=“Ctest”; D) char *s4=“Ctestn” (33) 以下程序的输出结果是
54、160; A) ABCD B) ABCD C) EFG D) EFGH FGH EFG JK IJKL KL
55、0; IJ O M main() char w10= “ABCD”,”EFGH”,”IJKL”,”MNOP”,k; for(k=1;k<3;k+) printf(“%
56、sn”,wk); (34) 当执行下面的程序时,如果输入ABC,则输出结果是 A) ABC6789 B) ABC67 C) 12345ABC6 D) ABC456789 #include “stdio.h” #include&
57、#160; “string.h” main() char ss10=“1,2,3,4,5”; gets(ss); strcat(ss, “6789”); printf(“%sn”,ss); (36) 有如下程序 main()
58、; char ch25=“6937”,”8254”,*p2; int i,j,s=0; for(i=0;i<2;i+) pi=chi; for(i=0;i<2;i+) for(j=0;pi
59、j>0;j+=2) s=10*s+pij-0; printf(“%dn”,s); 该程序的输出结果是 A) 69825 B) 63825 C) 6385
60、160; D) 693825 (37) 设有数组定义: char array ="China" 则数组 array所占的空间为 A) 4个字节 B) 5个字节 C) 6个字节
61、 D) 7个字节 (38) 设已有定义: char *st="how are you" 下列程序段中正确的是 A) char a11, *p; strcpy(p=a+1,&st4); B) char a11;
62、60; strcpy(+a, st); C) char a11; strcpy(a, st); D) char a, *p; strcpy(p=&a1,st+2); (39) 下列程序执行后的输出结果是
63、0; A) you&ne B) you C) me D) err mai()
64、 char arr24; strcpy(arr,"you"); strcpy(arr1,"me"); arr03='&'
65、0; printf("%s n",arr); (40) 执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是 A) 123,456,789
66、 B) 1,456,789 C) 1,23,456,789 D) 1,23,456 &
67、#160; main() char s100; int c, i; scanf("%c",&c); scanf("%d",&i); scanf("%s",s); &
68、#160; printf("%c,%d,%s n",c,i,s); (41) 下列描述中不正确的是 A) 字符型数组中可以存放字符串 B) 可以对字符型数组进行整体输入、输出 C) 可以对整型数组
69、进行整体输入、输出 D) 不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值 (42) 以下程序的输出结果是 A) 123456780 B) 123 456 780 C) 12345678 D) 147 main(
70、; ) char ch34="123","456","78", *p3; int i; for(i=0;i<3;i+) pi=chi; &
71、#160; for(i=0;i<3;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
72、0; main( ) char *s="12134211"; int v4=0,0,0,0,k,i; for(k=0;sk;k+) switch(sk)
73、160; case '1':i=0; case '2':i=1; case '3':i=2; &
74、#160; case '4':i=3; vi+; for(k=0;k<4;k+)&
75、#160; printf("%d ",vk); (44) 以下程序的输出结果是 A) AfghdEFG B) Abfhd C) Afghd D) Afgd #include
76、 main( ) char *p1,*p2,str50="ABCDEFG"; p1="abcd";
77、p2="efgh"; strcpy(str+1,p2+1); strcpy(str+3,p1+3); printf("%s",str); (
78、45) 以下程序运行后,输出结果是 A) cde B) 字符c的ASCII码值 C) 字符c的地址 D) 出错 main()
79、; char *s="abcde" s+=2; printf("%ldn",s);
80、0; (46) 下面能正确进行字符串赋值操作的语句是 A) char s5="ABCDE" B) char s5='A','B','C','D','E' &
81、#160;C) char *s;s="ABCDEF" D) char *s; scanf("%s",s); (47) 以下程序运行后,如果从键盘上输入ABCDE<回车>,则输出结果为 A) 8
82、;B) 7 C) 6 D) 5 #include<stdio.h>
83、60; #include<string.h> func<char str) int num=0;
84、160; while(*(str+num)!='0') num+; return(num);
85、; main() char str10,*p=str; gets(p); printf("%dn",func(p);
86、60; (48) 下面程序运行的结果是 A) 2ba56 B) 6521 C) 6 D) 62
87、160; main() char ch7=65ab21" int i,s=0
88、0; for(i=0;chi>='0' && chi<='9'i+=2) s=10*s+chi-'0' &
89、#160; printf("%dn",s); (49) 运行下面的程序,如果从键盘上输入: ab<回车> c <回车>
90、60; def<回车> 则输出结果为 A) a B) a C) ab
91、0; D) abcdef b b c c
92、; c d d
93、; d e f #include<stdio,h> #define N 6
94、 main() char cN; int i=0; for(
95、; ;i<N;ci=getchar(),i+); for( i=0;i<N;i+) putchar(ci); printf("n"); (50) 以下程序运行后,输出结果是
96、 A) 8 B) 7 C) 6 D) 5
97、; #include<stdio,h> ss(char *s) char *p=s;
98、; while(*p) p+; return(p-s); main()
99、; char *a="abded" int i; i=ss(a);
100、; printf("%dn",i); (51) 以下程序运行后,输出结果是 A) 6385 B) 22 C) 33
101、 D) 693825 main() char ch25='693","825",*p2;
102、60; int i,j,s=0; for(i=0;i<2;i+) pi=chi; for(i=0;i<2;i+)
103、0; for(j=0;pij='0' && pij<='9'j+=2) s=10*s+pij-'0'
104、; printf("%dn",s); 答案: 一、选择题: 1) A 2) B 3) D 4) B 5) B
105、 6) C 7) D 8) A 9) D 10) A 11) D 12) B 13) D 14) B 15) B 16) A 17) C 18) D 19) B 20) C 21) A 22)&
106、#160;C 23) C 24) C 25) D 26) B 27) B 28) A 29) B 30) D 31) D 32) A 33) D 34) A 35) D 36) C 37) C 38) A 39) A
107、0;40) D 41) C 42) C 43) B 44) D 45) C 46) C 47) D 48) C 49) C 50) D 51) A (52) 以下程序运行后,输出结果是 A) 1234567
108、 B) 7654321 C) 1711717 D) 7177171 #inchude <stdio,h>
109、160; #inchude <string,h> fun(char *w, int n) char t, *s1,*s2;
110、0; s1=w: s2=w+n-1; while(s1<s2) t=*s1+;
111、; *s1=*s2-; *s2=t;
112、; main() char *p; p="1234567" &
113、#160; fun(p,strlen(p); puts(p); (53) 以下程序运行后,如果从键盘上输入:
114、 book <回车> book <空格><回车> 则输出的结果是 A) *8 B) #9
115、; C) #6 D) *9 #include<string,h> main()
116、60; char a180,a280,*s1=a1, *s2=a2; gets(s1); gets(s2);
117、; if(! strcmp(s1,s2) printf("*"); esle printf("#"); printf("%d/n",strlen(strcat(s1,s2);
118、60; (54) 给出以下定义: char x ="abcdefg" char y ='a','b','c','d','e','f','g' 则正确的叙述为
119、60; A) 数组X和数组Y等价 B) 数组x和数组Y的长度相同 C) 数组X的长度大于数组Y的长度 D) 数组X的长度小于数组Y的长度 (55) 有以下程序
120、160; main() char a="programming", b="language" char *p1,*p2; int i;
121、160; p1=a; p2=b; for(i=0;i<7;i+) if(*(p1+i)=*(p2+i) printf(&quo
122、t;c",*(p1+i); 输出结果是 A) gm B) rg C) or
123、 D) ga (56) 若有以下定义: char s20="programming",*ps=s; 则不能代表字符o的表达式是
124、A) ps+2 B)s2 C) ps2 D)ps+=2,*ps (57) 若有以下定义和语句: char *s1="12345",*s2="1234" printf("%dn"
125、;,strlen(strcpy(s1,s2); 则输出结果是_ A) 4 B)5 C)9 D)10 (58) 下面程序的输出是_
126、; main() char *s="121" int k=0, a=0, b=0; do
127、0; k+; if(k%2=0) a=a+sk-'0' continue;
128、160; b=b+sk-'0' a=a+sk-'0'
129、; 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 &
130、#160; (59) 以下程序输出的结果是 #include #include main() char w10="ABCD","EFGH","IJKL","MNOP",K; for (k=1;k<3;k+) printf(
131、"%sn",&wkk); A)ABCD B)ABCD FGH
132、 EFG KL
133、 IJ M C)EFG
134、60; D)FGH JK KL O &
135、#160; (60) 若有以下程序片段: char str="abn012"" printf(%d",strlen(str); 上面程序片段的输出结果是_ A)3
136、; B)4 C)6 D)12(61) 函数调用:strcat(strcpy(str1,str2),str3)的功能是 A) 将串str1复制到串str2中后再连接到串st
137、r3之后 B) 将串str1连接到串str2之后再复制到串str3之后 C) 将串str2复制到串str1中后再将串str3连接到串str1之后 D) 将串str2连接到串str1之后再将串str1复制到串str3中 (62) 不能把字符串:Hello!赋给数组b的语句是 A) char b10='H','e','l',
138、'l','o','!' B) char b10;b="Hello!" C) char b10;strcpy(b,"Hello!"); D) char b10="Hello!" (63) 下面程序的输出是 main()
139、; int x=3,y=6,a=0; while(x+!=(y+=o1) a+o=1; if(y #include main() char ss10="12345" strcat(ss,"6789");
140、0; gets(ss);printf("%sn",ss); A) ABC B) ABC9 C) 123456ABC D) ABC456789
141、 (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 '
142、;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
143、,v4=1 C) v1=5,v2=8,v3=6,v4=1 D) v1=8,v2=8,v3=8,v4=8 (65) 当执行下面程序且输入:ABC时,输出的结果是 #include<stdio.h> #include<string.h> main()
144、160; char ss10="12345" gets(ss);printf("%sn",ss); A) ABC B) ABC9 C) 123
145、456ABC D) ABC456789 (66) 下面程序的输出是 #include<string.h> main() char*a="abcdefgh" fun(a);puts(a); fun (char * s) int x=0,y;char c; for(y=strlen(s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 盾构施工方案
- 肛管狭窄病因介绍
- 网络安全漏洞管理规范(修改版)
- 职业技术学院大数据与会计专业人才培养方案
- 上海市进才实验中学2024-2025学年(五四学制)九年级上学期12月月考语文试题(无答案)1734420516
- 智能制造生产线技术及应用 教案 4-1 工业机器人产线集成概述
- 热伤风病因介绍
- 《无创机械通气使用》课件
- 开题报告:指向工程思维的高中技术开放性试题命题研究
- 开题报告:职业教育数字化背景下高校教师数字素养提升路径研究
- 洁净厂房监理实施细则
- 中医基础课程肾课件
- JC∕T 2647-2021 预拌混凝土生产企业废水回收利用规范
- 当代教育心理学(范围)课件
- 板坯连铸机板坯连铸机液压系统系统课件
- 试油服务安全环保技术措施
- 小学道德与法治《我们的好朋友》课件完整版
- 6-10认识和加减法ppt
- 娱乐场所申请书范本
- 人教版数学三年级上册 第8单元 分数的初步认识 易错题强化卷含答案
- 2021年墨玉县辅警招聘笔试模拟试题及答案解析
评论
0/150
提交评论