文档库 最新最全的文档下载
当前位置:文档库 › C模拟题答案精选

C模拟题答案精选

C模拟题答案精选
C模拟题答案精选

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

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

四个备选项中

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

分。

1. 静态成员函数没有()

A. 返回值

B. this指针

C. 指针参数

D. 返回类型

答案:B

解析:(P107)静态成员函数是普通的函数前加入static,它具有函数的所有的特征:返回类型、

形参,所以使用(P107)静态成员函数,指针可以作为形参,也具有返回值。静态成员

是类具有的

属性,不是对象的特征,而this表示的是隐藏的对象的指针,因此静态成员函数没有this 指针

。静态成员函数当在类外定义时,要注意不能使用static关键字作为前缀。由于静态

成员函数在

类中只有一个拷贝(副本),因此它访问对象的成员时要受到一些限制:静态成员函

数可以直接

访问类中说明的静态成员,但不能直接访问类中说明的非静态成员;若要访问非静态

成员时,必

须通过参数传递的方式得到相应的对象,再通过对象来访问。

2. 假定AB为一个类,则执行“AB a(2), b[3],*p[4];”语句时调用该类构造函数的次数

为()

A. 3

B. 4

C. 5

D. 9

答案:B

解析:(P79)a(2)调用1次带参数的构造函数,b[3]调用3次无参数的构造函数,指针没有给它

分配空间,没有调用构造函数。所以共调用构造函数的次数为4。

3. 有关多态性说法不正确的是()

A. C++语言的多态性分为编译时的多态性和运行时的多态性

B. 编译时的多态性可通过函数重载实现

C. 运行时的多态性可通过模板和虚函数实现

D. 实现运行时多态性的机制称为动态多态性

答案:C

解析:(P171)多态性分为静态的和动态的。静态通过函数的重载来实现,动态是通过基类指针或

基类引用和虚函数来实现的。所以错误的是C项。

4. 假定一个类的构造函数为“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

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

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

5. 类MyA的拷贝初始化构造函数是()

A. MyA()

B. MyA(MyA*)

C. MyA(MyA&)

D. MyA(MyA)

答案:C

解析:(P80)复制即拷贝构造函数使用对象的引用作形参,防止临时产生一个对象,A 无参构造函

数,B是指针作为形参,D项是对象,所以选择C项。

6. 在C++中,函数原型不能标识()

A. 函数的返回类型

B. 函数参数的个数

C. 函数参数类型

D. 函数的功能

答案:D

解析:函数的声明,说明函数的参数、返回类型以及函数名,函数体即实现部分决定功能。所以

函数的原型不能决定函数的功能。

7. 友元关系不能()

A. 提高程序的运行效率

B. 是类与类的关系

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

D. 继承

答案:D

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

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

选择D项。

8. 实现两个相同类型数加法的函数模板的声明是()

A. add(T x,T y)

B. T add(x,y)

C. T add(T x,y)

D. T add(T x,T y)

答案:D

解析:(P63)实现两个相同类型数加法结果应该和操作数具有相同类型。进行加法运算后结果也

是和参数具有相同类型,需要返回值。A无返回值时要用void,B形参无类型,C形参y没有类型

,所以选择D项。

9. 在int a=3,int *p=&a;中,*p的值是()

A. 变量a的地址值

B. 无意义

C. 变量p的地址值

D. 3

答案:D

解析:*p代表引用a变量的值,p代表a的地址值。所以选择D项。

10. 下列不是描述类的成员函数的是()

A. 构造函数

B. 析构函数

C. 友元函数

D. 拷贝构造函数

答案:C

解析:(P109)构造函数、析构函数、拷贝构造函数都是特殊的成员函数,友元则不是成员函数。

所以选择C项。

11. 如果从原有类定义新类可以实现的是()

A. 信息隐藏

B. 数据封装

C. 继承机制

D. 数据抽象

答案:C

解析:(P129)继承指在原有类的基础上产生新类。数据封装即数据和操作组合在一起,形成类。

信息的隐藏,通过访问权限来实现。数据抽象,将事物的特征抽象为数据成员或服务。因此选择

C项。

12. 下面有关类说法不正确的是()

A. 一个类可以有多个构造函数

B. 一个类只有一个析构函数

C. 析构函数需要指定参数

D. 在一个类中可以说明具有类类型的数据成员

答案:C

解析:(P80)构造函数可以有参数、可以重载、因此可以有多个,A项正确。析构函数只有一个不

能重载、不能继承,没有返回值,B项正确,C项错误。

13. 在函数定义中的形参属于()

A. 全局变量

B. 局部变量

C. 静态变量

D. 寄存器变量

答案:B

解析:形参或函数中定义的变量都是局部变量。在函数外定义的变量是全局变量。形参只能用局

部变量,频繁使用的变量可以声明为寄存器变量,形参不能使用静态变量或寄存器变量。

14. 下列有关重载函数的说法中正确的是()

A. 重载函数必须具有不同的返回值类型

B. 重载函数参数个数必须相同

C. 重载函数必须有不同的形参列表

D. 重载函数名可以不同

答案:C

解析:(P59)函数的重载必须函数名相同而形参类型或个数不同,与返回值无关。

15. this指针存在的目的是()

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

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

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

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

答案:C

解析:(P86)C++要求函数在被调用之前,应当让编译器知道该函数的原型,以便编译器利用函数

原型提供的信息去检查调用的合法性,强制参数转换成为适当类型,保证参数的正确传递。对于

标准库函数,其声明在头文件中,可以用#include宏命令包含这些原型文件;对于用户自定义函

数,先定义、后调用的函数可以不用声明,但后定义、先调用的函数必须声明。一般为增加程序

的可理解性,常将主函数放在程序开头,这样需要在主函数前对其所调用的函数一一进行声明

,以消除函数所在位置的影响。所以选择C项。

16. 关于new运算符的下列描述中,错误的是()

A. 它可以用来动态创建对象和对象数组

B. 使用它创建的对象或对象数组可以使用运算符delete删除

C. 使用它创建对象时要调用构造函数

D. 使用它创建对象数组时必须指定初始值

答案:D

解析:(P78)new创建的对象数组不能指定初始值,所以调用无参的构造函数,选择D项。

17. 已知:p是一个指向类A数据成员m的指针,A1是类A的一个对象。如果要给m赋值为5,正确

的是()

A. A1.p=5;

B. A1->p=5;

C. A1.*p=5;

D. *A1.p=5;

答案:C

解析:(P118)A中p是指针即地址,错误;B选项中A1不是指针不能使用指向运算符->,错误

;“*”比“.”级别要高,所以D选项*A1.p=5相当于(*A1).p=5;错误。另外涉及到指向成员函数

时注意以下几点:

指向成员函数的指针必须于其赋值的函数类型匹配的三个方面:(1)参数类型和个数;(2)返回

类型;(3)它所属的类类型。

成员函数指针的声明:指向short型的Screen类的成员的指针定义如下:

short Screen::* ps_Screen;

ps_Screen可以用_height的地址初始化如下:short

Screen::*ps_Screen=&Screen::_height;

类成员的指针必须总是通过特定的对象或指向改类型的对象的指针来访问。是通过使用两个指

向成员操作符的指针(针对类对象和引用的.*,以及针对指向类对象的指针的->*)。

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

A. virtual void tt()=0

B. void tt(int)=0

C. virtual void tt(int)

D. virtual void tt(int){}

答案:A

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

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

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

A. 常成员函数

B. 构造函数

C. 虚函数

D. 静态成员函数

答案:B

解析:(P132)构造函数不能被继承。

20. 静态成员函数不能说明为()

A. 整型函数

B. 浮点函数

C. 虚函数

D. 字符型函数

答案:C

解析:(P108)使用关键字static声明的成员函数就是静态成员函数,静态成员函数也属于整个类

而不属于类中的某个对象,它是该类的所有对象共享的成员函数。

静态成员函数可以在类体内定义,也可以在类外定义。当在类外定义时,要注意不能使用

static关键字作为前缀。

由于静态成员函数在类中只有一个拷贝(副本),因此它访问对象的成员时要受到一些限制:静

态成员函数可以直接访问类中说明的静态成员,但不能直接访问类中说明的非静态成员;若要访

问非静态成员时,必须通过参数传递的方式得到相应的对象,再通过对象来访问。虚函数是非静

态的、非内联的成员函数。静态成员函数不能被说明为虚函数。

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

。错填、不填均无分。

1. 假设int a=1,b=2;则表达式(++a/b)*b--的值为___。

答案:2

[解析]前缀++或――表示先使变量值变化,再使用,这和后缀恰恰相反。但是编译

cout<<(++a/b)*b--时,先++a/b值为1,后1*b--,先取b=2,结果为2,再让b=1。

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

答案:(P173)纯虚

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

3. 一个抽象类的派生类可以实例化的必要条件是实现了所有的___。

答案:(P173)纯虚函数的定义

[解析]抽象类只因有纯虚函数,所以不能被实例化,所以派生类要实例化必须对纯虚函数进行

定义。

4. 下面程序的输出结果为___。

#include

void main()

{int num=2,i=6;

do

{i--;

num++;

}while(--i);

cout<

}

答案:5

[解析]do-while循环,前缀先使i减少1后判断是否为零,不为零时再次执行循环,为零退出

循环。循环值执行3次就退出,所以结果为5。

5. 静态成员函数、友元函数、构造函数和析构函数中,不属于成员函数的是___。

答案:(P109)友元函数

[解析]友元函数不是类成员,但可以访问类成员。类的封装性保证了数据的安全,但引入友元

,虽然访问类是方便了,但确实破坏类访问的安全性。

6. 在用C++进行程序设计时,最好用___代替malloc。

答案:(P10)new

[解析]new与delete是C++语言特有的运算符,用于动态分配和释放内存。new用于为各种数据

类型分配内存,并把分配到的内存首地址赋给相应的指针。new的功能类似于malloc()函数。

使用new的格式为:

<指针变量>new<数据类型>;

其中,<数据类型>可以是基本数据类型,也可以是由基本类型派生出来的类型;<指针变量>取得

分配到的内存首地址。new有3种使用形式。

(1)给单个对象申请分配内存

int *ip;ip=new int;//ip指向1个未初始化的int型对象

(2)给单个对象申请分配内存的同时初始化该对象

int *ip;ip=new int(68);//ip指向1个表示为68的int型对象

(3)同时给多个对象申请分配内存

int *ip;ip=new int[5];//ip指向5个未初始化的int型对象的首地址

for(int i=0;i<5;i++)ip[i]=5*i+1;//给ip指向的5个对象赋值

用new申请分配内存时,不一定能申请成功。若申请失败,则返回NULL,即空指针。因此,在程

序中可以通过判断new的返回值是否为0来获知系统中是否有足够的空间供用户使用。

7. 由const修饰的对象称为___。

答案:(P113)常对象

[解析]使用const关键字说明的成员函数称为常成员函数,使用const关键字说明的对象称为常

对象。

常成员函数的说明格式如下:<返回类型说明符><成员函数名>(<参数表>)const;

常成员函数不更新对象的数据成员,也不能调用该类中没有用const修饰的成员函数。常对象

只能调用它的常成员函数,而不能调用其他成员函数。const关键字可以用于参与重载函数的区

分。

8. 在C++程序设计中,建立继承关系倒挂的树应使用___继承。

答案:(P138)单

[解析]一个基类可以派生多个子类,一个子类可以再派生出多个子类,这样就形成了一个倒立

的树。

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

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

10. 不同对象可以调用相同名称的函数,但执行完全不同行为的现象称为___。

答案:(P167)多态性

[解析]多态性的概念。虚函数是实现多态的基础,运行过程中的多态需要同时满足3个条件

:(1)类之间应满足子类型关系。(2)必须要有声明的虚函数。(3)调用虚函数操作的是指向对象

的指针或者对象引用;或者是由成员函数调用虚函数(如果是在构造函数或析构函数中调用虚函

数,则采用静态联编)。

11. this指针始终指向调用成员函数的___。

答案:对象

this指针是隐藏的指针,它指向调用函数的对象。

12. 预处理命令以___符号开头。

答案:(P183)#

[解析]文件包含、预处理和编译都是以#开头。

13. 类模板用来表达具有___的模板类对象集。

答案:(P145)相同处理方法

[解析]模板特点是不同的数据具有相同的处理方法的抽象。

14. C++程序的源文件扩展名为___。

答案:(P21)cpp

[解析]源程序*.cpp,目标文件为*.obj,可执行程序*.exe。

15. 在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是___的头文件。

答案:(P7)自定义

[解析]#include装入文件有两种方式<>和“”,一是系统的,一是自定义文件。16. vector类中向向量尾部插入一个对象的方法是___。

答案:(P157)push_back

17. C++语言中如果调用函数时,需要改变实参或者返回多个值,应该采取___方式。答案:(P51)传地址或引用

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

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

18. 语句序列

ifstream infile;

infile.open(“data.dat”);

的功能可用一个语句实现,这个语句是___。

答案:(P199)ifstream infile(“data.dat”);

[解析]void ifstream::open(const char *fname,int mode=ios::in,int

access=filebuf::openprot);

ifstream::ifstream(const char *fname,int mode=ios::in,int

access=filebuf::openprot);

其中,第一个参数是用来传递文件名的;第二个参数mode的值决定文件将如何被打开;第三个参

数access的值决定文件的访问方式,一般取缺省值filebuf::openprot,表示是普通文件。

mode的取值如下:(1)ios::in:打开一个文件进行读操作,而且该文件必须已经存在;(2)ios::nocreate:不建立新的文件。当文件不存在时,导致open()失败

;(3)ios::noreplace:不修改原来已经存在的文件。若文件已经存在,导致open()失败

;(4)ios::binary:文件以二进制方式打开,缺省时为文本文件。

19. 如果要把类B的成员函数void fun()说明为类A的友元函数,则应在类A中加入语句___。

答案:(P111)friend void B::fun();

[解析]声明成员函数作为另外一个类的友元函数时,使用类作用域运算符::。20. 在编译指令中,宏定义使用___指令。

答案:(P6、97)#define

[解析]静态成员是所有对象共享的特征,也就是类的特征。

三、改错题(本大题共5小题,每小题2分,共10分)下面的类定义中有一处错误,请用下

横线标出错误所在行并给出修改意见。

1. #include

#include

#include

using namespace std;

class A

{public:

A(const char *na){strcpy(name,na);}

private:

char name[80];

};

class B:public A

{ public:

B(const char *nm):A(nm){}

void show();

};

void B::show()

{ cout<<"name:"<

}

void main()

{ B b1("B");

b1.show();

}

答案:private:因为name如果是私有的,在派生类中无法访问,而基类没有提供成员函数来访问

name,所以更改name访问权限为公有或保护,这样对于派生类来说是透明的。

[修改]public:或protected:

2. #include

void f(int *a,int n)

{int i=0,j=0;

int k=0;

for(;i

{k=a[i];

a[i]=a[n-i-1];

a[n-i-1]=k;

}

}

void show(int a[],int n)

{for(int i=0;i

cout<

cout<

}

void main()

{int p[5];

int i=0,n=5;

for(;i<5;i++)

{p[i]=i;}

f(*p,n);

show(p,n);

答案:[修改]f(p,n);

[解析]f(*p,n);f函数第一个参数是指针而调用时使用*p,*p表示p所指向的变量或对象,不是

地址即不是指针。

3. #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;

4. #include

void main()

{int i,*p;

i=10;

*p=i;

cout<<*p<

}

答案:*p=i;指针即地址没有被赋值。

[修改]p=&i;

5. #include

class A

{private:

int x,y;

public:

void fun(int i,int j)

{x=i;y=j;}

void show()

{cout<

};

void main()

{A a1;

a1.fun(2);

a1.show();

}

答案:void fun(int i,int j)调用时有一个参数,形参有两个,可以使第二个带默认值。

[修改]void fun(int i,int j=0)

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

1. 完成下面类中成员函数的定义。

#include

#include

using namespace std;

class str

{private:

char *st;

public:

str(char *a)

{set(a);

}

str & operator=(____)

{delete st;

set(a.st);

return *this;

}

void show(){cout<

~str(){delete st;}

void set(char *s)//初始化st

{_____

strcpy(st,s);

}

};

void main()

{str s1("he"),s2("she");

s1.show(),s2.show();

s2=s1;

s1.show(),s2.show();}

答案:str &a,st=new char[strlen(s)+1];

[解析]对“=”运算符进行重载,调用时s2=s1,都是对象,所以形参使用对象的引用,不

要使用对象作为形参(产生临时对象)。使用strcpy进行字符的复制,st必须有一定的空间,空

间是strlen(s)+1(‘\0’作为结束符,strlen得到的长度不包括结束符)。

2. 一个类的头文件如下所示,num初始化值为5,程序产生对象T,且修改num为10,并使用

show()函数输出num的值10。

#include

class Test

{private:

static int num;

public:

Test(int);

void show();

};

_________

Test::Test(int n)

{num=n;}

void Test::show()

{cout<

void main()

{Test t(10);

_________

}

答案:int Test::num=5;,t.show();

[解析]静态成员在类外初始化,注意它的格式。调用show输出。

3. 下面是一个三角形三边,输出其面积C++程序,在下划线处填上正确的语句。

#include

#include

void area()

{double a,b,c;

cout<<"Input a b c:";

________

if(a+b>c&&a+c>b&&c+b>a)

{double l=(a+b+c)/2;

_______

cout<<"The area is:"<

}

else

cout<<"Error"<

}

void main()

{area();}

答案:cin>>a>>b>>c;,double s=sqrt(l*(l-a)*(l-b)*(l-c));

[解析]输入三个边的长度,由公式得出三角形的面积double

s=sqrt(l*(l-a)*(l-b)*(l-c));

4. 下面程序中Base是抽象类。请在下面程序的横线处填上适当内容,以使程序完整,并使程序

的输出为:

Der1 called!

Der2 called!

#include

class Base

{public:

_______________;

};

class Der1:public Base

{public:

void display(){cout<<"Der1 called!"<

};

class Der2:public Base

{public:

void display(){cout<<"Der2 called!"<

};

void fun(______________)

{p->display();}

void main()

{Der1 b1;

Der2 b2;

Base * p=&b1;

fun(p);

p=&b2;

fun(p);

}

答案:virtual void display()=0;,Base *p

[解析]抽象类有纯虚函数,派生类为display。结果fun函数用指针做参数。

5. 下面程序中用来求数组和。请在下面程序的横线处填上适当内容,以使程序完整,并使程序

的输出为:s=150。

#include

class Arr

{int *a,n;

public:

Arr():a(0),n(0){}

Arr(int *aa, int nn)

{n=nn;

a=new int[n];

for(int i=0;i

*(a+i)=*(aa+i);

}

~Arr(){delete a;}

_____________;

{return *(a+i);}

};

void main()

{int b[5]={10,20,30,40,50};

Arr a1(b,5);

int i=0,s=0;

_____________

s+=a1.GetValue(i);

cout<<"s="<

}

答案:int GetValue(int i),for(;i<5;i++)

[解析]函数调用GetValue,由此可知要定义该函数,循环求和,循环5次。

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

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

#include

class example

{int a;

public:

example(int b=5){a=b++;}

void print(){a=a+1;cout <

void print()const

{cout<

};

void main()

{example x;

const example y(2);

x.print();

y.print();

}

答案:62

[解析]x是普通对象,调用普通的print函数;而y常对象,调用常成员函数。

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

#include

void main()

{ int *p1;

int **p2=&p1;

int b=20;

p1=&b;

cout<<**p2<

}

答案:20

[解析]p1指向b,而p指向p1的地址。*p2表示p1的地址,p1的地址就是&b,即*p2是&b,所以

**p2就是b变量的值。

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

#include

class Base

{private:

int Y;

public:

Base(int y=0) {Y=y;cout<<"Base("<

~Base() {cout<<"~Base()\n";}

void print() {cout <

};

class Derived:public Base

{private:

int Z;

public:

Derived (int y, int z):Base(y)

{Z=z;

cout<<"Derived("<

}

~Derived() {cout<<"~Derived()\n";}

void print()

{Base::print();

cout<

}

};

void main()

{Derived d(10,20);

d.print();

}

答案:Base(10)

Derived(10,20)

10 20

~Derived()

~Base()

[解析]派生类对象,先调用基类构造函数输出Base(10),后调用派生类构造函数输出

Derived(10,20),后执行d.print(),调用派生类的print,再调用Base::print()输出10,后返回

输出z的值20。后派生类析构,再基类析构。

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

#include

class A

{public:

A()

{cout<<"A 构造函数\n";fun();}

virtual void fun()

{cout<<"A::fun() 函数\n";}

};

class B:public A

{public:

B()

{cout<<"B构造函数\n";fun();}

void fun() {cout<<"B::fun() calle函数\n";}

};

void main()

{B d;}

答案:A构造函数

A::fun()函数

B构造函数

B::fun()calle函数

[解析]定义派生类对象,首先调用基类构造函数,调用A类中fun(),然后调用B类的构造函数

,在调用B的fun函数。

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

1. 编写类String的构造函数、析构函数和赋值函数和测试程序。

已知类String的原型为:

#include

#include

class String

{public:

String(const char *str=NULL); // 普通构造函数

String(const String &other); // 拷贝构造函数

~String(); // 析构函数

String & operator=(const String &other); // 赋值函数

void show()

{cout<

}

private:

char *m_data; // 用于保存字符串

};

答案:String::~String()

{delete[]m_data;//由于m_data是内部数据类型,也可以写成delete m_data; }

String::String(const char *str)

{if(str==NULL)

{m_data=new char[1];//若能加NULL判断则更好

*m_data=\0;

}

else

{int length=strlen(str);

m_data=new char[length+1]; //若能加NULL判断则更好

strcpy(m_data, str);

}

}

String::String(const String &other)

{int length=strlen(other.m_data);

m_data=new char[length+1];//若能加NULL判断则更好

strcpy(m_data, other.m_data);

}

String & String::operator=(const String &other)

{if(this==&other)

return *this;

delete[]m_data;

int length=strlen(other.m_data);

m_data=new char[length+1];//若能加NULL判断则更好

strcpy(m_data, other.m_data);

return *this;

}

void main()

{String str1("aa"),str2;

str1.show();

str2=str1;

str2.show();

String str3(str2); str3.show();

}__

最新C语言程序设计模拟试题5(附答案)

《C语言程序设计》模拟试题五 一、填空题(40分) 1.计算机软件分为和;C语言适合编 写 . 2.十进制数35=( ) 2 =( ) 8 =( ) 16 3.已知一个数[X]补=11111001,求[X] 原 = 及 X= . 4.设x=2.5,a=7,y=4.7.求下列算术表达式的值. x+a%3*(int)(x+y)%2/3= . 5.将算式|3-e x ln(1+Y)|写成C语言表达 式. 6.设a=5,b=9.则printf(“a=%d,b=%4d”,a,b)输出为: . 7.用C语句写出累加器、累乘 器、计数器. 8.上机操作时,CTRL+F9键的功能是 ,F2键的功能 是ALT+F5键的功能是 . 9.下列程序段对应的数学表达式 是 int t,n,s=0; scanf(“%d”,&n); for(i=1;i<=n;i++) { t=1; for(j=1;j<=i;j++) t=t*j; s=s+t;} 10.以下程序用“顺序查找法”查找数组a中是否存在某一关键字. 请填空. main() {int a[10]={25,57,48,38,12,92,88,48,16,25}; int i,x; scanf(“%d”,&X); for(i=0;i<10;i++) if (x==a[i]) {printf(“Found!The index:%d\n”a[i]);(1) ;} if (2) printf(“Can not found!”); }

二、单选题(15分) 1.一个C程序的执行是从 . A.本程序的main()函数开始,到main函数结束. B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束. C.本程序的main()函数开始,到本程序文件的最后一个函数结束. D.本程序文件的第一个函数开始,到本程序main函数结束. 2.根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式 为 . main() { int a,b,c; 输入语句; printf(“%c%c%c”,a,b,c); } 输入形式:A B C 输出形式:ABC A.scanf(“%c%c%c”,&a,&b,&c); B.scanf(“%c,%c,%c”,&a,&b,&c); C.scanf(“%c %c %c”,&a,&b,&c); D.scanf(“%c%c”,&a,&b); 3.给出下列程序的运行结果 . main() {int i,j,k,x=0; for(i=2;i<=5;i++) for(j=7;j>=3;j-=2) for(k=4;k<=11;k+=4) x++; printf(“x=%d”,x);} A.x=64 B. x=36 C.x=60 D. x=24 4.若x,i,j和k都是int型变量,则表达式计算下面表达式后,x的值 为 . x=(i=4,j=16,k=32) A. 4 B. 16 C.32 D.52 5.以下不正确if语句形式是 . A.if ( x>y && x!=y ); B.if ( x = = y ) x + = y; C. if ( x != y ) scanf(“%d”,&x) else scanf(“%d”,&y);

C语言程序设计模拟试题1附答案

《C语言程序设计》模拟试卷一 一、单项选择题(每题2分,共30分) 1、下列有关C语言的叙述中错误的是()。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被看作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是()。 A) MAIN B) _HJ C) 2ong D) LINE1 3、下列符号中用来表示C语言中的回车换行的是()。 A) \r B) \n C) \b D) \t 4、如有如下定义:int a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为()。 A) 1, 1 B) 1, 2 C) 2, 2 D) 2, 1 5、已知ch为字符型变量,下面表达式中正确的是()。 A) ch=’\xff ’B) ch=’\ff ’C) ch=’ ff ’D) ch=” ff ” 6、以下能正确定义一维数组的是()。 A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”; C) char a[ ]=”012345”;D) char a[5]={0,1,2,3,4,5}; 7、以下语句中能正确定义变量并赋初值的是()。 A) char c=65; B) float f=f+1.1; C) double x=12.3e3.6; D) int m=n=2.0; 8、在执行下列程序时输入:1357924,则程序的运行结果为()。 main( ) { int x, y; scanf(“%2d%2d”,&x,&y); printf(“%2d”,x*y); } A) 13 B) 1357 C) 74 D) 741 9、执行下列程序段后输出的结果是()。

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语言程序设计模拟试题A附答案

《C语言程序设计》模拟试卷A 一、单项选择题(每题2分,共20分) 1、下列有关C语言的叙述中错误的就是(D)。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被瞧作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的就是(C)。 A) MAIN B) _HJ C) 2ong D) LINE1 3、以下能正确定义一维数组的就是(C)。 A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”; C) char a[ ]=”012345”;D) char a[5]={0,1,2,3,4,5}; 4、执行下列程序段后输出的结果就是(C)。 x = 9; while (x > 7) { printf(“*”); x- -; } A) **** B) *** C) ** D) * 5、设char str1[10] = “ABCDE”, str2[10] = “xyz”; 则执行语句 printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果就是(D)。 解析: strcpy(str1,str2); 后,str1[] 里就是"XYZ", Z 后面有字符串结束符 strcpy(str1,str2); 执行后,函数返回的就是str1, 因为str1[] 里就是新值"XYZ", 而 strlen(strcpy(str1,str2)) 就就是strlen(str1的新值),所以得3。 strlen 统计到字符串结束符以前,即,不计入字符串结束符。 A) 9 B) 8 C) 5 D) 3 6、若用数组名作为函数调用的实参,则传递给形参的就是(A)。

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

第一章基础知识 一.填空 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语言程序设计教程(第2版)课后题及模拟题参考答案

c语言程序设计教程(第2版)课后题及模拟题参考答案 习题1 1-1 填空题 1.函数 2.主函数main(),主函数main() 3.主函数main() 4.函数首部,函数体 5.{, } 6./*, */ 7.顺序结构,选择结构,循环结构 8..c, .obj, .exe 1-2 思考题 1.结构化程序设计是指:为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。其基本结构包括顺序结构、选择结构和循环结构三种。 2.算法是对具体问题求解步骤的一种描述。计算机算法的表达工具通常采用以下几种方法:(1)用自然语言表示算(2)用流程图表示算法(3)用伪代码表示算法(4)用程序设计语言表示算法 3.语言简洁、紧凑,使用方便、灵活; 支持结构化程序设计;运算符丰富;数据类型丰富;较强的编译预处理功能;C语言的可移植性好;C语言本身既有一般高级语言的优点,又有低级(汇编)语言的特点;语法限制不太严格,程序设计自由度大。 1-3 编程题 1. 试参照本章例题编写计算梯形面积的C语言程序,梯形的上底、下底和高分别用a,b,h表示,并用a=10,b=20,h=5测试所编写的程序。 #include "stdio.h" main() { float a, b, h, s; a=10; b=20; h=5; s=(a+b)*h/2; printf("s=%f\n" , s ); } 2. 编写程序显示如图1.11所示信息。 图1.11 显示信息 #include "stdio.h" main()

{ printf("******************************\n"); printf("* hello world *\n"); printf("******************************\n"); } 习题2 2-1 单选题 1~5 DBDCA 6~10 DCABA 11~12 CA 2-2 思考题 1.2.000000 2.1,0.5 3.9,2 4.6 5.100,d 6.(1)20 (2)0 (3)60 7. (1)10,6,4 (2)6,9,15 (3)3,60,83 8. 55 习题3 3-1 选择题 1-5BDABC 6-10ADCAC 11-12BB 3-2 填空题 1. 3 2.0261 3.0x10 4. 2, 1 互换a,b的值 5. 6.6 6.–003 8.7 7. 5.0,4,c=3 8.i=10,j=20 9.(1) 65 (2) 65,A (3) 56.123400,123.456001 (4) 3.141600 (5) 8765.432

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语言程序设计模拟试题2(附答案)

《C语言程序设计》模拟试卷二 一、填空题。(每空2分,共30分) 1.设有变量说明语句 int x=1,y=2; 则执行下述printf语句的输出结果是___1.000000___ _____。 printf("%f\n",1.0+x/y); 2.执行下述程序 #include main() { int x,y; scanf("%2d%*2s%1d",&x,&y); printf("%d\n",x+y); } 若从键盘输入 12345671 则程序的输出结果是__17______。 3.以下程序的功能是:从键盘上输入若干名学生的成绩(百分制,可带小数,以输入负数或0为结束标志),统计并输出最高成绩和最低成绩。请填空。 #include main() {

float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while ( X>0&&X<=100 ) { if (x>amax) amax=x; else if (x

_k++ _________; d=1.0/(k*(k+1)); } while (k<=n); printf("%f\n",s); 5.执行下述程序的输出结果是_-3 -4 0 4 4 3___ ____。 #inclued main() { int a[6],i; for (i=0;i<6;i++) { a[i]=9*(i-2+4*(i>3))%5; printf("%3d",a[i]); } printf("\n"); } 6.执行下述程序时的输出结果是____6_____ ________。 #include main() { int a[]={2,4,6,},*ptr=&a[0],x=8,y,z; for (y=0;y<3;y++) z=(*(ptr+y)

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语言答案

此答案为自己所出,若有不对之处请谅解,并希望能留言 单选题(共60题,每题1分,共60分) 1. 下列符号串中,属于C语言合法标识符的个数为 (B)。 _1_2_3,a-b-c,float,9cd,a3b4 A:1 B:2 C:3 D:4 2. 下列能为字符变量 a 赋值的是:char a= (C)。 A:'ab' B:"a" C:'\0' D:"\0" 3. 在下列字符序列中,合法的标识符是(B)。 A:P12.a B:stud_100 C:$water.1 D:88sum 4. 下列用于printf函数的控制字符常量中,代表tab

的字符常量是(B)。 A:'\b' B:'\t' C:'\r' D:'\f' 5. 下列用于printf函数的控制字符常量中,代表退格的字符常量是(A)。 A:'\b' B:'\t' C:'\r' D:'\n' 6. 如有以下程序:unsigned int a=6; int b=-20; char c; c=(a+b>6); 则c的值为(C)。(int转换为unsigned ) A:6 B:-14 C:1 D:0 7. 关于C语言,以下不正确的叙述是(B)。 A:在C语言程序设计中,逗号运算符的优先级最低 B:在C语言程序设计中,var和VAR是两个相

同的变量 C:C语言也支持重载 D:此处的两个语句int a; a=-13.06;在程序编译中将会提示出错 8. 若有定义: int a=2,*p; float x=1, y=2; char e=‘w’; 则以下用法不正确的是(B)。 A:printf("%c",e+a); B:p=&x; C:a *=y+x; D:x=y=e; 9. int x=20; printf("%d\n",~x); 以上程序片段的输出是(B)。 A:235 B:-21 C:-20 D:-11 10. 在C语言中,要求运算数必须是整型的运算符是 (D)。 A:/

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语言程序设计试题及 答案 内部编号:(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循环的主要区别()

C语言模拟题目及答案

:题.选择一1.设float x,y;则以下不合法的赋值语句是______。 x*=y+8; x=y=0; ++x; y=(x%2)/10; 2. 设int k=017,g=111; 执行语句printf(%d,%x,k,g); 的输出是_____。 15,6f f,6f f,111 15,111 3. 对语句for(i=0; ; i++);可理解为_____。 for(i=0;0;i++); for(i=0;!0;i++); for(i=0;3>4;i++); for(i=0;!5;i++); 4. 下面对数组的初始化,错误的是_____。 char s[5]=abc; char s[5]={'a','b','c'}; char s[5]= ; char s[5];s=abc; 5. 设有程序段:int k=10;while(k=0)k=k-1;则下面描述中正确的是______。 是无限循环 while循环执行10次 循环体语句一次也不执行循环体语句只执行一 次 6. 如果x为int型且为5,则执行if(x--<5) printf(%d,x);else printf(%d,x++);后输出结果是______。 3 4 5 6 7. 有如下函数调用语句func(rec1, rec2+rec3, (rec4, rec5));,该函数调用 语句中,含有的实参个数是____。 3 4 5 有语法错 8. 在C语言的if语句中,可用作条件判断的表达式为_____。 算术表达式逻辑表达式 关系表达式任意表达式 9. 若给定条件表达式(n)?(c++):(c--),则与表达式中(n)等价的表达式是_____。 n==0 n==1 n!=0 n!=1 10. 一个函数返回值的类型取决于_____。 调用该函数的主调函数的类型定义函数时指定或缺省 的函数类型调用函数时临时决定 return语句中表达式的类型答案:D A B D C B A D C B 二.填空题: 1.如果static int y=8;main(){ int y=3;printf(%d, y);}则输出结果是______。 2. 若int x=120,y=50; 执行printf(%d,(y,x));后输出结果是______。 3. 若int i, a[10]; 则执行语句 for(i=9;i>=0;i--) a[i]=i+5; 后,a[8]的 值为__________。 4. 在C语言中是没有输入输出语句的,而是通过提供库函数______和printf

C程序设计试题及答案

20XX年lO月高等教育自学考试全国统一命题考试 C++程序设计试卷 (课程代码04737) 本试卷共8页,满分l00分,考试时间l50分钟。 考生答题注意事项: 1.本卷所有试题必须在答题卡上作答。答在试卷上无效,试卷空白处和背面均可作草稿纸。2.第一部分为选择题。必须对应试卷上的题号使用2B铅笔将“答题卡”的相应代码涂黑。3.第二部分为非选择题。必须注明大、小题号,使用0.5毫米黑色字迹签字笔作答。4.合理安排答题空间,超出答题区域无效。 第一部分选择题 一、单项选择题(本大题共20小题,每小题l分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题卡”的相应代码涂黑。未涂、错涂或多涂均无分。 1.在编译指令中,宏定义使用的指令是 A.#include B.#define C.#if D.#else 2.基类中的protected成员,通过哪种派生,其在派生类中的可见性为protected? A.public和private B.public和protected C.protected和private D.仅protected 3.基类中的public成员,通过public派生,基在派生类中的可见性为 A.不可访问 B.private C.protected D.public 4.不同对象调用同名函数,但导致完全不同行为的现象称为 A.抽象 B.封装 C.继承 D.多态性 5.头文件扩展名为 A.cpp B.h C.ub D.ob 6.声明函数为内联使用的关键字为 A.const B.inline C.short D.signed 7.设类A中有静态数据成员x,两个A类对象a和b,若a.x=10,则b.x的值为 A.9 B.10 C.1l D.不能确定

C语言程序设计模拟题(含答案).doc

C语言程序设计试题 一、单项选择题(本题共 25 小题,每小题 2 分,共 50 分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其正确答案涂写在答题卡 上。错选、多选或未选均无分。 1.以下正确的 C 语言自定义标识符是 __A____。 A. _1a B. 2a_ C. do D. 2.在 C 语言中,错误的常数表示是 ___D____。 A. 0L C. '6' D. 设 int a, x=2; 执行语句 a=x>03*x:x=10 ;后,变量x 的值是 ___B____。 A. 1 B. 2 C. 6 D. 10 4.设有以下程序段: int x=2,y=2,z=0,a; a=++x||++y&&z++; printf("%d,%d,%d\n",x,y,z); 执行后输出的结果是 ___C______。 A.2,2,0 B. 3, 3,1 C.3,2,0 D.3,2,1 5. 在 C 语言中,字符串"\\TOP\t\65\""的长度是__B_____。 A. 5 B. 7 C. 8 D. 12 6. 设 float x ,由键盘输入: , 能正确读入数据的输入语句是 ___C_____A_。 A. scanf("%5f",&x) B. scanf("%5d",&x); C. scanf("%f",x); D. scanf("%s",&x); 7.逗号表达式a=2*6,a*3,a+5的值是___B______。

A. 12 B. 17 C. 36 D. 41 8.C 语言程序中 , 整型常量的书写形式不包括 ___A______。 A.二进制 B.八进制 C. 十进制 D.十六进制 9.在C语言中,下列运算符中结合性属于自右向左的是________B_。 A. && B. -- C.<< D. -> 10.设int x;,则与计算︱x︱等价的表达式是___B______。 A. x>0-x:x B. x>0x:-x C. x<0x:-x D. x<0-x:-x 11.执行下面的程序段后, k 的值是 __A_____B。 int k=1,n=325; do { k*=n%10;n/=10;}while(n); A. 3 B. 30 C. 523 D. 325 12. 表达式的值为0 的是 ________C_。 A. 5/5%5 B. 5>2 C. !4 D. 0x7&&7 13. 设 int a=11, b=2 ;执行下述程序段后,变量 a 和 b 的值分别是 ___B____。 do { a/=b++; }w hile(a>b); A. 1,3 B. 1,4 C. 2,3 D. 2,4 14.在C语言中,下列错误的说法是_______C。 A.函数可以递归调用

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

装订线

装订线

装订线

订 线

庄子云:“人生天地之间,若白驹过隙,忽然而已。”是呀,春秋置换,日月交替,这从指尖悄然划过的时光,没有一点声响,没有一刻停留,仿佛眨眼的功夫,半生已过。 人活在世上,就像暂时寄宿于尘世,当生命的列车驶到终点,情愿也罢,不情愿也罢,微笑也罢,苦笑也罢,都不得不向生命挥手作别。 我们无法挽住时光的脚步,无法改变人生的宿命。但我们可以拿起生活的画笔,把自己的人生涂抹成色彩靓丽的颜色。 生命如此短暂,岂容随意挥霍!只有在该辛勤耕耘的时候播洒汗水,一程风雨后,人生的筐篓里才能装满硕果。 就算是烟花划过天空,也要留下短暂的绚烂。只有让这仅有一次的生命丰盈充实,才不枉来尘世走一遭。雁过留声,人过留名,这一趟人生旅程,总该留下点儿什么! 生活是柴米油盐的平淡,也是行色匆匆的奔波。一粥一饭来之不易,一丝一缕物力维艰。 前行的路上,有风也有雨。有时候,风雨扑面而来,打在脸上,很疼,可是,我们不能向生活低头认输,咬牙抹去脸上的雨水,还有泪水,甩开脚步,接着向前。 我们需要呈现最好的自己给世界,需要许诺最好的生活给家人。所以,生活再累,不能后退。即使生活赐予我们一杯不加糖的苦咖啡,皱一皱眉头,也要饮下。 人生是一场跋涉,也是一场选择。我们能抵达哪里,能看到什么样的风景,能成为什么样的人,都在于我们的选择。 如果我们选择面朝大海,朝着阳光的方向挥手微笑,我们的世界必会收获一片春暖花开。如果我们选择小桥流水,在不动声色的日子里种篱修菊,我们的世界必会收获一隅静谧恬淡。 选择临风起舞,我们就是岁月的勇者;选择临阵脱逃,我们就是生活的懦夫。 没有淌不过去的河,就看我们如何摆渡。没有爬不过去的山,就看我们何时启程。 德国哲学家尼采说:“每一个不曾起舞的日子,都是对生命的辜负。”让我们打开朝着晨光的那扇窗,迎阳光进来,在每一个日出东海的日子,无论是鲜衣怒马少年时,还是宠辱不惊中年时,都活出自己的明媚和精彩。 时间会带来惊喜,只要我们不忘记为什么出发,不忘记以梦为马,岁月一定会对我们和颜悦色,前方也一定会有意想不到的惊喜。 人生忽如寄,生活多苦辛。 短暂的生命旅程, 别辜负时光,别辜负自己。 愿我们每一个人自律、阳光、勤奋,

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