收藏 分销(赏)

2022年C语言操作题常考编程题库.docx

上传人:天**** 文档编号:9823388 上传时间:2025-04-09 格式:DOCX 页数:41 大小:17.33KB 下载积分:12 金币
下载 相关 举报
2022年C语言操作题常考编程题库.docx_第1页
第1页 / 共41页
2022年C语言操作题常考编程题库.docx_第2页
第2页 / 共41页


点击查看更多>>
资源描述
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> void 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-)*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<stdio.h> #define N 10 void main() { int a[N]; int i,m=0,n=0,sum=0; double average; printf("please input 10 numbers:\n"); for(i=0;i<N;i++) { scanf("%d",&a[i]); if(a[i]%2==0) m++; else n++; sum+=a[i]; } average=(double)sum/N; printf("we have %d odds and %d evens\n",n,m); printf("average=%lf\n",average); }*/ /*2'.求一组数旳正数个数和负数个数与平均值*/ #include<stdio.h> #define N 10 void main() { int a[N]; int i,m=0,n=0,sum=0; double average; printf("please input 10 numbers:\n"); for(i=0;i<N;i++) { scanf("%d",&a[i]); if(a[i]>0) m++; else n++; sum+=a[i]; } average=(double)sum/N; printf("we have %d positive numbers and %d nagetive numbers\n",m,n); printf("the average =%lf",average); } /*3.求二维数组旳主次对角线之和*/ #include<stdio.h> #define M 5 #define N 5 void main() { int a[M][N]; int i,j,sum1=0,sum2=0; printf("please input the 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<M;i++,j++) { sum1+=a[i][j]; } for(i=0,j=N-1;i<M;i++,j--) { sum2+=a[i][j]; } printf("主对角线和为%d\n",sum1); printf("次对角线和为%d\n",sum2); } /*4.调用函数判断素数*/ #include<stdio.h> #include<math.h> int isPrime(int n) { int i; for(i=1;i<sqrt(n);i++) { if(n%i==0) return 0; } return 1; } void main() { int n,i; printf("please input a number\n"); scanf("%d",&n); i=isPrime(n); if(i) printf("%d is a prime\n",n); else printf("%d is not a prime\n",n); } //5.级数有限项求和(以格里高利公式求π为例)// #include<stdio.h> #include<math.h> void 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<stdio.h> #define N 5 void main() { int a[N],b[N],c[N]; int i; printf("please input the first array a[N]:\n"); for(i=0;i<N;i++) { scanf("%d",&a[i]); } printf("please input the second 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("the sum is:\n"); for(i=0;i<N;i++) printf("%d\t",c[i]); }*/ //6.1调用函数实现// #include<stdio.h> #define N 5 int f(int a,int b) { int sum; sum=a+b; return sum; } void main() { int a[N],b[N],c[N]; int i; printf("please input the first array a[N]:\n"); for(i=0;i<N;i++) { scanf("%d",&a[i]); } printf("please input the second array b[N]:\n"); for(i=0;i<N;i++) { scanf("%d",&b[i]); } for(i=0;i<N;i++) { c[i]=f(a[i],b[i]); } printf("the sum is:\n"); for(i=0;i<N;i++) printf("%d\t",c[i]); } /*7.求一组数旳最大最小值*/ /*#include<stdio.h> void main() { int i,max,min; int a[10]; printf("please input ten numbers\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,min is %d\n",max,min); } */ /*随机数*/ #include<stdio.h> #include<stdlib.h> void main() { int i,max,min; int a[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) min=a[i]; } printf("max=%d\tmin=%d\n",max,min); } /*8.判断闰年*/ #include<stdio.h> int f(int n) { if(n%4==0&&n%100!=0||n%400==0) return 1; else return 0; } void main() { int n; printf("please input year:\n"); scanf("%d",&n); if(f(n)) printf("%d是闰年\n",n); else printf("%d不是闰年\n",n); } /*也许会有要输出某一范畴内所有闰年,思想同样,用循环调用函数即可*/ /*9.判断水仙花数(运用循环) #include<stdio.h> void 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 want\n",n); else printf("%d is not the number\n",n); }*/ /*9'.输出所有水仙花数(调用函数(书P108为循环做法))*/ #include<stdio.h> 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) return 1; else return 0; } void main() { int i,t; for(i=100;i<1000;i++) { t=f(i); if(t==1) printf("%d\t",i); } } //10.百钱买百鸡(题目见书P115)// #include<stdio.h> void 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.求最大公约数和最小公倍数,函数实现*/ #include<stdio.h> int f(int m,int n) { int i=1,t; if(m<n) { 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("最大公约数为%d\n",a); printf("最小公倍数为%d\n",b); } //12.1输出10-之间旳回文数(循环)// /*#include<stdio.h> void main() { int i,j,k=0,a; printf("10-之间旳回文数有:\n"); for(i=10;i<=;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-之间旳回文数(函数调用)// /*#include<stdio.h> int f(int n) { int i=0; while(n>0) { i=i*10+n%10; n/=10; } return i; } void main() { int n,k; printf("10-之间旳回文数有:\n"); for(n=10;n<=;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("please input a number:\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<stdio.h> int f(int n) { int i=0; while(n>0) { 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); else printf("%d不是回文数\n",n); } //13.排序// //选择法// /*#include<stdio.h> #define N 10 void f(int a[],int n) { int i,j,k,t; for(i=0;i<=n;i++) { k=i; for(j=i+1;j<n;j++) { if(a[j]<a[k]) k=j; } if(k!=i) { t=a[k]; a[k]=a[i]; a[i]=t; } } } void main() { int a[N]={8,2,34,5,12,78,4,78,76,9}; int i=0; int size=sizeof(a)/sizeof(int); for(i=0;i<N;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> #define N 5 void f(int a[],int n) { int i,j; int t; 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> #define N 5 void f(int a[],int n) { int i,j; int t; 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() { int a[N]={8,2,34,5,12}; int i=0; int size=sizeof(a)/sizeof(int); for(i=0;i<N;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> #define N 3 #define M 3 void main() { int a[M][N],b[M][N]; int i,j; printf("please input a[M][N]\n"); for(i=0;i<M;i++) { for(j=0;j<N;j++) { scanf("%d",&a[i][j]); } } for(i=0;i<M;i++) { for(j=0;j<N;j++) { b[i][j]=a[j][i]; } } printf("b[M][N]=\n"); for(i=0;i<M;i++) { for(j=0;j<N;j++) { printf("%4d",b[i][j]); } printf("\n"); } printf("\n"); } //15.调用递归函数求阶乘// #include<stdio.h> int f(int n) { if(n==1||n==0) return 1; else return f(n-1)*n; } void main() { int n,m; printf("please input a number:\n"); scanf("%d",&n); m=f(n); printf("%d!=%d\n",n,m); } /*16.运用递归函数求斐波拉契数列(前30项)*/ #include<stdio.h> int f(int n) { if (n==1||n==2) return 1; else return f(n-1)+f(n-2); } void main() { 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<math.h> #define N 5 void 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=%d\n",sum1); }*/ #include<stdio.h> #define N 5 int k(int a,int sum) { sum=sum*10+a; return sum; } void main() { int a,i=0,j,sum=0; printf("please input a number:\n"); scanf("%d",&a); sum=k(a,k(a,sum)); printf("sum=%d\n",sum); } //18.求符合条件旳整数(如是某个二位数旳平方,个位、十位、百位数各不相似等)// #include<stdio.h> void main() { int a,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<stdio.h> #include<string.h> #define N 80 void main() { char str[N]; char *p; printf("please input the code:\n"); gets(str); p=str; while(*p!='\0') { *p+=2; p++; } printf("%s\n",str); } //20.记录字符串中字母和数字旳个数// #include<stdio.h> #include<string.h> #include<ctype.h> #define N 100 void main() { char str[N]; int i=0; int a=0,b=0; printf("please input a string:\n"); gets(str); while(str[i]!='\0'&&str[i]!='\n') { if(isdigit(str[i])) a++; else if(isalpha(str[i])) b++; i++; } printf("there are %d letters and %d numbers\n",b,a); }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服