C语言操作题常考编程题库.docx
- 文档编号:3592302
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:26
- 大小:25KB
C语言操作题常考编程题库.docx
《C语言操作题常考编程题库.docx》由会员分享,可在线阅读,更多相关《C语言操作题常考编程题库.docx(26页珍藏版)》请在冰豆网上搜索。
C语言操作题常考编程题库
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为标准*/
#include<stdio.h>
voidmain()
{
ﻩinti,n;
ﻩdoublea,b,c;
n=i/400;
printf("pleaseinputincome:
\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;
ﻩcase2:
printf("需交纳%lf元\n",a);break;
case 3:
ﻩcase4:
printf("需交纳%lf元\n",b);break;
ﻩdefault:
printf("需交纳%lf元\n",c);break;
ﻩ}
}
ﻩﻩ
/*2. 求一组数的奇数个数,偶数个数和平均值
#include<stdio.h>
#defineN10
void main()
{
ﻩinta[N];
int i,m=0,n=0,sum=0;
double average;
printf("please input 10 numbers:
\n");
ﻩfor(i=0;i { ﻩﻩscanf("%d",&a[i]); ﻩﻩif(a[i]%2==0) m++; ﻩelse ﻩn++; sum+=a[i]; } ﻩaverage=(double)sum/N; printf("wehave %doddsand%d evens\n",n,m); ﻩprintf("average=%lf\n",average); }*/ /*2'.求一组数的正数个数和负数个数与平均值*/ #include #defineN10 voidmain() { int a[N]; int i,m=0,n=0,sum=0; ﻩdouble average; printf("pleaseinput10numbers: \n"); ﻩfor(i=0;i { ﻩscanf("%d",&a[i]); if(a[i]>0) m++; ﻩﻩelse ﻩﻩﻩn++; ﻩﻩsum+=a[i]; ﻩ} average=(double)sum/N; ﻩprintf("we have%dpositivenumbersand%dnagetivenumbers\n",m,n); ﻩprintf("theaverage=%lf",average); } /*3.求二维数组的主次对角线之和*/ #include<stdio.h> #define M5 #define N5 void main() { inta[M][N]; ﻩinti,j,sum1=0,sum2=0; printf("please inputthe matrix: \n"); for(i=0;i<M;i++) { ﻩfor(j=0;j<N;j++) { ﻩﻩscanf("%d",&a[i][j]); ﻩ} } ﻩ for(i=0,j=0;i { ﻩsum1+=a[i][j]; ﻩ} for(i=0,j=N-1;i ﻩ{ ﻩﻩsum2+=a[i][j]; } ﻩprintf("主对角线和为%d\n",sum1); ﻩprintf("次对角线和为%d\n",sum2); } /*4.调用函数判断素数*/ #include<stdio.h> #include int isPrime(intn) { inti; ﻩfor(i=1;i { if(n%i==0) return0; ﻩ} return 1; } voidmain() { intn,i; printf("pleaseinputanumber\n"); scanf("%d",&n); i=isPrime(n); ﻩif(i) ﻩprintf("%disaprime\n",n); else ﻩﻩprintf("%disnot aprime\n",n); } //5.级数有限项求和(以格里高利公式求π为例)// #include<stdio.h> #include<math.h> voidmain() { ﻩint n=1; ﻩdoublep=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<stdio.h> #defineN5 voidmain() { inta[N],b[N],c[N]; inti; ﻩprintf("please input thefirstarraya[N]: \n"); ﻩfor(i=0;i ﻩ{ ﻩﻩscanf("%d",&a[i]); ﻩ} ﻩprintf("please inputthesecond array b[N]: \n"); ﻩfor(i=0;i<N;i++) { ﻩscanf("%d",&b[i]); ﻩ} ﻩfor(i=0;i<N;i++) ﻩ{ ﻩc[i]=a[i]+b[i]; } ﻩprintf("thesumis: \n"); for(i=0;i printf("%d\t",c[i]); }*/ //6.1调用函数实现// #include #defineN5 int f(int a,intb) { intsum; sum=a+b; ﻩreturnsum; } voidmain() { inta[N],b[N],c[N]; inti; ﻩprintf("pleaseinputthefirstarraya[N]: \n"); ﻩfor(i=0;i<N;i++) { ﻩscanf("%d",&a[i]); ﻩ} printf("pleaseinputthe secondarrayb[N]: \n"); ﻩfor(i=0;i<N;i++) ﻩ{ ﻩscanf("%d",&b[i]); ﻩ} for(i=0;i { ﻩc[i]=f(a[i],b[i]); } ﻩprintf("thesumis: \n"); ﻩfor(i=0;i ﻩprintf("%d\t",c[i]); } /*7.求一组数的最大最小值*/ /*#include voidmain() { ﻩinti,max,min; inta[10]; ﻩprintf("pleaseinput tennumbers\n"); ﻩfor(i=0;i<10;i++) ﻩ{ ﻩscanf("%d",&a[i]); ﻩ} max=a[0]; ﻩmin=a[0]; ﻩfor(i=1;i<10;i++) { ﻩif(a[i]>max) ﻩ{ ﻩﻩmax=a[i]; ﻩ} ﻩif(a[i]<min) ﻩ{ ﻩﻩmin=a[i]; ﻩﻩ} } printf("max is%d,minis%d\n",max,min); } */ /*随机数*/ #include<stdio.h> #include voidmain() { ﻩint i,max,min; ﻩinta[10]; ﻩfor (i=0;i<10;i++) { a[i]=rand()%90+10; ﻩﻩprintf("%d\t",a[i]); } max=a[0]; ﻩmin=a[0]; for(i=1;i<10;i++) { ﻩﻩif(a[i]>max) ﻩﻩmax=a[i]; ﻩif(a[i] min=a[i]; } ﻩprintf("max=%d\tmin=%d\n",max,min); } /*8.判断闰年*/ #include intf(intn) { ﻩif(n%4==0&&n%100! =0||n%400==0) ﻩreturn 1; ﻩelse ﻩﻩreturn0; } voidmain() { ﻩintn; ﻩprintf("pleaseinputyear: \n"); ﻩscanf("%d",&n); if(f(n)) ﻩprintf("%d是闰年\n",n); else ﻩprintf("%d不是闰年\n",n); } /*可能会有要输出某一范围内所有闰年,思想一样,用循环调用函数即可*/ /*9.判断水仙花数(运用循环) #include<stdio.h> void main() { intn,a,b,c,m; printf("pleaseinput anumber: \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("%dis the numberwewant\n",n); else ﻩﻩprintf("%dis notthe number\n",n); }*/ /*9'.输出所有水仙花数(调用函数(书P108为循环做法))*/ #include int 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) ﻩﻩreturn1; ﻩelse ﻩﻩreturn 0; } void main() { ﻩinti,t; ﻩfor(i=100;i<1000;i++) ﻩ{ ﻩt=f(i); ﻩif(t==1) ﻩﻩﻩprintf("%d\t",i); } } //10.百钱买百鸡(题目见书P115)// #include voidmain() { inti,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.求最大公约数和最小公倍数,函数实现*/ #include<stdio.h> intf(intm,intn) { ﻩinti=1,t; ﻩif(m ﻩ{ t=m; m=n; n=t; ﻩ} while((i=m%n)! =0) { ﻩﻩm=n; ﻩﻩn=i; ﻩ } returnn; } intg(intm,intn) { int i,j; ﻩi=f(m,n); ﻩj=m*n/i; ﻩreturnj; } voidmain() { ﻩintm,n,a,b; printf("pleaseinputtwo numbers: \n"); scanf("%d%d",&m,&n); ﻩa=f(m,n); b=g(m,n); ﻩprintf("最大公约数为%d\n",a); printf("最小公倍数为%d\n",b); } //12.1输出10-2000之间的回文数(循环)// /*#include voidmain() { inti,j,k=0,a; printf("10-2000之间的回文数有: \n"); for(i=10;i<=2000;i++) { ﻩa=i; ﻩﻩj=0; ﻩwhile(a>0) ﻩ{ ﻩﻩﻩj=j*10+a%10; ﻩﻩa/=10; } ﻩﻩif(i==j) ﻩ{ ﻩﻩﻩprintf("%d\t",i); ﻩk++; ﻩﻩif(k%5==0) ﻩprintf("\n"); ﻩ} } ﻩprintf("\n"); }*/ //12.2输出10-2000之间的回文数(函数调用)// /*#include<stdio.h> int f(intn) { inti=0; ﻩwhile(n>0) ﻩ{ 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("%d\t",n); ﻩk++; if(k%5==0) ﻩﻩﻩprintf("\n"); ﻩ} } printf("\n"); }*/ //12.3判断回文数(循环)// /*#include<stdio.h> void main() { int i,a,j=0; ﻩprintf("pleaseinput anumber: \n"); ﻩscanf("%d",&i); a=i; while(a>0) { j=j*10+a%10; ﻩﻩa/=10; ﻩ} ﻩif(j==i) ﻩprintf("%d是回文数\n",i); else ﻩﻩprintf("%d不是回文数\n",i); }*/ //12.4判断回文数(函数调用)// #include int f(intn) { ﻩinti=0; ﻩwhile(n>0) ﻩ{ ﻩi=i*10+n%10; n/=10; } returni; } voidmain() { ﻩintn; printf("pleaseinpitanumber: \n"); ﻩscanf("%d",&n); ﻩif(n==f(n)) ﻩprintf("%d是回文数\n",n); ﻩelse ﻩprintf("%d不是回文数\n",n); } //13.排序// //选择法// /*#include<stdio.h> #defineN10 voidf(int a[],intn) { inti,j,k,t; for(i=0;i<=n;i++) { k=i; ﻩﻩfor(j=i+1;j ﻩﻩ{ ﻩif(a[j]<a[k]) ﻩﻩﻩk=j; ﻩ} ﻩﻩif(k! =i) ﻩ{ t=a[k]; ﻩﻩa[k]=a[i]; ﻩﻩa[i]=t; ﻩ} ﻩ} } voidmain() { inta[N]={8,2,34,5,12,78,4,78,76,9}; ﻩinti=0; ﻩintsize=sizeof(a)/sizeof(int); ﻩfor(i=0;i { printf("%4d",a[i]); } printf("\n"); ﻩf(a,size); ﻩfor(i=0;i<N;i++) ﻩ{ ﻩﻩprintf("%4d",a[i]); } printf ("\n"); } //冒泡法// #include<stdio.h> #defineN5 voidf(inta[],intn) { int i,j; ﻩintt; ﻩfor(i=0;i<n-1;i++) { for(j=0;j<n-1-i;j++) { if(a[j]>a[j+1]) ﻩﻩﻩ{ﻩ ﻩﻩt=a[j]; ﻩﻩa[j]=a[j+1]; ﻩﻩﻩﻩa[j+1]=t; ﻩ} ﻩ} ﻩ} }*/ //插入法// #include<stdio.h> #defineN5 voidf(inta[],int n) { inti,j; ﻩintt; for(i=0;i<n;i++) { t=a[i]; ﻩj=i; ﻩﻩwhile(j>0&&a[j-1]>t) ﻩ{ ﻩﻩﻩa[j]=a[j-1]; ﻩ--j; ﻩ} a[j]=t; } } void main() { ﻩinta[N]={8,2,34,5,12}; ﻩint i=0; ﻩintsize=sizeof(a)/sizeof(int); ﻩfor(i=0;i<N;i++) { printf("%4d",a[i]); ﻩ} ﻩprintf("\n"); ﻩf(a,size); for(i=0;i ﻩ{ ﻩﻩprintf("%4d",a[i]); ﻩ} ﻩprintf ("\n"); } //二维数组的转置// #include<stdio.h> #defineN3 #define M 3 voidmain() { inta[M][N],b[M][N]; ﻩinti,j; ﻩprintf("pleaseinputa[M][N]\n"); for(i=0;i ﻩ{ ﻩfor(j=0;j<N;j++) ﻩ{ ﻩﻩscanf("%d",&a[i][j]); ﻩ} ﻩ} ﻩfor(i=0;i { ﻩfor(j=0;j<N;j++) ﻩﻩ{ ﻩﻩb[i][j]=a[j][i]; ﻩﻩ} ﻩ} ﻩprintf("b[M][N]=\n"); ﻩfor(i=0;i { ﻩfor(j=0;j ﻩﻩ{ ﻩﻩprintf("%4d",b[i][j]); ﻩﻩ ﻩ}printf("\n"); ﻩ} ﻩprintf("\n"); } //15.调用递归函数求阶乘// #include<stdio.h> intf(intn) { if(n==1||n==0) ﻩreturn1; ﻩelse ﻩreturnf(n-1)*n; } voidmain() { intn,m; printf("pleaseinput a number: \n"); scanf("%d",&n); ﻩm=f(n); ﻩprintf("%d! =%d\n",n,m); } /*16.运用递归函数求斐波拉契数列(前30项)*/ #include intf(intn) { if(n==1||n==2) ﻩreturn1; else ﻩﻩreturnf(n-1)+f(n-2); } voidmain() { ﻩint i,k=0; for(i=1;i<=30;i++) { ﻩprintf("%d\t",f(i)); k++; ﻩif(k%5==0) ﻩﻩprintf("\n"); } ﻩprintf("\n"); } //17.求a+aa+aaa+aaaa...// /*#include<stdio.h> #include #define N5 voidmain() { intn,i,j,k,a,sum1=0; ﻩprintf("pleaseinputanumber: \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=%d\n",sum1); }*/ #include #defineN5 intk(inta,int sum) { ﻩsum=sum*10+a; ﻩreturnsum; } voidmain() { inta,i=0,j,sum=0; ﻩprintf("pleaseinputa number: \n"); scanf("%d",&a); sum=k(a,k(a,sum)); printf("sum=%d\n",sum); } //18.求符合条件的整数(如是某个二位数的平方,个位、十位、百位数各不相同等)// #include<stdio.h> voidmain() { ﻩinta,b,c,n,m; for(m=10;m<100;m++) { ﻩn=m*m; ﻩa=n%10; ﻩb=n/10%10; ﻩﻩc=n/100; ﻩﻩif(a! =b&&b! =c&&c! =a) ﻩﻩprintf("%d\t",m); ﻩ} printf("\n"); } //19.字符串加密// #include #include<string.h> #defineN80 voidmain() { charstr[N]; ﻩchar*p; ﻩprintf("pleaseinput thecode: \n");
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 操作 题常考 编程 题库
![提示](https://static.bdocx.com/images/bang_tan.gif)