A) 程序的执行总是从 main函数开始,在 main函数结束 B)
始,在
程序的执行总是从程序的第一个函数开main函数结束
C) 程序的执行总是从 main函数开始,在程序的最后一个函数中结束 D) 程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束
解析:C程序的执行总是从 main函数开始,完成对其他函数的调用后返回到 最后由main函数结束整个程序。一个 C源程序有且公有一个 main函数。
答案:A
main函数,
、填空题
1以下程序中,函数 y1 = (X+8)-2(X+8)+6 y2=si n2(x)-2s in (x)+6
2
Fun()的功能是计算X-2X+6,主函数中将调用 Fun()函数计算:
2
请填空。
/* 文件路径名:e4_2_1\\main.c */ #include
double X, y1, y2; printf(” 输入 x:\scanf(\X); y1 = Fun( 【1】 y2 = Fun( 【2】 return 0; }
); );
/* 定义变量*/ /* 输入提示*/ /* 输入X */
/* 调用函数Fun() */ /* 调用函数Fun() */ 输出 /* y1,y2 */
/* 返回值0,返回操作系统*/ /* 标准输入/输岀头文件*/ 数/* 学函数首部文件 /* 主函数main() */
*/
double Fun(double X) { return x*x - 2 * X + 6; }
printf(\
解析:函数的一般调用形式为:函数名 实(实在参数表),在调用时将实参的值赋给形参, 参可以是常量、变量或表达式。
答案:【1】X + 8
2?有以下程序:
【2】sin(x)
/* 文件路径名:e4_2_2\\main.c */
可编辑范本
#include
int sub(int n){ return n / 10 + n % 10; } int main(void) {
int X, y; scanf(\y = sub(sub(sub(x))); printf(\return 0;
可编辑范本
/*标准输入/输岀头文件*/ /* 主函数 main() */ /*定义变量*/ /*输入X */ /*调用函数*/ /*输岀y */
/*返回值0,返回操作系统*/
若运行时输入: 1234<回车 >,程序的输出结果是 。
解析:1234作为实参传递给形参 n, sub(x)值为1234/10+1234=123+4=127 ,
sub(sub(x)=sub(127)=127+127=12+7=19 , sub(sub(sub(x)))=sub(19)=9/10+19=10 ,所 以将输出10。 答案:10
3?以下程序运行后的输出结果是 。
/* 文件路径名:e4_2_3\\main.c */
/* 标准输入/输岀头文件*/
#include
x, int y) {
int t = x; x = y; y = t; printf(\}
int main(void) {
int a = 3, b = 4; swap(a, b);
printf(\ }
return 0;
/* 主函数main() */
交换x,y */ /* /* 输岀x,y */
定义变量*/ /*
调用函数*/ /*
a,b */ /*输岀
返回值0,返回操作系统*/ /*
解析:C函数的参数传递都是传值的, 因此swap(a,b调用将a和b的值3和4传递给swap 的形参x和y, x和y通过t交换值,printf输出x和y结果是\4 3 “。swap函数调用结束后, a和b
的值并没有交换,printf输出a和b结果是\3 4”。
}
答案:4334
4?以下程序运行后的输出结果是 ___________ 。
/* 文件路径名:e4_1\\main.c */ #include
int b = 0;
static int c = 3; b++; c++; return a + b + c; }
int main(void) {
int i, a = 5;
for (i = 0; i < 3; i++)
printf(\Fun(a)); printf(\return 0;
/* 输出 i,Fun(a) */
/*换行*/
/*返回值0,返回操作系统*/ /*局部变量*/ /*静态变量*/ /* b,c 自加 1 */ /*返回函数值*/
/* 主函数 main(void) */ /*定义变量*/
/*标准输入/输岀头文件*/
可编辑范本
解析:第1次调用Fun()函数时,a=5, “b++; C++; ”执行后,b=1 , c=4,返回5+1+4=10 ; 第 2 次调用 Fun()函数时,a=5, “ b++; C++; ”执行后,b=1 , c=5,返回 5+1+5=11 ;
第 3 次调用 Fun()函数时,a=5, “b++; C++; ”执行后,b=1 , c=6,返回 5+1+6=12。 答案:0 10 1
11 2 12
5?以下程序运行后的输出结果是 ___________ 。
/* 文件路径名:ex4_2_5\\main.c */ #include
if (n >= 1) return f(a, n - 1) + a[n - /*递归调用*/ 1]; else return 0; }
int main(void) {
int a[] = {1,2, 3, 4, 5}, s; s = f(a, 5); printf(\return 0; }
/*定义数组与变量*/ /*调用函数f() */ /*输岀s */
/*返回值0,返回操作系统*/ /* 主函数 main() */ /*递归结束*/
/*标准输入/输岀头文件*/
解析:通过递归调用f函数实现了数组各元素之和,即 答案:15
*6 .在面向对象方法中,类的实例称为 ___________ 。
a[0]+a[1]+a[2]+a[3]+a[4]=15。
解析:将属性、操作相似的对象归为类,类是具有共同属性、共同方法的对象的集合。 所以,类是对象的抽象,而一个对象则是其对应类的一个实例。
答案:对象 三、编程题
1 ?编写一个函数,其功能是判断输入的三个边是否能组成三角形,要求编写测试程序。
参考程序:
/* 文件路径名:ex4_3_1\\main.c */ #include
/*包含库函数printf()所需要的信息 */ /*包含库函数system(所需要的信息 */
int lsTriangle(float a, float b, float c) /* a,b,c 能组成三角形,返回 1,否则返回 0 */ {
if (a > 0 && b > 0 && c > 0 && a + b > c && a + c > b && b + c > a) {
/*能组成三角形*/ return 1; } else {
/*不能组成三角形*/
/* 返回 1 */
可编辑范本
return 0;
/* 返回 0 */
int main(void)
{
/* 主函数 main() */ /* 定义变量 */ /* 输入提示 */ /* 输入 a,b,c */
float a, b, c; printf(\输入三边
长 :\
if (IsTriangle(a, b, c)) { /* 能组成三错角形 */
printf(\能组成三角形 \\n\
}
else
{ /* 不能组成三错角形 */ printf(\不能组成三
角形 \\n\
}
system(\return 0;
}
/* 调用库函数 system( ,) 输出系
统提示信息 */ /* 返回值 0, 返回
操作系统 */
2.编写一个函数,其功能是输入
n 个数,返回这些数的最大值,要求编写测试程序。
参考程序:
/* 文件路径名 :ex4_3_2\\main.c */ #include
{
/* 包含库函数 printf() 所需要的信息 */ /*包含库函数system(所需要的信息*/ /* 求输入的 n 个数的最大值 */ /* 定义变量 */ /* 输入提示 */
/* 先假设输入的第 1 个数就是最大值 */ 比较求最大值 */
/* 输入输入其它各数 */ /* 比较求最大值 */ /* 返回最大值 */
int m, i, tem;
printf(” 输入 %d 个数:\scanf(\for(i = 1; i < n; i++) {
/* 依次输入其它各数, scanf(\(tem > m) m = tem;
}
return m;
}
int main(void)
{
/* 主函数 main() */ /* 定义变量 */ /* 输入提示 */ /* 输入 n */
/* 求输入的 n 个数的最大值
int n, m;
printf(\输入个数 n::\scanf(\m = Max(n);
printf(\输入的 %d 个数的最大值*/ %d\\n\/* 输出结果 */
为
可编辑范本
C语言程序设计教程清华大学出版社陈明主编第4章答案



