高等教育選擇+填空+編程課件_第1頁
高等教育選擇+填空+編程課件_第2頁
高等教育選擇+填空+編程課件_第3頁
高等教育選擇+填空+編程課件_第4頁
高等教育選擇+填空+編程課件_第5頁
已閱讀5頁,還剩77頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1.下列敘述中正確的是A)C語言程序?qū)脑闯绦蛑械谝粋€函數(shù)開始執(zhí)行B)可以在程序中由用戶指定任意一個函數(shù)作為主函數(shù),程序?qū)拇碎_始執(zhí)行C)C語言規(guī)定必須用main作為主函數(shù)名,程序?qū)拇碎_始執(zhí)行,在此結(jié)束D)main可作為用戶標識符,可以命名任意一個函數(shù)作為主函數(shù)參考答案:C)解答:A)錯誤,由于main()不一定寫在第一個位置上,所以該句話不準確。B)錯誤,C語言中規(guī)定,程序必須從主函數(shù)開始執(zhí)行,在主函數(shù)中結(jié)束。C)正確。D)錯誤,在main()函數(shù)中,main不可以作為標識符的名,但是在其它函數(shù)中,main可作為標識符的名稱(不推薦這樣做)。main()是程序的開始和結(jié)束的位置,不是任意函數(shù)都可以作為主函數(shù)。一、選擇1.下列敘述中正確的是參考答案:C)一、選擇12.以下選項中,能用作用戶標示符的是A)voidB)8_8C)_0_D)unsigned參考答案:C)解答:A)不能,void為C語言的保留字。B)不能,阿拉伯數(shù)字不能出現(xiàn)在標識符的第一個位置上。C)能,符合C語言標識符命名法則。D)不能,unsigned為C語言的保留字。2.以下選項中,能用作用戶標示符的是參考答案:C)23.以下敘述中正確的是A)C程序的基本組成單位是語句B)C程序中的每一行只能寫一條語句C)簡單C語句必須以分號結(jié)束D)C語句必須在一行內(nèi)完成參考答案:C)解答:A)不正確,C程序的基本組成單位應(yīng)該是函數(shù),函數(shù)的組成單位是語句。B)不正確,C程序中的每一行可寫多條語句,如:x=1;y=2;z=3;。C)正確。D)不正確,C語句不一定在一行內(nèi)完成。3.以下敘述中正確的是參考答案:C)34.以下程序運行后的輸出結(jié)果是【】。#include<stdio.h>main(){inta=200,b=010;printf("%d%d\n",a,b);}參考答案:2008解答:a為十進制數(shù)200,b為八進制數(shù),轉(zhuǎn)換成十進制數(shù)為8。輸出格式為十進制整數(shù)輸出格式,輸出的兩個數(shù)之間沒有空隙,所以輸出的序列為“2008”。4.以下程序運行后的輸出結(jié)果是【】。參考答案:200845.有以下程序#include<stdio.h>main(){ints,t,A=10;doubleB=6;s=sizeof(A);t=sizeof(B);printf("%d,%d\n",s,t);}在VC6平臺上編譯運行,程序運行后的輸出結(jié)果是A)2,4B)1,4C)4,8D)10,6參考答案:C)解答:在本題中sizeof(A)和sizeof(B)是求變量A,B所占的字節(jié)數(shù)。在VC6編譯系統(tǒng)中,規(guī)定整型數(shù)均占用4個字節(jié),雙精度數(shù)占用8個字節(jié)。所以答案C)是正確的。5.有以下程序參考答案:C)56.有以下定義:inta;longb;doublex,y;則以下選項中正確的表達式是A)a%(int)(x-y)B)a=x

!=y;C)(a*y)%bD)y=x+y=x參考答案:B)解答:A)錯誤,x-y的值可能出現(xiàn)“0”,0不能作除數(shù)。B)正確,a=x

!=y可看成a=(x

!=y),“x

!=y”的值可能為“0”也可能為“1”。所以該表達式是正確。C)錯誤,(a*y)的值是一個實型數(shù),C語言中求余計算“%”,必須是實型數(shù)之間進行計算。D)錯誤,該賦值方式相當于給表達式賦值,所以是錯誤的。6.有以下定義:inta;longb;double67.若a是數(shù)值型,則邏輯表達式(a==1)||(a!=1)的值是A)1B)0C)2D)不知道a的值,不能斷定參考答案:A)解答:a的值只有兩種可能,等于“1”或者不等于“1”。該表達式(a==1)||(a!=1)的值永遠為真,所以,該表達式的值為“1”。7.若a是數(shù)值型,則邏輯表達式(a==1)||(a!=1)的78.表達式3.6-5/2+1.2+5%2的值是

A)4.3B)4.8C)3.3

D)3.8參考答案:D)解答:該表達式的值3.6-5/2+1.2+5%2=3.6-2+1.2+1=3.88.表達式3.6-5/2+1.2+5%2的值是

A)4.389.表達式a+=a-=a=9的值是A)9B)9C)13D)0參考答案:D)解答:表達式a+=a-=a=9可化為a+=a-=9可化為a+=a=9-9可化為a+=a=0可化為a+=0。即a=0。9.表達式a+=a-=a=9的值是參考答案:D)910.有以下程序#include<stdio.h>main(){charc1,c2;c1='A'+'8'-'4';

c2='A'+'8'-'5';printf("%c,%d\n",c1,c2);}已知字母A的ASCII碼為65,程序運行后的輸出的結(jié)果是A)E,68B)D,69C)E,DD)輸出無定值參考答案:A)解答:本題的關(guān)鍵在于下面的表達式c1='A'+'8'-'4'=65+56-52=69是“E”的ASCII值。c2='A'+'8'-'5'=65+56-53=68是“D”的ASCII值。在輸出時printf("%c,%d\n",c1,c2);c1按字符輸出,所以將字符“E”輸出。c2按有符號的十進制整形數(shù)輸出,所以將數(shù)值“68”輸出。10.有以下程序參考答案:A)1011.若變量已正確定義,在if(W)printf("%f\n",k);中,以下不可替代W的是A)a<>b+cB)ch=getchar()C)a==b+cD)a++參考答案:A)解答:A)錯誤,在C語言中沒有“<>”這樣的運算符,判斷不相等用!=。B)正確。if(W)中的“W”可以是任意表達式。C)正確。同上。D)正確。同上。11.若變量已正確定義,在if(W)printf("%f\1112.有以下程序#include<stdio.h>main(){inta=1,b=0;if(!a)b++;elseif(a==0)if(a)b+=2;elseb+=3;printf("%d\n",b);}程序運行的結(jié)果是A)0B)1C)2D)3參考答案:A)解答:參考本題的流程圖。在本題中,第一個判斷為“假”,第二個判斷也為“假”。所以,b的值仍然為“0”。12.有以下程序參考答案:A)1213.設(shè)有定義:inta=1,b=2,c=3;,以下語句中執(zhí)行效果與其它三個不同的是A)if(a>b)c=a,a=b,b=c;B)if(a>b){c=a,a=b,b=c;}C)if(a>b)c=a;a=b;b=c;D)if(a>b){c=a;a=b;b=c;}參考答案:C)解答:本題的含義是“a>b”為“真”A)執(zhí)行c=a,a=b,b=c;逗號表達式語句。B)執(zhí)行{c=a,a=b,b=c;}復(fù)合語句。C)只執(zhí)行c=a;這條語句。D)執(zhí)行{c=a;a=b;b=c;}復(fù)合語句。13.設(shè)有定義:inta=1,b=2,c=3;,以下語1314.以下是if語句的基本形式if(表達式)語句其中表達式A)必須是邏輯表達式B)必須是關(guān)系表達式C)必須是邏輯表達式或關(guān)系表達式D)可以是任意合法的表達式參考答案:D)解答:根據(jù)C語言的法則,可以是任意表達式。14.以下是if語句的基本形式參考答案:D)1415.若有定義語句inta,b;doublex;則下列選項中沒有錯誤的是A)switch(x%2)B)switch((int)x/2.0){case0:a++;break;{case0:a++;break;case1:b++:break;case1:b++;break;default:a++;b++;default:a++;b++;}}C)switch((int)x%2)D)switch((int)(x)%2){case0:a++;break;{case0.0:a++;bresk;case1:b++;break;case1.0:b++;break;default:a++;b++default:a++;b++;}}參考答案:C)解答:A)錯誤,在C語言中求余運算必須在整型數(shù)之間運算。B)錯誤,在switch((int)x/2.0)中,不應(yīng)出現(xiàn)2.0實型數(shù)。C)正確。D)錯誤。case0.0,表示錯誤。15.若有定義語句inta,b;doublex;1516.以下選項中與if(a==1)a=b;elsea++;語句功能不同的switch語句是A)switch(a)B)switch(a==1){case1:a=b;break;{case0:a=b;break;default:a++;case1:a++;}}C)switch(a)D)switch(a==1){defaule:a++;break;{case1:a=b;break;case1:a=b;case0:a++;}}參考答案:B)解答:在B)選項中表達的是a==1時做a++;,與題意相反。16.以下選項中與if(a==1)a=b;elsea++;1617.以下程序中,與語句:k=a>b?(b>c?1:0):0;功能相同的是A)if((a>b)&&(b>c))k=1;B)if((a>b)||(b>c))k=1;elsek=0elsek=0C)if(a<=b)k=0;D)if(a>b)k=1;elseif(b<=c)k=1;elseif(b>c)k=1elsek=0參考答案:A)解答:該題的流程圖從該邏輯框圖中,可判斷出A)的描述與題意吻合,其它的都不能表達該題意。17.以下程序中,與語句:k=a>b?(b>c?1:0):01718.以下程序段的執(zhí)行結(jié)果是intx=23;do{printf(“%d”,x--);}while(!x);A)輸出321B)輸出23C)不輸出任何內(nèi)容D)死循環(huán)參考答案:B)解答:先執(zhí)行循環(huán)體,輸出表達式x--的值為23,變量x的值為22,再判斷循環(huán)條件!x,為假,則退出循環(huán)18.以下程序段的執(zhí)行結(jié)果是參考答案:B)1819.從以下給出的表達式中選出與while(E)語句中的(E)不能等價的表達式。A)(!E==0)B)(E>0)||(E<0)C)(E!=0)D)(E==0)參考答案:D)解答:while(E)中的E只要不等于0即為“真”正確,表達式!E==0當E!=0時為真,E==0時為假正確正確錯誤,表達式E==0當E==0時為真,E!=0時為假19.從以下給出的表達式中選出與while(E)語句中的(E1920.有以下程序#include<stdio.h>main(){inta=1,b=2;for(;a<8;a++){b+=a;a+=2;}

printf("%d,%d\n",a,b);}程序運行后的輸出效果是A)9,18B)8,11C)7,11D)10,14參考答案:D)解答:當a=1時:執(zhí)行循環(huán)體{b+=a;a+=2;}執(zhí)行后,b=3,a=3,再執(zhí)行a++,所以a=4;當a=4時:執(zhí)行循環(huán)體{b+=a;a+=2;}執(zhí)行后,b=7,a=6,再執(zhí)行a++,所以a=7;當a=7時:執(zhí)行循環(huán)體{b+=a;a+=2;}執(zhí)行后,b=14,a=9,再執(zhí)行a++,所以a=10;當a=10時:循環(huán)結(jié)束。輸出序列“10,14”。程序運行結(jié)束。20.有以下程序參考答案:D)2021.有以下程序#include<stdio.h>main(){inty=10;for(;y>0;y--)if(y%3==0){printf(“%d”,--y); }}程序運行后的輸出效果是A)741B)852C)963D)875421參考答案:B)解答:當y==0時退出循環(huán),循環(huán)條件成立時y的范圍是10—1,能被3整除的有9,6,3,因此輸出的--y的值應(yīng)為85221.有以下程序參考答案:B)2122.有以下程序#include<stdio.h>main(){inty=10;while(y--);printf("y=%d\n",y);}程序執(zhí)行后的輸出結(jié)果是A)y=0B)y=-1C)y=1D)while構(gòu)成無限循環(huán)參考答案:B)解答:本題注意,while(y--);。該語句后面有一個“;”。實際上該循環(huán)執(zhí)行的是一個空語句,但變量y每執(zhí)行一次會被減“1”。所以y的值最終為“-1”。22.有以下程序參考答案:B)2223.設(shè)變量已正確定義,以下不能統(tǒng)計出一行中輸入字符個數(shù)(不包括回車符)程序段是A)n=0;while(ch=getchar()!='\n')n++;B)n=0;while(getchar()!='\n')n++;C)for(n=0;getchar()!='\n';n++);D)n=0;for(ch=getchar();ch!='\n';n++);參考答案:D)解答:A)正確。B)正確。C)正確。D)錯誤,在for()循環(huán)體內(nèi),第一個表達式僅執(zhí)行一次,所以讀不到給出的其它字符。23.設(shè)變量已正確定義,以下不能統(tǒng)計出一行中輸入字符個數(shù)(不2324.下列敘述中正確的是

A)break語句只能用于switch語句

B)在switch語句中必須使用default

C)break語句必須與switch語句中的case配對使用

D)在switch語句中,不一定使用break語句E)在循環(huán)體內(nèi)使用break語句和continue語句的作用相同。參考答案:D)解答:A)錯誤,也可用于循環(huán)語句中。B)錯誤,可使用,也可不使用,根據(jù)實際情況而定。C)錯誤,case語句后不一定需要break語句。D)正確。E)錯誤,break語句作用是結(jié)束循環(huán),continue語句的作用是,本次循環(huán)結(jié)束,開始下一次的循環(huán)。24.下列敘述中正確的是

A)break語句只能用于swit241、C語言的基本數(shù)據(jù)類型有

、

、

。2、C語言中變量的四要素為

、

、

、

。3、結(jié)構(gòu)化程序設(shè)計的三種基本結(jié)構(gòu)是

、

。4、在循環(huán)結(jié)構(gòu)中,break語句的功能是

,continue語句的功能是

。5、格式化輸入函數(shù)名

,格式化輸出函數(shù)名

,字符輸入函數(shù)名

,字符輸出函數(shù)名

。*6、VC++開發(fā)環(huán)境中,以下常用操作的快捷鍵:編譯

、運行

、定位到出錯的行

。參考答案:1、整型,字符型,浮點型2、變量名、類型、變量值、存儲單元3、順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)4、break:跳出循環(huán);continue:跳出本次循環(huán),進入下一次循環(huán)5、scanf,printf,getchar,putcharl6、Ctrl+F7,Ctrl+F5,F(xiàn)4二、填空1、C語言的基本數(shù)據(jù)類型有、25輸入n,判斷n是否為素數(shù)

比較break和continue的區(qū)別程序段:n=100;k=sqrt(n);for(i=2;i<=k;i++)if(n%i==0)break;if(i>k)printf(“yes\n”);elseprintf("no\n”);程序段:n=100;k=sqrt(n);for(i=2;i<=k;i++)

if(n%i==0)continue;if(i>k)printf(“yes\n”);elseprintf("no\n”);若n=100輸出no若n=100輸出yes輸入n,判斷n是否為素數(shù)

比較break和continue的26分析下面程序段的輸出結(jié)果___________n=100;k=sqrt(n);for(i=2;i<=k;printf("i=%d\n",i)){if(n%i==0)continue;i++;}分析下面程序段的輸出結(jié)果___________n=100;277、以下程序的運行結(jié)果是

。 main() { inti,j,m,n; i=8;j=10; m=++i; n=j++;

printf(“%d,%d,%d,%d”,i,j,m,n); }參考答案:i=8;j=10;++i表達式的值為9,變量i的值為9,m=++i的值為9j++表達式的值為10,變量j的值為11,n=j++的值為10故結(jié)果是:9,11,9,107、以下程序的運行結(jié)果是。參考答案:288、以下程序段的功能是

。 while((c=getchar())!='\n') count=count+1;9、以下程序段的功能是

。

for(n=0;n<26;n++) printf("%c",'A'+n);10、以下程序段的功能是

。 for(sum=0,i=1;i<=100;sum=sum+i,i+=2);參考答案:8、統(tǒng)計輸入字符的個數(shù)9、輸出26個大寫字母10、計算100以內(nèi)的奇數(shù)和8、以下程序段的功能是。參考答案:29題目一:有1、2、3、4個數(shù)字,能組成多少個互不相同且無重復(fù)數(shù)字的三位數(shù)?都是多少?程序分析:可填在百位、十位、個位的數(shù)字都是1、2、3、4。組成所有的排列后再去掉不滿足條件的排列。

三、編程題題目一:有1、2、3、4個數(shù)字,能組成多少個互不相同且無重復(fù)30voidmain()

{

inti,j,k,count=0;

for(i=1;i<5;i++)/*以下為三重循環(huán)*/

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

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

{/*確保i、j、k三位互不相同*/

if(i!=k&&i!=j&&j!=k) {printf(“%d”,i*100+j*10+k); count++; }

} printf(“共%d個滿足條件的三位數(shù)\n”,count);

}voidmain()

{

inti,j,k,c31題目二:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數(shù)為多少?程序分析:兔子的規(guī)律為數(shù)列1,1,2,3,5,8,13,21....題目二:古典問題:有一對兔子,從出生后第3個月起每個月都生一32程序源代碼(1):

voidmain()

{

longf1,f2,f3;

inti,n=20;

f1=f2=1;

printf(“第一個月:%12ld\n”,f1); printf(“第二個月:%12ld\n”,f2); for(i=3;i<=n;i++)

{

f3=f1+f2;/*前兩個月加起來賦值給第三個月*/ printf(“第%d個月:%12ld”,i,f3); f1=f2; f2=f3; }

}程序源代碼(1):

voidmain()

{

long33程序源代碼(2):

voidmain()

{

longf1,f2;

inti;

f1=f2=1;

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

{printf(“%12ld%12ld”,f1,f2);

if(i%2==0)printf("\n");/*控制輸出,每行四個*/

f1=f1+f2;/*前兩個月加起來賦值給第三個月*/

f2=f1+f2;/*前兩個月加起來賦值給第三個月*/

}

}程序源代碼(2):

voidmain()

{

long34題目三:輸入兩個正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)。

程序分析:利用輾除法。題目三:輸入兩個正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)。35程序源代碼:

voidmain()

{

inta,b,num1,num2,temp;

printf(“pleaseinputtwonumbers:\n”);

scanf(“%d,%d”,&num1,&num2);

if(num1<num2)

//使得num1大于num2

{temp=num1;

num1=num2;

num2=temp;

}

a=num1;b=num2;

while(b!=0)/*利用輾除法,直到b為0為止*/

{

temp=a%b;

a=b;

b=temp;

}

printf("gongyueshu:%d\n",a);

printf("gongbeishu:%d\n",num1*num2/a);

}

程序源代碼:

voidmain()

{

inta,36題目四:兩個乒乓球隊進行比賽,各出三人。甲隊為a,b,c三人,乙隊為x,y,z三人。已抽簽決定比賽名單。有人向隊員打聽比賽的名單。a說他不和x比,c說他不和x,z比,請編程序找出三隊賽手的名單。

程序分析:用循環(huán)找出a、b、c的所有可能的對手,用選擇去掉不符合要求的

題目四:兩個乒乓球隊進行比賽,各出三人。甲隊為a,b,c三人37voidmain(){ chari,j,k;/*i是a的對手,j是b的對手,k是c的對手*/

for(i=‘x’;i<=‘z’;i++)

for(j=‘x’;j<=‘z’;j++)

{if(i!=j)/*a的對手不能同時是b的對手*/ for(k=‘x’;k<=‘z’;k++)

{

if(i!=k&&j!=k)/*C的對手不能是a、b的對手*/ {if(i!=‘x’&&k!=‘x’&&k!=‘z’)

printf(“orderisa--%c\tb--%c\tc--%c\n”,i,j,k);

}

}

}

}voidmain()38題目五:給一個不多于5位的正整數(shù),要求:一、求它是幾位數(shù),二、逆序打印出各位數(shù)字

程序分析:學會分解出每一位數(shù)

題目五:給一個不多于5位的正整數(shù),要求:一、求它是幾位數(shù),二39程序源代碼(1):#include<stdio.h>intmain(){ inti=1,n,s; printf("請輸入一個數(shù):\n"); scanf("%d",&n); do { s=n%10; printf("倒數(shù)第%d位是%d\n",i,s); n=n/10; i++; }while(n!=0);}程序源代碼(1):40程序源代碼(2):

main()

{

inta,b,c,d,e,x;

scanf(“%ld”,&x);

a=x/10000;/*分解出萬位*/

b=x%10000/1000;/*分解出千位*/

c=x%1000/100;/*分解出百位*/

d=x%100/10;/*分解出十位*/

e=x%10;/*分解出個位*/

if(a!=0)printf(“thereare5,%ld%ld%ld%ld%ld\n”,e,d,c,b,a);

elseif(b!=0)printf(“thereare4,%ld%ld%ld%ld\n”,e,d,c,b);

elseif(c!=0)printf(“thereare3,%ld%ld%ld\n”,e,d,c);

elseif(d!=0)printf(“thereare2,%ld%ld\n”,e,d);

elseif(e!=0)printf("thereare1,%ld\n",e);

}程序源代碼(2):

main()

{

inta,b,c411.下列敘述中正確的是A)C語言程序?qū)脑闯绦蛑械谝粋€函數(shù)開始執(zhí)行B)可以在程序中由用戶指定任意一個函數(shù)作為主函數(shù),程序?qū)拇碎_始執(zhí)行C)C語言規(guī)定必須用main作為主函數(shù)名,程序?qū)拇碎_始執(zhí)行,在此結(jié)束D)main可作為用戶標識符,可以命名任意一個函數(shù)作為主函數(shù)參考答案:C)解答:A)錯誤,由于main()不一定寫在第一個位置上,所以該句話不準確。B)錯誤,C語言中規(guī)定,程序必須從主函數(shù)開始執(zhí)行,在主函數(shù)中結(jié)束。C)正確。D)錯誤,在main()函數(shù)中,main不可以作為標識符的名,但是在其它函數(shù)中,main可作為標識符的名稱(不推薦這樣做)。main()是程序的開始和結(jié)束的位置,不是任意函數(shù)都可以作為主函數(shù)。一、選擇1.下列敘述中正確的是參考答案:C)一、選擇422.以下選項中,能用作用戶標示符的是A)voidB)8_8C)_0_D)unsigned參考答案:C)解答:A)不能,void為C語言的保留字。B)不能,阿拉伯數(shù)字不能出現(xiàn)在標識符的第一個位置上。C)能,符合C語言標識符命名法則。D)不能,unsigned為C語言的保留字。2.以下選項中,能用作用戶標示符的是參考答案:C)433.以下敘述中正確的是A)C程序的基本組成單位是語句B)C程序中的每一行只能寫一條語句C)簡單C語句必須以分號結(jié)束D)C語句必須在一行內(nèi)完成參考答案:C)解答:A)不正確,C程序的基本組成單位應(yīng)該是函數(shù),函數(shù)的組成單位是語句。B)不正確,C程序中的每一行可寫多條語句,如:x=1;y=2;z=3;。C)正確。D)不正確,C語句不一定在一行內(nèi)完成。3.以下敘述中正確的是參考答案:C)444.以下程序運行后的輸出結(jié)果是【】。#include<stdio.h>main(){inta=200,b=010;printf("%d%d\n",a,b);}參考答案:2008解答:a為十進制數(shù)200,b為八進制數(shù),轉(zhuǎn)換成十進制數(shù)為8。輸出格式為十進制整數(shù)輸出格式,輸出的兩個數(shù)之間沒有空隙,所以輸出的序列為“2008”。4.以下程序運行后的輸出結(jié)果是【】。參考答案:2008455.有以下程序#include<stdio.h>main(){ints,t,A=10;doubleB=6;s=sizeof(A);t=sizeof(B);printf("%d,%d\n",s,t);}在VC6平臺上編譯運行,程序運行后的輸出結(jié)果是A)2,4B)1,4C)4,8D)10,6參考答案:C)解答:在本題中sizeof(A)和sizeof(B)是求變量A,B所占的字節(jié)數(shù)。在VC6編譯系統(tǒng)中,規(guī)定整型數(shù)均占用4個字節(jié),雙精度數(shù)占用8個字節(jié)。所以答案C)是正確的。5.有以下程序參考答案:C)466.有以下定義:inta;longb;doublex,y;則以下選項中正確的表達式是A)a%(int)(x-y)B)a=x

!=y;C)(a*y)%bD)y=x+y=x參考答案:B)解答:A)錯誤,x-y的值可能出現(xiàn)“0”,0不能作除數(shù)。B)正確,a=x

!=y可看成a=(x

!=y),“x

!=y”的值可能為“0”也可能為“1”。所以該表達式是正確。C)錯誤,(a*y)的值是一個實型數(shù),C語言中求余計算“%”,必須是實型數(shù)之間進行計算。D)錯誤,該賦值方式相當于給表達式賦值,所以是錯誤的。6.有以下定義:inta;longb;double477.若a是數(shù)值型,則邏輯表達式(a==1)||(a!=1)的值是A)1B)0C)2D)不知道a的值,不能斷定參考答案:A)解答:a的值只有兩種可能,等于“1”或者不等于“1”。該表達式(a==1)||(a!=1)的值永遠為真,所以,該表達式的值為“1”。7.若a是數(shù)值型,則邏輯表達式(a==1)||(a!=1)的488.表達式3.6-5/2+1.2+5%2的值是

A)4.3B)4.8C)3.3

D)3.8參考答案:D)解答:該表達式的值3.6-5/2+1.2+5%2=3.6-2+1.2+1=3.88.表達式3.6-5/2+1.2+5%2的值是

A)4.3499.表達式a+=a-=a=9的值是A)9B)9C)13D)0參考答案:D)解答:表達式a+=a-=a=9可化為a+=a-=9可化為a+=a=9-9可化為a+=a=0可化為a+=0。即a=0。9.表達式a+=a-=a=9的值是參考答案:D)5010.有以下程序#include<stdio.h>main(){charc1,c2;c1='A'+'8'-'4';

c2='A'+'8'-'5';printf("%c,%d\n",c1,c2);}已知字母A的ASCII碼為65,程序運行后的輸出的結(jié)果是A)E,68B)D,69C)E,DD)輸出無定值參考答案:A)解答:本題的關(guān)鍵在于下面的表達式c1='A'+'8'-'4'=65+56-52=69是“E”的ASCII值。c2='A'+'8'-'5'=65+56-53=68是“D”的ASCII值。在輸出時printf("%c,%d\n",c1,c2);c1按字符輸出,所以將字符“E”輸出。c2按有符號的十進制整形數(shù)輸出,所以將數(shù)值“68”輸出。10.有以下程序參考答案:A)5111.若變量已正確定義,在if(W)printf("%f\n",k);中,以下不可替代W的是A)a<>b+cB)ch=getchar()C)a==b+cD)a++參考答案:A)解答:A)錯誤,在C語言中沒有“<>”這樣的運算符,判斷不相等用!=。B)正確。if(W)中的“W”可以是任意表達式。C)正確。同上。D)正確。同上。11.若變量已正確定義,在if(W)printf("%f\5212.有以下程序#include<stdio.h>main(){inta=1,b=0;if(!a)b++;elseif(a==0)if(a)b+=2;elseb+=3;printf("%d\n",b);}程序運行的結(jié)果是A)0B)1C)2D)3參考答案:A)解答:參考本題的流程圖。在本題中,第一個判斷為“假”,第二個判斷也為“假”。所以,b的值仍然為“0”。12.有以下程序參考答案:A)5313.設(shè)有定義:inta=1,b=2,c=3;,以下語句中執(zhí)行效果與其它三個不同的是A)if(a>b)c=a,a=b,b=c;B)if(a>b){c=a,a=b,b=c;}C)if(a>b)c=a;a=b;b=c;D)if(a>b){c=a;a=b;b=c;}參考答案:C)解答:本題的含義是“a>b”為“真”A)執(zhí)行c=a,a=b,b=c;逗號表達式語句。B)執(zhí)行{c=a,a=b,b=c;}復(fù)合語句。C)只執(zhí)行c=a;這條語句。D)執(zhí)行{c=a;a=b;b=c;}復(fù)合語句。13.設(shè)有定義:inta=1,b=2,c=3;,以下語5414.以下是if語句的基本形式if(表達式)語句其中表達式A)必須是邏輯表達式B)必須是關(guān)系表達式C)必須是邏輯表達式或關(guān)系表達式D)可以是任意合法的表達式參考答案:D)解答:根據(jù)C語言的法則,可以是任意表達式。14.以下是if語句的基本形式參考答案:D)5515.若有定義語句inta,b;doublex;則下列選項中沒有錯誤的是A)switch(x%2)B)switch((int)x/2.0){case0:a++;break;{case0:a++;break;case1:b++:break;case1:b++;break;default:a++;b++;default:a++;b++;}}C)switch((int)x%2)D)switch((int)(x)%2){case0:a++;break;{case0.0:a++;bresk;case1:b++;break;case1.0:b++;break;default:a++;b++default:a++;b++;}}參考答案:C)解答:A)錯誤,在C語言中求余運算必須在整型數(shù)之間運算。B)錯誤,在switch((int)x/2.0)中,不應(yīng)出現(xiàn)2.0實型數(shù)。C)正確。D)錯誤。case0.0,表示錯誤。15.若有定義語句inta,b;doublex;5616.以下選項中與if(a==1)a=b;elsea++;語句功能不同的switch語句是A)switch(a)B)switch(a==1){case1:a=b;break;{case0:a=b;break;default:a++;case1:a++;}}C)switch(a)D)switch(a==1){defaule:a++;break;{case1:a=b;break;case1:a=b;case0:a++;}}參考答案:B)解答:在B)選項中表達的是a==1時做a++;,與題意相反。16.以下選項中與if(a==1)a=b;elsea++;5717.以下程序中,與語句:k=a>b?(b>c?1:0):0;功能相同的是A)if((a>b)&&(b>c))k=1;B)if((a>b)||(b>c))k=1;elsek=0elsek=0C)if(a<=b)k=0;D)if(a>b)k=1;elseif(b<=c)k=1;elseif(b>c)k=1elsek=0參考答案:A)解答:該題的流程圖從該邏輯框圖中,可判斷出A)的描述與題意吻合,其它的都不能表達該題意。17.以下程序中,與語句:k=a>b?(b>c?1:0):05818.以下程序段的執(zhí)行結(jié)果是intx=23;do{printf(“%d”,x--);}while(!x);A)輸出321B)輸出23C)不輸出任何內(nèi)容D)死循環(huán)參考答案:B)解答:先執(zhí)行循環(huán)體,輸出表達式x--的值為23,變量x的值為22,再判斷循環(huán)條件!x,為假,則退出循環(huán)18.以下程序段的執(zhí)行結(jié)果是參考答案:B)5919.從以下給出的表達式中選出與while(E)語句中的(E)不能等價的表達式。A)(!E==0)B)(E>0)||(E<0)C)(E!=0)D)(E==0)參考答案:D)解答:while(E)中的E只要不等于0即為“真”正確,表達式!E==0當E!=0時為真,E==0時為假正確正確錯誤,表達式E==0當E==0時為真,E!=0時為假19.從以下給出的表達式中選出與while(E)語句中的(E6020.有以下程序#include<stdio.h>main(){inta=1,b=2;for(;a<8;a++){b+=a;a+=2;}

printf("%d,%d\n",a,b);}程序運行后的輸出效果是A)9,18B)8,11C)7,11D)10,14參考答案:D)解答:當a=1時:執(zhí)行循環(huán)體{b+=a;a+=2;}執(zhí)行后,b=3,a=3,再執(zhí)行a++,所以a=4;當a=4時:執(zhí)行循環(huán)體{b+=a;a+=2;}執(zhí)行后,b=7,a=6,再執(zhí)行a++,所以a=7;當a=7時:執(zhí)行循環(huán)體{b+=a;a+=2;}執(zhí)行后,b=14,a=9,再執(zhí)行a++,所以a=10;當a=10時:循環(huán)結(jié)束。輸出序列“10,14”。程序運行結(jié)束。20.有以下程序參考答案:D)6121.有以下程序#include<stdio.h>main(){inty=10;for(;y>0;y--)if(y%3==0){printf(“%d”,--y); }}程序運行后的輸出效果是A)741B)852C)963D)875421參考答案:B)解答:當y==0時退出循環(huán),循環(huán)條件成立時y的范圍是10—1,能被3整除的有9,6,3,因此輸出的--y的值應(yīng)為85221.有以下程序參考答案:B)6222.有以下程序#include<stdio.h>main(){inty=10;while(y--);printf("y=%d\n",y);}程序執(zhí)行后的輸出結(jié)果是A)y=0B)y=-1C)y=1D)while構(gòu)成無限循環(huán)參考答案:B)解答:本題注意,while(y--);。該語句后面有一個“;”。實際上該循環(huán)執(zhí)行的是一個空語句,但變量y每執(zhí)行一次會被減“1”。所以y的值最終為“-1”。22.有以下程序參考答案:B)6323.設(shè)變量已正確定義,以下不能統(tǒng)計出一行中輸入字符個數(shù)(不包括回車符)程序段是A)n=0;while(ch=getchar()!='\n')n++;B)n=0;while(getchar()!='\n')n++;C)for(n=0;getchar()!='\n';n++);D)n=0;for(ch=getchar();ch!='\n';n++);參考答案:D)解答:A)正確。B)正確。C)正確。D)錯誤,在for()循環(huán)體內(nèi),第一個表達式僅執(zhí)行一次,所以讀不到給出的其它字符。23.設(shè)變量已正確定義,以下不能統(tǒng)計出一行中輸入字符個數(shù)(不6424.下列敘述中正確的是

A)break語句只能用于switch語句

B)在switch語句中必須使用default

C)break語句必須與switch語句中的case配對使用

D)在switch語句中,不一定使用break語句E)在循環(huán)體內(nèi)使用break語句和continue語句的作用相同。參考答案:D)解答:A)錯誤,也可用于循環(huán)語句中。B)錯誤,可使用,也可不使用,根據(jù)實際情況而定。C)錯誤,case語句后不一定需要break語句。D)正確。E)錯誤,break語句作用是結(jié)束循環(huán),continue語句的作用是,本次循環(huán)結(jié)束,開始下一次的循環(huán)。24.下列敘述中正確的是

A)break語句只能用于swit651、C語言的基本數(shù)據(jù)類型有

、

。2、C語言中變量的四要素為

、

、

、

。3、結(jié)構(gòu)化程序設(shè)計的三種基本結(jié)構(gòu)是

、

、

。4、在循環(huán)結(jié)構(gòu)中,break語句的功能是

,continue語句的功能是

。5、格式化輸入函數(shù)名

,格式化輸出函數(shù)名

,字符輸入函數(shù)名

,字符輸出函數(shù)名

。*6、VC++開發(fā)環(huán)境中,以下常用操作的快捷鍵:編譯

、運行

、定位到出錯的行

。參考答案:1、整型,字符型,浮點型2、變量名、類型、變量值、存儲單元3、順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)4、break:跳出循環(huán);continue:跳出本次循環(huán),進入下一次循環(huán)5、scanf,printf,getchar,putcharl6、Ctrl+F7,Ctrl+F5,F(xiàn)4二、填空1、C語言的基本數(shù)據(jù)類型有、66輸入n,判斷n是否為素數(shù)

比較break和continue的區(qū)別程序段:n=100;k=sqrt(n);for(i=2;i<=k;i++)if(n%i==0)break;if(i>k)printf(“yes\n”);elseprintf("no\n”);程序段:n=100;k=sqrt(n);for(i=2;i<=k;i++)

if(n%i==0)continue;if(i>k)printf(“yes\n”);elseprintf("no\n”);若n=100輸出no若n=100輸出yes輸入n,判斷n是否為素數(shù)

比較break和continue的67分析下面程序段的輸出結(jié)果___________n=100;k=sqrt(n);for(i=2;i<=k;printf("i=%d\n",i)){if(n%i==0)continue;i++;}分析下面程序段的輸出結(jié)果___________n=100;687、以下程序的運行結(jié)果是

。 main() { inti,j,m,n; i=8;j=10; m=++i; n=j++;

printf(“%d,%d,%d,%d”,i,j,m,n); }參考答案:i=8;j=10;++i表達式的值為9,變量i的值為9,m=++i的值為9j++表達式的值為10,變量j的值為11,n=j++的值為10故結(jié)果是:9,11,9,107、以下程序的運行結(jié)果是。參考答案:698、以下程序段的功能是

。 while((c=getchar())!='\n') count=count+1;9、以下程序段的功能是

。

for(n=0;n<26;n++) printf("%c",'A'+n);10、以下程序段的功能是

。 for(sum=0,i=1;i<=100;sum=sum+i,i+=2);參考答案:8、統(tǒng)計輸入字符的個數(shù)9、輸出26個大寫字母10、計算100以內(nèi)的奇數(shù)和8、以下程序段的功能是。參考答案:70題目一:有1、2、3、4個數(shù)字,能組成多少個互不相同且無重復(fù)數(shù)字的三位數(shù)?都是多少?程序分析:可填在百位、十位、個位的數(shù)字都是1、2、3、4。組成所有的排列后再去掉不滿足條件的排列。

三、編程題題目一:有1、2、3、4個數(shù)字,能組成多少個互不相同且無重復(fù)71voidmain()

{

inti,j,k,count=0;

for(i=1;i<5;i++)/*以下為三重循環(huán)*/

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

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

{/*確保i、j、k三位互不相同*/

if(i!=k&&i!=j&&j!=k) {printf(“%d”,i*100+j*10+k); count++; }

} printf(“共%d個滿足條件的三位數(shù)\n”,count);

}voidmain()

{

inti,j,k,c72題目二:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數(shù)為多少?程序分析:兔子的規(guī)律為數(shù)列1,1,2,3,5,8,13,21....題目二:古典問題:有一對兔子,從出生后第3個月起每個月都生一73程序源代碼(1):

voidmain()

{

longf1,f2,f3;

inti,n=20;

f1=f2=1;

printf(“第一個月:%12ld\n”,f1); printf(“第

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論