【C语言基础知识 (三)】

提示:本篇文章为C语言基础知识的个人总结,内容如若有误,请及时联系我更正。

  • 转载请注明原创,谢谢。


前言

大家好,我是小明,今天总结的是C语言基础知识的相关知识。


在这里插入图片描述

提示:以下是本篇文章正文内容:

一、输入输出

要了解输入和输出,我们就得先明白什么是顺序结构。顺序结构是指代码按照从上到下的顺序依次执行,每行代码的执行顺序是确定的,不会跳过或重复执行。

1. 从主函数main开始执行,按照代码的编写顺序逐行执行。
2. 执行一行代码后,程序将自动转移到下一行代码。
3. 函数的调用会暂停当前函数的执行,转而执行被调用的函数,直到返回到调用函数的位置。
4. 函数执行完毕后,将返回到调用函数的下一行代码继续执行。

顺序结构是C语言中最基本的控制结构,它允许程序按照指定的顺序执行操作。通过合理地组织顺序结构,可以实现复杂的计算逻辑和功能。

#include <stdio.h>
int main() 
{
    
    
    int a = 2;
    int b = 3;
    int c;

    c = a + b;
    printf("a与b的和是: %d\n", c);

    return 0;
}

C语言本身不提供输入输出函数,输入输出操作是由C语言函数库中的输入、输出函数来实现的。

1. 输出函数

在C语言中可以使用printf( )、putchar( )、puts( )等函数进行数据输出。

(1) printf函数

C语言中最基础的数据输出函数是printf函数,其功能是按照用户指定的格式,把指定的数据输出到屏幕上,printf函数的格式为:

printf("格式控制字符串",输出表项);
//功能:向显示器输出数据

其中,“输出表项”的作用是将要输出的数据转换为指定的格式输出。它总是由“%”符号开始,紧跟其后是格式描述符。

常见格式字符 说明
c 输出一个字符
s 输出字符串中的字符,直到遇到‘\0’
d 输出十进制整数
ld 输出长整型数
o 输出无符号的八进制数
x或X 输出无符号的十六进制数
u 输出无符号的十进制整数
f 输出单精度实数
lf 输出双精度实数

例:

#include<stdio.h>
int main()
{
    
    
	int a = 255;
	printf("%d\n",a);// d 十进制数
	printf("%x\n", a);// x 十六进制无符号整数
	printf("%o\n", a);// o 八进制无符号整数
	printf("%u\n", a);// u 无符号十进制整数

	char b = 65;
	printf("%c\n",b);//字符

	printf("%s\n","ABC");//字符串

	float d = 456.789;
	printf("%f\n",d);//单精度的实数
	printf("%lf\n", d);//双精度的实数

	printf("%%");//百分号本身

	return 0;
}

运行结果:在这里插入图片描述

(2) putchar函数

putchar函数用于在屏幕上输出一个字符。格式为:

putchar(ch);
//其中的ch必须是一个字符变量或常量

(3) puts函数

puts函数用于在屏幕上输出一个字符串。格式为:

putchar(str);
//其中的str必须是一个字符变量或常量

2. 输入函数

在C语言中可以使用scanf( )、getchar( )、gets( )等函数进行数据输入。

(1) scanf函数

scanf函数是C语言提供的标准输入函数,它的作用是在终端设备( 或系统隐含指定的输入设备 ) 上输入数据 。其一般调用形式如下:

scanf("格式控制串",输入表项);

其中scanf是函数名。“格式控制串” 要用双引号括起来,其作用是指定输入时的数据转换格式,即格式转换说明。格式转换说明也由 “%” 符号开始,其后是格式描述符。
“输入项表” 中的各输入项用逗号隔开,各输入项只能是合法的地址表达式,也就是说, 输入项必须是某个存储单元的地址。如果不是地址,要使用“ &” 求地址运算符,如&a就是取变量a的地址。
取地址符一定不能省

常见格式字符 说明
c s输入一个字符
s 输入字符串
d 输入十进制整数
i 输入整数,整数可以是带前导0的八进制数,带前导0x(或0X)的十六进制数
ld 输入长整型数
o 以八进制形式输入整数
x 以十六进制形式输入整数
u 输入无符号的十进制整数
f 输入单精度实数
lf 输入双精度实数

调用scanf函数输入数据时,要注意一下几点:
在这里插入图片描述

(2) getchar函数

getchar函数每次只读取一个字符。格式为:

ch = getchar();
//其中,ch必须是一个字符型变量

getchar函数读取字符时,在输入完字符后,必须按Enter键,程序才会读取该字符。

(3) gets函数

gets函数每次只读取一个字符串。格式为:

gets(str);
//其中,stt必须是一个字符串变量

gets函数和scanf函数的区别是:使用gets函数输入的字符串可以有空格,而scanf(“%s”,str)不能输入含空格的字符串。

3. 域宽(修饰符)

众所周知,在C语言中,我们经常遇到需要输入年月日的时候,需要指定的长度,还有小数点后默认的位数是6位,那么我们平时做题时会遇到求平均值,然后保留两位小数等等,都需要域宽。

  • 例一:
    printf("%5d", 99);
    //输出:   99 (前有三个空格)

当 输出内容 小于 域宽 时,向右对齐,左边补空格。
如上,域宽为5 ,输出数据长度为 2 ,则左边补 5 - 2 = 3 个空格。

  • 例二:
    printf("%1d", 999);
    //输出:999(不会删除数据)

当 输出内容 大于 域宽 时,按实际位数输出,不会删减。

  • 例三:
    printf("%05d", 99);
    //输出:00099

当 输出内容 小于 域宽,且有前导时,自动补齐前导。
由例一我们可以知道,在输出99时,前面需要补空格,但是例三中有前导0,那么在输出时会自动补0,即输出 00099

运行结果:
在这里插入图片描述

  • 例四:

通过上面三个例子,我们知道了整数的域宽,那我们再了解一下小数点后的域宽格式:

#include<stdio.h>
int main()
{
    
    
    float a = 123.456;
    printf("%lf\n", a);//原样

    printf("%.1lf\n", a);//保留一位
    printf("%.2lf\n", a);//保留两位
    printf("%.3lf\n", a);//保留三位
    printf("%.4lf\n", a);//保留四位

    return 0;
}

运行结果:
在这里插入图片描述



练习:
我们常见的有年月日时,当月份和日期小于10的时候,我们只输入一位数字,但是我们想在输出的时候至少有两位,那么我们就可以这样做:

#include<stdio.h>
int main()
{
    
    
	int year = 0;
	int month = 0;
	int day = 0;
	scanf("%d,%d,%d", &year, &month, &day);
	//输入: 2023,8,21
	printf("%4d年%02d月%02d日", year, month, day);
	return 0;
}

运行结果:
在这里插入图片描述



二、选择语句

1. if 语句

#include<stdio.h>
int main()
{
    
    
    int a = 0;
    printf("你会好好学编程嘛?(选择 1 或 0 ):\n");
    scanf("%d", &a);
    if (a == 1)
    {
    
    
        printf("继续努力!斩获好offer!!!\n");
    }
    else if (a == 0)
    {
    
    
        printf("啥也不会,去工地搬砖!!!\n");
    }
    return 0;
}

2. switch 语句

#include <stdio.h>
int main()
{
    
    
    int a= 0;
    printf("你会好好学编程嘛?(选择 1 或 0 ):\n");
    scanf("%d", &a);
    switch (a)
    {
    
    
    case 1:
         printf("继续努力!斩获好offer!!!\n");
         break;
    case 0:
         printf("啥也不会,去工地搬砖!!!\n");
         break;
    }
    return 0;
}

两种选择运行结果:
在这里插入图片描述

三、循环语句

1. for 循环

#include<stdio.h>
int main()
{
    
    
    int i = 0;
    for (i = 0; i <= 10; i++)
    {
    
    
        printf("%d ", i);
    }

    return 0;
}

2. while 循环

#include<stdio.h>
int main()
{
    
    
    int i = 0;
    while(i <= 10)
    {
    
    
        printf("%d ",i);
        i++;
    }
 
    return 0;
}

3. do while 循环

#include<stdio.h>
int main()
{
    
    
    int i = 0;
    do{
    
    
        printf("%d ", i);
        i++;
    } while (i <= 10);

    return 0;
}

三段代码的运行结果都是将 0 到10打印在屏幕上 :

在这里插入图片描述




好啦,阅读到这里的朋友应该都大致看到了输入输出语句的条件格式,还有基本的选择和循环语句。
之后小明会更加详细的总结选择语句和循环语句,大家可以关注一下小明,支持一下。

完结

好啦,阅读到这里就已经看完了本期博客的全部内容了
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/mingloveyang/article/details/132357553