C语言课后习题及答案讲解
6. 如果程序顺利地通过编译、 连接,但是程序运行时结果有错误, 最好的调试手段是什么?
最好的调试手段是设置断点,并让程序运行到该断点,然后在
Debug 窗口观察各变量的值,
从中发现错误。
第二章 一、 选择题
1.下列选项中可以作为 C/C++ 的合法整型常量的是(
)。 B
A.1011B B.047 C.x23 D.20H
二、把下列数学表达式写成 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)
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;
法发现。语法错误和逻辑错误
8.在 Visual C++ 中调试程序时,可以使用快捷菜单中的 点。 Insert/Remove Breakpoint
( )命令来插入断点和清除断
9. C++ 源程序的扩展名为( )。 .cpp 10.在 Visual C++ 中,浏览当前项目中的所有源程序文件应在工作区的
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)
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"
)。 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
第一章
一、 选择题
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"
二、 填空题
1.C/C++ 程序是由一个或多个函数组成的,但必须要有一个(
开始运行的。
main()
)函数,程序从这个函数
2. C/C++ 字符集包括大、小写英文字母、 ( )、( )和包括运算符在内的特殊字符,程序
中出现字符集以外的字符就是一个语法错误。
数字 0-9、下划线
3.在 Visual C++ 中编写程序时,除了注释中可以出现汉字,还能在( 串
)键。 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)
( )选项卡。Fileview
三、 简答题
1. C++ 与 C 语言的主要区别是什么? C++ 是 C 语言的超集。 C++ 中的类和对象部分, C 语 言没有, C++ 是面向对象的程序设计。见教材 P3。
2. C/C++ 程序由哪些部分组成? C/C++ 程序是由一个或多个函数组成,其中必须要有一个 main() 函数。在一个函数内,语句的执行是从上到下的。 3. 判断下列符号中哪些不能作为 C/C++ 的标识符:
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;
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 中使用尖括号,何时使用双引号?用尖括号时,预处理程序在系统指定 的文件夹中寻找文件; 用双引号时, 预处理程序首先在当前文件所在的文件目录中寻找文件, 若找不到再到系统指定的文件夹中查找。
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.&& 、!= 、 %、 =
{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++ ”执行的次数为(
6.下面叙述中正确的是( )。C A.for 循环只能用于循环次数已经确定的情况
B.for 循环同 do-while 语句一样,先执行循环体再判断
C.不管哪种形式的循环语句,都可以从循环体内转到循环体外
void main()
{int a;
float b;
cout<<"input a,b:"<<endl;
cin>>a>>b;
cout<<"a+b="<<a+b<<endl;
}