中國大學(xué)mooc《C程序設(shè)計基礎(chǔ)(廈門大學(xué)) 》章節(jié)測試答案_第1頁
中國大學(xué)mooc《C程序設(shè)計基礎(chǔ)(廈門大學(xué)) 》章節(jié)測試答案_第2頁
中國大學(xué)mooc《C程序設(shè)計基礎(chǔ)(廈門大學(xué)) 》章節(jié)測試答案_第3頁
中國大學(xué)mooc《C程序設(shè)計基礎(chǔ)(廈門大學(xué)) 》章節(jié)測試答案_第4頁
中國大學(xué)mooc《C程序設(shè)計基礎(chǔ)(廈門大學(xué)) 》章節(jié)測試答案_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

中國大學(xué)mooc《C程序設(shè)計基礎(chǔ)(廈門大學(xué)) 》章節(jié)測試答案.doc 免費下載

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

文檔簡介

titleC程序設(shè)計基礎(chǔ)(廈門大學(xué))中國大學(xué)mooc答案100分最新版content第一周C語言簡介選擇題1、下面的敘述正確的是()。答案:一個C的源程序可以由一個或多個函數(shù)組成2、C程序是從()開始執(zhí)行的。答案:主函數(shù)3、關(guān)于C程序的敘述,正確的是(

)。答案:一條語句可以寫在多行,也可以多條語句寫在一行4、以下正確的printf語句是()。答案:?printf(“ThisisaCprogram.”);5、

/*程序功能:打印輸出helloworld

#include<stdio.h>

intmain()

{

printf(“Hello,world”);

return0;}上面程序的運行結(jié)果是(

)答案:程序出錯,不能運行6、設(shè)有程序“1.cpp”,編譯后運行該程序,執(zhí)行的是(

)文件。答案:1.exe7、下面程序的錯誤是()#include

<stdio.h>

int

mian()

{

printf(“hello

world”)

return

0;}答案:printf(“hello

world”)

后面少分號;

主函數(shù)名寫錯8、輸出結(jié)果為500+200=700的語句是()。答案:printf(“500+200=%d”,500+200);;

printf(“500+200=700”);9、輸出結(jié)果為2564=1600的語句是()。答案:printf(“2564=%d”,2564);;

printf(“2564=1600″);10、下面是關(guān)于C程序注釋的敘述,其中正確的是(

)。答案:/……/可以注釋多行,也可以注釋一行;

//是行注釋,從//開始至行尾為注釋內(nèi)容11、下面程序的錯誤是()#include

<stdio.h>

int

mian()

{

printf(“hello

world”)

return

0;}答案:printf(“hello

world”)

后面少分號;

主函數(shù)名寫錯第一周C語言簡介判斷題(本周語法匯總)1、編寫C程序時,main函數(shù)必不可少。答案:正確2、printf(“”);

可實現(xiàn)換行答案:正確3、C的每條語句結(jié)束處必須用分號。答案:正確4、注釋語句不影響程序的運行。答案:正確5、若使用printf輸出結(jié)果,則必須在程序前添加#include<stdio.h>答案:正確6、C程序中的標(biāo)點符號(如分號;)必須用英文的標(biāo)點符號。答案:正確7、printf(“”);

可實現(xiàn)換行答案:正確8、printf(“”);

可實現(xiàn)換行答案:正確

第二周C語言基礎(chǔ)語法語法知識選擇題1、下列浮點數(shù)的表示中不正確的是(

)。答案:e232、合法的C語言標(biāo)識符是(

)答案:sum3、不合法的C語言標(biāo)識符是(

)。答案:4d4、下列定義變量的語句中錯誤的是(

)。答案:Doublea1;5、在C語言中,要求運算數(shù)必須是整型的運算符是(

)。答案:%6、下面(

)語句正確地描述了計算公式

答案:y=(axx*x)/(x–b);7、下面(

)是合法的賦值語句.答案:

i=1;8、下面程序的輸出是(

)。#include<stdio.h>intmain(){

intx=10,y=3;

printf(“%d”,y=x/y);

return0;}答案:39、下面程序的輸出是(

)。#include<stdio.h>int

main(){

int

a=5;

printf(“a=%d”,++a+2);

return0;}答案:a=810、78%10的結(jié)果是(

)。答案:811、下面程序的輸出是(

)。

#include

<stdio.h>int

main(){

int

a=8;

printf(“%d”,(a++)*2);

return0;}答案:1612、下面程序的輸出是(

)。#include

<stdio.h>int

main(){

int

a=3;

printf(“%d”,(a–)*7);

return0;}

答案:2113、下面程序的輸出是(

)。#include<stdio.h>int

main(){

int

b=3,a=3;

printf(“%d,%d”,b,a–);

return0;}

答案:3,314、i=1;執(zhí)行(

)語句后,變量i的值不會發(fā)生變化。答案:i+5;15、intx;scanf(“%d”,&x);下面(

)可以獲得x的個位數(shù)。答案:x%10;16、語句floatx=3.0

,y=4.0;下列表達式中y的值為9.0的是(

)。答案:y+=x+2.017、有關(guān)運算符的正確描述是(

)答案:單目運算符優(yōu)先級高于雙目運算符18、下面(

)語句正確地描述了方程

答案:?y=a*x*x*x+c;;

y=(a*x*x*x)+c;19、下面(

)能完成變量a,b的值的交換。答案:t=a;a=b;b=t;;

a=a+b;b=a-b;a=a-b;20、(

)可以使整型變量i的值加1。答案:i++;;

++i;;

i=i+1;;

i+=1;21、int

y,a;scanf(“%d”,&y);輸入任意整數(shù),下面(

)中,a是y的百位數(shù)。答案:a=y/100%10;;

a=y%1000/100;第二周C語言基礎(chǔ)語法第二周易錯知識點練習(xí)1(選做)1、當(dāng)x是41.0時,算術(shù)表達式5/9*(x-32)的運算結(jié)果是(

)。答案:02、答案:3.14159r*r/(a+b)

3、當(dāng)x是41.0時,printf(“%f”,5.0/9*(x-32));輸出結(jié)果是(

)。答案:5.0000004、x為int型,表達式

(x=1)+2的值是(

),x的值是(

)。答案:3,15、int

a=10,b=100;printf(“%d,%d,”,

a++,++b);printf(“%d”,

a);程序的輸出結(jié)果是(

)。答案:10,101116、在C語言中,下面(

)是正確的賦值表達式。答案:x=2;

b=a=2

第三周格式化輸入輸出及選擇結(jié)構(gòu)1選擇題—計分1、?能正確表示邏輯關(guān)系x<=y<=z的C語言表達式為(

)

答案:(x<=y)&&(y<=z)

2、能正確表示邏輯關(guān)系“a大于等于10或a小于等于0”的C語言表達式是(

)

答案:a>=10‖a<=0

3、能正確表示邏輯關(guān)系“79<X<90”的C語言表達式是(

)答案:?

(X>79)&&(

X<90)

4、設(shè)a為整型變量,不能正確表達數(shù)學(xué)關(guān)系10<a<15的C語言表達式是()答案:?10<a<15

5、設(shè)x,t均為int型變量,則執(zhí)行語句“x=10;t=x&&x>10;”后,t的值為()答案:?06、下面程序,運行后的輸出結(jié)果是(

)#include<stdio.h>intmain(){

int

a=1,b=3,c=4;if(a<b)

a=b;if(a<c)

a=c;printf(“%d,%d,%d”,a,b,c);}答案:4,3,4

7、語法不正確的語句是(

)答案:?if(x==y)&&(x!=0)

x++;8、如果整型變量a,b,c的值分別為5,4,3,則語句if(a>b>c)c++;執(zhí)行后c的值是(

)答案:39、如果整型變量a,b,c的值分別為3,4,5,則語句if(a<b<c)c++;執(zhí)行后c的值是()答案:610、運行以下程序,如果從鍵盤上輸入5,則輸出結(jié)果是(

)#include<stdio.h>int

main(){

intx;scanf(“%d”,&x);if(x–<5)printf(“%d”,x);}

答案:無輸出?11、C語言語句中,可以用來決定分支流程的表達式是(

)答案:?任意表達式12、intx=102,y=12;printf(“%2d,%3d”,x,y);執(zhí)行后輸出結(jié)果是(

)答案:102,1213、設(shè)i是int型變量,j是float型變量,用下面的語句給這兩個變量輸入值:

scanf(“i=%d,j=%f”,&i,&j);

為了把10和2.5分別賦給i和

j,則正確的輸入為(

)

答案:i=10,j=2.5<回車>

14、執(zhí)行下面語句,inta=1,b=2,c=3;if(a>c)

b=c;a=c;c=b;a,b,c的值分別為(

)(用逗號分隔)答案:3,2,215、請選出正確的輸入語句(

)。答案:doublef;scanf(“%lf”,&f);16、在printf函數(shù)中,浮點型數(shù)據(jù)輸出的格式控制符有(

)。答案:%e;

%f;

%g17、下面程序中,(

)可以輸出變量a,b,c的最大值。答案:if(a>=b&&a>=c)

printf(“最大值為%d”,a);

if(b>=a&&b>=c)

printf(“最大值為%d”,b);

if(c>=a&&c>=b)

printf(“最大值為%d”,c);

;

max=a;

if(b>max)max=b;

if(c>max)max=c;printf(“最大值為%d”,max);18、設(shè)a=1,b=2,c=3,關(guān)系表達式a+b>=c的值是(

)。

答案:119、設(shè)a=1,b=2,c=3,邏輯表達式a&&b&&c的值是(

)。

答案:120、設(shè)a=1,b=2,c=3,邏輯表達式a||!b||!c的值是(

)。

答案:121、輸入一個考試分數(shù)(0至100范圍內(nèi)),如果分數(shù)小于60分,則輸出“不及格”;大于90分輸出“優(yōu)秀”;大于等于60并且小于等于90,則輸出“合格”。(有1個空,答案一行寫一個,不要添加多余的空格)#include<stdio.h>

intmain(){

intx;

printf(“請輸入分數(shù)(0-100):“);

scanf(“%d”,&x);

if(x<60)

printf(“不及格”);

if(x>90)

printf(“優(yōu)秀”);

printf(“合格”);

//注意分數(shù)在一個區(qū)間內(nèi),C語言中該如何描述

return0;}

答案:(以下答案任選其一都對)if(x>=60&&x<=90);

if(60<=x&&x<=90);

if(60<=x&&90>=x);

if(x>=60&&90>=x);

if(x>=60&&x<=90);

if(60<=x&&x<=90);

if(60<=x&&90>=x);

if(x>=60&&90>=x);

if((x>=60)&&(x<=90))22、我國的郵政編碼由六位阿拉伯?dāng)?shù)字組成,前第三位代表郵區(qū),廈門市的郵政編碼前三位為361

。下面的程序功能:如果輸入的郵政編碼前3位是361,則輸出“廈門市的郵件”;如果不是361,則輸出“不是廈門市的郵件”。請完善程序(有2個空,答案一行寫一個,不要添加多余的空格).#include

<stdio.h>

int

main(){

int

code;

printf(“請輸入郵政編碼:

“);

scanf(”

%*3d”,&code);

//用scanf函數(shù)截取輸入郵政編碼的前3位

if(361

code

)

printf(

“廈門市的郵件”);

if

(361!=code)

printf(

“不是廈門市的郵件”);

return

0;}需要更多樣例參考的同學(xué)可查閱課件“

選擇結(jié)構(gòu)初步

”里的最后一個文檔

“習(xí)題解析”中第2題

答案:%3d

==23、設(shè)x,t均為int型變量,則執(zhí)行語句“x=10;

t=

x&&x>10;”后,t的值為()提示:賦值運算優(yōu)先級較低,低于算術(shù)、關(guān)系、邏輯運算。答案:?024、intx=102,y=12;printf(“%2d,%3d”,x,y);執(zhí)行后輸出結(jié)果是(

)提示:當(dāng)%md中m小于數(shù)據(jù)的實際寬度時,按實際寬度輸出。答案:102,1225、執(zhí)行下面語句,inta=1,b=2,c=3;if(a>c)

b=c;a=c;c=b;a,b,c的值分別為(

)(用逗號分隔)提示:由if控制的分支語句只有一條答案:3,2,226、輸入一個考試分數(shù)(0至100范圍內(nèi)),如果分數(shù)小于60分,則輸出“不及格”;大于90分輸出“優(yōu)秀”;大于等于60并且小于等于90,則輸出“合格”。(有1個空,答案一行寫一個,不要添加多余的空格)include<stdio.h>

intmain()

{

intx;

printf(“請輸入分數(shù)(0-100):“);

scanf(“%d”,&x);

if(x<60)

printf(“不及格”);

if(x>90)

printf(“優(yōu)秀”);

printf(“合格”);

//注意分數(shù)在一個區(qū)間內(nèi),C語言中該如何描述

return0;

}答案:(以下答案任選其一都對)if(x>=60&&x<=90);

if(60<=x&&x<=90);

if(60<=x&&90>=x);

if(x>=60&&90>=x);

if(x>=60&&x<=90);

if(60<=x&&x<=90);

if(60<=x&&90>=x);

if(x>=60&&90>=x);

if((x>=60)&&(x<=90))27、我國的郵政編碼由六位阿拉伯?dāng)?shù)字組成,前第三位代表郵區(qū),廈門市的郵政編碼前三位為361

。

下面的程序功能:如果輸入的郵政編碼前3位是361,則輸出“廈門市的郵件”;如果不是361,則輸出“不是廈門市的郵件”。

請完善程序(有2個空,答案一行寫一個,不要添加多余的空格).include

<stdio.h>

int

main(){

int

code;

printf(“請輸入郵政編碼:

“);

scanf(”

%*3d”,&code);

//用scanf函數(shù)截取輸入郵政編碼的前3位

if(361

code

)

printf(

“廈門市的郵件”);

if

(361!=code)

printf(

“不是廈門市的郵件”);

return

0;}需要更多樣例參考的同學(xué)可查閱課件“

選擇結(jié)構(gòu)初步

”里的最后一個文檔

“習(xí)題解析”中第2題

答案:%3d

==第三周格式化輸入輸出及選擇結(jié)構(gòu)1第三周易錯知識點練習(xí)(選做)1、int

x=8;在C程序中,表達式0<=x<=3的運算結(jié)果是(

)。答案:12、int

x=2,y=2;printf(“%d”,(x=0)&&(y=3));printf(“x=%d

y=%d“,

x,y);輸出結(jié)果是(

)。答案:0x=0

y=23、int

x=2,y=2;printf(“%d

“,(x=4)||(y=4));printf(“x=%d

y=%d“,

x,y);第二個printf的輸出結(jié)果是(

)。答案:x=4

y=24、scanf(“%d”,&a);

if(a<60)

printf(“a=%d\n”,a);

printf(“OVER”);如果輸入50,則輸出結(jié)果是(

)。答案:a=50OVER5、scanf(“%d”,&a);

if(a<60)

printf(“a=%d\n”,a);

printf(“OVER”);如果輸入70,則輸出結(jié)果是(

)。答案:OVER

第四周選擇結(jié)構(gòu)2第四周易錯知識點練習(xí)(選做)1、int

x=0;

if(!x)

printf(“x為非零”);else

printf(“x為零”);答案:x為非零2、a=10;if(a%2==0)

;

printf(“偶數(shù)”);

else

printf(“奇數(shù)”);程序的運行是(

)。答案:出錯3、int

x=2,y=-1,z=2;if

(x<y)if

(y<0)z=0;elsez+=1;printf(“%d”,z);答案:24、有如下程序段:if(q%p==0)

a=q/p;

printf(“%d=%d%d”,q,p,a);

//輸出因式分解q=pa

else

printf(“不能整除”);如果q=8,p=2,則輸出(

)。

答案:該段程序有語法錯誤,不能執(zhí)行。第四周選擇結(jié)構(gòu)2多分支選擇題1、分析以下程序,下列說法正確的是(

)#include<stdio.h>main(){

intx=5,a=0,b=0;

if(x=a+b)printf(“

*

“);

else

printf(“####”);}?答案:輸出####2、分析以下程序,下列說法正確的是(

)#include<stdio.h>main(){

intx=6,a=8,b=3;

if(x=a+b)printf(“

*

“);

else

printf(“####”);}答案:輸出

*

*

3、分析以下程序,下列說法正確的是(

)#include<stdio.h>main(){

intx=0,a=0,b=0;

if(x==a+b)printf(“

*

“);

else

printf(“####”);}答案:輸出

*

*4、運行以下程序,如果從鍵盤上輸入5,則輸出結(jié)果是()#include<stdio.h>int

main(){

intx;

scanf(“%d”,&x);

if(x–<5)

printf(“%d”,x);

else

printf(“%d”,x++);}提示:答案:45、運行以下程序,如果從鍵盤上輸入5,則輸出結(jié)果是()#include<stdio.h>int

main(){

intx;

scanf(“%d”,&x);

if(x–<5)

printf(“%d”,x);

else

printf(“%d”,++x);}可以參考本周課件“附加例題解析與作業(yè)指導(dǎo)”—-“選擇結(jié)構(gòu)附加例題解析”文檔的第一個例題答案:?56、運行以下程序,如果從鍵盤上輸入9,則輸出結(jié)果是()#include<stdio.h>int

main(){

intx;

scanf(“%d”,&x);

if(++x<10)

printf(“%d”,x);

else

printf(“%d”,–x);}可以參考本周課件“附加例題解析與作業(yè)指導(dǎo)”—-“選擇結(jié)構(gòu)附加例題解析”文檔的第一個例題答案:?97、以下程序的輸出是()#include<stdio.h>intmain(){

floatx=2.0,y;

if(x<0.0)

y=0.0;

else

if(x<10.0)

y=1.0/x;

else

y=1.0;

printf(“%f”,y);}答案:?0.5000008、?下面程序的運行結(jié)果是()。#include<stdio.h>main(){

inta=12,b=-34,c=56,min=0;

min=a;

if(min>b)

min=b;

if(min>c)

?

min=c;

printf(“%d”,min);}可以參考本周課件“附加例題解析與作業(yè)指導(dǎo)”—-“選擇結(jié)構(gòu)附加例題解析”文檔的最后一個例題答案:-349、分析以下程序,輸出結(jié)果是(

)#include<stdio.h>intmain(){

intx=5;

if(x)printf(“

*

“);

printf(“####”);}答案:

*

####10、分析以下程序,輸出結(jié)果是(

)#include<stdio.h>intmain(){

intx=5;

if(x)x=6;

x=7;

printf(“%d”,x);}答案:711、按功能鍵F5進入調(diào)試狀態(tài)后,可以(

)。答案:設(shè)置斷點;

控制程序一步一步地執(zhí)行,每執(zhí)行一步,都可以暫停;

觀察變量或表達式值的變化12、下面(

)是正確的符號函數(shù)程序。當(dāng)x>0時,y=1當(dāng)x=0時,y=0當(dāng)x<0時,y=-1(提示:按if-else配對規(guī)則分析程序,y值的運算結(jié)果與符號函數(shù)一致,才是正確的程序)答案:if(x>0)

y=1;else

if(x==0)

y=0;

elsey=-1;;

y=0;if(x!=0)

if(x>0)

y=1;

elsey=-1;13、程序功能:輸入一個整數(shù),當(dāng)它是偶數(shù)時,輸出“該數(shù)是偶數(shù)”,否則,輸出“該數(shù)是奇數(shù)”。請完善程序,空格處應(yīng)填(

)。#include<stdio.h>

intmain(){

intx;

printf(“請輸入x:“);

scanf(“%d”,&x);

if(x%2==0)

printf(“該數(shù)是偶數(shù)”);

//偶數(shù)除以2的余數(shù)為0

printf(“該數(shù)是奇數(shù)”);

return0;}答案:else;

if(x%2!=0);

elseif(x%2!=0)14、輸入一個考試分數(shù)(0至100范圍內(nèi)),如果分數(shù)小于60分,則輸出“不及格”;否則輸出“及格”。(程序有1個空,請選擇正確的答案)#include<stdio.h>

intmain(){

intx;

printf(“請輸入分數(shù)(0-100):“);

scanf(“%d”,&x);

if(x<60)

printf(“不及格”);

printf(“及格”);

return0;}答案:else;

if(x>=60);

elseif(x>=60)15、讀程序,寫出運行結(jié)果。#include<stdio.h>main(){

inta=1,b=3,c=5;if(c==a+b)

printf(“yes”);else

printf(“no”);}

答案:no16、讀程序,寫出運行結(jié)果。#include<stdio.h>intmain(){

intx=2,y=-1,z=5;

if(x<y)

if(y<0)

z=0;

else

z=z+1;

printf(“%d”,z);

}

答案:517、讀程序,寫出運行結(jié)果。#include<stdio.h>main(){floata,b,c,t;a=3;b=7;c=1;if(a>b)

{t=a;a=b;b=t;}if(a>c)

{t=a;a=c;c=t;}if(b>c)

{t=b;b=c;c=t;}printf(“%5.2f,%5.2f,%5.2f”,a,b,c);

//注意%5.2f的輸出格式與逗號}

答案:1.00,3.00,7.0018、下面是一個旅游自助程序。程序先輸出選擇菜單,

如果用戶輸入1,則提示輸入租車數(shù)量,用變量i保存,然后計算需支付的金額,并輸出。如果用戶輸入2,則提示輸入購票數(shù)量,用變量j保存,然后計算需支付的金額,并輸出。如果用戶輸入其它數(shù),則提示選擇錯誤。費用計算方法:

租一輛車需支付150元。

門票一張60元,如果購票數(shù)>=10,則每張50元。請完善程序。(程序有2個空,答案一行寫一個,不要添加多余的空格)#include<stdio.h>intmain(){intchoose,i,j,money;

printf(“\t\t旅游自助服務(wù)”);

printf(“\t1—租車\t2—購買門票”);

printf(“請選擇您需要的服務(wù):”);

scanf(“%d”,&choose);

if(

)

{

printf(“請輸入租車數(shù)量”);

scanf(“%d”,&i);

money=150i;

printf(“您需支付:%d元”,money);

}

(choose==2)

{

printf(“請輸入購票數(shù)量”);

scanf(“%d”,&j);

if(j>=10)money=50j;

elsemoney=60*j;

printf(“您需支付:%d元”,money);

}

else

{

printf(“選擇錯誤”);

}

return0;}

答案:(以下答案任選其一都對)choose==1

elseif;

1==choose

elseif19、運行以下程序,如果從鍵盤上輸入5,則輸出結(jié)果是()#include<stdio.h>int

main(){

intx;

scanf(“%d”,&x);

if(x–<5)

printf(“%d”,x);

else

printf(“%d”,x++);}答案:420、運行以下程序,如果從鍵盤上輸入5,則輸出結(jié)果是()#include<stdio.h>int

main(){

intx;

scanf(“%d”,&x);

if(x–<5)

printf(“%d”,x);

else

printf(“%d”,++x);}答案:?521、運行以下程序,如果從鍵盤上輸入9,則輸出結(jié)果是()#include<stdio.h>int

main(){

intx;

scanf(“%d”,&x);

if(++x<10)

printf(“%d”,x);

else

printf(“%d”,–x);}答案:?922、?下面程序的運行結(jié)果是()。#include<stdio.h>main(){

inta=12,b=-34,c=56,min=0;

min=a;

if(min>b)

min=b;

if(min>c)

?

min=c;

printf(“%d”,min);}答案:-3423、讀程序,寫出運行結(jié)果。#include<stdio.h>intmain(){

intx=2,y=-1,z=5;

if(x<y)

if(y<0)

z=0;

else

z=z+1;

printf(“%d”,z);

}

答案:5

分析:else與其上面最近的未配對的if配對,因此,

if(y<0)

z=0;

else

z=z+1;

是一條雙分支語句

該語句是第1個if———if(x<y)的內(nèi)嵌語句,當(dāng)x<y時,才執(zhí)行2<-1不成立,所以,內(nèi)嵌語句不執(zhí)行,z無任何變化<=””span=””></y)的內(nèi)嵌語句,當(dāng)x<y時,才執(zhí)行>

第五周循環(huán)基礎(chǔ)第五周易錯知識點練習(xí)(選做)1、下面圖中用箭頭表示for循環(huán)語句的執(zhí)行順序,其中(

)是正確的。答案:2、sum=0;for(i

=1;

i<=10;

i++)

;

sum=sum+

i;printf(“%d”,sum);輸出結(jié)果是(

)。答案:113、sum=0;for(i

=1;

i<=10;

i++)

{

sum=sum+

i;

i++;

}printf(“%d”,sum);輸出結(jié)果是(

)。答案:254、inti,count=0;

for(i=1;i<=20;i++)

{

if(i%3==0

||

i%7==0)

printf(“%d\t”,i);

count++;

if(count%5==0)

printf(“”);

}

程序運行結(jié)果是(

)。答案:5、inti,count=0;

for(i=1;i<=20;i++)

{

if(i%3==0

||

i%7==0)

{

printf(“%d\t”,i);

count++;

if(count%5==0)

printf(“”);

}

}

程序運行結(jié)果是(

)。答案:6、scanf(“%d”,&m);for

(i=2;i<=m-1;i++)

if

(m%i

!=

0)

printf(“%d是素數(shù)”,

m);該程序是錯誤的判定素數(shù)程序,下面(

)是該程序的輸出。答案:當(dāng)m為7時,重復(fù)輸出5行:

7是素數(shù);

當(dāng)m為8時,重復(fù)輸出4行:

8是素數(shù)

第五周循環(huán)基礎(chǔ)單循環(huán)選擇、填空題1、設(shè)有如下程序段,則輸出結(jié)果為()intk=0,a;for(a=1;a<=1000;a++)

k=k+1;printf(“k=%d”,k);提示:可參考課件“附加例題解析”文檔中的例題答案:k=10002、設(shè)有如下程序段,則最后一次輸出的是()inta;for(a=1;a<=1000;a++)

printf(“a=%d”,a);提示:可參考課件“附加例題解析”文檔中的例題答案:?a=10003、設(shè)有如下程序段,則輸出結(jié)果是()inta;for(a=1;a<=1000;a++)

;printf(“a=%d”,a);提示:可參考課件“附加例題解析”文檔中的例題答案:a=10014、設(shè)有如下程序段,則輸出結(jié)果為()intk=0,a;for(a=1;a<=1000;a++)

{a=a+1;k=k+1;}printf(“k=%d”,k);

答案:k=5005、inti,j=10;for(i=1;i==j;i++);

的循環(huán)次數(shù)是()提示:可參考課件“附加例題解析”文檔中的例題答案:?06、inti,j;j=10;for(i=1;i<=j;i++)

j–;

程序的循環(huán)次數(shù)是()答案:?57、語句for(x=0,y=0;y!=1&&x<4;x++);是()答案:循環(huán)4次?8、設(shè)有程序段:intk=10;while(k=0)k=k-1;則下面敘述正確的是()

答案:?循環(huán)體語句一次也不執(zhí)行9、?設(shè)有程序段:intk=10;while(k==0)k=k-1;則下面敘述正確的是()答案:循環(huán)體語句一次也不執(zhí)行10、?設(shè)有程序段:intk=10;while(k!=0)

k=k-1;則下面敘述正確的是()答案:while循環(huán)重復(fù)執(zhí)行10次11、與語句while(!x);等價的語句是()

答案:?while(x==0);

12、inti=0,j;for(j=10;i<j;j–)

i++;

程序的循環(huán)次數(shù)是()答案:5?語法錯誤513、設(shè)有程序段,以下說法正確的是()x=-1;do{x=x*x;}while(!x);

答案:?循環(huán)體將執(zhí)行一次

14、

C語言中while和do-while循環(huán)的主要區(qū)別是()答案:?do-while的循環(huán)體至少無條件執(zhí)行一次15、下列語句不是死循環(huán)的是()?答案:?inti=10;while(i)i–;16、下面程序的功能是:計算1~10之間的奇數(shù)之和及偶數(shù)之和,空白處應(yīng)填()#include<stdio.h>intmain(){

inta,b,c,i;

a=c=0;

for(i=0;i<=10;i+=2)

{

a+=i;

}

printf(“偶數(shù)之和=%d!”,a);

printf(“奇數(shù)之和=%d!”,c-11);

}答案:c+=i+1;?17、下面程序的功能是()#include<stdio.h>intmain(){

intx,s=0,i;

for(i=1;i<=5;i++)

{

scanf(“%d”,&x);

s=s+x;

}

printf(“s=%d”,s);

return0;}答案:輸入任意5個整數(shù),輸出這5個數(shù)的和18、下面程序的功能是()#include<stdio.h>intmain(){

intx,s=0,i;

scanf(“%d”,&x);

while(x!=0)

{

s=s+x;

scanf(“%d”,&x);

}

printf(“s=%d”,s);

return0;}答案:輸入一組整數(shù),以輸入0作為結(jié)束,求所有數(shù)的和并輸出19、for(i

=1;

i<=10;

i++)

printf(“*”);循環(huán)結(jié)束后,i的值是(

)。答案:1120、下面(

)循環(huán)體執(zhí)行10次。答案:for(i=1;i<=10;i=i+1){循環(huán)體;};

for(i=2;i<=20;i=i+2){循環(huán)體;};

for(i=0;i<=9;i=i+1){循環(huán)體;};

for(i=10;i>=1;i=i-1){循環(huán)體;}21、下面(

)是正確的判斷素數(shù)程序(m>1)。答案:j=0;for

(i=2;i<=m-1;i++)

if(m%i!=0)

j++;if(j==m-2)

printf(“%d是素數(shù)”,m);;

j=0;for(i=2;i<=m-1;i++)

if(m%i

==

0)

j++;if(j==0)

printf(“%d是素數(shù)”,m);;

flag=0;for(i=2;i<=m-1;i++)

if(m%i

==

0)

flag=1;if(flag==0)

printf(“%d是素數(shù)”,m);22、編程:輸入一個整數(shù),計算該整數(shù)的位數(shù),并輸出位數(shù)。輸入樣例:12345輸出樣例:輸入的是5位數(shù)請完善程序。(程序有1個空,答案一行寫一個,不要添加多余的空格)

#include<stdio.h>intmain(){

inti=0,k,j;

scanf(“%d”,&k);

do

{

k=k/10;

i++;

}while(

);

printf(“輸入的是%d位數(shù)”,i);

}提示:第二周討論題—–討論一類賦值語句的特點,在置頂貼的回復(fù)中,有本題的相關(guān)內(nèi)容。這一類賦值語句常用于循環(huán)中。

答案:(以下答案任選其一都對)k!=0;

0!=k;

!k==0

分析:每次循環(huán),k=k/10;k的最后一位被舍棄,

i保存位數(shù),每次循環(huán),k舍棄1位,i加1。

直至k為0時,所有位都被舍棄,此時,i的值就是k的位數(shù)。

具體可以看第二周討論題—–討論一類賦值語句的特點,在置頂貼的回復(fù)中,有舉例23、編程:輸入一個整數(shù),計算該整數(shù)的位數(shù),并輸出位數(shù)。輸入樣例:12345輸出樣例:輸入的是5位數(shù)請完善程序。(程序有1個空,答案一行寫一個,不要添加多余的空格)

#include<stdio.h>intmain(){

inti=0,k,j;

scanf(“%d”,&k);

do

{

i++;

}while(k!=0);

printf(“輸入的是%d位數(shù)”,i);

}提示:第二周討論題—–討論一類賦值語句的特點,在置頂貼的回復(fù)中,有本題的相關(guān)內(nèi)容。這一類賦值語句常用于循環(huán)中。

答案:(以下答案任選其一都對)k=k/10;;

k/=10;

分析:每次循環(huán),k=k/10;k的最后一位被舍棄,

i保存位數(shù),每次循環(huán),k舍棄1位,i加1。

直至k為0時,所有位都被舍棄,此時,i的值就是k的位數(shù)。

具體可以看第二周討論題—–討論一類賦值語句的特點,在置頂貼的回復(fù)中,有舉例24、編程:輸入一個整數(shù),計算該整數(shù)的位數(shù),并輸出位數(shù)。輸入樣例:12345輸出樣例:輸入的是5位數(shù)請完善程序。(程序有1個空,答案一行寫一個,不要添加多余的空格)

#include<stdio.h>intmain(){

inti=0,k,j;

scanf(“%d”,&k);

if(k==0)i=1;

while(

)

//注意,不要漏考慮k為負數(shù)的情況

{

i++;

k=k/10;

}

printf(“輸入的是%d位數(shù)”,i);

}提示:第二周討論題—–討論一類賦值語句的特點,在置頂貼的回復(fù)中,有本題的相關(guān)內(nèi)容。這一類賦值語句常用于循環(huán)中。

答案:(以下答案任選其一都對)k!=0;

0!=k;

!k==0

分析:每次循環(huán),k=k/10;k的最后一位被舍棄,

i保存位數(shù),每次循環(huán),k舍棄1位,i加1。

直至k為0時,所有位都被舍棄,此時,i的值就是k的位數(shù)。

具體可以看第二周討論題—–討論一類賦值語句的特點,在置頂貼的回復(fù)中,有舉例25、

編程:輸入一個整數(shù),計算該整數(shù)的位數(shù),并輸出位數(shù)。

輸入樣例:12345

輸出樣例:輸入的是5位數(shù)

請完善程序。(程序有1個空,答案一行寫一個,不要添加多余的空格)

include<stdio.h>intmain()

{

inti=0,k,j;

scanf(“%d”,&k);

//k也可能是負整數(shù)

do

{

k=k/10;

i++;

}while(

);

printf(“輸入的是%d位數(shù)”,i);

}提示:參考本周視頻“求輸入數(shù)的位數(shù)”。答案:(以下答案任選其一都對)k!=0;

0!=k;

!k==026、編程:輸入一個整數(shù),計算該整數(shù)的位數(shù),并輸出位數(shù)。輸入樣例:12345輸出樣例:輸入的是5位數(shù)請完善程序。(程序有1個空,答案一行寫一個,不要添加多余的空格)

#include<stdio.h>intmain(){

inti=0,k,j;

scanf(“%d”,&k);

//k也可能是負整數(shù)

do

{

i++;

}while(k!=0);

printf(“輸入的是%d位數(shù)”,i);

}提示:參考本周視頻“求輸入數(shù)的位數(shù)”

答案:(以下答案任選其一都對)k=k/10;;

k/=10;

第六周循環(huán)進階循環(huán)進階選擇、填空題1、運行下面的程序,得到的輸出是()#include<stdio.h>intmain(){

inti,j;

for(i=1;i<=2;i++)

for(j=1;j<=2;j++)

printf(“i=%d,j=%d”,i,j);}答案:i=1,

j=1i=1

,j=2i=2

,j=1i=2

,j=22、?運行下面的程序,輸出的星號個數(shù)一共是()#include<stdio.h>intmain(){

inti,j;

for(i=1;i<=4;i++)

{

for(j=1;j<=i;j++)

putchar(‘‘);

putchar(‘*’);

putchar(”);

}}答案:43、運行下面的程序,輸出的星號個數(shù)一共是()#include<stdio.h>intmain(){

inti,j;

for(i=1;i<=4;i++)

for(j=1;j<=i;j++)

putchar(‘‘);

putchar(‘*’);

putchar(”);}答案:14、執(zhí)行下面的程序片段,k的值是()

intk=0,i,j;

for(i=0;i<5;i++)

for(j=0;j<3;j++)

k=k+1;答案:155、若變量已正確定義,要求程序段完成求5!的計算,不能完成此操作的程序段是答案:for(i=1;i<=5;i++){

p=1;

p*=i;}?6、下面程序的功能是輸出以下形式的圖案,則在下劃線處應(yīng)填入的是

*#include<stdio.h>intmain(){

inti,j;

for(i=1;i<=4;i++)

{

for(j=1;j<=

;j++)

putchar(‘‘);

putchar(”);

}

return0;}答案:2*i-1?7、下面程序的功能是輸出以下形式的圖案,則在下劃線處應(yīng)填入的是()

*

*

#include<stdio.h>intmain(){

inti,j;

for(i=1;i<=4;i++)

{

for(j=1;j<=

;j++)

putchar(‘‘);

putchar(”);

}

return0;}答案:2(5-i)-18、雞兔同籠,共有98個頭,386只腳,編程求雞、兔各多少只。代碼如下,按要求在空白處填寫適當(dāng)?shù)谋磉_式或語句,使程序完整并符合題目要求。#include<stdio.h>intmain(){

intx,y;

for(x=1;x<98;x++)

{

_(1)

if(

?

(2)

___)

{

printf(“x=%d,y=%d”,x,y);

}

}

return0;}答案:(1)

y=98–x;(2)

2x+4y==386;?9、打印所有的“水仙花數(shù)”。所謂“水仙花數(shù)”,是指一個三位數(shù),其各位數(shù)字的立方和等于該數(shù)本身。例如,153是“水仙花數(shù)”,因為。代碼如下,按要求在空白處填寫適當(dāng)?shù)谋磉_式或語句,使程序完整并符合題目要求。#include<stdio.h>intmain(){

inti,j,k,n;

printf(“resultis:”);

for(n=100;

(1)_;n++)

{

i=n/100;

//得到百位

j=

_(2)

;

k=n%10;

//得到個位

if(

(3)___?)

{

printf(“%d\t“,n);

//輸出結(jié)果

}

}

printf(“”);

return0;}答案:?(1)n<1000(2)(n–i*100)/10(3)i100+j10+k==iii+jjj+kkk10、下面程序的功能是()#include<stdio.h>intmain(){

intx,s,i;

scanf(“%d”,&x);

s=x;

for(i=1;i<=6;i++)

{

scanf(“%d”,&x);

if(s<x)

s=x;

}

printf(“s=%d”,s);

return0;}提示:可參考課件“附加例題解析”中文檔“求最值及其位置”,幫助理解。答案:輸入7個整數(shù),輸出其中的最大數(shù)11、閱讀下面的程序,該程序完成的功能有(

#include<stdio.h>intmain(){

intnumber,min;

inti,n=1;

printf(“請輸入第1個數(shù)”);

scanf(“%d”,&number);

min=number;

//只有1個數(shù)時,最小數(shù)就是這個數(shù),設(shè)min初值為第1個數(shù)

for(i=2;i<=8;i++)

{

printf(“請輸入第%d個數(shù)”,i);

scanf(“%d”,&number);

if(min>number)

//min與新輸入的數(shù)比,如果更大,則

{

min=number;

//min更新為較小的數(shù)

n=i;

//n更新為較小數(shù)的位置

}

}

printf(“第%d個數(shù)最小,為%d”,n,min);

//輸出最小數(shù)的位置與最小數(shù)

return0;}

提示:可參考課件“附加例題解析”中文檔“求最值及其位置”,幫助理解。答案:輸出8個數(shù)中的最小數(shù);

輸出最小數(shù)的位置12、下面(

)僅輸出m的大于1的最小因子。答案:for(i=2;i<=m-1;i++)

if(m%i==0)

{

printf(“%dis最小因子”,i);

break;

}

;

i=2;while(m%i!=0)

i++;printf(“%dis最小因子”,i);13、程序功能:輸入n的值(n<11),計算1!+2!+3!+……+n!,并輸出計算結(jié)果。請完善程序。(程序有1個空,答案一行寫一個,不要添加多余的空格)#include<stdio.h>intmain(){

inti,n;

longsum=0,fac=1;

//fac存儲每個加項(階乘)的值

printf(“請輸入n的值:”);

scanf(“%d”,&n);

for(i=1;i<=n;i++)

{

//后一加項與前一加項的關(guān)系

sum=sum+fac;

}

printf(“和為%ld”,sum);

return0;}提示:可以參考“累加和”中講解的最后一個例題

答案:(以下答案任選其一都對)fac=faci;;

fac=ifac;;

fac*=i;14、編寫作圖程序:輸入一個整數(shù)n,輸出由n行上三角形與n+1行下三角形組成的如下菱形。

輸入樣例:

5

輸出樣例:(程序有3個空,答案一行寫一個,不要添加多余的空格)#include<stdio.h>intmain(){intn,i,j;

scanf(“%d”,&n);

for(i=1;i<=n;i++)

//輸出n行上三角形

{

for(j=1;j<=n-i+1;j++)

//輸出每行號前的空格

(1)

for(j=1;j<=

(2)

;j++)

//輸出第i行的號

putchar(‘‘);

putchar(”);

}

for(i=1;i<=

(3)

;i++)

//輸出n+1行下三角形

{

for(j=1;j<=i-1;j++)

putchar(‘‘);

for(j=1;j<=2n+3-2i;j++)

putchar(‘‘);

putchar(”);

}

return0;}提示:n行上三角形的編程,可以參考本周教學(xué)內(nèi)容:循環(huán)的嵌套中講解的最后一個例題n+1行下三角形的編程與上三角類似,如何用公式表示第i行的個數(shù),可參考循環(huán)的嵌套小節(jié)中的“問與答”文檔

答案:(以下答案任選其一都對)putchar(‘‘);

2i-1

n+1;

printf(”“);

2i-1

n+1;

putchar(‘‘);

2i-1

1+n;

printf(”“);

2i-1

1+n;

putchar(‘‘);

i2-1

n+1;

printf(”“);

i2-1

n+1;

putchar(‘‘);

i2-1

1+n;

printf(”“);

i*2-1

1+n15、編程輸出如下圖的九九乘法口訣表:

(程序有2個空,答案一行寫一個,不要添加多余的空格)

#include<stdio.h>intmain(){inti,j;

printf(“\t\t\t\t乘法口訣表”);

for(i=1;i<=9;i++)

//外循環(huán)輸出9行

{

for(j=1;j<=

(1)

;

j++)

//內(nèi)循環(huán)每行輸出i列

printf(“%d%d=%d\t”,i,j,

(2)

);

//輸出乘法表

printf(“”);

//輸出一行后換行}

return0;}提示:1、注意規(guī)律,第i行第j列輸出的是:ij=ij的積;2、可以

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論