C程序设计上练习复习资料Word文档格式.docx

上传人:b****4 文档编号:18167734 上传时间:2022-12-13 格式:DOCX 页数:23 大小:22.48KB
下载 相关 举报
C程序设计上练习复习资料Word文档格式.docx_第1页
第1页 / 共23页
C程序设计上练习复习资料Word文档格式.docx_第2页
第2页 / 共23页
C程序设计上练习复习资料Word文档格式.docx_第3页
第3页 / 共23页
C程序设计上练习复习资料Word文档格式.docx_第4页
第4页 / 共23页
C程序设计上练习复习资料Word文档格式.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

C程序设计上练习复习资料Word文档格式.docx

《C程序设计上练习复习资料Word文档格式.docx》由会员分享,可在线阅读,更多相关《C程序设计上练习复习资料Word文档格式.docx(23页珍藏版)》请在冰豆网上搜索。

C程序设计上练习复习资料Word文档格式.docx

A.函数体含有循环语句

B.函数体含有递归语句

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

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

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

A.全局变量

B.局部变量

C.静态变量

D.寄存器变量

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

D.函数

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

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

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

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

D.重载函数名可以不同

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

A.实参是形参的备份

B.实参与形参无联系

C.形参是实参的备份

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

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

A.cin

B.cerr

C.cout

D.clog

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

inta=100,*p=&

a;

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

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

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

D.变量p的值为100

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

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

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

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

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

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

A.floatPI3.1415926;

B.constfloatPI=3.1415926;

C.constPI(3.1415926);

D.const3.1415926;

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

A.doubleB.voidC.intD.char

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.变量自增自减C.if...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<

iostream.h>

voidmain()

{intnum=2,i=6;

do

{i--;

num++;

}while(--i);

cout<

<

num<

endl;

}

5

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

常对象

5.表达式cout<

end1还可表示为___。

‘\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声明为值为3.14159类型为双精度实数的符号常量,该声明语句是___。

constdoublePI(3.14159);

或者constdoublePI=3.14159;

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

______、继承、______。

封装,多态

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

iostream.h

三、改错题

 

1.#include<

  voidmain()

  {inti,*p;

  i=10;

  *p=i;

  cout<

*p<

  }

*p=i;

指针即地址没有被赋值。

[修改]p=&

i;

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

voids&

a,int&

b)

{a=a+b;

b=a-b;

a=a-b;

{inta=19,b=15;

"

a="

a<

b="

b<

s);

函数的形参是变量的引用,调用时的实参应该是地址。

[修改]swap(a,b);

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

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

math.h>

voidarea()

{doublea,b,c;

Inputabc:

;

________

if(a+b>

c&

a+c>

b&

c+b>

a)

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

_______

Theareais:

s<

else

Error"

{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++程序,在下划线处填上正确的语句。

iostream>

_________;

{doublerad;

rad="

rad;

doublel=2.0*pi*rad;

doubles=pi*rad*rad;

\nThelongis:

l<

Theareais:

usingnamespacestd,#definepi3.14159

[解析]进行输入或输出要引入iostream,所以usingnamespacestd;

从标点看没有分号,所以

使用宏定义,#definepi3.14159。

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

{chara;

_______;

if(_______)

a=a+i;

inti=32;

,a>

=A&

a<

=Z

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

大写字母变小写字母。

要判断字

符是大写字母。

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

S=2

S=5

S=9

voidsum(inti)

{staticints;

s="

voidmain(void)

{inti;

for(i=0;

________)

sum(i);

s=s+i+2;

,i<

3,i++

5.下面程序段用来求三角形的面积,首先判断三边不符合组成三角形时,返回-1,符合时输出三角形面积。

doublearea(doublea,doubleb,doublec)

{if(____)

return-1;

{

doublear,l;

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

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

returnar;

{doublei=0,j=0,k=0;

输入三角形三边:

i>

j>

k;

doubles=area(i,j,k);

if(s<

0)

不是三角形"

______

a+b>

c||a+c>

b||b+c>

a,cout<

[解析]三角形组成规则:

两边之和大于第三边。

0不是三角形,是则输出s。

6.参数顺序不同的函数重载,写出运行结果。

  #include<

  usingnamespacestd;

voidinfo(char*name,intage)

  {cout<

名称:

name<

,数量:

age<

  }

  voidinfo(intage,char*name)

  {cout<

  intmain()

  {info("

书包"

16);

   info(18,"

笔记本"

);

  return0;

}

7.比较内部auto变量和内部static变量的不同,写出运行结果。

#include<

voidtest()

{intx=10;

//动态变量x

staticinty=10;

//静态变量y

cout<

auto_x="

x<

static_y="

<

y;

voidmain()

{inti;

for(i=0;

i<

3;

i++)

test();

五、编程题

1.求分段函数y=f(x)的值,f(x)的表达式如下:

x2―1(x<

–1)

y=x2(–1≤x≤1)

x2+1(x>

1)

.#include<

floatx,y;

Enterx:

"

cin>

x;

if(x<

-1)

y=x*x-1;

elseif(x>

=-1&

x<

=1)

y=x*x;

elsey=x*x+1;

f(x)="

y<

2.用switch语句实现计算器的简单功能。

//运算数

charoper;

//运算符

Enterx,oper,y:

x>

oper>

switch(oper)

{

case'

+'

:

x+y="

x+y<

break;

-'

x-y="

x-y<

*'

x*y="

x*y<

/'

if(y==0)

{

cout<

divisoriszero!

\n"

break;

}

cout<

x/y="

x/y<

default:

operatorhasnoeffect!

3.求100以内的奇数之和

inti=1,sum=0;

while(i<

=100)

sum+=i;

i+=2;

sum="

sum<

do

}while(i<

=100);

inti,sum;

sum=0;

for(i=1;

=100;

i+=2)

4.输入一个整数,求出它的所有因子。

intn,k;

Enterapositiveinteger:

n;

Number"

n<

Factors"

for(k=1;

k<

=n;

k++)

if(n%k==0)

5.定义函数up(ch),如字符变量ch是小写字母就转换成大写字母并通过up返回,否则字符ch不改变。

iostream>

charup(charc)

{

if(c>

=97&

c<

=123)

return(c-32);

else

returnc;

inti;

charc;

for(i=0;

i<

5;

i++)

{cin>

up(c)<

"

endl;

6.编写主程序输入实数r和整数n,用函数求r的n次幂。

iostream.h>

math.h>

doublepower(doublea,intb)

doubleresult=1.0;

b;

result=result*a;

returnresult;

doubler;

intn;

r="

r;

n="

r<

的"

n<

次幂是:

power(r,n)<

7.编写程序计算两个整数绝对值阶乘之差。

intfac(intn)//计算一个整数绝对值的阶乘

{inti,f=1;

n=abs(n);

i++)f=f*i;

return(f);

{intx,y,c1,c2;

pleaseenterx,y:

cin>

c1=fac(x);

//调用函数fac,求x绝对值的阶乘

c2=fac(y);

//调用函数fac,求y绝对值的阶乘

“theoutcomeis”<

c1-c2<

8.用函数实现交换两个数a和b的值。

方法一:

简单变量作为函数形参(值传递)

#include<

voidsx,inty)

{inttemp;

temp=x;

x=y;

y=temp;

x="

y="

voidmain(){

inta=10,b=20;

s);

b="

}

方法二:

引用作为函数形参(地址传递)

x,int&

y){

inttemp;

方法三:

指针作为函数形参(地址传递)

s*p1,int*p2)

{inttemp;

temp=*p1;

*p1=*p2;

*p2=temp;

intmain(){

int*pa=&

a,*pb=;

s,&

b);

a<

b="

b;

9.输入a,b,c三个数,调用函数,得到其中最大数。

voidsort(int&

a,int&

b,int&

c)

{intm;

if(b>

a){m=a;

a=b;

b=m;

if(c>

a=c;

c=m;

if(c>

b){m=c;

c=b;

intmain()

{inta,b,c,ma;

Pleaseentera,b,c:

sort(a,b,c);

”,”<

c<

return0;

intmax(int*x,int*y,int*z);

//函数声明

intmain()

{inta,b,c;

max(a,b,c)="

max(&

a,&

b,&

c)<

//输出3个数中的最大者

return0;

intmax(int*x,int*y,i

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

当前位置:首页 > 求职职场 > 简历

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

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