学院领导审批并签名A/B卷广州大学学年第学期考试卷课程高级语言程序设计考试形式(开/闭卷,考试/查)学院系专业班级学号姓名题次一二三四五六七八九十总分评卷人分数评分一:选择题(每题3分,共60分)(1)若有以下定义:chara;intb;floatc;doubled;则表达式a*b+d-c值的类型为(A)A)doubleB)floatC)intD)char(2)设a=1,b=2,c=3,d=4,则表达式:a=10ora<=0B)a>=10│a<=0C)a>=10││a<=0D)a>=10││a<=0(7)下列可作为C语言赋值语句的是(C)A)x=3,y=5B)a=b=6C)i--;D)y=int(x);(8)设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:scanf("i=%d,f=%f",&i,&f);为了把100和765.12分别赋给i和f,则正确的输入为(A)A)100765.12B)i=100,f=765.12C)100765.12D)x=100y=765.12(9)给出以下定义:charx[]="abcdefg";chary[]={'a','b','c','d','e','f','g'};则正确的叙述为(C)A)数组X和数组Y等价B)数组x和数组Y的长度相同C)数组X的长度大于数组Y的长度D)数组X的长度小于数组Y的长度(10)假定a和b为int型变量,则执行以下语句后b的值为(D)a=1;b=10;do{b-=a;a++;}while(b--<0);A)9B)-2C)-1D)8(11)设有以下宏定义:#defineN3#defineY(n)((N+1)*n)则执行语句:z=2*(N+Y(5+1));后,z的值为(C)A)出错B)42C)48D)54(12)设有如下定义:intarr[]={6,7,8,9,10};int*ptr;则下列程序段的输出结果为(D)ptr=arr;*(ptr+2)+=2;printf("%d,%d\n",*ptr,*(ptr+2));A)8,10B)6,8C)7,9D)6,10(13)执行以下程序段后,m的值为(A)inta[2][3]={{1,2,3},{4,5,6}};intm,*p;p=&a[0][0];m=(*p)*(*(p+2))*(*(p+4));A)15B)14C)13D)12(14)有以下程序main(){intx,i;for(i=1;i<=50;i++){x=i;if(++x%2==0)if(x%3==0)if(x%7==0)printf("%d,i);}}输出结果是(D)A)28B)27C)42D)41(15)若有以下的说明和语句:main(){intt[3][2],*pt[3],k;for(k=0;k<3;k++)pt[k]=t[k];}则以一选项中能正确表示t数组元素地址的表达式是(D)A}&t[3][2]B}*pt[0]C}*(pt+1)D)&pt[2](16)有以下程序#includemain(){inta,b,c=246;a=c/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);}输出结果是(A)A)2,1B)3,2C)4,3D)2,-1(17)有以下程序#includestructstu{intnum;charname[10];intage;};voidfun(structstu*p){printf("%s\n",(*p).name);}main(){structstustudents[3]={{9801,"Zhang",20},{9802,"Wang",19},{9803,"Zhao",18}};fun(students+2);}输出结果是(B)A)ZhangB)ZhaoC)WangD)18(18)有以下程序main(){chara[]="programming",b[]="language";char*p1,*p2;inti;p1=a;p2=b;for(i=0;i<7;i++)if(*(p1+i)==*(p2+i))printf("%c",*(p1+i));}输出结果是(D)A)gmB)rgC)orD)ga(19)有以下程序intfun(intx,inty,int*cp,int*dp){*cp=x+y;*dp=x-y;}main(){inta,b,c,d;a=30;b=50;fun(a,b,&c,&d);printf("%d,%d\n",c,d);}输出结果是(C)A)50,30B)30,50C)80,-20D)80,20(20)有以下程序#include"atdio.h"intabc(intu,intv);main(){inta=24,b=16,c;c=abc(a,b);printf('%d\n",c);}intabc(intu,intv){intw;while(v){w=u%v;u=v;v=w}returnu;}输出结果是(C)A)6B)7C)8D)9二:填空题(共20分)(1)inta[3][2]={10,20,30,40,50,60},(*p)[2];p=a;则*(*(p+2)+1)值为60(1).(2分)(2)以下程序的输出结果是8,17(1).(3分)#includeintfun(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm}main(){intj=4,m=1,k;k=fun(j,m);printf("%d,",k);k=fun(j,m);printf("%d\n",k);}(3)下面程序的输出是9(5分)longfun5(intn){longs;if((n==1)||(n==2))s=2;elses=n+fun5(n-1);return(s);}main(){longx;x=fun5(4);printf("%ld\n",x);}(4)以下程序的功能是...