何钦铭颜晖 浙大版《C语言程序设计》第四版 第2章 用C语言编写程序 课后习题( 二 )


A.main 函数是主函数,一定要写在最前面 。
B.所有的自定义函数,都必须先声明 。
C.程序总是从 main 函数开始执行的 。
D.程序中只能调用库函数,不能自己定义函数 。
答案:C
解析:
程序总是从 main() 函数开始 。
二、填空题
1.假设 k 是整型变量,计算表达式 1/k , 结果的数据类型是( ),计算表达式 1.0/k,结果的数据类型是( ) 。
答:整型,实型 。
解析:整型除整型的结果也是整型 。1.0是实型(浮点型),除整型,要先将除法运算符两侧的数据类型统一,所以系统会自动进行类型转换 。将k由整型转为浮点型,再进行计算 。
2.输入 3 和 2 ,下列程序段的输出结果是( ) 。
int a, b;scanf( "%d%d",&a, &b);a=a+b;b=a-b;a=a-b;printf("a=%d#b=%d\n",a, b);
答:a=2#b=3 。
解析:整个程序其实是在进行 a 和 b 的数值交换 。通过输入赋值,这里 a 初始值为 3 , b 初始值为 2。执行a=a+b 计算之后,a 的值为 5 ,b 的值依然为 2。然后执行 b=a-b 计算之后,a 的值依然为 5 ,但是 b 的值被更改为 3 ,然后再执行 a=a-b 计算之后,a 的值被改为 2 ,b 的值依然为 3。至此,交换了 a 和 b 的数值 。
3.交换变量的值 。输入 a 和 b ,然后交换它们的值,并输出交换后 a 和 b 的值 。请填空 。
int a, b, temp;printf( "Enter a, b:");scanf("%d%d", &a, &b);______________a=b;______________printf( "a=%d#b=%d\n", a, b);
答:
temp=a;b=temp;
解析:
上面的代码已经定义了第三个变量 temp,用于交换 a 和 b 的值 。我们先将 a 的值赋值给 temp,然后 a=b 表示将b 的值赋值给 a ,最后再将 temp 中存储的a的值,赋值给 b。就完成了交换 a 和 b 的值 。
4.假设 n 是整型变量,判断 n 是偶数的表达式是( ) 。
答:n%2==0
解析:所谓的偶数,就是能被 2 整除的数,那么我们让 n 除 2 然后取它的余数,判断是否为 0 即可 。
5.与数学式 $ \sqrt {s(s-a)(s-b)(s-c)} $ 对应的 C 语言表达式是( ) 。
答:
sqrt(s*(s-a)*(s-b)*(s-c))
解析:
在 c 语言中有函数库 math.h,里面有函数 sqrt() 用于表示开平方 。
6.调用数学库函数时,编译预处理命令为( ) 。调用输入输出库函数时,编译预处理命令为( ) 。
答:
#include #include
解析:
编译预处理命令使用#,后面跟着函数库 。数学函数库需要math.h,输入输出函数是在系统文件stdio.h中声明 。注意:编译预处理命令的末尾不加分号 。
7.本章介绍了 3 种运算符,分别是算术、赋值和关系运算符,按照优先级从高到低的顺序排列为( )运算符、( )运算符、( )运算符 。
答:算术,关系,赋值 。
解析:
算术运算符的优先级高于关系运算符,关系运算符的优先级高于赋值运算符 。
8.下列程序段的输出结果是( ) 。

何钦铭颜晖  浙大版《C语言程序设计》第四版 第2章 用C语言编写程序 课后习题

文章插图
int k,flag;if(k=0){flag=0;}else{flag=1;}printf( "k=%d#flag=%d\n",k,flag);
答:k=0#flag=1
解析:
这里首先声明了两个 int 类型的变量 k 和 flag ,然后执行 if 语句,判断条件为 k=0 ,这里是个赋值语句,这里 k 被赋值为 0 ,但是作为 if 语句的条件是不成立的,会执行 else 语句,flag 被赋值为 1。所以最终结果就是 k 为 0 ,flag 为 1 。
9.C 语言 3 种基本的控制结构是( )结构、( )结构和( )结构 。