仅作参考,请指正(都提交通过,但是也有错误,第22题的错误,已经修正)
1、Hello World!
1 #include <stdio.h> 2 int main() 3 { 4 printf("Hello World!"); 5 return 0; 6 }
2、我爱编程
1 #include <stdio.h> 2 int main() 3 { 4 printf("Hello C! "); 5 printf("I like programming."); 6 return 0; 7 }
3、计算两个整数的乘积
1 #include <stdio.h> 2 int main() 3 { 4 int a,b; 5 scanf("%d%d",&a,&b); 6 printf("%d",a*b); 7 return 0; 8 }
4、计算圆的面积
1 #include <stdio.h> 2 #include <string.h> 3 #define PI 3.1415 4 int main() 5 { 6 printf("Area=%5.2f ", PI*4.3*4.3); 7 return 0; 8 }
5、计算平方根
1 #include <stdio.h> 2 #include <math.h> 3 int main() 4 { 5 double x; 6 scanf("%lf", &x); 7 printf("%f ", sqrt(x)); 8 return 0; 9 }
6、输出逆序数
1 #include <stdio.h> 2 #include <string.h> 3 #include <math.h> 4 int main() 5 { 6 int x,y = 0; 7 scanf("%d", &x); 8 while(x) 9 { 10 y = y*10 + x%10; 11 x /= 10; 12 } 13 printf("y=%d ", y); 14 return 0; 15 }
7、交换两个变量
1 #include<stdio.h> 2 #include<math.h> 3 4 int main() 5 { 6 int a,b,t; 7 scanf("%d,%d",&a,&b); 8 t = a; 9 a = b; 10 b = t; 11 printf("%d,%d",a,b); 12 return 0; 13 }
8、输出字符ASCII码
1 #include<stdio.h> 2 #include<math.h> 3 4 int main() 5 { 6 int a; 7 a = getchar(); 8 printf("ASCII=%d",a); 9 return 0; 10 }
9、求一元二次方程的两个实根
1 #include<stdio.h> 2 #include<math.h> 3 4 int main() 5 { 6 float x1,x2; 7 x1 = (-1 + sqrt(1+4*2))/2.0; 8 x2 = (-1 - sqrt(1+4*2))/2.0; 9 printf("x1=%.4f ",x1); 10 printf("x2=%.4f ",x2); 11 return 0; 12 }
10、计算银行存款本息
1 #include<stdio.h> 2 #include<math.h> 3 4 int main() 5 { 6 int money,year; 7 double rate,sum = 0; 8 scanf("%d%d%lf",&money,&year,&rate); 9 sum = money*pow((1+rate),year); 10 11 printf("sum=%7.2f",sum); 12 return 0; 13 }
11、大小写字母转换
1 #include <stdio.h> 2 #include <stdio.h> 3 #include <stdlib.h> 4 5 int main() 6 { 7 char ch; 8 ch = getchar(); 9 if(ch>='a'&&ch<='z') 10 ch -= 32; 11 else 12 ch += 32; 13 putchar(ch); 14 return 0; 15 }
12、计算分段函数
1 #include <stdio.h> 2 int main(void) 3 { 4 double x, y; 5 scanf("%lf",&x); 6 if ( x<0 ) 7 y=0; 8 else if( x<=15 ) 9 y=4*x/3; 10 else 11 y=2.5*x-10.5; 12 printf("y=%.2f",y); 13 return 0; 14 }
13、百分制成绩转换为五级分制成绩
1 #include <stdio.h> 2 #include <stdio.h> 3 #include <stdlib.h> 4 5 int main() 6 { 7 float achievment; 8 scanf("%f",&achievment); 9 10 int a = achievment; 11 char ch; 12 13 switch(a/10){ 14 case 10: 15 case 9:ch = 'A';break; 16 case 8:ch = 'B';break; 17 case 7:ch = 'C';break; 18 case 6:ch = 'D';break; 19 default:ch = 'E'; 20 } 21 printf("grade:%c ",ch); 22 23 return 0; 24 }
14、输出水仙花数
1 #include <stdio.h> 2 #include <stdio.h> 3 #include <stdlib.h> 4 5 int main() 6 { 7 int i; 8 scanf("%d",&i); 9 10 int a = i%10, b = i/10%10, c = i/100; 11 if(a*a*a + b*b*b + c*c*c == i) 12 printf("%d是水仙花数!",i); 13 else 14 printf("%d不是水仙花数!",i); 15 16 return 0; 17 }
15、用for语句实现判断并求和
1 #include<stdio.h> 2 3 int main() 4 { 5 int sum = 0; 6 for(int i=1; i<=100; ++i) 7 { 8 if(i%3==0 && i%5==1) 9 sum += i; 10 } 11 printf("sum=%d",sum); 12 13 return 0; 14 }
16、用do while 语句实现从键盘输入一组整数,求平均值
1 #include<stdio.h> 2 3 int main() 4 { 5 int i=0, x; 6 float sum = 0; 7 do{ 8 scanf("%d",&x); 9 if(x<0) break; 10 sum += x; 11 i++; 12 }while(x>=0); 13 printf("AVE=%.2f ",sum/i); 14 return 0; 15 }
17、用while语句实现计算圆周率 pi (3.14) 的近似值
1 #include<stdio.h> 2 #include <math.h> 3 #define EPS 1e-5 4 int main() 5 { 6 float pi = 0, sign = 1, x = 1; 7 8 while(fabs(sign/x) > EPS) 9 { 10 pi += sign/x; 11 x += 2; 12 sign = -sign; 13 } 14 printf("pi=%.2f ",pi*4); 15 return 0; 16 }
18、求两个整数的最大公约数
1 #include<stdio.h> 2 #include<stdlib.h> 3 4 int GCD(int x, int y); 5 int main() 6 { 7 int a,b; 8 scanf("%d%d",&a,&b); 9 printf("GCD=%d ",GCD(a,b)); 10 return 0; 11 } 12 13 int GCD(int x, int y){ 14 return y == 0 ? x : GCD(y, x%y); 15 }
19、找素数
1 #include<stdio.h> 2 #include<stdlib.h> 3 4 int isPrime(int x); 5 int main() 6 { 7 int a; 8 scanf("%d",&a); 9 for(int i=a+1;;++i){ 10 if(isPrime(i)){ 11 printf("prime=%d ",i); 12 break; 13 } 14 } 15 return 0; 16 } 17 18 int isPrime(int x){ 19 for(int i=2; i<x; ++i) 20 if(x%i==0) 21 return 0; 22 return 1; 23 }
20、斐波那契数列求和
1 #include<stdio.h> 2 #include<stdlib.h> 3 4 int main() 5 { 6 int sum = 0, a=1,b=1; 7 for(int i=0;i<20;i+=2){ 8 sum += a+b; 9 a = a+b; 10 b = a+b; 11 } 12 printf("sum=%d ",sum); 13 return 0; 14 }
21、逆序存放数据
1 #include<stdio.h> 2 #define N 100 3 int main() 4 { 5 int arr[N] = {0}, n=6; 6 for(int i=n-1; i>=0; --i) 7 scanf("%d",&arr[i]); 8 for(int j=0; j<n; ++j) 9 printf("%d ",arr[j]); 10 return 0; 11 }
22、找出一维整型数组中的次最大值
#include<stdio.h> #define N 5 /*设次大值一定存在*/ int main() { int i, j, arr[N+1] = {0}; /* 输入5个数 */ for(i=0; i<N; ++i) scanf("%d",&arr[i]); /* 冒泡排序 */ for(i=0; i<N-1; ++i) for(j=0; j<N-i-1; ++j) if(arr[j]<arr[j+1]){ int t = arr[j]; arr[j] = arr[j+1]; arr[j+1] = t; } /* 求次最大值下标i*/ for(i=1; arr[0]==arr[i] && i<N; ++i) ; /*if(i==N) printf("次大值不存在! ");*/ printf("次最大值=%d",arr[i]); return 0; }
/* 求最大值、次大值可以不用排序 */ #include <stdio.h> #define N 5 int main() { int i, arr[N] = {0}; int max1, max2; scanf("%d%d",&arr[0],&arr[1]); max1 = max2 = arr[0]; arr[1] > max1 ? (max1 = arr[1]) : (max2 = arr[1]); for(i=2; i<N; ++i){ scanf("%d",&arr[i]); if(arr[i]>max1){ max2 = max1; max1 = arr[i]; } else if(arr[i]>max2){ max2 = arr[i]; } } /*if(max1==max2) printf("次大值不存在! "); else printf("次最大值=%d",max2);*/ /*次最大值 max2 是存在的 */ printf("次最大值=%d",max2); return 0; }
#include <stdio.h> #include <limits.h> #define N 5 int main() { int i, arr[N] = {0}; int max1, max2; max1 = max2 = INT_MIN; for(i=0; i<N; ++i){ scanf("%d",&arr[i]); if(arr[i]>max1){ max2 = max1; max1 = arr[i]; } else if(arr[i]>max2){ max2 = arr[i]; } } /* 次最大值 max2 */ if(max1 == INT_MIN) printf("次大值不存在! "); else printf("次最大值=%d",max2); return 0; }
23、调整最大值的位置
1 #include<stdio.h> 2 #define N 100 3 int main() 4 { 5 int arr[N] = {0}, n=6, max=0, maxi=0; 6 scanf("%d",&arr[0]); 7 max=arr[0]; 8 9 for(int i=1; i<n; ++i){ 10 scanf("%d",&arr[i]); 11 if(arr[i]>max){ 12 max = arr[i]; 13 maxi = i; 14 } 15 16 } 17 int t = arr[n-1]; 18 arr[n-1] = arr[maxi]; 19 arr[maxi] = t; 20 21 for(int j=0; j<n; ++j) 22 printf("%d ",arr[j]); 23 return 0; 24 }
24、连接两个字符串
1 #include<stdio.h> 2 #include<string.h> 3 #define N 100 4 int main() 5 { 6 char a[2*N] = "", b[N] = ""; 7 scanf("%s%s",a,b); 8 /* strcpy(&a[strlen(a)],b);//没有用strcat用的strcpy 9 */ 10 //不用函数 11 int i; 12 for(i=0; a[i]; ++i);//求字符串' '下标 13 char *p = a+i, *q = b; 14 while(*q) 15 { 16 *p++ = *q++; 17 } 18 *p = '