c++程序的设计测试带答案与习题Word文件下载.docx

上传人:b****5 文档编号:18963476 上传时间:2023-01-02 格式:DOCX 页数:61 大小:60.08KB
下载 相关 举报
c++程序的设计测试带答案与习题Word文件下载.docx_第1页
第1页 / 共61页
c++程序的设计测试带答案与习题Word文件下载.docx_第2页
第2页 / 共61页
c++程序的设计测试带答案与习题Word文件下载.docx_第3页
第3页 / 共61页
c++程序的设计测试带答案与习题Word文件下载.docx_第4页
第4页 / 共61页
c++程序的设计测试带答案与习题Word文件下载.docx_第5页
第5页 / 共61页
点击查看更多>>
下载资源
资源描述

c++程序的设计测试带答案与习题Word文件下载.docx

《c++程序的设计测试带答案与习题Word文件下载.docx》由会员分享,可在线阅读,更多相关《c++程序的设计测试带答案与习题Word文件下载.docx(61页珍藏版)》请在冰豆网上搜索。

c++程序的设计测试带答案与习题Word文件下载.docx

(a)p的值为10(b)p指向整型变量i

(c)*p表示变量i的值(d)p的值是变量i的地址

15.有以下变量声明,下面不正确的赋值语句是()。

inta=5,b=10,c;

int*p1=&

a,*p2=&

b;

(a)*p2=b;

(b)p1=a;

(c)p2=p1;

(d)c=*p1*(*p2);

16.有以下变量声明,下面正确的语句是()。

(B)

inta=10,b;

int&

pa=a,&

pb=b;

(a)&

pb=a;

(b)pb=pa;

(c)pb=&

pa;

(d)*pb=*pa;

17.执行下面语句序列后,a和b的值分别为()。

inta=5,b=3,t;

int&

ra=a;

rb=b;

t=ra;

ra=rb;

rb=t;

(a)3和3(b)3和5(c)5和3(d)5和5

18.在下列运算符中,()优先级最高。

(a)<

=(b)*=(c)+(d)*

19.在下列运算符中,()优先级最低。

(a)!

(b)&

&

(c)!

=(d)?

:

20.设inti=1,j=2;

则表达式i+++j的值为()。

(a)1(b)2(c)3(d)4

21.设inti=1,j=2;

则表达式++i+j的值为()。

22.在下列表达式选项中,()是正确。

(a)++(a++)(b)a++b(c)a+++b(d)a++++b

23.已知inti=0,j=1,k=2;

则逻辑表达式++i||--j&

++k的值为()。

(a)0(b)1(c)2(d)3

24.执行下列语句后,x的值是()(D)。

intx,y;

x=y=1;

++x||++y;

(a)不确定(b)0(c)1(d)2

25.执行下列语句后,y的值是()。

26.设X为整型变量,不能正确表达数学关系1<X<5的C++逻辑表达式是()。

(a)1<

X<

5(b)X==2||X==3||X==4

(c)1<

X&

X<

5(d)!

(X<

=1)&

!

(X>

=5)

27.已知intx=5;

执行下列语句后,x的值为()。

x+=x-=x*x;

(a)25(b)40(c)–40(d)20

28.设inta=1,b=2,c=3,d=4;

则以下条件表达式的值为()。

a<

b?

a:

c<

d?

c:

d

29.以下逗号表达式的值为()。

(x=4*5,x*5),x+25

(a)25(b)20(c)100(d)45

1.1把下列数学表达式写成c++算术表达式

1.2.x{x[x(ax+b)+c]+d}+e

3.ln(1+||10)4.

5.cot6.lg(a2+ab+b2)

1.2用关系表达式或逻辑表达式表示下列条件

1.i被j整除2.n是小于正整数k的偶数

3.1≤x<

104.x,y其中有一个小于z

5.y[–100,–10],并且y[10,100]

6.坐标点(x,y)落在以(10,20)为圆心,以35为半径的圆

7.三条边a,b和c构成三角形

8.年份Year能被4整除,但不能被100整除或者能被400整除

1.3阅读下列程序,写出执行结果

1.#include<

iostream.h>

voidmain()

{inta=1,b=2,x,y;

cout<

<

a+++++b<

endl;

a%b<

x=!

a>

?

y=x--&

b;

x<

y<

}

2.#include<

{intx,y,z,f;

x=y=z=1;

f=--x||y--&

z++;

"

x="

<

y="

z="

z<

f="

f<

3.#include<

#include<

iomanip.h>

{inta=123;

ra=a;

int*pa=&

a;

cout<

setw(5)<

dec<

a<

oct<

ra<

hex<

*pa<

endl;

1.4思考题

1.什么叫数据类型?

数据的类型定义有什么作用?

2.数据对象在C++中有什么不同的访问方式?

请编写一个程序验证之。

3.普通数据类型变量和指针类型变量的定义、存储、使用方式上有何区别?

4.什么叫数据对象的引用?

对象的引用和对象的指针有什么区别?

请用一个验证程序说明之。

5.为了约束只能对数据对象的值做读操作,C++采用什么方式?

请做出简要归纳。

6.什么叫表达式?

表达式值的类型由什么因素决定?

使用不同运算符连接以下3个变量,请写出5个以上获得值等于1的表达式。

inta=1,b=2;

doublex=0.5;

1.5编程题

1.输入一个三位整数,将它反向输出。

2.输入平面上某点横坐标x和纵坐标y,若该点在由图1表示的方块区域,则输出1;

否则,输出0。

图1正方形

3.输入三个整数,求出其中最小数(要求使用条件表达式)。

1.6操作题

建立简单控制台程序。

使用VC6开发环境来调试以下源程序。

#include<

#include<

math.h>

{doublea,b,c,s,area;

a,b,c="

;

cin>

>

a>

b>

c;

//输入三角形的三条边

s=(a+b+c)/2.0;

area=sqrt(s*(s-a)*(s-b)*(s-c));

//求三角形的面积

area="

area<

(1)根据操作过程填写以下表格。

操作

说明或结果分析

进入VC6

在D盘建立一个名为“ex1.cpp”的控制台程序

输入代码

编译连接程序

运行程序

(2)记录编辑运行程序所需时间。

(3)采用以下各组数据输入测试,记录输出结果。

分析原因,思考如何解决?

345

3412

062

-279

(4)修改程序。

a)把double改为int,重新编译程序,会出现什么编译信息?

什么原因?

b)把s和area定义为double可以消除编译错误吗?

为什么?

c)采用以下数据输入测试,记录输出结果,分析原因。

增加输出a、b、c变量值的语句,观察不同输入时变量值的变化。

3.455.6184.012

选择题

1.已知inti=0,x=1,y=0;

在下列选项使i的值变成1的语句是()。

(a)if(x&

y)i++;

 (b)if(x=y)i++;

(c)if(x||y)i++;

 (d)if(!

x)i++;

2.设有函数关系为,下面选项中能正确表示上述关系为()。

(a)y=1;

(b)y=-1;

if(x>

=0)if(x!

=0)

if(x==0)y=0;

0)y=1;

elsey=-1;

elsey=0

(c)if(x<

=0)(d)y=-1;

if(x<

0)y=-1;

elsey=0;

elsey=1;

3.假设i=2,执行下列语句后i的值为()。

  switch(i)

  {case1:

i++;

   case2:

i--;

   case3:

++i;

break;

   case4:

--i;

   default:

  }

(a)1 (b)2 (c)3 (d)4

4.已知inti=0,x=0;

下面while语句执行时循环次数为()。

while(!

x&

i<

3){x++;

(a)4 (b)3 (c)2 (d)1

5.已知inti=3;

下面do_while语句执行时循环次数为()。

do{i--;

i<

}while(i!

=1);

(a)1 (b)2 (c)3 (d)无限

6.下面for语句执行时循环次数为()。

for(inti=0,j=5;

i=j;

{cout<

j<

i++;

j--;

(a)0 (b)5 (c)10 (d)无限

7.以下死循环的程序段是()。

(a)for(intx=0;

3;

){x++;

};

(b)intk=0;

do{++k;

}while(k>

=0);

(c)inta=5;

while(a){a--;

(d)inti=3;

for(;

i;

i--);

思考题

1.C++中有什么形式的选择控制语句?

归纳它们语法形式、应用场合。

根据一个实际问题使用不同的条件语句编程。

2.什么叫循环控制?

归纳比较C++中各种循环控制语句的语法、循环条件和循环结束条件的表示形式。

3.根据一个实际问题,用不同的循环语句编程,分析其优缺点。

4.用if语句和goto语句组织循环,改写2.3第3小题编写的程序。

分析在什么情况下可以适当使用goto语句。

2.1阅读下列程序,写出执行结果

1.#include<

{inta,b,c,d,x;

a=c=0;

b=1;

d=20;

if(a)d=d-10;

elseif(!

b)

if(!

c)

x=15;

elsex=25;

d<

2.#include<

{inta=0,b=1;

switch(a)

{case0:

switch(b)

{case0:

a="

a<

b="

b<

break;

case1:

case1:

a++;

b++;

3.#include<

{inti=1;

while(i<

=10)

if(++i%3!

=1)

continue;

elsecout<

4.#include<

{inti=0,j=5;

do

{i++;

if(i>

3)break;

}while(j>

0);

i="

'

\t'

j="

5.#include<

{inti,j;

for(i=1,j=5;

i<

j;

i++)

{j--;

′\t′<

6.#include<

{inti,s=0;

for(i=0;

5;

switch(i)

s+=i;

case2:

default:

s+=2;

s="

s<

7.#include<

{inti,j,x=0;

=3;

{x++;

for(j=0;

j<

j++)

{if(j%2)continue;

x++;

x="

2.2思考题

归纳比较C++中各种循环控制语句的语法、循环条件和循环结束条件的表示形式及执行流程。

4.用if语句和goto语句组织循环,改写思考题2.3第3小题编写的程序。

2.3编程题

1.输入某学生成绩,若成绩在85分以上输出“verygood”,若成绩在60分到85分之间输出“good”,若成绩低于60分输出“nogood”。

2.输入三个数,按从小到大的顺序输出。

3.输入三角形的三条边,判别它们能否形成三角形,若能,则判断是等边、等腰、还是一般三角形。

4.输入百分制成绩,并把它转换成五级分制,转换公式为:

5.编程序模拟剪刀、石头和纸游戏。

游戏规则为:

剪刀剪纸,石头砸剪刀,纸包石头。

玩游戏者从键盘上输入s(表示剪刀)或r(表示石头)或p(表示纸),要求两个游戏者交替输入,计算机给出输赢的信息。

6.输入一个整数,输出该整数的所有素数因子。

例如,输入120,输出为2、2、2、3和5。

7.使用迭代公式编程序求某一正整数a的平方根。

8.已知,求sinx,cosx和tanx的值。

9.在100到200中找出同时满足用3除余2,用5除余3和用7除余2的所有整数。

10.求100到999中的水仙花数。

所谓水仙花数是指一个三位数,它的每位数字的立方之和等于该数。

例如,因为153=13+53+33,所以153为水仙花数。

11.求1000之的所有完数。

所谓完数是指一个数恰好等于它的所有因子之和。

例如,因为6=1+2+3,所以6为完数。

12.编一程序显示如下图案:

*

***

*****

*******

*********

13.已知XYZ+YZZ=532,其中X,Y和Z为数字,编一程序求出X,Y和Z。

2.4操作题——调试程序

(1)以下程序试图求π的近似值。

{longinti=0;

doublesum,term,pi;

{i+=1;

term=1/(i*i);

sum+=term;

}while(term>

=1e-12);

pi=sqrt(sum*6);

pi="

pi<

endl;

输入程序编译后使用Debug跟踪,单步执行程序,记录以下变量值的变化。

i

term

sum

1

2

3

4

5

:

回答以下问题:

a)从跟踪结果分析,term和sum的值有什么错误?

b)循环结束后,i的值是多少?

用什么简单的办法可以看到?

c)对程序做了什么修改使其得到正确的结果?

(2)编写第2章习题2.3-12输出符号三角形的图案程序,记录:

a)程序出现了什么编译错误,如何解决。

b)程序运行后图案显示正确吗?

采用跟踪方法记录外循环控制变量的变化。

c)若要程序输出以下图案,应该做什么修改?

请编程实现并在程序中加以适当注释说明。

1.以下正确的函数原型为()。

(a)f1(intx;

inty);

 (b)voidf1(x,y);

(c)voidf1(intx,y);

 (d)voidf1(int,int);

2.有函数原型voidfun2(int);

下面选项中,不正确的调用是()。

(a)intx=21;

fun2(x);

(b)inta=15;

fun2(a*3);

(c)intb=100;

fun2(&

b);

(d)fun2(256);

3.有函数原型voidfun3(int*);

下面选项中,正确的调用是()。

(a)doublex=2.17;

fun3(&

x);

(b)inta=15;

fun3(a*3.14);

(d)fun3(256);

4.有函数原型voidfun4(int&

);

(a)intx=2.17;

fun4(&

fun4(a*3.14);

fun4(b);

(d)fun4(256);

5.有声明intfun5(int);

int(*pf)(int)=fun5;

(a)inta=15;

intn=fun5(&

a);

(&

pf)(a);

(c)cout<

(*pf)(256);

(d)cout<

*pf(256);

6.在VC中,若定义一个函数的返回类型为void,以下叙述正确的是()。

(a)函数返回值需要强类型转换(b)函数不执行任何操作

(c)函数本身没有返回值(d)函数不能修改实际参数的值

7.函数参数的默认值不允许为()。

(a)全局常量(b)直接常量(c)局部变量(d)函数调用

8.使用重载函数编程序的目的是()。

(a)使用相同的函数名调用功能相似的函数(b)共享程序代码

(c)提高程序的运行速度(d)节省存贮空间

9.下列的描述中()是错误的。

(a)使用全局变量可以

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

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

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

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