C程序设计上练习答案.docx

上传人:b****2 文档编号:2174240 上传时间:2022-10-27 格式:DOCX 页数:20 大小:21.65KB
下载 相关 举报
C程序设计上练习答案.docx_第1页
第1页 / 共20页
C程序设计上练习答案.docx_第2页
第2页 / 共20页
C程序设计上练习答案.docx_第3页
第3页 / 共20页
C程序设计上练习答案.docx_第4页
第4页 / 共20页
C程序设计上练习答案.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

C程序设计上练习答案.docx

《C程序设计上练习答案.docx》由会员分享,可在线阅读,更多相关《C程序设计上练习答案.docx(20页珍藏版)》请在冰豆网上搜索。

C程序设计上练习答案.docx

C程序设计上练习答案

Companynumber【1089WT-1898YT-1W8CB-9UUT-92108】

 

C程序设计上练习答案

一、单项选择题

1.编写C++程序一般需经过的几个步骤依次是()

A.编辑、调试、编译、连接

B.编辑、编译、连接、运行

C.编译、调试、编辑、连接

D.编译、编辑、连接、运行

答案:

B

2.设有定义inti;doublej=5;,则10+i+j值的数据类型是()

A.int

B.double

C.float

D.不确定

答案:

B

3.有关C++编译指令,以下叙述正确的是()

A.C++每行可以写多条编译指令

B.#include指令中的文件名可含有路径信息

C.C++的编译指令可以以#或C++中不管#if后的常量表达式是否为真,该部分都需要编译

答案:

B

4.在下列成对的表达式中,运算结果类型相同的一对是()

A./和/2

B.5/和5/2

C./2和7/2

D.8/2和/

答案:

A

5.在C++中不返回任何类型的函数应该说明为()

A.int

B.char

C.void

D.double

答案:

C

6.决定C++语言中函数的返回值类型的是()

A.return语句中的表达式类型

B.调用该函数时系统随机产生的类型

C.调用该函数时的主调用函数类型

D.在定义该函数时所指定的数据类型

答案:

D

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

A.函数的返回类型

B.函数参数的个数

C.函数参数类型

D.函数的功能

答案:

D

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

A.变量a的地址值

B.无意义

C.变量p的地址值

D.3

答案:

D

9.一个函数功能不太复杂,但要求被频繁调用,则应把它定义为()

A.内联函数

B.重载函数

C.递归函数

D.嵌套函数

答案:

A

10.适宜采用inline定义函数情况是()

A.函数体含有循环语句

B.函数体含有递归语句

C.函数代码少、频繁调用

D.函数代码多、不常调用

答案:

C

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

A.全局变量

B.局部变量

C.静态变量

D.寄存器变量

答案:

B

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

A.全局变量

B.局部变量

C.静态变量

D.函数

答案:

B

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

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

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

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

D.重载函数名可以不同

答案:

C

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

A.实参是形参的备份

B.实参与形参无联系

C.形参是实参的备份

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

答案:

D

15.在C++中,使用流进行输入输出,其中用于屏幕输入()

A.cin

B.cerr

C.cout

D.clog

答案:

A

16.若有以下定义,则说法错误的是()

inta=100,*p=&a;

A.声明变量p,其中*表示p是一个指针变量

B.变量p经初始化,获得变量a的地址

C.变量p只可以指向一个整型变量

D.变量p的值为100

答案:

D

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

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

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

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

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

答案:

D

18.3.可替换#definePI的语句是()

A.floatPI;

B.constfloatPI=;

C.constPI;

D.const;

答案:

B

19.如果一个函数没有返回值,则应选择下列说明符中的()。

A.doubleB.voidC.intD.char

答案:

B

20.8.下列哪种默认参数的声明是不正确的(C)

A.intmax(inta,intb,intc,intd=0);

B.intmax(inta,intb,intc=0,intd=0);

C.intmax(inta=0,intb,intc=0,intd=0);

D.intmax(inta,intb=0,intc=0,intd=0);

21.包含哪种语句的函数不能声明为内联函数(A)

A.循环B.变量自增自减...else…D.变量声明

22.已知:

constchar*ptr;那么ptr应该是(A)。

A、指向字符串常量的指针

B、指向字符串的常量指针

C、指向字符的常量的指针

D、指向字符常量的指针

23.11、在C++中,关于下列设置参数默认值的描述中,正确的是(C).

A.不允许设置参数的默认值

B.设置参数默认值只能在定义函数时设置

C.设置参数默认值时,应该是先设置右边的再设置左边的

D.设置参数默认值时,应该全部参数都设置

二、填空题

1.开发一个C++语言程序的步骤通常包括编辑、___、连接、运行和调试。

答案:

编译

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

答案:

2

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

#include<>

voidmain()

{intnum=2,i=6;

do

{i--;

num++;

}while(--i);

cout<

}

答案:

5

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

答案:

常对象

5.表达式cout<

答案:

‘\n’

6.在C++中,访问一个指针所指向的对象的成员所用的指向运算符是___。

答案:

->

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

答案:

cpp

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

答案:

自定义

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

答案:

传地址或引用

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

答案:

声明

11.在C++中有两种参数传递方式:

传值和___。

答案:

传引用或地址

12.在函数前面用___保留字修饰时,则表示该函数表为内联函数。

答案:

inline

13.C++是通过引用运算符___来定义一个引用的。

答案:

&

14.局部对象和全局对象中,在同一程序中___生存期最长。

答案:

全局对象

15.布尔类型标识符是()

答案:

bool

16.若要使用C++标准类库,需要指定相应的命名空间,所用的语句是——————。

答案:

usingnamespacestd;

17.使用new为int数组动态分配10个存储空间是___。

答案:

newint[10];

18.在已经定义了整型指针ip后,为了得到一个包括10个整数的数组并由ip所指向,应使用语句___。

答案:

int*ip=newint[10];

19.8.C++中语句constchar*constp=“hello”;所定义的指针p和它所指的内容都不能被___。

答案:

修改

20.如果要把PI声明为值为类型为双精度实数的符号常量,该声明语句是___。

答案:

constdoublePI;或者constdoublePI=;

21.面向对象程序设计的3个主要性质是:

______、继承、______。

答案:

封装,多态

22.使用cin和cout进行输入输出操作的程序必须包含头文件___

答案:

三、改错题

1.#include<>

  voidmain()

  {inti,*p;

  i=10;

  *p=i;

  cout<<*p<

  }

答案:

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

[修改]p=&i;

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

#include<>

voidswap(int&a,int&b)

{a=a+b;

b=a-b;

a=a-b;

}

voidmain()

{inta=19,b=15;

cout<<"a="<

swap(&a,&b);

cout<<"a="<

}

答案:

swap(&a,&b);函数的形参是变量的引用,调用时的实参应该是地址。

[修改]swap(a,b);

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

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

#include<>

#include<>

voidarea()

{doublea,b,c;

cout<<"Inputabc:

";

________

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

{doublel=(a+b+c)/2;

_______

cout<<"Theareais:

"<

}

else

cout<<"Error"<

}

voidmain()

{area();}

答案:

cin>>a>>b>>c;,doubles=sqrt(l*(l-a)*(l-b)*(l-c));

[解析]输入三个边的长度,由公式得出三角形的面积doubles=sqrt(l*(l-a)*(l-b)*(l-c));

2.下面是一个输入半径,输出其面积和周长的C++程序,在下划线处填上正确的语句。

#include

_________;

_________;

voidmain()

{doublerad;

cout<<"rad=";

cin>>rad;

doublel=*pi*rad;

doubles=pi*rad*rad;

cout<<"\nThelongis:

"<

cout<<"Theareais:

"<

答案:

usingnamespacestd,#definepi

[解析]进行输入或输出要引入iostream,所以usingnamespacestd;从标点看没有分号,所以

使用宏定义,#definepi。

3.程序实现大写字母转换成小写字母。

#include<>

voidmain()

{chara;

_______;

cin>>a;

if(_______)

a=a+i;

cout<

}

答案:

inti=32;,a>=A&&a<=Z

[解析]大写字母变小写字母相差32,需要对i声明并初始化。

大写字母变小写字母。

要判断字

符是大写字母。

4.在下面程序横线处填上适当内容,使程序执行结果为:

S=2

S=5

S=9

#include<>

voidsum(inti)

{staticints;

_________;

cout<<"s="<

}

voidmain(void)

{inti;

for(i=0;________)

sum(i);

}

答案:

s=s+i+2;,i<3,i++

5.下面

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 自考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1