C连载15-练习一波转换模式

1、复习一下前面所学的内容

1.写出下列字符或者数字的类型以及在printf()函数中使用什么符号转换

常量 类型 转换说明(%转换符号)
12 int %d
0X3 unsigned int %#x
'C' char(其实是int) %c
2.34E07 double %e
'\040' char(实际上int) %c
7.0 double %f
6L long %ld
6.0f float %f
0x5.b6p12 float %a
012 unsigned int(八进制) %#o
2.9e05L float %Le
's' char %c
100000 long %ld
'\n' char(其实是int %c
20.0f float %f
0x44 unsigned int(十六进制) %x
-40 int %d

2.假设char ch;分别使用转义序列,十进制,八进制,十六进制来进行赋值\r

char ch = '\r';
char ch = 13;
char ch = '\015';
char ch = '\xd';

2、字符串和格式化输入输出

#include<stdio.h>
#include<string.h>  //提供strlen()函数的原型
#pragma warning(disable:4996)

#define DENSITY 62.4     //人体密度(单位:磅/立方英尺)
int D15_talkback() {
 float weight, volumn;
 int size, letters;
 char name[40];       //name是一个能够容纳40个字符的数组

 printf("Hi!What's your first name?\n");
 scanf("%s", name);
 printf("%s ,what's your weight in pounds?\n", name);
 scanf("%f", &weight);
 size = sizeof name;
 letters = strlen(name);
 volumn = weight / DENSITY;
 printf("Well ,%s ,your volumn is %2.2f cublic feet.\n", name, volumn);
 printf("Also,yout first name has %d letters,\n", letters);
 printf("and we have %d bytes to store it.\n", size);

 return 0;
}

显示结果: 15.1git

  • 该程序包含如下特性
  • (1)用数组(array)存储字符串(character string),在该程序中,用户输入的名存储到数组中,该数组占用内存40个连续的字节,每一个字节存储一个字符值。
  • (2)使用%s转换说明来处理字符串的输入和输出,注意:在scanf()中,name没有&前缀,而weight是有的。
  • (3)C预处理器把字符常量DENSITY定义为62.4
  • (4)用C函数strlen()获取字符串的长度。

3、源码:

相关文章
相关标签/搜索