《C#程序设计教程》总复习
一、单项选择题
1.short 类型的变量在内存中占据的位数是 ( )。
A. 8
B. 16
C. 32
D. 64
2.对千 int[ 4,5]型的数组 a, 数组元素 a[2,3] 存在数组第 ( )个位置上。
A. 11
B. 12
C. 14
D. 15
3.设 int 类型变量 x,y,z 的值分别是2、3、6 , 那么执行完语句(z=y=x=z) 后他们的值为 ( )。
A. 2,3,6
B. 2,2,2
C. 6,6,6
D. 3,3,3
4.以下说法中不正确的是 ( )。
A.构造函数和析构函数都不能有返回值
B.构造函数可以是静态的
C. 一个类只能有一个构造函数
D.一个类只能有一个析构函数
5.以下不属千object 类型的成员方法是 ( )。
A.ToString() B.Dispose() C.Equals() .GetType()
6.语句ReadLine()方法用来从控制台的键盘上,读取( ),直到用户按下Enter键它才会放回。
A.一行字符 B.一个字符
7.下面代码:
X=2;
Y=X++;
Console.Write (X);
Console.Write (Y);
完成后,最后值为:
A.32 B.33 C.23 D.22
8.下列能够被创建对象的是 ( )。
A.接口
B.抽象类
C.委托
D.只有私有构造函数的类
9. 关千接口和抽象类,下列说法中正确的是 ( )。
A.接口不能创建对象,而抽象类可以
B.接口不能包含字段, 而抽象类可以
C.抽象类中的方法必须是抽象方法
D.接口中的方法也可以有实现代码
10.关于 finally 代码段,下列是说法正确的是 ( )。
A.仅在程序正常时执行
B.仅在程序发生异常时执行
C.在程序发生异常时会被跳过
D.无论程序是否发生异常都会被执行
11.C#中的值类型分为三种:
A.简单类型、结构类型和枚举类型 B.整数、小数、布尔类型 C.结构类型、枚举类型、类类型
12.C#语言是一种类型安全的、现代的、简单的,由C和C++衍生处理的的( )的编程语言。
A.面向接口 B.面向过程 C.面向对象 D.面向剖面
13. C#语言是由美国的哪一个公司发明的?
A.谷歌 B.微软 C.IBM D.Oracle
14.WriteLine()的方法的作用是:
A.从键盘上接收一个字符
B.从键盘上接收一行信息
C.将信息输出到键盘上
D.将信息输出到屏幕上,并自动换行
15.语句Console.WriteLine(“{0:n2}”,12.345) 输出结果是: [单选题] *
A.12.345
B.12.3
C.12.35
D.12.34
16.整数7除以3,商为2,余数为1,下面说法正确的是: *
A.用/取商,用%取余
B.用\取商,用%取余
C.用%取商,用/取余
17.while 语句循环结构和do...while语句循环结构的区别在于:
A.while语句的执行效率较高
B.do...while的语句编程程序较复杂
C.无论条件是否成功,do...while语句至少执行一次循环体
D.do...while循环是先执行循环体,后判断条件表达式是否成立,而while语句是先判断条件表达式,再决定是否执行循环体,两者的实际执行效果是一样的
18. 关于break和continue和goto语句描述正确的:
A.continue语句用于终止并退出当前循环
B.使用break语句只可以跳出外围最近的一层循环
C.使用goto语句可以方便地跳出多重循环,因而编程时尽可能多地使用goto语句
二、填空题
1.一般将类的构造方法声明为( 公有 public )访问权限。如果声明为 private, 就不能创建该类
的对象。
2.在方法定义中, virtual 含义:(虚方法 )。
3.C#数组元素的下标从( 0 )开始。
4.元素类型为 double 的 2 行 5 列的二维数组共占用(80)字节的存储空间。
5.对于方法,参数传递分为值传递和(引用传递)两种。
6.传入某个属性的 SET 方法的隐含参数的名称是(value)。
7.能用 foreach 遍历访问的对象需要实现( IEnumerable) 接口。
8.委托声明的关键字是 ( delegate )。
9.C#的类不支持多重继承, 但可以用( 接口 Interface)来实现。
10.C#中所有的类型实质上都是从( object )类派生而来的。
三、判断题(正确打√, 错误打 X )
1.不能指定接口中方法的修饰符。 ( √ )
2.DotNet 包含两个部分,即公共语言运行时和框架类库。 ( X )
3.在同一行上可以书写多条语句,每条语句间用分号分隔。 (√ )
4.在数据类型转化时,只能通过类型转换关键字或 Convert 类实现。 ( X )
5.在定义数组时不允许为数组中的元素赋值。 ( X )
6.定义枚举时至少为其中的一个枚举成员赋值。 ( X )
7.通过类的继承,保证对象品种的传承;通过接口继承,保证对象技能的增强。 (√ )
8.委托是将方法作为参数传递给另一方法的一种数据类型,事件与委托没有关系。 ( X )
9.如果要实现重写,在基类的方法中必须使用 virtual 关键字,在派生类的方法中必须使用
override关键字。 ( √ )
10.在 C#类中, this 代表了当前类本身。 ( X )
四、读代码回答问题
1.现实生活当中的插头(Plug)与插座(Socket),国家为其建立了国家标准;厂家生产的插头和插座要和国家标准匹配;生产厂家虽然有很多,但都要符合国家标准。厂家的具体工艺及实现方法,可以有所不同。插头与插座也许分属不同品牌,但可以共同作用,可完成插头与插座的连接匹配及电流传导相关测试。
using System;namespace InterfaceInOutDemo
{interface ISocket{void JoinPlug(IPlug plug);}interface IPlug{int EQuantity { get; set; } }public class Socket:ISocket{void ISocket.JoinPlug(IPlug plug){Console.WriteLine("插座接收到插头的电流:"+plug.EQuantity);}}public class Plug : IPlug{private int eQuantity;int IPlug.EQuantity{ get{return eQuantity;}set{eQuantity = value;Console.WriteLine("插头向插座输出电流:" + eQuantity);}} }class Program{static void Main(string[] args){Plug pg = new Plug();Socket sk = new Socket(); ((IPlug)pg).EQuantity = 120; ((ISocket)sk).JoinPlug(pg); }}
}
请用引喻的方法描述解读上方的代码:
2.下方代码课堂演练过:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace EventDemo
{//public delegate void MsgHandler(string msg);public class PinDuoDuo{public event Action<string> msgHandler;public void Order(User user){Console.WriteLine("{0}已拼单", user.Name);msgHandler += user.OnMessage;}public void UnOrder(User user){Console.WriteLine("{0}取消拼单", user.Name);msgHandler -= user.OnMessage;}public void ShipGoods(string msg){Console.WriteLine("发货");msgHandler?.Invoke(msg);}}public class User{public User(string name){Name = name;}public string Name { get; set; }public void OnMessage(string msg){Console.WriteLine("{0}收到消息:{1}", Name, msg);}}public class Program{ public static void Main(){PinDuoDuo pdd = new PinDuoDuo();User zs = new User("张三");User lisi = new User("李四");User wmz = new User("王麻子");pdd.Order(zs);pdd.Order(lisi);pdd.Order(wmz);pdd.UnOrder(lisi);pdd.ShipGoods("货已发出");}}
}
问题1:请解释代码
Action<string>
的含义.
问题2:假如上述代码是
Func<int,string>
请解释含义。
问题3:请解释代码
msgHandler += user.OnMessage;
的含义。
问题4: 请解释代码
msgHandler?.Invoke(msg);
的含义。
问题5:请解释代码
User zs = new User("张三");
的含义。
问题6:请解释代码
pdd.Order(zs);
的含义。
问题7:请解释代码
pdd.UnOrder(lisi);
的含义。
问题8:请解释代码
pdd.ShipGoods("货已发出");
的含义。
五.写代码:
利用循环语句显示出 1-100之间同时能被7整除和能被3整除的数据序列(注:只写出Main函数中的关键代码即可)。
相关文章:
《C#程序设计教程》总复习
一、单项选择题 1.short 类型的变量在内存中占据的位数是 ( )。 A. 8 B. 16 C. 32 D. 64 2.对千 int[ 4,5]型的数组 a, 数组元素 a[2,3] 存在数组第 ( )个位置上。 A. 11 B. 12 C. 14 D. 15 3.设 int 类型变量 x,y,z 的值分别是2、3、6 , 那么…...
为什么ChatGPT选择了SSE,而不是WebSocket?
我在探索ChatGPT的使用过程中,发现了一个有趣的现象:ChatGPT在实现流式返回的时候,选择了SSE(Server-Sent Events),而非WebSocket。 那么问题来了:为什么ChatGPT选择了SSE,而不是We…...

appium入门基础
介绍 appium支持在不同平台的UI自动化,如web,移动端,桌面端等。还支持使用java,python,js等语言编写自动化代码。主要用于自动化测试脚本,省去重复的手动操作。 Appium官网 安装 首先必须环境有Node.js用于安装Appium。 总体来…...

jsp介绍
JSP 一种编写动态网页的语言,可以嵌入java代码和html代码,其底层本质上为servlet,html部分为输出流,编译为java文件 例如 源jsp文件 <% page contentType"text/html; charsetutf-8" language"java" pageEncoding&…...
Debian安装k8s记录
Debian安装k8s记录 在master和node上安装kube安装master安装node遇到的问题汇总1、kubelet.service报错 failed to pull image "registry.k8s.io/pause:3.6"2、node重启后报错,failed: open /run/flannel/subnet.env: no such file or directory 在master…...

第6课 用window API捕获麦克风数据并加入队列备用
今天是2024年1月1日,新年的第一缕阳光已经普照大地,祝愿看到这篇文章的所有程序员或程序爱好者都能在新的一年里持之以恒,事业有成。 今天也是我加入CSDN的第4100天,但回过头看一看,这么长的时间也没有在CSDN写下几篇…...

图片预览 element-plus 带页码
vue3、element-plus项目中,点击预览图片,并显示页码效果如图 安装 | Element Plus <div class"image__preview"><el-imagestyle"width: 100px; height: 100px":src"imgListArr[0]":zoom-rate"1.2":max…...

【小白专用】winform启动界面+登录窗口 更新2024.1.1
需求场景:先展示启动界面,然后打开登录界面,如果登录成功就跳转到主界面 首先在程序的入口路径加载启动界面,使用ShowDialog显示界面, 然后在启动界面中添加定时器,来实现显示一段时间的效果,等…...

自动化网络故障修复管理
什么是故障管理 故障管理是网络管理的组成部分,涉及检测、隔离和解决问题。如果实施得当,网络故障管理可以使连接、应用程序和服务保持在最佳水平,提供容错能力并最大限度地减少停机时间。专门为此目的设计的平台或工具称为故障管理系统。 …...

Git:常用命令(二)
查看提交历史 1 git log 撤消操作 任何时候,你都有可能需要撤消刚才所做的某些操作。接下来,我们会介绍一些基本的撤消操作相关的命令。请注意,有些操作并不总是可以撤消的,所以请务必谨慎小心,一旦失误,…...

Oracle 12c rac 搭建 dg
环境 rac 环境 (主)byoradbrac 系统版本:Red Hat Enterprise Linux Server release 6.5 软件版本:Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit byoradb1:172.17.38.44 byoradb2:…...

Cisco模拟器-交换机端口的隔离
设计要求将某台交换机的端口划分在不同的VLAN。以实现连接在相同VLAN端口上的计算机可以通信,而连接在不同VLAN端口上的计算机无法通信的目的。 通过设计,一方面可以加强计算机网络的安全,另一方面通过隔绝不同VLAN间的广播包也可以提高网络…...
zdppy_api框架快速入门
概述 zdppy_api是一款为了快速开发而生的,基于异步的,使用简单的Python后端API接口开发框架。 本框架的目标是让Python后端开发变得越来越简单,直到发现原来还可以更简单! 一切都是为了提高开发效率!!&…...
https证书配置过程
相关网址: FreeSSL首页 - FreeSSL.cn一个提供免费HTTPS证书申请的网站 ACME v2证书自动化快速入门 acme.sh简单教程-CSDN博客...
如何用C语言程序生成任意手性(即具有任意m和n值),任意长度的碳纳米管,并输出三维空间坐标呢?
如何用C语言程序生成任意手性(即具有任意m和n值),任意长度的碳纳米管,并输出三维空间坐标呢? 生成任意手性、任意长度的碳纳米管可以使用 Chirality Vector 和 Unit Vector 的概念来表示。Chirality Vector (n, m) 描述…...

C++每日一练(8):图像相似度
题目描述 给出两幅相同大小的黑白图像(用0-1矩阵)表示,求它们的相似度。 说明:若两幅图像在相同位置上的像素点颜色相同,则称它们在该位置具有相同的像素点。两幅图像的相似度定义为相同像素点数占总像素点数的百分比。…...

C++面试宝典第12题:数组元素相除
题目 从控制台输入若干个整数作为数组,将数组中每一个元素除以第一个元素的结果,作为新的数组元素值。比如:可以先输入3,作为数组元素的个数;然后输入3个整数,作为数组元素的值。 解析 这道题本身并不复杂,但里面隐藏了不少“坑点”和“雷区”,主要考察应聘者全面思考问…...
oCPC实践录 | 目标ROI的出价与转化回传调控算法
这篇文章我们聊聊广告主在oCPC下,怎么调控自己的出价或者回传转化优化自己的ROI。 ROI是广告主最关心的指标了,根据oCPC出价的基本原理ocpc_bid pcvr * given_cpa * k, 广告主在整个出价中有两个可以控制的变量来影响出价,一个是直接的give…...
百倍量化之Dbcd-v2中性策略
Dbcd-v2中性策略 1. 指标含义 该指标主要是计算偏置的因子,并根据偏置的平均来分析这个股票的稳定性。相比于v1,策略是更换了dbcd的计算方式 第一步主要操作就是计算当前值和前段时间的平均值的偏置 ma = bt.indicators.SimpleMovingAverage(self.data, period=self.p.peri…...
系统学习Python——装饰器:函数装饰器-[装饰器状态保持方案:函数属性]
分类目录:《系统学习Python》总目录 如果我们没有在使用Python3.X并因此无法利用一条nonlocal语句,或者我们希望代码具有可移植性,能在Python3.X和Python2.X上同时工作一一我们仍然能够针对某些可改变的状态使用函数属性来避免使用全局变量和…...

K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...

YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...

回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...
django blank 与 null的区别
1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是,要注意以下几点: Django的表单验证与null无关:null参数控制的是数据库层面字段是否可以为NULL,而blank参数控制的是Django表单验证时字…...
离线语音识别方案分析
随着人工智能技术的不断发展,语音识别技术也得到了广泛的应用,从智能家居到车载系统,语音识别正在改变我们与设备的交互方式。尤其是离线语音识别,由于其在没有网络连接的情况下仍然能提供稳定、准确的语音处理能力,广…...

mac:大模型系列测试
0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...

C++实现分布式网络通信框架RPC(2)——rpc发布端
有了上篇文章的项目的基本知识的了解,现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...

恶补电源:1.电桥
一、元器件的选择 搜索并选择电桥,再multisim中选择FWB,就有各种型号的电桥: 电桥是用来干嘛的呢? 它是一个由四个二极管搭成的“桥梁”形状的电路,用来把交流电(AC)变成直流电(DC)。…...

在 Visual Studio Code 中使用驭码 CodeRider 提升开发效率:以冒泡排序为例
目录 前言1 插件安装与配置1.1 安装驭码 CodeRider1.2 初始配置建议 2 示例代码:冒泡排序3 驭码 CodeRider 功能详解3.1 功能概览3.2 代码解释功能3.3 自动注释生成3.4 逻辑修改功能3.5 单元测试自动生成3.6 代码优化建议 4 驭码的实际应用建议5 常见问题与解决建议…...