c语言实例练习笔记

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

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

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

#include 
int main(){
   printf("hello world");
}

C 语言实例 - 输出整数

#include 
int main(){
   int a=1;
   printf("%d",a);
}

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

#include 
#include 
int main(){
   SetConsoleOutputCP(65001);
   char a='z';
   printf("%c",a);
}

C 语言实例 - 输出浮点数

#include 
int main(){
   float a=1.01;
   printf("%f",a);
}

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

#include 
int main(){
   double d=20.56;
   printf("%g",d);
}

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

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

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

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

c语言实例练习笔记_第1张图片

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

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

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

#include 
#include 
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

c语言实例练习笔记_第2张图片

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

#include 
#include 
#include //大小写处理 系统便准库
int main(){
   SetConsoleOutputCP(65001);
   char a;//单个字符定义不用c[]
   printf("请输入单个英文字母:");
   scanf("%c",&a);//%c单个字符
   if(isupper(a)==1){//判断输入字母是否大写  大写放回1 小写返回0
      a=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语言实例练习笔记_第3张图片

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

#include 
#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

 C 语言实例 - 判断闰年

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

闰年的定义:

1. 能被400整除的年份为闰年。
2. 能被4整除同时不能被100整除年份为闰年。
如2000年是闰年,而1900年不是!!!!!!!!
#include 
#include 
#include 
#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;
   int bfh1=year%100;
   int bfh2=year%400;
   char msg[20]={"\0"};
   if((bfh==0 &&bfh1!=0)||bfh2==0){
      strcpy(msg,"闰年");
   }else{
      strcpy(msg,"不是闰年");
   }
   printf("当前是%u:%s",year,msg);
 
   return(0);
}

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

#include 
#include 
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);
}

c语言实例练习笔记_第4张图片

计算自然数的和

for循环

#include 
#include 
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);
}

c语言实例练习笔记_第5张图片

 while do

#include 
#include 
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 
#include 
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 
#include 
#include 
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);
   }
}

c语言实例练习笔记_第6张图片

九九乘法口诀表

#include 
#include 
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");
   }
}

c语言实例练习笔记_第7张图片

求两数的最大公约数

#include 
#include 
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);
}

c语言实例练习笔记_第8张图片

 循环输出26个字母

#include 
#include 
int main ()
{
   SetConsoleOutputCP(65001);

   for(int i='A';i<='Z';i++){
      printf("%c ",i);
   }
}

 判断数字为几位数

#include 
#include 
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"。
}

c语言实例练习笔记_第9张图片

 计算一个数的 n 次方

#include 
#include 
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 
#include 
#include 
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 
#include 
#include 
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变成101
      endVal+=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 
#include 
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 
#include 
void reverseSentence(){
   char c;
   scanf("%c",&c);
   if(c!='\n'){
      reverseSentence();
      printf("%c",c);
   }
}
int main ()
{
   SetConsoleOutputCP(65001);
   char c;
   printf("请输入与字符串:");
   reverseSentence();
}

 自定义变量的字符串翻转

#include 
#include 

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

c语言实例练习笔记_第10张图片

 字符串长度

切记如果是自定义的字符串char a[]={'h','e','l','l','o','\0'}; 尾巴一定要有‘\0’!!!!!!!!!!!!!!!!!

#include 
#include 

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

二维数组赋值

#include 
#include 
int main (){
   SetConsoleOutputCP(65001);
   char arr[3][2];
   for(int i=0;i<3;i++){
      for(int j=0;j<2;j++){
         arr[i][j]=j;
      }
   }
   printf("sss");
}

c语言实例练习笔记_第11张图片

你可能感兴趣的:(c/c++,c语言,c++,开发语言)