2012年软考程序员辅导:程序员C语言新人常见问题.doc

2012年软考程序员辅导:程序员C语言新人常见问题.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2012年软考程序员辅导:程序员C语言新人常见问题  不知不觉,学习C语言也快一年了。虽然有C语言课,但是老师完全让我们自己看书,在自学的过程中,和周围同学交流中,以及后来在CSDN,BCCN,百度知道看帖回帖中,也看到许多C语言新人常遇到的问题与常犯的错误。为了让新人们少走弯路少碰壁,我便打算写下此文。当然,由于我自己的水平也有限,其中可能自己也不知不觉犯了错误,望高手们果断斧正。   下面的程序,基本是摘自在CSDN,BCCN,百度知道的提问帖,以及我身边的人和我自己写的程序,限于篇幅,对于问题影响不大的部分我已经删去或改写,一些与相应问题无关的错误也一并进行了修改。对于完整的修正后的程序都在code::blocks 10.05(编译器gcc,调试器gdb,平台windows 7旗舰版)上运行过。    1、程序画面一闪而过    #include    int main(void)    {    int iSignal; /*定义变量表示信号灯的状态*/    printf(“the Red Light is 0,the Green Light is 1\n”); /*输出提示信息*/    scanf(“%d”,iSignal); /*输入iSignal变量*/    if(iSignal==1) /*使用if语句进行判断*/    {    printf(“the Light is green,cars can run\n”); /*判断结果为真时输出*/    }    if(iSignal==0) /*使用if语句进行判断*/    {    printf(“the Light is red,cars can’t run\n”); /*判断结果为真时输出*/    }    return 0;    }   解析:在XP以上的系统用win-tc,dev-cpp等IDE编译运行此程序时,无论输入什么数字,结果都是一闪而过,因为程序执行完语句后就直接退出了。   解决方案:这里有几个办法(1)   在程序开头加上#include   然后在程序末尾加上system(“pause”);   此方法仅适用于MS-DOS,windows,不适用于*nix等系统(2)   在需要暂停的地方加入一个或两个getchar();   这种方法,实质上并不是暂停程序,而是让程序等待用户输入若干个回车。但是效果和暂停是相同的。(3)   在程序开头加上#include   在需要暂停的地方加入一个getch();,原理和上一种差不多。在win-tc里用得比较多。    2、if,for,while的判断后直接跟;   例如:    #include    int main(void)    {    int a;    scanf(“%d”,a);    if (a == 123);////错误,if(a == 123)后面不应加上;,而应该紧跟着    ////{ printf();}代码    {    printf(“ccc”);    }    else    {    printf(“ddd”);    }    getchar();    return 0;    }    #include    int main(void)    {    int n,i;    printf(“please input a number2:”);    scanf(“%d”,n);    for(i=2;i    {    if(n%i==0)    break;    }    if(i    printf(“%d not a sushu\n”,n);    else    printf(“%d is a sushu\n”,n);    return 0;    }   解析解决方案:见注释    3、漏头文件,main函数格式不规范。   例如:    main()    {    int a;    scanf(“%d”,a);    printf(“input %d”, a);    }   解析:这段程序没有带上头文件stdio.h。即漏写了#include 。如果仅有scanf,printf函数的话,stdio.h是可以省略并可以正确运行的,但是这是非常不好的习惯。而main()这种写法,C89标准勉强充许这种形式,C99标准是不允许的。而void main(),至今仍未有任何标准考虑接受它。但是有些编译器的确允许。当然,这种写法广为流行,应该和老谭的书关系非常大。   解决方案:用

文档评论(0)

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档