C语言学习笔记1【C primer plus】

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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值