当前位置:文档之家› c#程序设计复习资料

c#程序设计复习资料

c#程序设计复习资料
c#程序设计复习资料

C#程序设计基础知识

接口

接口是引用类型的,类似于类,和抽象类的相似之处有三点:

1、不能实例化;

2、包含未实现的方法声明;

3、派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员(不仅是方法包括其他成员);

另外,接口有如下特性:

接口除了可以包含方法之外,还可以包含属性、索引器、事件,而且这些成员都被定义为公有的。除此之外,不能包含任何其他的成员,例如:常量、域、构造函数、析构函数、静态成员。一个类可以直接继承多个接口,但只能直接继承一个类(包括抽象类)。

try

{

//执行的代码,其中可能有异常。一旦发现异常,则立即跳到catch执行。否则不会执行catch 里面的内容

}

catch

{

//除非try里面执行代码发生了异常,否则这里的代码不会执行

}

finally

{

//不管什么情况都会执行,包括try catch 里面用了return ,可以理解为只要执行了try或者catch,就一定会执行finally

}

1,委托

委托本质上是一种方法接口,它相当于c语言中的指针,比函数指针安全,在c#中用于事件的处理。

事件不是委托,在c#中处理事件的逻辑常包装为委托。

委托允许讲方法作为参数进行传递,可以用于定义回调方法,委托可以连接在一起。

https://www.doczj.com/doc/0f12304457.html,

https://www.doczj.com/doc/0f12304457.html,是一组用于和数据源进行交互的面向对象类库。通常情况下,数据源是数据库,但它同样也能够是文本文件、Excel表格或者XML文件。https://www.doczj.com/doc/0f12304457.html,允许和不同类型的数据源以及数据库进行交互。然而并没有与此相关的一系列类来完成这样的工作。因为不同的数据源采用不同的协议,所以对于不同的数据源必须采用相应的协议。一些老式的数据源使用ODBC协议,许多新的数据源使用OleDb协议,并且现在还不断出现更多的数据源,这些数据源都可以通过.NET的https://www.doczj.com/doc/0f12304457.html,类库来进行连接。

简单的说,这是说怎么样和数据库交互(增删改查),

https://www.doczj.com/doc/0f12304457.html,五个主要对象

connection 连接对象,

command 执行命令和存储过程,

datareader 可从数据源提供高性能的数据流

dataadapter 适配器,支持增删查询,

dataset 数据及对象相当于内存里的多张表

NEW关键字用法

1,new运算符用于创建对象和调用构造函数

2,new修饰符用于想积累成员影藏集成成员

类与接口的异同

1,接口不能实例化

2,借口不包含方法的实现

3,类只能从一个基类集成实现

1,类与接口可以继承与多个接口

2,接口类似于抽象基类

3,接口可以包含事件索引器,方法和属性

第3章C#程序设计基础

数据类型

C# 中有两种类型:值类型、和引用类型

值类型的变量直接存储数据如:整形等

引用类型的变量存储数据的引用如:对象。

对于引用类型,两个变量可能引用同一个对象,因此对一个变量的操作可能影响另一个变量所引用的对象

如:

class Program

{

static void Main(string[] args)

{

A a, a1, a2;

a = new A();

a1 = a;

a2 = a;

a1.n = 33;

Console.Write(a2.n.ToString());

Console.Read();

}

}

class A

{

public int n = 0;

}

对于值类型,每个变量都有它们自己的数据存储空间,因此对一个变量的操作不可能影响另一个变量。

C# 的值类型进一步划分为简单类型、枚举类型和结构类型

C# 的引用类型进一步划分为类类型、接口类型、数组类型、和委托类型。

注:变量必须指定数据类型

数据类型

C# 中,任何类型值都可以按对象处理

值类型的值则通过执行装箱和拆箱操作按对象处理。

实现方法:C# 中的每个类型直接或间接地从object 类型派生。引用类型的值都被当作object来处理。

对于值类型,可以将int 值转换为object,处理之后在转换回int。

class Test

{

static void Main()

{

int i = 123;

object o = i; // Boxing

int j = (int)o; // Unboxing

}

}

数据类型

基本整型(int )

短整型(short)

整形长整型(long)

单字节整形(byte)

字符型(char)

简单类型单精度型(float)

实型

值类型双精度型(double)

布尔型(bool)

小数类型(decimal )

结构类型

枚举类型

整数类型

整型定义:就是变量的值为整数的类型

计算机语言中的整数跟数学上的整数定义有点差别,计算机语言中的整数有取值范围。

整数类型分类:

短字节型(Sbyte)、字节型(Byte)

短整型(Short)、无符号短整型(Ushort)

整型(Int)、无符号整型(Uint)、

长整型(Long)、无符号长整型(Ulong)。

注:

变量名称前面的“u”是“Unsigned”的缩写,不能在这些类型的变量中存储负号。

以上这些不同的整数类型可以用于存储不同范围的数值,占用不同的内存空间。

常量类型:

可以用数值加上后缀方法指定常量类型:

u后缀:uint 或者ulong类型

l后缀:long 或者ulong类型

ul后缀:ulong类型

f后缀:float类型

d后缀:double类型

m后缀:decimal类型

例如;12m

布尔型和字符类型

布尔型

类型说明符:bool

布尔类型值,True 与False 。如:

static void Main(string[] args)

{

bool b = true;

if (b)

{

Console.Write(b.ToString());

Console.Read();

}

}

字符类型

字符类型包括数字字符,英文字母、表达符号等

字符类型按照国际上公认的标准,采用Unicode字符集

字符类型

Unicode 是16位字符,占两个字节,以无符号16位整形存储,共65535个;可表示世界上已知多数的书面语言;

前128个与ASCII重叠。128-255表示拉丁字母,重音符号、货币符号等字符型变量定义

char mychar =‘x’;

Char mychar=(char)88;

Int char 需要强制转换

Char int,float,decimal 可以隐式转换

double n='3';

字符类型

\n 换行

\t 横向跳格

\v 竖向跳格

\b 退格

\r 回车

\f 走纸换页

\\ 反斜杠字符

\‘单引号

\“双引号

字符类型

字符型变量赋值方法

直接赋值:char ch=‘a’;

转义字符:char ch=‘\x61’;

强制转换:char ch=(char)97;

unicode码: char ch=‘\u0061’;

实数类型

实数类型分类

单精度(Float)

双精度(Double)

Decimal

选取原则:

对精度要求不高的计算中采用单精度型

而采用双精度的结果将更为精确

Decimal类型主要用于金融和货币的计算,精度更高

小数类型

c#提供了decimal类型,精度为28-29位有效数字,他没有无符号形式。

在精度很重要的场合,可以选择该类型。

浮点型和小数类型之间不能进行隐式转换,在一个表达式中不能同时用这两种类型。注:小数常数后必须跟着一个m或M

字符串

C#支持string类型。

C#把字符串当成对象,封装了所有字符串所拥有的操作、排序和搜索方法。

定义字符串方法

string s = "abcdef";

字符串

字符串中可以包含转义字符

如“\n”或“\t”

在字符串中使用反斜杠,必须在其前面再加一个反斜线。

(反斜线本身在目录路径中会用到)

如下面代码所示:

string directory = "C:\\text";

字符串

string类型变量可以看作是char变量的只读数组

可以使用下面的语法访问每个字符:

string myString = "abcdef";

char myChar= myString[1];

同时,我们还可以使用ToCharArray() 函数,把string类型的变量转存到字符数组里面。class Program

{

static void Main(string[] args)

{

string s = "abcdef";

char[] myChar = s.ToCharArray();

Console.WriteLine(“myChar输出如下:");

foreach(char c in myChar)

Console.WriteLine("{0}",c);

Console.ReadLine();

}

}

字符串

字符串的串接: 使用“+”符号

string city = "南京市";

string street = "新街口";

string address = city + street;

Console.WriteLine(“地址是:”+address);

输出结果:“地址是:南京市新街口”。

String类有很多方法和属性

常见的有:Length 属性、ToUpper/ToLower 方法、IndexOf 方法、SubString 方法等。字符串

Length属性

string str2=”you are welcome!”;

int n=str2.Length;

那么n就得到str2字符串的长度

ToUpper()方法

把字符串中所有的字母都变成大写

ToLower()方法

把字符串中所有的字母都变成小写

字符串

IndexOf()方法

从字符串找出第一次出现某子字符串的位置

string str1=”you are welcome”;

int n=str1.IndexOf(“are”);

那么n的值为4;

SubString ()方法

从字符串的n1个字符开始,长度为n2的子串

str1.SubString(n1,n2);

例题

static void Main(string[] args)

{

string s = "hello";

char[] ch = new char[] {'a','b' };

string ss = new string(ch);

StringBuilder stbd = new StringBuilder();

stbd.Append(s);

stbd.Append(ss);

stbd.Replace("ll", "kk", 5, 2);

s = stbd.ToString();

stbd.Remove(0, stbd.Length);

Console.Write(stbd);

Console.Read();

}

变量

什么是变量

值可以改变的量。

变量代表了存储单元,每个变量都有一个数据类型。

变量名的命名规则

第一个字符必须是字母、下划线、或@

后面的字符必须是字母、数字、下划线。

如:myInt _test @n #n 9n

变量赋值

定义时赋值

用赋值语句赋值

注意:变量名区分大小写,

变量必须先定义后使用。

变量名不能和保留字重复

变量

变量的声明

[修饰符] 数据类型变量1,变量2,…变量n;

访问修饰符:public,private,protected等

数据类型可以是值类型,引用类型等

例:private int n;

int a, b , c;double @d;

变量赋初值,

例:

double d1=2.4,d2=3.5; string @str = "33.3";

string str2 = "d:\\temp\\a.txt“;

string str3 = @"d:\temp\a.txt";

Console.Write(str3);

常量

常量:值在整个生命周期内始终不变的量

不可以对常量赋值

常量声明:

[修饰符] const 数据类型变量1,变量2,…变量n;

例如:

private const double PI=3.1415926;

定义常量时,表达式中只能是常量和常数private const double PI=3.1415926*n;

运算符与表达式

运算符

用于执行某种计算的字符的组合。

按操作数分类

单目、双目和三目运算符。

按功能分类

算术运算符

赋值运算符

关系运算符

逻辑运算符

位运算符

布尔赋值运算符

算术运算符

运算符

++ 整数、浮点数、char var1 = ++var2; var1的值是var2 + 1,var2递增1

––整数、浮点数、char var1 = ––var2; var1的值是var2 –1,var2 递减1

++ 整数、浮点数、char var1 = var2++; var1的值是var2,var2递增1

––整数、浮点数、char var1 = var2––; var1的值是var2,var2 递减1 + 整数、浮点数var1 = +var2; var1的值等于var2的值

–整数、浮点数var1 =–var2; var1的值等于var2的值除乘以–1

算术运算符

加法运算符

用于整型、实型、枚举型、字符串型和代表型

例:

乘法运算符、除法运算符

只适用于整数以及实数之间的操作;

除法运算符默认的返回值类型与精度最高的操作数类型相同。

比如,5/2的结果是2,而5.0/2的结果是2.5。

取余运算符

求模运算既适用于整数类型,也同样适用于浮点型。

如7%3的结果为1,7%1.5的结果为1。

赋值运算符不用看

赋值运算符分为:简单赋值运算符复合赋值运算符

如下表所示:

简单赋值运算符

“=”就是赋值运算符。格式:变量=表达式

例:a=33;

在运算中表达式值的类型必须和变量类型一致或可以隐式转换成变量所属类型

复合的赋值运算符

关系运算符了解

C#共支持6种关系运算符

移位运算符

类型转换简单了解conver int , convert ToDouble .convert ToInt

隐t式转换

由编译器自动进行的类型转换

如:char cVar = ‘a’;

ushort usVar;

usVar = cVar;

显式转换

又叫强制类型转换,需要明确指出转换的类型。

转换过程中可能出现精度降低、异常等情况。

如;int n=10;

double d = 33.333;

n = (int)d;

使用Convert命令进行显式转换了解

可以实现各种数据类型之间的强制类型转换

如:

static void Main(string[] args)

{

string str = "33.3a";

double d = Convert.ToDouble(str)+3;

Console.Write(d);

Console.Read();

}

条件分支

有条件地执行代码。条件满足就执行代码。

循环

重复执行相同的语句。重复执行一定的次数,或者在满足测试条件后停止执行。

跳转

条件语句掌握

条件语句依据一个布尔表达式的值从一系列可能被执行的语句选择出要执行的语句。包括:

if语句

switch语句

条件语句

If语句有3种基本形式:

单条选择、如果/否则、多项选择情形选择。

1.单选If语句

基本语法如下:

if(boolean expression)

{

……;

}

执行过程

条件语句if语句1考

示例程序如下:

static void Main()

{

int a,b;

string c;

Console.Write(“输入一个数值:”);

c= Console.ReadLine();

a=int.Parse(c);

b=30;

if(a>10)

Console.WriteLine(“a+b={0}+{1}={2}”, a, b , a+b); }

条件语句

2.如果/否则If语句

基本语法如下:

if(boolean expression)

{

表达式A;

}

else

{

表达式B;

}

执行过程

条件语句if语句2

public static void Main()

{

double a, b, x;

Console.Write(“输入一个数值:”);

a=double.Parse(Console.ReadLine());

Console.Write(“再输入一个数值:”);

b=double.Parse(Console.ReadLine());

if (a>b)

x=a;

else

x=b;

Console.WriteLine(“the max is: {0} ”, x);

}

循环语句

循环语句功能:

反复执行某一语句块,实现循环结构

C#提供了四种循环语句

for语句

foreach语句

while语句

do语句

循环语句for循环看着办

for语句执行过程

1、求解表达式1

2、求解条件表达式2

3、表达式2的值是真则执行循环体以及语句3,否则推出循环

For循环

main( )

{

int i,sum=0;

for(i=1;i<=100;i++)

sum=sum+i;

for(i=100;i>=0;i--)

sum=sum+i;

}

For循环会用

for语句的变形:

1、表达式1或表达式3省略,但分号“;”不能省略。

i=1; for(;i<=100;i++) sum=sum+i;或者

for(i=1;i<=100;) {sum=sum+i;i++;}

2、表达式2也可也省略,但很少这样做,必须在循环语句中加上结束条件。for(i=1;;i++)

{sum=sum+i;

if(i>100) break;}

3、for语句中三个表达式的类型不限

{int i,sum;

for (sum=1,i=1;i<=100;sum+=i,i++);

foreach语句功能:

1、依次从集合C中取出一个元素,放在变量v中

2、每取出一个元素后执行一次循环体

3、直到所有元素都使用一遍

格式:

foreach ( 变量类型v 迭代变量in 集合表达式C)

{

循环体语句块

}

Foreach循环

1、变量类型要和数组的类型一致,且必须声明后使用;

2、数组内元素的个数决定循环内程序段重复执行的次数;

3、每次进入循环,会依次将数组元素内容指定给变量,当所有元素都读完后,系统就会离开Foreach循环。

Foreach循环

例使用Foreach循环语句输出一个数组的所有元素值。

class Program

{

static void Main(string[] args)

{

int index = 1;

string[] myArray = new string[6]

{ "Pirlo", "Ronaldo", "Beckham", "Kaka", "Owen", "Henry" };

foreach (string arr in myArray)

{

Console.WriteLine("第{0}个球员的名字是:{1}",index++,arr);

}

Console.ReadLine();

}

}

循环语句while循环

While语句功能:

依据条件表达式的值有条件的执行循环体。

其格式如下:

while (条件表达式)

{循环体}

while语句是按下面方式执行的:

1、计算布尔表达式值

2、如果表达式值为真,程序执行嵌套语句。当执行到嵌套语句结尾,将从新回到while语句的开头。

3、如果布尔表达式值为假,程序跳转到while语句的结尾。

例:求1+2+3+……+100的值

main( )

{int i,sum=0; i=1;

while (i<=100)

{sum=sum+i;

i++;

}

}

第4章C#高级程序设计

复杂的变量类型(枚举、结构、数组)

数组含义

具有相同数据类型的有序数据的集合

数组的声明:

类型说明符[ ] name;

数组元素访问:name[N];

数组初始化;

1、指定数组的完整内容,如:int[] a = {0, 2, 4, 6};

它是下列方式简写:int[] a = new int[] {0, 2, 4, 6};

2、指定数组大小后再初始化:

int[] i =new int[5];

i[0] = 33; i[1] = 22;

数组的三个特征:有序,固定长度,相同数据类型

用foreach循环遍历数组元素:

static void Main(string[] args)

{

string[] str=new string[3]{"how"," are"," you"};

foreach(string s in str)

Console.Write(s);

Console.Read();

}

功能是每执行一次循环遍历数组中的一个元素,

数组

多维数组就是秩大于1的数组。

函数:也叫方法

功能:

提高代码的可读性,

代码被拆分到不同的函数中,使程序的主体非常简短

为程序的重用提供可能

函数签名:

函数的签名由函数的参数、函数名及返回值类型组成

定义和使用函数

例题p88编写一个函数用来求解数组元素中的最大值

返回值了解

作用:

数据交换

和变量一样函数返回值也有数据类型

如:int max(int x,int y)

{

if(x>y)

return x;

else

return y;

}

函数的返回值是整型

函数参数:了解

必须在声明的时候指定参数名,以及参数的类型:

类型名函数名(类型名参数名, ...)

{...

return 变量;

}

如上例

参数用逗号分隔开

每个参数都可以当作一个变量使用。

函数的参数

参数匹配

形参要和实参匹配

包括参数的类型、个数和顺序都要匹配

上面的例子中调用max函数:

Int nMax;

nMax=max(3,6);

例题

变量按作用域可以分为全局变量和局部变量

数据传递方法:

通过全局变量、参数、函数返回值在函数之间传递数据。

例题:p101、102

注意:

全局变量在多个函数中有效,在其作用域的每个函数中都可以使其值发生更改。所以增加了不确定性。

全局变量的使用原则

尽量用局部变量

函数签名

在C#中,函数通过签名来标识它们,包括函数名、参数以及参数的数据类型。通过函数的签名区分函数

函数重载

由于编译器通过函数签名而不是函数名来区分不同的函数,所以,可以在类中声明名称相同参数列表不同的函数。这种函数称为重载。

例题static void Main(string[] args)

{ double x = 33d, y = 44d;

float X = 33.3f, Y = 44.4f;

Console.WriteLine(max(X,Y));

Console.WriteLine(max(x, y));

Console.Read(); }

static float max(float x, float y)

{ float z=0f;

if (x > y) z = x;

else z = y;

return z; }

static double max(double x, double y)

{ double z = 0f;

if (x > y) z = x;

else z = y;

return z; }

第5章面向对象编程基础

面向对象设计思想

在客观世界中,可以把具有相似特征的事物归为一类,也就是把具有相同属性的对象看成一个类(class)。

比如

所有的汽车可以归成一个“汽车类”

所有的人可以归成一个“人类”。

在面向对象的程序设计中,“类”就是对具有相同属性和相同操作的一组对象的定义。特征:

它尽可能地模拟人类思维方式

使开发软件的方法和过程尽可能地接近人类认识世界、解决问题的方法。

优点:

采用面向对象的程序设计技术开发的软件系统,稳定性、可重用性和可维护性都很好属性

一般用数据成员表达,操作用函数成员来表达和实现。

对象

是类的一个实例。

OOP相关的概念

类和对象

静态成员

对象的生命周期

继承

多态性

对象之间的关系

运算符重载

类和对象

类的含义:类是面向对象程序设计的基本构成模块。是一种数据结构,这种数据结构包含数据成员、函数成员以及其它元素。

数据成员类型有常量、字段和事件

函数成员类型有方法、属性、索引指示器、操作符、构造函数和析构函数

类的定义方法和结构定义类似。

对象

对象是通过类来定义,就像定义变量一样。对象的类型就是类

类的声明(大题)

C#中类的一般定义形式如下所示:

[修饰符] class [类名]

{

//类的成员

}

例如:

class Program

{

static void Main(string[] args)

{

A a = new A();

a.f();

Console.Read();

}

}

class A

{

public void f()

{

Console.Write("hello");

}

}

abstract修饰符

abstract用来声明类为抽象类

抽象类与非抽象类相比有如下不同点:

抽象类不能被实例化。但可以定义变量,

变量的数值必须为null或者是抽象类派生的非抽象类的实例。

抽象类可以(但是不需要)包含抽象成员。

抽象类不能是密封的。

class Program

{

static void Main(string[] args)

{

A.f();

Console.Read();

}

}

abstract class A

{

public static void f()

{

Console.Write("hello");

}

}

成员修饰符

const——应用于字段成员或局部变量

event ——定义一个域成员或属性为事件

extern——方法由外部实现

override——用于改写任何基类中被定义为virtual的方法

readonly——使用readonly修饰符的域成员只能在它的声明中被更改

static——被声明为static的成员属于类,而不属于类的实例

virtual——说明成员可以被继承类改写。

存取修饰符知道意思

public——任何地方都可以访问该成员,这是具有最少限制的存取修饰符。protected——在类及所有的派生类中可以访问该成员,不允许其他类访问。private——仅仅在同一个类的内部才能访问该成员。甚至派生类都不能访问它。internal——允许相同组件(应用程序或库)的所有代码访问。在.NET组件级别,你可以把它视为public,而在外部则为private。

类的主体

用于定义类的成员,并用一对{}括起来。

类的成员可以分为下面的几种:

构造函数:又可分为实例构造函数和静态构造函数,前者对类的实例进行初始化;后者对类

本身初始化。

析构函数:执行在类的实例要被解析掉前要实现的动作,释放对象占用的资源。

字段:包括与类相关的常数数据和变量。

方法:实现了可以被类实现的计算和行为。

属性:命名的属性和对这个属性进行读写的操作。

事件:定义了由类产生的公告。

索引:它允许类的实例与数组相同的方法来索引。

操作符:可以被应用于类的实例上的操作符。

构造函数和析构函数简单了解,不出大题

填空了解主要的基本的

构造函数是一个特殊的函数,体现在以下2方面:

函数名、调用时间点

构造函数和类同名,用来完成实例的初始化工作,它在创建实例时自动被调用。

如果一个类不包含任何构造函数声明,就会自动提供一个默认的构造函数。默认的构造函数通常是下面的形式

public MyClass(): base() { }

默认构造函数通过base()调用直接基类的无参数构造函数

构造函数和析构函数看一眼

例:

Class TestClass

{

public TestClass( )

{

}

}

构造函数X

构造函数也可以带有访问关键字,前面定义的构造函数都是公有的,但是private和protected 的构造函数也有各自的作用

类可以有一个静态构造函数,它只能被运行时代码所使用,而且不能带有访问修饰符

常量

其值在运行过程中不能改变的量即是常量。

格式:

修饰符const 类型说明符常量名;

访问修饰符

public ,protected ,private , internal

变量分类

类的成员变量前加上static修饰符就构成了静态变量,否则是实例变量。

特征

静态变量类定义后就存在,不论类被实例化多少个对象,只有一个副本。不能在对象中被引用。

实例变量只有在创建了对象后才存在。每创建一个对象,就创建一个新的实例变量。各实例

变量的值可以不同,且互不影响。只有在实例化对象之后变量才能够使用。

类的继承仔细看必出大题小题

继承含义

类可以从其他类中继承方法和属性。

实现方法

在声明类时,名称后放置一个冒号,然后在冒号后指定要继承的类(即基类)

例如:

public class A

{

public A() { }

}

public class B : A

{

public B() { }

}

类的继承

继承的作用;

类用来抽象描述自然界,那么被表述的对象一般具有层次结构关系,类也自然应该有一定的层次关系

类的继承

优点

类的继承可简化程序,提高代码的重用性。

新定义的派生类实例可以继承已有基类的方法、属性,而且可以加入新的成员,这样就建立起类的层次关系。

比如:

上面的例子中,想定义轿车类,就可以继承汽车类,继承其中的方法和属性,再定义自己的方法和属性。

类的继承

常用术语

基类:被继承的类,也叫父类

派生类:通过继承基类而创建的新类,也叫子类

单继承:派生类只有一个父类。

多继承:派生类有多个父类。

继承机制的特征

派生类隐式包含直接父类的除构造函数和析构函数的所有成员

继承具有传递性

派生类可以在基类基础上添加自己的成员

对派生类实例的引用可以看成是对基类的引用

可以通过定义与继承的基类同名的成员来隐藏基类同名成员。

类的继承

派生类的构造和析构

C语言程序设计第三版习题库答案

C 语言程序设计(第三版)习题库 1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include<> main(){ floatr,h,C1,Sa,Sb,Va,Vb; scanf(__”%f ”__,&r); scanf(”%d ”,__&h _);; C1=2**r; Sa=*r*r; Sb=4*Sa; Va=4**r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb ); } 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include<> main(){ floatF,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c); } 3、有一函数:?? ???≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。 #include<> main(){ intx,y; printf("输入x :"); scanf("%d",&x); if(x<1){/*x<1*/ y=x; printf("x=%3d,y=x=%d\n",x,y);

}elseif(____x<10_______){/*1≤x-10*/ _____y=2*x-1_______; printf("x=%3d,y=2*x-1=%d\n",x,y); }else{/*x≥10*/ y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d\n",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }scanf("%d",&x);

Java程序设计实例教程考试题

Java程序设计练习题 一、选择题 1、为使Java程序独立于平台,Java虚拟机把字节码与各个操作系统及硬件( A ) A)分开B)结合 C)联系D)融合 2、Java语言与C++语言相比,最突出的特点是( C ) A)面向对象B)高性能 C)跨平台D)有类库 3、下列Java源程序结构中前三种语句的次序,正确的是(D) A)import,package,public class B)import必为首,其他不限 C)public class,package,import D),import,public class 4、在JDK目录中,Java程序运行环境的根目录是( A ) A)bin B)demo C)lib D)jre 5、下列运算符中属于关系运算符的是(A ) A)== B).= C)+= D)-= 6、下列布尔变量定义中,正确并且规范的是( B ) A)BOOLEAN canceled=false; B)boolean canceled=false; C)boolean CANCELED=false; D)boolean canceled=FALSE; 7、下列关键字中可以表示常量的是( A ) A)final B)default C)private D)transient 8、下列运算符中,优先级最高的是( A ) A)++ B)+ C)* D)> 9、Java中的基本数据类型int在不同的操作系统平台的字长是( B ) A)不同的B)32位 C)64位D)16位

10、给一个short类型变量赋值的范围是( C ) A)-128 至 +127 B)-2147483648至 +2147483647 C)-32768至 +32767 D)-1000至 +1000 11、下列运算中属于跳转语句的是( D ) A)try B)catch C)finally D)break 12、switch语句中表达式(expression)的值不允许用的类型是( C ) A)byte B)int C)boolean D)char 13、下列语句中,可以作为无限循环语句的是( A ) A)for(;;) {} B)for(int i=0; i<10000;i++) {} C)while(false) {} D)do {} while(false) 14、下列语句中执行跳转功能的语句是( C ) A)for语句B)while语句 C)continue语句D)switch语句 15、下列表达式中,类型可以作为int型的是( C ) A)“abc”+”efg”B)“abc”+’efg’ C)‘a’+’b’D)3+”4” 17、数组中各个元素的数据类型是( A ) A)相同的B)不同的 C)部分相同的D)任意的 18、在Java语言中,被成为内存分配的运算符是( A ) A)new B)instance of C)[] D)() 19、接口中,除了抽象方法之外,还可以含有( B ) A)变量B)常量 C)成员方法D)构造方法 20、下列能表示字符串s1长度的是( A ) A)s1.length()B)s1.length C)s1.size D)s1.size() 21、StringBuffer类字符串对象的长度是( C ) A)固定B)必须小于16个字符 C)可变D)必须大于16个字符 22、构造方法名必须与______相同,它没有返回值,用户不能直接调用它,只能通过new调用。( A ) A)类名B)对象名 C)包名D)变量名 23、子类继承了父类的方法和状态,在子类中可以进行的操作是( D ) A)更换父类方法B)减少父类方法 C)减少父类变量D)添加方法 24、String、StingBuffer都是______类,都不能被继承。( C )

c语言程序设计期末试题A(含答案)

c语言程序设计期末试题A(含答案) 一、单项选择题(选择一个最佳答案,每题2分,共20分) 1. 一个C程序的执行是从(A )。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序的main函数开始,到本程序文件的最后一个函数结束 D) 本程序文件的第一个函数开始,到本程序main函数结束 2. 下列选项中,不能用作标识符的是(D )。 A) _1234_ B) _1_2 C) int_2_ D) 2_int_ 3. 以下定义语句中正确的是( C)。 A) char a='A'b='B'; B) float a=b=10.0; C) int a=10,*b=&a; D) float *a,b=&a; 4. 设有以下定义:#define d 2 int a=0; double b=1.25; char c=’A’; 则下面语句中错误的是(B)。 A) a++; B) b++ C) c++; D) d++; 5. 以下4个选项中,不能作为一条C语句的是(D)。 A) {;} B) a=0,b=0,c=0; C) if(a>0); D) if(b==0) m=1;n=2; 6. 有以下定义语句double a,b; int w; long c; 若各变量已正确赋值,则下列选项中正确的表达式是( C)。 页脚内容1

A) a=a+b=b++ B) w%(int)a+b) C) (c+w)%(int)a D) w=a==b; 7. 设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是(D)。 A) p=1; B) *q=2; C) q=p; D) *p=5; 选D. A.p是一个指针,不能给它赋一个整型的值1 B.*q仍然是一个指针,*q就是p.所以也不能给它赋一个整型的值. C.q=p;q是个二级指针,p是一级指针,不能把一级指针赋给二级指针. *p=5,即给n赋值为5,正确. 8. 设有定义:int a,*pa=&a; 以下scanf语句中能正确为变量a读入数据的是( A)。 A) scanf(“%d”,pa) ; B) scanf(“%d”,a) ; C) scanf(“%d”,&pa) ; D) scanf(“%d”,*pa); 9. 若有说明:char *language[]={”FORTRAN”,”BASIC”,”PASCAL”,”JAVA”,”C”};则表达式 *language[1]>*language[2]比较的是(A)。 A)字符B和字符P B) 字符串FORTRAN和字符串BASIC C)字符F和字符B D) 字符串BASIC和字符串PASCAL 10. 执行语句for(i=1;i++<4;);后变量i的值是(C )。 A) 3 B)4 C) 5 D) 不定 一、填空题(每空2分,共18分) 1. 若有定义:int a=7;float x= 2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值为2.5。 页脚内容2

C语言程序设计程序填空题库及答案

程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); }

【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p

Java语言程序设计基础教程习题解答

《Java语言程序设计基础教程》练习思考题参考答案

第1章 Java程序设计概述 练习思考题 1、 Java运行平台包括三个版本,请选择正确的三项:() A. J2EE B. J2ME C. J2SE D. J2E 解答:A,B,C 2、 Java JDK中反编译工具是:() A. javac B. java C. jdb D. javap 解答:D 3、 public static void main方法的参数描述是:() A. String args[] B. String[] args C. Strings args[] D. String args 解答:A,B 4、在Java中,关于CLASSPATH环境变量的说法不正确的是:() A. CLASSPATH一旦设置之后不可修改,但可以将目录添加到该环境变量中。 B. 编译器用它来搜索各自的类文件。 C. CLASSPATH是一个目录列表。 D. 解释器用它来搜索各自的类文件。 解答:A 5、编译Java Application源文件将产生相应的字节码文件,扩展名为() A. .java B. .class C. .html D. .exe 解答:B 6、开发与运行Java程序需要经过的三个主要步骤为____________、____________和____________。 7、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是______类的子类并且存储该源程序文件的文件名为______。 8、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器编译该源程序文件将产生______个文件名与类名相同而扩展名为______的字节码文件。 9、开发与运行Java程序需要经过哪些主要步骤和过程? 10、Java程序是由什么组成的?一个程序中必须要有public类吗?Java源文件的命名规则是怎么样的? 11、编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:“你好,很高兴学习Java”和“We are students”。

C语言程序设计期末考试选择题题库

第一章1、一个C程序可能出现的错误有(A)A,以上都包括 B,逻辑错误 C,运行错误 D,语法错误 2、C程序中一般可以包含几个函数(D) A.1个 B.多个 C.0个 D.至少一个 3.C语言属于程序设计语言的哪个类别(B) A.机器语言 B.高级语言 C.面向对象语言 D.汇编语言 4.以下关于C语言描述错误的是(B) A.一个C程序总是从main函数开始执行 B.一个C程序可以包含多个main函数 C.每个语句的最后必须有一个分号 D.C语言的注释符是以"/*"开始并以"*/"结束

5、在调试过程中,逻辑错误是指(C) A.所书写的语句,不符合C的语法。 B.在从obj生成exe文件的过程中,如果函数名书写错误,可能产生的错误。 C.程序的运行结果不符合题目要求。 D.在exe文件的执行过程中,产生运行异常。 第二章 1、16位的二进制数可以表示的整数的范围是(C) A.[-32768,32768] B.[-32767,32768] C.[-32768,32767] D.[-32767,32767] 2、C语言中的实型数据包括(A) A.float和double B.int和float C.float和char D.int和double 3、以下不合法的字符常量是(C) A.'2' B.'A' C.'ab'

4、在以下各组标识符中,均是合法的C语言标识符是(A) A.abc,A_4d,_student,xyz_abc B.auto,12-a,a_b,ab5.x C.A_4d,_student,xyz_abc,if D.abc,a_b,union,scan 5、若有定义:chara;intb;floatc;doubled; 则表达式a*b+d-c值的类型为(A) A.char B.float C.double D.int 6、类型修饰符unsigned不能修饰(D) A.char B.longint C.int D.float 7、若有定义:doublex=1,y; 执行语句,则y的值是(B) A,1 B,2.0

C语言程序设计 复习题库

一、填空 1. break 语句通常用于switch // 循环中。 2. C 语言对数组下标的引用一般从0 开始。 3. C 语言中,一个函数一般由两个部分组成,它们是函数首部和函数体。 4. C 标准库函数中,字符串的处理函数包含在string.h 头文件中,数学函数包含在 math.h 头文件中。 5. C 程序的运行需要经过编译和链接两步进行。 6. C 程序中用/**/ 括起来的内容是程序的注释语句。 7. C 语言函数是由函数首部和函数体两部分组成。其中,函数首部包括函数类型、函数 名和函数参数。 8. C 语言提供的三种逻辑运算符是& ,// ,!。 9. C 语言源程序经过编译后,生成文件的后缀名是.c 。 10. C 语言源程序经过连接后,生成文件的后缀名是.exe 。 11. C 语言中,关系表达式和逻辑表达式的值是1//0 。 12. C 语言中的标识符只能由三种字符组成,他们是字母,数字,下划线。 13. C 语言中的每条基本语句以;作为结束符,每条复合语句以} 作为结束符。 14. C 语言中函数返回值的类型是由函数类型决定的。 15. C 源程序的基本单位是函数。 16. int a = 2, b = 3; 表达式 a > b ? a ++ : ++ b 的值为 4 。 17. int x=1,y=1,z=1; x+=y+=z; 则表达式xb>c 的值是0 。 19. 定义一个指针p,它指向一个有 6 个整型元素的一维数组,定义语句为int *p=a[6] ; 。 20. 定义一个指针数组p ,它有 4 个元素,每个指针指向一个整型数据,定义语句为int *p[4]; 。 21. 赋值语句是由= 加上一个分号构成。 22. 构成数组的各个元素必须具有相同的类型。 23. 关系表达式x+y>5 的相反表达式为x+y !>5 。 24. 函数strlen("1234\0xy") 的值为:9 。 25. 函数的形参在未被调用前不分配空间,函数形参的数据类型要和实参相同。 26. 函数体用{ 开始,用} 结束。 27. 结构化设计中的三种基本结构是顺序,选择,循环。

Java程序设计实用教程_习题解答

习题 1 1.James Gosling 2.需3个步骤: 1)用文本编辑器编写源文件 2)使用Java编译器(javac.exe)编译源文件,得到字节码文件。 3)使用java解释器(java.exe)来解释执行字节码文件。 3.D:\JDK 1) 设置path 对于Windows 2000/2003/XP,右键单击“我的电脑”,在弹出的快捷菜单中选择“属性”,弹出“系统特性”对话框,再单击该对话框中的“高级选项”,然后单击“环境变量”按钮,添加系统环境变量path。如果曾经设置过环境变量path,可单击该变量进行编辑操作,将需要的值d:\jdk\bin加入即可(注意:修改系统环境变量path后要重新打开DOS窗口编译)。或在DOS窗口输入命令行: set path=d:\jdk\bin(注意:用此方法修改环境变量每次打开DOS窗口都需要输入该命令行重新进行设置)。 2) 设置classpath 对于Windows 2000/2003/XP,右键单击“我的电脑”,在弹出的快捷菜单中选择“属性”,弹出“系统特性”对话框,再单击该对话框中的“高级选项”,然后单击“环境变量”按钮,添加系统环境变量classpath。如果曾经设置过环境变量classpath,可单击该变量进行编辑操作,将需要的值d:\jdk\jre\lib\rt.jar;.;加入即可。或在DOS窗口输入命令行: set classpath= d:\jdk\jre\lib\rt.jar;.;。 4.(B)javac 5.Java源文件的扩展名是”.java”,Java字节码的扩展名是”.class” 6.Java应用程序主类的main申明(D)public static void main(String args[])

c语言程序设计期末试题B(含答案)

c语言程序设计期末试题B(含答案) 一单项选择题(每小题1分,共10分) 1. A 2. C 3. D 4. A 5. B 1.以下4组用户定义标识符中,全部合法的一组是() A)_total clu_1 sum B)if -max turb C)txt REAL 3COM D)int k_2 _001 2.以下程序的输出结果是() #include main( ) { int a = 1, b = 2, c = 3; printf(“%d”, c>b>a); } A) 2 B) 1 C) 0 D) 3 3.以下正确的叙述是() A) 在C语言中,main函数必须位于文件的开头 B) C语言每行中只能写一条语句 C) C语言本身没有输入、输出语句 D) 对一个C语言进行编译预处理时,可检查宏定义的语法错误 4.设有定义:int a,*pa=&a; 以下scanf语句中能正确为变量a读入数据的是() A)scanf("%d",pa); B)scanf("%d",a); C)scanf("%d",&pa); D)scanf("%d",*pa); 5.若有以下程序段, int c1=1,c2=2,c3; c3=1.0/c2*c1; 则执行后,c3中的值是() A) 0 B) 0.5 C) 1 D) 2 6. D 7. D 8. A 9. C 10. D 6.能正确表示逻辑关系:“a≥=10或a≤0”的C语言表达式是() A) a>=10 or a<=0 B)a>=0|a<=10 C)a>=10 &&a<=0 D)a>=10‖a<=0 7.执行下面的程序时,将1、2、3、4分别赋给a、b、c、d,正确的输入是() main( ) { int a,b,c,d; scanf(“%d,%d,%d%d”,&a,&b,&c,&d); … } A)1 2 3 4 B)1 2 3,4 C) 1,2,3,4 D) 1,2,3 4

《C语言程序设计实践教程》答案-完整版

4.2练习题 一、选择题 1.D 2.B 3.A 4.B和D 5.C 6.A 7.B 二、填空题 1.//或/* */ 2.主或main 3.函数首部和函数体4.编译和连接 5.分号 5.2练习题 一、选择题 1.A 2.D 3.B 4.B 5.C 6.C 7.D 8.A 9.B 10.B 11.D 12.B 13.A或B 14.C 15.B

17.D 18.D 19.C 20.D 21.B 22.A 23.D 24.C 25.C 26.B 27.C 28.D 29.A 30.B 二、填空题 1.102,10 2.#define 宏名字符串 3.1 4.n=1 5.-4 6.a=1,b= ,c=2 7.c=A 8.n1=%d\nn2=%d 9.a+b>c&&a+c>b&&b+c>a 10.ch>=’a’&&ch<=’z’|| ch>=’A’&&ch<=’Z’11.7 12.0 13.11110000 14.8,4 6.2练习题 一、选择题 1.A 2.C 3.D 4.C 5.A

7.A 8.D 9.B 10.C 11.A 12.A 13.C 14.B 15.正确答案为:12345678 二、填空题 1.10 2.y=1 x%i==0 3.屏幕中间输出一个由星号组成的菱形4.1 5.13 6.(cx=getchar())!=-1 front=cx; 7.m%n 8.4 9.*p px=&x py=&y 三、读程序,写结果 1.-1 2.3,1,-1, 3.a=16,y=60 4.x=12,y=4 5.59 7.2练习题 一、选择题 1.B 2.C 3.C 4.A 5.D

C语言程序设计期末考试试题及答案知识分享

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 void main() { int a=1,b=0,c=0; if (a

C语言程序设计期末考试试题(含答案)

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>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。 A、’x’&&’y’ B、x<=y C、x||y+z&&y-z D、!((x<y)&&!z ||1) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

c程序设计教程与实验__吉顺如__实验一到七

实验1熟悉Visual C++环境及运行C程序 一、实验目的 1.掌握在Visual C++环境下C程序的建立、编辑、编译和执行过程。 2.掌握C程序的最基本框架结构,完成简单程序的编制与运行和调试。 3.掌握发现语法错误、逻辑错误的方法以及排除简单错误的操作技能。 二、实验内容 1.从键盘输入两个数a和b,求它们的平方和,并在屏幕上输出。输入该C程序,编译并运行之,记下屏幕的输出结果,以文件名保存。 #include <> main() { int a,b,sum; /*定义整型变量a、b、sum */ printf("Please Input a,b \n "); /*输出提示信息*/ scanf("%d%d",&a,&b); /*从键盘输入两个整数分别赋予a和b*/ sum=a*a+b*b; /*赋值语句,把a2+b2的结果赋给变量sum*/ printf("%d*%d+ %d*%d=%d\n",a,a,b,b,sum); /*输出语句*/ }

改错题 (1计算x*y 的值并将结果输出。试纠正程序中存在的错误,以实现其功能。程序以文件名保存。 #include <> main main () { int x=2;y=3;a int x=2,y=3,a ; A=x*y a =x*y ; print ('a=%d",A); print f ("a=%d",a ); printf("\n"); } (2)下程序的功能为:求两数中的较大数据并输出。纠正程序中存在的错误,以实现其功能。程序以文件名保存。 #include <> viod main() void main() { int a ,b , max; Scanf(“%d,%d ”,&a,&b); s canf(“%d,%d ”,&a,&b); Max=a; m ax=a; If (max

钱能c++程序设计教程(第二版)第三章答案[1]

第三章第一部分 //3.3.2—浮点数表示 #include using namespace std; int main() { float f=19.2F; cout<(&f); for(int i=31;i>=0;i--) cout<<(*p>>i&1)<<(i==31||i==23?"-":""); cout< using namespace std; int main() { char* s1="Hello"; char* s2="123"; char a[20]; strcpy(a,s1); cout<<(strcmp(a,s1)==0?"":"not ")<<"equal."< #include using namespace std; int main() { string a,s1="hello",s2="123"; a=s1;

C语言程序设计期末考试样卷

2008年C语言程序设计期末考试样卷 一、填空题 1、C语言程序从函数开始执行。 2、关系运算的结果得一个整数值:或者。 3、已知int a[ ]={0,1,2,3,4,5}; ,则它的最大下标是。 4、结构化程序的3种基本结构是,和。 5、若a1和a2都是double型变量,且a1的初值为3.0,a2的初值为2.0,则表达式pow(a2,fabs(a1))的值为。 6、表达式“8.2-2/3”的计算结果是。 7、若有定义:int a=25, b=14, c=19; 则表达式(a=bb?c:d):c)的值是。 8、设有以下结构体定义 struct emp { char name[8]; int age; char sex; }staff; 则用户定义的结构体类型名为。 9、表达式5>3&&2||8<4-!1的值。 10、已知int a[10]; ,则a占用内存个字节的存储单元,代表他们的首地址是 。 11、将str定义为字符数组并初始化为“Lei”的语句是。 12、设有定义:int n, *k=&n; ,以下语句利用指针变量k读写变量n中的内容,请将下列语句补充完整。scanf(“%d”, ); printf(“%d\n”, ); 13、设y是int型变量,请写出判断y为奇数的关系表达式:。 14、设有以下变量定义,并已赋确定值 char w; int x; float y; double z; 则表达式w*x+z-y所求得的数据类型为。 15、设i、j、k均为int型变量,则执行完下面的for循环后,k的值为。 for(i=0, j=10; i<=j; i++, j--) k=i+j; 16、语句:x++; ++x; x=x+1; x=1+x; 执行后都使变量x中的值增1,请写出一条相同功能的赋值语句(不得与列举的相同):。 17、设a,b,c均为整型数,且a=1,b=2,c=3,则语句a-=a+(++b)+(c--);被执行后a的值是。 18、若有定义“int a[2][3] = {1,3,5,7,9,11}; ”则a[1][0]的值是,*(*(a +1)+2))的值是。 19、设X为int型变量,请写出描述“X是偶数”的表达式是:。 20、C语言提供的三种逻辑运算符是、和!; 二、选择题 (1) 以下非法的赋值语句是 A) n=(i=2,++i); B)j++; C) ++(i+1); D)x=j>0; (2) 设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是

C语言程序设计考试题库

一、判断题 1、所谓常量,就是在程序运行过程中其值可以改变的量。() 2、一个C程序可以由多个源程序文件构成,但其中只能有一个main()函数。() 3、在C语言中do-while 语句和for循环均是先执行循环体语句,再判断表达式。() 4、在函数调用中将变量的地址作为实参传递给对应形参时,实现的是单向的值传递。() 5、C语言中所有字符串都是以‘\0’结束的。() 6、do-while构成的循环语句中的循环体最少执行1次。() 7、数组名在C语言中表示的是数组的首地址。() 8、使用gets()函数输入字符串时可以在字符串中输入空格。() 9、算术运算符中‘/’的优先级高于‘%’。() 10、char a[5];该语句表明数组a中的第五个元素为a[5]。() 11、C语言源程序文件的扩展名均为.c。() 12、char a[5];数组a中有a[1]、a[2]、a[3]、a[4]、a[5]共5个元素。() 13、C语言程序区分大小写,字符常量必须定义为大写。() 14、若int i=10,j=2;则执行i*=j+8;后i的值为28。() 15、若int x=100,y=200;则语句printf("%d",(x,y));输出结果为100。() 16、c语言中的标识符只能由字母,数字和下划线三种字符组成。() 17、函数getchar()的作用是:输出一个字符。() 18、一个C语言程序总是从第一个函数开始执行。() 19、在c语言中,char型数据在内存中是以ASCII码形式存储的。() 20、在C语言中switch语句必须使用break语句。() 二、选择题 1、以下说法正确的是()。 A、C语言程序总是从第一个函数开始执行。 B、C语言程序中要调用的函数必须在main()函数中定义。 C、C语言程序总是从main()函数开始执行。

C语言程序设计期末考试及答案

第一次试验1.编写一个程序,求出给定半径r的圆的面积和周长,并且输 出计算结果。其中:r的值由用户输入,用浮点型数据处理。 #include<> voidmain() { floatPI=; floatr,area,perim; printf("请输入圆的半径:\n"); printf("r="); scanf("%f",&r); } 2.给一百分制成绩,要求输出成绩等 级’A’、’B’、’C’、’D’、’E’。90分以上 为’A’,80~89分为’B’,70~79分为’C’,60~69分为’D’,60分以下为’E’。 #include<> voidmain() { intiNum; printf("请输入分数:"); scanf("%d",&iNum); switch(iNum/10) { case10: case9:printf("学生成绩A\n");break; case8:printf("学生成绩B\n");break; case7:printf("学生成绩C\n");break; case6:printf("学生成绩D\n");break; default:printf("学生成绩E\n");break; } }

3. 输入两个正整数m 和n ,求其最大公约数和最小公倍数。 #include<> intmain() { intp,r,n,m,temp; 4. printf("请输入两个正整数n,m:");.a (n 个a )之值,其中a 是一个数字。例如:2+22+222+2222+22222(此时n=5),n 由键盘输入。 #include<> intmain(void) { intsum=0; intsun=0; inta; intn; inti=0; printf("请入入a 值(整数):\n"); printf("a="); scanf("%d",&a); printf("请入入n 值:\n"); printf("n="); scanf("%d",&n); while(i

C语言程序设计复习题

《C语言程序设计》复习题 一、判断题(本大题共60个小题) 1.C程序执行的入口是main()函数,所以main函数必须放在程序的开头。 2.定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。 3.注释内容太多会影响程序的执行效率。 4.变量要“先定义,后使用”。 5.字符常量'a'与字符串常量"a"没有区别。 6.数学公式y=-6xz+5[2(a-5)+3]写成C语言表达式是y=-6*x*z+5*[2*(a-5)+3]。 7.数学公式y=|x|+ab-c写成C语言表达式是y=fabs(x)+a*b-c。 8.表达式5/2+5.0/2+7%6 的值为5.5。 9.设int b=7;float a=2.5,c=4.7;则表达式a+(int)(b/2*(int)(a+c)/2)%4 的值为:4.5。 10.设int a=12; 则表达式a/=a+a的值是0.5。 11.在C语言中,运算符!比&&的优先级高。 12.在C语言中,运算符的优先级最小的是逗号运算符。 13.scanf("%d,%d",&x,&y);的输入格式:3,4<回车>。 14.以下程序运行结果是:1,7,0 void main() { int x=1,y=1,z=10; if(z< 0) if(y> 0) x=3; else x=5; printf(" %d," ,x); if(z=y< 0) x=3; else if(y==0) x=5; else x=7; printf(" %d,%d" ,x,z); } 15.该程序运行结果是:BCother void main()

{ char x=‘B’; switch(x) { case ‘A’: printf(“A”); case ‘B’: printf(“B”); case ‘C’: printf(“C”); default: printf(“other”); } } 16.下面程序段运行时输出结果是a=2,b=8 void main() { int x=1,y=1,a=2,b=7; switch(x) { case 1: switch(y) { case 0: a++;break; case 1: b++;break; } case 2: a++;b++;break; case 3: a++;b++; } printf("a=%d,b=%d\n",a,b); } 17.下面程序,当输入为:"abc?" 时,执行结果是:abc void main() { char c; c=getchar(); while (c!='?' ) { putchar(c); c=getchar();} }

相关主题
文本预览
相关文档 最新文档