C Primer Plus(5)
1、如果把字符串中的字符放入数组中,需要先创建一个数组,还要在末尾加\0。
2、 字符串常量“X”和字符常量‘X’不同,区别之一再与‘X’是基本类型(char),而“X”是派生类型(char数组);区别之二是“X”实际上由两个字符组成:‘X’和空字符\0.3、字符串是以空字符结尾的。
3、字符串是以空字符结尾的。Strlen()函数可用于获得字符串的长度(末尾的空字符不计算在内)。
4、Sizeof运算符以字节为单位返回类型或值的大小,在何时使用圆括号取决于运算对象是类型还是特定量,当运算对象是类型时,圆括号必不可少,但是对于特定量,可有可无。尽管如此,建议所有情况下都用圆括号。
5、#define指令可以创建明示常量。在使用常量时,可以用C预处理#define先声明一个变量,然后将该变量设置为所需的常量,通用格式为#define NAME value 末尾不加分号,变量名大写。另外#define还可以定义字符和字符串常量。
6、Const限定符,声明的是变量而不是常量。
7、 请求printf()函数打印数据指令要与待打印数据的类型相匹配。例如打印整数时使用%d,打印字符时使用%c。printf()的返回值可以作为赋给变量,也可以用于计算,也可以作为参数传递。
8、scanf()输入函数,用来读取不同格式的数据。使用scanf()读取基本变量类型的值,在变量名前加上一个&,如果是把字符串读入字符数组中,不要使用&。scanf()函数中的转换说明是%s时,可读取一个单词。
9、 课后习题7:#include
<stdio.h>
#include
<float.h>
int
main(void)
{
float ot_f = 1.0 / 3.0;
double ot_d = 1.0 / 3.0;
printf(" float values: ");
printf("%.4f %.12f %.16f\n", ot_f,
ot_f, ot_f);
printf("double values: ");
printf("%.4f %.12f %.16f\n", ot_d,
ot_d, ot_d);
printf("FLT_DIG: %d\n", FLT_DIG);
printf("DBL_DIG: %d\n", DBL_DIG);
return 0;
}
10、课后习题8:
#include
<stdio.h>
#include
<string.h>
#define
GALLON 3.785 //1 gallon = 3.785 L
#define
MILE 1.609 //1 mile = 1.609 km
int
main()
{
system("color 0A");
float mile; //里程数
float gallon; //汽油量
printf("\n\tPlease enter the mileage of the trip:\n");
printf("\t请输入旅行的里程km:");
scanf("\t%f",&mile);
printf("\n\tPlease enter the amount of petrol you need to consume:\n");
printf("\t请输入消耗的汽油量L:");
scanf("\t%f",&gallon);
printf("\n\tThe oil consumption is %.1f mile /gallon\n",mile / gallon);
printf("\t油耗为%.1f英里/加仑\n",mile / gallon);
printf("\n\tLitre per 100km:%.1fL\n",gallon*GALLON/(mile*MILE)*100);
printf("\t百公里消耗为:%.1f升\n",gallon*GALLON/(mile*MILE)*100);
return 0;
}
疑问:不明白第二行的输出?空格生成前导空格,为什么这么用,而且加不加这个空格输出结果都一样呀。
#include <stdio.h>
int main(void)
{
printf("%x %X %#x\n", 31, 31, 31);
printf("**%d**% d**% d**\n", 42, 42, -42);
printf("**%5d**%5.3d**%05d**%05.3d**\n", 6, 6, 6, 6);
return 0;
}

查看4道真题和解析