c++primer 第一章
課後題:
1.6:解釋下面程式片段是否合法。
std::cout << "The sum of " << v1;
<< " and " << v2;
<< " is " << v1 + v2 << std::endl;
如果程式是合法的,它輸出什麼?如果程式不合法,原因何在?應該如何修正?
答:不合法。c++中以;為分隔符,因此該片段中包含三行語句,而<<作為輸出運算子,應該接收兩個運算物件,且左側物件必須是ostream型別。因此後兩句並不合法。修改的話需要在後兩句上加上std::cout。
1.7編譯一個包含不正確的巢狀註釋的程式,觀察編譯器返回的錯誤資訊。
答:
#include<iostream>
int main()
{
/*
*註釋對/* */不能巢狀。
*"不能巢狀"幾個字會被認為是原始碼,
*像剩餘程式那樣處理
*/
return 0;
}
提示unknown character。
1.8指出下列哪些輸出語句是合法的(如果有的話):
std::cout<<"/*";
std::cout<<"*/";
std::cout<</*"*/"*/;
std::cout<</*"*/"/*"/*"*/;
預測編譯這些語句會產生什麼樣的結果,實際編譯這些語句來驗證你的答案,改正每一個編譯錯誤。
答:1、2、4兩句編譯通過,第3句出現錯誤。因為第3句中的前一個"在界定符之中被註釋了,因此出現了"不匹配,改正的話需要在最後一個/後加上一個"。
1.14對比for迴圈和while迴圈,兩種形式的優缺點各是什麼?
答:while對迴圈的條件進行真假判斷,更像一個不斷迴圈執行的if語句,適應面更加廣泛,不僅僅應用於對範圍的限定。而for迴圈則針對數字遞增遞減的場合進行了簡化,在限定數字範圍的場合下for迴圈比while迴圈更加直觀。
1.23編寫程式,讀取多條銷售記錄,並統計每個ISBN有幾條銷售記錄。
答:書中假設輸入時相同ISBN號是連續的,因此只要相鄰兩個ISBN號不同便停止計數並輸出。只需要設定兩個變數
#include<iostream>
#include"Sales_item.h"
int main()
{
Sales_item currBook,Book;
std::cin >> currBook;
int cnt = 1;
while (std::cin >> Book){
if (Book.isbn() == currBook.isbn()){
cnt++;
}
else{
std::cout << currBook.isbn() << " occur " << cnt << " time " << std::endl;
currBook = Book;
cnt = 1;
}
}
std::cout << currBook.isbn() << " occur " << cnt << " time " << std::endl;
return 0;
}
相關文章
- C++primer第一章C++
- C++Primer 中文版pdfC++
- c++primer——關聯容器的使用C++
- C++Primer 第六章 函式C++函式
- C++Primer 第四章 表示式C++
- c++primer——過載運算與型別轉換C++型別
- c++primer——第十章泛型演算法lambdaC++泛型演算法
- c++primer第五版7.23題知識點C++
- 第一章
- C++程式設計教材目錄思維導圖(增C++Primer)C++程式設計
- java第一章Java
- Python(第一章)Python
- 第一章 型別型別
- 第一章 非同步非同步
- 緒論&第一章
- Thinking in UML(第一章)Thinking
- 女裝教程 第一章
- 機器學習 第一章學習機器學習
- 第一章 :Git 介紹Git
- 第一章 作者簡介
- 第一章:搭建環境
- sql tuning 第一章SQL
- 第一章:概念及工具
- 第一章:介紹 (fango)Go
- c++primer——第十章泛型演算法所提到的函式總結C++泛型演算法函式
- Flask教程第一章:Hello,World!Flask
- Python基礎第一章Python
- 第一章 爬蟲介紹爬蟲
- 爬蟲入門第一章爬蟲
- c++ primer 第一章C++
- 作業系統第一章作業系統
- 第一章 Micro:bit簡介
- NDK開發系列第一章
- 第一章 初識AndroidAndroid
- jQuery第一章知識點jQuery
- 第一章 基礎知識
- 第一章 內容簡介
- 第一章 初識 LinuxLinux