Windows客户端开发笔试+面试题

面试题目

Posted by JP on September 24, 2017

*Windows客户端开发笔试+面试题

一.选择题

1. 请法出下列WPF模板用于控件模板的选项组合正确的是(B)

(1) ControlTemplate
(2) DataTemplate
(3) ItemsPanelTemplate

A) (1)  B) (1),(3)  C) (1),(2)  D) (1),(2),(3)

2. 下列选项中,是引用类型的(C)

A) enum 类型  B) struct 类型  C) string 类型  D) int 类型

3. int[][] myArray3=new int[3][]{new int[3][]{5,6,2},new int[5]{6,9,7,8,3},new int[2]{3,2}};myArray 3[2][2]的值是(D)

A) 9   B) 2   C) 6   D) 越界

4. Winform 中关于ToolBar 控件的属性和事件的描述不正确的是(D)

A) Buttons属性表示ToolBar 控件的所有工具栏按钮
B) ButtonSize 属性表示ToolBar 控件上的工具栏按钮的大小,如高度和宽度
C) DropDownArrows属性表明工具栏按钮(该按钮有一列值需要以下拉方式显示) 旁边是否显示下箭头键
D) ButtonClick事件在用户单击工具栏任何地方时都会触发

5. 用户类若想支持Foreach语句需要实现的接口是(A)

A) lEnumerable   B) lEnumerator   C) ICollection   D) ICollectData

6. 关于Winform 窗体和WPF窗体描述不正确的是(D)

A) Winform 窗体与WPF 窗体可以互相调用
B) WPF 窗体可以嵌入Winform 控件
C) Winform 窗体可以嵌入WPF控件,不过只能用后合代码的方式
D) WPF 和Winform 都支持MDI 窗体

二.多选题

1. 以下叙述正确的是(BC)

A) 接口中可以有虚方法。
B) 一个类可以实现多个接口。
C) 接口不能被实例化。
D) 可以包含已实现的方法,

2. 您要创建一个显示公司员工列表的应用程序,您使用一个DataGrid控件显示员工的列表。您打算修改这个控件以便在这个Grid的Footer显示队工合计数。请问您应该怎么做?(C)

A) 重写OnPreRender 事件,当Grid 的Footer 行被建时显示合计数
B) 重写OnItemCreated 事件,当Grid 的Footer 行被建时显示合计数。
C) 重写OnItemDataBound 事件,当Grid 的Footer 行被创建时最示合计数
D) 重写OnLayout 事件,当Grid 的Footer 行被建时显示台计数

3. 下列关于 WPF 工作线程更新 UI 说法正确的选项是(BCD)

A) WPF的Window 类也有Invoke方法,就跟Form 样,可以调Windowf Invoke 法去更新UI
B) WPF的Window没有Invoke方法,需要访Window.Dispatcher属性,而后调Hin 方法去更新UI
C) 可以用 Application 的 Dispatcher,训用 Invoke 方法去新UI
D) 可以用某个控件比如Button 的Dispatcher.再调用Invoke 方法去更新UI

三.简单题

1. 说说什么叫字符串不可变?

string s=”abc”;s=”123”;字符串s不就是变了吗?

String是不可变的在这段代码中,s原先指向一个String对象,内容是 “abc”,然后我们将s指向”123”,那么s所指向的那个对象是否发生了改变呢?答案是没有。这时,s不指向原来那个对象了,而指向了另一个 String对象,内容为”123”,原来那个对象还存在于内存之中,只是s这个引用变量不再指向它了。

2. 1、3、6、11、19、32、53、87、142…求第19位数字?(用C#递归方法)
int i=0;
int j=0;
int x=0;
int temp=0;

public void GetNum()
{
    temp=i+j+2;
    i=j;
    j=temp;
    if(x==19)
    {
        Console.WriteLine("第19位数是:"+temp);
    }
    x++;
    GetNum();
}

四.说一下Windows Form和WPF区别

从结果来说,属于两套界面渲染方式。一个是对传统windows界面元素的封装,通过GDI绘制,另一个DirectX绘制界面,脱离了对传统Windows控件的依赖,没有历史包袱,理论上可以展现更炫酷的界面。 对初级开发人员来说,没太大区别,类似的基本设计器是他们设计界面的主要手段,一样给事件编写代码。对初级以上开发人员来说,wpf需要学习xaml,有全新的ui描述语言,特别是可以通过模板的嵌套实现复杂的元素,通过style实现类似css的功能,通过比winform完善的多的数据绑定机制实现业务逻辑可以专心对数据而不是界面进行开发。前途来说,两者必定还会长期共存。深入理解winform对理解windows一些内部机制有好处。好好学习wpf可以更方便过度到其他xaml相关技术,这是微软目前广泛使用的技术,比如接下来的windows通用应用。WPF 需要大量内存 以及CPU的代价来实现普通功能。