C函数编程20道习题汇总含其详细程序解答
C语言编程题精选及参考答案
参加8至10次:加8分; 参加10次以上:加10分。 程序运行时输入某人参加活动的次数,则输出其应该加的分数;如果输入为负值,则给 出相应提示。 77. 编程计算如下表达式的值:1/2+1/3+...+1/n,其中的 n 在程序运行时输入。 78. 从键盘输入一元二次方程的三个系数,要求计算出其根:若有不相等的实根则输出两 实根;若有相等的实根则只输出一个;若无实根则给出相应提示;若输入导致一元二次 方程不成立,则给出提示。 79. 求以下不定方程组的所有正整数解:
22. 输入 n,求下列级数前 n 项的和。
1+1/2-2/3+3/4……
23. 编写程序用于判断一个数是否是素数。
24. 编程序输出1--1000内的所有素数。所谓素数是指除了能被1和它本身之外不能被其
它数整除的数。
25. 输入20个数,先按原来顺序输出,再将数组中元素逆置后输出,即将第1个数跟
第20个互换、第2个数跟第19个互换......。
48. 编程计算下面公式:
49. 编一子程序实现十进制数转换为其它进制数。主程序将十进制数43 和17分别转换为 二进制数和八进制数。
50. 编一个程序计算一元二次方程的根。
51. 编程输入一个整数,若为四位正整数则要求正确分离出其个、十、百、千位及中间 的两位数并分别输出,如输入的是1234,则输出应该为4、3、2、1、23;否则给出一 个出错提示。
68. 今年父亲30岁,儿子6岁,问多少年后父亲的年龄是儿子年龄的2倍? 69. 一个四位数,当它逆向排列时得到的4位数是它自身的整数倍,请找出所有符合这一
C语言编程题及答案(精心整理)
)(*)(*)(*c s b s a s s ---C 语言编程题1.(*)求分数序列:1/2,2/3,3/5,5/8,8/13,13/21...... 前20项的和。
main(){float i=1,j=2,t=0,s,n,m;for(n=1;n<=20;n++)s=i/j,m=i,i=j,j=m+j,t=t+s;printf("t=%f",t);}2.(*)从键盘输入一个字符串,再将其逆序输出。
(如:输入abcde ,输出edcba ) main(){int i;char c[10];scanf("%s",c);for(i=9;i>=0;i--)printf("%c",c[i]);}3.(*)已知abc+cba=1333,其中a 、b 、c 均为一位数,例如:617+716=1333, 518+815=1333, 试编程求出符合这一规律的a 、b 、c ,并输出结果。
main(){int a,b,c,x,y;for(a=1;a<=9;a++)for(b=0;b<=9;b++)for(c=1;c<=9;c++){ x=100*a+10*b+c;y=100*c+10*b+a;if(x+y==1333)printf("x=%d,y=%d",x,y);}}4.(*)利用海伦公式求三角形面积,三边长a,b,c 由键盘输入。
若输入的三边长不能构成 三角形,输出相应提示信息。
海伦公式如下:其中s=(a+b+c)/2三角形面积= #include"math.h"main(){ float a,b,c,s,area;scanf("%f,%f,%f",&a,&b,&c);s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));if(a+b>c&&a+c>b&&b+c>a)printf("area=%f",area);else.1 .printf("no");}5.(*)编程求出1!+2!+3!+…+8!+9!+10!的值并输出。
c语言编程题及参考答案
数组编程:15、从键盘输入20个整型数据,放入数组a 中,求其最大值、最小值及其所在元素的下标位置,并输出。
16、编程实现从键盘任意输入30个整数,统计非负数个数,并计算非负数之和。
17、从键盘输入n*n个整型数(n≤10),组成n行n列数组,打印出其上三角数组。
15、#include <stdio.h>main(){ int a[20], n, max, min, maxPos, minPos;for (n=0; n<20; n++){scanf("%d",&a[n]); }max = min = a[0];maxPos = minPos = 0;for (n=0; n<20; n++){if (a[n] > max){ max = a[n];maxPos = n;}else if (a[n] < min){ min = a[n];minPos = n;}}printf("max=%d, pos=%d\n",max, maxPos);printf("min=%d, pos=%d\n",min, minPos);}16、#include <stdio.h>main(){ int i, n, sum = 0, counter = 0;printf("Input 30 Numbers:\n");for (i=0; i < 30; i++){scanf("%d", &n);if (n >= 0) /*判断是否为非负数*/{ sum += n; /*非负数求和*/counter++; /*非负数个数计数*/}}printf("sum=%d,counter=%d\n", sum,counter);}17、#include <stdio.h>#define ARR_SIZE 10main(){ int a[ARR_SIZE][ARR_SIZE],i,j,n;printf("Input n:");scanf("%d",&n);printf("输入%d*%d数组:\n",n,n);for (i=0; i<n; i++){ for (j=0;j<n;j++){scanf("%d",&a[i][j]);}}for (i=0;i<n;i++){ for (j=i;j<n;j++)printf("%d", a[i][j]);printf("\n");}}文件编程:10. 把字符串“Welcome to Beijing!”存于磁盘C的根目录下的“2008.dat”的文件中。
C语言编程实例100题(带解析适合新手超经典)
C语言程序实例100个(一)【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
组成所有的排列后再去掉不满足条件的排列。
2.程序源代码:main(){int i,j,k;printf("\n");for(i=1;i<5;i++)/*以下为三重循环*/ for(j=1;j<5;j++)for (k=1;k<5;k++){if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/ printf("%d,%d,%d\n",i,j,k);}}==============================================================【程序2】题目:企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。
注意定义时需把奖金定义成长整型。
2.程序源代码:main(){long int i;int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf("%ld",&i);bonus1=100000*0.1;bonus2=bonus1+100000*0.75;bonus4=bonus2+200000*0.5;bonus6=bonus4+200000*0.3;bonus10=bonus6+400000*0.15;if(i<=100000)bonus=i*0.1;else if(i<=200000)bonus=bonus1+(i-100000)*0.075;bonus=bonus4+(i-400000)*0.03;else if(i<=1000000)bonus=bonus6+(i-600000)*0.015;elsebonus=bonus10+(i-1000000)*0.01;printf("bonus=%d",bonus);}==============================================================【程序3】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。
c语言编写函数笔试题及答案
c语言编写函数笔试题及答案C语言编写函数笔试题及答案1. 题目一:计算阶乘编写一个函数,计算并返回一个整数的阶乘。
阶乘定义为:n! = n * (n-1) * (n-2) * ... * 1,其中n! = 1,当n=0。
函数原型:```clong long factorial(int n);```答案:```c#include <stdio.h>long long factorial(int n) {if (n == 0) return 1;long long result = 1;for (int i = 1; i <= n; i++) {result *= i;}return result;}int main() {int num;printf("Enter a number: ");scanf("%d", &num);printf("Factorial of %d is %lld\n", num, factorial(num)); return 0;}```2. 题目二:字符串反转编写一个函数,接受一个字符串作为参数,将其反转并返回。
函数原型:```cchar* reverseString(char* str);```答案:```c#include <stdio.h>#include <string.h>char* reverseString(char* str) {int length = strlen(str);char temp;for (int i = 0; i < length / 2; i++) {temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}return str;}int main() {char str[] = "Hello, World!";printf("Reversed string: %s\n", reverseString(str));return 0;}```3. 题目三:寻找数组中的最大值编写一个函数,接受一个整数数组和数组的长度作为参数,返回数组中的最大值。
c程序设计题库及详解答案
c程序设计题库及详解答案在C语言的学习过程中,掌握各类编程题目并理解其解答是至关重要的。
以下是一些常见的C程序设计题库及对应的详解答案。
1. 求两个数的最大公约数使用辗转相除法(欧几里得算法)可以求得两个数的最大公约数。
以下是求解的C程序代码:```c#include <stdio.h>int gcd(int a, int b) {while (b != 0) {int temp = b;b = a % b;a = temp;}return a;}int main() {int num1, num2;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);printf("最大公约数是:%d\n", gcd(num1, num2));return 0;}```2. 计算一个数的阶乘阶乘是一个数与所有小于它的正整数的乘积。
以下是计算阶乘的C 程序代码:```c#include <stdio.h>long long factorial(int n) {if (n == 0)return 1;return n * factorial(n - 1);}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);printf("%d 的阶乘是:%lld\n", num, factorial(num)); return 0;}```3. 判断一个数是否为素数素数是指只能被1和其本身整除的大于1的自然数。
以下是判断素数的C程序代码:```c#include <stdio.h>#include <math.h>int isPrime(int n) {if (n <= 1)return 0;for (int i = 2; i <= sqrt(n); i++) {if (n % i == 0)return 0;}return 1;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (isPrime(num))printf("%d 是素数。
C语言编程题带答案
C语言编程题带答案题目 1:求两个整数的最大值```cinclude <stdioh>int max(int num1, int num2) {if (num1 > num2) {return num1;} else {return num2;}}int main(){int num1 = 10, num2 = 20;int maxValue = max(num1, num2);printf("最大值为: %d\n", maxValue);return 0;}```分析:在这个程序中,我们定义了一个名为`max` 的函数,它接受两个整数参数`num1` 和`num2` 。
通过使用条件判断语句`if` 来比较这两个数的大小,如果`num1` 大于`num2` ,则返回`num1` ,否则返回`num2` 。
在`main` 函数中,我们给定了两个整数`num1` 和`num2` 的值,并调用`max` 函数来获取它们中的最大值,最后使用`printf` 函数将最大值输出到控制台。
题目 2:计算一个整数数组的平均值```cinclude <stdioh>float average(int arr, int size) {int sum = 0;for (int i = 0; i < size; i++){sum += arri;}return (float)sum / size;}int main(){int arr ={10, 20, 30, 40, 50};int size = sizeof(arr) / sizeof(arr0);float avg = average(arr, size);printf("平均值为: %2f\n", avg);return 0;}```分析:在这个程序中,首先在`average` 函数里,我们初始化一个变量`sum` 为 0 ,用于存储数组元素的总和。
C语言函数习题及答案
9.请编写函数fun,实现的功能是:求出能整除x且是偶数的各整数, 并按从小到大的顺序依次存放在y所指定的数组中,这些除数的个数 通过函数返回。仅在fun函数体内编写代码即可。图12-1是输入40后 的运行结果图。 #include "stdio.h" int fun(int x,int y[]) {int i,j=0; for(i=2;i<x;i++) if(x%i==0&&i%2==0)y[j++]=i; return j; } main() {int x,a[100],n,i; printf("请输入一个整数:"); scanf("%d",&x); n=fun(x,a); for(i=0;i<n;i++) printf("%4d",a[i]); printf("\n");}
2.编写一个函数fun,实现将一个字符串反序存放。例如:在 主函数中输入字符串“abcdefg”,在调用fun函数后,则应输出 “gfedcba”。 #include <stdio.பைடு நூலகம்>
#include <string.h> #define N 81 char fun(char s[],int n) {int i; char c; for(i=0;i<=(n-1)/2;i++) {c=s[i]; s[i]=s[n-1-i]; s[n-1-i]=c;} } main() { char s [N]; int l; printf("input a string:");gets(s); l=strlen(s); fun(s,l); printf("The new string is :");puts(s); }
C语言程序设计函数练习题及参考答案
C语言程序设计练习题及参考答案1、定义一个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。
#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;printf("\nInput a,b,c: ");scanf("%d%d%d",&a,&b,&c);printf("\na=%d, b=%d, c=%d\n",a,b,c);shape =fun(a,b,c);printf("\n\nThe shape : %d\n",shape);}2、编写一个程序,将两个变量的值交换, 例如变量a中的值原为3,b中的值原为8,程序运行后a 中的值为8,b中的值为3。
#include <stdio.h>void fun(int *x,int *y){int t;t=*x;*x=*y;*y=t}void main(){int a=3,b=8;printf("%d %d\n",a,b);fun(&a,b);printf("%d %d\n",a,b);}3、从键盘输入3个数,将最大值放在变量a中,最小值放在变量c中。
例如,输入的数为:55 12 34,输出结果应当是:a=55.0,b=34.0,c=12.0。
C函数编程20道习题汇总含其详细程序解答精编版
……………………………………………………………最新资料推荐…………………………………………………第1题:编写两个函数,函数功能分别是:求两个整数的最大公约数和最小公倍数,要求输入输出均在主函数中完成。
15 25样例输入: 5 75样例输出:{int a,b,c,d; #include<iostream.h> int gbs(int a,int b)cin>>a>>b; {int i;int gys(int a,int b)c=gys(a,b); for(i=a;;i++){int i;d=gbs(a,b);for(i=a;i>0;i--)if(i%a==0&&i%b==0)cout<<c<<' '<<d; if (a%i==0&&b%i==0) { return i;return 0;}{ return i; break;}}break;}int main()}2题:第的个数,如中包含因子k编写函数factors(num, k),函数功能是:求整数num。
要求factors(32,2)=52××2,则果没有该因子则返回0,例如:32=2×2×2输入输出均在主函数中完成。
08 3样例输出:样例输入:样例输入:4 2 样例输出:2cin>>num>>k; #include<iostream.h> num=num/k;b=factors(num,k); int factors(int num,int k) a=num%k;cout<<b<<endl; {int n=0,a; }return 0; return n;} a=num%k;}while(a==0) int main(){int num,k,b;{n++;第3题:编写函数,函数功能是:计算n的阶乘,要求输入输出均在主函数中完成。
50道C++编程练习题及解答-c编程例题
50道C++编程练习题及解答-c编程例题C++作为一种广泛应用的编程语言,通过不断的练习可以帮助我们更好地掌握其语法和编程思想。
下面为您带来 50 道 C++编程练习题及详细解答,希望能对您的学习有所帮助。
题目 1:求两个数的和```cppinclude <iostream>using namespace std;int main(){int num1, num2, sum;cout <<"请输入第一个数: ";cin >> num1;cout <<"请输入第二个数: ";cin >> num2;sum = num1 + num2;cout <<"两数之和为: "<< sum << endl;return 0;```解答:这段代码首先使用`iostream`库来进行输入输出操作。
在`main`函数中,定义了三个整型变量`num1`、`num2`和`sum`。
通过`cin`获取用户输入的两个数,然后将它们相加并存储在`sum`中,最后使用`cout`输出两数之和。
题目 2:判断一个数是否为偶数```cppinclude <iostream>using namespace std;int main(){int num;cout <<"请输入一个数: ";cin >> num;if (num % 2 == 0) {cout << num <<"是偶数" << endl;} else {cout << num <<"不是偶数" << endl;return 0;}```解答:同样先获取用户输入的一个数。
通过取模运算(`num % 2`)判断该数是否能被 2 整除,如果余数为 0 则为偶数,否则不是偶数。
题目 3:打印 1 到 10 的数字```cppinclude <iostream>using namespace std;int main(){for (int i = 1; i <= 10; i++){cout << i <<"";}cout << endl;return 0;}```解答:这里使用了`for`循环,从 1 开始,每次递增 1,直到达到 10 为止。
50道C++编程练习题及解答
50道C/C++编程练习题1、输入3个数,求最大值int main(){ int a,b,c,m;cin>>a>>b>>c;m=a;if(b>m) m=b;if(c>m) m=c;cout<<m;}2、编程序,求方程ax2+bx+c=0的根#include<iostream>#include<cmath>using namespace std;int main(){double a,b,c,d,x1,x2;cin>>a>>b>>c;if(a==0)if(b==0) cout<<"error\n";else cout<< "x="<<-c/b<<endl;else{ d=b*b-4*a*c;if(fabs(d)<=1e-6)cout<<"x1=x2="<<-b/(2*a)<<endl;else if(d>1e-6){ x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);cout<<"x1="<<x1<<",x2="<<x2<<endl; }else cout<<"方程无实根\n";}}3、输入一个成绩,打印相应的等级int main(){ int a;cin >> a;if(a>=90) cout<<"A";else if(a>=80) cout<<"B";else if(a>=70) cout<<"C";else if(a>=60) cout<<"D";else cout<<"E";}4、输入3个double类型的值,判断这3个值是否可以表示一个三角形的三条边。
完整版C语言程序设计练习题含程序及参考答案
完整版C语言程序设计练习题含程序及参考答案1. 请编写一个C程序,要求输入一个整数n,并打印从1到n的所有整数。
```c#include <stdio.h>int main(){int n;printf("请输入一个整数n:");scanf("%d", &n);for (int i = 1; i <= n; i++){printf("%d ", i);}return 0;}```参考答案:```请输入一个整数n:51 2 3 4 5```2. 请编写一个C程序,要求输入两个整数m和n,并计算它们的和、差、积和商(m除以n的结果)。
```c#include <stdio.h>int main(){int m, n;printf("请输入两个整数m和n:");scanf("%d %d", &m, &n);int sum = m + n;int difference = m - n;int product = m * n;float quotient = (float)m / n;printf("和:%d\n", sum);printf("差:%d\n", difference);printf("积:%d\n", product);printf("商:%.2f\n", quotient);return 0;}```参考答案:```请输入两个整数m和n:10 3和:13差:7积:30商:3.33```3. 请编写一个C程序,要求输入一个整数n,并判断它是否为素数。
```c#include <stdio.h>#include <stdbool.h>bool isPrime(int n){if (n <= 1){return false;}for (int i = 2; i * i <= n; i++){if (n % i == 0){return false;}}return true;}int main(){int n;printf("请输入一个整数n:"); scanf("%d", &n);if (isPrime(n)){printf("%d是素数。
C语言编程题_经典40题(附解答)
9、编写函数,将两个递增有序的表,合并成一 个递增有序的表。
#define N 50
#define SeqList struct seqlist
SeqList
{ int data[N];
int length;
};
合并函数如下: SeqList *mergelist(a,b) SeqList a,b; { SeqList c; int i=0, j=0, k=0; while((i<a.length)&&(j <b.length)) if(a.data[i])<=b.data[j]) c.data[k++]= a.data[i++]); else c.data[k++]= b.data[j++]); while(i<a.length) c.data[k++]= a.data[i++]); while (j <b.length) c.data[k++]= b.data[j++]); c.length=k; return c; }
(6)一旦出现a[i]小于x,则将x插入到i+1位置。
(7)输出插入后的有序序列。
(3)完整的程序如下 #include ―stdio.h‖ #define N 10 main( ) { int i , j, x, n, a[N]; /*数字a的最大容量为N*/ printf(―请输入数组的实际元素个数n:\n‖); scanf(―%d‖, &n ); /*要求实际元素个数n小于N */ printf(―请输入%d个整数:\n‖, n ); for( i=0; i<n; i++) scanf(―%d‖, &a[i]); selectsort(a , n) ; /*排序*/ output ( a, n);/*输出插入前的序列*/ scanf(―%d‖, &x ); /*读入要插入的元素x */ i=n-1; /*从表尾往表头方向搜索插入位置*/ while (( i >=0) && ( x <a[i])) {a[i+1]=a[i]; i--;} /*元素后移*/ a[i+1]=x; /*插入元素x*/ output( a, n);/*输出插入后的序列*/ }
100个经典c语言例题(带答案)
100个经典c语言例题(带答案)经典C源程序100例- -1 经典C源程序100例【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
组成所有的排列后再去掉不满足条件的排列。
2.程序源代码:m...C语言经典程序100例2009-02-26 19:44 | (分类:默认分类)经典C源程序100例- -1 经典C源程序100例【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
组成所有的排列后再去掉不满足条件的排列。
2.程序源代码:main(){int i,j,k;printf("\n");for(i=1;i<5;i++)/*以下为三重循环*/for(j=1;j<5;j++)for (k=1;k<5;k++){if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/printf("%d,%d,%d\n",i,j,k);}}==============================================================【程序2】题目:企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。
c语言函数设计题库及详解答案
c语言函数设计题库及详解答案1. 编写一个函数,实现两个整数的加法运算。
函数原型:`int add(int a, int b);`详解答案:```cint add(int a, int b) {return a + b;}```2. 设计一个函数,用于计算并返回一个字符串的长度。
函数原型:`int stringLength(const char *str);`详解答案:```cint stringLength(const char *str) {int length = 0;while (str[length] != '\0') {length++;}return length;}```3. 实现一个函数,用于交换两个整数的值。
函数原型:`void swap(int *x, int *y);`详解答案:```cvoid swap(int *x, int *y) {int temp = *x;*x = *y;*y = temp;}```4. 编写一个函数,用于计算一个整数的阶乘。
函数原型:`long factorial(int n);`详解答案:```clong factorial(int n) {if (n <= 1) {return 1;}return n * factorial(n - 1);}```5. 设计一个函数,用于判断一个整数是否为素数。
函数原型:`int isPrime(int num);`详解答案:```cint isPrime(int num) {if (num <= 1) {return 0;}for (int i = 2; i * i <= num; i++) { if (num % i == 0) {return 0;}}return 1;}```6. 实现一个函数,用于计算一个数的平方根。
函数原型:`double sqrt(double num);`详解答案:```cdouble sqrt(double num) {double guess = num / 2.0;while (guess * guess < num) {guess = (guess + num / guess) / 2.0;}return guess;}```7. 编写一个函数,用于将一个整数转换为字符串。
C语言编程练习题附答案
C语言编程练习题附答案1.从键盘输入20个整数,使用冒泡排序将它们从大到小排列并输出。
includeint main() {int a[20]。
i。
j。
t;printf("请任意输入20个整数\n");for (i = 0.i < 20.i++)scanf("%d"。
&a[i]);printf("\n");for (i = 0.i < 19.i++)for (j = 0.j < 19 - i。
j++)if (a[j] < a[j + 1]) {t = a[j];a[j] = a[j + 1];a[j + 1] = t;printf("按照从大到小的顺序排列为\n");for (i = 0.i < 20.i++)printf("%d,"。
a[i]);printf("\n");return 0;2.从键盘输入20个整数,使用选择排序将它们从大到小排列并输出。
includedefine N 20int main() {int a[N]。
i。
j。
max。
k;printf("请任意输入20个整数\n");for (i = 0.i < N。
i++)scanf("%d"。
&a[i]);printf("\n");for (i = 0.i < N - 1.i++) {k = i;for (j = i + 1.j < N。
j++)if (a[i] < a[j])k = j;max = a[k];a[k] = a[i];a[i] = max;printf("按照从大到小的顺序排列为\n");for (i = 0.i < N。
i++)printf("%d,"。
c语言程序设计编程题库及详解答案
c语言程序设计编程题库及详解答案C语言是一种通用的编程语言,广泛用于系统软件、应用程序和嵌入式系统开发。
C语言以其高效性和灵活性而著称,是许多编程语言的基础。
下面,我将提供一些C语言程序设计编程题库的题目及其详解答案。
题目一:计算圆的面积问题描述:编写一个C程序,输入圆的半径,计算并输出圆的面积。
代码实现:```c#include <stdio.h>#define PI 3.14159int main() {double radius, area;printf("请输入圆的半径:");scanf("%lf", &radius);area = PI * radius * radius;printf("圆的面积是:%.2f\n", area);return 0;}```题目二:求最大公约数问题描述:编写一个C程序,输入两个整数,计算并输出这两个整数的最大公约数。
代码实现:```c#include <stdio.h>int gcd(int a, int b) {while (b != 0) {int temp = b;b = a % b;a = temp;}return a;}int main() {int num1, num2;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);printf("最大公约数是:%d\n", gcd(num1, num2));return 0;}```题目三:字符串反转问题描述:编写一个C程序,输入一个字符串,然后输出该字符串的反转。
代码实现:```c#include <stdio.h>#include <string.h>void reverseString(char str[]) {int length = strlen(str);for (int i = 0; i < length / 2; i++) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}int main() {char str[100];printf("请输入一个字符串:");fgets(str, 100, stdin); // 使用fgets以包含空格str[strcspn(str, "\n")] = 0; // 去除换行符reverseString(str);printf("反转后的字符串是:%s\n", str);return 0;}```题目四:计算阶乘问题描述:编写一个C程序,输入一个非负整数,计算并输出该整数的阶乘。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1题:编写两个函数,函数功能分别是:求两个整数的最大公约数和最小公倍数,要求输入输出均在主函数中完成。
样例输入:15 25样例输出:5 75#include<iostream.h> int gys(int a,int b) {int i;for(i=a;i>0;i--)if (a%i==0&&b%i==0) { return i;break;}} int gbs(int a,int b){int i;for(i=a;;i++)if(i%a==0&&i%b==0){ return i;break;}}int main(){int a,b,c,d;cin>>a>>b;c=gys(a,b);d=gbs(a,b);cout<<c<<' '<<d;return 0;}第2题:编写函数factors(num, k),函数功能是:求整数num中包含因子k的个数,如果没有该因子则返回0,例如:32=2×2×2×2×2,则factors(32,2)=5。
要求输入输出均在主函数中完成。
样例输入:4 2样例输出:2 样例输入:8 3样例输出:0#include<iostream.h> int factors(int num,int k) {int n=0,a;a=num%k;while(a==0){n++; num=num/k;a=num%k;}return n;}int main(){int num,k,b;cin>>num>>k;b=factors(num,k);cout<<b<<endl;return 0;}第3题:编写函数,函数功能是:计算n的阶乘,要求输入输出均在主函数中完成。
样例输入:5样例输出:120、#include<iostream.h> int jc(int n){int a,b=1;for(a=1;a<=n;a++)b=a*b; return b;}int main(){int n,s;cin>>n;s=jc(n);cout<<s;return 0;}第4题:编写函数,函数功能是:计算k以内(包括k)最大的10个(不足10个则是所有的)能被13或17整除的自然数之和。
要求输入输出均在主函数中完成。
样例输入:500样例输出:4622#include<iostream.h> int sum(int k){ int n,c=0,s=0;for(n=k;n>0;n--){if(n%13==0||n%17==0) {c++; s+=n;}if(c>=10)break;}return s;}int main(){int k,s;cin>>k;s=sum(k);cout<<s<<endl;return 0;}第5题:编写函数,函数功能是:根据下列公式求π的值(直到某一项的值小于给定精度e为止),精度e由键盘输入,要求输入输出均在主函数中完成。
样例输入:0.0005样例输出:3.14058#include<iostream.h>double pai(double e){double s,a,k,p;s=1;a=1/3.0;for(k=2;;k++){s+=a;a=a*(k/(k*2+1));if(a<e) break;}p=s*2;return p;}int main(){double e,p;cin>>e;p=pai(e);cout<<p<<endl;return 0;}第6题:编写程序求要求使用函数,函数功能是:求某个数的阶乘。
n由键盘输入,输入输出均在主函数中完成。
注意:0!=1。
样例输入:3样例输出:10#include<iostream.h>int jc(int a){int s=1,i;if(a==0)s=1;else{for(i=1;i<=a;i++)s=s*i;}return s;}int main(){int n,k,s;double sum=0;cin>>n;for(k=0;k<=n;k++){s=jc(k);sum+=s;}cout<<sum<<endl;return 0;}第7题:求数列要求使用函数计算该序列的前N项和S N,直到S N 大于q为止,q由键盘输入,输入输出均在主函数中完成。
样例输入:50样例输出:50.4167、#include<iostream.h>float sum(float q){float s=0,a,n;for(n=1;s<=q;n++){a=(n+1.0)/n;s+=a;}return s;}int main(){float q,s;cin>>q;s=sum(q);cout<<s<<endl;return 0;}第8题:求数列的前n项和要求使用函数,函数功能是:计算数列的每一项,n由键盘输入。
累加过程和输入输出均在主函数中完成。
样例输入:50样例输出:1.96079#include<iostream.h> float myx(int n) {float a;int i,s=0;for(i=1;i<=n;i++)s+=i; a=1.0/s;return a;}int main(){int n,i;float s=0;cin>>n;for(i=1;i<=n;i++)s+=myx(i);cout<<s<<endl;return 0;}第9题:编写函数fun(num),其中num是一个n位数,函数功能是:求整数num的后n-1位,如果num是一位数则返回0,要求输入输出均在主函数中完成。
样例输入:9样例输出:0样例输入:6734样例输出:734样例输入:1000样例输出:0样例输入:10101样例输出:101#include<iostream.h> #include<math.h>int jw(int x){int a,n,m;if(x<10)a=0; else{n=int(log10(x))+1;m=x%int(pow(10,n-1));a=m;}return a;}int main(){int x,c;cin>>x;c=jw(x);cout<<c<<endl;return 0;}第10题:编写函数,函数功能是:判断输入的字符是否为数字字符。
如果是,则输出YES,否则输出NO,要求输入输出均在主函数中完成。
样例输入:5样例输出:YES样例输入:B样例输出:NO#include<iostream> using namespace std; int pdsz(char n) {int flag;if(n>='0'&&n<='9') flag=1; elseflag=0;return flag;}int main(){char n;n=getchar();if(pdsz(n)==1)cout<<"yes";elsecout<<"no";return 0;}第11题:编写函数,函数功能是:将两个两位数的正整数a、b合并成一个整数c,合并规则是将a的十位和个位分别放在c的千位和个位,将b的十位和个位分别放在c的百位和十位。
a、b由键盘输入,输入输出均在主函数中完成。
样例输入:45 12样例输出:4125#include<iostream.h>#include<math.h>int hb(int a,int b){int q,g,m,c;q=a/10;g=a%10;m=b*10;c=q*1000+m+g;return c;}int main(){int a,b,c;cin>>a>>b;c=hb(a,b);cout<<c<<endl;return 0;}第12题:求数列的前n项和要求使用函数,函数功能是:计算数列的每一项,n由键盘输入。
累加过程和输入输出均在主函数中完成。
样例输入:10样例输出:0.382179#include<iostream.h>#include<math.h>double dx(double n){double a,b,c;a=pow(-1,n+1);b=n*(n+1);c=a/b;return c;}int main(){double n,s=0,i,a;cin>>n;for(i=1;i<=n;i++){a=dx(i);s+=a;}cout<<s<<endl;return 0;}第13题:求数列的前n项和要求使用函数,函数功能是:计算数列的每一项,n由键盘输入。
累加过程和输入输出均在主函数中完成。
样例输入:3样例输出:123#include<iostream.h>#include<math.h>int an(int n){int s=0,m,a,i;for(i=1;i<=n;i++){m=int(pow(10,i-1));a=m;s+=a;}return s;}int main(){int n,i,a,sum=0;cin>>n;for(i=1;i<=n;i++){a=an(i);sum+=a;}cout<<sum<<endl;return 0;}第14题:求满足的n的最大值,要求使用函数,函数功能是:计算n的立方,k由键盘输入。
累加过程和输入输出均在主函数中完成。
样例输入:10000样例输出:13#include<iostream.h> #include<math.h>int lf(int x){int a;a=x*x*x; return a;}int main(){int k,s=0,i,n=0,a;cin>>k;for(i=1;s<k;i++){a=lf(i);s+=a;}n=i-2;cout<<n<<endl;return 0;}第15题:求数列直到相邻两项之差的绝对值小于1E-6为止。