2006年4月全国计算机等级考试二级C语言考前密卷1
来源:优易学  2011-11-20 15:27:03   【优易学:中国教育考试门户网】   资料下载   IT书店

 

pb=&x;         b)pb=x;  
   c)*pb=&x;        d)*pb=*x
   答案:a
   评析:选项a将变量x的地址赋给指针变量pb,使pb指向x’选项b是将x的值当作地址赋给指针pb,db指向一个地址等于x值的内存单元;选项c将x的地址赋给指针pb指向的地址等于x的内存单元。
(16)设整型数i=5,则printf("%d",i+++++i);的输出为________。
   a)10           b)1l
   c)12           d)语法错误
   答案:d
   评析:c语言中有基本的算术运算符(+、-、*、/)还包括自增自减运算符(++、--),在c语言解析表达式时,它总是进行贪婪咀嚼,这样,该表达式就被解析为i++ ++ +i,显然该表达式不合c语言语法。
(17)若要用下面的程序片段使指针变量p指向一个存储整型变量的动态存储单元
   int   *p;
   p=___________malloc(sizeof(im));
   则应填入__________。
   a)int           b)int  
   c)(*int)          d)(int*)
   答案:d
   评析:不论p是指向什么类型的指针变量,都可以通过强制类型转换的方法使之类型一致,强制类型转换的格式为(数据类型+)。
(18)下面程序输出的结果是__________。
   main()
   {
   int i=5,j=9,x;
   x=(i==j?i:(j=7));
   printf("\n%d,%d",i,j);
   }
   a)5,7           b)5,5 
   c)语法错误         d)7,5
   答案:a
   评析:条件表达式的一般形式为:表达式i?表达式2:表达式3;先求解表达式1,若为真则求解表达式2;若表达式l的值为假,则求解表达式3。本题中先判断i==j,不等,执行j=7;然后执行x=7。故本题为a。(19)若执行下面程序时从键盘上输入5,
   main()
   {
   int x:
   scanf("%d",&x);
   if(x++>5)printf("%d\n",x);
   else printf("%d\n",x--);
   }
   则输出是________。
   a)7            b)6  
   c)5            d)4
   答案:b
   评析:根据c语言的语法,x++是在使用x之后,再将x的值加1,在if语句中,x的值为5,条件不成立,执行else后面的语句,因为x的值已经加1,为6,所以打印结果为6。
(20)若有以下定义和语句:
   int a[]={l,2,3,4,5,6,7,8,9,10},*p=a;
   则值为3的表达式是_________。
   a)p+=2,*(p++)       b)p+=2,*++p
   c)p+=3,*p++        d)p+=2,++*p
   答案:a
   评析:引用一个数组元素,可以用:(1)下标法,如a[i]形式;(2)指针法,如*(a+i)或*(p+i)。数组的下标从0开始,值为3的数组元素是a[2]。b、c的内容为a[3],d将a[2]前自加,结果为4。
(21)设a、b和c都是int型变量,且a=3、b=4、c=5,则下面的表达式中,值为0的表
   达式是___________。
   a)’a’&&’b’        b)a<=b 
   c)a‖+c&&b-c       d)!((a   答案:d
   评析z选项a:’a’&&’b’是字符a与b的相与,不为0;选项b:a<=b,由题中变量赋值可知,结果为1。选项c:a‖+c&&b-c,结果为1;选

上一页  [1] [2] [3] [4] [5] [6] [7] [8] 下一页

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训