77范文网 - 专业文章范例文档资料分享平台

C语言第九章指针习题

来源:网络收集 时间:2020-04-16 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

第九章 指针 9.1 选择题

[题9.1] 以下程序的运行结果是____。 sub(int x,int y,int *z) {*z=y-x;}

main()

{int a,b,c; sub(10,5,&a); sub(7,a,&b); sub(a,b,&c);

printf(”%4d,%4d,%4d\n”,a,b,c); }

A) 5,2,3 B)-5,-12,-7 C)-5,-12,-17 D)5,-2,-7

[题9.2] 执行以下程序后,a的值为[1l,b的值为[2]。 main()

{int a,b,k=4,m=6,*p1=&k,*p2=&m; a=p1==&m;

b=(-*p1)/(*p2)十7; print{(”a=%d\n”,a); printf(”b=%d\n”,b); }

[1l A)一1 B)1 C)0 D)4 [2] A)5 B)6 C)7 D)10

[题9.3]下面程序应能对两个整型变量的值进行交换。以下正确的说法是____ main()

{inta=10,b=20;

printf(”(1)a=%d,b=%d\\n”,a,b); swap(%d,%b);

printf(”(2)a=%d,b=%d\n”,a,b) }

Swap(int p,int q) {int t;

t=p;p=q;q=t;} A)该程序完全正确

B)该程序有错,只要将语句swap(&d,&b);中的参数改为a,b即可

C)该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针(执 行语句不变)即可 D)以上说法都不正确

[题9.4]有四组对指针变量进行操作的语句,以下判断正确的选项是____ (1)int *p,*q; q=p; int a,*p,*q; p=q=&a; (2)int a,*p,*q; q=&a;p=*q; int a=20,*p; *p=a;

(3)int a=b=0,*p; p=&a; b=*p; int a=20,*p,*q=&a;*p=*q; (4)int a=20,*p,*q=&a; p=q; int p,*q; q=&p;

A)正确:(1); 不正确:(2),(3),(4) B)正确:(1),(4); 不正确:(2),(3)

C)正确:(3); 不正确:(1),(2),(4) D)以上结论都不正确

[题9.5]以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是____。 main()

{ int *p,*q,a,b; P=&a;

printf(\:”); scanf(\%d”,*p);

A)*p表示的是指针变量p的地址

B)*p表示的是变量a的值,而不是变量a的地址 C)*p表示的是指针变量p的值

D)*p只能用来说明p是一个指针变量

[题9.6]以下程序有错,错误原因是____ 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;语句

[题9.8]已有定义 int k=2;int *ptrl,*ptr2;且ptrl和ptr2均已指向变量k,下面不能正确执行的赋值语句是____。

A) k=*ptr1+*ptr2; B)ptr2=k;

C) ptr1=ptr2; D)k=*ptrl*(*ptr2); 一O

[题9.9]变量的指针,其含义是指该变量的____. A)值 B)地址 C)名 D)一个标志

[题9.10]若已定义inta=5;下面对(1),(2)两个语句的正确解释是____ (1)int *p=&a; (2)*p=a;

A)语句(1)和(2)中的*p含义相同,都表示给指针变量p赋值

B)(1)和(2)语句的执行结果,都是把变量a的地址值赋给指针变量p C)(1)在对p进行说明的同时进行初始化,使p指向a (2)将变量a的值赋给指针变量p

D)(1)在对p进行说明的同时进行初始化,使p指向a (2)将变量a的值赋于*p

[题9.11] 若有语句int*point,a=4;和point=&a; 下面均代表地址的一组选项是____. A)a,point,*&a B)&*a,&a,*point C)*&point,*point,&a D)&a,&*point,point

[题9.13]若有说明:int *p,m=5,n; 以下正确的程序段是____ A) p=&n;

scanf(”%d”,&p); B) p=&n;

scanf(”%d”,*p); C) scanf(”%d”,&n); *p=n; D)p=&n; *p=m;

[题9.14] 若有说明: int *pl,*p2,m=5,n;以下均是正确赋值语句的选项是____ A)p1=&m;p2=&p1;

B)p1=&m;p2=&n;*p1=*p2; C)p1=&m;p2=p1; D)p1=&m;*p2=*p1;

[题9.15]已有变量定义和函数调用语句:int a=25; print_value(&a);下面函数的 正确输出结果是____。

void print_value(int * x) {printf(”%d\n”,++*x);} A)23 B)24 C)25 D)26

[题9.16] 下面判断正确的是____。 A)char *a=\”;等价于char *a;*a=\”;

B)char strLl0]={“china”};等价于char str[10]; str[]={“china”}; C)char *s=”china”;等价于char *s;s=\”; D)charc[4]=\”,d[4]=\”;等价于char c[4]=d[4]=\”;

[题9.17]设char *s=”\ta\017bc\;则指针变量s指向的字符串所占的字节数是____. A)9 B)5 C)6 D)7

[题9.18]下面程序段中,for循环的执行次数是____。 char *s=”\ta\018bc”;

for( ;*s!=’\0’;s++) printf(“*”); A)9 B)5 C)6 D)7

[题9.19]下面能正确进行字符串赋值操作的是____。

A)char s[5]={'ABCDE'}; B)char s[5]={‘A’,’B’,’C’,’D’,’E’}; C)char * s; s=”ABCDE”; D)char *s; scanf(”%s”,s); [

[题9.20]下面程序段的运行结果是____。 Char*S=\;

s+=2; printf(”%d”,s);

A)cde B)字符’c’ C)字符’c’的地址 D)无确定的输出结果

[题9.21]设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确 执行的赋值语句是____。

A)c=*p1+*p2; B)p2=c; C)p1=p2; D)c=*p1*(*p2);

[题9.22]设有下面的程序段:

Char s[]=\; char *p; p=s; 则下列叙述正确的是____。 A)s和p完全相同

B)数组s中的内容和指针变量p中的内容相等 C)s数组长度和p所指向的字符串长度相等 D)*p与s[0]相等

[题9.23] 下面程序段的运行结果是____ Char *format=”%s,a=%d,b=%d\\n”; int a=1,b=10; a+=b;

print{(format,”a+=b”,a,b); A)for,”a+=b”,ab B)format,”a+=b” C)a+=b,a=ll,b=10 D)以上结果都不对

[题9.24]下面程序段的运行结果是____ Char *p=”%d,a=%d,b=%d\\n” int a=111,b=10,c; c=a%b; p+=3; printf(p,c,a,b);

A)1,a=111,b=10 B)a=1,b=111 C)a=111,b=10 D)以上结果都不对

[题9.25]以下正确的程序段是____ A)char str[20]: scanf(”%s”, &str); B)char *p; , scanf(”%s”, p); C)char str[20]; scanf(”%s”,&str[2]; D)char str[20], *p=str; scanf(”%s”,p[2]);

[题9.26] 以下正确的程序段是____。 A)char strl[ ]=\”, str2[ ]=”abcdef”; strcpy(strl, str2);

B)char str[10], *st=”abcde”; strcat(str, st); C)char str[10]=” ”, *St=”abcde”; strcat(str, st); D)char *stl=”12345\,*st2=”abcde”; strcat(stl, st2);

[题9.27] 下面程序段的运行结果是____。 charstr[]=”ABC”, *p=str; printf(”%d\n”,*(p+3));

A)67 B)0 C)字符’C’的地址 D)字符’C’ [题9.28] 下面程序段的运行结果是____. Char *p=”abcdefgh”; P+=3;

printf(”%d\n”,strlen(strcpy(p,”ABCD\; A)8 B)12 C)4 D)7

[题9.29] 下面程序段的运行结果是____. Char a[]=”1anguage\,*p; p=a;

while(*p!=’u’{print{(”%c,*p-32);p十十;} A)LANGUAGE B)1anguage C)LANG D)1angUAGE

[题9.30]若有语句:char sl[]=”string”,s2[8],*s3,*s4=”string2”;则对库函数strcpy的错误调用是____。

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C语言第九章指针习题在线全文阅读。

C语言第九章指针习题.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/975430.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: