当前所在位置:珠峰网资料 >> 计算机 >> 软件水平 >> 正文
2015年中级软考软件设计笔试考前练习(13)
发布时间:2011/6/25 17:08:15 来源:城市学习网 编辑:admin
  1.设有定义“int a=3, b,*p=&a;”,则下列语句中使 b不为3的语句是( )
  ① b=* &a;
  ② b=* p;
  ③ b=a;
  ④ b=*a;
  2 .设指针x指向的整型变量值为25,则"printf("%d\n",++ *x);"的输出是( )
  ① 23
  ② 24
  ③ 25
  ④ 26
  【解】定义有 int a=3, b,*p=&a;对b赋值的表达式有*&a、*p、a 、*a。引用变量。的值有两种方法,一是直接引用a,二是通过a的指针间接引用a。对于后者,又有多种表达方法,通过指向a的指针p,间接引用a的内容,如*p。或通过求地址运算符由变量a得到其指针&a,再由这指针表达式间接引用 a的内容,如* &a。所以表达式*&a、*p和a都能引用变量a的值,而使b的值为3。而表达式。a是错误的,因为a不是指针变量,不能对它施行取内容运算符。。所以解答是④。
  【解】若指针变量x指向某个变量,例如指向变量v,并且变量v的值是25,则表达式++ *x的值是26。这是因为表达式的计算顺序可加圆括号表达成(++(*x)),首先是*x,是对X所指变量V的引用,所以++ *X就是++V。++V是先让变量V增1,并以增至后的V的值为表达式++V的结果,所以其值是 26。所以解答是④。
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved