问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言printf问题

发布网友 发布时间:2022-04-25 15:39

我来回答

3个回答

热心网友 时间:2023-10-13 18:56

  printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用 printf 函数之前必须包含stdio.h文件。printf函数调用的一般形式为:
printf(“格式控制字符串”, 输出表列),其中格式控制字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等。如:
  “%d”表示按十进制整型输出;
  “%ld”表示按十进制长整型输出;
  “%c”表示按字符型输出等。
   非格式字符串原样输出,在显示中起提示作用。输出表列中给出了各个输出项,要求格式字符串和各输出项在数量和类型上应该一一对应。

  看下面例子:
  #include <stdio.h>
  int main(void)
  {
  int a=88,b=89;
  printf("%d %d\n",a,b);
  printf("%d,%d\n",a,b);
  printf("%c,%c\n",a,b);
  printf("a=%d,b=%d",a,b);
  return 0;
  }
  本例中四次输出了a、b的值,但由于格式控制串不同,输出的结果也不相同。第3行的输出语句格式控制串中,两格式串%d 之间加了一个空格(非格式字符),所以输出的a、b值之间有一个空格。第4行的printf语句格式控制串中加入的是非格式字符逗号,因此输出的a、b值之间加了一个逗号。第5行的格式串要求按字符型输出a、b值。第6行中为了提示输出结果又增加了非格式字符串。
  
  在Turbo C中格式字符串的一般形式为: [标志][输出最小宽度][.精度][长度]类型。
其中方括号[]中的项为可选项。
    1) 类型:类型字符用以表示输出数据的类型,其格式符和意义如下表所示:

  格式字符 意义

  d 以十进制形式输出带符号整数(正数不输出符号)
  o 以八进制形式输出无符号整数(不输出前缀0)
  x,X 以十六进制形式输出无符号整数(不输出前缀Ox)
  u 以十进制形式输出无符号整数
  f 以小数形式输出单、双精度实数
  e,E 以指数形式输出单、双精度实数
  g,G 以%f或%e中较短的输出宽度输出单、双精度实数
  c 输出单个字符
  s 输出字符串
  
  2) 标志:标志字符为 -、+、# 和空格四种,其意义下表所示:

  标 志 意义

  - 结果左对齐,右边填空格
  + 输出符号(正号或负号)
  空格 输出值为正时冠以空格,为负时冠以负号
   ( 对c、s、d、u类无影响;
对o类,在输出时加前缀o;
# 对x类,在输出时加前缀0x;
对e、g、f 类当结果有小数时才给出小数点。)

3) 输出最小宽度:用十进制整数来表示输出的最少位数。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0。

4) 精度:精度格式符以“.”开头,后跟十进制整数。本项的意义是:如果输出数字,则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。

5) 长度:长度格式符为h、l两种,h表示按短整型量输出,l表示按长整型量输出。
 
 看下面例子:
  #include <stdio.h>
  int main(void){
  int a=15;
  long float b=123.1234567;
  double c=12345678.1234567;
  char d='p';
 printf("a=%d\n", a);

  printf("a(%%d)=%d, a(%%5d)=%5d, a(%%o)=%o, a(%%x)=%x\n\n",a,a,a,a); // %% 可以输出 %
 printf("a=%f\n", b);

  printf("b(%%f)=%f, b(%%lf)=%lf, b(%%5.4lf)=%5.4lf, b(%%e)=%e\n\n",b,b,b,b);
  printf("c=%f\n", c);
  printf("c(%%lf)=%lf, c(%%f)=%f, c(%%8.4lf)=%8.4lf\n\n",c,c,c);
  printf("d=%c\n", d);
  printf("d(%%c)=%c, d(%%8c)=%8c\n",d,d);
  return 0;
  }

  本例中:第11行以四种格式输出整型变量a的值,其中“%5d ”要求输出宽度为5,而a值为15,只有两位故补三个空格。
  第14行以四种格式输出实型量b的值。其中“%f”和“%lf ”格式的输出相同,说明“l”符对“f”类型无影响。“%5.4lf”指定输出宽度为5,精度为4,由于实际长度超过5,故应该按实际位数输出,小数位数超过4位部分被截去。
  第17行输出双精度实数,“%8.4lf ”由于指定精度为4位,故截去了超过4位的部分。
  第20行输出字符量d,其中“%8c ”指定输出宽度为8,故在输出字符p之前补加7个空格。

热心网友 时间:2023-10-13 18:56

第一个是8,第二个是5
第一个程序输出函数printf("%d\n",(a=a+1,b+a,b+1));最后面是一个逗号表达式,只取最后一个表达式b+1,故结果为8
第二个程序输出函数printf("%d\n",a=a+1,b+a,b+1);只输出一个数字,却有3个表达式,所以只打印第一个表达式的值a=a+1,故结果为5

热心网友 时间:2023-10-13 18:57

上一个是逗号运算符,下一个不是
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
月经不尽褐色的是怎么回事 月经前后有褐色分泌物是什么原因 二十四节气的重要意义24节气在生活中的作用 你来我往,猜一个数字? 姓谭女孩起什么名字最优雅 男孩姓谭的好名字 黄家驹在beyond的地位 黄家驹是Beyond的主唱吗? 老板对员工的新年微信 每次感冒和一些小毛病,我都是选择运动出身汗,让它自然好,请问这种方 ... c语言printf输出形式 C语言如何用printf打印数组问题 C语言 printf C语言printf的用法 c语言中printf? C语言中,printf的使用格式 c语言printf用法 printf在c语言中什么意思? 我的脸盲陛下哪里看 腾讯会议怎么用prprlive 完美世界怎么下载啊 腾讯大王卡短视频平台有哪些 腾讯视频和国际版会员通用吗 美团短信可能是新型诈骗手段,*连发紧急预警,这是怎么回事? 美团买菜商户找回个人信息验证码 朋友用我手机号说什么登陆美团但是美团发个验证信息 有个验证码 动态登陆验证码 这是干什么的 对我有 美团网商家要求先验证有没有风险 美团用微信支付怎么突然要身份认证是什么意思? 怎么提醒客人美团消费先验证 为什么我的酷狗音乐打开,状态栏没有图标? 手机QQ,微信发出语音没声音 什么是LoRa网关? LoRa网关和ZETA网关比较有什么区别? ZETA网关和LoRa网关对比有什么不同? 如何才能得到比特币 LoRa网关价格是多少? 比特币现金(BCC)是怎样的货币,怎么能获得它? LoRa网关支持的WAN连接方式有哪些? LoRa网关一般供电范围是多少? 怎么样投资比特币现金bitcoin cash(BCC)? 杀手74号之日本篇小说txt全集免费下载 企业为员工缴纳生育保险 青岛一公司鼓励员工生育三胎,有哪些奖励政策? 公司如何给员工办理生育金领取 以公司名义给员工生小孩的红包多少钱合适? 重庆一公司为鼓励员工生三胎,制定了哪些奖励措施? 山东青岛一一公司女员工生三胎奖励10万元,你觉得此公司的待遇怎么样? 5家知名企业出招鼓励员工生育,企业为鼓励员工生育有多努力? 青岛一公司鼓励女员工生三胎奖励10万元,网友对此有何表示? 青岛一公司鼓励员工生三胎,一次性奖励10万元,这个奖励给你,你会生吗?