CC程序设计课后答案Word格式.docx
- 文档编号:19607444
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:72
- 大小:80.33KB
CC程序设计课后答案Word格式.docx
《CC程序设计课后答案Word格式.docx》由会员分享,可在线阅读,更多相关《CC程序设计课后答案Word格式.docx(72页珍藏版)》请在冰豆网上搜索。
()和()。
前者是编译器可以发现的,而后者编译器则无法发现。
语法错误和逻辑错误
8.在VisualC++中调试程序时,可以使用快捷菜单中的()命令来插入断点和清除断点。
Insert/RemoveBreakpoint
9.C++源程序的扩展名为()。
.cpp
10.在VisualC++中,浏览当前项目中的所有源程序文件应在工作区的()选项卡。
Fileview
三、简答题
1.C++与C语言的主要区别是什么?
C++是C语言的超集。
C++中的类和对象部分,C语言没有,C++是面向对象的程序设计。
见教材P3。
2.C/C++程序由哪些部分组成?
C/C++程序是由一个或多个函数组成,其中必须要有一个main()函数。
在一个函数内,语句的执行是从上到下的。
3.判断下列符号中哪些不能作为C/C++的标识符:
a?
3a,a-b,f(x),AD,a.txt,D$,∏,double
能作为C/C++的标识符:
abc,b,s_2,Int
4.C/C++语言的书写格式有哪些特点?
C/C++程序书写形式自由。
一行可以写多条语句,一条语句也可以分别写在不同行上。
区别大小写字母。
5.何时在#include中使用尖括号,何时使用双引号?
用尖括号时,预处理程序在系统指定的文件夹中寻找文件;
用双引号时,预处理程序首先在当前文件所在的文件目录中寻找文件,若找不到再到系统指定的文件夹中查找。
6.如果程序顺利地通过编译、连接,但是程序运行时结果有错误,最好的调试手段是什么?
最好的调试手段是设置断点,并让程序运行到该断点,然后在Debug窗口观察各变量的值,从中发现错误。
第二章
1.下列选项中可以作为C/C++的合法整型常量的是()。
B
A.1011BB.047C.x23D.20H
2.下列不合法的常量是()。
A.2.7B.1.0E+3C.3.5E-3.0D.3.4e-5
3.下列常量中不是字符型常量的是()。
A.'
\x44'
B.'
\t'
C.'
\\'
D."
m"
4.下列选项中合法的变量名为()。
A.#defineB.floatC.a12_3D.sqrt(x)
5.下列不正确的变量定义方法是()。
D
A.inta,&
b=a;
B.floata,*b=&
a;
C.inta(4),b(0);
D.inta=b=5;
6.下列运算符优先级按由高到低的顺序排列正确的是()。
A.*=、&
&
、!
=、%B.*=、%、&
=C.%、!
=、&
、*=D.&
=、%、=
7.已知x、y为整型,z为实型,ch为字符型,下列表达式中合法的是()。
A.z=(y+x)++B.x+y=zC.y=ch+xD.y=z%x
8.若有定义"
intx;
,则经过表达式"
x=(float)7/3"
运算后,x的值为()。
A.0B.2.3C.2D.1
9.若有定义"
intx=13,y=5;
,则表达式"
x++,y+=2,x/y"
的值为()。
10.设整型变量m、n、a、b、c、d均为数值1,表达式(m=a>
b)&
(n=c>
d)运算后,m、n的值分别是()。
A.0,0B.0,1C.1,0D.1,1
二、把下列数学表达式写成C/C++表达式。
1.x+y≠a+b
:
(x+y)!
=(a+b).
2.(ln10+xy)3
:
pow(log(10)+x*y),3)
3.
sin(w*u)/(cos(45*180/3.14)+3*pow(x,y))
4.
exp(3)+sqrt(2*x+3*y)
5.
fabs(x-y)+(x+y)/(3*x)
6.
1/(1/r1+1/r2+1/r3)
三、根据下列条件写一个C/C++表达式。
1.a和b中有一个大于d:
d||b>
d
2.将x、y中较大的值送给z:
z=x>
y?
x:
y
3.将直角坐标系中点(x,y)表示在第3象限内:
x<
0&
y<
4.3个数据x、y、z能组成三角形:
x+y>
z||y+z>
z||x+z>
y
5.将含有3位小数的实型变量x的值,四舍五入到百分位:
(int)(x*100+0.5)/100.
6.d是不大于100的偶数:
d>
d<
=100&
d%2==0
7.x、y中至少有一个是5的倍数:
x%5==0||y%5==0
8.对n(>
0)个人进行分班,每班k(>
0)个人,最后不足k人也编一个班,问要编几个班:
n%k==0?
n/k:
n/k+1
四、编程题:
1编程序求半径为r、高为h的圆柱体的体积。
#include"
{floatr,h,v;
r>
h;
v=3.1416*r*r*h;
v;
2.任意输入3个数据,输出它们的平均值和最小的一个数。
#include"
{
floata,b,c,ave,min;
b>
c;
ave=(a+b+c)/3;
min=(a<
b)?
a:
min=(c<
min)?
c:
min;
ave="
ave<
min="
min<
3.将字符串“12”转换为整数12并输出。
charc1='
1'
c2='
2'
;
x=10*(c1-'
0'
)+c2-'
4.编写程序,输入一个三位整数,反向输出该三位整数。
{intx;
intc1,c2,c3;
x;
c1=x/100;
c2=x/10%10;
c3=x%10;
x=100*c3+10*c2+c1;
5.输入一个年份,判断是否为闰年。
解1:
{intyear,x;
year;
x=year%400==0||year%4==0&
year%100!
=0;
x!
=0?
year<
isaleapyear!
cout<
isnotaleapyear!
解2:
{intyear;
charx;
x=(year%400==0||year%4==0&
=0)?
'
y'
'
n'
6.编写程序,求函数
的值,要求输入x,程序就输入y的值
math.h"
{doublex,y;
y=log(x*x+3)/log(10)+3.14/2*cos(40*3.14/180);
y;
第三章
一、选择题
1.为了避免嵌套的ifelse语句的二义性,C/C++语言规定else总是与()组成配对关系。
C
A.缩排位置相同的ifB.在其之前未配对的if
C.在其之前未配对的最近的ifD.同一行上的if
2.设有函数关系为
,下面()选项不能正确表示上述关系。
A.if(x<
=0)B.y=1;
if(x<
0)y=-1;
if(x<
=0)
elsey=0;
elsey=1;
elsey=0;
C.y=-1;
D.y=-1;
if(x>
=0)if(x!
if(x==0)y=0;
if(x>
0)y=1;
elsey=1;
3.若有变量定义“inta=7;
”,则下列语句组对应的输出结果是()。
D(该答案后还应附“其他值”)
switch(a%5)
{case0:
a++;
case1:
++a;
case2:
a--;
case3:
--a;
default:
”其他值”;
A.其他值B.5C.7D.75其他值
4.以下程序段中循环体语句“k++”执行的次数为()。
for(k=0,m=4;
m;
m-=2)
for(n=1;
n<
4;
n++)
k++;
A.16B.12C.6D.8
5.执行下面程序段后,变量k的值为()。
for(k=0,m=1;
m<
m++)
5;
if(m*n%3==0)continue;
A.1B.3C.6D.12
6.下面叙述中正确的是()。
A.for循环只能用于循环次数已经确定的情况
B.for循环同do-while语句一样,先执行循环体再判断
C.不管哪种形式的循环语句,都可以从循环体内转到循环体外
D.for循环体内不可以出现while语句
7.下面语句中不是死循环的是().A
A.inti=100;
B.inti,sum(0);
while
(1)for(i=1;
i++)sum++;
{
i=i%100+1;
if(i==20)break;
}
C.intk=0;
D.ints=3379
do{while(s++%2+3%2)s++
++k;
}while(k>
=0);
8.若输入字符串“ABC”,下面程序段的输出为()。
charc;
while(cin>
c,c!
=’\n’)
cou<
c+2;
A.222B.CDEC.676869D.333
9.以下程序段的输出结果是()。
A.45B.457810C.69D.678910
二、阅读程序,写出程序运行结果。
(1)试说明下列语句组的功能:
while
(1)
m>
n;
if(m>
n>
0)break;
功能:
输入两个正整数给m和n。
(2)若有变量定于“intcount=0,m=1;
”,试写出下列语句组对应的输出结果。
do
if(m%5)continue;
count++;
while(++m<
=100);
结果:
20
(3)#include”iostream.h”
intm,n(4),k;
longintt,s=0;
for(m=1;
=n;
for(t=1,k=1;
k<
=m;
k++)
t*=m;
s+=t
”s=”<
s;
输出为:
s=288
(4)若输入:
“AB20dfz5”,则下列程序输出结果是什么?
#include”iostream.h”
charc;
while(cin>
=’.’)
if(c>
=’a’&
c<
’z’)
c+=1;
if(c==’z’)c=’a’;
AB20ega5
(5)#include”iostream.h”
#include”iomanip.h”
inti,j;
for(i=4;
i>
=1;
i--)
setw(i+5)<
’’;
for(j=1;
j<
=4-i;
j++)
’*’<
’‘;
输出:
*
**
***
三、程序填空题:
(1)下面的程序是检查输入的算术表达式中括号是否配对,并显示相应的结果。
本程序边输入,边统计,以输入‘?
’作为表达式输入结束,然后显示结果。
intcount(0);
charc;
”请输入表达式,以输入?
表示结束”<
=’?
’)
if(c==’(‘)
elseif()
count--;
if()
”左右括号配对”<
elseif()
”左括号多于右括号”<
count<
”个”<
else
”右括号多于左括号”<
count<
填空结果:
c=='
)'
count==0
count>
count
(2)用辗转相减法求两个正整数m和n的最大公约数。
intm,n;
;
while(m-n!
if(m>
n);
else;
”gcd(m,n)=”<
n
m=m-n
n=n-m
(3)求100的阶乘的末尾包含多少个0?
程序通过找出1-100之间的所有整数中包含5这个因子的个数来求解。
如100=5*5*4含5的因子个数为2,在求阶乘过程中会在末尾产生2个0。
intm,n,k=0;
for(m=5;
100;
)
{;
while(n%5==0)
k++;
;
”100!
include”<
k;
n=m
n=n/5
m=m+5
1.编一程序,实现下列分段函数的求值:
{floatx,y;
inputx:
cin>
5)
y=fabs(x);
elseif(x<
20)
y=3*x*x-2*x+1;
else
y=x/5;
x="
y="
2.按工资的高低纳税,已知不同工资s的税率p如下:
s<
1000p=0%
1000≤s<
2000p=5%
2000≤s<
3000p=8%
3000≤s<
5000p=10%
5000≤sp=15%
编一程序,输入工资数,求纳税款和实得工资数。
floats,p,t,w;
inputs:
switch(int(s)/1000)
{case0:
p=0;
break;
p=0.05;
p=0.08;
case4:
p=0.1;
p=0.15;
}
t=s*p;
w=s-t;
纳税款="
t<
实得工资="
w<
3.编一程序,求100~1000之间有多少个整数,其各个数位数字之和等于5?
{intm,count=0;
for(m=100;
1000;
{if(m%10+m/10%10+m/100==5)
count="
4.鸡兔共笼有30个头,90只脚,求鸡兔各有多少?
{intm,n;
for(m=0;
=30;
for(n=0;
if(m*2+n*4==90&
m+n==30)
鸡:
兔:
5.利用格里高利公式求
的近似值,公式为:
/4≈1-1/3+1/5-1/7+....,要求直到最后一项小于10-4为止。
{doublepi=1.0;
intn,t=1;
for(n=1;
1.0/(2*n+1)>
1e-6;
{t=(-1)*t;
pi=pi+t/(2.0*n+1.0);
pi=4*pi;
pi="
pi<
法二:
{floatpi=0.0;
intn,t=-1;
1.0/n>
n=n+2)
pi=pi+1.0*t/n;
6.编一程序,求出方程x2+2x=y3(其中1≤x≤100,1≤y≤100)的所有整数解。
{intx,y;
for(x=1;
=100;
x++)
for(y=1;
y++)
if(x*x+2*x==y*y*y)
7.输入一个英文句子(以句号结束),要求将句中单词分行打印,试编写符合上述要求的程序。
stdio.h"
{charch;
while((ch=getchar())!
='
.'
if(ch=='
ch;
8.一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,求1000以内满足该条件的数。
{intm,k1,k2;
=1000;
{k1=sqrt(m+100);
k2=sqrt(m+100+168);
if(k1*k1==m+100&
k2*k2==m+100+168)
是满足条件的数"
9.用二分法求x9-4x5-5x3-270000=0在(0,10)之间的根,要求精度达到0.00001
二分法的步骤为等分区间[x1,x2]成[x1,x]和[x,x2],其中,若f(x)与f(x1)同号,则取[x,x2]作为新的区间,否则取[x1,x]作为新的区间,
依次类推,当新区间的长度或f(x)的绝对值小于eps时,x就作为所求的实根。
{floatx1=0,x2=10,x,y1,y2,y,eps=1e-6;
do{x=(x1+x2)/2;
y1=pow(x1,9)-4*pow(x1,5)-5*pow(x1,3)-270000;
y=pow(x,9)-4*pow(x,5)-5*pow(x,3)-270000;
if(y1*y>
0)
x1=x;
x2=x;
}while(fabs(x2-x1)>
eps);
第四章
1.下列数组定义语句中,正确的是()。
A.inta[3,4];
B.intn=3,m=4,inta[n][m];
C.inta[3][4];
D.inta(3)(4);
2.以下不能对二维数组a初始化的语句是()。
A
A.inta[2][]={{1},{2}};
B.inta[2][3]={1,2,3,4,5,6};
C.inta[2][3]={1};
D.inta[2][3]={{1},{2}};
3.要使字符数组str中存放串”Lucky”并能正确处理,下列正确的定义语句是()。
A.charstr[]={‘L’,’u’,’c’,’k’,’y’};
B.charstr[5]={‘L’,’u’,’
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CC 程序设计 课后 答案