50道C编程练习题及解答
- 格式:doc
- 大小:45.00 KB
- 文档页数:8
《C语言程序设计》练习题及答案1. 单选题1. 设有定义:int n=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是A. p=1;B. *q=2;C. q=p;D. *p=5;正确答案:D2. 设有int x=11;则表达式(x++*1/3)的值是A. 3B. 4C. 11D. 12正确答案:A3. 下面程序的输出结果是main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; printf("%d\n",*(p+2));}A. 3B. 4C. 1D. 2正确答案:A4. sizeof(float)是A. 一个双精度型表达式B. 一个整型表达式C. 一种函数调用D. 一个不合法的表达式正确答案:B5. 在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是A. a=20000+20000;B. a=4000*10;C. a=30000+10000;D. a=4000L*10L正确答案:D6. 请选出以下语句的输出结果printf("%d\n",strlen("\t\"\065\xff\n"));A. 5B. 14C. 8D. 输出项不合法,无正常输出正确答案:A7. 若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为A. 4B. 16C. 32D. 52正确答案:C8. 下面能正确进行字符串赋值操作的是A. char s[5]={"ABCDE"};B. char s[5]={ ′A′, ′B′, ′C′, ′D′, ′E′};C. char *s;s="ABCDE";D. char *s;char a; scanf("%s",&s);正确答案:C9.以下程序的输出结果是#include "stdio.h"void reverse(int a[],int n){int i,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}main(){int b[10]={1,2,3,4,5,6,7,8,9,10};int i,s=0;reverse(b,8);for(i=6;i<10;i++) s+=b[i];printf("%d\n",s);}A. 22B. 10C. 34D. 30正确答案:A10. 以下不正确的叙述是A. 在C程序中,逗号运算符的优先级最低B. 在C程序中,APH和aph是两个不同的变量C. 若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D. 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值正确答案:D2. 多选题11. 以下______是正确的转义字符。
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` 库中的`cout` 输出提示信息,让用户输入两个整数。
然后通过`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 为止。
计算机程序设计基础(C语言)编程练习题及参考答案1.输入2个整数,求两数的平方和并输出。
#include <stdio.h>main(){ intt a ,b,s;printf("please input a,b:\n");scanf("%d%d”,&a,&b);s=a*a+b*b;printf("the result is %d\n",s);}2. 输入一个圆半径(r)当r>=0时,计算并输出圆的面积和周长,否则,输出提示信息。
#include <stdio.h>#define PI 3.14 <stdio.h>main(){ float r ,s , l;printf("please input r:\n");scanf("%f”,&r);if (r>=0){s=pi*r*r;l=2*i*r ;printf("the area is %f\n",s);printf("the circumference is %f\n",l);}elseprintf("input error!\n");}3、函数y=f(x)可表示为:2x+1 (x<0)y= 0 (x=0)2x-1 (x>0)编程实现输入一个x值,输出y值。
main(){int x,y;scanf(“%d”,&x);If(x<0)y=2*x+1;If(x>0)y=2*x-1;If(x==0) y=0;prin tf(“%d”,y);}4、编写一个程序,从4个整数中找出最小的数,并显示此数。
main( ){int a,b,c,d,t;scanf (“%d,%d,%d,%d ”,&a,&b,&c,&d);if (a>b){t=a; a=b; b=t;}if (a>c){t=a; a=c; c=t;}if (a>d){t=a; a=d; d=t;}pri ntf (“m in = %d \n”,a);}5.有一函数当x<0时y=1,当x>0时,y=3,当x=0时y=5,编程,从键盘输入一个x值,输出y值。
)(*)(*)(*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!的值并输出。
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语言经典程序100题(答案版)【程序1】题目:企业发放的奖金根据利润提成。
利润(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.程序源代码:1.#include"stdio.h"2.#include"conio.h"3.main()4.{5.long int i;6.int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;7.scanf("%ld",&i);8.bonus1100000*0.1;9.bonus2bonus1+100000*0.75;10.bonus4bonus2+200000*0.5;11.bonus6bonus4+200000*0.3;12.bonus10bonus6+400000*0.15;13.if(i<100000)14.bonus i*0.1;15.else if(i<200000)16.bonus bonus1+(i-100000)*0.075;17.else if(i<400000)18.bonus bonus2+(i-200000)*0.05;19.else if(i<600000)20.bonus bonus4+(i-400000)*0.03;21.else if(i<1000000)22.bonus bonus6+(i-600000)*0.015;23.else24.bonus bonus10+(i-1000000)*0.01;25.printf("bonus%d",bonus);26.getch();27.}【程序2】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
50道C++编程练习题及解答-c编程例题C++作为一种广泛应用的编程语言,通过不断的练习可以帮助我们更好地掌握其语法和编程思维。
以下是为您精心准备的 50 道 C++编程练习题及详细解答,希望能对您的学习有所帮助。
练习题 1:计算两个整数之和题目描述:编写一个 C++程序,输入两个整数,计算并输出它们的和。
```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;}```练习题 2:判断一个数是否为偶数题目描述:编写一个 C++程序,输入一个整数,判断它是否为偶数。
```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;}```练习题 3:找出三个数中的最大值题目描述:编写一个 C++程序,输入三个整数,找出并输出其中的最大值。
```cppinclude <iostream>using namespace std;int main(){int num1, num2, num3, max;cout <<"请输入第一个整数:";cin >> num1;cout <<"请输入第二个整数:";cin >> num2;cout <<"请输入第三个整数:";cin >> num3;max = num1;if (num2 > max) {max = num2;}if (num3 > max) {max = num3;}cout <<"三个数中的最大值为:"<< max << endl;return 0;}```练习题 4:计算阶乘题目描述:编写一个 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个值是否可以表示一个三角形的三条边。
50道C和和编程练习题及解50道C语言编程练习题及解在学习和掌握C语言编程过程中,通过练习题可以提高自己对语法规则和编程思维的理解。
下面是50道C语言编程练习题及解,希望能对大家的学习有所帮助。
1. 编写一个程序,输出"Hello, World!"。
```c#include <stdio.h>int main() {printf("Hello, World!");return 0;}```2. 编写一个程序,计算并输出1到100之间所有数字的和。
```c#include <stdio.h>int main() {int sum = 0;for(int i = 1; i <= 100; i++) {sum += i;}printf("Sum: %d", sum);return 0;}```3. 编写一个程序,判断一个数字是否为奇数。
```c#include <stdio.h>int main() {int num;printf("Enter a number: ");scanf("%d", &num);if(num % 2 == 0) {printf("Even number");} else {printf("Odd number");}return 0;}```4. 编写一个程序,找出数组中的最大值。
```c#include <stdio.h>int findMax(int arr[], int size) {int max = arr[0];for(int i = 1; i < size; i++) {if(arr[i] > max) {max = arr[i];}}return max;}int main() {int arr[] = {23, 45, 12, 67, 89};int size = sizeof(arr) / sizeof(arr[0]);int maxValue = findMax(arr, size);printf("Max value: %d", maxValue);return 0;}```5. 编写一个程序,判断一个字符串是否为回文串。
1.**打印Hello World**练习:编写一个C程序,打印"Hello,World!"到屏幕上。
#include<stdio.h>int main(){printf("Hello,World!\n");return0;}2.**计算两个整数的和**练习:编写一个程序,接受两个整数,然后计算它们的和并打印结果。
#include<stdio.h>int main(){int a=5,b=7;int sum=a+b;printf("Sum:%d\n",sum);return0;}3.**判断奇数或偶数**练习:编写一个程序,接受一个整数,然后判断它是否为奇数或偶数。
#include<stdio.h>int main(){int num=10;if(num%2==0){printf("%d is even.\n",num);}else{printf("%d is odd.\n",num);}return0;}4.**计算阶乘**练习:编写一个程序,计算给定整数的阶乘。
#include<stdio.h>int main(){int n=5;int factorial=1;for(int i=1;i<=n;i++){factorial*=i;}printf("Factorial of%d is%d\n",n,factorial);return0;}5.**反转字符串**练习:编写一个程序,接受一个字符串,然后反转它并打印出来。
#include<stdio.h>#include<string.h>int main(){char str[]="Hello,World!";int len=strlen(str);for(int i=len-1;i>=0;i--){printf("%c",str[i]);}printf("\n");return0;}6.**检查素数**练习:编写一个程序,判断一个整数是否为素数。
C 语言练习题(所提供的源程序均采用自定义函数方式解决,如不采用函数方式,也可直接在main 函数中借鉴该思想编程,因时间有限,所有程序未能一一验证,仅供参考使用) 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中。
1、输入1~10之间的一个数字,输出它对应的英文单词。
#include"stdio.h"main(){int x;printf("please input x(1-10):\n");scanf("%d",&x);switch(x){case 1:printf("one");break;case 2:printf("two");break;case 3:printf("three");break;case 4:printf("four");break;case 5:printf("five");break;case 6:printf("six");break;case 7:printf("server");break;case 8:printf("eight");break;case 9:printf("nine");break;case 10:printf("ten");break;}}2、用自然语言描述程序逻辑如下,试写程序。
①设置环境;②定义变量i、j、s,以及用于放置结果的变量sum,并令sum初值为0;③i=1;④如果i≤100,则转⑤,否则转⑧;⑤令s=0,求前i个自然数之和,并放于变量s之中;⑥sum=sum+s;⑦i增加1,转④;⑧输出和sum,结束。
#include"stdio.h"main(){int i,j,s;long sum=0;for(i=1;i<=100;i++){s=0;for(j=1;j<=i;j++){s=s+j;}sum=sum+s;}printf("sum=%d",sum);}3、用自然语言描述的程序逻辑为:(假设正确口令为123456)①设置环境;②定义变量i、flag和password,并令flag=0,i=0;③用户回答口令,将其赋于password变量;④口令正确?如果是,则flag=1,转⑥。
完整版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是素数。
1.下列四组选项中,均不是C语言关健字的选项是( A )。
A) define B) gect C) include D) whileIF char scanf gotype printf case pow2.下面四个选项中,均是合法整型常量的选项是( A )。
A)160 B)-0xcdf C) -01 D)-0x48a-0xffff 01a 986,012 2e5011 0xe 0668 0x3.下面四个选项中,均是不合法的转义符的选项是( B )。
A) '\"' B) '\1011' C) '\011' D) '\abc''\\' '\' '\f' '\101''xf' '\A' '\}' 'x1f'4.下面不正确的字符串常量是( A )。
A)'abc' B)"12'12" C)"0" D)" "5.以下选项中不合法的用户标识符是( A )。
A)abc.c B)file C)Main D)PRINT6.C语言提供的合法关键字是( D )。
A) swithB) cherC) CaseD)default7.下列标识符组中,合法的用户标识符为 AA)_0123与ssipedB)del-word与signedC)list与*jerD) keep%与wind8.在C语言中,逻辑值"真"的表示是用( C )。
A) true B) 整型值0 C)非另整型值D) T9若有以下定义char s='\092';则该语句( b )A)使s的值包含一个字符B)定义不合法,s的值不确定C)使s的值包含4个字符D)使s的值包含3个字符10设C语言中,int类型数据占2个字节,则float类型数据占(D )个字节。
c语言程序设计编程题库及详解答案1. 编写一个C语言程序,实现两个整数的加法运算。
答案:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个整数的和是:%d\n", sum);return 0;}```2. 编写一个C语言程序,实现求一个数的阶乘。
答案:```c#include <stdio.h>int factorial(int n) {if (n == 0) return 1;return n * factorial(n - 1);}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);printf("%d 的阶乘是:%d\n", num, factorial(num)); return 0;}```3. 编写一个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 是素数。
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个值是否可以表示一个三角形的三条边。
int main(){double a,b,c;cin>>a>>b>>c;if(a+b>c && b+c>a && c+a>b)cout<<"可以构成三角形";elsecout<<"不可以构成三角形";}5、输入20个数,求其最大、最小和平均值int main(){int i;int a,max,min,s;cin>>a;max=min=a; s=a;for(i=1;i<20;i++){ cin>>a;if(a>max) max=a;if(a<min) min=a;s=s+a;}cout<<max<<","<<min<<","<<s/20.0<<endl; }6、输入若干个数,设输入的第一个数为后面要输入的数的个数,求平均值及最大值。
int main(){int a,m,s=0;cin>>n;cin>>a;m=a; s=a;for(int i=1; i<n; i++){ cin>>a;s +=a;if(a>m) m=a;}cout<<"平均值:"<<(double)s/n<<",最大值:"<<m<<endl;}7、输入若干个数,输入-999表示结束,求平均值及最大值。
#include<iostream>#include<iomanip>#include<cstdlib>using namespace std;int main(){ int n, count, sum, max;double ave;count = 0;cin >> n;sum = 0; max = n;while( n != -999 ){ sum = sum + n;if( n > max ) max = n;count++;cin >> n;}if( count != 0 ){ ave=static_cast<double>(sum) / count; cout<<setiosflags(ios::fixed)<<setprecision(2);cout<<"平均值为:"<<ave<<" 最大值为:"<<max<<endl;}}8、求和 s=1*1 + 2*2 + 3*3 +...+ 100*100int main(){ int i,t;double s=0;for(i=1; i<=100; i++){ t=i*i;s=s+t;}}9、印度国王的奖励,求和 s=20+ 21+ 22+...+ 263 int main(){ double t=1,s=0;for(int i=0; i<=63; i++){ s=s+t;t=2*t;}cout<<s/1.4e8<<endl;}10、求和 s=1! + 2! + 3! +...+ 10!int main(){ int i;long t,s;t=1; s=0;for(i=1; i<=10; i++){ t=t*i;s=s+t;}}11、求 e=1 + 1/1! + 1/2! + 1/3! + ...int main() { int i;double t,e;i=1; t=1; e=1;while(t>=1e-7){ t=t/i;e=e+t;i=i+1;}cout<<e;}12、求PI值,PI/4 = 1 - 1/3 + 1/5 - 1/7 + ... int main(){ int i,k;double pi,t;i=1; t=1; pi=0; k=1;while(fabs(t)>1e-8){ pi=pi+t;i=i+2;k=-k;t=double(k)/i;}cout<<4*pi;}13、求PI值,PI/2 = 1 + 1/3 + 1/3*2/5 + 1/3*2/5*3/7 + ...#include<iostream>#include<cstdlib>int main(){int i,j;double pi,t;i=0; j=1; t=1; pi=0;while(t>1e-18){ pi=pi+t;i=i+1;j=j+2;t=t*i/j;}cout<<setprecision(17)<<2*pi;}14、输入20个数,统计其中正数、负数和零的个数。
int main(){int a,n=0,m=0,s=0;for(int i=1; i<=20; i++){ cin >> a;if(a>0) n++;else if(a<0) m++;else s++;}cout<<n<<" "<<m<<" "<<s;}15、输入若干个整数,计算其中的奇数之和与偶数之和,假设输入0表示结束。
int main(){ int a,n=0,m=0;cin>>a;while(a!=0){ if(a%2 == 0) n += a;;else m += a;cin >> a;}cout<<n<<" "<<m;}16、写一函数,计算x的y次方(假设x、y都为正整数)。
int pow(int x, int y){ int s=1;for(int i=1; i<=y; i++)s = s * x;return s;}17、求水仙花数(一个三位数,其各位数字立方和等于该数字本身)int main(){ int i,a,b,c;for(i=100;i<=999;i++){ a=i/100;b=i/10%10;c=i%10;if(i==a*a*a+b*b*b+c*c*c)cout<<i<<endl;}}int main(){ int i,a,b,c;for(a=1;a<=9;a++)for(b=0;b<=9;b++)for(c=0;c<=9;c++){ i=a*100+b*10+c;if(i==a*a*a+b*b*b+c*c*c)cout<<i<<endl;}}18、编写一个函数,确定一个整数是否为完全数(一个数,等于他的因子之和)。
用这个函数确定和打印1到1000之间的所有完全数。
int perfect(int n){ int i,s=1;for(i=2;i<=n/2;i++)if(n%i==0) s=s+i;if(s==n) return 1;else return 0;}int main(){ int n;for(n=2;n<=1000;n++)if perfect(n)cout<<n<<endl;}19、写一函数,求斐波那契数列的第n项。
int fib(int n){int i,f1,f2,f;if(n==1||n==2) return 1;f1=1; f2=1;for(i=3; i<=n; i++){ f=f1+f2;f1=f2;f2=f;}return f;}20、写一个函数,取一个整数值并返回将此整数的各数字反序的数值int reverse(int n){ int s=0;while(n){ s = s * 10 + n % 10;n /= 10;};return s;}21、写一个函数,将一个整数的各位数字的反序打印void show(int n){ while(n){ cout << n % 10 << " ";n /= 10;};}void show(int n){ if(n < 10) cout << n;else{ cout << n % 10 << " ";show(n / 10);}}22、写一个函数,将一个整数的各位数字的按顺序打印出来void show(int n){int k = 1, m = n;while(m > 10){ k *= 10; m /= 10; }while(n){ cout << n / k << " ";n %= k;k /= 10;};}void show(int n){ int a[10], i=0;while(n){ a[i] = n % 10;n /= 10;i++;}for(int j=i-1; j>=0; j--)cout<<a[j]<<" ";}void show(int n){ if( n < 10 ) cout << n;else{ show( n / 10 );cout << " " << n % 10;}}23、求一个整数的各位数之和的函数int sum(int n){ int s = 0;while(n){ s += n % 10;n /= 10;};return s;}24、写一函数,判断某个数是否素数,以及求1-1000之内的素数#include<iostream>#include<cmath> #include<stdlib.h>using namespace std;bool isprime(int n){ float k=sqrt(float(n));for(int i=2; i<=k; i++)if(n%i==0) return false;return true;}int main(){ for(int n=2; n<=1000; n++)if(isprime(n)) cout<<setw(5)<<n;}25、用筛法求1-1000之内的素数#include<iostream>#include<cmath>#include<stdlib.h>#include<iomanip>using namespace std;int main(){int i,k,a[1001];for(i=2; i<=1000; i++) a[i]=1;float s=sqrt(float(1000));for(i=2; i<=s; i++)if(a[i]==1){ k=2*i;while(k<=1000){ a[k]=0;k=k+i;}}for(i=2; i<=1000; i++)if(a[i]==1) cout<<setw(5)<<i;}26、判断某一年是否闰年的函数bool IsLeapYear(int y){ return (y%4 == 0 && y%100 != 0)||(y%400 == 0);}27、写一个函数,交换两个整型变量的值void swap(int *p, int *q){ int t;t=*p; *p=*q; *q=t;}void swap(int &a, int &b){ int t;t=a; a=b; b=t;}28、求两个数的最大公约数,欧几里德算法(辗转相除法)int gcd(int m, int n){ int k;while(n!=0){ k=m%n; m=n; n=k; }return m;}int gcd(int m, int n){ int k;while((k=m%n)!=0){ m=n; n=k; }return n;}int gcd(int m, int n){ while(m!=n){ if(m>n) m=m-n;else n=n-m;}return m;}29、求两个数的最小公倍数int lcm(int m, int n){ int t,s;if(m<n) { t=m; m=n; n=t; }s=m;while(s%n != 0) s=s+m;}int lcm(int m, int n){return m*n/gcd(m,n);}30、百钱买百鸡问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一,百钱买百鸡,问鸡翁、母、雏各几何?int main(){int cock,hen,chick;for(cock=0; cock<=20; cock++)for(hen=0; hen<=33; hen++){ chick=100-cock-hen;if(5*cock+3*hen+chick/3.0==100)cout<<setw(4)<<cock<<setw(4)<<hen <<setw(4)<<chick<<endl;}}31、编一程序,输入一行字符串,统计其中的小写英文字母的个数。