c语言程序书写时,C语言基础第一天-书写规范;开发步骤;变量

1. C语言书写规范:

关键字是C语言中具有特殊意义的单词,全部小写

一行内尽量放置一条语言,超长的语句可以放在多行内

在合适的地方使用空格提高可读性

被同一个大括号包含的语句要左对齐,被不同大括号包含的语句要用缩进区分开

联系不紧密的语句之间可以使用空行隔开

标识符尽量用英文写,多个单词可以采用驼峰方式或下划线方式进行区分

C语言常用编译工具:

GNU Compiler Collection(gcc)

MinGW(Windows系统下的gcc工具)

2. C语言程序的开发步骤:

使用vi/vim编写C语言源程序,编写完成后保存退出

使用gcc 对源程序进行处理得到计算机认识的可执行文件

使用命令./a.out(默认文件)执行得到的文件

以#开头的语句叫做预处理指令,#include预处理指令用于把其他文件的内容加入到当前文件中。

可以用<>或""包括被加入的文件名

<>表示文件应该从系统中规定好的位置寻找

""表示文件应该从源文件当前所在目录开始找起

C语言程序中可以加入文字内容帮助理解程序的工作过程,这些文字内容叫做注释。注释分两种,一种是单行注释,由//开头一直到行尾,另一种是多行注释,由/*开头到*/为止。

#include

#include "01demo.h"

/*

* 多行注释

* 文件名称: 01demo.c

* 文件作者: xkzhai

* 单位: njust

* 编写时间: 2019/08/18

* 版本: 1.0

*

*/

int main(){

int variable = 3; // 变量初始化

// variable = 3; // 变量赋值语句

int price = 20;

price * variable; //单行注释: 单张电影票价格是20,一共3张

printf("总票价为:%d\n",price * variable);// 总票价为:60

printf("%d * %d = %d \n",price,variable,price*variable);// 20 * 3 = 60

return 0;

}

其中stdio.h是绝大数C语言程序都需要包含的文件, 01demo.h是一个头文件示例:

int main();

3. GCC

3.1 GCC的处理过程:

预编译:这个阶段用来处理所有的预处理指令

编译:对预处理后的代码进行翻译工作,得到计算机能够认识的格式,编译工作得到的结果文件叫做目标文件,扩展名是.o

链接:把所有的目标文件和其他必要的文件合并在一起得到最终的可执行文件

3.2 GCC的常用选项:

-o 用于指定最终生成的可执行文件的名字

gcc -o 01demo 01demo.c

-E 只对源文件进行预处理

-c 只对源文件进行预处理以及编译工作,生成目标文件

-std=c89/-std=c99 用来指定编译所遵循的C语言标准,缺省按照C89标准

4. 变量与printf

4.1 变量

变量是C语言程序中用来记录数据的唯一方式,变量中记录的数字随时可以被改变;

02test.c

/*

* 计算 1 * 4, 2 * 4, 3 * 4, 4 * 4

* */

int main(){

int number1 = 1, number2 = 4;

number1 * number2;

number1 = number1 + 1;

number1 * number2;

number1 = number1 + 1;

number1 * number2;

number1 = number1 + 1;

number1 * number2;

return 0;

}

一个变量只能记录某一种特定类型的数据(强类型语言的特征),变量必须声明后才可以使用;

可以使用=(赋值操作符)给变量赋值,也可以把变量直接当成数字使用

03swap.c

/*

* 交换两个变量中数字的练习

*

* */

int main(){

int number1 = 3, number2 = 7;

// 使用临时变量完成交换

int temp = number1;

number1 = number2;

number2 = temp;

// 不使用临时变量

number1 = number1 + number2;

number2 = number1 - number2;

number1 = number1 - number2;

return 0;

}

使用变量可以将语句统一

04tri.c

/*

* 计算

* 54321

* 4321

* 321

* 21

* 1

*

* */

int main(){

int number1 = 54321;

int number2 = 10000;

number1 = number1 % number2;

number2 = number2 / 10;

number1 = number1 % number2;

number2 = number2 / 10;

number1 = number1 % number2;

number2 = number2 / 10;

number1 = number1 % number2;

return 0;

}

4.2 printf

* printf第一个参数内部不进行运算

/*

* printf函数练习

*

*/

#include

int main(){

printf("%c\n",'a');// 输出字符

printf("%d\n",5);

printf("%4d\n",5);//数字占4个位置,数字右对齐

printf("%-4d\n",5);//-表示数字左对齐

printf("%04d\n",5);//没有占满的位置用0占位

printf("%f\n",1.5f);// 单精度浮点数,小数点后占6位

printf("%5.2f\n",1.5f);//小数点后保留2位,共占5位

printf("%5.2f\n",0.001f);//小数点后保留2位,共占5位

printf("%lf\n",0.001);// 双精度浮点数用%lf表示

printf("%g %lg\n",1.5f,1.5);// 小数点后面不会补0

// 输出123456789

printf("%d%d%c78%d\n",123,45,'6',9);

return 0;

// 输出结果

//a

//5

// 5

//5

//0005

//1.500000

// 1.50

// 0.00

//0.001000

//1.5 1.5

//123456789

}

printf练习

/*

* 在屏幕上打印如下内容

* 1234567 8 9

* 123456 8 79

* 12345 8 679

* ...

* 1 8 2345679

*

* */

#include

int main(){

int number1 = 1234567, number2 = 9, power = 10;

printf("%d8%d\n",number1,number2);

number2 = number1 % 10 * power + number2;

number1 = number1 / 10;

power = power * 10;

printf("%d8%d\n",number1,number2);

number2 = number1 % 10 * power + number2;

number1 = number1 / 10;

power = power * 10;

printf("%d8%d\n",number1,number2);

number2 = number1 % 10 * power + number2;

number1 = number1 / 10;

power = power * 10;

printf("%d8%d\n",number1,number2);

number2 = number1 % 10 * power + number2;

number1 = number1 / 10;

power = power * 10;

printf("%d8%d\n",number1,number2);

number2 = number1 % 10 * power + number2;

number1 = number1 / 10;

power = power * 10;

printf("%d8%d\n",number1,number2);

number2 = number1 % 10 * power + number2;

number1 = number1 / 10;

power = power * 10;

printf("%d8%d\n",number1,number2);

return 0;

}

5. 作业

/*

屏幕打印出如下内容,每行内容由上一行计算得到

54321

4321

321

21

1

*/

#include

int main(){

int number1 = 54321, inpower = 10000;

printf("%d\n",number1);

number1 = number1 % inpower;

inpower = inpower / 10;

printf("%d\n",number1);

number1 = number1 % inpower;

inpower = inpower / 10;

printf("%d\n",number1);

number1 = number1 % inpower;

inpower = inpower / 10;

printf("%d\n",number1);

number1 = number1 % inpower;

inpower = inpower / 10;

printf("%d\n",number1);

return 0;

}

/*

屏幕打印出如下内容,每行内容由上一行计算得到

1 * 4 = 4

2 * 4 = 8

3 * 4 = 12

4 * 4 = 16

*/

#include

int main(){

int multi1 = 1, multi2 = 4;

printf("%d * %d = %d\n",multi1, multi2, multi1 * multi2);

multi1 = multi1 + 1;

printf("%d * %d = %d\n",multi1, multi2, multi1 * multi2);

multi1 = multi1 + 1;

printf("%d * %d = %d\n",multi1, multi2, multi1 * multi2);

multi1 = multi1 + 1;

printf("%d * %d = %d\n",multi1, multi2, multi1 * multi2);

return 0;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言编程注意事项 1. 每个程序中一定包含main()函数, 尽管C语言中对函数命名没有限制。 2. printf函数永远不会自动换行, 只能用\n来实现, 回车键进行的换行在编译中会出现错误信息。 3. 在vs2008等平台中编译、测试要加 system("pause"); 来暂停dos自动退出引起的printf无法显示。 4. 所有自定义变量必须声明才能使用。 5. 每行一般只写一条语句, 在运算符两边加一个空格, 便于阅读。 6. 整数除法将会自动舍位, 不进行四舍五入的操作。 7. for(初始化部分;条件部分;增长部分) 比while 更适用于初始化和增长步长都是单条语句的情况。 8. 使用 #define 名字替换文本对部分"幻数" 赋予意义便于阅读 #define结尾无需;号来结束。 9. EOF(end of file)表示没有字符输入定义在stdio.h 头文件中 EOF不等于\n 换行等。 10. 由于!= 的优先级大于 = ,因此如果对判断中存在变量赋值 应对赋值加() 例如: while((c = getchar()) != EOF)。 11. getchar() 用于用户输入直至键入回车键。 12. 变量名以字母和数字组成, (下划线"_"被默认为字符, 以下划线为首写字母的为库类变量名), 变量常以小写字母开头,内部变量名前31位有效, 外部变量名至少前6位保持唯一性。 13.在C语言中是区分字母大小写的。 14. 一个字符常量为一个整数, 用''单引号括起来。例如: '0' 为48, 它与0没有任何关系。 15. ANSI C语言的转义符: \a 响铃符; \b 回退符; \f 换页符; \n 换行符; \r 回车符; \t 横向制表符 ; \v 纵向制表符; \\ 反斜杠; \? 问号; \' 单引号; \" 双引号; \ooo 八进制数; \xhh 十六进制数; '\0' 表示0, 即(null)。 16. 'x'与"x"的区别: 'x'表示一个整数, 字母x在其字符集中对应的数值, "x"表示包含一个字符x 以及一个结束符'\0'。 17. const在声明变量中起限制作用, 该限定变量的值不能被修改。 18. %运算符不能应用于float或double类型。 19. char类型转换为int型, 因为无法判断它是signed还是unsigned,这样其结果有可能为负数, 所以转换尽量指定signed和unsigned限制符。 20. ++i与i++ 的不同之处: ++i是先 +1再使用i, i++ 是先使用i再 +1。 21. 三元运算符"?:" 第一个表达式的括号不是必须的, 但是由于三元表达式的优先级非常低, 因此我们还是将第一个表达式用()括起来以便于阅读和理解。 22. C语言中可以使用递归 (即函数调用自身函数), 这样做并不节省储存空间也不加快执行速度, 只是使程序紧凑便于理解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值