C Primer Plus 4学习记录

C Primer Plus 4

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

1.前导程序

 \#include<stdio.h>

\#include<string.h>  *//提供strlen()函数原型*

\#define DENSITY 62.4  *//人体密度*

\#include<windows.h>

int main()

{

  float weight,volume;

  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");

  scanf("%f",&weight);

  size = sizeof(name);

  letters = strlen(name);

  volume = weight/DENSITY;

  printf("Well,%s,your volume is %2.2f cubic feet.\n",name,volume);

  printf("Also,your first name has %d letters.\n",letters);

  printf("And we have %d bytes to store it.\n",size);

  getchar();

  system("pause");

  return 0 ;



}

2、编程练习

1、编写一个程序,读取一个浮点数,首先以小数点计数法打印,然后以指数计数法打印。

 #include<stdio.h>
#include<windows.h>
int main()
{
    float input;
    printf("Enter a float number:\n");
    scanf("%f",&input);
    printf("The input is %.1f or %.1e \n",input,input);
    system("pause");
    return 0 ;
}

2、提示用户输入用户名,打印名和姓的字母数,并对齐。

 #include<stdio.h>
#include<windows.h>
int main()
{
    char name[40],surname[40];
    int wname,wsurname;
    printf("Please input your first name:\n");
    scanf("%s",&name);
    printf("Please input your last name:\n");
    scanf("%s",&surname);
    wname = printf("%s",name);
    printf("");
    wsurname = printf("%s",surname);
    printf("\n%*d %*d",wname,wname,wsurname,wsurname);
    /*
    字母数的对齐用到的字符宽度需要使用‘*’修饰符来通过参数指定。
    如果使用strlen()函数,可以不定义wname,wsurname变量
    */
    system("pause");
    return 0 ;
}

3、编写一个程序,使用户输入旅行里程和消耗的汽油量,计算并显示消耗每加仑汽油行驶的英里数,保留一位小数。

 #include<stdio.h>
#define GALLON_TO_LITRE 3.785
#define MILE_TO_KM 1.609
/*使用define语句定义单位之间的换算比例*/
#include<windows.h>
int main()
{
    float range,oil;
    printf("Please input the range you traveled in mile:\n");
    scanf("%f",&range);
    printf("Please input the oil you spend in gallon:\n");
    scanf("%f",&oil);
    printf("In the USA,your oil wear is %.1f M/G.\n",range/oil);
    printf("In the Europe,your oil wear is %.1f L/100KM",(oil*GALLON_TO_LITRE)/(range*MILE_TO_KM));
    system("pause");
    return 0 ;
}

3、总结:字符串与格式化输入与输出

字符串:一个或多个字符序列

双引号表示字符串

字符串以“\0”结尾

字符数组用“[]”表示

strlen()函数用于获取字符串长度

sizeof()运算符

格式化输出:printf()函数

数据打印的转换说明符

printf()的待打印列表

printf()的转换说明修饰

printf()的标记

打印过程中的数据转换

printf()的返回值

格式化输入:scanf()函数

scanf()的参数

常量和变量

#define预处理命令

符号常量

明示常量

limits.h

float.h

 

 

 

 

 

 

 

上一篇:《C++ Primer》笔记 第三章 字符串、向量和数组


下一篇:CPrimer Plus 5学习记录