入门C语言10问10答

1 如何理解变量与常量?

变量与常量相当于数据的可读可写与只读,常量是数据的一种保护机制。在内存分配给程序的内存块中有专门的常量(只读)存储区。

2 整型数据的溢出问题

任何一种数据类型的数据在计算机中都有它确定的数值表示范围,一旦超出这个范围,就会产生溢出问题。

3 对于浮点型数据执行相等比较为什么有时会出现问题?

在C语言中,只有整型数据和字符型数据是精确表示的。浮点型数据采用的是指数表示形式,数据的有效位数是有限的,因此浮点型数据是不精确的。对于浮点型数据进行相等比较时,有时两个相等的数进行比较也有可能出现不相等的情况。

为了解决浮点数相等比较时的误差问题,可以规定当两个数相减之后的绝对值小于一个足够小的数时即认为它们相等。

4 没有初始化的变量的初始值是什么?

如果该变量是静态存储类型的变量,系统编译时会自动地赋初值0(对数值型变量)、空字符(对字符变量)、或者空指针(对指针型变量);而如果变量是动态存储类型,则在没有赋初值的情况下,将会有一个不确定的值(垃圾值,单元格使用过后遗留下的历史值)充当其初值,这是非常危险的,尤其是对于一个不确定的指针来说,修改它所指向存储单元的值可能会造成巨大危害。因此,一般都要求程序员为变量赋予合理的初值。

5 C语言中逻辑值1和0是如何判断的?

C语言中,一般在进行逻辑运算时,将所有非零值都作为1,也就是逻辑真;而只有本身为0的值才当做0,也就是逻辑假参加判断。

6 求解逻辑表达式时“有解即停”(短路求值)是什么意思?

当需要判断多个条件同时成立或至少有一个成立时,需要使用逻辑运算符&&和||。表达式A && B表示当A与B均为真时,条件为真;表达式A || B表示当A与B至少一个为真时,条件为真。

当求解 A && B时,只要A为假则整个表达式一定为假,此时不需要求解表达式B。而对于表达式 A || B,只要表达式A为真,则整个表达式一定为真,此时不需要求解表达式B。

7 switch语句是如何执行的?

C语言中的switch语句用于处理多分支的判断问题。

在switch语句中的多种分支情况中,只要找到了一个与表达式值匹配的case分支,则从此位置开始顺序执行,除非遇到break语句或switch语句结束。

当没有任何一个case与表达式的值相匹配时,则执行default分支中的语句,但这并不意味default分支必须位于switch语句的所有case分支之后,而是可以位于switch语句中的任何位置。同样,如果在default分支中没有break语句,则程序仍将顺序执行。

在switch语句中,case只是一个语句标号,它并不进行条件判断。因此,在switch语句执行时,会根据switch后面表达式的值找到匹配的入口标号,然后从这个标号(也就是向对应的case)处开始执行下去,不会再进行条件判断。

8 穷举法的基本思想是什么?

传统的数学解题方法通常有列方程、寻找简便算法等,那是因为人脑不能进行大量、高速的运算。在计算机数据处理中,可以通过循环程序让计算机对一个问题的所有的可能情况进行判断,从而得出那些满足问题的约束条件的各种可能情况,这些可能的情况就是实际问题的解。由于计算机的高速度和机器性,能够在程序的控制下自动连续地重复执行相同的处理,因此“穷举法”在程序设计中具有广泛应用。例如“鸡兔同笼”的问题就可以通过穷举法来解决。

9 数组在定义的同时赋初值,是否可以省略数组的大小?

在定义时给数组赋初值,如果是给全部的数组元素都赋了初值,那么可以省略一维数组的大小,若是二维数组则只能省略其第一维的大小,而第二维的大小必须明确指定。如果在定义时只是给部分元素赋了初值,那么数组的大小是不能省略的。例如要定义一个三个元素的一维整型数组,分别赋初值1,2,3,则可如下定义:int a[]={1,2,3};此时省略了数组的大小。但是如果定义的是一个具有四个元素的数组,也赋了三个初值,则应该定义如下:int a[4]={1,2,3},注意,此时的长度不可省略。

10 什么是局部变量、全局变量?

在一个函数中定义的变量,其作用域仅限于定义它的函数中,在其它的函数不能使用,这种变量称为“局部变量”。

定义在函数之外的变量,其作用域范围为定义该变量的程序位置直到程序的结束,在其它的函数中,既可以使用该变量的值,对变量值的改变也在该变量的全部作用域范围内有效,这种变量称为“全局变量”。

整理于网络,如有侵权,告知必删。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/339177.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mac json格式化工具_简洁好用的工具都是相似的

大家好,我是你们的章鱼猫。不知道大家了不了解 jq 这个工具呢?指的不是 JQuery,而是一个命令行工具。jq 是一个轻量级而且灵活的命令行 JSON 解析器,类似用于 JSON 数据的 sed 工具。我们来看一下使用 jq 处理 json 的基本用法(更…

android 撑满剩余空间,怎么让LinearLayout占据父布局的所有剩余空间

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼xmlns:tools"http://schemas.android.com/tools"android:layout_width"match_parent"android:layout_height"match_parent"android:paddingBottom"dimen/activity_vertical_margin"androi…

战神4 幕后花絮 概念艺术_Java 9幕后花絮:新功能从何而来?

战神4 幕后花絮 概念艺术找出Java幕后发生的事情,以及新功能如何实现 在上一篇文章中,我们介绍了即将发布的Java 9版本的新功能和尚待解决的功能,并简要提到了将新功能添加到下一个版本之前要经历的过程。 由于此过程几乎影响了所有Java开发人…

ID生成器 雪花算法

背景:在很多业务场景下,我们都需要一个唯一的 ID 来进行一些数据的交互,那么如何生成这个唯一的 ID 呢?如果在单机的情况下,生成唯一ID,可以利用机器内存的特点,通过内存分配即可。但我们线上的…

2014 android 机型排行,2014年10月十佳Android系统智能安卓手机排行榜单 Note 4第一名...

Android系统手机经过几年的发展,如今已经成了大家购机的首选。但在市面上数量众多的Android家族成员中,那些才是真正值得期待和拥有的机型,或许每个人会有不同的答案。如果你还在几款机型的选择上纠结,那么不妨借助国外媒体Androi…

python anaconda安装_Python - 安装并配置Anaconda环境

$ py --version # 当前默认python版本 Python 3.7.1 $ conda create --name testpy2 python2.7 pandas # 创建名为testpy2的运行环境,并安装pandas包及其依赖包 Solving environment: done ## Package Plan ## environment location: D:\DownLoadFiles\anaconda3\en…

jstack调试_增压的jstack:如何以100mph的速度调试服务器

jstack调试使用jstack调试实时Java生产服务器的指南 jstack就像U2一样-从时间的黎明就一直在我们身边,我们似乎无法摆脱它 。 除了笑话,到目前为止,jstack是您的工具库中用于调试实时生产服务器的最方便的工具之一。 即便如此,我仍…

C/C 输入输出缓冲区

【导读】:本文介绍C与C 输入输出缓冲的一些操作与特性。以下是正文(1)c 中cin、cout,cerr和c的stdin、stdout、stderr都是同步的,即iostream 对象和 and cstdio流是同步的,同步关系如下:同步即表…

android 活动销毁不了,即使活动已经销毁,AsyncTask也不会停止

我想添加一个信息补充,并给出一个指向库或2的指针,可以用于长时间运行的AsyncTask,甚至可以用于面向网络的asynctasks。AsyncTasks专为在后台执行操作而设计。是的,您可以使用该cancel方法停止它。当您从Internet下载内容时&#…

python输入input数组_python怎么输入数组

python怎么输入数组? python输入数组 一维数组:arr input("") //输入一个一维数组,每个数之间使空格隔开 num [int(n) for n in arr.split()] //将输入每个数以空格键隔开做成数组 print(num) //打印数组 一维数组输入输出示例&a…

eclipse 扩展_Eclipse扩展的轻量级集成测试

eclipse 扩展最近,我为Eclipse扩展点评估引入了一个小助手。 辅助程序努力减少通用编程步骤的样板代码,同时增加开发指导和可读性。 这篇文章是希望的后续文章,它显示了如何将实用程序与AssertJ定制断言结合使用,以编写针对Eclip…

深入理解右值引用,move语义和完美转发

move语义最原始的左值和右值定义可以追溯到C语言时代,左值是可以出现在赋值符的左边和右边,然而右值只能出现在赋值符的右边。在C 里,这种方法作为初步判断左值或右值还是可以的,但不只是那么准确了。你要说C 中的右值到底是什么&…

android startanimation 回调,ScheduledThreadPoolExecutor执行莫名停止问题Android几个动画回调运行线程...

本文记录两个问题:ScheduleThreadPoolExecutor莫名停止执行。Animation和Animator两个动画回调监听 运行在哪个线程。一:ScheduleThreadPoolExecutor问题:ScheduledThreadPoolExecutor中scheduleWithFixedDelay(command, initialDelay, delay…

java future用法_纯干货:Java学习过程中的21个知识点和技术点

我们在Java学习过程中要学会抓重点,善于总结,Java学习过程中常见的21个知识点和技术点你知道吗?下面和千锋广州小编一起来看看吧!1. JVM相关对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很深,对此…

zz测试接口_使用FizzBu​​zz和JUnitParams进行单元测试

zz测试接口我有时使用FizzBu​​zz向新手演示单元测试的基础。 尽管FizzBu​​zz确实是一个简单的问题,但它也可以用于演示更高级的单元测试技术,例如实现参数化测试。 FizzBu​​zz的可能解决方案之一是: public class FizzBuzz {private …

如何优雅地检测类型/表达式有效性?

注1:本文至少需要编译器支持C 11。注2:本文不考虑使用宏。一、老办法在写C 的时候,有时候可能需要检查一个类是否有特定的成员类型,例如:// 检查 T::type 是否存在,存在则 value 为 true,否则为…

html的页面宽高变形问题,CSS+div 设计的网页在不同浏览器中变形的问题

给别人做了一个web,自己这边正常,一到对方,机器上,发现变形了,真郁闷,后来才发现时IE7.0惹得祸,没有办法,学习呗。如何使网页在IE7.0和火狐中不变形?以下的方法可行&…

python爬虫开发 从入门到实战_python网络爬虫从入门到实战开发

1、简单的抓取网页 from urllib import request reqrequest.Request("http://www.baidu.com") responserequest.urlopen(req) htmlresponse.read() htmlhtml.decode("utf-8") print(html) 2、这里补充点Post和Get提交数据的差别 如果使用POST提交表单数据&…

swagger api文档_带有Swagger的Spring Rest API –公开文档

swagger api文档创建API文档后,将其提供给涉众很重要。 在理想情况下,此发布的文档将足够灵活以解决任何最后的更改,并且易于分发(就成本以及完成此操作所需的时间而言)。 为了使之成为可能,我们将利用我在…

html 页面重复度高,哪些情况容易造成重复页面

摘要在很多情况下我们明明没有发布重复页面,但为什么产生重复呢?下面我们一起来看看哪些情况容易造成重复页面?以及我们应该如何处理?abc.comabc.com/index.html在浏览器地址栏中输入这四个不同的URL链接,打在很多情况…