笔试题目1124

本套试题共8个题,主要考察C#面向对象基础,SQL和ASP.NET MVC基础知识。

第1-3题会使用到一个枚举类,其定义如下:

1 public enum QuestionType
2 {
3     Text = 0,
4     MultipleChoice = 1
5 }

第1:请定义一个接口IQuestion,有【标题】和【问题种类】两个属性,其中【问题种类】是只读的枚举类型QuestionType,另外还有一个方法获取该问题的答案(无参,返回字符串)。

第2:请定义一个抽象类QuestionBase,实现第一题中的IQuestion接口,其中【问题种类】属性不在该抽象类中实现,而留在该抽象类的子类中实现;获取答案的方法有默认实现,返回字符串“默认答案”。

第3:请定义一个TextQuestion类,继承自第2题中的QuestionBase;获取答案的方法返回字符串”文本答案”。再定义一个MultipleChoiceQuestion类,继承自第2题中的QuestionBase;获取答案的方法返回字符串”单选答案”。

第4:假设有实体类Product定义如下:

1 public class Product
2 {
3     public string Name { get; set; }
4     public string IsDeleted { get; set; }
5 }

现在有一个方法从IQueryable<Product>中获取没有删除的Product列表,该方法实现如下:

1 public List<Product> GetActiveProducts(IQueryable<Product> query)
2 {
3     return query.WhereNotDeleted().ToList();
4 }

请完成扩展方法:WhereNotDeleted

第5:假设数据库中有User和Income两张表如下,请仔细分析下方的示例数据,然后写出SQL得到右方的查询结果。

第6题:根据第5题的数据结构,有如下两个实体类和查询结果类的定义:

 1 public class User
 2 {
 3     public int Id { get; set; }
 4     public string Name { get; set; }
 5 }
 6
 7 public class Income
 8 {
 9     public int Id { get; set; }
10     public int UserId { get; set; }
11     public decimal Amount { get; set; }
12     public int Year { get; set; }
13     public int Month { get; set; }
14 }
15
16 public class UserIncomeDto
17 {
18     public string Name { get; set; }
19     public int Year { get; set; }
20     public int Month { get; set; }
21     public decimal Income { get; set; }
22 }

现有一个方法用LINQ的方式得到第5题的查询结果,该方法定义如下:

1 public List<UserIncomeDto> GetUserIncomeDtos(IQueryable<User> users, IQueryable<Income> incomes)
2 {
3     throw new NotImplementedException();
4 } 

请完成该方法的实现。

第7:在ASP.NET MVC应用程序中,假设有如下HTML表单:

1 <form action="/admin/mobile/user/login">
2     <input type="text" placeholder="username"/>
3     <input type="password" placeholder="password"/>
4     <input type="submit" value="login"/>
5 </form>

当该表单同步提交的时候,如何修改以上HTML和路由配置以使该请求进入下方的action中:

1 public class UserController : Controller
2 {
3     [HttpPost]
4     public ActionResult Login(string username, string password)
5     {
6         throw new NotImplementedException();
7     }
8 }

第8题:请看如下代码:

 1 public class Product
 2 {
 3     public string Name { get; set; }
 4     public string Description { get; set; }
 5
 6     public void Validate1()
 7     {
 8         if (string.IsNullOrEmpty(this.Name))
 9         {
10             throw new Exception("please enter a name for the product");
11         }
12         if (string.IsNullOrEmpty(this.Description))
13         {
14             throw new Exception("product description is required");
15         }
16     }
17
18     public void Validate2()
19     {
20         this.Require(x => x.Name, "please enter a name for the product");
21         this.Require(x => x.Description, "product description is required");
22     }
23 }

请完成Validate2方法中Require方法的定义和实现,从而使得Validate2与Validate1方法实现同样的效果。

时间: 2024-10-12 23:06:42

笔试题目1124的相关文章

题目1124:Digital Roots (方法超简单)

题目1124:Digital Roots 学到的新知识 求一个数各个的和可以把其%9就行,例如13%9=4 11%9=2:123%9=6: 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3819 解决:1335 题目描述: The digital root of a positive integer is found by summing the digits of the integer. If the resulting value is a single digit then

算法学习 并查集(笔试题目:找同伙)

题目背景太长,记得不清楚,暂参考<啊哈算法>一书,根据笔试题目大意改编如下: 警察正要捉获某地区的犯罪团伙,由于强盗人数过大,想查清楚有几个团伙非常困难. 根据上级指示,需要首先尽快抓获强盗A所在的团伙,这需要掌握 1 所在团伙的人数.先有资料如下: 强盗1 和 强盗2 是同伙 强盗3 和 强盗4 是同伙 强盗2 和 强盗5 是同伙 强盗3 和 强盗2 是同伙 注意,强盗的同伙的同伙也是同伙,问  强盗1 的同伙(不包括1自己)有多少人? 该题形式化表示如下: 每个测试实例首先包括2个整数:N

2017 校招网上笔试题目

2017 校招网上笔试题目 做了一下某大厂的笔试的题目 1. 一个表, visit(cookie_id, area1, area2, date) 给出各种查询策略中, 哪一种最好,每一条SQL语句大同小异, 几乎看不出区别, 还有6,7个选项,同时字数很长.一般的SQL语句好像有根据查询的嵌套顺序来比较差异的,但是这道题反而没有.反正蒙了一个.没有数字可算,心里没有底,应该证明了SQL语法可能会很大地影响查询效率. 2. 给了几个条件,判断你的名次.又是球赛的问题,考查你的推理能力. 3. en

几道经典的SQL笔试题目

几道经典的SQL笔试题目(有答案) (1)表名:购物信息 购物人      商品名称     数量 A            甲          2 B            乙          4 C            丙          1 A            丁          2 B            丙          5 …… (其他用户实验的记录大家可自行插入) 给出所有购入商品为两种或两种以上的购物人记录 答:select * from 购物信息 wher

分享两道笔试题目

前几天,给成都的某家公司投了个简历,给发了两道笔试题目,与大家分享一下.附上自己的解题过程,写得不好的地方,还请博友多多指教. 一 .  设计程序输出销售及收费清单 一个电商平台对在其平台之上销售的除了书籍.食品以及药物以外的商品收取 10% 的费用.而对于进口的商品则额外收取 5% 的附加费用.对于平台抽取的费用计算时,舍入的规则是:对于 n% 抽取率,价格为 p的商品, np/100 的值就近舍入到 0.05(如: 7.125 -> 7.15, 6.66 -> 6.70 ). 卖家卖出一些

猜数字游戏(笔试题目)

在CSDN上看到一个笔试题目..收藏一下 机试就一个题目:写一个猜数字游戏,电脑随机生成一个数字(比如 1-100 之间)让玩家猜,如果没猜中,就告诉玩家猜的数字是大了还是小了,直到猜中为止,最后告诉玩家猜了多少次.整个游戏用最简单的控制台输入输出就行 package com.sun.demo; import java.util.Random; import java.util.Scanner; public class Test01 { public static void main(Stri

GameLoft笔试题目 [Online Network Programmer Test]

gameloft 笔试题目是英文的,前面全部是理论的,最后两道是编程题目. 1 2 3 4 5 最后两道编程题目 其实还算简单: #include <stdio.h> #include <string.h> #include <iostream> std::string itoa(int number){ char nstr[15]; sprintf(nstr,"%d",number); return std::string(nstr); } usi

C++笔试题目大全(笔试宝典)(不断完善中)

1.new . delete . malloc . free 关系 delete 会调用对象的析构函数 , 和 new 对应 free 只会释放内存, new 调用构造函数. malloc 与 free 是 C++/C 语言的标准库函数, new/delete 是 C++ 的运算符.它们都可用于申请动态内存和释放内存.对于非内部数据类型的对象而言,光用 maloc/free 无法满足动态对象的要求.对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数.由于 malloc/free

(转)嵌入式C开发人员的最好笔试题目

约定:   1) 下面的测试题中,认为所有必须的头文件都已经正确的包含了    2)数据类型             char 一个字节 1 byte        int 两个字节 2 byte (16位系统,认为整型是2个字节)        long int 四个字节 4 byte        float  四个字节4 byet        double 八个字节 8 byte        long double 十个字节 10 byte        pointer 两个字节 2