C语言基础入门

C语言基础入门

  1. 输出
  2. 颜色
  3. 加法
  4. 变量
  5. 数据输出
  6. 读入
  7. 数据类型
  8. 注释
  9. 运算符
  10. if else语句
  11. while语句
  12. for语句
  13. 数组
  14. 字符
  15. 标识符

注:相关的代码和在安装包皆在资源里。

输出

printf("hello");

printf 等同于中文里的
()等同于我们的嘴巴。
“” 等同于我们中文里的双引号。
; 等同于中文里的句号。
注:代码里的标点为英文的
其次在这个输出语句之外还应有一个完整的框架:

//C001
#include <stdio.h>  
#include <stdlib.h>  
int main ()  
{  
     printf("hello");  
     return 0;  
}  

例题

//C002
*
**
***
//C003
输出 早上好

注:\n 表示换行

system("pause");//可以使Dos窗口暂停不闪退
sleep(5000);//可以使窗口暂停5秒

颜色

黑底紫字

//COO4
#include <stdio.h>
#include <stdlib.h>
int main()
{
    system("color 5");
    printf("hello");
    return 0;
}

白底紫字

//C005
#include <stdio.h>
#include <stdlib.h>
int main()
{
    system("color f5");
    printf("hello");
    return 0;
}

在 color 后面有两个一位数字,第一位表示背景颜色,第二位表示文字颜色。如果只有一位则表示文字颜色。一位数字用十六进制表示。

system("color 12");

加法

//C006
int a,b,c;//定义三个变量
a=1;
b=2;//赋值符号 ```=```,并非数学中的等于
c=a+b;
printf("%d",c);// %d 代表要输出一个具体数值

例题

  • 321-123 //C007
  • 5+3+1= //C008
  • 2782*2132 //C009

变量

int a;
int a,b,c;

int是 integer(整数) 的缩写。

float a;//定义浮点数
a=1.5;
printf("%f",a);//输出整数用 %d ,输出小数用 %f 

例题

  • 1.2*1.5 //C010
  • 5.2+3.1 //C011
  • 1.2*(10*10) //C012

数据输出

如何输出整个等式 如:1+2=3
printf("%d+%d=%d",a,b,c);
printf 语句只会输出双引号里面的部分双引号之外的部分起补充说明的部分。

读入

scanf ("%d",&a);
scanf ("%d",&b);

scanf ("%d %d",&a,&b);

scanf 和 printf 语法类似, & 为取地址符。

例题

  • 写一个加法计算器 \C013

数据类型

数据类型 数据
int 整数
float 浮点数
double 极大和极小的浮点数
char 字符

double 的占位符是 %lf
float 的占位符是 %f
且 double 比 float 更加精确
char 定义字符

char c='x';//字符两边要加单引号

注释

// 只能注释到本行末尾
/* */ 可以跨行

运算符

符号 名称
+
-
*
/
== 等于
> 大于
< 小于
>= 大于等于
<= 小于等于
!= 不等于
&&
ll

大于小于还是等于

符号 名称
= 赋值
== 等于
> 大于
< 小于
>= 大于等于
<= 小于等于
!= 不等于

注:只有大于等于小于等于没有等于小于等于大于

并且 或

判断一个数是7的倍数或者是末尾有7 //C016

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

&& 表示并且
|| 表示或者

if 和 else 的用法

//如果 a 大于 0 ,则显示 yes 应该怎么表示
if (a>0)
    printf("yes");
else
    printf("no");

if 表示如果, else 表示否则。

if (条件) 语句;
else    语句;

例题

  • 判断一个数是否为正数 //C014

余数

余数的符号为 %

例题

  • 判断一个数是否为偶数 //C015

while语句

while(条件)
{
    语句
}

当条件为真,则不断执行语句

while(1>0)
{
    printf("hi");
}

例题

  • 不断输出0 1 //C017

如果我们只想让它成立10次呢!这个时候我们需要变量使其不断循环10次。

int a;
a=1;
while(a<=10>)
{
    printf("hi");
    a=a+1;
}

暂停语句

sleep(1000);//1000毫秒为1秒

清屏语句

system("cls");

for 语句

for(a=1;a<=10;a=a+1)

例题

  • 1×······×10的乘积 //C018

break可提前终止 for 、while 、do-while 循环

for(i=1;i<=10;i++)
{
    if(i=6)
    {
        break;
    }
}

continue强迫程序提前进入下一轮循环

for(i=1;i<=100;i++)
{
    if(i%2==1)
    {
        continue;
    }
}

数组

int a[10];

数组可以一次定义多个变量, [ ] 中的数为定义变量的个数。如上这10个变量分别用a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] 来表示。
例题

  • 输出5个数然后逆向输出 //C019

二维数组

int a[3][4];
a[0][0] a[0][1] a[0][2] a[0][3]
a[1][0]
a[2][0]

上面为一个3行4列的矩阵

例题

  • 如何为这个二维数组赋值(提示:两个for循环嵌套) //C020

数组的初始化

申请一个大小为10的整数数组依次初始化为0~9

int a[10],i;
for(i=0;i<=9;i++)
    a[i]=i;

int a[10]={0,1,2,3,4,5,6,7,8,9};

假如将数组里所有位置都初始化为0:

int a[10]={0};

但是如果全部初始化为别的就不可以这样了,编译器从a[0]开始按顺序赋值,没有具体值的将默认为0。
如果不进行初始化则默认值为随机值。

二位数组的初始化

int a[3][5]={{1,2,3},{4,5}},i,j;
for(i=0;i<=2;i++)
{
    for(j=0;j<=4;j++)
    {
        printf("%d",a[i][j]);
    }
        printf("\n");
}

每一个大括号代表一行

读取字符

最原始的方法

char a;
scanf("/c",&a);

新方法

char a;
a=getchar() //读取一个字符后等待用户回车结束
a=getche()  //读取一个字符不用回车
a=getch()   //读取一个字符不用回车

字符的本质

//C021
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i;
    for(i=0;i<=127;i++)
    {
        printf("%d %c\n",i,i);
    }
    system("pause");
    return 0;
}

我们观察发现
字符的数字代表不同的含义:
十进制的48至57代表字符0至9

读取字符串

下述数组有10个小空间a[0]~a[9],虽然有10个小空间但是我们只能存储9个字符,最后一个小空间需要用来存储字符串的结束标记 ‘\0’ 。特别,这里的a之前没有取址符 & 。
读取字符串时我们就要用到之前所学的数组

char a[10];
scanf("%s",a);

或者

char a[10;]
gets(a);

两者的区别是前者遇到空格就会停止而后者会读取一整行
同样输出字符串时除 printf以外还有

puts(a);//其输出时会在末尾自动切换下一行,相当于
printf("%s\n",a);

如何给一个字符数组赋初始值

char a[10]={"hello"};

字符数组

字符数组和二维数组类似

char a[5][11];

可以存储5个长度不超过10的字符串
字符数组初始化

char a[2][10]={"hello"
               "world"};

输出时我们可以用到 for 循环和 puts()

for(i=0;i<=1;i++)
    puts(a[i]);

标识符

保留字

char short int unsigned long float double struct union void enum signed const volatile typedef auto register static extern break case continue default do else for goto if return switch while sizeof _Bool _Complex _Imaginary inline restrict

预定义标识

指C语言中有特定含义的标识符,例如函数printf、scanf、sin、isalum等。

用户标识符

(1)必须是字母(A~Z及a~z)、数字(0~9)和下画线的组合。
(2)首字符不能是数字,但可以是字母或者下画线。
(3)不能与保留字相同。
(4)标识符对大小写敏感,即严格区分大小写。

保留字

char short int unsigned long float double struct union void enum signed const volatile typedef auto register static extern break case continue default do else for goto if return switch while sizeof _Bool _Complex _Imaginary inline restrict

预定义标识

指C语言中有特定含义的标识符,例如函数printf、scanf、sin、isalum等。

用户标识符

(1)必须是字母(A~Z及a~z)、数字(0~9)和下画线的组合。
(2)首字符不能是数字,但可以是字母或者下画线。
(3)不能与保留字相同。
(4)标识符对大小写敏感,即严格区分大小写。

发布了5 篇原创文章 · 获赞 2 · 访问量 89

猜你喜欢

转载自blog.csdn.net/Btbsja/article/details/104258220