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

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

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

文檔簡(jiǎn)介

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

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

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

#include<stdio.h>

intmain()

{

printf(“Hello,world”);

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

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

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

<stdio.h>

int

mian()

{

printf(“hello

world”)

return

0;}答案:printf(“hello

world”)

后面少分號(hào);

主函數(shù)名寫錯(cuò)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、下面程序的錯(cuò)誤是()#include

<stdio.h>

int

mian()

{

printf(“hello

world”)

return

0;}答案:printf(“hello

world”)

后面少分號(hào);

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

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

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

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

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

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

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

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

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

)。答案:%6、下面(

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

答案: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的值不會(huì)發(fā)生變化。答案:i+5;15、intx;scanf(“%d”,&x);下面(

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

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

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

)答案:單目運(yùn)算符優(yōu)先級(jí)高于雙目運(yùn)算符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ǔ)語法第二周易錯(cuò)知識(shí)點(diǎn)練習(xí)1(選做)1、當(dāng)x是41.0時(shí),算術(shù)表達(dá)式5/9*(x-32)的運(yùn)算結(jié)果是(

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

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

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

(x=1)+2的值是(

),x的值是(

)。答案:3,15、int

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

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

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

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

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

b=a=2

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

)

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

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

)

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

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

)答案:?

(X>79)&&(

X<90)

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

5、設(shè)x,t均為int型變量,則執(zhí)行語句“x=10;t=x&&x>10;”后,t的值為()答案:?06、下面程序,運(yùn)行后的輸出結(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、運(yùn)行以下程序,如果從鍵盤上輸入5,則輸出結(jié)果是(

)#include<stdio.h>int

main(){

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

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

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

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

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的值分別為(

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

)。答案:doublef;scanf(“%lf”,&f);16、在printf函數(shù)中,浮點(diǎn)型數(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)系表達(dá)式a+b>=c的值是(

)。

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

)。

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

)。

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

intmain(){

intx;

printf(“請(qǐng)輸入分?jǐn)?shù)(0-100):“);

scanf(“%d”,&x);

if(x<60)

printf(“不及格”);

if(x>90)

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

printf(“合格”);

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

return0;}

答案:(以下答案任選其一都對(duì))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、我國(guó)的郵政編碼由六位阿拉伯?dāng)?shù)字組成,前第三位代表郵區(qū),廈門市的郵政編碼前三位為361

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

<stdio.h>

int

main(){

int

code;

printf(“請(qǐng)輸入郵政編碼:

“);

scanf(”

%*3d”,&code);

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

if(361

code

)

printf(

“廈門市的郵件”);

if

(361!=code)

printf(

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

return

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

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

”里的最后一個(gè)文檔

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

答案:%3d

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

t=

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

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

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

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

intmain()

{

intx;

printf(“請(qǐng)輸入分?jǐn)?shù)(0-100):“);

scanf(“%d”,&x);

if(x<60)

printf(“不及格”);

if(x>90)

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

printf(“合格”);

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

return0;

}答案:(以下答案任選其一都對(duì))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、我國(guó)的郵政編碼由六位阿拉伯?dāng)?shù)字組成,前第三位代表郵區(qū),廈門市的郵政編碼前三位為361

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

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

<stdio.h>

int

main(){

int

code;

printf(“請(qǐng)輸入郵政編碼:

“);

scanf(”

%*3d”,&code);

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

if(361

code

)

printf(

“廈門市的郵件”);

if

(361!=code)

printf(

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

return

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

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

”里的最后一個(gè)文檔

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

答案:%3d

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

x=8;在C程序中,表達(dá)式0<=x<=3的運(yùn)算結(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);第二個(gè)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第四周易錯(cuò)知識(shí)點(diǎn)練習(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ù)”);程序的運(yùn)行是(

)。答案:出錯(cuò)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,則輸出(

)。

答案:該段程序有語法錯(cuò)誤,不能執(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、運(yùn)行以下程序,如果從鍵盤上輸入5,則輸出結(jié)果是()#include<stdio.h>int

main(){

intx;

scanf(“%d”,&x);

if(x–<5)

printf(“%d”,x);

else

printf(“%d”,x++);}提示:答案:45、運(yùn)行以下程序,如果從鍵盤上輸入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)附加例題解析”文檔的第一個(gè)例題答案:?56、運(yùn)行以下程序,如果從鍵盤上輸入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)附加例題解析”文檔的第一個(gè)例題答案:?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、?下面程序的運(yùn)行結(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)附加例題解析”文檔的最后一個(gè)例題答案:-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進(jìn)入調(diào)試狀態(tài)后,可以(

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

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

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

)是正確的符號(hào)函數(shù)程序。當(dāng)x>0時(shí),y=1當(dāng)x=0時(shí),y=0當(dāng)x<0時(shí),y=-1(提示:按if-else配對(duì)規(guī)則分析程序,y值的運(yùn)算結(jié)果與符號(hào)函數(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、程序功能:輸入一個(gè)整數(shù),當(dāng)它是偶數(shù)時(shí),輸出“該數(shù)是偶數(shù)”,否則,輸出“該數(shù)是奇數(shù)”。請(qǐng)完善程序,空格處應(yīng)填(

)。#include<stdio.h>

intmain(){

intx;

printf(“請(qǐng)輸入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、輸入一個(gè)考試分?jǐn)?shù)(0至100范圍內(nèi)),如果分?jǐn)?shù)小于60分,則輸出“不及格”;否則輸出“及格”。(程序有1個(gè)空,請(qǐng)選擇正確的答案)#include<stdio.h>

intmain(){

intx;

printf(“請(qǐng)輸入分?jǐn)?shù)(0-100):“);

scanf(“%d”,&x);

if(x<60)

printf(“不及格”);

printf(“及格”);

return0;}答案:else;

if(x>=60);

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

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

printf(“yes”);else

printf(“no”);}

答案:no16、讀程序,寫出運(yùn)行結(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、讀程序,寫出運(yùn)行結(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的輸出格式與逗號(hào)}

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

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

租一輛車需支付150元。

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

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

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

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

scanf(“%d”,&choose);

if(

)

{

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

scanf(“%d”,&i);

money=150i;

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

}

(choose==2)

{

printf(“請(qǐng)輸入購(gòu)票數(shù)量”);

scanf(“%d”,&j);

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

elsemoney=60*j;

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

}

else

{

printf(“選擇錯(cuò)誤”);

}

return0;}

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

elseif;

1==choose

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

main(){

intx;

scanf(“%d”,&x);

if(x–<5)

printf(“%d”,x);

else

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

main(){

intx;

scanf(“%d”,&x);

if(x–<5)

printf(“%d”,x);

else

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

main(){

intx;

scanf(“%d”,&x);

if(++x<10)

printf(“%d”,x);

else

printf(“%d”,–x);}答案:?922、?下面程序的運(yùn)行結(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、讀程序,寫出運(yùn)行結(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與其上面最近的未配對(duì)的if配對(duì),因此,

if(y<0)

z=0;

else

z=z+1;

是一條雙分支語句

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

第五周循環(huán)基礎(chǔ)第五周易錯(cuò)知識(shí)點(diǎn)練習(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(“”);

}

程序運(yùn)行結(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(“”);

}

}

程序運(yùn)行結(jié)果是(

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

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

if

(m%i

!=

0)

printf(“%d是素?cái)?shù)”,

m);該程序是錯(cuò)誤的判定素?cái)?shù)程序,下面(

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

7是素?cái)?shù);

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

8是素?cái)?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);等價(jià)的語句是()

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

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

i++;

程序的循環(huán)次數(shù)是()答案:5?語法錯(cuò)誤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、下面程序的功能是:計(jì)算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個(gè)整數(shù),輸出這5個(gè)數(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、下面(

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

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

if(m%i!=0)

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

printf(“%d是素?cái)?shù)”,m);;

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

if(m%i

==

0)

j++;if(j==0)

printf(“%d是素?cái)?shù)”,m);;

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

if(m%i

==

0)

flag=1;if(flag==0)

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

#include<stdio.h>intmain(){

inti=0,k,j;

scanf(“%d”,&k);

do

{

k=k/10;

i++;

}while(

);

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

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

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

0!=k;

!k==0

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

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

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

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

#include<stdio.h>intmain(){

inti=0,k,j;

scanf(“%d”,&k);

do

{

i++;

}while(k!=0);

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

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

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

k/=10;

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

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

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

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

#include<stdio.h>intmain(){

inti=0,k,j;

scanf(“%d”,&k);

if(k==0)i=1;

while(

)

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

{

i++;

k=k/10;

}

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

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

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

0!=k;

!k==0

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

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

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

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

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

輸入樣例:12345

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

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

include<stdio.h>intmain()

{

inti=0,k,j;

scanf(“%d”,&k);

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

do

{

k=k/10;

i++;

}while(

);

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

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

0!=k;

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

#include<stdio.h>intmain(){

inti=0,k,j;

scanf(“%d”,&k);

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

do

{

i++;

}while(k!=0);

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

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

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

k/=10;

第六周循環(huán)進(jìn)階循環(huán)進(jìn)階選擇、填空題1、運(yùn)行下面的程序,得到的輸出是()#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、?運(yùn)行下面的程序,輸出的星號(hào)個(gè)數(shù)一共是()#include<stdio.h>intmain(){

inti,j;

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

{

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

putchar(‘‘);

putchar(‘*’);

putchar(”);

}}答案:43、運(yùn)行下面的程序,輸出的星號(hào)個(gè)數(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!的計(jì)算,不能完成此操作的程序段是答案: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個(gè)頭,386只腳,編程求雞、兔各多少只。代碼如下,按要求在空白處填寫適當(dāng)?shù)谋磉_(dá)式或語句,使程序完整并符合題目要求。#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ù)”,是指一個(gè)三位數(shù),其各位數(shù)字的立方和等于該數(shù)本身。例如,153是“水仙花數(shù)”,因?yàn)?。代碼如下,按要求在空白處填寫適當(dāng)?shù)谋磉_(dá)式或語句,使程序完整并符合題目要求。#include<stdio.h>intmain(){

inti,j,k,n;

printf(“resultis:”);

for(n=100;

(1)_;n++)

{

i=n/100;

//得到百位

j=

_(2)

;

k=n%10;

//得到個(gè)位

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個(gè)整數(shù),輸出其中的最大數(shù)11、閱讀下面的程序,該程序完成的功能有(

#include<stdio.h>intmain(){

intnumber,min;

inti,n=1;

printf(“請(qǐng)輸入第1個(gè)數(shù)”);

scanf(“%d”,&number);

min=number;

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

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

{

printf(“請(qǐng)輸入第%d個(gè)數(shù)”,i);

scanf(“%d”,&number);

if(min>number)

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

{

min=number;

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

n=i;

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

}

}

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

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

return0;}

提示:可參考課件“附加例題解析”中文檔“求最值及其位置”,幫助理解。答案:輸出8個(gè)數(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),計(jì)算1!+2!+3!+……+n!,并輸出計(jì)算結(jié)果。請(qǐng)完善程序。(程序有1個(gè)空,答案一行寫一個(gè),不要添加多余的空格)#include<stdio.h>intmain(){

inti,n;

longsum=0,fac=1;

//fac存儲(chǔ)每個(gè)加項(xiàng)(階乘)的值

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

scanf(“%d”,&n);

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

{

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

sum=sum+fac;

}

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

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

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

fac=ifac;;

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

輸入樣例:

5

輸出樣例:(程序有3個(gè)空,答案一行寫一個(gè),不要添加多余的空格)#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++)

//輸出每行號(hào)前的空格

(1)

for(j=1;j<=

(2)

;j++)

//輸出第i行的號(hào)

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)的嵌套中講解的最后一個(gè)例題n+1行下三角形的編程與上三角類似,如何用公式表示第i行的個(gè)數(shù),可參考循環(huán)的嵌套小節(jié)中的“問與答”文檔

答案:(以下答案任選其一都對(duì))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個(gè)空,答案一行寫一個(gè),不要添加多余的空格)

#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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論