- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6指针答案
本章要求
掌握指针与指针变量的概念,指针与地址运算符;
掌握指针变量的定义和引用方法;
掌握指针变量与数组、字符串之间的联系;
掌握指针变量作函数的参数的用法;
指针数组、指向指针的指针;
掌握函数指针、返回指针函数的定义方法。
重要考点提示:
对指针概念的理解;
指针做函数的参数;
字符类指针的操作;
对指针使用的理解。
选择题
1.下列各选项中赋值表达式正确的是(A )。
假设有定义 :int k, *q;
q=(k+1)
q=k;
q=k
*q=k;
2.以下程序中调用scanf函数给变量a输入数据的方法是错误的,其错误的原因是( B )。
main()
{ int *p, *q, a, b;
p=a;
printf(“input a:”);
scanf(“%d”,*p); /*写出正确的?*/
}
*p表示的是指针变量p的地址
*p表示的是变量a的值,而不是变量a的地址
*p表示的是指针变量p的值
*p只能用来说明p是一个指针变量
3.已知:int a, *p=a; 则下列函数调用中错误的是( )
scanf(“%d”,a);
scanf(“%d”,p);
printf(“%d”,a);
printf(“%d”,p);
4.已知:char c, *p=c, *q;选择正确的语句( C )。
p*=3;
p/=q;
p+=3;
p+=q;
5.设有说明int (*ptr)[M]; 其中的标识符ptr是( C )
M个指向整形变量的指针
指向M个整形变量的函数指针
一个指向具有M个整形元素的一维数组的指针
具有M个指针元素的一维数组的指针
6.已知:char s[10],*p=s;则在下列语句中,错误的语句是( B )
p=s+5
s=p+s;
s[2]=p[4];
*p=s[0]
已知:char s[100]; int i; 则在下列引用数组元素的语句中。错误的表示形式是( D )。
s[i+10]
*(s+i)
*(i+s)
*((s++)+i)
8.已知:char s[20]= “programming”, *ps=s;则不能引用字母O的表达式( A )
ps+2
s[2]
ps[2]
ps+=2,*ps
9.已知:char **s ;正确的语句是( B )
s=“computer”;
*s=“computer”;
**s=“computer”;
*s=‘A’
10.已知: char c[8]= “beijing”,*s=c; int i; 则下面的输出语句中,错误的是( B )。
printf(“%s\n”,s);
printf(“%s\n”,*s);
for(i=0;i7;i++) printf(“%c”,c[i]);
for(i=0;i7;i++) printf(“%c\n”,s[i]);
11.已知:char *aa[2]={“abcd”, “ABCD”};则以下说法正确的是( D )。
aa数组元素的值分别是“abcd”和“ABCD”
aa是指针变量,它指向含有两个数组元素的字符型一维数组
aa数组的两个元素分别存放的是含有4个字符的一维字符数组的地址
aa数组的两个元素中各自存放了字符‘a’和‘A’的地址
12.已知:int a[3][4], *p=a[0][0]; p+=6;那么*p和( C , D)的值相同。
*(a+6)
*(a[0]+6)
*(a[1]+2)
a[1][2]
13.已知:int a[]={1,2,3,4},*p=a[1];则执行语句y=(*--p)++ ;之后,变量y的值为( A ).
(A) 1 (B) 2 (C) 3 (D) 4
14.已知:int a[2][3]={2,4,6,8,10,12};则正确表示数组元素地址的是( A )
*(a+1)
*(a[1]+2)
a[1]+3
a[0][0]
15.若有以下定义和语句,则对a数组元素的正确引用为( C )。
int a[2][3], (*p)[3];
p=a;
(A)(p+1)[0]
(B) *(*(p+2)+1)
(C) *(p[1]+1)
(D) p[1]+2
16.若有 int a[][4]={1,2,3,4,5,6,7,8,9,10},*p=*(a+1);则值为9的表达式是( B )
p+=3,*p++
p+=4, *(p++)
p+=4,*++p;
p+=4,++*p
17.如有语句int x,y=0,z,*p[3]; p[0]=x;p[1]=y;p[2]=z;以下表达式中有语法错的是( B )
(A) y++ (B) p
文档评论(0)