初识C语言(2)

1、数据的输入与输出

注:scanf、printf 函数一般要包含【#include】头文件
输入:scanf(“%d %d”, &a, &b);
输出:printf(“%d %d”, a, b);

#define _CRT_SECURE_NO_WARNINGS 1
#include

int main()
{
	int a = 0;
	int b = 0;
	int sum = 0;

	printf("请输入数字\n");

	// 输入函数scanf
	//(VS用scanf函数,必须在文件第一行写 #define _CRT_SECURE_NO_WARNINGS 1)
	scanf("%d %d", &a, &b); //第一个输入的数对应a , 第二个输入的数对应b

	sum = a + b;

	//输出函数printf
	printf("sum = %d\n", sum);

	system("pause");
	return 0;
}

2、多组输入

#define _CRT_SECURE_NO_WARNINGS 1
#include 

// scanf("%d", &i);【scanf返回的是所输入数据的个数】
// EOF等于-1
// VS中结束输入需按3个 Ctrl + Z,其他编译器按1个

int main()
{
    //写法1 【!= EOF】
    //当 scanf("%d", &a) != EOF 不成立,跳出循环
    int a, b;
    while (scanf("%d", &a) != EOF)
    {
        for (b = 0; b < a; b++)
        {
            printf("*");
        }
        printf("\n");
    }

    //写法2 【一次性输入N个数据,就 == N】
    //当 scanf("%d", &a) == 1 不成立,跳出循环
    int a, b;
    while (scanf("%d", &a) == 1)  // while (scanf("%d %d", &a,&b) == 2
    {
        for (b = 0; b < a; b++)
        {
            printf("*");
        }
        printf("\n");
    }

    return 0;
}

多组输入练习题:
1.链接: link.
2.链接: link.

3、常量

1、常量的分类

初识C语言(2)_第1张图片

(1)字面常量

    3.14;     //浮点型常量
    55;       //整型常量
	'a';      //字符常量
	"abcdef"; //字符串常量

(2)const修饰的常变量

const 类型 变量名 = 值

	const int a = 50;
	printf("a = %d\n", a); //50
	
	const float pai = 3.14f; //这里的pai是const修饰的常变量
    pai = 5.14; //是不能直接修改的,这里就会报错

注:

  • const修饰的常变量在初始化后,不能再进行赋值操作。
  • const修饰的常变量实质上是变量,从初始化赋值后该变量就确定了,不能进行改变的变量。

(3)#define定义的标识符常量

#define 标识符 常量

	#define MAX 100;
	printf("max = %d\n", MAX); //max = 100

(4)枚举常量

枚举关键字:enum(可以一 一列举的常量)

  • 性别:男、女、保密
  • 三原色:红、黄、蓝
  • 星期:1,2,3,4,5,6,7天
#include 
enum Sex
{
	//枚举类型enum Sex的可能取值
	//无赋初值,则默认从0开始排,依次向下递增1
	//若赋初值,则从赋的值开始往后排
	
	MALE,   //男
	FEMALE, //女
	SECRET  //保密
};
 
int main()
{
	printf("%d\n", MALE);   //0
	printf("%d\n", FEMALE); //1
	printf("%d\n", SECRET); //2
	
	enum Sex i = SECRET;
	printf("%d\n", i);      //2
	
	return 0;
}

4、字符串

字符a:'a'       //单引号
字符串abc:"abc" //双引号

%d - 打印整型
%s - 打印字符串
%c - 打印字符

1、字符串在结尾的位置隐藏了一个 \0 的字符
2、\0是字符串的结束标志,打印字符串打印到 \0,才会结束打印
3、定义字符数组:char 变量名 [ ] = “字符串”;

初识C语言(2)_第2张图片

注:如果数组中是字符串,输出 arr 时则不是数组的首地址,而是字符串。

#include 
#include 

int main()
{
	//求字符串长度(strlen)(要包含头文件 #include  )
	int len = strlen("abcd"); //string length
	printf("len的长度为:%d\n", len); //4
	
	return 0;
}

注:在计算字符串长度的时候 \0 是结束标志,不算作字符串内容。

初识C语言(2)_第3张图片

注:当我们求字符串长度的时候,也是要找到\0,统计的是\0之前出现的字符个数。

char arr[] = "abcdef";

printf("%d\n", strlen(arr)); // 6
printf("%d\n", sizeof(arr)); // 7

注:

  • strlen 是求字符串长度的,统计的是\0之前出现的字符个数。
  • sizeof 计算的是所占内存空间的大小,单位是字节(bite),不在乎内存中存放的是什么,\0 也占1字节。

5、转义字符

转义字符 释义
\? 在书写连续多个问号时使用,防止他们被解析成三字母词
\’ 用于表示字符常量’
\" 用于表示一个字符串内部的双引号
\\ 用于表示一个反斜杠,防止它被解释为一个转义序列符
\a 警告字符,蜂鸣
\b 退格符
\f 进纸符
\n 换行
\r 回车
\t 水平制表符
\v 垂直制表符
\ddd ddd表示1~3个八进制的数字。 如: \130 X
\xdd dd表示2个十六进制数字。 如: \x30 0

\ddd 表示1-3个八进制数字,输出时先将数字转换为10进制,再对照ASCII码表返回值
\xdd 表示1-2个十六进制数字,输出时先将数字转换为10进制,再对照ASCII码表返回值

初识C语言(2)_第4张图片

初识C语言(2)_第5张图片

易错题(1)

#include 
int main()
{
    //问题1:在屏幕上打印一个单引号',怎么做?
    //问题2:在屏幕上打印一个字符串,字符串的内容是一个双引号“,怎么做?
    printf("%c\n", '\''); // '
    printf("%s\n", "\""); // "
    return 0;
}

易错题(2)

//程序输出什么?
#include 
int main()
{
    printf("%d\n", strlen("abcdef")); //6
    // \62被解析成一个转义字符
    printf("%d\n", strlen("c:\test\628\test.c")); //14
    return 0;
}

注:c:\test\628\test. c

\ddd表示1~3个八进制的数字,8不是八进制数,所以 \628 被分成\628

6、函数

函数定义语法:
返回值类型 函数名 (函数参数)
{
函数体语句;
return 表达式;
}

题目:写一个函数求两个整数的较大值
#define _CRT_SECURE_NO_WARNINGS 1
#include

int MAX(int x, int y)
{
    if(x > y)
        return x;
    else 
        return y;
}

int main()
{
    int num1 = 10;
    int num2 = 20;
    scanf("%d %d", &num1, &num2);
    
    int max = MAX(num1, num2);
    printf("max = %d\n", max);
    
	return 0;
}

你可能感兴趣的:(C语言,c语言)