计算机高级语言程序设计C++教材参考答案.docx

上传人:b****3 文档编号:10492866 上传时间:2023-05-26 格式:DOCX 页数:102 大小:67.02KB
下载 相关 举报
计算机高级语言程序设计C++教材参考答案.docx_第1页
第1页 / 共102页
计算机高级语言程序设计C++教材参考答案.docx_第2页
第2页 / 共102页
计算机高级语言程序设计C++教材参考答案.docx_第3页
第3页 / 共102页
计算机高级语言程序设计C++教材参考答案.docx_第4页
第4页 / 共102页
计算机高级语言程序设计C++教材参考答案.docx_第5页
第5页 / 共102页
计算机高级语言程序设计C++教材参考答案.docx_第6页
第6页 / 共102页
计算机高级语言程序设计C++教材参考答案.docx_第7页
第7页 / 共102页
计算机高级语言程序设计C++教材参考答案.docx_第8页
第8页 / 共102页
计算机高级语言程序设计C++教材参考答案.docx_第9页
第9页 / 共102页
计算机高级语言程序设计C++教材参考答案.docx_第10页
第10页 / 共102页
计算机高级语言程序设计C++教材参考答案.docx_第11页
第11页 / 共102页
计算机高级语言程序设计C++教材参考答案.docx_第12页
第12页 / 共102页
计算机高级语言程序设计C++教材参考答案.docx_第13页
第13页 / 共102页
计算机高级语言程序设计C++教材参考答案.docx_第14页
第14页 / 共102页
计算机高级语言程序设计C++教材参考答案.docx_第15页
第15页 / 共102页
计算机高级语言程序设计C++教材参考答案.docx_第16页
第16页 / 共102页
计算机高级语言程序设计C++教材参考答案.docx_第17页
第17页 / 共102页
计算机高级语言程序设计C++教材参考答案.docx_第18页
第18页 / 共102页
计算机高级语言程序设计C++教材参考答案.docx_第19页
第19页 / 共102页
计算机高级语言程序设计C++教材参考答案.docx_第20页
第20页 / 共102页
亲,该文档总共102页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

计算机高级语言程序设计C++教材参考答案.docx

《计算机高级语言程序设计C++教材参考答案.docx》由会员分享,可在线阅读,更多相关《计算机高级语言程序设计C++教材参考答案.docx(102页珍藏版)》请在冰点文库上搜索。

计算机高级语言程序设计C++教材参考答案.docx

计算机高级语言程序设计C++教材参考答案

参考答案

第1章

一、选择题

1.C2.C3.B

二、填空题

1.main

2.{}

3.;(分号)

4.机器语言

5.编译

6.链接

7.运行

8.单行注释块注释

三、思考题

1.特定的机器语言较难理解,不易于人们编写相关的程序。

2.计算机程序设计语言从机器语言发展到结构化程序设计语言极大地提高了编写程序的效率,但到了20世纪90年代,结构化程序设计对软件危机的缓解已起不到太大的作用,大型软件的投资失败,软件系统的不可维护性与不可靠性等现象依然存在。

在抽象数数据类型和交互式环境设计思想的基础上,出现了面向对象的程序设计技术。

3.面向对象的程序设计是以所处理的数据为中心,而不是以函数功能为中心来编写程序的,它采用对象作为描述问题的实体。

对象是包含现实世界事物特征的抽象实体,反映了系统的信息交互的能力,因此,用面向对象的程序设计方法设计出的程序具有较强的稳定性。

4.预处理命令、输入输出、语句、函数、常量、变量、类。

5.通过输入输出的函数来完成。

6.

(1)建立应用项目。

①建立项目及工作区。

②建立主程序文件。

(2)运行程序。

选择“编译”菜单中的“编译程序名.cpp”,编译源程序;然后选择“编译”菜单中的“编译文件名.exe”连接目标文件。

四、上机操作题

1.写出运行结果:

(1)ThisisaC++program。

(2)请输入两个数字:

32

3+2=5

2.程序如下:

#include

usingnamespacestd;

voidmain()

{

cout<<"**************\n";

cout<<"HelloWorld!

\n";

cout<<"**************\n";

}

第2章

一、选择题

1.C2.A3.B

4.C5.B

二、填空题

1.按位取反

2.等于

3.0~4294967295

4.0x开头的整数

5.\n

6.以‘\0’作为结束标志

7.short->int->long->float->double

三、思考题

1.C++基本数据类型有char(字符型)、int(整型)、float(浮点型)、double(双精度型)。

命名变量名要遵守如下规则:

(1)变量名不能与C++的关键字、库函数名、类名和对象名等相同。

(2)变量名的第一个字母必须是字母或下划线。

(3)变量名的字符个数不能太多,以不超过31个字符为宜。

(4)变量名不能以数字开头。

(5)变量名不能有空格,不能包含“.;,“+‘–””之类的特殊符号。

2.C++是大小写敏感的,即大写和小写字母认为是不同的字母。

3.变量是指在程序运行过程中可改变的量,常量是不可改变的量,常量可以是常数或符号常量,变量必须命名。

4.当C++不能进行自动类型转换时,就须进行强制类型的转换才能保证某些运算结果的正确性。

5.C++中的赋值运算符可以与某些特定操作符结合形成复合赋值运算符,这种运算符既有运算功能又有赋值功能。

四、上机操作题

1.参考代码:

#include"iostream"

usingnamespacestd;

voidmain()

{

inta,b,c;

floatsum,ave,max,min;

cout<<"请输入三个数a,b,c:

";

cin>>a>>b>>c;

sum=a+b+c;

cout<<"这三个数之和为:

"<

ave=sum/3;

cout<<"这三个数的平均值为:

"<

if(a>b)

{

max=a;

min=b;

}

else

{

max=b;

min=a;

}

if(c>max)

max=c;

elseif(c

min=c;

cout<<"这三个数中的最小数为:

"<

cout<<"这三个数中的最大数为:

"<

}

2.参考代码:

#include

usingnamespacestd;

voidmain()

{

intb;

b=-2+5*7;//b=33

b=-4+5%(-2/4);//错误,-2/4的结果为0,5%0是错误的表达法

intj=1;//j=1

intk=j++;//k=1j=2

intm=(j*=4);//m=8j=8

j=--m;//j=7m=7

}

3.参考代码:

#include

usingnamespacestd;

voidmain()

{

inta,b,c;

a=b=c=2;//abcvalue

intvalue=(++a||++b&&++c);//3221

value=(a++&&b++||c++);//4321

}

第3章

一、选择题

1.C2.A3.C

二、填空题

1.文件包含条件编译宏定义

2.顺序结构选择结构循环结构

3.#define宏名字符串

4.输出宽度填充字符为x

5.输出输入输出输入

6.程序编译

三、思考题

1.文件包含命令的格式为:

(1)#include<文件名>

(2)#include“文件名”

第1种方法告诉预处理器,从编译器或外部库的头文件中寻找所要的头文件。

第2种方法告诉预处理器,从正在编译的应用程序源代码中寻找头文件;如果预处理器在那里没有找到头文件,它将在编译器的头文件中查找。

2.利用条件编译可以使同一源程序在不同的编译条件下产生不同的目标代码。

主要包括:

(1)

#if条件表达式

程序段

#endif

(2)

#ifdef标识符

程序段1

#else

程序段2

#endif

(3)

#ifndef标识符

程序段1

#else

程序段2

#endif

(4)

#if条件表达式1

程序段1

#elif条件表达式2

程序段2

#elif条件表达式3

程序段3

.

.

.

#else

程序段N=1

#endif

3.空语句就是一条语句中只有分号“;”的语句,主要用于需要一条语句而又不作任何操作的时候。

4.文件包含是在程序编译的阶段完成,而程序文件的链接是编译完成后进行的。

5.顺序结构是C++内建的。

除非特别声明,否则计算机都会按原先书写的顺序逐条执行C++语句。

选择结构是程序在执行时需要根据相应的条件表达式的值决定程序的走向,不同条件表达式的值,程序所执行的语句及其顺序也相应不同。

循环结构是在程序执行时,概据某种条件需要反复执行的某些语句所组成的语句结构,这些语句执行的次数由循环的条件控制。

6.表达式语句就是表达式之后加上分号,区别也在于此。

7.不同。

宏定义的符号常量没有类型,其作用是作为字符串进行替换,使用时要特别注意替换方式;用CONST定义的常量有类型,定义时要赋值,以后不能再改变,使用时按常量名使用。

8.对于输出的数据往往需要一定的格式,而C++系统默认的输出格式是不能满足这种需求的,因此要有C++输出格式控制符。

四、上机操作题

1.参考代码:

#include

#include

usingnamespacestd;

doubleconstPI=3.1415926;

voidmain()

{

doubler,s,l;

cout<<"请输入圆的半径:

";

cin>>r;

s=PI*r*r;

l=2*PI*r;

cout<

cout<

}

2.参考代码:

#include

usingnamespacestd;

#defineSHANG(x,y)x/y

voidmain()

{

intm,a,b;

cout<<"请输入两个整数:

";

cin>>a>>b;

m=SHANG(a,b);

cout<<"两个数的商为:

"<

}

3.参考代码:

#include

usingnamespacestd;

#definequestion"Howmanystudentshere?

"

#defineanswer"500

voidmain()

{

cout<

cout<

}

4.参考代码:

#include

usingnamespacestd;

#defineCHANGE1

intmain()

{

charch[40];

cout<<"inputtext:

"<

gets(ch);

#if(CHANGE)

{

for(inti=0;i<40;i++)

{

if(ch[i]!

='\0')

if(ch[i]>='a'&&ch[i]<'z'||ch[i]>'A'&&ch[i]<'Z')

ch[i]+=1;

elseif(ch[i]=='z'||ch[i]=='Z')

ch[i]-=25;

}

}

#endif

cout<<"output:

"<

return0;

}

第4章

一、选择题

1.D2.B3.A4.B

5.D6.B7.C

二、填空题

1.forwhiledo…while

2.breakcontinue

3.do…while

4.switch

三、思考题

1.for语句的特点是可以定义控制变量的初值与终值,以及循环的次数。

2.goto语句只能在当前函数范围内跳转,不允许在不同的函数之间进行跳转。

goto语句在跳转时,只能从一个语句结构的内层向外层跳转,不允许由外层直接向内层跳转。

3.case子句的条件应是整型常量表达式。

4.do中的循环体至少执行一次,而while中只有当条件成立时才能执行循环体。

5.这三种循环语句各有各的特色,可以方便地用于某些特定的用途。

如已知循环次数时,用for循环方便些;已知循环条件时,用while或do循环方便些;若循环次数至少要执行一次,用do循环最为方便。

另外,这三种循环都可以嵌套使用,形成多重循环。

四、上机操作题

1.参考代码:

#include

usingnamespacestd;

voidmain()

{

floats=0,t=1;

intn;

for(n=1;n<=15;n++)

{

t=t*n;

s=s+t;

}

cout<<"1!

+2!

+3!

+4!

+…+15!

="<

}

2.参考代码:

#include

usingnamespacestd;

voidmain()

{

inti,j,k,n;

cout<<"所有的水仙花数为:

"<

for(n=100;n<1000;n++)

{

i=n/100;

j=n/10-i*10;

k=n%10;

if(n==i*i*i+j*j*j+k*k*k)

cout<

}

cout<

}

3.参考代码:

#include

usingnamespacestd;

intmain()

{intt,a,b,c,d;

cout<<"enterfournumbers:

";

cin>>a>>b>>c>>d;

cout<<"a="<

if(a>b)

{t=a;a=b;b=t;}

if(a>c)

{t=a;a=c;c=t;}

if(a>d)

{t=a;a=d;d=t;}

if(b>c)

{t=b;b=c;c=t;}

if(b>d)

{t=b;b=d;d=t;}

if(c>d)

{t=c;c=d;d=t;}

cout<<"thesortedsequence:

"<

cout<

return0;

}

4.参考代码:

#include

usingnamespacestd;

voidmain()

{

intday,x1,x2;

day=9;

x2=1;

while(day>0)

{

x1=(x2+1)*2;

x2=x1;

day--;

}

cout<<"第一天一共摘了:

"<

"<

}

5.参考代码:

#include

usingnamespacestd;

voidmain()

{

inti,k;

for(i=0;i<=3;i++)

{

for(k=0;k<=2*i;k++)

cout<<"*";

cout<

}

for(i=0;i<=2;i++)

{

for(k=0;k<=4-2*i;k++)

cout<<"*";

cout<

}

}

6.参考代码:

#include

usingnamespacestd;

intmain()

{

intcount=0;

for(inti=1;i<10;i++)

for(intj=1;j<20;j++)

for(intk=1;k<100;k++)

{

inttotal=10*i+5*j+1*k;

if(total==100)

{

cout<

count++;

}

}

cout<<"总的兑换数为:

"<

}

第5章

一、选择题

1.B2.C3.B

4.B5.A

二、填空题

1.数组名数据类型

2.定义

3.行列

4.mxn

三、思考题

1.数组是有序的且类型相同的数据的集合,它用统一的名称和下标来惟一地确定数组中的每一个元素。

数组必须先行定义才能使用。

2.数组在内存中连续存放,其下标从0开始。

3.字符型数组中存放的是字符数据类型,其结尾有‘\0’结束符。

四、上机操作题

1.参考代码:

#include"iostream"

usingnamespacestd;

voidmain()

{

inta[10]={35,99,88,57,30,94,57,13,86,71};

intmin=a[0];

intindex=0;

for(inti=1;i<10;i++)

if(min>a[i])

{

min=a[i];

index=i;

}

cout<<"最小数为:

"<

"<

}

2.参考代码:

#include

usingnamespacestd;

voidmain()

{

inta[3][3],sum=0;

inti,j;

cout<<"请输入矩阵元素:

"<

for(i=0;i<3;i++)

for(j=0;j<3;j++)

cin>>a[i][j];

for(i=0;i<3;i++)

sum=sum+a[i][i];

cout<<"该矩阵的对象线元素之和为:

"<

}

3.参考代码:

#include

usingnamespacestd;

voidmain()

{

inta[11]={3,5,7,9,11,23,45,48,89,101};

intnum,i,j;

cout<<"原数组为:

"<

for(i=0;i<10;i++)

cout<

cout<

cout<<"请输入要插入的数:

";

cin>>num;

if(num>a[9])

a[10]=num;

else

{

for(i=0;i<10;i++)

{

if(a[i]>num)

{

for(j=9;j>=i;j--)

a[j+1]=a[j];

a[i]=num;

break;

}

}

}

cout<<"插入数据后的数组为:

"<

for(i=0;i<11;i++)

cout<

cout<

}

3.参考代码:

#include

usingnamespacestd;

intmain()

{

inty,m,d;

inti,n;

//平年各月份天数

intM[13]={

0,//不用,C语言数组下标从1开始。

31,//一月

28,//二月

31,//三月

30,//四月

31,//五月

30,//六月

31,//七月

31,//八月

30,//九月

31,//十月

30,//十一月

31,//十二月(后面的逗号可要可不要)

}

cout<<"年:

";

cin>>y;

cout<<"月:

";

cin>>m;

cout<<"日:

";

cin>>d;

/*****

*能被400整除,或能被4整除并且不能被100整除的为闰年。

*****/

if(y%400==0||(y%4==0&&y%100!

=0))

M[2]+=1;//闰年2月加多1天。

if(m>0&&m<13)

{

if(d>M[m])

{

cout<

\n";

return1;//出错返回

}

}

else

{

cout<<"月份只能是12。

\n";

return1;//出错返回

}

//前m-1个月的总天数

for(n=0,i=1;i

{

n+=M[i];

}

//再加上当月的天数

n+=d;

cout<

return0;//正常退出

}

5.参考代码:

#include

usingnamespacestd;

voidmain()

{

chara[5]={'*','*','*','*','*'};

inti,j,k;

for(i=0;i<5;i++)

{

cout<

cout<<"";

for(j=1;j<=i;j++)

cout<<"";

for(k=0;k<5;k++)

cout<

}

cout<

}

6.参考代码:

#include

usingnamespacestd;

voidmain()

{

chara[5]={'H','E','L','L','O'};

inti;

for(i=4;i>=0;i--)

cout<

cout<

}

7.参考代码:

#include

#include

usingnamespacestd;

constintn=5;

stringname[n];

intnum[n],score[n];

intmain()

{

inti;

voidinput_data();

input_data();

cout<

"<

for(i=0;i

{

if(score[i]<60)

cout<

}

return0;

}

voidinput_data()

{

inti;

for(i=0;i

{

cout<<"inputname,numberandscoreofstudent"<

";

cin>>name[i]>>num[i]>>score[i];

}

}

第6章

一、选择题

1.B2.D3.B

二、填空题

1.int*pa;char*pc;float*pf;

2.int*pa=&a;*pa=20;

3.int&ra=a;ra=20;

4.int*pa=newint;*pa=10;deletepa;

5.int*pc=newchar[12];strcpy(pc,”Hello,World!

”);delete[]pc;

6.*p=0b=3c=5

7.19

三、思考题

1.void指针可以指向任何类型的C++数据。

也就是说,可以用任何类型的指针直接给void指针赋值。

不过,如果需要将void指针的值赋给其他类型的指针,则需要进行强制类型转换。

2.通过引用和指针,都可以操作它们所指向的目标对象,但是它们在使用上有很大的差别。

这种差别主要体现在:

指针是个变量,可以在程序中改变指针所指向的目标;而引用是一个声明,在声明引用时必须给它初始化,并且引用在初始化后,不可以在关联其他的目标对象。

3.在C++中,指针与一维数组有密切的联系

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2