C语言操作题常考编程题库.docx_第1页
C语言操作题常考编程题库.docx_第2页
C语言操作题常考编程题库.docx_第3页
C语言操作题常考编程题库.docx_第4页
C语言操作题常考编程题库.docx_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言编程题覆盖到的算法:1、个人所得税计算;2、求一组数的正、负数(或奇、偶数)的个数和平均值;3、二维数组主、次对角线之和;4、求素数(用函数实现);5、级数有限项求和问题;6、两个一维数组相加(用函数实现);7、求最大、最小值;8、判断闰年(用函数实现);9、求水仙花数;10、百钱百鸡;11、求最大公约数、最小公倍数。12、求回文数;13、排序;14、二维数组的转置;15、递归函数求阶乘;16、求斐波那契数列;17、求和:a+aa+aaa+aaaa+.;18、求符合条件的整数(如:是某个二位数的平方,个位、十位、百位数各不相同等);(包括素数,回文,完数,等等)19、字符串加密;20、统计字符串中字母和数字的个数;/*1.个人所得税计算,以实验指导P24T5为标准*/#includevoid main()int i,n;double a,b,c;n=i/400;printf(please input income:n);scanf(%d,&i);a=(i-800)*0.05,b=20+(i-1200)*0.08,c=84+(i-2000)*0.2;switch(n)case 0:case 1:printf(不需缴税n);break;case 2:printf(需交纳%lf元n,a);break;case 3:case 4:printf(需交纳%lf元n,b);break;default:printf(需交纳%lf元n,c);break;/*2. 求一组数的奇数个数,偶数个数和平均值#include#define N 10void main()int aN;int i,m=0,n=0,sum=0;double average;printf(please input 10 numbers:n);for(i=0;iN;i+)scanf(%d,&ai);if(ai%2=0)m+;elsen+;sum+=ai;average=(double)sum/N;printf(we have %d odds and %d evensn,n,m);printf(average=%lfn,average);*/*2.求一组数的正数个数和负数个数与平均值*/#include#define N 10void main()int aN;int i,m=0,n=0,sum=0;double average;printf(please input 10 numbers:n);for(i=0;i0)m+;elsen+;sum+=ai;average=(double)sum/N;printf(we have %d positive numbers and %d nagetive numbersn,m,n);printf(the average =%lf,average);/*3.求二维数组的主次对角线之和*/#include#define M 5 #define N 5void main()int aMN;int i,j,sum1=0,sum2=0;printf(please input the matrix:n);for(i=0;iM;i+)for(j=0;jN;j+)scanf(%d,&aij);for(i=0,j=0;iM;i+,j+)sum1+=aij;for(i=0,j=N-1;iM;i+,j-)sum2+=aij;printf(主对角线和为%dn,sum1);printf(次对角线和为%dn,sum2);/*4.调用函数判断素数*/#include#includeint isPrime(int n)int i;for(i=1;isqrt(n);i+)if(n%i=0)return 0;return 1;void main()int n,i;printf(please input a numbern);scanf(%d,&n);i=isPrime(n);if(i)printf(%d is a primen,n);elseprintf(%d is not a primen,n);/5.级数有限项求和(以格里高利公式求为例)/#include#includevoid main()int n=1;double p=0,t,pi;t=1/(pow(-1),(n+1)*2*(n-1);while(fabs(t)=1e-6)pi+=t;n+;pi=4*p;printf(%lf,pi);/6.两个一维数组相加/*#include#define N 5void main()int aN,bN,cN;int i;printf(please input the first array aN:n);for(i=0;iN;i+)scanf(%d,&ai);printf(please input the second array bN:n);for(i=0;iN;i+)scanf(%d,&bi);for(i=0;iN;i+)ci=ai+bi;printf(the sum is:n);for(i=0;iN;i+)printf(%dt,ci);*/6.1调用函数实现/#include#define N 5int f(int a,int b)int sum;sum=a+b;return sum;void main()int aN,bN,cN;int i;printf(please input the first array aN:n);for(i=0;iN;i+)scanf(%d,&ai);printf(please input the second array bN:n);for(i=0;iN;i+)scanf(%d,&bi);for(i=0;iN;i+)ci=f(ai,bi);printf(the sum is:n);for(i=0;iN;i+)printf(%dt,ci);/*7.求一组数的最大最小值*/*#includevoid main()int i,max,min;int a10;printf(please input ten numbersn);for(i=0;i10;i+)scanf(%d,&ai);max=a0;min=a0;for(i=1;imax)max=ai;if(aimin)min=ai;printf(max is %d,min is %dn,max,min);*/*随机数*/#include#includevoid main()int i,max,min;int a10;for (i=0;i10;i+)ai=rand()%90+10;printf(%dt,ai);max=a0;min=a0;for(i=1;imax)max=ai;if(aimin)min=ai;printf(max=%dtmin=%dn,max,min);/*8.判断闰年*/#includeint f(int n)if(n%4=0&n%100!=0|n%400=0)return 1;elsereturn 0;void main()int n;printf(please input year:n);scanf(%d,&n);if(f(n)printf(%d是闰年n,n);elseprintf(%d不是闰年n,n);/*可能会有要输出某一范围内所有闰年,思想一样,用循环调用函数即可*/*9.判断水仙花数(运用循环)#includevoid main()int n,a,b,c,m;printf(please input a number:n);scanf(%d,&n);a=n/100;b=n/10%10;c=n%10;m=a*a*a+b*b*b+c*c*c;if(m=n)printf(%d is the number we wantn,n);elseprintf(%d is not the numbern,n);*/*9.输出所有水仙花数(调用函数(书P108为循环做法))*/#includeint f(int n)int a,b,c,m;a=n/100;b=n/10%10;c=n%10;m=a*a*a+b*b*b+c*c*c;if(m=n)return 1;elsereturn 0;void main()int i,t;for(i=100;i1000;i+)t=f(i);if(t=1)printf(%dt,i);/10.百钱买百鸡(题目见书P115)/#includevoid main()int i,j,k;for(i=0;i=20;i+)for(j=0;j=33;j+)for(k=3;k=99;k+=3)if(i+j+k=100)&(5*i+3*j+k/3=100)printf(公鸡%d只,母鸡%d只,小鸡%d只n,i,j,k);/*11.求最大公约数和最小公倍数,函数实现*/#includeint f(int m,int n)int i=1,t;if(mn)t=m;m=n;n=t;while(i=m%n)!=0)m=n;n=i;return n;int g(int m,int n)int i,j;i=f(m,n);j=m*n/i;return j;void main()int m,n,a,b;printf(please input two numbers:n);scanf(%d %d,&m,&n);a=f(m,n);b=g(m,n);printf(最大公约数为%dn,a);printf(最小公倍数为%dn,b);/12.1输出10-2000之间的回文数(循环)/*#includevoid main()int i,j,k=0,a;printf(10-2000之间的回文数有:n);for(i=10;i0)j=j*10+a%10;a/=10;if(i=j)printf(%dt,i);k+;if(k%5=0)printf(n);printf(n);*/12.2输出10-2000之间的回文数(函数调用)/*#includeint f(int n)int i=0;while(n0)i=i*10+n%10;n/=10;return i;void main()int n,k;printf(10-2000之间的回文数有:n);for(n=10;n=2000;n+)if(n=f(n)printf(%dt,n);k+;if(k%5=0)printf(n);printf(n);*/12.3判断回文数(循环)/*#includevoid main()int i,a,j=0;printf(please input a number:n);scanf(%d,&i);a=i;while(a0)j=j*10+a%10;a/=10;if(j=i)printf(%d是回文数n,i);elseprintf(%d不是回文数n,i);*/12.4判断回文数(函数调用)/#includeint f(int n)int i=0;while(n0)i=i*10+n%10;n/=10;return i;void main()int n;printf(please inpit a number:n);scanf(%d,&n);if(n=f(n)printf(%d是回文数n,n);elseprintf(%d不是回文数n,n);/13.排序/选择法/*#include#define N 10void f(int a,int n)int i,j,k,t;for(i=0;i=n;i+)k=i;for(j=i+1;jn;j+)if(ajak)k=j;if(k!=i)t=ak;ak=ai;ai=t;void main()int aN=8,2,34,5,12,78,4,78,76,9;int i=0;int size=sizeof(a)/sizeof(int);for(i=0;iN;i+)printf(%4d,ai);printf(n);f(a,size);for(i=0;iN;i+)printf(%4d,ai);printf (n);/冒泡法/#include#define N 5void f(int a,int n)int i,j;int t;for(i=0;in-1;i+)for(j=0;jaj+1)t=aj;aj=aj+1;aj+1=t;*/插入法/#include#define N 5void f(int a,int n)int i,j;int t;for(i=0;i0&aj-1t)aj=aj-1;-j;aj=t;void main()int aN=8,2,34,5,12;int i=0;int size=sizeof(a)/sizeof(int);for(i=0;iN;i+)printf(%4d,ai);printf(n);f(a,size);for(i=0;iN;i+)printf(%4d,ai);printf (n);/二维数组的转置/#include#define N 3#define M 3void main()int aMN,bMN;int i,j;printf(please input aMNn);for(i=0;iM;i+)for(j=0;jN;j+)scanf(%d,&aij);for(i=0;iM;i+)for(j=0;jN;j+)bij=aji;printf(bMN=n);for(i=0;iM;i+)for(j=0;jN;j+)printf(%4d,bij);printf(n);printf(n);/15.调用递归函数求阶乘/#includeint f(int n)if(n=1|n=0)return 1;elsereturn f(n-1)*n;void main()int n,m;printf(please input a number:n);scanf(%d,&n);m=f(n);printf(%d!=%dn,n,m);/*16.运用递归函数求斐波拉契数列(前30项)*/#includeint f(int n)if (n=1|n=2)return 1;elsereturn f(n-1)+f(n-2);void main()int i,k=0;for (i=1;i=30;i+)printf(%dt,f(i);k+;if(k%5=0)printf(n);printf(n);/17.求a+aa+aaa+aaaa./*#include#include#define N 5void main()int n,i,j,k,a,sum1=0;printf(please input a number:n);scanf(%d,&n);for(i=1;i=N;i+)k=fabs(10,i-1);j=n+n*(i-1)*k;sum1+=j;printf(sum=%dn,sum1);*/#include#define N 5int k(int a,int sum)sum=sum*10+a;retu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论