第一次读这本书的时候是大三初,现在打算重读一遍!。
第一章 导言
1. 学习一门新程序设计语言的唯一途径就是用它来写程序。
2. 每个程序都从main函数的起点开始执行。
3. 在C语言中,所有变量必须先声明后使用。
4. C语言中的基本数据类型的大小取决于具体机器。
5. 在允许使用某种类型变量值的任何场合,都可以使用该类型的更复杂的表达式。
6. 标准库的输入/输出模型是按照字符流的方式处理,每行字符都有0个或者多个字符组成,末尾是换行符。
7. 函数为计算的封装提供了一种简便的方法,函数都是通过传值调用。
#include <stdio.h>
// 文件复制
int main() {
int c;
while ((c = getchar()) != EOF) {
putchar(c);
}
return 0;
}
/*
* 编写一个将输入复制到输出的程序,
* 并将其中连续的多个空格用一个空格代替.
*/
#include <stdio.h>
int main() {
int c;
int flag = 0; // 当前字符是否为空格
while ((c = getchar()) != EOF) {
if ((c == ‘ ‘ && flag == 0) || (c != ‘ ‘)) {
putchar(c);
flag = !flag;
}
}
return 0;
}
#include <stdio.h>
#define IN 1 // 单词内
#define OUT 0 // 单词外
// 统计行数, 单词数和字符数
int main() {
int c;
int numLines = 0; // 行数
int numWords = 0; // 单词数
int numCharacters = 0; // 字符数
int state = OUT;
while ((c = getchar()) != EOF) {
++numCharacters;
if (c == ‘\n‘) {
++numLines;
}
if (c == ‘ ‘ || c == ‘\t‘ || c == ‘\n‘) {
state = OUT;
} else if (state == OUT) {
state = IN;
++numWords;
}
}
printf("%d\t%d\t%d\n", numLines, numWords, numCharacters);
return 0;
}
#include <stdio.h>
#define MAXLINE 1000
/*
* 读入一行字符
*/
int getline_s(char *s, int lim) {
int c, i;
for (i = 0; i < lim - 1 && (c = getchar()) != EOF && c != ‘\n‘; ++i) {
s[i] = c;
}
if (c == ‘\n‘) {
s[i] = c;
++i;
}
s[i] = ‘\0‘;
return i;
}
/*
* 拷贝数组
*/
void copy(char *to, char *from) {
int i = 0;
while ((to[i] = from[i]) != ‘\0‘) {
++i;
}
}
int main() {
int len;
int max = 0;
char line[MAXLINE];
char longest[MAXLINE];
while ((len = getline_s(line, MAXLINE)) > 0) {
if (len > max) {
max = len;
copy(longest, line);
}
}
if (max > 0) {
printf("%s\n", longest);
}
return 0;
}
待续。。。。
[C/C++]重读《The C Programming Language》
原文:http://www.cnblogs.com/skycore/p/4852220.html