资源描述:
《位域、联合、枚举、定义类型及预处理功能题库》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第八章位域、联合、枚举、定义类型及预处理功能一、选择题1.有以下程序#include#definef(x)(x*x)voidmain(){inti1,i2;i1=f(8)/f(4);i2=f(4+4)/f(2+2);printf("%d,%d",i1,i2);}程序运行后的输出结果是______。A)64,28B)4,4C)4,3D)64,64答案:C2.有以下程序#include#defineP3voidF(intx){return(P*x*x);}voidmain
2、(){printf("%d",F(3+5));}程序运行后的输出结果是______。A)192B)29C)25D)编译出错答案:D3.以下叙述中正确的是______。A)预处理命令行必须位于源文件的开头B)在源文件的一行上可以有多条预处理命令C)宏名必须用大写字母表示D)宏替换不占用程序的运行时间答案:D4.若有以下说明和定义uniondt{inta;charb;doublec;}data;以下叙述中错误的是______。A)data的每个成员起始地址都相同B)变
3、量data所占的内存字节数与成员c所占字节数相等C)程序段:data.a=5;printf("%f",data.c);输出结果为5.000000D)data可以作为函数的实参答案:C5.有以下程序:#includeunionpw{inti;charch[2];}a;voidmain(){a.ch[0]=13;a.ch[1]=0;printf("%d",a.i);}程序的输出结果是。(注意:ch[0]在低字节,ch[1]在高字节。)A)13B)14C)208D)209答案
4、:A6.设有如下枚举类型定义:enumlanguage{Basic=3,Assembly,Ada=100,COBOL,Fortran};枚举量Fortran的值为A)4B)7C)102D)103答案:C7.下面程序的输出是A)32B)16C)8D)24#includetypedefunion{longx[2];inty[4];charz[8];}MYTYPE;MYTYPEthem;voidmain(){printf("%d",sizeof(them));}答案:B8.字符'0'
5、的ASCII码的十进制数为48,且数组的第0个元素在低位,则以下程序的输出结果是#includevoidmain(){union{inti[2];longk;charc[4];}r,*s=&r;s->i[0]=0x39;s->i[1]=0x38;printf("%c",s->c[0]);}A)39B)9C)38D)8答案:B9.以下对枚举类型名的定义中正确的是A)enuma={one,two,three};B)enuma{one=9,two=1,three};C)enuma={
6、"one","two","three"};D)enuma{"one","two","three"};答案:B10.以下程序的输出结果是#includeunionmyun{struct{intx,y,z;}u;intk;}a;voidmain(){a.u.x=4;a.u.y=5;a.u.z=6;a.k=0;printf("%d",a.u.x);}A)4B)5C)6D)0答案:D11.有以下程序#includevoidmain(){union{unsignedintn;uns
7、ignedcharc;}u1;u1.c='A';printf("%c",u1.n);}执行后输出结果是A)产生语法错B)随机值C)AD)65答案:A12.若有以下说明和定义uniondt{inta;charb;doublec;}data;以下叙述中错误的是______。A)data的每个成员起始地址都相同B)变量data所占的内存字节数与成员c所占字节数相等C)程序段:data.a=5;printf("%f",data.c);输出结果为5.000000D)data可以作为函数的实参答案:C13.在宏定义
8、#definePI3.14中,宏名PI代替一个。A)单精度数B)双精度数C)常量D)字符串答案:D14.以下在任何情况下计算平方数时都不会引起二义性的宏定义是。A)#definePOWER(x)x*xB)#definePOWER(x)(x)*(x)C)#definePOWER(x)(x*x)D)#definePOWER(x)((x)*(x))答案:D15.若指针p已正确定义,要使p指向