C语言的教训
‘壹’ c语言错误:expression must be a modifiable lvalue
这边有两个错误,首先,if括号里是赋值语句,不是判断语句,只有一个=,那么报错就是这边导致的,第二个,c里面两个char字符串不能直接用=比较是否相等,应该用strcmp
(1)C语言的教训扩展阅读:
基本特性
1、高级语言:它是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元。
2、结构式语言:结构式语言的显着特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。
C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
3、代码级别的跨平台:由于标准的存在,使得几乎同样的C代码可用于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。C语言对编写需要进行硬件操作的场合,优于其它高级语言。
4、使用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持
但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果
但其本身解释在虚拟机中运行,运行效率低于C++/C。一般而言,C,C++,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。
‘贰’ C语言的特点有哪些
C语言是一个有结构化程序设计、具有变量作用域以及递归功能的过程式语言。
C语言传递参数均是以值传递,另外也可以传递指针。
不同的变量类型可以用结构体组合在一起。
只有32个保留字,使变量、函数命名有更多弹性。
部份的变量类型可以转换,例如整型和字符型变量。
通过指针,C语言可以容易的对存储器进行低级控制。
预编译处理让C语言的编译更具有弹性。
(2)C语言的教训扩展阅读:
C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
‘叁’ c语言的主要用途
C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。
基本特性
1、C是高级语言:它把高级语言的基本结构和语句与低级语言的实用性结合起来。工作单元。
2、C是结构式语言:结构式语言的显着特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
3、C语言功能齐全:具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。
4、C语言适用范围大:适合于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。C语言对编写需要硬件进行操作的场合,优于其它高级语言,有一些大型应用软件也是用C语言编写的。
5、C语言应用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。Java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C++/C。一般而言,C,C++,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。
‘肆’ 介绍一下C
这种事,自己问度娘啊。
C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出。1978后,C语言已先后被移植到大、中、小及微型机上。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画。具体应用比如单片机以及嵌入式系统开发。
结构
1.一个C语言源程序可以由一个或多个源文件组成。
2.每个源文件可由一个或多个函数组成。
3.一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。
4.源程序中可以有预处理命令(包括include 命令、if命令、pragma命令),预处理命令通常应放在源文件或源程序的最前面。
5.每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。
6.标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。
编辑本段特点
1. C是高级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。
2.C是结构式语言。结构式语言的显着特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
3.C语言功能齐全。具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。
4. C语言适用范围大。适合于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。
C语言对编写需要硬件进行操作的场合,明显优于其它高级语言,有一些大型应用软件也是用C语言编写的。
编辑本段特色
指针是C语言的一大特色,可以说是C语言优于其它高级语言的一个重要原因。就是因为它有指针,可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。Java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C++/C。一般而言,C,C++,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。
编辑本段入门
对于一个初学者,Microsoft Visual C++是一个比较好的软件。界面友好,功能强大,调试也很方便。这是微软出的一个C语言集成开发环境(IDE),主要有:VC++6.0、VS2005.VS2008.VS2010等,分为企业版和学生版等。对于初学者VC++6.0是比较容易上手的,但其对标准支持的不好可能使人养成不良的编程习惯。
在unix/linux操作系统上,学习c语言一般使用vim/emacs来编辑源文件,使用gcc来编译源文件,使用make程序来管理编译过程。
其他编译器如CodeBlocks10.05(跨平台linux/windows开源免费)、dev-c++(开源免费)、turbo、c-free5.0、codelite(开源免费)、eclipse(开源免费基于Java 扩展平台)……
请看参考资料
‘伍’ c语言 !!是什么
结构
1.一个C语言源程序可以由一个或多个源文件组成。 2.每个源文件可由一个或多个函数组成。 3.一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。 4.源程序中可以有预处理命令(包括include 命令、if命令、pragma命令),预处理命令通常应放在源文件或源程序的最前面。 5.每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。 6.标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。
编辑本段特点
1. C是高级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。 2.C是结构式语言。结构式语言的显着特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。 3.C语言功能齐全。具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。 4. C语言适用范围大。适合于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。 C语言对编写需要硬件进行操作的场合,明显优于其它高级语言,有一些大型应用软件也是用C语言编写的。
编辑本段特色
指针是C语言的一大特色,可以说是C语言优于其它高级语言的一个重要原因。就是因为它有指针,可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。Java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C++/C。一般而言,C,C++,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。 C语言的强劲之处在于用数学观点对基于存储程序原理(store program concept)的硬件架构进行软抽象。
编辑本段入门
对于一个初学者,Microsoft Visual C++是一个比较好的软件。界面友好,功能强大,调试也很方便。这是微软出的一个C语言集成开发环境(IDE),主要有:VC++6.0、VS2005.VS2008.VS2010等,分为企业版和学生版等。对于初学者VC++6.0是比较容易上手的,但其对标准支持的不好可能使人养成不良的编程习惯。 在unix/linux操作系统上,学习c语言一般使用vim/emacs来编辑源文件,使用gcc来编译源文件,使用make程序来管理编译过程。 其他编译器如CodeBlocks10.05(跨平台linux/windows开源免费支持高达29种不同的项目)、dev-c++(开源免费)、turbo、c-free5.0、codelite(开源免费)、eclipse(开源免费基于Java 扩展平台)……
编辑本段历史
C语言的祖先是BCPL语言。 1967年,剑桥大学的 Martin Richards 对CPL语言进行了简化,于是产生了BCPL(Basic Combined Pogramming Language)语言。 1970年,美国贝尔实验室的 Ken Thompson。以BCPL语言为基础,设计出很简单且很接近硬件的B语言(取BCPL的首字母)。并且他用B语言写了第一个UNIX操作系统。 在1972年,美国贝尔实验室的 D.M.Ritchie 在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。 为了使UNIX操作系统推广,1977年Dennis M.Ritchie发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。 1978年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。同时由B.W.Kernighan和D.M.Ritchie合着了着名的《The C Programming Language》一书。通常简称为《K&R》,也有人称之为《K&R》标准。但是,在《K&R》中并没有定义一个完整的标准C语言,后来由美国国家标准化协会(American National Standards Institute)在此基础上制定了一个C语言标准,于一九八三年发表。通常称之为ANSI C。 K&R第一版在很多语言细节上也不够精确,对于pcc这个“参照编译器”来说,它日益显得不切实际;K&R甚至没有很好表达它所要描述的语言,把后续扩展扔到了一边。最后,C在早期项目中的使用受商业和政府合同支配,它意味着一个认可的正式标准是重要的。因此(在M. D. McIlroy的催促下),ANSI于1983年夏天,在CBEMA的领导下建立了X3J11委员会,目的是产生一个C标准。X3J11在1989年末提出了一个他们的报告[ANSI 89],后来这个标准被ISO接受为ISO/IEC 9899-1990。 1990年,国际标准化组织ISO(International Organization for Standards)接受了89 ANSI C 为I SO C 的标准(ISO9899-1990)。1994年,ISO修订了C语言的标准。 1995年,ISO对C90做了一些修订,即“1995基准增补1(ISO/IEC/9899/AMD1:1995)”。1999年,ISO有对C语言标准进行修订,在基本保留原来C语言特征的基础上,针对应该的需要,增加了一些功能,尤其是对C++中的一些功能,命名为ISO/IEC9899:1999。 2001年和2004年先后进行了两次技术修正。 目前流行的C语言编译系统大多是以ANSI C为基础进行开发的,但不同版本的C编译系统所实现的语言功能和语法规则有略有差别。
编辑本段优点
简洁紧凑、灵活方便 C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。 运算符丰富 C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。 数据类型丰富 C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。 同时对于不同的编译器也有各种 C是结构式语言 结构式语言的显着特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。 语法限制不太严格,程序设计自由度大 虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。 允许直接访问物理地址,对硬件进行操作 由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来写系统软件。 生成目标代码质量高,程序执行效率高 一般只比汇编程序生成的目标代码效率低10へ20%。 适用范围大,可移植性好 C语言有一个突出的优点就是适合于多种操作系统,如DOS、UNIX、windows 98.windows NT;也适用于多种机型。C语言具有强大的绘图能力,可移植性好,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画,它也是数值计算的高级语言。
编辑本段缺点
1. C语言的缺点主要表现在数据的封装性上,这一点使得C在数据的安全性上有很大缺陷,这也是C和C++的一大区别。 2. C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。
编辑本段运算
C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单,但初学者往往会觉的这种表达式难读,关键原因就是对运算符和运算顺序理解不透不全。当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则显得十分重要。在学习中,只要我们对此合理进行分类,找出它们与我们在数学中所学到运算之间的不同点之后,记住这些运算也就不困难了,有些运算符在理解后更会牢记心中,将来用起来得心应手,而有些可暂时放弃不记,等用到时再记不迟。 先要明确运算符按优先级不同分类,《C程序设计》运算符可分为15种优先级,从高到低,优先级为1 ~ 15,除第2.13级和第14级为从右至左结合外,其它都是从左至右结合,它决定同级运算符的运算顺序.
编辑本段结构
顺序结构
顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。 例如:a = 3,b = 5,现交换a,b的值,这个问题就好像交换两个杯子水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为:c = a; a = b; b = c;执行结果是a = 5,b = c = 3如果改变其顺序,写成:a = b; c = a; b =c;则执行结果就变成a = b = c = 5,不能达到预期的目的,初学者最容易犯这种错误。顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算,输出三步曲的程序就是顺序结构,例如计算圆的面积,其程序的语句顺序就是输入圆的半径r,计算s = 3.14159*r*r,输出圆的面积s。不过大多数情况下顺序结构都是作为程序的一部分,与其它结构一起构成一个复杂的程序,例如分支结构中的复合语句、循环结构中的循环体等。
选择结构
顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。对于要先做判断再选择的问题就要使用选择结构。选择结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。选择结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的选择语句。选择结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。程序流程图是根据解题分析所绘制的程序执行流程图。
‘陆’ c语言编程怎样入门
相对于其他编程语言,C语言还是比较难的。初学者需要注意一下几点:
一是学习顺序
先从熟悉简单的C语言语法开始入门,然后再循序渐进,学习C++语法,WIN32、MFC、QT、网络编程,数据库、数据结构、算法、COM、STL等。构建一个完整的C语言知识体系。这需要一个比较漫长的学习积累的过程。语法入门部分大概2-3个月,其他部分需要学习和工作中慢慢理解和消化了。
二是学习方法
人的知识80%是通过眼睛获取的,但是学习编程有所不同,除了看书、看视频之外,关键是要勤动手,勤动脑。通过做大量的练习、项目实战不断积累代码量。只有代码量足够多了,项目做的多了,才能算是真正学会了。项目能否完成,就是衡量是否学会的唯一标准。后期就是代码的质量和优化问题了,这个只能在项目工作中慢慢积累经验了。
最后强调一点,很多人学不会编程是因为掉坑里了。就是教程或者书上的知识点之间跨越太大,作为一个初学者很难自己摸索出来,前面的知识点没有掌握,接着学习后面的知识,肯定是学不会了。目前绝大多数编程书籍和教程或多或少都有这样的弊端。自学能力比较强的人可以通过各种方法,参考各种网上的资料自己解决。但是大多数自学能力不是很强的人,只能依赖老师、同学、同事或者朋友帮忙指导,或者报名培训机构,老师指导完成了。学习编程通常需要一些好的学习资料,包括纸质的书籍,视频教程,课件,项目练习,代码。零基础入门的书籍推荐《明解C语言》、《C Primer Plus》,还有一本非常特别的汇编和C语言正向逆向结合的书编程达人内部教材《汇编、C语言基础教程》也非常不错,讲解汇编和C语言的本质非常透彻,非常细致。视频资料也是特别多了,各种视频网站、论坛、自媒体都有,比如网易课堂、腾讯课堂、慕客网这些。还有一些论坛,比如CSDN、编程中国等。最重要的一点就是答疑服务,推荐爱达人的网站也很不错,从零基础入门到应用课程,配套的视频、课件、代码、项目、答疑服务都有,还可以兼职接单,学以致用。
‘柒’ C语言中的%是个什么意思啊 有什么用啊
%是求模的意思,两边必须是整数类型的,求模常用符号为mod,就是我们小学学的求余运算符。
例如50%23=4,因为余数为4,所以在程序中必须保证两边为整数才是这个意思。
(7)C语言的教训扩展阅读
“模”是“Mod”的音译,模运算多应用于程序编写中。 Mod的含义为求余。模运算在数论和程序设计中都有着广泛的应用,从奇偶数的判别到素数的判别,从模幂运算到最大公约数的求法,从孙子问题到凯撒密码问题,无不充斥着模运算的身影。虽然很多数论教材上对模运算都有一定的介绍,但多数都是以纯理论为主,对于模运算在程序设计中的应用涉及不多。
基本性质
(1)若p|(a-b),则a≡b (% p)。例如 11 ≡ 4 (% 7), 18 ≡ 4(% 7)
(2)(a % p)=(b % p)意味a≡b (% p)
(3)对称性:a≡b (% p)等价于b≡a (% p)
(4)传递性:若a≡b (% p)且b≡c (% p) ,则a≡c (% p)
参考资料模运算_网络
‘捌’ 学完c语言后
如果学了C 不会数据结构的话 等于白学了,必须会数据结构,比如链表,树,图等几个主要的结构
以前我也是刚学完C不太会数据结构,但其实学数据结构最关键的是要学会typedef的用法,要吃透,吃透他就差不多了,再要注意的是数据结构上的程序都是个抽象概念,上面的程序都是不能直接运行的,比如上面的一些函数,都是要自己去定义出来才行的
这里我有些题目 你先不必把数据结构一本书都看完,你做一道题,肯定与相关的数据结构知识有关,你对照这些题目去学数据结构上的知识点,相信你就会很快理解数据结构了
1. 设计一个单循环链表, 对链表进行相应的删除操作。
数据输入:
第一行为的正整数个数m。
第二行为要处理的m个正整数,中间用一个空格间隔;
第三行为要删除的数据位置,可能为多次循环后之值。
数据输出:
输出删除后的数据排列,中间用空格间隔。
示例:
输入文件input1.txt:
3
1 2 3
5
输出:(标准输出)
1 3
2. 设计一个有序顺序表,要求对两个顺序表中的元素进行排序后输出。有序顺序表和顺序表的主要区别是有序顺序表中的数据元素按数据元素值非递减有序。
数据输入:
第一行为要处理的第一个顺序表包含的数据个数m。
第二行为要处理的第一个顺序表,m个正整数之间用空格间隔。
第三行为要处理的第二个顺序表包含的数据个数n。
第四行为要处理的第二个顺序表,n个正整数之间用空格间隔。
数据输出:
输出合并后的有序顺序表,数据之间用空格间隔。
示例:
输入文件input2.txt:
2
1 4
2
3 2
输出:(标准输出)
1 2 3 4
3. 编写一个判断算术表达式中开括号和闭括号是否配对的算法。
数据输入:
第一行:算术表达式个数n
第二行到第(n+1)行:n个算术表达式
数据输出:
第一行到第n行:n个算术表达式是否匹配,匹配为1,不匹配为0。
示例:
输入文件input4.txt:
2
3+(4-5*6)
1-((4-8/2)
输出:(标准输出)
1
0
4. 链式堆栈设计。要求用链式堆栈设计实现堆栈。
数据输入:
第一行:要入栈的数据个数m。
第二行:要入栈的m个数据。
第三行:要取出的第n个数据。
数据输出:
输出第n个数据的值。
示例:
输入文件input5.txt:
5
2 4 6 8 10
4
输出:(标准输出)
4
5. 设串采用静态数组存储结构,编写函数实现串的替换,即要求在主串S中,查找是否存在子串T,若主串S中存在子串T,则用子串V替换子串T;若主串S中不存在子串T,则返回0。
数据输入:
第一行:测试串的个数n
第二行到第(n+1)行:n个串的值
第(n+2)行:子串T
第(n+3)行:子串V
数据输出:
第一行到第n行:经过处理之后的n个串,如果存在子串T,则返回替换之后的串,如果不存在子串T,则返回0。
示例:
输入文件input7.txt:
2
I am a student
I am a teacher
student
teacher
输出:(标准输出)
I am a teacher
0
6. 设串采用静态数组存储结构,试比较两个串的大小。
数据输入:
第一行:第一个串的值
第二行:第二个串的值
数据输出:
第一行:两个串的比较结果,比较结果可能有大于、等于和小于三种情况,分别输出”>”,”=”,”<”。
示例:
输入文件input8.txt:
I am a student
I am a teacher
输出:(标准输出)
<
7. 设对称矩阵A、B和C为采用压缩存储方式存储的n阶上三角矩阵,矩阵元素为整数类型,要求:实现矩阵加C = A + B和矩阵乘C = A × B。
数据输入:
第一行:矩阵的行列数m。
第二行到第(m+1)行:矩阵A的各行的的值。
第(m+2)行到第(2m+1)行:矩阵B的各行的的值。
数据输出:
第1行到第m行:矩阵C各行的值。
第m+1行到第2m行:矩阵D各行的值。
示例:
输入文件input10.txt:
2
1 2
3 4
5 6
7 8
输出:(标准输出)
6 8
10 12
19 22
43 50
8. 若将稀疏矩阵中的非零元素以行序为主序的顺序存于一个一维数组中,并用一个二维数组表示稀疏矩阵中的相应元素是否是零元素,若稀疏矩阵中某元素是零元素,则该二维数组中对应位置的元素为0;否则为1。例如对稀疏矩阵A,可用一维数组V={10,20,30,40}和二维数组{1,0,1,0,0,1,1,0,0}表示该稀疏矩阵。实现使用上述稀疏矩阵存储结构的矩阵加运算X=X+Y。
数据输入:
第一行:矩阵X非零各元素的个数m。
第二行:矩阵X的m个非零元素的值。
第三行:矩阵X的二维0,1数组。
第四行:矩阵Y非零各元素的个数n。
第五行:矩阵Y的n个非零元素的值。
第六行:矩阵Y的二维0,1数组。
数据输出:
第一行:矩阵X与Y相加之后非零各元素的值。
第二行:矩阵XY相加之后的二维0,1数组。
示例:
输入文件 input11.txt:
2
1 2
0 1 0 1
2
3 4
1 0 1 0
输出:(标准输出)
3 1 4 2
1 1 1 1
9. 背包问题。设有一个背包可以放入物品的重量为s,现有n件物品,重量分别为w[0],w[1],...,[n-1]。问题是能否从这n件物品中选择若干件放入此背包中使得放入的重量之和正好等于s。如果存在一种符合上述要求的选择,则称此背包问题有解;否则称此背包问题无解。
数据输入:
第一行:测试集合个数m。
第二行:第一个测试用例的s值。
第三行:第一个测试用例的物品数量n。
第四行:第一个测试用例的n件物品的重量,中间用空格分开。
第五行:第二个测试用例的s值。
第六行:第二个测试用例的物品数量n。
第七行:第二个测试用例的n件物品的重量,中间用空格分开。
………
第2m行:第m个测试用例的s值。
第2m+1行:第m个测试用例的物品数量n。
第2m+2行:第m个测试用例n件物品的重量,中间用空格分开。
数据输出t:
第一行到第m行:分别输出是否成功,如果可以放入和为s的物品,则输出1,否则输出0。
示例:
输入文件input13.txt:
2
21
5
2 5 9 11 13
13
4
2 3 5 8
输出:(标准输出)
0
1
10. 用递归算法实现折半查找问题。
数据输入:
第一行:测试集合个数m。
第二行:第一个测试用例测试数据的个数n。
第三行:第一个测试用例的要查找的s值。
第四行:第一个测试用例的n个测试数据。
第五行:第二个测试用例测试数据的个数n。
第六行:第二个测试用例的s值。
第七行:第二个测试用例的n个测试数据。
………
第2m行:第m个测试用例测试数据的个数n。
第2m+1行:第m个测试用例的s值。
第2m+2行:第m个测试用例的n个测试数据。
数据输出:
第一行到第m行:分别输出是否成功,如果能查到,则输出查到的位置,否则输出0。
示例:
输入文件input14.txt:
2
5
3
2 3 5 9 11
5
4
2 3 5 9 11
输出:(标准输出)
2
0
11. 根据输入重构一个二叉树,输出按不同顺序遍历的节点序列
数据输入:
第一行是一个整数N(1<=N<=20),表示有多少个测试例子,以下每行是一个测试例子。每个测试例子第一个是一个整数M,表示输出的遍历顺序,其中M=0,表示前序;M=1,表示中序;M=2,表示后序。然后是一个字符序列,字符序列由A-Z和#表示,A-Z表示节点,#表示空。如果字符所在字符串的位置为i(i为正整数,位置从1开始计数),则位置为i*2,i*2+1的节点为它的子节点。如果i*2,i*2+1超过字符串长度,表示子节点为空。
数据输出:
每行输出一个例子的结果。一个字符串,中间无空格。
示例:
输入文件名:input16.txt
2
0 AB#CD######EF
1 AB#CD######EF
输出:(标准输出)
ABCDEF
CBEDFA
12. 根据输入的二叉树前序和中序遍历序列重构二叉树,输出对应节点的左右子节点。
数据输入:
第一行是一个整数N(1<=N<=20),表示有多少个测试例子。以下每个测试例子的第一行是本测试例子的二叉树的前序遍历,第二行是中序遍历,第三行首先是一个整数M,表示要求输出结果的数目,以后有M个节点,每个中间由一个空格隔开。
数据输出:
每行输出一个例子的所有结果,如果其子节点为空则输出字符#,同一例子的不同节点的输出结果之间用一个空格隔开
示例:
输入文件名:input17.txt
1
ABCDEF
CBEDFA
3 A B C
输出:(标准输出)
B# CD ##
‘玖’ c语言都有什么
C语言是一门面向过程的计算机编程语言,与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速,工作量小、可读性好,易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%~20%。因此,C语言可以编写系统软件。
1、高级语言:它是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元。[10]2、结构式语言:结构式语言的显着特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。[10]3、代码级别的跨平台:由于标准的存在,使得几乎同样的C代码可用于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。C语言对编写需要进行硬件操作的场合,优于其它高级语言。[10]4、使用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。Java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C++/C。一般而言,C,C++,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。