C语言练习题答案 下载本文

intMinCommonMultiple(inta, intb); {

inti;

for(i=1; i

if(i%a==0 || i%b==0) returni; } }

答案:

#include

int MinCommonMultiple(int a, int b);

int main() { }

int MinCommonMultiple(inta, intb) { }

--------------------------------------32 33.

请编写函数fuc(),函数的功能是: 根据以下公式求出p的值,结果由函数值返回。m , n 是两个正整数,且 m>n. P= m!/(n!*(m-n)!)

**输入格式要求:\提示信息:\请输入m,n的值( m>n ):\\n\**输出格式要求:\项之和为:%lf\\n\程序运行示例如下: 请输入m,n的值( m>n ): 5 3

n项之和为:10.000000 答案:

int i;

for (i = 1; i <= a*b; i++) { }

if (i%a == 0 && i%b == 0)

return i;

int a, b, x;

printf(\); scanf(\, &a, &b); x = MinCommonMultiple(a, b);

printf(\, x);

#include intfuc(intm, intn); intsum_s(inti);

intmain() {

intm, n;

printf(\请输入m,n的值( m>n ):\\n\ scanf(\

printf(\项之和为:%lf\\n\ }

intfuc(intm, intn) {

intp;

p = sum_s(m) / (sum_s(n) * sum_s(m - n)); returnp; }

intsum_s(inti) {

ints_ = 1, a;

for(a = 1;a <=i;a++) {

s_ = s_ *a; }

returns_; }

----------------------------------33 34.

采用穷举法,按如下函数原型

/* 函数功能:计算a和b的最小公倍数,当a或者b为非正整数时返回-1 */ int Lcm(int a, int b);

用函数编程实现计算两个正整数的最小公倍数(Least Common Multiple,LCM)的函数,在主函数中调用该函数计算并输出从键盘任意输入的两整数的最小公倍数。

**输入格式要求:\提示信息:\

**输出格式要求:\error!\\n\

程序运行示例如下: Input a,b:16,24

Least Common Multiple of 16 and 24 is 48 注:不允许使用goto语句

答案:

#include intLcm(inta, intb); intmain() {

inta, b;

printf(\ scanf(\ if(Lcm(a,b) > 0)

printf(\Common Multiple of %d and %d is %d\\n\a, b, Lcm(a, b)); else

printf(\ }

intLcm(inta, intb) {

inti;

if(a > 0 && b > 0) {

for(i = 1;i < a*b;i++) {

if((i % a == 0) && (i % b == 0)) returni; } } else

return-1; }

--------------------34 35.

输入某班学生某门课的成绩(最多不超过40人), 当输入为负值时,表示输入结束,

用函数编程统计成绩不低于平均分的学生人数。 要求:

(1)按如下函数原型进行编程:

int GetAboveAver(int score[], int n); (2)在主函数中: 输入学生成绩,

然后调用函数GetAboveAver计算成绩不低于平均分的学生人数, 最后输出该人数。 要求:

(1)学生成绩和平均分均定义为int类型 (2)**无输入提示信息 **输入格式为:\

**输出格式为:\

答案:

#include

inta[40] = { 0 }, i = 0;

intGetAboveAver(intscore[], intn); intmain()

{

for(i; i <= 40; i++) {

intb = 0;

scanf(\ if(b >= 0)

a[i] = b; else

break; }

GetAboveAver(a, i); }

intGetAboveAver(intscore[], intn) {

intsum = 0, c; intd, e = 0;

for(c = 0;c < i; c++) {

sum = sum + score[c]; }

d = sum / i;

for(c = 0;c < i; c++) {

if(score[c] >= d) e++; else

continue; }

printf(\ return0; }

----------------------------35 36.

从键盘任意输入10个整数存入一个数组中,

然后任意输入一个整数x,采用顺序查找法,在数组中查找该数, 如果找到,则函数返回该数在数组中的下标位置, 并在主函数中打印该值;

如果没有找到,则返回-1,并在主函数中打印“Not found!”。 要求按如下函数原型编程实现查找功能。 int Search(int a[], int n, int x); 在主函数中调用函数Search顺序查找x, 然后在主函数中打印查找结果。

要求必须按照题目要求和用函数编程,否则不给分。