C语言程序设计吴晓艳李莹等编课后习题答案修正.docx
《C语言程序设计吴晓艳李莹等编课后习题答案修正.docx》由会员分享,可在线阅读,更多相关《C语言程序设计吴晓艳李莹等编课后习题答案修正.docx(15页珍藏版)》请在冰豆网上搜索。
C语言程序设计吴晓艳李莹等编课后习题答案修正
第1章概述
1、公共语言运行库.netframework类库。
2、.cs
3、(//)(/*……*/)。
(//)
第2章数据类型和表达式
1、B
2、A
3、ABC
4、D
5、B
6、B
7、__obj1=123_____________
8、(+=)
9、(true)或(false)。
10、(引用)
11、(&&)
12、值类型包括:
整数类型、浮点类型、字符类型、布尔类型、枚举类型、结构类型。
引用类型包括:
类、接口、委托、数组和字符串。
第3章流程控制
1、B
2、C
3、B
4、D
5、C
6、程序的运行结果是______sum=1___________________
7、continue;
8、程序的输出结果是____30______
9、程序最终的输出结果是______9,1__________
10、程序的运行结果是______12345
678910__________________
11、编程实现对3个数降序排列。
staticvoidMain(string[]args)
{
inta=12,b=10,c=18;
intt;
if(a>b)
{
t=a;a=b;b=t;
}
if(a>c)
{
t=a;a=c;c=t;
}
if(b>c)
{
t=b;b=c;c=t;
}
Console.WriteLine("{0},{1},{2}",a,b,c);
Console.ReadLine();
}
12、编程实现判断某一年是否是闰年。
staticvoidMain(string[]args)
{
intyear=Convert.ToInt32(Console.ReadLine());
if(year%400==0||year%4==0&&year%100!
=0)
Console.WriteLine("是闰年");
else
Console.WriteLine("不是闰年");
Console.ReadLine();
}
13、编程实现显示100-200之间不能被3整除的数的程序。
staticvoidMain(string[]args)
{
for(inti=100;i<=200;i++)
{
if(i%3!
=0)
Console.Write(i+"");
}
Console.ReadLine();
}
第4章面向对象基础
1、D
2、C
3、D
4、C
5、B
6、A1a=newA1();
7、Example.meth2();//调用meth2()
程序的输出结果是______a=10,b=30_________________
8、程序的运行结果是______静态构造函数!
构造函数!
构造函数!
_________________
9、终的输出结果是___
__
第5章面向对象高级应用
1、B
2、C
3、C
4、程序的运行结果是______基类派生类_____________
5、程序最终的输出结果是_areais6
第6章文件操作
1、B
2、D
3、A
4、C
5、使用BinaryReader和BinaryWriter类来实现二进制文件的读写。
6、File类是用于使用文件的静态类,在使用时不需要创建File类的实例,因此当对文件执行单步操作时通常使用该类。
调用File类的每个方法时都需要执行安全性检查,以确认用户被授予了对文件执行操作的权限。
FileInfo类是从FileSystemInfo类继承而来的实例类,因此需要创建FileInfo类的实例。
FileInfo类只有在实例化的时候进行一次用户安全性检查,因此若想要对文件执行多个操作,使用FileInfo类比使用File类的效率更高一些。
第7章异常处理
1、B
2、D
3、throw
4、try
5、先捕获特殊异常,再捕获普通异常。
6、try-catch:
执行流程:
进行try块,若程序没有错误,则执行完try块后执行catch块后的语句;若有错误,则中止try块后的语句的执行,跳到catch块内进行异常处理,执行完catch块内的语句后,执行catch块后的语句。
try-finally:
在执行时,若没有发生异常,try-finally语句将按正常方式执行,若在try块内有异常,则将在执行完finally块后抛出异常。
try-catch-finally执行的流程:
(1)执行try块内语句。
(2)若没有异常,则正常执行操作,当程序执行完try块后,进入finally块中执行语句;若出现异常,程序中止try块的语句,进入catch块。
(3)在catch块中进行异常处理,可以包含一个或多个catch块。
(4)在catch块执行完成后,自动转到finally块执行。
(5)执行完finally块,结束异常处理。
同样的,不管是否发生异常,finally块都会执行其中的代码,且在异常处理结构中最多只能有一个finally块。
7、模拟计算机器,输入两个操作数和一个操作符,根据操作符输出运算结果。
注意进行异常捕获。
classProgram
{
staticvoidMain(string[]args)
{
try
{
intx=Convert.ToInt32(Console.ReadLine());
inty=Convert.ToInt32(Console.ReadLine());
stringop=Console.ReadLine();
intresult=0;
switch(op)
{
case"+":
result=x+y;break;
case"-":
result=x-y;break;
case"*":
result=x*y;break;
case"/":
result=x/y;break;
}
Console.WriteLine(result);
}
catch(FormatException)
{
Console.WriteLine("输入的格式不符");
}
catch(DivideByZeroException)
{
Console.WriteLine("除数不能是0");
}
catch(Exceptionex)
{
Console.WriteLine(ex.Message);
}
finally
{
Console.ReadLine();
}
}
8、
第8章Windows应用程序开发
1.填空题
(1)_属性____、__事件____、__方法_____。
(2)__Checked____
(3)_PasswordChar__
(4)___Count____。
(5)__视图__(6)属性窗口的属性可以按____分类_____顺序和按字母顺序排列。
2.选择题
(1)A_
(2)_A__
(3)_A__
(4)D_
3.简答题
(1)窗体属性主要包括:
StartPosition、FormBorderStyle、MinimizeBox、MaximizeBox等。
窗体事件主要包括:
Load、MouseHover、KeyDown、MouseClick等。
控件主要包括:
Label的Text属性;TextBox的TextLength、MultiLine属性;Button的Click事件;RadioButton和CheckBox的Checked属性等。
(2)OpenFileDialog控件SaveFileDialog控件ColorDialog控件FontDialog控件PageSetupDialog控件PrintDialog控件PrintPreviewDialog控件
4.程序题
界面如下图所示:
代码如下所示:
doublec,c1,f,f1;
privatevoidbutton1_Click(objectsender,EventArgse)
{
if(textBox1.Text=="")
MessageBox.Show("请输入摄氏温度");
else
{
c=Convert.ToDouble(textBox1.Text);
c1=9.0/5.0*c+32;
textBox3.Text=c1.ToString();
}
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
if(textBox2.Text=="")
MessageBox.Show("请输入华氏温度");
else
{
f=Convert.ToDouble(textBox2.Text);
f1=5.0/9.0*(f-32);
textBox4.Text=f1.ToString();
}
}
第9章数据库应用开发
一、选择题
1、C
2、D
3、A
4、B
5、B
6、C
7、D
8、C
9、B
10、D
11、D
12、B
二、填空题
1、DataSet__
2、_DataReader_
3、___.netframework数据提供程序_和____DataSet_____
4、获取关联表中的所有子行。
____。
5、Expression_
6、UpdateCommand_
7、_Fill______方法,__Update______方法。
三、简答题
1、
(1)Connection对象:
用于创建与数据源的连接。
(2)Command对象:
用于对数据源执行操作并返回结果。
(3)DataReader对象:
是一个快速、只读、只向前的游标,用于以最快的速度检索并检查查询所返回的行。
(4)DataAdapter对象数据源和数据集之间的桥梁,用于实现填充数据集和更新数据源的作用。
(5)DataSet(数据集)是ADO.NET的另一核心组件,表示数据在本地的缓存,包含了Tables、Rows、Columns、Constraints和Relations集合等,用于断开式数据存储的所有数据结构的集合。
2、Open方法:
利用ConnectionString属性的信息连接数据源并打开该连接。
Close方法:
显式地关闭一个已经打开的连接。
好处:
能够使代码更加清晰、易读,并且有助于代码的调试
3、Close()方法:
关闭一个已经打开的连接。
Dispose()方法:
释放由连接对象所使用的资源。
当调用Dispose()方法时,它会自动调用Close()方法。
4、DataReader是一个只读的、只向前的流,通过该对象可以以只读的、只向前滚动的方式遍历结果集中的各个行和列。
使用命令对象的ExecuteReader方法可获取DataReader对象。
5、ExecuteScalar方法:
执行查询,用于执行只返回单个结果的命令。
ExecuteReader方法:
执行查询,该方法返回一个DataReader对象中。
ExecuteNonQuery方法可用于执行DDL(数据定义语言)语句、DCL(数据控制语言)语句和DML(数据操纵语言)语句,返回的是受影响的行数。
6、Remove方法从DataRowCollection中删除DataRow,而Delete方法将行标记为Deleted。
当将数据集的数据更新回数据源时,当遇到状态为Deleted的行时,会执行相应的命令删除数据源中的行;而使用Remove删除该行时,则该行从数据表中直接移除,当更新回数据源时,不会删除数据源中的行。
7、配置数据适配器的SelectCommand,使用Fill方法填充数据。
配置数据适配器的InsertCommand/UpdateCommand和DeleteCommand,调用Update方法更新数据源。
四、程序题
1、
//创建连接对象并打开连接
SqlConnectioncn=newSqlConnection();
cn.ConnectionString="datasource=.;initialcatalog=student;integratedsecurity=sspi";
cn.Open();
//创建命令对象并设置其属性
SqlCommandcmd=cn.CreateCommand();
cmd.CommandText="selectaverage(score)fromstudent";
cmd.CommandType=CommandType.Text;//可省略
//执行命令对象的方法
intcount=Convert.ToInt32(cmd.ExecuteScalar());
//显示结果
MessageBox.Show(count.ToString());
2、编写程序,删除数据表中指定列的信息。
//创建连接对象并打开连接
SqlConnectioncn=newSqlConnection();
cn.ConnectionString="datasource=.;initialcatalog=student;integratedsecurity=sspi";
cn.Open();
//创建命令对象并设置其属性
SqlCommandcmd=cn.CreateCommand();
cmd.CommandText="deletefromstudentwherestu_id='"+textBox1.Text+"'";
cmd.CommandType=CommandType.Text;//可省略
//执行方法
cmd.ExecuteNonQuery();
cn.Close();
MessageBox.Show("删除成功");
3、编写程序,使用数据适配器填充数据及更新数据源。
privatevoidbutton1_Click(objectsender,EventArgse)
{
cn=newSqlConnection("Datasource=.;initialcatalog=student;integratedsecurity=sspi");
da=newSqlDataAdapter("selectstu_id,name,sexfromstudent",cn);
ds=newDataSet();
da.Fill(ds,"student");
dataGridView1.DataSource=ds.Tables["student"];
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
//设置da的InsertCommand属性
SqlCommandcmdInsert=newSqlCommand();
cmdInsert.CommandText="insertintostudent(stu_id,name,sex)values(@stu_id,@name,@sex)";
cmdInsert.Connection=cn;
cmdInsert.Parameters.Add("@stu_id",SqlDbType.Char,10,"stu_id");
cmdInsert.Parameters.Add("@name",SqlDbType.Char,20,"name");
cmdInsert.Parameters.Add("@sex",SqlDbType.Char,4,"sex");
da.InsertCommand=cmdInsert;
//设置da的UpdateCommand属性
SqlCommandcmdUpdate=newSqlCommand();
cmdUpdate.Connection=cn;
cmdUpdate.CommandText="updatestudentsetname=@name,sex=@sexwherestu_id=@stu_id";
cmdUpdate.Parameters.Add("@stu_id",SqlDbType.Char,10,"stu_id");
cmdUpdate.Parameters.Add("@name",SqlDbType.Char,20,"name");
cmdUpdate.Parameters.Add("@sex",SqlDbType.Char,4,"sex");
da.UpdateCommand=cmdUpdate;
//设置da的InsertCommand属性
SqlCommandcmdDelete=newSqlCommand();
cmdDelete.Connection=cn;
cmdDelete.CommandText="deletefromstudentwherestu_id=@stu_id";
cmdDelete.Parameters.Add("@stu_id",SqlDbType.Char,10,"stu_id");
da.DeleteCommand=cmdDelete;
//调用Update方法
da.Update(ds,"student");
//另一种方法
//SqlCommandBuildercb=newSqlCommandBuilder(da);
//da.Update(ds,"student");
MessageBox.Show("更新成功");
}
第10章WEB应用程序开发
一、填空题
1、__TextMode为Password___
2、Groupname属性_。
3、_显示图片的路径_____________。
4、___超链接______,_超链接页面的地址____。
_控件上显示的内容__。
_显示图片的路径___。
5、__代码隐藏页模型___。
二、选择题
1、D
2、A
3、D
4、A
5、C
6、A