文档库 最新最全的文档下载
当前位置:文档库 › C++程序设计模拟试卷(三)

C++程序设计模拟试卷(三)

C++程序设计模拟试卷(三)
C++程序设计模拟试卷(三)

C++程序设计模拟试卷(三)

一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中

只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无

分。

1. 设有定义int i;double j=5;,则10+i+j值的数据类型是()

A. int

B. double

C. float

D. 不确定

答案:B

解析:考察数据的转换,j是double类型,运算只能作同类型的运算,所以要转换,而int能自动

转换为double类型,所以结果是double类型。

2. 要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为()

A. const char *p=“ABCD”;

B. char *const p=“ABCD”;

C. char const *p=“ABCD”;

D. const char * const p=“ABCD”;

答案:D

解析:const char *p说明禁止通过p修改所指向的数据。char * const p则说明不能修改

指针p的地址。因此const char * const p=“ABCD”;它禁止修改指针p本身,又禁止修改p所指

向的数据。

3. 类的构造函数被自动调用执行的情况是在定义该类的()

A. 成员函数时

B. 数据成员时

C. 对象时

D. 友元函数时

答案:C

解析:建立对象时,自动构造函数的初始化对象,是系统自动调用的。而成员函数、友元

函数,需要用户直接调用,因此选择C项。

4. 已知类A是类B的友元,类B是类C的友元,则()

A. 类A一定是类C的友元

B. 类C一定是类A的友元

C. 类C的成员函数可以访问类B的对象的任何成员

D. 类A的成员函数可以访问类B的对象的任何成员

答案:C

解析:友元说明方法如下:

friend?<类名>;//友元类类名

使用友元可以访问所有成员:

(1)友元关系不能被继承。

(2)友元关系是单向的,不具有交换性。所以,B项和D项错误。

(3)友元关系不具有传递性。所以,A项错误。

5. 假定一个类的构造函数为“A(int i=4, int j=0) {a=i;b=j;}”, 则执行“A x (1);”语

句后,x.a和x.b的值分别为()

A. 1和0

B. 1和4

C. 4和0

D. 4和1

答案:A

解析:带默认的构造函数,对应实参没有值时就采用形参值。调用构造函数时,i=1,不采

用默认值,而只有一个参数,j采用默认值0即j=0,因此a=1,b=0,选择A项。

6. 关于this指针使用说法正确的是()

A. 保证每个对象拥有自己的数据成员,但共享处理这些数据的代码

B. 保证基类私有成员在子类中可以被访问。

C. 保证基类保护成员在子类中可以被访问。

D. 保证基类公有成员在子类中可以被访问。

答案:A

解析:this指针是隐藏的,可以使用该指针来访问调用对象中的数据。基类的成员在派生

类中能否访问,与继承方式有关,与this没有关系。所以选择A项。

7. 所谓多态性是指()

A. 不同的对象调用不同名称的函数

B. 不同的对象调用相同名称的函数

C. 一个对象调用不同名称的函数

D. 一个对象调用不同名称的对象

答案:B

解析:多态性有两种静态多态性和动态多态性,静态多态性是指调用同名函数,由于参数

的不同调用不同的同名函数;动态多态性是指不同对象调用同名函数时,由于对象不同调用不同

的同名函数。多态性肯定具有相同的函数名,所以选择B项。

8. 友元关系不能()

A. 提高程序的运行效率

B. 是类与类的关系

C. 是一个类的成员函数与另一个类的关系

D. 继承

答案:D

解析:友元可以是函数与类的关系即友元函数,也可以类与类的关系即友元类,但友元不

能继承,是单向性,且不具有传递性。友元可以访问类中所有成员,提高了访问

的方便性。因此

选择D项。

9. 语句ofstream f(“TEMP.DAT”,ios::app|ios::binary)?的功能是建立流对象f,试图打

开文件TEMP.DAT 并与之连接,并且()

A. 若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件

B. 若文件存在,将其置为空文件;若文件不存在,打开失败

C. 若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件

D. 若文件存在,打开失败;若文件不存在,建立一个新文件

答案:A

解析:ios::binary,采用二进制形式,ios::app定位到文件尾部。

10. 构造函数不具备的特征是()

A. 构造函数的函数名与类名相同

B. 构造函数可以重载

C. 构造函数可以设置默认参数

D. 构造函数必须指定类型说明

答案:D

解析:构造函数无返回类型不能继承但可以重载,所以选择D项。

11. 在公有继承的情况下,基类的公有或保护成员在派生类中的访问权限()

A. 受限制

B. 保持不变

C. 受保护

D. 不受保护

答案:B

解析:继承方式的不同派生类成员的权限也不同,采用公有继承,除了私有无法访问外

,公有、保护在派生类中保持不变,所以选择B项。

12. 假定一个类的构造函数为A(int aa,int bb) {a=aa--;b=a*bb;},则执行A x(4,5);语句后

,x.a和x.b的值分别为()

A. 3和15

B. 5和4

C. 4和20

D. 20和5

答案:C

解析:a=4,因为后减,b的值与a、bb相关,b=4*5=20,而与aa没有任何关系。

13. C++对C语言做了很多改进,即从面向过程变成为面向对象的主要原因是()

A. 增加了一些新的运算符

B. 允许函数重载,并允许设置缺省参数

C. 规定函数说明符必须用原型

D. 引进了类和对象的概念

答案:D

解析:C++是一面向对象的语言,面向对象的特征,抽象、多态、继承和封装。

14. 在类中说明的成员可以使用关键字的是()

A. public

B. extern

C. cpu

D. register

答案:A

解析:extern用于声明外部变量的。register声明寄存器类型变量。无cpu类型。它们都不能声

明类成员。public声明为公有访问权限,所以选择A项。

15. C++语言中所有在函数中定义的变量,连同形式参数,都属于()

A. 全局变量

B. 局部变量

C. 静态变量

D. 函数

答案:B

解析:变量存储类可分为两类:全局变量和局部变量。

(1)全局变量:在函数外部定义的变量称为全局变量,其作用域为:从定义变量的位置开始到

源程序结束。使用全局变量降低了程序的可理解性,软件工程学提倡尽量避免使用全局变量。

(2)局部变量:在函数内部定义的变量称为局部变量,其作用域为:从定义变量的位置开始到

函数结束。局部变量包含自动变量(auto)静态变量(static)以及函数参数。形参不能是静态

的。所以选择B项。

16. 在私有继承的情况下,基类成员在派生类中的访问权限()

A. 受限制

B. 保持不变

C. 受保护

D. 不受保护

答案:A

解析:私有继承下,基类中的公有或保护成员在派生类中也是私有的,所以选择A选项。

17. 使用地址作为实参传给形参,下列说法正确的是()

A. 实参是形参的备份

B. 实参与形参无联系

C. 形参是实参的备份

D. 实参与形参是同一对象

答案:D

解析:地址作为实参,表示实参与形参代表同一个对象。如果实参是数值,形参也是普通

变量,此时形参是实参的备份。所以选择D项。

18. C++的继承性允许派生类继承基类的()

A. 部分特性,并允许增加新的特性或重定义基类的特性

B. 部分特性,但不允许增加新的特性或重定义基类的特性

C. 所有特性,并允许增加新的特性或重定义基类的特性

D. 所有特性,但不允许增加新的特性或重定义基类的特性

答案:A

解析:派生类有两类成员:一是基类,二是自身类。派生类中的成员不能访问基类中的私

有成员,可以访问基类中的公有成员和保护成员。

19. 对于int *pa[5];的描述,正确的是()

A. pa是一个指向数组的指针,所指向的数组是5个int型元素

B. pa是一个指向某个数组中第5个元素的指针,该元素是int型变量

C. pa[5]表示某个数组的第5个元素的值

D. pa是一个具有5个元素的指针数组,每个元素是一个int型指针

答案:D

解析:指针数组:数组元素都是相同类型的指针,相同类型的指针是说指针所指向的对象

类型是相同的。例如,语句int *pa[5];定义了一个指针数组。在指针数组的定义中有两个运

算符:*和[],运算符[]的优先级高于*,所以*pa[5]等价于*(pa[5]),pa[5]表示一

个数组,而*表示后面的对象为指针变量,合在一起*pa[5]表示一个指针数组。该数组包含5个

元素,每个元素都是指向int型的指针。所以选择D选项。

20. 以下基类中的成员函数表示纯虚函数的是()

A. virtual void tt()=0

B. void tt(int)=0

C. virtual void tt(int)

D. virtual void tt(int){}

答案:A

解析:当在基类中不能为虚函数给出一个有意义的实现时,可以将其声明为纯虚函数,实

现由派生类完成。格式:virtual<函数返回类型说明符><函数名>(<参数表>)=0;。

二、填空题(本大题共20小题,每小题1分,共20分)请在每小题的空格中填上正确答

案。错填、不填均无分。

1. 单目运算符作为类成员函数重载时,形参个数为___个。

答案:0

[解析]单目运算符使用成员函数重载可以不用形参,双目运算符使用一个参数。

2. 抽象类中至少要有一个___函数。

答案:纯虚

[解析]至少有一个纯虚函数的类就称为抽象类,即不能实例化。

3. 设类A有成员函数void f(void);若要定义一个指向类成员函数的指针变量pf来指向f,该

指针变量的声明语句是:___。

答案:void (A::*pf)(void)=&A::f;

[解析]void(A::*pf)(void)=&A::f;指向成员函数的指针,它相当于两条语句

:void(A::*pf)(void);和pf=&A::f;。

4. 执行下列程序

double a=3.1415926,b=3.14;

cout<

程序的输出结果是___。

答案:3.1416,3.14

[解析]题目设置精度即有效数字都是5,a四舍五入是3.1416,b是3.14。

5. vector类中用于删除向量中的所有对象的方法是___。

答案:clear()

[解析]向量的使用。返回向量中对象的方法有:front()back()operator[],在向量中删

除对象的方法pop_back erase clear。

6. 重载的运算符保持其原有的___、优先级和结合性不变。

答案:操作数

[解析]运算符重载时要遵循以下规则:

(1)除了类属关系运算符“.”、成员指针运算符“.*”、作用域运算符“::”、sizeof运算符

和三目运算符“?:”以外,C++中的所有运算符都可以重载。

(2)重载运算符限制在C++语言中已有的运算符范围内的允许重载的运算符之中,不能创建新的

运算符。

(3)重载之后的运算符不能改变运算符的优先级和结合性,也不能改变运算符操作数的个数及

语法结构。

7. 编译时的多态性通过___函数实现。

答案:重载

[解析]编译多态性,实现的方法主要通过函数的重载或运算符的重载。

8. 基类的公有成员在派生类中的访问权限由___决定。

答案:访问控制方式或继承方式

9. 假设类X的对象x是类Y的成员对象,则“Y Obj”语句执行时,先调用类___的构造函数。

答案:X

[解析]派生类中的构造函数的执行顺序,先基类后派生类。

10. 下列程序段的输出结果是___。

cout.setf(ios::showpos);

cout<<509.3<

答案:(P193)+509.3

[解析]输入、输出格式ios::showpos用于输出数据的符号位。

11. 下列程序段的输出结果是___。

for(i=0,j=10,k=0;i<=j;i++,j-=3,k=i+j);cout<

答案:4

[解析]for循环结构,三个表达式的作用,初始化、循环判断条件和循环变量变化。循环执行了

三次,k的作用是计算i、j的和。

12. C++中ostream的直接基类___。

答案:ios

[解析]istream和ostream的直接基类是ios。

13. int n=0;

while(n=1)n++;

while循环执行次数是___。

答案:无限次

[解析]=是赋值运算符,不是关系运算符,且不等0,所以死循环。

14. C++中有两种继承:单继承和___。

答案:多继承

[解析]单继承和多继承,多继承即有多个基类。

15. 在C++中,利用向量类模板定义一个具有10个int的向量A,其元素均被置为1,实现此操作

的语句是___。

答案:vectorA(10,1)

[解析]定义向量列表vectorA(10,1),使用两个参数,10表示长度,1表示数值。

16. vector类中向向量尾部插入一个对象的方法是___。

答案:push_back

17. C++语言中如果调用函数时,需要改变实参或者返回多个值,应该采取___方式。

答案:传地址或引用

[解析]传地址即指针,在函数中通过指针修改它指向的变量的值时,实参也就变化了。使用引

用,直接修改变量的别名即引用的值,该变量也就随着变化。

18. 若函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的___语句。

答案:声明

[解析]函数使用有两部分:声明和定义。定义在前,可以无声明;但函数定义在后,调用在前

的话,需要先声明函数的原型。

19. 在C++中有两种参数传递方式:传值和___。

答案:传引用

[解析](1)传值调用又分为数据传值调用和地址传值调用。(2)引用调用是将实参变量值传

递给形参,而形参是实参变量的引用名。引用是给一个已有变量起的别名,对引用的操作就是对

该引用变量的操作。

20. 将指向对象的引用作为函数的形参,形参是对象的引用,实参是 ___。

答案:对象名

[解析]实参与形参类型要一致,形参是对象的引用,实参应该是对象名。

三、改错题(本大题共5小题,每小题4分,共20分)

1. class ABC

{int a;

public:

ABC(int aa)a(aa){}

};

答案:ABC(int aa)a(aa){}初始化列表格式错误。

[修改]ABC(int aa):a(aa){}

2. #include

class Aton

{int X,Y;

protected:

int zx,zy;

public:

void init(int i,int j){zx=i;zy=j;}

Aton(int i,int j,int n=0,int m=0)

{X=i,Y=j,zx=m,zy=n;

}

};

void main()

{Aton A(25,20,3,5);

A.init(5,9);

cout<

答案:int X,Y;因为X,Y都是私有的,在类外无法直接访问。

[修改]public:int X,Y;

3. #include

class Bas

{public:

~Bas(){cout<<"Bas construct"<

virtual void f()=0;

};

class Dev:public Bas

{public:

~Dev(){cout<<"Bas construct"<

virtual void f(){cout<<"Dev::f"<

};

void main()

{Bas *a=new Bas();

Dev p;

a=&p;

a->f();

}

答案:[修改]Bas *a;

[解析]Bas *a=new Bas();抽象类不能被实例化,但可以声明指针或引用,所以不能用new,因

为new产生临时对象。

4. 以下程序实现交换a,b变量的值,请用下横线标出错误所在行并给出修改意

见。

#include

void swap(int &a,int &b)

{a=a+b;

b=a-b;

a=a-b;

}

void main()

{int a=19,b=15;

cout<<"a="<

swap(&a,&b);

cout<<"a="<

}

答案:swap(&a,&b);函数的形参是变量的引用,调用时的实参应该是地址。[修改]swap(a, b);

5. #include

void main()

{int i(3),j(8);

int * const p=&i;

cout<<*p<

p=&j;

cout<<*p<

}

答案:int * const p=&i;在指针变量前加const表示一个常指针即地址不能变化,它指向的变

量不能改变且定义时必须设置指向变量或对象的地址。

[修改]int *p=&i;

四、完成程序题(本大题共5小题,每小题4分,共20分)

1. 在下面程序横线处填上适当内容,使程序执行结果为:"hello, andylin"。#include

#include

using namespace std;

class mystring

{public:

char * pdata;

mystring(int len)

{pdata=new char[len+1];

}

~mystring()

{delete pdata;}

void show(){cout<

};

void fun(mystring** array,int len)

{mystring*old=*array;

_______;

memcpy(*array, old, len);

}

void main()

{mystring str(20);

mystring*pstr=&str;

mystring**ppstr=&pstr;

strcpy(str.pdata,"hello,andylin");

fun(ppstr, 20);

_______

}

答案:*array=new mystring(len);,(**ppstr).show();或str.show();

[解析]调用mystring类的构造函数开辟空间,后进行字符的复制。输出可以直接使用str或者

使用二级指针。

2. 在下面程序横线处填上适当字句,完成类的定义。

class line;

class box

{ private:

int color;

int upx, upy;

int lowx, lowy;

public:

_________

void set_color (int c){color=c;}

void define_box (int x1, int y1, int x2, int y2)

{upx=x1;upy=y1;lowx=x2;lowy=y2;}

};

class line

{ private:

int color;

int startx, starty;

int endx, endy;

public:

friend int same_color(line l,box b);

void set_color (int c) {color=c;}

void define_line (___________)

{startx=x1;starty=y1;endx=x2;endy=y2;}

};

int same_color(line l, box b)

{if (l.color==b.color) return 1;

return 0;

}

答案:friend int same_color(line l, box b );,int x1, int y1, int x2, int

y2

[解析]成员函数作为友元函数的使用。使用friend关键字。由函数体可知形参的类型和个数。

3. 下面程序用来求直角三角形斜边长度。

#include

#include

class Point

{private:

double x,y;

__________

public:

Point(double i=0,double j=0)

{x=i;y=j;}

Point(Point &p)

{x=p.x;y=p.y;}

};

class Line

{private:

Point p1,p2;

public:

Line(Point &xp1,Point &xp2):________{}

double GetLength();

};

double Line::GetLength()

{double dx=p2.x-p1.x;

double dy=p2.y-p1.y;

return sqrt(dx*dx+dy*dy);

}

void main()

{ Point p1,p2(6,8);

Line L1(p1,p2);

cout<

}

答案:friend Line;,p1(xp1),p2(xp2)

[解析]友元类的使用,定义Line是Point类的友元类,成员对象的初始化采用列表的形式。

4. 在下面程序的底画线处填上适当的字句,使该程序执行结果为40。

#include

class Test

{ public:

______;

Test (int i=0)

{x=i+x;}

int Getnum()

{return Test::x+7;}

};

_______;

void main()

{Test test;

cout<

}

答案:static int x;,int Test::x=30;

[解析]从成员函数访问方式类名::成员可知是静态成员所以static int x;从结果要对初始

化为30,且在类外进行初始化, int Test::x=30;。

5. 在下列程序的空格处填上适当的字句,使输出为:0,2,10。

#include

#include

class Magic

{double x;

public:

Magic(double d=0.00):x(fabs(d))

{}

Magic operator+(______)

{

return Magic(sqrt(x*x+c.x*c.x));

}

_______operator<<(ostream & stream,Magic & c)

{ stream<

return stream;

}

};

void main()

{Magic ma;

cout<

Magic(-8)<

}

答案:operator+(Magic&c),friend ostream&operator

[解析]对加法进行重载,operator+(Magic & c),是对插入符进行重载,要访问成员所以定义

为友元函数,friend ostream & operator。

五、程序分析题(本大题共2小题,每小题5分,共10分)

1. 运行程序,写出程序执行的结果。

#include

void main()

{int a,b,c;

char ch;

cin>>a>>ch>>b>>c;//从键盘上输入1.5×c×10×20,×表示一个空格

cout<

}

答案:1

.

5

[解析]使用cin进行输入字符的输入的问题。1-->a,.-->ch,5-->b,空格转换为零给了c。

2. 给出下面程序输出结果。

#include

class A

{public:

A()

{cout<<"As cons."<

virtual ~A()

{cout<<"As des."<

virtual void f()

{cout<<"As f()."<

void g()

{f();}

};

class B:public A

{public:

B()

{f();cout<<"Bs cons."<

~B()

{cout<<"Bs des."<

};

class C:public B

{public:

C()

{cout<<"Cs cons."<

~C()

{cout<<"Cs des."<

void f()

{cout<<"Cs f()."<

};

void main()

{A *a=new C;

a->g();

delete a;

}

答案:As f().

Bs cons.

Cs cons.

Cs f().

Cs des.

Bs des.

As des.

[解析]定义C类对象时要调用基类构造函数从A到B再到C,调用B的构造函数时,B类没有

f(),则指向来自A类的f()函数。同时用基类的指针指向了派生类对象。最后析构函数的执

行。

六、程序设计题(本大题共1小题,共10分)

1. 已知交通工具类定义如下。

要求:(1)实现这个类;(2)定义并实现一个小车类car,是它的公有派生类,小车本身的私有

属性有载人数,小车的函数有init(设置车轮数,重量和载人数),getpassenger(获取载人数

),print(打印车轮数,重量和载人数)。

class vehicle

{protected:

int wheels;//车轮数

float weight;//重量

public:

void init(int wheels,float weight);

int get_wheels();

float get_weight();

void print();

};

void vehicle::init(int wheels,float weight)

{this->wheels=wheels;

this->weight=weight;

cout<

}

int vehicle::get_wheels()

{return wheels;

}

float vehicle::get_weight()

{return weight;}

void vehicle::print()

{cout<<"车轮数:"<

答案:class car:public vehicle

{private:int passengers;

public:

void init(int wheels,float weight,int pass);

int getpassenger();

void print();};

void car::init(int wheels,float weight,int pass) {vehicle::init(wheels,weight);

passengers=pass;}

int car::getpassenger()

{return passengers;}

void car::print()

{vehicle::print();

cout<<"可载人数:"<

}

《程序设计基础》试卷B及答案

黄淮学院计算机科学系2007-2008学年度第一学期 期末考试《程序设计基础》B 卷 注意事项:本试卷适用于计科系06级本科计算机科学与技术专业学生。 1.__ ____函数是程序启动时惟一的入口。 2.算法的复杂性包含两方面: 和 。 3.已知 char c= 'a' ; int x=2,k; 执行语句k=c&&x++ ; 则x 为 ,k 为 。 4.数值0x34对应的十进制为 。 5.已知int a ; 则表达式”(a=2*3 , 3*8), a*10”的结果为_ _ ____,变量a 的值为___ ___。 6.面向对象程序开发步骤为: 、 和面向对象实现。 1.下列程序设计语言中( )是面向对象语言。 A. FORTRAN B. C 语言 C. C++ D. 汇编语言 2.下列关于注释的说法哪个是错误的( )。 A. 注释不是程序中的可执行语句 B. 注释对于程序的执行有很重要的意义 C. 注释将在程序的编译阶段被编译器剔除 D. 编程时在程序中添加适当的注释是一个良好的编程风格 3.算法设计应该遵守( )的设计原则。 A. 自底向上,逐步求精 B. 自顶向下,逐步求精 C. 自底向上,同步扩展 D. 自顶向下,同步扩展 4.下列语句执行后a 的值为( )。 int a=4, &z=a, k=3; a=k; z+=2; k++; A. 0 B. 4 C. 1 D. 5 5.以下程序执行后,屏幕输出为( )。 #include “iostream.h ” void fun(int d) {d++;} void main() { int d=3; fun(d); d++; cout<=’a ’)&&(d<=’z ’) B. ‘a ’<=d<=’z ’ C. (d>=’a ’)||(d<=’z ’) D. ‘A ’<=d<=’Z ’ 8.已知:int k=7, x=12; 则执行语句( )后x 的值为0。 A. x+=k-x%5; B. x+=(x-k%5); C. x%=(k-=5); D. (x-=k)-(k+=5); 9.运行下列程序,其输出结果为( )。 #include “iostream.h ” void main() { int x(5),y(5),z(5); y--&&++x&&z--||y++; cout<

C语言程序设计实验报告(数组)

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 #include void catStr(char str1[],char str2[]) { int i,j; for (i=0;str1[i]!='\0';i++); for(j=0;str2[j]!='\0';j++) str1[i+j]=str2[j]; str1[i+j]='\0'; } lenStr(char m[] ) {int i;

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()函数,而是通过自己设计程序来进行字符串的连接以及计量字符串的长度,由此我学会了如何去理清自己的思路来设计程序。

C语言程序设计第三版谭浩强课后习题答案完整版

1.6 编写一个程序,输入a、b、c 三个值,输出其中最大值。 课后习题答案完整版 第一章 1.5 请参照本章例题,编写一个C 程序,输出以下信息: ************************** Very Good! ************************** 解:mian() {int a,b,c,max; printf( “请输入三个数a,b,c:\n ” ); scanf( “%d,%d,%”d ,&a,&b,&c); C语言程序设计第三版谭浩强 解: mian() {printf( ”); “************************** printf( “”X “ n” ); printf( “Very Good!” \ n”); printf( “”X “ n” ); printf( “************************** ); max=a; if(max

{char #include c1='a',c2='b',c3= 'c',c4= ' \101 ',c5= ' 116'; printf( “a%cb%c n”,c1,c2,c 3); printf( “ b%c %c” ,c4,c5); } 解: aa 口bb 口口口cc 口口口口口口abc A 口N 3.7 要将"China" 译成密码,译码规律是:用原来字母后面的第 4 个字母代替原来的字母.例如,字母"A" 后面第 4 个字母是"E" . "E"代替"A"。因此,"China"应译为"Glmre" 。请编一程序,用赋初值的方法使cl 、c2、c3、c4、c5 五个变量的值分别为, ' C'、h'、i '、n'、a'经过运算,使cl、c2、c3、c4、c5分别变为'G'、' I '、' m >' r'、’ e',并输出。main() { char c1=' C' ,c2=' h' ,c3= ' i ' ,c4= ' n' ,c 5=' a' ; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf(" 密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5); } 运行结果: 密码是GImre 3.9 求下面算术表达式的值。 解: 1 )x+a%3*(int)(x+y)%2/4

程序设计基础试题和答案解析二

《程序设计基础》考试试卷二 1.1966年,Bohra和Jacopini提出的三种基本程序设计结构是:________ A.if、while和for; B. switch、do-while和for; C.while、do-while和for; D.顺序结构、分支结构和循环结构。 2.算法的特征不包括:______。 A.有穷性 B.可行性 C.确定性 D.有1个或者多个输入。 3.C语言源程序的基本组成单位是______。 A.函数 B. 语句 C. 声明和语句 D. 文件 4.下列标识符中,只有______是合法的。 A.if B. 3ab C. Int D. A-4 5.下列常量中,只有______是合法的。 A.3e-0.3 B. ‘abc’ C. 02a1 D. ‘\377’ 6.下列说法中正确的是:______。 A.C语言中的for语句的三个表达式都可以省略,而且分号也可以省略。 B.宏替换比函数调用的执行速度慢。 C.实质上,C语言中的指针就是一个变量的地址。 D.C语言中的任何函数都可以由程序员命名。 7.C语言中,运算对象必须是整型的运算符是_______。 A./ B. % C. + D. - 8.以下叙述中错误的是_______。 A.C语句必须以分号结束 B.复合语句在语法上被看作一条语句 C.空语句出现在任何位置都不会影响程序运行 D.赋值表达式末尾加分号就构成赋值语句 9.以下叙述中正确的是_______。 A.调用printf函数时,必须要有输出项 B.使用putchar函数时,必须在之前包含头文件stdio.h C.在C语言中,整数可以以十二进制、八进制或十六进制的形式输出 D.调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码10.以下关于函数的叙述中正确的是_______。 A.每个函数都可以被其它函数调用(包括main函数) B.每个函数都可以被单独编译 C.每个函数都可以单独运行 D.在一个函数内部可以定义另一个函数 11.有以下程序段typedef struct NODE{ int num; struct NODE *next;

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 main() { printf("Hello!\n"); printf("This is C program!\n"); } 试编译、连接、运行该程序,并按Alt+F5查看运行结果。 运行结果是: 2. 输入并调试运行以下程序,查看运行结果 (由此结果可以了解到在实验用的微型机上,几种数据类型所占的字节数)。 main() { printf("char\t%d bytes\n",sizeof(char)); printf("short\t%d bytes\n",sizeof(short)); printf("int\t%d bytes\n",sizeof(int)); printf("long\t%d bytes\n",sizeof(long)); printf("float\t%d bytes\n",sizeof(float)); printf("double\t%d bytes\n",sizeof(double)); } 运行结果是: 3. 输入并调试运行以下程序。 main() {int i,j,m,n; i=8;j=10;

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);

《程序设计基础》试卷(A卷)

《程序设计基础》试卷(A 卷) 注意:1、考试时间: 90 分钟; 2、班级、姓名、学号必须写在指定地方; 3、适用班级: 4、考试方式: 一、填空题 (每空 2 分,共 20 分) 1、C 程序是由函数构成的,其中有且只能有 1 个主函数,每个C 程序总是从它开始执行,并且以 ; 作为结束符。 2、C 语言中三大基本结构有:顺序结构、 选择结构 、 循环结构 。 3、‘A ’+3的结果是 68 。 4、若已定义x 和y 为double 类型,则表达式x=1,y=x+3/2 的值是 2.5 。 5、C 语言中逻辑运算符 ! 的优先级高于算术运算符。 6、符号“a”和‘a’的区别是 “a ”2字节 ‘a ’1字节 。 7、C 语言的预处理语句以____#_____开头。 8、有如下输入语句:scanf(“a=%d,b=%d ,c=%d”,&a ,&b ,&c );为使变量a 的值为1,b 的值为3,c 的值为2,从键盘输入数据的正确形式应是 a=1,b=3,c=2 。 二、选择题 (每小题 3 分,共 30 分) 1、下列叙述中错误的是( D )。 A 、 if 语句允许用户选择是否执行某个操作。 B 、 if else 语句允许用户选择执行两个操作中的某个操作。 C 、 switch 语句允许用户选择执行多个操作中的某个操作 D 、 多分支选择结构只能使用switch 语句实现 2、以下不正确的C 语言标识符是( D ) A 、ABC B 、abc C 、a_bc D 、ab.c 3、按照C 语言规定的用户标识符命名规则,不能出现在标识符中的是( B )。 A 、大写字母 B 、连接符 C 、数字字符 D 、下划线 4、将int 型变量n 转换成float 型变量的方法是( B )。 A 、float n B 、(float)n C 、float(n) D 、(int )n 5、( A )是构成C 语言的基本单位。 A 、函数 B 、子函数 C 、过程 D 、子过程 6、下面关于运算符优先顺序的描述中正确的是( B )。 A 、关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符 B 、逻辑运算符< 关系运算符< 算术运算符< 赋值运算符 C 、赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符 D 、算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符 7、在C 语言中,要求参加运算的数必须是整数的运算符是( C )。 A 、/ B 、! C 、% D 、= = 8、char 型常量在内存中存放的是( B )。 A 、ASCII 代码值 B 、BCD 代码值 C 、内码值 D 、十进制代码值 9、以下程序的输出结果是( B ) Main() { Int x=10,y=4; Printf(“%d\n ”,x/y);

C程序设计第三版答案

C程序设计第三版答案 1.5请参照本章例题,编写一个C程序,输出以下信息:************ Very Goodj! ************ 解: main() { printf(" ************ \n"); printf("\n"); printf(" Very Good! \n"); printf("\n"); printf(" ************\n"); } 1.6编写一个程序,输入a b c三个值,输出其中最大者。解:main() {int a,b,c,max; printf("请输入三个数a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if(max

if(max

C语言程序设计实验报告

《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++;

C语言程序设计教程第三版(李凤霞)习题答案

教材习题答案 第一章 习题 一、单项选择题 1. C 2. B 3. B 4. C 5. D 6. A 7. C 8. A 二、填空题 1. 判断条件 2. 面向过程编程 3. 结构化 4. 程序 5. 面向对象的程序设计语言 6. 基本功能操作、控制结构 7. 有穷性 8. 直到型循环结构 9. 算法 10.可读性 11.模块化 12.对问题的分解和模块的划分

习题 一、单项选择题 1. B 2. D 3. C 4. B 5. A 6. A 7. B 8.C 二、填空题 1. 主 2. C编译系统 3. 函数、函数 4. 输入输出 5. 头 6. .OBJ 7. 库函数 8. 文本 第三章 习题 一、单项选择题 1. D 2. B 3. A

5. C 6. D 7. D 8. B 9. B 10.C 11.A 12.D 13.C 14.C 15.C 16.A 17.C 18.C 19.C 20.D 21.A 22.D 23.D 24.D,A 25.D 26.A 27.B 二、填空题 1. 补码 2. 308 10 - ±

~)308 10 ,15 —6 2. 308 10 - ± (~)308 10 ,15

6 3. 逻辑 4. 单目,自右向左 5. 函数调用 6. a 或 b ( 题目有错 , 小括号后面的 c<=98 改成( c>=97&&c<=98 )就可以得到所给的答案了) 7.

8. 65 , 89 第四章 习题 一、单项选择题 1. D 2. C 3. D 4. A 5. D 6. B 7. A 8. C 9. B 10.B 二、填空题 1. 一

程序设计基础期末考试题A卷

《程序设计基础》试题 程序设计基础期末考试题A 卷 一、 选择题(1*20=20分) 题号 1 2 3 4 5 6 7 8 9 10 总分 答案 题号 11 12 13 14 15 16 17 18 19 20 答案 1、一个完整的计算机系统应该包括( ) A 、系统软件和应用软件 B 、计算机及其外部设备 C 、硬件系统和软件系统 D 、系统硬件和系统软件 2、“裸机”的概念是指( ) A 、正在进行设计还没有组装好的计算机 B 、已经组装好但还没有安装任何软件的计算机 C 、仅安装了操作系统的计算机系统 D 、安装了文字处理软件但没有安装专用数据处理系统的计算机 3、世界上第一台电子数字计算机研制成功的时间是( ) A 、1936年 B 、1946年 C 、1956年 D 、1970年 4、CASE 的含义是( ) A 、计算机辅助设计 B 、计算机辅助制造 C 、计算机辅助教学 D 、计算机辅助软件工程 5、当前广泛使用的微型计算机是( ) A 、第一代 B 、第二代 C 、第三代 D 、第四代 6、当代计算机的体系结构称为是( ) A 、冯·诺依曼机 B 、非冯·诺依曼机 C 、图灵机 D 、比尔盖茨机 7、硬盘是( ) A 、输入设备 B 、输出设备 C 、存储设备 D 、计算设备 8、下面4句话中,最准确的表述是( ) A 、程序=算法+数据结构 B 、程序是使用编程语言实现算法 C 、程序的开发方法决定算法设计 D 、算法是程序设计中最关键的因素 9、计算机能直接执行的语言是( ) A 、机器语言 B 、汇编语言 C 、高级语言 D 、目标语言 10、解释程序的功能是( ) A 、将高级语言程序转换为目标程序 B 、将汇编语言程序转换为目标程序 C 、解释执行高级语言程序 D 、解释执行汇编语言程序 11、下面4种程序设计语言中,不是面向对象式语言的是( ) A 、JAVA B 、Object Pascal C 、Delphi D 、C 12、不是C 语言的基本数据类型是( ) A 、int B 、double C 、char D 、bool 13、在C 语言中,为了求两个整数相除之后得到的余数,可以使用运算符( ) A 、/ B 、% C 、* D 、++ 14、数据的逻辑结构分为( ) A 、纯属结构和非线性结构 B 、顺序结构和非顺序结构 C 、树型结构和图型结构 D 、链式结构和顺序结构 班级 姓名

C语言程序设计实验实验指导书及答案

实验一熟悉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语言程序设计第三版谭浩强课后习题答案完整版

C语言程序设计第三版谭浩强 课后习题答案完整版 第一章 1.5请参照本章例题,编写一个C程序,输出以下信息:************************** V ery Good! ************************** 解: mian() {printf(“**************************”); printf(“\n”); printf(“V ery Good!\n”); printf(“\n”); printf(“**************************”); } 1.6 编写一个程序,输入a、b、c三个值,输出其中最大值。解: mian() {int a,b,c,max; printf(“请输入三个数a,b,c:\n”); scanf(“%d,%d,%d”,&a,&b,&c); max=a; if(max main() { char c1=?C?,c2=?h?,c3=?i?,c4=?n?,c5=?a?; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5); } 运行结果: 密码是Glmre 3.9求下面算术表达式的值。 (1)x+a%3*(int)(x+y)%2/4 设x=2.5,a=7,y=4.7 (2)(float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=3.5,y=2.5 (1)2.5 (2)3.5 3.10写出程序运行的结果。 main() {int i,j,m,n; i=8; j=10; m=++i; n=j++; printf(“%d,%d,%d,%d”,i,j,m,n); } 解: 9,11,9,10 3.12 写出下面表达式运算后a的值,设原来a=12。设a和n都已定义为整型变量。 (1)a+=a (2)a-=2 (3)a*=2+3 (4)a/=a+a (5)a%=(n%=2),n的值等于5 (6)a+=a-=a*=a 解: (1) 24 (2) 10 (3) 60 (4) 0 (5) 0 (6) 0 第四章 4.4若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’。想得到以下输出格式和结果,请写出程序(包括定义变量类型和设计输出)。 a=_3_ _b=_4_ _c=_5 x=1.200000,y=2.400000,z=-3.600000 x+y=_3.600_ _y+z=-1.20_ _z+x=-2.40 c1=ˊaˊ_or_97(ASCII)

程序设计基础试题(附答案)

程序设计基础复习题 一、单选 1、一个完整的计算机系统应该包括() A、系统软件和应用软件 B、计算机及其外部设备 C、硬件系统和软件系统 D、系统硬件和系统软件 2、“裸机”的概念是指() A、正在进行设计还没有组装好的计算机 B、已经组装好但还没有安装任何软件的计算机 C、仅安装了操作系统的计算机系统 D、安装了文字处理软件但没有安装专用数据处理系统的计算机 3、世界上第一台电子数字计算机研制成功的时间是() A、1936年 B、1946年 C、1956年 D、1970年 4、CASE的含义是() A、计算机辅助设计 B、计算机辅助制造 C、计算机辅助教学 D、计算机辅助软件工程5、当前广泛使用的微型计算机是() A、第一代 B、第二代 C、第三代 D、第四代 6、当代计算机的体系结构称为是() A、冯·诺依曼机 B、非冯·诺依曼机 C、图灵机 D、比尔盖茨机 7、硬盘是() A、输入设备 B、输出设备 C、存储设备 D、计算设备 8、下面4句话中,最准确的表述是() A、程序=算法+数据结构 B、程序是使用编程语言实现算法 C、程序的开发方法决定算法设计 D、算法是程序设计中最关键的因素

9、计算机能直接执行的语言是() A、机器语言 B、汇编语言 C、高级语言 D、目标语言 10、解释程序的功能是() A、将高级语言程序转换为目标程序 B、将汇编语言程序转换为目标程序 C、解释执行高级语言程序 D、解释执行汇编语言程序 11、下面4种程序设计语言中,不是面向对象式语言的是() A、JAVA B、Object Pascal C、Delphi D、C 12、不是C语言的基本数据类型是() A、int B、double C、char D、bool 13、在C语言中,为了求两个整数相除之后得到的余数,可以使用运算符() A、/ B、% C、* D、++ 14、数据的逻辑结构分为() A、纯属结构和非线性结构 B、顺序结构和非顺序结构 C、树型结构和图型结构 D、链式结构和顺序结构 15、用链表表示纯属表的优点是() A、便于随机存取 B、便于插入和删除操作 C、花费的存储空间较顺序存储少 D、元素的物理顺序与逻辑顺序相同 16、栈的最主要特点是() A、先进先出 B、先进后出 C、两端进出 D、一端进一端出 17、下面4句结论只有一句是错误的,它是()

c程序设计实验报告.docx

. C++ 程序设计 实 验 报 告 : 班级: 学号: 指导教师:

. 实验一VC6.0 环境入门与简单程序设计 一、实验目的: 1、熟悉 VC++6.0 开了环境并编写简单的C++ 程序。 3、使用 C++ 语言编写简单的输入输出程序。 4、使用 VC++6.0 的 DEBUG 调试功能:单步执行、设置断点、观察变量值。 二、实验内容: 1、使用 VC++ 建立一个标准C++ 程序,编译、运行如下程序: #include Int main() { Cout<< ”Hello World!\n”; Cout<< ”Welcome to C++!\n”; } 2、编程计算图形的面积。程序可计算圆形、长方形、正方形等的面积,运行时首先提 示用户选择图形类型,然后根据不同图形类型,输入相关参数计算其面积,并将其显示出来。 #include using namespace std; void circle_area(); void rectangle_area(); void square_area(); int main()

. { int i; while(1) { cout<<" 请输入图形类型(1:圆形; 2:长方形; 3:正方形; 4:退出。): "; cin>>i; switch(i) { case 1:circle_area();break; case 2:rectangle_area();break; case 3:square_area();break; case 4:return 0; default:cout<<"输入错误!\n"; } } } void circle_area() { float r,s; cout<<" 输入圆的半径:"; cin>>r; s=3.14*r*r; cout<<" 该圆的面积是:"<>a>>b; s=a*b; cout<<" 该长方形的面积是:"<>a; s=a*a; cout<<" 该正方形的面积是:"<

程序设计基础试卷与答案

程序设计基础 一、单选题(每题2分,共60分) 1. 以下对C语言函数的描述中,正确的是()。 A. C程序必须由一个或一个以上的函数组成 B. C函数既可以嵌套定义又可以递归调用 C. 函数必须有返回值,否则不能使用函数 D. C程序中有调用关系的所有函数必须放在同一个程序文件中 2. 在C语言中,char型数据在内存中的存储形式是()。 A. 补码 B. 反码 C. 原码 D. ASCII码 3. 以下叙述中不正确的是()。 A. 一个好的程序应该有详尽的注释 B. 在C程序中,赋值运算符的优先级最低 C. 在C程序中,j++;是一条赋值语句 D. C程序中的#include和#define均不是C语句 4. 应用缓冲文件系统对文件进行读写操作,关闭文件的函数名为()。 A. fclose() B. close() C. fread() D. fwrite 5. 设C语言中,int类型数据占2个字节,则short类型数据占()。 A. 1个字节 B. 2个字节 C. 4个字节 D. 8个字节 6. 已知函数的调用形式fread(buffer,size,count,fp);其中buffer代表的是()。 A. 一个整数,代表要读入的数据项总数 B. 一个文件指针,指向要读的文件 C. 一个指针,指向要读入数据的存放地址 D. 一个存储区,存放要读的数据项 7. 在C语言中,形参的缺省存储类是()。 A. auto B. register C. static D. extern 8. 以下标识符中,不能作为合法的C用户定义标识符的是()。 A. putchar B. _double C. _123 D. INT 9. 在C语言中,能代表逻辑值“真”的是()。 A. True B. 大于0的数 C. 非0整 D. 非0的数 10. 已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!y)的值是()。 A. 0 B. 语法错 C. 1 D. "假" 11. 函数rewind的作用是()。 A. 使位置指针重新返回文件的开头 B. 将位置指针指向文件中所要求的特定位置 C. 使位置指针指向文件的末尾 D. 使位置指针自动移至下一个字符位置 12. 以下正确的说法是:在C语言中()。 A. 实参和与其对应的形参各占用独立的存储单元 B. 实参和与其对应的形参共占用一个存储单元

C语言程序设计实验-答案

-前言- /*非常感谢度娘以及各位网上C语言高手的支持,才能让敝人完成此文档的整理。 本文档集合了本人、度娘、众网友的力量,其中代码的正确率约为90%(不正确的有标注)。为回报度娘及众网友的帮助,本文档免费下载。 */ /*配“电子科技大学出版社(周信东主编)”的C语言程序设计实验*/ /*努力吧,骚年以及学妹们!*/ /*整理ed by 口玉刀一of GUET.*/ ===================== 实验一C语言程序初步 ===================== 1.---------------------------- 已知a=5,b=4,c=6,求出s并换行 #include"stdio.h" main() { int a,b,c,s; a=5;b=4;c=6; s=(a+b+c)/3; printf("a=%d,b=%d,c=%d\n,s=%d",a,b,c,s); } 2.------------------------------- 输入一个数字求他的平方 #include main() { int r,s; scanf("%d",&r); s=r*r; printf("s=%d\n",s); } 3.-------------------------------- (1) #include main() { printf(" *\n"); printf("***\n"); printf(" *\n"); } (2) #include

{ int v; int a,b,c; //a,b,c aer sides,v is volume of cube a=3;b=3;c=5; v=a*b*c; printf("v=%d\n",v); } ================================= 实验二数据类型、运算符和表达式 ================================= 1. (1)-------------------------------------------------- //总觉得打印结果怪怪的,DO YOU THINK SO? main() { char s1='3',s2='4',s3='5'; int c1=101,c2=102; printf("3%c\t4%c\t5%c\n",s1,s2,s3); //3%c为输出3和%c printf("s1=%d\ts2=%d\ts3=%d\n",s1,s2,s3);//注意哦,s1,s2,s3是char!而%d:输入输出为整形%ld 长整型%hd 短整型%hu无符号整形%u %lu%s:输入输出为字符串%c字符%f:输入输出为浮点型%lf双精度浮点型printf("c1=%d\t~%c\n",c1,c1); //换码符'\t',表示水平制表位(horizeontal tab),它的作用是将光标移到最接近8的倍数的位置 printf("c2=%d\t~%c\n",c2,c2); //注意c1,c2的类型 } (2) //运行结果为8.300000 %是求余数先运算x-y,把结果转换为int型的有利于四则运算 main() { float x=8.3,y=4.2,s; int a=7; s=x+a%5*(int)(x-y)%2/3; printf("s=%f",s); }

相关文档
相关文档 最新文档