1、 y ? x : y; int f2(int x, int y) return x y : x;int main(void) /* 主函数main() */ int a = 4, b = 3, c = 5, d = 2, e, f, g; /* 定义变量 */ e = f2(f1(a, b), f1(c, d); f = f1(f2(a, b), f2(c, d);/* 调用函数 */ g = a + b + c + d - e - f; /* 算术运算 */ printf(%d,%d,%dn, e, f, g); /* 输出e,f,g */ return 0; /* 返回值0, 返回操作系统
2、 */程序运行后的输出结果是 。A)4,3,7 B)3,4,7 C)5,2,7 D)2,5,7函数f1用于求两个数中的最大数,而函数f2用于求两个数中的最小数。因此有:e=f2(f1(a,b),f1(c,d)=f2(f1(4,3),f1(5,2)= f2(4,5)=4;f=f1(f2(a,b),f2(c,d) =f1(f2(4,3),f2(5,2) =f1(3,2)=3;g=a+b+c+d-e-f=4+3+5+2-4-3=7。4若函数调用时的实参为变量,以下关于函数形参和实参的叙述中正确的是 。A)函数的实参和其对应的形参共占同一存储单元B)形参只是形式上的存在,不会占用具体存储单元C)同名的
3、实参和形参占同一存储单元D)函数的形参和实参分别占用不同的存储单元在C语言中,函数的形参和实参是分别占用不同的存储单元的,因此,选项D是正确的。5有以下程序:e4_1_5main.c */ /* 标准输入/输出头文件 */int a = 1; /* 全局变量 */int f(int c) /* 定义函数 */ static int a = 2; /* 静态变量 */ c+; /* c自加1 */ return (a+) + c; /* 返回函数值 */ int main(void) /* 主函数main() */ int i, k = 0; /* 定义变量 */ for (i = 0; i /
4、* 数学函数首部文件 */double Fun(double x) return x*x - 2 * x + 6; double x, y1, y2;输入x:); /* 输入提示 */ scanf(%lf, &x); /* 输入x */ y1 = Fun( 【1】 ); /* 调用函数Fun() */ y2 = Fun( 【2】 );y1=%lf, y2=%lfn, y1, y2); /* 输出y1,y2 */函数的一般调用形式为:函数名(实在参数表),在调用时将实参的值赋给形参,实参可以是常量、变量或表达式。【1】x + 8 【2】sin(x)2有以下程序:e4_2_2main.c */in
5、t sub(int n) return n / 10 + n % 10; int x, y; /* 定义变量 */%d y = sub(sub(sub(x); /* 调用函数 */, y); /* 输出y */若运行时输入:1234,程序的输出结果是 。1234作为实参传递给形参n, sub(x)值为1234/10+1234%10=123+4=127, sub(sub(x)=sub(127)=127%10+127%10=12+7=19,sub(sub(sub(x)=sub(19)=9/10+19%10=10,所以将输出10。103以下程序运行后的输出结果是 。e4_2_3main.c */vo
6、id swap(int x, int y) int t = x; x = y; y = t; /* 交换x,y */%d %d , x, y); /* 输出x,y */ int a = 3, b = 4; /* 定义变量 */ swap(a, b); /* 调用函数 */%d %dn, a, b); /* 输出a,b */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”。4 3 3 44以下程序运行后
7、的输出结果是 。e4_1main.c */Fun(int a) int b = 0; static int c = 3; b+; /* b,c自加1 */ return a + b + c;int main(void) /* 主函数main(void) */ int i, a = 5; 3; i+) printf(, i, Fun(a); /* 输出i,Fun(a) */n /* 换行 */第1次调用Fun()函数时,a=5,“b+;”执行后,b=1,c=4,返回5+1+4=10;第2次调用Fun()函数时,a=5,“b+;”执行后,b=1,c=5,返回5+1+5=11;第3次调用Fun()函
8、数时,a=5,“b+;”执行后,b=1,c=6,返回5+1+6=12。0 10 1 11 2 125以下程序运行后的输出结果是 。ex4_2_5main.c */int f(int a, int n) if (n = 1) return f(a, n - 1) + an - 1; /* 递归调用 */ else return 0; /* 递归结束 */ int a = 1, 2, 3, 4, 5, s; /* 定义数组与变量 */ s = f(a, 5); /* 调用函数f() */ /* 输出s */通过递归调用f函数实现了数组各元素之和,即a0+a1+a2+a3+a4=15。15*6在面向
9、对象方法中,类的实例称为 。将属性、操作相似的对象归为类,类是具有共同属性、共同方法的对象的集合。所以,类是对象的抽象,而一个对象则是其对应类的一个实例。对象三、编程题1编写一个函数,其功能是判断输入的三个边是否能组成三角形,要求编写测试程序。参考程序:ex4_3_1main.c */ /* 包含库函数printf()所需要的信息 */stdlib.h /* 包含库函数system()所需要的信息 */int IsTriangle(float a, float b, float c) /* a,b,c能组成三角形,返回1,否则返回0 */ if (a 0 & b c a + b c & a +
10、 c b & b + c a) /* 能组成三角形 */ return 1; /* 返回1 */ else /* 不能组成三角形 */ return 0; /* 返回0 */ float a, b, c;输入三边长: /* 输入提示 */%f%f%fa, &b, &c); /* 输入a,b,c */ if (IsTriangle(a, b, c) /* 能组成三错角形 */%f, %f, %f能组成三角形n, a, b, c); /* 不能组成三错角形 */%f, %f, %f不能组成三角形n system(PAUSE /* 调用库函数system( ),输出系统提示信息 */2编写一个函数,
11、其功能是输入n个数,返回这些数的最大值,要求编写测试程序。ex4_3_2main.c */int Max(int n) /* 求输入的n个数的最大值 */ int m, i, tem;输入%d个数:, n); /* 输入提示 */m); /* 先假设输入的第1个数就是最大值 */ for(i = 1; n; /* 依次输入其它各数,比较求最大值 */ scanf(tem); /* 输入输入其它各数 */ if (tem m) m = tem; /* 比较求最大值 */ /* 返回最大值 */ int n, m;输入个数n:n); /* 输入n */ m = Max(n); /* 求输入的n个数的最大值 */输入的%d个数的最大值为%dn, n, m); /* 输出结果 */3编写一个函数,其功能是输入n个数,返回这些数的最小值,要求编写测试程序。ex4_3_3main.c */int Min(int n) /* 求输入的n个数的最小值 */ /* 先假设输入的第1个数就是最小值 */ /* 依次输入其它各数,比较求最小值 */ if (tem /* 比较求最小值 */ m = Min(n); /* 求输入的n个数的最小值 */输入的%d个数的最小值为%dn re
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1