微信搜索关注"91考试网"公众号,领30元,获取公务员、事业编、教师等考试资料40G!
察do while循环,因为变量t的初始值等于1,经过第一次do while循环中,执行t=t一1这条语句一次,所以变量t的值为一1,判断关系表达式t!=n是否成立,如果关系表达式成立,则执行第二次循环,如果关系表达式不成立,退出循环。由此可见,所以只要输入变量n的值为负奇数,则一定会使t==n成立,则退出d0 while循环。----------------------------------------31、若有说明语句:double*P,a;则通过scanf语句正确给输入项读人数据的程序段是( )。 A.*P=&a;scanf(%lf,p);B.*p=&a;scanf(%f,p);C.P=&a;scanf(%lf,*p);D.p=&a;scanf(%lf,p); 参考答案: D double *p,a定义了一个指向双精度型的指针变量p和双精度型变量a,p=&a表示将变量a的地址赋给指针变量p;scanf(”%lf”,p)表示用键盘输入的数赋给指针变量p所指向的地址单元中。scanf()函数要求在输入double型数据,格式控制符必须用%lf。否则,数据不能正确输入。所以选项D正确。----------------------------------------32、下列程序的输出结果是( )。 #include<stdio.h> main() {int a[g]E3]={{1,2,3},(4,5,6}},(*p)[3],i; P=a; for(i=0;i<3;i++) {if(i<2) p[1][i]=p[1][i]一1; else p[1][i]=1; ) printf("%d\n",a[0][1]+a[1][1]+a[1][2]); } A.8 B.7 C.12 D.9 参考答案: B 本题考察for循环及if else语句嵌套,第1次执行for循环,p[1][0]=p[1][0]=p[1][0]一1=3;第2次执行for循环,p[1][1]=p[1][1]-1=4;第3次执行for循环,p[1][2]=1,最后输出的是a[0][1]+a[1][2]=2+4+1=7。----------------------------------------33、执行下列程序后,输出的结果是( )。 #include<stdio.h> #define S(X)X*X void main() {int a=9,k=3,m=2; a/=S(k+m)/S(k+m); printf("%d",a); } A.1B.4C.9D.0 参考答案: D 本题主要考查带参数的宏定义,过程如下:由于定义为,define-(x)x*x没有括号优先级所以:a=a/(S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m)=9/(3+2*3+2/3+2*3+2)=0。----------------------------------------34、设x=015,则x=x^017的值是( )。 A.00001111 B.11111101C.00000010 D.11000000 参考答案: C 本题考查按位异或运算,异或就是相同为O,不同为1(化为二进制00001101),017的二进制为000001111,两都异或结果为0000001O。----------------------------------------35、若fp是指向某文件的指针,且尚未读到文件末尾,则函数feof(fp)的返回值是( )。 A.EOF B.-1C.非零值D.0 参考答案: D 本题考