首页 > 代码库 > QT理论试题与答案

QT理论试题与答案

QT理论试题

 

1. 以下关于QT的描述正确的是: 

  1. 是一个不跨平台的C++图形用户界面
  2. 由挪威TrollTech公司出品
  3. 只支持Unix、Linux
  4. QT API和开发工具对所支持的平台是不一致的

1. 以下关于QT的描述不正确的是:

  1. QT支持2D图形渲染
  2. QT支持3D图形渲染
  3. QT支持OpenGL
  4. QT不支持XML

2. 下关于不正确的是:

  1. 是面向嵌入式系统的Qt版本
  2. 是Qt的嵌入式窗口
  3. 基于Windows平台的开发工具
  4. 是完整的自包含C++ GUI的开发工具

3. 内部对字符集的处理采用以下哪个标准: 

  1. UNICODE
  2. ASCII
  3. GB2312
  4. ISO 8859-1

4. 以下关于Qt描述不正确的是

  1. 是基于面向对象的C++语言
  2. 提供了signal和slot的对象通信机制
  3. 有可查询和可设计属性
  4. 没有字符国际化

5. 以下描述正确的是: 

  1. 标准的C++对象模型可有效的支持运行时参数
  2. 标准的C++对象模型的静态特性十分灵活
  3. 图形用户界面编程无需运行得高效
  4. 图形用户界面编程无需运行得高灵活性

6. 以下不是QT增加的特性:

  1. 有效的对象通信signal和slot
  2. 可查询和可设计的对象
  3. 事件及事件过滤器
  4. 不使用指针

7. 以下描述正确的是:

  1. 元对象系统可以对信号使用模板
  2. 元对象系统可以对槽使用模板
  3. Qt可在多个平台的应用程序中完全应用模板
  4. Qt不能在多个平台的应用程序中完全应用模板

8. 以下关于moc叙述正确的是: 

  1. moc即Mult Object Compiler
  2. 可产生能被任何标准C++编译访问的附加C++代码
  3. moc必须手动调用
  4. 类声明中有无Q_OBJECT无所谓

10.以下关于信号和槽的描述正确的是: 

  1. 用于SOCKET网络通信
  2. 用于UDP网络通信
  3. 用于对象间通信
  4. 用于串口通信

11.以下关于信号/槽的叙述不正确的是: 

  1. 信号与槽通过connected函数任意相连
  2. 信号/槽机制在QObject类中实现
  3. 从QWidget类继承的所有类可以包含信号和槽
  4. 当对象状态变化时信号被发送,对象不关心是否有其他对象接收到该信号

12.以下类声明中有几处错误?

class  M : public  Qobject

{

public :

M ( ) ;

int value ( ) const

{

return va ;

}

public slot :

void  setValue ( int ) ;

signals :

void  valueChanged ( int ) ;

private:

int  va ;

};

  1. 5
  2. 4
  3. 3
  4. 2

13.设有如下声明

void  M : : setValue ( int  v )

{

if ( v != va )

{

va = v ;

emit  valueChanged ( v ) ;

}

}

则对于如下语句

M  a , b ;

connect ( &a , SIGNAL ( valueChanged ( int ) ) , &b , SLOT ( setValue ( int ) ) ) ;

b.setValue ( 11 ) ;

a.setValue ( 12 ) ;

b.value ( ) ;

执行后,值为: 

a. 11  11 b. 12  12 c. 11  12 d. 12  11

14.以下关于槽的描述正确的是: 

  1. 槽具有public和protected 2个类
  2. protected  slots 表示只有该类的子类的信号才能连接
  3. 槽是普通成员函数
  4. 不能有private slots

15.以下关于元对象系统不正确的是

  1. 元对象系统只是用于处理对象间通信的信号/槽机制
  2. 元对象系统可处理运行时的类型信息和动态属性系统
  3. 元对象系统基于Qobject类
  4. bc都对

16.不是元对象代码实现的特征的是:

  1. 提供信号/槽机制
  2. Class.forName ( )在运行的时候返回类名称
  3. tr ( )用于国际化中的字符串翻译
  4. metaObject ( )返回该类所关联的元对象

17.以下关于Q_OBJECT叙述不正确的是: 

  1. 类定一种声明了Q_OBJECT后,该类才能使用元对象系统相关的特性
  2. Q_OBJECT对所有类都无关紧要
  3. QObject的子类中未实现信号和槽也可使用Q_OBJECT
  4. QObject的子类中未实现属性也可使用Q_OBJECT

18.以下关于元对象编译器的叙述不正确的是: 

  1. 元对象编译器不展开#define ,但可展开#include
  2. 元对象编译器不展开#include
  3. 忽略遇到的所有预处理程序
  4. 无法处理所有C++语法

19.有如下语句

class  YourClass : public  Qobject

{

Q_OBJECT

public  slots :

void  apply ( void  ( *apply ) ( List * , void * ) , char * ) ;

}

以下正确的是

  1. 完全正确
  2. 可以没有Q_OBJECT
  3. slots关键字有误
  4. 函数指针不能作为信号和槽的参数

20.如下叙述不正确的是: 

  1. 不能把继承的成员函数升级为共有状态
  2. 宏不能用在信号和槽的参数中
  3. 嵌套类不能放在信号部分
  4. 嵌套类可以放在槽部分

21.有如下声明:

class  Abc : public  Qobject

{

① Q_OBJECT

② public :

③     Q_PROPERTY(Priority priority READ priority WRITE  setPriority ) 

④     Q_ENUMS ( Priority )

enum  Priority { High , Low , VeryHigh , VeryLow };

void  setPriority ( Priority ) ;

Priority  priority ( ) const ;

};

关于属性声明的位置以下正确的是: 

  1. 原位置正确 ① ② ③ ④
  2. 原位置不正确,应为 ① ③ ④ ②
  3. 原位置不正确,应为 ① ③ ② ④

22.以下关于属性的叙述不正确的是: 

  1. 基于元对象系统
  2. 在类声明中用宏声明
  3. 属性不是一个类的成员
  4. 属性只能在继承于QObject的子类中声明

23.以下关于QObject类叙述不正确的是: 

  1. 是所有Qt对象的基类
  2. QObject对象树是一个静态的QObjectList类对象object_trees
  3. object_trees链表中存有部分对象指针
  4. 通过object_trees链表可查询到所有的对象

24.以下是事件处理方法的是: 

  1. 重载QApplication : : notify ( )
  2. 重载QObject : : event ( )
  3. 重载Qt基类事件处理函数
  4. 以上全是

25.以下关于定时器的叙述不正确的是: 

  1. 多数平台支持2ms精度的定时器
  2. 使用定时器,可以用QTimer类
  3. 使用定时器,可以用QObject类的定时器
  4. 定时器精度依赖于操作系统和硬件

26.以下关于QObject类定时器的叙述正确的是: 

  1. 当处理器正忙于其它事件的处理时,定时器仍可以立即触发
  2. 当定时器触发时,应用程序会发送QtimerEvent
  3. 用startTimer ( )开始一个定时器,如果成功则返回0
  4. 用startTimer ( )开始一个定时器,如果失败则返回-1

27.以下是QObject提供的字符串翻译函数的选项是: 

  1. translateit ( ) , trUtf8 ( )
  2. translation ( )
  3. tr ( ) , trUtf_8 ( )
  4. tr ( ) , trUtf8 ( )

28.以下关于元对象的叙述不正确的是: 

  1. 每个在类声明中含有Q_OBJECT宏的类都有一个对应的元对象
  2. 每个在类声明中含有Q_OBJECT宏的类都有一个对应的QMetaObject类对象
  3. 元对象是动态的
  4. 一个类可能含有多个元对象与之对应

29.窗口部件的父类包括: 

  1. QWidget
  2. QFrame
  3. QScrollView
  4. 以上全是

30.以下关于QWidget类、QFrame类和QScrollView类的关系叙述正确的是: 

  1. 三个类是兄弟关系
  2. 三个类是继承关系:QWidget为祖父,QFrame为父,QScrollView为子
  3. 三个类是继承关系:QFrame为祖父,QWidget为父,QScrollView为子
  4. 三个类是继承关系:QFrame为祖父,QWidget与QScrollView互为兄弟

31.以下关于Qt风格叙述正确的是: 

  1. Qt的风格类的基类是QStyle类
  2. QStyle的多数成员函数即有声明也有实现
  3. 其实现只能在QCommonStyle类中通过重载来完成
  4. 其实现只能在QWindowStyle类中通过重载来完成

32.关于布局功能的叙述,以下正确的是:

  1. 在布局空间中布置子窗口部件
  2. 设置子窗口部件间的空隙
  3. 管理在布局空间中布置子窗口部件
  4. 以上都对

33.以下关于QLayout的描述不正确的是:

  1. 是的布局系统抽象基类
  2. 其中,属性int margin代表布局的外边框的宽度
  3. 其中,属性int spacing代表布局内的窗口部件的大小
  4. 其中,属性ResizeMode resizeMode代表布局的扩展方式

34.布局窗口部件包括:

  1. QHBox
  2. QVBox
  3. QGrid
  4. 以上全有

35.以下叙述不正确的是:

  1. QHBox允许子窗口部件按水平、垂直和网格排列
  2. QVBox允许子窗口部件按水平、垂直和网格排列
  3. QGrid允许子窗口部件按水平、垂直和网格排列
  4. 以上全不对

36.以下各项中,是QLayout子类的是:

  1. QGridLayout
  2. QHBoxLayout
  3. QVBoxLayout
  4. b和c

37.如果对默认放置位置不满意,则须采取相应的措施,以下哪项不是:

  1. 创建没有父布局的布局对象
  2. 调用addLayout ( )把这个布局插入到其他布局中
  3. 没有办法
  4. a和b

38.以下关于集合类描述不正确的是:

  1. 它是装有多个条目的容器
  2. 每个条目是某种数据结构
  3. 集合类可对容器中的条目做插入操作
  4. 集合类不能对容器中的条目做删除操作

39.以下各项中属于基于值的集合类是:

  1. QCache
  2. QMap
  3. QPtrList
  4. QDict

40.以下各项中属于基于指针的集合类的是:

  1. QIntCache
  2. QValueStak
  3. QValueVector
  4. QValueList

41.以下各项中既不基于指针也不基于值的是:

  1. QIntDict
  2. QPtrList
  3. QPtrStack
  4. QMemArray

42.所有基于指针的集合继承了如下哪个类?

  1. QGCache
  2. QGVector
  3. QPtrCollection
  4. QGList

43.当插入一个条目到一个集合时,如下不正确的是:

  1. 仅拷贝指针而不拷贝条目本身的,称“浅拷贝”
  2. 不允许只拷贝指针而不拷贝条目本身
  3. 拷贝所有条目的数组到集合中是可能的
  4. 选项C又称“深拷贝”

44.以下各项中不是与Qt线程相关的类的是:

  1. QMutex
  2. QSemaphore
  3. QThread
  4. 以上都不是

45.以下关于Qt线程叙述正确的是:

  1. Qt中提供了Thread线程类
  2. Qt中提供了QThread线程类
  3. 通过重载Thread : : run ( ) 函数定义线程的执行内容
  4. 通过重载QThread : : _run ( ) 函数定义线程的执行内容

46.有如下关于线程的代码:

class  Your_Class : public QThread

{

public :

virtual  void  run ( ) ;

} ;

void  Your_Class : run ( )

{

for ( int i=0 ; i < 100 ; i++ ) ;

}

int  main ( )

{

Your_Class  a ;

a . run ( ) ;

return 0 ;

}

其中有几处错误:

  1. 1
  2. 2
  3. 3
  4. 4

47.以下关于线程编程时的注意事项中不正确的是:

  1. 在持有Qt库互斥量时必须执行阻塞操作
  2. 在调用除了Qt容器和工具类外的任何内容之前,锁定Qt应用程序互斥量
  3. 只在GUI线程中使用QNetwork类
  4. 不要在应用程序中把普通Qt库与支持线程的Qt库混用

48.以下不属于拖放机制的是:

  1. 拖动
  2. 剪贴板
  3. 放下
  4. 以上都不是

49.以下关于拖动的叙述错误的是:

  1. 在拖动之后,QDragObject被立即删除
  2. 拖放明显完成后,这个QDragObject要被保存
  3. QDragObject可能要与其他进程通信
  4. QDragObject对象最后由Qt删除

50.在一些简单情况下,拖放的目标接收一个被拖动数据的拷贝,并且由源决定是否删除初始的拖动对象,这是QDropEvent中的什么操作?

  1. Copy
  2. Move
  3. Link
  4. 以上都不是

51.Qt/Embedded的开发公司是:

  1. Microsoft
  2. Sun
  3. Oracle
  4. Trolltech

52.以下各项中关于焦点定位的习惯方式叙述错误的是:

  1. 用户按Tab键
  2. 用户按Enter键
  3. b选项不是
  4. 用户使用鼠标滚轮

53.以下关于Qt/Embedded叙述不正确的是:

  1. 是C/S结构
  2. 类库完全采用C语言
  3. 采用framebuffer作为底层图形接口
  4. 将外部输入设备抽象为keyboard和mouse输入事件

54.以下关于字体的叙述正确的是:

  1. Qt/Embedded用QFontManager管理字体,与字体相关的类在服务器端运行
  2. Qt/Embedded用QFontManager管理字体,与字体相关的类在客户端运行
  3. Qt/Embedded用FontManager管理字体,与字体相关的类在服务器端运行
  4. Qt/Embedded用FontManager管理字体,与字体相关的类在客户端运行

55.以下各项中与显示无关的类是:

  1. QScreen
  2. QLock
  3. QWSManager
  4. QDiskFont

56.以下不是Qt支持的图像格式是:

  1. JPG
  2. PNG
  3. BMP
  4. XPM

57.以下叙述正确的是:

  1. Qt支持GIF格式图像,且可以存储它们
  2. Qt支持GIF格式图像,但不可以存储它们
  3. Qt不支持GIF格式图像,但可以存储它们
  4. Qt不支持GIF格式图像,且不可以存储它们

58.用QPainter的转换函数对图像做转换后,若要恢复图像的原样,则以下正确的是:

  1. 无法实现
  2. 可以实现,用QPainter : : resetForm ( ) 只能恢复最近一次的转换
  3. 可以实现,用QPainter : : resetForm ( ) 可以撤销所有的转换操作

 

59.用QPixmap对象打开GIF动画,以下叙述正确的是:

  1. 可以看到动画
  2. 看不到任何画面
  3. 只能看到动画的第一帧
  4. 只能看到动画的最后一帧

60.以下关于Qt/Embedded客户端与服务器的描述不正确的是:

  1. 客户端可以有多个
  2. 服务器可以有多个
  3. 客户端只有一个
  4. 服务器只有一个

 

QT理论试题与答案