軟考程序員輔導:程序員C語言新人常見問題

軟考程序員輔導:程序員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;
  }
相關推薦:
化學學習口訣
十點讓你輕鬆學好高中外語
報關員考試輔導:配合查驗
報關員考試報關單填制:用途/生產廠家
企業培訓考試真題