您好,欢迎访问三七文档
本试卷共5页,此页为卷第1页(注:参加重修考试者请在重修标识框内打钩)中原工学院2008~2009学年第1学期计算机、网络、软件专业C++程序设计课程期末试卷题号一二三四五六七八九十总分一、单选题(共20分,每小题1分)1.________是合法的用户自定义标识符。A)b-bB)floatC)frD)_isw2.组成C程序的基本单位是________。A)表达式与语句B)若干文件C)函数D)main函数3.结构化程序设计所规定的三种基本控制结构是。A、输入、处理、输出B、顺序、选择、循环C、树形、网形、环形D、主程序、子程序、函数4.语句if(i)i++;中的条件表达式i等价于________。A)i==0B)i!=1C)i!=0D)-i5.以下不正确的if语句形式是________。A)if(xy){x++;y++;}B)if(x)x+=y;C)if(xy);D)if(x!=y)scanf(%d,&x)elsex++;6.以下有关switch语句的正确说法是________。A)break语句是语句中必须的一部分B)在switch语句中可以根据需要使用或不使用break语句C)break语句在switch语句中不可以使用D)在switch语句中的每一个case都要用break语句7.有如下语句序列:intk=0;do{k+=5;cout'$';}while(k19);while(k--0)cout'*';执行上面的语句序列输出字符$和*的个数分别是________。A.4和20B.5和20C.4和21D.5和218.若一个外部变量的定义形式为staticintx;其中static的作用是________。A)将变量存放在静态存储区,使x的值可以永久保留B)使变量x可以由系统自动初始化C)使x只能在本文件内引用D)使x的值可以永久保留9.若程序中定义了以下函数doublemyadd(doublea,doubleb){return(a+b);}并将其放在调用语句之后,则在调用之前应该对该函数进行声明,以下选项中错误的声明是____A)doublemyadd(doublea,b);B)doublemyadd(double,double);C)doublemyadd(doubleb,doublea);D)doublemyadd(doublex,doubley);10.以下有关宏替换的叙述不正确的是________。A)宏名必须用大写字母表示B)宏替换不占用运行时间C)宏名不具有类型D)宏替换只是字符替换11.若有以下说明和语句:structworker{intno;char*name;}work,*p=&work;则以下引用方法不正确的是()。A.work.noB.(*p).noC.p-noD.work-no12.若用数组名作为函数调用时的参数,则实际上传递给形参的是________。A)数组元素的个数B)数组的第一个元素值C)数组中全部元素的植D)数组首地址13.以下正确的函数说明是________。A)floatadd(intx,y)B)intadd(intx;inty)C)charadd()D)intadd(charx[][])14.若有定义charx[]=12345;chary[]={'1','2','3','4','5'};则。A)x数组与y数组的长度相同B)x数组长度大于y的长度C)x数组长度小于y数组长度D)x数组等价于y数组15.假如指针p1已经指向某个整型变量,要使指针p2也指向同一个变量,哪一个语句是正确的_________。A)p2=&p1;B)p2=**p1;C)p2=&*p1;D)p2=*p1;16.不能进行++和--运算的数据类型是________。A)指针B)函数名C)intD)long17.如果用户程序要使用库函数中的数学函数时,应在该源文件中使用的include命令是_________。班级姓名学号………………………………………装……………………………订……………………………线………………………………………B卷重修标识A卷本试卷共5页,此页为卷第2页A)#includestring.hB)#includemath.hC)#includestdio.hD)#includectype.h18.定义:float(*ptr)();说明了________。A)ptr是指向一维数组的指针变量B)ptr是指向float型数据的指针变量C)ptr是指向函数的指针,该函数返回一个float型数据D)ptr是一个函数名,该函数的返回值是指向float型数据的指针19.若有定义:int(*p)[3];则标识符p。A)是一个指向整型变量的指针B)是一个指针数组名C)是一个指针,它指向一个含有3个整型元素的一维数组D)定义不合法20.若要“为读/写建立一个新的文本文件”,在fopen函数中应使用的文件方式是____________。A)“w+”B)“rb+”C)“ab+”D)“wb+”二、填空题(共16分,其中1—4题每题1分,其余每题2分)1.一个C源程序至少包括一个函数,即。2.表示条件:10x100或x0的c语言表达式是。3有数组定义:inta[]=″China″;则数组a所占的内存字节数为。4一个函数在执行时直接或间接的又调用该函数自身的调用过程称为。5以下程序的功能是:输出a、b、c三个变量中的最小值。请填空。#includestdio.h{inta,b,c,t1,t2;cinabc;t1=ab?;t2=ct1?;coutt2endl;}6.下面是把大写字母转换成小写字母的函数,请补充完整其中的return语句:charUPPER(charc){if()returnc+32;return;}7.以下程序用来求两整数的绝对值和。请填空。#includeiostream.hvoidmain(){intx,y;printf(Pleaseinputx,y:);cinxy;if(x0);if()y=-y;coutx+yendl;}8.以下函数的功能是返回b的e次幂。例如,intPow(2,3)的值是2*2*2。假定e是非0整数,b是整数。请填空。intintPow(intb,inte){intresult,n;;for(n=0;ne;n++);;returnresult;}9.以下程序运行后的输出结果是。#defineM(x,y,z)(x*y)+zmain(){inta=1,b=2,c=3;coutM(a+b,b+c,c+a);}10.以下程序运行后的输出结果是____。main(){inta,b,c;a=25;b=025;c=0x25;coutabcendl;}班级姓名学号………………………………………装……………………………订……………………………线………………………………………本试卷共5页,此页为卷第3页三、请阅读以下程序,写出运行结果(共24分,每小题4分)1.#includeiostream.h第1小题运行结果:voidmain(){intcount=0,x=3325;while(x){if(x%10==3)count++;x/=10;}coutcountxendl;}2.#includeiostream.h第2小题运行结果:voidmain(){inta[10]={2,4,0,-5,10,6,-8,9,6,7};inti,s=0,count=0;for(i=0;i10;i++)if(a[i]0){s+=a[i];count++;}elsecontinue;couts=s,count=countendl;}3.#includeiostream.hintn=1;voidfunc(){staticintx=4;inty=10;x=x+2;n=n+10;y=y+n;coutFUNC:x''y''nendl;}第3小题运行结果:voidmain(){staticintx=5;inty;y=n;coutMAIN:x''y''nendl;func();coutMAIN:x''y''nendl;func();}4.运行以下程序,若输入:62回车时,写出程序的输出结果。#includeiostream.hvoidfun(int*p1,int*p2)第4小题运行结果:{intt;t=*p1;*p1=*p2;*p2=t;}voidmain(){intx,y;int*p1,*p2;cinxy;p1=&x;p2=&y;if(xy)fun(p1,p2);coutxyendl;}5.运行以下程序,若程序输入为:BbNamEByeb时,写出程序的输出结果。#includeiostream.h第5小题运行结果:#includestring.hvoidmain(){charch[30],c='b';inti=0;cinch;while(ch[i]!='\0'){if(ch[i]==c)ch[i]=ch[i]-32;elseif(ch[i]==c-32)ch[i]=ch[i]+32;i++;}coutch;}6.阅读以下函数,写出此函数的功能。班级姓名学号………………………………………装……………………………订……………………………线………………………………………本试卷共5页,此页为卷第4页floatfun1(floata[],intn)第6小题函数的功能为:{inti=1;floatresult=a[0];for(;in;i++)if(resulta[i])result=a[i];returnresult;}四、程序设计(每题10分,共40分)1、某百货公司为了促销,采用购物打折的方法。在1000元以上者,按九五折优惠;在2000元以上者,按九折优惠;在3000元以上者,按八五折优惠;在5000元以上者,按八折优惠;编写程序,输入购物款数,计算并输出优惠价。2、编写一个函数,求任意两个整数的最小公倍数。班级姓名学号………………………………………装……………………………订……………………………线………………………………………本试卷共5页,此页为卷第5页3、不使用字符串连接函数strcat(),应用字符数组实现两个字符串的连接。4、用指针的方法处理:从键盘任意输入10整数,把其中的最大数与第一个数对换,把最小的数与最后的数对换。班级姓名学号………………………………………装……………………………订……………………………线………………………………………
本文标题:C语言试卷29
链接地址:https://www.777doc.com/doc-5598656 .html