C#测试(二)

一.单选题

1.在C#中,从属性的读写特性上来进行分类,可以划分为以下三种,除了()。

A.只读属性

B.只写属性

C.读写属性

D.不可读不可写的属性

2.以下类MyClass的属性count属于()属性

cs 复制代码
class MyClass
{ 
    int i;
    int count
    { 
        get{ 
            return i;
        }
    }    
}

A.只读

B.只写

C.可读写

D.不可读不可写

3.在类A中定义了属性y:

cs 复制代码
class A
{ 
    public int y;
    { 
        get{ 
            return 1; 
        }
        set {}
    }
}

并试图通过下列代码来实现对属性y的访问:

cs 复制代码
A b=new A();
b.y=2;
int x=b.y;

对此,下列说法正确的是()

A.属性y可读可写,因此变量x的值为2

B.属性y可读,但不可写,因此语句"b.y=2;"是错误的

C.属性y可写,但不可读,因此语句"int x=b.y;是错误的

D.属性y可读可写,变量x的值为1

五. 程序题

  1. 本题实现一个员工类Emlployee,该类包含两个私有字段员工姓名name和出生年份birthyear,一个静态字段员工人数employeeNum。要求补全员工类Emlployee代码, 使该类有一个公共的读写属性Name,一个只读属性Age,一个构造函数:给姓名name和出生年份birthyear通过参数赋值,并且每新建一个员工,员工人数employeeNum加一
cs 复制代码
using System;

namespace ConsoleApplication1
{ 
    public class Emlployee  //员工类
    {
        private string name; //员工姓名
        private int birthyear; //出生年份
        public static int employeeNum=0;  //员工数量

        /* 你的代码写在这里 ,提交时交完整程序,不能只提交该函数*/
    }

    public class myCaller
    {
        public static void Main(string[] args)
        {
            string name;
            int birthYear;
            //Console.Write("请输入一共有多少个员工:");
            int num = Convert.ToInt32(Console.ReadLine());
            Emlployee[] emp = new Emlployee[num];
            for (int i=0;i<num;i++)
            {
                //Console.Write("请输入员工姓名:");
                name = Console.ReadLine();
                //Console.Write("请输入员工出生年份:");
                birthYear = Convert.ToInt32(Console.ReadLine());
                emp[i] = new Emlployee(name,birthYear);
            }

            for (int i = 0; i < num; i++)
            { 
                Console.WriteLine("姓名:" + emp[i].Name + ";    年龄:" + emp[i].Age + ";");
            }
            Console.WriteLine("员工数:" + Emlployee.employeeNum);
        }
    }
}
cs 复制代码
using System;

namespace ConsoleApplication1
{ 
    public class Emlployee  //员工类
    {
        DateTime dt = DateTime.Now;
        private string name; //员工姓名
        private int birthyear; //出生年份
        public static int employeeNum=0;  //员工数量

        /* 你的代码写在这里 ,提交时交完整程序,不能只提交该函数*/
        public  string Name{
            get{
                return name;
            }
            set{
                name=value;
            }
        }

        public int Age{
            get{
                return Convert.ToInt32(dt.Year)-birthyear;
            }
        }
        
        public Emlployee(string name,int birthYear){
            this.name=name;
            this.birthyear=birthYear;
            Emlployee.employeeNum++;
        }
    }

    public class myCaller
    {
        public static void Main(string[] args)
        {
            string name;
            int birthYear;
            //Console.Write("请输入一共有多少个员工:");
            int num = Convert.ToInt32(Console.ReadLine());
            Emlployee[] emp = new Emlployee[num];
            for (int i=0;i<num;i++)
            {
                //Console.Write("请输入员工姓名:");
                name = Console.ReadLine();
                //Console.Write("请输入员工出生年份:");
                birthYear = Convert.ToInt32(Console.ReadLine());
                emp[i] = new Emlployee(name,birthYear);
            }

            for (int i = 0; i < num; i++)
            { 
                Console.WriteLine("姓名:" + emp[i].Name + ";    年龄:" + emp[i].Age + ";");
            }
            Console.WriteLine("员工数:" + Emlployee.employeeNum);
        }
    }
}
相关推荐
波力海苔夹心脆6758 小时前
C# 值类型与引用类型详解:存储位置、赋值机制、参数传递、相等比较、装箱拆箱与常见陷阱
开发语言·jvm·经验分享·笔记·c#·.net
估值探索者8 小时前
【Python量化策略实战 #02】多因子合成mom和vol两因子打分合成
开发语言·c++·python·数据挖掘·c#
淡海水19 小时前
01-04-认知篇-Unity内存全景
unity·c#·游戏引擎·.net·gc
淡海水1 天前
01-03-认知篇-C#内存模型深度解析
unity·c#·游戏引擎·.net·gc
lzhdim1 天前
C#不为人知的10个魔法特性:资深开发者也会震惊的底层奥秘
java·前端·javascript·算法·c#
前端 贾公子2 天前
LangChain核心组件 == 提示词(Prompts)
开发语言·c#
码艺-Alimjan2 天前
Web 网站打包桌面应用的另一种方式,超级简单(C# exe 33Kb)
开发语言·前端·c#
海天鹰2 天前
C#入门:显示窗口
c#
淡海水2 天前
16-02-C#常用数据结构源码-附录B-源码索引速查
unity·c#·游戏引擎·il2cpp
海天鹰2 天前
C#入门:在cmd显示字符
c#