• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    C語言之switch語句教學研究

    2019-03-07 05:22韓祥波
    電腦知識與技術 2019年35期
    關鍵詞:循環(huán)嵌套教學實踐

    摘要:探討了switch分支結構的常見錯誤,分析了與嵌套、循環(huán)結構的綜合使用,通過在計算機專業(yè)的卓越班和實驗班的實踐證明,學生的綜合編程能力和動手積極性得到進一步提高。

    關鍵詞:switch;嵌套;循環(huán);函數重載;教學實踐

    中圖分類號:G642 文獻標識碼:A

    文章編號:1009-3044(2019)35-0157-01

    1 概述

    在卓越班和實驗班等基礎較好班級的教學過程中經常遇到學生對switch語句執(zhí)行順序的種種困惑,在多次的上機考試和期末考試中丟分較多,本文針對與之相關的各種難點分析探討。

    2 教學實踐

    2.1使用背景

    在分支結構中我們常用if…else結構實現(xiàn),但對表達式相同的進行多次重復計算而毫無意義,switch語句正是恰好的解決方案。通過計算表達式的值,結合case語句實現(xiàn)到分支語句地跳轉來高效完成了多分支結構的選擇功能。其語法形式如下:

    switch(變量表達式)

    fcase常量1:語句;break;

    case常量n:語句;break;

    default:語句;break;

    }

    2.2常見錯誤

    1)switch(表達式)中的表達式類型只能為int、char等離散的整型式類型。如:double x=2.36; switch(x){case 2:...}不符合要求。

    2)case表達式具有唯一性。如:case 2:...case 2:...則錯。

    3)case分支中要有break否則繼續(xù)執(zhí)行該分支后繼續(xù)執(zhí)行下句而不跳出。

    4)缺少default,則當找不到匹配的case時程序出錯。

    2.3綜合舉例

    例1 #include

    main()

    { int iVarA=11,iVarB=12,iVarC=16;

    switch(iVarA)

    {case 11: switch(iVarB)

    {case 12:printf("A");break;

    case 13:printf("B");break;

    case 14:pnntf("C");break;)

    case 15: switch(iVarC)

    {case 16;printf("D");

    case 17:printf("E");}

    default: printf("F");}}

    上題的輸出結果是"ADEF"。本題出現(xiàn)switch嵌套結構,即在"case"分支中又出現(xiàn)"switch"語句。只要把分支中的復雜語句當作該分支的一句復合語句來處理,則由繁到簡、方便求解。具體過程為:"iVarA"=11使得選擇"case 11",此分支中的"switch四句作為整體來處理即iVarB的值選擇"case 12"輸出"A"后遇到"break"跳出執(zhí)行"case 15"。此時的跳出不是"case11"的跳出,此時的"break"在"1"前,屬于"case 14"。故"case 11"不能跳出后執(zhí)行"case 15",由于"case 16"和"case 17"兩個分支都沒有;"break"故相繼輸出"DE",最后無跳轉執(zhí)行缺省語句輸出"F"。

    例2 #include main()

    { char cMyVar;

    while((cMyVar=getchar())!='\n')

    switch(cMyVar-'1')

    {case 0:

    case 1:putchar(cMyVar+l);

    case 2:putchar(cMyVar+2); break;

    case 3:putchar(cMyVar+3);

    default:putchar(cMyVar+4); break;}

    printf("\n");}

    上題是出錯率很高的試題,當輸入"2345"時輸出"345789"。下面分析解題過程:

    "cMyVar"獲取輸入變量的第1個字符2,switch表達式計算得1此時分支對應"case 1"輸出3,但該分支沒跳出語句故繼續(xù)執(zhí)行"case 2"輸出4遇到break而完成本次循環(huán);"cMyVar"獲取輸入的第2個字符3,計算后執(zhí)行"case 2"輸出5,遇到"break"而完成本次循環(huán);同理下2次循環(huán)依次得解。本題錯點:1)沒注意case分支中有的無break而提前跳出本次循環(huán);2)switch表達式中"cMyVar"減1但變量本身沒變,在處理分支結構時有的把該變量減1后再輸出。

    3 結論

    switch分支結構的跳轉語句讓不少初學者頭疼不已、錯誤不斷,究其原因還是對缺省語句、"break"語句以及變量更改等不熟悉引起,本文結合幾個具體的綜合例子分析了上述易錯原因。

    參考文獻:

    [1]胡玲潔.《C++程序設計》中職教學中的易錯分析[J].電腦知識與技術,2019(02).

    [2]譚浩強.C++面向對象程序設計[M].北京:清華大學出版社,2006.

    [3]呂鳳翥.C++語言基礎教程[M].北京:清華大學出版社.1999.

    [4]Bjarne Stroustrup.C++程序設計語言:特別版[M].裘宗燕,譯.北京:機械工業(yè)出版社,2010.

    [5]錢能.C++程序設計教程[M].北京:清華大學出版社,1999.

    [6]Stanley,B.Lippman,Barbara E.Moo.C++Primer中文版:第四版[M].李師賢,等譯.北京:人民郵電出版社,2006.

    [7]陳維興,林小茶.C++面向對象程序設計教程[M].北京:清華大學出版社,2000.

    [8]胡金錦.編程:一種觀察世界的新視角——以《冒泡排序》一課為例談計算思維[J].電腦知識與技術,2017(35).

    [9]張敏輝.將案例驅動教學法運用于程序設計類課程的實踐與成效[J].高等教育研究,2012,29(2).

    【通聯(lián)編輯:王力】

    收稿日期:2019-09-10

    作者簡介:韓祥波(1975-),男,山東淄博人,講師,碩士,研究方向為計算機軟件與理論。

    猜你喜歡
    循環(huán)嵌套教學實踐
    基于嵌套Logit模型的競爭性選址問題研究
    淺析英語詞匯記憶策略
    分層、過濾、循環(huán)教學法初探*
    淺論高中化學生活化教學的實踐與思考
    淺談初中物理實驗教學與學生創(chuàng)新能力的培養(yǎng)
    測量平差課程教學改革探討與實踐
    一種基于區(qū)分服務的嵌套隊列調度算法
    無背景實驗到有背景實驗的多重嵌套在電氣專業(yè)應用研究
    連續(xù)批加工過程中嵌套自相關數據的控制圖設計
    泸溪县| 镇巴县| 樟树市| 凌海市| 霍林郭勒市| 海宁市| 越西县| 阳山县| 湖州市| 连平县| 建昌县| 九龙坡区| 雅安市| 高淳县| 越西县| 聂荣县| 抚松县| 湖口县| 绿春县| 涿州市| 诸城市| 大竹县| 龙口市| 五莲县| 永胜县| 洱源县| 武威市| 独山县| 新闻| 安阳县| 纳雍县| 青阳县| 壤塘县| 汪清县| 正定县| 宁乡县| 桦南县| 甘肃省| 泗水县| 屯留县| 旌德县|