版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第PAGEII頁ADDINCNKISM.UserStyle青島科技大學信息科學技術(shù)學院C語言程序設(shè)計實驗指導(dǎo)書
目錄實驗1C語言入門及選擇結(jié)構(gòu) 1實驗1.1VisualC++6.0開發(fā)環(huán)境 1實驗1.2C程序快速入門 8實驗1.3算術(shù)運算與賦值運算 12實驗1.4邏輯運算及if語句 18實驗1.5switch選擇結(jié)構(gòu) 24實驗2循環(huán)結(jié)構(gòu)及數(shù)組(共8學時) 28實驗2.1循環(huán)結(jié)構(gòu)(2學時) 28循環(huán)結(jié)構(gòu)程序設(shè)計補充 33實驗2.2數(shù)組一:一維數(shù)組 37實驗2.3數(shù)組二:二維數(shù)組 44實驗2.4數(shù)組三:字符數(shù)組 46實驗3:函數(shù)與自定義數(shù)據(jù)類型 50實驗3.1函數(shù)一:函數(shù)的定義、調(diào)用和聲明 50實驗3.2函數(shù)二:函數(shù)的參數(shù)傳遞2 56實驗3.3函數(shù)三:函數(shù)的嵌套和遞歸2 58實驗3.4自定義數(shù)據(jù)類型(2學時) 60實驗4:指針(共6學時) 62實驗4.1指針一:指針的定義及運算 62實驗4.2指針二:指向數(shù)組的指針 68實驗4.3指針三:用指針操作字符串2 72信息科學技術(shù)學院《C語言程序設(shè)計》實驗指導(dǎo)書實驗1C語言入門及選擇結(jié)構(gòu)實驗1.1VisualC++6.0開發(fā)環(huán)境一、實驗?zāi)康?.熟悉C語言的系統(tǒng)環(huán)境,掌握在集成環(huán)境中編輯、編譯、連接和運行C語言程序的方法。2.掌握C語言源程序的結(jié)構(gòu)特點與書寫規(guī)范。二、實驗學時數(shù)2學時三、實驗步驟及任務(wù)(一)VC++6.0集成環(huán)境(1)運行VC++6.0a.雙擊桌面上的VC++6.0快捷方式,運行VC++6.0。b.雙擊"C:\MicrosoftVisualStudio\Common\MSDev98\Bin\MSDEV.EXE",運行VC++6.0。(2)認識VC++6.0菜單欄菜單欄標準按鈕標準按鈕執(zhí)行執(zhí)行執(zhí)行執(zhí)行組建組建工作空間工作空間編譯編譯輸出輸出標題欄的左側(cè)顯示當前的文件名,右側(cè)有最小化,最大化和關(guān)閉三個按鈕。菜單欄包含了開發(fā)環(huán)境中幾乎所有的命令,其中一些常用的命令還被排列在工具欄中。工具欄上的按鈕提出和一些菜單命令相對應(yīng),提供了經(jīng)常使用的命令的一種快捷方式。項目工作區(qū)窗口包含有ClassView和FileView兩個頁面。(3)建立C語言源文件,單擊[文件]-[新建],單擊[文件]選項卡,新建一個C++SourceFile,選擇存儲位置(新建建立的文件夾D:\test),輸入文件名“myhello.c”,進入D:\test,可以看到新建的文件myhello.c。(4)輸入C語言源程序,在打開的程序編輯窗口輸入C語言源程序。輸入C語言源程序輸入C語言源程序(5)編譯點擊[組建]-[編譯],或按ctrl+F7進行預(yù)編譯,或用工具欄工具編譯,編譯成功生成.obj目標文件(myhello.obj),顯示在輸出窗口。編譯工具編譯工具編譯結(jié)果(6)連接點擊[組建]-[編譯]命令,或按F7,或點按連接按鈕執(zhí)行連接操作。連接成功生成擴展名為.exe的文件。連接工具連接工具連接結(jié)果(7)執(zhí)行點擊[組建]-[執(zhí)行]命令,或按ctrl+F5,或點按執(zhí)行按鈕完成“執(zhí)行”操作。完成后界面如下,到目前為止一個簡單的C程序創(chuàng)建成功。執(zhí)行工具執(zhí)行工具結(jié)果輸出窗體(8)關(guān)閉工作空間程序運行結(jié)束后,如果想輸入一個新程序,我們需要將當前的程序關(guān)閉,選擇菜單欄中的“文件”→“關(guān)閉工作空間”即可。(9)常用功能鍵及其意義為了使程序員能夠方便快捷地完成程序開發(fā),開發(fā)環(huán)境提供了大量快捷方式來簡化一些常用操作的步驟。鍵盤操作直接、簡單,而且非常方便,因而程序員非常喜歡采用鍵盤命令來控制操作。下面是一些最常用的功能鍵,希望在實驗中逐步掌握。操作類型功能鍵對應(yīng)菜單含義文件操作Ctrl+NFile|New創(chuàng)建新的文件、項目等
Ctrl+OFile|Open打開項目、文件等
Ctrl+SFile|Save保存當前文件編輯操作Ctrl+XEdit|Cut剪切
Ctrl+CEdit|Copy復(fù)制
Ctrl+VEdit|Paste粘貼
Ctrl+ZEdit|Undo撤消上一個操作
Ctrl+YEdit|Redo重復(fù)上一個操作
Ctrl+AEdit|SelectAll全選
DelEdit|Del刪除光標后面的一個字符建立程序操作Ctrl+F7Build|Compilercurrentfile編譯當前源文件
Ctrl+F5Build|Runexe運行當前項目
F7Build|Buildexe建立可執(zhí)行程序
F5Build|StartDebugging啟動調(diào)試程序調(diào)試F5Debug|Go繼續(xù)運行
F11Debug|Stepinto進入函數(shù)體內(nèi)部
shift+F11Debug|Stepout從函數(shù)體內(nèi)部運行出來
F10Debug|Stepover執(zhí)行一行語句
F9
設(shè)置/清除斷點
Ctrl+F10Debug|Runtocursor運行到光標所在位置
shift+F9Debug|QuickWatch快速查看變量或表達式的值
Shift+F5Debug|Stopdebugging停止調(diào)試要求:請用最簡單的語言描述如何新建一個C語言的源文件,如何編輯程序,如何編譯程序,如何連接程序,如何運行程序,程序結(jié)果然后顯示?(二)閱讀程序要求:編輯下面源程序,并且讀懂與分析運行程序,上機運行程序,并與分析結(jié)果相對比。1.輸入并運行以下程序,觀察運行結(jié)果。(sy1.1.1.c)#include<stdio.h>intmain(){printf("*********************\n");printf("Helloworld!\n");printf("*********************\n");return0;}分析結(jié)果
運行結(jié)果
思考:如何采用一個輸出(printf)函數(shù)調(diào)用實現(xiàn)此輸出結(jié)果。2.輸入并運行以下程序,觀察運行結(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中刪除第一個\n輸出結(jié)果:運行結(jié)果printf中刪除a+b=和a-b=輸出結(jié)果:printf中刪除第一個\n輸出結(jié)果:(三)完成程序要求:依據(jù)題目要求,分析已給出的語句,填寫空白。但是不要增行或刪行,改動程序的結(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)試運行下列程序是否正確,若有錯,寫出錯在何處?填寫正確的運行結(jié)果。(sy1.1.5.c)行號#include<stdio.h>intmain(){intx;x=5,y=8;printf("\n%d,%d,%d\n",x,(x+5)*2,y); return0;}錯錯誤在行
應(yīng)改為:調(diào)試正確后的運行結(jié)果輸出結(jié)果:(五)編寫程序1.請用C程序告訴大家你來自哪里?有什么愛好?(sy1.1.6.c)2.輸出以下圖案:(sy1.1.7.c)******(六)分析與討論1.記下在調(diào)試過程中所發(fā)現(xiàn)的錯誤、系統(tǒng)給出的出錯信息和對策。分析討論對策成功或失敗的原因。2.總結(jié)C程序的結(jié)構(gòu)和書寫規(guī)則。
實驗1.2C程序快速入門一、實驗?zāi)康?.掌握標識符、變量與常量的定義;2.掌握C語言數(shù)據(jù)類型的種類和作用;3.熟悉如何定義一個整型、字符型、實型變量,以及對它們賦值的方法,了解以上類型數(shù)據(jù)輸出時所用的格式轉(zhuǎn)換符;4.掌握不同的類型數(shù)據(jù)之間賦值的規(guī)律;5.掌握輸出、輸入函數(shù)的使用及格式控制;6.進一步熟悉C程序語句和程序的結(jié)構(gòu)特點,學習簡單程序的編寫方法。二、實驗學時數(shù)2學時三、實驗步驟(一)閱讀程序1.輸入并運行以下程序,觀察運行結(jié)果。#include<stdio.h>intmain(){charc1,c2;c1=97;c2=98;printf("%c,%c\n",c1,c2);return0;}(1)在第五行后面加入以下printf語句,并運行。printf("%d,%d\n",c1,c2);分析結(jié)果
字符型97,98對應(yīng)a,b運行結(jié)果
ab(2)在(1)的基礎(chǔ)上,將第三行改為以下語句,并運行。intc1,c2;分析結(jié)果
運行結(jié)果
仍為a,b若改為%d,則為97,98(3)在(1)的基礎(chǔ)上,將第四行改為以下語句,并運行。c1=321;c2=400;分析結(jié)果
運行結(jié)果
A,?2.分析并運行此程序,當輸入的數(shù)據(jù)為10時,下面程序的運行結(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é)果
運行結(jié)果
2.4*x-1/2=23.500000x%%2/5-x=-10.000000(x-=x*10,x/=10)=0(二)完成程序要求:依據(jù)題目要求,分析已給出的語句,填寫空白。但是不要增行或刪行,改動程序的結(jié)構(gòu)。1.求任意輸入字符的ASCⅡ碼。#include<stdio.h>intmain(){ chara;intb;//變量的定義 printf(“請輸入一個字符:”); scanf(“%c”,&a); b=(int)a; printf(“\n\n%c的ASCⅡ碼為%d\n”,a,b);return0;}2、輸出任意一個十進制數(shù)對應(yīng)的八進制,十六進制數(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)試運行下列程序是否正確,若有錯,寫出錯在何處?填寫正確的運行結(jié)果。1.行號#include<stdio.h>1intmain()2{intu=v=89;3printf(“u=%d,v=%d\n”,u,v);4return0;5}
錯錯誤在1行
應(yīng)改為:調(diào)試正確后的運行結(jié)果輸出結(jié)果:2.下面的程序試圖計算由鍵盤輸入的任意兩個整數(shù)的平均值:行號 #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}錯錯誤在行
應(yīng)改為:調(diào)試正確后的運行結(jié)果輸入數(shù)據(jù)2,61,4-1,-3-2,42,0輸出結(jié)果:(四)編寫程序1.編寫一個程序,從鍵盤輸入某電視機的價格,再輸出該價格打7折后的價格。分析:必須設(shè)計一個實型變量接受從鍵盤輸入的值,輸入、輸出應(yīng)該有提示。#include<stdio.h>intmain(){ doublea,b; printf("電視機的價格:"); scanf("%lf",&a); b=0.7*a; printf("打折后的價格:%lf",b); return0;}2.編寫一個程序,求一元一次方程ax+b=0的根。分析:a、b的值從鍵盤輸入,輸入時a的值不能為0(無解),方程的根即x的值為:-b/a
實驗1.3算術(shù)運算與賦值運算一、實驗?zāi)康?.掌握算術(shù)運算符和算術(shù)表達式。2.熟練掌握賦值運算符、復(fù)合的賦值運算符3.熟練掌握自增1和自減1運算符。4.熟練掌握順序結(jié)構(gòu)的程序設(shè)計,能夠編寫簡單的應(yīng)用程序。二、實驗學時數(shù)2學時三、實驗步驟(一)分析程序1.分析以下程序運行的結(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é)果
運行結(jié)果
(2)將第6、7行改為:m=i++;n=++j;分析結(jié)果
運行結(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é)果
運行結(jié)果
1.輸入并運行以下程序,觀察運行結(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é)果
運行結(jié)果
2.輸入并運行以下程序,觀察運行結(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é)果
運行結(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é)果
運行結(jié)果
(二)完成程序 要求:按照給定題目要求,參照出現(xiàn)的語句,填寫程序空白處。鍵盤輸入任意一個小寫字母,將其轉(zhuǎn)換成大寫字母,然后輸出。#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)試程序要求:分析下列程序是否正確,如有錯誤,指出錯誤所在,并改正;若正確,寫出運行結(jié)果。
行號 #include<stdio.h>intmain(){ inti,k;i=8;k=5*I*I;printf("%d\n",k); return0;}錯錯誤在行
應(yīng)改為:調(diào)試正確后的運行結(jié)果
2.該程序輸入一個三位數(shù),然后進行個位和百位的置換,如234,轉(zhuǎn)換成432行號#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}錯錯誤在行
應(yīng)改為:調(diào)試正確后的運行結(jié)果
(四)編寫程序1.編程求出某學生期末三門課程的總分及平均分。結(jié)果保留小數(shù)點后一位。2.編程從鍵盤輸入兩個整數(shù)分別給變量a和b,分別寫出不借助于其他變量和借助于其他變量的條件下,將變量a和b的值實現(xiàn)交換。1.編寫一個程序,其功能為:從鍵盤上輸入一個浮點數(shù),然后分別輸出該數(shù)的整數(shù)部分和小數(shù)部分。分析:若輸入的浮點數(shù)存入fd變量,則可用強制類型轉(zhuǎn)換運算符,將輸入的該數(shù)的整數(shù)部分取出:zhs=(int)fd;2.從鍵盤輸入三角形的三條邊a,b,c的值,計算三角形的面積,程序框架如下:#include“sdtio.h”#include“math.h”main(){定義變量從鍵盤輸入a,b,c三條邊的值計算s的值計算三角形面積輸出結(jié)果}
1.編程序計算數(shù)學表達式:b2-4ac,a,b,c的值從鍵盤輸入。2.編程序計算298秒是幾分幾秒。提示:設(shè)intx=298;再定義兩個變量存放分(m)、秒(s)值;則:m=x/60;s=x%60;3.從鍵盤輸入一個三位數(shù),求各位數(shù)字之和。例如,輸入的三位數(shù)為358,則輸出結(jié)果為3+5+8=16。提示:題目的關(guān)鍵是要求出該數(shù)的個、十、百位上的數(shù)字,可利用C語言整數(shù)相除,結(jié)果仍為整數(shù)的特點。若設(shè)該數(shù)為data,它的個、十、百位為g、s、b,則b=data/100;s=(data-b*100)/10;g=data%10(三)編寫程序1.用賦值語句表達:a的值為2,b的值比a多2,c的值比b的值多2,并輸出a,b,c的結(jié)果。請編出完整程序驗證。2.假設(shè)變量a和b均為整型,以下語句可以不借助任何變量把a、b中的值進行交換。請先填空,再編出完整程序驗證。a+=_________;(a為a、b之和)b=a-__________;a-=___________;
實驗1.4邏輯運算及if語句一、實驗?zāi)康?.掌握關(guān)系、條件、邏輯運算符及關(guān)系、條件、邏輯表達式。2.掌握逗號運算符和逗號表達式。3.熟練掌握三種單分支、雙分支和多分支if語句。4.掌握if語句的嵌套。二、實驗學時數(shù)2學時三、實驗步驟(一)閱讀程序1.分析程序運行結(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é)果
運行結(jié)果
2.輸入并運行以下程序,觀察運行結(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é)果
運行結(jié)果
3、若x=12,則以下程序運行的結(jié)果是#include<stdio.h>intmain(){intx,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("y=%d\n",y);return0;}分析結(jié)果
運行結(jié)果
三、實驗步驟(一)閱讀程序1.輸入并運行以下程序,觀察運行結(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é)果
運行結(jié)果
2.輸入并運行以下程序,觀察運行結(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é)果
運行結(jié)果
(二)完成程序 要求:按照給定題目要求,參照出現(xiàn)的語句,填寫程序空白處。輸入一個字符,如果它是一個大寫字母,則把它變成小寫字母;如果它是一個小寫字母,則把它變成大寫字母;其他字符不變,請在_______上填寫正確內(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ù)輸入的三角形的三邊判斷是否能組成三角形,若可以則輸出它的面積和三角形的類型,請在_______上填寫正確內(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)試程序要求:分析下列程序是否正確,如有錯誤,指出錯誤所在,并改正;若正確,寫出運行結(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}
錯錯誤在行
應(yīng)改為:調(diào)試正確后的運行結(jié)果輸入數(shù)據(jù):421-310輸出結(jié)果:2.
有一函數(shù)關(guān)系如下:x-3x<0y=0x=0x+3x>0以下程序表示上面的函數(shù)關(guān)系行號#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}錯錯誤在行
應(yīng)改為:調(diào)試正確后的運行結(jié)果輸入數(shù)據(jù):50-3輸出結(jié)果:(四)編寫程序1.輸入某學生的成績(成績?yōu)?00分制,可以為89.5,如果輸入的成績不在0-100之間,請給出出錯提示。),經(jīng)處理后給出學生的等級,等級分類如下:90分以上(包括90):A80至90分(包括80):B70至80分(包括70):C60至70分(包括60):D60分以下:E2.輸入一個三位的正整數(shù),判斷該數(shù)是否為水仙花數(shù)。(水仙花數(shù)的是指一個三位數(shù),其各位數(shù)字的立方各等于該數(shù)本身。例如:153是一個水仙花數(shù),因為153=1^3+5^3+3^3)1.某郵局對郵寄包裹有如下規(guī)定:若包裹的長寬高任一尺寸超過1米或重量超過30千克,不予郵寄;對可以郵寄的包裹每件收取手續(xù)費0.5元,再加上根據(jù)下表按重量weight計算的郵資,請編寫程序計算某包裹的郵寄資費。2.輸入一個正整數(shù)n,再輸入n個學生的成績,計算平均分,并統(tǒng)計不及格成績的個數(shù)。
實驗1.5switch選擇結(jié)構(gòu)一、實驗?zāi)康?.熟練掌握switch語句。2.掌握省略break的case語句的執(zhí)行方式。3.比較if語句的嵌套及if、switch多路分支語句。二、實驗學時數(shù)2學時三、實驗步驟(一)閱讀程序1.輸入并運行以下程序,觀察運行結(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é)果
運行結(jié)果
(二)完成程序 要求:按照給定題目要求,參照出現(xiàn)的語句,填寫程序空白處。以下程序?qū)崿F(xiàn)的功能是:-1x<0,請將以下程序補充完整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)編寫一個處理四則運算的程序。#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(“運算符錯誤\n”);}return0;}3.輸入某年某月某日,判斷這一天是這一年的第幾天?程序分析:以3月5日為例,應(yīng)該先把前兩個月的加起來,然后再加上5天即本年的第幾天,特殊情況,閏年且輸入月份大于3時需考慮多加一天。#include<stdio.h>intmain(){intday,month,year,sum,leap;printf("\npleaseinputyear,month,day\n");scanf("%d,%d,%d",___________);switch(month)/*先計算某月以前月份的總天數(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;}
(三)編寫程序1.以下4種水果([1]蘋果[2]梨[3]桔子[4]芒果)單價分別是2.0元/公斤,2.5元/公斤,3.0元/公斤,4.5元/公斤,請輸入水果編號、重量,計算應(yīng)付款。2.從鍵盤輸入1-7,顯示輸出該日期對應(yīng)的英文日期(Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,sunday)名稱。3.己知某公司員工的保底薪水為500,某月所接工程的利潤p與利潤提成的關(guān)系如下:(計量單位:元)(選作)p<=1000沒有提成1000<p<=2000提成10%2000<p<=5000 提成15%5000<p<=10000 提成20%10000<p 提成25%1.編寫程序?qū)崿F(xiàn)運輸公司對用戶計算運費。路程(s)越遠,每公里運費越低。2.考慮一個自動售貨機,提供如下選擇:[1]礦泉水[2]巧克力[3]爆米花[4]果汁[5]顯示購買商品的數(shù)量[6]退出系統(tǒng)
實驗2循環(huán)結(jié)構(gòu)及數(shù)組(共8學時)實驗2.1循環(huán)結(jié)構(gòu)(2學時)2.1.1while循環(huán)和do…while循環(huán)及二者比較2.1.2for循環(huán)2.1.3循環(huá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ù)2學時三、實驗步驟(一)閱讀程序#include<stdio.h>intmain(){inta=2,b=8;while(b--<0) b-=a; a++; printf(“a=%d,b=%d\n”,a,b);return0;}
分析結(jié)果
運行結(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é)果
運行結(jié)果
3.#include<stdio.h>intmain(){intn=0;while(n<=2){n++;printf("%d\n",n);}return0;}分析結(jié)果
運行結(jié)果
(二)完成程序要求:依據(jù)題目要求,分析已給出的語句,填寫空白。但是不要增行或刪行,改動程序的結(jié)構(gòu)。
1.以下程序的功能是計算正整數(shù)2345的各位數(shù)字平方和,請在_______上填寫正確內(nèi)容。#include<stdio.h>
intmain(){intn,sum=0;n=2345;do{ sum=sum+____________; ______________________;}while(n);printf("sum=%d\n",sum);return0;}
2.以下程序的功能是計算S=2+4+8+16+…+128,請在______上填寫正確內(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)試運行下列程序是否正確,若有錯,寫出錯在何處?填寫正確的運行結(jié)果。1.
以下程序輸出100(包括100)以內(nèi)的數(shù),每行輸出10個。行號#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}錯錯誤在5行
應(yīng)改為:if(k%10>0)printf("\n");2.下面程序的功能是計算n!。行號#include<stdio.h>intmain(){inti,n,s=1; printf("Pleaseentern:"); scanf("%d",&n); for(i=1;i<=n;i++) s=s*i; printf("%d!=%d\n",n,s);return0;}錯錯誤在行
應(yīng)改為:調(diào)試正確后的運行結(jié)果輸入數(shù)據(jù):1591215輸出結(jié)果:3.以下程序輸出1100的數(shù)字行號#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 }錯錯誤在行
應(yīng)改為:(四)編寫程序1.小明媽媽給他買了若干塊巧克力,小明第一天吃了一半,還不過癮,又多吃了一塊,第二天又將剩下的巧克力吃掉一半,又多吃一塊,以后每天都吃了前一天剩下的一半零一塊。到第10天再想吃時,只剩下一塊了。編程計算小明媽媽總共給小明買了多少塊巧克力?
2.一百萬富翁遇到一個陌生人,陌生人找他談一個換錢的計劃,該計劃如下:我每天給你十萬元,而你第一天只需給我一分錢,第二天我仍給你十萬元,你給我二分錢,第三天我仍給你十萬元,你給我四分錢,…,你每天給我的錢是前一天的兩倍,直到滿一月(30天),百萬富翁很高興,欣然接受了這個契約。請編寫一個程序計算這一個月中陌生人給了百萬富翁多少錢?百萬富翁給陌生人多少錢?While實現(xiàn):1.譯密碼。為使電文保密,往往按一定規(guī)律將其轉(zhuǎn)換成密碼,收報人再按約定的規(guī)律將其譯回原文??梢园匆韵碌囊?guī)律將電文變成密碼:將字母A變成字母E,a變成e,即變成其后的第4個字母,W變成A,X變成B,Y變成C,Z變成D。字母按上述規(guī)律轉(zhuǎn)換,非字母字符不變。2.計算1~20之間的奇數(shù)之和和偶數(shù)之和。do…while循環(huán)實現(xiàn)1.日本一位中學生發(fā)現(xiàn)一個奇妙的“定理”,請角谷教授證明,而教授無能為力,于是產(chǎn)生角谷猜想,猜想的內(nèi)容是:任給一個自然數(shù),若為偶數(shù)除以2,若為奇數(shù)則乘以3加1,得到一個新的自然數(shù)后按照上面的法則繼續(xù)演算,若干次后得到的結(jié)果必然為1,請編程驗證。2.統(tǒng)計一個整數(shù)的位數(shù)。從鍵盤輸入一個整數(shù),統(tǒng)計該數(shù)的位數(shù)。例如,輸入12345,輸出5;輸入-99,輸出2。For循環(huán)實現(xiàn)1.馬克思手稿里有一道有趣的數(shù)學問題:有30個人,其中有男人、女人和小孩,在一家飯館吃飯共花了50先令:每個男人花3先令,每個女人花2先令,每個小孩花1先令,問男人、女人和小孩各有幾人?2.有一對兔子,從出生后第三個月起每個月都生一對小兔子,小兔子長到第三個月后每月又生一對小兔子,假如兔子都不死,問20個月內(nèi)每個月的兔子總數(shù)為多少?3.輸入一批學生的成績,找出最高分。循環(huán)嵌套1.計算1!+2!+3!+…+100!。要求使用嵌套循環(huán)。2.三對情侶參加婚禮,三個新郎為A,B,C,三個新娘為X,Y,Z,有人不知道誰和誰結(jié)婚,于是詢問了六位新人中的三位,但聽到的回答是這樣的:A說他將和X結(jié)婚;X說他的未婚夫是C;C說他將和Z結(jié)婚,這人聽后知道他們在開玩笑,全是假話,請編程找出誰將和誰結(jié)婚。
循環(huán)結(jié)構(gòu)程序設(shè)計補充(一)閱讀程序
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é)果
運行結(jié)果
2.#include<stdio.h>intmain(){inti;for(i=1;i<6;i++){if(i%2){printf("#");continue;}printf("*");}printf("\n");return0;}分析結(jié)果
運行結(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é)果
運行結(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é)果
運行結(jié)果
(二)完成程序要求:依據(jù)題目要求,分析已給出的語句,填寫空白。但是不要增行或刪行,改動程序的結(jié)構(gòu)。
1.一個數(shù)如果恰好等于它的因子之和,這個數(shù)就稱為完數(shù)。求100之內(nèi)的所有完數(shù)。請在_______上填寫正確內(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.以下程序的功能是打印以下圖形,請在______上填寫正確內(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元人民幣換成一角、兩角、五角的所有兌換方案,請在_______上填寫正確內(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;}(三)編寫程序1.打印九九乘法表。格式:1*1=1
2.每個蘋果0.8元,第一天買2個,從第二天開始,每天買前一天的2倍,直到當天購買的蘋果個數(shù)不超過100的最大值為止,編寫程序求每天平均花多少錢。
實驗2.2數(shù)組一:一維數(shù)組一、實驗?zāi)康?.掌握一維數(shù)組的定義。2.掌握一維數(shù)組的引用3.掌握一維數(shù)組的初始化。4.熟練對一維數(shù)組元素進行輸入輸出。二、實驗學時數(shù)2學時三、實驗步驟(一)閱讀程序
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é)果
運行結(jié)果
(二)完成程序要求:依據(jù)題目要求,分析已給出的語句,填寫空白。但是不要增行或刪行,改動程序的結(jié)構(gòu)。1.下面程序的功能是將十進制整數(shù)轉(zhuǎn)換成二進制,請在_______上填寫正確內(nèi)容。#include<stdio.h>intmain(){ intk=0,n,j,num[16]={0}; printf("輸入要轉(zhuǎn)換的十進制數(shù)\n"); scanf("%d",&n);printf("%d轉(zhuǎ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ù)的個數(shù)和奇數(shù)的平均值,請在_______上填寫正確內(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)試運行下列程序是否正確,若有錯,寫出錯在何處?填寫正確的運行結(jié)果。1.以下程序?qū)崿F(xiàn)的功能是輸入四個數(shù),求這四個數(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;}錯錯誤在行
應(yīng)改為:調(diào)試正確后的運行結(jié)果輸入數(shù)據(jù)181836輸出結(jié)果:2.以下程序?qū)崿F(xiàn)的功能是求10個元素的和。行號#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;}錯錯誤在行
應(yīng)改為:調(diào)試正確后的運行結(jié)果輸入數(shù)據(jù):3891026367245951848輸出結(jié)果:3.調(diào)試下列程序,使之具有如下功能:輸入10個整數(shù),按每行3個數(shù)輸出這些整數(shù),最后輸出10個整數(shù)的平均值。寫出調(dià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}上面給出的程序是完全可以運行的,但是運行結(jié)果是完全錯誤的。調(diào)試時請注意變量的初值問題、輸出格式問題等。請使用前面實驗所掌握的調(diào)試工具,判斷程序中的錯誤并改正。錯錯誤在行
應(yīng)改為:調(diào)試正確后的運行結(jié)果輸入數(shù)據(jù)輸出結(jié)果:(四)編寫程序P1001.有一個含有20個元素的整型數(shù)組,程序要完成以下功能:(1)調(diào)用C庫函數(shù)中的隨機函數(shù)給所有元素賦予0~49的隨機數(shù)。(2)輸出數(shù)組元素的值,5個元素為一行。(3)按順序?qū)ο聵藶槠鏀?shù)的元素求和。程序2.將一個長度為N的一維數(shù)組中的元素按顛倒的順序重新存放,注意在操作時,只能借助一個臨時存儲單元而不得另外開辟數(shù)組。程序3.試編制程序使數(shù)組中的數(shù)按照從小到大的次序排列。(起泡法)程序1、編寫程序,測試下列數(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];
}通過這一實驗,可以說明什么問題?2、運行下面的C程序,根據(jù)運行結(jié)果,可以說明什么?main(){intnum[5]={1,2,3,4,5};intii;for(i=0;i<=5;i++)printf(“%d”,num[i]);}3、操作符&用以求一個變量的地址,這在函數(shù)scanf中已經(jīng)使用過了?,F(xiàn)在要你設(shè)計一個程序,返回一個3*5的二維數(shù)組各元素的地址,并由此說明二維數(shù)組中各元素是按什么順序存諸的。4、為一個起泡排序程序設(shè)計測試用例,并測試之。5、1983年,在ACM圖林獎頒獎大會上,杰出的計算機科學家,UNIX的鼻祖,C語言的創(chuàng)始人之一,圖林大獎得主,KenThompson上臺的第一句話是:“我是一個程序員,在我的1040表上,我自豪地寫上了我的職業(yè)。作為一個程序員,我的工作就是寫程序,今天我將向大家提供一個我曾經(jīng)寫過的最精練的程序?!边@個程序如下: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);}請上機運行這個程序,指出它的功能和運行結(jié)果。三、分析討論通過實驗,分析定義與引用數(shù)組的區(qū)別。
實驗2.3數(shù)組二:二維數(shù)組一、實驗?zāi)康?.掌握二維數(shù)組的定義。2.掌握二維數(shù)組的引用3.掌握二維數(shù)組的初始化。4.熟練對二維數(shù)組元素進行輸入輸出。二、實驗學時數(shù)2學時三、實驗步驟(一)閱讀程序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é)果
運行結(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é)果
運行結(jié)果
(二)編寫程序P1091.將2*3的矩陣(二維數(shù)組)a,轉(zhuǎn)置后存入3*2的矩陣b中。2.求3*4矩陣所有外圍元素之和。3.定義一個矩陣,從鍵盤輸入數(shù)據(jù)為它賦值,然后找出矩陣中的最大最小元素及其所在的行號和列號。2.求5×5矩陣下兩條對角線上的各元素之和。
實驗2.4數(shù)組三:字符數(shù)組一、實驗?zāi)康?.掌握字符數(shù)組的定義。2.掌握字符數(shù)組的引用。3.掌握字符數(shù)組的初始化。4.熟練對字符數(shù)組元素進行輸入輸出。5.掌握常用的字符處理函數(shù)。二、實驗學時數(shù)2學時三、實驗步驟(一)閱讀程序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é)果
運行結(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é)果
運行結(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é)果
運行結(jié)果
(二)完成程序要求:依據(jù)題目要求,分析已給出的語句,填寫空白?但是不要增行或刪行,改動程序的結(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.從鍵盤輸入: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)試運行下列程序是否正確,若有錯,寫出錯在何處?填寫正確的運行結(jié)果?1.行號#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;}錯錯誤在行
應(yīng)改為:調(diào)試正確后的運行結(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’}?行號 #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;}錯錯誤在行
應(yīng)改為:調(diào)試正確后的運行結(jié)果輸出結(jié)果:3.調(diào)試下列程序,使之具有如下功能:任意輸入兩個字符串(如:"abc123"和"china"),并存放在a,b兩個數(shù)組中。然后把較短的字符串放在a數(shù)組,較長的字符串放在b數(shù)組。并輸出。行號#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是庫函數(shù),功能是求字符串的長度,它的原型保存在頭文件"string.h"中。調(diào)試時注意庫函數(shù)的調(diào)用方法,不同的字符串輸入方法,通過錯誤提示發(fā)現(xiàn)程序中的錯誤。錯錯誤在行
應(yīng)改為:調(diào)試正確后的運行結(jié)果輸入數(shù)據(jù):abc123china輸出結(jié)果:(四)編寫程序P1201.輸入一行文字,最多有80個字符。要求分別統(tǒng)計其中英文大寫字母、小寫字母、數(shù)字、空格以及其他字符的個數(shù)。2.編寫一個程序,將字符串str1復(fù)制到str2中(不能用strcpy函數(shù)),并顯示出來。3.輸入三個字符串,要求找到其中的最大者。編寫一個將一個字符串逆轉(zhuǎn)的程序,如將a[]=“apple“改為a[]=“elppa“。實驗3:函數(shù)與自定義數(shù)據(jù)類型(共8學時)實驗3.1函數(shù)一:函數(shù)的定義、調(diào)用和聲明一?實驗?zāi)康?.掌握函數(shù)的聲明形式及應(yīng)用。2.掌握函數(shù)的定義形式及應(yīng)用。3.掌握函數(shù)的調(diào)用形式及應(yīng)用;二?實驗學時數(shù)2學時三?實驗步驟閱讀程序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é)果
運行結(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é)果
運行結(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é)果
運行結(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é)果
運行結(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é)果
運行結(jié)果
(二)完成程序要求:依據(jù)題目要求,分析已給出的語句,填寫空白?但是不要增行或刪行,改動程序的結(jié)構(gòu)?1.請在以下程序第一行的下劃線處填寫適當內(nèi)容,使程序能正確運行?#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次方,請?zhí)羁?,并配寫出主調(diào)函數(shù)。doublefun(doublex,inty){inti;doublez;for(i=1,z=x;i<y;i++)z=z*______________;returnz;}intmain(){
return0;}3.mystrlen函數(shù)的功能是計算字符串的長度,并作為函數(shù)值返回。請?zhí)羁?,并配寫主調(diào)函數(shù)。intmystrlen(charstr[]){inti;for(i=0;____________!=‘\0';i++);return(_______);}intmain(){return0;}
(三)調(diào)試程序要求:調(diào)試運行下列程序是否正確,若有錯,寫出錯在何處?填寫正確的運行結(jié)果?1.行號#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}正確運行結(jié)果:錯誤錯誤所在行:應(yīng)改為:2.函數(shù)sstrcmp()的功能是對兩個字符串進行比較。當s數(shù)組中字符串和t數(shù)組中字符串相等時,返回值為0;當s數(shù)組中字符串大于t數(shù)組中字符串時,返回值大于0;當s數(shù)組中字符串小于t數(shù)組中字符串時,返回值小于0(功能等同于庫函數(shù)strcmp())。行號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{ intx;8 chars1[50],s2[50];9 scanf("%s%s",s1,s2);10 x=sstrcmp(s1,s2);11 printf("%d\n",x);12return0;13}正確運行結(jié)果:錯誤錯誤所在行:應(yīng)改為:1.以下程序通過調(diào)用m
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 送別 作文課件
- 第11課《短文二篇·記承天寺夜游》八年級語文上冊精講同步課堂(統(tǒng)編版)
- 西南林業(yè)大學《材料科學基礎(chǔ)》2021-2022學年第一學期期末試卷
- 西京學院《文案創(chuàng)意與寫作》2022-2023學年第一學期期末試卷
- 西京學院《模式識別技術(shù)》2021-2022學年期末試卷
- 西京學院《結(jié)構(gòu)力學》2022-2023學年第一學期期末試卷
- 西華師范大學《舞臺實踐與服務(wù)》2022-2023學年第一學期期末試卷
- 2024-2025學年高中物理舉一反三系列專題4.5 氫原子光譜和玻爾的原子模型(含答案)
- 西華師范大學《教師禮儀》2021-2022學年第一學期期末試卷
- 西華師范大學《當代中國政治制度》2022-2023學年第一學期期末試卷
- 施工現(xiàn)場常見安全隱患及違規(guī)違章行為
- 四年級上冊語文閱讀復(fù)習課與練習
- 安全學原理總結(jié)
- 課程思政背景下初中數(shù)學教學設(shè)計研究 論文
- 教師資格證面試教案(中職-人力資源)
- 校園欺凌與心理健康的關(guān)系研究
- GB/T 3683-2023橡膠軟管及軟管組合件油基或水基流體適用的鋼絲編織增強液壓型規(guī)范
- 固定資產(chǎn)移交方案
- 照明線路安裝-課件
- 牙周治療知情同意書
- 江西省省情介紹
評論
0/150
提交評論