跟我学C语言之顺序结构(下)

嵌入式技术

1333人已加入

描述

  hi!这里是渔火。今天我们接续来讲 C 语言顺序结构。


我们来看下整型数据的输出和输入。

【1.1】整型数据的输出


#include
//2023.1.31渔火 Linux迷 www.linuxmi.com
int main()
{
  int x=888;
  long int y=66880;
  printf("x=%d,y=%ld
",x,y);
  printf("x=%o,y=%lo
",x,y);
  printf("x=%#x,b=%#lx
",x,y);
  printf("x=%d,y=%ld
",x);
  printf("x+y=%ld
",x+y,y);
  printf("输出结束!
");
        //2023.1.31渔火 Linux迷 www.linuxmi.com
  return 0;
}
运行

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
 gcc linuxmi.c -o linuxmi.out -Wformat=0
  结果如下:

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                                     
 ./linuxmi.out
x=888,y=66880
x=1570,y=202500
x=0x378,b=0x10540
x=888,y=0
x+y=67768
输出结束!
C语言

分析: printf("x=%d,y=%ld ",x,y); 这行代码是以十进制形式输出的。

printf("x=%o,y=%lo ",x,y); 这行代码是以八进制形式输出的。

printf("x=%#x,b=%#lx ",x,y); 这行代码是以十六进制带前缀Ox形式输出的。

printf("x=%d,y=%ld ",x); 这行代码格式字符多于输出项,输出结果表明,当格式字符的个数多余输出项时,多余格式字符的位置将会输出一个不确定的值。


【2.1】整型数据的输入

#include
//2023.1.31渔火 Linux迷 www.linuxmi.com
int main()
{
  int x,y;
  long int c;
  scanf("%d%d%ld",&x,&y,&c);
  printf("x=%d,y=%d,c=%ld
",x,y,c);
          //2023.1.31渔火 Linux迷 www.linuxmi.com
  return 0;
}
(1)如果输入12 23 34,那么运行结果如下:

C语言
(2)如果输入12,23 34,那么运行结果如下:

C语言


分析:这是由于在输入“12,23 34”时,存在非数字符号”,“,scanf() 函数在遇到非法输入时认为数据输入结束,因此将12赋值给变量x,而后面的数据将会被舍弃,变量 y 和 c 没有正确赋值,因此 y 和 c 的值是不可预知的。 注意:scanf() 函数中的格式控制字符串”%d%d%ld“指明需输入两个 int 型数据和一个 long 型数据,且格式控制字符串中只有格式字符串,没有普通字符,因此要使变量x,y,c得到正确的结果,输入的数据之间需用空格、Tab键、或回车键进行分割。 接下来我们来看下实型数据的输入输出


【2.1】实型数据的输入输出:

#include
//2023.1.31渔火 Linux迷 www.linuxmi.com
int main()
{
  float f;
  double d;
  scanf("%f%lf",&f,&d);
  printf("f=%f,d=%f
",f,d);
  printf("f=%e,d=%e
",f,d);
  printf("f=%4.2f,d=%.3f
",f,d);
          //2023.1.31渔火 Linux迷 www.linuxmi.com 
  return 0;
}
如果输入201.3654 56987.685102345,那么运行结果如下: C语言


分析:第一个数据201.3654赋值给float型变量f,第二个数据56987.685102345赋值给double型变量d。 printf("f=%f,d=%f ",f,d); 此处输出分别以小数形式输出变量f和d的值并保留6位小数。 printf("f=%e,d=%e ",f,d);此处输出分别以指数形式输出f和d的值。



printf("f=%4.2f,d=%.3f ",f,d);此处输出,"%4.2f"要求保留2位小数且输出宽度是4,此时变量f的实际位数大于4,则保留2位小数后按实际位数输出,”%.3f“要求保留3位小数输出。



字符型数据的输入输出可以调用函数getchar()、scanf()和putchar()、printf()。其中getchar()和putchar()函数只能适用于单个字符的输入输出,scanf()和printf()函数可以用于多个字符的输入输出。


【3.1】字符型数据的输入输出

#include
//2023.1.31渔火 Linux迷 www.linuxmi.com
int main()
{
  char a,b,c;
  scanf("%c%c%c",&a,&b,&c);
  printf("a=%3c,b=%c,c=%c
",a,b,c);
          //2023.1.31渔火 Linux迷 www.linuxmi.com 
  return 0;
}
如果输入x y z,那么运行结果如下:


C语言

分析:这是由于在输入字符数据时,若格式控制字符串中没有非格式字符,则认为所有输入的字符均为有效字符。

(1)getchar()函数,设ch是字符型变量,函数getchar()的一般调用格式为:ch=getchar()。

(2)putchar()函数。函数putchar()的一般调用格式为:puchar(输出参数)。

【3.2】由键盘输入一个字符,将其输出到其屏幕::

#include
//2023.1.31渔火 Linux迷 www.linuxmi.com
int main()
{
  char ch;
  ch=getchar();
  putchar(ch);
      //2023.1.31渔火 Linux迷 www.linuxmi.com
  return 0;
}
运行结果如下:


C语言
C 语言处理系统提供了许多实现编好的库函数,供用户在编程序时使用,这些事先编好的函数称之为库函数。

常用的库函数有:1、指数函数exp(e):计算e×。2、绝对值函数fabs(x),计算|x|。3、以e为底的对数函数log(x):计算lnx。4、幂函数pow(x,y)5、平方根函数sqrt(x)。

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分