C语言练习题答案_第1页
C语言练习题答案_第2页
C语言练习题答案_第3页
C语言练习题答案_第4页
C语言练习题答案_第5页
已阅读5页,还剩111页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、-. z.1.三角形的三边长为a,b,c,计算三角形面积的公式为:area=sqrt(s(s-a)(s-b)(s-c),其中s=(a+b+c)/2。试编程从键盘输入a,b,c的值假设a,b,c的值可以保证其构成一个三角形,计算并输出三角形的面积。*输入格式要求:%f,%f,%f 提示信息:Input a,b,c:*输出格式要求:area = %.2fn程序运行例如如下:Input a,b,c:3,4,5area = 6.00答案:#include#includeint main(void)float a, b, c, s, area;printf(Input a,b,c:);scanf(%f,

2、%f,%f, &a, &b, &c);s = (a + b + c) / 2;area = sqrt(s*(s - a)*(s - b)*(s - c);printf(area = %.2fn, area);return 0; -12.从键盘任意输入一个4位整数,编程计算并输出它的逆序数.例如:输入1234,别离出千位1、百位2、十位3和个位4,然后计算4*1000+3*100+2*10+1=4321,并输出4321。*要求输入提示信息为:无*要求输入格式为: %d*要求输出格式为:%d程序运行例如如下:1234 此处为输入4321 此处为输出答案:#includeint main(void)

3、int a, b, c, d,e;scanf(%d,&a);b = a/1000;c = a%1000/100;d = a%100/10;e = a%10;a = e*1000+d*100+c*10+b;printf(%d,a);return 0; -23.有关输入输出问题。输入为:12a b运行结果为:1,2,a,b,123.300000,65535请改正程序中的错误,使它能得出正确的结果。#include main() int b; unsigned short a = 65535; short k = a; char c, d; int f, g; b = (1234.0 - 1) /

4、10; scanf(%c, &c); scanf(%c, &d); scanf(%d, &f); scanf(%d, &g); printf(%c,%c,%c,%c,%f,%d, c, d , f, g, b, k);答案:#include main()double b;int a = 65535;char c, d;int f, g;b = (1234.0 - 1) / 10;scanf(%c, &c);scanf(%c, &d);scanf(%ct, &f);scanf(%c, &g);printf(%c,%c,%c,%c,%f,%d, c, d , f, g, b, a); -34.输入

5、一行字符,统计其中的英文字符、数字字符、空格字符,以及其他字符的个数。请找出以下程序的错误,并改正之。#include #include #define ARR_SIZE = 80; main()charstrARR_SIZE;intlen, i;intletter=0,digit=0,space=0,other=0;printf(请输入一个字符串:);gets(str);len = strlen(str); for(i=0; ilen; i+)if(a=stri=z | A=stri=Z)letter +; elseif(0=stri=9) digit +; elseif(stri= ) s

6、pace +; elseother +; printf(英文字符数:%dn, letter);printf(数字字符数:%dn, digit);printf(空格数:%dn, space);printf(其他字符数:%dn, other);答案:#include #include #define ARR_SIZE 80 main()charstrARR_SIZE;intlen, i;intletter = 0, digit = 0, space = 0, other = 0;printf(请输入一个字符串:);gets(str);len = strlen(str);for(i = 0; ile

7、n; i+)if(a= stri&stri = z| A= stri&stri = Z)letter+;elseif(0= stri & stri= 9)digit+;elseif( stri = )space+;elseother+;printf(英文字符数:%dn, letter);printf(数字字符数:%dn, digit);printf(空格数:%dn, space);printf(其他字符数:%dn, other); -45.对输入的一个数判断是否是素数。所谓素数是指这个数只能被1和自身整除。要求在主函数输入一个数,调用函数Fun()判断该数是否是素数。打印信息在主函数中进展。例

8、如:从键盘输入5,5是素数则打印如下信息:5 is a prime number。又如:从键盘输入4, 4不是素数则打印如下信息:4 is not a prime number。负数、0和1均不是素数。对输入的数据要考虑数据的合法性,不满足条件的数要重新输入直到满足条件为止。不能使用全局变量,不按给定的函数原型编写程序不给分。Fun()函数原型为: int Fun(int m);*输入数据提示信息:Please input a number:n注:该提示信息请放在循环体外*输入数据格式为:%d*输出格式要求:假设是素数输出数据格式为:%d is a prime numbern 假设不是素数输出

9、数据格式为: %d is not a prime numbern不完整答案:#includeintFun(inta)inti;if(a1)for(i = 2;ia;i+)if(a%i=0)return0;elsecontinue;return1;elsereturn0;main()intb,c;printf(Please input a number:n);scanf(%d,&b);c = Fun(b);if(0 = c)printf(%d is not a prime numbern,b);elseprintf(%d is a prime numbern,b);参考答案:#include s

10、tdio.hintFun(intm);intmain()intm, flag;printf(Please input a number:n);doscanf(%d, &m); /1while(m 2); /e1flag = Fun(m); /3if(flag) /1printf(%d is a prime numbern, m);elseprintf(%d is not a prime numbern, m); /1return0;intFun(intm)/2inti, flag = 1; /1for(i = 2; i m; i+) /1if(m % i = 0) /1flag = 0; /1

11、break;returnflag;/2 - -56.求1898现將不超过2000的所有素数从小到大排成第一行,第二行上的每个数都等于它右肩上的素数与左肩上的素数之差。请编程求出:第二行数中是否存在这样的假设干个连续的整数,它们的和恰好是1898?假设存在的话,又有几种这样的情况?*输入格式要求:提示信息:There are follwing primes in first row :n*输出格式要求:(%d).%3d,.,%dn程序运行例如如下:There are follwing primes in first row :(1).101,.,1999(2). 89,.,1987(3). 53

12、,.,1951(4). 3,.,1901答案:#include#defineN 330int aN;int main()int c = 0, b = 0, d = 1;int i = 0, j = 0, k = 0;for (i = 3;i = 2000;i+)for (j = 2;j = 0;c-)for (b = c + 1;c b;b+)if (b 330)if (ab - ac) = 1898)printf(%d).%3d,.,%dn, d, ac, ab);d+;elsecontinue;elsebreak;7.从键盘任意输入一个整数m,假设m不是素数,则对m进展质因数分解,并将m表

13、示为质因数从小到大顺序排列的乘积形式输出,否则输出It is a prime number。例如,用户输入90时,程序输出90 = 2 * 3 * 3 * 5;用户输入17时,程序输出It is a prime number。输入提示信息:Input m:输入格式:%d输出格式:是素数时输出It is a prime numbern否则输出用%d = ,%d * 运行例如1:Input m:9090 = 2 * 3 * 3 * 5运行例如2:Input m:13It is a prime number答案:#include #include intIsPrime(int*);voidOutpu

14、tPrimeFactor(int*);intmain()intm;printf(Input m:);scanf(%d,&m);if(IsPrime(m)printf(It is a prime numbern);elseprintf(%d = ,m);OutputPrimeFactor(m);return0;intIsPrime(int*)inti,flag=1;intsquareRoot=sqrt(*);if(*=1)flag=0;for(i=2;i=squareRoot&flag;i+)if(*%i=0)flag=0; returnflag;voidOutputPrimeFactor(in

15、t*)inti;for(i=2;i*;i+)if(*%i=0)printf(%d * ,i);OutputPrimeFactor(*/i);return;printf(%d,*);-78.将任一整数转换为二进制形式。*输入格式要求:%d 提示信息:Input number:*输出格式要求:number of decimal form:%dn its binary form: 程序运行例如如下:Input number:876number of decimal form:876 its binary form: 1100答案:#include#includeint main()int a;cha

16、r b32;printf(Input number:);scanf(%d, &a);printf(number of decimal form:%dn, a);printf( its binary form: );printf(%sn, itoa(a, b, 2);-89.求自然数n最近的素数k, kn。*输入提示信息*:Input n:*输入数据格式*:%d*输出数据格式*:%d例如输入:257输出:Please input n:263答案:#includeint main() int n, i = 1, k; printf(Please input n:); scanf(%d, &n);

17、for (k = n + 1;i;k+) for (i = 2;i k;i+) if (k%i = 0) break; else continue; if (i = k) printf(%d, k); i = 0; break; -910.如果一个正整数m的所有小于m的不同因子包括1加起来正好等于m本身,则就被称它为完全数。它是指这样的一些特殊的自然数,它所有的真因子即除了自身以外的约数的和,恰好等于它本身。注意:1没有真因子,所以不是完全数。例如,6就是一个完全数,是因为6 = 1 + 2 + 3。请编写一个判断完全数的函数IsPerfect(),然后判断从键盘输入的整数是否是完全数。要求:

18、按如下原型编写判断完全数的函数,假设函数返回0,则代表不是完全数,假设返回1,则代表是完全数。int IsPerfect(int *);*要求输入提示信息为: Input m:n*要求输入格式为: %d*要求输出格式为%d is a perfect numbern%d is not a perfect numbern注:不能使用指针、构造体、共用体、文件、goto、枚举类型进展编程,主函数不能使用int main和return 0。答案:#includeint IsPerfect(int *);int main() int m; printf(Input m:n); scanf(%d, &m)

19、; if (IsPerfect(m) printf(%d is a perfect numbern, m); else printf(%d is not a perfect numbern, m);int IsPerfect(int *) int i = 1,b = 0; for (i = 1;i *;i+) if (*%i = 0) b = b + i; continue; else continue; if (b = *) return 1; else return 0;-1011.用函数编程计算两整数的最大值,在主函数中调用该函数计算并输出从键盘任意输入的两整数的最大值。*输入格式要求:

20、%d,%d 提示信息:Input a,b:*输出格式要求:ma* = %dn程序运行例如如下:Input a,b:5,8ma* = 8答案:#include int ma*(int a, int b) if(a = b) return a; else return b;main() int a = 0,b = 0; printf(Input a,b:); scanf(%d,%d,&a,&b); printf(ma* = %dn,ma*(a,b);-1112.利用求阶乘函数Fact(),编程计算并输出1! + 2! + + n!的值。*输入格式要求:%u 提示信息:Input n(n0):*输出

21、格式要求:sum = %lun答案:#include int sum_s(int i);main() unsigned int n = 0; unsigned long b = 0; printf(Input n(n0):); scanf(%u,&n); for (b;n;n-) b = b +sum_s(n); printf(sum = %lun,b); int sum_s(int i) int a; for(a = 1;i;i-) if (i 1) a = a * i; else a = a * 1; return a;-1213.编程输出如下菜单界面具体的输出则以下面提示中要求的输出格式

22、为准:=大学信息管理系统= -办公室管理财务管理教务管理图书管理科研管理设备管理人事管理后勤管理退出系统-请您在上述功能中选择08:提示:输出如下格式=大学信息管理系统= n-n1. 办公室管理 5. 财务管理 n2. 教务管理 6. 图书管理 n3. 科研管理 7. 设备管理 n4. 人事管理 8. 后勤管理 n0. 退出系统n-n请您在上述功能中选择08:n答案:#include main() printf(=大学信息管理系统= n); printf(-n); printf(1. 办公室管理 5. 财务管理 n); printf(2. 教务管理 6. 图书管理 n); printf(3.

23、科研管理 7. 设备管理 n); printf(4. 人事管理 8. 后勤管理 n); printf(0. 退出系统n); printf(-n); printf(请您在上述功能中选择08:n);-1314.利用静态变量计算n的阶乘。*输入格式要求:%d 提示信息:Input n:*输出格式要求:%d! = %ldn程序运行例如如下:Input n:101! = 12! = 23! = 64! = 245! = 1206! = 7207! = 50408! = 403209! = 36288010! = 3628800答案:#include int sum_s(int i);main() uns

24、igned int n = 0,b = 1; printf(Input n:); scanf(%d,&n); for (b = 1;b 1) a = a * i; else a = a * 1; return a;-1415.写一个程序从键盘输入两个整数,然后显示输出第1个数除以第2个数的结果。例如,输入123和12,程序的输出结果格式如下: 10 Remainder = 3 - 12 ) 123提示:使用求余运算符获得余数,使用整数除法获得商。*输入格式要求:%d%d 提示信息:请输入两个整数:*输出格式要求:%13d Remainder = %dn -n%5d ) %5d答案:#inclu

25、de main() int a, b, c, d; printf(请输入两个整数:); scanf(%d%d,&a,&b); c = a / b; d = a % b; printf(%13d Remainder = %dn,c,d); printf( -n); printf(%5d ) %5d,b,a);-1516.写一个程序,将接收的摄氏温度转换为对应的华氏温度。程序应显示如下的提示信息: Please input cels: 然后输入一个十进制数并回车,然后程序以适宜的消息形式输出转换后的华氏温度。程序使用如下的公式完成转换:摄氏温度 = 5.0 *华氏温度 32.0 / 9.0*输入格

26、式要求:%lf 提示信息:Please input cels: *输出格式要求:The fahr is: %.2f答案:#include main() double a,b; printf(Please input cels: ); scanf(%lf,&a); b = (9.0 * a)/5.0 + 32.0; printf(The fahr is: %.2f,b);-1617.写一个程序,将接收的华氏温度转换为对应的摄氏温度。程序应显示如下的提示信息: Please input fahr: 然后输入一个十进制数并回车,然后程序以适宜的消息形式输出转换后的华氏温度。程序使用如下的公式完成转换

27、:摄氏温度 = 5.0 *华氏温度 32.0 / 9.0*输入格式要求:%lf 提示信息:Please input fahr: *输出格式要求:The cels is: %.2f答案:#include main() double a,b; printf(Please input fahr: ); scanf(%lf,&a); b = 5.0 * (a - 32.0) / 9.0; printf(The cels is: %.2f,b);-1718.编写一个程序,输入一个3位整数,要求逆序输出对应的数。例如:输入123,则输出321。*输入格式要求:%d 提示信息:Please enter a

28、positive integer: *输出格式要求:%d-%dn 程序运行例如如下:Please enter a positive integer: 345345-543答案:#includeint main(void) int a, b, c, d,e; printf(Please enter a positive integer: ); scanf(%d,&a); b = a/100; d = a%100/10; e = a%10; c = e*100+d*10+b; printf(%d-%d,a,c); return 0;-1819.计算两个数的平方和从键盘读入两个实数,编程计算并输出它

29、们的平方和,要求使用数学函数pow(*,y)计算平方值,输出结果保存2位小数。提示:使用数学函数需要在程序中参加编译预处理命令 #include 以下为程序的输出例如:Please input * and y:1.2,3.4result=13.00输入格式:%f,%f输出格式:输入提示信息:Please input * and y:n输出格式:result=%.2fn答案:#include #include main() float *,y,z; printf(Please input * and y:n); scanf(%f,%f,&*,&y); z = pow(*,2) + pow(y,2

30、); printf(result=%.2fn,z);1920.写一个程序从键盘输入两个整数,然后显示第1个整数占第二个整数的百分比,保存到小数点后1位。例如输入5和40,程序输出结果如下: 5 is 12.5 percent of 40 *输入格式要求:%d%d 提示信息:请输入两个整数:*输出格式要求:%d is %.1f percent of %d答案:#include main() int a, b; float c; printf(请输入两个整数:); scanf(%d%d,&a,&b); c = (float)a / (float)b; c = c *100; printf(%d i

31、s %.1f percent of %d,a, c, b );-2021.求三角形面积。输入三角形的三个边长,计算三角形的面积。设三角形的三个边长分别为a、b、c,为简单起见,我们认为输入的三个边长数据是正确的,可以组成一个三角形。*输入格式要求:%f,%f,%f 提示信息:Enter 3 floats:*输出格式要求:area=%.2fn程序运行例如如下:Enter 3 floats:2,2,3area=1.98答案:#include#includeint main(void) float a, b, c, s, area; printf(Enter 3 floats:); scanf(%f

32、,%f,%f, &a, &b, &c); s = (a + b + c) / 2; area = sqrt(s*(s - a)*(s - b)*(s - c); printf(area=%.2fn, area); return 0;-2122.写一个程序计算长为11.5厘米,宽为2.5厘米,高为10厘米的盒子的体积和外表积。程序说明:采用直接赋值,不用输入。*输出格式要求area=%.2f,volume=%.2f答案:#include main() float a, b; a = (11.5 * 2.5 + 11.5*10 +10 * 2.5)*2; b = 11.5 * 2.5 * 10;

33、printf(area=%.2f,volume=%.2f,a,b);23.用递归方法计算整数n的阶乘n!。*输入格式要求:%d 提示信息:Input n: n0, data error!n*输出格式要求:%d! = %ldn程序运行例如如下:Input n:55! = 120答案;#include int f(int n) if(n=1 |n=0) return 1; else return n * f(n - 1);main() int n; o: printf(Input n:); scanf(%d,&n); while (n0) printf(n0, data error!n); got

34、o o; printf(%d! = %ldn,n, f(n);-2324.用递归方法编程计算Fibonacci数列的前N项。其中fib(0)=0,fib(1)=1,fib(n)=fib(n-1)+fib(n-2)。*输入格式要求:%d 提示信息:Input n:*输出格式要求:Fib(%d)=%dn程序运行例如如下:Input n:10Fib(1)=1Fib(2)=1Fib(3)=2Fib(4)=3Fib(5)=5Fib(6)=8Fib(7)=13Fib(8)=21Fib(9)=34Fib(10)=55答案:#include int Fib(int n) if (n = 0) return 0

35、; else if (n = 1) return 1; else return Fib(n - 1) + Fib(n - 2);main() int n, a; printf(Input n:); scanf(%d, &n); for (a = 1; a 0):*输出格式要求:%d! = %lun程序运行例如如下:Input n(n0):101! = 12! = 23! = 64! = 245! = 1206! = 7207! = 50408! = 403209! = 36288010! = 3628800答案:#includeint sum_s(unsigned int i) unsigne

36、d int a; for(a = 1;i;i-) if (i 1) a = a * i; else a = a * 1; return a;int Fact(unsigned int n) unsigned int i; for(i = 1;i 0):); scanf(%u,&i); Fact(i);-2526.爱因斯坦曾出过这样一道数学题:有一条长阶梯,假设每步跨2阶,最后剩下1阶;假设每步跨3阶,最后剩下2阶;假设每步跨5阶,最后剩下4阶;假设每步跨6阶,则最后剩下5阶;只有每步跨7阶,最后才正好1阶不剩。参考例6.15程序,编写计算这条阶梯共有多少阶的程序如下所示,其中存在一些语法和逻辑

37、错误,请找出并改正之,然后上机运行程序并写出程序的运行结果。#include main() int * = 1, find = 0; while (!find); if (*%2=1 & *%3=2 & *%5=4 & *%6=5 & *%7=0) printf(* = %dn, *); find = 1; *+; 答案:#include main() int * = 1, find = 0; while (!find) if (* % 2 = 1 & * % 3 = 2 & * % 5 = 4 & * % 6 = 5 & * % 7 = 0) printf(* = %dn, *); find

38、 = 1; *+; -2627.从键盘任意输入一个正整数,编程判断它的奇偶性。要求输入变量定义为int类型且由用户从键盘输入。程序的运行例如1:Input an integer number:44 is an even number程序的运行例如2:Input an integer number:33 is an odd number输入格式:%d输出格式:输入信息提示:Input an integer number:n偶数输出格式:%d is an even numbern奇数输出格式:%d is an odd numbern答案:#include main()int n, m;printf

39、(Input an integer number:n);scanf(%d, &n);m = n % 2;if (m)printf(%d is an odd numbern, n);elseprintf(%d is an even numbern, n);-2728.用动态数组编程输入任意m个班学生每班n个学生的*门课的成绩,计算最高分,并指出具有该最高分成绩的学生是第几个班的第几个学生。其中,m和n的值由用户从键盘任意输入不限定m和n的上限值。输入提示信息:Input array size m,n:Input %d*%d array:n输入格式:%d,%d输出提示信息和格式:ma*Score

40、= %d, class = %d, number = %dn答案:#include #include void InputScore(int *p, int m, int n);int FindMa*(int *p, int m, int n, int *pRow, int *pCol);int main() int *pScore, m, n, ma*Score, row, col; printf(Input array size m,n:); scanf(%d,%d, &m, &n); pScore = (int *)calloc(m * n, sizeof (int); /* 申请动态存

41、 */ if (pScore = NULL) printf(No enough memory!n); e*it(0); InputScore(pScore, m, n); ma*Score = FindMa*(pScore, m, n, &row, &col); printf(ma*Score = %d, class = %d, number = %dn, ma*Score, row + 1, col + 1); free(pScore); /* 释放动态存 */ return 0; /* 函数功能:输入m行n列二维数组的值 */void InputScore(int *p, int m, i

42、nt n) int i, j; printf(Input %d*%d array:n, m, n); for (i = 0; i m; i+) for (j = 0; j n; j+) scanf(%d, &pi * n + j); /* 函数功能:计算任意m行n列二维数组中元素的最大值,并指出其所在行列下标值 */int FindMa*(int *p, int m, int n, int *pRow, int *pCol) int i, j, ma* = p0; *pRow = 0; *pCol = 0; for (i = 0; i m; i+) for (j = 0; j ma*) ma*

43、 = pi * n + j; *pRow = i; /*记录行下标*/ *pCol = j; /*记录列下标*/ return ma*;-2829.下面程序的功能是交换变量a和b中的值。找出其中的错误并改正之。#include main() int a,b,*p,*q,*t; p=&a; q=&b; printf(请输入变量a和b的值:); scanf(%d%d, &p,&q); *t=*p ; *p=*q ; *q=*t ; printf(交换后a和b的值:a=%d b=%dn,a,b);答案:#include main()inta,b,*p,*q,*t; p=&a;q=&b; printf

44、(请输入变量a和b的值:);scanf(%d%d, &a,&b); *t=*p ; *p=*q ;*q=*t ; printf(交换后a和b的值:a=%d b=%dn,*p,*q);-2930.编程打印200300之间所有素数。要求判断一个数是否是素数用函数实现,打印结果请在主函数实现。判断一个数是否是素数函数原型为: int fun(int m);参数说明:参数:m是要进展判断的数;返回值:假设此数是素数,则返回值为1;否则返回值为0*输入提示信息: 无*输入数据格式要求: 无*输出数据格式要求: %dn注:不允许使用goto语句答案:#include int fun(int m);main

45、() int a; for (a = 200;a = 300;a+) if (fum(a) printf(%dn,a); else continue; int fum(int m) int i; for (i = 2;i m;i+) if(m%i = 0) return 0; else continue; return 1;-3031.输入*班学生*门课的成绩最多不超过40人,当输入为负值时,表示输入完毕,用函数编程统计成绩高于平均分的学生人数。要求按如下原型编写统计成绩在全班平均分及平均分之上的学生人数int GetAboveAver(int score, int n);*输入要求:%d *

46、输出要求:Total students are %dnAverage score is %dnStudents of above average is %dn答案:#include int a40 = 0 , i = 0;int GetAboveAver(int score, int n);int main()for (i; i = 0)ai = b;elsebreak;printf(Total students are %dn, i);GetAboveAver(a, i);int GetAboveAver(int score, int n)int sum = 0, c;int d, e =

47、0;for (c = 0;c i; c+)sum = sum + scorec;d = sum / i;printf(Average score is %dn, d);for (c = 0;c d)e+;elsecontinue;printf(Students of above average is %dn, e);return 0;-3031./*编程实现简单的计算器功能,要求用户按如下格式从键盘输入算式:操作数1 运算符op 操作数2计算并输出表达式的值,其中算术运算符包括:加+、减-、乘*、除/、(次幂。要求使其能进展浮点数的算术运算,同时允许使用字符*、*与*作为乘号,并且允许输入的算

48、术表达式中的操作数和运算符之间可以参加任意多个空格符。*输入格式要求:%f %c%f 提示信息:Please enter the e*pression:n*输出格式要求:%f + %f = %f n %f - %f = %f n %f * %f = %f n %f / %f = %f n Division by zero!n %f %f = %f n Invalid operator! n程序运行例如1如下:Please enter the e*pression: 2.0 + 4.02.000000 + 4.000000 = 6.000000程序运行例如2如下:Please enter the

49、 e*pression: 2.0 - 4.02.000000 - 4.000000 = -2.000000程序运行例如3如下:Please enter the e*pression: 2.0 * 4.02.000000 * 4.000000 = 8.000000程序运行例如4如下:Please enter the e*pression: 2.0 * 4.02.000000 * 4.000000 = 8.000000程序运行例如5如下:Please enter the e*pression: 2.0 * 4.02.000000 * 4.000000 = 8.000000程序运行例如6如下:Ple

50、ase enter the e*pression: 2.0 / 4.02.000000 / 4.000000 = 0.5000000程序运行例如7如下:Please enter the e*pression: 2.0 / 0Division by zero! 程序运行例如8如下:Please enter the e*pression:2.0 5.02.000000 5.000000 = 32.000000 程序运行例如9如下:Please enter the e*pression: 2.0 4.0Invalid operator!*/#include#includeint main()floa

51、t a, b;char c;printf(Please enter the e*pression:n);scanf(%f %c %f,&a, &c, &b);if (c = +)printf(%f + %f = %f n, a, b, a + b);elseif (c = -)printf(%f - %f = %f n,a, b, a - b);elseif (c = /)if (b != 0)printf(%f / %f = %f n, a, b, a / b);elseprintf(Division by zero!);elseif (c = * | c = * | c = *)print

52、f(%f * %f = %f n, a, b, a*b);elseif (c = )printf(%f %f = %f n,a, b,pow(a,b);elseprintf(Invalid operator! n);-3132.下面程序的功能是计算两个正整数的最小公倍数,请改正其中的错误。#include intMinmonMultiple(inta, intb)main()inta, b, *;printf(Input a,b:);scanf(%d,%d,a,b); *=MinmonMultiple(inta,intb);printf(MinmonMultiple = %dn, *);int

53、MinmonMultiple(inta, intb); inti;for(i=1; ia*b; i+)if(i%a=0 | i%b=0)returni;答案:#includeint MinmonMultiple(int a, int b);int main()int a, b, *;printf(Input a,b:);scanf(%d,%d, &a, &b);* = MinmonMultiple(a, b);printf(MinmonMultiple = %dn, *);int MinmonMultiple(inta, intb)int i;for (i = 1; i n. P= m!/(n

54、!*(m-n)!)*输入格式要求:%d %d 提示信息:请输入m,n的值( mn ):n*输出格式要求:n项之和为:%lfn程序运行例如如下:请输入m,n的值( mn ):5 3n项之和为:10.000000答案:#include intfuc(intm, intn);intsum_s(inti);intmain()intm, n;printf(请输入m,n的值( mn ):n);scanf(%d %d,&m,&n);printf(n项之和为:%lfn,(double)fuc(m,n);intfuc(intm, intn)intp;p = sum_s(m) / (sum_s(n) * sum_

55、s(m - n);returnp;intsum_s(inti)ints_ = 1, a;for(a = 1;a =i;a+)s_ = s_ *a;returns_;-3334.采用穷举法,按如下函数原型/* 函数功能:计算a和b的最小公倍数,当a或者b为非正整数时返回-1 */int Lcm(int a, int b);用函数编程实现计算两个正整数的最小公倍数Least mon Multiple,LCM的函数,在主函数中调用该函数计算并输出从键盘任意输入的两整数的最小公倍数。*输入格式要求:%d,%d 提示信息:Input a,b:*输出格式要求:Least mon Multiple of %

56、d and %d is %dn Input error!n程序运行例如如下:Input a,b:16,24Least mon Multiple of 16 and 24 is 48注:不允许使用goto语句答案:#include intLcm(inta, intb);intmain()inta, b;printf(Input a,b:);scanf(%d,%d,&a, &b);if(Lcm(a,b) 0)printf(Least mon Multiple of %d and %d is %dn, a, b, Lcm(a, b);elseprintf(Input error!n);intLcm(

57、inta, intb)inti;if(a 0 & b 0)for(i = 1;i a*b;i+)if(i % a = 0) & (i % b = 0)returni;elsereturn-1;-3435.输入*班学生*门课的成绩最多不超过40人,当输入为负值时,表示输入完毕,用函数编程统计成绩不低于平均分的学生人数。要求:(1)按如下函数原型进展编程:int GetAboveAver(int score, int n);(2)在主函数中:输入学生成绩,然后调用函数GetAboveAver计算成绩不低于平均分的学生人数,最后输出该人数。要求:(1)学生成绩和平均分均定义为int类型(2)*无输入

58、提示信息*输入格式为:%d*输出格式为:Students of above average is %dn答案:#include inta40 = 0 , i = 0;intGetAboveAver(intscore, intn);intmain()for(i; i = 0)ai = b;elsebreak;GetAboveAver(a, i);intGetAboveAver(intscore, intn)intsum = 0, c;intd, e = 0;for(c = 0;c i; c+)sum = sum + scorec;d = sum / i;for(c = 0;c = d)e+;el

59、secontinue;printf(Students of above average is %dn, e);return0;-3536.从键盘任意输入10个整数存入一个数组中,然后任意输入一个整数*,采用顺序查找法,在数组中查找该数,如果找到,则函数返回该数在数组中的下标位置,并在主函数中打印该值;如果没有找到,则返回-1,并在主函数中打印Not found!。要求按如下函数原型编程实现查找功能。int Search(int a, int n, int *);在主函数中调用函数Search顺序查找*,然后在主函数中打印查找结果。要求必须按照题目要求和用函数编程,否则不给分。*要求输入10个整

60、数的提示信息格式为:Input 10 numbers:n每输入一个数,键一次回车;*要求输入整数*的提示信息格式为:Input *:n*要求输出格式为:找到时的打印格式为Subscript of * is %dn没找到时的打印格式为Not found!n答案:#include intSearch(inta, intn, int*);intb10 = 0;intmain()int*, n;printf(Input 10 numbers:n);for(* = 0; * 0)printf(Subscript of * is %dn,Search(b,n,*);elseprintf(Not found

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论