《DirectX程序设计》期末试卷及答案

合集下载

DX期末复习题

DX期末复习题

《DirectX 游戏设计》考试样题一CABBC CBABD BDCAA CCAAB ABACA ADACB一、单选题(30题,每题1分,共30分)1.典型的windows SDK 方式的开发中,遵循这样一个过程:( C )A .创建窗口->显示窗口->注册窗口类->初始化窗口类 B. 注册窗口类->初始化窗口类->创建窗口->显示窗口 C .初始化窗口类->注册窗口类->创建窗口->显示窗口 D .创建窗口->注册窗口类->初始化窗口类->显示窗口2. Windows 编程中,退出消息循环的条件是:( A ) A . GetMessage()从消息队列中获得WM_QUIT 消息 B . 用户按下窗口关闭按钮C . 用户调用DestroyWindow()函数D . 用户利用Ctrl+Alt+Del ,在Windows 任务管理器中关闭进程3.Windows SDK 方式的开发中,响应菜单或按钮我们需要关注的消息是:( B )A .WM_CREATE B. WM_COMMAND C .WM_MENU D .WM_BUTTON4.D3D 中属于旋转函数的是:( B )A .D3DXMatrixScaling ()B .D3DXMatrixRotationX ()C .D3DXMatrixTranslation ()D .D3DXMatrixTranspose ()5.单位矩阵、矩阵转置、逆矩阵的调用函数分别是:( C )A .D3DXMatrixInverse 、D3DXMatrixIdentity 、D3DXMatrixTranspose B. D3DXMatrixIdentity 、D3DXMatrixInverse 、D3DXMatrixTranspose C .D3DXMatrixIdentity 、D3DXMatrixTranspose 、D3DXMatrixInverse D .D3DXMatrixInverse 、D3DXMatrixTranspose 、 D3DXMatrixIdentity6.逆矩阵的特点是:( C )A . 和原矩阵相乘等于原矩阵 B.和原矩阵相乘等于逆矩阵 C . 和原矩阵相乘等于单位矩阵 D .和原矩阵相乘等于全1矩阵7.初始化Direct3D 的第一步是要得到一个( B )接口。

《DirectX程序设计》19秋期末考核-0001

《DirectX程序设计》19秋期末考核-0001

《DirectX程序设计》19秋期末考核-0001------------------------1.Windows SDK方式的开发中,响应菜单或按钮我们需要关注的消息是:A.WM_CREATEB.WM_COMMANDC.WM_MENUD.WM_BUTTON正确答案:B2.()是Direct3D用来存储绘制到屏幕上的每个像素点深度信息的一块内存缓冲区A.广度缓存B.深度缓存C.深度测试D.广度测试正确答案:B3.()是图形中最基本的几何对象。

A.点C.向量D.三角形正确答案:A4.利用模板缓存来阻止对后台缓存村长哦功能某些特定区域进行绘制,判定是否将某个像素写入后台缓存的决策过程称为()A.模板测试B.深度缓存C.深度测试D.Alpha测试正确答案:A5.()对象是用来指定字体属性的。

A.LPD3DXFONTB.LPDIRECT3D9C.LPDIRECT3DDEVICE9D.RECT正确答案:A6.DirectX9中发布了高级着色器语言,是()A.GLSLC.CgD.C++正确答案:B7.()变换后的的几何体位于观察坐标系中。

A.局部变换B.取景变换C.世界变换D.空间变换正确答案:B8.()的功能是对进入管线的每一个像素点进行着色处理A.像素着色器B.着色器C.顶点着色器D.可编程着色器正确答案:A9.以下哪个释放顺序是正确的。

A.Direct3D对象、Direct3D设备对象B.Direct3D设备对象、Direct3D对象C.顺序任意D.无需释放正确答案:B10.()是一个由相互连接的线段组合成的造型,程序可用它产生不封闭的多边形。

A.点列表B.线段列表C.线段条带D.三角形列表正确答案:C------------------------1.D3D中的常见的矩阵变化( )A.旋转B.缩放C.平移D.组合变换正确答案:ABCD2.投影变换包括哪几种投影方式。

A.平面投影B.透视投影C.正射投影D.缩放投影正确答案:BC3.DirectX主要由()和()所构成。

C语言程序设计期末考试试题(含答案)

C语言程序设计期末考试试题(含答案)

C语言程序设计期末考试试题及其答案一、单项选择题(本大题共20题,每题2 分,共40分)1、以下不是C语言的特点的是( )A、C语言简洁、紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件进行操作D、C语言移植性好2、以下不正确的C语言标识符是( )A、ABCB、abcC、a_bcD、ab.c3、一个C语言程序是由( )A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( )A、有零个或多个输入B、有零个或多个输出C、有穷性D、可行性5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a'+i*f值的数据类型为( )A、intB、floatC、doubleD、不确定6、在C语言中,char型数据在内存中的存储形式是( )A、补码B、反码C、源码D、ASCII码7、有如下程序,输入数据:12345M678<cR>后(〈CR>表示回车),x的值是()。

#include<stdio。

h>main(){int x;float y;scanf(”%3d%f",&x,&y);}A、12345B、123C、45D、3458、若有以下定义int a,b; float x,则正确的赋值语句是()A、a=1,b=2B、b++;C、a=b=5D、b=int(x);9、以下程序的执行结果是()#include<stdio.h>{int i=10,j=10;printf(”%d,%d\n”,++i,j——);}A、11,10B、9,10C、11,9D、10,910、巳知字母A的ASCII码是65,以下程序的执行结果是()#include〈stdio.h〉main(){char c1='A',c2='Y’;printf(”%d,%d\n”,c1,c2);A、A,YB、65,65C、65,90D、65,8911、下列运算符中优先级最高的是( )A、<B、十C、%D、!=12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。

南开24秋学期《DirectX程序设计》作业参考三

南开24秋学期《DirectX程序设计》作业参考三

24秋学期《DirectX程序设计》作业参考1.DirectX9中发布了高级着色器语言,是()选项A:GLSL选项B:HLSL选项C:Cg选项D:C++参考答案:B2.DirectX主要由硬件抽象层和硬件模拟层所构成,其中硬件模拟层的缩写为()。

选项A:HAL选项B:HCL选项C:HEL选项D:HEC参考答案:C3.Windows SDK方式的开发中,响应菜单或按钮我们需要关注的消息是:选项A:WM_CREATE选项B:WM_COMMAND选项C:WM_MENU选项D:WM_BUTTON参考答案:B4.()是由光源发出经多次散射而无法确定其方向的光。

选项A:漫反射光选项B:环境反射光选项C:镜面发射光选项D:自发光参考答案:B5.采用()时,复制与这个浮点值地址最接近的整数地址的纹理元素的颜色选项A:最近点采样选项B:线性过滤选项C:各向异性过滤选项D:mipmap过滤参考答案:A6.()的功能是对进入管线的每一个像素点进行着色处理选项A:像素着色器选项B:着色器选项C:顶点着色器选项D:可编程着色器参考答案:A7.除了进行几何信息的排序外,还将创建一个属性表,该表是()选项A:数组选项B:缓存选项C:序列选项D:线性表参考答案:A8.3D世界中最基本的图形是()。

选项A:点选项B:线选项C:向量选项D:三角形参考答案:D9.()缓存方式通常被放置在显存中,其中的数据能被有效地处理。

选项A:静态缓存选项B:动态缓存选项C:两种都可以选项D:两种都不可以。

《C语言程序设计》期末考试试卷以及答案提示(共五篇)

《C语言程序设计》期末考试试卷以及答案提示(共五篇)

《C语言程序设计》期末考试试卷以及答案提示(共五篇)第一篇:《C语言程序设计》期末考试试卷以及答案提示一、单项选择题(本大题共20题,每题2 分,共40分)1、以下不是C语言的特点的是 B。

A、C语言简洁、紧凑B、能够编制出功能复杂的程序(任何程序都可以,不算特点)C、C语言可以直接对硬件进行操作D、C语言移植性好2、以下不正确的C语言标识符是 DA、ABCB、abcC、a_bcD、ab.c(只能是字母,下划线,数字;另外数字不可开头)3、一个C语言程序是由B。

A、一个主程序和若干子程序组成B、函数组成 C、若干过程组成 D、若干子程序组成4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是 B A、有零个或多个输入B、有零个或多个输出(有一个或多个输出)C、有穷性D、可行性5、设变数a是整型,f是实型,i是双精度型,则表达式10+…a‟+i*f值的数据类型为 C A、int B、float C、double D、不确定(低类型要转换为高类型)6、在C语言中,char型数据在内存中的存储形式是 D。

A、补码B、反码C、源码D、ASCII码7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是B。

#include main(){ int x;float y;scanf(“%3d%f”,&x,&y);} A、12345 B、123 C、45 D、345(由scanf语句可知取三位数值给X)8、若有以下定义int a,b;float x,则正确的赋值语句是B。

A、a=1,b=2(少了分号)B、b++;C、a=b=5(句末少了分号)D、b=int(x);(右侧要是确切的值)9、以下程序的执行结果是A。

#include { int i=10,j=10;printf(“%d,%dn”,++i,j--);} A、11,10 B、9,10 C、11,9D、10,9(i是先加一再使用,j是先使用再减一)10、巳知字母A的ASCII码是65,以下程序的执行结果是D。

《DirectX程序设计》复习资料

《DirectX程序设计》复习资料

《DirectX程序设计》课程期末复习资料一、客观部分:(单项选择、多项选择、不定项选择、判断)(一)、选择部分1.D3DPRESENT_PARAMETERS参数很多,关于其中参数之一windowed的理解正确的是(ABD)A.取值FALSE则渲染全屏B.取值TRUE则渲染窗口C. int类型D.BOOL类型E.double类型★考核知识点: D3DPRESENT_PARAMETERS2.以下属于Direct 3D定义的图元类型的有(ABCD)A.点列表B.线段条带C.三角形列表D.三角形条带E.四边形列表★考核知识点: 图元3.以下属于Direct 3D提供的着色模式的是(AB )A.平面着色模式B.高洛德法着色模式C.渐变着色模式D.单颜色着色模式★考核知识点: 着色模式4.下面属于Direct3D提供的创建旋转矩阵的函数的是(ABC)A.D3DXMatrixRotarionXB. D3DXMatrixRotarionYC. D3DXMatrixRotarionZD. D3DXMatrixRotXE. D3DXMatrixRotY★考核知识点: 变换5.以下属于Direct3D提供的简化纹理过滤的过程的是(ABCD)A.最近点采样B.线性过滤C.各向异性过滤D.mipmap过滤★考核知识点: 纹理过滤6.D3DPRESENT_PARAMETERS参数很多,下面理解正确的是(ABCD)A.Windowed取值FALSE则渲染全屏B. BackBufferCount表示后备缓冲的数目。

《DirectX程序设计》全部试题及50%试题答案

《DirectX程序设计》全部试题及50%试题答案


B

1
11
3
绘制
单选题

2
调用渲染状态设置函 D3DRS_MULTISAMPLEANTIA 数SetRenderState(), LIAS##TRUE##FALSE##D3D 参数1为() RS_SAMPLEANTIALIAS 如果要对Mesh进行优 化,需要知道Mesh的 三角形的邻接信息情 况,这些信息存储在 ()中 使用 OptimizeInplace()进 行网格优化后,Mesh 的几何信息将按照属 性进行排序,这样各 个子集的顶点/索引将 组成连续的块 除了进行几何信息的 排序外,还将创建一 个 属性表,该表是 () 使用 SetAttributeTable( )方法来直接设置属性 表 已经指定了定点数和 面数,同时也分配了 适当大小的内存给顶 点缓存、索引缓存以 及属性缓存等,只是 没有填入相应的数据 称为() 在3DMAX等3D建模工具 中创建好模型,模型 转换为扩展名为.x的 文件,称() 邻接矩阵##邻接缓存##深 度缓存##邻接数组 D
判断题

2
纹理阶段混合状态用 于指定当前纹理颜色 值和Alpha值的混合方 法 ()是Direct3D用来 广度缓存##深度缓存##深 存储绘制到屏幕上的 度测试##广度测试 每个像素点深度信息 的一块内存缓冲区 通常情况下,深度缓 存用于判断三维空间 中物体的遮挡情况 设置深度缓存是指设 置深度测试成功时对 深度缓存如何操作 图形学中称由于采样 频率不足而造成的失 真为走样,反走样通 过多重采样改善图形 锯齿效果 渲染后物体模型通常 是由三角形图元组成 的,我们称它为一个 Mesh结构 若要从缓存中只读不 写数据,就不需要锁 定缓存,用完后解锁 三角形属性ID存储在 Mesh的属性缓存中, 由于每个三角形都对 应一项属性缓存,所 以属性缓存中的项目 数等于Mesh中的三角 形的个数

(精校版)C程序设计期末考试习题(含答案)

(精校版)C程序设计期末考试习题(含答案)

二、读程序写结果(每题 6 分,共 24 分)
1. 有以下程序
int f(int a)
{ int b=0;
static c=3;
b=b+1;c=c+1;
return(a+b+c);

void main()
{ int a=2,i;
for(i=0;i〈3;i++) printf(“%2d”,f(a));

执行后输出的结果是

2。 有以下程序
void f(int y,int *x)
{ y=y+*x; *x=*x+y;}
void main( )
{ int x=2,y=4;
f(y,&x);
printf(“x=%d,y=%d\n”,x,y);
}
执行后输出的结果是

3。 有以下程序
#define LETTER 1
7。 设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是 ( ).
A) p=1;
B) *q=2;
C) q=p;
D) *p=5;
8. 设有定义:int a,*pa=&a; 以下 scanf 语句中能正确为变量 a 读入数据的是 ( )。
A) scanf(“%d”,pa) ;
A)字符 B 和字符 P
B) 字符串 FORTD) 字符串 BASIC 和字符串 PASCAL
10。 执行语句 for(i=1;i++〈4;);后变量 i 的值是( ).
A) 3
B)4
C) 5
D) 不定
一、填空题(每空 2 分,共 18 分)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、选择题(本题共10小题,每小题3分,共30分。

单选或者多选)1.为了求平面的法向量,我们通常的方法是找到平面上相互不平行的两个向量,求他们的(C )。

A.点积B.相加C.叉积D.相减2. 为了能够用Alpha分量来描述像素的透明度,必须将源混合因子和目标混合因子分别设置为(B)。

A.D3DBLEND_ZERO和D3DBLEND_ONEB.D3DBLEND_SRCALPHA和D3DBLEND_INVSRCALPHAC.D3DBLEND_SRCCOLOR和D3DBLEND_INVSRCCOLORD.D3DBLEND_SRCALPHA和D3DBLEND_DESTALPHA3. 在Direct3D中,我们可以自由定义顶点的格式,下面哪个不是灵活顶点格式的标记(D)。

A. D3DFVF_NORMALB. D3DFVF_XYZC. D3DFVF_TEX1D. D3DFVF_TEX4.以下哪些项是对表面像素深度缓存的格式描述的枚举常量(AD)。

A.D3DFMT_D32 B.D3DFMT_DXT1C.D3DFMT_R8G8B8 D.D3DFMT_D24S85. 在进行纹理映射的时候,为了调整纹理的大小去适应屏幕三角形的大小,我们通过设置纹理过滤器来设置纹理的过滤方式,通常需要设置的过滤器有(ABC)。

A.放大过滤器B.缩小过滤器C.多级渐进纹理过滤器D.线性过滤器6.Direct3D中的三种基本的变换类型不包括下面的哪项(B)。

A.比例变换B.翻转变换C.平移变换D.旋转变换7.当需要对场景进行矩阵M的投影变换,选择下面的( A )。

A.Device->SetTransform(D3DTS_PROJECTION, &M);B.Device->SetTransform(D3DTS_WORLD, &M);C.Device->SetTransform(D3DTS_TEXTURE0, &M);D.Device->SetTransform(D3DTS_VIEW, &M);8.通过(B)技术,我们可以将2D图像数据映射到3D图元上,以增强场景的真实感。

A.模板B.纹理映射C. 光照D.混合9. 网格的属性缓存中的元素个数与(D)相等。

A. 顶点数B. 索引数C. 子集数D. 面片数10. 在D3DLIGHT9结构体中,以下的哪些成员对于方向光没有意义(ACD)。

A. PositionB. DirectionC. RangeD. Falloff二、填空题(本题共20空,每空1分,共20分。

)1、法向量是与平面垂直的向量,用于标记平面的朝向。

2、列出三个D3DXCreateTextureFromFile支持加载纹理图像的格式:BMP 、DDS 、DIB 、PNG、TGA 。

3、在进行深度测试的时候,距离摄像机近的像素颜色将替代后台缓存中对应像素的颜色值。

4、在光栅化过程中,如果每个图元的每个像素都被一致地赋予该图元的第一个顶点所指定的颜色,则可推断当前的着色模式是平面着色。

5、在Direct3D的光照模型中,光源发出的光由三种类型的光组成,它们分别是:环境光、漫反射光、镜面光。

6、我们通过指定物体的材质来模拟现实世界中物体通过吸收和反射光线来表现其颜色。

7、我们使用顶点缓存接口的Lock 和Unlock 方法来对其进行锁定和解锁。

8、常用的四种纹理寻址模式是重复、边界颜色、箝位、镜像。

9、D3DCOLOR类型共有32位,被分为四个八位项,它们从高位到低位分别表示:Alpha分量、红色分量、绿色分量、蓝色分量。

三、判断题(本题共10小题,每题1分,共10分。

请将答案以“√”、“×”形式填入题后括号中。

)1、DirectX只能应用在Windows平台上开发游戏和其他高性能的多媒体应用程序。

(√)2、实现混合效果时,Alpha信息的唯一来源就是所设定的纹理的Alpha通道。

(×)3、为简化绘制工作,近裁剪面和投影平面是合二为一的,为平面z=1。

(√)4、左手坐标系和右手坐标系的区别就是他们的三个坐标轴的方向都是相反的。

(×)5、Direct3D的观察坐标系中,默认状态下,顶点的排列顺序为逆时针的三角形单元是正面朝向的。

(×)6、光源结构D3DLIGHT9中的Direction 成员对于点光源是没有意义的。

(√)7、模板缓存的分辨率与后台缓存的分辨率完全相同。

(√)8、在Direct3D中,最多只能设置4层纹理。

(×)9、Direct3D中,灵活顶点格式标记的指定顺序可以与顶点结构中相应类型数据定义的顺序不一致。

(×)10、我们通过使用渐进网格可以获得比原始网格更加丰富的细节。

(×)四、简答题(本题共20分)1、请列出初始化Direct3D的几个步骤。

(6分)①获取IDirect3D9接口的指针;②检查设备性能(D3DCAPS9);③初始化一个D3DPRESENT_PARAMETERS结构实例;④利用已经初始化好的D3DPRESENT_PARAMETERS结构创建一个IDirect3DDevice9对象。

2、写出下面几个名词的英文单词。

(8分)(1)光照:lighting(2)矩阵:matrix(3)着色:shading(4)裁剪:clipping(5)粒子:particle(6)网格:mesh(7)材质:materials(8)视口:viewport3、请列出使用DirectInput读取键盘输入的主要步骤。

(6分)①创建IDirectInput接口对象;②创建DirectInput设备对象;③设置DirectInput设备的数据格式;④设置DirectInput设备的协调级别;⑤设置DirectInput设备的属性;⑥获取输入设备的访问权;⑦读取键盘的输入。

五、综合题(本题共20分)使用顶点缓存绘制一个如下图所示的金字塔(不绘制底面),其4个侧面都使用ice.bmp进行纹理映射,并处于白色点光源的照射下,点光源的位置在世界坐标系(-5,0,0)处,其运动方式是绕y轴不断的旋转。

请按题目要求写出相关的关键代码。

①对顶点结构体的定义(包括灵活顶点格式)(4分)struct Vertex{Vertex(){}Vertex( float x, float y, float z, float nx, float ny, float nz, float u, float v) { _x = x; _y = y; _z = z; _nx = nx; _ny = ny; _nz = nz; _u = u; _v = v;} float _x, _y, _z, _nx, _ny, _nz, _u, _v;};#define FVF_VERTEX (D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_TEX1)②假设在主程序文件中已经定义了两个全局变量:IDirect3DDevice9* Device = 0; //设备接口(已创建好设备)IDirect3DVertexBuffer9* Pyramid; // Pyramid用于保存金字塔的顶点数据写出创建顶点缓存的代码。

(4分)Device->CreateVertexBuffer(12 * sizeof(Vertex),D3DUSAGE_WRITEONLY,FVF_VERTEX,D3DPOOL_MANAGED,&Pyramid,0);③创建题目要求的光源,设置并启用光源,写出相关的代码。

(4分)D3DLIGHT9 point;::ZeroMemory(&point, sizeof(point));point.Type = D3DLIGHT_POINT;point.Diffuse = D3DXCOLOR(1.0f,1.0f,1.0f,1.0f);point.Specular = D3DXCOLOR(1.0f,1.0f,1.0f,1.0f) * 0.3f;point.Ambient = D3DXCOLOR(1.0f,1.0f,1.0f,1.0f) * 0.6f;point.Position = D3DXVECTOR3(-5.0f, 0.0f, 0.0f);point.Range = 1000.0f;point.Attenuation0 = 1.0f;point.Attenuation1 = 0.0f;point.Attenuation2 = 0.0f;Device->SetLight(0, & point);Device->LightEnable(0, true);④假设在主程序文件中已经定义了一个全局变量Tex:IDirect3DTexture9* Tex = 0; // 存储纹理的接口对象写出加载纹理和设置相关的纹理过滤器的代码。

(4分)D3DXCreateTextureFromFile(Device, "ice.bmp", &Tex);Device->SetTexture(0, Tex);Device->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);Device->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR);Device->SetSamplerState(0, D3DSAMP_MIPFILTER, D3DTEXF_LINEAR);⑤写出绘制的代码,包括绘制的准备工作。

(4分)Device->SetStreamSource(0, Pyramid, 0, sizeof(Vertex));Device->SetFVF(FVF_VERTEX);Device->DrawPrimitive(D3DPT_TRIANGLELIST, 0, 4);。

相关文档
最新文档