一维数组和二维数组

第1关排序问题

#includeint main(){/*********Begin*********/ int a[10]; int i,j,t; printf("\n"); for (i=0;i<10;i++) scanf("%d",&a[i]); printf("\n"); for (j=0;j<9;j++) for(i=0;ia[i+1]) { t=a[i];a[i]=a[i+1];a[i+1]=t; } printf("\n"); for(i=9;i>=0;i--) printf("%d ",a[i]); printf("\n"); return 0;}

第2关查找整数

#includeint a[1009];int main(){int n;scanf("%d", &n);for(int i = 1; i <= n; i ++)scanf("%d", &a[i]);int pre;scanf("%d", &pre);for(int i = 1; i <= n; i ++){if(a[i] == pre){printf("%d", i);return 0;}}printf("-1");return 0;}

第3关计算数组中元素的最大值及其所在的行列下标值

#includeint a[1000][1000];int main(){printf("Input m, n:");int n, m;scanf("%d,%d", &n, &m);printf("Input %d*%d array:\n", n , m);for(int i = 1; i <= n; i ++)for(int j = 1; j <= m; j ++)scanf("%d", &a[i][j]);int MAX = -999999;int r, c;for(int i = 1; i <= n; i ++)for(int j = 1; j  MAX){MAX = a[i][j];r = i;c = j;}printf("max=%d, row=%d, col=%d", MAX, r, c);return 0;}

第4关删除最大值

#includeint main(){int a[10];int MAX = -1;for(int i = 0; i < 10; i ++)scanf("%d", &a[i]);for(int i = 0; i  MAX) MAX = a[i];}for(int i = 0; i < 10; i ++){if(a[i] == MAX) continue;printf("%d ", a[i]);}return 0;}

第5关杨辉三角

#includeint a[10][10];int main(){int num = 1;for(int i = 0; i < 10; i ++) a[i][0] = 1;for(int i = 1; i < 10; i ++){for(int j = 1; j < 10; j ++){if(j == num){num ++;a[i][j] = 1;break;}a[i][j] = a[i - 1][j - 1] + a[i - 1][j];}}num = 1;for(int i = 0; i < 10; i ++){for(int j = 0; j < 10; j ++){if(j == num){num ++;break;}if(j == num - 1) printf("%d", a[i][j]);else printf("%d ", a[i][j]);}printf("\n");}return 0;}

三种循环语句的使用

第1关分数序列和

#include int main( ){ int a, b, c, k, n = 5;double s;s = 0.0; a = 2; b = 1;for ( k = 1; k <= n; k++ ) {/*****以下一行有错误*****/s = s + (double)a / (double)b;/*****以下一行有错误*****/c=a;a=b+c;b=c;} printf( "s%d = %lf\n", n, s); return 0;}

第2关公式计算(1)

#includeint main(){int n,a=0;double s; scanf("%d",&n);for(int i=1;i<=n;i++){a=a+i;s=s+1/(double)a;}printf("s = %lf",s);return 0;}

第3关公式计算(2)

/********** Begin **********/#include#includeint main(){int m;scanf("%d",&m);double log(double x);double s=0;for(double i=1;i<=m;i++){s=s+log(i);}s=sqrt(s);printf("s = %lf",s);return 0;}

第4关求同时被7或11整除的整数

/********** Begin **********/#includeint main(){int x;for(int i=1;i<=1000;i++){if (i%7==0||i%11==0){if(i%7==0&&i%11==0){}else{x++;printf("%-5d",i);}}if(x==8){ printf("\n"); x=0;}}return 0;}

第5关公式计算(3)

/********** Begin **********/#includeint main(){int n;double s=1,sum=1;scanf("%d",&n);for(int i=1;i<=n;i++){sum=sum*i; s=s+1/sum;}printf("s = %.6lf",s);return 0;}

循环结构程序设计1

第1关小球自由落体运动

#include#includeint main(void){/*********Begin*********/float M,N,sum,high,x;scanf("%f",&M);scanf("%f",&N);int i;sum=M;for (i=1;i<N;i++){high=pow(0.5,i)*M;x=pow(0.5,i)*M;sum=sum+high+x;}high=pow(0.5,N)*M;sum=sum;printf("%.2f %.2f",high,sum);/*********End**********/return 0;}

第2关求解出n以内所有能被5整除的正整数的乘积

#includeint main(void){/*********Begin*********/int N ,i,sum=1;scanf("%d",&N);for(i=1;i<=N;i++){if(i%5==0){sum=sum*i;}}printf("%d",sum);/*********End**********/return 0;}

第3关最大公约数和最小公倍数

#includeint main(void){/*********Begin*********/int a,b,c,m,t;scanf("%d%d",&a,&b);if(a,b){t=a;a=b;b=t;}m=a*b;c=a%b;while(c!=0){a=b;b=c;c=a%b;}printf("最大公约数是:%d\n",b);printf("最小公倍数是:%d",m/b);/*********End**********/return 0;}

第4关字符串中各类字符数的统计

#includeint main(void){/*********Begin*********/char m;int a=1;int k=0,s=0,e=0,n=0;while(a){m=getchar();if(m==' ')k+=1;else if((m>='a'&& m='A'&&m='0'&&m<='9')n+=1;elsee+=1;if(m=='\n')a=0;}printf("%d %d %d %d",s,n,k,e-1);/*********End**********/return 0;}

顺序结构程序设计-进阶

第1关数字分离

#includeint main(void){/*********Begin*********/int n, a, b, c;scanf("%d",&n);a=n%10;//这个数的个位n/=10;b=n%10;//这个数的十位n/=10;c=n;//这个数的百位printf("%d %d %d",c,b,a);/*********End**********/return 0;}

第2关求三角形的面积

#include#include//这里很重要,要添加数学知识的头文件,因为调用了开平方函数int main(void){/*********Begin*********/double a,b,c;scanf("%lf %lf %lf",&a,&b,&c);double area;double s=(a+b+c)/2;area = s*(s-a)*(s-b)*(s-c);area = sqrt(area);//注意这里使用了开平方函数sqrtprintf("%.3f",area);/*********End**********/return 0;}

第3关计算两个正整数的最大公约数

#includeint MaxCommonFactor( int a, int b){int c;if(a<=0||b<=0) return -1;while(b!=0) {c=a%b;a=b; b=c; } return a; } int main(void){/*********Begin*********/int a,b;scanf("%d,%d",&a,&b);int c=MaxCommonFactor(a,b);printf("%d\n",c);/*********End**********/ return 0;}

顺序结构程序设计-基础

第1关加法运算

#includeint main(void){int a,b,c; //Please input a,b:/*********Begin*********/scanf("%d,%d",&a,&b);c=a+b;printf("%d+%d=%d\n",a,b,c);/*********End**********/return 0;}

第2关不使用第3个变量,实现两个数的对调

#includeint main(void){int a,b;//Enter a and b:scanf("%d%d",&a,&b); printf("a=%d b=%d\n",a,b);/*********Begin*********/a=a^b;b=a^b;a=a^b;/*********End**********/printf("a=%db=%d\n",a,b); return 0;}

第3关用宏定义常量

#includeint main(void){/*********Begin*********/const int N=30;//定义常量用const,即定义题中价格为30.int x;scanf("%d",&x);printf("%d",x*N);/*********End**********/return 0;

第4关计算总成绩和平均成绩

#includeint main(void){/*********Begin*********/int a,b,c,d,e;scanf("%d %d %d %d %d",&a,&b,&c,&d,&e);int s=a+b+c+d+e;//s代表总成绩double p=s*1.0/5;//double 用于定义浮点数(小数),p代表平均成绩printf("%d %.2f",s,p);//%.nf代表输出n位小数/*********End**********/return 0;}

第5关立体几何计算题

#includeint main(void){/*********Begin*********/const double PI=3.14;//定义常量pidouble r, h, c, s, v;scanf("%lf,%lf",&r,&h);//注意输入之间有逗号c=2*PI*r;s=4*PI*r*r;v=PI*r*r*h;printf("C1=%.2f\n",c);//保留两位小数printf("Sb=%.2f\n",s);printf("Vb=%.2f\n",v);/*********End**********/return 0;}

字符数组及其字符串应用

1目标删除

#include "stdio.h"#include "string.h"int main(){ char s[80];int i,j;scanf("%s",s);printf("The original string: \n");puts(s);/***** 以下一行有错误 *****/for(i=j=0;s[i]!='\0';i++){if(s[i]!= 'c') /***** 以下一行有错误 *****/s[j++]=s[i];}/***** 以下一行有错误 *****/s[j]='\0';printf("The string after deleted: \n"); puts(s);return 0;}

第2关:去除空格符

#includeint main(){int i=0,j=0,k;char str[30];scanf("%[^\n]",str);for(k=0;k<29;k++)//循环最大空格数 {j=0;for(i=0;i<30;i++)// 最大单词数 {if((str[i]==32&&str[i+1]!=32)||(str[i]==32&&str[i+1]==32))//判断空格{ j=1;}if(j==1)//将后续字符往前挪{str[i] = str[i+1];}}}printf("%s \n",str);return 0;}

第3关:字符串操作

#include int main() {int i = 0, j = 0;char s[20], t[20];scanf("%s", s);for (i = 0; i <= 20; i++) {if (i % 2 != 0 || s[i] % 2 == 0)//奇数位置的字符或ASCII码为偶数的字符t[j++] = s[i];}printf("%s", t);return 0;}

第4关:找最长字符串

/********** Begin **********/#include #include int main(){int N;char s[100][100];int i;int max_i, max_len = 0;scanf("%d",&N);for(i = 0; i < N; i ++){scanf("%s",s[i]);//输入}for(i = 0; i < N; i ++){int l = strlen(s[i]);if(max_len <l) {max_len = l;max_i = i;}}printf("%s\n", s[max_i]);//输出最长字符串return 0;}

第5关:单词排序

#include #include int main(){//she its can ibm1 bbc NBA nhk2 BOY jxf //c python java c++ android caffe keras pytorch php int N,i,k;char j,s[100][100],a[100][100];printf("排序前的字符串:\n");for(i=0;i<10;i++){scanf("%s",s[i]);//输入printf("%s",s[i]);if(i<9)printf("\n");fflush(stdout);}for(i=0;i<9;i++){k=i;for(j=i+1;j0)k=j;}if(k!=i){char temp[100];strcpy(temp, s[k]);strcpy(s[k], s[i]);strcpy(s[i], temp);}}printf("排序后的字符串:");for(i=0;i<10;i++){printf("%s\n",s[i]);} return 0;}

选择结构程序设计

第1关排序

#includeint main(void){ int a,b,c,temp1,temp2,temp3;/*********Begin*********/printf("请输入三个整数:");scanf("%d%d%d",&a,&b,&c); if(a>b){temp1=a;a=b;b=temp1;}if (a>c){temp2=a;a=c;c=temp2;}if (b>c){temp3=b;b=c;c=temp3;}printf("从小到大排列为:%d,%d,%d",a,b,c);/*********End**********/return 0;}

第2关选择结构-闰年判断

#includeint main(void){int a;/*********Begin*********/scanf("%d",&a);if (a%4!=0)printf("%d 不是闰年!",a);else if (a%100==0&&a%400!=0)printf("%d 不是闰年!",a);else printf("%d 是闰年!",a);/*********End**********/return 0;}

第3关选择结构-分段函数问题

#includeint main(void){/*********Begin*********/float x;float a;scanf("%f",&x);if (x=0&&x<10&&x!=2&&x!=3){a=x*x-5*x+6;printf("%.3f",a);}else{a=x*x-x-1;printf("%.3f",a);}/*********End**********/return 0;}

第4关学生成绩等级换算

#includeint main(void){float x;/*********Begin*********/scanf("%f",&x);if (x>=90&&x<=100){printf("A");}if (x=80){printf("B");} if (x>=70&&x=60&&x<69){printf("D");}if (x=0){printf("E");}if (x100){printf("Score is error!");}/*********End**********/return 0;}

循环结构程序设计2

第1关C循环-求平均成绩

#includeint main(){int s;float x,sum,average;sum=0;scanf("%d",&s);if(s>0){for(int i=0;i<s;i++){scanf("%f",&x);sum=sum+x;}average=sum/s;printf("the number of students:the scores:average=%.2f",average);}elseprintf("the number of students:the scores:average=0.00");return 0;}

第2关C循环-求各位数字之积

#includeint main(void){/*********Begin*********/int num=0,sum=1;scanf("%d",&num);while(num!=0){sum*=num%10;num/=10;}printf("%d",sum);/*********End**********/return 0;}

第3关C循环-求阶乘之和

#includeint main(void){/*********Begin*********/int n=0,sum=0;int m=1;scanf("%d",&n);for(int i=1;i<=n;i++){for (int j=1;j<=i;j++){m=m*j;}sum+=m;m=1;}printf("%d",sum);/*********End**********/return 0;

第4关C循环-水仙花数

#include#includeint main(void){/*********Begin*********/int a=0,b=0,c=0,m=0,t=0;scanf("%d",&t);for(int i=100;i<=999;i++){a=i/100;b=(i-100*a)/10;c=i-100*a-10*b;m=pow(a,3)+pow(b,3)+pow(c,3);if (m==i)printf("%d ",i);} return 0;}

第5关C循环-寻找完数

#includeint main(void){/*********Begin*********/int n=0;scanf("%d",&n);int i,j,sum;for (i=1;i<=n;i++){sum=0;for(j=1;j<i;j++){if(i%j==0)sum+=j;}if(sum==i)printf("%d\n",i);}/*********End**********/return 0;}

第6关分数求和

#include#includeint main(void){/*********Begin*********/double a=1,b=-1;double sum=0;for(int i=1;i<=100;i++){sum+=(a/i)*pow(b,i+1);}printf("%.3lf",sum);/*********End**********/return 0;}

C语言基本语法入门练习题

第1关求绝对值

#include #include int main(){int a,b;scanf("%d",&a);if (a<0)b=-a;else b=a;printf("%d\n",b);return 0;}

第2关求m以内的奇数之和

#include int main(){int n,m, sum;scanf("%d",&m);n=1;sum=0;while(n<=m){sum=sum+n;n+=2;}printf("%d\n",sum);return 0;}

第3关排除此数还是输出此数

#include int main(){//获取参数方式 scanf//int x=0;//int y = 0;//scanf("%d", &x);//结果输出使用prinf//printf("%d",x); // 请在此添加你的代码/********** Begin *********/int x;scanf("%d",&x);if(x%3==0||x/100==3){printf("%d",x);}elseprintf("排除此数");return 0;/********** End **********/}

第4关医院收费.

#include int main(){float a,b,c,d,e,f;scanf("%f %f %f %f",&a,&b,&c,&e);d = a + b*c;f = e - d;printf("请输入药品费、床位费/天、住院天数:应付款:%.2f\n实付款:应找零:%.2f",d,f);return 0;}

第5关相反次序重新组合

//注意//1:该程序每次运行的时间必须小于200毫秒,否则会超时,程序超时将不会测试剩余的测试集//2:该程序每次运行使用的内存不能超过1M,否则会返回错误//3:该程序每次运行输出的结果最多显示1000个字符(多余的不显示),每行末尾的所有空格用□表示#include int main(){int a,b,c,d,e,f,g,h;scanf("%4d",&a);b = a/1%10;c = a/10%10;d = a/100%10;e = a/1000%10;f = a/10000%10;g = a/100000%10;h = a/1000000%10;if(a>=1){printf("请输入一个4位整数:重新组合后:%d%d%d%d",b,c,d,e);}return 0;}

C语言程序设计编辑与调试环境

第1关打印输出 Hello World

#includeint main() {/********* Begin *********/printf("Hello World");/********* End *********/return 0; }

第2关打印输出图形

#includeint main(void){/********* Begin *********/ printf("*\n"); printf(" ***\n"); printf("OK\n"); printf(" Hello!\n"); printf("*********\n"); return 0;}

第3关求3个数的最大值

#includeint main(){/********* Begin *********/ int max(int x,int y,int z); int a,b,c,f; scanf("%d,%d,%d",&a,&b,&c); f=max(a,b,c); printf("max=%d",f);/********* End *********/ return 0;}int max(int x,int y,int z){ int e; if(x>y)e=x; else e=y; if(e>z)e=e; else e=z; return e;}

第4关熟悉C语言调试过程

#includeint main(void){intx;int y=2,z=3;scanf("%d",&x); if(x==y+z) printf("*****");else printf("#####" ); return 0;}

函数的应用

第1关:求平方根

#include #include  /***** 以下一行有错误 *****/double fun(double a, double x0){double x1, y;x1=(x0+a/x0)/2.0;/***** 以下一行有错误 *****/if(fabs(x1-x0)>=0.00001)y=fun(a,x1);else y=x1;return y;} int main(){ double x;scanf("%lf",&x);printf("The square root of %lf is %lf\n",x,fun(x,1.0));return 0;}

第2关:判断素数

求最大公约数和公倍数

函数处理组