请教一些面试题目,不知道怎么答,高手帮忙!
Windows编程
1. 如何利用DirectDraw去显示一个bitmap文件?
2. 如何不用DirectDraw而显示一个bitmap文件?
3. 如何disable窗口右上角的Close(x)按钮?
4. 如何创建一个窗口使其客户区(client area)的大小恰好为320x240?
5. 如何创建一个线程,使其可以调用其创建者的函数?
6. 如何调用一个COM对象的函数?
7. 写一个Windows 程序,提供一个File Open Dialog让用户去选择一个DLL或EXE 文件,本程序显示出该文件资源中的所有图标.
Intel汇编编程
1. 请简要介绍利用Intel汇编(奔腾2以上)优化程序时的主要方式和要点.
2. 编写一个尽量快速的MMX程序,将一个8x8的矩阵(每个数都是8位)转置?
算法设计和编程(C/C++)
1. 请简介各种排序算法(以箱排序,冒泡,快速排序和堆排序为例)的排序过程,及其空间复杂度,平均时间复杂度和最坏时间复杂度.
2. 请检测一个未知长度的单向链表(NULL结束)是否存在环路.
3. 输入一正整数N,去掉其中任意S个数字后,剩下的数字按原左右次序组成一新正整数.寻找一方案,使剩下的数字组成的新数最小,输出结果.
4. 有一个整数数列, 每个数可以是正, 负或零. 请找出其最佳连续子列使其子列内各数之和为最大.Tags: 厦新
[解决办法]
2. 请检测一个未知长度的单向链表(NULL结束)是否存在环路.
------------------------------------------------------
这个以前有人问过,定义两个指针,开始都指向head,然后其中一个一次向后移一个节点,一个一次向后移二个节点,如果相遇,则说明有环
[解决办法]
windows编程的题,到VC/MFC社区问比较好
[解决办法]
这些问题不错,虽然我不会。帮你顶一下
[解决办法]
4.
int maxSUM(int a[], int n)
{
int i;
int b = 0;
int sum = 0;
for (i=0; i <n; i++)
{
if ( b> 0 )
b += a[i];
else
b = a[i];
if ( b> sum )
sum = b;
}
return sum;
}
[解决办法]
如何创建一个线程,使其可以调用其创建者的函数?你可以把创建者的句柄作为参数传递到线程中,调用对应的工有方法
[解决办法]
2
CBitmap bmp;
if (bmp.LoadBitmap(IDB_BITMAP1))
{
// Get the size of the bitmap
BITMAP bmpInfo;
bmp.GetBitmap(&bmpInfo);
// Create an in-memory DC compatible with the
// display DC we 're using to paint
CDC dcMemory;
dcMemory.CreateCompatibleDC(pDC);
// Select the bitmap into the in-memory DC
CBitmap* pOldBitmap = dcMemory.SelectObject(&bmp);
// Find a centerpoint for the bitmap in the client area
CRect rect;
GetClientRect(&rect);
int nX = rect.left + (rect.Width() - bmpInfo.bmWidth) / 2;
int nY = rect.top + (rect.Height() - bmpInfo.bmHeight) / 2;
// Copy the bits from the in-memory DC into the on-
// screen DC to actually do the painting. Use the centerpoint
// we computed for the target offset.
pDC-> BitBlt(nX, nY, bmpInfo.bmWidth, bmpInfo.bmHeight, &dcMemory,
0, 0, SRCCOPY);