您好,欢迎访问三七文档
期末考试试题,填空题只出第五章内容,改错题为第六章,程序设计为第三、八章。选择题部分第一章,概述1,以下叙述中错误的是(B)A.一个C语言程序只能有一个主函数B.C语言编写的每个函数都可以进行独立的编译并执行C.C语言编写的函数都可以作为一个独立的源程序文件D.C语言编写的函数源程序,其文件名后缀可以是C2,计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是(A)A.C语言程序仅可以编译执行B.C语言程序仅可以解释执行C.以上说法都不对D.C语言程序既可以编译执行又可以解释执行3,C语言规定:在一个源程序中,main的位置(A)A.可以任意B.必须在最后C.必须在最开始D.必须在系统调用的库函数后面4,一个C语言程序是由(C)A.若干过程组成B.若干子程序组成C.函数组成D.一个主程序和若干子程序组成5,以下关于结构化程序设计的叙述中正确的是(B)A.一个结构化程序必须同时由顺序、分支、循环三种结构组成B.在C语言中,程序的模块化是利用函数实现的C.由三种基本结构构成的程序只能解决小规模的问题D.结构化程序使用goto语句会很便捷6,以下叙述正确的是(C)A.在C程序中,main函数必须位于程序的最前面B.在对一个C程序进行编译的过程中,可发现注释中的拼写错误C.C语言本身没有输入输出语句D.程序的每行中只能写一条语句7,以下叙述中错误的是(A)A.C语言编写的每个函数都可以进行独立的编译并执行B.C语言编写的函数源程序,其文件名后缀可以是CC.一个C语言程序只能有一个主函数D.C语言编写的函数都可以作为一个独立的源程序文件8,以下叙述正确的是(B)A.C程序的书写格式是固定的,每行只能写一条语句B.C程序中注释部分可以单独占一行C.构成C程序的基本单位是函数,所有函数名都可以由用户命名D.在对C语言程序进行编译时,可以发现注释行中的拼写错误9,以下叙述正确的是(D)A.C语言程序是由过程和函数组成的B.C语言函数不可以单独编译C.C语言中除了main函数,其他函数不可作为单独文件形式存在D.C语言函数可以嵌套调用,例如:fun(fun(x))10,一个C程序的执行是从(D)A.本程序文件的第一个函数开始,到本程序main函数结束B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序的main函数开始,到main函数结束11,以下叙述不正确的是(A)A.在C程序中,注释说明只能位于一条语句的后面B.C程序的基本组成单位是函数C.一个C源程序可由一个或多个函数组成D.一个C源程序必须包含一个main函数第二章,数据类型、运算符和表达式1,若有数学式3aebc,则不正确的C语言表达式是(A)A.3*a*e/b*cB.a/b/c*e*3C.3*a*e/b/cD.a*e/c/b*32,设:inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=ab)&&(n=cd)后n的值为(C)。A.4B.3C.2D.13,下列表达式中,不满足当x的值为偶数时值为真,为奇数时值为假的要求的是(C)A.(x/2*2-x)==0B.!(x%2)C.!(x%2==0)D.x%2==04,表达式18/4*sqrt(4.0)/8值的数据类型为(B)。A.charB.doubleC.不确定D.float5,在C语言中,要求运算数必须是整型的运算符是(A)A.%B./C.++D.!=6,若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为(B)。A.4B.32C.16D.527,C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符(D)A.必须为下划线B.必须为字母C.可以是字母、数字和下划线中的任意一种D.必须为字母或下划线8,若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是(D)A.不知道a的值,不能确定B.0C.2D.19,判断字符型变量c1是否为数字字符的正确表达式为(A)A.(c1='0')&&(c1='9')B.(c1=0)&&(c1=9)C.('0'=c1)||('9'=c1)D.'0'=c1='9'10,下面四个选项中,均是合法的用户标识符的选项是(A)。A._123tempINTB.Ap_odoC.b-agotointD.floatlao_A11,以下关于C语言数据类型使用的叙述中错误的是(B)A.若要处理如人员工资的相关数据,单精度类型B.若只处理真和假两种逻辑值,应使用逻辑类型C.若要保存带有多位小数的数据,应使用双精度类型D.若要准确无误差的表示自然数,应使用整数类型12,假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是(B)。A.7B.8C.6D.213,下面正确的字符常量是(B)A.'\\B.'w'C.D.'c14,设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为(C)A.floatB.不确定C.doubleD.int15,在C语言中,char型数据在内存中的存储形式是(C)。A.补码B.原码C.ASCII码D.反码16,下面四个选项中,均是不合法的用户标识符的选项是(B)。A.floatlao_AB.b-agotointC._123tempINTD.Ap_odo17,以下选项中关于C语言常量的叙述错误的是:(D)A.所谓常量,是指在程序运行过程中,其值不能被改变的量B.常量分为整型常量、实型常量、字符常量和字符串常量C.常量可分为数值型常量和非数值型常量D.经常被使用的变量可定义成常量18,判断字符型变量c1是否为小写字母的正确表达式为(B)。A.('a'=c1)||('z'=c1)B.(c1='a')&&(c1='z')C.(c1=a)&&(c1=z)D.'a'=c1='z'19,若有定义语句:intk1=10,k2=20;,执行表达式(k1=k1k2)&&(k2=k2k1)后,k1和k2的值分别为(B)A.0和1B.0和20C.10和1D.10和2020,以下选项中,能表示逻辑值假的是(B)A.0.000001B.0C.100.0D.121,以下选项中非法的字符常量是(B)A.'\102'B.'\019'C.'\xff'第三章,算法和控制语句部分1,为表示关系x≥y≥z,应使用的表达式是AA.(x=y)&&(y=z)B.(x=y=z)C.(x=y)AND(y=z)D.(x=y)&(y=z)2,有以下程序main(){inti;for(i=0;i3;i++)switch(i){case1:printf(%d,i);case2:printf(%d,i);default:printf(%d,i);}}执行后输出结果是AA.011122B.120C.012020D.0123,对for(表达式1;;表达式3)可理解为(A)。A.for(表达式1;1;表达式3)B.for(表达式1;0;表达式3)C.for(表达式1;表达式1;表达式3)D.for(表达式1;表达式3;表达式3)4,若i为整型变量,则以下循环执行次数是(A)。for(i=2;i==0;)printf(%d,i--);A.0次B.1次C.无限次D.2次5,有以下程序段intn=0,p;do{scanf(%d,&p);n++;}while(p!=12345&&n3);此处do-while循环的结束条件是___D___。A.p的值等于12345并且n的值大于等于3B.p的值不等于12345并且n的值小于3C.p的值不等于12345或者n的值小于3D.p的值等于12345或者n的值大于等于36,以下描述中正确的是(D)。A.do-while循环中,根据情况可以省略whileB.由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句C.do-while循环由do开始,用while结束,在while(表达式)后面不能写分号D.在do-while循环体中,一定要有能使while后面表达式的值变为零(假)的操作7,执行语句for(i=1;i++4;);后变量i的值是(D)。A.不定B.3C.4D.58,有以下程序main(){inta=5,b=4,c=3,d=2;if(abc)printf(%d\n,d);elseif((c-1=d)==1)printf(%d\n,d+1);elseprintf(%d\n,d+2);}执行后输出结果是DA.2B.4C.编译时出错D.39,main(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf(a=%d,b=%d,a,b);}该程序的输出结果是(B)A.2,2B.2,1C.1,1D.1,010,以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:main(){intn,k;floatscore,sum,ave;sum=0.0;for(n=1;n=10;n++){for(k=1;k=4;k++){scanf(%f,&score);sum+=score;}ave=sum/4.0;printf(NO%d:%f\n,n,ave);}}上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是BA.ave=sum/4.0B.sum=0.0;C.sum+=score;D.printf(NO%d:%f\n,n,ave);11,运行以下程序后,输出的结果是Amain(){intk=-3;if(k=0)printf(****\n);elseprintf(&&&&\n);}A.****B.有语法错误不能通过编译C.&&&&D.****&&&&12,下面的程序片断所表示的数学函数关系是Ay=-1;if(x!=0)y=1;if(x0)y=1;elsey=0;A.B.C.D.13,以下程序的输出结果是Amain(){intx,i;for(i=1;i=100;i++){x=i;if(++x%2==0)if(++x%3==0)if(++x%7==0)printf(“%d“,x);}printf(“\n”);}A.2870B.3981C.4284D.266814,以下程序段中,与语句:k=ab?(bc?1:0):0;功能相同的是(A)A.if((ab)&&(bc))k=1;elsek=0;B.if((ab)||(bc))k=1;elsek=0;C.if(ab)k=1;elseif(bc)k=1;elsek=0;D.if(a=b)k=0;elseif(b=c)k=1;15,为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:else子句总是与(B)配对。A.其之后最近的ifB.其之前最近的ifC.缩排位置相同的ifD.同一行上的if16,t为int类型,进人下面的循环之前,t的值为0while(t=1){……}则以下叙述中正确的是___B_。A.以上说法都不对B.循环控制表达式的值为1C.循环控制表达式的值为0D.循环控制表达式不合法17,以下程序段的输出结果是Bintk,j,s;for(k=2;k6;k++,k++){s=1;for(j=k;j6;j++)s+=j;}printf(“%d\n”,s);A.15B.10C.24D.918,语句while(!E);中的表达式!E等价于(B)。A.E!=1B.E==0C.E==1D.E!=019,以下程序段的输出结果是Bintx=3;do{pritnf(“%3d”,x-=2);}while(!(--x));A.死循环B.1-2C.30D.120,以下程序的运行结果是(B)。main(){inti=1,sum=0;while(i10)sum=sum+1;i++;printf(i=%d,sum=%d,i,
本文标题:C语言期末题库
链接地址:https://www.777doc.com/doc-6230347 .html