资源描述:
《教学检测C语言期末检测试卷二.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C语言期末检测试卷二一、选择题(共10道题,每题3分,共30分)。1.C语言规定:在一个源程序中,main函数的位置( )。A必须在最开始 B必须在系统调用的库函数的后面C可以任意D必须在最后2.设有语句inta=3;则执行了语句a+=a-=a*a;后,变量a的值是()A3B0C9D-123.在C语言中,数字029是一个()A八进制数 B十六进制数 C十进制数D非法数4.有以下定义:inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}int(*ptr)[3]=a,*p=a[0];则下列能够正确表示数组元素a[1
2、][2]的表达式是()。A*((*ptr+1)[2])B*(*(p+5))C(*ptr+1)+2D*(*(a+1)+2)5.设有说明语句:chara='123abc';则变量a()A包含7个字符B包含6个字符C包含5个字符D包含4个字符6.有以下程序段intk=0while(k=1)k++;while循环执行的次数是()A无限次B有语法错,不能执行C一次也不执行D执行1次7.在C语言中,()。A函数定义可以嵌套,但函数调用不能嵌套B函数定义不可以嵌套,但函数调用可以嵌套C函数定义和调用均不能嵌套D函数定义和调用均可以嵌套8.以下叙述正确的
3、是( )Ado-while语句构成的循环不能用其它语句构成的循环代替。Bdo-while语句构成的循环只能用break语句退出。C用do-while语句构成的循环,在while后的表达式为非零时结束循环。D用do-while语句构成的循环,在while后的表达式为零时结束循环。9.若有声明语句charch=’a’,*pc=&ch;以下语句中,有语法错误的是()。A(*pc)++Bch+=-‘a’+’A’;Ctoupper(ch)=ch;Dch++;10.以下关于函数叙述中,正确的是()。A在函数体中可以直接引用另一个函数中声明为static
4、类别的局部变量的值B在函数体中至少必须有一个return语句C在函数体中可以定义另一个函数D在函数体中可以调用函数自身一、填空题(共10空,每空2分,共20分)。1.一条简单语句是以_______字符作为结束符的,一条复合语句是分别以_______字符和______字符作为开始符和结束符的。2.任何一个C程序至少且只能包含一个_____函数,且程序总是从这个函数开始执行,不论这个函数的位置如何。一个函数定义由和两部分组成。3.数据类型int,char,bool,float等的类型长度分别为___、_、_和_。二、判断题(共10道题,每题1分
5、,共10分)。()1.C语言允许在复合语句内定义自动变量。()2.全局变量可以和局部变量重名,且全局变量优先。()3.若一个函数的返回类型为void,则表示其没有返回值。()4.在程序运行过程中,系统分配给实参和形参的内存单元是相同的。()5.对于Continue和break这两条语句,只有break可用来实现循环体的中止。()6.已知:charc='A';inti=1,j;执行语句j=!c&&i++;则i和j的值分别是0,1()7.所有定义在主函数之前的函数无需进行声明。()8.&既可以用作单目运算符也可以用作双目运算符()9.宏定义和文
6、件包含都是C语言中的编译预处理命令,对它们的处理是在编译前完成的。()10.一个函数利用return不可能同时返回多个值。三、程序填空题(共4道题,每题5分,共20分)。1.已知能被4整除而不能被100整除的或者能被400整除的年份是润年,则判断某一年是否是润年的程序如下,请填空:main(){intyear,leap;scanf(“%d”,&year);if(①)leap=1;elseleap=0;if(②)printf(“是润年”);elseprintf(“不是润年”);}2、用辗转相减法求两个正整数m和n的最大公约数。main(){i
7、ntm,n;________①_______;while(m-n!=0)if(m>n)____②_____;else_____③_____;printf("gcd(m,n)=%d",m);}3、计算1+1/2+1/4+…+1/50的值,并显示出来。main(){inti=2;floatsum=1.0;while(i<=①){sum+=1/②;i+=2;}printf(“sum=%f”,sum);}4、利用一维数组求显示fibonacci数列的前20项,每行显示5个数,每个数宽度5位,即:0,1,1,2,3,5,8,13……。main
8、(){inti;intx[20]=________①__________;for(i=2;i<20;i++)______②_______;for(i=0;i<20;i++){if