C语言课后习题及答案讲解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A.obj B.dsp C.dsw D.cpp
5.下面关于 C 语言与 C++ 关系的说法中, ( )是正确的。 D
A.C 语言是 C++ 的子集 B.C++ 对 C 语言进行了改进
C.C++ 和 C 语言都是面向对象的 D.C++ 继承了 C 语言的众多优点
6.设置一个断点的方法是将光标移到需要设置断点的行上,然后按( A.F9 B.F10 C.F11 D.F12
C
A. 缩排位置相同的 if
B.在其之前未配对的 if
C. 在其之前未配对的最近的 if
D.同一行上的 if
1, x 0
2.设有函数关系为 y
0, x 0 ,下面( 1, x 0
)选项不能正确表示上述关系。 D
A. if ( x<=0 )
B. y=1;
if(x<0)y=-1;
if(x<=0)
else y=0;
char x; cin>>year; x=(year%400==0||year%4==0&&year%100!=0)?'y': 'n'; cout<<x<<endl; }
2
6.编写程序,求函数 y lg( x 3) * cos 40 的值,要求输入 x,程序就输入 y 的值 2
#include "iostream.h"
第一章
一、 选择题
1.C/C++ 规定,在一个源程序中, main() 函数的位置( )。 C
A. 必须在最开始 C.可以任意
B. 必须在最后 D. 必须在系统调用的库函数的后面
2.以下()是 C/C++ 合法的标识符。 A
A.char2 B.@x C.int D.7Bw
3.下面的程序,对于输入: 2 9 15,输出的结果是( )。 B #include"iostream.h"
5.下列不正确的变量定义方法是(
)。D
A.int a,&b=a; B.float a,*b=&a; C.int a(4),b(0);
D.int a=b=5;
6.下列运算符优先级按由高到低的顺序排列正确的是(
)。C
A.*= 、&& 、 != 、 % B.*= 、 %、 && 、 != C. %、 != 、 && 、 *= D.&& 、!= 、 %、 =
二、 填空题
1.C/C++ 程序是由一个或多个函数组成的,但必须要有一个(
开始运行的。
main()
)函数,程序从这个函数
2. C/C++ 字符集包括大、小写英文字母、 ( )、( )和包括运算符在内的特殊字符,程序
中出现字符集以外的字符就是一个语法错误。
数字 0-9、下划线
3.在 Visual C++ 中编写程序时,除了注释中可以出现汉字,还能在( 串
二、把下列数学表达式写成 C/C++ 表达式。
1. x+ y≠ a+b : (x+y)!=(a+b). 2. (ln10+xy) 3 : pow(log(10)+x*y),3)
sin(
3.
cos45
)
: sin(w*u)/(cos(45*180/3.14)+3*pow(x,y))
3xy
4. e3 (2x 3y):exp(3)+sqrt(2*x+3*y)
#include "iostream.h" void main() {float r,h,v; cin>>r>>h; v=3.1416*r*r*h; cout<<v; }
2.任意输入 3 个数据,输出它们的平均值和最小的一个数。 #include "iostream.h"
void main() { float a,b,c,ave,min; cin>>a>>b>>c; ave=(a+b+c)/3; min=(a<b)?a:b; min=(c<min)?c:min; cout<<"ave="<<ave<<" min="<<min<<endl; }
void main()
{int a;
float b;
cout<<"input a,b:"<<endl;
cin>>a>>b;
cout<<"a+b="<<a+b<<endl;
}
A.2 B.11 C. 26 D.24
4. 在 Leabharlann Baiduisual C++ 中,打开一个项目只需要打开对应的项目工作区文件即可,项目工作区文 件的扩展名为( )。 C
7.已知 x、 y 为整型, z 为实型, ch 为字符型,下列表达式中合法的是(
)。 C
A.z=(y+x)++ B.x+y=z C.y=ch+x D.y=z%x
8.若有定义 "int x;" ,则经过表达式 "x=(float)7/3" 运算后, x 的值为( )。 C A.0 B.2.3 C.2 D.1 9.若有定义 "int x=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,0 B.0,1 C.1,0 D.1,1
3.将字符串“ 12”转换为整数 12 并输出。 #include "iostream.h" void main() { char c1='1',c2='2'; int x; x=10*(c1-'0')+c2-'0'; cout<<x<<endl; } 4.编写程序,输入一个三位整数,反向输出该三位整数。 #include "iostream.h" void main() {int x; int c1,c2,c3; cin>>x; c1=x/100; c2=x/10%10; c3=x%10; x=100*c3+10*c2+c1; cout<<x<<endl; } 5.输入一个年份,判断是否为闰年。 解 1: #include "iostream.h" void main() {int year,x; cin>>year; x=year%400==0||year%4==0&&year%100!=0; x!=0?cout<<year<<"is a leap year!": cout<<year<<"is not a leap year!"; } 解 2: #include "iostream.h" void main() {int year;
)。 C
for(k=0,m=4;m;m-=2)
for(n=1;n<4;n++)
k++;
A. 16 B.12 C.6 D.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. 1 B.3 C.6 D.12
)键。 A
7.下面关于编译预处理命令的说法中,正确的是(
)。C
A. 一条文件包含命令能包含多个文件
B.文件包含命令不可以嵌套使用
C.编译预处理命令是在编译之前被处理的命令
D.编译预处理命令中的“ #”可以省略
8.使用( )可以设置数据输出的宽度。 B
A.setbase(int n) B.setw(int n) C.setfill(int n) D.setprecision(int n)
6. 如果程序顺利地通过编译、 连接,但是程序运行时结果有错误, 最好的调试手段是什么?
最好的调试手段是设置断点,并让程序运行到该断点,然后在
Debug 窗口观察各变量的值,
从中发现错误。
第二章 一、 选择题
1.下列选项中可以作为 C/C++ 的合法整型常量的是(
)。 B
A.1011B B.047 C.x23 D.20H
{case 0:cout<<a++;
case 1:cout<<++a;
case 2:cout<<a--;
case 3:cout<< --a;
default: cout<< ”其他值 ”;
}
A. 其他值 B.5 C. 7 D.7 5 其他值
)。 D( 该答案后还应附
4.以下程序段中循环体语句“ k++ ”执行的次数为(
2.下列不合法的常量是( )。C
A.2.7 B.1.0E+3 C.3.5E-3.0 D.3.4e-5
3.下列常量中不是字符型常量的是( A. '\x44' B.'\t' C.'\\' D."m"
)。 D
4.下列选项中合法的变量名为(
)。 C
A.#define B.float C.a12_3 D.sqrt(x)
if(x<0)y=-1;
else y=1;
else y=0;
C.y=-1;
D. y=-1;
if(x>=0)
if(x!=0)
if(x==0)y=0;
if(x>0)y=1;
else y=1;
else y=0;
3.若有变量定义“ int a=7 ;”,则下列语句组对应的输出结果是( “其他值” )
switch(a%5)
a? , 3a,
a-b,
f(x),
A D,
a.txt, D $,
∏ , double
能作为 C/C++ 的标识符: abc, b, s_2, Int
4. C/C++ 语言的书写格式有哪些特点? C/C++ 程序书写形式自由。一行可以写多条语句,
一条语句也可以分别写在不同行上。区别大小写字母。
5. 何时在 #include 中使用尖括号,何时使用双引号?用尖括号时,预处理程序在系统指定 的文件夹中寻找文件; 用双引号时, 预处理程序首先在当前文件所在的文件目录中寻找文件, 若找不到再到系统指定的文件夹中查找。
#include "math.h"
void main()
{double x,y;
cin>>x;
y=log(x*x+3)/log(10)+3.14/2*cos(40*3.14/180);
cout<<y;
}
第三章
一、选择题
1.为了避免嵌套的 if else 语句的二义性, C/C++ 语言规定 else 总是与( )组成配对关系。
( )选项卡。Fileview
三、 简答题
1. C++ 与 C 语言的主要区别是什么? C++ 是 C 语言的超集。 C++ 中的类和对象部分, C 语 言没有, C++ 是面向对象的程序设计。见教材 P3。
2. C/C++ 程序由哪些部分组成? C/C++ 程序是由一个或多个函数组成,其中必须要有一个 main() 函数。在一个函数内,语句的执行是从上到下的。 3. 判断下列符号中哪些不能作为 C/C++ 的标识符:
)中使用汉字。字符
4.文件包含命令是以( 令。 #include #define
)开始的预处理命令,而宏定义命令是以
( )开始的预处理命
5.在 cout 命令中,使用 ( )格式控制符可以把一个数据以十六进制的形式输出。
hex
6.在 C/C++ 中,头文件的扩展名一般为(
)。 .h
7.程序的错误一般分两种: ( )和( )。前者是编译器可以发现的,而后者编译器则无
xy
5. x - y
: fabs(x-y)+(x+y)/(3*x)
3x
1
6.
: 1/(1/r1+1/r2+1/r3)
11 1
r1 r2 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 的圆柱体的体积。
6.下面叙述中正确的是( )。C A.for 循环只能用于循环次数已经确定的情况
B.for 循环同 do-while 语句一样,先执行循环体再判断
C.不管哪种形式的循环语句,都可以从循环体内转到循环体外
法发现。语法错误和逻辑错误
8.在 Visual C++ 中调试程序时,可以使用快捷菜单中的 点。 Insert/Remove Breakpoint
( )命令来插入断点和清除断
9. C++ 源程序的扩展名为( )。 .cpp 10.在 Visual C++ 中,浏览当前项目中的所有源程序文件应在工作区的