网站大量收购独家精品文档,联系QQ:2885784924

经典C语言试题(四).doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
注释:当通过一个运算对象即可决定逻辑运算的结果时,则对另一个运算对象不做处理。 【1.72】已知:int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; int (*ptr)[3]=a,*p=a[0]; 则以下能够正确表示数组元素a[1][2]的表达式是【1.72】答案:A。 A) *(*(a+1)+2) B) *(*(p+5)) C) (*ptr+1)+2 D) *((ptr+1)[2]) 注释:p是一个一级指针,选项B中对它进行了两次*运算是错误的。ptr是一个指向一维数组的指针,它所指向的数组有三个元素,对于这样一个指针,对它进行两次**运算才能取出地址单元中所存的数据,C选项中*ptr表示数组第一行的首地址,该地址是一维数组的地址,+3表示加上三个它所指向的数据类型的长度,所以(*ptr+1)+2是数组中数值4的地址。根据以上分析,选项D对ptr进行了两次地址操作(*和[]),所以结果应是数据,但是它加1后指向数组第二行,根据后面[]中2它的地址增加两个一维数组的长度,就指向数组的最后一行,再做*运算就是数10,即a[3][0]。 【1.73】已知:int a[ ]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a;则值为3的表达式是 。 A) p+=2,*(p++) B) p+=2,*++p C) p+=2,*p++ D) p+=2,++*p A 【1.74】已知:int a[]={1,2,3,4}, y, *p=a;则执行语句y = (*++p)--;之后, 数组a各元素的值变为______。 A) 0,1,3,4 B) 1,1,3,4 C) 1,2,2,4 D) 1,2,3,3 变量y的值是____。 A) 1 B) 2 C) 3 D) 4 B 【1.75】已知:int a[ ]={1,3,5,7}, y *p= a;为使变量y的值为3,下列语句正确的是____。 A) y=++*p++; B) y=++(*p++); C) y=(++*p)++; D) y=(*++p)++; D 【1.76】已知:int x[ ]={ 1,3,5,7,9,11 },*ptr=x;则能够正确引用数组元素的语句是 。 A) x B) *(ptr--) C) x[6] D) *(--ptr) B 【1.77】函数的功能是交换变量x和y中的值,且通过正确调用返回交换的结果。能正确执行此功能的函数是【1.77】答案:D。 A) funa (int *x, int *y) B) funb (int x, int y) { int *p; { int t; p=x;*x=*y;*y=*p; t=x;x=y;y=t; } } C) func (int *x, int *y) D) func (int *x, int *y) { *x=*y;*y=*x; { *x=*x+*y;*y=*x-*y;*x=*x-*y; } } 注释:答案D是另一种交换两个变量值的算法。 【1.78】有定义如下: struct sk { int a; float b; }data ,*p; 如果 p=data;则对于结构变量data的成员a的正确引用是____。 A)(*).data.a B) (*p).a C) p-data.a D) p.data.a B 【1.79】已知: struct st { int n; struct st *next; }; static struct st a[3]={1,a[1],3,a[2],5,a[0]},*p; 如果下述语句的显示是2,则对p的赋值是__【1.79】答案:C__。 printf(%d,++(p-next-n)); A) p=a[0]; B) p=a[1]; C) p=a[2]; D) p=a[3]; 注释:使用C对p进行赋值,则p-next是a[0]的地址,引用其成员n再做前增1运算,结果就是2。 【1.80】已知: struct person { char name[10]; int age; }class[10]={LiMing,29,ZhangHong,21,WangFang,22}; 下述表达式中,值为72的一个是____。 A) class[0]-age + class[1]-age+ class[2]-age B) class[1].name[5] C) person[1].name[5] D) clase-name[5] B 【1.81】已知: struct { int i; char c; float a; }test; 则sizeof

文档评论(0)

飞扬的岁月 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档