第一章 初识c语言 例1.1 屏幕输出一行信息 具体代码
1 2 3 4 5 6 #include <stdio.h> int main(){ printf("hello world"); return 0; }
执行结果
例1.2 求两个整数之和 具体代码
1 2 3 4 5 6 7 8 9 10 #include <stdio.h> int main(){ int a,b,sum; a=123; b=456; sum=a+b; printf("sum 之和是:%d\n",sum); return 0; }
执行结果
例1.3 求最大值 具体代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #include <stdio.h> int main(){ int a,b,sum; int da(int a,int b); //一定要定义方法 而且里面要有数据类型 scanf("%d,%d",&a,&b); ///scanf输入 sum=da(a,b); //调用方法返回max给sum printf("两个之中最大的是:%d\n",sum); return 0; } int da(int a,int b){ int max; //存储最后的最大值 if(a>b){ max=a; //a大 }else{ max=b; //b大 } return max; }
执行结果
习题5 输出*****图形 具体代码
1 2 3 4 5 6 7 8 9 #include <stdio.h> int main(){ printf("*****\n"); printf(" *****\n"); printf(" *****\n"); printf(" *****\n"); return 0; }
执行结果
第二章 算法 例2.1 求1到5乘积 具体代码
1 2 3 4 5 6 7 8 9 10 #include <stdio.h> int main(){ int sum=1; for(int i=1;i<=5;i++){ //循环乘1*2*3*4*5 sum*=i; } printf("%d",sum); //输出结果 return 0; }
执行结果
例2.3 判断闰年 具体代码
1 2 3 4 5 6 7 8 9 10 #include <stdio.h> int main(){ for(int i=2000;i<=2500;i++){ if(i%400==0||(i%4==0&&i%100!=0)){ //符合条件输出 printf("%d ",i); } } return 0; }
执行结果
例2.4 求1-(1/2)+(1/3)-(1/4)到-(1/100) 具体代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #include <stdio.h> int main(){ double sum=0; //得到最后结果 double temp=0; //获取每次的值 for(int i=1;i<=100;i++){ //相加100次 temp=1.0/i; //一定是1.0 不然就是整除为0了 if(i%2==0){ temp=temp*(-1); //奇数都是负的 } sum+=temp; //每次相加 } printf("%.10f",sum); //输出小数点后10位 return 0; }
执行结果
例2.5 判断素数 具体代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #include <stdio.h> int main(){ int n; scanf("%d",&n); //输入一个整数 if(n>=3){ for(int i=2;i<n;i++){ //从2开始依次 if(n%i!=0){ //如果不能被整除就不是素数 printf("%d",n); break; }else{ break; //如果可以被整除那就不是 } } } else{ printf("输入的数字不比3大,输入错误请重新输入!"); } return 0; }
执行结果
第三章 顺序程序设计 例3.1 温度转换 具体代码
1 2 3 4 5 6 7 8 9 10 #include <stdio.h> int main(){ double n; //华氏法 double res; //转换结果 scanf("%lf",&n); //一定是lf res=5.0*(n-32)/9; //转化公式 printf("%f\n",res); //输出结果 return 0; }
执行结果
例3.3 大小写转换 具体代码
1 2 3 4 5 6 7 8 #include <stdio.h> int main(){ char a; a='A'; //赋值 a=a+32; //大写+32=小写 printf("%c\n",a); }
执行结果
例3.4 求三角形面积(海伦公式) 具体代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #include <stdio.h> #include <Math.h> //后面要用sqrt开根号的函数 int main(){ double a; //边1 double b; //边2 double c; //边3 double s; //海伦公式里面的s double res; //获取最终结果 scanf("%lf,%lf,%lf",&a,&b,&c); //输入三边 s=(a+b+c)/2; res=sqrt(s*(s-a)*(s-b)*(s-c)); //海伦公式 printf("%.5f",res); return 0; }
执行结果
例3.5 求一元二次方程的根 具体代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include <stdio.h> #include <Math.h> int main(){ int a; //x2的系数 int b; //x的系数 int c; //常数的系数 double temp; double res1; double res2; scanf("%d,%d,%d",&a,&b,&c); //输入一定要用逗号隔开 temp=b*b-4*a*c; res1=(-b+sqrt(temp))/(2.0*a); res2=(-b-sqrt(temp))/(2.0*a); printf("%7.2f",res1); printf("%7.2f",res2); return 0; }
执行结果
例3.9 输入三个字符,然后putchar输出 具体代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #include <stdio.h> #include <Math.h> int main(){ char a='B'; char b='O'; char c='Y'; printf("输入新的之前%c%c%c\n",a,b,c); scanf("%c",&a); printf("输入新的之后"); putchar(a); //putchar输出单个字符 putchar(b); putchar(c); return 0; }
执行结果
例3.10 输入大写字母输出小写 具体代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #include <stdio.h> #include <Math.h> int main(){ char a='B'; char b='O'; char c='Y'; printf("输入新的之前%c%c%c\n",a,b,c); scanf("%c",&a); printf("输入新的之后"); putchar(a); //putchar输出单个字符 putchar(b); putchar(c); return 0; }
执行结果
习题3.4 输入不同类型的c1和c2字符 1.输入字符类型范围内c1和c2 具体代码
1 2 3 4 5 6 7 8 9 10 11 #include <stdio.h> #include <Math.h> int main(){ char c1,c2; c1=97; //char范围是-127到128 c2=98; printf("c1=%c,c2=%c\n",c1,c2); printf("c1=%d,c2=%d\n",c1,c2); return 0; }
执行结果
2.输入字符类型范围外c1和c2 具体代码
1 2 3 4 5 6 7 8 9 10 11 #include <stdio.h> #include <Math.h> int main(){ char c1,c2; c1=197; //char范围是-127到128 所以输入的是范围外 c2=198; printf("c1=%c,c2=%c\n",c1,c2); printf("c1=%d,c2=%d\n",c1,c2); return 0; }
执行结果
3.输入整数类型范围内c1和c2 具体代码
1 2 3 4 5 6 7 8 9 10 11 #include <stdio.h> #include <Math.h> int main(){ int c1,c2; //整数类型c1和c2 c1=97; c2=98; printf("c1=%c,c2=%c\n",c1,c2); //整数类型赋给字符类型 可能存在截取 printf("c1=%d,c2=%d\n",c1,c2); //本来输入的就是int类型 所以就输出原样 return 0; }
执行结果
习题3.5 多种类型输入和输出 具体代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #include <stdio.h> #include <Math.h> int main(){ int a,b; float x,y; char c1,c2; scanf("a=%db=%d",&a,&b); scanf("%f%e",&x,&y); scanf("%c%c",&c1,&c2); printf("a=%d,b=%d",a,b); printf("x=%f,y=%e",x,y); printf("a=%c,b=%c",c1,c2); return 0; }
执行结果
习题3.6 China译成密码 具体代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 #include <stdio.h> int main(){ char c1,c2,c3,c4,c5; //定义五个字符 c1='C'; //给五个字符赋初值 c2='h'; c3='i'; c4='n'; c5='a'; c1=c1+4; //直接加4就行 c2=c2+4; c3=c3+4; c4=c4+4; c5=c5+4; putchar(c1); //使用输出单个字符函数输出 putchar(c2); putchar(c3); putchar(c4); putchar(c5); printf("\n"); printf("%c",c1); //使用printf输出 printf("%c",c2); printf("%c",c3); printf("%c",c4); printf("%c",c5); return 0; }
执行结果
第4章 选择结构程序设计 例4.2 输入两个数排序 具体代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include <stdio.h> int main(){ double a,b; //要排序的a和b double t; //中间变量 scanf("%lf,%lf",&a,&b); if(a<b){ //两个数交换 一定要有个中间变量t t=a; a=b; b=t; } printf("最大的是%.5f,最小的是%.5f\n",a,b); return 0; }
执行结果
例4.3 输入三个数排序 具体代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #include <stdio.h> int main(){ double a,b,c; //要排序的三个数 double t; //中间变量 scanf("%lf,%lf,%lf",&a,&b,&c); //double要用lf输入 if(a>b){ //b小 放前面 t=a; a=b; b=t; } if(a>c){ //说明a<b 如果c小 交换a和c t=a; a=c; c=t; } if(b>c){ //前面都不符合说明a是最小的 要比较b和c t=b; b=c; c=t; } printf("%.5f,%.5f,%.5f\n",a,b,c); return 0; }
执行结果
例4.4 大小写转换 具体代码
1 2 3 4 5 6 7 8 9 10 11 12 13 #include <stdio.h> int main(){ char a; scanf("%c",&a); //a=getchar(); if(a>='A'&&a<='Z'){ //大写转小写 a=a+32; }else{ //小写不用转换 } printf("%c\n",a); return 0; }
执行结果
例4.5 分段函数 具体代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 //1.简单的if语句 #include <stdio.h> int main(){ int x,y; // scanf("%d",&x); //输入x 对应输出y if(x<0){ y=-1; } if(x=0){ y=0; } if(x>0){ y=1; } printf("%d",y); //输出对应y return 0; }
执行结果
例4.6 按照等级输出成绩 具体代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #include <stdio.h> int main(){ char grade; scanf("%c",&grade); //输入分数 switch(grade) { case 'A':printf("85-100分\n");break; case 'B':printf("70-84分\n");break; case 'C':printf("60-69分\n");break; case 'D':printf("<60分\n");break; default:printf("重新输入成绩等级!"); } return 0; }
执行结果
例4.7 switch语句处理菜单命令 具体代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 #include <stdio.h> int main(){ void action1(int a,int b); //声明两个函数 void action2(int a,int b); char ch; //要判断的字符 int a=15; int b=23; ch=getchar(); //输入一个字符 switch(ch) { case 'A': case 'a':action1(a,b);break; //A和a同时跳转action1方法 case 'B': case 'b':action2(a,b);break; //B和b同时跳转action1方法 default:printf("不符合题意,重新登陆!"); } return 0; } void action1(int a,int b){ printf("执行action1方法之后结果是%d\n",a+b); //加法 } void action2(int a,int b){ printf("执行action2方法之后结果是%d\n",a*b); //乘法 }
执行结果
习题4.4 输出三个数最大数 具体代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #include <stdio.h> int main(){ int a,b,c; int t; //作为中间值 scanf("%d,%d,%d",&a,&b,&c); //输入三个整数 if(a>b){ //a大 往后放 t=a; a=b; b=t; } if(a>c){ //a<b 看看a和c的大小 //a大 往后放 这样的话就是 c<a<b t=a; a=c; c=t; } if(b>c){ //a<b a<c 但是b和c的大小要排序 //b>c>a 要把b和c换一下 t=b; b=c; c=t; } printf("三个数中最大的是:%d",c); return 0; }
执行结果
习题4.5 输出平方根 具体代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include <stdio.h> #include <math.h> //使用sqrt函数 int main(){ int a; int res; scanf("%d",&a); //输入一个<1000的正数 if(a>=1000){ printf("输入有误,请重新输入!!!"); } res=(int)sqrt(a); //强转为int 这样输出整数部分 printf("平方根为:%d",res); return 0; }
执行结果
习题4.5 分段函数输出y值 具体代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #include <stdio.h> int main(){ int x,y; scanf("%d",&x); //输入整数x if(x<1){ y=x; }else if(x>=1&&x<10){ y=2*x-1; }else if(x>=10){ y=3*x-11; } printf("输入的x值是:%d\n",x); printf("对应的y值是:%d",y); return 0; }
执行结果
习题4.9 拆每位数字 具体代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #include <stdio.h> int main(){ int x; scanf("%d",&x); //输入一个整数 int n=0; int ge=0; //统计多少位 while(x!=0){ //每一位都拆完就结束 n=x%10; //取出每一位 printf("第%d位是%d\n",ge+1,n); ge++; x=x/10; } printf("一共是%d位",ge); //输出多少位 return 0; }
执行结果
习题4.11 输入4个整数按序输出 具体代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 #include<stdio.h> int main() { int a,b,c,d,t; scanf("%d,%d,%d,%d",&a,&b,&c,&d); if(a>b){ t=a; a=b; b=t; } if(a>c){ t=a; a=c; c=t; } if(a>d){ t=a; a=d; d=t; } if(b>c){ t=b; b=c; c=t; } if(b>d){ t=b; b=d; d=t; } if(c>d){ t=c; c=d; d=t; } printf("%d,%d,%d,%d\n",a,b,c,d); //输出四个数字 return 0; }
执行结果
第5章 循环结构程序设计 例5.8 斐波拉契数列 具体代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #include<stdio.h> int main() { int a,b,c; int flag=2; //记录是第几个数 a=1; b=1; printf("第1位的数字是:%d\n",a); //先输出前两个数 printf("第2位的数字是:%d\n",b); for(int i=1;i<39;i++){ //循环40次 c=a+b; //当前值是前两者之和 flag++; //成功计算一次+1 printf("第%d位的数字是:%d\n",flag,c); //替换新的a和b a=b; //递推方式 b=c; } return 0; }
执行结果
例5.10 100-200之内素数 具体代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #include<stdio.h> #include<math.h> //要用sqrt函数 int main() { //求100-200所有素数 for(int i=100;i<200;i++){ int k=sqrt(i); //开根号 int flag=0; //标志位 for(int j=2;j<=k;j++){ //从2-k就可以 if(i%j==0){ flag=1; //能被整除就不是素数设置为1 } } if(flag==0){ printf("%d\n",i); //flag没变就是素数 } } return 0; }
执行结果
习题5.3 求最大公约数和最小公倍数 具体代码
执行结果
习题5.4 分析字符串组成 具体代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #include<stdio.h> int main() { int a=0; //统计英文字母个数 int b=0; //统计空格个数 int c=0; //统计数字个数 int d=0; //统计其他字符个数 char temp; //c语言没有字符串string类 所以用char输入 while((temp=getchar())!='\n'){ //换行键就结束 if((temp>='a'&&temp<='z')||(temp>='A'&&temp<='Z')){ a++; }else if(temp>='0'&&temp<='9'){ c++; }else if(temp==' '){ b++; }else { d++; } } printf("英文字符的个数是:%d\n",a); //输出对应个数 printf("空格字符的个数是:%d\n",b); printf("数字的个数是:%d\n",c); printf("其他字符的个数是:%d\n",d); return 0; }
执行结果
习题5.8 水仙花数 具体代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #include<stdio.h> int main() { //水仙花数只能在3位数中出现 for(int i=100;i<999;i++){ int a=i/100; // 假以187为例 187/100=1 int b=i/10%10; // 187/10=18 18%10=8 int c=i%10; // 187%10=7 if(a*a*a+b*b*b+c*c*c==i){ //每位的立方次==原数 printf("%d\n",i); } } return 0; }
执行结果
<
B册编程题
初试code
>