C++程序设计练习题与答案

C++程序设计练习题与答案
C++程序设计练习题与答案

C++程序设计练习题

一、填空题

1.对象的三大基本特性分别为多态性、( )、封装性。

2.赋值运算符应重载为( )函数。

3.用( )声明的基类称为虚基类。

4.用( )声明的函数称为虚函数。

5.派生类对基类继承控制访问有三种。派生类可以定义其基类中不具备的( )。

6.静态成员是对象的成员,( )函数不是类的成员。

7.在函数体之前加( )关键字可以防止覆盖函数改变数据成员的值。

8.一个const对象只能访问( )成员函数。

9.使用友元函数是为了提高程序效率,且节约了( )开销。

10.类名为“ClassName”的类,其拷贝构造函数的原型说明是( )。

11.由关键字private、public和protected限定成员的访问权限分别是( )、( )和( )。缺省关键字时成员的访问权限为( )。

12.如果想要公共基类在派生类中只有一个拷贝,就要将公共的基类说明为( );如果虚基类没有默认构造函数,就必须在每一个派生类的构造函数中都要调用虚基类的( )函数。

13.静态成员函数是使用关键字( )说明的成员函数。

14.一个函数的原型声明为“void FunName(int=0, double=0, char='x');”,则调用FunName函数的方法共有( )种。

15.编译时多态性是通过( )实现的;运行时多态性是通过( )实现的。

16.C++通过( )实现编译时多态性,通过( )实现运行时多态性。

17.在C++中,声明类的关键字是( )。

18.声明C++模板的关键字是( )。

19.调用函数原型声明为“void FunName(short, int=0, float=;”的方法有( )种。

20.处理C++异常的方法:采用( )结构。

21.用关键字( )、( )和( )限定的成员,其访问权限分别为:公有的、私有的和保护的。缺省关键字时,成员的访问权限为( )。

22.在C++中,处理( )的方法是采用try-catch结构。

23.在C++中,用关键字( )说明内置函数。

24.在C++中,声明友元函数的关键字是( )。

25.将公共基类说明为( )时,多重派生过程中公共基类在派生类中就只有一个拷贝了。

26.在C++中,如果函数调用在前、定义在后,就必须先对函数进行( )。

27.在成员函数头之后、函数体之前加( )修饰的成员函数称为类的常成员函数。

28.包含纯虚函数的类称为抽象类,这种类只能用作( )来派生新类。由于抽象类的特殊性,我们可以说明抽象类的( ),但不能说明抽象类的( )。

29.说明函数类型为“double”、函数名为“virfun”且无参数的纯虚函数的表达形式为( )。

30.说明静态成员要使用关键字( )。

31.当函数调用在前定义在后时,必须先对函数进行( )说明。

32.类名为“ClassN”的类的拷贝构造函数的函数原型说明为( )。

33.抽象类是包含( )的类,必须注意:不能说明抽象类的( ),但可说明抽象类的( )。

34.流插入运算符<<只能重载为友元函数,重载流插入运算符<<的函数名为( )。

35.要防止在该成员函数中改变数据成员的值,就要在类的成员函数名之后、函数体之前加上关键字( )。

36.类和对象的关系可表述为:类是对象的( ),而对象则是类的( )。

37.在C++中,三种继承方式的说明符号为( )、( )和( ),如果不加说明,则默认的继承方式为( )。

38.如果只想保留公共基类的一个复制,就必须使用关键字( )把这个公共基类声明为虚基类。

39.若要把void myfun( )定义为类A的友元函数,则应在类A的声明中加入语句( )。

40.类的静态成员分为( )和( )。

41.运算符重载要求保持其原来的操作数个数、( )、( )和语法结构。

42.通过关键字( )可以声明模板,通过关键字( )指定函数模板的类型参数。

43.请列出C++中两种用户自定义的数据类型:( )、( )。

44.构造函数的作用是( )。

45.后置自增运算符“++”重载为类的成员函数(设类名为ClassName)的形式为( )。

二、单选题

1.继承机制的作用是( )

A) 信息隐藏B) 数据封装C) 定义新类D) 数据抽象

2.类的析构函数的作用是( )

A) 一般成员函数B) 类的初始化C) 对象的初始化D) 删除对象创建的所有对象

3.类的析构函数是在( )调用的。

A) 类创建时B) 创建对象时C) 删除对象时D) 不自动调用

4.在( )情况下适宜采用inline定义内联函数。

A) 函数体含有循环语句B) 函数体含有递归语句

C) 函数代码少、频繁调用D) 函数代码多、不常调用

5.如果类A被说明成类B的友元,则( )

A) 类A的成员即类B的成员B) 类B的成员即类A的成员

C) 类A的成员函数不得访问类B的成员 D) 类B不一定是类A的友元

6.在类中声明转换函数时不能指定( )

A) 参数B) 访问权限C) 操作D) 标识符

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

A) 受限制B) 保持不变C) 受保护D) 不受保护

8.在C++类体系中,不能被派生类继承的有( )

A) 转换函数B) 构造函数C) 虚函数D) 静态成员函数

9.假定ClassN为一个类,则执行“ClassN x;”语句时将自动调用该类的( )

A) 有参构造函数B) 无参构造函数C) 拷贝构造函数D) 赋值构造函数

10.C++语言建立类族是通过( )

A) 类的嵌套B) 类的继承C) 虚函数D) 抽象类

11.重载一元运算符--为类A的成员运算符,若有类A的对象obj,则表达式--obj被C++编译器解释为( )。

A) -- ( ) B) operator -- (obj) C) obj::operator -- ( ) D) obj:operator -- ( )

12.以下有四种关于类的说法,其中不正确的是( )。

A) 构造函数可以指定参数,但不能指定函数类型B) 一个类可以有多个构造函数

C) 析构函数不可以指定参数,但可以指定函数类型D) 一个类只能有一个析构函数

13.面向对象程序设计讲求封装性,在C++中封装是借助于( )实现的。

A) 结构B) 数组C) 类D) 函数

14.下面有四种关于类的说法,其中不正确的是( )。

A) 一个类可以有多个构造函数B) 析构函数不可以指定函数类型,但可以指定函数参数

C) 一个类只能有一个析构函数D) 在一个类中可以说明其它类的对象

15.下列有关基类的叙述中不正确的是( ),前提为“公有派生”。

A) 基类的公有成员在派生类中仍然是公有的B) 基类的保护成员在派生类中仍然是保护的

C) 基类的私有成员在派生类中仍然是私有的D) 基类的私有成员在派生类中是不可访问的

16.以下有四种关于友元的描述,其中错误的是( )。

A) 类A的友元类B的成员函数都是类A的友元函数B) 友元函数可以访问该类的私有数据成员

C) 类与类之间的友元关系可以继承D) 友元可以提高程序的运行效率

17.C++的封装性是借助于( )实现的。

A) 函数B) 数组C) 结构D) 类

18.要将--重载为类ClassN的后置友元运算符,那么,要在类中添加的原型说明为( )。

A) friend ClassN operator -- (ClassN &, int); B) friend ClassN operator -- (ClassN &);

C) friend ClassN operator -- (int); D) friend ClassN operator -- ( );

19.在公有派生时,下列描述中不正确的是( )。

A) 派生类的对象可以赋给基类的对象B) 派生类对象的地址可以赋给指向基类的指针

C) 派生类的对象可以初始化基类的引用

D) 当基类的指针指向派生类对象时,通过该指针可以直接访问派生类中的成员

20.以下关于继承成员的访问属性的叙述中,不正确的是( )。

A) 基类的保护成员在私有派生类中是私有的B) 对基类成员的访问必须没有二义性

C) 基类的保护成员在保护派生类中是保护的D) 基类的保护成员在派生类中是保护的

三、程序改错题(改正下列类中的错误)

1.

class ClassN

{

private: int nmember;

ClassN pmember;

public: ClassN( );

int ClassN(int x);

}

2.

void main()

{

char c[] = new char [20];

delete c;

}

3.

class MyClass

{

private: int n=1;

MyClass pO;

public: MyClass(int a = 0);

void ~MyClass(int a);

};

4.

#include

using namespace std;

void main()

{

int & par = new int [6];

delete par;

cout >> "主函数End!" << endl;

}

5.

#include

using namespace std;

void main()

{

long & par = new long [9];

delete par;

cout << "主函数End!" << Endl;

}

6.

CLass CN

{

private: long n;

CN pobj;

public: CN();

void CN(int X);

};

四、分析程序输出题

1.

#include

using namespace std;

class A

{

public:

A() { cout<<"constructing A "<

~A() { cout<<"destructing A "<

class B: public A

{

public:

B() { cout<<"constructing B "<

class C : public B

public:

C() { cout<<"constructing C "<

void main()

{ C c1; }

2.

#include

using namespace std;

void fun(int &a, int &b)

{

int p; p=a; a=b; b=p;

}

void exchange(int &a,int &b,int &c)

{

if(a

if(a

if(b

}

void main()

{

int a=12,b=89,c=56;

exchange(a,b,c);

cout<<"a="<

{

TC tarr[5];

cout<<"Exiting main"<

}

#include <>

class CBase

{

private: int n;

public: CBase(int m = 0) { n = m; }

virtual void print( ) { cout << "Inside CBase " << n << endl; } };

class CDrive: public CBase

{

private: int n;

public: CDrive( ) { n = 0; }

CDrive(int a, int b) : CBase(a) , n(b) { }

void print( ) { cout << "Inside CDrive " << n << endl; }

};

void main( )

{

CBase b1, b2(99), *pb;

CDrive dd(11, 22);

pb = &b1;

pb->print( );

pb = &b2;

pb->print( );

pb = ⅆ

pb->print( );

pb->CBase::print();

}

5.

#include <>

class CTest

{

private:

long num;

public:

CTest( );

~CTest( );

};

CTest::CTest( ) { num = 0; }

CTest::~CTest( ) { cout << "调用析构函数" << endl; }

void main( )

CTest cobj;

cout << "退出主函数" << endl;

}

6.

#include <>

class CN

{

private: int n;

public: CN(int i) { n=i; }

operator int() { return n; }

};

void main()

{

CN cobj(123);

cout<

}

7.

#include <>

void main( )

{

int num = 100;

int & ref = num;

cout << ref << endl;

ref = ref + 100;

cout << num << endl;

num = num + 100;

cout << ref << endl;

}

8.

#include <>

class CName

{

private: long num;

public: CName( );

~CName( );

};

CName::CName( ) { num = 0; }

CName::~CName( ) { cout << "调用析构函数" << endl; }

void main( )

{

CName carr[2];

cout << "退出main" << endl;

}

9.分析下列程序并写出程序的运行结果。

#include <>

class CBase

{

private: int n;

public: CBase(int m = 0) { n = m; }

virtual void print( ) { cout << "Inside CBase " << n << endl; } };

class CDrive: public CBase

{

private: int n;

public: CDrive( ) { n = 0; }

CDrive(int a, int b) : CBase(a) , n(b) { }

void print( ) { cout << "Inside CDrive " << n << endl; }

};

void main( )

{

CBase ba, bb(100), *pb;

CDrive dd(123, 456);

pb = &ba;

pb->print( );

pb = &bb;

pb->print( );

pb = ⅆ

pb->print( );

pb->CBase::print();

}

10.

#include <>

class CT

{

private: int n;

public: CT(int i) { n=i; }

operator int() { return n; }

};

void main()

{

CT cObj(1234);

cout<

五、编程题

1.下列类成员函数的定义不完整,请在____处填代码以使其完整。

class TC {

private:

int num;

float x;

public:

TC(int, float);

TC(TC&);

};

TC::TC(int n, float f)

{

num = n;

_______;

}

TC::TC(TC& t)

{

_______;

x = ;

}

2.根据下面的主程序,完成类说明的最小形式(不要求实现成员函数的定义)。

#include <>

class Base

{

private: _______;

public: _______;

};

void main()

{ Base bo(6); }

3.一个类的头文件如下所示,程序产生对象tco,且=10,并使用Show( )函数输出这个对象的值。ef;

}

5.在___处填写适当内容,以便完成下列类成员函数的定义。

class CN

{

private: int mn;

float mf;

public: CN(int = 0, float = 0);

CN(CN &);

};

CN::CN( )

{ this->mn = mn;

= mf;

CN::CN( rObj )

{

mn = ;

mf = .f;

}

6.填上合适的字句,使程序的最终结果为200。

#include <>

class CNumber

{

private: int val;

public: CNumber(int i) { val=i; }

_______int( );

};

CNumber::operator int() { _______ }

class num : public CNumber {

public:

num(int i) : CNumber(i) { }

};

void main()

{

num n(100);

int i=n;

cout<

}

7.下面是一个类的测试程序,设计出能使用如下测试程序的类:void main()

{

Test to;

(300, 200);

();

}

输出结果:300-200=100

8.已知复数类Complex的声明如下:

class Complex

{

public:

Complex();

Complex(double);

Complex(double, double);

friend Complex operator + (Complex &, Complex &);

friend ostream & operator << (ostream &, Complex &); friend istream & operator >> (istream &, Complex &);

double real, imag;

};

要求:

(1)写出该类的所有构造函数的类外定义代码。

(2)写出对运算符“+”、“<<”、“>>”进行重载的运算符重载函数的定义。

9.下列AbstractC类是一个表示形状的抽象类,area( )为求图形面积的函数,total( )则是一个通用的用以求不同形状的图形面积总和的函数。

class AbstractC

{

public:

virtual double area()=0;

};

double total(AbstractC *sa[ ], int n)

{

double s=;

for(int i=0; iarea( );

return s;

}

要求:

(1)从AbstractC类派生圆类(Circle)、正方形类(Square),圆类新增数据成员半径(r),正方形类新增数据成员边长(a) ,圆类和正方形类都有构造函数,修改、显示数据成员值的函数,求面积函数。

(2)写出main( )函数,计算半径为的圆和边长为的正方形的面积和(必须通过调用total函数计算)。

10.一个类的头文件的内容如下所示:

//

#include <>

class CN

{

private: int n;

public: CN(int);

void Print();

};

CN::CN(int N) { n = N; }

void CN::Print() { cout<

(1) 编写一个主程序,产生对象Obj,且使Obj对象中的n成员的值为100,并使用Print()函数输出这个对象中私有成员n的值。

(2) 在主程序中,创建一动态对象,使该动态对象的数据成员值为2015,并使用指针pObj指向该动态对象,然后输出该动态对象的数据成员的值。

11.一个类的头文件的内容如下所示:

//

#include

using namespace std;

{

private: int m;

public: CT(int);

void ShowM();

};

CT::CT(int n) { m = n; }

void CT::ShowM() { cout<

(1) 编写一个主程序,产生对象mObj,且使mObj对象中的m成员的值为11,并使用ShowM()函数输出这个对象中私有成员m的值。

(2) 在主程序中,创建一动态对象,使该动态对象的数据成员值为126,并使用指针pObj指向该动态对象,然后输出该动态对象的数据成员的值。

12.使用运行时多态性编程实现三角形、矩形和圆的总面积的统计并输出结果。三角形、矩形和圆类的类名分别为T、R和C。T类必须以S类作基类,R类必须从T类派生,C类必须以S作基类。Shape类的定义如下:

class S

{

private: int x, y;

public: S(int a=0, int b=0) : x(a) , y(b) { }

virtual int Area() = 0;

};

不必建立工程,将所有代码都放在一个源文件中。在主函数中,必须调用下列Sum函数来统计各类图形面积的总和。

int Sum( S * s[], int n)

{

int sum = 0;

for(int i = 0; i < n; i++) sum += s[i]->Area();

return sum;

}

参考答案

一、填空题

1.继承性

2.成员

3.virtual

4.virtual

5.成员

6.友元

7.const

8.const

9.调用类成员函数的

10. ClassName(ClassName &);

11.私有公有保护私有

12.虚基类构造

13.static

14.4

15.函数重载虚函数

16.函数重载虚函数

17.class

18.template

19.3

20. try-catch

21.private public protected private

22.异常

23.inline

24.friend

25.虚基类

26.原型声明

27.const

28.基类指针对象

29.virtual double virfun( )=0;

30.static

31.原型

32. ClassN(ClassN &);

33.纯虚函数对象指针

34.operator <<

35.const

36.抽象实例

37.public protected private private

38.virtual

39.friend void myfun( );

40.静态数据成员静态成员函数

41.结合性优先级

42.template typename或class

43.class struct

44.初始化对象中的数据成员等

45.ClassName operator ++ (int);

二、单选题

1~5:CDCCD

6~10:ABBBB

11~15:ACCBC

16~20:CDADD

三、程序改错题(改正下列类中的错误)

1.

“ClassN pmember;”“ClassN * pmember;”

“int ClassN(int x);”“ClassN(int x);”

“}”“};”

2.

“char c[] = new char [20];”“char * c = new char [20];”

“delete c;”“delete [ ] c;”

3.

“int n=1;”“int n;”

“MyClass pO;”“MyClass * pO;”

“void ~MyClass(int a);”“~MyClass( );”

4.

“int & par = new int [6];”“int * par = new int [6];”

“delete par;”“delete [ ] par;”

“cout >> "主函数End!" << endl;”“cout << "主函数End!" << endl;”5.

“long & par = new long [9];”“long * par = new long [9];”

“delete par;”“delete [ ] par;”

“cout << "主函数End!" << Endl;”“cout << "主函数End!" << endl;”6.

“CN pobj;”“CN * pobj;”

“void CN(int X);”“CN(int X);”

四、分析程序输出题

1.

constructing A

constructing B

constructing C

destructing C

destructing B

destructing A

2.

a=89,b=56,c=12

3.

Exiting main

Destructor is active

Destructor is active

Destructor is active

Destructor is active

Destructor is active

4.

Inside CBase 0

Inside CBase 99

Inside CDrive 22

Inside CBase 11

5.

退出主函数

调用析构函数

6.

123

7.

100

200

300

8.

退出main

调用析构函数

调用析构函数

9.

Inside CBase 0

Inside CBase 100

Inside CDrive 456

Inside CBase 123

10.

1234

五、编程题

1.

x=f num=

2.

int n Base(int m)

3.

TCN tco(10) ( )

4.

int a, float b mef CTN & rObj

5.

int mn, float mf this->mf CN & rObj 6.

operator return val

7.

class Test

{

private: int x,y;

public: void Init(int a, int b) { x=a; y=b; }

void Print( ) { cout<

8.

Complex::Complex()

{

real = 0;

imag = 0;

}

Complex::Complex(double r)

{ real = r; }

Complex::Complex(double r,double i)

{ real = r; imag = i; }

Complex operator + (Complex & c1, Complex & c2)

{

Complex c;

= + ;

= + ;

return c;

}

ostream& operator << (ostream& output,Complex& c)

{

output << "(" << << "+" << << "i)" << endl;

return output;

}

istream& operator >> (istream& input, Complex& c)

{

cout << "input real and imaginary part of complex number:"; input >> >> ;

return input;

}

9.

#include

using namespace std;

class AbstractC

{

public: virtual double area() = 0;

double total(AbstractC *sa[], int n)

{

double s=;

for(int i=0; iarea( );

return s;

}

class Circle : public AbstractC

{

private: double r;

public: Circle(double R = { r = R; }

void SetR(double R) { r = R; }

void ShowR() { cout << "r = " << r << endl; } double area() { return *r*r; }

};

class Square : public AbstractC

{

private: double a;

public: Square(double A = { a = A; }

void SetR(double A) { a = A; }

void ShowR() { cout << "a = " << a << endl; } double area() { return a*a; }

};

void main()

{

AbstractC * pa[2];

pa[0] = new Circle;

pa[1] = new Square;

cout << total(pa, 2) << endl;

delete (Circle *)pa[0];

delete (Square *)pa[1];

}

10.

#include ""

void main()

{

CN Obj(100);

();

CN * pObj=new CN(2015);

pObj->Print();

delete pObj;

11.

#include ""

void main()

{

CT mObj(11);

();

CT * pObj=new CT(126);

pObj->ShowM();

delete pObj;

}

12.

#include

using namespace std;

class S

{

private: int x, y;

public: S(int a=0, int b=0) : x(a) , y(b) { }

virtual int Area() = 0;

//virtual ~S() { }

};

int Sum( S * s[], int n)

{

int sum = 0;

for(int i = 0; i < n; i++) sum += s[i]->Area(); return sum;

}

class T : public S

{

protected: int h, w;

public: T(int H, int W) { h = H; w = W; } int Area( ) { return h*w*0.5f; }

};

class R : public T

{

public: R(int h, int w) : T(h, w) { }

int Area( ) { return h*w; }

};

class C : public S

{

protected: int r;

public: C(int R) { r = R; }

int Area( ) { return r*r*3.1415926f; } };

void main( )

{

S * s[3];

s[0] = new T(3, 4);

s[1] = new R(2, 4);

s[2] = new C(5);

cout << "总面积=" << Sum(s, 3) << endl;

//for(int i=0;i<3;i++) delete s[i];

delete (T *)s[0];

delete (R *)s[1];

delete (C *)s[2];

}

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

C语言程序设计试题集与答案解析

一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。

13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.

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章C语言概述 一.简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、do while语句、switch 语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么?它由哪几部分组成? 【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤? 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { int a1,a2,x; a1=100; a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main() { int a1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d,a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 3.输入下面程序并运行。

#include main() { printf("******\n"); printf(" *****\n"); printf(" ****\n"); printf(" ***\n"); printf(" **\n"); printf(" *\n"); } 【解答】运行结果为:****** ***** **** *** ** * 思考:可以修改程序,使之输出平行四边形,等腰三角形等图形。 三.编程题 1.参照本章例题,编写一个C程序,用于显示如下信息: ************************* I love C programs! ************************* 【分析与提示】 ①要有文件包含语句#include 。C语言中没有数据的输入、输出等功能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf等来实现的。这些函数的说明都包括在stdio.h文件中。 ②main是主函数的名称。用{}括起来的内容是函数体,函数体由若干条语句组成,这是计算机要执行的部分,每条语句以分号“;”结束。 ③注意显示的信息有三行,所以要用到换行符“\n”。 参考代码: #include main() { printf("************************\n"); printf(" I love C programs! \n"); printf("************************\n"); }

04737c程序设计试题及答案20200_图文

全国2009年10月高等教育自学考试 C++程序设计试题 课程代码:04737 一、单项选择题(本大题共20小题,每小题1分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.对C++中主函数描述正确的是( ) A.名称为main,可为多个 B.名称不限,可为多个 C.名称为main,必须有且只能有一个 D.名称不限,必须有且只能有一个 2.调用声明为int result(int a,int b)的函数时,正确的方法是( ) A.result(1,2) B.result(1) C.result(0.1,0.3) D.result(1,2,3) 3.用于包含C++标准库iostream的预处理指令是( ) A.#define B.#include C.#define ‘iostream’ D.#include‘iostream’ 4.无类型标识符是指( ) A.void B.bool C.short D.long 5.从本质上看,引用是被引用变量的( ) A.拷贝 B.别名 C.复制 D.克隆 6.下面关于数组的初始化正确的是( ) A.char str[ ]={'a','b','c'}; B.char str[2]={'a','b','c'}; C.char str[1][2]={{'a','b'},{'e','d'}}; D.char str[ ][ ]={'a','b','c'}; 7.C++类中定义的成员默认访问属性为( ) A.public B.private C.protected D.friend 1文档来源为:从网络收集整理.word版本可编辑.

(完整版)C语言程序设计练习及答案

《C语言程序设计》练习及答案 得分评卷人复查人 一、单选题,每小题1分,共60分(将正确答案的序号写在题目的括号中)。 1、结构化程序设计的三种基本控制结构是(D )。 A、主程序、子程序、函数 B、输入、处理、输出 C、调用,返回,转移 D、顺序、选择、循环 2、下列关于C程序变量的叙述, ( D )是错误的。 A、变量名必须由字母或下划线开头。 B、程序中的变量必须在被使用之前定义。 C、不同的基本类型的变量之间可以混合运算。 D、变量的数据类型决定变量的"作用域"。 3、能将C语言编写的源程序转换为目标程序的软件是(C )。 A、编辑程序 B、汇编程序 C、编译程序 D、解释程序 4、以下符号中,合法的用户标识符是( D )。 A、-p B、int C、3ab D、_xt_ 5、以下选项中,与m=n++完全等价的表达式是( C )。 A、m=++n B、m+=n+1 C、m=n, n=n+1 D、n=n+1,m=n 6、若有定义:int aa[8];。则以下表达式中不能代表数组元aa[1]的地址的是(C )。 A、&aa[0]+1 B、&aa[1] C、&aa[0]++ D、aa+1 7、表达式!5&(7+3)&&(4+5)的值是(A)。 A、0 B、1 C、5 D、9 8、以下选项中非法的C语言表达式是(A )。 A、x+1=x+1 B、0<=x<100 C、i=j==0 D、(char)(65+3) 9、在TURBO C中, int类型变量所占字节数是(B )。 A、1 B、2 C、4 D、8 10、C语言中基本的数据类型包括(B)。 A、整型,实型,逻辑型 B、整型,实型,字符型

《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语言程序设计试题集及其答案

第一章基础知识 一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。 13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。

C语言程序设计第二版习题参考答案

C语言程序设计第二版 习题参考答案 Document serial number【LGGKGB-LGG98YT-LGGT8CB-LGUT-

C语言程序设计习题参考答案 习题 1 一、判断题 1.在计算机中,小数点和正负号都有专用部件来保存和表示。 2.二进制是由0和1两个数字组成的进制方式。 3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。 4.在整数的二进制表示方法中,0的原码、反码都有两种形式。 5.有符号数有三种表示法:原码、反码和补码。 6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。 解:1.F2.T 3.T 4.T 5.T 6.T 二、单选题 1.在计算机中,最适合进行数值加减运算的数值编码是。 A. 原码 B. 反码 C. 补码 D. 移码 2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII 码为十进制数。 A. 112 B. 120 C. 121 D. 122 3.关于ASCII码,在计算机中的表示方法准确地描述是。 A. 使用8位二进制数,最右边一位为1 B. 使用8位二进制数,最左边一位为1 C. 使用8位二进制数,最右边一位为0 D. 使用8位二进制数,最左边一位为0 4.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是 ___________。 A. X∧Y=1000 B. X∨Y=1111 C. X⊕Y=0011 D. ˉY=1000 5.下列叙述中正确的是()。 A.高级语言就是机器语言 B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序 C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种 D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。 A.生成可执行文件B.生成目标文件 C.输出运行结果D.自动保存源文件 7.下列叙述中不正确的是()。 A.main函数在C程序中必须有且只有一个 B. C程序的执行从main函数开始,所以main函数必须放在程序最前面 C. 函数可以带参数,也可以不带参数。

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语言程序设计试题集及答案

单项选择题 (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)数据在内存中的存储形式是____。

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 语言程序设计习题答案 习题一 C 语言程序设计概述 一、名词解释 (1)程序P1 (2)程序设计P1 (3)机器语言P1 (4)汇编程序P2 (5)高级语言P2 (6)编译程序P3 (7)解释程序P3 (8)算法P4 (9)结构化的程序设计P9 二、简述题 1. 设计程序时应遵循哪些基本原则?P4 答:正确性、可靠性、简明性、有效性、可维护性、可移植性。 2. 算法的要素是什么?算法具有哪些特点? 答:算法的要素是:操作与控制结构;算法的特点有:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。 3. 算法的表示形式有哪几种? 答:算法的表示形式有:自然语言、传统流程图、伪代码、结构化的流程图(N_S 流程图,盒图)。 4. 有哪三种基本结构? 答:三种基本结构是:顺序结构、选择结构和循环结构。 5. 传统流程图与N-S 流程图最大的区别是什么? 答:N-S 流程图去掉了在传统流程图中常用的流程线,使得程序的结构显得更加清晰、简单。 三、用传统流程图、N-S 图分别表示求解以下问题的算法。 1. 有3个数a ,b ,c ,要求按由大到小的顺序把它们输出。 2. 依次将10个数输入,求出其中最大的数 和最小的数并输出。 3. 求1+2+3+…+100的值。

5. 求下列分段函数的值。 6. 求100~200之间的所有素数。 7. 求一元二次方程ax 2+bx+c=0的根。分别考虑d=b 2-4ac 大于0、等于0和小于0三种情况。 四、注释下面C 程序的各个组成部分。 main() /*主函数 */ { /*程序开始 */ int a,k,m; /*定义三个用来存放整数的变量 */ a=10; /*将整数10赋值给变量a */ k=2; /*将整数2赋值给变量k */ m=1; /*将整数1赋值给变量1 */ a=(k+m)*k/(k-m); /*先求出算术表达式的值,并将其赋值给变量a */ printf("%d\n",a); /*在屏幕上打印出变量a 的值 */ } /*程序结束 */ 习题二 数据类型、运算符与表达式 一、选择题 1~10:BCDCB DDBCA 11~20: ADDAA DBADC 21~28: DABAD CDD Y= 3X (X<1) 4X-1 (X=1) 5(X-1)+6 (1

c语言程序设计题目及答案

一、程序设计共113 题第1 题题 号:319 #include "stdio.h" void wwjt(); int fun(int m) { int i,k=1; if(m<=1) k=0; for(i=2;i #include #define M 3 #define N 4 void wwjt(); void fun(int tt[M][N],int pp[N]) { int i,j; for(j=0;jpp[j]) pp[j]=tt[i][j]; } 第3 题题号:375 功能:从键盘上输入任意实数, 求出其所对应的函数值。 z=e 的x 次幂( x>10) z=log(x+3) (x>-3) z=sin(x)/((cos(x)+4) #include #include void wwjt(); double y(float x) { double z; if(x>10) z=exp(x); else if(x>-3) z=log(x+3); else z=sin(x)/(cos(x)+4); return(z); } 第4 题题号:334 功能:求给定正整数n 以内的素数之积。( n<28) #include #include"conio.h" void wwjt(); long fun(int n) { long i,k; long s=1; for(i=2;i<=n;i++) {for(k=2;k #include"conio.h" void wwjt(); long int fun(int n) { long s=1,i; for(i=2;i<=n;i++) if(n%i==0)s=s*i; return s; } 第6 题题号:50 功能:求出菲波那契数列的前一项与后一项之比的极限的 近似值例如:当误差为0.0001 时,函数值为0.618056 。 #include #include "math.h" void wwjt(); float fun() { float f1=1,f2=1,f3; float r1=2,r2; do {r2=r1; r1=f1/f2; f3=f1+f2; f1=f2; f2=f3; }while(fabs(r1-r2)>1e-4); return r1; } 第7 题题号:394 功能:产生20个[30,120] 上的随机整数放入二维数组 a[5][4] 中, 求其中的最小值。 #include "stdlib.h" #include void wwjt(); int amin(int a[5][4]) { int i,j,s; s=a[0][0];

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)

C语言程序设计试题及答案

C语言程序设计试题及 答案 内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128)

C语言程序设计 一、选择题(共40分,每小题2分) 1、以下叙述不正确的是() A、一个C源程序可由一个或多个函数组成 B、一个C源程序必须包含一个main函数 C、C程序的基本组成单位是函数 D、在C程序中,注释说明只能位于一条语句的后面 2、下列四个选项中,是不合法的用户标识符的选项是() A、abc B、12AC C、sun D、 A2 3、设有语句int a=4;则执行了语句a+=a- =a*a后,变量a的值是() A、-24 B、0 C、4 D、16 4、下列运算符中优先级最高的是() A、< B、+ C、&& D、== 5、在C语言中,运算对象必须是整型数的运算符是() A、% B、/ C、%和/ D、 + 6、以下关于运算符的优先顺序的描述正确的是() A、关系运算符<算术运算符<赋值运算符<逻辑与运算符 B、逻辑与运算符<关系运算符<算术运算符<赋值运算符 C、赋值运算符<逻辑与运算符<关系运算符<算术运算符 D、算术运算符<关系运算符<赋值运算符<逻辑与运算符 7、在C语言中,如果下面的变量都是int类型,则输出的结果是() sum=pad=5;pAd=sum++,pAd++,++pAd;

printf(“%d\n”,pad); A、7 B、6 C、5 D、4 8、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是() A、 INPUT x、y、z; B、scanf(“%d%d%d”,&x,&y,&z); C、 scanf(“%d%d%d”,x,y,z); D、read(“%d%d%d”,&x,&y,&z); 9、假定从键盘输入23456< 回车 >,下面程序的输出结果是:() void main ( ) { int m,n; scanf(“%2d%3d”,&m,&n); printf(“m=%d n=%d\n”,m,n); } A、m=23 n=45 B、m=234 n=56 C、m=23 n=456 D、语句有错误 10、若运行时,给变量x输入12,则以下程序的运行结果是() main( ) { int x,y; scanf(“%d”,&x); y=x>12?x+10:x-12; printf(“%d\n”,y); } A、 0 B、 22 C、 12 D、10 11、C语言中while和do-while循环的主要区别()

相关文档
最新文档