[ 收藏 ] [ 简体中文 ]  
臺灣貨到付款、ATM、超商、信用卡PAYPAL付款,4-7個工作日送達,999元臺幣免運費   在線留言 商品價格為新臺幣 
首頁 電影 連續劇 音樂 圖書 女裝 男裝 童裝 內衣 百貨家居 包包 女鞋 男鞋 童鞋 計算機周邊

商品搜索

 类 别:
 关键字:
    

商品分类

  •  管理

     一般管理学
     市场/营销
     会计
     金融/投资
     经管音像
     电子商务
     创业企业与企业家
     生产与运作管理
     商务沟通
     战略管理
     商业史传
     MBA
     管理信息系统
     工具书
     外文原版/影印版
     管理类职称考试
     WTO
     英文原版书-管理
  •  投资理财

     证券/股票
     投资指南
     理财技巧
     女性理财
     期货
     基金
     黄金投资
     外汇
     彩票
     保险
     购房置业
     纳税
     英文原版书-投资理财
  •  经济

     经济学理论
     经济通俗读物
     中国经济
     国际经济
     各部门经济
     经济史
     财政税收
     区域经济
     统计 审计
     贸易政策
     保险
     经济数学
     各流派经济学说
     经济法
     工具书
     通货膨胀
     财税外贸保险类考试
     英文原版书-经济
  •  社会科学

     语言文字
     社会学
     文化人类学/人口学
     新闻传播出版
     社会科学总论
     图书馆学/档案学
     经典名家作品集
     教育
     英文原版书-社会科学
  •  哲学

     哲学知识读物
     中国古代哲学
     世界哲学
     哲学与人生
     周易
     哲学理论
     伦理学
     哲学史
     美学
     中国近现代哲学
     逻辑学
     儒家
     道家
     思维科学
     马克思主义哲学
     经典作品及研究
     科学哲学
     教育哲学
     语言哲学
     比较哲学
  •  宗教

  •  心理学

  •  古籍

     经部  史类  子部  集部  古籍管理  古籍工具书  四库全书  古籍善本影音本  中国藏书
  •  文化

     文化评述  文化随笔  文化理论  传统文化  世界各国文化  文化史  地域文化  神秘文化  文化研究  民俗文化  文化产业  民族文化  书的起源/书店  非物质文化遗产  文化事业  文化交流  比较文化学
  •  历史

     历史普及读物
     中国史
     世界史
     文物考古
     史家名著
     历史地理
     史料典籍
     历史随笔
     逸闻野史
     地方史志
     史学理论
     民族史
     专业史
     英文原版书-历史
     口述史
  •  传记

  •  文学

  •  艺术

     摄影
     绘画
     小人书/连环画
     书法/篆刻
     艺术设计
     影视/媒体艺术
     音乐
     艺术理论
     收藏/鉴赏
     建筑艺术
     工艺美术
     世界各国艺术概况
     民间艺术
     雕塑
     戏剧艺术/舞台艺术
     艺术舞蹈
     艺术类考试
     人体艺术
     英文原版书-艺术
  •  青春文学

  •  文学

     中国现当代随笔
     文集
     中国古诗词
     外国随笔
     文学理论
     纪实文学
     文学评论与鉴赏
     中国现当代诗歌
     外国诗歌
     名家作品
     民间文学
     戏剧
     中国古代随笔
     文学类考试
     英文原版书-文学
  •  法律

     小说
     世界名著
     作品集
     中国古典小说
     四大名著
     中国当代小说
     外国小说
     科幻小说
     侦探/悬疑/推理
     情感
     魔幻小说
     社会
     武侠
     惊悚/恐怖
     历史
     影视小说
     官场小说
     职场小说
     中国近现代小说
     财经
     军事
  •  童书

  •  成功/励志

  •  政治

  •  军事

  •  科普读物

  •  计算机/网络

     程序设计
     移动开发
     人工智能
     办公软件
     数据库
     操作系统/系统开发
     网络与数据通信
     CAD CAM CAE
     计算机理论
     行业软件及应用
     项目管理 IT人文
     计算机考试认证
     图形处理 图形图像多媒体
     信息安全
     硬件
     项目管理IT人文
     网络与数据通信
     软件工程
     家庭与办公室用书
  •  建筑

     执业资格考试用书  室内设计/装潢装修  标准/规范  建筑科学  建筑外观设计  建筑施工与监理  城乡规划/市政工程  园林景观/环境艺术  工程经济与管理  建筑史与建筑文化  建筑教材/教辅  英文原版书-建筑
  •  医学

     中医
     内科学
     其他临床医学
     外科学
     药学
     医技学
     妇产科学
     临床医学理论
     护理学
     基础医学
     预防医学/卫生学
     儿科学
     医学/药学考试
     医院管理
     其他医学读物
     医学工具书
  •  自然科学

     数学
     生物科学
     物理学
     天文学
     地球科学
     力学
     科技史
     化学
     总论
     自然科学类考试
     英文原版书-自然科学
  •  工业技术

     环境科学
     电子通信
     机械/仪表工业
     汽车与交通运输
     电工技术
     轻工业/手工业
     化学工业
     能源与动力工程
     航空/航天
     水利工程
     金属学与金属工艺
     一般工业技术
     原子能技术
     安全科学
     冶金工业
     矿业工程
     工具书/标准
     石油/天然气工业
     原版书
     武器工业
     英文原版书-工业技
  •  农业/林业

     园艺  植物保护  畜牧/狩猎/蚕/蜂  林业  动物医学  农作物  农学(农艺学)  水产/渔业  农业工程  农业基础科学  农林音像
  •  外语

  •  考试

  •  教材

  •  工具书

  •  中小学用书

  •  中小学教科书

  •  动漫/幽默

  •  烹饪/美食

  •  时尚/美妆

  •  旅游/地图

  •  家庭/家居

  •  亲子/家教

  •  两性关系

  •  育儿/早教

  •  保健/养生

  •  体育/运动

  •  手工/DIY

  •  休闲/爱好

  •  英文原版书

  •  港台图书

  •  研究生
     工学
     公共课
     经济管理
     理学
     农学
     文法类
     医学

  •  音乐
     音乐理论

     声乐  通俗音乐  音乐欣赏  钢琴  二胡  小提琴
  • C語言程序設計學習指導(第2版)
    該商品所屬分類:研究生 -> 工學
    【市場價】
    193-280
    【優惠價】
    121-175
    【作者】 劉小軍、張彬、宋柱芹 
    【所屬類別】 圖書  教材  研究生/本科/專科教材  工學圖書  計算機/網絡  程序設計  CC++C#VCVC++ 
    【出版社】清華大學出版社 
    【ISBN】9787302500827
    【折扣說明】一次購物滿999元台幣免運費+贈品
    一次購物滿2000元台幣95折+免運費+贈品
    一次購物滿3000元台幣92折+免運費+贈品
    一次購物滿4000元台幣88折+免運費+贈品
    【本期贈品】①優質無紡布環保袋,做工棒!②品牌簽字筆 ③品牌手帕紙巾
    版本正版全新電子版PDF檔
    您已选择: 正版全新
    溫馨提示:如果有多種選項,請先選擇再點擊加入購物車。
    *. 電子圖書價格是0.69折,例如了得網價格是100元,電子書pdf的價格則是69元。
    *. 購買電子書不支持貨到付款,購買時選擇atm或者超商、PayPal付款。付款後1-24小時內通過郵件傳輸給您。
    *. 如果收到的電子書不滿意,可以聯絡我們退款。謝謝。
    內容介紹



    開本:16開
    紙張:膠版紙
    包裝:平裝-膠訂

    是否套裝:否
    國際標準書號ISBN:9787302500827
    叢書名:21世紀高等學校計算機教育實用規劃教材

    作者:劉小軍、張彬、宋柱芹
    出版社:清華大學出版社
    出版時間:2018年08月 


        
        
    "

    編輯推薦
    《C語言程序設計學習指導(第2版)》為《C語言程序設計案例教程(第2版)》的配套學習指導教材,內容由淺入深、循序漸進、通俗易懂、解答詳盡、開拓思路;通過做習題,學生還可以進一步鞏固C語言理論知識,熟練運用解決實際問題。 
    內容簡介
    本書是《C語言程序設計案例教程(第2版)》的配套教材,從實踐的角度分析和驗證各知識點,快速提高讀者的程序設計能力。
    全書共分為4部分,內容包括:C程序運行環境(Microsoft Visual C 6.0和C-Free 5.0)、C程序設計上機實驗項目(17個)、C程序典型題解(40個)及C語言程序設計選擇題集(525個)等。本書內容豐富,實用性強,具有啟發性,是學習C語言的參考用書。
    目錄


    第1章 VisualC 6.0實驗環境... 1
    1.1 VC 6.0概述... 1
    1.2 VC 6.0的啟動... 1
    1.3 建立新工程... 1
    1.4 編譯並連接程序... 7
    1.5 程序的錯誤修改... 8
    1.6 單步調試... 8
    1.7 生成可執行文件並發布... 10
    第2章 C-Free5.0實驗環境... 11
    2.1 C-Free5.0概述... 11
    2.2 C-Free5.0的啟動... 11
    2.3 建立新工程... 11

     



    1章  Visual
    C 6.0
    實驗環境... 1


    1.1 
    VC 6.0概述... 1


    1.2 
    VC 6.0的啟動... 1


    1.3  建立新工程... 1


    1.4  編譯並連接程序... 7


    1.5  程序的錯誤修改... 8


    1.6  單步調試... 8


    1.7  生成可執行文件並發布... 10


    2章  C-Free
    5.0
    實驗環境... 11


    2.1  C-Free
    5.0概述... 11


    2.2  C-Free
    5.0的啟動... 11


    2.3  建立新工程... 11


    2.4  編譯並運行程序... 14


    2.5  程序的錯誤修改... 15


    2.6  程序調試... 15


    2.7  生成可執行文件並發布... 16


    3章  實驗項目... 17


    實驗項目1  運行一個C程序... 17


    實驗項目2  數據類型與表達式... 19


    實驗項目3  順序結構程序設計方法... 26


    實驗項目4  分支結構程序設計方法... 29


    實驗項目5  循環結構程序設計方法... 35


    實驗項目6  分支與循環結構綜合程序設計... 42


    實驗項目7  一維數組程序設計... 47


    實驗項目8  二維數組程序設計... 50


    實驗項目9  字符數組程序設計... 55


    實驗項目10  數組與指針程序設計... 59


    實驗項目11  函數的定義和調用... 63


    實驗項目12  函數的嵌套調用與遞歸函數... 67


    實驗項目13  變量的作用域與存儲屬性... 73


    實驗項目14  指針與函數... 77


    實驗項目15  結構體應用... 82


    實驗項目16  文件及應用... 87


    實驗項目17  C語言程序綜合應用... 91


    4 
    C程序典型題解... 93


    5章  C語言程序設計選擇題集... 157


    習題1  數據類型及表達式、關繫運算、邏輯運算與條件運算... 157


    習題2  選擇結構... 167


    習題3  循環結構... 176


    習題4  數組... 186


    習題5  函數和編譯預處理... 202


    習題6  指針... 224


    習題7  結構體... 236


    習題8  共用體... 241


    習題9  鏈表... 242


    習題10  位運算... 244


    習題11  文件... 246


    參考文獻..................................................................................................................... 251

    前言

    程序設計是一門操作性較強的專業技術,為了在學習理論知識的同時,更進一步增強讀者的實踐能力,幫助讀者深刻理解C語言程序設計中的基本概念及原理,本書主要以實驗訓練的方式,通過實踐對各知識點進行分析、驗證以及拓展,加深讀者對知識點的理解和掌握程度,提高學習效率。本書第1版於2015年2月出版發行,自出版以來獲得眾多師生的認可。在受到肯定的同時,也收到較多讀者對本書的使用體會和建議。筆者結合教學大綱變化,總結前期師生給予的教學反饋,對本書第1版進行了修訂,推出第2版。更新後的版本中,根據教學大綱及讀者反饋,已對相應的內容作了更新和補充說明,前期版本中出現的個別文字或符號錯誤也已進行了修正,對個別章節的內容還作了適當調整。在此,向給予幫助的各位同仁表示感謝,也希望大家繼續支持第2版,並提出批評和指正建議,激勵我們更進一步完善。本書是與《C語言程序設計案例教程(第2版)》相配套的輔助教學教材,重點突出實踐教學環節。全書共4部分內容,依次為C程序運行環境(Microsoft Visual C 6.0和C-Free 5.0)、C程序設計實驗項目、C程序典型題解和C語言程序設計選擇題集。其中,部分對C語言的開發環境(Microsoft Visual C 6.0和C-Free 5.0)進行較全面的介紹。第二部分提供了學習C語言程序設計需要進行的17個實驗項目,每個實驗項目均明確實驗目的和實驗內容。實驗內容分為三類:類是驗證性實驗,對每個實驗題都進行了詳細的分析與描述;第二類是設計性實驗,要求讀者在掌握驗證性實驗的基礎上能自行設計程序來解決一些實際問題;第三類是提高性實驗,為學有餘力的讀者提供自我挑戰的機會。第三部分是在學習課程知識的基礎上搜集到的C程序典型問題,以圖豐富學生的實戰經驗。後為C語言程序設計選擇題集,它覆蓋了C語言的主要知識點,進一步為讀者掌握C語言提供幫助。本書作者均為多年從事C語言程序設計教學、具有豐富教學經驗的高校教師。整體內容的順利完成都是他們對多年教學經驗的總結和共同努力的結果,在此向他們致以崇高的敬意,也更希望本書能對廣大讀者有所幫助。本書內容設計合理,解答詳盡,通俗易懂,有利於讀者參考和自學。書中涉及的所有代碼均在Microsoft Visual C 6.0集成開發環境下編譯通過。本書由劉小軍主編,參加編寫的人員還有張麗華、張彬、宋柱芹、殷聯甫、梁田5位老師。由於編者水平有限,不足或遺漏之處在所難免,敬請廣大讀者及同仁批評指正。編  者  2018年1月
    在線試讀
    實 驗 項 目實驗項目1 運行一個C程序一、實驗目的(1)熟悉Visual C 6.0和C-Free 5.0兩種C語言運行環境。(2)掌握在上述兩種環境下編輯、編譯、連接和運行一個C程序的方法。(3)通過運行簡單的C程序,認識C程序的特點,掌握和理解C程序的結構。二、實驗要求 (1)進入Visual C 6.0或C-Free 5.0的工作環境。(2)熟悉Visual C 6.0或C-Free 5.0集成環境,掌握繫統主菜單中常用命令的使用。(3)運行簡單的C程序,逐步掌握編輯、編譯、連接、運行和調試C程序的方法。三、實驗內容1.驗證性實驗 (1)在Visual C 6.0或C-Free 5.0環境下編輯下列C語言程序,編譯、連接並運行,觀察並理解其運行結果。#include stdio.h int main(){int a,b,c;printf("Enter first integer:");scanf("%d", a);printf("Enter second integer:");scanf("%d", b);c=a b;printf("a b=%d\
    ,c);return 0;}程序運行結果如圖3-1所示。
    圖3-1 從鍵盤輸入兩個整數並求它們的和① 去掉“#include stdio.h ”,運行程序,觀察運行結果,並分析為什麼。② 去掉“int a,b,c;”語句後的“;”,運行程序,觀察運行結果,並分析為什麼。③ 將“c=a b;”改為“C=a b;”,運行程序,觀察運行結果,並分析為什麼。(2)嘗試改正下列程序中的錯誤,直到程序經編譯後沒有錯誤信息,並得到題目要求的運行結果。題目要求得到的輸出結果如圖3-2所示。
    圖3-2 題目要求得到的輸出結果含有錯誤的源程序如下:#include stdio.h int main(){ int a=1;b=2,c=3, printf("output:%d,%d,%d\
    a,b,c); return 0;}2.設計性實驗(1)編寫程序,從鍵盤輸入兩個整型變量a和b,求它們的差並輸出,圖3-3所示是一個示例結果。
    圖3-3 從鍵盤輸入兩個整數並求它們的差(2)編寫程序,從鍵盤輸入x的值,根據公式y=x2 1求y的值,輸出x和y的值(假設x和y都是int型變量),圖3-4所示是一個示例結果。
    圖3-4 求x2 1的值實驗提示:x2可表示為x*x。(3)編寫程序,從鍵盤輸入x的值,求x的平方根並賦給變量y,輸出x和y的值(假設x和y都是int型變量),圖3-5所示是一個示例結果。         實 驗 項 目實驗項目1  運行一個C程序一、實驗目的(1)熟悉Visual C 6.0和C-Free 5.0兩種C語言運行環境。(2)掌握在上述兩種環境下編輯、編譯、連接和運行一個C程序的方法。(3)通過運行簡單的C程序,認識C程序的特點,掌握和理解C程序的結構。二、實驗要求 (1)進入Visual C 6.0或C-Free 5.0的工作環境。(2)熟悉Visual C 6.0或C-Free 5.0集成環境,掌握繫統主菜單中常用命令的使用。(3)運行簡單的C程序,逐步掌握編輯、編譯、連接、運行和調試C程序的方法。三、實驗內容1.驗證性實驗 (1)在Visual C 6.0或C-Free 5.0環境下編輯下列C語言程序,編譯、連接並運行,觀察並理解其運行結果。#includeint main(){int a,b,c;printf("Enter first integer:");scanf("%d",&a);printf("Enter second integer:");scanf("%d",&b);c=a b;printf("a b=%d\
    ,c);return 0;}程序運行結果如圖3-1所示。
    圖3-1  從鍵盤輸入兩個整數並求它們的和① 去掉“#include ”,運行程序,觀察運行結果,並分析為什麼。② 去掉“int a,b,c;”語句後的“;”,運行程序,觀察運行結果,並分析為什麼。③ 將“c=a b;”改為“C=a b;”,運行程序,觀察運行結果,並分析為什麼。(2)嘗試改正下列程序中的錯誤,直到程序經編譯後沒有錯誤信息,並得到題目要求的運行結果。題目要求得到的輸出結果如圖3-2所示。
    圖3-2  題目要求得到的輸出結果含有錯誤的源程序如下:#includeint main(){    int a=1;b=2,c=3,    printf("output:%d,%d,%d\
    a,b,c);    return 0;}2.設計性實驗(1)編寫程序,從鍵盤輸入兩個整型變量a和b,求它們的差並輸出,圖3-3所示是一個示例結果。
    圖3-3  從鍵盤輸入兩個整數並求它們的差(2)編寫程序,從鍵盤輸入x的值,根據公式y=x2 1求y的值,輸出x和y的值(假設x和y都是int型變量),圖3-4所示是一個示例結果。
    圖3-4  求x2 1的值實驗提示:x2可表示為x*x。(3)編寫程序,從鍵盤輸入x的值,求x的平方根並賦給變量y,輸出x和y的值(假設x和y都是int型變量),圖3-5所示是一個示例結果。
    圖3-5  求x的平方根實驗提示:可用函數sqrt(x)求x的平方根,要使用該函數,必須在程序前面加上頭文件math.h。實驗項目2  數據類型與表達式一、實驗目的(1)掌握C語言基本數據類型的常量表示、變量的定義和使用。(2)掌握C語言各類運算符的優先級、結合性及相應表達式的求值方法。(3)掌握不同類型數據之間的賦值規律,理解自動與強制數據類型轉換。(4)學會編寫程序求表達式結果的方法。(5)掌握C語言基本數據類型數據的輸入方法。(6)掌握常見格式控制字符對輸出結果的控制作用。(7)理解數據溢出錯誤和舍入誤差(以整型、實型數據為例)。(8)掌握指針的簡單使用方法。(9)進一步熟悉C程序的實現過程。二、實驗要求 (1)實驗時仔細對比程序實際運行結果,認真分析並回答思考中的問題。(2)如果程序有錯,記錄編譯、連接、運行過程中遇到的提示錯誤。分析出錯原因,記下更正的方法。(3)可以對實驗程序進行修改、補充,以便完成自己需要的程序驗證和測試。在完成實驗要求的工作外,要學會創造性地工作。三、實驗內容1.驗證性實驗 (1)輸入以下程序,運行後分析結果。#includeint main(){int i,j,m,n;i=97;j=65;m= i;n=j ;printf("i=%d,j=%d,m=%d,n=%d\
    ,i,j,m,n);printf("i=%c,j=%c,m=%c,n=%c\
    ,i,j,m,n);/*printf("i=%f,j=%f,m=%f,n=%f\
    ,i,j,m,n);*/return 0;}程序運行結果如圖3-6所示。
    圖3-6  程序運行結果① 程序中語句“m= i;”起什麼作用?② 程序中語句“n=j ;”起什麼作用?③ 程序中語句“printf("i=%d, j=%d, m=%d,n=%d\
    ,i,j,m,n);”起什麼作用?④ 程序中語句“printf("i=%c, j=%c, m=%c, n=%c\
    ,i,j,m,n);”起什麼作用?⑤ 程序中語句“/*printf("i=%f, j=%f, m=%f, n=%f\
    ,i,j,m,n);*/”執行了嗎?如果把其中的/*和*/去掉,變成語句“printf("i=%f, j=%f, m=%f,n=%f\
    ,i,j,m,n);”,在VC 6.0中運行會出現圖3-7所示的運行結果,這是一個什麼錯誤?為什麼會出現這個錯誤?
    圖3-7  修改後的運行結果與錯誤提示(2)輸入以下程序,運行前將程序中的k分別賦值為127、?128、128和?129,分析程序運行結果。#includeint main(){float a=3.7,b;int i,j=5;int k=127;/*分別用127,-128,128,-129測試*/unsigned u; long l;char c;i=a;printf("%d\
    ,i);/*實型賦值給整型*/b=j;printf("%f\
    ,b);/*整型賦值給實型*/u=k;printf("%d,%u\
    ,u,u);/*相同長度類型之間賦值*/l=k;printf("%ld\
    ,l);/*整型賦值給長整型,短的類型賦值給長的類型*/c=k;printf("%d\
    ,c);/*整型賦值給字符型,長的類型賦值給短的類型*/return 0;}① 編譯時有沒有出現警告提示?連接時有沒有出現錯誤?運行時呢?換一個編譯器試試。不同的編譯器對數據類型的數據範圍檢查的嚴格程度都相同嗎?圖3-8所示為VC 6.0中的一個運行結果(k=127時)。
    圖3-8  k=127時的運行結果② 修改k的值,再運行程序,分析運行結果。      (a)k=128               (b)k=?128              (c)k=?129③ 圖3-9所示為VC 6.0中的三個運行結果(k分別為128、?128和?129時)。
               (a)k=128                     (b)k= ?128                    (c)k= ?129圖3-9  k分別為128、?128和?129時的運行結果④ 修改k的值為127,分別把“i=a;printf("%d\
    ,i);”和“b=j;printf("%f\
    ,b);”改為“i=a;printf("%f\
    ,i);”和“b=j;printf("%d\
    ,b);”,再運行程序,分析為什麼會出現圖3-10中的運行結果。
    圖3-10  修改程序後的運行結果(3)輸入以下程序,根據程序運行結果(見圖3-11)分析每個關繫表達式的值。
    圖3-11  關繫表達式的值#includeint main(){char c='k';int i=1,j=2,k=3;float x=3e 5,y=0.85;printf("%d,%d\
    ,'a' 5=k 1);printf("%d,%d\
    ,1,i j k==-2*j,k==j==i 5);return 0;}① 表達式'a' 5圖3-12  邏輯表達式的值#includevoid main(){char c='k';int i=1,j=2,k=3;float x=3e 5,y=0.85;printf("%d,%d\
    ,,!x, !x*!y );printf("%d,%d\
    , x||i&&j-3, i, i==5&&c&&(j=8), x y||i j k );return 0;}① 表達式!x*!y的求值過程是怎樣的?② 表達式x||i&&j-3和iint main(){int a, b,*pa=&a,*pb=&b,max;printf("please input two intergers: a,b\
    );scanf("%d,%d",pa,pb);max=*pa>*pb?*pa:*pb;printf("max=%d\
    ,max);
    return 0;}#include int main(){int a, b,*pmax=0;printf("please input two intergers: a,b\
    );scanf("%d,%d",&a,&b);pmax=a>b?&a:&b;printf("max=%d\
    ,*pmax);return 0;}如圖3-13所示,運行兩個程序,分別輸入3,4並按回車鍵,運行結果都為max=4。
    圖3-13  輸入3,4時的運行結果實驗提示:運行本程序時,輸入的兩個整數之間用逗號隔開,按回車鍵表示輸入結束。① 求兩個整數中的較大數,不用指針是不是更簡單?嘗試寫出程序。② 在所寫的程序上修改,使得任意輸入兩個實數,可以輸出其中的較大數。③ 在所寫的程序上修改,使得任意輸入兩個字符,可以輸出其中的ASCII碼較    大者。④ 換成三個比較對像時,應該如何修改這些程序?2.設計性實驗 (1)已知變量a和b為int型,其值分別為3和10;變量x和y 為double型,其值分別為6.8和1.9,計算算術表達式(double)(a b)/2 (int)x%(int)y的值。試編程驗證自己的計算結果是否正確。實驗提示:① 先命名一個變量用來保存終結果,例如result;再判斷結果應該是什麼類型,假設是double型;在程序中根據變量的類型和名字對它進行聲明,例如“double result;”。② 在程序對a、b、x和y四個變量聲明的同時可以賦初值,也可以聲明之後再賦值。然後用語句“result=(double)(a b)/2 (int)x%(int)y;”將表達式的值賦給變量result。③ 後在屏幕上輸出變量result的值,這個值就是表達式的值。輸出double型的變量result的值可以用語句“printf("result=%lf",result);”或“printf("result=%f",result);”。圖3-14所示為一個示例結果。
    圖3-14  (double)(a b)/2 (int)x%(int)y的值(2)已知:a=8,n=3(a、n為int型),分析依次計算下面表達式時a的值如何變化,試編程上機驗證。① a =a② a*=2 3③ a%=(n%=2)④ a=a 3⑤ a =a-=a*=a實驗提示:① 程序對a和n兩個變量聲明的同時可以賦初值,也可以聲明之後再賦值。② 把要計算的表達式後面加上分號,變成表達式語句。這5個表達式語句都是復合賦值表達式或賦值表達式。③ 在這5個表達式語句的每個表達式語句之後都加上一個printf()函數調用語句,用來輸出變量a的值。圖3-15所示為一個示例結果。(3)編寫程序產生一個如圖3-16所示的輸出結果。                     圖3-15 (復合)賦值表達式的值                    圖3-16  結果樣式實驗提示:分析這個輸出結果共幾行,每行都可以調用printf()函數來實現。3.提高實驗現在是24小時制的9時30分,編程求出再過1000分鐘是24小時制的幾時幾分?程序結果示例如圖3-17所示。
    圖3-17  程序結果示例實驗提示:假設今天是周二,則100天後是((100 2)%7)。實驗項目3  順序結構程序設計方法一、實驗目的(1)掌握C語言中使用多的一種語句——賦值語句的使用方法。(2)掌握C程序的基本構成,熟悉順序結構程序設計的一般步驟。二、實驗要求 (1)理解C語言中程序設計的基本思路。(2)能夠編寫簡單的順序結構程序。三、實驗內容1.驗證性實驗 (1)對於溫度的計算很多國家采用的是華氏溫度標準(F),而國內采用的是攝氏溫度(C)。現在,請根據溫度轉換公式設計一個溫度轉換程序,可以進行溫度轉換。如果輸入攝氏溫度,顯示轉換的華氏溫度。運行結果如圖3-18所示。
    圖3-18  溫度轉換運行結果溫度轉換的公式為:F=(C×9/5)+32  實驗提示:① 聲明變量f和c。② 輸入c的值。③ 利用公式計算f的值。④ 輸出f的值。程序代碼參考:#include "stdio.h"int main(){float f,c;printf("請輸入攝氏溫度的值:");scanf("%f",&c); f=c*9/5 32;printf("華氏溫度F=%f\
    ,f);return 0;}                                         采用指針實現的程序代碼參考:#include "stdio.h"int main(){float f,c;float *pf=&f,*pc=&c;printf("請輸入攝氏溫度的值:");scanf("%f",pc);*pf=*pc*9/5 32;printf("華氏溫度F=%f\
    ,*pf);return 0;}如果將語句“f=c*9/5 32;”換成“f=9/5*c 32;”輸出結果會是多少呢?(2)從鍵盤輸入任意兩個數,輸出它們的和值與差值之積,運行結果如圖3-19所示。
    圖3-19  求兩數的和值與差值之積的運行結果實驗提示:① 定義三個變量a,b,s。② 輸入a,b的值。③ 計算它們的和值與差值之積,存放在變量s中。④ 輸出s的值。程序參考代碼如下:#include "stdio.h"int main(){int a,b,s;printf("請輸入a,b的值:");scanf("%d,%d",&a,&b);s=(a b)*(a-b);printf("s=%d\
    ,s);return 0;}                                       用指針實現的代碼如下:#include "stdio.h"int main(){int a,b,s;int *pa=&a,*pb=&b,*ps=&s;printf("請輸入a,b的值:");scanf("%d,%d",pa,pb);*ps=(*pa *pb)*(*pa-*pb);printf("s=%d\
    ,*ps);return 0;}                                    能否增加兩個變量分別記錄兩數之和與之差?如果行,將程序改寫,並說出哪種寫法好及原因。2.設計性實驗(1)編寫程序,輸入一個小寫字母,改用大寫字母輸出。實驗提示:① 聲明兩個字符型變量,一個存放小寫字母,一個存放大寫字母。② 輸入小寫字母。③ 將小寫字母轉換成大寫字母。④ 輸出大寫字母。其中第③步關於大小寫字母轉換的問題,可以利用字符的ASCII碼,大寫字母A的ASCII碼值為65,小寫字母a的ASCII碼值為97,也就是說,大小寫字母的ASCII碼的差值為32,運行結果如圖3-20所示。 
    圖3-20  小寫字母轉成大寫字母的運行結果(2)編寫程序,輸入兩個整數分別賦給變量a和b,然後交換兩個變量的值再輸出。實驗提示:① 聲明兩個整型變量a和b。② 輸入它們的值。③ 交換兩個變量的值,也就是讓a獲得b的值,b獲得a的值。④ 輸出變量a和b。其中第③步交換兩個變量值的問題怎麼解決呢?就像有兩杯水,現在要把兩個杯子中的水交換,那麼大家很自然想到利用第三個杯子做中介。同樣的道理,要交換兩個變量的值,我們也需要另外一個變量作為中介。所以在第①步我們需要聲明三個變量,運行結果如圖3-21所示。3.提高實驗(1)編寫程序,輸入存款金額、存款年限和存期的年利率,然後輸出到期後的金額。到期金額=存款金額*(1 存期的年利率)存款年限,運行結果如圖3-22所示。                   圖3-21  交換兩個變量的運行結果            圖3-22  存款到期金額的運行結果實驗提示:① 聲明存款金額、存款年限、存期的年利率、到期後的金額4個變量。② 輸入需要的值。③ 利用公式計算,其中求次方需要用到庫函數pow(x,n)。④ 輸出到期金額。(2)編寫程序,輸入長方形的兩邊長,求它的周長和面積,運行結果如圖3-23所示。
    圖3-23  求長方形的周長和面積的運行結果實驗提示:① 聲明變量。② 輸入需要的值。③ 利用公式計算周長和面積。④ 輸出周長和面積。實驗項目4  分支結構程序設計方法一、實驗目的(1)掌握C程序中if語句的格式及使用方法。(2)掌握switch語句的格式和使用方法。(3)學會使用分支結構編寫簡單的C語言程序。(4)理解分支結構嵌套的格式和使用方法。二、實驗要求 (1)掌握if和switch語句的不同書寫格式。(2)熟悉利用if和switch語句編寫簡單的分支程序。(3)明確分支條件的書寫方法。三、實驗內容1.驗證性實驗 (1)輸入整數a、b,若a2 b2大於100,則輸出a2 b2百位以上的數字,否則輸出兩數之和,運行結果如圖3-24所示。
    圖3-24  根據a2 b2是否大於100輸出不同值的運行結果實驗提示:分支選擇處理的條件是a2 b2>100。如果大於100,就取a2 b2百位以上的數字,如果小於等於100,就輸出a b的值。其中求百位以上的數字,可以根據兩個整數相除仍然為整數的原則,使用(a2 b2)/100。① 首先定義三個整型變量a,b,y,其中y存儲需要輸出的值。② 使用if…else兩分支結構編寫代碼,其中分支條件為a2 b2>100。③ 輸出y的值。程序參考代碼如下:#includeint main(){int a, b, y;printf("enter a, b:");scanf("%d, %d",&a, &b);             if((a*a b*b)>100)       /*第6行*/         y=(a*a b*b)/100;         /*第7行*/else         y=a b;                    /*第9行*/printf("y=%d\
    ,y);  return 0;}① 程序中第7行語句起什麼作用?是否可以使用y=(a^a b^b)/100代替?② 能夠使用if的單分支語句實現上面的程序嗎?例如:第6行至第9行使用下面的語句代替。        y=a b;     if((a*a b*b)>100)       y=(a*a b*b)/100;③ 分支結構可以用什麼運算符實現?請改寫這個程序。(2)從鍵盤輸入3個浮點數a、b、c的值,按從小到大的順序依次輸出,輸出時要求保留小數點後兩位,運行結果如圖3-25所示。
    圖3-25  三個數按順序輸出的運行結果實驗提示:① 定義三個double型變量,並從鍵盤輸入。② 首次比較a和b的大小,如果a大於b則將a和b的值交換,使得a小於b。③ 類似地比較a和c的大小,如果a大於c則將a和c的值交換,使得a小於c,這樣a為小的數。④ 再比較b和c的大小,如果b大於c則將b和c的值交換,這樣c。⑤ 後輸出a、b、c的值。程序參考代碼如下:#includeint main(){ double a, b, c, t;printf("輸入a, b, c:");scanf("%lf, %lf, %lf", &a, &b, &c);if(a>b){t=a; a=b; b=t;}                /*第6行*/if(a>c){t=a; a=c; c=t;} if(b>c){t=b; b=c; c=t;}                 /*第8行*/printf("%0.2lf, %0.2lf, %0.2lf\
    , a, b, c);/*第9行*/return 0;}① 程序第6行語句起什麼作用?② 第6行至第8行的程序段實現了什麼功能?舉例說明其實現步驟。                        ③ 第9行的輸出為什麼要使用%0.2lf的輸出格式?(3)分析題。實驗提示:① 分析下面的程序,得出輸出結果。② 輸入程序,運行驗證。③ 畫出流程圖。#includeint main(){int s=0,k;scanf("k=%d\
    ,k);switch(k){case 1:                                case 4:case 7: s ; break;case 2:case 3:case 6: break;case 0:case 5: s =2; break;}printf("s=%d\
    ,s); return 0;}break語句加與不加對程序的輸出結果有何影響?2.設計性實驗(1)有下面的方程式,輸入x的值,輸出y的值。     x 1   x2                             實驗提示:① 定義變量x,y。② 輸入x的值。③ 根據x的值,進入相應的分支做運算。④ 輸出y的值。程序運行結果如圖3-26所示。
    圖3-26  數學方程式的運行結果(2)編寫一個程序,根據用戶輸入的三角形的三邊a,b,c的長度判定能否構成三角形,如果能構成就輸出三角形的面積area,如果不能構成就輸出“不能構成三角形!”。實驗提示:① 確定組成三角形的條件為:任意兩邊之和大於第三邊。② 三角形面積的計算公式為:area=,其中,a、b、c為三角形的三邊長,s=(a b c)/2。運行結果如圖3-27所示。(3)已知銀行整存整取存款不同期限的月息利率分別為:月息利率=0.33%期限為1年,0.36%期限為2年,0.39% 期限為3年,0.45% 期限為5年,0.54%期限為8年。輸入存款的本金和年限,請使用switch語句編程實現求到期時能從銀行得到的利息與本金的       合計。利息的計算公式為:利息=本金×月息利率×12×存款年限,運行結果如圖3-28所示。                        圖3-27  三角形面積的運行結果           圖3-28  銀行存款的運行結果實驗提示:① 輸出結果是利息與本金之和,那麼隻要求出利息值就行了。② 從利息計算公式中可以看出,存款年限和月利息率是息息相關的,其中存款年限為整數,很自然地就想到利用年限值得到相應的case分支語句。③ 假設存款年限用變量year表示,那麼就可以得到下面的結構:switch(year){case 1:case 2:case 3:case 5:case 8:default:}(4)輸入一個小寫字母,將其轉換成大寫字母,再輸出該字母的前序字母、該字母、該字母的後序字母,例如:輸入g,則輸出FGH;輸入a,則輸出ZAB;輸入M,則輸出LMN;輸入Z,則輸出YZA。下面給出了程序的部分代碼,請把它補充完整,運行結果如圖3-29所示。
    圖3-29  字母轉換的運行結果實驗提示:① 輸入字母。② 判斷輸入的字母是否為小寫字母。③ 如果是小寫字母,將其轉換為大寫字母;對於首位兩個字母A和Z需要單獨處理。④ 輸出。#includeint main(){ char ch,c1,c2;printf("Enter a character:");ch=getchar();/*---請填上適當的語句------*/{ch-=32;c1=ch-1;c2=ch 1;/*---請填上適當的語句------*/               c1=ch 25;/*---請填上適當的語句------*/c2=ch-25;putchar(c1);putchar(ch);putchar(c2);}elseprintf("您輸入的不是小寫字母!");putchar('\
    ');                            return 0;}3.提高實驗(1)編寫一個程序實現如下功能:輸入一個正整數,判斷它能否被3,5,7整除,並輸出以下信息之一:① 能同時被3,5,7整除;② 能被其中兩數(要指出哪兩個)整除;③ 能被其中一個數(要指出哪一個)整除;④ 不能被3,5,7任一個整除。運行結果示例如圖3-30所示。
                    (a)                              (b)                            (c)圖3-30  判斷能否整除的運行結果示例實驗提示:① 利用取餘運算可以判斷一個數能否被另一個數整除。② 此題就是要判斷輸入的數對3、5、7取餘,餘數是否同時為0。(2)編寫程序輸入月份和日期,給出對應的星座。下面是星座計算方法:3月21日~4月20日為白羊座,4月21日~5月20日為金牛座,5月21日~6月20日為雙子座,6月21日~7月22日為巨蟹座,7月23日~8月22日為獅子座,8月23日~9月22日為處女座,9月23日~10月22日為天秤座,10月23日~11月22日為天蠍座,11月23日~12月22日為人馬座,12月23日~1月20日為摩羯座,1月21日~2月20日為寶瓶座,2月21日~3月20日為雙魚座。運行結果示例如圖3-31所示。
                   (a)                          (b)                                (c)圖3-31  計算星座的運行結果示例實驗提示:① 此題為多分支嵌套結構,先根據月份值進行分支選擇,再按照日期值進行分支選擇。② 因為月份隻有1到12這12個正整數,因此用case語句實現會更簡潔。實驗項目5  循環結構程序設計方法一、實驗目的(1)掌握三種循環結構:while、do…while、for的區別與聯繫,以及它們之間相互轉換的方法,並能正確使用它們。(2)掌握與循環語句相關的break 語句和continue 語句的使用方法。(3)學會使用C語言循環結構編寫程序。(4)理解循環結構嵌套的格式和使用方法。二、實驗要求 (1)掌握while、do…while和for語句的不同書寫格式。(2)熟悉利用while、do…while和for語句編寫簡單的循環程序。(3)掌握break語句和continue語句的區別。三、實驗內容1.驗證性實驗(1)3025這個數具有一種獨特的性質:將它平分為二段30和25,相加後求平方即(30 25)2,恰好等於3025本身。求出具有這樣性質的全部四位數,運行結果如圖3-32所示。
    圖3-32  3025性質的四位數的運行結果實驗提示:具有這種性質的四位數沒有分布規律,可采用窮舉法,從中篩選出符合條件的數。① 定義變量n,代表這樣的四位數。② 四位數從1000變化到9999,對其中的每一個數都判斷下是否符合這種特性。如果符合就輸出,不符合就繼續判斷下一個數。程序參考代碼如下:#includeint main(){int n,a,b;for(n=1000;n<=9999;n ){    a=n/100;    b=n%100;    if((a b)*(a b)==n)                  printf("%d ",n);}printf("\
    );return 0;}① 如果求10000以內的水仙花數,怎麼做?水仙花數滿足條件是這個數等於其個位數、十位數、百位數的立方和。② 可不可以總結出類似題目的解題規律呢?(2)輸入一行字符,分別統計出其中的英文字母、空格、數字和其他字符的個數,運行結果如圖3-33所示。
    圖3-33  統計字符個數的運行結果實驗提示:可以使用while循環語句編程,輸入一個字符,就判定一下這個字符是英文字母、空格、數字或其他字符,直到輸入“\
    ”時結束循環。程序參考代碼如下: #include                                           int main(){ char c;int let=0,spa=0,dig=0,oth=0;while((c=getchar())!='\
    '){    if(c>='a'&&c<='z'||c>='A'&&c<='Z')    let ;   else if(c==' ')   spa ;else if(c>='0'&&c<='9')dig ;else oth ;                         }              printf("let=%d spa=%d dig=%d oth=%d\
    ,let,spa,dig,oth);return 0;}這道題還可以采取其他的寫法嗎?嘗試所有的可能。(3)輸入一組正整數,輸入?1表示輸入結束,分別統計其中奇數和偶數的個數,運行結果如圖3-34所示。
    圖3-34  統計奇偶個數的運行結果實驗提示:可設一整型變量x,表示循環輸入的整數的值,若x%2==0即為偶數,否則是奇數。循環條件可在while語句後的括號中出現,也可以用 break語句控制。① 聲明變量xo、xj、x,xo表示偶數個數,xj表示奇數個數,x表示輸入的正整數。② 判斷x值是否為?1,不是轉到第③步,若是轉到第④步。③ 判斷x值是奇數還是偶數,是奇數,xj ;是偶數,xo 。然後輸入下一個x。④ 輸出xo和xj的值。程序代碼參考一:#includeint main(){int x,xo=0,xj=0;/*將偶數個數xo與奇數個數xj賦0值*/scanf("%d",&x);/*先輸入一個正整數*//*輸入不是-1時循環*/while(x!=-1) {if(x%2==0)xo=xo 1 ;else xj=xj 1 ;scanf("%d", &x);}/*循環輸入其餘正整數*/printf("xo:%d,xj:%d\
    ,xo,xj);return 0;}   程序代碼參考二:#includeint main(){int x,xo=0,xj=0 ;/*在循環內部用 break 語句控制循環條件*/while(1){scanf("%d",&x);if(x==-1)break ;if(x%2==0)xo=xo 1 ;else xj=xj 1 ;}printf("xo:%d,xj:%d",xo,xj);              return 0;}可以用do…while、for循環來實現嗎?(4)編寫一個程序,計算並輸出a aa aaa … aaa…a(n個a)的值。其中,n由鍵盤輸入,例如:a=2,n=3時是求2 22 222之和,運行結果如圖3-35所示。
    (a)                             (b)圖3-35  a aa aaa的運行結果實驗提示:① 這是個多項式求和問題,所以隻要找出通項,通過循環,將其累加就可以了。但這個數列通項的變化規律不是簡單的遞增或遞減,需要找出前後兩項求和a之間的關繫。② 假設t為通項式,將t設定初始值t=a,第二項為aa=t*10 a,將該數值賦給t為求第三項做準備即t=t*10 a,那麼第三項aaa=t*10 a。因此這個數列的變化規律就是t=t*10 a,t初值為a。程序參考代碼如下:#includeint main(){int n,a,t,i,s=0; printf("請輸入a和n的值:\
    ); scanf("%d%d",&a,&n);t=a;  for(i=1;i<=n;i ){s =t;t=t*10 a; }printf("s=%d\
    ,s); return 0;}大家可以總結出求數列之和的通用方法嗎?(5)使用迭代法求,求立方根的迭代公式為。假定x的初值為a,迭代到|xi 1?xi|圖3-36  求立方根的運行結果實驗提示:① 迭代法又稱為遞推法,其基本方法是給定一個初值,利用迭代公式反復迭代計算,直到前後兩個值的值小於給定的某個數值為止。② 輸入a的值,並讓x的初值為a。③ 通過循環反復獲得xi 的值,直到|xi 1?xi|#includeint main(){float a, x, x1, e;printf("a =");scanf("%f", &a);                        x = a;while(1){                              x1=2*x/3.0 a/(3.0*x*x);e=fabs(x1-x);if(e<1e-4)break;else x=x1;                             }printf("x=%2.5f\
    , x1);printf("pow(%0.2f, 1.0/3)=%2.5f \
    , a, pow(a, 1.0/3));return 0;}這道題可以改用for循環和do…while循環來實現嗎?2.設計性實驗(1)采用do…while語句編程計算π的近似值。要求:采用公式?2/6 = 1/12 1/22 1/32 …實現,直到後一項小於10?12,定義double變量sum存儲累加和,term變量存累加項,pi記錄終結果,循環變量為i,運行結果如圖3-37所示。實驗提示:這是數列求和問題,要通過循環解決,隻要找出通項,隨著循環的運行,將數列中的每一項都加上。 (2)編寫一個程序,求出200到800之間滿足下面兩個條件的數:①每位上數字之     積為42;②每位上數字之和為12,並統計輸出滿足條件的數的個數,運行結果如圖3-38所示。                  圖3-37  計算π的運行結果         圖3-38  滿足條件的數的個數的運行結果實驗提示:用循環變量n記錄數據從200變到800,然後判斷每個數n是否滿足上面兩個條件。(3)設計一個程序,輸入一個日期,要求算出這一天是本年的第幾天,運行結果如圖3-39所示。   圖3-39  某天是這年的第幾天的運行結果實驗提示:① 要算出某天是當年的第幾天,應該將當年中本月之前所有月的天數相加,再加上本月至此的天數。② 但這裡有一個閏年問題,2月是一個特殊月,閏年的2月有29天,非閏年的2月隻有28天。那麼可以先使用循環結構累加天數,然後使用分支結構計算三種類型的月份的天數,如3月為31天。③ 判斷某年是閏年的條件是:該年號能被4整除但不能被100整除,或者能被400整除。例如,1996、2000是閏年,2014不是閏年。   (4)編寫程序,輸入兩個不同的正整數,求其公約數和小公倍數,運行結果如圖3-40所示。
    圖3-40  求公約數和小公倍數的運行結果實驗提示:利用輾轉相除法求兩個整數a和b的公約數的算法如下:① a%b得餘數c。② 若c=0,則b即為兩數的公約數。③ 若c≠0,則a=b,b=c,再回去執行①。例如求27和15的公約數的過程為:27/15餘12,15/12餘3,12/3餘0,因此,3即為公約數。 求小公倍數算法:小公倍數=兩整數的乘積/公約數。3.提高實驗 (1)某人摘下一些桃子,賣掉一半,又喫了一隻;第二天賣掉剩下的一半,又喫了一隻;第三天、第四天、第五天都如此處理,第六天一看,發現就剩下一隻桃子了。編寫一個程序,求此人共摘了多少隻桃子,運行結果如圖3-41所示。實驗提示:采用迭代法。(2)編寫一個程序,功能是:輸入一個五位正整數,將它反向輸出。例如輸入12345,輸出應為54321,運行結果如圖3-42所示。                圖3-41  猴子喫桃的運行結果             圖3-42  逆序輸出的運行結果實驗提示:① 此題需要逆序取得輸入的正整數的每一位上的值,依次輸出。② 可以采用對10取餘的操作求得個位上的數值。③ 將輸入的正整數縮小至原來的1/10獲得一個新的正整數,再進行對10取餘,直到這個正整數變為0。實驗項目6  分支與循環結構綜合程序設計一、實驗目的(1)掌握C語言中的程序控制結構。(2)掌握常見的循環結構和分支結構混合使用的程序設計方法。(3)學會使用綜合程序設計方法實現一些典型的算法以及一些實際問題。二、實驗要求 (1)熟悉綜合的程序設計方法,會編寫稍微復雜的程序。(2)能夠掌握程序的運行步驟,尤其是循環結構程序。(3)能夠在程序中正確使用break和continue語句。三、實驗內容1.驗證性實驗 (1)使用C語言循環結構打印圖3-43所示的圖形。
    圖3-43  輸出*的運行結果實驗提示:① 分析圖形,從中找出行數、空格數、星號數間的關繫,如表3-1所示。  表3-1  行數、空格數、星號數間的關繫行    數空  格  數星  號  數1             3







     
    網友評論  我們期待著您對此商品發表評論
     
    相關商品
    在線留言 商品價格為新臺幣
    關於我們 送貨時間 安全付款 會員登入 加入會員 我的帳戶 網站聯盟
    DVD 連續劇 Copyright © 2024, Digital 了得網 Co., Ltd.
    返回頂部