}
A.2B.11C.26D.24
4.在VisualC++中,打开一个项目只需要打开对应的项目工作区文件即可,项目工作区文件的扩展名为()。
C
A.objB.dspC.dswD.cpp
5.下面关于C语言与C++关系的说法中,()是正确的。
D
A.C语言是C++的子集B.C++对C语言进行了改进
C.C++和C语言都是面向对象的D.C++继承了C语言的众多优点
6.设置一个断点的方法是将光标移到需要设置断点的行上,然后按()键。
A
A.F9B.F10C.F11D.F12
7.下面关于编译预处理命令的说法中,正确的是()。
C
A.一条文件包含命令能包含多个文件
B.文件包含命令不可以嵌套使用
C.编译预处理命令是在编译之前被处理的命令
D.编译预处理命令中的“#”可以省略
8.使用()可以设置数据输出的宽度。
B
A.setbase(intn)B.setw(intn)C.setfill(intn)D.setprecision(intn)
二、填空题
1.C/C++程序是由一个或多个函数组成的,但必须要有一个()函数,程序从这个函数开始运行的。
main()
2.C/C++字符集包括大、小写英文字母、()、()和包括运算符在内的特殊字符,程序中出现字符集以外的字符就是一个语法错误。
数字0-9、下划线
3.在VisualC++中编写程序时,除了注释中可以出现汉字,还能在()中使用汉字。
字符串
4.文件包含命令是以()开始的预处理命令,而宏定义命令是以()开始的预处理命令。
#include#define
5.在cout命令中,使用()格式控制符可以把一个数据以十六进制的形式输出。
hex
6.在C/C++中,头文件的扩展名一般为()。
.h
7.程序的错误一般分两种:
()和()。
前者是编译器可以发现的,而后者编译器则无法发现。
语法错误和逻辑错误
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.下列不合法的常量是()。
C
A.2.7B.1.0E+3C.3.5E-3.0D.3.4e-5
3.下列常量中不是字符型常量的是()。
D
A.'\x44'B.'\t'C.'\\'D."m"
4.下列选项中合法的变量名为()。
C
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.下列运算符优先级按由高到低的顺序排列正确的是()。
C
A.*=、&&、!
=、%B.*=、%、&&、!
=C.%、!
=、&&、*=D.&&、!
=、%、=
7.已知x、y为整型,z为实型,ch为字符型,下列表达式中合法的是()。
C
A.z=(y+x)++B.x+y=zC.y=ch+xD.y=z%x
8.若有定义"intx;",则经过表达式"x=(float)7/3"运算后,x的值为()。
C
A.0B.2.3C.2D.1
9.若有定义"intx=13,y=5;",则表达式"x++,y+=2,x/y"的值为()。
B
10.设整型变量m、n、a、b、c、d均为数值1,表达式(m=a>b)&&(n=c>d)运算后,m、n的值分别是()。
B
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:
a>d||b>d
2.将x、y中较大的值送给z:
z=x>y?
x:
y
3.将直角坐标系中点(x,y)表示在第3象限内:
x<0&&y<0
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>0&&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"iostream.h"
voidmain()
{floatr,h,v;
cin>>r>>h;
v=3.1416*r*r*h;
cout<}
2.任意输入3个数据,输出它们的平均值和最小的一个数。
#include"iostream.h"
voidmain()
{
floata,b,c,ave,min;
cin>>a>>b>>c;
ave=(a+b+c)/3;
min=(a
a:
b;
min=(cc:
min;
cout<<"ave="<}
3.将字符串“12”转换为整数12并输出。
#include"iostream.h"
voidmain()
{
charc1='1',c2='2';
intx;
x=10*(c1-'0')+c2-'0';
cout<}
4.编写程序,输入一个三位整数,反向输出该三位整数。
#include"iostream.h"
voidmain()
{intx;
intc1,c2,c3;
cin>>x;
c1=x/100;
c2=x/10%10;
c3=x%10;
x=100*c3+10*c2+c1;
cout<}
5.输入一个年份,判断是否为闰年。
解1:
#include"iostream.h"
voidmain()
{intyear,x;
cin>>year;
x=year%400==0||year%4==0&&year%100!
=0;
x!
=0?
cout<":
cout<";
}
解2:
#include"iostream.h"
voidmain()
{intyear;
charx;
cin>>year;
x=(year%400==0||year%4==0&&year%100!
=0)?
'y':
'n';
cout<}
6.编写程序,求函数
的值,要求输入x,程序就输入y的值
#include"iostream.h"
#include"math.h"
voidmain()
{doublex,y;
cin>>x;
y=log(x*x+3)/log(10)+3.14/2*cos(40*3.14/180);
cout<}
第三章
一、选择题
1.为了避免嵌套的ifelse语句的二义性,C/C++语言规定else总是与()组成配对关系。
C
A.缩排位置相同的ifB.在其之前未配对的if
C.在其之前未配对的最近的ifD.同一行上的if
2.设有函数关系为
,下面()选项不能正确表示上述关系。
D
A.if(x<=0)B.y=1;
if(x<0)y=-1;if(x<=0)
elsey=0;if(x<0)y=-1;
elsey=1;elsey=0;
C.y=-1;D.y=-1;
if(x>=0)if(x!
=0)
if(x==0)y=0;if(x>0)y=1;
elsey=1;elsey=0;
3.若有变量定义“inta=7;”,则下列语句组对应的输出结果是()。
D(该答案后还应附“其他值”)
switch(a%5)
{case0:
cout<case1:
cout<<++a;
case2:
cout<case3:
cout<<--a;
default:
cout<<”其他值”;
}
A.其他值B.5C.7D.75其他值
4.以下程序段中循环体语句“k++”执行的次数为()。
C
for(k=0,m=4;m;m-=2)
for(n=1;n<4;n++)
k++;
A.16B.12C.6D.8
5.执行下面程序段后,变量k的值为()。
B
for(k=0,m=1;m<4;m++)
{
for(n=1;n<5;n++)
if(m*n%3==0)continue;
k++;
}
A.1B.3C.6D.12
6.下面叙述中正确的是()。
C
A.for循环只能用于循环次数已经