版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言指针练习题及答案一、选择题1.变量的指针,其含义是指该变量的____.a)值b)地址c)名d)一个标志2.若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是___.a)a,point,*&ab)&*a,&a,*pointc)*&point,*point,&ad)&a,&*point,point3.若有说明;int*p,m=5,n;以下正确的程序段的是________.a)p=&n;b)p=&n;scanf("%d",&p);scanf("%d",*p);c)scanf("%d",&n);d)p=&n;*p=n;*p=m;4.以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是_______.main(){ int*p,*q,a,b;p=&a;printf(“inputa:”);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){printf(“%d\n”,++*x);}a)23b)24c)256.若有说明:long*p,a;则不能通过scanf语句正确给输入项读入数据的程序段是A)*p=&a;scanf("%ld",p);B)p=(long*)malloc(8);scanf("%ld",p);C)scanf("%ld",p=&a);D)scanf("%ld",&a);7.有以下程序#include<stdio.h>main(){intm=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",m,n,*p,*q);}程序运行后的输出结果是A)1,2,1,2 B)1,2,2,1C)2,1,2,1 D)2,1,1,28.有以下程序 main() {inta=1,b=3,c=5; int*p1=&a,*p2=&b,*p=&c; *p=*p1*(*p2); printf("%d\n",c); }执行后的输出结果是A)1 B)2 C)3 D)49.有以下程序main(){inta,k=4,m=4,*p1=&k,*p2=&m;a=p1==&m;printf("%d\n",a);}程序运行后的输出结果是()A)4 B)1 C)0 D)运行时出错,无定值10.在16位编译系统上,若有定义inta[]={10,20,30},*p=&a;,当执行p++;后,下列说法错误的是()A)p向高地址移了一个字节 B)p向高地址移了一个存储单元C)p向高地址移了两个字节 D)p与a+1等价11.有以下程序段
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];b中的值是()
A)5B)6C)8D)912.若有以下定义,则对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]的值c)元素a[6]的地址d)元素a[6]的值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>intmain(){intx[]={10,20,30};int*px=x;printf("%d,",++*px);printf("%d,",*px);px=x;}A)8,2,3,4,5,6,7,1,B)5,6,7,8,1,2,3,4,
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.
有以下程序intf(intb[][4]){inti,j,s=0;for(j=0;j<4;j++){i=j;if(i>2)i=3-j;s+=b[i][j];}returns;}main(){inta[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};printf("%d\n",f(a));}执行后的输出结果是A)
12
B)
11
C)
18
D)
1633.若有以下函数首部则下面针对此函数的函数声明语句中正确的是 intfun(doublex[10],int*n)A)intfun(doublex,int*n); B)intfun(double,int);C)intfun(double*x,intn); D)intfun(double*,int*);34.有以下程序执行后的输出结果是()voidsum(int*a){a[0]=a[1];}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=2;i>=0;i--)sum(&aa[i]);printf("%d\n",aa[0]);}A)4B)3C35.下段代码的运行结果是:intmain()
{
chara;
char*str=&a;
strcpy(str,"hello");
puts(str);
return0;
}A)helloB)nullC)hD)发生异常36.下段程序的运行结果是voidmain(){char*p,*q;charstr[]="Hello,World\n";q=p=str;p++;print(q);print(p);}voidprint(char*s){printf(“%s”,s);}A)HeB)Hello,Worldello,WorldC)Hello,WorldHello,WorldD)ello,Worldell,World37.有以下程序
voidfun(char*c,intd)
{*c=*c+1;d=d+1;printf("%c,%c,",*c,d);
}
voidmain()
{chara='A',b='a';fun(&b,a);printf("%c,%c\n",a,b);
}
程序运行后的输出结果是___。
A)B,a,B,aB)a,B,a,BC)A,b,A,bD)b,B,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);C)(*p)(a,b);D)*p(a,b);40、下面几个选项中的代码能通过编译的是:A)int*fun(){ ints[3]={1,3,4};; returns;}intmain(){ int*result; result=fun(); for(inti=0;i<3;i++) printf("%d\n",result[i]); return0;}B)int&fun(){ ints[3]={1,3,4};; returns;}intmain(){ int*result; result=fun(); for(inti=0;i<3;i++) printf("%d\n",result[i]); return0;}C)int*fun(){ ints[3]={1,3,4};; return&s;}intmain(){ int*result; result=fun(); for(inti=0;i<3;i++) printf("%d\n",result[i]); return0;}D)int&fun(){ ints[3]={1,3,4};; return&s;}intmain(){ int*result; result=fun(); for(inti=0;i<3;i++) printf("%d\n",result[i]); return0;}41、下列选项中声明了一个指针数组的是:A)int*p[2];B)int(*p)[2];C)typedefint*intPtr;intPtrp[2];D)A和BE)A和CF)B和C42、下面代码能通过编译的是:A)intmain(){ inta[3]={1,2,3}; int*b[3]={&a[1],&a[2],&a[3]}; int**p=b; return0;}B)intmain(){ inta[3]={1,2,3}; int*b[3]={a[1],a[2],a[3]}; int**p=b; return0;}C)intmain(){ inta[3]={1,2,3}; int*b[3]={&a[1],&a[2],&a[3]}; int*p=b; return0;}D)intmain(){ inta[3]={1,2,3}; int*b[3]={&a[1],&a[2],&a[3]}; int*p=&b; return0;}43、对于语句int*pa[5];下列描述中正确的是___.A)pa是一个指向数组的指针,所指向的数组是5个int型元素int(*p)[5]B)pa是一个指向某数组中第5个元素的指针,该元素是int型变量C)pa[5]表示某个元素的第5个元素的值D)pa是一个具有5个元素的指针数组,每个元素是一个int型指针44、若有以下定义,且0≤i<4,则不正确的赋值语句是____.intb[4][6],*p,*q[4];A)q[i]=b[i];B)p=b;C)p=b[i]D)q[i]=&b[0][0];45、若要对a进行++运算,则a应具有下面说明____.A)inta[3][2];B)char*a[]={“12”,”ab”C)char(*a)[3];D)intb[10],*a=b;46、若有以下说明语句:char*language[]={“FORTRAN”,”BASIC”,’’PASCAL”,’’JAVA”,”C”};char**q;q=language+2;则语句printf(“%o\n”,*q)输出的是___.A)language[2]元素的地址;B)字符串PASCALC)language[2]元素的值,它是字符串PASCAL的首地址D)格式说明不正确,无法得到确定的输出47、若有以下程序:voidmain(){char*a[3]={"I","love","China"};char**ptr=a;printf("%c%s",*(*(a+1)+1),*(ptr+1));}这段程序的输出是()A)IlB)ooC)oloveD)Ilove二、程序题1、计算字符串中子串出现的次数。要求:用一个子函数subString()实现,参数为指向字符串和
温馨提示
- 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版)》
- 9.1铸牢中华民族共同体意识 课件(共35张) 2026-2027学年统编版道德与法治9年级上册
- T/CEPCA 1007-2024电力工程调试企业能力评价
- 校园防欺凌AI预警系统技术方案
- 事业编计算机岗2026必刷题试卷及解析
- 【新教材】统编版(2024)九年级上册道德与法治全册知识点背诵提纲
- 2026秋初中英语新人教版九年级上册第一单元教案
- 2026秋新教材人教版四年级上册数学|第五单元 平行四边形和梯形 教案(共12课时)
- NBT 10209-2019《风电场工程道路设计规范》
- 2026年长期照护师资格考试试卷及答案(共五套)
- 2026分红险与万能险保险销售资质考试试题及答案
评论
0/150
提交评论