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);
        }
    }
}
相关推荐
manyikaimen2 小时前
博派智能-运动控制技术-C#环境的搭建
c#·环境搭建·运动控制器·运动控制卡·动态库调用
xiaoshuaishuai813 小时前
C# GPU算力与管理
开发语言·windows·c#
hez201015 小时前
C# 15 类型系统改进:Union Types
c#·.net·.net core
FL162386312916 小时前
基于C#winform部署软前景分割DAViD算法的onnx模型实现前景分割
开发语言·算法·c#
C#程序员一枚17 小时前
高可用(High Availability, HA)
数据库·c#
weixin_5206498718 小时前
C#进阶-特性全知识点总结
开发语言·c#
fengyehongWorld18 小时前
C# 创建vba用的类库
c#
澄澈青空~19 小时前
有一个叫R2C,也有一个叫G2C
java·数据库·人工智能·c#
PGFA21 小时前
深度剖析 C# LINQ 底层执行机制:别让你的应用内存莫名其妙“爆”掉!
c#·solr·linq