c语言程序设计

[总结]C语言二维数组作为函数的参数

送分小仙女□ 提交于 2020-01-31 05:21:58
   前言: 今天在实现装配线调度程序时候,用到了二维数组,并将其作为函数的参数。在写程序的时候,遇到一些问题,即二维数组做函数的参数应该如何正确表示。我写程序的错误如下程序所示: 1 #include <cstdio> 2 void print(int *a[3]) 3 { 4 printf("%d\n",a[0][0]); 5 } 6 7 int main() 8 { 9 int a[2][3] = {1,2,3,4,5,6}; 10 print(a); 11 return 0; 12 } 编译程序时候,在第10行提示错误信息: |10|error: cannot convert 'int (*)[3]' to 'int**' for argument '1' to 'void print(int**)'|。 根据错误提示我明白了, int *a[3]表示一个一维数组,数组的数据类型为整型指针(int*),数组的大小为3,这是因为[]的优先级高于*的优先级。如是我将程序改写如下,顺利通过编译,得到正确结果。 1 #include <cstdio> 2 void print(int (*a)[3]) //用括号将指针括起来 3 { 4 printf("%d\n",a[0][0]); 5 } 6 7 int main() 8 { 9 int a[2][3] = {1,2,3,4,5

C语言复习笔记之基础语法

早过忘川 提交于 2020-01-31 03:16:23
C语言简介 C 语言是一种通用的、面向过程式的计算机程序设计语言。 目前,C 语言是最广泛使用的系统程序设计语言。 大多数先进的软件都是使用 C 语言实现的。 一个 C 语言程序,可以是 3 行,也可以是数百万行,它可以写在一个或多个扩展名为 “.c” 的文本文件中,例如,hello.c。可以使用 “vi”、“vim” 或任何其他文本编辑器来编写 C 语言程序。 C 程序主要包括以下部分: 预处理器指令 预处理器指令指导编译器在实际编译开始之前对信息进行预处理。 所有的预处理器指令都是以 # 开始。且在一行上,只有空白字符可以出现在预处理器指令之前。预处理器指令不是语句,所以它们不以分号(;)结束。 函数 变量 语句 & 表达式 注释 我的第一个程序 # include <stdio.h> int main ( ) { /* 我的第一个 C 程序 */ printf ( "Hello, World! \n" ) ; return 0 ; } //程序的第一行 #include <stdio.h> 是预处理器指令,告诉 C 编译器在实际编译之前要包含 stdio.h 文件。 //下一行 int main() 是主函数,程序从这里开始执行。 //下一行 /*...*/ 将会被编译器忽略,这里放置程序的注释内容。它们被称为程序的注释。 //下一行 printf(...) 是 C

C语言程序设计 第三章 运算符与表达式 知识总结

喜欢而已 提交于 2020-01-29 18:58:14
运算符的定义 运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C 语言内置了丰富的运算符,并提供了以下类型的运算符: ①  算术运算符 ②  关系运算符 ③  逻辑运算符 ④ 位运算符 ⑤  赋值运算符 ⑥ 杂项运算符 加粗部分是C语言程序设计第3版的教学内容 算数运算符 实例: # include <stdio.h> int main ( ) { int a = 21 ; int b = 10 ; int c ; c = a + b ; printf ( "Line 1 - c 的值是 %d\n" , c ) ; c = a - b ; printf ( "Line 2 - c 的值是 %d\n" , c ) ; c = a * b ; printf ( "Line 3 - c 的值是 %d\n" , c ) ; c = a / b ; printf ( "Line 4 - c 的值是 %d\n" , c ) ; c = a % b ; printf ( "Line 5 - c 的值是 %d\n" , c ) ; c = a ++ ; // 赋值后再加 1 ,c 为 21,a 为 22 printf ( "Line 6 - c 的值是 %d\n" , c ) ; c = a -- ; // 赋值后再减 1 ,c 为 22 ,a 为 21 printf ( "Line 7 -

漫谈C语言及如何学习C语言

橙三吉。 提交于 2020-01-29 15:06:35
云风最近写了一篇博客《 C语言的前世今生 》。作为长期使用C语言开发网络游戏服务器的程序员,云风是有理由写这样一篇文字,不过还是感觉谈的不够深入,C语言在业界使用的现状没有怎么描写,有些意犹未尽。在这里想比较系统的谈谈个人对C语言学习方式方法的理解。分别按照书籍、实验环境搭建、网络资源来分别介绍,希望能写的比较完整全面一些,给想学习C语言的朋友一个有价值的参考。 为什么要学习C语言? 为什么要学习、使用C语言?为什么要学习一个可能比自己都岁数大的编程语言? 我在前面如何学习编程语言的博客文章 http://sunxiunan.com/?p=1597 里提到,选择一门编程语言,“为什么而学”这个目的是最重要的,目的不明确就没法学好。这也是为什么很多学生朋友在大学里必修C语言却觉得没学明白的原因。因为学习的目的不明确,学习当然也没有动力。还有一个原因是C语言是工程实践性很强的语言,它不是来自某个研究所某个大学学院,而是实实在在从项目需要中产生,伴随着Unix的兴起而流行,语义简明清晰,功能强大而不臃肿,简洁而又不过分简单,实在是居家旅行工作学习必备之良友。 C语言相比C++的优点之一就是最小惊讶原则,一是一二是二,不会在私底下产生一些莫名其妙的额外产物。用C++做个例子,比如这样一个函数原型void PassWithClassValue(COneClass clsParam1)

面向对象程序设计寒假作业一解题报告

依然范特西╮ 提交于 2020-01-27 22:49:10
这个作业属于哪个课程 面向对象程序设计 这个作业要求在哪里 面向对象程序设计寒假作业1 这个作业的目标 安装C++开发环境、回顾知识、查看自己的C++编译器版本、使用命令行编译一份C语言/C++代码、实现简单的中文编程、编写博客 作业正文 问答题 、 实践题 、 编程题 其他参考文献 C语言的不足之处 C语言的缺陷 C语言的编译过程 一、问答题 1.如果你不了解C++请回答以下问题:你认为C语言有什么缺陷(你觉得哪里用的不顺手)。 如果你已经了解C++请回答以下问题:你觉得C++和C语言比有什么优点。 我对C++不怎么了解,在使用C语言的过程中,我发现了以下问题: (1)C语言语法限制不严格,对变量的类型约束不严格,影响程序的安全性,比如C语言中将一个浮点型数据赋给一个整型变量,编译时只会警告,不会报错。 (2)C语言是面向过程的语言,写大项目的时候很容易崩溃。 (3)C语言存在着一些不应该存在的语法限制。例如, switch语句由 case结构组成,每个 case结束之后都要使用一个 break来跳出 case结构,否则将会继续执行下面的 case,这样就会造成错误。 2.查阅相关资料,简述一下C语言/C++的编译过程。 过程:C源程序头文件-->预编译处理(cpp)-->编译程序本身-->优化程序-->汇编程序-->链接程序-->可执行文件 编译---->形成目标代码

面向对象程序设计寒假作业1

狂风中的少年 提交于 2020-01-27 03:52:03
这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/2020OOP 这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/2020OOP/homework/10224 这个作业的目标 1、了解C语言的缺点 2、了解C语言/C++的编译过程 3、查看自己的C++编译器版本 4、使用命令行编译一份C语言/C++代码 5、写一份代码,实现简单的汉字输入输出 作业正文 1、问答题: https://www.cnblogs.com/cyn522/p/12232556.html 2、实践题: https://www.cnblogs.com/cyn522/p/12233273.html 3、编程题: https://www.cnblogs.com/cyn522/p/12234543.html 4、合集: https://www.cnblogs.com/cyn522/p/12235349.html 其他参考文献 1、 https://www.cnblogs.com/Eric-jx/articles/10048309.html 2、 http://blog.sina.com.cn/s/blog_148b66fae0102yg8f.html 3、 https://www.cnblogs.com/CarpenterLee/p

面向对象程序设计寒假作业1

不打扰是莪最后的温柔 提交于 2020-01-26 19:10:51
这个作业属于哪个课程 2020年面向对象程序设计 这个作业要求在哪里 面向对象程序设计寒假作业1 这个作业的目标 1.安装C++开发环境(见附录)2.完成问答题、实践题及编程题3.发布博客 作业正文 如下 其他参考文献 C语言的不足之处 C语言的编译过程 一.问答题:(基础3分) 回答以下问题: 1.1如果你不了解C++请回答以下问题:你认为C语言有什么缺陷(你觉得哪里用的不顺手)。 1.2如果你已经了解C++请回答以下问题:你觉得C++和C语言比有什么优点。 2.查阅相关资料,简述一下C语言/C++的编译过程。 1.1:C语言语法限制不太严格,程序设计自由度大。例如, C语言对数组下标越界不检查,容易造成数据在内存中的混乱。 C语言中许多运算符具有不同的意义,甚至有些关键字也具有好几种意义。例如, void作为函数的返回类型,表示不返回任何值;在指针声明中,表示通用指针类型;在参数列表中,表示没有参数。 c语言不太严谨,例如,整型和浮点型变量运算时不会报错。 2:编译分为四个过程,分别是预处理,编译,汇编,链接。 预处理用于将所有#include头文件以及宏定义替换成其真正内容,预处理后会得到比原来体积大得多的文本文件。 编译将经过预处理之后的程序转换成特定汇编代码的过程,生成的也是文本文件。 汇编将上一步的汇编代码转换成机器码,为每一个源文件产生一个目标文件,是二进制格式。

C语言错题集

狂风中的少年 提交于 2020-01-22 16:34:29
1.定义结构体typedef struct one { int a;}s; s a;则a为结构体变量() 答案:正确 解析:s为结构体类型名,s a定义了a为一个结构体变量 2.表达式10!=9的值是true。 (F) 解析:在c语言中正确为1,错误为0;所以其值是 1 3.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是( D)。 函数的实参和其对应的形参共占同一存储单元 形参只是形式上的存在,不占用具体存储单元 同名的实参和形参占同一存储单元 函数的形参和实参分别占用不同的存储单元 解析:C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元,所以选D 4.变量a所占内存字节数是( D )。 union U {char st[4]; int i; long l; }; struct A {int c; union U u; }a; A: 4 B: 5 C: 6 D: 8 解析:共用体所占字节数是里面的成员所占字节数相加,int 4个字节 ,union U u取最长4字节,所以a所占字节数为 4+4=8. 5.任何一个算法都必须有的基本结构是( A ) A: 顺序结构 B: 条件分支结构 C: 循环结构 D: 以上三个都要有 解析:根据算法的特点 如果在执行过程中

C语言总结(1)

点点圈 提交于 2020-01-22 07:21:21
寒假总结—C语言(1) 关于C语言的概况 1.1c的发展过程 C语言是在 70 年代初问世的。一九七八年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。 同时由 B.W.Kernighan 和 D.M.Ritchit 合著了著名的“THE C PROGRAMMING LANGUAGE”一书。通常简称 为《K&R》,也有人称之为《K&R》标准。但是,在《K&R》中并没有定义一个完整的标准 C 语言,后来由 美国国家标准协会(American National Standards Institute)在此基础上制定了一个 C 语言标准,于一九八三 年发表。通常称之为 ANSI C。 1.2当代最优秀的语言 早期的 C 语言主要是用于 UNIX 系统。由于C语言的强大功能和各方面的优点逐渐为人们认识,到了八 十年代,C 开始进入其它操作系统,并很快在各类大、中、小和微型计算机上得到了广泛的使用,成为当代 最优秀的程序设计语言之一。 1.3c语言版本 目前最流行的C语言有以下几种: ·Microsoft C 或称 MS C ·Borland Turbo C 或称 Turbo C ·AT&T C 这些C语言版本不仅实现了 ANSI C 标准,而且在此基础上各自作了一些扩充,使之更加方便、完美。 1.4c语言特点 只有三十二个关键字 auto break case char

C语言I作业12

拥有回忆 提交于 2020-01-21 20:42:58
一、我学到的内容 二、我的收获 作业链接 收获 C语言I作业1 学会了Hello world编程和Markdown语法 C语言I作业2 学会有关华氏度与摄氏度的转换,在这一次作业中,学会了安装devc++以及简单的使用方法 C语言I作业3 了解到了有关if-else语句、格式化输入语句,渐渐的明白了错误的原因,就像明白了什么是格式错误 C语言I作业4 有关for循环体的运用以及使用for循环语句实现指定次数的循环程序设计 C语言I作业5 对函数的定义和调用有初步的了解,学会了如何编辑阶乘表以及什么是形参和实参 C语言I作业6 学会分支结构、以及字符型数据类型,也了解到了一些字符型常量的表达式 C语言I作业7 学会多分支结构switch语句的使用以及尽量用它去解决问题 C语言I作业8 学会使用while和do-while结构解决问题以及在使用while语句的注意事项,和for语句的比较 C语言I作业9 学会break、continue的使用以及循环的嵌套就像循环的嵌套结构,可用于多次循环,解决行与列的问题 C语言I作业10 熟悉并且练习循环结构的使用,明白了if-else语句,for语句,while语句,do-while语句,break,continue的不同之处以及一些相同点。 C语言I作业11 熟悉各种类型函数的定义、调用和申明以及有关全局变量以及局部变量 三、自我总结 (1