高级语言程序设计期末考试试卷及答案(E卷).pdf
高级语言程序设计期末考试试卷及答案(E卷)2005-2006学年上学期 考试科目:考试类型:(闭卷)考试时间:1 2 0 分钟考试须知:1.答案必须写在“答题卡”上,写在试卷上不得分。2.必须在答题卡上正确填写班级、学号、姓名等内容。一、选择题(共 20小题,每小题1 分)1.下列C常量中不合法的是()A.500B.0500C.500 D.500”2.C语言中,若对函数类型未加显示说明,则函数的隐含类型为()类型A.v o i d B.i n tC.空 D.c h ar3.C语言程序的三种基本结构是()A.嵌套结构、递归结构、顺序结构 B.递归结构、循环结构、转移结构C.顺序结构、选择结构、循环结构 D.循环结构、转移结构、顺序结构4.一个可执行C程序的开始执行点是()A.名为m ai n。的函数 B.包含文件的第一函数C.程序中的第一个语句 D.程序中的第一个函数5.下面程序段的执行结果是()i n t a=5,b=4,c=3;i f (ab c)p r i n t f (ab c);e l s ep r i n t f (n o);A.ab cC.编译错误B.n oD.运行错误6.合法的数组定义是()A.i n t a =s t r i n g B.i n t a 5 =0,1,2,3,4,5C.c h ar a =0,1,2,3,4,5 D.c h ar s =s t r i n g 7.在 C语言中,提供的合法关键字是()A.p r i n t f B.c h e r C.c as e D.E l s e8.在 C语言中,合法的字符常量是()A.,08J B.z 0z C.zabf D.a9.p u t c h ar 函数可以向终端输出一 4()。A)字符串 B)实型变量值C)整型变量表达式 D)字符或字符型变量10.在 C语言中,一个c h ar 变量占()字节。A.1 B.2 C.4 D.811.调 用 s c an f(%d,%d,&a,&b);时,正确的键盘输入是()A.12,23 B.a=12,b=23C.12:23 D.12 2312.若有 i n t s 4 =1,2,3,4:,则 s s 0+s 3-s 2 的 值 是()A.1 B.2 C.3 D.413.在 C语言中,一 般 1个 f l o at 类型变量占4 个字节,则设f l o at x 2 4;假设数组x开始于内存1000单元,则 x l 2 的存储始于()A.1004 B.1012 C.1020 D.102414.下 面 对 C语言运算符的优先级叙述正确的是()。A.!(非)关系运算符 算术运算符&(与)|(或)赋值运算符B.!(非)算术运算符 关系运算符&(与)|(或)赋值运算符C.算术运算符 关系运算符 !(非)&(与)|(或)赋值运算符D.算术运算符!(非)关系运算符&(与)|(或)赋值运算符215.若有代数式土上,则正确的C语言表达式是()3bcA.x 2*y/3*b*cC.x*x*y/3*b*cB.x*x/b/c*y/3D.x*2*y/3/b/c1 6.已知 a=48,b=0,c h =a 则表达式(a=b&(c h=b)&!b)的 值 是()oA.0 B.1 C,真 D.非 017.设 x、y均为整型变量,且 x=10,y=3,则以下语句的输出结果是()p r i n t f (%d,%d n”,x-,-y);A)10,3 B)9,3 C)9,2 D)10,218.在 s w i t c h 语句中,执行完一个c as e 分支后要使流程跳出s w i t c h 结构,应 使 用()语句。A.c o n t i n u eC.e l s e19.设有如下程序段i n t k=l;w h i l e (k)k+;则下面描述中正确的是(A.循环体一次也不执行C.循环体语句执行多次B.b r e akD.r e t u r nB.循环是无限循环D.循环体语句执行1 次20.下面标识符中,不合法的用户标识符为()A.s t r u c t B.c _10 C._1234 D.I n t二、看程序写结果题(共 8 题,共 30分,前两题各3 分,其它题各4 分)1.t t i n c l u d e s t d i o.h m ai n O(f l o at a=5.4;i n t b,c=25,d;b =a*3;d =c/10;p r i n t f(b=%d,d=%d n”,b,d);)程序执行结果为:2.t t i n c l u d e s t d i o.h m ai n ()c h ar g r ad e;g r ad e =(?;s w i t c h (g r ad e)c as e A:p r i n t f (e x c e l l e n c e l l);c as e B :p r i n t f(p as s n);c as e C:p r i n t f (f ai l n);d e f au l t:p r i n t f (e r r o r n);)程序执行结果为:3.t t i n c l u d e s t d i o.h i n t x=10;i n t f u n c(i n t y)(y=x+y;r e t u r n(y);)m ai n()i n t x=15,y=15,z;z=f u n c(y);p r i n t f (,x=%d,y=%d,z=%dM,x,y,z);程序执行结果为:4.t t i n c l u d e s t d i o h”S i n c l u d e s t r i n g,h”m ai n()(c h ar a 20 二”AB C 123x y zAB C”;i n t i;f o r (i=0;i=97&a i =125)p r i n t f a i );)备注:字母A的AS C 码是6 5,字母a的AS C 码是9 7,数字1的AS C 码是49。程序执行结果为:#include nstdio.hHmain()int a10=l,2,3,4,5,6,7,8,9,10;inti;for(i=0;i=4;i+)ai=a9-i;a9-i=ai;)for(i=0;i10;i+)printf(M%d n,ai);)程序执行结果为:6.#include stdio.h#include math.hmain()int i,t,p;for(i=-2;i=2;i+)(for(p=0;pabs(i);p+)printffor(t=abs(i)-2;tb)a=a-b;elseprintf(n%dn;a);)mainO(func(24,16);func(413,177);func(35676,864);)程序执行结果为:三、看程序填空题(共25个小空,每空1分)1.下面程序实现由键盘输入3 个数a、b、c,要求按由小到大的顺序输出,请填空。#include stdio.hmain()(float a,b,c,t;scanf(H%f,%f,%fH,O);if(a b)t=a;a=b;b=tif(a c)t=a;a=c;c=tif(2)(3)p r i i i t f(H%5.2f,%5.2f,%5.2f nn,a,b,c);2.下面程序判断某一年是否闰年,请填空。#i n c l u d e Hs t d i o.hHm ai n()(i n t y e ar,l e ap;s c an f(M%dM,(4);i f(5)i f (y e ar%100=0)i f(y e ar%400=0),(6);e l s e(7);e l s e_(8)_;)e l s el e ap =0;i f(l e ap)p r i n t f(*%d i s M,y e ar);e l s ep r i n t f(H%d i s n o t n,y e ar);p r i n t f(Ha l e ap y e ar.”);3.下面程序实现求出数组元素中的最大值,请填空。t t i n c l u d e s t d i o.h m ai n()i n t c 10 =78,45,175,251,249,34,9,179,50,210;i n t i,m ax;(9)_;f o r(i=l;00);i+)i f(11)m ax =c i ;p r i n t f (m ax =%d n,m ax);)4.下面是求圆周率的程序,请填空。注:计算公式是:4 3 5 7当括号中的最后一项的绝对值小于等于时,忽略以后的项。#i n c l u d e s t d i o.h t t i n c l u d e m at h,h”m ai n ()(f l o at p i,b;/*变量b表示括号中的运算项值*/i n t s i g n,a;/*变 量s i g n,a分别表示括号中的运算项正负符号及分母值*/(12);/*给有关变量赋初值*/d o(b =(13);p i=p i+b;a=a+2;s i -n =(14);)w h i l e (f ab s (b)(15);p i =p i*4;p r i n t f (t h e r e s u l t i s (16);)5.下面程序,实现输出600到800之间的所有素数,请填空。#i n c l u d e ns t d i o.hH#i n c l u d e Mm a t h.hn(1 7)s u(1 8)(i n t f l a g =1,i;f o r (i=2;(1 9);i+)(i f(2 0)(f l a g =0;b r e a k;return(2 1);)m a i n()(i n t t;f o r (t=6 0 0;t i,j;for(i=0;ic(3)t=b;b=c;c=t_2.(4)&year(5)year%4=0(6)(7)lcap=0(8)_ lcap=l_3.(9)max=(10)ivlO(或 iv=9)(11)maxvcfi(或或maxv=ci,或ci=max)4.(12)s iw n=l;a=l;p i=O (13)l O*sign/a(14)-sign(15)le6(16)_ i)i_5.(17)_int(18)_int n_(19)_i=sqrt(n)(或 in)(20)_n%i=0(21)_flag_6.(22)_&afi(23)_ j i_(24)_afil=ail(25)_num+_四、编程题(共4题)1.(5 分)#include stdio.hmain()char sex;float score;scanf(%c,%f&sex,&score);if(sex=M)if(score=15.6)printf(合格”);else printf(“不合格”);else if(sex=*F)if(score=18.2)printf(合格)else printf(不合格)2.(8 分)流程图:程序:#include stdio.hmain()(float s=0;int n,i;scanf(H%d,&n);for(i=l;i=n;i+)s=s+l,O/i;printf(Hsum=%f,s);3.(6 分)#include stdio.hmain()char ch;int sz=0,zm=0,qt=0;while(ch=getchar()!=n,)(if(Av二 ch&ch=,Z II,a,=ch&ch=(z,)zm+;else if(0=ch&ch=9,)sz+;elseqt+;)printf(,zm=%d,sz=%d,qt=%dnM,zm,sz,qt);4.(6 分)#include stdio.hnmain()(float a32,t;int i,j;for(i=0;i32;i+)scanf(n%f&ai);for(i=0;i31;i+)(for(j=0;j31-i;j+)if(aUaj+l)t=a|jj;aj=aj+l;aj+l=t;)for(i=0;i32;i+)printf(,r%fn,ai);