1. 数组逆序存放(1级)2
【题目描述】
编写程序,输人一组数据存入数组,调用函数将这组数据按原来顺序的逆序存放,输出函数调用之前和调用之后的存放情况。
【输入】
输入任意一组数据
【输出】
函数调用之前和调用之后的存放
【样例输入】
ABC 123↙
【样例输出】
Before oppsite():
str[0]=A str[1]=B str[2]=C str[3]= str[4]=1 ste[5]=2 str[6]=3↙
After oppsite():
str[0]=3 str[1]=2 str[2]=1 str[3]= str[4]=A ste[5]=B str[6]=C↙
参考代码:
# include<stdio.h> # include<string.h> void opposite (char retrt[],int n); //声明自定义函数原型 void main() { char str[60]; //定义实参数组str[] int n, i; gets(str); //实参数组str[]大小 n = strlen(str); puts("Before opposite():"); for (i = 0; i < n; i++) printf("str[%d]=%c ", i, str[i]); putchar('n'); opposite(str, n); //调用opposite() puts("After opposite():"); for (i = 0; i < n; i++) printf("str[%d]=%c ", i, str[i]); putchar('n'); } void opposite(char retr[], int n) //定义函数,以数组retr[]作为实参 { int i; char c; for (i=0; i<n/2; i++) { c = retr[i]; retr[i] = retr[n - i - 1]; retr[n - i - 1] = c; } }
2. 字符串长度(2级) 3
【题目描述】
编写函数,求一个字符串长度。main函数中输入字符串,并输出其长度
【输入】
一个字符串。
【输出】
其字符个数。
【样例输入】
china↙
【样例输出】
5↙
参考代码:
#include <stdio.h> int lenght(char *p) { int n = 0; while(*p != ' ') { n++; p++; } return n; } int main() { int len; char str[200]; scanf("%s", str); len = lenght(str); printf("%dn", len); return 0; }
3. 数的合并(1级)1
【题目描述】
编写一个能将两个数合并成一个数的函数MergeData,具体合并的方式是:将两个两位数的正整数num1、num2合并形成一个整数放在newnum中,并将num1的十位和个位依次存放在newnum数的十位和千位上,num2的十位和个位依次存放在newnum数的个位和百位上。
【输入】
两个整数num1、num2。
【输出】
合并后的新数据newnum。
【样例输入】
45 12↙
【样例输出】
newnum=5241↙
参考代码:
#include <stdio.h> int MergeData(int num1,int num2) { int a,b,c,d,newnum; a=num1%100/10; b=num1%10; c=num2%100/10; d=num2%10; newnum=a*10+b*1000+c*1+d*100; return newnum; } int main() { int num1, num2, newnum; scanf("%d%d", &num1, &num2); newnum = MergeData(num1, num2); printf("newnum=%dn", newnum); return 0; }
4. 素数的判断(1级) 1
【题目描述】
请编写一个判断素数的函数PrimeJudge。具体功能是对录入的一个整数num进行判断,判断其是否为素数,如果是素数,则返回1,否则返回0。
【输入】
一个整数num。
【输出】
num如果是素数,则返回1,否则返回0。
参考代码:
#include <stdio.h> #include <stdlib.h> int PrimeJudge(int num) { int i,f=0; for(i=2; i<num; i++) { if(num%i==0) break; } if(i==num) f=1; return f; } int main() { int num; scanf("%d", &num); if( PrimeJudge(num) ) { printf("Primen"); } else { printf("Non Primen"); } return 0; }
5. 求阶乘(1级) 1
【题目描述】
请编写求阶乘的函数Facto,其功能是:对录入的任意正整数n进行计算并输出从1到n之间所有数的阶乘值。如果n>0,则输出1-n的阶乘值;否则,提示输入数据错误
【输入】
正整数n。
【输出】
如果n>0,则输出1-n的阶乘值;否则,提示输入数据错误。
参考代码:
#include <stdio.h> #include <stdlib.h> double Facto(int n) { int i; double p=1; for(i=1; i<=n; i++) { p=p*i; } return p; } int main() { int n, i; double result = 1; scanf("%d", &n); if(n <= 0) { printf("Input data error!n"); } else { for(i = 1; i <= n; i++) { result = Facto(i); printf("%d!=%.0fn", i, result); } } return 0; }
6. 求级数(1级) 1
【题目描述】
请编写一个计算级数和的函数fun,从键盘录入整数x和整数n,按给出的算式进行计算,其结果值S由函数值返回。
【输入】
两个整数x和n。
【输出】
级数的和s。
【样例输入】
0.3 10↙
【样例输出】
1.349859↙
参考代码:
#include <stdio.h> double fun(double a, int b) { double sum = 1.0; double i, y = 1.0, x = 1.0; for(i = 1; i <= b; i++) { y = y * i; x = x * a; sum += x / y; } return sum; } int main() { double x; int n; scanf("%lf%d", &x, &n); printf("%fn", fun(x, n)); return 0; }
7. 浮点数四舍五入(1级) 1
【题目描述】
请编一个将浮点数四舍五入的函数Fun,其功能是使浮点数保留2位小数,并对第3位进行四舍五入(规定实型数为正数)。
例如:实型数为1234.567,则函数返回1234.570000;实型数为1234.564,则函数返回1234.560000。
【输入】
一个浮点数。
【输出】
精确到小数点后面2位的浮点数。
【样例输入】
1234.567↙
【样例输出】
1234.570000↙
参考代码:
#include <stdio.h> #include <math.h> double fun(double x) { int n=(int)(x*100+0.5); return n/100.0; } int main( ) { double a; scanf ("%lf", &a); printf ("%lfn", fun( a )); return 0; }
8. 长整型截短(1级) 1
【题目描述】
编写一个函数Fun,其功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位的顺序组成一个新的数,并作为函数值返回。
【输入】
一个整数n。
【输出】
按照要求形成的新整数。
【样例输入】
27638496↙
【样例输出】
The result is: 26846↙
参考代码:
#include <stdio.h> int Fun(int n) { int z=0,i=1,k; while(n!=0) { k=n%10; n=n/10; if(k%2==0) { z=z+k*i; i=i*10; } } return z; } int main() { int n; scanf("%d",&n); printf("The result is: %dn",Fun(n)); return 0; }
9. 偶数分解(1级)Y 1
【题目描述】
编写函数实现对整数进行分解。具体要求是:输入若干个大于2的正整数,如果该数是偶数,则将其分解为两个素数(只需找出第一对素数)并输出;如果输入的奇数,则输出“××× is odd number!” ;输入为0时程序结束。只有1和它本身这两个因数的自然数叫做素数,0和1既不是素数也不是和数。
【输入】
大于2的整数序列。
【输出】
如果是偶数,则输出偶数被分解为两个素数和的表达式,否则,输出是奇数。
【样例输入】
3 4 0↙
【样例输出】
3 is odd number!↙
4=2+2↙
参考代码:
#include <stdio.h> int fun(int n) { int i; for(i=2; i<n; i++) { if(n%i==0) break; } if(i==n) return 1; else return 0; } int main() { int m, c, i; for(m = 1;; m++) { scanf("%d", &c); if(c == 0) break; if(c % 2 == 0) { for(i = 2; i <= c - 2; i++) { if((fun(i) == 1) && (fun(c - i) == 1)) { printf("%d=%d+%dn", c, i, c - i); break; } } } if(c % 2 != 0) { printf("%d is odd number!n", c); } } return 0; }
10. 公式求解(1级) 1
【题目描述】
请编写函数GetSum,其功能是:从键盘录入一个整数n,并按下列多项式计算并输出其结果。
【输入】
一个整数n。
【输出】
多项式的和s。
【样例输入】
15↙
【样例输出】
s=2.718282↙
参考代码:
#include <stdio.h> double GetSum(int n) { double z,i=1,s=1; for(z=1;z<=n;z++) { i=i/z; s=s+i; } return s; } int main() { int n; double s; scanf("%d",&n); s=GetSum(n); printf("s=%fn",s); return 0; }
还没有评论,来说两句吧...