C++程序作业答案.docx

上传人:b****8 文档编号:10910020 上传时间:2023-02-23 格式:DOCX 页数:39 大小:27.26KB
下载 相关 举报
C++程序作业答案.docx_第1页
第1页 / 共39页
C++程序作业答案.docx_第2页
第2页 / 共39页
C++程序作业答案.docx_第3页
第3页 / 共39页
C++程序作业答案.docx_第4页
第4页 / 共39页
C++程序作业答案.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

C++程序作业答案.docx

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

C++程序作业答案.docx

C++程序作业答案

计算机应用专业“C++语言程序设计”课程作业

第一次作业

一、填空题

1.C++语言中的每条基本语句以;作为结束符,每条复合语句以}作为结束符。

2.用于输出表达式值的标准输出流对象是cout,用于从键盘上为变量输入值的标准入流对象是cin。

3.当不需要函数返回任何值时,则应把该函数类型定义为void。

4.执行“cout<<143<<’+’<<18<<’=’<<143+18<

5.执行“cout<<“ning”<<“chen”<<38<

6.在每个C++程序中都必须包含有这样一个函数,该函数的函数名为main。

7.C++源程序文件的缺省扩展名为cpp,由C++源程序文件编译而成的目标文件的缺省扩展名为obj,由C++目标文件连接而成的可执行文件的缺省扩展名为exe。

8.程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用空格或逗号符号作为分隔符。

9.十进制数25表示成符号C++语言规则的八进制和十六进制数分别为31和19符号。

10.在C++语言中,用转义字符序列\n或操纵符endl表示输出一个换行符。

11.执行“cout<

12.执行“cout<

13.已知’A’~’Z’的ASCII码为65~90,当执行“intx=’H’+5;”语句后x的值为77。

14.已知’A’~’Z’的ASCII码为65~90,当执行“charch=16*5+2;cout<

15.假定一个枚举类型的定义为“enumRA{xa,xb,xc,xd};”,则执行“cout<<”xc=”<

16.假定一个枚举类型的定义为“enumRB{ab,ac=3,ad,ae}x=ad;”则x的值为4。

17.Char、short和int类型的大小分别为1字节、2字节和4字节。

18.float和double类型的大小分别为4字节和8字节。

19.十进制数128和-3.26的类型分别为整型和双精度型。

20.若需要定义一个标识符常量,并且使C++能够进行类型检查,则应在定义语句的开始用保留字define。

21.使用const语句定义一个标识符常量时,则必须对它同时进行初始化。

22.执行“intx=45,y=16;cout<

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?

10:

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

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!

”;break;

}

}

voidmain(){

charal=’b’,a2=’c’,a3=’f’;

SB(al);SB(a2);SB(a3);SB(‘A’);

Cout<

}

good!

pass!

bad!

well!

2、#clude

#include

doubleSD(inta,intb,charop){

doublex;

switch(op){

case‘x’:

x=double(a)+b;break;

case‘-‘:

x=double(a)–b;break;

case‘*’x=double(a)*b;break;

case‘/’:

if(b)x=double(a)/b;

elseexit

(1);

break;

default:

exit

(1);

}

returnx;

}

voidmain(){

intx=20,y=12;

cout<

cout<

cout<

}

82403.2

3、#include

voidmain(){

ints=0;

for(intI=1;I<6;I++)

s+=I*I;

cout<<”s=”<

}

s=55

4、#include

voidmain(){

ints=0;

for(intI=1;;I++){

if(s>50)break;

if(I%3==0)s+=I;

}

cout<<”I,s=”<

}

I,s=19,63

5、#include

voidmain(){

ints1=0,s2=0;

for(intI=0;I<10;I++)

if(I%2)s1+=I;

elses2+=I;

cout<

}

2520

6、#include

voidmain(){

intn=10,y=1;

while(n--){y++;++y;}

cout<<”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

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。

计算机应用专业“C++语言程序设计”课程作业

第二次作业

一、填空题

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;I++)

switch(a[i]%3){

case0:

i0++;break;

case1:

i1++;break;

case2:

i2++;

}

cout<

}

424

2.#include

#include

voidmain(){

char*a[5]={”student”,”worker”,”cadre”,”apple”,”peasant”};

char*p1,*p2;

p1=p2=a[0];

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

if(strcmp(a[i],p1)>0)p1=a[i];

if(strcmp(a[i],p2)<0)p2=a[i];

}

cout<

}

workerapple

3.#include

voidmain(){

inta[8]={36,73,48,14,55,40,32,66};

intb1,b2;

b1=b2=a[0];

for(inti=1;i<8;I++)

if(a[i]>b1){

if(b1>b2)b2=b1;

b1=a[i];

}

cout<

}

7336

4.#include

voidmain(){

chara[]=”aabcdaabacabfgacd”;

inti1=0,i2=0,i=0;

while(a[i]){

if(a[i]==’a’)i1++;

if(a[i]==’b’)i2++;

i++;

}

cout<

}

73

5.#include

voidmain(){

chara[]=”abcdabcdbdaeaf”;

intb[5]={0},i=0;

while(a[i]){

switch(a[i]){

case’a’:

b[0]++;break;

case’b’:

b[1]++;break;

case’c’:

b[2]++;break;

case’d’:

b[3]++;break;

default:

b[4]++;

}

i++;

}

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

cout<

}

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<10;i++){

intj=0;

while(a[i]>=b[j])j++;

c[j]++;

}

for(i=0;i<4;i++)cout<

cout<

}

2161

7.#include

voidmain(){

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<

}

2024

8.#include

voidmain(){

inta=10,b=20;

cout<

{a*=4;

intb=a+35;

cout<

}

cout<

}

1020

4075

4020

三、写出下列每个函数的功能

1.intWC(inta[],intn,intk){

intc=0;

for(inti=0;i

if(a[i]>=k)c++;

returnc;

}

返回有n个元素的整型数组a中大于等于整数k的元素个数。

2.#include

voidWA(inta[],intn){

for(inti=0;i

intk=i;

for(intj=i+1;j

if(a[j]

intx=a[i];a[i]=a[k];a[k]=x;

}

}

函数功能是将有n个元素的整型数组从小到大排列。

3.#include

template

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

TypeWD(Typea[],intn){

Typem=a[0];

for(inti=0;i

if(a[i]>m)m=a[i];

returnm;

}

返回有n个元素的任意类型数组中最大的数。

5.Template

voidWE(Typea[],Typeb[],intn){

for(inti=0;i

b[i]=a[i]*2;

}

将有n个元素的任意类型数组a中的每个元素乘以2后放到数组b中的相应位置中。

计算机应用专业“C++语言程序设计”课程作业

第三次作业

一、填空题

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

voidmain(){

inta[8]={7,9,11,13,3,8,15,17};

int*p=a;

for(inti=0;i<8;i++){

cout<

if((i+1)%4==0)cout<

ˉˉˉˉ7ˉˉˉˉ9ˉˉˉ11ˉˉˉ13

ˉˉˉˉ3ˉˉˉˉ8ˉˉˉ15ˉˉˉ17

2.#include

voidmain(){

inta[5]={3,6,15,7,20};

int*p=a;

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

cout<

cout<

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

cout<

cout<

ˉˉˉˉ3ˉˉˉˉ6ˉˉˉ15ˉˉˉˉ7ˉˉˉ20

ˉˉˉ20ˉˉˉˉ7ˉˉˉ15ˉˉˉˉ6ˉˉˉˉ3

3.#include

voidmain(){

inta[8]={4,8,12,16,20,24,28,32};

int*p=a;

do{

cout<<*p<<’’;

p+=3;

}while(p

cout<

41628

4.#include

voidmain(){

intx=20,y=40,*p;

p=&x;cout<<*p<<’’;

*p=x+10;

p=&y;cout<<*p<

*p=y+20;cout<

2040

3060

5.#include

intLA(int*a,intn){

ints=0;

for(inti=0;i

s+=a[i];

returns;

voidmain(){

inta[]={5,10,15,20,25,30};

intb=LA(a,5);

intc=LA(a+3,2);

cout<

7545165

6.#include<

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

当前位置:首页 > 高等教育 > 经济学

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

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