国内最大的教育考试网站之一
2008年11月软考软件设计师笔试考前全真模拟试题(15)
2008-10-23 13:18:37 来源:优易学(Qnr.Cn) 作者:Qnr.Cn

  距2008年11月计算机软件资格考试不远了。大家一起来交流一下吧!优易学网站整理了2008年11月计算机软件资格考试考前练习!优易学网站和各位一起学习!希望各位能够顺利通过2008年11月计算机软件资格考试!
  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。所以解答是④。

【字体: 】【收藏本页】【打印本文】【告诉好友 】【投稿邮箱