已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言章节测试:字符串一、选择题(1)若有语句:char *line5;,以下叙述中正确的是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)在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3B)由于p数组中没有字符串结束符,长度不能确定;但q数组中字符串长度为3C)由于q数组中没有字符串结束符,长度不能确定;但p数组中字符串长度为3D)由于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);程序运行后的输出结果是A)2B)3C)6D)4(4)有定义语句:int b;char c10; ,则正确的输入语句是_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)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)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() char b4=a,b,c,d,*p=b; point(p); printf(%cn,*p);程序运行后的输出结果是 A)aB)bC)cD)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(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 所指字符串的地址赋给指针 p2C) 对p1和p2两个指针所指字符串进行比较D) 检查p1和p2两个指针所指字符串中是否有0(22) 有以下程序main()char *s=one,two,three,*p;p=s1;printf(%c,%sn,*(p+1),s0);执行后输出结果是A) n,twoB) t,oneC)w,oneD) o,two(23) 阅读以下函数fun(char *s1,char*s2) int i=0;while(s1i=s2i& s2i!=0)i+;return(s1i= & s2i!=0);此函数的功能是A) 将s2所指字符串赋给s1B) 比较s1和s2所指字符串的大小,若s1比s2的大,函数值为1,否则函数值为0C) 比较s1和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0D) 比较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 xyz yz yz xy xyz xyz(25) 有以下程序#include main() char *p=“abcdeOfghjik0”;printf(“%dn”,strlen(p);程序运行后的输出结果是A) 12B) 15C) 6D) 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) abcDDfefDbDC) 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=defdefC) 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) 8B) 3C) 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) ABCDB) ABCDC) EFGD) EFGH FGH EFG JK IJKL KL IJ OMmain() char w10= “ABCD”,”EFGH”,”IJKL”,”MNOP”,k; for(k=1;k3;k+) printf(“%sn”,wk);(34) 当执行下面的程序时,如果输入ABC,则输出结果是A) ABC6789 B) ABC67C) 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);(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) abcdefb b cc c dd def #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); 答案:一、选择题: 1)A2)B3)D4)B5)B6)C7)D8)A9) D 10)A11)D12)B13)D14)B15)B16)A17)C18)D19)B20)C21)A22)C23)C24)C25)D26)B27)B28)A29)B30)D31)D32)A33)D34)A35)D36)C37)C38)A39)A40)D41)C42)C43)B44)D45)C46)C47)D48)C49)C50)D51)A(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)s2C) 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=3B)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)ABCDFGH EFGKL IJMC)EFG D)FGHJK KLO (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#includemain() 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=1C) v1=5,v2=8,v3=6,v4=1 D) v1=8,v2=8,v3=8,v4=8(65) 当执行下面程序且输入:ABC时,输出的结果是#include#includemain() char ss10=12345;gets(ss);printf(%sn,ss); A) ABC B) ABC9 C) 123456ABC D) ABC456789(66) 下面程序的输出是#includemain() 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); 如果在主程序中用下面的语句调用上述函数,则输出结果为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年青海联通人员招聘考试参考题库及详细答案解析
- 2026年天津百利机械装备集团有限公司人员招聘考试备考试题及详细答案解析
- 2026年陕西燃气集团有限公司人员招聘参考题库及详细答案解析
- 2026年煤制品制造行业趋势研究报告及未来五至十年渠道变革与价值重塑
- 2026年餐饮业客单价提升策略分析报告
- 2026年金融科技行业研究报告:技术创新与市场布局
- 2026年机构养老行业市场潜力与挑战报告
- 2026年汽车后市场行业男女消费者需求分析报告
- 2026年互联网行业投资策略与分红展望报告
- 2026年四川省广汉市高一历史上册期末考试模拟卷含答案(培优A卷)
- 2026年秋季新版新苏教版科学六年级上册第三单元教学设计
- 开学第一课爱国从我做起厚植情怀班会课件
- 山西晋中介休市国有资产事务服务中心招聘笔试题库2026
- 金融管理综合应用案例昌盛餐厅
- 《带传动工业用多楔带磨损试验方法》
- 2026年四川政府采购评审专家题库(含答案)
- 重度子痫前期合并HELLP综合征个案护理
- 小学科学课程标准测试题及答案
- 五年级下册道德与法治教学总结
- 2026-2030中国电解电容纸行业市场发展趋势与前景展望战略分析研究报告
- 学校招生工作委员会章程
评论
0/150
提交评论