当前位置: 首页> 教育> 就业 > 古风淡雅ppt模板免费_安阳做一个网站多少钱_百度推广系统营销平台_上海企业网站seo

古风淡雅ppt模板免费_安阳做一个网站多少钱_百度推广系统营销平台_上海企业网站seo

时间:2025/7/15 9:17:51来源:https://blog.csdn.net/2301_79063670/article/details/145670468 浏览次数:0次
古风淡雅ppt模板免费_安阳做一个网站多少钱_百度推广系统营销平台_上海企业网站seo

数据的输入输出

数据的输入与输出是相对而言的,其中:

  • 从计算机向外部设备输送数据称之为输出==(output)==。通常的输出设备包括:显示器、打印机等。
  • 从外部设备向计算机输送数据称之为输入==(input)==。通常的输入设备包括:键盘、鼠标、扫描仪等。

在C语言中,输入与输出需要使用的标准输入输出库(stdio)中输入函数(scanf())、输出函数(printf())实现。

库函数已经被编译成了目标文件,在链接时与编译源程序的带的目标文件(.obj)相链接,生成可执行程序。

注意:在使用系统库函数时,要使用预处理指令#include将有关的头文件包含到用户源文件中(要放在程序的开头位置)头文件中包含了调用函数时需要的有关信息,具体的函数在编译时再去链接对应的系统库。

简单的输入与输出
用简单的printf函数输出数据

语法:

printf("格式控制",输出列表);

注意:格式控制中的格式化符号(如%d)要和输出的数据一一对应。

举例:

printf("i=%d,x=%d,y=%d\n",i,34,i+1);

①格式控制:用一对英文双引号括起来,包括两种信息:

1.格式说明:由%特定字符组成,如:%d,%f,%u等,这是格式说明符,用于说明输出项目所采用的格式。

2.普通字符:作为说明性文字、符号等,照原样显示出来。

②输出列表:输出列表中的各项目指出了所要输出的内容,可以是常量、变量、表达式。

基本的格式字符

%d 按有符号十进制整型(int)数据的实际长度输出。(十进制(0)、八进制(00)、十六进制(0x00))

%u 按无符号十进制整型(int)数据的实际长度输出。

%c 仅输出一个字符(char)

%s 输出结果是字符串,举例:printf(“%s\n”,“CHINA”);输出结果:CHINA

%s 以小数形式输出一个实数(含单双精度)。整数部分全部输出,小数部分·输出6位。

%e 也可以写作%E,以指数形式输出一个实数(含单双精度)。小数点前1位非0数字,并输出6位小数。

%hd 短整型(shaort int/short)

%hhd 字符型ASCII码,char数据对应的ASCII码值,举例:char a = ‘A’;printf(“%hhd\n”,a);输出结果:65

%lf 双精度浮点型(double)

%ld 长整型(long int/long)

%lld 长长整型(long long int /long long)

%x 十六进制,但是十六进制的前缀0x不会打印出来,举例:printf(“%x,%#x\n”,198,198);输出结果:c6,0xc6

%#x 十六进制,并且十六进制的前缀0x也会打印出来,举例;0x05

%#o 八进制,并且八进制的前缀0也会打印出来,举例:05

%p 打印内存的地址

用简单的scanf函数输入数据

语法:

scanf("格式控制",地址列表);

注意:不能传变量、常量、表达式,只能传与之对应的内存地址(首地址)

举例:

int a = 10;//定义了一个变量a
scanf("%d",&a);//&被称作取地址符,&a的意思是获取a汴梁对应的内存地址(首地址)
printf("%p\n",i);//打印输出i的内存地址(首地址)

作用:

将从键盘输入的值存入内存中所占的存储单元里。存储单元有地址标识。

说明:

  • 格式控制:含义等同于printf函数的格式控制,说明输入的数据应该使用的格式,但是格式控制中不能添加除格式化以外的字符
  • 地址列表:是由若干个地址组成的,可以是变量的地址火鹤字符串的首地址。&是取地址运算符,用于去取出变量的地址。与格式化输出一样,在格式控制中,用于说明数据格式的格式说明符以%开头,后面紧跟具体的格式。

案例:

  • 需求:从键盘中输入整数给变量a,b,c

  • 代码:

    #include <stdio.h>int main()
    {//定义三个变量a,b,c,用来接收控制台的输入int a,b,c;//加一个提示信息,效果更好printf("请输入三个整数:\n");scanf("%d,%d,%d"&a,&b,&c);printf("a=%d,b=%d,c=%d",a,b,c);return 0;
    }
    

    注意:输入的数据可用空格、tab键、回车键中的任意一种隔开
    在这里插入图片描述

  • 说明:

    • scanf函数中的“格式控制”后面应当是变量的地址,由取地址运算符&和变量名共同组成,不能仅是变量名:scanf(%f%d,&a,&b);

    • 如果“格式控制”中除了格式说明以外还有其他字符,则在输入数据是必须在对应的位置输入与之相同的字符;

      scanf(“%d,%d”,&a,&b);

      从键盘输入的时候必须输入逗号:3,4

      scanf(“%d年%d月%d日”,&year,&month,&day);

      从键盘输入时必须输入逗号:2025年2月10日

  • 用%c格式输入字符时,空格和转义字符(\n)都作为有效字符输入,应注意:

    scanf(“%c%c%c”,&a,&b,&c);

    只有输入:xyz

    才能得到a=x,b=y,c=z

  • 在输入数值型数据时,遇到空格、回车、tab键或遇到非法输入,则认为该数据结束:
    在这里插入图片描述

  • 对于unsigned型变量所需的数据,可以用%u或者%d格式输入。

复杂的输入与输出

按指定格式输出数据的宽度小数位数上下行数据按小数点对齐、用八进制、十六进制输出等。

输出数据格式的控制
整型格式说明符
  • 十进制形式(0~9)

    说明符说明数据类型
    %d和%md用于基本整型int
    %ld和%mld用于长整型long
    %u和%mu用于无符号基本整型unsigned int
    %lu和%mlu用于无符号长整型unsigned long
  • 八进制形式(0~7)

    说明符说明数据类型
    %o和%mo用于基本整型int
    %lo和%mlo用于长整型long
  • 十六进制形式(0~F)

    说明符说明数据类型
    %x和%mx用于基本整型int
    %lx和%mlx用于长整型long

m表示输出整型数据所占总宽度(即列数),其中:

①当实际数据的位数不到m位时,数据前面将用空格填满;

②若实际数据的位数大于等于m位时,则以数据的实际位数为准进行输出;

一个int型整数也可以用%u输出,反之一个unsigned型整数也可以用%d、%o、%x格式输出。按相互赋值的规则处理。

举例:

#include <stdio.h>
int main(int argc,char *argv[])
{printf("%d\n",12); // 实际只占2列,12printf("%6d\n",12); // m是正数,实际占了6列,前面不足的使用空格填充,♦♦♦♦12printf("%-6d\n",12); // m是负数,实际占了6列,后面不足的使用空格填充,12♦♦♦♦printf("%6d\n",12345678); // 如果实际的数据列宽超过了规定的列宽,列宽失效,按照实际显示,12345678return 0;
}
字符型格式说明符
  • 字符char型

    说明符说明举例
    %c或者%mc输出的字符占m列printf(“%3c\n”,‘a’);
  • 字符串型

在C语言中,是支持字符串常量的,但是不支持字符串变量。

说明符说明
%ms输出的字符串占m列,若串长>=m,全部输出:反之在串前补空格(m为补空格)
举例:printf(“%6s\n”,“hello”);//*hello
%-ms输出的字符串占m列,若串长>=m,全部输出:反之在串后补空格(m为补空格)
举例:printf(“%-6s\n”,hello); // hello*
%m.ns输出的字符串占m列。只取字符串前n各字符,不足部分串前补空格。
举例:printf(“%6.2s\n”,“hello”);//****he
%-m.ns输出的字符串占m列。只取字符串前n各字符,不足部分串后补空格。
举例:printf(“%-6.2s\n”,“hello”); // he****

注意:因为空格本身不是很好区分,使用*代替空格显示

一个整数,只要其值在0~255范围内,也可以用%c格式按其字符形式输出。这里0~127对应ASCII码。

在输出前,系统会自动将整数作为ASCII码转换成相应字符;反之,一个字符也可以输出成一个整数。

案例:

  • 要求:字符串输出
  • 代码:
#include <stdio.h>
int main()
{printf("%3s,%7.2s,%-5.3s,%.4s\n","CHINA","CHINA","CHINA","CHINA");
}
  • 运行结果:

    CHINA,*****CH,CHI**,CHIN

浮点型格式说明符

浮点型格式分为两种形式:

  • 十进制形式:%m.nf或者%-m.nf
  • 指数形式:%m.ne或者%-m.ne
  • %g或者%G形式:根据数值大小,自动选择%f或者%e中宽度较短的一种格式,不输出无意义的0

解释:

在输出浮点型数据时,格式说明符中的m表示整个数据所占的列宽,n表示小数点后面所占的位数(保留的小数位)

如果在小数点后取n位后,所规定的数据宽度m不够输出数据前面的整数部分(包括小数点),则按照实际位数进行输出。

在C语言中,用于输出单精度浮点型与双精度浮点型数据格式说明符是一样的。

案例:

  • 要求:输出浮点型数时,指定小数位。

  • 代码:

    #include <stdio.h>
    int main()
    {float f = 123.456;printf("%8.2f,%-8.2f,%8.6f,%8.2e,%g\n",f,f,f,f,f);
    }
  • 运行结果

    **123.46,123.46**,123.456001,1.23e+02,123.456

案例:

  • 要求:求3个圆的周长,输出结果时上下按小数点对齐,取两位小数。

  • 代码:

    在这里插入图片描述

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

这里是引用

案例:

  • 要求:设有如下c程序

  • 代码

    #include "stdio.h"
    main()
    {double x=34.567;printf("x=%f\n",x);// 34.567000printf("x=%d\n",x);// 27263,这种写法错误,自动类型转换异常printf("x=%d\n",(int)x);// 34
    }
  • 这个程序的实际运行结果为

    x=34.567000

    x=27263

    x=34

  • 说明:

    显然,这个程序中的第二个格式输出语句的结果是错误的,这是因为在第二个格式输出语句中,格式说明符%d是基本整型格式说明符,而输出项目是双精度型的数据,它们不是匹配的。

输入数据格式的控制
整型格式说明符
  • 十进制形式(0~9)

    说明符说明数据类型
    %d用于基本整型int
    %ld用于长整型long
    %u用于无符号基本整型unsigned int
    %lu用于无符号长整型unsigned long
  • 八进制形式(0~7)

    说明符说明数据类型
    %o用于基本整型int
    %lo用于长整型long
  • 十六进制形式(0~F)

    说明符说明数据类型
    %x用于基本整型int
    %lx用于长整型long

可见:

​ ①用于输出与输入整型数据的格式说明符是完全一致的。

​ ②与输出情形一样,对于八进制与十六进制的输入格式,主要用于输入无符号的整型数据。

浮点型格式说明符
  • 单精度浮点型:%f或者%e
  • 双精度浮点型:%lf

可见:

①与输出不同,输入时无论是单精度还是双精度浮点型,都不能用m.n来指定输出的宽度和小数点后的位数。

②可以指定输入数据所占的列数,系统自动按它截取所需的数据,如scanf(“%3d%3d”,&a,&b);当输入1234567时,a得到123,b得到456,多余的7无用。

③若在%后有一个*和一个数字,表示跳过它指定的列数,如:

scanf("%2d%*3d%3d",&a,&b);当输入12345678时,a得到12,%*3d表示调过3列,b得到678

案例:

#include <stdio.h>int main()
{int a,b;scanf("%3d%3d",&a,&b);// 输入1234567,a=123,b=456
}
  • 当用于输入整型数据的格式说明符中没有宽度说明时,则在具体输入数据时分为以下两种情况:

    ①如果各格式说明符之间没有其它字符,则在输入数据时,两个数据 之间用"空格"、或"Tab"、或"回车"来分隔。

    ②如果各格式说明符之间包含其它字符,则在输入数据时,应输入与这些字符相同的字符作为间隔。

    例如,设有如下说明

    ​ int a,b;

    ​ float c,d;

    现要利用格式输入函数输入a=12,b=78,c=12.5,d=7.6。 采用不同的格式说明,其输入数据的形式也是不同的。分别说明如下:

    • 若输入语句为 scanf(“%d%d%f%f”,&a,&b,&c,&d); (即格式说明符中没有宽度说明,各格式说明符之间也没有其他字符。)

      则输入数据的形式应为 12 78 12.5 7.6 (两个数据之间用空格来分隔,当然也可用“Tab”或“回车”来分隔。)

    • 若输入语句为 scanf(“%d,%d,%f,%f”,&a,&b,&c,&d);(格式说明符中没有宽度说明,但各格式说明符之间有其它字符,即逗号)

      则输入数据的形式应为 12,78,12.5,7.6 ↲ (即在输入的两个数据之间同时要输入逗号。)

    • 若输入语句 scanf(“a=%d,b=%d,c=%f,d=%f”,&a,&b,&c,&d); (即格式说明符中没有宽度说明,但各格式说明符之间有其它字符。)

      输入数据的形式应为 a=12,b=78,c=12.5,d=7.6 ↲ (即在输入的两个数据之间同时要输入这些非格式说明符的字符。)

  • 在用于输入的实型格式说明符中不能用m.n来指定输入的宽度和小数点后的位数(这是与输出的不同之处)。

    例如: scanf("%7.2f",&a);× 此用法是错误的

  • 为了便于程序执行过程中从键盘输入数据,在一个C程序开始执行时,系统就在计算机内存中开辟了一个输入缓冲区,用于暂存从键盘输入的数据。开始时该输入缓冲区是空的。当执行到一个输入函数时,就检查输入缓冲区中是否有数据;

关键字:古风淡雅ppt模板免费_安阳做一个网站多少钱_百度推广系统营销平台_上海企业网站seo

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: