【王道训练营 C/C++方向基础 60 题(11-20)】

11. 输入一个自然数,输出其各因子的连乘形式,如输入 12,则输出 12=1*2*2*3。

#include
int main(){int num;scanf("%d",&num);if(num==0) printf("0=0");// 输入为0 else if(num==1) printf("1=1");//输入为1 else{//输入大于1 printf("%d=1",num);for(int i=2,j=num;i<=num&&j>0;i++){while(j%i==0&&j>0){j/=i;printf("*%d",i);}} } return 0;
} 

12.N 个整数从小到大排列,输入一个新数插入其中,使 N+1 个整数仍然有序。

#include
#define N 10
int main(){int a[N+1]={1,2,3,4,6,7,8,9,10,12};int b;scanf("%d",&b);//二分法查找 int left,right,mid;left=0,right=N-1;while(left<=right){mid=(left+right)/2;if(b==a[mid]) break;else if(b>a[mid]) left=mid+1;else if(bleft;i--){a[i]=a[i-1];}a[left]=b;for(int i=0;i

13.在 100~200 之间找出满足用 3 除余 2,用 5 除余 3 和用 7 除余 2 的所有整数。

#include
int main(){for(int i=100;i<=200;i++){if(i%3==2) printf("%d %% 3 = 2\n",i);if(i%5==3) printf("%d %% 5 = 3\n",i);if(i%7==2) printf("%d %% 7 = 2\n",i);}return 0;
}

14.输入 10 个同学的成绩,统计 80 分以上和不及格的人数,并输出平均值。

#include
int main(){int grade[10],stu_80,stu_60,sum,average;stu_80=stu_60=sum=0;for(int i=0;i<10;i++){scanf("%d",&grade[i]);if(grade[i]>80) stu_80++;else if(grade[i]<60) stu_60++;sum+=grade[i];}average=sum/10;printf("80+:%d 60-:%d average:%d\n",stu_80,stu_60,average);return 0;
}

15.编写一个函数来检验输入的一个字符是大写字母还是小写字母或不是 26 个 英文字母。

#include
void alpha(char x){if(x>='a'&&x<='z') printf("小写字母\n");else if(x>='A'&&x<='Z') printf("大写字母\n");else printf("不是 26 个英文字母\n");
}
int main(){char x;scanf("%c",&x);alpha(x);return 0;
}

16.编写一个程序,从键盘输入半径和高,输出圆柱体的底面积和体积。

#include
#define PI 3.14
int main(){double r,h,s,v;scanf("%lf%lf",&r,&h);s=2*PI*r*h+2*PI*r*r;v=PI*r*r*h;printf("s = %f,v = %f\n",s,v);return 0;
}

17.输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

#include
#include
#include
int main(){char a[100];gets(a);puts(a);int len=strlen(a),n1,n2,n3,n4;n1=n2=n3=n4=0;for(int i=0;i

18.编写程序,形成如下矩阵,并输出。

\begin{bmatrix} 11111\\ 21111 \\ 32111 \\ 43211 \\54321 \end{bmatrix}

#include
int main(){char a[5][10]={"11111"};//先赋a[1]初值11111 for(int i=1;i<5;i++){//a[i]=a[i-1]for(int j=0;j<5;j++){a[i][j]=a[i-1][j];}// 在 a[i]=a[i-1]的基础上,前i位分别加一 for(int k=i-1;k>=0;k--){a[i][k]++;}}for(int i=0;i<5;i++){puts(a[i]);}return 0;
}

19.用递归函数完成以下运算: sum(n)=12+22+…+n2 函数的原型如下: long sum(int n); 该函数完成 12+22+…+n2 的运算,并返回运算结果,其中 n>0。 提示:你可以使用递归表达式:sum(n)=sum(n-1)+n2

#include
long sum(int n){if(n==1) return 12;else return (sum(n-1)+n*10+2);
}
int main(){int n;long m;scanf("%d",&n);m=sum(n);printf("%d",m);return 0;
}

20.编写一个程序,将整数转换成字符串:void itoa(int,char);

#include
#include
//前后交换函数 
void change(char *z){int len=strlen(z);for(int i=0,j;i


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章