c++复习资料及答案.docx

上传人:b****1 文档编号:12765366 上传时间:2023-04-22 格式:DOCX 页数:14 大小:27.51KB
下载 相关 举报
c++复习资料及答案.docx_第1页
第1页 / 共14页
c++复习资料及答案.docx_第2页
第2页 / 共14页
c++复习资料及答案.docx_第3页
第3页 / 共14页
c++复习资料及答案.docx_第4页
第4页 / 共14页
c++复习资料及答案.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

c++复习资料及答案.docx

《c++复习资料及答案.docx》由会员分享,可在线阅读,更多相关《c++复习资料及答案.docx(14页珍藏版)》请在冰豆网上搜索。

c++复习资料及答案.docx

c++复习资料及答案

《C++》复习资料及答案

一、判断题

1、在变量定义intsum,SUM;中sum和SUM是两个相同的变量名。

(N)

2、字符串”china”在内存中占据的存储空间是5个字节。

(N)

3、在C++语言中,”A”和’A’是等价的。

(N)

4 、C++表达式4/7和4.0/7的值是相等的,且都为double型。

(N)

5、关系表达式a=b>c等价于a=(b>c),同时也等价于a==b>c。

(N)

6、continue语句和break语句的区别是:

break语句提前跳出switch结构或结束循环的执行;continue语句只结束本次循环,而不是终止整个循环的执行。

(Y)

7、数组是一种构造型数据,即是若干相同类型的数据的集合。

()

8、C++语言中,二维数组中元素排列的顺序是:

按行存放,即在内存中先顺序存放第一行的元素,再存放第二行的元素。

()

9、#include“iostream.h”的作用是将说明标准输入输出流对象的头文件包含到当前源文件中来。

(Y)

10、C++语言中允许函数“嵌套调用”和“递归调用”,所谓“递归调用”就是指:

在调用一个函数的过程中又出现直接或间接地调用该函数本身。

(Y)

二、选择题

1、由C++源程序文件编译而成的目标代码文件的缺省扩展名为(C)

A).cppB).exeC).objD).lik

2、设x和y均为bool类型(bool类型:

1或0),则x&&y为真的条件是(A)

A).它们均为真B).其中一个为真

C).它们均为假D).其中一个为假

3、设有inti;则表达式i=1,++i,++i||++i,i的值为(C)

A).1B).2C).3D).4

4、设有inti;则表达式(i=1,i=10)?

i++||++i:

++i的值为(A)

解析:

(i=1,i=10)?

i++||++i:

++i

(i=1,i=10)是真的情况表达式的值=i++||++i

是假的时候=++i

(i=1,i=10)这个是逗号运算符最终i=10,是真

所以表达式的值是i++||++i=10||12=1

A).1B).2C).3D).10

5、设有inta[]={10,11,12},*p=&a[0];则执行完*p++;*p+=1;后a[0],a[1],a[2]的值依次是()

A).10,11,12B).11,12,12

C).10,12,12D).11,11,12

6、设a、b和c都是int型变量,且a=3,b=4,c=5,则下列表达式中,值为0的表达式是()

A).'A'&&'B'1B).a<=b1

C).c>=b||b+c&&b-c1D).a<=b+c&&c>=a+b

7、若x和y都是int型变量,x=100,y=200,则下面程序片段cout<<(x,y)<

解析:

语句中遵循优先级高的优先执行的原则,括号优先级最高,所以(x,y)最先计算。

这是一个逗号表达式,注意,是一个表达式,是表达式就有值。

逗号表达式的值等于最右边的那个值,即x,y,z的值是z,依次类推。

所以(x,y)=y=200,最后执行语句其他部分,输出200

A).200B).100

C).100200D).输出格式符不够,输出不确定的值

8、下面各语句中,能正确进行字符串赋值操作的语句行是()

A).chars[4][5]={"ABCDE"};B).chars[5]={'A','B','C','D','E'}(chars[6]={'A','B','C','D','E'})

C).Char*s;s="ABCDE";D).char*s;cin>>s;

9、若有:

inta[6]={4,5,6,9,5,7},*p=a,*q=p;则对数组元素的错误引用是()

A).a[4]B).*(p+4)C).*a++(变量才能加减)D).*q++

10、下列不正确的转义字符是()

  A).'\\'B).'\"C).'074'D).'\0'

11、假定a和b为int型变量,则执行以下语句后b的值为()

  a=1;b=10;

  do

  {b-=a;a++;}

  while(b--<0);

  A).9B).–2C).-1D).8

12、对于结构中定义的成员,其隐含访问权限为()

A).publicB).protected

C).privateD).static

13、设P1和P2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是()

 A).k=*P1+*P2;B).p2=k;C).P1=P2;D).K=*P1*(*P2);

14、设有如下定义:

  intarr[]={6,7,8,9,10};

  int*ptr;

  则下列程序段的输出结果为()

  ptr=arr;

  *(ptr+2)+=2;

  cout<<*ptr<<*(ptr+2)<

A).8,10B).6,8C).7,9D).6,10

15、执行以下程序段后,m的值为()

  inta[2][3]={{1,2,3},{4,5,6}};

  intm,*p;

  p=&a[0][0];

  m=(*p)*(*(p+2))*(*(p+4));

  A).15B).14C).13D).12

三、填空题

1、描述命题“A小于B或小于C”的表达式为。

2、在C++中有二种参数传递方式:

和。

3、定义重载函数时,应在参数个数、参数类型或参数次序上。

4、拷贝初始化构造函数使用来初始化创建中的对象。

5、一个C++函数由两部分组成,即:

和。

6、一个C++程序总是从开始执行。

7、C++语言程序中出现的/*……*/部分或//……部分所起的作用是:

8、C++语言中数组元素的访问方式有两种,即:

和。

9、C++规定:

在每一个字符串的结尾加上一个,以便系统据此判断字符串是否结束。

10、C++语言中数据类型的转换有两种,即:

和。

11、C++语言规定了运算符的优先级和结合性,其结合性分为:

和。

12、若有intx=4,y=7;则表达式x+=y,x*=x+y的值为。

13、x>1&&y!

=0的相反条件为。

14、过程化程序设计方法中,程序由三种基本结构,即:

顺序结构、、。

15、在C++中,若需要在程序文件中进行标准输入输出操作,则必须在开始加入预处理命令,若使用到数学库中的函数时,要在源程序的开始加入预处理命令。

16、C++语言中用来存放变量地址的变量称作。

17、int*p[10];的含义是。

18、int**p;的含义是。

四、简答题

1、请用C++语言的表达式表示下列代数式。

(1)

(2)

(e=2.71828)

(3)

(4)

(e=2.71828)

(5)

 

2、根据要求完成下列各题。

(1)用两种方法实现一个字符串str,并赋以初值”welcometoNanjing!

”。

 

(2)定义结构体类型date,该结构体包含的成员为year(整型)、month(整型)、day(整型),再使用typedef

将结构体类型date等价成DATE,最后使用DATE定义一个变量pdate。

 

五、程序分析题

1、写出下列程序运行结果:

(1)#include"iostream.h"(4分)

voidmain()

{intx=5,y=8,*px,*py;

px=&x,py=&y;

cout<<"num1=”<<*px<<’,’<<”num2="<<*py<<’;’;

if(x

cout<<"num1=”<<*px<<’,’<<”num2="<<*py<<’;’;

if(x

cout<<"num1=”<<*px<<’,’<<”num2="<<*py<<’;’;

if(x

cout<<"num1=”<<*px<<’,’<<”num2="<<*py<<’;’;

}

swap1(inta,intb)

{intt;

t=a;a=b;b=t;

cout<<"num1=”<

}

swap2(int*p,int*q)

{int*t;

t=p;p=q;q=t;

cout<<"num1=”<<*p<<’,’<<”num2="<<*q<<’;’;

}

swap3(int*p,int*q)

{intt;

t=*p;*p=*q;*q=t;

cout<<"num1=”<<*p<<’,’<<”num2="<<*q<<’;’;

}

(2)#include“iostream.h”(3分)

main(intargc,char*argv[])

{inti;

cout<<”argc=”<

for(i=0;i<=argc-1;i++)cout<

}

若上面的程序编译`连接后生成可执行文件ABC.EXE,

若输入以下命令行abcfilelfile2(表示回车)注:

文件的路径可以不考虑

(3)#include(4分)

classA

{inta,b;

public:

A(){a=b=0;}

A(intaa,intbb):

a(aa),b(bb)

{cout<<”a=”<

~A(){cout<<”Destructor!

”<

};

voidmain()

{Ax,y(2,3);}//对象x,y消亡后分别自动调用析构函数~A()

 

2、试分析下列程序或函数的功能。

(4分)

(1)#include"iostream.h"

  voidmain()

  {charstr[81],*sptr;

  inti;

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

  {str[i]=cin.get();

  if(str[i]=='\n')break;

  }

  str[i]=’\0’;

  sptr=str;

 while(*sptr)cout<<(*sptr++);

  }

3、程序改错题:

(4分)

从键盘输入一个分数(0~100),判断它属于哪个分数段,并输出分数段字母代号。

#include

main()

{intnum;chargrade;

cout<<“pleaseinputnum:

”;

cin>>num;

if((grade>=90)&&(grade<==100)grade=”A”;cout<<“Thegradeis:

”<

if(grade>=80)grade=”B”;cout<<“Thegradeis:

”<

if(grade>=70)grade=”C”;cout<<“Thegradeis:

”<

if(grade>=60)grade=”D”;cout<<“Thegradeis:

”<

elsegrade=”E”;cout<<“Thegradeis:

”<

}

4、程序填空题:

(每空1分,共8分)

(1)以下程序通过调用自定义函数scopy()将字符串s1复制到字符串s2,并输出显示,请填空。

#include“iostream.h”

voidscopy(,)

{while(*p!

='\0')

{;;;}

*q='\0';

}

voidmain()

{char*s1="Nanjing,China";

chars2[20];

cout<<"\nThes1is:

"<

;

cout<<"\nThes2is:

"<

}

(2)classA

{int*a;

intn;

public:

A(intnn=0):

n(nn)

{if(n==0)a=0;

elsea=;//分配长度为n的动态数组

}

voidseta(int*aa)

{for(inti=0;i

//定义析构函数,释放动态数组空间

};

六、编程题

1、编制一个完整的程序:

从键盘输入10个整型数组元素,调用自定义函数voidsort(intarray[],intn)对其进行由大到小排序,最后将排序结果输出到显示器终端,要求自定义函数sort()中用冒泡法实现排序。

 

04财计《C++程序设计语言》答案

一、判断题(10分)

1~5:

F,F,F,F,F

2~10:

T,T,T,T,T

二、选择题(25分)

1~5:

C,A,C,A,C

6~10:

D,A,C,C,C

11~15:

D,A,B,D,A

16~20:

C,D,D,A,A

三、语法填空题(15分)

1、A

2、值传递和地址传递。

3、不相同。

4、已存在同类型对象的引用。

5、函数的说明部分和函数体部分。

6、main函数的入口地址处。

7、注释说明,以增加程序的可读性。

8、下标方式和指针方式。

9、字符串结束标志’\0’

10、自动类型转换和强制类型转换。

11、左结合性和右结合性。

12、198。

13、x<=1||y==0。

14、选择结构、循环结构。

15、#include,#include“math.h”。

16、指针变量。

17、定义指针数组p,它有10个指向整型数据的指针元素组成。

18、定义一个指针变量p,它指向一个指向整型数据的指针变量。

四、简答题(16分)

1、请用C++语言的表达式表示下列代数式。

(1)x*x*x*sin(55*3.14/180)/(3.14*d)

(2)1.0/3*exp(a-b)

(3)(a+b*b*h-b/4)/(a+h/t)

(4)exp(a+b)*sin(50*3.14/180)

(5)log(a+x/5.0*sqrt(a+x*x))

2、根据要求完成下列各题。

(1)staticcharstr[]=”welcometoNanjing!

”;

char*str=”welcometoNanjing!

”;

(2)structdate

{intyear;

intmonth;

intday;

};

typedefstructdateDATE;

DATEpdate;

五、程序分析题

1、

(1)、各cout按执行次序输出的结果为5,8;8,5;5,8;8,5;5,8;8,5;8,5

(2)、程序执行后的输出结果是:

argc=3;abc.exe;file1;file2;

(3)、程序的输出结果是:

a=2,b=3

Destructor!

Destructor!

2、程序的功能是:

从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串。

3、改错题:

#include

main()

{intnum;chargrade;

cout<<“pleaseinputnum:

”;

cin>>num;

if((grade>=90)&&(grade<=100)grade=”A”;cout<<“Thegradeis:

”<

elseif(grade>=80)grade=”B”;cout<<“Thegradeis:

”<

elseif(grade>=70)grade=”C”;cout<<“Thegradeis:

”<

elseif(grade>=60)grade=”D”;cout<<“Thegradeis:

”<

elsegrade=”E”;cout<<“Thegradeis:

”<

endif

endif

endif

endif

}

4、填空题:

(1)以下程序通过调用自定义函数scopy()将字符串s1复制到字符串s2,并输出显示,请填空。

char*p,char*q*q=*p;p++;q++;scopy(s1,s2);

(2)newint[n];//分配长度为n的动态数组

~A(){delete[]a;}//定义析构函数,释放动态数组空间

六、程序设计题(7分)

#include

main()

{intarr[10];

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

cin>>arr[i];

Sort(arr,10);

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

cout>>arr[i];

}

voidsort(intarray[],intn)

{inti,j,k;

for(i=0;i<=n-1;i++)

for(j=0;j<=n-i;j++)

if(array[j]>=array[j+1])

{k=array[j];array[j]=array[j+1];array[j+1]=k;}

}

 

 

欢迎您的下载,

资料仅供参考!

 

致力为企业和个人提供合同协议,策划案计划书,学习资料等等

打造全网一站式需求

 

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

当前位置:首页 > 外语学习 > 法语学习

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

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