可视化程序设计掌握知识要点一.docx
《可视化程序设计掌握知识要点一.docx》由会员分享,可在线阅读,更多相关《可视化程序设计掌握知识要点一.docx(17页珍藏版)》请在冰豆网上搜索。
可视化程序设计掌握知识要点一
可视化程序设计掌握知识要点(期中)
一、基本概念
1.C#程序的组成:
每个应用程序叫一个解决方案,每个解决方案可以包含一个或多个项目。
目前我们只研究一个项目。
项目有两种:
控制台应用程序、windows应用程序
项目的层次结构:
每个项目内可以有若干个命名空间(namespace),目前我们只研究一个。
每个命名空间里面可以有很多称之为类(class)的东西,类有系统定义的类(如classForm1等),还可以有我们自己定义的类(如classstudent等)。
类(class)中有字段(如privatestringname),属性(如publicstringName),方法(如publicintmax(intx,inty){…})。
C#文件的护展名为.cs。
整个程序执行过程,都是从Main()方法开始.
2.控制台应用程序:
文字界面,基本上在主函数Main(){……}中写代码,可以自己定义函数(方法)
输入数据:
用方法Console.Read(),Console.ReadLine()
输出数据:
用方法Console.Write(…),Console.WriteLine(…)
输入的数据一般要进行相应的数据转换,如整数转换:
intx;
x=int.Parse(Console.ReadLine())
还可以用如下方法转换:
Convert.ToInt16(Console.ReadLine())等
3.windows应用程序
Windows应用程序至少由一个窗体组成,窗体中由种控件对象组成。
整个程序执行过程,都是从Main()方法开始,windows应用程序该方法位于Program.cs文件中,在该文件的staticvoidMain()方法中有一行语句
Application.Run(newForm1());
该语句决定了程序运行时,首先加载(运行)那一个窗体,如果是
Application.Run(newForm2());
则加载(运行)第二个窗体.
Windows程序窗体启动后,首先加载窗体,此时,执行什么方法?
(答:
privatevoidForm1_Load(objectsender,EventArgse){....}方法,其中Form1为窗体的名字(name))
关闭应用程序,用Application.Close()方法.
5.开发windows应用程序的一般步骤
(1)新建项目
(2)添加控件对象到窗体上
(3)设置控件的属性
(4)编写代码
代码一般常写在如下按钮对应的方法比较多
privatevoidbutton1_Click(objectsender,EventArgse)
{
//代码……
}
有时在程序运行时马上执行,则要写在如下方法中:
privatevoidForm1_Load(objectsender,EventArgse)
{
//代码……
}
二、基本语法
1.C#中的关键字:
如namespace,class,Main(),using等
2.变量命名规则,运算符+,-,*,/,%,++,--,?
,==,||,&&,,!
!
=,运算优先级
关系运算、逻辑运算.
特别要注意?
运算符,如:
z=x>y?
x*x:
y+6;
3.常量、变量、表达式:
任何变量,在使用之前必须先定义(声明)
常用数据类型:
int,float,double,char,string
字符串string类型几个常用的方法P57
数学表达式转成C#表达式,C#语句
注释语句/*…*/,c以及//的作用
在字符串中转义符”\”的作用
一行语句以分号“;”结束
但在if(...)
while(...)
等语句中不能立即有分号“;”如下面语句有错误:
if(x>y);
{z=x;…}
if(x=y)
{z=2x+y;……}
4.选择语句if…else,switch…case,break使用,这些结构在注意超过一个语句时,必须用大括号括起来.
5.三种循环语句for,while,do…while,foreach使用技巧,同样注意,这些结构在注意超过一个语句时,必须用大括号括起来.continue,break应用在循环中的应用区别.
注意判断一个数能被另一个数整除的判断方法if(n%m==0){……}
不能犯如下之类的错误
for(i=0;i<=9;i++);
{……}
while(x<10);
{……}
6.方法(函数)定义及执行过程
形参,实参的定义及调用
在函数声明时,用void声明时不需要返回语句,而不用void时必须用return的返回所求的值
7.窗体的常用属性name,Font,Text,Enable,BackColor设置,窗体常用方法:
Close(),Hide(),Show()的作用;
属性窗口的作用:
8.常用控件如:
TextBox,Button,Label,ListBox,ComboBox,PictureBox,ImageList,RadioButton,
CheckBox,GroupBox的属性name,Text,ForeColor及常用事件、方法使用
如文本框textBox1要设为密码如入时,只显示”*”,则应在其中的PassWordChar属性中填入“*”
如文本框textBox1要设为多行时,则应在其中的Multiline属性中选择true;
在图像框pictureBox1中,要求图像自动随像框大小调整是,应在其SizeMode属性中选择:
StrectchImageImage.
要把D盘Images文件的图形p1.jpg装入图像框pictureBox中,应该用语句:
pictureBox1.Image=Image.FromFile(“d:
\\Images\p1.jpg”);
要把文本框中的内容加入到列表框listBox1中,那么应该用什么语句呢?
……要删除列表框listBox1中选定的项,用什么语句?
....表求单选按钮radioButton1选中的语句是:
if(radioButton1.Check){....}或if(radioButton1.Check==true){...}
要把标签label1中的文本内容清空,用语句
label1.Text="";
9.计时控件Timer的属性Enable,Interval的作用,Timer的start()方法的使用.
10.数据转换函数Convert.To…运用以及x=int.Parse(textBox1.Text)等转换方式
11.常用函数,以及Math.Sqrt,Math.Abs,Math.Sin,Math.Cos函数
12.随机函数类Random对象使用的两个基本步骤:
(1)先定义,如Randomm=NewRandom();
(2)再产生一个随机数,然后赋值给某个变量,如
intz;
z=m.Next(1,9);
13.了解类的定义,类中字段,属性,方法定义,public,private的区别,构造函数有什么特点
14.掌握类定义了后,如何定义类中的变量(对象)及使用类中的成员(字段,属性,方法)
15.一维数组的定义及运用
16.二维数组的定义及使用
三.编程技巧
常用经典算法题目:
(一)下列题目是控制台球应用程序,未指明的量,如m,n,x,y,z均从键盘输入,从屏幕输出。
1.求和,如求
2.求积,如求
3.求出2-100内的所有素数
4.求100-1000内能被2及5整除,但不能被3除的数
5.如求s=1-1/2!
+1/3!
-1/4!
+……1/n!
6.求s=
7.用数组求一批数(一维数组用二维数组)中的最大值,最小值,平均值
8.用数组排序(用数组从小到大排列)
9.成绩分数与级别转换,求某个等级人数。
(二)下列题目是windows应用程序,未指明的变量,如m,n,x,y,z,r等,均从文本框textBox1,textBox2……等输入,未指明的输出,运行后点击相应的按钮后,均从标签label1,label2……输出。
1.判断m到n年中所有的润年
2.判断是否回文数(即一个数是顺数及倒过来数都一样的,如121,123321是,但1231不是)
3.输入三条边的值x,y,z,判断是否能组成三角型
4.输入三个数x,y,z,要求从小到大排列
5.分段函数求法:
输入x,
按公式输出
6.在窗体上输出如下图案:
1
222
33333
4444444
555555555
7.输入半径,要求输出圆的周长,面积,球的体积.
笔试考试题型:
有四选一,填空,写出运行结果,改错,完善程序,编程题
=====样题=====
一、选择题
1.C#中执行下列语句整形变量x和y的值是多少?
()
intx=100;
inty=++x;
A.x=100y=100
B.x=101y=100
C.x=100y=101
D.x=101y=101
正确答案:
D
2.下列关于构造函数的描述正确的是()
A.构造函数可以声明返回类型。
B.构造函数不可以用private修饰
C.构造函数必须与类名相同
D.构造函数不能带参数
正确答案:
C
3.哪个控件用来存储图象?
//A
A)PictureBoxB)RadioButtonC)CheckBoxD)GroupBox
4.关于C#程序的书写,下列不正确的说法是____。
//D
A.区分大小写
B.一行可以写多条语句
C.一条语句可写成多行
D.一个类中只能有一个Main()方法,因此多个类中可以有多个Main()方法
5.在C#语言中,下列能够作为变量名的是____。
//C
A.if
B.3ab
C.a_3b
D.a-bc
6.在C#语言中,下面的运算符中,优先级最高的是____。
//B
A.%
B.++
C./=
D.>>
7.能正确表示逻辑关系“a>=10或a<=0”的C#语言表达式是____。
//D
A.a>=10ora<=0
B.a>=10|a<=0
C.a>=10&&a<=0
D.a>=10||a<=0
8.以下程序的输出结果是____。
//C
Usingsystem;
ClassExample1
{
PublicStaticvoidmain()
{
inta=5,b=4,c=6,d;
Console.WriteLine("{0}",d=a>b?
(a>c?
a:
c):
b);
}
}
A.5 B.4 C.6 D.不确定
9.if语句后面的表达式应该是____。
//A
A.逻辑表达式,条件表达式
B.字符表达式
C.算术表达式
D.任意表达式
10.有如下程序
Usingsystem;
ClassExample1
{
publicstaticvoidMain()
{
intx=1,a=0,b=0;
switch(x)
{
case0:
b++;break;
case1:
a++;break;
case2:
a++;b++;break;
}
Console.WriteLine("a={0},b={1}",a,b);
}
的输出结果是()//C
A.a=2,b=1
B.a=1,b=1
C.a=1,b=0
D.a=2,b=2
11.以下程序的输出结果是:
()//C
ClassExample1
{
publicstaticvoidMain()
{
inti;
int[]a=newint[10];
for(i=9;i>=0;i--)
a[i]=10-i;
Console.WriteLine("{0},{1}{2}",a[2],a[5],a[8]);
}
}
A.258 B.741 C.852 D.369
12.下列的数组定义语句,不正确的是____。
//B
A.int[]a=newint[5]{1,2,3,4,5};
B.int[]a=newint[3]{1,2,3,4};
C.int[]a=newint[]{1,2,3,4,5,6};
D.int[]a={1,2,3,4};
13.以下所列的个方法头部中,正确的是____。
//C
A.voidplay(vara:
Integer,varb:
integer)
B.voidplay(inta,b)
C.voidplay(inta,intb)
D.Subplay(aasinteger,basinteger)
14.下列程序的输出结果是____。
//C
usingsystem;
classExample1
{
staticvoidsub(intx,inty)
{inta;
a=x*x+y*y;
}
publicstaticvoidMain()
{inta=30;
sub(5,2);
Console.WriteLine("{0}",a);
}
}
A.0 B.29 C.30 D.无定值
15.要使窗体刚运行时,显示在屏幕的中央,应设置窗体的_________属性。
//C
A.WindowsState
B.StartPostion
C.CenterScreen
D.CenterParenr
16.要使文本框控件能够显示多行而且能够自动换行,应设置它的_________属性。
//B
A.MaxLength和Multline
B.Multlineh和WordWrap
C.PassWordChar和Multline
D.MaxLength和WordWrap
17.假设变量x的值为25,要输出x+8的值,下列正确的语句是____。
//C
A.System.Console.writeline(“x+8”)
B.System.Console.WriteLine(“x+8”)
C.System.Console.writeline(“x={0}”,x+8)
D.System.Console.writeline(“x={x+8}”)
18.要退出应用程序的执行,应执行下列的____语句。
//A
A.Aapplication.Exit();
B.Aapplication.Exit;
C.Aapplication.Close();
D.Aapplication.Close;
19.C#中,新建一字符串变量str,并将字符串"Tom'sLivingRoom"保存到串变量str中,则应该使用下列哪条语句?
(A)
A.stringstr="Tom\'sLivingRoom";
B.stringstr="Tom'sLivingRoom";
C.stringstr("Tom'sLivingRoom");
D.stringstr("Tom"sLivingRoom");
二、填空题
1.c#中的三元运算符是____//?
:
2.下列程序的作用是求出所有的水仙花数。
(所谓水仙花数是指这样的数:
该数是三位数,其各位数字的立方和等于该数)
usingsystem;
classExample1
{
publicstaticvoidMain()
{
inta,i,b,c,t;
for(i=100;i<=_______;i++)//999
{
t=i;
a=t%10;t=t/10;b=t%10;c=t/10;
if(__________)//a*a*a+b*b*b+c*c*c==i
Console.WriteLine("i={0}",i);
}
}
}
3.WriteLine()方法和Write()方法的区别是( 换行 )。
4.定义方法时使用的参数是(形参 ),调用方法时使用的参数是( )。
5.下列方法的作用是求两个数的较大数,并把较大的数作为返回值,请填空
float max_v(______)//floata,floatb
{
floatmax;
max=a;
if(max
_________;//returnmax
}
6.要给属性对应的数据成员赋值,通常要使用set访问器,set访问器始终使用( )来设置属性的值。
// value
7.Timer控件的( )属性用来设置定时器Tick事件发生的时间间隔。
//interval
三、写出程序运行结果
1.在下面代码中,运行时在窗体上点击button1按钮后,写出label1.Text输出的值。
privatevoidbutton1_Click(objectsender,System.EventArgse)
{
intsum;
sum=0;
intk=1;
do
{
sum=sum+k;
k=k+1;
}while(k<=100);
label1.Text="值为:
"+sum.ToString();
}
2.在下面代码中,运行时在窗体上点击button1按钮后,写出label1.Text输出的值。
privatevoidbutton1_Click(objectsender,System.EventArgse)
{
intsum,sum1,i,j;
sum1=0;
i=1;
for(;i<=4;i++)
{
sum=1;
j=1;
while(j<=i)
{
sum=sum*j;
j++;
}
sum1=sum1+sum;
}
Label1.Text="值为:
"+sum1.ToString();
}
四、改错题
1.下列程序是求1-100中偶数的和,点击button1代码如下,在//********//下面一行的代码有错,请修改
privatevoidbutton1_Click(objectsender,EventArgse)
{
//*************1**************//
sum=0;//改为intsum=0;
intk=1;
do
{
//*************1**************//
if(k%2=0)//改为if(k%2==0)
sum=sum+k;
k=k+1;
}while(k<=100);
label1.Text="值为:
"+sum.ToString();
}
五、编程题
1、用控制台编写一段程序,运行时向用户提问“你考了多少分?
(0~100)”,接受输入后判断其等级并显示出来,全部代码放在Main()方法中。
判断依据如下:
等级={优(90~100分);良(80~89分);中(60~69分);差(0~59分);}
2.运行后点击button1,在label1中输出下列九九乘法表:
点击button1代码如下:
privatevoidbutton1_Click(objectsender,System.EventArgse)
{
}
3、windows应用程序编写一段程序,输入一个整数,写一个方法rollback将各位数字反转输出,从文本框TextBox1输入一个数,调用该方法后,点击按钮Button1,把结果从标签Label1中输出。
如输入:
12345
则输出:
54321
4.编写程序,求出10个数中奇数的个数和偶数的个数。
5.求出m到n之间的所有素数