国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

多課程融合的C 語(yǔ)言課程教學(xué)探索

2023-10-26 05:24:10吳家洲
實(shí)驗(yàn)室研究與探索 2023年7期
關(guān)鍵詞:程序設(shè)計(jì)編程計(jì)算機(jī)

吳家洲, 張 勝, 劉 君

(南昌航空大學(xué)信息工程學(xué)院,南昌 330063)

0 引言

工業(yè)軟件的發(fā)展被列為當(dāng)前科技攻關(guān)最緊急和最迫切的問(wèn)題之一[1]。C 語(yǔ)言作為基礎(chǔ)性的開(kāi)發(fā)軟件,同時(shí)具備底層和高級(jí)語(yǔ)言開(kāi)發(fā)的特性,重要性無(wú)可替代。Microsoft Windows、Linux、Apple MacOS 和Google Android等代表性操作系統(tǒng)的大部分代碼由C 語(yǔ)言編寫(xiě),辦公軟件、數(shù)據(jù)庫(kù)和郵件系統(tǒng)等用戶(hù)級(jí)別開(kāi)發(fā)也離不開(kāi)C 語(yǔ)言。國(guó)內(nèi)外大學(xué)大量工科類(lèi)專(zhuān)業(yè)把C 語(yǔ)言作為學(xué)生學(xué)習(xí)程序設(shè)計(jì)的入門(mén)語(yǔ)言,并且對(duì)課程教學(xué)改革做了很多有益的嘗試。計(jì)算思維是把待求問(wèn)題用特定符號(hào)描述出來(lái),同時(shí)依據(jù)模塊之間關(guān)系建立模型,利用計(jì)算機(jī)的思維方式對(duì)模型自動(dòng)求解的過(guò)程[2]。文獻(xiàn)[3]中采用計(jì)算思維方式詳細(xì)描述了C 語(yǔ)言程序中的抽象模塊,在EIP 寄存器的控制下實(shí)現(xiàn)程序的自動(dòng)執(zhí)行。計(jì)算思維在課程的理論、實(shí)踐和線(xiàn)上MOOC教學(xué)過(guò)程中,都取得了較好的效果[4-6]。隨著信息技術(shù)的發(fā)展,以線(xiàn)上視頻和線(xiàn)上測(cè)試為基礎(chǔ)的翻轉(zhuǎn)課堂在教學(xué)中發(fā)揮重要作用[7-8]。此外,以學(xué)科競(jìng)賽和項(xiàng)目驅(qū)動(dòng)為引導(dǎo)的C 語(yǔ)言教學(xué)被廣泛采用[9-11]。近年來(lái),結(jié)合計(jì)算機(jī)硬件的軟件類(lèi)課程教學(xué)越來(lái)越受到重視,并且出版了相關(guān)教材[12-15]。然而,C語(yǔ)言教學(xué)一直存在兩個(gè)主要問(wèn)題:①基于語(yǔ)言層面的教學(xué),沒(méi)有結(jié)合支撐程序運(yùn)行的硬件和操作系統(tǒng)相關(guān)理論,側(cè)重于數(shù)據(jù)結(jié)構(gòu)和算法,對(duì)程序運(yùn)行本質(zhì)缺乏基本認(rèn)識(shí),不能深入完整理解代碼的執(zhí)行過(guò)程;②對(duì)于大一新生,C語(yǔ)言與高中及以前所學(xué)知識(shí)缺乏延續(xù)性,上大學(xué)之前絕大部分學(xué)生沒(méi)有經(jīng)過(guò)這方面訓(xùn)練和培訓(xùn),不具備基本的編程思維。

依據(jù)C語(yǔ)言與計(jì)算機(jī)原理課程的聯(lián)系,通過(guò)微課形式補(bǔ)充計(jì)算機(jī)基本理論知識(shí),加深學(xué)生對(duì)C 語(yǔ)言程序執(zhí)行過(guò)程的全面理解。本文采用線(xiàn)上線(xiàn)下的混合教學(xué)方法,并增開(kāi)了簡(jiǎn)單的嵌入式系統(tǒng)實(shí)驗(yàn),使學(xué)生明確程序設(shè)計(jì)的具體應(yīng)用。

1 多課程融合的教學(xué)內(nèi)容

與C語(yǔ)言相關(guān)的計(jì)算機(jī)基本理論課程主要包括:嵌入式系統(tǒng)設(shè)計(jì)、計(jì)算機(jī)組成原理和計(jì)算機(jī)控制系統(tǒng)等。計(jì)算機(jī)組成原理是學(xué)習(xí)計(jì)算機(jī)理論的入門(mén)課程,介紹了計(jì)算機(jī)系統(tǒng)的整體結(jié)構(gòu)和各組成模塊內(nèi)容[16];嵌入式系統(tǒng)就是一個(gè)微型計(jì)算機(jī)系統(tǒng),有自己的硬件結(jié)構(gòu)和操作系統(tǒng)[17-18];計(jì)算機(jī)控制系統(tǒng)主要講述的是計(jì)算機(jī)在控制領(lǐng)域的具體應(yīng)用。選取計(jì)算機(jī)組成原理和嵌入式系統(tǒng)(ARM Cortex-M3 內(nèi)核)兩門(mén)課中與C語(yǔ)言程序設(shè)計(jì)相關(guān)的內(nèi)容,制作成微課視頻,供學(xué)生課外學(xué)習(xí),其中的重點(diǎn)內(nèi)容也會(huì)在理論課上詳細(xì)講解。教學(xué)內(nèi)容及對(duì)應(yīng)關(guān)系如表1 所示,其中,指令的執(zhí)行過(guò)程、存儲(chǔ)器映射、尋址方式和棧是C 語(yǔ)言程序設(shè)計(jì)中重要的理論支撐,是培養(yǎng)學(xué)生程序設(shè)計(jì)能力和編程思維的核心內(nèi)容。

表1 C語(yǔ)言教學(xué)內(nèi)容及與計(jì)算機(jī)原理的對(duì)應(yīng)關(guān)系

實(shí)踐性環(huán)節(jié),引入了STM32F103 微控制器的基本實(shí)驗(yàn):LED流水燈控制,使學(xué)生對(duì)C 語(yǔ)言實(shí)際應(yīng)用有初步認(rèn)識(shí)。學(xué)生不僅能用C 語(yǔ)言編程進(jìn)行算法設(shè)計(jì),也能進(jìn)行硬件接口的驅(qū)動(dòng)設(shè)計(jì)。

2 線(xiàn)上線(xiàn)下混合的教學(xué)模式

C語(yǔ)言課程知識(shí)點(diǎn)繁多且零散,教學(xué)內(nèi)容前后交叉,再加上補(bǔ)充的計(jì)算機(jī)原理類(lèi)知識(shí),顯然僅僅通過(guò)課堂教學(xué)很難完成教學(xué)任務(wù)。課程采用線(xiàn)上線(xiàn)下混合式的教學(xué)方法:課前學(xué)生在超星網(wǎng)絡(luò)教學(xué)空間觀看微課視頻,自學(xué)C 語(yǔ)言基本語(yǔ)法和簡(jiǎn)單的計(jì)算機(jī)基礎(chǔ)知識(shí)。理論課以多個(gè)小項(xiàng)目為驅(qū)動(dòng),引導(dǎo)學(xué)生綜合應(yīng)用所學(xué)語(yǔ)法知識(shí),采用計(jì)算思維模擬計(jì)算機(jī)執(zhí)行過(guò)程來(lái)思考和設(shè)計(jì)程序,培養(yǎng)學(xué)生程序設(shè)計(jì)與分析能力。課后采用線(xiàn)上刷題方式鞏固所學(xué)知識(shí)點(diǎn),鼓勵(lì)學(xué)生在藍(lán)橋杯設(shè)計(jì)大賽題庫(kù)及國(guó)內(nèi)外高校C/C+ +題庫(kù)進(jìn)行大量的訓(xùn)練。根據(jù)布拉姆教育目標(biāo)分類(lèi)理論,聽(tīng)課、看視頻和作業(yè)訓(xùn)練屬于認(rèn)知的最低層次,是學(xué)習(xí)知識(shí)的最基本要求。想要形成編程思想,必須對(duì)大量程序進(jìn)行分析、歸納和評(píng)估。只有不斷地經(jīng)過(guò)“調(diào)試-修改-再調(diào)試-再修改”循環(huán),才能掌握程序設(shè)計(jì)要點(diǎn),逐步形成編程思維。多年教學(xué)實(shí)踐也表明,要切實(shí)提高學(xué)生編程能力,大量的編程訓(xùn)練必不可少。

3 教學(xué)案例分析

C語(yǔ)言課程主要教學(xué)內(nèi)容如表1 所示,包括:①程序設(shè)計(jì)的基本語(yǔ)法;②簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)。由于課程開(kāi)課時(shí)間一般在大一上學(xué)期,而計(jì)算機(jī)組成原理和ARM嵌入式系統(tǒng)體系結(jié)構(gòu)本身就比較復(fù)雜,因此采用微課方式補(bǔ)充少量基礎(chǔ)的計(jì)算機(jī)原理知識(shí)。使得學(xué)生不僅知道C 語(yǔ)言語(yǔ)法規(guī)定,還知道為什么要這樣規(guī)定,這樣規(guī)定的理論依據(jù)是什么。

3.1 程序的執(zhí)行過(guò)程

計(jì)算機(jī)的中央處理器CPU 不能識(shí)別C 語(yǔ)言編寫(xiě)的程序代碼,程序需要編譯鏈接轉(zhuǎn)變成二進(jìn)制機(jī)器碼才能在硬件上執(zhí)行。由圖1 可知,程序的運(yùn)行過(guò)程為:①?gòu)拇鎯?chǔ)器讀取指令,將指令解碼并生成控制信號(hào),同時(shí),程序計(jì)數(shù)器PC 自動(dòng)指向下一個(gè)地址;②依據(jù)CPU 控制器發(fā)出的指令從數(shù)據(jù)區(qū)讀取待處理的數(shù)據(jù)并暫存在CPU 的寄存器中,算術(shù)邏輯運(yùn)算單元ALU按照控制器指令從CPU 寄存器取出數(shù)據(jù)完成相關(guān)的運(yùn)算,并將計(jì)算結(jié)果返回給數(shù)據(jù)區(qū)。

圖1 程序的執(zhí)行過(guò)程

從程序在硬件上運(yùn)行過(guò)程可以看出:C 代碼執(zhí)行時(shí),將指令代碼和數(shù)據(jù)分別存放在內(nèi)存的不同位置,CPU從內(nèi)存中讀取數(shù)據(jù)在ALU中完成計(jì)算,并將計(jì)算結(jié)果返回給數(shù)據(jù)區(qū);CPU的頻率大小影響程序執(zhí)行的效率,程序執(zhí)行也離不開(kāi)操作系統(tǒng)的支持。C 程序代碼按照從上到下的順序執(zhí)行,是由于程序計(jì)數(shù)器PC自動(dòng)指向下一個(gè)地址的結(jié)果。C語(yǔ)言在語(yǔ)法層面的規(guī)定是硬件層實(shí)現(xiàn)的體現(xiàn)。

3.2 數(shù)據(jù)的表示

計(jì)算機(jī)處理的數(shù)據(jù)可分為數(shù)值型數(shù)據(jù)和非數(shù)值型數(shù)據(jù),其發(fā)展初期主要是數(shù)值計(jì)算。計(jì)算機(jī)硬件由數(shù)字邏輯電路組成,只能識(shí)別高、低電平。內(nèi)部機(jī)器碼由0,1 二進(jìn)制組成,一般情況下,“0”代表低電平;“1”代表高電平。依據(jù)人們對(duì)數(shù)據(jù)認(rèn)識(shí)的先后順序,介紹常用的正數(shù)和負(fù)數(shù)、整數(shù)和小數(shù)在計(jì)算機(jī)內(nèi)部硬件層的表示,以及簡(jiǎn)單的整數(shù)加減運(yùn)算過(guò)程,逐步培養(yǎng)學(xué)生興趣,強(qiáng)化學(xué)生對(duì)編程語(yǔ)言的感性認(rèn)知。

正數(shù)的二進(jìn)制原碼、反碼和補(bǔ)碼是相同的,負(fù)數(shù)的二進(jìn)制補(bǔ)碼等于反碼最低位加1。為了將減法運(yùn)算轉(zhuǎn)變成加法運(yùn)算,計(jì)算機(jī)內(nèi)部數(shù)據(jù)都采用補(bǔ)碼來(lái)表示,最高位為符號(hào)位,符號(hào)位是“0”表示正數(shù),“1”表示負(fù)數(shù),每8 位1 byte。數(shù)據(jù)的表示有定點(diǎn)數(shù)和浮點(diǎn)數(shù)兩種方式,C 語(yǔ)言中的int 數(shù)據(jù)的用定點(diǎn)數(shù)格式表示,小數(shù)點(diǎn)在最后一位后面,實(shí)際上就是整數(shù),其格式如圖2所示。C語(yǔ)言中float、double float 數(shù)據(jù)類(lèi)型常用浮點(diǎn)數(shù)表示,普遍采用IEEE754 標(biāo)準(zhǔn)規(guī)定的格式。4 byte float數(shù)據(jù)類(lèi)型格式如圖3 所示。表示的數(shù)據(jù)值大小為

圖2 定點(diǎn)數(shù)格式

圖3 IEEE754標(biāo)準(zhǔn)規(guī)定的浮點(diǎn)數(shù)格式

由圖2 和3 可見(jiàn),同樣為32 位的int和float數(shù)據(jù),在計(jì)算機(jī)內(nèi)部的表示形式是不同的,對(duì)應(yīng)數(shù)據(jù)值的計(jì)算方法也不同。因此,不同數(shù)據(jù)類(lèi)型相互轉(zhuǎn)換必然存在精度的差異,先定義數(shù)據(jù)類(lèi)型再進(jìn)行數(shù)據(jù)運(yùn)算是C語(yǔ)言的特點(diǎn)。

補(bǔ)碼的出現(xiàn)解決了計(jì)算機(jī)中數(shù)據(jù)減法的問(wèn)題,計(jì)算機(jī)內(nèi)部用加法運(yùn)算來(lái)處理減法計(jì)算。在硬件層,通過(guò)邏輯與、邏輯非和邏輯或及其組合邏輯電路來(lái)實(shí)現(xiàn)定點(diǎn)數(shù)的運(yùn)算。例如:十進(jìn)制整數(shù)5 和6 的加法/減法的補(bǔ)碼計(jì)算過(guò)程如圖4 所示。浮點(diǎn)數(shù)計(jì)算與此不同,其計(jì)算過(guò)程非常復(fù)雜。

圖4 加/減法運(yùn)算過(guò)程(補(bǔ)碼)

由此可見(jiàn),C 語(yǔ)言中不同數(shù)據(jù)類(lèi)型在計(jì)算機(jī)內(nèi)部有不同的表示形式,具有不同的存儲(chǔ)方式。因此,數(shù)據(jù)在使用前必須先定義其數(shù)據(jù)類(lèi)型,便于系統(tǒng)知道采用哪種格式存儲(chǔ)數(shù)據(jù)、調(diào)用數(shù)據(jù)和數(shù)據(jù)計(jì)算。不同數(shù)據(jù)之間也不能隨意轉(zhuǎn)換,避免造成精度的丟失。

3.3 函數(shù)的調(diào)用

函數(shù)是程序設(shè)計(jì)的核心內(nèi)容,程序由各種具有特定功能的函數(shù)組成。包括主函數(shù)在內(nèi),函數(shù)調(diào)用都采用棧的數(shù)據(jù)結(jié)構(gòu)來(lái)處理。棧是在內(nèi)存上分配的一段存儲(chǔ)區(qū)間,只不過(guò)這段區(qū)間存儲(chǔ)的內(nèi)容滿(mǎn)足“先進(jìn)后出”的原則,即先壓入棧的變量后彈出使用。以主函數(shù)main()調(diào)用子函數(shù)為例,說(shuō)明函數(shù)調(diào)用與棧的關(guān)系,如圖5 所示。

圖5 函數(shù)的調(diào)用與棧的關(guān)系

當(dāng)子函數(shù)被調(diào)用時(shí),系統(tǒng)會(huì)給子函數(shù)創(chuàng)建一個(gè)“棧幀”區(qū)域,棧底為高地址,向低地址擴(kuò)展,并將函數(shù)地址壓入棧底,即epb(main)地址值存儲(chǔ)在棧底指針ebp中;接著,將子函數(shù)參數(shù)等數(shù)據(jù)值從高位到低位入棧,入棧數(shù)據(jù)均為局部變量,棧頂?shù)刂酚蓷m斨羔榚sp存儲(chǔ)。調(diào)用完成后,esp 指針移動(dòng)棧底指針ebp 位置,依據(jù)棧底指針ebp 存儲(chǔ)的返回地址程序返回到主函數(shù),調(diào)用完成。

可以看出,系統(tǒng)給子函數(shù)分配“棧幀”的存儲(chǔ)區(qū)域,主函數(shù)與子函數(shù)之間的參數(shù)傳遞是單向的,不可能是雙向的。子函數(shù)內(nèi)部的變量存儲(chǔ)在棧中,是局部變量,不能隨意改變。棧的機(jī)制決定了子函數(shù)參數(shù)不能改變主函數(shù)參數(shù)的值。函數(shù)調(diào)用完成后,子函數(shù)依據(jù)存儲(chǔ)在棧底的子函數(shù)地址返回主程序,同時(shí),分配的??臻g被釋放。

3.4 指針的應(yīng)用

指針本身就是硬件層地址在邏輯層的抽象。在計(jì)算機(jī)硬件結(jié)構(gòu)中并不存在指針,只有地址。實(shí)際上,CPU是通過(guò)數(shù)據(jù)的地址讀取數(shù)據(jù)的,這從ARM Cortex-M3 存儲(chǔ)器映射完全能體現(xiàn)出來(lái)。

圖6 為ARM Cortex-M3 存儲(chǔ)器到TM2-TM7 定時(shí)器映射關(guān)系。圖的左邊是對(duì)4 GB(4 =232)存儲(chǔ)地址的分配,分為代碼區(qū)、SRAM區(qū)、外部設(shè)備、私有外設(shè)總線(xiàn)和供應(yīng)商預(yù)留地址區(qū)。TM2 定時(shí)器起始地址0X40000000 正是左邊0.5 GB 外設(shè)區(qū)的起始地址,外設(shè)區(qū)的第1 個(gè)設(shè)備就是TM2 定時(shí)寄存器。通過(guò)地址0X40000000 就可以訪問(wèn)TM2,實(shí)現(xiàn)對(duì)TM2 的操作。C語(yǔ)言中對(duì)數(shù)據(jù)的訪問(wèn)同樣如此,也是通過(guò)地址找到數(shù)據(jù),實(shí)現(xiàn)對(duì)數(shù)據(jù)的讀取和寫(xiě)入。

圖6 存儲(chǔ)器到TM2-TM7定時(shí)器映射關(guān)系

圖7 為兩種尋址方式:直接尋址和間接尋址。依據(jù)指令地址直接找到數(shù)據(jù)的方式為直接尋址,而間接尋址是指由指令地址找到下一級(jí)地址,再由下一級(jí)地址找到數(shù)據(jù)的方式。

圖7 直接尋址與間接尋址

由此可見(jiàn),C 語(yǔ)言中的指針只是一種抽象的邏輯概念,它不是具體存在于計(jì)算機(jī)內(nèi)部。程序中指針變量存儲(chǔ)的是地址,計(jì)算機(jī)是通過(guò)地址實(shí)現(xiàn)對(duì)數(shù)據(jù)的訪問(wèn)。

3.5 工程實(shí)例

在課程“嵌入式系統(tǒng)設(shè)計(jì)”中,教學(xué)選擇的是以ARM Cortex-M3 處理器為核心的32 位微控制器STM32??梢栽贑語(yǔ)言實(shí)訓(xùn)課程中,采用標(biāo)準(zhǔn)函數(shù)庫(kù)的編程方法,通過(guò)通用的輸入輸出GPIO 口實(shí)現(xiàn)LED流水燈控制的程序設(shè)計(jì)。

由圖8 可以看出,程序執(zhí)行的邏輯順序由硬件電路的連接方式來(lái)確定,設(shè)置引腳為低電平0 時(shí)燈亮,為高電平1 時(shí)燈滅。系統(tǒng)函數(shù)頭文件stm32f10x. h 定義了應(yīng)用層結(jié)構(gòu)體文件和硬件層芯片引腳的映射關(guān)系,供開(kāi)發(fā)者在程序中調(diào)用。stm32f10x _ gpio. h 和stm32f10x_rcc.h的用法與此類(lèi)似。delay. h 是用戶(hù)自定義延時(shí)函數(shù)頭文件,是兩次燈亮之間的間隔時(shí)間。led.h是控制引腳置高、低電平時(shí)的自定義頭文件。

圖8 硬件連接圖

通過(guò)工程實(shí)例訓(xùn)練可知,程序設(shè)計(jì)的目的是為了解決特定的工程問(wèn)題。采用計(jì)算思維方式對(duì)工程問(wèn)題進(jìn)行抽象,用計(jì)算機(jī)能夠識(shí)別的數(shù)據(jù)類(lèi)型來(lái)描述特定的量,設(shè)計(jì)一系列函數(shù)求解問(wèn)題。雖然程序設(shè)計(jì)思維是抽象的,但解決的問(wèn)題是實(shí)際的,多解決具體問(wèn)題有利于編程思維的形成。程序設(shè)計(jì)不能簡(jiǎn)單地記住一些語(yǔ)法規(guī)定,其最終目的是為了解決實(shí)際的工程問(wèn)題。

4 結(jié)語(yǔ)

工業(yè)軟件、人工智能和智能制造的發(fā)展已上升到國(guó)家戰(zhàn)略,高新技術(shù)產(chǎn)業(yè)發(fā)展需要大量具有程序設(shè)計(jì)與分析能力的高層次人才。C語(yǔ)言作為一門(mén)專(zhuān)業(yè)基礎(chǔ)課,編程思維的培養(yǎng)對(duì)于專(zhuān)業(yè)課程學(xué)習(xí)至關(guān)重要。充分考慮計(jì)算機(jī)組成及體系結(jié)構(gòu)的難度,教學(xué)內(nèi)容以微課的形式補(bǔ)充程序設(shè)計(jì)在計(jì)算機(jī)理論方面淺顯易懂的基礎(chǔ)知識(shí)。利用先進(jìn)的信息技術(shù),采用翻轉(zhuǎn)課堂和項(xiàng)目驅(qū)動(dòng)的形式線(xiàn)上線(xiàn)下混合式教學(xué)。

教學(xué)實(shí)踐表明:多課程融合的教學(xué)改革促進(jìn)了學(xué)生對(duì)語(yǔ)法規(guī)定的深入理解,培養(yǎng)了學(xué)生程序設(shè)計(jì)的認(rèn)知能力和編程思維,提高了學(xué)生編程能力。同時(shí),多課程的引入使得學(xué)生更加明確專(zhuān)業(yè)和個(gè)人的發(fā)展方向。課程考核在平均分、最高分和最低分上都有穩(wěn)步的提高,畢業(yè)學(xué)生初步具備解決復(fù)雜工程問(wèn)題的能力。

猜你喜歡
程序設(shè)計(jì)編程計(jì)算機(jī)
我家有只編程貓
我家有只編程貓
我家有只編程貓
我家有只編程貓
計(jì)算機(jī)操作系統(tǒng)
基于Visual Studio Code的C語(yǔ)言程序設(shè)計(jì)實(shí)踐教學(xué)探索
基于計(jì)算機(jī)自然語(yǔ)言處理的機(jī)器翻譯技術(shù)應(yīng)用與簡(jiǎn)介
科技傳播(2019年22期)2020-01-14 03:06:34
從細(xì)節(jié)入手,談PLC程序設(shè)計(jì)技巧
電子制作(2019年9期)2019-05-30 09:42:04
信息系統(tǒng)審計(jì)中計(jì)算機(jī)審計(jì)的應(yīng)用
高職高專(zhuān)院校C語(yǔ)言程序設(shè)計(jì)教學(xué)改革探索
泸定县| 闻喜县| 灵台县| 重庆市| 离岛区| 色达县| 栖霞市| 化德县| 蓝田县| 南开区| 漳平市| 崇阳县| 元阳县| 绍兴县| 鞍山市| 利辛县| 台州市| 霍邱县| 抚顺县| 晋中市| 岢岚县| 徐州市| 山丹县| 佛山市| 东丽区| 贵港市| 泰兴市| 革吉县| 海丰县| 公主岭市| 榆林市| 许昌市| 股票| 龙海市| 隆安县| 六盘水市| 航空| 阜新| 外汇| 巴马| 卓资县|