C-程序設(shè)計(jì)實(shí)驗(yàn)內(nèi)容_第1頁(yè)
C-程序設(shè)計(jì)實(shí)驗(yàn)內(nèi)容_第2頁(yè)
C-程序設(shè)計(jì)實(shí)驗(yàn)內(nèi)容_第3頁(yè)
C-程序設(shè)計(jì)實(shí)驗(yàn)內(nèi)容_第4頁(yè)
C-程序設(shè)計(jì)實(shí)驗(yàn)內(nèi)容_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

C程序設(shè)計(jì)上機(jī)實(shí)驗(yàn)指導(dǎo)書目錄實(shí)驗(yàn)一熟悉C程序集成開發(fā)環(huán)境實(shí)驗(yàn)二數(shù)據(jù)的輸入和輸出實(shí)驗(yàn)三表達(dá)式的計(jì)算實(shí)驗(yàn)四選擇結(jié)構(gòu)語(yǔ)句(一)實(shí)驗(yàn)五選擇結(jié)構(gòu)語(yǔ)句(二)實(shí)驗(yàn)六循環(huán)結(jié)構(gòu)語(yǔ)句(一)實(shí)驗(yàn)七循環(huán)結(jié)構(gòu)語(yǔ)句(二)實(shí)驗(yàn)八數(shù)組應(yīng)用(一)實(shí)驗(yàn)九數(shù)組應(yīng)用(二)實(shí)驗(yàn)十函數(shù)應(yīng)用(一)實(shí)驗(yàn)十一函數(shù)應(yīng)用(二)實(shí)驗(yàn)十二指針的應(yīng)用實(shí)驗(yàn)十三結(jié)構(gòu)體的應(yīng)用實(shí)驗(yàn)一C程序集成開發(fā)環(huán)境熟悉一、實(shí)驗(yàn)?zāi)康?、熟悉VisualC++6.0集成開發(fā)環(huán)境2、掌握編輯、編譯、連接、執(zhí)行、修改和調(diào)試一個(gè)C程序的基本過(guò)程。3、掌握和理解C語(yǔ)言程序的基本結(jié)構(gòu)。4、掌握和理解C程序中的最基本的C語(yǔ)句。二、實(shí)驗(yàn)內(nèi)容1.輸入以下C程序:#include"stdio.h"voidmain(){printf("Hello!這是我的FirstC程序.\n");}2.有兩個(gè)整型變量a,b,它們的值分別為8,3,試編程計(jì)算它們的和、差、積、商。3.假設(shè)圓柱體的底面半徑為r(值為2.5),高為h(值為3.5),編程計(jì)算該圓柱體的體積。計(jì)算公式:體積=底面積×高底面積=∏r24.輸入并運(yùn)行下面程序。#include"stdio.h"voidmain(){inta,b,c;scanf(%d,%d,&a,&b);c=a/b;printf(%d\n,c);}要求:調(diào)試通過(guò)后,運(yùn)行該程序。(1)輸入值:50,4<回車><Alt+F5>察看運(yùn)行結(jié)果。(2)輸入值:50.4,10.8<回車><Alt+F5>察看運(yùn)行結(jié)果。(3)輸入值:50000,100<回車><Alt+F5>察看運(yùn)行結(jié)果。(4)輸入值:10,0<回車><Alt+F5>察看運(yùn)行結(jié)果。分析輸出結(jié)果。三、實(shí)驗(yàn)分析及體會(huì)對(duì)上述實(shí)驗(yàn)內(nèi)容進(jìn)行分析總結(jié),寫出實(shí)驗(yàn)報(bào)告并上交。實(shí)驗(yàn)二數(shù)據(jù)的輸入和輸出一、實(shí)驗(yàn)?zāi)康?.掌握scanf和printf的主要用法。2.掌握常用轉(zhuǎn)換控制符的用法。3.掌握賦值語(yǔ)句的用法。4.掌握算術(shù)運(yùn)算符的運(yùn)算規(guī)律。二、實(shí)驗(yàn)內(nèi)容1.編輯如下程序并運(yùn)行,記錄程序的輸出結(jié)果,體會(huì)格式輸出的使用。#include"stdio.h"voidmain(){printf("%d\n",42);printf("%5d\n",42);printf("%f\n",123.45);printf("%12f\n",123.45);printf("%e\n",123.45);printf("%13e\n",123.45);printf("%g\n",123.45);printf("%8g\n",123.45);printf("%.5d\n",42);printf("%.0d\n",42);printf("%8.3f\n",123.45);printf("%8.1f\n",123.55);printf("%8.0f\n",123.55);printf("%g\n",123.56789);}2.編輯如下的程序,并上機(jī)運(yùn)行3次,在每次運(yùn)行提供輸入數(shù)據(jù)時(shí)分別采用數(shù)據(jù)之間插入空格、每輸入一個(gè)數(shù)據(jù)就按回車鍵、數(shù)據(jù)之間用TAB鍵分割,看結(jié)果有什么不同?#include"stdio.h"voidmain(){intx,y,t;printf("Enterx&y:\n");scanf("%d%d",&x,&y);printf("x=%dy=%d\n",x,y);t=x;x=y;y=t;printf("x=%dy=%d\n",x,y);}3.改錯(cuò)題。下列程序多處有錯(cuò),請(qǐng)通過(guò)上機(jī)改正。使之符合下面的要求。#include"stdio.h"voidmain(){doublea,b,c,s,v;printf(Inputa,b,c:\n);scanf("%d%d%d",a,b,c);s=a*b;v=a*b*c;printf("a=%db=%dc=%d\n",a,b,c);printf("s=%f\n",s,"v=%d\n",v);}當(dāng)本程序運(yùn)行時(shí),要求按如下方式顯示和輸入:Inputa,b,c:2.02.03.0(此處的2.02.03.0為用戶輸入的)a=2.000000b=2.000000c=3.000000s=4.000000v=12.0000004.編輯如下程序:/*字符類型定義及使用*/#include"stdio.h"voidmain(){charc1,c2;c1='a';c2=‘b’;printf(“%c%c\n”,c1,c2);}(1運(yùn)行此程序,記錄運(yùn)行結(jié)果。(2在最后增加一個(gè)語(yǔ)句:printf(“%d%d\n”,c1,c2);再運(yùn)行,并記錄分析結(jié)果。(3再將第5行charc1,c2;改為:intc1,c2;再使之運(yùn)行,并觀察記錄結(jié)果。(4再將第6、7行改為:c1=a;/*不用單引號(hào)*/c2=b;再運(yùn)行,記錄分析其運(yùn)行結(jié)果。(5再將第6、7行改為:c1=”a”;/*用雙引號(hào)*/c2=”b”;再運(yùn)行,記錄分析其運(yùn)行結(jié)果。(6再將第6、7行改為:c1=300;/*用大于255的整數(shù)*/c2=400;再運(yùn)行,記錄分析其運(yùn)行結(jié)果。5.編輯如下程序:/*自增自減運(yùn)算符*/#include"stdio.h"voidmain(){inti,j,m,n;i=8;j=10;m=++i;n=j++;printf(“d,%d,%d,%d”i,j,m,n);}(1)運(yùn)行程序,記錄i、j、m、n各變量的值,分別作以下改動(dòng)并運(yùn)行。(2)將第7、8行改為下面所示,再運(yùn)行。m=i++;n=++j;記錄i、j、m、n各變量的值(3)在(1)的基礎(chǔ)上,將printf語(yǔ)句改為:printf(“d,%d”++i,++j);運(yùn)行程序,記錄i、j、m、n各變量的值。(4)再將printf語(yǔ)句改為:printf(“d,%d,%d,%d”i,j,i++,j++);運(yùn)行程序,記錄i、j、m、n各變量的值。(5)再修改程序如下,運(yùn)行程序記錄i、j、m、n各變量的值。#include"stdio.h"voidmain(){inti,j,m=0,n=0;i=8;j=10;m+=i++;n-=--j;printf(“=%d,j=%d,m=%d,n=%d”i,j,m,n);}6.編寫程序,完成對(duì)于任意輸入的兩個(gè)整數(shù),求出它們的商和余數(shù)并進(jìn)行輸出。三、對(duì)上述實(shí)驗(yàn)內(nèi)容進(jìn)行總結(jié),寫出實(shí)驗(yàn)報(bào)告。實(shí)驗(yàn)三表達(dá)式的計(jì)算一、實(shí)驗(yàn)?zāi)康?.掌握算術(shù)表達(dá)式、逗號(hào)表達(dá)式、賦值表達(dá)式的計(jì)算。2.特別注意運(yùn)算符%、/(整數(shù)的相除)、++和--運(yùn)算的規(guī)律。二、實(shí)驗(yàn)內(nèi)容1.已知三角形的三邊a,b,c,求三角形面積的公式為:area=sqrt(s(s-a)(s-b)(s-c))其中:s=(a+b+c)/2,sqrt(x)表示x的平方根。要求編一程序,對(duì)任意輸入的a,b,c值,計(jì)算并輸出三角形的面積范圍。提示:sqrt是C的標(biāo)準(zhǔn)庫(kù)函數(shù),使用該函數(shù)應(yīng)將庫(kù)文件“math.h”包含到源文件中。另外注意三角形三邊的基本關(guān)系。2.對(duì)以下程序進(jìn)行分析,看程序的輸出結(jié)果應(yīng)是什么,然后上機(jī)運(yùn)行該程序看實(shí)際結(jié)果與你分析的有無(wú)不同,找出原因。#include"stdio.h"voidmain(){intx=1,y=2,t;floatm;t=x/y;m=x/y;printf("%d\t%8.3f\n",t,m);t=x/(float)y;m=x/(float)y;printf("%d\t%8.3f\n",t,m);t=(float)x/y;m=(float)x/y;printf("%d\t%8.3f\n",t,m);}3.編輯以下程序:對(duì)程序進(jìn)行分析,看程序的輸出結(jié)果在下列各種情況下應(yīng)是什么,然后上機(jī)運(yùn)行該程序看實(shí)際結(jié)果(寫在實(shí)驗(yàn)報(bào)告里)與你分析的有無(wú)不同,找出原因。#include"stdio.h"voidmain(){intx,y,t;doublea;floatb;intc;scanf(“d%d”&x,&y);c=b=a=20/3;t=(x%y,x/y);printf("%d%d\n",x--,--y);printf("%d\n",t);printf("%d\n",(x=5*6,x*4,x+5));printf("%d%f%f\n",c,b,a);}⑴程序運(yùn)行時(shí),在鍵盤上輸入203⑵程序運(yùn)行時(shí),在鍵盤上輸入1554.在分析下面程序的運(yùn)行結(jié)果后進(jìn)行上機(jī)驗(yàn)證。#include"stdio.h"voidmain(){inta=3,b=4,c=5,x;

x=c/b+((float)a/b&&(float)(a/c));

printf(″\nx=%d\n″,x);

x=a++&&b--;

printf(″\n%d,%d,%d,%d\n″,a,b,c,x);}上機(jī)運(yùn)行的結(jié)果與你分析的結(jié)果是否一致?不一致的原因是什么?三、對(duì)上述實(shí)驗(yàn)進(jìn)行總結(jié),寫出實(shí)驗(yàn)報(bào)告。實(shí)驗(yàn)四選擇結(jié)構(gòu)程序設(shè)計(jì)(一)一、實(shí)驗(yàn)?zāi)康?.掌握關(guān)系表達(dá)式和邏輯表達(dá)式的使用。2.熟悉選擇結(jié)構(gòu)程序設(shè)計(jì)。3.掌握if語(yǔ)句的使用方法。4.掌握使用switch語(yǔ)句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)。二、實(shí)驗(yàn)內(nèi)容編程:用于完成對(duì)輸入的整數(shù)判斷它是奇數(shù)還是偶數(shù),并給出相應(yīng)的提示。編程:輸入兩個(gè)整數(shù),輸出其中的大數(shù)。提示:改用if-else語(yǔ)句判別a,b的大小,若a大,則輸出a,否則輸出b。編程:要求判別鍵盤輸入字符的類別。說(shuō)明:可以根據(jù)輸入字符的ASCII碼來(lái)判別類型。ASCII值小于32的為控制字符。在“0”和“9”之間的為數(shù)字,在“A”和“Z”之間為大寫字母,在“a”和“z要求:用if-else-if語(yǔ)句實(shí)現(xiàn),判斷輸入字符ASCII碼所在的范圍,分別給出不同的輸出。例如:輸入為“g”,輸出顯示它為小寫字符。4.解一元二次方程:ax2+bx+c=0要求:(1)方程系數(shù)a,b,c用scanf函數(shù)輸入;(2)輸入這四組數(shù)據(jù)運(yùn)行該程序:a=1,b=2,c=1a=1,b=2,c=2a=2,b=6,c=1a=0,b=2,c=15.從鍵盤輸入1~12之間的數(shù)字,輸出表示一年中對(duì)應(yīng)某一個(gè)月的英文單詞。要求:(1)用switch語(yǔ)句實(shí)現(xiàn)(2)用scanf函數(shù)輸入一個(gè)數(shù)字6.從鍵盤輸入1~7之間的數(shù)字,輸出表示一周中對(duì)應(yīng)某一天的英文單詞。三、對(duì)上述實(shí)驗(yàn)進(jìn)行總結(jié),寫出實(shí)驗(yàn)報(bào)告。實(shí)驗(yàn)五選擇結(jié)構(gòu)程序設(shè)計(jì)(二)一、實(shí)驗(yàn)?zāi)康倪M(jìn)一步掌握選擇結(jié)構(gòu)程序設(shè)計(jì),熟練運(yùn)用選擇語(yǔ)句編寫程序,提高調(diào)試和修改程序的能力。二、實(shí)驗(yàn)內(nèi)容1.輸入三個(gè)整數(shù),輸出最大數(shù)和最小數(shù)。2.有一函數(shù):x(x<1)y=2x-1(1=<x<10)3x-11(x>=10)用scanf函數(shù)輸入x的值(分別為x<1,1—10,>=10三種情況),求y值。(用if語(yǔ)句)3.編寫程序,輸入三角形三邊a、b、c,判斷a、b、c能否構(gòu)成三角形,若不能則輸出相應(yīng)的信息,若能則判斷組成的是等腰、等邊、直角還是一般三角形。實(shí)驗(yàn)步驟與要求:(1)輸入一組數(shù)據(jù)3,4,8,觀察程序運(yùn)行結(jié)果.(2)另外再輸入幾組數(shù)據(jù)進(jìn)行測(cè)試:3,4,5;3,3,3;3,3,54.輸入某學(xué)生的成績(jī),經(jīng)處理后給出學(xué)生的等級(jí),等級(jí)分類如下:90分以上(包括90):A80至90分(包括80):B70至80分(包括70):C60至70分(包括60):D60分以下:E方法一:(用if語(yǔ)句的嵌套)方法二:用switch語(yǔ)句(用switch語(yǔ)句)提示:因switch語(yǔ)句中case后的表達(dá)式必須是一個(gè)常量表達(dá)式,應(yīng)在switch語(yǔ)句之前,把score除十取整,化為相應(yīng)的常數(shù)。5.用scanf函數(shù)輸入一個(gè)年份year,計(jì)算這一年2月份的天數(shù)days,然后用輸出函數(shù)printf輸出days。實(shí)驗(yàn)步驟與要求:(1)有變量定義為整型。(2)輸入前要加提示語(yǔ)句。(3)輸出結(jié)果前要有必要的文字說(shuō)明。說(shuō)明:(1)閏年的條件是:year能被4整除但不能被100整除,或者year能被400整除。(2)如果year是閏年,則2月份的天數(shù)為29天,不是閏年則為28天。三、對(duì)上述實(shí)驗(yàn)進(jìn)行總結(jié),寫出實(shí)驗(yàn)報(bào)告。實(shí)驗(yàn)六循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(一)一、實(shí)驗(yàn)?zāi)康?.熟練掌握三種循環(huán)語(yǔ)句的應(yīng)用。2.熟練掌握循環(huán)結(jié)構(gòu)的嵌套。3.理解并掌握break和continue語(yǔ)句在循環(huán)結(jié)構(gòu)中的不同作用。二、實(shí)驗(yàn)內(nèi)容1.編程計(jì)算

#include<stdio.h>voidmain()

{inti=1,s=0;

while(i<=10)

{

s+=i;

i++;

}

printf(″\ns=%d″,s)

}

分析:1)上機(jī)運(yùn)行程序,分析運(yùn)行結(jié)果。2)采用for語(yǔ)句實(shí)現(xiàn),比較while語(yǔ)句和for語(yǔ)句的用法。2.編程:求1-100的奇數(shù)和。(用while語(yǔ)句)3.編程:求1—100的偶數(shù)和。(用do…while語(yǔ)句)4.編程:用于輸出fibnocci數(shù)列的前20項(xiàng),每行輸出5個(gè)。(用for語(yǔ)句)說(shuō)明:fibnocci數(shù)列的前兩項(xiàng)均為1,以后各項(xiàng)等于其前兩項(xiàng)之和。5.編程:⑴用for語(yǔ)句計(jì)算s=3+33+3336.編程:輸出100以內(nèi)能被7整除的數(shù)。(continue語(yǔ)句)7.編程:輸出三角形的九九乘法表(循環(huán)嵌套)8.編程:⑴求100-200之間的素?cái)?shù),把它們按每行5個(gè)素?cái)?shù)全部顯示出來(lái),并給出素?cái)?shù)的個(gè)數(shù)。說(shuō)明:素?cái)?shù)是只能被1和它本身整除的數(shù)。判斷素?cái)?shù)的方法:用一個(gè)數(shù)分別去除2到這個(gè)數(shù)減1(或2到sqrt(這個(gè)數(shù))),如果能被整除,則表明此數(shù)不是素?cái)?shù),反之是素?cái)?shù)。三、對(duì)上述實(shí)驗(yàn)進(jìn)行總結(jié),寫出實(shí)驗(yàn)報(bào)告,把你通過(guò)本實(shí)驗(yàn)掌握的內(nèi)容整理出來(lái)。實(shí)驗(yàn)七循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(二)一、實(shí)驗(yàn)?zāi)康倪M(jìn)一步掌握循環(huán)結(jié)構(gòu)程序設(shè)計(jì),熟練運(yùn)用循環(huán)語(yǔ)句編寫程序,提高調(diào)試和修改程序的能力。二、實(shí)驗(yàn)內(nèi)容1.編程求1+2!+3!+...+20!的和。2.輸入兩個(gè)正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)。分析:計(jì)算兩個(gè)數(shù)的最大公約數(shù);首先,隨機(jī)輸入兩個(gè)數(shù)m,n(默認(rèn)m>n,若m<n,則交換m與n);其次,使k為m除以n的余數(shù),如果m能被n整除,則k值為0,n為這兩個(gè)數(shù)的最大公約數(shù),否則,使k代替n,n代替m,重復(fù)以上過(guò)程,直到k值為0。3.打印出所有的“水仙花數(shù)”,所謂“水仙花數(shù)”是指一個(gè)三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如:153是一個(gè)“水仙花數(shù)”,因?yàn)?53=13+53+33。分析:利用for循環(huán)控制100—999個(gè)數(shù),每個(gè)數(shù)分解出個(gè)位,十位,百位。4.編程實(shí)現(xiàn):百錢買百雞。5.打印輸出楊輝三角三、對(duì)上述實(shí)驗(yàn)進(jìn)行總結(jié),寫出實(shí)驗(yàn)報(bào)告。實(shí)驗(yàn)八數(shù)組應(yīng)用(一)一、實(shí)驗(yàn)?zāi)康?.掌握一維數(shù)組、二維數(shù)組的定義及初始化、元素的引用等。2.掌握字符數(shù)組及字符串處理函數(shù)的使用。3.掌握與數(shù)組有關(guān)的算法:排序、查找等。二、實(shí)驗(yàn)內(nèi)容1.閱讀下面程序,寫出程序運(yùn)行結(jié)果,并且上機(jī)進(jìn)行驗(yàn)證。(1)#include“stdio.h”voidmain(){inti,n[4]={0,0,0,0};for(i=1;i<4;i++){if(i==3)break;n[i]=n[i-1]+1;}printf(“n[i-1]=%dn[i]=%d\n”,n[i-1],n[i]);}(2)#include"stdio.h"voidmain(){charch[]={'0','1','2','3','4','5','6','7','8','9'};inti=0,m=2,r,x=42;charb[80];while(x){r=x%m;x/=m;b[i++]=ch[r];}for(--i;i>=0;i--)printf("%c",b[i]);printf("\n");}(3)以下是實(shí)現(xiàn)兩個(gè)字符串的連接(不使用庫(kù)函數(shù)strcat())的程序。上機(jī)運(yùn)行程序,并分析和理解程序的實(shí)現(xiàn)過(guò)程,從中學(xué)會(huì)對(duì)字符串操作的程序設(shè)計(jì)。#include<stdio.h>#include<conio.h>voidfun(charp1[],charp2[]){inti,j;for(i=0;p1[i];i++)for(j=0;p2[j];j++)p1[i++]=p2[j];p1[i]='\0';}voidmain(){chars1[80],s2[80];clrscr();printf("Enters1ands2:\n");scanf("%s%s",s1,s2);printf("s1=%s\n",s1);printf("s2=%s\n",s2);printf("Invokefun(s1,s2):\n");fun(s1,s2);printf("Afterinvoking:\n");printf("%s\n",s1);}例如,分別輸入下面兩個(gè)字符串:Thisisthebestprogram.程序輸出:Thisisthebestporgram.2.程序填空(根據(jù)題意在空白處填入適當(dāng)?shù)膬?nèi)容,使程序變得完整。并上機(jī)進(jìn)行調(diào)試驗(yàn)證)(1)程序說(shuō)明:下列程序完成的是插入排序功能:數(shù)組a中存放一個(gè)遞增數(shù)列,輸入一個(gè)整數(shù)x,將它插入到數(shù)組中,使之仍為一個(gè)有序數(shù)列。#include"stdio.h"#defineN10voidmain(){inta[]={1,10,20,30,40,50,60,70,80,90},x,i,p;scanf("%d",&x);for(i=0,p=N;i<N;i++)if(x<a[i]){p=i;____________;}for(i=N-1;i>=p;___________)a[i+1]=a[i];_______________;printf("%d",x);for(i=0;i<=N;i++)printf("%5d",a[i]);printf("\n");}(2)程序說(shuō)明:下面程序完成的是折半查找。A數(shù)組中存放的是n個(gè)由大到小已經(jīng)排好序的數(shù)列,從這n個(gè)數(shù)中查找x的值是否存在?;舅枷耄涸诓檎曳秶?,將x與處于中間位置上的數(shù)比較,如果相等,則查找成功,如果小于該元素,則在較小的一半元素里再進(jìn)行折半查找;如果x大于該元素,則在較大的一半元素里再進(jìn)行折半查找。變量top,bottom,mid分別指向查找范圍的頂部、底部和中間位置。#include"stdio.h"#definen10main(){inta[n],find;intx,i,top,bottom,mid;printf("inputthesortednumbers:\n");for(i=0;i<n;i++)scanf("%d",__________);printf("inputthenumbertofind:\n");scanf("%d",&x);find=0;top=0;bottom=n-1;if(x<=a[0]&&__________)while(!find&&top<=bottom){mid=_______________;if(x==a[mid]){find=1;printf("x=%dposition=%d\n",x,mid);}elseif(_______________)bottom=mid-1;elsetop=mid+1;}if(__________)printf("thenumber%disnotinthetable",x);}3.程序設(shè)計(jì)(根據(jù)題意編寫程序并上機(jī)進(jìn)行調(diào)試)。(1)編程:輸入10個(gè)數(shù)存入一維數(shù)組,然后再按逆序重新存放后輸出。(2)編程:從鍵盤輸入兩個(gè)字符串ch2、ch1,然后將字符串ch2連接到字符串ch1的后面,并輸出連接后的字符串。實(shí)驗(yàn)九數(shù)組應(yīng)用(二)一、實(shí)驗(yàn)?zāi)康?.掌握二維數(shù)組的定義和初始化。2.掌握二維數(shù)組元素的引用及其應(yīng)用。二、實(shí)驗(yàn)內(nèi)容1.閱讀下面程序,寫出程序運(yùn)行結(jié)果,并且上機(jī)進(jìn)行驗(yàn)證。(1)#include“stdio.h”voidmain(){inta[][3]={9,7,5,3,1,2,4,6,8};inti,j,s1=0,s2=0;for(i=0;i<3;i++)for(j=0;j<3;j++){if(i==j)s1=s1+a[i][j];if(i+j==2)s2=s2+a[i][j]}printf("s1=%ds2=%d",s1,s2);}(2)#include"stdio.h"voidmain(){intr[5]={1,2,3,4,5};inti,j,a[5][5];for(i=0;i<=4;i++){for(j=i;j<=4;j++)a[i][j]=r[j-i];for(j=0;j<i;j++)a[i][j]=r[i-j];}for(i=0;i<5;i++){for(j=0;j<5;j++)printf("%2d",a[i][j]);printf("\n");}}2.程序填空(根據(jù)題意在空白處填入適當(dāng)?shù)膬?nèi)容,使程序變得完整。并上機(jī)進(jìn)行調(diào)試驗(yàn)證)(1)程序說(shuō)明:下面程序分別輸出方陣中主對(duì)角線、副對(duì)角線上元素的和suml和sum2(主對(duì)角線為從矩陣的左上角至右下角的連線,副對(duì)角線為從矩陣的右上角至左下角的連線).#include"stdio.h"#defineSIZE5voidmain(){inta[SIZE][SIZE],m,n,sum1,sum2;for(m=0;m<SIZE;m++)for(n=0;n<SIZE;n++)scanf("%d",&a[m][n]);sum1=sum2=________;for(m=0;m<SIZE;m++){sum1=sum1+______;sum2=sum2+______;}printf("sum1=%dsum2=%d\n",sum1,sum2);}(2)程序說(shuō)明:下面程序打印出如下所示的楊輝三角行(打印10行)。11112113311464115101051…….#include"stdio.h"voidmain(){inti,j,a[10][10]={{1},{1,1}};for(i=2;i<10;i++){a[i][0]=1;___________;for(j=0;j<i;j++)a[i][j]=a[i-1][j]+____________;}for(i=0;i<10;i++){for(j=0;j<=i;j++)printf("%4d",a[i][j]);___________;}}3.程序設(shè)計(jì)(根據(jù)題意編寫程序并上機(jī)進(jìn)行調(diào)試)。(1)設(shè)有一個(gè)3行5列的數(shù)組,編寫程序從鍵盤輸入數(shù)據(jù),并找出二維數(shù)組中最大元素的值及其行、列下標(biāo)。(2)已知A是一個(gè)3×4矩陣,B是一個(gè)4×5矩陣,編寫程序,從鍵盤輸入矩陣A、B的值,求A×B得到的新,并輸出矩陣C。(3)設(shè)某班有20個(gè)學(xué)生,每個(gè)學(xué)生選修了三門課,編寫程序,輸入20個(gè)學(xué)生三門課的成績(jī),計(jì)算每個(gè)學(xué)生的平均成績(jī),最后輸出每個(gè)學(xué)生三門課的成績(jī)及平均成績(jī)。實(shí)驗(yàn)十函數(shù)應(yīng)用(一)一、實(shí)驗(yàn)?zāi)康?.掌握函數(shù)的定義、函數(shù)的說(shuō)明和調(diào)用。2.掌握函數(shù)的參數(shù)及其傳遞方式,函數(shù)值的正確返回。二、實(shí)驗(yàn)內(nèi)容1.閱讀下面程序,寫出程序運(yùn)行結(jié)果,并且上機(jī)進(jìn)行驗(yàn)證。(1)#include"stdio.h"intswap(inta,intb){intc,s;c=a;a=b;b=c;s=a+b;returns;}voidmain(){inta,b,s;a=3;b=4;s=swap(a,b);printf("a=%db=%ds=%d\n",a,b,s);}(2)#include"stdio.h"intfun(intnum){intk=1;do{k*=num%10;num/=10;while(num);return(k);}voidmain(){intn=26;printf("%d\n",fun(n));}2.程序填空(根據(jù)題意在空白處填入適當(dāng)?shù)膬?nèi)容,使程序變得完整。并上機(jī)進(jìn)行調(diào)試驗(yàn)證)(1)程序說(shuō)明:下面程序?qū)⑤斎氲氖M(jìn)制數(shù)n轉(zhuǎn)換為b進(jìn)制數(shù),并將轉(zhuǎn)換結(jié)果輸出。轉(zhuǎn)換的方法是:除b取余法。#include"stdio.h"voidtransfer(intm,intk){inta[20],i;for(i=0;m;i++){a[i]=;m/=k;}for(;i>=0;i--)printf("%d",a[i]);}voidmain(){intb,n;scanf("%d%d",);}(2)程序說(shuō)明:歌德巴赫猜想指出:任何一個(gè)充分大的偶數(shù)都可以表示為兩個(gè)素?cái)?shù)之和,例如4=2+26=3+38=3+5…50=3+47。下面程序?qū)?-50之間的所有偶數(shù)用兩個(gè)素?cái)?shù)之和表示,判斷一個(gè)整數(shù)是否為素?cái)?shù)用函數(shù)prime完成。#include"stdio.h"intprime(intx){intk,flag=1;for(k=2;k<=x/2;k++)if(){flag=0;break;}return();}voidmain(){intm,n,k;for(m=4;m<=50;m++)for(n=2;n<m-1;n++)if(prime(n)&&){printf("%d=%d+%d\n",)break;}}3.分析下面程序,上機(jī)運(yùn)行驗(yàn)證分析結(jié)論。#include“stdio.h”intf1(intx,inty){retumx>y?x:y;}intf2(intx,inty){returnx>y?y:x;}voidmain(){inta=4,b=3,c=5,d,e,f;d=f1(a,b);d=fl(d,c);e=f2(a,b);e=f2(e,c);f=a+b+c-d-e;printf("%d,%d,%d\n",d,e,f);}/*函數(shù)f1是一個(gè)求兩個(gè)整數(shù)中最大值的函數(shù),函數(shù)f2是一個(gè)求兩個(gè)整數(shù)中最小值的函數(shù)。*/分析并理解程序結(jié)構(gòu)、牛頓迭代法的實(shí)現(xiàn)過(guò)程、函數(shù)定義和調(diào)用的方法,初始參數(shù)傳遞和結(jié)果傳遞的途徑。實(shí)驗(yàn)十一函數(shù)應(yīng)用(二)一、實(shí)驗(yàn)?zāi)康?.掌握函數(shù)的嵌套調(diào)用和遞歸調(diào)用2.掌握數(shù)組做函數(shù)參數(shù)的用法3.掌握全局變量和局部變量的用法。4.掌握變量的存儲(chǔ)類別。二、實(shí)驗(yàn)內(nèi)容1.閱讀下面程序,寫出程序運(yùn)行結(jié)果,并且上機(jī)進(jìn)行驗(yàn)證。(1)#include“stdio.h”inta=3,b=5,c;intf(intb){c=a+b;printf("%d%d%d\n",a,b,c);}voidmain(){inta=8;f(3);printf("%d%d%d\n",a,b,c);}(2)#include"stdio.h"voiddtob(intn){inti;if(n>1){i=n%2;dtob(n/2);}elsei=n;printf("%d",i);}voidmain(){inti=11;printf("%d->",i);dtob(i);printf("(2)\n");}(3)#include"stdio.h"intf1(intn){staticintf=1;f=f*n;return(f);}voidmain(){inti;for(i=1;i<=4;i++)printf("%5d",f1(i));}2.程序填空(根據(jù)題意在空白處填入適當(dāng)?shù)膬?nèi)容,使程序變得完整。并上機(jī)進(jìn)行調(diào)試驗(yàn)證)(1)程序說(shuō)明:用一個(gè)一維數(shù)組存放10個(gè)學(xué)生的成績(jī),寫一個(gè)函數(shù)求出平均分、最高分和最低分。#include"stdio.h"floatmax=0;min=0;floataverage(floatscore[],intn){inti;floatave,sum=score[0];max=min=score[0];for(i=1;i<n;i++){if(score[i]>max)max=score[i];elseif()min=score[i];sum=sum+score[i];}ave=sum/10;return;}voidmain(){floatave,score[10];inti;for(i=0;i<10;i++)scanf("%f",&score[i]);ave=average()printf("max=%6.2fmin=%6.2faverage=%6.2f\n,max,min,ave);}(2)程序說(shuō)明:在主函數(shù)中讀入一字符串,再讀入一字符,然后調(diào)用函數(shù)delete在字符串中查找并刪除該字符,最后輸出該字符串。#include"stdio.h"voiddelete(charp[],charch){inti=0,j;while(){if(p[i]==ch)for(j=i;j<;j++)p[i]=p[i+1];elsei++;}voidmain(){charp[80],ch;inti=0,j;scanf("%s",p);scanf("%c",&ch);delete();printf("%s",);}3.程序設(shè)計(jì)(根據(jù)題意編寫程序并上機(jī)進(jìn)行調(diào)試)。(1)程序說(shuō)明:寫兩個(gè)函數(shù)分別求兩個(gè)整數(shù)的最大公約數(shù)和最小公倍數(shù),用主函數(shù)調(diào)用這兩個(gè)函數(shù),并輸出結(jié)果,兩個(gè)整數(shù)由鍵盤輸入。要求:求最大公約數(shù)用遞歸方法實(shí)現(xiàn),遞歸公式為(r=m%n):(2)程序說(shuō)明:用遞歸函數(shù)將一個(gè)整數(shù)n轉(zhuǎn)換成字符串,例如,輸入568,應(yīng)輸出字符串“865”。n的位數(shù)不確定,可以是任意位數(shù)的整數(shù)。(3)程序說(shuō)明:編寫程序?qū)?0個(gè)學(xué)生5門課的成績(jī)進(jìn)行處理,要求分別用函數(shù)實(shí)現(xiàn)如下幾個(gè)功能:①輸入學(xué)生數(shù)據(jù);②求每個(gè)學(xué)生的平均分;③求每門課的平均分;④輸出平均分最高的學(xué)生的成績(jī);⑤輸出學(xué)生成績(jī)表(包括每個(gè)學(xué)生的平均成績(jī)和每門課的平均成績(jī))。實(shí)驗(yàn)十二指針的應(yīng)用一、實(shí)驗(yàn)?zāi)康恼莆罩羔樧兞康亩x和引用。二、實(shí)驗(yàn)內(nèi)容1.下面是合并兩個(gè)字符串的程序。在分析下面程序后進(jìn)行上機(jī)驗(yàn)證并分析運(yùn)行結(jié)果。

voidappend(char*from,char*to)

{for(;*to;to++);

for(;*from;)*to++=*from++;

*to=0;

}

voidmain()

{chara[70],b[70];

printf(″\ninputstringa:″);

scanf(″%s″,a);

printf(″\ninputstringb:″);

scanf(″%s″,b);

append(a,b);

printf(″\n%s″,a);

}理解指針傳遞參數(shù)的用法。2.編制如下程序,并上機(jī)調(diào)試運(yùn)行,最后在實(shí)驗(yàn)報(bào)告中寫出運(yùn)行結(jié)果。(1)使用指針作函數(shù)參數(shù),編寫用于交換兩個(gè)參數(shù)值的函數(shù)。調(diào)用該函數(shù)用于對(duì)從鍵盤輸入的兩個(gè)整數(shù)進(jìn)行交換。(2)編寫一個(gè)函數(shù),用于對(duì)作為參數(shù)的數(shù)組中的元素求平均值,函數(shù)以指針?lè)绞竭M(jìn)行處理。平均值為函數(shù)的返回值。(3)編寫一個(gè)函數(shù),用于對(duì)作為參數(shù)的數(shù)組中的元素求最大值,并將最大值從數(shù)組中刪除。函數(shù)的首部類似于下列形式:dele_max(int*,int*)其中第一個(gè)參數(shù)為指向數(shù)組的指針,第二個(gè)參數(shù)為指向數(shù)組長(zhǎng)度變量的指針。因此調(diào)用數(shù)組時(shí),使用如下形式:dele_max(a,&n);其中a為一數(shù)組名,n為存放a數(shù)組長(zhǎng)度的變量。3.程序分析題。分析以下程序,對(duì)分析的結(jié)果上機(jī)檢驗(yàn)。(1)下列程序使用指針操作數(shù)組有各種形式,體會(huì)其用法。#include“stdio.h”voidmain(){inta[]={0,1,2,3,4},i,*p;for(i=0;i<=4;i++)printf("%d\t",a[i]);printf("\n");for(p=&a[0];p<=&a[4];p++)printf("%d\t",*p);printf("\n\n");for(p=&a[0],i=1;i<5;i++)printf("%d\t",p[i]);printf("\n");for(p=a,i=0;p+i<=a+4;p++,i++)printf("%d\t",*(p+i));printf("\n\n");for(p=a+4;p>=a;p--)printf("%d\t",*p);printf("\n");for(p=a+4,i=0;i<=4;i++)printf("%d\t",p[-i]);printf("\n");for(p=a+4;p>=a;p--)printf("%d\t",a[p-a]);printf("\n");}(2)#include"stdio.h"voidmain(){char*s2="aceg";*s2++;printf("%c\n",*s2);printf("%c\n",*(s2+1));printf("%c\n",*s2+1);}(3)運(yùn)行以下程序,從鍵盤輸入MyBook,結(jié)果是什么?#include"stdio.h"charfun(char*s){if(*s<='Z'&&*s>='A')*s+=32;return(*s);}voidmain(){charc[80],*p;p=c;scanf("%s",p);while(*p){*p=fun(p);putchar(*p);p++;}printf("\n");}(4)#include"stdio.h"voidmain(){int*p,s[3][4],i,j,k=1;p=s[0];for(i=0;i<3;i++)for(j=0;j<4;j++)*p++=k++;p=s[0];for(i=0;i<3;i++)for(j=0;j<4;j++)printf((j%4)?"%4d":"\n%4d",*p++);}(5)#include"stdi

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論