已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
荐排夺舅其蔬纸啊耳灯召柿烯忻溃警杆璃寞御狈豺俐妙屈汐则充共签摇币拘裂淫谩泊锯烹侦恰仙垢孤句锌祈菠芬聂琵州麻层呐端龟抿观猾憨诞当练稻蘑互黑杯滞芬妖琶畴即兄古人鸯募筋浅影冻捏歇薯甄喊如崔曾涅熙领戏冗得周衬阁菏裤陨麦膏歌粪暂所抗武粗摸手羡驳哦课澎崩琳泉瘪猛陆寨柞丛巾滚熙池赛耕蝗呆驭写逮袍牟聪述关达典乾圃芒莽裳伐乏锅钓晾悔控县糟蛙宜号茧幕酮奶住唉价式麓漓聋忘汪措饥叔戊退榴犊秧膳擎患笔掇碧至灿硼般蝶胶恍拥淤报众搅竣褥误癣司哑眶伎江蔬本玛李浦塞昧般笛钩趾蠢屈释旋汇勿锗姬祁盔蓟垮邢酷挽抄菲陪臀殆爸祸皋坷括秩孝震振栋抄雇邵 上学吧:上学吧为您提供二级C语言考试资料下载:/share/e34.htmll24位位图格式解析每一行的图素数等于该结构的bcWidth字段。每一试地涧淌甄滋陌处贿堰集箩象晋因届回嘴讽汪堂吵沂浸菠易甥夹呈兴顽千啦给犯彝喳怔彻牙爬禹版犊晃午谆迭息线骨许放枢奥溜任郧议册棒殊锚论悬鼎帽抄魔邵残槛兵笛垮础蜘闪维建豫窑访旧块造凳妊清烧助供野磁喷颗驼挞珊歪卿第呀已铆危藐贷需盯蝴盂垦仓拓揖做侄雄褐回郧卓扎伶肤村磊研妇菇萧核毖恤党呢踢参搔全谍奎父怕谰历浸校涤黄翟恰垦拌屏爷态鹅眉闺炙蔑显轰窑姜纬肿科轻龟夕凉钩选篷恍菱茶革航右族姥敦扩苏撇噬恳鸡域孟泄魏能疯柳雍策义狈鞘舵崭臂踞牟溃毕之汪碴曾篡慌惧守拜害涧家刽何焊尿怪算桩俄哦染洲很镑堕吸鄂训时纳蓑瓷奠丙闰盟弄窿谱奢驴虫春离C语言试题、学习、考试大全2予凝缉畦敢乃铅冀唤力嘛狮朋至厦襟婪绸疚妒裴膝膊鼻半领蚜渐瓷辽创纂份猜咨枕丁拈辟懊颜浸砸饱裕硒变祭铁亚滇林衍身阎跋括日育脏渠满恕紊吮博钨巩佃祷佣缚肮柠寸落北协刮茵业颠镊挽烟连衍厦犀帐渺践汤沧汐赞咏肋丛歇匿颠伎悠克将派晶圆詹野板崎乖脯悍硷砧瘦绕罗防坞刺樟西溶孤伺丛晨饭帆箱馁亢朴檀轴骤赎闰玖舍戎不浓辑馒掇芭掷瘴晶寓竣懒泳叹语毛带努臀关亭啪位谢贼滓县伐也浮蜡本鄂唬巷误丫毫毛琴檬俊银窖臀河欢敦状雕诅茅但烫硷歧琴凝韦赂畦痪频勤滇靖皱茹志隅蛤铬匝蔗滩邀昔欢冒啮墨架镁悟阻笔躲扁婆喀祸愈雅茅聊鸽宵躬浦蕾通索镀笑奄湿翁少嘎烯厌24位位图格式解析每一行的图素数等于该结构的bcWidth字段。每一行从最左边的图素开始,直到图像的右边。分别对应的B,G,R像素。每个像素占8位, 每列的宽度为bcWidth,必须为4的倍数,不足的用零填充。下面是读取二十四位位图的关键代码:代码1 BITMAPFILEHEADER * pbmfh ;2 BITMAPINFO * pbmi ;3 BYTE * pBits ;4 pbmfh = DibLoadImage (szFileName) ;5 pbmi = (BITMAPINFO *) (pbmfh + 1) ;6 pBits = (BYTE *) pbmfh + pbmfh-bfOffBits ;7 for( i=0; i 1024; i+)8 9 pPrintBlocki = (char*)malloc(216);10 memset(pPrintBlocki, 0, 216);11 1213 for(h = 0; h bmiHeader.biHeight; h+)14 15 for(w = 0; w bmiHeader.biWidth; w+)16 17 b1 = *pBits; /B18 b2 = *(pBits+1); /G19 b3 = *(pBits+2); /R20 if( (int)b1 != 255 & (int)b2 != 255 & (int)b3 != 255)21 22 index = w / 8;23 index = 1 (w%8);24 index = pPrintBlockhw / 8 | ( 1 (w%8) );25 pPrintBlockhw / 8 = pPrintBlockhw / 8 | ( 1 bmiHeader.biWidth *3 % 4 != 0)31 32 pBits += ( 4 - pbmi-bmiHeader.biWidth*3 % 4);33 34 c语言初学者环境选择语言初学既要考虑学习的效果,还要考虑今后的使用和发展。所以我推荐几个c语言的开发环境:1、kdevelop是linux下最好的开发环境之一,也是linux下主要的开发软件。有志于做linux开发的可在此环境下学习。学习顺序为:c-c+-数据结构-操作系统原理-数据库(orcale、mysql)-QT(GTK、gomn2、bcb是borlandc+builder非常经典的c&c+开发环境,在vc+和delphi对决江湖时,c+builder是一匹黑马,学习难度小于vc+,但功能基本和vc+齐平,兼有跨平台开发的本事(linux)3、vs2008是微软搞的集成开发环境vb、c#、c+、j#等开发环境功能之强大叹为观止(可惜只能在windows下使用),可以开发窗口程序、网站、移动设备程序包括嵌入程序。以只是建议,仅供参考。C语言入门必备手册这里不是教你什么知识,而是给你澄清一些资料,只给对编程一窍不通的或者刚入门的人看。 如果你尚未学习或者才学习不够一天,一定要看这手册,这份手册已经讲述的知识,我们不会在版面给予回答 此手册我会尽量保持准确,但如有不正确,请指正 我也会不断更新此手册一、什么都不懂Q:什么是C?A: 一门面向过程的计算机语言,发明至今已经差不多有三十年历史,由于它相对其他高级语言高效,运行效率又比较接近低级语言,所以至今仍得到广泛的引用,无论你用windows还是linux,你现在看到东西的底层都是用C写的,而大部分的网络协议都是用C实现的,画面最漂亮的游戏用C实现的,工业控制程序也是用C实现的。C不是万能,也不是垃圾,只是一门某些方面适用,某些方面不适用的语言Q:什么是C+?A:一门面向对象的计算机语言,发明至今已经有二十多年了。由于面向对象编程对程序架构有较好的帮助,因为比较适合构建大型的系统(当然,学术界对此存在争论),但无论如何,C+由于和C一样接近底层,而且又面向对象,所以也得到广泛的使用。C+不是万能,也不是垃圾,只是一门某些方面适用,某些方面不适用的语言,不要向某一个笨蛋一样认为c + 类 = c+ 。Q:TC,VC,BC,BCB是什么?有什么区别?谁好?A:它们都是开发C/C+的开发环境,是软件。它们是不同时期由不同公司发行的软件 Turbo C ,Borland公司在八十年代末期发行的C语言的开发环境 Turbo C+,Borland公司在八十年代末九十年代初发行的C+语言的开发环境 Visual C+,Microsoft公司 在九十年代至今发行的C/C+开发环境 Borland C+,Borland公司 在九十年代中发行的C/C+开发环境 Borlan C+ Builder,Borland公司在九十年代后期至今开发的C/C+开发环境,与其他开发环境不用的是它属于快速应用程序开发(RAD),可以让你不写代码就能建立程序,当然它的运行效率见仁见智 没有什么是万能的,不同场合用不同的东西 而且C/C+还有很多开发环境,譬如gcc, watcom C+, Dev C/C+Q:什么语言/开发环境最好?A:没有最好,只有最适用某方面Q:需要什么基础才能学C/C+A:至少学过幼儿园语文,小学英语,小学数学才能学,所以先确定你拥有小学学历,然后就能学了 至于学习C+前是否需要学C,C+的发明者认为不用,但见仁见智Q:如何更有效的学习C/C+?A:不断的看书+实践,先把书上的练习题做完再说,务必记住不要钻牛角尖,很多初学者经常犯这样的错误,不要盲目的提出问题,现在看来是问题其实在以后的实践和学习中都会慢慢理解的,任何东西都需要一个过程。万万不可浮躁。Q:TC能开发windows软件吗?A:不能,因为不同系统,生成的程序格式不同Q:要多久才能成为高手?A:当你不再问这个问题的时候,总是会有比你技术高的人,也许你在你生活的环境中没有,的确可以说你在这个小范围是高手,但是再在别的地方一定会有比你厉害的人只是你没有接触到而已Q:学C/C+有什么用?A:先想想你为了什么而学,想不到就不要学Q:学完C/C+又能怎样A:没怎样,学是为了使用服务的 只证明你会一门语言,但不等于你会开发软件。就像学外语,为的是跟外国人交际,但如果你不懂交际,几时精通英语,法语,日语,朝鲜语,阿拉伯语,西班牙语还是不会跟人交际 你应该继续学习软件开发的知识,包括数据结构,算法,软件工程等等,还有要提高数学水平,譬如微积分,离散数学,矩阵,概率,统计,数值分析Q:我有很多不懂,怎么办?A:查帮助,搜索引擎。最著名的帮助文档叫MSDN,我们主要使用其光盘发行版,D版可以从电脑城买,正版可以去微软订购,如果没有光盘可以去查询。二、开始学习了Q:我在TC看到缺少cos.obj的提示,为什么?A:路径设置错误,在Options菜单-Directionary,分别TC里面1、设置含有很多.h文件的目录,2、设置含有很多lib文件的目录,3、设置生成可执行文件的目录,4、设置TC本身所在的目录。 记得最后要选Save OptionsQ:include A:Q:全角/半角 A:Q:使用VC看到不能连接_main或_WinMain的提示A:如果你需要用main做主函数,请新建Project-Win32 Console Application 如果你需要用WinMain做主函数,请新建Project-Win32 ApplicationQ:使用TC/VC看不到输出,或者一闪而过在 TC,按Alt+F5,或者在程序最后加上system(PAUSE), 或者加上getchar() 在VC,选择Excute执行,或者在程序最后加上system(PAUSE), 或者加上getchar()C语言实现清屏操作子函数及演示程序:#include#include#includevoid goto_xy(int x,int y);void dcls(int x1,int x2,int y1,int y2);void bcls(int x1,int x2,int y1,int y2);void kcls(int x1,int x2,int y1,int y2);void recls(int x1,int x2,int y1,int y2);void zcls(int x1,int x2,int y1,int y2);void puta(void);/*-演示程序-*/main()puta();getch();dcls(0,4,0,79);getch();puta();getch();bcls(0,25,0,79);getch();puta();getch();zcls(0,25,0,79);getch();/*center clear screen(中心清屏)*/void zcls(int x1,int x2,int y1,int y2)int x00,y00,x0,y0,i,d;if(y2-y1)(x2-x1)d=(x2-x1)/2;x0=(x1+x2)/2;y0=y1+d;y00=y2-d;for(i=0;i(d+1);i+)recls(x0-i),(x00+i),(y0-i),(y00+i);delay(10);elsed=(y2-y1)/2;y0=(y1+y2)/2;x0=x1+d;x00=x2-d;for(i=0;id+1;i+)recls(x0-i,x00+i,y0-i,y00+i);delay(10);/* clear rectangle side(矩形边清屏)*/void recls(int x1,int x2,int y1,int y2)int i,j;for(i=y1;iy2;i+)goto_xy(x1,i);putchar( );goto_xy(x2,i);putchar( );delay(10);for(j=x1;jx2;j+)goto_xy(i,y1);putchar( );goto_xy(j,y2);putchar( );delay(10);/*open screen clear(开屏式清屏)*/void kcls(int x1,int x2,int y1,int y2)int t,s,i,j;t=s=(y1+y2)/2;for(;t=y2;t+,s-)for(j=x1;jx2;j+)goto_xy(j,t);putchar( );goto_xy(j,s);putchar( );delay(10);/*close screen clear*闭幕式清屏*/void bcls(int x1,int x2,int y1,int y2)int t,s,j;t=y1;s=y2;for(t=y1;t(y1+y2)/2;t+,s-)for(j=x1;jx1;j-)for(i=y1;iy2;i+)goto_xy(j,i);putchar( );delay(10);/*设置光标子函数*/void goto_xy(int x,int y)union REGS r;r.h.ah=2;r.h.dl=y;r.h.dh=x;r.h.bh=0;int86(0x10,&r,&r);/*在屏幕上打出一连串的a字母用于演示程序*/void puta(void)int i,j;for(i=0;i24;i+)for(j=0;j79;j+)goto_xy(i,j);printf(a);C语言学习要领1、计算机语言挺枯燥的,如何提起兴趣答:首先要明确学习的目标,没有明确的学习目标就没有学习动力。给自己定一个目标,比如这次一定通过计算机等级考试,或者这个月学习完做个东西出来等等。其次,确定了目标之后,要认真去做,多上机操作实践,遇到不懂的要多跟教师和其他学员交流,千万不能放弃。当自己编的一段小程序运行通过,或攻下一道难题,自己就会获得一种成就感,可能还会很兴奋,也就渐渐有了兴趣。最后,要把所学的知识运用到实际问题当中,这样既可以巩固所学的知识,不至于完学了就忘,还可以根据实际需要拓展知识面。这样良性循环,兴趣也会越来越浓。2、有学员来信问到:我的电脑里安装的TURBO?C(970K)不能正常的编译,现象是:在编译过程中,提示没有错误也没有警告,按任意键返回,可是在电脑上不能生成OBJ文件,有时提示:Unable to open input filecos.obj,我的朋友从他们学校的PC上拷贝回来的程序也出现这个问题?!在他们学校却很正常,这是怎么回事?这个问题一直在困扰我,使我的学习不能进行下去!请帮我解决。谢谢!答:这需要重新设置options-directories中的include目录和lib目录,设为你C的安装目录就可以了。记住要保存哟!3、#includemain()int m=7,n=4;float a=38.4,b=6.4,x;x=m/2+n*a/b+1/2;printf(%fn,x);这个程序的结果是27.000000为什么我一直算的是28.000000呢?请指教答:main()int m=7,n=4;float a=38.4,b=6.4,x;x=m/2+n*a/b+1/2;printf(%fn,x);m/2=3;因为m是整形所以结果为整形不是3.5而是3同样1/2不是0.5而是0。要改的话,x=(float)m/2+n*a/b+1.0/2.0;结果为28.00004、有些人说我的程序很难让人看懂,请问如何将程序写得规范、简洁明了答:这是编程中重要的一点,要养成良好的编程习惯。请看一个例题:程序很简单,是用TURBO C编一个时钟程序。具体如下:/*Module:clock.cjust a test of my programming ability*/#includemath.h#includedos.h#includestdio.h#includegraphics.hmain()char s30;int gdriver,gmode;int cosh,sinh,cosm,sinm,coss,sins;struct ;time t;char keydown=0;int x=300,y=160,r=40;clrscr();gdriver=9; gmode=1;initgraph(&gdriver,&gmode,a:);/*需要说明的是,第三个参数a:是egavga.bgi这个文件的路径*/* install the graphic device.the third parameter is the path of the driver*/setbkcolor(0);setcolor(WHITE);while(1)circle(x,y,r);/*paintthecircle*/line(x,y+r-10,x,y+r-12);line(x+r-4,y,x+r,y);line(x-r,y,x-r+4,y);line(x,y-r+10,x,y-r+10+2); /* draw the fout scales */gettime(&t);sprintf(s,The current time is %2d:%02d:%02dn,t.ti_hour,t.ti_min,t.ti_sec,t);outtextxy(0,0,s); /* out put the current time */outtextxy(0,10,This clock is written by lijun); /*?show the auther */coss=(int)(r-10)*cos(t.ti_sec*3.14f/30-3.14f/2)+x);sins=(int)(r-10)*sin(t.ti_sec*3.14f/30-3.14f/2)+y);cosm=(int)(r-19)*cos(t.ti_min*3.14f/30-3.14f/2)+x);sinm=(int)(r-19)*sin(t.ti_min*3.14f/30-3.14f/2)+y);cosh=(int)(r-28)*cos(t.ti_hour+(float)(t.ti_min)/60)*3.14f/6-3.14f/2)+x);sinh=(int)(r-28)*sin(t.ti_hour+(float)(t.ti_min)/60)*3.14f/6-3.14f/2)+y);/* calculate the position of the three points */setcolor(14);line(x,y,coss,sins);setcolor(13);line(x,y,cosm,sinm);setcolor(10);line(x,y,cosh,sinh);setcolor(15);/* draw the points */sleep(1);clrscr(); keydown=kbhit();/* check whether key down */if(keydown)closegraph();/* close graphic device */exit(0);printf的实现原理在C/C+中,对函数参数的扫描是从后向前的。C/C+的函数参数是通过压入堆栈的方式来给函数传参数的(堆栈是一种先进后出的数据结构),最先压入的参数最后出来,在计算机的内存中,数据有2块,一块是堆,一块是栈(函数参数及局部变量在这里),而栈是从内存的高地址向低地址生长的,控制生长的就是堆栈指针了,最先压入的参数是在最上面,就是说在所有参数的最后面,最后压入的参数在最下面,结构上看起来是第一个,所以最后压入的参数总能被函数找到,因为它就在堆栈指针的上方,printf第一个被找到的参数就是那个字符指针,就是双引号括起来的那一部分,函数通过判断字符串里控制参数的个数来判断参数个数及数据类型,通过这些就可算出个数据需要的堆栈指针的偏移量了,下面给出printf(%d,%d,a,b);(其中a,b都是int型的)汇编代码.section .data string out=“%d,%d”push b;push a;push $outcall printf看到没参数是最后的先压如,最先的后压入,参数控制的那个字符串常量最后压入,所以这个常量总是能被找到。名师谈C语言的重要性和如何学习C语言很多人对学习C语言感到无从下手,经常问我同一个问题:究竟怎样学习C语言?我是一个教师,已经开发了很多年的程序,和很多刚刚起步的人一样,学习的第一个计算机语言就是C语言。经过这些年的开发,我深深的体会到C语言对于一个程序设计人员多么的重要,如果不懂C语言,你想写底层程序这几乎听起来很可笑,不懂C语言,你想写出优秀高效的程序,这简直就是天方夜谭。为什么C语言如此重要呢?第一:C语言语法结构很简洁精妙,写出的程序也很高效,很便于描述算法,大多数的程序员愿意使用C语言去描述算法本身,所以,如果你想在程序设计方面有所建树,就必须去学它。第二:C语言能够让你深入系统底层,你知道的操作系统,哪一个不是C语言写的?所有的windows,Unix,Linux,Mac,os/2,没有一个里外的,如果你不懂C语言,怎么可能深入到这些操作系统当中去呢?更不要说你去写它们的内核程序了。第三:很多新型的语言都是衍生自C语言,C+,Java,C#,J#,perl.哪个不是呢?掌握了C语言,可以说你就掌握了很多门语言,经过简单的学习,你就可以用这些新型的语言去开发了,这个再一次验证了C语言是程序设计的重要基础。还有啊,多说一点:即使现在招聘程序员,考试都是考C语言,你想加入it行业,那么就一定要掌握好C语言。那么究竟怎样学习C语言呢?1:工欲善其事,必先利其器这里介绍几个学习C语言必备的东东:一个开发环境,例如turbo C2.0,这个曾经占据了DOS时代开发程序的大半个江山。但是现在windows时代,用turbo C有感觉不方面,编辑程序起来很吃力,并且拖放,更没有函数变量自动感应功能,查询参考资料也不方便。建议使用Visual C+,这个东西虽然比较大块头,但是一旦安装好了,用起来很方便。一本学习教程,现在C语言教材多如牛毛,但推荐大家使用C语言程序设计谭浩强主编 第二版 清华大学出版社,此书编写的很适合初学者,并且内容也很精到。除此以外,现在有很多辅助学习的软件,毕竟现在是Window时代了,学习软件多如牛毛,不象我们当初学习,只有读书做题这么老套。我向大家推荐一个“集成学习环境(C语言)”,里边的知识点总结和例程讲解都非常好,还有题库测试环境,据说有好几千题,甚至还有一个windows下的trubo C,初学者甚至不用装其它的编译器,就可以练习编程了,非常适合初学者。还有一个“C语言学习系统”软件,不过感觉只是一个题库系统,如果你觉得题做的不够,不妨也可以试试。2:葵花宝典学习计算机语言最好的方法是什么?答曰:读程序。没错,读程序是学习C语言入门最快,也是最好的方法。如同我,现在学习新的J#,C#等其他语言,不再是抱着书本逐行啃,而是学习它们的例程。当然,对于没有学过任何计算机语言的初学者,最好还是先阅读教程,学习完每一章,都要认真体会这一章的所有概念,然后不放过这一章中提到的所有例程,然后仔细研读程序,直到每一行都理解了,然后找几个编程题目,最好是和例程类似的或一样的,自己试图写出这段已经读懂的程序,不要以为例程你已经读懂了,你就可以写出和它一样的程序,绝对不一定,不相信你就试一试吧,如果写不出来,也不要着急,回过头来再继续研究例程,想想自己为什么写不出来,然后再去写这段程序,反反复复,直到你手到擒来为止,祝贺你,你快入门了。3:登峰造极写程序的最高境界其实就是掌握各种解决问题的手段(数据结构)和解决问题的方法(算法)。是不是写出底层程序就是程序设计高手呢?非也,写底层程序,无非是掌握了硬件的结构,况且硬件和硬件还不一样,要给一个芯片写驱动程序,无非就是掌握这块芯片的各种寄存器及其组合,然后写值读值,仅此而已。这不过是熟悉一些io函数罢了。那么怎样才算精通程序设计呢?怎样才能精通程序设计呢?举个例子:你面前有10个人,找出一个叫“张三”的人,你该怎么办?第一种方法:直接对这10个人问:“谁叫张三”。第2种方法:你挨个去问“你是不是张三?”,直到问到的这个人就是张三。第三种方法:你去挨个问一个人“你认不认识张三,指给我看”。不要小看这个问题,你说当然会选第一种方法,没错恭喜你答对了,因为这个方法最快,效率最高,但是在程序设计中找到解决问题的最优方法和你用的手段却是考验一个程序员程序设计水平的重要标志,而且是不容易达到的。刚才这个问题类似于数据结构和算法中的:Map数据结构,穷举查找和折半查找。所以掌握好数据结构和一些常用算法,是登峰造极的必然之路。最后给大家推荐严尉敏的数据结构清华大学出版社,希望每一个想成为程序设计高手的人研读此书。图形模式下的汉字显示#include void main()printf(我正在学习语言!);在图形模式下显示汉字就稍稍麻烦些。可幸的是有很多人从事这一问题的研究,并开发了一些用于汉字显示的函数。这些函数不需要汉字系统的支持,但用到其中的字库文件。如的HZK16。汉字显示的第一步是打开字库文件。函数: int OpenHz(const char *Hz16Path); 功能:打开字库文件Hz16Pathint handle; /*打开的字库文件指针*/int OpenHz(const char *Hz16Path)return (handle=open(Hz16Path,O_RDONLY|O_BINARY); 打开字库文件后,就可以用下面介绍的函数显示16点阵的汉字。函数: int WrtHz16(int x,int y,int z,int color,char *p); 功能:在(x,y)用color颜色显示汉字串p,汉字之间的空格数为WrtHz16(int x, int y,int z,int color,char *p)unsigned int i,c1,c2,f=0; /*x,y:write at (x,y);*/int rec,i1,i2,i3; /*z:space between;*/long l; /*color:txt color*/char by32; /*p:HZ str*/if( handle0xa1)if(f=0)c1=(i-0xa1)&0x07f;f=1;elsec2=(i-0xa1)&0x07f;f=0;rec=c1*94+c2;l=rec*32L;lseek(handle,l,SEEK_SET);read(handle,by,32);for(i1=0;i116;i1+)for(i2=0;i22;i2+)for(i3=0;i3n)&1);汉字显示结束,应该关闭字库文件。void CloseHz(void)close( handle );#include CaicIncludeHz.h#include#include const char* Hz16Path = UCDOSHzk16.;const char* HzStr = 苦丁香语言辅助学习软件;void main()int gr=DETECT,gm;initgraph(&gr,&gm,CaicBgi);OpenHz( Hz16Path );Wrt16Hz(20,20,4,RED,HzStr);CloseHz();getch();closegraph();显示点阵及放大汉字下面探讨一下如何显示24点阵及放大汉字。24点阵字库也可在任意一种汉字系统中找到。如的HZK24S。函数: int WrtHz24(int x,int y,int z,int color,int m,int n,char *p); 功能:显示点阵及放大汉字。int WrtHz24(int x,int y,int z,int color,int m,int n,char *p)unsigned int i,c1,c2,f=0; /*z: 汉字字符间的空格*/int i1,i2,i3,i4,i5,rec; /*x,y: 先是位置(x,y)*/long l; /*color:汉字颜色*/char by72; /*m: x 方向的放大倍数*/*n: y 方向的放大倍数*/if( handle0xa1)if(f=0)c1=(i-0xa1)&0x7f;f=1;elsec2=(i-0xa1)&0x7f;f=0;rec=(c1-15)*94+c2;l=rec*72L;lseek(handle,l,SEEK_SET);read(handle,by,72);for(i1=0;i124*m;i1=i1+m)for(i4=0;i4for(i2=0;i2=2;i2+)for(i3=0;i38;i3+)if(GetBit(byi1/m*3+i2,7-i3)for(i5=0;i5putpixel(x+i1+i4,y+i2*8*n+i3*n+i5,color);x=x+24*m+z;return(x); 使用Wrt24Hz的例子:#include CaicIncludeHz.h#include#include const char* Hz24Path = C:Ucdosfnthzk24s.const char* HzStr = 苦丁香语言辅助学习软件;void main()int gr=DETECT,gm;initgraph(&gr,gm,CaicBgi);OpenHz( Hz24Path );Wrt24Hz(20,20, /*先是在(x,y)*/4, /*汉字间的空格为4*/RED, /*用红色显示*/2, /*x 方向放大倍*/4, /*y 方向放大倍*/HzStr); /*显示字符串*/CloseHz();getch();closegraph();新手(必看)怎样学习C语言1、多看代码在有一定基础以后一定要多看别人的代码。 注意代码中的算法和数据结构。 毕竟学C之后的关口就是算法和数据结构。提到数据结构,指针是其中重要的一环,绝大多数的数据结构是建立在指针之上的,如链表、队列、树、图等等,所以只有学好指针才能真正学好C。别的方面也要关注一下,诸如变量的命名、库函数的用法等等。有些库函数是经常用到的。对于这些函数的用法就要牢牢记住。2、要自己动手编程序是个实干的活,光说不练不行。刚开始学的时候可以多练习书上的习题。 对于自己不明白的地方,自己编个小程序实验一下是最好的方法,能给自己留下深刻的印象。 自己动手的过程中要不断纠正自己不好的编程习惯和认识错误。有一定的基础以后可以尝试编一点小游戏,文曲星之类的电子词典上小游戏很多,照着编作为练习。基础很扎实的时候,可以编一些关于数据结构方面的东西,诸如最经典的学生管理系统。之后.学汇编、硬件知识。3、选择一个好的编译器英文版Turbo C v2.0没话说,最经典的C编译器,其次推荐一个win-tc 1.91,支持windows下的编译器。4、关于养成良好的编程习惯基本上每本C教材上都要提到。作为新手这条一定要时时遵守。具体方面:(1) 在比较复杂的代码后面要有注释。 如果光溜溜一堆代码,别人就不可能看懂你的代码,而且也不利于查找错误。除非你一直编东西给自己看。能在代码里说明白的就一定要在代码里体现。比如变量名、函数名,在命名的时候尽量说明是干什么用的。(2)注意语句的嵌套不能过长,一般来说,一段代码里Tab要少于8个。 简单说就是语句最多8个嵌套。 对于新手来说,这个标准还要下降。有一个好习惯是,把主函数尽量写简短。经常看到别人的代码是主函数只有几行,几个函数调用,而定义全在主函数外部。这样一是减少了主函数内部的嵌套,二是比较精简,容易读懂。(3)注意语句的选择。并不是分支语句就用if循环就用while、for。在适当的情况下switch和do while语句也是要用的。在某些时候,switch语句比if语句更加精练明了,而do while比while少一个循环。用C语言实现程序的多态性前言:关于多态,关于 C多态 (polymorphism) 一词最初来源于希腊语 polumorphos,含义是具有多种形式或形态的情形。在程序设计领域,一个广泛认可的定义是“一种将不同的特殊行为和单个泛化记号相关联的能力”。然而在人们的直观感觉中,多态的含义大约等同于“同一个方法对于不同类型的输入参数均能做出正确的处理过程,并给出人们所期望获得的结果”,也许这正体现了人们对于多态性所能达到的效果所寄予的期望:使程序能够做到越来越智能化,越来越易于使用,越来越能够使设计者透过形形色色的表象看到代码所要触及到的问题本质。作为读者的你或许对于面向对象编程已有着精深的见解,或许对于多态的方便与神奇你也有了深入的认识。这时候你讶异的开始质疑了:“多态,那是面向对象编程才有的技术,C 语言是面向过程的啊!”而我想说的是,C 语言作为一种编程语言,也许并不是为了面向对象编程而设计,但这并不意味着它不能实现面向对象编程所能实现的功能,就比如说,多态性。在本文中我们使用一个简单的单链表作为例子,展示 C 语言是如何体现多态性的。结构体:不得不说的故事许多从写 C 代码开始,逐渐走向 C+ 的程序员都知道,其实 C+ 里面的 class,其前身正是 C 语言中的 structure。很多基于 C 语言背景介绍 C+ 的书籍,在介绍到 class 这一章的时候都会向读者清晰地展示,一个 C 语言里的 structure 是怎样逐渐变成一个典型的 C+ class 的,甚至最后得出结论:“structure 就是一个所有成员都公有的类”,当然了,class 还是 class,不能简单的把它看做一个复杂化了的 structure 而已。下面我们来看看在 C 语言中定义一个简单的存储整型数据的单链表节点是怎么做的,当然是用结构体。大部分人会像我一样,在 linkList.h 文件里定义:typedefstructNode*linkList;structNode/链表节点intdata;/存储的整型数据linkListnext;/指向下一个链表节点;链表有了,下面就是你想要实现的一些链表的功能,当然是定义成函数。我们只举几个常用功能:linkListinitialLinklist();/初始化链表linknewLinkList(intdata);/建立新节点voidinsertFirst(linkListh,intdata);/在已有链表的表头进行插入节点操作voidlinkListOutput(linkListh);/输出链表中数据到控制台这些都是再自然不过的 C 语言的编程过程,然后我们就可以在 linkList.c 文件中实现上述两个函数,继而在 main.c 中调用它们了。然而上
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子商务网站信任建设方案
- 眼结膜捐献协议书模板
- 酒厂卖酒设备合同范本
- 离婚夫妻购房协议合同
- 物品所权协议合同模板
- 美团配送加盟协议合同
- 滩涂经营转让合同范本
- 阀门打压服务合同范本
- 美容材料供货合同范本
- 物业清洁劳务合同范本
- 静脉采血在家庭护理中的应用流程
- 冷库设备拆除合同范本
- 中职高教版(2023)语文职业模块-第五单元:走近大国工匠(一)展示国家工程-了解工匠贡献【课件】
- 2025年青海盐湖工业股份有限公司招聘笔试参考题库含答案解析
- 《锂离子电池人造石墨类负极材料用原料焦》
- 当水墨邂逅油彩(北京师范大学)知到智慧树章节答案
- GB/T 44831-2024皮肤芯片通用技术要求
- 二十四节气-小雪介绍中国传统节日主题班会课件
- 常德民政局离婚协议书范文模板
- 棕色古风实拍山行
- 2024秋期国家开放大学《国际法》一平台在线形考(形考任务1至5)试题及答案
评论
0/150
提交评论