1.使用C语言的七个步骤
1.定义程序的目标
2.设计程序
3.编写代码
4.编译
5.运行程序
6.测试和调试程序
7.维护和修改代码
2. 目标文件、可执行文件和库
1.12 复习题
1.对于编程而言,可移植性意味着什么?
程序可以在不同系统上运行
2.解释源代码文件、目标文件和可执行文件有什么区别?
源代码文件通过编译成为目标代码文件,链接库代码文件成为可执行文件
3.编程的7个步骤是什么?
1.定义程序目标;2.设计程序;3.编写代码;4.编译;5.运行程序;6.测试和调试程序;7.维护和修改代码。
4. 编译器的任务是什么?
把源代码文件编译成目标文件。
5. 链接器的任务是什么?
把目标代码文件和其他代码合并,生成可执行文件。
1.13 编程练习
1.一个把英寸单位转换为厘米单位(1英寸=2.54厘米)的程序。该程序提醒用户输入英寸值。定义程序目标和设计程序。
设定两个整型变量inch和cm提醒输入英寸值->接收英寸值->inch = cm*2.54 ->打印厘米值
第二章 C语言概述
主要内容:
- 运算符: =
- 函数:main()、printf()
- C程序概要
- 创建整型变量,并为其赋值并在屏幕上显示其值
- 换行字符
- 如何写注释、创建包含多个函数的程序、发现程序的错误
- 什么是关键字
*有些环境在程序运行结束后自动关闭窗口,可以在程序的return 语句前添加代码 getchar();
这行代码会让程序等待击键,窗口会在用户按下一个键后才关闭。
2.21 快速概要
- 在C程序顶部的信息集合被称为 头文件 (header),头文件中定义一些常量,或指明函数名以及如何使用它们。
- #include这行代码是一条预处理代码(preprocesser directive)
- stdio.h C编译器软件包的标准部分,提供键盘输入和屏幕输出的功能。
- 圆括号表明main()是一个函数名,int 表明main()函数返回的是一个整数,void表明main()不带参数。
- C程序一定从main()函数开始执行
- 声明: 所有变量必须先声明然后才能使用,即必须列出程序中用到的所有变量名及其类型,可以把声明放在块中的任何位置,在首次使用变量之前必须先声明它。编译器在计算机内存中为变量num预留了int的空间。
- 函数声明(function declaration)(函数原型(prototype)):告知编译器要使用该函数。还指明函数的属性。返回值、参数。
- 函数调用:
- 函数定义:函数头重述函数原型(函数声明的信息)。
- int num;:1.在函数中有一个名为 num 的变量,2.int 表明该变量是一个整型。
- int 是一个关键字(keyword):表示一种C语言的数据类型。
- num 是一个标识符(identifier):变量、函数或其他实体的名称。声明把特定的标识符和计算机内存中的特定位置联系起来。
- 命名:要使用有意义的标识符或变量名,可在注释中说明。可以用大小写字母、数字、下划线,名称的第一个字符必须是字母或下划线,不能是数字。(避免下划线开始的标识符)
- 赋值:赋值表达式语句从右侧把值赋给左侧。把值存储到之前预留的位置。
- 函数由函数头和函数体组成。函数头包括函数名、传入该函数的信息类型、函数的返回类型。通过圆括号可识别出函数,圆括号中可能无参数、可能有参数。函数体被花括号括起来,由一系列语句、声明组成。
- 调用函数:在程序中使用函数。输入函数名,把所需的参数填入圆括号。运行到调用函数时,控制权转给被调用的函数,函数执行之后,控制权返回至主调函数(callin function)。
- 实际参数是传递给函数的特定值,形式参数是函数用来储存值的变量。
- printf()函数:圆括号表明printf()是一个函数,圆括号中的内容是main()函数传给printf()函数的实际参数(actual argument)。printf()是标准的C库函数。打印多个值,变量之间用逗号隔开,打印的值不一定要是被定义的变量名的值,只要可求值得出合适类型的项的都可以。
- return 语句 养成在main()函数中保留 return 语句的好习惯。提高程序可读性:选择有意义的函数名和写注释;在函数中使用空行分割概念上的多个部分;每条语句各占一行。,程序在开始处有一条注释,给出文件名和程序的目的。把main()函数放在开头 ,因为它提供了函数的基本框架。
- 在编译之前浏览源代码看是否能发现一些明显的错误,再查看编译器是否发现语法错误。没有语法错误找语义错误,跟踪程序的执行步骤,找出程序如何得出这个答案,把自己想象成计算机,跟着程序一步一步地执行。
- 分号告诉编译器一条语句在哪里结束、下一条语句在哪里开始。
程序状态:
程序状态:再程序执行过程中,某给定点上所有变量值的集合。通过逐步跟踪程序的执行步骤,并记录每个变量,便可监视程序的状态,它是计算机当前状态的一个快照。
在程序的关键点插入额外的printf()语句,以监视制定变量值的变化。
调试器(debugger):是一种程序,让你一步一步运行另一个程序,并检查该程序变量的值。
2.11 复习题
1.C语言的基本模块是什么?
C程序由一个或多个C函数组成、必须包含一个main()函数,函数由函数头、还有后面的一对花括号组成,花括号中是由声明、语句组成的函数体。
2.什么是语法错误?
C语言有一套语法规则,用与管理语言中的各种有效语句组合在一起的方式。
3.什么是语义错误?
语义是语言要表达的意思。语义错误只有在程序编译完之后才能从程序的行为中表达出来。
#include <stdio.h>
#define int_g 10
#define int_f 10
#define int_a 40
/*1-3*/
int main(void)
{
char G_name[int_g];
char F_name[int_f];
char Address[int_a];
const int Age;
printf("请输入您的姓:");
scanf("%s",G_name);
printf("请输入您的名:") ;
scanf("%s",F_name);
printf("请输入您的家庭地址:");
scanf("%s",Address);
printf("请输入您的年龄:");
scanf("%d",&Age);
printf("%s %s\n",G_name,F_name);
printf("%s\n%s\n",G_name,F_name);
printf("%s %s\n",G_name,F_name);
printf("%s %s\n",G_name,F_name);
printf("%s",Address);
printf("%d %d",Age,Age*365);
return 0;
}
//4
#include <stdio.h>
void jolly(void);
void deny(void);
int main(void)
{
jolly();
jolly();
jolly();
void deny(void);
return 0;
}
void jolly(void)
{
printf("For he's a jolly good fellow!");
return;
}
void deny(void)
{
printf("Which nobody can deny!");
return;
}
//5
#include <stdio.h>
void br(void);
void ic(void);
int main(void)
{
br();
printf(",");
ic();
printf("\n");
br();
printf(",\n");
ic();
printf("\n");
return 0;
}
void br(void)
{
printf("Brazil, Russia");
return;
}
void ic(void)
{
printf("India,China");
return;
}
/*6*/
#include <stdio.h>
int main(void)
{
const int toes=10;
//int toes; toes = 10;
printf("toes = %d \n toes *2 = %d \n toes^2 = %d",toes,toes*2,toes*toes);
return 0;
}
//7
#include <stdio.h>
void smile(void);
int main(void)
{
int i,j;
for(i=3;i>0;--i)
{
printf("\n");
for(j=i;j>0;--j)
{
smile();
}
}
return 0;
}
void smile(void)
{
printf("Smile!");
return;
}
//8
#include<stdio.h>
void one_three(void);
void two(void);
int main(void)
{
printf("starting now:\n");
one_three();
printf("done!\n");
return 0;
}
void one_three(void)
{
printf("one\n");
two();
printf("three\n");
return;
}
void two(void)
{
printf("two\n");
return;
}