ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

学习笔记day1

2022-01-05 21:03:27  阅读:165  来源: 互联网

标签:main int 笔记 else 学习 str printf day1 光标


c语言

1.1开发环境

VMware:虚拟机(模拟计算机)

linux_env:镜像文件

Terminal

用户和系统进行交互的一个工具

Is

列出当前目录下的文件

vi编辑器的使用

vi专门用来写代码的工具

vi hello.c  //如果hello.c存在就打开,不存在就新建

命令行模式、底行模式转为插入模式:

  • i:进入插入模式,在光标所在位置前面开始新增资料

  • I:从光标所在列的第一个非空白字符前面开始插入资料

  • o:在光标所在列新增一列并进入插入模式

  • O:在光标所在列新增一列并进入编辑模式

  • a:从光标所在位置后面开始新增资料

  • A:从光标所在列最后面的地方开始新增资料

vi hello.c          //新建一个c文件
//helloworld文件
gcc hello.c     //编译文件 生成可执行文件
./a.out //运行可执行文件

vi文件操作指令

  • :q 结束编辑退出vi

  • :q!不保存编辑过的文档

  • :w 保存文档,其后可加要保存的文件名

  • :wq 保存文档并退出

  • :zz 同上

  • :x 同上

vi的删除/修改与复制

  • 剪切

  • nx 剪切从光标所在的字符开始的n个字符

  • ncb 剪切光标所在的n个单词

  • ncw 剪切光标所在的n个单词

  • c$ 剪切从光标所在的字符到行尾的所有字符

  • ndd 剪切自光标所在行开始的n行,如果不够则到字符段截止为止

  • 复制

  • y$ 复制从光标所在的字符到行尾

  • nyy 复制下n行

  • 粘贴

  • p 将缓冲区内的字符粘贴到光标所在位置

  • u 撤销

C语言注释

//单行注释

/*...*/多行注释

C语言变量

变量定义及输出

int a;//定义一个变两
int a = 100;//定义并赋初值
#include<stdio.h>
int main()
{
   int a = 100;//定义整数
   printf("a is %d\n",a);//输出小数
}
#include<stdio.h>
int main()
{
   float b = 1.02;//定义小数
   printf("b is %f\n",b);//输出小数
   retern 0;
}

数值转换

数的表示形式

  • 2进制

  • 8进制 在c语言中0开头表示8进制

  • 10进制 0x开头表示16进制

  • 16进制

输入语句

#include<stdio.h>
int main()
{
   int num1,num2,result;
   scanf("%d%d",&num1,&num2);
   result = num1%num2;
   printf("result is %d\n",result);
   return 0;
}

求和

#include<stdio.h>
int main()
{
   int a,b,c;
   scanf("%d%d%d",&a,&b,&c);
   int sum = a+b+c;
   printf("sum is %d",sum);
   return 0;
}

求平均值

#include<stdio.h>
int main()
{
   float a,b,c;
   scanf("%d%d%d",&a,&b,&c);
   float average = (a+b+c)/3.0;
   printf("average is %f\n",average);
   return 0;
}

逻辑表达式

  • == 相等

  • != 不相等

  • >

  • <

  • >=

  • <=

例子:输入一个数,判断此数是不是0

#include<stdio.h>
int main()
{
   int a;
   scanf("%d",&a);
   if(a==0)
  {
       printf("yes\n");
  }
   else
  {
       printf("no\n");
  }
   return 0;
}

例子:

  1. 显示:“please input a number”

  2. 用户输入

  3. 判断用户输入的数是不是>90

     

#include<stdio.h>
int main()
{
   printf("please input a number\n");
   int a,*p;
   float b;
   char str[10]="";
   scanf("%s",str);
   if(strchr(str,'.')==NULL)
  {
       sscanf(str,"%d",&a);
       p=&a;
  }
   else
  {
       sscanf(str,"%d",&a);
       p=&b;
  }
   
   

       
}

 

练习:用户输入一个整数,判断这个数是不是偶数,如果是偶数,打印evev,如果是奇数打印odd

继续:如果是偶数判断这个数的一般是不是偶数

#include<stdio.h>
int main()
{
   int a;
   scanf("%d",&a);
   if(a%2!=0)
  {
       printf("odd\n");
  }
   else
  {
       printf("even\n");
       if((a/2)%2!=0)
      {
           printf("a/2 is odd\n");
      }
       else
      {
           printf("a/2 is even\n");
      }
  }
   return 0;
}
//函数写法?
#include<stdio.h>
int isevev(int a)
{
   if((a/2)%2!=0)
      {
           printf("odd");
      }
       else
      {
           printf("even");
      }
}
int main()
{
   int a;
   scanf("%d",&a);
   isevev(a);
   isevev(a/2);
   return 0;
}

//作业:

  1. 判断一个数是否满足条件: a) 是7的倍数 b) 不是3的倍数 如果满足,输出yes,不满足输出no

  2. 计算某一时间的下一秒(笔试编程题) 20 59 59 下一秒 21:00:00 要求,如果用户输入了错误的时间,退出 25点退出, 61秒退出

          ```c
        #include<stdio.h>
        int main()
        {
            int a,b,c;
            scanf("%d%d%d",&a&b&c);
            if(a<24)
            {
                if(b<60)
                {
                    if(c<60)
                    {
                        c++;
                    }
                    else
                    {
                        return 0;
                    }
                }
                else
                {
                      return 0;
                }
            }
            else
            {
                return 0;
            }
            if(c>=60)
            {
                c=0;
                b++;
            }
            if(b>=60)
            {
                b=0;
                a++;
            }
            if(c>=24)
            {
                a=0
            }
            if(a<10)
            {
                printf("0%d",a);
            }
            else
            {
                printf("%d",a);
            }
            printf(":");
            if(b<10)
            {
                printf("0%d",b);
            }
            else
            {
                printf("%d",b);
            }
            printf(":");
            if(c<10)
            {
                printf("0%d",c);
            }
            else
            {
                printf("%d",c);
            }
            return 0;      
        }
        ```

     

#include<stdio.h>
int a;
double b;
int if_even()
{
   int *p;
   scanf("%s",str);
   if(strchr(str,'.')==NULL)
  {
       sscanf(str,%d,&a);
       p=&a;
       break;
  }
   else
  {
       continue;
  }
}
int main()
{
   while(1)
  {
       char str[];
       scanf("%s",str);
       if_even(str[])
  }
}

 

Gcc概述

gcc编译流程

  1. 预处理

  2. 编译

  3. 汇编

  4. 链接

语法:gcc[option|filename]

option

-E:可以使编译器在预处理阶段结束时就停止编译

-S:能使编译器在进行完编译之后就停止

编译流程分析

  1. 预处理阶段

  • gcc-E-o [目标文件] [编译文件]

  • .i文件为经过预处理的c原始文件

  • 将头文件加入到.c文件中形成.i文件

  1. 编译阶段

  • 检查代码的规范性、是否有语法错误

  • 把代码翻译成汇编语言

  • 将.i程序翻译成.s汇编语言原始程序

  1. 汇编阶段

  • 将汇编语言转化为二进制目标代码

  1. 连接阶段

  • 连接系统函数库

  •  

标签:main,int,笔记,else,学习,str,printf,day1,光标
来源: https://www.cnblogs.com/studybabybird/p/15768819.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有