微信搜索关注"91考试网"公众号,领30元,获取公务员、事业编、教师等考试资料40G!
24、以下程序的输出结果是( )。union myun{struct{int x,y,z;}U;int k;}a;main(){a.u.x=4;a.u.y=5;a.u.z=6;a.k=0;printf(%d",a.u.x);) A.4B.5 C.6D.0 参考答案: D 因为a是结构体变量,最后一次输入的值为结构体中的值,即a中的任伺一个值都为0。----------------------------------------25、若有以下定义和语句:double r=99,*P=&r;*P=r;则以下正确的叙述是( )。 A.两个*P含义相同,都说明给指针变量p赋值B.在“double r=99,*p=&r;中,把r的地址赋值给了P所指的存储单元C.语句“*p=r;把变量r的值赋给指针变量pD.语句“*p=r;取变量r的值放回r中 参考答案: B 在定义*p=&r时,是表示r的地址赋给了p所指的存储单元,因此选项B正确。----------------------------------------26、以下程序的输出结果是( )main(){int x=0.5;char z=''a'';printf("%d\n",(x&1)&&(z<''z''));} A.0B.1C.2D.3 参考答案: D (x&1)&&(z<''z'')=(0.5&1)&.&.(''a''<''z'')=l&&1=1,故选择B选项。----------------------------------------27、若希望下列的程序运行后输出25,程序空白处的正确选项是( )。main(){int id=50,a[]={7,4,lO,5,8);for( )j+=a[i];printf("%d",j一40);} A.i=1;i<4;++iB.i=1;i<3;++iC.i=4;i>2;i-- D.i=2;i<4;++i 参考答案: D 要想使程序输出25,则J 40一25,j一65,而j初值是50,所以填八for循环的语句,使引用的数组元素累加6 5 50—15即可,D选项中,i下标从。开始,i一2指向第3个数50+a[2]一50+10—60,继续循环60十a[3]=60+5=65,此时i=4跳出,循环结束。----------------------------------------28、若二维数组a有m列,则在a[i][j]前的元素个数为( )。 A.i*m+j-1 B.i*m+jC.j*m+1D.i*m+j+1 参考答案: B 二维数组的元素可以看成是按矩阵形式存放的,数组第一维的下标是i,说明它前面还有l行,有i*m个元素,数组第二维的下标是j,说明它前面还有j列,有i个元素,所以共有1*m+j个元素。----------------------------------------29、下列程序的输出结果是( )。#include<stdio.h>f(nt a){ int b=0;static int c=4:a=C++:b++;return(a):)main(){ int a=2,i,C;for(i=0;i<2;i++)C=f(a+1);printf("%d\n",c);} A.4 B.7C.6 D.5 参考答案: D static变量在函数调用结束后的所有变化均不保持,所以当i=1时,第2次进入f函数时c=5,所以最终main函数中c的值为5。--------------------------------------