1、所属语言:C+试卷总分:200分共有题型:5种一、填空 共20题 (共计20分)第1题 (1.0分) 假设变量a,b均为整型,表达式(a=5,b=2,ab?a+:b+,a+b)的值是【1】.答案:=(答案1)=8第2题 (1。0分) 若有以下数组a,数组元素:a0a9,其值为9 4 12 8 2 10 7 5 1 3该数组的元素中,数值最大的元素的下标值是【1】.答案:=(答案1)=2第3题 (1。0分) 下面程序段的输出结果是【1】.int a=12; a=a&0377;pritnf(”on”,a);答案:=(答案1)=14第4题 (1.0分) 若输入字符串:abcde,则以下while循环
2、体将执行 【1】 次。While((ch=getchar()=e) printf(*);答案:=(答案1)=0第5题 (1.0分) 将数组a的首地址赋给指针变量p的语句是【1】。答案:=(答案1)=p=a;第6题 (1.0分) C语言把文件看作是一个【1】的序列.答案:=(答案1)=字符=或=字节第7题 (1.0分) 静态变量和外部变量的初始化是在【1】阶段完成的,而自动变量的赋值是在【2】时进行的.答案:=(答案1)=编译=(答案2)=函数调用第8题 (1.0分) 若有定义:int a32=2,4,6,8,10,12;,则(a1+1)的值是【1】。答案:=(答案1)=8第9题 (1。0分)
3、C语言中,数组名是一个不可变的【1】量,不能对它进行加减和赋值运算。答案:=(答案1)=地址第10题 (1.0分) int x=2;z=x+1; 则x的值为【1】。答案:=(答案1)=3第11题 (1。0分) 若所用变量都已正确定义,请填写以下程序段的输出结果【1】。for(i=1;i=5;i+); printf(”OKn”);答案:=(答案1)=OK第12题 (1。0分) feof(fp)函数用来判断文件是否结束,如果遇到文件结束,函数值为【1】,否则为【2】.答案:=(答案1)=非0值=(答案2)=0第13题 (1。0分) 如果函数不要求带回值,可用【1】来定义函数返回值为空。答案:=(答
4、案1)=void第14题 (1.0分) 调用 fopen 函数打开一文本文件,在使用方式”这一项中,为输出而打开需填入【1】.答案:=(答案1)=w=或=w+第15题 (1.0分) 顺序结构存储方法是把逻辑上相邻的结点存储在物理位置【1】的存储单元中。答案:=(答案1)=相邻第16题 (1。0分) 一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的【1】。答案:=(答案1)=可重用性第17题 (1.0分) C+中封装性、继承性和【1】是面向对象程序设计的三个主要性质。答案:=(答案1)=多态性第18题 (1.0分) C+语言的参数传递机制包括传值和传地址两种,如果调用函
5、数时,需要改变实参或者返回多个值,应该采取【1】方式。答案:=(答案1)=传地址第19题 (1。0分) 设i,j,k均为int型变量,则执行完for(i=0,j=10;j=j;i+,j)k=i+j;语句后,K的值为【1】.答案:=(答案1)=10第20题 (1。0分) 对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为【1】.答案:=(答案1)=45二、判断 共20题 (共计20分)第1题 (1。0分) 用fopen(”file,”r+);打开的文件”file可以进行修改。答案:Y第2题 (1。0分) int i=20;switch(i/10)case 2:printf(A”);ca
6、se 1:printf(B”);的输出结果为A。答案:N第3题 (1.0分) 若有定义和语句:int a;char c;float f;scanf(”%d,%c,%f,&a,&c,f);若通过键盘输入:10,A,12.5,则a=10,c=A,f=12.5.答案:Y第4题 (1.0分) char p=girl”;的含义是定义字符型指针变量p,p的值是字符串girl.答案:N第5题 (1。0分) x=y+8 等价于 x=x(y+8)。答案:Y第6题 (1.0分) 如果有一个字符串,其中第十个字符为n,则此字符串的有效字符为9个。答案:N第7题 (1。0分) 通过return语句,函数可以带回一个或
7、一个以上的返回值。答案:N第8题 (1。0分) 如果想使一个数组中全部元素的值为0,可以写成 int a10=010;答案:N第9题 (1。0分) 一个include 命令可以指定多个被包含的文件。答案:N第10题 (1。0分) C程序中有调用关系的所有函数必须放在同一个源程序文件中。答案:N第11题 (1.0分) 进行宏定义时,宏名必须使用大写字母表示.答案:N第12题 (1。0分) 共同体变量所占的内存长度等于最长的成员的长度。答案:Y第13题 (1.0分) 在C 语言中,此定义和语句是合法的:enum aa a=5,b,cbb;bb=(enum aa)5;答案:Y第14题 (1.0分)
8、73+12的值是15。答案:N第15题 (1.0分) 类有两个特殊的成员函数构造函数和虚函数答案:N第16题 (1。0分) 抽象类不仅可用做派生其他类的基类,也可以用于直接创建对象实例.答案:N第17题 (1。0分) 静态函数可声明为虚函数。答案:N第18题 (1。0分) 如果一个函数在其函数体内直接或间接的调用了自己,该函数称为递归函数。答案:Y第19题 (1.0分) 类中提供了三种访问控制权:公有、私有、保护三种类型.答案:Y第20题 (1。0分) 所谓继承就是利用已有的数据类型定义出新的数据类型。答案:Y三、单选 共60题 (共计60分)第1题 (1。0分) fscanf函数的正确调用形
9、式是()。A:fscanf(fp,格式字符串,输出表列);B:fscanf(格式字符串,输出表列,fp);C:fscanf(格式字符串,文件指针,输出表列);D:fscanf(文件指针,格式字符串,输入表列);答案:D第2题 (1.0分) C语言的if语句嵌套时,if与else的配对关系是()。A:每个else总是与它上面的最近的if配对B:每个else总是与最外层的if配对C:每个else与if的配对是任意的D:每个else总是与它上面的if配对答案:A第3题 (1。0分) C语言中,文件由().A:记录组成B:由数据行组成C:由数据块组成D:由字符(字节)序列组成答案:D第4题 (1。0分
10、) 设C语言中,int类型数据占2个字节,则short类型数据占()。A:1个字节B:2个字节C:4个字节D:8个字节答案:B第5题 (1.0分) 以下不符合C语言语法的赋值语句是().A:j+;B:j=j=5;C:k=24,k*4;D:y=float(j);答案:D第6题 (1。0分) C语言允许函数类型缺省定义,此时函数值隐含的类型是()。A:floatB:intC:longD:double答案:B第7题 (1.0分) int (*p)6; 它的含义为()。A:具有6个元素的一维数组B:定义了一个指向具有6个元素的一维数组的指针变量C:指向整型指针变量D:指向6个整数中的一个的地址答案:B
11、第8题 (1.0分) 经下列语句定义后,sizeof(x),sizeof(y),sizeof(a),sizeof(b)在微机上的值分别为()。char x=65;float y=7。3; int a=100; double b=4。5;A:2,2,2,4B:1,2,2,4C:1,4,2,8D:2,4,2,8答案:C第9题 (1.0分) char match(char c)是()。A:函数定义的头部B:函数预说明C:函数调用D:指针变量说明答案:A第10题 (1。0分) 若有说明: int a34=0;则下面正确的叙述是()。A:只有元素a00可得到初值0B:此说明语句不正确C:数组a中各元素都
12、可得到初值,但其值不一定为0D:数组a中每个元素均可得到初值0答案:D第11题 (1.0分) 当说明一个结构体变量时系统分配给它的内存是()。A:各成员所需内存量的总和B:结构中第一个成员所需内存量C:成员中占内存量最大者所需的容量D:结构中最后一个成员所需内存量答案:A第12题 (1.0分) 以下不是无限循环的语句为().A:for(y=0,x=1;x+y;x=i+) i=x;B:for(;;x+=i);C:while(1)x+;D:for(i=10;i-) sum+=i;答案:A第13题 (1.0分) 利用 fseek 函数可以实现的操作是()。A:改变文件的位置指针B:文件的顺序读写C:
13、文件的随机读写D:以上答案均正确答案:D第14题 (1。0分) C语言中 while 和 dowhile 循环的主要区别是().A:dowhile 的循环体至少无条件执行一次B:while的循环控制条件比 do-while的循环控制条件更严格C:dowhile 允许从外部转到循环体内D:dowhile 的循环体不能是复合语句答案:A第15题 (1。0分) sizeof(float)是().A:一种函数调用B:一个不合法的表达式C:一个整型表达式D:一个浮点表达式答案:C第16题 (1.0分) 以下程序的运行结果是()。main() int n; for(n=1;n=C::D:/答案:C第51题
14、 (1.0分) 继承机制的作用是A:信息隐藏B:数据封装C:定义新类D:数据抽象答案:C第52题 (1.0分) C+语言对C语言进行了很多改进,C+语言相对于C语言的最根本的变化是A:增加了一些新的运算符B:允许函数重载,并允许设置缺省参数C:规定函数说明符必须用原型D:引进了类和对象的概念答案:D第53题 (1。0分) 若x、i、j、k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为( ).A:4B:16C:32D:52答案:C第54题 (1。0分) 下列关于开关语句的描述中,错误的是( ).A:开关语句中,case子句的个数是不受限制的B:开关语句中,case子
15、句的语句序列中一定要有break语句C:开关语句中,default子句可以省略D:开关语句中,右花括号具有退出开关语句的功能答案:B第55题 (1。0分) 下列while循环语句的循环次数是( )。 while(int i=0) i-;A:0B:1C:2 D:无限答案:A第56题 (1。0分) 下列运算符中优先级最高的是( )。 A:?:B:C:-=D:&答案:B第57题 (1。0分) 采用函数重载的目的在于( ).A:实现共享B:减少空间C:使用方便,提高可靠性D:提高速度答案:C第58题 (1.0分) 使用磁盘文件,要包含_头文件A:iostreamB:fstreamC:iomanipD:
16、complex答案:B第59题 (1.0分) ( )是析构函数的特征.A:一个类中只能定义一个析构函数B:析构函数与类名不同C:析构函数的定义只能在类体内D:析构函数可以有一个或多个参数答案:A第60题 (1.0分) 下列关于字符数组的描述中,错误的是( )。A:字符数组中的每一个元素都是字符B:字符数组可以使用初始值表进行初始化C:字符数组可以存放字符串D:字符数组就是字符串答案:D四、程序填空 共6题 (共计40分)第1题 (5.0分) /*-【程序填空】-功能:产生10个30,90区间上的随机整数,然后对其用选择法 进行由小到大的排序.-*/#include stdio。hmain()
17、/*SPACE*/ 【?】; int i,j,k; int a10; for(i=0;i10;i+) ai=random(61)+30; for(i=0;i9;i+) /*SPACE*/ 【?】; for(j=i+1;j10;j+) /*SPACE*/ if(【?】) k=j; if(k!=i) t=ak; ak=ai; ai=t; /*SPACE*/ for(【?】 ) printf(”5d,ai); printf(”n”);答案:=(答案1)=int t=(答案2)=k=i=(答案3)=akaj=或=ajak=(答案4)=i=0;i10;i+=或=i=0;10i;i+=或=i=0;ii;i
18、+=1=或=i=0;i=9;i+=或=i=0;9=i;i+=1=或=i=0;i10;+i=或=i=0;10i;+i=或=i=0;9=i;+i=或=i=0;i=9;+i第2题 (5。0分) /*-【程序填空】-功能:求一个二维数组中每行的最大值和每行的和。-/#include stdio。hmain() int a55,b5,c5,i,j,k,s=0; for(i=0;i5;i+) for(j=0;j5;j+) aij=random(40)+20; for(i=0;i5;i+) /*SPACE*/ k=ai0; 【?】 ; for(j=0;j5;j+) /*SPACE*/ if(kaij) 【?
19、】 ; s=s+aij; bi=k; /*SPACE*/ 【?】 ; for(i=0;i5;i+) for(j=0;j5;j+) /*SPACE*/ printf(”5d”, 【?】 ); printf(”%5d%5d”,bi,ci); printf(”n); 答案:=(答案1)=s=0=(答案2)=k=aij=(答案3)=ci=s=(答案4)=aij第3题 (5.0分) /*-【程序填空】-功能:计算一元二次方程的根。-/#include /*SPACE*/#include 【?】main() double x1,x2,imagpart; float a,b,c,disc,realpart;
20、 scanf(”%fff,a,b,c); printf(”the equation); /*SPACE*/ if(【?】=1e6) printf(”is not quadraticn); else disc=b*b4ac; if(fabs(disc)=1e6) printf(has two equal roots:%8。4fn”,-b/(2*a); /*SPACE*/ else if(【?】) x1=(-b+sqrt(disc)/(2a); x2=(-bsqrt(disc))/(2*a); printf(”has distinct real roots:8。4f and .4fn”,x1,x2
21、); else realpart=b/(2a); imagpart=sqrt(disc)/(2*a); printf(has complex roots:n); printf(%8。4f=。4fin”,realpart,imagpart); printf(”8.4f-%。4fin”,realpart,imagpart); 答案:=(答案1)= 1e-6=或=1e-6 fabs(disc)第4题 (5.0分) /-【程序填空】-功能:分别求出一批非零整数中的偶数、奇数的平均值,用零作 为终止标记。-*/#include stdio.hmain() int x,i=0,j=0; float s1=0,s2=0,av1,av2; scanf(”%d,&x); /*SPACE*/ while(【?】) if(x%2=0) s1=s1+x; i+; /*SPACE*/ 【?】 s2=s2+x; j+; /*SPACE*/ 【?】; if(i!=0) av1=s1/i; else av1=0; if(j!=0) /*SPACE*/ 【?】 ; else av2=0; printf(oushujunzhi:%7。2f,jishujunzhi:7。2fn”,av1,av2);答案:=(答案1)=x != 0