📜  C程序的输出| 28套(1)

📅  最后修改于: 2023-12-03 15:30:15.848000             🧑  作者: Mango

C程序的输出| 28套

简介

C程序中的输出是我们在调试和开发过程中最常见的部分。输出能够显示我们的程序在运行时的状态,验证代码的正确性,以及提供程序执行过程的反馈。在本篇文章中,我们将介绍28个C程序的输出的实例,展示不同数据类型的输出及格式化方法。

1. 输出字符型数据
#include<stdio.h>
int main()
{
    char a = 'A';
    printf("%c\n",a);
    return 0;
}

输出:

A

可以看到,使用%c格式化字符类型,可以输出字符型数据。

2. 输出整型数据
#include<stdio.h>
int main()
{
    int a = 10;
    printf("%d\n",a);
    return 0;
}

输出:

10

可以看到,使用%d格式化整型数据,可以输出整型数据。如果要输出无符号整型数据,可以使用%u格式化。

3. 输出八进制、十六进制数据
#include<stdio.h>
int main()
{
    int a = 18;
    printf("%o\n",a); //输出八进制数据
    printf("%x\n",a); //输出十六进制数据
    return 0;
}

输出:

22
12

可以看到,使用%o格式化,可以输出八进制数据。使用%x格式化,可以输出十六进制数据。

4. 输出浮点型数据
#include<stdio.h>
int main()
{
    float a = 3.14;
    printf("%f\n",a);
    return 0;
}

输出:

3.140000

可以看到,使用%f格式化,可以输出浮点型数据。如果要输出科学计数法的浮点型数据,可以使用%e格式化。

5. 输出指针类型数据
#include<stdio.h>
int main()
{
    int a = 10;
    int *p = &a;
    printf("%p\n",p);
    return 0;
}

输出:

0x7ffc4881428c

可以看到,使用%p格式化,可以输出指针类型数据。

6. 数组变量的输出
#include<stdio.h>
int main()
{
    int a[5] = {1,2,3,4,5};
    for(int i=0;i<5;i++)
    {
        printf("%d ",a[i]);
    }
    printf("\n");
    return 0;
}

输出:

1 2 3 4 5

可以看到,使用循环输出每个数组元素,可以输出数组变量的值。

7. 字符数组变量的输出
#include<stdio.h>
int main()
{
    char a[] = "hello world";
    printf("%s\n",a);
    return 0;
}

输出:

hello world

可以看到,使用%s格式化,可以输出字符数组变量的值。

8. 输出常量字符串
#include<stdio.h>
int main()
{
    printf("hello world\n");
    return 0;
}

输出:

hello world

可以看到,使用双引号括起来的字符串,可以直接输出。

9. 输出转义字符
#include<stdio.h>
int main()
{
    printf("\"hello world\"\n");
    return 0;
}

输出:

"hello world"

可以看到,使用反斜杠\转义字符,可以输出转义字符。

10. 输出多变量
#include<stdio.h>
int main()
{
    int a = 10,b = 20;
    printf("%d %d\n",a,b);
    return 0;
}

输出:

10 20

可以看到,使用空格分隔的多个格式化符号,可以输出多个变量的值。

11. 输出转化字符
#include<stdio.h>
int main()
{
    printf("%c %d %o %x %f %e\n",'A',10,18,12,3.14,3.14);
    return 0;
}

输出:

A 10 22 c 3.140000 3.140000e+00

可以看到,使用不同的转化字符,可以输出不同数据类型的值。

12. 输出宽度控制
#include<stdio.h>
int main()
{
    printf("%5d\n",10);
    printf("%-5d\n",10);
    printf("%10.2f\n",3.14);
    printf("%-10.2f\n",3.14);
    return 0;
}

输出:

   10
10   
      3.14
3.14      

可以看到,使用数字控制输出宽度,可以输出不同格式的数据。

13. 输出位置控制
#include<stdio.h>
int main()
{
    printf("%d %d %d\n",1,2,3);
    printf("%*d %*d %*d\n",5,1,10,2,15,3);
    return 0;
}

输出:

1 2 3
    1          2               3

可以看到,使用*控制输出位置,可以输出不同格式的数据。

14. 输出格式控制
#include<stdio.h>
int main()
{
    printf("%s\n","hello world");
    printf("%10s\n","hello world");
    printf("%-10s\n","hello world");
    return 0;
}

输出:

hello world
hello world
hello world

可以看到,使用不同的格式控制方式,可以控制输出数据的格式。

15. 输出扩展字符集
#include<stdio.h>
int main()
{
    printf("%c\n",0x80);
    printf("%c\n",0xa2);
    printf("%c\n",0xe2);
    return 0;
} 

输出:

€
¢
â

可以看到,使用不同的扩展字符集,可以输出不同语言的文字。

16. 格式化字符串
#include<stdio.h>
int main()
{
    printf("%s %d\n","hello",10);
    char buf[100];
    sprintf(buf,"%s %d\n","hello",10);
    printf("%s",buf);
    return 0;
}

输出:

hello 10
hello 10

可以看到,使用sprintf函数,可以格式化一个字符串。

17. 输出布尔类型
#include<stdio.h>
#include<stdbool.h>
int main()
{
    bool a = true;
    bool b = false;
    printf("%d %d\n",a,b);
    return 0;
} 

输出:

1 0

可以看到,使用%d格式化布尔类型,可以输出0或1的值。

18. 输出枚举类型
#include<stdio.h>
enum color {red,yellow,green};
int main()
{
    enum color a = red;
    printf("%d\n",a);
    return 0;
} 

输出:

0

可以看到,使用%d格式化枚举类型,可以输出枚举类型的值。

19. 输出函数指针
#include<stdio.h>
int add(int a, int b){return a+b;}
int sub(int a, int b){return a-b;}
int mul(int a, int b){return a*b;}
int div(int a, int b){return a/b;}
int main()
{
    int (*p)(int,int);
    p = add;
    printf("%d\n",p(10,20));

    p = sub;
    printf("%d\n",p(10,20));

    p = mul;
    printf("%d\n",p(10,20));

    p = div;
    printf("%d\n",p(10,20));
    return 0;
} 

输出:

30
-10
200
0

可以看到,使用函数指针,可以输出不同函数的运行结果。

20. 输出结构体
#include<stdio.h>
struct student 
{
    char name[20];
    int age;
    float score;
}stu = {"xiaoming",20,98.5};
int main()
{
    printf("name:%s\nage:%d\nscore:%.2f\n",stu.name,stu.age,stu.score);
    return 0;
} 

输出:

name:xiaoming
age:20
score:98.50

可以看到,使用结构体,可以输出不同的数据类型。

21. 输出变量地址
#include<stdio.h>
int main()
{
    int a = 10;
    printf("%p\n",&a);
    return 0;
} 

输出:

0x7ffed08ef28c

可以看到,使用&获取变量的地址,可以输出变量的地址。

22. 输出变量大小
#include<stdio.h>
int main()
{
    int a;
    printf("int:%ld\n",sizeof(a));
    short b;
    printf("short:%ld\n",sizeof(b));
    long long c;
    printf("long long:%ld\n",sizeof(c));
    float d;
    printf("float:%ld\n",sizeof(d));
    double e;
    printf("double:%ld\n",sizeof(e));
    char f;
    printf("char:%ld\n",sizeof(f));
    return 0;
} 

输出:

int:4
short:2
long long:8
float:4
double:8
char:1

可以看到,使用sizeof获取变量的大小,可以输出变量的大小。

23. 输出宽字符型数据
#include<stdio.h>
#include<wchar.h>
int main()
{
    wchar_t a = L'中';
    printf("%lc\n",a);
    return 0;
}

输出:

可以看到,使用%lc格式化宽字符型数据,可以输出宽字符型数据。

24. 输出变长参数
#include<stdio.h>
#include<stdarg.h>
int sum(int count,...)
{
    int s = 0;
    va_list args;
    va_start(args,count);
    for(int i=0;i<count;i++)
    {
        s += va_arg(args,int);
    }
    va_end(args);
    return s;
}
int main()
{
    printf("%d\n",sum(3,1,2,3));
    printf("%d\n",sum(5,1,2,3,4,5));
    return 0;
} 

输出:

6
15

可以看到,使用stdarg.h实现变长参数的输出。

25. 输出日期时间
#include<stdio.h>
#include<time.h>
int main()
{
    time_t timep;
    struct tm *p_curtime;
    time(&timep);
    p_curtime = localtime(&timep);
    printf("Data: %d-%d-%d Week: %d  Time: %d:%d:%d\n",(1900+p_curtime->tm_year),p_curtime->tm_mon,p_curtime->tm_mday,p_curtime->tm_wday,p_curtime->tm_hour,p_curtime->tm_min,p_curtime->tm_sec);
    return 0;
} 

输出:

Data: 2022-9-25 Week: 0  Time: 15:19:54

可以看到,使用time.hstruct tm输出日期和时间。

26. 输出进度条
#include<stdio.h>
#include<windows.h>

void setchar(char c,int n)
{
    for(int i=0;i<n;i++)
        printf("%c",c);
}
void progressbar(int x,int y)
{
    float z = (float)x/(float)y;
    printf("[");
    setchar('=',z*50);
    printf(">%0.2f%%]",z*100);
}

int main()
{
    for(int i=0;i<=100;i++)
    {
        progressbar(i,100);
        Sleep(100);
        printf("\r");
    }
    printf("\n");
    return 0;
} 

可以看到,使用函数实现进度条的输出。

27. 输出彩色字符
#include<stdio.h>
int main()
{
    printf("\033[42;31mhello world\033[0m\n");
    return 0;
}

可以看到,使用ANSI码实现彩色字符的输出。

28. 输出图形字符
#include<stdio.h>
#include<conio.h>
int main()
{
    printf("%c",218); printf("%c",196); printf("%c",196); printf("%c",191); printf("\n");
    printf("%c",179); printf("  "); printf("%c",179); printf("\n");
    printf("%c",179); printf("  "); printf("%c",179); printf("\n");
    printf("%c",179); printf("  "); printf("%c",179); printf("\n");
    printf("%c",179); printf("  "); printf("%c",179); printf("\n");
    printf("%c",179); printf("  "); printf("%c",179); printf("\n");
    printf("%c",179); printf("  "); printf("%c",179); printf("\n");
    printf("%c",179); printf("  "); printf("%c",179); printf("\n");
    printf("%c",179); printf("  "); printf("%c",179); printf("\n");
    printf("%c",192); printf("%c",196); printf("%c",196); printf("%c",217); printf("\n");
    return 0;
}

可以看到,使用ASCII码实现图形字符的输出。