《C#程序设计》习题集
一、填空:(每题2分,共10题,共20分)
1、操作符(&& )被用来说明两个条件同为真的情况。
2、接口只能定义方法,实现要由(类)完成。
3、任何事物都是(对象),它可以是现实世界中的一个物理对象,可以是抽象的概念或规则。
4、(+= )运算符将左右操作数相加的结果赋值给左操作数。
5、(Array )是所有数组的基类。
6、如果一个属性里既有set访问器又有get访问器,那么该属性为(读写)属性。
7、如果一个属性里只有set 访问器,那么该属性为(只写)属性。
#8、常量通过关键字(const )进行声明。
9、在C#中,进行注释有两种方法:使用//和使用“/* */”符号对,其中(// )只能进行单行注释。
10、布尔型的变量可以赋值为关键字(true )或(false )。
11、System.Array有一个(Length )属性,通过它可以获取数组的长度。
12、如果一个类包含一个或多个抽象方法,它是一个(抽象)类。
13、SQL语句中删除一个表中记录,使用的关键字是(delete )。
14、设x=10; 则表达式x<10?x=0:x++ 的值为(10 )。
15、接口的实现指出接口成员所在的接口,称为显式接口成员,它只能通过(接口)来调用。
16、已知整型变量a=5,b=4,c=6,则a>b?(a>c?a:c):b的结果为( 6 )。
17、在C#语言中,实现循环的主要语句有while, do-while, for和( foreach )语句。
#18、封装的对象之间进行通信的一种机制叫做(消息传递)。
19、在C#语言中,可以用来遍历数组元素的循环语句是(foreach )。
20、(多态)是指同一个消息或操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。
#22、(封装)是用一个框架把数据和代码组合在一起,形成一个对象。
23、声明为(private )的一个类成员,只有定义这些成员的类的方法能够访问。
#24、(构造函数)提供了对对象进行初始化的方法,而且它在声明时没有任何返回值。
25、在异常处理结构中,抛出的异常要用(catch )语句捕捉。
#26、在C#中实参与形参有四种传递方式,它们分别是(值参数)(引用参数)(输出参数)和(参数数组)。
27、数组是一种(引用)类型。
#28、类的数据成员可以分为静态字段和实例字段。(静态字段)是和类相关联的,(实例字段)适合对象相关联的。
#29、在异常处理结构中,对异常处理的代码应放在(catch )块中。(可能出现错误的代码放在try)
30、在类的方法前加上关键字(virtual ),则该方法被称为虚方法。
31、Timer控件的(InterVal)属性,用来指定时钟空间触发时间的时间间隔,单位毫秒。
32、使用关键字(abstract )声明抽象类。
#33、关键字(readonly )表明对象或者变量在初始化后不可修改。
34、在windows程序中,若想选中复选框,则应将该控件的(Checked)属性设置为true。
35、面向对象语言都应至少具有的三个特性是封装、(继承)和多态。
36、C#虽然不支持多重继承,但提供了另一种类似的机制是(接口)。
38、要关闭已打开的数据库连接,应使用连接对象的(close )方法。
39、关闭数据库的连接,应使用连接对象的(close)方法。
#40、数值转换是指在整数类型、(浮点型)和字符类型之间的转换。
#41、类是引用类型,而结构是(值类型)。
42、在do-while循环结构中,循环体至少要执行( 1 )次。
#43、(不规则数组)是数组的数组,它内部每个数组的长度可以不同,就像一个锯齿形状。
44、一个Web页面的扩展名为(.aspx )。
45、Web程序中的GridView控件和Windows程序的(DataGrid/DataGridView)控件类似。
46、SQL语句中的选择语句,使用的关键字是(SELECT )。
47、C#语言源代码文件的后缀名是(.cs )。
#48、在循环结构中,continue语句的作用是(结束本次循环,继续下一次循环)。
50、在C#中,可以通过(throw )语句无条件抛出异常。
51 C#中,用()()()来处理异常。
52 声明一个整形数组(int[]a ).
53 变量名只能用(数字)()()组成,首字符必须是(下划线)(字母)。
54 若要使值类型的参数在方法外部仍保留方法中修改的值,可以使用()和()。
55 引用类型包括(),()数组,字符串和()。
56 派生类继承基类后,在实例化时,首先执行()类的构造函数,再执行()类本身的函数。
57 ()是所有数组的基类。
58 类可以继承()个基类,并实现()个接口。
59 在属性中(get)访问器用来读取字段的值,(set)访问器用来设置字段的值。
60 ()跳出循环,()结束本次循环,直接执行下一次。
61.变量名由字母,数字和()组成,首字符必须是()和()。
62.定义类的关键字是()。
63 构造函数的三个特点(没有返回值),(系统自动调用),(与类名相同)。
64.foreach (元素类型对象名()集合)。
?65.访问修饰符protected的作用()。
66 .out 关键字和ref的不同之处()
67.try语句的作用(存放有可能出现异常的代码)。
68.派生类继承基类后,先执行(),在执行()。
69.int sum=0;for(i=0;i<=0;i++)
{
if(i%2==0)
sum+=i;
}
该程序的值是(0)。
?71. Console功能(表示控制台输入输出流)。
72. ()关键字用以导入.NET Framwork类库中的资源,通常写在程序的开头。
73. 变量名只能由()()()组成。
?74. (for)语句是C#中使用频率最高的循环语句。
?75. While语句是()类型。
76. 声明为()的一个类成员,任何成员访问不受限制。
77. 所有(c#)应用程序都在.NET Framework上执行。
78. .NET Framework 两个主要组件()()。
79. 在.NET Framework中(Exception)类是异常基类。
80. 抽象类中即可以包含()方法也可以包含()方法。
81. Visual studio 是一种(开发环境),.NET Framework 是一种(),而C#是一种()。
82. ()是导入system命名空间。
83. C#数据类型分为(值类型)和()。
84. 布尔类型用(true)和(false)表示真和假。
?85. 属性是表示对象的(),其实质是一种访问()而执行的方法。
86. Out和ref的用法基本相同,不同之处在于使用()关键字的实参变量不必进行初始化,而()关键字的实参变量必须初始化。
87. 程序有三种执行流程:(顺序)、(选择)、(循环)。
88. 构造函数是和(类)同名的特殊方法,实例化对象时构造函数(自动)被调用执行时,(没有)返回值。
89. 对(类)的熟悉程度,决定了开发人员编写代码效率的高低。
90. 在.NET Framework 中,(Object)类是所有类的基类,(Exception)类是所有异常类的基类。
92 值类型分为(简单)(结构)(枚举)
93 while语句的条件表达式和if语句相同,是(布尔)类型
94 for循环的语法格式为for(条件初始值;(控制条件);条件改变表达式)
95在继承中处于底层父类级别的称为(基类),处于高层子类级别的称为(派生)
96(pr)访问仅限于本类,(pu)访问不受限制.
97属性中的get访问器用来(读取字段),set访问器用来(设置),value相当于(占位符)98若要是值类型的参数在方法外部仍保留方法中修改的值,可以使用()和()关键字定义方法的参数。
99throw语句用于()
二、选择:(每题2分,共10题,共30分)
1、装箱是把值类型转换到(引用)类型。
a)数组b)引用c)char d)string
2、静态构造函数只能对(静态)数据成员进行初始化。
a) 静态b) 动态c)实例d) 静态和实例
3、关于如下程序结构的描述中,哪一项是正确的?( b )
for ( ; ; )
{ 循环体; }
a) 不执行循环体b) 一直执行循环体,即死循环
c) 执行循环体一次d) 程序不符合语法要求
4、下列哪个类型的对象是https://www.doczj.com/doc/ac1904940.html,在非连接模式下处理数据内容的主要对象?(DataSet )
a) Command b) Connection c) DataAdapter d) DataSet
5、下列哪一个不是类成员的成员的是( d ).
a)属性b) 数组c) 索引器d)while循环结构
6、枚举类型是一组命名的常量集合,所有整形都可以作为枚举类型的基本类型,如果类型省略,则定义为( a )。
a) int b) sbyte c) uint d) ulong
7、下列关于数组访问的描述中,哪些选项是不正确的? ( d )。
a) 数组元素索引是从0开始的b) 对数组元素的所有访问都要进行边界检查
c)如果使用的索引小于0,或大于数组的大小,编译器将抛出一个IndexOutOfRangeException异常;d) 数组元素的访问是从1开始,到Length结束;8、下列结构图对应于哪种结构(A是程序段,P是条件)?( c )。
a) while 循环结构b) do…while 循环结构
c) if…else…选择结构d) switch…case…选择结构
9、C#数组主要有三种形式,它们是( c )。
a) 一维数组、二维数组、三维数组b) 整型数组、浮点型数组、字符型数组
c) 一维数组、多维数组、不规则数组d) 一维数组、二维数组、多维数组
10、下列标识符命名正确的是(d )。
a)X.25 b)4foots c)val(7) d)_Years
11、面向对象编程中的“继承”的概念是指( b )
a) 对象之间通过消息进行交互b)派生自同一个基类的不同类的对象具有一些共同特征c)对象的内部细节被隐藏d) 派生类对象可以不受限制地访问所有的基类对象12、下列语句在控制台上的输出是什么?( b )
if(true)
System.Console.WriteLine(“FirstMessage”);
System.Console.WriteLine(“SecondMessage”);
a) 无输出b)FirstMessage c)SecondMessage d)FirstMessage
SecondMessage
13、在C#的类结构中,class关键字前面的关键字是表示访问级别,下面哪个关键字表示该类只能被这个类的成员或派生类成员访问? ( d )。
a) public b) private c) internal d) protected
14、下列类型中, 哪些不属于引用类型?( b )。
a) String b) int c) Class d) Delegate
15数组pins的定义如下:
int[] pins=new int[4]{9,2,3,1};
则pins[1]=( b )
a) 1 b) 2 c) 3 d) 9
16、创建数据库连接使用的对象是( a )。
a) Connection b) Command c) DataReader d) DataSet
17、调用方法时,如果想给方法传递任意个数的参数时,应选用哪个关键字( c )。
a) ref b) out c) params d) 无特殊要求
18、C#中TestClass为一自定义类,其中有以下属性定义
public void Property{…}
使用以下语句创建了该类的对象,并使变量obj引用该对象:
TestClass obj = new TestClass();
那么,可通过什么方式访问类TestClass的Property属性? ( a )
a) obj.property; b) MyClass.Property;
c) obj :: Property; d) obj.Property ();
19. 在C#中,表示一个字符串的变量应使用以下哪条语句定义?( b )
a) CString str; b) string str; c) Dim str as string d) char * str;
20、下列关于C#面向对象应用的描述中,哪项是正确的?( c )。
a) 派生类是基类的扩展,派生类可以添加新的成员,也可去掉已经继承的成员
b) abstract方法的声明必须同时实现
c) 声明为sealed的类不能被继承
d) 接口像类一样,可以定义并实现方法
21、C#中导入某一命名空间的关键字是( a )。
a) using b) use c)import d) include
22、一般情况下,异常类存放在什么命名空间中?( a )。
a) 生成异常类所在的命名空间b) System.Exception命名空间
c) System.Diagnostics命名空间d) System命名空间
23、以下程序的输出结果是(b)。
enum Color
{ Red, Green = 2, Blue }
static void Main(string[] args)
{
Color c = 0;
Color c1 = (Color )2;
Console.WriteLine("{0},{1}", c,c1 );
Console .Read ();
}
a) Green,Red b) Red,Green c) Red,Blue d) Green,Blue
24、若将数据库中的数据填充到数据集,应调用SqlDataAdapter的(c)方法。
a) Open b) Close c) Fill d) Update
25、下列标识符命名正确的是(a )。
a)X_25 b)4foots c)&Years d)val(7)
26、若将数据集中所作更改更新回数据库,应调用SqlAdapter的( a )方法。
a) Update b) Close c) Fill d) Open
27、C#中MyClass 为一自定义类,其中有以下方法定义public void Hello(){??}
使用以下语句创建了该类的对象,并使变量obj 引用该对象:MyClass obj = new MyClass(); 那么,可如何访问类MyClass 的Hello 方法?( a )。
a) obj.Hello(); b) obj::Hello(); c) MyClass.Hello(); d)MyClass::Hello();
28、如果左操作数大于右操作数,(d)运算符返回false。
a)= b)< c)<= d)以上都是
29、下面哪个关键字不是用来修饰方法的参数?( d )。
a) ref b) params c) out d) in
31、有说明语句double[,] tab=new double[2,3];那么下面叙述正确的是( c )。
a) tab是一个数组维数不确定的数组,使用时可以任意调整
b) tab是一个有两个元素的一维数组,它的元素初始值分别是2,3
c) tab是一个二维数组,它的元素个数一共有6个
d) tab是一个不规则数组,数组元素的个数可以变化
32、在菜单项File中,为将F设为助记符,应将该菜单项的Text属性设置为( b )。
a) @File b)&File c)%File d)_File
33、下列关于“方法重载”的描述中,哪些选项是不正确的?( b )。
a) 方法重载可以扩充现有类的功能
b) 构造函数不可以重载
c) 方法ConsoleW(int _value)是方法ConsoleW(string _value)的重载
d) 方法重载即“同样的方法名但传递的参数不同”
34、以下程序的输出结果是( a )。
class Program
{ static void Main(string[] args)
{
MyStruct s1 = new MyStruct(1, 2);
s1.x = 2;
s1.Sum();
Console.ReadLine();
}
}
struct MyStruct
{
public int x;
public int y;
public MyStruct(int i, int j)
{
x = i;
y = j;
}
public void Sum()
{
int sum = x + y;
Console.WriteLine("the sum is {0}",sum );
}
}
a) the sum is 4 b) the sum is 3 c) the sum is 2 d) the sum is 0
36、以下说法正确的是( b )。
a) 虚方法必须在派生类中重写,抽象方法不需要重写
b) 虚方法可以在派生类中重写,抽象方法必须重写
c) 虚方法必须在派生类中重写,抽象方法必须重写
d) 虚方法可以在派生类中重写,抽象方法也不需要重写
37、下列标识符命名正确的是( c )。
a)exam-1 b)Main c)_months d)X.25
38、下列关于数组的描述中,哪些选项是不正确的?(d )。
a) String类中的许多方法都能用在数组中
b) System.Array类是所有数组的基类
#c) String类本身可以被看做是一个System.Char对象的数组
d) 数组可以用来处理数据类型不同的批量数据
39、在类的定义中,类的( b )描述了该类的对象的行为特征。
a) 类名b)方法c)所属的命名空间d)私有域
40、枚举类型是一组命名的常量集合,所有整形都可以作为枚举类型的基本类型,如果类型省略,则定义为( d )。
a) uint b) sbyte c) ulong d) int
41、在定义类时,如果希望类的某个方法能够在派生类中进一步进行改进,以处理不同的派生类的需要,则应将该方法声明成( c )。
a) sealed方法b)public方法c)vitual方法d)override方法
42、面向对象三个基本原则是( c )。
a) 抽象,继承,派生b) 类,对象,方法
c)继承,封装,多态d) 对象,属性,方法
43、分析下列代码段,运行结果是什么?( d )。
Static void Main(string [] args)
{
string[] words = new string[] {“a”,“b”,“c”};
foreach (int word in words)
{
word =“abc”;
Console.WriteLine(word);
}
Console.ReadKey ();
}
a) a b c b) abc abc abc c) bc ac ab d)不能正确编译
44、在数组中对于for 和foreach 语句,下列那些选项中的说法不正确?( b )。
a) foreach语句能使你不用索引就可以遍历整个数组
b) foreach语句总是从索引1遍历到索引Length
c) foreach总是遍历整个数组
d) 如果需要修改数组元素就必须使用for语句
45、在C#的类结构中,class关键字前面的关键字是表示访问级别,下面哪个关键字的访问级别是表示只有在同一个程序集内,且内部类型或成员才是可访问的? ( d )。
a) public b) private c) protected d) internal
46、c#的引用类型包括类、接口、数组、委托、object和string.其中object(d )根类。
a) 只是引用类型的b) 只是值类型的
c) 只是string 类型的d) 是所有值类型和引用类型的
47、C#的构造函数分为实例构造函数和静态构造函数,实例构造函数可以对( b )进行初始化,静态构造函数只能对静态成员进行初始化。
a) 静态成员b) 静态成员和非静态成员c) 非静态成员d)动态成员
48、在C#中,( b )表示“”。
a) 空字符b) 空串c) 空值d) 以上都不是
49、当(d )时,条件“expression1 XOR(异或) expression2”的值为真。
a) expression1为真而expression2为假b) expression1为假而expression2为真
c) expression1和expression2均为真d) a和b都对
50、在C#中无需编写任何代码就能将int型数值转换为double型数值,称为(b )。
a) 显式转换b)隐式转换c) 数据类型转换d) 变换
#51.不提前声明,在方法中定义一个变量,应该用哪个关键字(B )
A. ref
B. out
C. params
D. Internal
#52. 下面哪种形式不能注释C#语句(D )
A. “//”
B. ”/*……*/”
C.” /// ”
D.” //// ”
53.什么类是所有数组的基类(A )
A. Array类
B. object类
C. Arraylist类
D. list类
54.Static void main(string [] args)
{ String a,b;
a=”1”;b=”2”;
console.Writeline(a+b);
} ( B )
A.3
B.12
C.1 2
D. 3
?55.下列哪个类型只能写在类里(B )
A. 结构类型
B. 枚举类型
C. 布尔类型
D. 浮点类型
#56.接口中的成员不可以是(D )
A. 方法
B. 属性
C. 事件
D. 委托
#57.当用零除整数值或十进制数值时引发异常用什么处理(C )
A .IOException B. FormatException
C. DivideByIeroException
D. ArithmeticException
58下列哪个关键字是用来读取属性值的(A )
A .get B. set C. read D. write
59.class类继承read类的形式为(B )
A. class.read
B. class:read
C. class;read
D. class,read
60.什么循环体至少执行一次,再判断循环条件的值(C )
A. while
B. for
C. do-while
D. foreach
61下面哪种不是c#的注释方式(c)
a.”//”
b.”/*...*/”
c.”*...*”
d.”///”
#62.enum weekDay{sun,mon,tue,wen=8,thur,fri,sat}
weekDay today;
today=weekDay.tue;
Console.WriteLine(today); (c)
a.7
b.3
c.2
d.6
63.欲设置“文件”的快捷方式(f),应打开MenuItem,设置Text属性为(c)
a.#f
b.-f
c.&f
d.f-
64.下面那个不是面向对象的基本原则(c)
a. 封装
b.多态
c.委托
d. 继承
#65.索引器是用来封装(c)的一种特殊属性
a.私有字段
b.数组
c. 私有数组
d.私有方法
66.委托是一种引用类型,相当于函数的指针,通过委托可以对(b)进行引用执行。
a.属性
b.方法
c.参数
d.数组
67.累可以继承(a)个基类,饼实现(a)个接口。
a.1,多
b.多,多
c.多,1
d.1,1
68.所有异常类的基类是(b)
a.object
b.Exception
c.ApplicationException
d.System.Exception
69.int i=0;
For(int j=1;j<10 ;j++)
if(j<5)
i++;
else j--;break;
}
Console .Writeline(“{0},{1}”i,j) (b)
a.4,5 b4,4 c.5,4 d.0,1
*70.static void Main [string [] args]
{
Public void speak()
{
Person p1=new chinese();
P1.speak();
Person p2=new uk();
P2.speak();
}
Class Person
{
{Console .WriteLine(“language”);}
}
Class chinese:Person
{
Public override void speak()
{Console.WreteLine(“chinese language”);}
}
Class uk:Pesson
{
Public void speak()
{Console.WriteLine(“english language”);}
} (d)
https://www.doczj.com/doc/ac1904940.html,nguage language
b.chinese language englishi language
https://www.doczj.com/doc/ac1904940.html,nguage english language
d.chinese language languege
#71.下列关于构造函数的描述正确的是(c)
a)构造函数可以声明返回类型 b)构造函数不可以用private修饰
c)构造函数必须与类名相同 d)构造函数不能带参数
72.下列描述错误的是(bcd)
a)类不可以多重继承而接口可以 b)抽象类自身可以定义成员而接口不可以
c)抽象类和接口都不能被实例化 d)一个类可以有多个基类和多个基接口
73.接口是一各引用类型,在接口中可以声明(a),但不可以声明公有的域或私有的成员变
量。
a)方法、属性、索引器和事件 b)方法、属性信息、属性
c)索引器和字段 d)事件和字段
#74.以下叙述正确的是(abc)
a)接口中可以有虚方法 b)一个类可以实现多个接口
c)接口可以被实例化 d)接口中可以包含已实现的方法
75.在c#中new关键字的作用是(a)
a)新建对象实例 b)定义命名空间
c)调用类 d)引入命名空间
76.在c#中using关键字的作用是(d)
a)定义命名空间 b)新建实例 c)调用类 d)引入命名空间
#77.c#索引器类型应该是(c)类型
a)整型 b)字符型 c)任意类型 d)数组
78.委托声明的关键字是(a)
a)delegate b)delete c)public d)interface
#79.构造函数何时被调用(a)
a)创建对象时b)类定义时
c)使用对象的方法时d)使用对象的属性时
80.在c#中(c)访问修饰符修饰的变量只能由当前程序集访问
a)public b)protected c)internal d)private
81.以下哪一项不属于引用类型(D)
A.类
B.接口
C.委托
D.结构
82.比较字符串的值的方法中哪一项是错误的(C)
A.Equal
B."=="
C."="
https://www.doczj.com/doc/ac1904940.html,pare
#84.静态函数中用()来调用方法,类中用()来调用方法(A)
A.类,对象名
B.类,字段名
C.结构,对象名
D.事件,字段名
85.在class Book类中对方法public void printBook(){...}的重载正确的是(BD)
A.public printBook(int a){...}
B.public void printBook(Book[]book){...}
C.private printBook(int a){...}
D.private void printBook(Book book,int cou){...}
86.int[,] a=new int [3,4]{{1,2,3,4},{5,6,7,8},{9,10,11,12}},请问a[1,2]的值是多少(C)
A.2
B.3
C.7
D.11
87.在C#中要新命名一个空间使用的关键字是哪个(C)
https://www.doczj.com/doc/ac1904940.html,e
B.import
C.suing
D.include
#88.在SQL中有4中最基本的数据操作语句:INSERT,SELECT,UPDA TE,DELETE,哪一个语句执行的是在表中按一定的条件选择记录(B)
A.INSERT
B.DELETE
C.UPDA TE
D.SELECT
89.定义事件的关键字(a)
A.event
B.enum
C.struct
D.class
90. class Program
{
enum season
{
spring, summer, autumn, winter,
}
static void Main(string[] args)
{
season s = (season)3;
Console .WriteLine (s );
Console .Read ();
}
}
这个程序的输出结果是(D)
A.spring
B.summer
C.autumn
D.winter
三、判断正误(每题1分,共10题,共10题)
1、在使用变量之前必须先声明类型。√
2、if语句后面的表达式可以是任意表达式。×
3、switch语句中必须有default标签。×
#4、基类的派生类中必须为基类中的抽象方法提供实现。√
5、在结构化异常处理语句try-catch-finally中,finally块的内容可以执行也可以不执行。×
6、由static修饰的成员必须由类来访问而不能通过对象访问。√
7、在C#中,一个类可以继承于多个类、多个接口。×
8、抽象类中所有的方法必须被声明为abstract ×
9、若方法的名字相同、参数相同,而方法的返回值类型不同,则可以实现方法的重载。×
10、继承能够实现代码的复用。√
11、布尔型变量可以赋值为0或1。×
#12、当有多个异常要捕获时,应先捕获特殊(具体)异常,再捕获普通(一般)异常。√13、在控制台应用程序中,若想从键盘上输入数据,可以使用Console.Read()和Console.ReadLine()方法。√
#14、显式接口成员只能通过接口来调用√
15、下列语句是否正确:for(int i=0 , i<10 , i++) Console.WriteLine(i); ×
16、Windows应用程序和Web应用程序都是通过事件触发的。√
17、类的static成员可以通过该类的实例来引用×
18、有定义:int [ ] a=new int[5]{2,3,5,7,8}; 则a[5]的值为8。×
19、对象是人们要进行研究的任何事物在面向对象程序设计中的抽象。dui
20、结构和类均为引用类型×
21、接口的成员默认为公有的,不允许加上修饰符√
22、类只能继承一个类,但能继承多个接口。√
23、静态构造函数只能对静态成员初始化,不能对实例成员初始化。√
24、当方法的修饰符设为proteced时,表示该方法可以被处于同一个工程的文件访问。×#25、填充数据集应使用SqlDataAdapter的Update()方法×
26、foreach语句既可以用来遍历数组中的元素,又可以改变数据元素的值。×
28、定义类成员时,访问修饰符在默认情况下为public. ×private
29、ReadOnly类型的变量只能在定义时初始化。×
30、在有继承关系的类中,当创建派生类的对象时,先调用派生类的构造函数,再调用基类构造函数。×
31、被sealed关键字修饰的lei不能被继承。√
32、属性必须同时定义get块和set块。×
33、有定义:int [ ] a=new int[5]{1,3,5,7,9}; 则a[3]的值为7。√
34、隐式枚举转换允许将十进制的整数转换为枚举类型的变量。×只能是0,其他用显式
35、类是对象的抽象,对象是类的实例。√
36、若想在派生类中重写某一方法,则应将该方法用sealed修饰。×
37、派生类可以同时继承一个基类和多个接口,代码可以如下编写:
public class EditBox: Control ; IControl ; IDataBound
{…} ×
38、“*=”运算符是计算右操作数的平方值,然后将结果存储在左操作数中×
39、C#中,在进行隐式转换时,可以将一个整数类型隐式转换为char类型的变量。×
40、类只能继承一个类,但能继承多个接口。√
#41、抽象类中所有的方法必须被声明为abstract ×
42、C#源代码的后缀名为.cs √
43、常量通过关键字const进行声明。√
44、构造函数和析构函数均可以被显式调用。×
45、修饰方法参数的关键字ref和out的区别在于ref修饰的参数在调用方法之前就需要进行初始化。√
46、一个数组的元素可以是多种类型的数据。×
47 z=x>y?x:y的含义是获取x和y中的较大值并且赋给z。√
48、在带有“||”操作符的语句中,如果其中一个或两个条件都为真,则语句为真√
49、若想在标签中显示文字,则需设置标签的name属性。×
#50、实例构造函数既可以对静态成员进行初始化,也可对实例成员初始化。√
51,continue语句是用来结束当次循环,然后到循环的开头继续进行下一次的循环。break 是一个中断执行语句,控制语句执行完成后,退出switch语句。√
52,readline和read方法,readline方法读取下一行字符,返回值是一个字符串,read方法读取下一个字符,两者都会把回车符读入。-×
#53,接口的实现形式包括方法名和显示接口实现,方法名前面不能加访问修饰符,显式接口实现前面加访问修饰符。×
54,base关键字表示派生类的基类,如果要更改继承基类的构造函数,可以通过base调用基类的方法和构造函数。用base关键字引用基类的成员。√
55,public:访问不受限制,private: 访问仅限于本类或派生类,protected:访问仅限于本类。×
56,属性的实质是为访问私有类字段而执行的方法,属性中的方法称为访问器,get访问器读取字段的值,set访问器设置字段的值,value相当于占位符。√
57,引用类型包括类、接口、委托、数组、字符。值类型包括简单类型、结构类型、枚举类型,简单类型包括整数类型、浮点类型、字符类型、布尔类型。----×
58,在方法声明中只允许一个params关键字。√
60,在.NET Framework中,Path类是异常的基类。大多数异常对象都是Path的某个派生类的实例,在代码中使用Path对象,这样能处理各种不确定的异常错误。×
61,结构是引用类型. F
62,C#支持多重继承. √
63,C#使用try-catch-finally异常处理机制扑捉和处理错误√
#64,属性就是实体特征的抽象,比如,对象猫可以有重量,身长等属性√
65,在同一行代码或同一段语句中,等于运算符的优先级别高于关系运算符√
#66,“+,-,*,/,%”均属于三元运算符×
#67,对象与对象之间的关系可以分为三类:包含、继承和关联√
68,抽象类一定包含abstract成员,但包含声明为abstract成员的类不一定是抽象类√69,对于.NET类来说,一般的异常类System.Exception派生于System.Object,但是通常不在代码中引发这个System.Exception对象,因为它无法确定情况的本质F
70,当创建派生类对象时,先执行基类的构造函数,后执行派生类的构造函数√
71c#语言和NET其他语言能进行交互。(错,不能交互)。
72.Switch语句中的条件不可以是变量。(错,可以为变量)。
73.一切类的根基是Object类。并且直接继承它。(正确)。
74.C#支持多重继承.(正确)。
75.#委托和事件有必然的联系。(错,没有必然联系)。
76.抽象类里面的函数能含有实现.。√
#78.C#中委托只包含单点委托.(F)。
79.C#支持多重继承.(正确)。
80.精度最高的预定义值类型是字符类型。(错,是浮点类型)。
81.描述一下C#中索引器的实现过程,只能根据数字进行索引——————————×83.接口可以继承接口——————————√
#84.try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code不会被执行——————————×
#85.在c#中,using 引入名称空间或者使用非托管资源——————————√86.在c#中,new 新建实例或者隐藏父类方法——————————√
#87.public static const int A=1;这段代码的错误是const不能用static修饰——————————√
88.f loat f=-123.567F; int i=(int)f;i的值现在是:-123——————————√89.在C#中索引器的实现过程,只能根据数字进行索引——————————×
90.委托可以把一个方法作为参数代入另一个方法——————————√
四、读程序写结果(每题4分,共5题,共20分)
1、class Program
{
static void Main(string[] args)
{
Tiger t = new Tiger();
Console.Read();
}
}
class Animal
{
public Animal()
{ Console.Write ("基类"); }
}
class Tiger : Animal
{
public Tiger()
{ Console.Write ("派生类");}
}
程序的运行结果是_____基类派生类______________
#2、class Program
{
static void Main(string[] args)
{
Elephant e = new Elephant("abc");
Console.ReadLine();
}
}
public class Animal
{
public Animal()
{
Console.Write ("基类默认构造函数!");
}
public Animal(string s)
{
Console.Write ("非默认构造函数");
}
}
public class Elephant : Animal
{
public Elephant()
{
Console.Write ("派生类构造函数!");
}
public Elephant(string str)
: base(str)
{
Console.Write (str);
}
}
程序的运行结果是______非默认构造函数abc __________ 3.在Main方法中需要调用Display方法,按照要求填空
class Program
{
static void Main(string[] args)
{
A1 a = new A1(); //创建A1类的对象a
Console.WriteLine(a.Display());
Console.ReadLine();
}
}
class A1
{
public string Display()
{
return "hello everyone!";
}
}
4、下列程序完成了调用静态方法和实例方法,补充空白处并写出运行结果class Program
{
static void Main(string[] args)
{
Example e1 = new Example();
e1.meth1();
Example.meth2(); //调用meth2()
Console.WriteLine("a={0},b={1}",e1 .a ,Example .b);
Console.ReadLine();
}
}
class Example
{
public int a;
static public int b;
public void meth1()
{
a = 10;
b = 20;
}
public static void meth2()
{
b = 30;
}
程序的输出结果是_________a=10,b=30_______________
#5、class Program
{
static void Main(string[] args)
{
s s1 = new s();
s t1 = new s();
Console.ReadLine();
}
}
public class s
{
public s()
{Console.Write ("构造函数!");}
static s()
{Console .Write ("静态构造函数!");}
}
程序的运行结果是_____静态构造函数!构造函数!构造函数!__________________ 6、class Program
{
static void Main(string[] args)
{
Person p = new Person();
p.N = "www";
Console.WriteLine(p.N );
Console.ReadLine();
}
}
public class Person
{
private string p_name="abc";
public string N
{
get { return p_name; }
set { p_name = value; }
}
}
程序最终的输出结果是_www__
7、class Program
{
static void Main(string[] args)
{
B b = new B();
A a = b;
a.G();
b.G();
Console.Read();
}
}
class A
{
public virtual void G()
{
Console.Write ("A.G!");
}
}
class B : A
{
public override void G()
{
Console.Write ("B.G!");
}
}
程序的输出结果是___ B.G!B.G!__________________________ 8、下列程序完成了输出数组中的最大值和最小值,请补充程序中的空白处class Program
{
static void Main(string[] args)
{
MyClass m = new MyClass();
int[] s ={ 1, 6, 4, 7, 3, 87, 5 };
int smax, smin;
m.MaxMin(s, out smax, out smin);
Console.WriteLine("smax={0},smin={1}",smax ,smin );
Console.ReadLine();
}
}
class MyClass
{
public void MaxMin(int[] a, out int max, out int min)
{
max = min = a[0];
for (int i = 1; i < a.Length; i++)
{
if (a[i] > max) max = a[i];
if (a[i] < min) min = a[i];
}
}
}
9、下列程序完成了调用静态方法和实例方法,补充空白处并写出运行结果class Program
{
static void Main(string[] args)
{
Example e1 = new Example();
e1.meth1();
Example.meth2();
Console.WriteLine("a={0},b={1}",e1 .a ,Example .b);
Console.ReadLine();
}
class Example
{
public int a;
static public int b;
public void meth1()
{
a = 10;
b = 20;
}
public static void meth2()
{
b = 30;
}
程序的输出结果是____ a=10,b=30_________________ 10、class Program
{
static void Main(string[] args)
{
Triangle t = new Triangle(3, 4);
double s = t.area();
Console.WriteLine("area is {0}",s);
Console.ReadLine();
}
}
class Shape
{
protected double width;
protected double height;
public Shape()
{
width = height = 0;
}
public Shape(double w, double h)
{
width = w;
height = h;
}
public virtual double area()
{
return width * height;
}
}
class Triangle : Shape
public Triangle(double x, double y)
: base(x, y)
{ }
public override double area()
{
return width * height / 2;
}
}
程序的输出结果是____area is 6____________________ #
11、class Program
{
static void Main(string[] args)
{
Point p1 = new Point();
Point p2 = new Point(3, 4);
Console.WriteLine("p1.x={0},p1.y={1}", p1.x, p1.y);
Console.WriteLine("p2.x={0:f},p2.y={1}", p2.x, p2.y);
Console.ReadLine();
}
}
class Point
{
public double x = 0, y = 0;
public Point()
{
x = 1; y = 1;
}
public Point(double a, double b)
{
x = a;
y = b;
}
}
程序最终的输出结果是___ p1.x=1,p1.y=1
p2.x=3,p2.y=4 __
12、class Program
{
static void Main(string[] args)
{
Triangle t = new Triangle(3, 4);
double s = t.area();
Console.WriteLine("area is {0}",s);
Console.ReadLine();
}
}
class Shape
{
protected double width;
protected double height;
public Shape()
{
width = height = 0;
}
public Shape(double w, double h)
{
width = w;
height = h;
}
public virtual double area()
{
return width * height;
}
}
class Triangle : Shape
{
public Triangle(double x, double y)
: base(x, y)
{ }
public override double area()
{
return width * height / 2;
}
}
程序最终的输出结果是_ area is 6__
13、class Program
{
static void Main(string[] args)
{
MyClass m = new MyClass();
int a, b, c;
a = 0;
b =20;
c = 10;
m.sort(ref a, ref b, ref c);
Console.WriteLine("a={0},b={1},c={2}",a,b,c);
Console.ReadLine();
C语言程序设计实验报告(数组) 1实验目的 (1)熟练掌握一维数组,二维数组的定义,初始化和输入、输出方法; (2)熟练掌握字符数组和字符串函数的使用; (3)掌握与数组有关的常用算法(查找、排序等)。 2实验内容 编写函数catStr(char str1[],char str2[])用于进行两个字符串的连接,编写函数lenStr(char str[])用于统计一个字符串的长度,并在主函数中调用。 要求: 1、不允许用strcat()和strlen()字符处理库函数; 2、在主函数以直接初始化的方式输入两个字符串str1和str2.调用函数 strlen()计算并返回两个字符串的长度; 3、调用函数catstr()连接两个字符串(将str2连接在str1后面); 4、调用函数lenstr()计算并返回连接后字符串的长度; 5、在主函数中输入两个原始的字符串及几个字符串的长度,以及处理后字 符串及其长度。
3算法描述流程图
4源程序 #include
for (i=0;m[i]!='\0';i++); printf("%d",i); } void main() {char s1[50]="forever",s2[50]="more"; printf("s1=%s,s2=%s",s1,s2); printf("\ns1的长度:"); lenStr(s1); printf("\ns2的长度:"); lenStr(s2); catStr(s1,s2); printf("\n连接后的字符:"); printf("%s\n",s1); printf("连接后字符的长度:"); lenStr(s1); printf("\n"); } 5测试数据 s1=forever, s2=more 6运行结果 7出现问题及解决方法 在输入程序时,少写了半边引号,调试时发现存在错误,找到了错误并加以改正。无论什么事,细心都是必不可少的,认真是解决问题的关键。 8实验心得 通过本次实验,对于函数的定义和声明,数组以及循环语句有了进一步的认识,掌握了字符数组和字符串函数的使用,以及与数组有关的常用算法。此次实验不是调用strlen()和strcat()函数,而是通过自己设计程序来进行字符串的连接以及计量字符串的长度,由此我学会了如何去理清自己的思路来设计程序。
填空题 20*2 ■对于51系列单片机,现有4种语言支持程序设计,它们是(汇编语言)、PL/M、(C语言)、BASIC。 ■单片机程序设计时需要在主程序中设计死循环来防止程序跑飞。在C语言中采用(while(1))或for(;;)语句实现死循环。 ■单片机程序设计中经常用到中断,在C语言程序设计中外部中断1的中断入口序号(2),而汇编语言程序设计中外部中断1的入口地址是(0013H)。 ■编写串口中断程序时要在函数说明部分后写interrupt 4 。 ■编写定时器0中断程序时要在函数说明部分后写interrupt 1 。 ■C语言程序设计中有一个无符号形字符变量temp和一个位变量Flag,现在分别对它们取反。相应的语句为temp=__~___temp; Flag=_!___Flag;。 ■I2C总线在传送数据过程中共有三种类型控制信号,它们分别是:_(起始信号)____、应答信号、_(停止信号)_____。 ■I2C的地址由(协议规定)与(硬件设置)两部分组成。 ■I2C器件的两条信号线分别为串行时钟线SCL 与串行数据线 SDA 。 ■MCS-51单片机操作I2C器件时,单片机必须做为主机,I\O编程。 ■在Cx51所有的数据类型中,只有bit 与unsigned char 直接支持机器指令。 ■编译器性能比较有如下几个方面:算数支持、生产代码大小、开打速度、支持浮点和long 。 ■在KEIL开发套件中,BL51链接器/定位器用于创建一个绝对目标横快。 ■Cx51中函数分为两大类:标准库函数和用户自定义函数。 ■在函数名前如果不指定函数类型,则该函数的类型为整型。 ■具有一定格式的数字或数值叫做数据,数据的不同格式叫做数据类型, 数据按一定的数据类型进行的排列、组合及架构称为数据结构。 ■数据类型的转换有自动转换与强制转换两种。 ■直接出现在程序中的数值(如TMOD=0x21)称为常数。在程序运行的过程中,其值不能改变且被定义为符号的(如#define CONST 60)称为常量。 ■软件对常量与变量的命名规范是:常量名用大写字母,变量名用小写字母。 ■MCS-51单片机串口用于中断通讯时,在进行初始化时必须设置的特殊功能寄存器有:
《C语言程序设计》大作业报告 1.目的 掌握所学C语言程序设计的方法,熟悉所学语言的开发环境及调试过程,熟悉所学C语言中的数据类型,数据结构、语句结构、运算方法,巩固和加深对理论课中知识的理解,提高学生对所学知识的综合运用能力。通过综合设计要求达到下列基本技能: 1.培养查阅参考资料、手册的自学能力,通过独立思考深入钻研问题,学会自己分析、解决问题。 2.通过对所选题目方案分析比较,确立方案,编制与调试程序,初步掌握程序设计的方法,能熟练调试程序。 2.作业内容
熟练掌握所学语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。进一步掌握各种函数的应用等。 3.要求: 1.要求每个同学都要认真对待,积极参与。 2.独立完成,不能抄袭。 3.课程设计结束时每位同学必须完成《大作业报告册》,其中包含设计源 代码和设计思路。 4.不符合要求的程序、设计报告、抄袭的设计报告或源程序代码、在设 计中完全未参与的将作不及格处理。 5.统一格式,A4打印,按时提交。 4.题目:设计要求:编写一个程序,求3x4数组的转置矩阵。要求在main函数里面读数,在change函数里面把矩阵转置。 5.程序设计 设计思路:1是先定义两个数组,一个是a[3][4],另一个是b[4][3]。2是将随便输入的12个数输入到a[3][4]。3是在change函数中将a[3][4]中值通过for循环的镶嵌将数组a[3][4]的值赋值给数组b[4][3]。4在主函数中将数组b[4][3]通过for循环的嵌套输出。 代码
电子技术习题集 一、 判断题: 1. PN 结正向偏置时,外电场与内部电场方向相同。( ) 2. 放大电路放大的对象是交流成份和部分直流成份。( ) 3.“虚短”指二点并非真正短接,但二点具有相等电位。( ) 4.各种电压比较器输出都只有二种状态。( ) 10.电压反馈能稳定输出电压。( ) 11.放大电路在无失真状况下,输出和输入信号波形一般是反相的 。( ) 12.在2V 和L R 相同的情况下,单相桥式整流输出的电压平均值是半波整流的2倍。( ) 17. 单相比较器抗干扰能力比滞回比较器强。( ) 23. 为增大输入阻抗应引入电压串联负反馈或电流串联负反馈。( ) 24. 为实现电流------电压转换,应引入电流并联负反馈。( ) 30. 稳压管工作在稳压区,其工作状态为反向击穿。( ) 33.静态工作点的设置就是为了让交流信号不失真通过放大器。( ) 34.输出端交流信号短路后仍有反馈存在,可判断为交流反馈。( ) 35.电压反馈可稳定输出电压。( ) 39.二极管只要反向击穿,一定会造成永久性损伤。( ) 40.理想运算放大噐組成的功能电路,不—定都具有“虚短”“虚断” 的结论( )。 41.在同样输入与输出负载的条件下,单相桥式整流输出的平均电压是半波整流的二倍 ( ) 42.放大电路的输入号和输出信号极性一般是相反的( )。 43.基本放大电路都具有功率放大的能力( )。 46.电流正反馈可稳定输出电流( )。 47.PNP 三极管工作在放大状态時,则集电极电位最髙 ( )。 48.在同样输入与输出负载的条件下,单相桥式整流输出的平均电压是半波整流的二倍 ( )。 49.电压比较器输出端仅具有二种状态结果。 ( )。 50.稳压二极管在实际电路使用中一般为正向联接( )。 51.理想运算放大噐組成的功能电路,都具有“虚短” “虚断” 的结论( )。 二 选择题: 1.用示波器测试某一基本放大电路输入输出波形,发现极性相反,此放大电路为( )。 A 、同相比例放大器 B 、共发射极放大电路 C 、共集电极放大电路
实验1 C程序运行环境、数据类型、运算符和表达式 一、实验目的 1. 掌握Turbo C集成环境的进入与退出、Turbo C集成环境各种窗口的切换,了解Turbo C集成环境的设置。 2. 掌握C语言源程序的建立、编辑、修改、保存及编译和运行等操作。 3. 学会使用C语言的基本运算符(主要是算术运算符、赋值运算符)及其表达式。 4. 掌握C语言源程序的结构特点与书写规范。 二、实验要求 1. 根据题目要求,进行各种程序测试与验证,并记录结果。 2. 上机调试程序。按各个程序输入计算机,并进行编译和连接,如果在编译、连接中有错误信息,则要根 据这些信息找到程序中的错误所在,然后修改程序,直至正确。 3. 详细记录数据的输入、输出信息,按要求写出实验报告。 三、实验内容 1. 开机;进入Turbo C集成工作环境,了解Turbo C集成工作环境及其菜单的使用,输入如下C语言源程序,并以exl.C存盘。 / *ex1.c* / #include
《C程序设计》试题 一、单项选择题。(每题1分,共20分) 1. C程序的基本单位是:() A.子程序 B.程序 C.子过程 D.函数 2.在C语言中,非法的八进制是:() 3. 不是C语言实型常量的是:() .字符串“xyzw”在内存中占用的字节数是:() 5. 若已定义f,g为double类型,则表达式:f=1,g=f+5/4的值是:() A.2.0 若有语句char c1=`d`,c2=`g`;printf(“%c,%d\n”,c2-`a`,c2-c1);则输出结果为:() (a的ASCII码值为97) ,2 ,3 ,2 ,g 7. 使用语句scanf(“a=%f,b=%d”,&a,&b);输入数据时,正确的数据输入是: =,b=3 = b=3 3 表示关系12<=x<=y的C语言表达式为:() A.(12<=x)&(x<=y) B. (12<=x)&&(x<=y) C. (12<=x)|(x<=y) D.(12<=x)||(x<=y) 9.设x=1,y=2,m=4,n=3,则表达式x>yx:m
第2章习题 2.1.1如右下图所示电路中,E12V =, D为硅二极管,R10K =Ω,则二极管D和和电阻R上的电压各为多少?流过二极管的电流多大? 解:二极管正偏导通: D U0.7V ≈; R U120.711.3V =-= D R 11.3 I I 1.13mA 10 === 2.1.2 在下图中的各电路图中, i u12sin tω =V,二极管D的正向压降忽略不计。试分别画出输出电压 o u 的波形。 (a)(b)(c) 解: 2.1.3二极管电路如图所示,试分别判断图(a)和(b)中的二极管是导通还是截止,并求出AB两端电压 AB U。设二极管是理想的。 (a) (b) 解:(a) D导通, AB U6V =-; (b)D1导通,D2截止; AB U0V =;
2.2.1在下图中,所有稳压二极管均为硅管且稳压电压 Z U6V =,输入电压 i u12sin tω =V,画出输出 电压 o u波形图。 解: 2.2.2在下图所示的(a)和(b)分别为稳压管的并联和串联连接,哪种稳压管的用法不合理?试说明理由。解:(a)由于稳压管的击穿电压各不相 同,击穿电压低的管子工作,而另一个 不工作。 (b)可以串联连接,输出电压为两个稳压 管稳压电压之和。 2.2.2在如图所示的稳压管稳压电路中, I U14V =,波动范围10% ±;稳压管的稳定电压 Z U6V =,稳 定电流 Z I5mA =,最大耗散功率 ZM P180mW =;限流电阻R200Ω =;输出电流 o I20mA =。(1)求I U变化时稳压管的电流变化范围;(2)如果负载电阻开路,会发生什么现象? 解:输入电压波动范围: Imin I U0.9U(0.914)V12.6V ==?= Imax I U 1.1U(1.114)V15.4V ==?=
C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(
#include
郑州大学 课程报告 课程名称:C语言程序设计 专业班级:(15)班 学生姓名:谢* 学号: 20127611*** 任课教师:赵** 学期: 2012-2013-2 课程报告任务书
开发一个通讯录管理系统,基本信息包括:编号、姓名、性别、出生年月、固定电话、手机号、电子邮件等基本信息(也可以根据自己情况进行扩充)。使之能提供以下基本功能: (1)通讯录等信息录入功能(注:数据等要求用文件保存)--输入 (2)通讯录信息的浏览功能--输出 (3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式): ①按电话号码进行查询②按姓名查询等③按照年龄排序④按姓名排序等(4)通讯录条目的删除与修改等 扩展功能:可以按照自己的程度进行扩展。比如(1)简单的权限处理(2)报表打印功能(3)模糊查询,如姓张的人员等;或者给定电子邮件的部分进行查询等(4)给定指定年龄范围之内的查询等等。 总之,可以根据自己需求进行分析功能,成绩评定按照难度进行区分。 成绩评定教师:
一. 需求分析 1,具有数据的插入、修改、删除、显示和查询功能的电话簿管理程序。 2,数据包括:人名、工作单位、电话号码和E-MAIL地址。 3,可对记录中的姓名和电话号码进行修改。 4,可增加和删除记录。 5,可显示所有的保存记录。 6,可按人名或电话号码进行查询。 分析 建议采用结构体数组和文件系统实现。结构体成员包括人名、工作单位、电话号码和E-MAIL地址。 根据题目的要求程序应该采用结构体数组和文件系统实现。应该有文件的操作功能;在程序中应该包括输入、显示、删除、查询、添加、修改、保存、加载和退出的功能。 二、概要设计 (1).程序的模块组成及各个函数的功能: 程序的模块组成: 主函数:main(); 输出数据函数:printf(); 读取数据函数:scanf(); 显示记录函数:Display(); 删除记录函数:shanchu(); 查找记录函数:chaxun(); 自定义清屏函数:system(“cls”); 自定义输入函数:input(); 字符输入函数:getchar(); 修改数据函数:xiugai(); 保存数据函数:baocun(); 排序数据函数:paixu(); 各函数的主要功能:
《C程序设计》实验教学大纲 一、适用范围 大纲适用信息管理专业本科教学使用。 二、课程名称 C程序设计 三、学时数与学分 总学时:90 总学分: 4 实验学时:28 实验学分:1 四、教学目的和基本要求 目的:通过C程序设计实验,培养学生对学习程序设计的兴趣,加深对讲授内容的理解,尤其是通过上机来掌握语法规则,使学生全面了解 C 语言的特点,熟练掌握C 语言程序设计的基本方法和编程技巧。 基本要求:了解和熟悉C语言程序开发的环境;学会上机调试程序,善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行,达到实验知识和理论知识的融会贯通。上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止,上机结束后,应整理出实验报告。 注:带*的实验项目为选做实验项目 六、教材、讲义及参考书 《C程序设计题解与上机指导》谭浩强主编清华大学出版社 七、实验成绩评定办法 实验成绩=平时实验表现+实验报告。实验成绩占总成绩的20%。 实验成绩以等级形式给出,评定等级分优、良、中、及格、不及格五类。 1、平时考核:上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止。在实验中,教师可根据学生编程操作能力、观察和分析及运用知识能力、程序编制正确性以及学生的课堂纪律、实验态度、保持实验室卫生等方面的表现进行综合考核。
2、实验报告:学生实验后应按时完成实验报告。 八、实验教学大纲说明 本大纲共安排28学时的实验,其中带*号实验项目为选做实验项目,实际课时为18学时。实验项目多为设计性实验项目,每个设计性实验项目中都包含数个小的设计性题目,其中带*号的题目为选做题目,有时间和有能力的同学可以选做。 九、实验项目 实验一 C程序的运行环境和运行一个C程序的方法 一、实验目的 1.了解Visual C++编译系统的基本操作方法,学会独立使用该系统。 2.了解在该系统上如何编辑、编译、连接和运行一个C程序。 3.通过运行简单的C程序,初步了解C源程序的特点。 二、实验内容 1.用编辑程序,输入教材第一章例程序,并进行编译和运行。应了解所用的系统是用什么命令进行编译和连接运行的。编译和连接后所得到的目标程序的后缀是什么形式的 2.编写一个C程序,输出以下信息: **************************** very good! **************************** 3.输入并运行教材第一章中例,了解如何在运行时向程序变量输入数据。 实验二数据类型、运算符和表达式 一、实验目的 1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符。 2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。 二、实验内容 1.输入并运行以下程序: main( ) { char c1,c2; c1=97;c2=98; printf(“%c %c\n”,c1,c2); printf(“%d %d\n”,c1,c2); } 在此基础上 ①将第三行、第四行改为: c1=321;c2=353; 再使之运行,分析其运行结果。 ②将第二行改为: int c1,c2; 再使之运行,分析其运行结果。。 2.输入并运行以下程序: main( ) {int i=8,j=10,m,n; m=++i;n=j++;
单项选择题 (002) 阅读程序题 (018) 程序填空题 (039) 编写程序题 (070) 一、单项选择题 导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。本类习题主要检查对C语言基本概念的掌握情况,读者可根据学习进度选做部分习题。在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。对于掌握不准的问题,应该通过上机实验来检验。 【1.1】以下不正确的C语言标识符是____。 A) int B) a_1_2 C) ab1exe D) _x 【1.2】以下是正确的C语言标识符是____。 A) #define B) _123C) %d D) \n
【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。 ??? A) print B) i\am C) Pxq D) str_l ??? _3d one_half My->book Cpp ??? oodbs tart$it line# pow ??? aBc 3pai His.age while 【1.4】下面各选项组中,均是C语言关键字的组是。 A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type 【1.5】下列不属于C语言关键字的是。 A) default B) register C) enum D) external 【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。 A) 程序文件的开始B) 程序文件的最后 C) 它所调用的函数的前面D) 程序文件的任何位置 【1.7】下列关于C语言的叙述错误的是____ A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义 【1.8】在C语言中,错误的int类型的常数是。 A) 32768 (超过了范围) B) 0 C) 037 D) 0xAF 【1.9】执行语句printf("%x",-1);屏幕显示____。 A) -1 B) 1 C) –ffff D) ffff 【1.10】已知long i=32768;执行语句printf("%d",i);屏幕显示____。 A) -1 B) -32768C) 1 D) 32768 【1.11】已知long i=65539; 执行语句printf("%d",i);屏幕显示____。 A) 65539 B) -3 C) 3D) 程序不能执行 【1.12】在C语言中,整数-8在内存中的存储形式是。 A) 1111 1111 1111 1000B) 1000 0000 0000 1000 C) 0000 0000 0000 1000 D) 1111 1111 1111 0111 【1.13】C语言中字符型(char)数据在内存中的存储形式是____。
《电子技术基础》课程习题集 一、单选题 1.测得NPN三极管的三个电极的电压分别是U B=1.2V,U E=0.5V,U C=3V,该三极管处在()状态。 A. 击穿 B. 截止 C. 放大 D. 饱和 2.二极管的主要特性是()。 A.放大特性 B.恒温特性 C.单向导电特性 D.恒流特性 3.在N型半导体中()。 A.只有自由电子 B.只有空穴 C.有空穴也有电子 D.没有空穴也没有自由电子 4.三极管的两个PN结都正偏,则晶体三极管的状态是()。 A.放大 B.饱和 C.截止 D.倒置 5.工作在放大状态的某三极管,当输入电流I B=10μA时,I C=1mA;而I B=20μA时,I C=1.8mA,则该三极管的交流电流放大系数为()。 A.50 B.80 C.100 D.180 6.稳压管的稳压是其工作在()。 A.正向导通 B.反向截止 C.反向击穿区 D.正向死区 7.在某放大电路中测得三极管三个极的静态电位分别为0V、-10V和-9.3V,则该管为()。 A.NPN硅管 B.NPN锗管 C.PNP硅管 D.PNP锗管 8.在杂质半导体中,多数载流子的浓度主要取决于()。 A. 温度 B. 掺杂工艺 C. 杂质浓度 D. 晶体缺陷 9.测得NPN型硅三极管三个电极电位分别为:U B=2.8V,U E=2.1V,U C=3.6V,则该管处于()状态。 A.饱和 B.截止 C.放大 D.击穿 10. P型半导体中的自由电子浓度()空穴浓度。 A.大于 B.小于 C.等于 D.大于或等于 11. N型半导体是在纯净的本征半导体中加入()。 A.自由电子 B.空穴 C.硼元素 D.磷元素 12.三极管工作在放大区的条件是()。 A.发射结正偏,集电结正偏 B.发射结反偏,集电结正偏 C.发射结正偏,集电结反偏 D.发射结反偏,集电结反偏 13.下列关于半导体的说法正确的是()。 A.P型半导体带正电,N型半导体带负电 B.稳压二极管在稳压时工作在反向击穿状态 C.整流二极管和稳压二极管可以互换使用 D.以上说法都是错误的
实验一熟悉C程序运行环境 班级学号姓名成绩 一、实验目的 1. 熟悉C语言Visual C++调试环境。 2. 掌握C程序的编辑、调试及运行。 二、实验内容 项目1. 调试并运行下面程序,并写出运行结果: #include <> int main() { printf(“Good morning!\n”); printf(“Hello,world!\n”); return 0; } 运行结果(注意,按照屏幕输出格式写): 项目2. 调试并运行下面程序,并写出运行结果: #include <> int main() { int a , b , sum; /*定义变量*/ a=23; b=56; /*为变量赋值*/ sum=a+b; /*计算两个变量的和*/ printf(“sum is %d\n”,sum); /*输出计算结果*/ return 0; } 运行结果:
项目3. 调试并运行下面程序,并写出运行结果: #include <> int max(int,int); int main() { int a , b , c; /*定义变量*/ a=23; b=56; /*为变量赋值*/ c=max(a,b); /*调用max函数,将得到的值赋给c*/ printf(“max is %d\n”,c); /*输出c的值*/ return 0; } int max(int x,int y) /*定义max函数,函数值为整型*/ { int z; /*定义变量*/ if(x>y) z=x; else z=y; return(z); /*将z的值返回*/ } 运行结果: 三、提高部分 1.试想,如果求10个数中的最大者,则程序该如何编写。 程序代码 运行结果:
C 语言程序设计 试 题 (2008 /2009 学年 第 二 学期) 一. 选择题(满分30分,每题2分) 1.若a 、b 、c 都定义为int 类型且初值为0,则以下不正确的赋值语句是 D 。 A. a=b=c+8; B. a+=y+3; C. c++; D. a+b+c 2. 已知int j ,i=1;执行语句“j=i++;”后,变量i 的值是 B 。 A. 1 B. 2 C. –1 D. -2 3.执行下面程序: #include "stdio.h" void main() { int a=1,b=2,c=3; c=(a+=a+2),(a=b,b+3); printf(“%d,%d,%d ”,a,b,c); } 则输出结果是: A 。 A. 2,2,4 B. 4,2,3 C. 5,5,3 D. 4,2,5 4.若要求在if 后一对圆括号中表示a 不等于0的关系,则能正确表示这一关系的表达式为 D 。 A. a< >0 B. !a C. a=0 D. a 5. for (j=0;j<11;j++);循环结束后,j 的值是 B 。 A. 12 B. 11 C. 10 D. 9 6. C 语言中函数返回值的类型由 D 决定的。 A. return 语句中的表达式类型 B. 调用该函数的主调函数的类型 C. 调用函数时临时决定 D. 定义函数时所指定的函数类型 7. 下列说法中正确的是 B 。 A 在调用用户自定义函数时,必须对其进行声明。 B 函数可以返回一个值,也可以什么值也不返回。 C 说明函数时,必须明确参数的类型和返回值。 D 在程序设计中空函数没有什么作用。 8. 若int i=10;执行下列程序后,变量i 的正确结果是 D 。 switch ( i ) {case 0: i+=1; case 10: i+=1; case 11: i+=1; default: i+=1; } A. 10 B. 11 C. 12 D. 13 9. 下列语句中不正确的字符串赋值或初始化的是 C 。 A . char str[10]={"strings"}; B.char str[8]={'s','t','r','i','n ','g','s','\0'}; C. char str[10]; str= "strings"; D. char str[]= "strings"; 10. 有如下程序: #include 一、填空题 1、右图中二极管为理想器件, V1工作在_导通__ 状态;V2工作在__截止___状态。 2、差分放大器对差模信号有较强的放大能力,对共模信号有较强的__抑制__能力。 3、三级管工作在放大区时,发射结__正向__偏置,集电结__反向__偏置, 工作在饱和区时,发射结__正向_偏置,集电结_正向__偏置。 4、根据反馈的分类方式,负反馈电路有4种组合形式,即_串联负反馈、_并联负反馈__、_电流负反馈_、电压负反馈。 5、理想集成运算放大器有两个重要特性对分析线性运用电路非常有用,他们分别是虚短、虚断。 6、逻辑函数的表示形式有四种:逻辑函数式、______真值表____、卡诺图和逻辑图。 7、将十六进制(0BF)转换成十进制= __191________。 8、计数器、寄存器、编码器、译码器中,属于组合逻辑电路的是___译码器编码器___,属于时序逻辑电路的是_____计数器、寄存器_________ 。 9、共阳接法的发光二极管数码显示器,应采用___低_______电平驱动的七段显示译码器。 1、数字信号只有 0 和 1 两种取值。 2、十进制123的二进制数是 1111011 ;八进制数是 173 ;十六进制数是 7B 。 3、一位十进制计数器至少需要 4 个触发器。 4、有一A/D转换器,其输入和输出有理想的线性关系。当分别输入0V和5V电压时,输出的数字量为00H 和FFH,可求得当输入2V电压时,电路输出的数字量为: 66H 。 5、设ROM容量为256字×8位,则它应设置地址线 8 条,输出线 8 条。 6、用256字×4位RAM,扩展容量为1024字×8位RAM,则需要 8 片 1、在常温下,锗二极管的门槛电压约为 0.1 V,导通后在较大电流下的正向压降约为 0.2 V。 2、三极管须使发射结正向偏置,集电结反向偏置才能工作在放大区。 3、一般直流稳压电源由电源变压器、整流电路、滤波电路 和稳压电路四个部分组成。 4、按移位方向,移位寄存器可分为单向移动寄存器和双向移动寄存器。 5、三态门的“三态”指输出高电平,输出低电平和输出高阻态。 6、(101111)(2)=47(10),(87)(10)=1010111(2) 7、用一个称为时钟的特殊定时控制信号去限制存储单元状态的改变时间,具有这种特点的存储单元电路称为触发器。 8、时序电路分为组合电路和存储电路两种。 二、选择题 1、离散的,不连续的信号,称为(B ) A、模拟信号 B、数字信号 2、在下列逻辑部件中,不属于组合逻辑部件的是( D )。 A.译码器B.编码器 C.全加器D.寄存器 一.填空题 26.C#源程序的后缀名为______.cs________。 26.C#中每个int 类型的变量占用____4___个字节的内存。 26.C#的每行语句以________分号_______结尾。 26.布尔型的变量可以赋值为关键字_____true__________或_____false_________。 26.如果int x的初始值为5,则执行表达式x - =3之后,x的值为_____2_________。 26.do...while语句在执行循环体_____之后________测试语句是否满足循环条件。 26.关键字_______class________表示一个类的定义。 26.如果一个类包含一个或多个抽象方法,它是一个_________抽象_____________类。 26.try块运行后,总是会执行_________finally_____________块中的代码。 26.一个数组如果有两个索引值,那么它是__________二维__________数组。 二.单项选择题 1.在对SQL Server 数据库操作时应选用()。 A、SQL Server .NET Framework 数据提供程序; B、OLE DB .NET Framework 数据提供程序; C、ODBC .NET Framework 数据提供程序; D、Oracle .NET Framework数据提供程序; 2.下列选项中,()是引用类型。 A、enum类型 B、struct类型 C、string类型 D、int类型 3.C#的数据类型有() A、值和调用类型; B、值和引用类型; C、引用和关系类型; D、关系和调用类型 4.下列描述错误的是() A、类不可以多重继承而接口可以; B、抽象类自身可以定义成员而接口不可以; C、抽象类和接口都不能被实例化; D、一个类可以有多个基类和多个基接口; 5.下列关于构造函数的描述正确的是() A、构造函数可以声明返回类型。 B、构造函数不可以用private修饰 C、构造函数必须与类名相同 D、构造函数不能带参数 6.int[][] myArray3=new int[3][]{new int[3]{5,6,2},new int[5]{6,9,7,8,3},new int[2]{3,2}}; 那么myArray3[2][2]的值是( )。 A、9 B、2 C、6 D、越界 7.接口是一种引用类型,在接口中可以声明(),但不可以声明公有的域或私有的成员变量。 A、方法、属性、索引器和事件; B、方法、属性信息、属性; C、索引器和字段; D、事件和字段; 8.在https://www.doczj.com/doc/ac1904940.html,中,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,下面叙述错误 的是()。 A、insert、update、delete等操作的Sql语句主要用ExecuteNonQuery()方法来执行; B、ExecuteNonQuery()方法返回执行Sql语句所影响的行数。 C、Select操作的Sql语句只能由ExecuteReader()方法来执行; D、ExecuteReader()方法返回一个DataReder对象; 9.Winform中,关于ToolBar控件的属性和事件的描述不正确的是( )。 A、Buttons属性表示ToolBar控件的所有工具栏按钮 B、ButtonSize属性表示ToolBar控件上的工具栏按钮的大小,如高度和宽度 C、DropDownArrows属性表明工具栏按钮(该按钮有一列值需要以下拉方式显示)旁边是否显示下箭 头键 D、ButtonClick事件在用户单击工具栏任何地方时都会触发 电子技术习题册答案-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII 2 第1章 逻辑代数基础 1. 用真值表证明下列等式。 (1) (A B)C=A (B C)⊕⊕⊕⊕ (2) C B A C B A A +=++ A B C B A ⊕ C B ⊕ C B A ⊕⊕)( A )(C B A ⊕⊕ 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 1 0 1 1 1 1 0 1 1 1 0 0 0 1 0 0 1 0 1 1 1 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 A B C A C B + C B C B A A ++ C B A + 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 1 1 1 1 1 0 1 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 1 1 2. 用代数法化简下列各式。 (1) A+ABC+ABC+CB+CB ( C A B B C BC BC A +=++++=) ()1( 2) ABC+AB C+ABC+ABC A AB B A C C AB C C B A =+=+++=) ()( 3.将下列各函数化为最小项之和的形式。 (1) Y=ABC+BC+AB 7 543)()(m m m m C B A C B A BC A ABC BC A C C B A A A BC BC A +++=++++=++++= (2) )( AB Y D C B C ABD +++=电子技术复习题及答案
(完整版)C程序设计语言复习题(试题及答案版)
电子技术习题册答案