-> -> ->
2010年全国计算机等级考试专家预测试卷(一)二级公共基础知识和C语言程序设计(十)
时间:2011-03-11 22:12:25
微信搜索关注"91考试网"公众号,领30元,获取事业编教师公务员等考试资料40G
条件,--x=5,则!(一一x)为零,循环条件不成立,结束循环。----------------------------------------12、 若有下列定义,则对a数组元素地址的正确引用是( )。int a[5],*p=a; A.p+5 B.*a+1C.&a+1D.&a[0] 参考答案: D 本题考查数组元素的地址的引用A中,p+5 引用的是a[5]的地址,而数组a只有5个元素,即a[O]、a[1]、a[2]、a[3]、a[4],所以引用错误(注:数组元素下标从O开始);B中,*a+1指的是将数组a的第一个元素加1;选项c中,不存在,这种引用方式,D中,&a[O]引用的是数组的首地址。----------------------------------------13、 执行语句printf("%u\n",+12345)的输出结果是( )。 A.12345B.0 C.-1 D.非定值 参考答案: A “%u”表示输出无符号的整数(如果输出值前有符号,将自动转化为相应的无符号数输出)。----------------------------------------14、 定义下列结构体(联合)数组:struct st{ char name[15];int age;}a[10]={"ZHAO",14,"WANG",15,"LIU",16,"ZHANG",17};执行语句printf("%d,%c",a[2].age,*(a[3].name+2))的输出结果为(). A.15,A B.16,H C.16,AD.17,H 参考答案: C 本题考查结构体数组。a[2].age为结构体a[2]的age成员,即a[3].name-为指向结构体a[3]的name成员的第一个元素的指针,即指向“z”,(a[3].name+2)将指针后移两位指向第三个元素“A”,*(a[3].name+2))是取指针所指向地址的内容。----------------------------------------15、 下列程序的输出结果是( )。#includeint fun(int x){ int p;if(x==0|| x==1)return 3;elsep=x-fun(x-2);return p;)void main() A.略B.略C.略D.略 参考答案: A 本题考查函数的递归调用。函数在调用时,fun(5):a=5一fun(3)一>fun3:a=3一fun(1)一>fun(1):a=3,相反fun(3):a=3-3=O一>fun(5):a=5一0=5。结果为5。----------------------------------------16、下列程序的输出结果是( )。point(char*pt);main(){char b[4]={''a'',''c'',''s'',''f''},*pt=b;pt=point(pt);printf("%c\n",*pt);}point(char*p){ p+=3;return p;)。} A.s B.e C.f D.a 参考答案: C 本题考查函数的调用及参数传递,当执行函数point时,刚开始指针p指向“a”,经过+3,指针p指向“f”,所以最后的输出结果是f。----------------------------------------17、 下列选项中不会引起二义性的宏定义是( )。 A.#define S(x)x*x B.#define S(x)(x)*(x)C.#define S(x)(x*x)D.#define S(x)((x)*(x)) 参考答案: D 本题考查参数的宏的替换。避免二义性有些参数表达式必须括号,
微信搜索关注"91考试网"公众号,领30元,获取公务员事业编教师考试资料40G