- 编程实现按每5个数据一行方式输出所有能被3和5整除, 但是十位不是0的3位整数。
#include<stdio.h> void main( ) { int i,j=0; for (i=100;i<=1000;i++) if((i%3==0&&i%5==0)&&((i%100)/10!=0&&(i%100)/10!=3)) { printf("%5d",i); j++; if(j%5==0) printf("\n"); } } |
2.编程实现从键盘上输入一个二进制数形式字符串,将其转换为十进制整数输出。
#include <stdio.h> #include <math.h> #include <string.h> int main() { char s[21]; long a, i, len, k; scanf("%s",s); len = strlen(s); a = 0; k = 1; for(i=len-1; i>=0; i--) { if(s[i] == '1') a += pow(2.0, len-1-i); } printf("%ld\n",a); return 0; } |
3.给出一百分制成绩, 要求输出成绩等级“A”、“B” 、“C” 、“D”、“E”。90分以上为“A”, 80~89 分为“B”,70~79分为“C”,60~69分为“D”,60分以下为“E”.
#include<stdio.h> void main() { float score; printf("please input a number:\n"); scanf("%f",&score); if(score>=90) printf("A\n"); else if(score>=80) printf("B\n"); else if(score>=70) printf("C\n"); else if(score>=60) printf("D\n"); else if(score<60) printf("E\n"); } |
4. 求1! +2! +3! ....+50!(这个编程结果是错误的因为字节装不下那么大的数,但程序没有错)
#include<stdio.h> void main() { int i,j; long int t=1,sum=0; for (i=1;i<=50;i++) { t=1; for(j=1;j<=i;j++) t=t*j; sum=sum+t; } printf("1!+2!+3!...+50!=%d",sum); } |
5 用冒泡法对10个整数排序。
#include<stdio.h> void main( ) { int i,j,t; int a[10]={8,9,0,7,6,5,4,3,2,1}; for(i=0;i<9;i++) for(j=0;j<9-i;j++) { if(a[j]>a[j+1]) { t=a[j];a[j]=a[j+1];a[j+1]=t; } } for(i=0;i<10;i++) printf("%d",a[i]); } |
6. 求500以内的素数。
#include <stdio.h> int main() { int a,i; for (a=2;a<=500;a++) { for (i=2;i<=a-1;i++) { if (a%i==0) { break; } } if(i>=a-1) printf("%4d",a); } } |
7.编程实现技5 个数据一行的形式输出由1、3、5、7数字组成的互不相同且无重复数字的三位数。
#include <stdio.h> void main() { int a[4]={1,3,5,7}; int i,j,k,n=0; for(i=0;i<4;i++) { for(j=0;j<4;j++) { for(k=0;k<4;k++) { if(i!=j&&j!=k&&k!=i) //三个数互不相等 { printf("%3d%d%d",a[i],a[j],a[k]); n++; if(n%5==0) printf("\n"); } } } } } |
补充:1+3+5+……+99=?
#include<stdio.h> void main() { int i=1,sum=0; while(i<100) { sum=sum+i; i=i+2; } printf(“%d”,sum); } |
求1×2×3×……×10=?
#include<stdio.h> void main() { int i,k=1; for(i=1;i<=10;i++) k=k*i; printf("k=%d",k); } |
8.求所有的水仙花数(所谓的水仙花数,是这样的一个三位数:这个数等于它的各个位的立方之和。如153=13+53+33 )
#include<stdio.h> void main() { int i,gw,sw,bw; for(i=100;i<1000;i++) { gw=i%10; sw=(i%100)/10; bw=i/100; if(gw*gw*gw+sw*sw*sw+bw*bw*bw==i) printf("%4d",i); } } |
9.c语言求500以内的素数,并以10个一行输出
#include <stdio.h> int main() { int a,i,m=0; for (a=2;a<=500;a++) { for (i=2;i<=a-1;i++) { if (a%i==0) { break; } } if(i>=a-1) { printf("%4d",a); m++; if(m%10==0) printf("\n"); } } } |
10.九九乘法表,左对齐三角形
#include<stdio.h> void main() {int i,j; for(i=1;i<10;i++) { for(j=1; j<=i ;j++) printf(“%d*%d=%2d ”,i,j,i*j); printf(“\n”); } } |
11.把100~200之间能被7整除的数,以十个数为一行的形式输出,最后输出一共有多少个这样的数。
#Include<stdio.h> main( ) { int n,j=0; for(n=100;n<=200;n++) { if (n%7!=0) continue; printf("%6d",n); j++; if (j%10==0) printf("\n"); } printf(" \n j=%d\n",j); } |
12.判断输入的某个数m是否为素数。若是素数,输出“YES”,若不是,输出“NO”。
#include<stdio.h> void main( ) { int j,m; printf("Enter an integer number: "); scanf("%d",&m); for (j=2; j<=m-1; j++) if (m%j==0) break; if (j>=m) printf("YES\n"); else printf("NO\n"); } |
13.编程序求2~10000以内的完全数。(一个数的因子(除了这个数本身)之和等于该数本身。)
例如:6的因子是1、2、3,因子和 1+2+3=6
因此 6 是完全数
#include<stdio.h> void main( ) { int i,j,s; for(i=2;i<=10000;i++) { s=0; for(j=1;j<=i-1;j++) if(i%j==0) s+=j; if(i==s) printf("%6d\n",s); } } |
14.输出8*8黑白棋盘
#include<stdio.h> void main( ) { int i,j; for(i=1;i<=8;i++) { for(j=1;j<=8;j++) if((i+j)%2==0) printf("■"); else printf(" "); printf("\n"); } } |
15.编程序,输出以下图形。
******* ***** *** * |
#include<stdio.h> void main( ) { int i,j; for (i=1; i<=4; i++) { for (j=1; j<=i; j++) printf(" "); for (j=1;j<=8-(2*i-1);j++) printf("*"); printf("\n"); } } |
16.输出公元1年至5000年(包含)的所有的闰年,并统计输出共有多少个闰年;
#include<stdio.h> void main( ) { int i,j=0; for (i=1;i<=5000;i++) if((i%4==0&&i%100!=0)||(i%400==0)) { printf("%5d",i); j++; } printf("闰年一共有:%5d",j); } |
17.输入一个正整数n (1<n<=10),再输入n 个整数,按逆序(存储)输出这些数。
如:输入n=5;再输入 2,5,8,1,4存入数组,
再交换他们的位置 4,1,8,5,2。输出
#include <stdio.h> void main( ) { int i, n, temp; int a[10]; scanf("%d", &n); for(i=0; i<n; i++) scanf("%d", &a[i]); for(i=0; i<n; i++) { temp=a[i]; a[i]=a[n-1-i]; a[n-1-i]=temp; } for(i=0; i<n; i++) printf("%d ", a[i]); printf("\n"); } |
18.编程求出一3x4的矩阵的最大的元素值及其行列号
#include <stdio.h> void main( ) { int i,j,row,col,max,a[3][4]; max=a[0][0]; row=0 ; col=0 ; for(i=0;i<3;i++) for(j=0;j<4;j++) if(a[i][j]>max) { max=a[i][j]; row=i;col=j; } printf("row=%d,col=%d",row,col); } |
19.将一个字符数组中的初值“I am happy!”中的小写字符变大写输出。
#include <stdio.h> void main( ) { char c[10]={'i', ' ',’a’…}; int i; for(i=0;i<10;i++) if(c[i]>='a'&&c[i]<='z')c[i]-=32; for(i=0;i<10;i++) printf(“%c”,a[i]); printf(“\n”); } |
20.从键盘上接收一个字符串,求出串中的字符个数。
#include <stdio.h> void main( ) { char str[30]; int i=0; scanf(“%s”,str); while (str[i] != ‘\0’) i++; printf(“the string lenth is %d”,i); } |