《實(shí)驗(yàn)三循環(huán)控制》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《實(shí)驗(yàn)三循環(huán)控制(8頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、
實(shí)驗(yàn)三 循環(huán)控制
實(shí)驗(yàn)課程名:高級(jí)語(yǔ)言程序設(shè)計(jì)(C)
專(zhuān)業(yè)班級(jí): 學(xué)號(hào): 姓名:
實(shí)驗(yàn)時(shí)間: 實(shí)驗(yàn)地點(diǎn): 指導(dǎo)教師:
一、實(shí)驗(yàn)?zāi)康暮鸵?
1. 了解C語(yǔ)言表示邏輯量的方法。
2. 學(xué)會(huì)正確使用邏輯運(yùn)算符和邏輯表達(dá)式
3. 熟練掌握if 語(yǔ)句和 switch語(yǔ)句。
4. 結(jié)合程序掌握一些簡(jiǎn)單的算法。
5. 學(xué)習(xí)調(diào)試程序。
二、實(shí)驗(yàn)內(nèi)容
1.1、任務(wù)名稱(chēng): 程序c40101.c求1+…+100,填空
2、,實(shí)現(xiàn)該功能
源代碼:#include
void main()
{int s,i;
s=0;
for(i=0;i<=100;i++)
s=s+i;
printf("1+...+100=%d\n",s);
}
運(yùn)行結(jié)果:(需要截圖)
運(yùn)行結(jié)果分析:可以去掉,將s=0移到for語(yǔ)句的表達(dá)式一即可
1.2、任務(wù)名稱(chēng)
源代碼:#include
void main()
{int s,i;
i=1,s=0;
while(i<=100)
{s=s+i;
i++;
}
printf("s=1+...+100=%d\n",s)
3、;
}
運(yùn)行結(jié)果:(需要截圖)
運(yùn)行結(jié)果分析:while語(yǔ)句與for語(yǔ)句的互換
2.1、任務(wù)名稱(chēng): 比較下列兩個(gè)程序. 分別運(yùn)行這兩題,若輸入7,這兩個(gè)程序的結(jié)果分別是多少?若輸入12,這兩個(gè)程序的結(jié)果又分別是多少?比較為什么會(huì)有這樣的區(qū)別?
源代碼:#include
void main()
{ int i,n,sum=0;
scanf("%d",&i);
n=i;
while(i<=10)
{ sum+=i;
i++;
}
printf("%d+...+10=%d\n",n,sum);
}
運(yùn)行結(jié)果:(需要截圖)
4、2.2、
源代碼:#include
void main()
{ int i,n,sum=0;
scanf("%d",&i);
n=i;
do
{ sum+=i;
i++;
} while(i<=10);
printf("%d+...+10=%d\n",n,sum);
}
運(yùn)行結(jié)果:(需要截圖)
運(yùn)行結(jié)果分析:i>10時(shí),對(duì)while循環(huán)來(lái)說(shuō),一次也不執(zhí)行循環(huán)體,而對(duì)do……while循環(huán)語(yǔ)句來(lái)說(shuō)則至少要執(zhí)行一次循環(huán)體。
3、任務(wù)名稱(chēng): 預(yù)習(xí)c40103.c程序,若輸入12345,分析輸出結(jié)果是多少?上機(jī)驗(yàn)證
源代碼:#i
5、nclude
void main( )
{ long data;
scanf("%ld",&data);
while(data)
{ printf("%ld,",data%10);
data=data/10;
}
}
運(yùn)行結(jié)果:(需要截圖)
運(yùn)行結(jié)果分析:求余運(yùn)算符的使用
4、任務(wù)名稱(chēng): 程序c40104.c實(shí)現(xiàn)求Fibonacci數(shù)列的前n個(gè)數(shù)。(驗(yàn)證、調(diào)試)
運(yùn)行程序,寫(xiě)出運(yùn)行結(jié)果;采用單步跟蹤技術(shù)運(yùn)行該程序,觀察一下變量的變化。
源代碼:#include
vo
6、id main( )
{ long int f1, f2;
int i,n;
printf("Input n:");
scanf("%d",&n);
f1=f2=1;
for(i=1;i
7、
void main( )
{ int i,j,x;
for(i=0,x=0;i<2;i++)
{ x++;
for(j=0;j<3;j++)
{ if(j%2) continue;
x++;
}
x++;
}
printf("x=%d\n", x);
}
運(yùn)行結(jié)果:(需要截圖)
運(yùn)行結(jié)果分析 :嵌套for循環(huán)的執(zhí)行過(guò)程及continue語(yǔ)句的作用以及運(yùn)用。
6、任務(wù)名稱(chēng): 程序c40201.c輸入一批考試分?jǐn)?shù),用-1作為結(jié)束標(biāo)志,若輸入大于100分,則提示重新輸入,然后計(jì)算最高分、最低分與平均分。請(qǐng)調(diào)試、檢查程序中
8、的錯(cuò)誤,并改正之。
源代碼:#include
void main()
{ int mark;
int n=0,sum=0 ;
int max=0,min=100;
for(;;)
{ scanf("%d",&mark);
if(mark>100)
{ printf("Mark>100 , Please reinput\n");
continue;}
if(mark==-1) break;
n++;
sum=sum + m
9、ark ;
if(mark > max)
max=mark ;
if(mark100)
{ prin
10、tf("Mark>100 , Please reinput\n");
continue;}
7、任務(wù)名稱(chēng): .編程:輸入20個(gè)1~90的整數(shù),分類(lèi)統(tǒng)計(jì)1~30、31~60、61~90的數(shù)各有多少個(gè)?
編程點(diǎn)撥:
(1) count1計(jì)1~30的個(gè)數(shù),count2計(jì)31~60的個(gè)數(shù),count3計(jì)61~90的個(gè)數(shù)。
(2) 用for循環(huán)20次實(shí)現(xiàn)該程序的功能:輸入一個(gè)整數(shù)x,判斷該數(shù)所在的范圍,若x是1~30,則count1加1;若x是31~60,則count2加1;若x是61~90,則count3加1。
(3) 最后,輸出統(tǒng)計(jì)的結(jié)果。
源代碼#incl
11、ude
void main( )
{ int count1=0,count2=0,count3=0;
int i,x;
printf("Enter the 20 integer from 1 to 90:\n");
for(i=0;i<20;i++)
{ scanf("%d",&x);
if(x>=1&&x<=30)
count1++;
else if(x>=31&&x<=60)
count2++;
else count3++;
}
printf("統(tǒng)計(jì)結(jié)果:1~30:%d 31~60:%d 61~90:%d\n",count1,
12、count2,count3);
}:
運(yùn)行結(jié)果:(需要截圖)
運(yùn)行結(jié)果分析:用for循環(huán)20次實(shí)現(xiàn)該程序的功能:輸入一個(gè)整數(shù)x,判斷該數(shù)所在的范圍,若x是1~30,則count1加1;若x是31~60,則count2加1;若x是61~90,則count3加1
8、任務(wù)名稱(chēng): 編程:素?cái)?shù)是除了1和其本身以外,不能被其他自然數(shù)整除的自然數(shù)。從鍵盤(pán)輸入一個(gè)數(shù),判斷該數(shù)是不是素?cái)?shù)?
源代碼:#include
void main()
{ int i, x;
printf("Enter one natural integer: ");
scanf("%d",&
13、x);
for(i=2;i<=x-1;i++)
if(x%i==0)break;
if(i
in
14、t main()
{
int i,j,k,n;
printf("parcissus numbers are ");
for (n=100;n<999;n++)
{
i=n/100;
j=n/10-i*10;
k=n%10;
if (n==i*i*i + j*j*j + k*k*k)
printf("%d ",n);
}
printf("\n");
return 0;
}
運(yùn)行結(jié)果:(需要截圖)
運(yùn)行結(jié)果分析:利用一個(gè)循環(huán),對(duì)100~999范圍內(nèi)的每個(gè)3位數(shù)逐位分離后進(jìn)行判斷
*
15、
***
*****
*******
*********
10、任務(wù)名稱(chēng)輸出下列圖形。
源代碼:#include
int main()
{int i,j,k;
for(i=0;i<=4;i++)
{for(j=0;j<=3-i;j++)
printf(" ");
for(k=0;k<=2*i;k++)
printf("*");
printf("\n");
}}
運(yùn)行結(jié)果:(需要截圖)
運(yùn)行結(jié)果分析:每一行的星號(hào)與行號(hào)有關(guān),即2*i+1,其中i是行號(hào);每一行的輸出位置比上一行少一個(gè)空格
三、結(jié)論(寫(xiě)本次實(shí)驗(yàn)的收獲)
1. 了解C語(yǔ)言表示邏輯量的方法。
2. 學(xué)會(huì)正確使用邏輯運(yùn)算符和邏輯表達(dá)式
3. 熟練掌握if 語(yǔ)句和 switch語(yǔ)句。
4. 結(jié)合程序掌握一些簡(jiǎn)單的算法。
5. 學(xué)習(xí)調(diào)試程序。
說(shuō)明:
1、 每次實(shí)驗(yàn)報(bào)告后,以學(xué)生的學(xué)號(hào)+實(shí)驗(yàn)項(xiàng)目名作為該word文件名保存。例如某學(xué)生學(xué)號(hào)為20080001,姓名為張三,本次實(shí)驗(yàn)名稱(chēng)是:實(shí)驗(yàn)一 順序結(jié)構(gòu)程序設(shè)計(jì),則本次實(shí)驗(yàn)報(bào)告的保存文件名為:01張三實(shí)驗(yàn)一.doc。(禁止提交文件夾)
2、 在每次試驗(yàn)完后內(nèi),學(xué)生以整個(gè)試驗(yàn)項(xiàng)目為一個(gè)完整文檔,將本報(bào)告(電子文檔和紙質(zhì)文檔)按照(1)要求的文件名提交給實(shí)驗(yàn)指導(dǎo)教師。