《南京信息工程大学2007-2008C语言期末试卷(B).docx》由会员分享,可在线阅读,更多相关《南京信息工程大学2007-2008C语言期末试卷(B).docx(8页珍藏版)》请在第壹文秘上搜索。
1、南京信息工程大学期末试卷空?一逢蝇学年第2学期C学程序设计/程序设计基砒课程试卷(B)本试卷共一页,考试时间四分任课教师I出卷时间2008年6月学院专业班.学号姓名得分注:请将解答写在答题册上,以免误判!一、单项选择题:请将正确答案的序号写在答题册上(每小题1分,共10分)1 .一个C语言程序是由A)一个主程序和若干子程序组成B)函数组成C)若干过程组成D)若干子程序组成2 .下述表达式中,UJ以正确表示XWO或XZI的关系,A(x=1.)(x=1.&x(x=1.)&(xAp_odoB)f1.oatIao_ACb-agotointD)_123tempINT5,若有代数式3acbc,则不正礴的C
2、语言表达式是()abc*e*3B3*a*ebcC)3*a*eb*cDa*ecb*36,下述程序的输出结果是。#inc1.udevoidmain()intx=-1.,y=4,k:k=+=O&!-1.0.37 .下面fo循环谱句.inti,k;for(i=0,k=-kk=1.;i+,k+)Primfr*”);A判断循环结束的条件非法O只循环一次8 .以下各语句中,字符*“abcde”能正确赋值的操作是A)chars5)-*aVb,c,dVe,);B) charts=abcdc:Ochar*s;gcchars6canf(44%sw,&s):9 .以下正确的描述是oA)函数的定义可以嵌套,但函数的词用
3、不可以嵌套B)函数的定义不可以嵌套,但函数的两用可以嵌套O函数的定义和函数的调用均不可以做套D画数的定义和函数的调用均可以嵌食10 .下面程序段的运行结果是charaJ=1.anguage,p:p=a;whi1.e(*p!=,)Primn%c”.*p32);+;IA1.ANGUAGEB)1.anguageC) 1.ANGD)IangUAGE二、填空题:(每空2分,共20分)1 .计算机算法可分为和两大类别.2 .更合谙句是用一对界定的语句块.3 .至少执行一次命坏体的循环语句是.4 .设有数组定义:Chararray(=China;则数组array所占的空间为5 .以下程序段的输出结果是0in
4、ta32=(1,2,3,4,5.6K(p)2:P=a;printf(%dn,*(*(p+2)+1.);6 .函数调用语句:fun(a,b)Jc,d,e)实参个数为。7 .若有定义#dcfincN3#detincY(n)(N+I)*n)则执行语句z=2*(N+Y);后,Z的值为,8 .若有定义:inta23=4,6,8,10.12);则*(a1卜2)的值是_9 .feof(fp)函数用来判断文件是否结束,如果遇到文件结束,函数位为三、阅读程序:根据下面要求写出结果(每小题4分,共32分)1.若输入的值是-125,写出下面程序的运行结果.#inc1.ude#inc1.udcvoidfun(im);
5、voidmain()(intn:SCanfrPrimfr%d=,n);if(n:fun(n:Jvoidfun(intn)(inthr;for(k=2:k1.prin1.fm:r=n%k:)if(n!=1.)printf(fc*%dotn);)2,写出卜面程序的运行结果。Winc1.udeintfun(char4);voidmain()char5ta=abcde;Pri1.Nf(%dmfin);Iintfun(char*s)char*p=3;whi1.e(tp)p+:return(p-s);I3,下面程序的执行结果是tfinc1.ude.hvoidinv(int*,int):voidmain()
6、i11W1OJ=(3.7,9.II,O,65.4.2);inv(aJ0);f)r(i=O;iintt.p.*i.j.m=(n1)Z2:i=x;j=xn-1.;P=X+m;fbr(ii=pjij-)(hi:*i=*j;*j=t:)I4,下面程序执行的结果是:输入如下数据:1.iZhang1.i1.iWangZhangWangZhangWinc1.udeStmctperson(charname)20);intcount:XcadCTPJ=T1.HOJZhang;OjWangM,0;voidInainOintij;char1.cader_name(20J:fbr(i=1.u=IOJ)(sc:fort
7、j=0jc)=O)1.cadcrj.um+;)for(i=0:i3:i+)printf(N%5s:%dnJcadcr1.i.naine,1.cader(i.cHint);I5 .下面程序的运行结果是.#inc1.udcvoidmain()in=3.j.k=3;ina(5=(1.4.5):whi1.c(ia(i)t+:fbrtj=n-1.j=i-)a(j+1.=aU:ai)=k;fbr(i=O;i=n;i+)Printfr%3d”,aiD;I6 .写出下向程序运行的结果.#inc1.udevoidmain()(intk=I.n=263;do(k*=n%10;n=10;Jwhi1.e(n):pri
8、ntf(*%d,k);I7 .以下程序询出结果是Minc1.udevoidmain()(intx=1.,y=1.a=1.,b=i;SWicch(X)(case1.swiich(y)(case0:a*+;break;caseI:b+;break:)case2:a+:b+;break;case3:a+;b+;)pfinf(*a=%d.b=ijn,a.b);I8,输入6回车后,下面程序的执行结果是一*inc1.udes1.ongintfac(int);voidmain()(intn;scanft%d,n);Pnn1.T%dWfac(n):I1.ongin(fac(intm)(1.onginif;if
9、(m0)printf(dataCITOr!f11;e1.seif(m=Om-1)f=1.;e1.sef=fac(m-I)m;returnf;I四、程序填空:(每空2分,共18分)1 .以下程序用来检杳;维数组是否对称(即:对所有i,j都有aiJUJ=aji。Winc1.udeVUidmain。(inta44=11,2,3.4,2.2.5,6.353,7,8,6,7,4);inti,j.found=0:fur(j=0J4J+)(fbr(i=O;i4;i+)ift111Hfound=2;break:if(found)break:Iif(found)Printfr不对称W);e1.sePrimfC对
10、称W);I2 .下面程序用“两路合并法”把两个已按升序排列的数组合并成一个升序数组.#inc1.udevoidmain()(inta(3)=(5.9.1.9);intb5=(12.24.26.37.48):intc110,i=0j=0,k=0;whi1.e(i3j5)f(Q1.)(ck三bU;k+;j+;e1.se(ck=ai;k+;i+;JWhiIc()Ic1.k1.=ai;i+;k+;Jwhi1.c(151)(CIk)=Hj):k+:j+:Jfur(i=O:ik;i+)Printf(“%3d,ci);3 .有15个数按从小到大地序存放在一个数批中,当输入一个数值时,要求用折半查找法找出该数
11、是数组中第几个元素的值:如果该数不在数组中,则品示相应的提示.#inc1.udc#dCfinCN15voidnain()(inti.num.top.bott.mid,aN);Prinm”请输入15个数(aiai1.DW);scanfC%d.&a|0);i=1.;whi1.c(iN)scanR%dn.ai);if(a(ip=0.b(=N-1.:top=bo1.1.:)!mid=;if(num=amid)(Prinm%d位于表中第%d个数W.num.mid+1);break:Ie1.seif(numamid)bobou)Prin1.fr%d不在我中n*num);I4 .avg函数的作用是计。数组Urray的平均值返回,i再填空使程序完整.f1.oatavg(f1.oatarray10)(inti;oatavgr.sum=0:for(i=1.:i+)sum+=12:avgr=sum/10;N1.Umavgr;)五编程题:完成下面问题的C语言程序(每1题10分,共20分)1 .从左向右读和从右向左读大小都是一样的数,称为回交数,黎程输出