等級考試

當前位置 /首頁/英語/等級考試/列表

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