C语言,以下如何理解,谢谢!

作者&投稿:可亲 (若有异议请与网页底部的电邮联系)
C语言,这一句如何理解?while((temp&0x01)&&!(temp&(1<<16)));谢谢~

(temp&0x01)&&!(temp&(1<<16))
这个是条件语句
temp&0x01 变量temp和0x01按位与,得到一个结果,如果结果为0,结束循环;结果为不为0,在验证下一个条件.
!(temp&(1<<16)) 逻辑非语句,先验证temp&(1<<16)
先把1向左位移16位,得到的就结果,在后temp按位与,得到的结果
条件temp&(1<<16) 取反,结果为0,取反为真;结果非0,取反为假

#包含头文件 stdio.h
#包含头文件 windows.h
返回值为数字型 主函数
声明 文件类型指针 fin
声明 字符类型变量 ch
将文件a.txt以只读方式打开并指向指针 fin
如果指针fin为空则
{
在屏幕打印:文件打开错误
退出程序,返回 1
}
当指针fin没有指到文件结束符时进行循环
{
将当前fin指针指向内容赋值给变量ch,且指针向后移动一位
屏幕打印ch变量内容
}
打印一个换行符
关闭文件指针fin
程序进入暂停状态
返回0结束

总的来说就是打开一个文件,把文件的字符挨个打印到屏幕上,然后暂停程序等待手动结束。

我认为要学好C语言首先必须了解等级考试C语言的大纲和内容,以及各种辅助材料的用途,这是学好C的基础。从以前的经验以及考网上的一些信息可知,要自学C语言必须准备以下资料:

1、 教材:大家现在都公认是清华大学谭浩强主编的那本,当然有其他的也可以,如高校出版社的。

2、 习题集:我认为清华大学的《C语言样题汇编》不错。书后面附有答案。

3、 上机练习:我认为南开大学的那个可以,最好是在考前从头到尾做一遍。答案可以去考网下载区下载。

4、 大纲:这个肯定要的,可以在考网二级版那里去下,然后打印出来。

5、 自学计划:为了做到有计划有目的地学习C语言,大家可以根据自己的学习(或工作)情况,制定一个自学计划,循序渐进地学习。

6、 模拟盘:为了更好地熟悉考场环境,下一个模拟盘是必不可少的,可以在。下载,注意,在下载时要把锁匙盘一起下回来,否则不能进入考试环境。

7、 教学光盘:如果能买到C语言的教学光盘,那当然更好,这样可以更直观地学习C语言了。

下面从微观上针对C语言的几个重点和难点,逐个谈谈具体的自学方法。

二 如何学习C语言的运算符和运算顺序

C语言的运算功能十分丰富,运算种类远多于其它程序设计语言。因此,当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则显得十分重要。

初学者往往对此感到非常困难,觉得C语言学习太繁杂,其实只要我们对此合理进行分类,找出它们与我们在数学中所学到运算之间的不同点之后,记住这些运算也就不困难了,有些运算符在理解后更会牢记心中,将来用起来得心应手,而有些可暂时放弃不记,等用到时再记不迟。

下面是所有的运算符按优先级不同分类列表:(对不起,因为表格显示不正常,已被我删除大家可以看书上的)

表中列出15种优先级的运算符,从高到低,优先级为1 ~ 15,最后边一栏是结合规则,除第2、3级和第14级为从右至左结合外,其它都是从左至右结合,它决定同级运算符的运算顺序。

下面我们通过几个例子来说明:

(1) 3*20/4%10 这个表达式中出现3种运算符,是同级运算符,运算顺序按从左至右结合,因此先计算3 * 20=60,然后被4除,结果为15,最后是%(求余数)运算,所以表达式的最终结果为15%10 = 5

(2)a = 3;b = 5;c =++ a* b ;d =a + +* b;

例子中的“;”是C语言的语句分隔符,执行顺序为从左到右,第1条语句执行后a的值为3,第2条语句执行后b的值为5,第3条语句中有两个运算符前置+ +和*,按表中所列顺序,+ +先执行,*后执行,所以+ + a执行后,a的值为4,由于+ +为前置运算,所以a的值4参与运算,C的值为20,最后执行第4条语句,由于a + +为后置运算,所以a值为4参与运算,使得d的值仍为20,而a参与运算后其值加1,值为5。

这个例子执行后,a的值为5,b的值为5,c的值为20,d的值也是20。

(3)a = 3,b = 5,b+ = a,c = b* 5

例子中的“,”是逗号结合运算,上式称为逗号表达式,自左向右结合,最后一个表达式的结果值就是逗号表达式的结果,所以上面的逗号表达式结果为40,a的值为3,b的值为8,c的值为40。

三、如何学习C语言的四种程序结构

(1)顺序结构

这种结构的程序比较简单,就是按照语句的排列顺序依次执行的机制。顺序结构的执行顺序是自上而下,依次执行,因此编写程序也必须遵守这一规定,否则你的程序执行结果就不对。

例如;a = 3,b = 5,现交换a,b的值,正确的程序为:

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语言自学方法(2)

(2) 分支结构

分支结构与顺序结构不同,其执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。分支结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的分支语句。

分支结构适合于带有逻辑条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。程序流程图是根据解题分析所绘制的程序执行流程图。

学习分支结构不要被分支嵌套所迷惑,只要弄清基本的分支结构,嵌套结构也就不难了。嵌套只不过是分支块体中又包括分支语句而已,不是新知识,只要你基础知识扎实,分支嵌套也难不住你,下面我们重点讨论几种基本的分支结构的学习方法。

①If(条件)

{



}

这种分支结构中的块可以是一条语句,此时“{

}”可以省略,也可以是多条语句。它有两条分支路径可选,一条是条件为真,执行块,另一条是条件不满足,跳过块。

如,计算x的绝对值,根据绝对值定义,我们知道,当x>=0时,其绝对值不变,而x<0时其绝对值是为x的反号,因此程序段为:if(x<0)

x=-x;

②if(条件)

else

这是典型的分支结构,如果条件成立,执行块1,否则执行块2,块1和块2都有1条或若干条语句构成。

如:求ax^2+bx+c=0的根

分析:因为当b^2-4ac>=0时,方程有两个实根,否则(b^2-4ac<0)有两个共轭复根。其程序段如下:

d=b*b-4*a*c;

if(d>=0)

{x1=(-b+sqrt(d))/2a;

x1=(-b-sqrt(d))/2a;

printf(“x1=%8.4f,x2=%8.4f\n”,x1,x2);

}

else

{r=-b/(2*a);

i =sqrt(-d)/(2*a);

printf(“x1=%8.4f+%8.4fi\n”r, i);

printf(“x2=%8.4f-%8.4fi\n”r,i)

}

③多路分支:其语句格式为:

if(条件1) ;

else if(条件2)

else if(条件3)

……

else if(条件n)

else

④switch语句:

switch

语句也是多分支选择语句,又称为多路开关语句,到底执行哪一块,取决于开关设置,也就是表达式的值与常量表达式相匹配的那一路,它不同if—else 语句,它的所有分支都是并列的,程序执行时,由第一分支开始查找,如果相匹配,执行其后的块,接着执行第2分支,第3分支……的块,直到遇到break语句;如果不匹配,查找下一个分支是否匹配。

(3)循环结构:

循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构,C语言中提供四种循环,即goto循环、while循环、do –while循环和for循环。

四种循环可以用来处理同一问题,一般情况下它们可以互相代替换,但一般不提昌用goto循环,所以下面我们重点讲解另外的三种循环。

常用的三种循环结构学习的重点在于弄清它们相同与不同之处,以便在不同场合下使用,大家好好看一下书中三种循环的格式和执行顺序,如何替换使用,如把while循环的例题,用for语句重新编写一个程序,这样能更好地理解它们的作用。

注意:在while和do—while循环体内和for

循环中的第3语句中,应包含趋于结束的语句(如I++,I--),否则就可能成了一个死循环,这也是初学者的一个常见错误。

下面我们来讨论下这三种循环的异同之处:

用while和do—while循环时,循环变量的初始化的操作应在循环体之前,而for循环是在语句1中进行的;while

循环和for循环都是先判断表达式,后执行循环体,而do—while循环是先执行循环体后判断表达式,也就是说do—while的循环体最少被执行一次,而while

循环和for就不一定了。这三种循环都可以用break语句跳出循环,用continue语句结束本次循环,而goto语句与if构成的循环,不能用break和

continue语句进行控制。

这三种结构并不是彼此孤立的,在循环中可能出现分支、顺序结构,分支中也可能出现循环、顺序结构而把循环、分支看成一个语句,它又是构成顺序结构的一个元素,因此这三种结构相互结合,就能实现各种算法,设计出解题程序,但若是很大的题目,这样编出的程序往往很长,重复结构多,并且可阅读性差,因此我们常将C程序设计成模块化结构。

(4)模块化程序结构

C语言的模块化程序结构用函数来实现,即将复杂的C程序分为若干模块,每个模块都编写成一个合法的C函数,然后用主函数调用函数及函数调用函数实现一大C程序:C程序=主函(main)+若干个函数。

在程序设计中,常将一些常用的功能模块写成函数,也可以将大程序段分割成若干函数,前者目的在于减少重复编写程序段的工作量,后者目的在于缩短模块长度,以便程序阅读方便。

一个源程序文件由一个或多个函数组成,它是一个编译单位,而一个C程序由一个或多个源程序文件组成。对较大的程序,往往分成多个文件,这样可以分别编写、分别编译,提高高调试效率,一个源程序文件可以被多个C程序公用。

C程序的的执行是从main()函数开始,调用其它函数后流程回到main函数,在main中结束整个函数运行,main函数的称是系统规定的,用户可以修改其内容即函数体,但不能修改其名称和参数,一个C程序必须有一个main函数,也只能有一个main函数。

所有函数都是平行的,即在定义函数时是互相独立的一个函数度不从属于另一个函数,即函数不能嵌套定义,但可以互相调用,但不能调用main函数。

函数分成两类,即标准函数和用户自定义函数,标准函数又称库函数,由系统提供,用户可直接调用,C语言提供了丰富的库函数,请考生在编写C程序时查阅教材后的函数说明,这可节省你的编程工作量;用户自定义函数由编程者自己编写.

首先申明,本人不是什么高手,但自认为对c还比较熟悉,可以给你提点建议:

1、学习C语言,要从入门到精通,需要读哪些书(从简单的到难的排序,越详细越好,最好都能注释下选择这本书的理由)?

入门阶段:还是老谭那本。
理由:虽然不能说它写得有多好,但是你现在要做的是入门,要快速的掌握c的基本语法,这本书很好理解,能够让你在最短的时间内大致掌握这门语言的概更。

第二阶段:《c程序设计语言》(The C Programming Language)和《C语言解惑》(The C puzzle book)
理由:《the c programming language》号称c语言圣经。其实它也只是一本介绍基础语法的书,不做入门教程是因为对于初学者来说,它难度稍大,之所以推荐,是因为它能让你---系统而严密的---把C语言知识构架整理一遍。《c语言解惑》,系统的整理了c语法中容易让你产生迷惑或容易犯错的地方(如a+++++b等),这时候你才算真正开始学习c语言了.(以上两本现在出重印了,应该在书店可以买到)

第三阶段:《C陷阱与缺陷》(C Traps and Pitfalls)和《高质量c/c++编程指南》
理由:《c陷阱与缺陷》是让对c的理解有质变得一本书,如如何理解(*(void(*)())0)()等问题,我的感觉是看完这本书让我真正从小菜鸟变成了老菜鸟。《高质量...》,终于有一本国产的了,呵呵,我认为这本书是把你从土匪变成正规军的最好指南,该书涉及编程风格、效率、重载、健壮性等一些列之前很难注意的问题。(以上两本《c陷阱...》已绝版,不过网上可以下载到中英文版,《高质量...》本身就是网络书,很容易找到)

其它推荐书:《c专家编程》《c和指针》
说实话这两本书我并没有看过(或看完),但有口皆碑,都是经典之作,不过都已经绝版,仔细找找网上有下载的。

2、有哪些好的C语言练习(越难的越好)?
对语言本身的练习其实就是你对它的理解,用得多了,注意得多了,自然就ok了。其它思维上的练习主要是算法和数据结构方面的,严老的《数据结构题集(C语言版)》如果你能做完就相当了不起了。

3、要学精C语言,还要具备哪些条件?
其实c语言也只是一个工具而已,就像锄头一样,你每天挖地锄田自然就精通它了。只要不是白痴,应该都没有问题。

4、C语言学完后接下去要学哪些语言好?
这个我就没有资格回答了,因为除了少量汇编和c++,我大部分只用到了c,不过也许是一脉相承的c++吧。c是面向过程的语言,学习c++面向对象的思想。

5、各位网友如果在学习计算机语言方面还有一些独到的见解,欢迎提出!
不是我提出的,不过真的很经典——“天下程序一大抄”,呵呵。

两个关系模式的键分别是学好和课号
既然是主键,具备唯一性,这样一个学号和一个课号能准确对应一个成绩

这是多对多的典型转换格式,学生与课程间是多对多,转换为关系模式后出现一张新表,该表由这两个实体的主码在此充当外码,还有一些细节请参看关系模式的转换

我感觉和关健字差不多。


C语言,以下如何理解,谢谢!
《c语言解惑》,系统的整理了c语法中容易让你产生迷惑或容易犯错的地方(如a+++++b等),这时候你才算真正开始学习c语言了.(以上两本现在出重印了,应该在书店可以买到) 第三阶段:《C陷阱与缺陷》(C Traps and Pitfalls)和《高质量c\/c++编程指南》 理由:《c陷阱与缺陷》是让对c的理解有质变得一本书,如如何...

(原创)如何理解语言和哲学语言
  哲学语言也是一种承载体,我们读别人哲学书时,一些术语承载体是由作者来限定用法和赋予意义的,比如康德的物自体。你也要把它当成承载体去理解。  把承载体从千万事物中提出来,不是归纳这么简单,而是部分析取过程,析取有相对分析过程和辨别提取过程,虽然最后都要归于文字来解释。...

如何理解语言作为工具这一含义?
语言作为工具的含义是指,语言可以用来表达我们的思想,促进思想的交流以及实现目标。它可以帮助我们清楚地传达自己的想法,理解他人的想法,共同取得成功。因此,语言可以被看作是一种工具,可以帮助人们完成愿望,达成目标。

如何理解语言的表达效果?
(1)比喻:形象生动、简洁凝练地描写事物、讲解道理,增强语言的生动性、形象性、化抽象为具体,使人易于理解。(2)拟人:赋予事物以人的性格、思想、感情和动作,使物人格化,使之更形象,从而达到形象生动的效果。(3)夸张:突出特征,揭示本质,给读者以鲜明而强烈的印象。(4)排比:条理清晰,...

如何理解语言的任意性与双重性?
1、语言的任意性:声音与意义的结合是任意的,二者没有本质的、必然的联系,也就是说,声音与意义的结合是不可论证的,完全是使用语言的社会集团自然而然地形成的习惯.能思维、会说话、能制造和使用工具的高等动物。2、徐冶琼提出绝对任意性和相对任意性,认为在一个词的内部,语音与语义的结合是绝对...

如何理解语言的演变特点?
指语言的发展变化不是均衡的、匀速的,而是不平衡的。具体表现是:第一,语言系统发展变化不平衡。在语言各子系统中,词汇系统的发展变化最快,而语法、语音系统的发展变化则相对较慢。第二,不同时期语言发展变化不平衡。当社会变革较为剧烈、社会发展的步伐较快、社会思维较为活跃、不同文化的接触较为...

以下c语言如何理解?
"*"); \/\/输出星号*}}循环的具体说明如下:i=0,j从0到4,输出*,共输出5个 i=1,j从0到3,输出*,共输出4个 i=2,j从0到2,输出*,共输出3个 i=3,j从0到1,输出*,共输出2个 i=4,j从0到0,输出*,共输出1个 因此最终的输出结果是一行*,共输出15个 输出结果:

如何理解新生儿的语言
宝宝也会理解妈妈心里的感受和爱意的哦!慢慢的,和宝宝就会越来越默契呢! 如何理解新生儿的语言2 新生儿不能用语言表达他们的需要。哭是他们的语言。从他离开母亲身体的那一刻起,新生儿就用哭声向世界宣布他来到了这个世界。第一声哭泣的意义是非常重要的。产科医生、新生儿儿科医生、助产士,没有人不期待这响亮的第...

如何理解语言的力量?
言语是我们与他人沟通交流的重要工具,一句话可以产生很大的影响力,既可以让人感到无比愉悦,也可以带来深深的创伤和伤痕。当我们听到或看到一句话时,会在脑海中形成联想和认知处理,在进一步阅读、理解和整理过程中,可能会引发一系列情感反应,比如欣喜、恼怒、难过、震惊等等。如果对方表达的是赞美、鼓励...

如何理解C语言?
如下图所示:C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台...

调兵山市17891153424: C语言,以下如何理解,谢谢! -
豫衫止喘: 我认为要学好C语言首先必须了解等级考试C语言的大纲和内容,以及各种辅助材料的用途,这是学好C的基础.从以前的经验以及考网上的一些信息可知,要自学C语言必须准备以下资料: 1、 教材:大家现在都公认是清华大学谭浩强主编的那...

调兵山市17891153424: 什么是c语言?具体点!谢谢!
豫衫止喘:C语言的原型ALGOL 60语言.(也称为A语言) 1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言. 1967年,剑桥大学的Matin Richards 对CPL语言进行了简化,于是产生了BCPL语言. 1970年,美...

调兵山市17891153424: C语言 请教以下语句应该如何理解,请高人指点,谢谢! -
豫衫止喘: i = dpmrsw[7]; k = dpmrsw[7]; if (i != k){ i = dpmrsw[7]; if (i != k){ k = dpmrsw[7]; if (i != k) j++; } }这样问,没意义

调兵山市17891153424: c语言可以怎么样理解
豫衫止喘: C语言是一种计算机程序设计语言.它既有高级语言的特点,又具有汇编语言的特点.它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序.因此,它的应用范围广泛.C语言对...

调兵山市17891153424: 对C语言的通俗理解??谁能告诉我 -
豫衫止喘: 语言是一种交流工具,人与人之间语言交流 计算机只识别二进制比如111110000111000机器语言,但是人看不懂啊 ,或者看懂了很难记住也很不方便,人是很聪明的他们就想办法改进于是产生了汇编语言mov ax,10过了过人们发现汇编语言也不是那么简单易用,贝尔实验室的天才们发明了C语言,每一样要有约束啊他们规定C语言必须以main()函数开始而且有语法 ,其实C---->编译器--->机器语言---->连接器---》可执行文件.学C不要拘泥于没用的,按照语法来编写,慢慢就习惯了

调兵山市17891153424: 12,13题请问详解,c语言的谢谢 -
豫衫止喘: 12. 没有正确选项.应该是'1''-''2'('-'表示空格),即ch1=='1',ch2=='-',ch3=='2'.因为%1c取1个宽度即1赋给ch1;%2c取2个宽度即'-'和'2',结果把'-'赋给ch2而把'2'丢弃;%3c取3个字符'2''-''3',结果把2赋给ch3,把'-''3'都丢弃;还有2个3还留在输入缓冲区里.而选项中的(B)、(D)中间那个符号是''而不是' ',所以说无正确选项.估计出题者的意图是选(D),但把选项印错了.13. (A).%3d是截取3位,%*3c是跳过3个字符.我想你已明白了.

调兵山市17891153424: 怎么了解C语言 -
豫衫止喘: 一.学好C语言的运算符和运算顺序 这是学好《C程序设计》的基础,C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言.在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单,...

调兵山市17891153424: 请解释一下C语言的意思,谢谢
豫衫止喘: 对于前缀表达式,是先执行自增自减运算,再计算表达式的值,对于后缀表达式则反过来 printf("i++=%d,j--=%d\n",i++,j--);后缀式,先计算表达式,再自增,所以先输出i++表达式的值5,i再+1变为6,j--同理,先输出i--表达式值5,再自减变为4 ...

调兵山市17891153424: 我刚学c语言,技术比较菜,以下代码思想我不是完全理解,求大神附上一些解释,谢谢! -
豫衫止喘: srand(time(0));// srand()函数的获取1970年1月1日0点到现在时间的总秒数.for(num = 0; num < 3; ++num)//让以下代码运行3次,++num可以分解成num = num + 1;{ ... n = rand() % 10;//rand()函数返回int类型值然后除以10获得余数. ...}省略号的部分就算是初级应该也知道意思吧.

调兵山市17891153424: 请解释一下谢谢谢谢谢谢.c语言中的意思 -
豫衫止喘: !是逻辑运算符!a读作非a 举个例子:a=1 那么 !a = 0- 是算术运算符a=1 那么 -a=-1明白没?

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网