> 文章列表 > c语言实例练习笔记

c语言实例练习笔记

c语言实例练习笔记

本博文参考题目的地址看右边----》C 语言实例 | 菜鸟教程

以下为个人边练习边敲记录(解法不一定和官方一样,会自己扩展一些,练习嘛,肯定是学到的都用上,算检验之前的学进去的是不是对的。)

C 语言实例 - 输出 "Hello, World!"

#include <stdio.h>
int main(){printf("hello world");
}

C 语言实例 - 输出整数

#include <stdio.h>
int main(){int a=1;printf("%d",a);
}

C 语言实例 - 输出单个字符

#include <stdio.h>
#include <windows.h>
int main(){SetConsoleOutputCP(65001);char a='z';printf("%c",a);
}

C 语言实例 - 输出浮点数

#include <stdio.h>
int main(){float a=1.01;printf("%f",a);
}

 C 语言实例 - 输出双精度(double)数

#include <stdio.h>
int main(){double d=20.56;printf("%g",d);
}

 C 语言实例 - 两个整数相加

#include <stdio.h>
int main(){int a=1;int b=2;int c=a+b;printf("%d",c);
}

 C 语言实例 - 两个浮点数相乘

#include <stdio.h>
int main(){float a=2.5;float b=1.4;float c=a*b;// printf("%g",c);printf("%.2lf",c);//保留小数点后2位
}

C 语言实例 - 字符转 ASCII 码(ascii对照表---》C 语言实例 – 字符转 ASCII 码 | 菜鸟教程)

#include <stdio.h>
#include <windows.h>
int main(){SetConsoleOutputCP(65001);char a;printf("请输入当个字符:");scanf("%c",&a);// char a[]字符串才不用&,字符需要& ,字符串默认就指向内存地址printf("'%c'的ASCII码是: %d",a,a);
}

 C 语言实例 - 两数相除求余数

#include <stdio.h>
#include <windows.h>
int main(){SetConsoleOutputCP(65001);int a,b,c,d;printf("请输入a,b用空格隔开");scanf("%d %d",&a,&b);c=a/b;d=a%b;printf("%d/%d=%d 余%d",a,b,c,d);
}

 C 语言实例 - 数值比较

#include <stdio.h>
#include <windows.h>
int main(){SetConsoleOutputCP(65001);int a=1,b=999;char c;c=a>b?'a':'b';printf("%c大",c); //不是用%s 单字符输出用%c
}

 C 语言实例 - 计算 int, float, double 和 char 字节大小

#include <stdio.h>
#include <windows.h>
int main(){SetConsoleOutputCP(65001);int a;char b;float c;double d;printf("int占:%d\\nchar占:%d\\nfloat占:%d\\ndouble占:%d",sizeof(a),sizeof(b),sizeof(c),sizeof(d));return 0;
}

 C 语言实例 - 交换两个数的值

#include <stdio.h>
#include <windows.h>
int main(){SetConsoleOutputCP(65001);double a,b,c;printf("请输入2个双精度用空格隔开: ");scanf("%lf %lf",&a,&b);printf("交换前,a=%lf,b=%lf\\n",a,b);c=a;a=b;b=c;printf("交换后,a=%.2lf,b=%.2lf",a,b);
}

C 语言实例 - 判断奇数/偶数

#include <stdio.h>
#include <windows.h>
int main(){SetConsoleOutputCP(65001);int a;printf("请输入一个int型数字: ");scanf("%d",&a);char *str;str=a%2==0?"偶数":"奇数";printf("你输入的是: %s",str);
}

 C 语言实例 - 数组里,奇数偶数有哪些(博主自己扩展的题

#include <stdio.h>
#include <windows.h>
int main(){SetConsoleOutputCP(65001);int arr[]={10,13,26,55,22,66,44,73};int len=sizeof(arr)/sizeof(*arr);int arr2[10];int arr2Index=0;int arr3[10];int arr3Index=0;int i=0;while (i<len){if(arr[i]%2==0){arr2[arr2Index]=arr[i];arr2Index++;}else{arr3[arr3Index]=arr[i];arr3Index++;}i++;}printf("arr数组中偶数有\\n");for(int j=0;j<arr2Index;j++){printf("%d ",arr2[j]);}printf("\\n奇数有\\n");for(int j=0;j<arr3Index;j++){printf("%d ",arr3[j]);}
}

 C 语言实例 - 判断元音/辅音

#include <stdio.h>
#include <windows.h>
#include <ctype.h>//大小写处理 系统便准库
int main(){SetConsoleOutputCP(65001);char a;//单个字符定义不用c[]printf("请输入单个英文字母:");scanf("%c",&a);//%c单个字符if(isupper(a)==1){//判断输入字母是否大写  大写放回1 小写返回0a=tolower(a); //大写转小写 A->a  B->b}if(a=='a'||a=='e'||a=='i'||a=='o'||a=='u'){//元音a、e、i、o、u 这五个字母printf("你输入的是元音"); }else{printf("你输入的是辅音"); }
}

 C 语言实例 - 判断多个数中最大值

#include <windows.h>
#define ArrLen 3
int main(){SetConsoleOutputCP(65001);int a[ArrLen];printf("请输入3个数字空格隔开:");scanf("%d %d %d",&a[0],&a[1],&a[2]);int maxVal=a[0];for(int i=1;i<ArrLen;i++){if(maxVal<a[i]){maxVal=a[i];}}printf("输入的最大值是:%d",maxVal);
}

 C 语言实例 - 判断闰年

输出年/月/日 时:分:秒可以看博主另一篇博文----》c语言输出年/月/日 时:分:秒

#include <stdio.h>
#include <time.h>
#include <windows.h>
#define CCT (+8)
int main ()
{SetConsoleOutputCP(65001);time_t rawtime;struct tm *info;// struct tm {//    int tm_sec;         /* 秒,范围从 0 到 59                *///    int tm_min;         /* 分,范围从 0 到 59                *///    int tm_hour;        /* 小时,范围从 0 到 23                *///    int tm_mday;        /* 一月中的第几天,范围从 1 到 31                    *///    int tm_mon;         /* 月份,范围从 0 到 11                *///    int tm_year;        /* 自 1900 起的年数                *///    int tm_wday;        /* 一周中的第几天,范围从 0 到 6                *///    int tm_yday;        /* 一年中的第几天,范围从 0 到 365                    *///    int tm_isdst;       /* 夏令时                        */    // };time(&rawtime);info = gmtime(&rawtime);//年int year=info->tm_year+1900;int bfh=year%4;char msg[20]={"\\0"};if(bfh==0){strcpy(msg,"闰年");}else{strcpy(msg,"不是闰年");}printf("当前是%u:%s",year,msg);return(0);
}

 C 语言实例 - 判断正数/负数

#include <stdio.h>
#include <windows.h>
int main ()
{SetConsoleOutputCP(65001);double val;printf("%请输入数字:");scanf("%lf",&val);char str[100]={"\\0"};if(val==0){strcpy(str,"即不是正数也不是负数");}else if(val>0){strcpy(str,"正数");}else{strcpy(str,"负数");}printf("你输入的是 %g,他是%s",val,str);
}

计算自然数的和

for循环

#include <stdio.h>
#include <windows.h>
int main ()
{SetConsoleOutputCP(65001);int n,sum=0;printf("请输入自然数n:");scanf("%d",&n);for(int i=0;i<=n;i++){sum+=i;}printf("%d",sum);
}

 while do

#include <stdio.h>
#include <windows.h>
int main ()
{SetConsoleOutputCP(65001);int n,sum=0;printf("请输入自然数n:");scanf("%d",&n);int i=0;while(i<=n &&n>0){sum+=i;i++;}printf("%d",sum);
}

递归

#include <stdio.h>
#include <windows.h>
int addNum(int val){if(val!=0){return val+addNum(val-1);}else{return val;}
}
int main ()
{SetConsoleOutputCP(65001);int n,sum=0;printf("请输入自然数n:");scanf("%d",&n);printf("%d",addNum(n));
}

判断字母

#include <stdio.h>
#include <windows.h>
#include <ctype.h>
int main ()
{SetConsoleOutputCP(65001);char n;printf("判断是不是字母:");scanf("%c",&n);if(isalpha(n)){// isalpha 该函数检查所传的字符是否是字母。 isupper判断大写返回1 ,islower(int c) 判断是不是小写printf("你输入的%c是字母",n);}else{printf("你输入的%c不是字母",n);}
}

九九乘法口诀表

#include <stdio.h>
#include <windows.h>
int main ()
{SetConsoleOutputCP(65001);for(int i=1;i<10;i++){for(int j=1;j<=i;j++){printf("%dx%d=%d ",j,i,i*j);}printf("\\n");}
}

求两数的最大公约数

#include <stdio.h>
#include <windows.h>
int main ()
{SetConsoleOutputCP(65001);int a,b,val;printf("请输入2个正整数:");scanf("%d %d",&a,&b);for(int i=1;i<=a&&i<=b;i++){if(a%i==0 && b%i==0){val=i;}}printf("%d和%d的最大公约数是:%d",a,b,val);
}

 循环输出26个字母

#include <stdio.h>
#include <windows.h>
int main ()
{SetConsoleOutputCP(65001);for(int i='A';i<='Z';i++){printf("%c ",i);}
}

 判断数字为几位数

#include <stdio.h>
#include <windows.h>
int main ()
{SetConsoleOutputCP(65001);long long n;printf("请输入n:");scanf("%lld",&n);int size=0;while(n!=0){n=n/10;size++;}printf("%lld是 %d 位数",n,size);//gcc, 两个long合用,即long long类型,表示C语言目前最长的系统整型类型,每个long long类型占8字节,64位。其格式化字符为"%lld"。
}

 计算一个数的 n 次方

#include <stdio.h>
#include <windows.h>
int main ()
{SetConsoleOutputCP(65001);int a,b,n=1;long long z=1;printf("请输入基数和指数并空格隔开:");scanf("%d %d",&a,&b);while(n<=b){z*=a;n++;}printf("%lld",z);
}

也可以用math.h的pow方法

#include <stdio.h>
#include <windows.h>
#include <math.h>
int main ()
{SetConsoleOutputCP(65001);int a,b,n=1;long long z=1;printf("请输入基数和指数并空格隔开:");scanf("%d %d",&a,&b);z=pow(a,b);printf("%lld",z);
}

二进制转十进制

#include <stdio.h>
#include <windows.h>
#include <math.h>
int main ()
{SetConsoleOutputCP(65001);long long a;printf("请输入二进制:");scanf("%lld",&a);int remainder=0;int endVal=0;int i=0;while(a!=0){remainder=a%10; //1011 经过a%10求膜后得到1 因a/=10;         //a变成101endVal+=remainder*pow(2,i); //1*2^0=1;  任何数的0次方是1   i++;}printf("%d",endVal);
}

 其实就是改一个这个位置就可以改变输入的进制

endVal+=remainder*pow(8,i); //这是八进制
endVal+=remainder*pow(16,i); //这是十六进制

十进制转二进制

#include <stdio.h>
#include <windows.h>
int main ()
{SetConsoleOutputCP(65001);long long a;printf("请输入十进制:");scanf("%lld",&a);int remainder=0;int endVal=0;int i=1;while(a!=0){remainder=a%2; a/=2;         //endVal+=remainder*i; //1*2^0=1;  任何数的0次方是1   i*=10;}printf("%d",endVal);//假设输入11// 11%2 1,  11/2= 5(因为int类型只保留整数) //5%2   1,  5/2=2,//2%2   0,   2/2=1;//1%2   1,   1/2=0.5(int型只保留小数点前面那位整数) =0 //while(a!=0) 所以停止循环 得到 1101}

 其他进制就该变下面这两个就可以了

//八进制
remainder=a%8;
a/=8;         //
//十六进制
remainder=a%16;
a/=16;         //

八进制转二进制 就先把   

八进制转十进制、然后十进制转二进制就可以了。 

输入的字符串翻转

#include <stdio.h>
#include <windows.h>
void reverseSentence(){char c;scanf("%c",&c);if(c!='\\n'){reverseSentence();printf("%c",c);}
}
int main ()
{SetConsoleOutputCP(65001);char c;printf("请输入与字符串:");reverseSentence();
}

 自定义变量的字符串翻转

#include <stdio.h>
#include <windows.h>int main (){SetConsoleOutputCP(65001);char a[]={'h','e','l','l','o'};char aSize=sizeof(a)/sizeof(*a);char p[5];int b=0;//逻辑for(int i=aSize-1;i>=0;i--){p[b]=a[i];b++;}//输出for(int i=0;i<aSize;i++){printf("%c",p[i]);}
}

 字符串长度

 

#include <stdio.h>
#include <windows.h>int main (){SetConsoleOutputCP(65001);char a[1000];printf("请输入字符串:");scanf("%s",a);int aSize=strlen(a);printf("%s的字符串长度为:%d",a,aSize);
}