首页考试吧论坛Exam8视线考试商城网络课程模拟考试考友录实用文档求职招聘论文下载
2013中考
法律硕士
2013高考
MBA考试
2013考研
MPA考试
在职研
中科院
考研培训 自学考试 成人高考
四 六 级
GRE考试
攻硕英语
零起点日语
职称英语
口译笔译
申硕英语
零起点韩语
商务英语
日语等级
GMAT考试
公共英语
职称日语
新概念英语
专四专八
博思考试
零起点英语
托福考试
托业考试
零起点法语
雅思考试
成人英语三级
零起点德语
等级考试
华为认证
水平考试
Java认证
职称计算机 微软认证 思科认证 Oracle认证 Linux认证
公 务 员
导游考试
物 流 师
出版资格
单 证 员
报 关 员
外 销 员
价格鉴证
网络编辑
驾 驶 员
报检员
法律顾问
管理咨询
企业培训
社会工作者
银行从业
教师资格
营养师
保险从业
普 通 话
证券从业
跟 单 员
秘书资格
电子商务
期货考试
国际商务
心理咨询
营 销 师
司法考试
国际货运代理人
人力资源管理师
广告师职业水平
卫生资格 执业医师 执业药师 执业护士
会计从业资格
基金从业资格
统计从业资格
经济师
精算师
统计师
会计职称
法律顾问
ACCA考试
注册会计师
资产评估师
审计师考试
高级会计师
注册税务师
国际内审师
理财规划师
美国注册会计师
一级建造师
安全工程师
设备监理师
公路监理师
公路造价师
二级建造师
招标师考试
物业管理师
电气工程师
建筑师考试
造价工程师
注册测绘师
质量工程师
岩土工程师
造价员考试
注册计量师
环保工程师
化工工程师
咨询工程师
结构工程师
城市规划师
材料员考试
监理工程师
房地产估价
土地估价师
安全评价师
房地产经纪人
投资项目管理师
环境影响评价师
土地登记代理人
缤纷校园 实用文档 英语学习 作文大全 求职招聘 论文下载 访谈|游戏
软件水平考试
软件水平考试资讯
软件水平考试试题
软件水平考试专项辅导
软件水平考试交流互动
软件水平考试交流互动
您现在的位置: 考试吧 > 软件水平考试 > 复习资料 > 程序员资料 > 正文

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 number>2:”);

  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(),至今仍未有任何标准考虑接受它。但是有些编译器的确允许。当然,这种写法广为流行,应该和老谭的书关系非常大。

  解决方案:用到的头文件应该用include包含进去。main()函数应该写成int main(void)这种形式,在main()函数尾部加上return 0;即

  #include

  int main(void)

  {

  int a;

  scanf(“%d”,&a);

  printf(“input %d”, a);

  return 0;

  }

1 2 3 下一页
文章搜索
软件水平考试栏目导航
版权声明:如果软件水平考试网所转载内容不慎侵犯了您的权益,请与我们联系800@exam8.com,我们将会及时处理。如转载本软件水平考试网内容,请注明出处。