第十章 指针练习题Word格式文档下载.docx

上传人:b****1 文档编号:15341023 上传时间:2022-10-29 格式:DOCX 页数:12 大小:19.34KB
下载 相关 举报
第十章 指针练习题Word格式文档下载.docx_第1页
第1页 / 共12页
第十章 指针练习题Word格式文档下载.docx_第2页
第2页 / 共12页
第十章 指针练习题Word格式文档下载.docx_第3页
第3页 / 共12页
第十章 指针练习题Word格式文档下载.docx_第4页
第4页 / 共12页
第十章 指针练习题Word格式文档下载.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

第十章 指针练习题Word格式文档下载.docx

《第十章 指针练习题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《第十章 指针练习题Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。

第十章 指针练习题Word格式文档下载.docx

a,&

*point,point

10.3下列程序执行后的输出结果是

voidfunc(int*a,intb[])

{b[0]=*a+6;

}

main()

{inta,b[5];

a=0;

b[0]=3;

func(&

a,b);

printf("

%d\n"

b[0]);

}

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两个指针所指字符串中是否有'

10.6下面说明不正确的是

A)chara[10]="

B)chara[10],*p=a;

p="

C)char*a;

a="

D)chara[10],*p;

p=a="

10.8执行以下程序后,a,b的值分别为

{inta,b,k=4,m=6,*p1=&

k,*p2=&

m;

a=p1==&

b=(*p1)/(*p2)+7;

printf("

a=%d\n"

a);

b=%d\n"

b);

A)-1,5B)1,6C)0,7D)4,10

C

10.10以下程序有错,错误原因是

{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;

没有意义,可能会影响后面语句的执行结果

10.11下面程序段的运行结果是

chara[]="

lanuage"

*p;

p=a;

while(*p!

=′u′){printf("

%c"

*p-32);

p++;

A)LANGUAGEB)languageC)LAND)langUAGE

10.12有以下语句,则对a数组元素的引用不正确的是(0≤i≤9)

inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;

A)a[p-a]B)*(&

a[i])C)p[i]D)*(*(a+i))

10.13函数fun的返回值是

fun(char*a,char*b)

{intnum=0,n=0;

while(*(a+num)!

=′\0′)num++;

while(b[n]){*(a+num)=b[n];

num++;

n++;

returnnum;

A)字符串a的长度B)字符串b的长度

C)字符串a和b的长度之差D)字符串a和b的长度之和

10.15下面判断正确的是

A)char*a="

等价于char*a;

*a="

B)charstr[5]={"

};

等价于charstr[]={"

C)char*s="

等价于char*s;

s="

D)charc[4]="

abc"

d[4]="

等价于charc[4]=d[4]="

10.17有如下说明

inta[10]={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.19下列程序的运行结果是

voidfun(int*a,int*b)

{int*k;

k=a;

a=b;

b=k;

{inta=3,b=6,*x=&

a,*y=&

b;

fun(x,y);

%d%d"

a,b);

A)63B)36C)编译出错D)00

10.20若有说明语句

Itismine"

char*p="

则以下不正确的叙述是

A)a+1表示的是字符t的地址

B)p指向另外的字符串时,字符串的长度不受限制

C)p变量中存放的地址值可以改变

D)a中只能存放10个字符

10.21以下程序的运行结果是

sub(intx,inty,int*z)

{*z=y-x;

{inta,b,c;

sub(10,5,&

a);

sub(7,a,&

b);

sub(a,b,&

c);

%4d,%4d,%4d\n"

a,b,c);

A)5,2,3B)-5,-12,-7

C)-5,-12,-17D)5,-2,-7

10.23下面程序的输出结果是

#include<

stdio.h>

string.h>

{char*p1="

*p2="

ABC"

str[50]="

xyz"

strcpy(str+2,strcat(p1,p2));

%s\n"

str);

A)xyzabcABCB)zabcABC

C)xyabcABCD)yzabcABC

 

同步练习二

10.1b下列关于指针变量赋空值的说法错误的是

A)当赋空值的时候,变量指向地址为0的存储单元

B)赋值语句可以表达为变量名=′\0′;

C)赋值语句可以表达为变量名=0;

D)一个指针变量可以被赋空值

10.4b下列程序是用来判断数组中特定元素的位置所在。

如果输入如下整数:

876675896101301401980431451777

#include<

conio.h>

intfun(int*s,intt,int*k)

{inti;

*k=0;

for(i=0;

i<

t;

i++)

if(s[*k]<

s[i])*k=i;

returns[*k];

{inta[10]={876,675,896,101,301,401,980,431,451,777},k;

clrscr();

fun(a,10,&

k);

%d,%d\n"

k,a[k]);

则输出结果为

A)7,431B)6C)980D)6,980

10.6b有以下程序

{char*p="

abcde\0fghjik\0"

%d\n"

strlen(p));

程序运行后的输出结果是

A)12B)15C)6D)5

10.8b阅读下面程序,执行后的结果为

#include"

stdio.h"

voidfun(int*a,int*b)

{intk;

k=5;

*a=k;

*b=*a+k;

{int*a,*b,x=10,y=15;

a=&

x;

b=&

y;

fun(a,b);

%d,%d\n"

*a,*b);

A)10,15B)5,15C)5,10D)15,10

10.10b阅读下列程序,则执行后的结果为

{intc[][4]={1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56};

%x,%x\n"

c[2][2],*(*(c+1)+1));

A)3e,6B)62,5C)56,5D)3E,6

10.12b现有如下程序段

int*fun(int*a,int*b)

{intc;

c=*a%*b;

return&

c;

{inta=5,b=19,*c;

c=fun(&

++*c);

则程序段执行后的结果为

A)8B)7C)6D)5

10.13b现有inta,*b;

b=&

,则下列运算错误的是

A)*&

aB)&

*aC)*&

bD)&

*b

10.14b现有如下定义语句

int*p,s[20],i;

p=s;

表示数组元素s[i]的表达式不正确的是

A)*(s+i)B)*(p+i)

C)*(s=s+i)D)*(p=p+i)

10.15b阅读如下程序段,这个程序在编译的时候会有一个警告,下列关于这个警告叙述正确的是

#defineN10

int*fun(inta[N],intn)

{inti,b[N];

n;

b[i]=a[i];

return(b);

{inta[N]={12,34,45,5,6,34,4,655,2};

int*k;

k=fun(a[N],5);

*k);

A)指针k没有指向任何对象而成为“无向指针”,所以这里会产生警告

B)return语句不应该有括号,所以在这里会有警告

C)return语句的返回值类型与指针k的基类型不一致,这里会产生警告

D)数组赋值的时候没有把数组全部都赋初值,所以在这里会有警告

10.16b现有如下程序段

{inta[5][6]={23,3,65,21,6,78,28,5,67,25,435,76,8,22,45,7,8,34,6,78,32,4,5,67,4,21,1};

inti=0,j=5;

*(&

a[0][0]+2*i+j-2));

则程序的输出结果为

A)21B)78C)23D

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 天文地理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1