版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第PAGEII頁(yè)ADDINCNKISM.UserStyle青島科技大學(xué)信息科學(xué)技術(shù)學(xué)院C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)書(shū)
目錄TOC\o"1—3”\h\z\u實(shí)驗(yàn)1.1VisualC++6。0開(kāi)發(fā)環(huán)境 1實(shí)驗(yàn)1.2C程序快速入門(mén) 8實(shí)驗(yàn)1.3算術(shù)運(yùn)算與賦值運(yùn)算 12_Toc430035097"實(shí)驗(yàn)1.5switch選擇結(jié)構(gòu) 24HYPERLINK\l”_Toc430035098"實(shí)驗(yàn)2循環(huán)結(jié)構(gòu)及數(shù)組(共8學(xué)時(shí)) 28HYPERLINK\l”_Toc430035099"實(shí)驗(yàn)2.1循環(huán)結(jié)構(gòu)(2學(xué)時(shí)) 28HYPERLINK\l”_Toc430035100”循環(huán)結(jié)構(gòu)程序設(shè)計(jì)補(bǔ)充 33HYPERLINK\l”_Toc430035101"實(shí)驗(yàn)2.2數(shù)組一:一維數(shù)組 37HYPERLINK\l”_Toc430035102”實(shí)驗(yàn)2。3數(shù)組二:二維數(shù)組 44實(shí)驗(yàn)2.4數(shù)組三:字符數(shù)組 46_Toc430035105”實(shí)驗(yàn)3。1函數(shù)一:函數(shù)的定義、調(diào)用和聲明 50實(shí)驗(yàn)3。3函數(shù)三:函數(shù)的嵌套和遞歸2 58HYPERLINK\l”_Toc430035108”實(shí)驗(yàn)3.4自定義數(shù)據(jù)類(lèi)型(2學(xué)時(shí)) 60HYPERLINK\l”_Toc430035109"實(shí)驗(yàn)4:指針(共6學(xué)時(shí)) 62實(shí)驗(yàn)4。2指針二:指向數(shù)組的指針 68HYPERLINK\l”_Toc430035112”實(shí)驗(yàn)4.3指針三:用指針操作字符串2 72信息科學(xué)技術(shù)學(xué)院《C語(yǔ)言程序設(shè)計(jì)》實(shí)驗(yàn)指導(dǎo)書(shū)實(shí)驗(yàn)1C語(yǔ)言入門(mén)及選擇結(jié)構(gòu)實(shí)驗(yàn)1.1VisualC++6.0開(kāi)發(fā)環(huán)境一、實(shí)驗(yàn)?zāi)康?。熟悉C語(yǔ)言的系統(tǒng)環(huán)境,掌握在集成環(huán)境中編輯、編譯、連接和運(yùn)行C語(yǔ)言程序的方法。2.掌握C語(yǔ)言源程序的結(jié)構(gòu)特點(diǎn)與書(shū)寫(xiě)規(guī)范.二、實(shí)驗(yàn)學(xué)時(shí)數(shù)2學(xué)時(shí)三、實(shí)驗(yàn)步驟及任務(wù)(一)VC++6。0集成環(huán)境(1)運(yùn)行VC++6。0a.雙擊桌面上的VC++6。0快捷方式,運(yùn)行VC++6。0。b。雙擊"C:\MicrosoftVisualStudio\Common\MSDev98\Bin\MSDEV。EXE",運(yùn)行VC++6.0.(2)認(rèn)識(shí)VC++6。0菜單欄菜單欄標(biāo)準(zhǔn)按鈕標(biāo)準(zhǔn)按鈕執(zhí)行執(zhí)行執(zhí)行執(zhí)行組建組建工作空間工作空間編譯編譯輸出輸出標(biāo)題欄的左側(cè)顯示當(dāng)前的文件名,右側(cè)有最小化,最大化和關(guān)閉三個(gè)按鈕。菜單欄包含了開(kāi)發(fā)環(huán)境中幾乎所有的命令,其中一些常用的命令還被排列在工具欄中。工具欄上的按鈕提出和一些菜單命令相對(duì)應(yīng),提供了經(jīng)常使用的命令的一種快捷方式。項(xiàng)目工作區(qū)窗口包含有ClassView和FileView兩個(gè)頁(yè)面。(3)建立C語(yǔ)言源文件,單擊[文件]—[新建],單擊[文件]選項(xiàng)卡,新建一個(gè)C++SourceFile,選擇存儲(chǔ)位置(新建建立的文件夾D:\test),輸入文件名“myhello。c”,進(jìn)入D:\test,可以看到新建的文件myhello.c。(4)輸入C語(yǔ)言源程序,在打開(kāi)的程序編輯窗口輸入C語(yǔ)言源程序.輸入C語(yǔ)言源程序輸入C語(yǔ)言源程序(5)編譯點(diǎn)擊[組建]-[編譯],或按ctrl+F7進(jìn)行預(yù)編譯,或用工具欄工具編譯,編譯成功生成.obj目標(biāo)文件(myhello。obj),顯示在輸出窗口.編譯工具編譯工具編譯結(jié)果(6)連接點(diǎn)擊[組建]—[編譯]命令,或按F7,或點(diǎn)按連接按鈕執(zhí)行連接操作。連接成功生成擴(kuò)展名為.exe的文件。連接工具連接工具連接結(jié)果(7)執(zhí)行點(diǎn)擊[組建]—[執(zhí)行]命令,或按ctrl+F5,或點(diǎn)按執(zhí)行按鈕完成“執(zhí)行"操作.完成后界面如下,到目前為止一個(gè)簡(jiǎn)單的C程序創(chuàng)建成功。執(zhí)行工具執(zhí)行工具結(jié)果輸出窗體(8)關(guān)閉工作空間程序運(yùn)行結(jié)束后,如果想輸入一個(gè)新程序,我們需要將當(dāng)前的程序關(guān)閉,選擇菜單欄中的“文件"→“關(guān)閉工作空間”即可。(9)常用功能鍵及其意義為了使程序員能夠方便快捷地完成程序開(kāi)發(fā),開(kāi)發(fā)環(huán)境提供了大量快捷方式來(lái)簡(jiǎn)化一些常用操作的步驟。鍵盤(pán)操作直接、簡(jiǎn)單,而且非常方便,因而程序員非常喜歡采用鍵盤(pán)命令來(lái)控制操作。下面是一些最常用的功能鍵,希望在實(shí)驗(yàn)中逐步掌握。操作類(lèi)型功能鍵對(duì)應(yīng)菜單含義文件操作Ctrl+NFile|New創(chuàng)建新的文件、項(xiàng)目等
Ctrl+OFile|Open打開(kāi)項(xiàng)目、文件等
Ctrl+SFile|Save保存當(dāng)前文件編輯操作Ctrl+XEdit|Cut剪切
Ctrl+CEdit|Copy復(fù)制
Ctrl+VEdit|Paste粘貼
Ctrl+ZEdit|Undo撤消上一個(gè)操作
Ctrl+YEdit|Redo重復(fù)上一個(gè)操作
Ctrl+AEdit|SelectAll全選
DelEdit|Del刪除光標(biāo)后面的一個(gè)字符建立程序操作Ctrl+F7Build|Compilercurrentfile編譯當(dāng)前源文件
Ctrl+F5Build|Runexe運(yùn)行當(dāng)前項(xiàng)目
F7Build|Buildexe建立可執(zhí)行程序
F5Build|StartDebugging啟動(dòng)調(diào)試程序調(diào)試F5Debug|Go繼續(xù)運(yùn)行
F11Debug|Stepinto進(jìn)入函數(shù)體內(nèi)部
shift+F11Debug|Stepout從函數(shù)體內(nèi)部運(yùn)行出來(lái)
F10Debug|Stepover執(zhí)行一行語(yǔ)句
F9
設(shè)置/清除斷點(diǎn)
Ctrl+F10Debug|Runtocursor運(yùn)行到光標(biāo)所在位置
shift+F9Debug|QuickWatch快速查看變量或表達(dá)式的值
Shift+F5Debug|Stopdebugging停止調(diào)試要求:請(qǐng)用最簡(jiǎn)單的語(yǔ)言描述如何新建一個(gè)C語(yǔ)言的源文件,如何編輯程序,如何編譯程序,如何連接程序,如何運(yùn)行程序,程序結(jié)果然后顯示?(二)閱讀程序要求:編輯下面源程序,并且讀懂與分析運(yùn)行程序,上機(jī)運(yùn)行程序,并與分析結(jié)果相對(duì)比。1.輸入并運(yùn)行以下程序,觀察運(yùn)行結(jié)果.(sy1.1.1.c)#include〈stdio。h>intmain(){printf("*********************\n");printf(”Helloworld!\n");printf(”*********************\n");return0;}分析結(jié)果
運(yùn)行結(jié)果
思考:如何采用一個(gè)輸出(printf)函數(shù)調(diào)用實(shí)現(xiàn)此輸出結(jié)果。2.輸入并運(yùn)行以下程序,觀察運(yùn)行結(jié)果.(sy1。1。2。c)#include〈stdio.h〉intmain(){inta,b,sum,minus;a=456;b=123;sum=a+b;minus=a—b;printf(”a+b=%d\na—b=%d\n”,sum,minus);return0;}分析結(jié)果printf中刪除a+b=和a-b=輸出結(jié)果:printf中刪除第一個(gè)\n輸出結(jié)果:運(yùn)行結(jié)果printf中刪除a+b=和a-b=輸出結(jié)果:printf中刪除第一個(gè)\n輸出結(jié)果:(三)完成程序要求:依據(jù)題目要求,分析已給出的語(yǔ)句,填寫(xiě)空白。但是不要增行或刪行,改動(dòng)程序的結(jié)構(gòu)。1.求(a-b)×c的值。(設(shè)a=33,b=22,c=11)(sy1。1。3.c)#include<stdio.h〉intmain(){ inta,b,c;a=33;c=11;printf(”%d\n”,(a-b)*c);return0;}2.求圓的面積。(sy1。1。4.c)#include<stdio。h>#definePI3.14intmain(){floatr,area;printf(”\nEnterrvalue:");scanf(”%f",&r);area=PI*r*r;printf(”\narea=%f\n”,);return0;}(四)調(diào)試程序要求:調(diào)試運(yùn)行下列程序是否正確,若有錯(cuò),寫(xiě)出錯(cuò)在何處?填寫(xiě)正確的運(yùn)行結(jié)果。(sy1。1。5.c)行號(hào)#include〈stdio.h>intmain(){intx;x=5,y=8;printf(”\n%d,%d,%d\n”,x,(x+5)*2,y); return0;}錯(cuò)錯(cuò)誤在行
應(yīng)改為:調(diào)試正確后的運(yùn)行結(jié)果輸出結(jié)果:(五)編寫(xiě)程序1。請(qǐng)用C程序告訴大家你來(lái)自哪里?有什么愛(ài)好?(sy1.1。6.c)2.輸出以下圖案:(sy1。1。7。c)******(六)分析與討論1.記下在調(diào)試過(guò)程中所發(fā)現(xiàn)的錯(cuò)誤、系統(tǒng)給出的出錯(cuò)信息和對(duì)策。分析討論對(duì)策成功或失敗的原因。2.總結(jié)C程序的結(jié)構(gòu)和書(shū)寫(xiě)規(guī)則。
實(shí)驗(yàn)1.2C程序快速入門(mén)一、實(shí)驗(yàn)?zāi)康?。掌握標(biāo)識(shí)符、變量與常量的定義;2.掌握C語(yǔ)言數(shù)據(jù)類(lèi)型的種類(lèi)和作用;3。熟悉如何定義一個(gè)整型、字符型、實(shí)型變量,以及對(duì)它們賦值的方法,了解以上類(lèi)型數(shù)據(jù)輸出時(shí)所用的格式轉(zhuǎn)換符;4。掌握不同的類(lèi)型數(shù)據(jù)之間賦值的規(guī)律;5。掌握輸出、輸入函數(shù)的使用及格式控制;6。進(jìn)一步熟悉C程序語(yǔ)句和程序的結(jié)構(gòu)特點(diǎn),學(xué)習(xí)簡(jiǎn)單程序的編寫(xiě)方法。二、實(shí)驗(yàn)學(xué)時(shí)數(shù)2學(xué)時(shí)三、實(shí)驗(yàn)步驟(一)閱讀程序1.輸入并運(yùn)行以下程序,觀察運(yùn)行結(jié)果.#include<stdio。h〉intmain(){charc1,c2;c1=97;c2=98;printf(”%c,%c\n",c1,c2);return0;}(1)在第五行后面加入以下printf語(yǔ)句,并運(yùn)行.printf("%d,%d\n”,c1,c2);分析結(jié)果
字符型97,98對(duì)應(yīng)a,b運(yùn)行結(jié)果
ab(2)在(1)的基礎(chǔ)上,將第三行改為以下語(yǔ)句,并運(yùn)行。intc1,c2;分析結(jié)果
運(yùn)行結(jié)果
仍為a,b若改為%d,則為97,98(3)在(1)的基礎(chǔ)上,將第四行改為以下語(yǔ)句,并運(yùn)行。c1=321;c2=400;分析結(jié)果
運(yùn)行結(jié)果
A,?2.分析并運(yùn)行此程序,當(dāng)輸入的數(shù)據(jù)為10時(shí),下面程序的運(yùn)行結(jié)果。#include<stdio.h>intmain(){floatx,y;scanf("%f”,&x);printf("\n2。4*x—1/2=%f",2。4*x-1。0/2);printf(”\nx%%2/5—x=%f",(int)(x)%2/5-x);printf(”\n(x—=x*10,x/=10)=%d\n”,(x—=x*10,x/=10));return0;}分析結(jié)果
運(yùn)行結(jié)果
2.4*x—1/2=23。500000x%%2/5-x=—10.000000(x-=x*10,x/=10)=0(二)完成程序要求:依據(jù)題目要求,分析已給出的語(yǔ)句,填寫(xiě)空白。但是不要增行或刪行,改動(dòng)程序的結(jié)構(gòu)。1.求任意輸入字符的ASCⅡ碼。#include〈stdio.h〉intmain(){ chara;intb;//變量的定義 printf(“請(qǐng)輸入一個(gè)字符:”); scanf(“%c",&a); b=(int)a; printf(“\n\n%c的ASCⅡ碼為%d\n”,a,b);return0;}2、輸出任意一個(gè)十進(jìn)制數(shù)對(duì)應(yīng)的八進(jìn)制,十六進(jìn)制數(shù).#include〈stdio.h〉intmain(){ inta; scanf(“%d”,&a); printf(“\n%d(10),%o(8),%x(16)\n”,a,a,a);return0;}(三)調(diào)試程序要求:調(diào)試運(yùn)行下列程序是否正確,若有錯(cuò),寫(xiě)出錯(cuò)在何處?填寫(xiě)正確的運(yùn)行結(jié)果。1.行號(hào)#include<stdio.h〉1intmain()2{intu=v=89;3printf(“u=%d,v=%d\n”,u,v);4return0;5}
錯(cuò)錯(cuò)誤在1行
應(yīng)改為:調(diào)試正確后的運(yùn)行結(jié)果輸出結(jié)果:2。下面的程序試圖計(jì)算由鍵盤(pán)輸入的任意兩個(gè)整數(shù)的平均值:行號(hào) #include<stdio.h>1 intmain()2 {3 intx,y,a;4 scanf("%x,%y",&x,&y);5 a=(x+y)/2;6 printf(”Theaverageis%d:\n",a);7return0;8}錯(cuò)錯(cuò)誤在行
應(yīng)改為:調(diào)試正確后的運(yùn)行結(jié)果輸入數(shù)據(jù)2,61,4—1,—3-2,42,0輸出結(jié)果:(四)編寫(xiě)程序1。編寫(xiě)一個(gè)程序,從鍵盤(pán)輸入某電視機(jī)的價(jià)格,再輸出該價(jià)格打7折后的價(jià)格。分析:必須設(shè)計(jì)一個(gè)實(shí)型變量接受從鍵盤(pán)輸入的值,輸入、輸出應(yīng)該有提示.#include〈stdio.h>intmain(){ doublea,b; printf(”電視機(jī)的價(jià)格:”); scanf("%lf",&a); b=0.7*a; printf(”打折后的價(jià)格:%lf",b); return0;}2.編寫(xiě)一個(gè)程序,求一元一次方程ax+b=0的根。分析:a、b的值從鍵盤(pán)輸入,輸入時(shí)a的值不能為0(無(wú)解),方程的根即x的值為:-b/a
實(shí)驗(yàn)1。3算術(shù)運(yùn)算與賦值運(yùn)算一、實(shí)驗(yàn)?zāi)康?.掌握算術(shù)運(yùn)算符和算術(shù)表達(dá)式.2。熟練掌握賦值運(yùn)算符、復(fù)合的賦值運(yùn)算符3。熟練掌握自增1和自減1運(yùn)算符。4。熟練掌握順序結(jié)構(gòu)的程序設(shè)計(jì),能夠編寫(xiě)簡(jiǎn)單的應(yīng)用程序。二、實(shí)驗(yàn)學(xué)時(shí)數(shù)2學(xué)時(shí)三、實(shí)驗(yàn)步驟(一)分析程序1.分析以下程序運(yùn)行的結(jié)果#include〈stdio。h〉intmain(){inti,j,m,n; i=8;j=10; m=++i; n=j++; printf("%d,%d,%d,%d\n",i,j,m,n);return0;}分析結(jié)果
運(yùn)行結(jié)果
(2)將第6、7行改為:m=i++;n=++j;分析結(jié)果
運(yùn)行結(jié)果
(3)程序改為:#include<stdio。h〉intmain(){ inti,j,m=0,n=0; i=8;j=10; m+=i++; n-=--j; printf(“%d,%d,%d,%d\n”,i,j,m,n);return0;}分析結(jié)果
運(yùn)行結(jié)果
1.輸入并運(yùn)行以下程序,觀察運(yùn)行結(jié)果.#include〈stdio。h〉intmain(){inta=17;floatu=1234。567;printf(”%d,%7d,%-7d\n",a,a,a); printf(”%f,%7.2f\n",u,u);return0;}分析結(jié)果
運(yùn)行結(jié)果
2.輸入并運(yùn)行以下程序,觀察運(yùn)行結(jié)果.#include〈stdio。h>intmain(){ inta,x,y; x=(a=2,6*2); y=a=2。6*a; printf(“x=%d,y=%d\n”,x,y);return0;}分析結(jié)果
運(yùn)行結(jié)果
3.閱讀以下程序,若輸入的數(shù)據(jù)形式為251310,輸出結(jié)果為:#include〈stdio。h〉intmain(){intx,y,z;scanf(”%d%d%d”,&x,&y,&z);printf(”x+y+z=%d\n",x+y+z);return0;}分析結(jié)果
運(yùn)行結(jié)果
(二)完成程序 要求:按照給定題目要求,參照出現(xiàn)的語(yǔ)句,填寫(xiě)程序空白處。鍵盤(pán)輸入任意一個(gè)小寫(xiě)字母,將其轉(zhuǎn)換成大寫(xiě)字母,然后輸出。#include〈stdio.h>intmain(){ charc1,c2; c1=getchar(); c2=; putchar('\n');putchar('\’’);putchar(c2);putchar('\'’);return0;}求的值.(設(shè)a=25,b=5)#include<stdio。h〉intmain(){ floata=25,b=5; floatc; c=; printf("c=%f\n",c);return0;}(三)調(diào)試程序要求:分析下列程序是否正確,如有錯(cuò)誤,指出錯(cuò)誤所在,并改正;若正確,寫(xiě)出運(yùn)行結(jié)果。
行號(hào) #include〈stdio。h>intmain(){ inti,k;i=8;k=5*I*I;printf(”%d\n”,k); return0;}錯(cuò)錯(cuò)誤在行
應(yīng)改為:調(diào)試正確后的運(yùn)行結(jié)果
2.該程序輸入一個(gè)三位數(shù),然后進(jìn)行個(gè)位和百位的置換,如234,轉(zhuǎn)換成432行號(hào)#include<stdio.h〉1 intmain()2 { intn,a,b,c,m;3 scanf(”%d”,n);4 a=n%10; 5 b=(n/10)%10;6 c=(n/100)%10;7 m=100*a+10*b+c;8 printf("%d=〉%d\n”,n,m);9return0;10}錯(cuò)錯(cuò)誤在行
應(yīng)改為:調(diào)試正確后的運(yùn)行結(jié)果
(四)編寫(xiě)程序1.編程求出某學(xué)生期末三門(mén)課程的總分及平均分.結(jié)果保留小數(shù)點(diǎn)后一位。2.編程從鍵盤(pán)輸入兩個(gè)整數(shù)分別給變量a和b,分別寫(xiě)出不借助于其他變量和借助于其他變量的條件下,將變量a和b的值實(shí)現(xiàn)交換.1.編寫(xiě)一個(gè)程序,其功能為:從鍵盤(pán)上輸入一個(gè)浮點(diǎn)數(shù),然后分別輸出該數(shù)的整數(shù)部分和小數(shù)部分。分析:若輸入的浮點(diǎn)數(shù)存入fd變量,則可用強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符,將輸入的該數(shù)的整數(shù)部分取出:zhs=(int)fd;2。從鍵盤(pán)輸入三角形的三條邊a,b,c的值,計(jì)算三角形的面積,程序框架如下:#include“sdtio.h”#include“math.h”main(){定義變量從鍵盤(pán)輸入a,b,c三條邊的值計(jì)算s的值計(jì)算三角形面積輸出結(jié)果}
1.編程序計(jì)算數(shù)學(xué)表達(dá)式:b2-4ac,a,b,c的值從鍵盤(pán)輸入。2.編程序計(jì)算298秒是幾分幾秒。提示:設(shè)intx=298;再定義兩個(gè)變量存放分(m)、秒(s)值;則:m=x/60;s=x%60;3。從鍵盤(pán)輸入一個(gè)三位數(shù),求各位數(shù)字之和。例如,輸入的三位數(shù)為358,則輸出結(jié)果為3+5+8=16。提示:題目的關(guān)鍵是要求出該數(shù)的個(gè)、十、百位上的數(shù)字,可利用C語(yǔ)言整數(shù)相除,結(jié)果仍為整數(shù)的特點(diǎn)。若設(shè)該數(shù)為data,它的個(gè)、十、百位為g、s、b,則b=data/100;s=(data-b*100)/10;g=data%10(三)編寫(xiě)程序1。用賦值語(yǔ)句表達(dá):a的值為2,b的值比a多2,c的值比b的值多2,并輸出a,b,c的結(jié)果。請(qǐng)編出完整程序驗(yàn)證。2.假設(shè)變量a和b均為整型,以下語(yǔ)句可以不借助任何變量把a(bǔ)、b中的值進(jìn)行交換.請(qǐng)先填空,再編出完整程序驗(yàn)證.a+=_________;(a為a、b之和)b=a-__________;a-=___________;
實(shí)驗(yàn)1。4邏輯運(yùn)算及if語(yǔ)句一、實(shí)驗(yàn)?zāi)康?.掌握關(guān)系、條件、邏輯運(yùn)算符及關(guān)系、條件、邏輯表達(dá)式。2。掌握逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式.3.熟練掌握三種單分支、雙分支和多分支if語(yǔ)句。4。掌握if語(yǔ)句的嵌套。二、實(shí)驗(yàn)學(xué)時(shí)數(shù)2學(xué)時(shí)三、實(shí)驗(yàn)步驟(一)閱讀程序1。分析程序運(yùn)行結(jié)果:#include<stdio。h〉intmain(){ inti,j,m=0,n=0; i=8;j=10; m+=i++; n-=—-j; printf(“%d,%d,\n",(i,j,m),n);return0;}分析結(jié)果
運(yùn)行結(jié)果
2.輸入并運(yùn)行以下程序,觀察運(yùn)行結(jié)果。#include<stdio.h>intmain(){intx=10,y=9,a,b,c;a=(--x==y++)?--x:++y;b=x++;c=y;printf("a=%d,b=%d,c=%d\n",a,b,c);return0;}分析結(jié)果
運(yùn)行結(jié)果
3、若x=12,則以下程序運(yùn)行的結(jié)果是#include<stdio。h>intmain(){intx,y;scanf(”%d",&x);y=x>12?x+10:x—12;printf(”y=%d\n",y);return0;}分析結(jié)果
運(yùn)行結(jié)果
三、實(shí)驗(yàn)步驟(一)閱讀程序1。輸入并運(yùn)行以下程序,觀察運(yùn)行結(jié)果.#include<stdio.h〉intmain(){ inta,b,c; a=10;b=60;c=30; if(a>b)a=b; b=c; c=a; printf(”a=%d,b=%d,c=%d\n",a,b,c);return0;}分析結(jié)果
運(yùn)行結(jié)果
2。輸入并運(yùn)行以下程序,觀察運(yùn)行結(jié)果。#include〈stdio。h〉intmain(){intx=60,a=30,b=20;intv1=3,v2=8;if(a〈b) if(b!=15) if(!v1)x=1; else if(v2)x=10;x=—2;printf(“%d\n”,x);return0;}分析結(jié)果
運(yùn)行結(jié)果
(二)完成程序 要求:按照給定題目要求,參照出現(xiàn)的語(yǔ)句,填寫(xiě)程序空白處.輸入一個(gè)字符,如果它是一個(gè)大寫(xiě)字母,則把它變成小寫(xiě)字母;如果它是一個(gè)小寫(xiě)字母,則把它變成大寫(xiě)字母;其他字符不變,請(qǐng)?jiān)赺______上填寫(xiě)正確內(nèi)容。#include〈stdio.h〉intmain(){ charch; scanf(”%c",&ch); if(_______________________)ch=ch+32; elseif(ch>='a'&&ch〈='z')____________________; printf("%c\n”,ch);return0;}以下程序根據(jù)輸入的三角形的三邊判斷是否能組成三角形,若可以則輸出它的面積和三角形的類(lèi)型,請(qǐng)?jiān)赺______上填寫(xiě)正確內(nèi)容。#include〈stdio.h〉#include<math。h>intmain(){ floata,b,c; floats,area; scanf(“%f,%f,%f",&a,&b,&c); if(___________________________) { s=(a+b+c)/2; area=sqrt(s*(s—a)*(s-b)*(s-c)); printf(“三角形的面積為:%f\n",area); if(_________________) printf(“等邊三角形\n”); elseif(_________________) printf(“等腰三角形\n”); elseif((a*a+b*b==c*c)||(a*a+c*c==b*b)||(c*c+b*b==a*a)) printf(“直角三角形\n"); elseprintf(“一般三角形\n”); } elseprintf(“不能組成三角形\n”);return0;}
(三)調(diào)試程序要求:分析下列程序是否正確,如有錯(cuò)誤,指出錯(cuò)誤所在,并改正;若正確,寫(xiě)出運(yùn)行結(jié)果.
以下程序?qū)崿F(xiàn)求分段函數(shù).y=-1x〉9x*(x+2)3〈x<=92*x—1〈x〈=3x—1x<=—1#include<stdio.h>intmain()1{ intx,y;2 scanf(“%d",&x);3 if(3<x<=9)y=x*(x+2);4 elseif(-1<x〈=3)y=2*x;5 elseif(x〈=—1)y=x-1;6 elsey=-1;7 printf(“%d\n”,y);8 return0;9}
錯(cuò)錯(cuò)誤在行
應(yīng)改為:調(diào)試正確后的運(yùn)行結(jié)果輸入數(shù)據(jù):421—310輸出結(jié)果:2.
有一函數(shù)關(guān)系如下:x—3x〈0y=0x=0x+3x>0以下程序表示上面的函數(shù)關(guān)系行號(hào)#include<stdio。h〉intmain()1{intx,y;2scanf(”%d”,&x);3y=x-3;4if(x!=0)5if(x〉0)y=x+3;6elsey=x;7printf("y=%d\n”,y);8return0;9}錯(cuò)錯(cuò)誤在行
應(yīng)改為:調(diào)試正確后的運(yùn)行結(jié)果輸入數(shù)據(jù):50—3輸出結(jié)果:(四)編寫(xiě)程序1。輸入某學(xué)生的成績(jī)(成績(jī)?yōu)?00分制,可以為89。5,如果輸入的成績(jī)不在0-100之間,請(qǐng)給出出錯(cuò)提示。),經(jīng)處理后給出學(xué)生的等級(jí),等級(jí)分類(lèi)如下:90分以上(包括90):A80至90分(包括80):B70至80分(包括70):C60至70分(包括60):D60分以下:E2.輸入一個(gè)三位的正整數(shù),判斷該數(shù)是否為水仙花數(shù)。(水仙花數(shù)的是指一個(gè)三位數(shù),其各位數(shù)字的立方各等于該數(shù)本身。例如:153是一個(gè)水仙花數(shù),因?yàn)?53=1^3+5^3+3^3)1.某郵局對(duì)郵寄包裹有如下規(guī)定:若包裹的長(zhǎng)寬高任一尺寸超過(guò)1米或重量超過(guò)30千克,不予郵寄;對(duì)可以郵寄的包裹每件收取手續(xù)費(fèi)0。5元,再加上根據(jù)下表按重量weight計(jì)算的郵資,請(qǐng)編寫(xiě)程序計(jì)算某包裹的郵寄資費(fèi)。2.輸入一個(gè)正整數(shù)n,再輸入n個(gè)學(xué)生的成績(jī),計(jì)算平均分,并統(tǒng)計(jì)不及格成績(jī)的個(gè)數(shù).
實(shí)驗(yàn)1。5switch選擇結(jié)構(gòu)一、實(shí)驗(yàn)?zāi)康?.熟練掌握switch語(yǔ)句。2.掌握省略break的case語(yǔ)句的執(zhí)行方式.3。比較if語(yǔ)句的嵌套及if、switch多路分支語(yǔ)句.二、實(shí)驗(yàn)學(xué)時(shí)數(shù)2學(xué)時(shí)三、實(shí)驗(yàn)步驟(一)閱讀程序1.輸入并運(yùn)行以下程序,觀察運(yùn)行結(jié)果.#include〈stdio.h〉intmain(){inti=1;switch(i){case1:printf("%d\t",i++);case2:printf("%d\t”,i++);case3:printf("%d\t",i++);case4:printf(”%d\t",i++);}printf("\ni=%d\n",i);return0;}分析結(jié)果
運(yùn)行結(jié)果
(二)完成程序 要求:按照給定題目要求,參照出現(xiàn)的語(yǔ)句,填寫(xiě)程序空白處。以下程序?qū)崿F(xiàn)的功能是:—1x〈0,請(qǐng)將以下程序補(bǔ)充完整y=0x=0x>0#include<stdio。h〉intmain(){intx,y;scanf(“%d”,&x);switch(x〈0){case1:;break;case0:switch(x==0){case1;y=0;break;case0:y=1;}}printf(“y=%d\n”,y);return0;
}2.用switch結(jié)構(gòu)編寫(xiě)一個(gè)處理四則運(yùn)算的程序。#include<stdio.h〉intmain(){floatv1,v2;charop;printf(“pleasetypeyourexpression:\n”);scanf(“%f%c%f”,&v1,&op,&v2);switch(){case‘+’:printf(“%1.0f+%1.0f=%1.0f\n”,v1,v2,v1+v2);break;case‘’:printf(“%1.0f—%1。0f=%1。0f\n”,v1,v2,v1-v2);break;case‘*':printf(“%1.0f*%1.0f=%1。0f\n”,v1,v2,v1*v2);break;case‘/’:if(){printf(“除數(shù)為零\n");break;}else{printf(“%1。0f/%1。0f=%1.0f\n”,v1,v2,v1/v2);break;}default:printf(“運(yùn)算符錯(cuò)誤\n");}return0;}3.輸入某年某月某日,判斷這一天是這一年的第幾天?程序分析:以3月5日為例,應(yīng)該先把前兩個(gè)月的加起來(lái),然后再加上5天即本年的第幾天,特殊情況,閏年且輸入月份大于3時(shí)需考慮多加一天。#include〈stdio。h>intmain(){intday,month,year,sum,leap;printf("\npleaseinputyear,month,day\n”);scanf("%d,%d,%d",___________);switch(month)/*先計(jì)算某月以前月份的總天數(shù)*/{case1:________;break;case2:sum=31;break;case3:sum=59;break;case4:sum=90;break;case5:sum=120;break;case6:sum=151;break;case7:sum=181;break;case8:sum=212;break;case9:sum=243;break;case10:sum=273;break;case11:sum=304;break;case12:sum=334;break;default:printf(”dataerror");break;}sum=sum+day;/*再加上某天的天數(shù)*/if(year%400==0||(_______________))/*判斷是不是閏年*/leap=1;elseleap=0;if(______________________)/*如果是閏年且月份大于2,總天數(shù)應(yīng)該加一天*/_____________;printf(”Itisthe%dthday.\n”,sum);return0;}
(三)編寫(xiě)程序1。以下4種水果([1]蘋(píng)果[2]梨[3]桔子[4]芒果)單價(jià)分別是2.0元/公斤,2。5元/公斤,3.0元/公斤,4.5元/公斤,請(qǐng)輸入水果編號(hào)、重量,計(jì)算應(yīng)付款。2.從鍵盤(pán)輸入1—7,顯示輸出該日期對(duì)應(yīng)的英文日期(Monday,Tuesday,Wednesday,Thursday,F(xiàn)riday,Saturday,sunday)名稱(chēng).3.己知某公司員工的保底薪水為500,某月所接工程的利潤(rùn)p與利潤(rùn)提成的關(guān)系如下:(計(jì)量單位:元)(選作)p<=1000沒(méi)有提成1000<p<=2000提成10%2000〈p〈=5000 提成15%5000〈p〈=10000 提成20%10000〈p 提成25%1.編寫(xiě)程序?qū)崿F(xiàn)運(yùn)輸公司對(duì)用戶計(jì)算運(yùn)費(fèi).路程(s)越遠(yuǎn),每公里運(yùn)費(fèi)越低。2.考慮一個(gè)自動(dòng)售貨機(jī),提供如下選擇:[1]礦泉水[2]巧克力[3]爆米花[4]果汁[5]顯示購(gòu)買(mǎi)商品的數(shù)量[6]退出系統(tǒng)
實(shí)驗(yàn)2循環(huán)結(jié)構(gòu)及數(shù)組(共8學(xué)時(shí))實(shí)驗(yàn)2.1循環(huán)結(jié)構(gòu)(2學(xué)時(shí))2。1.1while循環(huán)和do…while循環(huán)及二者比較2.1。2for循環(huán)2。1.3循環(huán)嵌套一、實(shí)驗(yàn)?zāi)康?.掌握while,do—while,for循環(huán)語(yǔ)句的使用與區(qū)別;2。掌握循環(huán)條件、循環(huán)體、循環(huán)終止等循環(huán)要素;4.理解循環(huán)執(zhí)行過(guò)程。5。熟練使用循環(huán)語(yǔ)句編寫(xiě)程序.二、實(shí)驗(yàn)學(xué)時(shí)數(shù)2學(xué)時(shí)三、實(shí)驗(yàn)步驟(一)閱讀程序#include<stdio.h>intmain(){inta=2,b=8;while(b—-<0) b—=a; a++; printf(“a=%d,b=%d\n”,a,b);return0;}
分析結(jié)果
運(yùn)行結(jié)果
2.#include<stdio。h〉intmain(){ intx=2,y=6,z=3; do y=y—1;while(z-—>0&&++x〈5);printf(“x=%d\ty=%d\tz=%d\n”,x,y,z);return0;}
分析結(jié)果
運(yùn)行結(jié)果
3。#include〈stdio。h〉intmain(){intn=0;while(n〈=2){n++;printf(”%d\n”,n);}return0;}分析結(jié)果
運(yùn)行結(jié)果
(二)完成程序要求:依據(jù)題目要求,分析已給出的語(yǔ)句,填寫(xiě)空白.但是不要增行或刪行,改動(dòng)程序的結(jié)構(gòu)。
1.以下程序的功能是計(jì)算正整數(shù)2345的各位數(shù)字平方和,請(qǐng)?jiān)赺______上填寫(xiě)正確內(nèi)容。#include<stdio。h〉
intmain(){intn,sum=0;n=2345;do{ sum=sum+____________; ______________________;}while(n);printf("sum=%d\n",sum);return0;}
2。以下程序的功能是計(jì)算S=2+4+8+16+…+128,請(qǐng)?jiān)赺_____上填寫(xiě)正確內(nèi)容.
#inlcude〈stdio.h>intmain(){inta,s,n,count;a=2,s=0,n=1,count=1; while(count<=7) { _____________; s=s+n; _____________;}printf(“s=%d\n”,s);return0;}(三)調(diào)試程序要求:調(diào)試運(yùn)行下列程序是否正確,若有錯(cuò),寫(xiě)出錯(cuò)在何處?填寫(xiě)正確的運(yùn)行結(jié)果。1.
以下程序輸出100(包括100)以內(nèi)的數(shù),每行輸出10個(gè)。行號(hào)#include〈stdio。h>intmain()1{ intk=100;2 while(k=0)3 { printf("%d,”,k);4 k—-;5 if(k%10==0)printf("\n”);6 }7return0;8}錯(cuò)錯(cuò)誤在5行
應(yīng)改為:if(k%10〉0)printf(”\n");2.下面程序的功能是計(jì)算n!。行號(hào)#include〈stdio。h>intmain(){inti,n,s=1; printf(”P(pán)leaseentern:"); scanf("%d",&n); for(i=1;i〈=n;i++) s=s*i; printf("%d!=%d\n”,n,s);return0;}錯(cuò)錯(cuò)誤在行
應(yīng)改為:調(diào)試正確后的運(yùn)行結(jié)果輸入數(shù)據(jù):1591215輸出結(jié)果:3.以下程序輸出1-——100的數(shù)字行號(hào)#include〈stdio.h>intmain()1 { inti=100;2 while(1)3 { i=i%100+1
;5 printf(“%4d,“,i);6 if(i%10==0)printf(“\n”);7 if(i〉100)break; 8 }9 return0;10 }錯(cuò)錯(cuò)誤在行
應(yīng)改為:(四)編寫(xiě)程序1.小明媽媽給他買(mǎi)了若干塊巧克力,小明第一天吃了一半,還不過(guò)癮,又多吃了一塊,第二天又將剩下的巧克力吃掉一半,又多吃一塊,以后每天都吃了前一天剩下的一半零一塊。到第10天再想吃時(shí),只剩下一塊了。編程計(jì)算小明媽媽總共給小明買(mǎi)了多少塊巧克力?
2。一百萬(wàn)富翁遇到一個(gè)陌生人,陌生人找他談一個(gè)換錢(qián)的計(jì)劃,該計(jì)劃如下:我每天給你十萬(wàn)元,而你第一天只需給我一分錢(qián),第二天我仍給你十萬(wàn)元,你給我二分錢(qián),第三天我仍給你十萬(wàn)元,你給我四分錢(qián),…,你每天給我的錢(qián)是前一天的兩倍,直到滿一月(30天),百萬(wàn)富翁很高興,欣然接受了這個(gè)契約.請(qǐng)編寫(xiě)一個(gè)程序計(jì)算這一個(gè)月中陌生人給了百萬(wàn)富翁多少錢(qián)?百萬(wàn)富翁給陌生人多少錢(qián)?While實(shí)現(xiàn):1.譯密碼.為使電文保密,往往按一定規(guī)律將其轉(zhuǎn)換成密碼,收?qǐng)?bào)人再按約定的規(guī)律將其譯回原文.可以按以下的規(guī)律將電文變成密碼:將字母A變成字母E,a變成e,即變成其后的第4個(gè)字母,W變成A,X變成B,Y變成C,Z變成D.字母按上述規(guī)律轉(zhuǎn)換,非字母字符不變。2.計(jì)算1~20之間的奇數(shù)之和和偶數(shù)之和。do…while循環(huán)實(shí)現(xiàn)1.日本一位中學(xué)生發(fā)現(xiàn)一個(gè)奇妙的“定理",請(qǐng)角谷教授證明,而教授無(wú)能為力,于是產(chǎn)生角谷猜想,猜想的內(nèi)容是:任給一個(gè)自然數(shù),若為偶數(shù)除以2,若為奇數(shù)則乘以3加1,得到一個(gè)新的自然數(shù)后按照上面的法則繼續(xù)演算,若干次后得到的結(jié)果必然為1,請(qǐng)編程驗(yàn)證。2.統(tǒng)計(jì)一個(gè)整數(shù)的位數(shù)。從鍵盤(pán)輸入一個(gè)整數(shù),統(tǒng)計(jì)該數(shù)的位數(shù)。例如,輸入12345,輸出5;輸入-99,輸出2。For循環(huán)實(shí)現(xiàn)1.馬克思手稿里有一道有趣的數(shù)學(xué)問(wèn)題:有30個(gè)人,其中有男人、女人和小孩,在一家飯館吃飯共花了50先令:每個(gè)男人花3先令,每個(gè)女人花2先令,每個(gè)小孩花1先令,問(wèn)男人、女人和小孩各有幾人?2.有一對(duì)兔子,從出生后第三個(gè)月起每個(gè)月都生一對(duì)小兔子,小兔子長(zhǎng)到第三個(gè)月后每月又生一對(duì)小兔子,假如兔子都不死,問(wèn)20個(gè)月內(nèi)每個(gè)月的兔子總數(shù)為多少?3.輸入一批學(xué)生的成績(jī),找出最高分。循環(huán)嵌套1.計(jì)算1!+2!+3!+…+100!。要求使用嵌套循環(huán).2。三對(duì)情侶參加婚禮,三個(gè)新郎為A,B,C,三個(gè)新娘為X,Y,Z,有人不知道誰(shuí)和誰(shuí)結(jié)婚,于是詢問(wèn)了六位新人中的三位,但聽(tīng)到的回答是這樣的:A說(shuō)他將和X結(jié)婚;X說(shuō)他的未婚夫是C;C說(shuō)他將和Z結(jié)婚,這人聽(tīng)后知道他們?cè)陂_(kāi)玩笑,全是假話,請(qǐng)編程找出誰(shuí)將和誰(shuí)結(jié)婚.
循環(huán)結(jié)構(gòu)程序設(shè)計(jì)補(bǔ)充(一)閱讀程序
1.#include〈stdio。h〉intmain(){inta=0,j;for(j=0;j〈4;j++){switch(j){case0:case3:a+=2;break;case1:case2:a+=3;break;;default:a+=5;break;}}printf(”%d\n”,a);return0;}分析結(jié)果
運(yùn)行結(jié)果
2。#include<stdio。h〉intmain(){inti;for(i=1;i〈6;i++){if(i%2){printf(”?!保?;continue;}printf("*");}printf(”\n”);return0;}分析結(jié)果
運(yùn)行結(jié)果
3.#include〈stdio.h>intmain(){ints=0,t,i,j;for(i=1;i〈=3;i++){t=1;for(j=1;j<=2*i-1;j++)t=t*j;s=s+t;}printf("%—5d\n",s);return0;}分析結(jié)果
運(yùn)行結(jié)果
4.#include<stdio.h〉intmain(){inty,a;y=2;a=1;while(y--!=-1){ do {a*=y;a++;}while(y-—);}printf("%d,%d\n",a,y);return0;}分析結(jié)果
運(yùn)行結(jié)果
(二)完成程序要求:依據(jù)題目要求,分析已給出的語(yǔ)句,填寫(xiě)空白。但是不要增行或刪行,改動(dòng)程序的結(jié)構(gòu).
1.一個(gè)數(shù)如果恰好等于它的因子之和,這個(gè)數(shù)就稱(chēng)為完數(shù).求100之內(nèi)的所有完數(shù)。請(qǐng)?jiān)赺______上填寫(xiě)正確內(nèi)容.#include<stdio。h>intmain(){intn,s,j;for(n=1;n<=____________;n++){s=___________;for(j=1;j<n;j++)if(n%j==0)s=s+j;if(______________)printf("%d\n”,s);}return0;}2。以下程序的功能是打印以下圖形,請(qǐng)?jiān)赺_____上填寫(xiě)正確內(nèi)容.
#include<stdio。h〉intmain(){inti,j;for(i=1;i〈=4;i++){for(j=1;j<=___________;j++)printf(””);for(j=1;j<=___________;j++)printf("*”);printf(”\n");}return0;}3.
以下程序功能是完成用10元人民幣換成一角、兩角、五角的所有兌換方案,請(qǐng)?jiān)赺______上填寫(xiě)正確內(nèi)容.#include<stdio。h>intmain(){inti,j,k,n=0;for(i=0;i<=20;i++)for(j=0;j〈=50;j++){for(__________________) if(________________){_________________; printf(”第%d種:%3d%3d%3d",n,i,j,k); if(n%3==0)printf(”\n"); }}return0;}(三)編寫(xiě)程序1.打印九九乘法表。格式:1*1=1
2.每個(gè)蘋(píng)果0.8元,第一天買(mǎi)2個(gè),從第二天開(kāi)始,每天買(mǎi)前一天的2倍,直到當(dāng)天購(gòu)買(mǎi)的蘋(píng)果個(gè)數(shù)不超過(guò)100的最大值為止,編寫(xiě)程序求每天平均花多少錢(qián)。
實(shí)驗(yàn)2。2數(shù)組一:一維數(shù)組一、實(shí)驗(yàn)?zāi)康?.掌握一維數(shù)組的定義。2。掌握一維數(shù)組的引用3.掌握一維數(shù)組的初始化。4.熟練對(duì)一維數(shù)組元素進(jìn)行輸入輸出。二、實(shí)驗(yàn)學(xué)時(shí)數(shù)2學(xué)時(shí)三、實(shí)驗(yàn)步驟(一)閱讀程序
1.#include〈stdio。h>intmain(){inta[]={1,2,3,4,5},i,j,s=0; j=1; for(i=4;i〉=0;i——) { s=s+a[i]*j; j=j*10; }printf(”s=%d\n”,s); return0;}分析結(jié)果
運(yùn)行結(jié)果
(二)完成程序要求:依據(jù)題目要求,分析已給出的語(yǔ)句,填寫(xiě)空白。但是不要增行或刪行,改動(dòng)程序的結(jié)構(gòu)。1.下面程序的功能是將十進(jìn)制整數(shù)轉(zhuǎn)換成二進(jìn)制,請(qǐng)?jiān)赺______上填寫(xiě)正確內(nèi)容。#include〈stdio.h>intmain(){ intk=0,n,j,num[16]={0}; printf(”輸入要轉(zhuǎn)換的十進(jìn)制數(shù)\n”); scanf("%d”,&n);printf(”%d轉(zhuǎn)換為二進(jìn)制數(shù):\n”,n); do {num[k]=________________; n=n/2;________________; }while(n!=0);for(k=15;k>=0;k—-) printf(”%d",num[k]);return0;}2、
設(shè)數(shù)組a的元素均為正整數(shù),以下程序是求a中奇數(shù)的個(gè)數(shù)和奇數(shù)的平均值,請(qǐng)?jiān)赺______上填寫(xiě)正確內(nèi)容。#include〈stdio.h〉intmain(){inta[10]={10,9,8,7,6,5,4,3,2,1};intk,s,i;floatave;for(i=0,k=s=0;i〈10;i++){ if(_____________)continue;s+=__________;k++;}if(k!=0){ ave=s/k;printf("%d,%f\n",k,ave);}return0;}(三)調(diào)試程序要求:調(diào)試運(yùn)行下列程序是否正確,若有錯(cuò),寫(xiě)出錯(cuò)在何處?填寫(xiě)正確的運(yùn)行結(jié)果。1.以下程序?qū)崿F(xiàn)的功能是輸入四個(gè)數(shù),求這四個(gè)數(shù)的和.#include<stdio.h〉intmain(){inta(4)={4*0};inti;for(i=0;i〈4;i++)scanf(”%d",&a[i]);for(i=0;i〈4;i++)a[0]=a[0]+a[i];printf(”%d",a[0]);return0;}錯(cuò)錯(cuò)誤在行
應(yīng)改為:調(diào)試正確后的運(yùn)行結(jié)果輸入數(shù)據(jù)181836輸出結(jié)果:2.以下程序?qū)崿F(xiàn)的功能是求10個(gè)元素的和。行號(hào)#include〈stdio.h〉intmain(){ inta[11],i;for(i=1;i〈=10;i++)scanf(”%d",&a);for(i=1;i〈=10;i++);a[0]=a[0]+a[i];printf(”Sum=%d\n",a[0]);return0;}錯(cuò)錯(cuò)誤在行
應(yīng)改為:調(diào)試正確后的運(yùn)行結(jié)果輸入數(shù)據(jù):3891026367245951848輸出結(jié)果:3.調(diào)試下列程序,使之具有如下功能:輸入10個(gè)整數(shù),按每行3個(gè)數(shù)輸出這些整數(shù),最后輸出10個(gè)整數(shù)的平均值。寫(xiě)出調(diào)試過(guò)程.行號(hào)#include<stdio.h〉1 intmain()2 { inti,n,a[10],av;3 for(i=0;i〈n;i++)4 scanf(”%d",a[i]);5 for(i=0;i<n;i++)6 { printf(”%d",a[i]);7 if(i%3==0)8 printf("\n”); }9 for(i=0;i!=n;i++)10 av+=a[i];11 printf("av=%f\n",av);12return0;13}上面給出的程序是完全可以運(yùn)行的,但是運(yùn)行結(jié)果是完全錯(cuò)誤的.調(diào)試時(shí)請(qǐng)注意變量的初值問(wèn)題、輸出格式問(wèn)題等.請(qǐng)使用前面實(shí)驗(yàn)所掌握的調(diào)試工具,判斷程序中的錯(cuò)誤并改正.錯(cuò)錯(cuò)誤在行
應(yīng)改為:調(diào)試正確后的運(yùn)行結(jié)果輸入數(shù)據(jù)輸出結(jié)果:(四)編寫(xiě)程序P1001.有一個(gè)含有20個(gè)元素的整型數(shù)組,程序要完成以下功能:(1)調(diào)用C庫(kù)函數(shù)中的隨機(jī)函數(shù)給所有元素賦予0~49的隨機(jī)數(shù).(2)輸出數(shù)組元素的值,5個(gè)元素為一行。(3)按順序?qū)ο聵?biāo)為奇數(shù)的元素求和。程序2。將一個(gè)長(zhǎng)度為N的一維數(shù)組中的元素按顛倒的順序重新存放,注意在操作時(shí),只能借助一個(gè)臨時(shí)存儲(chǔ)單元而不得另外開(kāi)辟數(shù)組。程序3.試編制程序使數(shù)組中的數(shù)按照從小到大的次序排列。(起泡法)程序1、編寫(xiě)程序,測(cè)試下列數(shù)組的定義方式是否正確(1)
main(){intn;scanf(“%d”,&n);inta[n];……}(2)
main(){constintn=10;inta[n];
}(3)
#include<stdio.h〉#defineM10main(){inta[M];
}(4)
main(){inta[2+2*4];
}(5)
#include<stdio。h>#defineM2#defineN8main(){inta[M+N];
}通過(guò)這一實(shí)驗(yàn),可以說(shuō)明什么問(wèn)題?2、運(yùn)行下面的C程序,根據(jù)運(yùn)行結(jié)果,可以說(shuō)明什么?main(){intnum[5]={1,2,3,4,5};intii;for(i=0;i<=5;i++)printf(“%d”,num[i]);}3、操作符&用以求一個(gè)變量的地址,這在函數(shù)scanf中已經(jīng)使用過(guò)了?,F(xiàn)在要你設(shè)計(jì)一個(gè)程序,返回一個(gè)3*5的二維數(shù)組各元素的地址,并由此說(shuō)明二維數(shù)組中各元素是按什么順序存諸的.4、為一個(gè)起泡排序程序設(shè)計(jì)測(cè)試用例,并測(cè)試之。5、1983年,在ACM圖林獎(jiǎng)?lì)C獎(jiǎng)大會(huì)上,杰出的計(jì)算機(jī)科學(xué)家,UNIX的鼻祖,C語(yǔ)言的創(chuàng)始人之一,圖林大獎(jiǎng)得主,KenThompson上臺(tái)的第一句話是:“我是一個(gè)程序員,在我的1040表上,我自豪地寫(xiě)上了我的職業(yè)。作為一個(gè)程序員,我的工作就是寫(xiě)程序,今天我將向大家提供一個(gè)我曾經(jīng)寫(xiě)過(guò)的最精練的程序。"這個(gè)程序如下:chars[]={‘\t’,‘0’,‘\n’,‘}’,‘;’,‘\n’,‘\n’,‘/’,‘*’,‘\n',/*(213linesdeleted)*/0};/**Thestringisa*representationofthebody*ofthisprogramfrom‘0’*totheend*/main(){inti;printf(“char\ts[]={\”};for(i=0;s[i];i++)printf(“\t%d,\n”,s[i]);printf(“%s”,s);}請(qǐng)上機(jī)運(yùn)行這個(gè)程序,指出它的功能和運(yùn)行結(jié)果。三、分析討論通過(guò)實(shí)驗(yàn),分析定義與引用數(shù)組的區(qū)別。
實(shí)驗(yàn)2.3數(shù)組二:二維數(shù)組一、實(shí)驗(yàn)?zāi)康?.掌握二維數(shù)組的定義。2.掌握二維數(shù)組的引用3。掌握二維數(shù)組的初始化。4.熟練對(duì)二維數(shù)組元素進(jìn)行輸入輸出。二、實(shí)驗(yàn)學(xué)時(shí)數(shù)2學(xué)時(shí)三、實(shí)驗(yàn)步驟(一)閱讀程序2.#include〈stdio.h〉int main(){intk;inta[3][3]={9,8,7,6,5,4,3,2,1};for(k=0;k<3;k++)printf("%d\n",a[k][2—k]);return0;}分析結(jié)果
運(yùn)行結(jié)果
3.
#include<stdio.h>intmain(){inti,j,x=0,y=0,m;inta[3][3]={1,-2,0,4,-5,6,2,4};m=a[0][0];for(i=0;i<3;i++) for(j=0;j〈3;j++) if(a[i][j]>m) {m=a[i][j]; x=i; y=j;} printf(“(%d,%d)=%d\n”,x,y,m);return0;}分析結(jié)果
運(yùn)行結(jié)果
(二)編寫(xiě)程序P1091。將2*3的矩陣(二維數(shù)組)a,轉(zhuǎn)置后存入3*2的矩陣b中。2。求3*4矩陣所有外圍元素之和。3。定義一個(gè)矩陣,從鍵盤(pán)輸入數(shù)據(jù)為它賦值,然后找出矩陣中的最大最小元素及其所在的行號(hào)和列號(hào)。2.求5×5矩陣下兩條對(duì)角線上的各元素之和。
實(shí)驗(yàn)2。4數(shù)組三:字符數(shù)組一、實(shí)驗(yàn)?zāi)康?.掌握字符數(shù)組的定義.2.掌握字符數(shù)組的引用.3。掌握字符數(shù)組的初始化。4.熟練對(duì)字符數(shù)組元素進(jìn)行輸入輸出.5.掌握常用的字符處理函數(shù)。二、實(shí)驗(yàn)學(xué)時(shí)數(shù)2學(xué)時(shí)三、實(shí)驗(yàn)步驟(一)閱讀程序1.#include〈stdio。h>#include〈string。h〉intmain(){chars1[50]=“Iam”;chars2[]=”student!”;printf(“%d,\n”,strlen(s2));strcat(s1,s2);printf(“%s\n”,s1);return0;}分析結(jié)果
運(yùn)行結(jié)果
2.#include〈stdio.h〉intmain(){charb[7]={"67da12"};inti=0,s=0;for(i=0;b[i]〉='0'&&b[i]〈=’9’;i+=2)s=10*s+b[i]-’0';printf(”%d\n”,s);return0;}分析結(jié)果
運(yùn)行結(jié)果
3.
#include<stdio。h>intmain(){inti=0;chara[]=“cbm”;charb[]=“cqid",c[10];while(a[i]!=‘\0’&&b[i]!=‘\0'){if(a[i]>=b[i])c[i]=a[i]—32; elsec[i]=b[i]—32; ++i;}c[i]=‘\0’;puts(c);return0;}分析結(jié)果
運(yùn)行結(jié)果
(二)完成程序要求:依據(jù)題目要求,分析已給出的語(yǔ)句,填寫(xiě)空白?但是不要增行或刪行,改動(dòng)程序的結(jié)構(gòu)?1。下面程序的功能是將字符串a(chǎn)中所有的字符d刪除?#include〈stdio。h〉intmain(){ chars[80]; inti,j;gets(s); for(i=j=0;s[i]!='\0’;i++) if(s[i]!='d’);s[j]=’\0’; puts(s);return0;}2.從鍵盤(pán)輸入:apple〈CR〉computer<CR〉music<CR>game〈CR>,想找出最大字符串?#include<stdio.h〉#include〈string.h>intmain(){charstr[10],temp[10]={"”};inti;for(i=0;i〈4;i++){gets(str);if()strcpy(temp,str);} puts(temp);return0;}(三)調(diào)試程序要求:調(diào)試運(yùn)行下列程序是否正確,若有錯(cuò),寫(xiě)出錯(cuò)在何處?填寫(xiě)正確的運(yùn)行結(jié)果?1.行號(hào)#include〈stdio。h〉intmain()1{ chara[];2 inti,len=0;3 a=“CLanguageProgram”
;4 for(i=0;a[i]!=‘\0’;i++)5 len++;6 printf(“%s,%d\n”,a,len);return0;}錯(cuò)錯(cuò)誤在行
應(yīng)改為:調(diào)試正確后的運(yùn)行結(jié)果輸出結(jié)果:2.下面程序的功能是:將字符數(shù)組a[6]={‘a(chǎn)’,‘b’,‘c',‘d’,‘e',‘f’}變?yōu)閍[6]={‘f’,‘a(chǎn)’,‘b’,‘c’,‘d’,‘e’}?行號(hào) #include<stdio。h>intmain()1
{inti;chart;2
chara[6]={‘a(chǎn)',‘b',‘c’,‘d',‘e’,‘f'};3
t=a[5];4
for(i=5;a[i]!='\0’;i—-)5
a[i]=a[i–1];6
a[0]=t;7
for(i=0;i〈=5;i++)
8
printf(“%c”,a[i]);printf(“\n”);return0;}錯(cuò)錯(cuò)誤在行
應(yīng)改為:調(diào)試正確后的運(yùn)行結(jié)果輸出結(jié)果:3.調(diào)試下列程序,使之具有如下功能:任意輸入兩個(gè)字符串(如:”abc123”和”china"),并存放在a,b兩個(gè)數(shù)組中。然后把較短的字符串放在a數(shù)組,較長(zhǎng)的字符串放在b數(shù)組。并輸出.行號(hào)#include<stdio。h>#include〈string。h〉intmain()1{ chara[10],b[10];2 intc,d,k;3 scanf(”%s",&a);4 scanf(”%s",&b);5 printf("a=%s,b=%s\n”,a,b);6 c=strlen(a);7 d=strlen(b);8 if(c>d)9 for(k=0;k〈d;k++)10 {ch=a[k];a[k]=b[k];b[k]=ch;}11 printf("a=%s,b=%s\n”,a,b);12return0;13}程序中的strlen是庫(kù)函數(shù),功能是求字符串的長(zhǎng)度,它的原型保存在頭文件"string。h”中。調(diào)試時(shí)注意庫(kù)函數(shù)的調(diào)用方法,不同的字符串輸入方法,通過(guò)錯(cuò)誤提示發(fā)現(xiàn)程序中的錯(cuò)誤。錯(cuò)錯(cuò)誤在行
應(yīng)改為:調(diào)試正確后的運(yùn)行結(jié)果輸入數(shù)據(jù):abc123china輸出結(jié)果:(四)編寫(xiě)程序P1201。輸入一行文字,最多有80個(gè)字符.要求分別統(tǒng)計(jì)其中英文大寫(xiě)字母、小寫(xiě)字母、數(shù)字、空格以及其他字符的個(gè)數(shù)。2.編寫(xiě)一個(gè)程序,將字符串str1復(fù)制到str2中(不能用strcpy函數(shù)),并顯示出來(lái)。3.輸入三個(gè)字符串,要求找到其中的最大者。編寫(xiě)一個(gè)將一個(gè)字符串逆轉(zhuǎn)的程序,如將a[]=“apple“改為a[]=“elppa“。實(shí)驗(yàn)3:函數(shù)與自定義數(shù)據(jù)類(lèi)型(共8學(xué)時(shí))實(shí)驗(yàn)3。1函數(shù)一:函數(shù)的定義、調(diào)用和聲明一?實(shí)驗(yàn)?zāi)康?。掌握函數(shù)的聲明形式及應(yīng)用.2。掌握函數(shù)的定義形式及應(yīng)用.3.掌握函數(shù)的調(diào)用形式及應(yīng)用;二?實(shí)驗(yàn)學(xué)時(shí)數(shù)2學(xué)時(shí)三?實(shí)驗(yàn)步驟閱讀程序1.#include〈stdio。h>voidfun(intx,inty,intz){z=x*x+y*y;}intmain(){inta=38;fun(7,3,a);printf("%d\n”,a);return0;}分析結(jié)果
運(yùn)行結(jié)果
2.#include<stdio.h〉voidfun(intx,inty);intmain(){intx=5,y=3;fun(x,y);printf(”%d,%d\n",x,y);return0;}voidfun(intx,inty){x=x+y;y=x—y;x=x—y;printf("%d,%d\n",x,y);}分析結(jié)果
運(yùn)行結(jié)果
3.#include〈stdio。h>intf(inta);intmain(){ ints[8]={1,2,3,4,5,6},i,d=0; for(i=0;f(s[i]);i++)d+=s[i]; printf(”%d\n",d);return0;}intf(inta){returna%2;}分析結(jié)果
運(yùn)行結(jié)果
4.#include〈stdio。h>longf(intg){ switch(g) { case0:return0; case1: case2:return1;} return(f(g-1)+f(g—2));}intmain(){longk;k=f(7);printf(”k=%d\n”,k);return0;}分析結(jié)果
運(yùn)行結(jié)果
5.#include<stdio。h>intf(intb[][4]){inti,j,s=0; for(j=0;j〈4;j++) { i=j; if(i〉2)i=3—j; s+=b[i][j]; }returns;}intmain(){inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};printf("%d\n",f(a));return0;}分析結(jié)果
運(yùn)行結(jié)果
(二)完成程序要求:依據(jù)題目要求,分析已給出的語(yǔ)句,填寫(xiě)空白?但是不要增行或刪行,改動(dòng)程序的結(jié)構(gòu)?1.請(qǐng)?jiān)谝韵鲁绦虻谝恍械南聞澗€處填寫(xiě)適當(dāng)內(nèi)容,使程序能正確運(yùn)行?#include<stdio.h〉___________________________intmain(){doublex,y;scanf("%lf%lf”,&x,&y);printf(”%。8lf\n”,max(x,y));return0;}doublemax(doublea,doubleb){return(a〉b?a:b);}2.以下函數(shù)的功能是:求x的y次方,請(qǐng)?zhí)羁?,并配?xiě)出主調(diào)函數(shù)。doublefun(doublex,inty){inti;doublez;for(i=1,z=x;i<y;i++)z=z*______________;returnz;}intmain(){
return0;}3.mystrlen函數(shù)的功能是計(jì)算字符串的長(zhǎng)度,并作為函數(shù)值返回。請(qǐng)?zhí)羁?并配寫(xiě)主調(diào)函數(shù)。intmystrlen(charstr[]){inti;for(i=0;____________!=‘\0’;i++);return(_______);}intmain(){return0;}
(三)調(diào)試程序要求:調(diào)試運(yùn)行下列程序是否正確,若有錯(cuò),寫(xiě)出錯(cuò)在何處?填寫(xiě)正確的運(yùn)行結(jié)果?1.行號(hào)#include<stdio.h〉1voidfunc(floata,floatb)2intmain()3{ floatx,y;4 floatz
;5 scanf(“%f,%f",&x,&y);6 z=func(x,y);7 printf(“z=%f\n",z);return0;8}9voidfunc(floata,floatb)10{ floatc;11 c=a*a+b*b;12 returnc;13}正確運(yùn)行結(jié)果:錯(cuò)誤錯(cuò)誤所在行:應(yīng)改為:2.函數(shù)sstrcmp()的功能是對(duì)兩個(gè)字符串進(jìn)行比較。當(dāng)s數(shù)組中字符串和t數(shù)組中字符串相等時(shí),返回值為0;當(dāng)s數(shù)組中字符串大于t數(shù)組中字符串時(shí),返回值大于0;當(dāng)s數(shù)組中字符串小于t數(shù)組中字符串時(shí),返回值小于0(功能等同于庫(kù)函數(shù)strcmp())。行號(hào)1intsstrcmp(chars[],chart[])2{inti=0,j=0;3 while(s[i]&&t[j]&&s[i]==t[j]);4returns[i]-t[j];5}6intmain()7
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 精釀啤酒廠合作協(xié)議書(shū)范文
- 1.3數(shù)據(jù)采集與編碼(二)浙教版(2019)高中信息技術(shù)必修一課后習(xí)題(解析版)
- 上海與三明市合作協(xié)議書(shū)范文
- 初中幾何輔助線大全(很詳細(xì)哦)
- 2021-2022學(xué)年-有答案-陜西省某校八年級(jí)(上)期中政治試卷
- 語(yǔ)言翻山越嶺:孩子的表達(dá)之路-如何養(yǎng)成孩子出色的表達(dá)能力
- 迎新生的廣播稿(24篇)
- 防火防災(zāi)的倡議書(shū)范文(30篇)
- 中學(xué)語(yǔ)文教學(xué)工作總結(jié)范文(35篇)
- 幼兒園美術(shù)活動(dòng)總結(jié)
- (高清版)TDT 1037-2013 土地整治重大項(xiàng)目可行性研究報(bào)告編制規(guī)程
- 山東省青島市市南區(qū)2023-2024學(xué)年九年級(jí)上學(xué)期期中數(shù)學(xué)試題
- 愛(ài)國(guó)衛(wèi)生工作培訓(xùn)課件
- 與某地政府醫(yī)療領(lǐng)域合作框架協(xié)議
- 外賣(mài)騎手勞動(dòng)權(quán)益保障機(jī)制
- 卵巢癌腹腔化療方案
- 雙層罐改造施工方案
- 腫瘤放射規(guī)培出科小結(jié)
- 光通信芯片十大品牌簡(jiǎn)介
- 小學(xué)勞動(dòng)教育一年級(jí)第一單元2《洗漱》教學(xué)設(shè)計(jì)
- 吊籃施工驗(yàn)收標(biāo)準(zhǔn)及規(guī)范
評(píng)論
0/150
提交評(píng)論