




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2011年计算机等级二级C语言章节习题及答案(9)第10章指针 同步练习一 一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。) 10.1若有下面的程序段: chars=china;char*p;p=s; 则下列叙述正确的是 A)s和p完全相同落千丈B)数组s中的内容和指针变量p中的内容相等 C)s数组长度和p所指向的字符串长度相等D)*p与s0相等 考生答案:正确答案:D 10.2若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是 A)a,point,*&aB)&*a,&a,*pointC)*&point,*point,&aD)&a,&*point,point 考生答案:正确答案:D 10.3下列程序执行后的输出结果是 voidfunc(int*a,intb) b0=*a+6; main() inta,b5; a=0;b0=3; func(&a,b);printf(%dn,b0); A)6B)7C)8D)9 考生答案:正确答案:A 10.4已定义以下函数 fun(char*p2,char*p1) while(*p2=*p1)!=0)p1+;p2+; 函数的功能是 A)将p1所指字符串复制到p2所指内存空间 B)将p1所指字符串的地址赋给指针p2 C)对p1和p2两个指针所指字符串进行比较 D)检查p1和p2两个指针所指字符串中是否有0 考生答案:正确答案:A 10.5有以下程序 voidss(char*s,chart) while(*s) if(*s=t)*s=t-a+A; s+; main() charstr1100=abcddfefdbd,c=d; ss(str1,c); printf(%sn,str1); 程序运行后的输出结果是 A)ABCDDEFEDBDB)abcDDfefDbDC)abcAAfefAbAD)Abcddfefdbd 考生答案:正确答案:B 10.6下面说明不正确的是 A)chara10=china;B)chara10,*p=a;p=china C)char*a;a=china;D)chara10,*p;p=a=china 考生答案:正确答案:D 10.7设有定义:intn=0,*p=&n,*q=&p,则下列选项中正确的赋值语句是 A)p=1;B)*q=2;C)q=p;D)*p=5; 考生答案:正确答案:D 10.8执行以下程序后,a,b的值分别为 main() inta,b,k=4,m=6,*p1=&k,*p2=&m; a=p1=&m; b=(*p1)/(*p2)+7; printf(a=%dn,a); printf(b=%dn,b); A)-1,5B)1,6C)0,7D)4,10 考生答案:正确答案:C 10.9假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入: PROGABCDEFGHIJKL,则输出结果为 main(intargc,char*argv) while(-argc0) printf(%s,argvargc); printf(n); A)ABCDEFGB)IJHLC)ABCDEFGHIJKLD)IJKLABCDEFGH 考生答案:正确答案:D 10.10以下程序有错,错误原因是 main() int*p,i;char*q,ch; p=&i; q=&ch; *p=40; *p=*q; . A)p和q的类型不一致,不能执行*p=*q;语句 B)*p中存放的是地址值,因此不能执行*p=40;语句 C)q没有指向具体的存储单元,所以*q没有实际意义 D)q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行*p=*q;没有意义,可能会影响后面语句的执行结果 考生答案:正确答案:D 10.11下面程序段的运行结果是 chara=lanuage,*p; p=a; while(*p!=u)printf(%c,*p-32);p+; A)LANGUAGEB)languageC)LAND)langUAGE 考生答案:正确答案:C 10.12有以下语句,则对a数组元素的引用不正确的是(0i9) inta10=0,1,2,3,4,5,6,7,8,9,*p=a; A)ap-aB)*(&ai)C)piD)*(*(a+i) 考生答案:正确答案:D 10.13函数fun的返回值是 fun(char*a,char*b) intnum=0,n=0; while(*(a+num)!=0)num+; while(bn)*(a+num)=bn;num+;n+; returnnum; A)字符串a的长度B)字符串b的长度 C)字符串a和b的长度之差D)字符串a和b的长度之和 考生答案:正确答案:D 10.14下列程序的输出结果是 main() inta5=2,4,6,8,10,*p,*k; p=a; k=&p; printf(%d,*(p+); printf(%dn,*k); A)4B)22C)24D)46 考生答案:正确答案:C 10.15下面判断正确的是 A)char*a=china;等价于char*a;*a=china; B)charstr5=china;等价于charstr=china; C)char*s=china;等价于char*s;s=china; D)charc4=abc,d4=abc;等价于charc4=d4=abc; 考生答案:正确答案:C 10.16以下定义中,标识符prtint(*prt)3 A)定义不含法 B)是一个指针数组名,每个元素都是一个指向整数变量的指针 C)是一个指针,它指向一个具有三个元素的一维数组 D)是一个指向整型变量的指针 考生答案:正确答案:D 10.17有如下说明 inta10=1,2,3,4,5,6,7,8,9,10,*p=a; 则数值为9的表达式是 A)*p+9B)*(p+8)C)*p+=9D)p+8 考生答案:正确答案:B 10.18若有定义:char*st=howareyou;下列程序段中正确的是 A)chara11,*p;strcpy(p=a+1,&st4); B)chara11;strcpy(+a,st); C)chara11;strcpy(a,st); D)chara,*p;strcpy(p=&a1,st+2); 考生答案:正确答案:A 10.19下列程序的运行结果是 voidfun(int*a,int*b) int*k; k=a;a=b;b=k; main() inta=3,b=6,*x=&a,*y=&b; fun(x,y); printf(%d%d,a,b); A)63B)36C)编译出错D)00 考生答案:正确答案:B 10.20若有说明语句 chara=Itismine; char*p=Itismine; 则以下不正确的叙述是 A)a+1表示的是字符t的地址 B)p指向另外的字符串时,字符串的长度不受限制 C)p变量中存放的地址值可以改变 D)a中只能存放10个字符 考生答案:正确答案:D 10.21以下程序的运行结果是 sub(intx,inty,int*z) *z=y-x; main() inta,b,c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c); printf(M,M,Mn,a,b,c); A)5,2,3B)-5,-12,-7C)-5,-12,-17D)5,-2,-7 考生答案:正确答案:B 10.22若有下面的程序片段: int12=0,*p3,*pp,i; for(i=0;i3;i) pi=&ai*4; pp=p; 则对数组元素的错误引用是 A)pp01B)a10C)p31D)*(*(p+2)+2) 考生答案:正确答案:C 10.23下面程序的输出结果是 #include #include main() char*p1=abc,*p2=ABC,str50=xyz; strcpy(str+2,strcat(p1,p2); printf(%sn,str); A)xyzabcABCB)zabcABCC)xyabcABCD)yzabcABC 考生答案:正确答案:C 10.24有如下程序 main() charch25=6937,8254,*p2; inti,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)69825B)63825C)6385D)693825 考生答案:正确答案:C 10.25阅读下面程序,则执行后的结果为 #includestdio.h #includestring.h #defineN10 #defineM10 char*find(char(*a)M,intn) char*q;inti; q=a0; for(i=0;iif(strcmp(ai,q)0) q=ai; returnq; main() charsNM=tomeetme,you,and,he,china; char*p; intn=5,i; p=find(s,n); puts(p); A)heB)andC)youD)tomeetme 考生答案:正确答案:B 二、填空题(请将每一个空的正确答案写在答题卡相应序号后。) 10.26函数voidfun(float*sn,intn)的功能是:根据以下公式计算S,计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0。请填空。 voidfun(float*sn,intn) floats=0.0,w,f=-1.0; inti=0; for(i=0;i=n;i+) f=【1】*f; w=f/(2*i+1); s+=w; 【2】=s; 考生答案:正确答案:-1正确答案:*sn 10.27该程序运行的结果是【3】。 #include #include #defineM100 voidfun(intm,int*a,int*n) inti,j=0; for(i=1;i=m;i+) if(i%7=0|i=0) aj+=i; *n=j; main() intaaM,n,k; clrscr(); fun(10,aa,&n); for(k=0;kif(k+1) =0) printf(n); elseprintf(M,aak); printf(n); 考生答案:正确答案:7 10.28下列程序的功能是:求出ss所指字符串中指定字符的个数,并返回此值。 例如,若输入字符串123412132,输入字符1,则输出3,请填空。 #include #include #defineM81 intfun(char*ss,charc) inti=0; for(;【4】;ss+) if(*ss=c)i+; returni; main() charaM,ch; clrscr(); printf(nPleaseenterastring:);gets(a); printf(nPleaseenterachar:);ch=getchar(); printf(nThenumberofthecharis:%dn,fun(a,ch); 考生答案:正确答案:*ss!=0 10.29若给fun函数的形参s传送字符串:“6354abcc”(其中表示空格字符),则函数的返回值是【5】。 #include longfun(chars) longn;intsign; for(;isspace(*s);s+); sign=(*s=-)?-1:1; if(*s=+|*s=-)s+; for(n=0;isdigit(*s);s+)n=10*n+(*s-0); returnsign*n; 考生答案:正确答案:6354 10.30下面程序是指从终端读入的20个字符放入字符数组中,然后利用指针变量输出上述字符串,请填空。 #include main() inti;chars21,*p; for(i=0;i20;i+) si=getchar(); si=【6】; p=【7】 while(*p)putchar(【8】); 正确答案:0正确答案:s正确答案:*p+ 10.31以下函数的功能是求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。 例如,若x中的值为30,则有4个数符合要求,它们是1,3,5,15。 请按题意,完成填空。 试题程序: #include #include voidfun(intx,intpp,int*n) inti,j=0; 【9】 if(x%i=0)ppj+=i; 【10】; main() intx,aa1000,n,i; clrscr(); printf(nPleaseenteranintegernumber:n); scanf(%d,&x); fun(x,aa,&n); for(i=0;iN  I+) printf(%d,aai); printf(n); 正确答案:for(i=1;i 10.32mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。请填空。 intmystrlen(char*str) inti; for(i=0;【11】!=0;i+); return(i); 考生答案:正确答案:*(str+i)或stri 10.33下
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年大唐(内蒙古)能源开发有限公司毕业生招聘笔试参考题库附带答案详解
- 2025至2030年中国自动饮料吸管包装机数据监测研究报告
- 2025至2030年中国自动双头榫眼机数据监测研究报告
- 瓦采购合同范本
- 二零二五年度休闲渔业鱼塘租赁合作合同
- 二零二五年度智慧城市交通信号系统合同评审流程
- 2025年度资产抵押债务清偿与执行协议
- 2025年度服装厂与服装设计师的创意合作劳动合同
- 二零二五年度运维外包合同
- 二零二五年度电力系统设备预防性维护与维修保障协议
- 高中转学申请书
- 2025年中国建材集团所属中建材联合投资有限公司招聘笔试参考题库附带答案详解
- 2025年企业合伙联营框架协议模板(2篇)
- 中国电信行业人工智能行业市场调研及投资规划建议报告
- 2025年苏州工业园区服务外包职业学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 小学生拗九节课件
- 人教版PEP小学五年级英语下册全册教案(含计划)
- 南方全站仪NTS-332R说明书
- 2023湖南文艺出版社五年级音乐下册全册教案
- 中职数学单招一轮总复习《集合》复习课件
- DL-T 572-2021电力变压器运行规程-PDF解密
评论
0/150
提交评论