




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、科技大學(xué)信息科學(xué)技術(shù)學(xué)院C語言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)書目錄實(shí)驗(yàn)1 C語言入門與選擇結(jié)構(gòu)1實(shí)驗(yàn)1.1 Visual C+6.0開發(fā)環(huán)境1實(shí)驗(yàn)1.2 C程序快速入門8實(shí)驗(yàn)1.3算術(shù)運(yùn)算與賦值運(yùn)算12實(shí)驗(yàn)1.4邏輯運(yùn)算與if語句18實(shí)驗(yàn)1.5 switch選擇結(jié)構(gòu)24實(shí)驗(yàn)2循環(huán)結(jié)構(gòu)與數(shù)組(共8學(xué)時(shí))28實(shí)驗(yàn)2.1 循環(huán)結(jié)構(gòu)(2學(xué)時(shí))28循環(huán)結(jié)構(gòu)程序設(shè)計(jì)補(bǔ)充33實(shí)驗(yàn)2.2數(shù)組一:一維數(shù)組37實(shí)驗(yàn)2.3數(shù)組二:二維數(shù)組44實(shí)驗(yàn)2.4數(shù)組三:字符數(shù)組46實(shí)驗(yàn)3:函數(shù)與自定義數(shù)據(jù)類型50實(shí)驗(yàn)3.1函數(shù)一:函數(shù)的定義、調(diào)用和聲明50實(shí)驗(yàn)3.2函數(shù)二:函數(shù)的參數(shù)傳遞256實(shí)驗(yàn)3.3函數(shù)三:函數(shù)的嵌套和遞歸258實(shí)驗(yàn)3
2、.4 自定義數(shù)據(jù)類型(2學(xué)時(shí))60實(shí)驗(yàn)4:指針(共6學(xué)時(shí))62實(shí)驗(yàn)4.1指針一:指針的定義與運(yùn)算62實(shí)驗(yàn)4.2指針二:指向數(shù)組的指針68實(shí)驗(yàn)4.3指針三:用指針操作字符串27269 / 71實(shí)驗(yàn)1 C語言入門與選擇結(jié)構(gòu)實(shí)驗(yàn)1.1 Visual C+6.0開發(fā)環(huán)境一、實(shí)驗(yàn)?zāi)康?. 熟悉C語言的系統(tǒng)環(huán)境,掌握在集成環(huán)境中編輯、編譯、連接和運(yùn)行C語言程序的方法。2. 掌握C語言源程序的結(jié)構(gòu)特點(diǎn)與書寫規(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:Microsoft Visual
3、 StudioCommonMSDev98BinMSDEV.EXE",運(yùn)行VC+6.0。(2)認(rèn)識(shí)VC+6.0菜單欄標(biāo)準(zhǔn)按鈕執(zhí)行執(zhí)行組建工作空間編譯輸出標(biāo)題欄的左側(cè)顯示當(dāng)前的文件名,右側(cè)有最小化,最大化和關(guān)閉三個(gè)按鈕。菜單欄包含了開發(fā)環(huán)境中幾乎所有的命令,其中一些常用的命令還被排列在工具欄中。工具欄上的按鈕提出和一些菜單命令相對應(yīng),提供了經(jīng)常使用的命令的一種快捷方式。項(xiàng)目工作區(qū)窗口包含有Class View和File View兩個(gè)頁面。(3)建立C語言源文件,單擊文件-新建,單擊文件選項(xiàng)卡,新建一個(gè)C+ Source File,選擇存儲(chǔ)位置(新建建立的文件夾D:test),輸入文件名“
4、myhello.c”,進(jìn)入D:test,可以看到新建的文件myhello.c。(4)輸入C語言源程序,在打開的程序編輯窗口輸入C語言源程序。輸入C語言源程序(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è)簡單的C程序創(chuàng)建成功。執(zhí)行工具結(jié)果輸出窗體(8
5、)關(guān)閉工作空間程序運(yùn)行結(jié)束后,如果想輸入一個(gè)新程序,我們需要將當(dāng)前的程序關(guān)閉,選擇菜單欄中的“文件”“關(guān)閉工作空間”即可。(9)常用功能鍵與其意義為了使程序員能夠方便快捷地完成程序開發(fā),開發(fā)環(huán)境提供了大量快捷方式來簡化一些常用操作的步驟。鍵盤操作直接、簡單,而且非常方便,因而程序員非常喜歡采用鍵盤命令來控制操作。下面是一些最常用的功能鍵,希望在實(shí)驗(yàn)中逐步掌握。 操作類型功能鍵對應(yīng)菜單含義文件操作Ctrl+NFile|New創(chuàng)建新的文件、項(xiàng)目等 Ctrl+OFile|Open打開項(xiàng)目、文件等 Ctrl+SFile|Save保存當(dāng)前文件編輯操作Ctrl+XEdit|Cut剪切&
6、#160;Ctrl+CEdit|Copy復(fù)制 Ctrl+VEdit|Paste粘貼 Ctrl+ZEdit|Undo撤消上一個(gè)操作 Ctrl+YEdit|Redo重復(fù)上一個(gè)操作 Ctrl+AEdit|Select All 全選 DelEdit|Del刪除光標(biāo)后面的一個(gè)字符建立程序操作Ctrl+F7Build| Compiler current file 編譯當(dāng)前源文件 Ctrl+F5Build|Run exe 運(yùn)行當(dāng)前項(xiàng)目 F7Build|Build exe建立可執(zhí)行程序 F5Build|Start Debuggi
7、ng啟動(dòng)調(diào)試程序調(diào)試F5Debug|Go繼續(xù)運(yùn)行 F11Debug|Step into 進(jìn)入函數(shù)體部 shift+F11Debug|Step out從函數(shù)體部運(yùn)行出來 F10Debug|Step over執(zhí)行一行語句 F9 設(shè)置/清除斷點(diǎn) Ctrl+F10Debug|Run to cursor運(yùn)行到光標(biāo)所在位置 shift+F9Debug|QuickWatch快速查看變量或表達(dá)式的值 Shift + F5Debug|Stop debugging停止調(diào)試要求:請用最簡單的語言描述如何新建一個(gè)C語言的源文件,如何編輯程
8、序,如何編譯程序,如何連接程序,如何運(yùn)行程序,程序結(jié)果然后顯示?(二)閱讀程序要求:編輯下面源程序,并且讀懂與分析運(yùn)行程序,上機(jī)運(yùn)行程序,并與分析結(jié)果相對比。1. 輸入并運(yùn)行以下程序,觀察運(yùn)行結(jié)果。(sy1.1.1.c)# include<stdio.h>int main()printf("*n"); printf(" Hello world!n"); printf("*n"); return 0;分析結(jié)果 運(yùn)行結(jié)果 思考:如何采用一個(gè)輸出(printf)函數(shù)調(diào)用實(shí)現(xiàn)此輸出結(jié)果。2輸入并運(yùn)行以下程序,觀
9、察運(yùn)行結(jié)果。(sy1.1.2.c)# include<stdio.h>int main() int a,b,sum,minus; a=456;b=123; sum=a+b; minus=a-b;printf("a+b=%dna-b=%dn",sum,minus);return 0; 分析結(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ù)題目要求,分析已給出的語句,填寫空白。但是不要增行或刪行,改動(dòng)程序的結(jié)構(gòu)。1求(
10、a-b)×c的值。(設(shè)a=33,b=22,c=11)(sy1.1.3.c)# include<stdio.h>int main( )int a,b,c;a=33; c=11;printf("%dn",(a-b)*c);return 0;2求圓的面積。(sy1.1.4.c)#include<stdio.h>#define PI 3.14int main( ) float r,area;printf("n Enter r value:");scanf("%f",&r);area=PI*r*r;pr
11、intf(" n area=%fn",); return 0;(四)調(diào)試程序要求:調(diào)試運(yùn)行下列程序是否正確,若有錯(cuò),寫出錯(cuò)在何處?填寫正確的運(yùn)行結(jié)果。(sy1.1.5.c)行號 #include <stdio.h>1. int main( )2. int x;3. x=5,y=8;4. printf("n%d,%d,%dn",x,(x+5)*2,y);5. return 0;6. 錯(cuò)錯(cuò)誤在行 應(yīng)改為:調(diào)試正確后的運(yùn)行結(jié)果輸出結(jié)果:(五)編寫程序1.請用C程序告訴大家你來自哪里?有什么愛好?(sy1.1.6.c)2.輸出以下圖案: (
12、sy1.1.7.c)*(六)分析與討論.記下在調(diào)試過程中所發(fā)現(xiàn)的錯(cuò)誤、系統(tǒng)給出的出錯(cuò)信息和對策。分析討論對策成功或失敗的原因。.總結(jié)程序的結(jié)構(gòu)和書寫規(guī)則。實(shí)驗(yàn)1.2 C程序快速入門一、實(shí)驗(yàn)?zāi)康?.掌握標(biāo)識(shí)符、變量與常量的定義;2.掌握C語言數(shù)據(jù)類型的種類和作用;3.熟悉如何定義一個(gè)整型、字符型、實(shí)型變量,以與對它們賦值的方法,了解以上類型數(shù)據(jù)輸出時(shí)所用的格式轉(zhuǎn)換符;4.掌握不同的類型數(shù)據(jù)之間賦值的規(guī)律;5.掌握輸出、輸入函數(shù)的使用與格式控制;6.進(jìn)一步熟悉C程序語句和程序的結(jié)構(gòu)特點(diǎn),學(xué)習(xí)簡單程序的編寫方法。二、實(shí)驗(yàn)學(xué)時(shí)數(shù)2學(xué)時(shí)三、實(shí)驗(yàn)步驟(一)閱讀程序1. 輸入并運(yùn)行以下程序,觀察運(yùn)行結(jié)果。#
13、include<stdio.h>int main() char c1,c2; c1=97;c2=98; printf("%c,%cn",c1,c2); return 0;(1)在第五行后面加入以下printf語句,并運(yùn)行。printf("%d,%dn",c1,c2);分析結(jié)果 字符型97,98對應(yīng)a,b運(yùn)行結(jié)果 ab (2)在(1)的基礎(chǔ)上,將第三行改為以下語句,并運(yùn)行。 int c1,c2;分析結(jié)果 運(yùn)行結(jié)果 仍為a,b若改為%d,則為97,98 (3)在(1)的基礎(chǔ)上,將第四行改為以下語句,并運(yùn)行。
14、c1=321;c2=400;分析結(jié)果 運(yùn)行結(jié)果 A,?2. 分析并運(yùn)行此程序,當(dāng)輸入的數(shù)據(jù)為10時(shí),下面程序的運(yùn)行結(jié)果。#include <stdio.h>int main() float x,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)=%dn",(x-=x*10,x/=10); re
15、turn 0;分析結(jié)果 運(yùn)行結(jié)果 2.4*x-1/2=23.500000x%2/5-x=-10.000000(x-=x*10,x/=10)=0(二)完成程序要求:依據(jù)題目要求,分析已給出的語句,填寫空白。但是不要增行或刪行,改動(dòng)程序的結(jié)構(gòu)。1求任意輸入字符的ASC碼。#include <stdio.h>int main( )char a; int b;/變量的定義printf(“請輸入一個(gè)字符:”);scanf(“%c”,&a);b=(int)a;printf(“nn%c的ASC碼為%dn”,a,b); return 0;2、輸出任意一個(gè)十進(jìn)制數(shù)對應(yīng)的八
16、進(jìn)制,十六進(jìn)制數(shù)。#include<stdio.h>int main( )int a;scanf(“%d”,&a);printf(“n%d(10) ,%o(8), %x(16)n”,a,a,a); return 0;(三)調(diào)試程序要求:調(diào)試運(yùn)行下列程序是否正確,若有錯(cuò),寫出錯(cuò)在何處?填寫正確的運(yùn)行結(jié)果。1.行號 #include <stdio.h>1 int main( )2 int u=v=89;3 printf(“u=%d,v=%dn”,u,v); 4 return 0;5 錯(cuò)錯(cuò)誤在 1 行 應(yīng)改為:調(diào)試正確后的運(yùn)行結(jié)果輸出結(jié)果:2.下
17、面的程序試圖計(jì)算由鍵盤輸入的任意兩個(gè)整數(shù)的平均值:行號#include <stdio.h>1int main()23int x,y,a;4scanf("%x,%y",&x,&y); 5a=(x+y)/2;6printf("The average is %d:n", a); 7 return 0;8 錯(cuò)錯(cuò)誤在行 應(yīng)改為:調(diào)試正確后的運(yùn)行結(jié)果輸入數(shù)據(jù)2,61,4-1,-3-2,42,0輸出結(jié)果:(四)編寫程序1. 編寫一個(gè)程序,從鍵盤輸入某電視機(jī)的價(jià)格,再輸出該價(jià)格打7折后的價(jià)格。分析:必須設(shè)計(jì)一個(gè)實(shí)型變量接受從鍵盤輸入
18、的值,輸入、輸出應(yīng)該有提示。#include<stdio.h>int main()double a,b;printf("電視機(jī)的價(jià)格:");scanf("%lf",&a);b=0.7*a;printf("打折后的價(jià)格:%lf",b);return 0;2. 編寫一個(gè)程序, 求一元一次方程ax+b=0的根。分析:a、b的值從鍵盤輸入,輸入時(shí)a的值不能為0(無解),方程的根即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.熟練掌握自增
19、1和自減1運(yùn)算符。4.熟練掌握順序結(jié)構(gòu)的程序設(shè)計(jì),能夠編寫簡單的應(yīng)用程序。二、實(shí)驗(yàn)學(xué)時(shí)數(shù)2學(xué)時(shí)三、實(shí)驗(yàn)步驟(一)分析程序1.分析以下程序運(yùn)行的結(jié)果#include <stdio.h>int main() int i,j,m,n ; i=8;j=10; m=+i; n=j+; printf("%d,%d,%d,%dn",i,j,m,n); return 0; 分析結(jié)果 運(yùn)行結(jié)果 (2)將第6、7行改為:m=i+; n=+j;分析結(jié)果 運(yùn)行結(jié)果 (3)程序改為:#include <stdio.h>int main(
20、) int i , j , m=0 , n=0 ; i=8; j=10; m+=i+; n-=-j; printf(“%d,%d,%d,%dn”,i,j,m,n); return 0;分析結(jié)果 運(yùn)行結(jié)果 1. 輸入并運(yùn)行以下程序,觀察運(yùn)行結(jié)果。#include<stdio.h>int main( ) int a=17; float u=1234.567;printf("%d,%7d,%-7dn",a,a,a);printf("%f,%7.2fn",u,u); return 0;分析結(jié)果 運(yùn)行結(jié)果 2.
21、輸入并運(yùn)行以下程序,觀察運(yùn)行結(jié)果。#include<stdio.h>int main( )int a,x,y;x=(a=2,6*2);y=a=2.6 *a;printf(“x=%d,y=%dn”,x,y);return 0;分析結(jié)果 運(yùn)行結(jié)果 3.閱讀以下程序,若輸入的數(shù)據(jù)形式為25 13 10,輸出結(jié)果為:#include<stdio.h>int main( ) int x,y,z; scanf("%d%d%d", &x,&y,&z);printf("x+y+z=%dn", x+y+z
22、); return 0;分析結(jié)果 運(yùn)行結(jié)果 (二)完成程序要求:按照給定題目要求,參照出現(xiàn)的語句,填寫程序空白處。1. 鍵盤輸入任意一個(gè)小寫字母,將其轉(zhuǎn)換成大寫字母,然后輸出。#include<stdio.h>int main( )char c1,c2;c1=getchar( );c2=;putchar('n');putchar(''' );putchar(c2); putchar(''' ); return 0;2. 求的值。(設(shè)a=25,b=5)#include<stdio.h>in
23、t main( )float a=25,b=5;float c;c=;printf("c=%fn ",c); return 0;(三)調(diào)試程序要求:分析下列程序是否正確,如有錯(cuò)誤,指出錯(cuò)誤所在,并改正;若正確,寫出運(yùn)行結(jié)果。 1. 行號#include<stdio.h>1 int main( )2 int i,k;3 i=8;4 k=5*I*I;5 printf("%dn",k); 6 return 0;7 錯(cuò)錯(cuò)誤在行 應(yīng)改為:調(diào)試正確后的運(yùn)行結(jié)果 2該程序輸入一個(gè)三位數(shù),然后進(jìn)行個(gè)位和百位的置換,如 234 ,
24、轉(zhuǎn)換成432行號#include<stdio.h>1 int main( )2int n,a,b,c,m;3scanf("%d",n);4a=n%10;5b=(n/10)%10;6c=(n/100)%10;7m=100*a+10*b+c;8printf("%d=>%dn ",n,m);9 return 0;10 錯(cuò)錯(cuò)誤在行 應(yīng)改為:調(diào)試正確后的運(yùn)行結(jié)果 (四)編寫程序1.編程求出某學(xué)生期末三門課程的總分與平均分。結(jié)果保留小數(shù)點(diǎn)后一位。2.編程從鍵盤輸入兩個(gè)整數(shù)分別給變量a和b,分別寫出不借助于其他變量和借助于其他變量
25、的條件下,將變量a和b的值實(shí)現(xiàn)交換。1.編寫一個(gè)程序,其功能為:從鍵盤上輸入一個(gè)浮點(diǎn)數(shù),然后分別輸出該數(shù)的整數(shù)部分和小數(shù)部分。分析:若輸入的浮點(diǎn)數(shù)存入fd變量,則可用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符,將輸入的該數(shù)的整數(shù)部分取出:zhs=(int)fd;2. 從鍵盤輸入三角形的三條邊a,b,c的值,計(jì)算三角形的面積,程序框架如下:#include “sdtio.h”#include “math.h”main()定義變量 從鍵盤輸入 a,b,c 三條邊的值 計(jì)算 s 的值 計(jì)算三角形面積 輸出結(jié)果1.編程序計(jì)算數(shù)學(xué)表達(dá)式:b2 -4ac,a,b,c的值從鍵盤輸入。2. 編程序計(jì)算298秒是幾分幾秒。提示:設(shè) i
26、nt x=298; 再定義兩個(gè)變量存放分(m)、秒(s)值; 則:m=x/60;s=x%60;3.從鍵盤輸入一個(gè)三位數(shù),求各位數(shù)字之和。例如,輸入的三位數(shù)為358,則輸出結(jié)果為3+5+8=16 。提示:題目的關(guān)鍵是要求出該數(shù)的個(gè)、十、百位上的數(shù)字,可利用C語言整數(shù)相除,結(jié)果仍為整數(shù)的特點(diǎn)。若設(shè)該數(shù)為data,它的個(gè)、十、百位為g、s、b,則b=data/100 ;s=(data-b*100)/10;g=data%10(三)編寫程序1.用賦值語句表達(dá):a 的值為2,b的值比a多2,c 的值比b的值多2,并輸出a,b,c的結(jié)果。請編出完整程序驗(yàn)證。2.假設(shè)變量a和b均為整型,以下語句可以不借助任何
27、變量把a(bǔ)、b中的值進(jìn)行交換。請先填空,再編出完整程序驗(yàn)證。a+=_;(a為a、b之和) b=a-_;a-=_; 實(shí)驗(yàn)1.4邏輯運(yùn)算與if語句一、實(shí)驗(yàn)?zāi)康?.掌握關(guān)系、條件、邏輯運(yùn)算符與關(guān)系、條件、邏輯表達(dá)式。2.掌握逗號運(yùn)算符和逗號表達(dá)式。3.熟練掌握三種單分支、雙分支和多分支if語句。4.掌握if語句的嵌套。二、實(shí)驗(yàn)學(xué)時(shí)數(shù)2學(xué)時(shí)三、實(shí)驗(yàn)步驟(一)閱讀程序1.分析程序運(yùn)行結(jié)果:#include <stdio.h>int main() int i , j , m=0 , n=0 ; i=8; j=10; m+=i+; n-=-j; printf(“%d,%d, n”,(i,j,m),
28、n); return 0;分析結(jié)果 運(yùn)行結(jié)果 2. 輸入并運(yùn)行以下程序,觀察運(yùn)行結(jié)果。#include<stdio.h>int main()int x=10,y=9,a,b,c;a=(-x=y+)?-x:+y;b=x+;c=y;printf("a=%d,b=%d,c=%dn",a,b,c);return 0;分析結(jié)果 運(yùn)行結(jié)果 3、若x=12,則以下程序運(yùn)行的結(jié)果是#include<stdio.h>int main()int x,y;scanf("%d",&x);y=x>12?
29、x+10:x-12;printf("y=%dn",y);return 0;分析結(jié)果 運(yùn)行結(jié)果 三、實(shí)驗(yàn)步驟(一)閱讀程序1. 輸入并運(yùn)行以下程序,觀察運(yùn)行結(jié)果。#include<stdio.h>int main() int a,b,c; a=10;b=60;c=30; if(a>b) a=b;b=c; c=a; printf("a=%d,b=%d,c=%dn" , a , b, c );return 0;分析結(jié)果 運(yùn)行結(jié)果 2. 輸入并運(yùn)行以下程序,觀察運(yùn)行結(jié)果。#include<stdio
30、.h>int main()int x=60,a=30,b=20;int v1=3,v2=8;if (a<b)if (b!=15) if (!v1)x=1;elseif (v2) x=10; x=-2;printf(“%dn”, x);return 0;分析結(jié)果 運(yùn)行結(jié)果 (二)完成程序要求:按照給定題目要求,參照出現(xiàn)的語句,填寫程序空白處。1. 輸入一個(gè)字符,如果它是一個(gè)大寫字母,則把它變成小寫字母;如果它是一個(gè)小寫字母,則把它變成大寫字母;其他字符不變,請?jiān)赺上填寫正確容。#include<stdio.h>int main() char ch ;
31、scanf("%c",&ch); if (_)ch=ch+32; else if (ch>='a' && ch<='z' ) _; printf("%cn" ,ch); return 0;2. 以下程序根據(jù)輸入的三角形的三邊判斷是否能組成三角形,若可以則輸出它的面積和三角形的類型,請?jiān)赺上填寫正確容。#include <stdio.h>#include <math.h>int main()float a, b , c ;float s , area ;scanf(
32、“%f ,%f ,%f” , &a, &b ,&c);if (_) s=(a+b+c)/2;area= sqrt(s*(s-a)*(s-b)*(s-c);printf(“三角形的面積為:%fn”,area);if (_)printf(“等邊三角形n”);else if (_)printf(“等腰三角形n”); else if(a*a+b*b=c*c)| (a*a+c*c=b*b)| (c*c+b*b=a*a)printf(“直角三角形n”);else printf(“一般三角形n”);else printf(“不能組成三角形n”);return 0; (三)調(diào)
33、試程序要求:分析下列程序是否正確,如有錯(cuò)誤,指出錯(cuò)誤所在,并改正;若正確,寫出運(yùn)行結(jié)果。 1. 以下程序?qū)崿F(xiàn)求分段函數(shù)。y= -1 x>9x*(x+2) 3<x<=92*x-1<x<=3x-1x<=-1#include <stdio.h>int main()1 int x ,y ;2 scanf(“%d”,&x);3 if (3<x<=9) y=x*(x+2);4 else if (-1<x<=3) y=2*x;5 else if (x<=-1)y=x-1;6 else y=-1;7 printf(
34、“%dn”, y);8 return 0;9 錯(cuò)錯(cuò)誤在行 應(yīng)改為:調(diào)試正確后的運(yùn)行結(jié)果輸入數(shù)據(jù):4 2 1 -3 10輸出結(jié)果:2. 有一函數(shù)關(guān)系如下: x-3 x<0 y= 0 x=0 x+3 x>0 以下程序表示上面的函數(shù)關(guān)系行號#include<stdio.h>int main()1 int x ,y ;2 scanf("%d",&x);3 y=x-3;4 if (x!=0)5 if (x>0) y=x+3;6 else y=x;7 printf("y=%dn" , y); 8
35、 return 0;9 錯(cuò)錯(cuò)誤在行 應(yīng)改為:調(diào)試正確后的運(yùn)行結(jié)果輸入數(shù)據(jù):5 0 -3輸出結(jié)果:(四)編寫程序1. 輸入某學(xué)生的成績(成績?yōu)?00分制,可以為89.5,如果輸入的成績不在0-100之間,請給出出錯(cuò)提示。),經(jīng)處理后給出學(xué)生的等級,等級分類如下: 90分以上(包括90): A 80至90分(包括80):B 70至80分(包括70):C 60至70分(包括60):D 60分以下: E2輸入一個(gè)三位的正整數(shù),判斷該數(shù)是否為水仙花數(shù)。(水仙花數(shù)的是指一個(gè)三位數(shù),其各位數(shù)字的立方各等于該數(shù)本身。例如:153是一個(gè)水仙花數(shù),因?yàn)?53=13+53+33) 1某郵局對郵寄包裹有如下
36、規(guī)定:若包裹的長寬高任一尺寸超過1米或重量超過30千克,不予郵寄;對可以郵寄的包裹每件收取手續(xù)費(fèi)0.5元,再加上根據(jù)下表按重量weight計(jì)算的郵資,請編寫程序計(jì)算某包裹的郵寄資費(fèi)。2輸入一個(gè)正整數(shù)n,再輸入n個(gè)學(xué)生的成績,計(jì)算平均分,并統(tǒng)計(jì)不與格成績的個(gè)數(shù)。實(shí)驗(yàn)1.5 switch選擇結(jié)構(gòu)一、實(shí)驗(yàn)?zāi)康?.熟練掌握switch語句。2.掌握省略break的case語句的執(zhí)行方式。3.比較if語句的嵌套與if、switch多路分支語句。二、實(shí)驗(yàn)學(xué)時(shí)數(shù)2學(xué)時(shí)三、實(shí)驗(yàn)步驟(一)閱讀程序1. 輸入并運(yùn)行以下程序,觀察運(yùn)行結(jié)果。#include<stdio.h>int main() int
37、i=1;switch(i) case 1:printf("%dt",i+);case 2:printf("%dt",i+);case 3:printf("%dt",i+);case 4:printf("%dt",i+);printf("ni=%dn",i);return 0;分析結(jié)果 運(yùn)行結(jié)果 (二)完成程序要求:按照給定題目要求,參照出現(xiàn)的語句,填寫程序空白處。1. 以下程序?qū)崿F(xiàn)的功能是: -1 x<0,請將以下程序補(bǔ)充完整y= 0 x=01 x>0#inclu
38、de<stdio.h>int main() int x,y;scanf(“%d”,&x);switch(x<0)case 1:;break;case 0:switch(x=0) case 1;y=0;break; case 0:y=1;printf(“y=%dn”,y); return 0;2用switch結(jié)構(gòu)編寫一個(gè)處理四則運(yùn)算的程序。#include<stdio.h>int main() float v1,v2;char op;printf(“please type your expression:n”);scanf(“%f%c%f”,&v1,
39、&op,&v2);switch()case +:printf(“%1.0f+%1.0f=%1.0fn”,v1,v2,v1+v2);break;case :printf(“%1.0f-%1.0f=%1.0fn”,v1,v2,v1-v2); break;case *:printf(“%1.0f*%1.0f=%1.0fn”,v1,v2,v1*v2); break;case /:if()printf(“除數(shù)為零n”);break;else printf(“%1.0f/%1.0f=%1.0fn”,v1,v2,v1/v2);break; default:printf(“運(yùn)算符錯(cuò)誤n”);
40、return 0;3輸入某年某月某日,判斷這一天是這一年的第幾天?程序分析:以3 月5 日為例,應(yīng)該先把前兩個(gè)月的加起來,然后再加上5 天即本年的第幾天,特殊情況,閏年且輸入月份大于3 時(shí)需考慮多加一天。#include <stdio.h>int main()int day,month,year,sum,leap;printf("nplease input year,month,dayn");scanf("%d,%d,%d",_);switch(month)/*先計(jì)算某月以前月份的總天數(shù)*/case 1:_;break;case 2:sum=
41、31;break;case 3:sum=59;break;case 4:sum=90;break;case 5:sum=120;break;case 6:sum=151;break;case 7:sum=181;break;case 8:sum=212;break;case 9:sum=243;break;case 10:sum=273;break;case 11:sum=304;break;case 12:sum=334;break;default:printf("data error");break;sum=sum+day; /*再加上某天的天數(shù)*/if(year%40
42、0=0|(_)/*判斷是不是閏年*/leap=1;elseleap=0;if(_)/*如果是閏年且月份大于2,總天數(shù)應(yīng)該加一天*/_;printf("It is the %dth day. n ",sum);return 0; (三)編寫程序1. 以下4種水果(1蘋果2梨3桔子4芒果)單價(jià)分別是2.0元/公斤,2.5元/公斤,3.0元/公斤,4.5元/公斤,請輸入水果編號、重量,計(jì)算應(yīng)付款。2從鍵盤輸入1-7,顯示輸出該日期對應(yīng)的英文日期(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,sunday)名稱。3.己
43、知某公司員工的保底薪水為500,某月所接工程的利潤p與利潤提成的關(guān)系如下:(計(jì)量單位:元)(選作)p<=1000 沒有提成1000<p<=2000 提成10%2000<p<=5000提成15%5000<p<=10000提成20%10000<p 提成25%1編寫程序?qū)崿F(xiàn)運(yùn)輸公司對用戶計(jì)算運(yùn)費(fèi)。路程()越遠(yuǎn),每公里運(yùn)費(fèi)越低。2考慮一個(gè)自動(dòng)售貨機(jī),提供如下選擇:1礦泉水2巧克力3爆米花4 果汁5 顯示購買商品的數(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.1 while循環(huán)和dowhile循環(huán)與二者比較2.1.2
44、 for循環(huán)2.1.3循環(huán)嵌套一、實(shí)驗(yàn)?zāi)康?. 掌握while ,do-while,for循環(huán)語句的使用與區(qū)別;2. 掌握循環(huán)條件、循環(huán)體、循環(huán)終止等循環(huán)要素;4. 理解循環(huán)執(zhí)行過程。5. 熟練使用循環(huán)語句編寫程序。二、實(shí)驗(yàn)學(xué)時(shí)數(shù)2學(xué)時(shí)三、實(shí)驗(yàn)步驟(一)閱讀程序1. #include <stdio.h>int main()int a=2,b=8;while(b-<0)b-=a ;a+ ;printf(“a=%d,b=%dn”,a,b); return 0; 分析結(jié)果 運(yùn)行結(jié)果 2. #include<stdio.h>int
45、 main() int x=2 ,y=6 , z=3;doy=y-1;while(z->0&&+x<5) ;printf(“x=%dty=%dtz=%dn”,x,y,z);return 0; 分析結(jié)果 運(yùn)行結(jié)果 3. #include<stdio.h>int main() int n=0;while(n<=2) n+;printf("%dn",n); return 0;分析結(jié)果 運(yùn)行結(jié)果 (二)完成程序要求:依據(jù)題目要求,分析已給出的語句,填寫空白。但是不要增行或刪行,改動(dòng)程序的
46、結(jié)構(gòu)。 1.以下程序的功能是計(jì)算正整數(shù)2345的各位數(shù)字平方和,請?jiān)赺上填寫正確容。 #include <stdio.h> int main()int n,sum= 0 ;n=2345; do sum = sum + _; _; while( n) ; printf("sum=%dn",sum);return 0; 2.以下程序的功能是計(jì)算S=2+4+8+16+128,請?jiān)赺上填寫正確容。 #inlcude <stdio.h>int main()int a, s,n ,count ;a=2 ,s=0 , n
47、=1 ,count=1;while(count<=7) _;s = s + n ;_; printf(“s = %dn”,s );return 0;(三)調(diào)試程序要求:調(diào)試運(yùn)行下列程序是否正確,若有錯(cuò),寫出錯(cuò)在何處?填寫正確的運(yùn)行結(jié)果。1. 以下程序輸出100(包括100)以的數(shù),每行輸出10個(gè)。行號#include <stdio.h>int main() 1 int k=100;2 while(k=0)3 printf( "%d,",k);4 k-;5 if (k%10=0)printf("n"); 67 return 0
48、; 8 錯(cuò)錯(cuò)誤在 5 行 應(yīng)改為: if (k%10>0)printf("n");2下面程序的功能是計(jì)算n!。行號#include<stdio.h>1 int main()2 int i,n,s=1;3 printf("Please enter n:");4 scanf("%d",&n);5 for(i=1;i<=n;i+)6 s=s*i;7 printf("%d! = %dn",n,s);8 return 0;9 錯(cuò)錯(cuò)誤在行 應(yīng)改為:調(diào)試正確后的運(yùn)行結(jié)果輸入數(shù)據(jù)
49、: 1 5 9 12 15輸出結(jié)果:3以下程序輸出1-100的數(shù)字行號#include <stdio.h>int main()1 int i =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 ;89return 0;10 錯(cuò)錯(cuò)誤在行 應(yīng)改為:(四)編寫程序1小明媽媽給他買了若干塊巧克力,小明第一天吃了一半,還不過癮,又多吃了一塊,第二天又將剩下的巧克力吃掉一半,又多吃一塊,以后每天都吃了前一
50、天剩下的一半零一塊。到第10天再想吃時(shí),只剩下一塊了。編程計(jì)算小明媽媽總共給小明買了多少塊巧克力? 2.一百萬富翁遇到一個(gè)陌生人,陌生人找他談一個(gè)換錢的計(jì)劃,該計(jì)劃如下:我每天給你十萬元,而你第一天只需給我一分錢,第二天我仍給你十萬元,你給我二分錢,第三天我仍給你十萬元,你給我四分錢,,你每天給我的錢是前一天的兩倍,直到滿一月(30天),百萬富翁很高興,欣然接受了這個(gè)契約。請編寫一個(gè)程序計(jì)算這一個(gè)月中陌生人給了百萬富翁多少錢?百萬富翁給陌生人多少錢?While實(shí)現(xiàn):1譯密碼。為使電文,往往按一定規(guī)律將其轉(zhuǎn)換成密碼,收報(bào)人再按約定的規(guī)律將其譯回原文。可以按以下的規(guī)律將電文變成密碼:將字
51、母A變成字母E,a變成e,即變成其后的第4個(gè)字母,W變成A,X變成B,Y變成C,Z變成D。字母按上述規(guī)律轉(zhuǎn)換,非字母字符不變。2計(jì)算120之間的奇數(shù)之和和偶數(shù)之和。dowhile循環(huán)實(shí)現(xiàn)1日本一位中學(xué)生發(fā)現(xiàn)一個(gè)奇妙的“定理”,請角谷教授證明,而教授無能為力,于是產(chǎn)生角谷猜想,猜想的容是:任給一個(gè)自然數(shù),若為偶數(shù)除以2,若為奇數(shù)則乘以3加1,得到一個(gè)新的自然數(shù)后按照上面的法則繼續(xù)演算,若干次后得到的結(jié)果必然為1,請編程驗(yàn)證。2統(tǒng)計(jì)一個(gè)整數(shù)的位數(shù)。從鍵盤輸入一個(gè)整數(shù),統(tǒng)計(jì)該數(shù)的位數(shù)。例如,輸入12345,輸出5;輸入-99,輸出2。For循環(huán)實(shí)現(xiàn)1馬克思手稿里有一道有趣的數(shù)學(xué)問題:有30個(gè)人,其中
52、有男人、女人和小孩,在一家飯館吃飯共花了50先令:每個(gè)男人花3先令,每個(gè)女人花2先令,每個(gè)小孩花1先令,問男人、女人和小孩各有幾人?2有一對兔子,從出生后第三個(gè)月起每個(gè)月都生一對小兔子,小兔子長到第三個(gè)月后每月又生一對小兔子,假如兔子都不死,問20個(gè)月每個(gè)月的兔子總數(shù)為多少?3輸入一批學(xué)生的成績,找出最高分。循環(huán)嵌套1計(jì)算1!+2!+3!+100!。要求使用嵌套循環(huán)。2. 三對情侶參加婚禮,三個(gè)新郎為A,B,C,三個(gè)新娘為X,Y,Z,有人不知道誰和誰結(jié)婚,于是詢問了六位新人中的三位,但聽到的回答是這樣的:A說他將和X結(jié)婚;X說他的未婚夫是C;C說他將和Z結(jié)婚,這人聽后知道他們在開玩笑,全是假話
53、,請編程找出誰將和誰結(jié)婚。循環(huán)結(jié)構(gòu)程序設(shè)計(jì)補(bǔ)充(一)閱讀程序 1.#include<stdio.h>int main( )int a=0,j;for(j=0;j<4;j+) switch( j )case 0: case 3:a+=2;break; case 1:case 2:a+=3;break;default:a+=5;break;printf("%dn",a);return 0;分析結(jié)果 運(yùn)行結(jié)果 2. #include <stdio.h>int main( ) int i;for(i=1;i<6;i+)if(i%2) printf("#");continue; printf("*");printf("n");return 0;分析結(jié)果 運(yùn)行結(jié)果 3.#incl
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 戰(zhàn)略思考能力的培養(yǎng)計(jì)劃
- 財(cái)務(wù)風(fēng)險(xiǎn)識(shí)別與評估的方法論
- 質(zhì)量文化的建設(shè)與傳播策略
- 跨國企業(yè)知識(shí)產(chǎn)權(quán)培訓(xùn)與教育體系構(gòu)建
- 金融科技公司財(cái)報(bào)特點(diǎn)與趨勢分析
- 超聲波在材料科學(xué)的研究應(yīng)用
- 江蘇專用2024高考物理二輪復(fù)習(xí)實(shí)驗(yàn)題增分練一
- 部編版四年級下冊道德與法治教案(全冊)
- 超聲科技術(shù)革新與患者溝通技巧培訓(xùn)
- 跨國公司在海外的專利權(quán)維護(hù)策略
- 2023風(fēng)力發(fā)電機(jī)組延壽評估技術(shù)規(guī)范
- 鞋業(yè)-品質(zhì)培訓(xùn)
- 小學(xué)思政課《愛國主義教育》
- 瓜豆原理【模型專題】(含答案解析)
- 單價(jià)、數(shù)量、總價(jià)-教學(xué)課件【A3演示文稿設(shè)計(jì)與制作】
- 中小學(xué)生安全教育手冊全面版
- 變電站安裝工程安全風(fēng)險(xiǎn)分級管控清單
- DDI-能力解構(gòu)詞典
- 燃?xì)夤艿拦こ瘫O(jiān)理實(shí)施細(xì)則
- 安全經(jīng)驗(yàn)分享之行車安全經(jīng)驗(yàn)分享
- 忻州市忻府區(qū)康益種植園利用粉煤灰開發(fā)造地項(xiàng)目?環(huán)評報(bào)告
評論
0/150
提交評論