頻道欄目
首頁 > 資訊 > C語言 > 正文

2014年計算機二級C上機考試試題及答案7

14-03-25        來源:[db:作者]  
收藏   我要投稿
程序改錯題 
  使用VC++6.0打開考生文件夾下的源程序文件1.cpp,該程序運行時有錯,請改正程序中的錯誤,使程序輸出的結果為 
  150 
  200 
  注意:錯誤的語句在//******error******的下面,修改該語句即可。 
  提示:定義Numl為一個整型數據位長的變量。 
  試題程序: 
  #include 
 。******error****** 
  struct 
  { 
 。******error****** 
  intNuml:1; 
  intNum2; 
  } 
  MyStruct; 
  voidmain() 
  { 
  MyStructmstr; 
  mstr.Num1=150; 
  mstr.Num2=15; 
 。******error****** 
  int*ptr=&mstr.Numl; 
  cout<<*ptr<  *ptr=200; 
  cout<<*ptr<  } 
  (1)“typedefstruct”。 
  (2)“intNuml:32;”或“intNuml;”。 
  (3)“int*ptr=(int*)&mstr;”。 
  【解析】第1處是定義結構體,結構體定義的一般形式為 
  struct(結構體名> 
  { 
  <成員列表> 
  } 
  (變量名列表); 
  程序當中定義結構體名放在后面,MyStruct為結構體變量類型,相當于typedef為已有的類型定義一個新的類型,第1處應改為“typedefstruct”。第2處是定義Numl為一個整型數據變量,整型數據位數為32(4字節),因此第2處應改成“intNuml:32;”或“intNuml;”。ptr為整型數據指針,mstr為MyStruct類型結構變量,兩者類型不一致應該做強制類型轉換,第3處應改成“int*ptr=(int*)&mstr;”,表示將mstr的地址給ptr,ptr指向MyStruct的第一個域Numl,Numl也是整型,類型一致,故可通過ptr指針來改變Numl的值。 
相關TAG標簽
上一篇:臺積電:絕大多數7nm客戶都會轉向6nm_IT新聞_博客園
下一篇:最后一頁
相關文章
圖文推薦

關于我們 | 聯系我們 | 廣告服務 | 投資合作 | 版權申明 | 在線幫助 | 網站地圖 | 作品發布 | Vip技術培訓 | 舉報中心

版權所有: 紅黑聯盟--致力于做實用的IT技術學習網站

美女MM131爽爽爽毛片