龙空技术网

C语言 函数在线练习题1

求知联盟 280

前言:

现在咱们对“c语言函数题目”大概比较着重,小伙伴们都想要学习一些“c语言函数题目”的相关内容。那么小编同时在网上收集了一些关于“c语言函数题目””的相关文章,希望姐妹们能喜欢,同学们一起来学习一下吧!

1. 求最大值(1级)1

【题目描述】

请编写一个求两整数的最大值函数GetMax。要求在主函数中调用该函数,该函数的主要功能是判断从键盘任意输入两个整数的大小,计算并输出最大值。

【输入】

两个整数。

【输出】

两个整数中的最大值。

【样例输入】

15 30↙

【样例输出】

MAX=30↙

参考代码:

#include <stdio.h>int GetMax(int a,int b){int c;c=a>b?a:b;return c;}int main(){int num1, num2, max;scanf("%d%d", &num1, &num2);max = GetMax(num1, num2);printf("MAX=%d\n", max);return 0;}

2. 实现计算器基本功能(1级)1

【题目描述】

编写程序分模块设计实现计算器的基本运算功能(加减乘除,除数默认不为0)。

【输入】

两个数字,一个运算符号

【输出】

运算结果,结果保留2位小数。

【样例输入】

2*3↙

【样例输出】

6.00↙

参考代码:

#include <stdio.h>#include <stdlib.h>float sum(float a, float b) /*定义加法运算函数*/{float c;c = a + b;return(c);}float sub(float a, float b) /*定义减法运算函数*/{return(a - b);}float mult(float a, float b){return a * b; /*定义乘法运算函数*/}float divi(float a, float b){return a / b; /*定义除法运算函数*/}main() /*主函数*/{float x, y, result;char c;scanf("%f%c%f", &x, &c, &y);if (c =='+')result = sum(x, y); /*有参函数调用*/else if (c =='-')result = sub(x, y);else if (c == '*')result = mult(x, y);else if (c == '/')result = divi(x, y);printf("result is %.2f\n", result);}

3. 判断三角形 (1级)1

【题目描述】

编写函数实现功能:若a,b,c 能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。

【输入】

三个整数

【输出】

三角形的形状用1、2或3表示

【样例输入】

3 3 3↙

【样例输出】

The shape : 3↙

参考代码:

#include <stdio.h>int fun(int a,int b,int c){if(a+b>c && b+c>a && a+c>b){if(a==b && b==c )return 3;else if(a==b||b==c||a==c)return 2;else return 1;}else return 0;}void main(){int a,b,c,shape;scanf("%d%d%d",&a,&b,&c);shape =fun(a,b,c);printf("The shape : %d\n",shape);}

4. 交换两个变量的值 (1级) 2

【题目描述】

编写函数将两个变量的值交换,例如变量a中的值原为3,b中的值原为8,程序运行后a中的值为8,b中的值为3。

【输入】

两个整数

【输出】

交换后的两个整数

【样例输入】

3 5↙

【样例输出】

5 3↙

参考代码:

#include <stdio.h>void fun(int *x,int *y){int t;t=*x;*x=*y;*y=t;}void main(){int a,b;scanf("%d %d",&a,&b);fun(&a,&b);printf("%d %d\n",a,b);}

5. 存放数值(1级)Y 2

【题目描述】

从键盘输入3个数,将最大值放在变量a中,最小值放在变量c中,将中间值放在变量b中。

【输入】

三个整数

【输出】

按要求输出变量a、b和c的值

【样例输入】

55 12 34↙

【样例输出】

a=55,b=34,c=12↙

参考代码:

#include <stdio.h>void fun(int *a,int *b,int *c)//接收a,b,c的地址{int t;if(*a<*b){t=*a;*a=*b;*b=t;}if(*a<*c){t=*a;*a=*c;*c=t;}if(*b<*c){t=*b;*b=*c;*c=t;}}void main(){int a,b,c;scanf("%d%d%d",&a,&b,&c);fun(&a,&b,&c);printf("a=%d,b=%d,c=%d\n",a,b,c);}

6. 进制转换(2级)Y 1

【题目描述】

将十进制正整数m转换成k进制数(2≤k≤9)并输出(m,k从键盘输入)。

【输入】

两个正整数m和k

【输出】

按进制转换后的数

【样例输入】

8 2↙

【样例输出】

1000↙

参考代码:

#include <stdio.h>void Trans( int m, int k ){int aa[20], i, j;for( i = 0; m; i++ ){aa[i] = m%k;m /= k;}for( j=i-1; j>=0; j-- )printf("%d", aa[j]);}void main(){int b, n;scanf("%d %d", &n, &b );Trans( n, b );}

7. 统计个数(1级) 2

【题目描述】

统计从键盘输入的20个整数中有多少个正数、多少个负数、多少个零。

【输入】

20个整数

【输出】

交换后的两个整数

【样例输入】

-1 -2 9 0 3 0 -9 -7 -6 2 0 -2 23 9 0 -45 23 9 0 0↙

【样例输出】

正数:7 , 负数:7 , 零:6↙

参考代码:

#include <stdio.h>void fun(int *zs,int *fs,int *l,int aa[]){int i;for(i=0; i<20; i++){if(aa[i]>0)(*zs)++;if(aa[i]<0)(*fs)++;if(aa[i]==0)(*l)++;}}void main(){int num[20];int i,czs,cfs,cl;czs=cfs=cl=0;for(i=0; i<20; i++)scanf("%d",&num[i]);fun(&czs,&cfs,&cl,num);printf("正数:%d , 负数:%d , 零:%d \n",czs,cfs,cl);}

8. 输出数字图形 (1级)Y 1

【题目描述】

从键盘输入n 值,输出如下图形(n=6时)。

1 2 3 4 5 6

1 1 2 3 4 5

1 1 1 2 3 4

1 1 1 1 2 3

1 1 1 1 1 2

1 1 1 1 1 1

【输入】

正整数n

【输出】

n*n大小的数字图形(每个数字占3个域宽)

【样例输入】

5↙

【样例输出】

1 2 3 4 5↙

1 1 2 3 4↙

1 1 1 2 3↙

1 1 1 1 2↙

1 1 1 1 1↙

参考代码:

#include <stdio.h>void fun(int n){int i,j;for(i=1; i<=n; i++){for(j=1; j<=i; j++)printf("%3d",1);for(j=2; j<=n+1-i; j++)printf("%3d",j);printf("\n");}}void main(){int n;scanf("%d",&n);fun(n);}

9. 求两个整数的阶乘之和(1级) 1

【题目描述】

完成函数计算任意两个整数的阶乘之和。

【输入】

两个整数

【输出】

两个数字分别阶乘然后相加的运算结果

【样例输入】

2,3↙

【样例输出】

8↙

参考代码:

#include <stdio.h>#include <stdlib.h>int factorial(int n) //创建自定义函数{int result = 1;while (n != 0){result *= n--;}return result;//返回函数值}main(){int num1, num2, result;scanf("%d,%d",&num1,&num2);result = factorial(num1) + factorial(num2);//调用两次factorial()printf("%d", result);}

10. 判别整数数组中各元素的值(1级)Y 2

【题目描述】

编写函数,判别整数数组中各元素的值,元素值大于0输出1,元素值小于0输出-1,元素值等于0则输出0。

【输入】

仅一行。输入五个整数。

【输出】

两行。第一行,输出五个1,-1或者是0的整数(用空格隔开),来代表输入数字大于零、小于零还是等于零。第二行,输出刚才输入的五个整数对应的a[i]的值。

【样例输入】

4,6,20,0,-7↙

【样例输出】

1 1 1 0 -1 ↙

a[0]=4 a[1]=6 a[2]=20 a[3]=0 a[4]=-7 ↙

参考代码:

#include <stdio.h>void f(int n) /*定义函数f()及形式参数n, n为整型变量*/{if (n > 0)printf("%d ", 1);else if (n == 0)printf("%d ", 0);else printf("%d ", -1);}main(){int a[5], i;for (i = 0; i < 5; i++){scanf("%d,",&a[i]);f(a[i]); /*调用5次函数,数组元素a[i]作实参*/}printf("\n");for (i = 0; i < 5; i++)printf("a[%d]=%d ",i,a[i]);printf("\n");}

标签: #c语言函数题目