C++程序作业答案Word文档下载推荐.docx
- 文档编号:5018502
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:40
- 大小:30.16KB
C++程序作业答案Word文档下载推荐.docx
《C++程序作业答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C++程序作业答案Word文档下载推荐.docx(40页珍藏版)》请在冰点文库上搜索。
x/y<
〈’’<
x%y〈<
”语句序列后得到的输出结果为213。
23.假定x=10,y=6,则表达式2+x++和++y*3的值分别为12和21.
24.算术表达式(x2+y2)/(2—xy)对应C++表达式为(x*x+y*y)/(2-x*y)。
25.算术表达式xy2/(3a+4b-1)对应的C++表达式为x*y*y/(3*a+4*b-1)。
26.表达式float(25)/4和int(14。
6)%5的值分别为6。
25和4.
27表达式a=a+b表示成复合赋值表达式为a+=b。
28.表达式a=a+1表示成增量表达式为a++。
29.增量表达式++y表示成赋值表达式为y=y+1。
30.关系表达式(x==0)的等价表达式为!
x。
31.关系表达式(x!
=0)的等价表达式为x。
32.关系表达式x+y〉z的相反表达式为x+y〈=z。
33.逻辑表达式x>
5&
&x<
10的相反表达式x〈=5||x>
=10。
34.逻辑表达式a>
b||b==5的相反表达式为a〈=b&&b!
=5.
35.若x=15,y=40,则x〉y和x〈=y的逻辑值分别为false和true。
36.假定x=5,则执行“a=(x?
10:
4*2);
”语句后a的值为10.
37.假定a=5,则条件表达式“a==0?
20”的值为20。
38.执行“typedefintDataType;
”语句后,在使用int定义整型变量的地方都可以使用DataType定义整型变量。
39.设x和y均为bool量,x&&
y为真的条件是x=truey=true。
40.设x和y均为bool量,则x||y为假的条件是x、y都为false.
二、写出下列程序运行后的输出结果
1.#include<
iostream。
h>
voidSB(charch){
switch(ch){
case’A'
:
case’a’:
cout〈〈”well”!
”;
break;
case‘B’:
case‘b’:
cout<
”good!
”;
break;
case‘C'
:
case‘c’:
cout〈〈”pass!
break;
default:
cout〈〈“bad!
}
voidmain(){
charal=’b’,a2='
c’,a3=’f'
;
SB(al);
SB(a2);
SB(a3);
SB(‘A'
);
Cout<
good!
pass!
bad!
well!
2、#clude〈stream。
h〉
#include<
stdlib。
doubleSD(inta,intb,charop){
doublex;
switch(op){
case‘x’:
x=double(a)+b;
case‘-‘:
x=double(a)–b;
break;
case‘*’x=double(a)*b;
case‘/’:
if(b)x=double(a)/b;
elseexit
(1);
default:
exit
(1);
}
returnx;
voidmain(){
intx=20,y=12;
cout<
SD(x,y,’—‘)<
’‘;
〈SD(x,y,’*’)<
〈’‘;
SD(x+y,y-2,’/'
)<
〈endl;
82403.2
3、#include〈iostream.h〉
voidmain(){
ints=0;
for(intI=1;
I<
6;
I++)
s+=I*I;
〈”s=”<
s<
endl;
s=55
4、#include<
iostream.h〉
for(intI=1;
I++){
if(s>
50)break;
if(I%3==0)s+=I;
}
cout〈〈"
I,s=”〈〈I<
,”〈〈s<
}
I,s=19,63
5、#include<
iostream.h>
ints1=0,s2=0;
for(intI=0;
I〈10;
if(I%2)s1+=I;
elses2+=I;
cout〈<
s1<
’‘〈<
s2<
2520
6、#include〈iostream.h〉
voidmain(){
intn=10,y=1;
while(n—-){y++;
++y;
”y*y=”<
〈y*y<
y*y=441
三、写出下列每个函数的功能
1.#include<
intSA(inta,intb){
if(a〉b)return1;
elseif(a==b)return0;
elsereturn–1;
比较两个整数a和b,如果a大于b则返回1;
如果a等于b则返回0;
如果a小于b则返回—1.
2.intSC(inta,intb,intc){
if(a〉=b&&
a〉=c)returna;
if(b〉=a&
&
b〉=c)returnb;
if(c〉=a&
c〉=b)returnc;
返回a、b、c三个数中的最大数.
3.intSE(intn){
//n为大于等于1的整数
intx;
cin〉〉x;
if(n==1)returnx;
intm=x;
while(――n){
cin>
〉x;
m+=x;
returnm;
求输入的n个数之和。
4.doubleSF(doublex,intn){
//n为大于等于0的整数
doublep=1,s=1;
for(inti=1;
i<
=n;
i++){
p*=x;
s+=p/(i+1);
returns;
计算1+x/2+x2/3+x3/4+…+xn/(n+1)
5.#include<
math.h〉
boolSG(intx){
//x为大于等于2的整数
inta=int(sqrt(x));
//取x的平方根
inti=2;
while(i<
=a){
if(x%i==0)break;
i++;
if(i〈=a)return0;
elsereturn1;
判断整数x是否为质数,若为质数返回true,若不是则返回false。
6.floatFH(){
floatx,y=0,n=0;
cin〉>
x;
while(x!
=-100){
n++;
y+=x;
cin〉〉x;
if(n==0)returny;
elsereturny/n;
求键盘输入的数的平均值,输入—100结束(不计在平均值内),若没有数输入则返回0。
第二次作业
1.假定一个一维数组的定义为“char*a[5];
”,则该数组所含元素的个数为5,所占存储空间的字节数为20.
2.假定一个二维数组的定义为“inta[4][6];
”,则该数组所含元素的个数为24,所占存储空间的字节数为96。
3.假定一个二维数组的定义为“chara[8][8];
”,则该数组所含元素的个数为64,所占存储空间的字节数为64。
4.执行“typedeffloatABC[10];
语句把ABC定义为具有10个单精度元素的数组。
5.在函数外定义的变量称为全局变量,若没有被初始化则系统隐含对它赋初值0。
6.函数中的形参变量的初值由调用该函数时获得。
7.函数调用时,实参向形参的传送分为传值和传址两种传送方式。
8.变量分为全局和局部两种,局部变量没有赋初值时,其值是不确定的。
二、给出下列程序运行后的输出结果
1.#include<
voidmian(){
inta[10]={12,39,26,41,55,63,72,40,83,95};
inti0=0,i1=0,i2=0;
for(inti=0;
i〈10;
switch(a[i]%3){
case0:
i0++;
case1:
i1++;
case2:
i2++;
cout〈〈i0<
’'
〈<
i1<
’’〈<
i2<
424
2.#include<
#include<
string.h>
voidmain(){
char*a[5]={"
student”,”worker”,"
cadre"
”apple"
,”peasant”};
char*p1,*p2;
p1=p2=a[0];
for(inti=0;
5;
i++){
if(strcmp(a[i],p1)〉0)p1=a[i];
if(strcmp(a[i],p2)〈0)p2=a[i];
cout〈〈p1<
'
’<
〈p2<
workerapple
3.#include<
voidmain(){
inta[8]={36,73,48,14,55,40,32,66};
intb1,b2;
b1=b2=a[0];
for(inti=1;
8;
I++)
if(a[i]〉b1){
if(b1>
b2)b2=b1;
b1=a[i];
cout<
〈b1〈〈’’<
〈b2〈〈endl;
7336
4.#include〈iostream.h>
chara[]=”aabcdaabacabfgacd"
inti1=0,i2=0,i=0;
while(a[i]){
if(a[i]=='
a’)i1++;
if(a[i]==’b’)i2++;
i++;
i1〈〈'
’〈<
73
5.#include<
chara[]="
abcdabcdbdaeaf"
intb[5]={0},i=0;
while(a[i]){
switch(a[i]){
case’a’:
b[0]++;
case’b’:
b[1]++;
case’c’:
b[2]++;
case'
d'
b[3]++;
b[4]++;
i++;
for(i=0;
i++)cout<
b[i]<
〈'
’;
43232
6.#include<
voidmain(){
inta[10]={73,83,54,62,40,75,80,92,77,84};
intb[4]={60,70,90,101};
intc[4]={0};
for(inti=0;
i++){
intj=0;
while(a[i]>
=b[j])j++;
c[j]++;
for(i=0;
i〈4;
c[i]<
’;
cout〈〈endl;
2161
7.#include〈iostream.h〉
inta[3][4]={{1,2,7,8},{5,6,11,12},{24,10,3,4}};
intm=a[0][0];
intii=0,jj=0;
for(inti=0;
i〈3;
i++)
for(intj=0;
j〈4;
j++)
if(a[i][j]>
m){m=a[i][j];
ii=i;
jj=j;
cout〈〈ii〈〈’’〈<
jj〈〈’’〈<
a[ii][jj]〈〈endl;
2024
8.#include〈iostream。
inta=10,b=20;
cout〈<
a〈<
’’〈<
b<
〈endl;
{a*=4;
intb=a+35;
cout〈〈a〈〈’’〈〈b〈<
endl;
cout〈〈a<
〈’’〈<
〈endl;
1020
4075
4020
1.intWC(inta[],intn,intk){
intc=0;
for(inti=0;
i〈n;
if(a[i]>
=k)c++;
returnc;
返回有n个元素的整型数组a中大于等于整数k的元素个数.
voidWA(inta[],intn){
for(inti=0;
n;
i++){
intk=i;
for(intj=i+1;
j〈n;
if(a[j]〈a[k])k=j;
intx=a[i];
a[i]=a[k];
a[k]=x;
函数功能是将有n个元素的整型数组从小到大排列.
3.#include〈iosteram.h〉
template<
classTT〉
intWG(TTa,TTb){
if(a>
b)return1;
elseif(a==b)return0;
elsereturn-1;
比较两个任意类型的数a和b,若a大于b则返回1,若a等于b则返回0,若a小于b否则返回1。
4.#include<
template〈classType>
TypeWD(Typea[],intn){
Typem=a[0];
n;
if(a[i]>
m)m=a[i];
returnm;
返回有n个元素的任意类型数组中最大的数。
5.Template〈classType>
voidWE(Typea[],Typeb[],intn){
b[i]=a[i]*2;
将有n个元素的任意类型数组a中的每个元素乘以2后放到数组b中的相应位置中。
第三次作业
1.假定p所指对象的值为28,p+1所指对象的值为62,则*p++的值为28。
2.假定p所指对象的值为28,p+1所指对象的值为62,则*++p的值为62。
3.假定p所指对象的值为25,p+1所指对象的值为50,则执行“(*p)++;
”语句后,p所指对象的值为26。
4.假定p所指对象的值为25,p+1所指对象的值为50,则执行“*(p++);
”语句后,p所指对象的值为50。
5.假定a是一个指针数组,则a+i所指对象的地址比a地址大未知字节。
6.假定a是一个一维数组,则a[i]的指针访问方式为*(a+i)。
7.假定a是一个二维数组,则a[i][j]的指针访问方式为*(*(a+i)+j)。
8.假定a是一个一维数组,则a[i]对应的存储地址(以字节为单位)为(char*)a+i*sizeof(a[0])。
9.假定一个二维数组为a[M][N],则a[i][j]对应的存储地址(以字节为单位)为(char*)a+(i*N+j)*sizeof(a[0][0])。
10.假定一个二维数组a[M][N],则a[i]的地址值(以字节为单位)为(char*)a+i*N*sizeof(a[0][0]).
11.假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址大4字节。
12.假定a为一个字符数组名,则元素a[8]的字节地址为8.
13.假定a为一个整型数组名,则元素a[4]的字节地址为16。
14.假定一个结构类型的定义为“structA{inta,b;
shortc;
A*d;
};
”,则该类型的大小为14字节.
15.假定一个结构类型的定义为“structB{inta[8];
char*b;
};
则该类型的大小为36字节。
16.假定一个结构类型的定义为“structD{inta;
union{intb;
doublec;
D*d[3];
};
”,则该类型的大小为24字节.
17.假定要动态分配一个类型为Worker的具有n个元素的数组,并由r指向这个动态数组,则使用的语句为r=newWorker[n];
.
18.假定要访问一个结构x中的由a指针成员所指向的对象,则表示方法为*(x。
a).
19.假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为*(p—>
b)。
以下结果中空格以’ˉ’表示
1.#include〈iomanip.h>
inta[8]={7,9,11,13,3,8,15,17};
int*p=a;
for(inti=0;
cout〈<
setw(5)<
〈*p++;
if((i+1)%4==0)cout<
ˉˉˉˉ7ˉˉˉˉ9ˉˉˉ11ˉˉˉ13
ˉˉˉˉ3ˉˉˉˉ8ˉˉˉ15ˉˉˉ17
2.#include<
iomanip。
inta[5]={3,6,15,7,20};
int*p=a;
for(inti=0;
5;
cout〈〈setw(5)〈<
*p++;
for(i=0;
〈setw(5)<
*--p;
ˉˉˉˉ3ˉˉˉˉ6ˉˉˉ15ˉˉˉˉ7ˉˉˉ20
ˉˉˉ20ˉˉˉˉ7ˉˉˉ15ˉˉˉˉ6ˉˉˉˉ3
3.#include<
iomanip.h〉
inta[8]={4,8,12,16,20,24,28,32};
int*p=a;
do{
cout〈〈*p<
’’;
p+=3;
}while(p<
a+8);
41628
intx=20,y=40,*p;
p=&x;
*p〈<
*p=x+10;
p=&
y;
*p〈<
*p=y+20;
〈x〈〈’’<
〈y〈<
2040
3060
intLA(int*a,intn){
ints=0;
for(inti=0;
s+=a[i];
returns;
inta[]={5,10,15,20,25,30};
intb=LA(a,5);
intc=LA(a+3,2);
cout〈〈b〈<
c〈〈’’<
b+2*c<
7545165
ioma
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 程序 作业 答案