2、ty;}POINT;下面正确的语句是()。(A)POINT.x=12;POINT.y=10;(B)POINTa;(C)structPOINTa{12,10};(D)POINTa(12,10);4.下面程序的输出结果是()。#defineSQURE(N)N*Nvoidmain(){printf("%d",SQURE(3+2));}(A)25;(B)11;(C)15;(D)9;5.要实现一个文件引用另一个文件的变量,必须通过()。(A)用extern对变量说明;(B)#include与处理命令;(C)#define与
3、处理命令;(D)用typedef重新定义;6.以下定义语句中,错误的是()。(A)inta[]={1,2};(B)char*a[3];(C)chars[10]="test";(D)intn=5,a[n];7.下面语句彼此等价的是()。(A)!(a<10)&&!(a>10)与!(a<10&&a>10)(B)!(a==b)与a>b&&ab)与a=10
4、
5、a<=10)与!(a<=10)&&!(a>=10)8.设有说明:int(*a)[M];其中的标识符a是()。(A)一个指向具有M个
6、整型元素的一维数组的指针(B)指向M个整型变量的函数指针(C)M个指向整型变量的指针(D)具有M个指针元素的一维数组指针,每个元素都只能指向整型量9.若有以下说明和语句:structstudent{intage;intnum;}std,*p;P=&std;则以下对结构变量std中成员age的引用方式不正确的是()。(A)std.age(B)p->age(C)(*p).age(D)*p.age10.若有定义:chars[100]="string";则执行语句puts(strcat(s,strcpy(s,"s")))
7、;屏幕上输出的结果是()。(A)s(B)strings(C)ss(D)sstring二、读程序回答问题(每个选择3分,共45分)1.读程序并回答问题voidmain(){inta[10]={1,2,3,4,5,6,7,8,9,0};fun(a,0,3);fun(a,4,9);fun(a,0,9);for(i=0;i<10;i++)printf("%d",a[i]);}#includevoidfun(int*a,intbott,inttop){inti,j;i=bott;j=top;while(i
8、9、anf("%d",&n);z=fun(n);printf("%d",z);}#includelongfun(intn){longz;if(n==0
10、
11、n==1)z=1;elsez=n*fun(n-2);returnz;}(1)若输入n的值为6,则程序的输出结果为()。(A)21(B)15(C)48(D)720(2)以下哪个非递归与函数fun的功能相同()。(B)longfun(intn){inti;longz;for(i=n,z=1;i>0;i-=2)z=z*i;returnz;}(A)lo
12、ngfun(intn){inti;longz;for(i=n,z=0;i>0;i-=2)z=z+i;returnz;}(D)longfun(intn){inti;longz;for(i=n,z=1;i>0;i--)z=z*i;returnz;}(C)longfun(intn){inti;longz;for(i=n,z=0;i>0;i--)z=z+i;returnz;}1.