网站首页 语言 会计 互联网计算机 医学 学历 职场 文艺体育 范文
当前位置:学识谷 > 英语 > 等级考试

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

栏目: 等级考试 / 发布于: / 人气:3.04W
软考程序员辅导:程序员C语言新人常见问题
  不知不觉,学习C语言也快一年了。虽然有C语言课,但是老师完全让我们自己看书,在自学的过程中,和周围同学交流中,以及后来在CSDN,BCCN,百度知道看帖回帖中,也看到许多C语言新人常遇到的问题与常犯的错误。为了让新人们少走弯路少碰壁,我便打算写下此文。当然,由于我自己的'水平也有限,其中可能自己也不知不觉犯了错误,望高手们果断斧正。
  1、程序画面一闪而过
  #include
  int main(void)
  {
  int iSignal; /*定义变量表示信号灯的状态*/
  printf(“the Red Light is 0,the Green Light is 1n”); /*输出提示信息*/
  scanf(“%d”,&iSignal); /*输入iSignal变量*/
  if(iSignal==1) /*使用if语句进行判断*/
  {
  printf(“the Light is green,cars can runn”); /*判断结果为真时输出*/
  }
  if(iSignal==0) /*使用if语句进行判断*/
  {
  printf(“the Light is red,cars can’t runn”); /*判断结果为真时输出*/
  }
  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 sushun”,n);
  else
  printf(“%d is a sushun”,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;
  }
相关推荐:
化学学习口诀
十点让你轻松学好高中外语
报关员考试辅导:配合查验
报关员考试报关单填制:用途/生产厂家
企业培训考试真题