C语言指针练习+答案+讲解

上传人:M****1 文档编号:562207151 上传时间:2024-01-30 格式:DOC 页数:19 大小:178KB
返回 下载 相关 举报
C语言指针练习+答案+讲解_第1页
第1页 / 共19页
C语言指针练习+答案+讲解_第2页
第2页 / 共19页
C语言指针练习+答案+讲解_第3页
第3页 / 共19页
C语言指针练习+答案+讲解_第4页
第4页 / 共19页
C语言指针练习+答案+讲解_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《C语言指针练习+答案+讲解》由会员分享,可在线阅读,更多相关《C语言指针练习+答案+讲解(19页珍藏版)》请在金锄头文库上搜索。

1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流C语言指针练习+答案+讲解.精品文档.第七章 指针71 选择题1 若有说明:int a=2, *p=&a, *q=p;,则以下非法的赋值语句是(D)。A p=q; B *p=*q; C a=*q; D q=a;a是整型数,int *p,*q定义了指针,p,q是指向整型的指针。p取得a的地址,而q取得p的地址p,q是指针(也就是一个地址),而*p和*q是这个指针指向的整型数值(存放在这个地址的值)。A) 把q的地址赋给p,则p和q完全一样了,都指向一个数2B) 把q中数据个pC) 把q中数据给aD) a中数据是2,不能够给一个地址。除非*q=a

2、2 若定义:int a=511, *b=&a;,则printf(%dn, *b);的输出结果为:D A 无确定值 B a的地址 C 512 D 511int a=511,*b=&a;a 是整形变量b 是整形指针变量,指向 aprintf(%dn,*b);就是输出指针变量 b,所指变量的值输出结果5113 已有定义int a=2, *p1=&a, *p2=&a; 下面不能正确执行的赋值语句是(B)。A a=*p1+*p2; B p1=a; C p1=p2; D a=*p1*(*p2);47、已知在程序中定义了如下的语句:int *P1,*P2;int k;p1=&k;p2=&k;则下列语句中不能

3、正确执行是( B )A、k=*P1+*P2; B、p2=k; C、P1=P2; D、K=*P1 * (*P2);P1 P2是指针,K是整型变量,变量怎么可以赋值给指针呢?A其实是执行了K=K+K(P1和P2都指向K,所以*P1 *P2其实都是指K)C是赋值语句D其实执行了K=K*K4 变量的指针,其含义是指该变量的(B)。A 值 B 地址 C 名 D 一个标志5 若有说明语句:int a, b, c, *d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是(A)。A scanf(%d%d%d, &a, &b, d); B scanf(%d%d%d, a, b, d);C sca

4、nf(%d%d%d, &a, &b, &d); D scanf(%d%d%d, a, b,*d);对于int c,*d=&c;,c是一整型数据,d是一指针,它指向变量c(即d=&c,*是指针类型的说明符),所以,输入c的值可以用scanf(%d,&c); 也可以用scanf(%d,d);6 若已定义int a=5; 下面对(1)、(2)两个语句的正确解释是(D)。(1) int *p=&a; (2) *p=a;A 语句(1)和(2)中的*p含义相同,都表示给指针变量p赋值。B (1)和(2)语句的执行结果,都是把变量a的地址值赋给指针变量p。C (1)在对p进行说明的同时进行初始化,使p指向a

5、;(2)变量a的值赋给指针变量p。D (1)在对p进行说明的同时进行初始化,使p指向a; (2)将变量a的值赋予*p。A:(1):*p,定义p为int类型指针(2):*p,表示p所指向的变量B(1)把变量a的地址赋给指针变量p(2)把变量a的值,赋值给P所指向的变量C前半句正确,后半句错误,(2)是把变量a的值赋值给P所指的变量。7 若有语句int *p, a=10; p=&a; 下面均代表地址的一组选项是(D)。A a, p, *&a B &*a, &a, *pC *&p, *p, &a D &a, &*p, pint *p 是定义一个指针,p=&a ,p指向a的地址,*p=a, *指针名

6、是指取该指针所指地址中的内容,&a 为a的地址,&*p=&a,p中放的为a 的地址0.2345px8 若需要建立如图所示的存储结构,且已有说明double *p, x=0.2345; 则正确的赋值语句是()。 BA p=x; B p=&x; C *p=x; D *p=&x;9 若有说明:int *p, a=1, b; 以下正确的程序段是(B)。A p=&b; B scanf(%d, &b);scanf(%d, &p); *p=b;C p=&b; D p=&b;scanf(%d, *p); *p=a;A,B中 p是b的地址 那么如果要输入b应该是scanf(%d, p);C中 p还没定义 给*p

7、赋值就是给一个没有开辟的地址赋值了D是正确的 意思是p为b的地址,将p地址上的数变成a, 等价于b=a10有如下语句:int m=6, n=9, *p, *q; p=&m; q=&n; 如图1所示,若要实现下图所示的存储结构,可选用的赋值语句是(C)。mpnqpmqn A *p=*q; B p=*q; C p=q; D *p=q;11以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是(B)。 #include main()int *p, *q, a, b;p=&a;printf(input a:);scanf(%d, *p);A *p表示的是指针变量p的地址B *p表示的

8、是变量a的值,而不是变量a的地址C *p表示的是指针变量p的值D *p只能用来说明p是一个指针变量scanf后面的参数是地址,是接收的值放到这个地址12下面程序的功能是从输入的十个字符串中找出最长的那个串。请在_处填空。 #include stdio.h #include string.h #define N 10 main()char sN81, * t;int j; for (j=0; jN; j+) gets (sj);t= *s; for (j=1; jN; j+) if (strlen(t)strlen(sj) _A_; printf(the max length of ten st

9、rings is: %d, %sn, strlen(t), t);A t=sj B t=&sj C t= s+ D t=sj013下面判断正确的是(C)。A char *s=girl; 等价于 char *s; *s=girl;B char s10=girl; 等价于 char s10; s10=girl;C char *s=girl; 等价于 char *s; s=girl;D char s4= boy, t4= boy; 等价于char s4=t4= boy14设char *s=ta017bc;则指针变量s指向的字符串所占的字节数是(C)。A 9 B 5 C 6 D 7首先,字节数不是指字

10、符串长度,字符串长度比存储字节数少一。t 是一个转义字符 相当于键盘“Tab”键a 普通字符017 转义字符 ASCII代码值为8进制数17即10进制数15的那个符号b 普通字符c 普通字符 字符串结束标志0s是字符串类型。每一个都是char型变量;char型变量的二进制长度是8,也就是一个字节,所以指针变量s 指向的字符串所占字节数是6 ,字符串长度是5.15下面程序段中,for循环的执行次数是(C)。 char *s=ta018bc;for (;*s!=0;s+) printf(*);t a 018 b c 0各一次A 9 B 5 C 6 D 716以下不能正确进行字符串赋初值的语句是(A

11、)。A. char str5= good!; B char *str=good!;C. char str=good!; D char str5=g, o,o, d;1 A.char str5=good!;/这个不符合C语言的语法规定,字符串初始化是这样写的:char str6=good!; /因最后还有一个结束符,因此数组元素应该是6个。 2 题目表述有些不准确 C,D叫初始化,B叫赋值。 3 题目中的单双引号全部是中文的,这也不符合C语言语法。应该改为英文的。17若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是(A)。A p=2*(int *)malloc(sizeo

12、f(int);B p=(int *)malloc(2*sizeof(int);C p=(int *)malloc(2*2);D p=(int*)calloc(2, sizeof(int);malloc的全称是memory allocation,中文叫动态内存分配,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存。18下面程序段的运行结果是(C)。char *s=abcde; s+=2; printf(%d, s);A cde B 字符c C 字符c的地址 D 无确定的输出结果19设有如下的程序段:char s=girl, *t; t=s;则下列叙述正确的是(D)。A s和t完全相同B 数组s中的内容和指针变量t中的内容相等C s数组长度和t所指向的字符串长度相等D *t与s0相等20以下正确的程序段是(B)。A char s20;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号