c语言程序阅读
Ⅰ c语言程序阅读
首先你的程序里的的引号有一部分是中文的,相信你也清楚吧,如果你不能运行程序可能是中英文字符的问题,下面我来解释一下这个程序吧
#include <stdio.h>
main()
{
int c;
while((c=getchar())!=‘\n’)//当输入的字符不是回车时就进行以下循环
switch(c-‘2’)//输入c的ASCII码值减去2的ASCII码值,2的ASCII码值是50
{
case 0:
case 1: putchar(c+4);
case 2: putchar(c+4); break;
case 3: putchar(c+3);
default: putchar(c+2); break;
}
printf(“\n”);
}
我来说说此程序的功能
输入字符23时就输出对应字符加4两次
输入字符4就输出8一次
输入字符5就输出5+3和5+2,即87
输出其它字符就在本身ASCII码值加2输出;
如输入a(ASCII:值97)则输出c(ASCII值:97+2)
若case后面无break,则程序会继续向下进行,如你输入字符2,对应事件是case 0,但是它仍会执行case 1和case 2,即执行到有break时结束
Ⅱ c语言阅读程序题
首先知道数组下标从0开始
第一次循环x=0,y=y+a[0+1]=1+4=5
第二次循环x=1,y=y+a[1+1]=5+6=11
第三次循环x=2,y=y+a[2+1]=11+8=19
第四次x=3不满足循环条件x<3跳出循环,输出y,即输出19
Ⅲ C语言程序阅读
因为narr[0]]的地址为0012FF08
所以 narr[1]的地址为0012FF0C
narr[2]的地址为0012FF10
narr[3]的地址为0012FF14
p的初始值为narr的首地址, 即0012FF08
&p[2]即narr[2]的地址0012FF10 该地址存放的值为63
之后p进行了自减
则此时p的地址为0012FF08 - 4 为0012FF04
&p[4] 为原来narr[3]的地址, 即 narr[3]的地址为0012FF14,
narr[3]的值是100
Ⅳ c语言程序阅读题
最重要的问题 你这书是从哪个地摊上买的?
进入正题
字符数组赋值需要有个大括号
char s[] = {"abcde"};
s+=2这句编译器会提示 容量为6的字符数组类型不能和整形运算,并且你第一课老师就告诉你c语言是强类型语言了吧?
s[0]是'a' 整型输出就是97
别乱买书了
Ⅳ C语言程序阅读题
从最里面的 j for看,for 内容执行 3次(0-1-2),而里面的if 语句的条件是 奇数,如果是 j 是奇数,则跳过内容,继续下一次判断。
j=0、1、2中,只有 1是奇数,也就是说,j 的循环里面 有2次执行 x++,1次不执行x++;
再看外层的 i for 循环,内容很简单。总共执行2次,每次内容是x++,j 循环,x++;根据上面的描述,j 循环= 2次 x++;所以,i 循环其实就是 4次x++;2次 循环共 8次 x++;得x=8; 选C
Ⅵ c语言程序阅读题
是三个if为真才输出,而且要满足i+1能被2、3、7整除,i只能是41
Ⅶ 如何阅读C语言程序
Thinking in c programme
C语言学习方法-----北京理工大学李凤霞教授等专家谈
学习方法指导
《C程序设计语言》教学目标
* 掌握C语言的基本语法和规定。
* 掌握程序设计基本算法和思路,开拓思路,
* 提高上机操作能力,掌握上机调试程序的方法
* 培养自学能力,强调自主学习。
* 养成良好的程序设计习惯。
通过总结多年的教学经验,总结学生在学习过程中具有规律性的特点,可以发现,在本课程学习过程中学生经常出现下面这些问题:
* 注重理论学习,忽视上机编程实践,造成"只能用笔在纸上编程"的奇怪现象。特别是一些女同学,一到机器前面就手忙脚乱,如果程序再出现错误,就更不知道该如何查找错误,如何排除错误了。
*入门时自以为难度大,产生畏难情绪,总是怕,最后因为怕学不好而导致没有学好。
*前期没有抓紧,希望通过突击完成课程学习。本课程要靠平时的积累,几乎不能靠临时突击,由于前面基础补扎实,到了后面已经无法弥补。
*太注重学习语句的语法规定,忽视了对编程的思路和方法的训练。有些同学再学习结束的感觉就是:对每一个语句的语法和每一条规定都明白,就是面对实际问题的时候不知道该如何思考,该如何编程。
*急于求成,总想编写综合性的程序,忽视基本概念,忽视基本功的训练和练习。在编写程序中发现问题,一追根源,全是概念或基础问题。
为了学好本课程,没有什么窍门,建议大家采用如下的"笨"方法:
*认真听讲,积极思考,提高上课效率。教师上课讲述的都是课程的重点和难点,听好课程可以达到"事半功倍"的目的。
*主动上机,多多实践,提高动手能力。通过上机实践来验证所学的理论,通过在机器上查找错误来巩固概念,通过提高上机能力来促进理论学习,开阔编程思路,提高反映速度,提高分析问题解决问题的能力,锻炼心理素质,提高心理承受能力。
*学习初期重点掌握语言的语法和规定。这是基础。
*后期重点掌握编程的思路和基本算法。这是重点。
*学会自学,加强交流,及时答疑解惑。可以采用多种形式进行交流,可以是传统的面面进行答疑,也可以是利用网络通过邮件、BBS进行网上交流。不要将疑问积累到最后。
*开阔眼界,打开思路,多看几本书。C语言的书非常多,各有自己的特色,要找到适合自己的参考数目
1.不要看到别人的回复第一句话就说:给个代码吧!你应该想想为什么。当你自己想
出来再参考别人的提示,你就知道自己和别人思路的差异。
2.初学者请不要看太多太多的书那会误人子弟的,先找本系统的学,很多人用了很久
都是只对部分功能熟悉而已,不系统还是不够的。
3.看帮助,不要因为很难而自己是初学者所以就不看;帮助永远是最好的参考手册,
虽然帮助的文字有时候很难看懂,总觉得不够直观。
4.不要被对象、属性、方法等词汇所迷惑;最根本的是先了解最基础知识。
5.不要放过任何一个看上去很简单的小问题--他们往往并不那么简单,或者可以引伸
出很多知识点;不会举一反三你就永远学不会。
6.知道一点东西,并不能说明你会写脚本,脚本是需要经验积累的。
7.学脚本并不难,JSP、ASP、PHP等等也不过如此--难的是长期坚持实践和不遗余力的博览
群书;
8.看再多的书是学不全脚本的,要多实践
9.把时髦的技术挂在嘴边,还不如把过时的技术记在心里;
10.学习脚本最好的方法之一就是多练习;
11.在任何时刻都不要认为自己手中的书已经足够了;
12.看得懂的书,请仔细看;看不懂的书,请硬着头皮看;
13.别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍;
14.请把书上的例子亲手到电脑上实践,即使配套光盘中有源文件;
15.把在书中看到的有意义的例子扩充;并将其切实的运用到自己的工作中;
16.不要漏掉书中任何一个练习——请全部做完并记录下思路;
17.当你用脚本到一半却发现自己用的方法很拙劣时,请不要马上停手;请尽快将余
下的部分粗略的完成以保证这个代码的完整性,然后分析自己的错误并重新编写和工
作。
18.别心急,写脚本确实不容易;水平是在不断的实践中完善和发展的;
19.每学到一个脚本难点的时候,尝试着对别人讲解这个知识点并让他理解----你能
讲清楚才说明你真的理解了;
20.记录下在和别人交流时发现的自己忽视或不理解的知识点;
21.保存好你做过的所有的源文件----那是你最好的积累之一;
22.对于网络,还是希望大家能多利用一下,很多问题不是非要到论坛来问的,首先
你要学会自己找答案,比如google、网络都是很好的搜索引擎,你只要输入关键字就
能找到很多相关资料,别老是等待别人给你希望,看的出你平时一定也很懒!
23.到一个论坛,你学会去看以前的帖子,不要什么都不看就发帖子问,也许你的问
题早就有人问过了,你再问,别人已经不想再重复了,做为初学者,谁也不希望自己
的帖子没人回的。
24.虽然不是打击初学者,但是这句话还是要说:论坛论坛,就是大家讨论的地方,
如果你总期望有高手总无偿指点你,除非他是你亲戚!!讨论者,起码是水平相当的
才有讨论的说法,如果水平真差距太远了,连基本操作都需要别人给解答,谁还跟你
讨论呢。能找到很多相关资料,别老是等待别人给你希望,看的出你平时一定也很懒!
25.到一个论坛,你学会去看以前的帖子,不要什么都不看就发帖子问,也许你的问
题早就有人问过了,你再问,别人已经不想再重复了,做为初学者,谁也不希望自己
的帖子没人回的。
26.虽然不是打击初学者,但是这句话还是要说:论坛论坛,就是大家讨论的地方,
如果你总期望有高手总无偿指点你,除非他是你亲戚!!讨论者,起码是水平相当的
才有讨论的说法,如果水平真差距太远了,连基本操作都需要别人给解答,谁还跟你
讨论呢。
别做浮躁的人
浮躁的人容易问:我到底该学什么;----别问,学就对了;
浮躁的人容易问:JS有钱途吗;----建议你去抢银行;
浮躁的人容易说:我要中文版!我英文不行!----不行?学呀!
浮躁的人分两种:只观望而不学的人;只学而不坚持的人;
浮躁的人永远不是一个高手。
C++语言的学习网站
计算机专业/吉林大学CSF计算机课件/吉林大学C语言/第01讲.csf
和
计算机专业/吉林大学CSF计算机课件/吉林大学C语言/第51讲.csf
VB的(石油大学)
中间自己加
推荐一些c语言学习的资料
C程序设计(谭浩强) :
C语言资料大全1.0 :
21天学通C语言第六版(PDG) :
C语言初学者入门讲座 :
C程序设计习题参考解答.rar :
C语言学习和精华文摘 :
C语言课程设计案例精编 :
C专家编程(中文版) :
C语言经典实例 :
C语言圣经(英文) :
ANSI C语言标准 :
高质量C/C++编程指南 :
C语言函数大全(语法着色版) :
计算机学习网址汇总
里面按照类别汇总了很多计算机学习方面的网址,很不错
嵌入式研究网
Ⅷ C语言程序阅读,求解
哈哈,有意思,在看,不知道能不能想出来哦,我让我机器运行了一下过了1分钟了,还没有结果呢,看来低归好多哦
当我输入5得时候竟然答案是31
感觉2005 和 5有点联系哦
如果分解一下呢?
2002*G(x)+202*G(x-1)+G(x-1)
顺便说下,我输入了个100计算机得CPU使用已经100%并且感觉有10分钟了结果还没有出来。。。
不是没有结果,是计算机还没有算出来。。。
有发现个问题,输入22就算得很慢了。。。什么原理啊。 。。
哎。。。本人比较笨,等待高手来解答了。。。
越看越觉得想数学题。。。在网吧把我想得先记这里,见谅咯
f(x) = (2002*f(x-1)+2003*f(x-2))%2005
感觉可以简化成f(x)=-3*f(x-1)-2*f(x-2)
long 是无符还是有符
哈哈,我目前想得是利用数学得方法把这个式子简化了一下,数学学得不好,只能到这里了
return (2005-(3*g(k-1)+2*g(k-2))%2005);
这样改一下是不是能算得快点。。。
打字不易,如满意,望采纳。
Ⅸ c语言 程序阅读
第一次进入第一个for循环,
i=0;满足判断条件i<2,所以执行第一个for循环{}里的内容:
首先运行到语句x++;x值原本是0,运行x++后x值变为1
其中,执行循环体的内容后执行i++,i值变为1
程序继续执行,来到第2个for循环。
【在C里面非零值都为true.只有当表达式等于0的时候才为false
j%2是求余数,当j为奇数的时候j%2余数不是0,即为真,就执行continue。故当j为奇数的时候执行
continue,而执行continue会回到循环的开始处(注意: 不是回到if());】
首次第2个for循环:j=0,j%2的值是0;执行if{}里的x++,x值变成2
执行j++后j=1,满足j<3,继续执行第2个for循环里的内容:
j=1,j%2的值是1,为真。会执行continue,而执行continue会回到第2个for循环的开始处
j=2,j%2的值是0,为假。会执行if{}里的内容 x++,x值变成3
j=3后,不满足第2个for循环的判断条件,故不再执行第2个for循环了。
程序继续运行,来到又下一行的x++;x值变为4.。
此时,第一个for循环执行完第一次。我们回到开头,继续判断第1个for循环是否继续循环下去
i=1,满足判断条件i<2,所以继续执行第一个for循环的内容。
程序继续执行,【 注意,此时的x值已经是4了】。
首先,执行第一行的x++,x值从4变成5
再度来到第2个for循环 :
j=0,j%2的值是0;执行if{}里的x++,x值变成6
执行j++后
j=1,j%2的值是1,为真。会执行continue,而执行continue会回到第2个for循环的开始处
j=2,j%2的值是0,为假。会执行if{}里的内容 x++,x值变成7
j=3后,不满足第2个for循环的判断条件,故不再执行第2个for循环了。
跳出第2个for循环后,下面还有一行 x++,执行后x值从7变成8.
我也是刚学,自己看视频的。看到你这个题目,我先复制代码调试运行后发现结果是8,自己也搞不懂。忙了几个小时,才终于弄懂了。呵呵。
Ⅹ c语言程序阅读
先将2赋给形参x。
k的初始值是0,执行x+=k++;即x=x+k,然后k自增1。
x=2+0=2
由于k是静态变量,执行结束后并不释放内存,k的值是1。
返回x的值,返回2,主函数再将2赋给x,x=2
k的值是1,执行x+=k++;即再次x=x+k,然后k自增1。
x=2+1=3
返回x的值,返回3。
f(f(2))的值是3。