版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言指针练习题及答案一、选择题1.变量的指针,其含义是指该变量的.c)名d)一个标志2.若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是.a)a,point,*&ab)&*a,&ac)*&point,*point,&ad)&3.若有说明;int*p,m=5,n;以下正确的程序段的是scanf("%d",&p);scanf("%d",*p);c)scanf("%d",&n);d)p=&n;*p=n;*p=m;4.以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因{scanf(“%d”,*p);}a)*p表示的是指针变量p的地址b)*p表示的是变量a的值,而不是变量a的地址c)*p表示的是指针变量p的值d)*p只能用来说明p是一个指针变量5.已有变量定义和函数调用语句:inta=25;print_value(&a);下面函数的正确输出结果是-总结资料-voidprint_value(int*x)6.若有说明:long*p,a;则不能通过scanf语句正确给输入项读入数据的程序段是A)*p=Ga;scanf("%ld",p);B)p=(long*)malloc(8);scanf("%ld",p);C)scanf("%ld",p=&a);D)scanf("%ld",&a);7.有以下程序#include<stdio.h>r=p;p=q;q=r;printf("%d,%d,%d,%d\n",m,n,*p,*q);A)1,2,1,2{inta=1,b=3,c=5;int*p1=&a,*p2=&b,*p=&c;printf("%d\n",c);9.有以下程序}程序运行后的输出结果是()-总结资料-A)4B)1C)0D)运行时出错,无定值10.在16位编译系统上,若有定义inta[]={10,20,30},*p=&a;,当执行p++;后,下列说法错误的是()A)p向高地址移了一个字节B)p向高地址移了一个存储单元C)p向高地址移了两个字节D)p与a+1等价11.有以下程序段12.若有以下定义,则对a数组元素的正确引用是inta[5],*p=a;a)*&a[5]b)a+2c)*(p+5)d)*(a+2)13.若有以下定义,则p+5表示inta[10],*p=a;a)元素a[5]的地址b)元素a[5]的值14.设已有定义:inta[10]={15,12,7,31,47,20,16,28,13,19},*p;下列语句中正A)for(p=a;a<(p+10);a++);B)for(p=a;p<(a+10);p++);C)for(p=a,a=a+10;p<a;p++);D)for(p=a;a<p+10;++a);15.有以下程序段#include<stdio.h>printf("%d,",++*px);printf("%d,",*px);printf("%d,",(*px)++);printf("%d,",*px);)A)11,11,11,12,12,20,20,20B)20,10,11,10,11,10,11,10C)11,11,11,12,12,13,20,20D)20,10,11,20,11,12,20,20A)8,10B)6,8C)7,9D)6,10 19.若有定义:inta[2][3],则对a数组的第i行j列元素地址的正确引用为的值是8.21.有以下定义chara[10],*b=a;不能给数组a输入字符串的语句是()A)gets(a)B)gets(a[0])C)gets(&a[0]);D)gets(b);char*s="abcde";a)cdeb)字符'c'c)字符c的地址d)无确定的输出结果23.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是()A)chars[10]="abcdefg";B)chart[]="abcdefg",*s=t;-总结资料-C)chars[10];s="abcdefg";D)chars下列程序段中正确的是()A)chara[11],*p;strcpy(p=a+1,&st[4]);B)chara[11];strcpy(++a,C)chara[11];strcpy(a,st);D)chara[],*p;strcpy(p=&a[1],st+2);25.有以下程序输出结果是(){chara[]="programming",b[]="language";p1=a;p2=b; 26.设p1和p2是指向同一个字符串的指针变量,C 确执行的赋值语句是27.以下正确的程序段是.scanf("%s",&str);d)charstr[20],*p=str;scanf("%s",&str[2]);scanf("%s",p[2]);28.若有说明语句则以下不正确的叙述是a)a+1表示的是字符t的地址b)p指向另外的字符串时,字符串的长度不受限制c)p变量中存放的地址值可以改变d)a中只能存放10个字符29,下面程序的运行结果是-总结资料-#include<string.h>char*s2="AbdEg";s1+=2;s2+=2;(a)正数b)负数c)零d)不确定的值30.有以下程序运行后的输出结果是。voidf(int*x,int*y){t=*x;*x=*y;*y=t;{inta[8]={1,2,3,4,5,6,7,8},i=0,*p,*q;p=a;q=&a[7];}C)1,2,3,4,5,6,7,8,D)8,7,6,5,4,3,2,1,31.已定义以下函数fun(int*p){return*p;}该函数的返回值是A)不确定的值B)形参p中存放的值C)形参p所指存储单元中的值D)形参p的地址值32.有以下程序for(j=0;j<4;·++)-总结资料-s+=b[i][j];}{inta[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};printf("%d\n",f(a));}执行后的输出结果是33.若有以下函数首部则下面针对此函数的函数声明语句中正确的是intfun(doublex[10],int*n)A)intfun(doublex,int*n);BC)intfun(double*x,intn);D)intfun(double*,int*);34.有以下程序执行后的输出结果是()voidsum(int*a){a[0]=a[1];}{intaa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=2;i>=0;i--)sum(&aa[i]);35.下段代码的运行结果是:{char*str=Ga;strcpy(str,"hello");}36.下段程序的运行结果是-总结资料-char*p,*q;}}B)Hello,Worldello,WoC)Hello,WorldHello,WorldD)ello,Worldell,World37.有以下程序voidfun(char*c,intd){*c=*c+1;d=d+1;}σchara='A',b='a';fun(&b,a);}程序运行后的输出结果是。A)B,a,B,aB)a,B38、下面选项属于函数指针的是:A、(int*)p(int,int)B、int*p(int,int)C、两者都是D、两者都不是39、若有函数max(a,b),并且已使函数指针变量p指向函数max,当调用该函数时,正确的调用方法是-总结资料A)(*p)max(a,b);B)*pmax(a,b);40、下面几个选项中的代码能通过编译的是:{ints[3]={1,3,4};;}{for(inti=0;i<3;i++)printf("%d\n",result[i]);{}Sfor(inti=0;i<3;i++)}{}{printf("%d\n",result[i]);}-总结资料-{}{int*result;result=fun();}41、下列选项中声明了一个指针数组的是42、下面代码能通过编译的是:{{}C)intmain(){-总结资料-}{inta[3]={1,2,3};int*b[3]={&a[1],&a[2],&a[3]};}43、对于语句int*pa[5];下列描述中正确的是A)pa是一个指向数组的指针,所指向的数组是5个int型元素int(*p)[5]B)pa是一个指向某数组中第5个元素的指针,该元素是int型变量C)pa[5]表示某个元素的第5个元素的值D)pa是一个具有5个元素的指针数组,每个元素是一个int型指针44、若有以下定义,且O≤i<4,则不正确的赋值语句是.45、若要对a进行++运算,则a应具有下面说明A)inta[3][2];B)char*a[]={“12”,”ab”};46、若有以下说明语句:char*language[]={“FORTRAN”,”BASIC”,"PASCAL”,”JAVA","C"};则语句printf(“%o\n”,*q)输出的是.A)language[2]元素的地址;C)language[2]元素的值,它是字符串PASCAL的首地址D)格式说明不正确,无法得到确定的输出-总结资料-voidmain(){char*a[3]={"I","love","China"};char**ptr=a;}这段程序的输出是()l0二、程序题指向字符串和要查找的子串的指针,返回次数。加密程序:由键盘输入明文,通过加密程序转换成密文并输出到屏幕上。算法:明文中的字母转换成其后的第4个字母,例如,A变成E(a变成e),Z变成D,非字母字符不变;同时将密文每两个字符之间插入一个空格。例如,China转换成密文为Glmre。要求:在函数change中完成字母转换,在函数insert中完成增加空格,用指针传递参数。字符替换。要求用函数replace将用户输入的字符串中的字符t(T)都替换为e(E)并返回替换字符的个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年冰雪经济项目营销方案
- 2026年下午茶微醺时光项目营销方案
- 2026年宠物远程问诊项目营销方案
- 2026年泳池防溺水摄像头项目投资计划书
- 2026贵州黔南州三都县中国移动公司招聘14人备考题库附答案详解(轻巧夺冠)
- 2026河南安阳学院(原阳校区)行政人员招聘1人备考题库带答案详解
- 2026海南省第二人民医院招聘药学人员4人备考题库(一)含答案详解(预热题)
- 2026年可信执行环境嵌套项目公司成立分析报告
- 2026年中医养生与调理中心项目公司成立分析报告
- 2026年万物到家项目可行性研究报告
- 八年级语文下册必背古诗文(字帖描红)
- 产品试用合同模板
- 三全管理制度内容
- GE多排螺旋CT培训教材
- 新课标(水平三)体育与健康《篮球》大单元教学计划及配套教案(18课时)
- 高速公路养护与保洁施工方案
- 大学生创新创业基础(创新创业课程)完整全套教学课件
- 集团公司会议组织管理办法
- 2022中国城市养老服务务需求报告
- JTT515-2004 公路工程土工合成材料 土工模袋
- 软装清洗培训课件教案
评论
0/150
提交评论