福师《C 语言程序设计》在线作业二
试卷总分:100 得分:100
一、 单选题 (共 20 道试题,共 40 分)优学100f(www.youxue100f.com)
1.有C++目标文件链接而成的可执行文件的扩展名是( )
A.cpp
B.exe
C.lik
D.obj
正确答案:
2.可以用p.a的形式访问派生类对象P的基类成员a,其中a是()。
A.私有继承的公有成员
B.公有继承的私有成员
C.公有继承的保护成员
D.公有继承的公有成员
正确答案:
3.派生类公有继承基类时,基类中的所有公有成员成为派生类的______。( )
A.public 成员
B.友员
C.protected成员
D.private成员
正确答案:
4.下面列出的保留字中,不能作为函数的返回类型的是( )
A.void
B.int
C.new
D.long
正确答案:
5.下面关于数组的初始化正确的是_________。
A.char str[]={‘a',’b','c‘}
B.char str[2]={'a','b','c’}
C.char str[2][3]={{'a‘,'b’},{’e’,'d’},{’e’,‘f'}}
D.char str[]={'a','b','c’}
正确答案:
6.在对typedef的叙述中错误的是()。
A.用typedef可以定义各种类型名,但不能用来定义变量
B.用typedef可以增加新类型
C.用typedef只是将已存在的类型用一个新的标识符来代表
D.使用typedef有利于程序的通用和移植
正确答案:
7.在重载一个运算符时,如果其参数表中有一个参数,则说明该运算符是()。
A.一元成员运算符
B.二元成员运算符
C.一元友元运算符
D.都可能
正确答案:
8.下面关于数组的初始化正确的是()。
A.charstr[]={‘a',’b','c‘}
B.charstr[2]={'a','b','c’}
C.charstr[2][3]={{'a‘,'b’},{’e’,'d’},{’e’,‘f'}}
D.charstr[]={'a','b','c’}
正确答案:
9.下面对静态数据成员的描述中,正确的是_________。
A.静态数据成员可以在类体内进行初始化
B.静态数据成员不可以被类的对象调用
C.静态数据成员不能受private控制符的作用
D.静态数据成员可以直接用类名调用
正确答案:
10.下列叙述正确的是()。
A.一个程序中可以有多个#include命令行
B.在#include命令行中,用双引号和用尖括号将被包含的文件名括起来没有区别
C.#include命令行只能放在程序开始位置
D.#include命令后也必须以分号结束
正确答案:
11.在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是()。
A.派生类的对象可以赋给基类的对象
B.派生类的对象可以初始化基类的引用
C.派生类的对象可以直接访问基类中的成员
D.派生类的对象的地址可以赋给指向基类的指针
正确答案:
12.下列标识符中,()是文件级作用域。
A.函数形参
B.语句标号
C.外部静态标识符
D.自动态标识符
正确答案:
13.考虑函数原型void test(int a,int b=7,char="*"),下面的函数调用中,属于不合法调用的是()。
A.test(5);
B.test(5,8);
C.test(6,"#")
D.test(0,0,"*")
正确答案:
14.函数定义为Fun(int&k),变量定义n=100,则下面调用正确的是()。
A.Fun(20)
B.Fun(20+n)
C.Fun(n)
D.Fun(&n)
正确答案:
15.定义inta[2][3],*prt[2],i; for(i=1;i<2;i++)prt[i]=a[i]; 则对a数组的正确引用为()。
A.prt[0][0]
B.*(a+1)[2]
C.*(prt[1]+2)
D.*(&a[0][0]+2)
正确答案:
16.下列叙述正确的是( )
A.一个程序中可以有多个#include命令行
B.在#include命令行中,用双引号和用尖括号将被包含的文件名括起来没有区别
C.#include命令行只能放在程序开始位置
D.#include命令后也必须以分号结束
正确答案:
17.在下列关键字中,用以说明类中公有成员的是()。
A.public
B.private
C.protected
D.friend
正确答案:
18.下列各种函数中,( )不是类的成员函数。
A.构造函数
B.析构函数
C.友元函数
D.拷贝构造函数
正确答案:
19.假定a为一个整型数组名,则元素a[4]的字节地址为()。
A.a+4
B.a+8
C.a+16
D.a+32
正确答案:
20.设B类是由A类继承的。当创建一个B类的对象时,构造函数的调用顺序是( )
A.先调用A类的构造函数,然后调用B类的构造函数
B.先调用B类的构造函数,然后调用A类的构造函数
C.不调用A类的构造函数
D.视定义时A类和B类出现的位置
正确答案:
二、 判断题 (共 20 道试题,共 40 分)
1.说明函数原型时不需要指明每个函数参数的名字,只需要说明每个参数的类型和返回值类型就可以了。
A.错误
B.正确
正确答案:
2.C++语言程序必须要有return语句( )
A.错误
B.正确
正确答案:
3.程序设计的目标在正确的前提下,其重要性排列次序依次为:可读,可维护,可移植和高效( )
A.错误
B.正确
正确答案:
4.两个数组名的比较是地址的比较。
A.错误
B.正确
正确答案:
5.类模板的使用实际士:是将类模板实例化成一个具体的类。
A.错误
B.正确
正确答案:
6.如果类B继承了类A,则称类A为类B的基类,类B称为类A的派生类。
A.错误
B.正确
正确答案:
7.以面向IA-32处理器的VC++ 2008和gcc 4.2为准,float类型数据在内存中占4个字节,double型数据占8个字节,long double型数据占8个字节。( )
A.错误
B.正确
正确答案:
8.变量必须先定义,后使用。
A.错误
B.正确
正确答案:
9.Jackson结构化程序设计方法是英国的M.Jackson提出的,它是一种面向数据结构的设计方法。
A.错误
B.正确
正确答案:
10.继承的方式有公有继承、私有继承两种。
A.错误
B.正确
正确答案:
11.定义全局变量要在程序开始时进行,并且放在所有函数的外面,静态局部变量要在函数内部定义,但生命期却随函数的第一次被调用而产生。( )
A.错误
B.正确
正确答案:
12.指针在使用前可以不进行初始化( )
A.错误
B.正确
正确答案:
13.构造函数不能重载。
A.错误
B.正确
正确答案:
14.C++语句constchar*constp="hello",,所定义的指针p和它所指的内容都不能被改变。
A.错误
B.正确
正确答案:
15.常对象必须进行初始化,而且不能被更新( )
A.错误
B.正确
正确答案:
16.空类型指针不能进行指针运算,也不能进行间接引用。( )
A.错误
B.正确
正确答案:
17.C++中函数声明就是函数原型。( )
A.错误
B.正确
正确答案:
18.在内存中,字符数据以ASCII码存储,即以整数表示。( )
A.错误
B.正确
正确答案:
19.若类A是类B的友员类,且类B是类C的友员类,那么类A也是类C的友员类。
A.错误
B.正确
正确答案:
20.typedef定义一个新的数据类型,在建立一个tepedef类型时同时分配内存空间( )
A.错误
B.正确
正确答案:
三、 多选题 (共 10 道试题,共 20 分)
1.以下不正确的描述是______。
A.函数的定义可以嵌套,函数的调用不可以嵌套
B.函数的定义不可以嵌套,函数的调用可以嵌套
C.函数的定义和函数的调用均可以嵌套
D.函数的定义和函数的调用均不可以嵌套
正确答案:
2.下面关于指针变量和引用变量的说法正确的是______。
A.指针变量存放的是内存地址,并且可以置为0
B.定义引用变量时,必须同时指明具体被引用的对象或变量
C.使用取地址操作符,可以取得指针变量自身的地址,但取不到引用变量自身的地址
D.类中的数据成员可以是指针变量,但不能是引用变量
正确答案:
3.下列说法中错误的是______。
A.不允许设置参数的默认值
B.设置参数的默认值只能在定义函数时设置
C.设置参数的默认值时,应该设置右边的参数
D.设置参数的默认值时,应该全部参数都设置
正确答案:
4.下面哪些保留字可以作为函数的返回类型______。
A.void
B.int
C.new
D.long
正确答案:
5.下列说法中正确的是______。
A.在一个函数中,可以有多条return语句
B.函数的定义不能嵌套,但函数的调用可以嵌套
C.函数必须有返回值
D.即使在不同的函数中,也不可以使用相同名字的变量
正确答案:B
6.关于函数重载,下列描述错误的是______。优学100f(www.youxue100f.com)
A.函数重载是指两个或两个以上的函数取相同的函数名,但形参的个数或类型不同
B.函数重载是指两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同
C.函数重载是指两个以上的函数名字不同,但形参的个数或类型相同
D.函数重载是指两个以上的函数取相同的函数名,并且函数的返回类型相同
正确答案:
7.函数调用可以______。
A.出现在一个表达式中
B.出现在执行语句中
C.作为一个函数的实参
D.作为一个函数的形参
正确答案:
8.下面描述中,表达正确的是______。
A.公有继承时基类中的public成员在派生类中仍是public的
B.公有继承时基类中的private成员在派生类中是public的
C.公有继承时基类中的protected成员在派生类中仍是protected的
D.私有继承时基类中的public成员在派生类中是private的
正确答案:
9.在下面的一维数组定义中,没有语法错误的是______。
A.int a[ ]={1,2,3}
B.int a[10]={0}
C.int a[ ]
D.int a[5]
正确答案:
10.在进行完成任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;其中不能用于检测输入流状态的操作函数名称是______。
A.fail
B.eof
C.bad
D.good
正确答案: