信息學(xué)奧林匹克練習(xí)題(共23頁(yè))_第1頁(yè)
信息學(xué)奧林匹克練習(xí)題(共23頁(yè))_第2頁(yè)
信息學(xué)奧林匹克練習(xí)題(共23頁(yè))_第3頁(yè)
信息學(xué)奧林匹克練習(xí)題(共23頁(yè))_第4頁(yè)
信息學(xué)奧林匹克練習(xí)題(共23頁(yè))_第5頁(yè)
已閱讀5頁(yè),還剩18頁(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)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上 第4章 練習(xí)題一、選擇題51、以下正確的if語(yǔ)句是AA、if  (n>0)  printf("%f",n);    printf("%f",-n);B、if  (n>0)       n=n+m;  printf("%f",n);     else  printf("%f",-n);C、if

2、0; (n>0)       n=n+m;  printf("%f",n);  ;    else  printf("%f",-n);D、if  (n>0)       n=n+m;  printf("%f",n)  ;    else  printf("%f&quo

3、t;,-n);52、以下程序Bmain(  )printf("# # # #");A、輸出:* * * *B、輸出:# # # #C、存在語(yǔ)法錯(cuò)誤D、無(wú)輸出結(jié)果53、為了避免在嵌套的條件語(yǔ)句if-else中產(chǎn)生二義性,C語(yǔ)言規(guī)定:else子句總是與BA、縮排位置相同的if配對(duì)      B、其之前最近且不帶else的if配對(duì)C、其之前最近的if配對(duì)        D、第一個(gè)if配對(duì)54、若w、x、y、z、k均為int類型變量,則執(zhí)行下面語(yǔ)句后的k

4、的值是Aw=1;  x=2;  y=3;  z=4;k=(w<x)?w:x;k=(k<y)?k:y;k=(k<z)?k:z;A、1B、2C、3D、455、下面程序段所表示的數(shù)學(xué)函數(shù)關(guān)系是x=-1;if  (a!=0)if  (a>0)  x=1;else  x=0;1   (a>0)              0  (a>0)C、

5、0  (a<0)                D、-1  (a<0)x=    -1  (a=0) x=     1  (a=0)1  (a>0)             

6、0;   0  (a>0) 56、以下關(guān)于switch語(yǔ)句和break語(yǔ)句的描述中正確的是DA、在switch語(yǔ)句中必須使用break語(yǔ)句B、break語(yǔ)句只能用于switch語(yǔ)句體中C、break語(yǔ)句只能用于循環(huán)語(yǔ)句中D、在switch語(yǔ)句中使用break語(yǔ)句或continue語(yǔ)句的作用相同 57、設(shè)有說(shuō)明:int a=1,b=0; 則執(zhí)行以下語(yǔ)句后的輸出結(jié)果是Cswitch(a) case 1:switch(b) case 0: printf("* 0 *n"); break;  case 1: printf(&q

7、uot;* 1 *n");break;case 2: printf("* 2 *n"); break;C、* 0 *D、switch語(yǔ)句中存在語(yǔ)法錯(cuò)誤   * 1 *   * 2 *58、設(shè)有程序段Cint x=10;while (x=0)    x=x-1;A、while循環(huán)執(zhí)行10次     B、循環(huán)是無(wú)限循環(huán)C、循環(huán)體語(yǔ)句一次也不執(zhí)行    D、循環(huán)體語(yǔ)句只執(zhí)行一次59、語(yǔ)句while (!y)中的表達(dá)式 !y 等價(jià)于C

8、A、y=0   B、y!=1 C、y!=0 D、y=160、以下關(guān)于do-while循環(huán)不正確的描述是CA、d0-while的循環(huán)體至少執(zhí)行一次B、do-while循環(huán)由do開(kāi)始,用while結(jié)束,在while (表達(dá)式)后面不能寫(xiě)分號(hào)C、在do-while循環(huán)體中,一定要有能使while后面表達(dá)式的值變?yōu)榱悖?quot;假")的操作D、do-while的循環(huán)體可以是復(fù)合語(yǔ)句61、設(shè)x、y均是int類型變量,x值為100,則關(guān)于以下for循環(huán)的正確判斷是Cfor  (y=100; x!=y; +x,y+) printf("*n");A

9、、循環(huán)體只執(zhí)行一次 B、是無(wú)限循環(huán)C、循環(huán)體一次都不執(zhí)行 D、for語(yǔ)句中存在語(yǔ)法錯(cuò)誤62、以下程序段中的do-while循環(huán)Cm=-1;do m=m*m;while(!m);A、是死循環(huán)B、執(zhí)行二次 C、執(zhí)行一次D、有語(yǔ)法錯(cuò)誤63、以下關(guān)于for循環(huán)的正確描述是DA、for循環(huán)只能用于循環(huán)次數(shù)已經(jīng)確定的情況B、for循環(huán)是先執(zhí)行循環(huán)體語(yǔ)句,后判斷表達(dá)for  (k=2; k=0;  )C、在for循環(huán)中,不能用break語(yǔ)句跳出循環(huán)體D、for循環(huán)的循環(huán)體語(yǔ)句中,可以包含多條語(yǔ)句,但必須用花括號(hào)括起來(lái) 66、以下程序段的執(zhí)行結(jié)果是Aint  x=-3;do pr

10、intf("%dn", x+);while(!x);A、-3                 D、-3B、-2                    -2C、陷入死循環(huán)     &

11、#160;      -167、執(zhí)行以下程序段后,y的值是E,x的值是Eint  x=1, y=10;do  y-=x;for (b=1,a=1; b<=50; b+) if (a>=10)   break;  if (a%2=1) a+=5;    continue;a-=3;x+;while(y-<0);A、10   B、6   C、7   D、8   E、469、

12、以下程序段的執(zhí)行結(jié)果是Aint  a, b;for (a=1; a<5; a+=2) for (b=1; b<5; b+)  printf("%2d",a*b);if (b=5)printf("n");A、 1   2   3   4B、1   2   3   4 D、 2   3   43   6   9 

13、0; 12        6   9   12  15 6   9   12C、 2   3   4   6   9   12 10  15  2070、以下程序段中是死循環(huán)的是 x+;while(y-<0);A、9   B、8   C、-2   D、2

14、 E、4  F、368、執(zhí)行以下程序段后a的值是,b的值是int  a, b;式64、語(yǔ)句for (表達(dá)式1;  ; 表達(dá)式3)等價(jià)于BA、for (表達(dá)式1; 0 ; 表達(dá)式3)B、for (表達(dá)式1; 1 ; 表達(dá)式3)C、for (表達(dá)式1; 表達(dá)式1; 表達(dá)式3)D、for (表達(dá)式1; 表達(dá)式3; 表達(dá)式3)65、若k為整型變量,則以下for循環(huán)的執(zhí)行次數(shù)是Bfor  (k=2; k=0;  ) printf("%d",k-);A、無(wú)限次B、0次C、1次D、2次66、以下程序段的執(zhí)行結(jié)果是Aint  x=

15、-3;do printf("%dn", x+);while(!x);A、-3                 D、-3B、-2                    -2C、陷入死循環(huán)    

16、;        -167、執(zhí)行以下程序段后,y的值是,x的值是int  x=1, y=10;do  y-=x; x+;while(y-<0);A、9   B、8   C、-2   D、2 E、4  F、368、執(zhí)行以下程序段后a的值是B,b的值是Aint  a, b;for (b=1,a=1; b<=50; b+) if (a>=10)   break;  if (a%2=1)

17、 a+=5;    continue;a-=3;A、10   B、6   C、7   D、8   E、469、以下程序段的執(zhí)行結(jié)果是Aint  a, b;for (a=1; a<5; a+=2) for (b=1; b<5; b+)  printf("%2d",a*b);if (b=5)printf("n");A、 1   2   3   4B、1

18、0;  2   3   4 C、 2   3   43   6   9   12        6   9   12  15 6   9   12D、 2   3   4   6   9  

19、 12 10  15  2070、以下程序段中是死循環(huán)的是CA、int  n=1;B、int  n=1;while (!n)             do n-;n+;                  while(n);C、int  n=1; &#

20、160;         D、for (n=5; n<1;  ) ; do n+;  while(n);71、下面程序的運(yùn)行結(jié)果是Cmain(  )  int  m=0;   while (m<=2) m+;   printf("%dn", m); A、1B、 1           &

21、#160;               2C、1                   D、12                &#

22、160;     2   3                      3                     &#

23、160;    472、以下能正確計(jì)算1×2×3××10的程序段是C  A、do                    B、do     k=1; n=1;           &

24、#160; k=1; n=0;       n=n*k;                 n=n*k; k+;                   k+;    

25、; while(k<=10);          while(k<=10);C、k=1; n=1;           D、k=1; n=0;    do                  

26、;  do    n=n*k;              n=n*k;            k+;                   k

27、+;          while(k<=10);         while(k<=10);73、下面程序的功能是計(jì)算1至10之間的奇數(shù)之和以及偶數(shù)之和。請(qǐng)選擇填空。main(  )  int x, y, z, k;   x=z=0;   for (k=0; k<=10; k+=2)     x+=k;

28、60;      D;       z+=y;        printf("偶數(shù)之和 = %dn", x);   printf("奇數(shù)之和 =%dn", B);、A、y=k-  B、y=k+1  C、y=k+  D、y=k-1、A、z-10  B、z      C、z-11&#

29、160;  D、z-y74、下面程序段的功能是計(jì)算1000!的末尾含有多少個(gè)零。請(qǐng)選擇填空。(提示:只要算出1000!中含有因數(shù)5的個(gè)數(shù)即可。)for (m=0,n=5; n<=1000; n+=5)   t=n;     while (C)   m+;  t=t/5;  A、t%5  B、t=t%5=0  C、t%5=0  D、t%5!=075、若有以下程序段:for (m=1; m<=100; m+)  scanf("%d&quo

30、t;, &y); scanf("%d", &y);    if (y<0)      continue;    printf("%3d", m);  正確的描述是CA、當(dāng)y<0時(shí)整個(gè)循環(huán)結(jié)束 B、y>=0時(shí)什么也不輸出C、printf函數(shù)永遠(yuǎn)也不執(zhí)行D、最多允許輸出100個(gè)非負(fù)整數(shù)76、以下程序段等價(jià)于Cfor (k=100; k<=200; k+)    if (k%3=0)

31、 continue;     printf("%4d", k);  A、for (k=100; (k%3)&&k<=200; k+)       printf("%4d", k);B、for (k=100; (k%3)|k<=200; k+)       printf("%4d", k);C、for (k=100; k<=200; k

32、+)       if (k%3!=0)  printf("%4d", k);D、for (k=100; k<=200; k+) if (k%3)          printf("%4d", k);        else        &#

33、160; continue;        break;        二、填空題20、以下程序的功能是:輸入三個(gè)整數(shù)n1、n2、n3,按從大到小的順序進(jìn)行輸出。請(qǐng)?zhí)羁?。main(  ) int  n1, n2, n3, temp;  scanf("%d%d%d", &n1, &n2, &n3);  if  (n2<n3)   

34、 temp=n2;  n2=n3;  n3=temp;    if  (n1<n2)    temp=n1;  n1=n2;  n2=temp;    printf("%d, %d, %dn", n1, n2, n3);21、以下程序的功能是:輸入一個(gè)小寫(xiě)字母,按字母排列順序后移5個(gè)位置后輸出(如把'a'變?yōu)?#39;f', 'w'變成'b')。請(qǐng)?zhí)羁铡?include  "

35、stdio.h"main(  ) char  c1;  c1=getchar(  );  if (c1>='a' && c1<='u')c1=c1+5;  else if (c1>='v' && c1<='z')    c1=c1-21;  putchar(c1);22、輸入一個(gè)字符,如果它是一個(gè)大寫(xiě)字母,則把它變成小寫(xiě)字母;如果它是一個(gè)小寫(xiě)字母,則把它變成大寫(xiě)字母;

36、其它字符不變。請(qǐng)?zhí)羁?。main(  ) char  ch1;  scanf("%c", ch1);  if (ch1>=A&&ch1<=Z)    ch1=ch1+32;  else  if (ch1>='a' && ch1<='z')  ch1=ch1-32;printf("%c", ch1);23、閱讀下面的程序并回答問(wèn)題。main(  ) int

37、0; m, n, x, y;  scanf("%d, %d", &x, &y);  m=1;  n=1;  if (x>0) m=m+1;  if (x>y) n=m+n;else  if (x=y)          n=5;       elsen=2*m;  printf("m=%d, n=%d

38、", m, n);問(wèn)題:為了使輸出n=4,x的輸入值應(yīng)當(dāng)為一個(gè)大于零的數(shù),y的輸入值應(yīng)當(dāng)為一個(gè)小于x的數(shù)。24、以下程序的功能是:根據(jù)輸入的三條邊的值判斷是否能組成三角形,若能組成則輸出三角形的面積和三角形的類型。請(qǐng)?zhí)羁铡?include "math.h"main(  ) float  a1, a2, a3;  float  s, area;  scanf("%f%f%f", &a1, &a2, &a3);  if (a1+a2>a3&&a

39、2+a3>a1&&a3+a1>a2)    s=(a1+a2+a3)/2;      area=sqrt(s*(s-a1)*(s-a2)*(s-a3);      printf("%f", area);      if (a1=a2&&a2=a3&&a3=a1)      

40、60;  printf("等邊三角形");      else if (a1=a2|a2=a3|a3=a1)             printf("等腰三角形");          else if (a1*a1+a2*a2=a3*a3)| (a1*a1+a3*a3=a2*a2)| (a

41、2*a2+a3*a3=a1*a1)                printf("直角三角形");              else              

42、;   printf("一般三角形");    else     printf("不能組成三角形");25、以下程序的功能是判斷輸入的年份是否是閏年。請(qǐng)?zhí)羁?。main(  ) int  year, yes;  scanf("%d", &year);  if (year%400=0)     yes=1;  else if (year%4=0)

43、0;        yes=1;      else yes=0;  if (yes)    printf("%d is", year);  elseprintf("%d is not", year);  printf("  a leap year.n");26、以下程序段根據(jù)輸入的截止日期(年:yend,月:mend,日:dend)和出生日期(b

44、year,bmonth,bday),計(jì)算出實(shí)際年齡。請(qǐng)?zhí)羁铡nt  yend, mend, dend, byear, bmonth, bday, age;age=yend-byear;if (mend<bmonth)   age-;else if (mend=bmonth &&dend<bday)   age-;27、如果運(yùn)行以下程序段時(shí)輸入字符“t”,則程序段的運(yùn)行結(jié)果是Tmain(  ) char  c1;  scanf("%c", &c1); 

45、; c1=(c1>='A' && c1<='Z') ? (c1+32) : c1;  c1=(c1>='a' && c1<='z') ? (c1-32) : c1;  printf("%c",c1);28、以下程序的功能是找出x、y、z三個(gè)數(shù)中的最小值。請(qǐng)?zhí)羁?。main(  ) int  x=4, y=5, z=8;  int  u, v; u=x<y ?x:y;  v=u<

46、z ? u:z;  printf("%d", v);29、若運(yùn)行以下程序時(shí),輸入下面指定數(shù)據(jù),則運(yùn)行結(jié)果為#include <stdio.h>main(  ) int  ch;  while (ch=getchar(  )!='n') switch(ch-'1') case  0: case  1: putchar(ch+3);case  2: putchar(ch+3); break;     

47、60;   case  3: putchar(ch+3);         default:  putchar(ch+1); break;            printf("n");輸入數(shù)據(jù)(從第一列開(kāi)始):1234<回車>30、將以下嵌套的if語(yǔ)句改寫(xiě)成對(duì)應(yīng)的switch語(yǔ)句,使其完成相同的功能。請(qǐng)?zhí)羁?。(假設(shè)mark的取值在1至100之間。)if

48、語(yǔ)句: if (mark<60)  k=1; else if (mark<70)  k=2;   else if (mark<80)  k=3;     else if (mark<90)  k=4; else if (mark<=100)  k=5;switch語(yǔ)句:   switch(mark) case :5   k=1; break; case  6 :    

49、;  k=2; break;       case  7 :      k=3; break;           case  8 :      k=4; break;       default     k=5;

50、60;    31、將以下含有switch語(yǔ)句的程序段改寫(xiě)成對(duì)應(yīng)的含有非嵌套if語(yǔ)句的程序段,請(qǐng)?zhí)羁?。含有switch語(yǔ)句的程序段:int  s, t, m;t=(int)(s/10);switch( t )  case  10: m=5; break; case  9:  m=4; break; case  8:  m=3; break; case  7:  m=2; break; case  6:  m=1; break; default:&

51、#160;  m=0;  含有非嵌套if語(yǔ)句的程序段:int  s, m;if (s>100)  m=5;if (s<100) && (s>=90)  m=4;if (s<90) && (s>=80)  m=3;if (s<80) && (s>=70)  m=2;if (s<70) && (s>=60)  m=1;if (s<60)   m=0; 

52、60;32、用switch語(yǔ)句實(shí)現(xiàn)以下數(shù)學(xué)關(guān)系,請(qǐng)?zhí)羁铡?#160;            -1  (x<0)       y=    0   (x=0)             1   (x>0)switch(x&l

53、t;0) case  1: y=-1; break;    case  0: switch(x=0) case  1: y=0; break;                   default y=1;             33、將以

54、下含有switch語(yǔ)句的程序段改寫(xiě)成對(duì)應(yīng)的含有嵌套if語(yǔ)句的程序段,請(qǐng)?zhí)羁铡:衧witch語(yǔ)句的程序段:int  s, t, m;t=(int)(s/10);switch( t )  case  10: m=5; break; case  9:  m=4; break; case  8:  m=3; break; case  7:  m=2; break; case  6:  m=1; break; default:   m=0;含有嵌套if語(yǔ)句的程序段:int&

55、#160; s, m;if (s<60)  m=0;else if (s<70)  m=1;    else if (s<80)  m=2;        else if (s<90)  m=3;            else if (s<100)  m=4;    

56、            else m=5; 34、設(shè)x和y均為int類型變量,則以下for循環(huán)中的scanf語(yǔ)句最多可執(zhí)行的次數(shù)是2for (x=0, y=0; y!=123 && x<3; x+)scanf("%d", &y); 35、設(shè)a、b、c均是int類型變量,則執(zhí)行以下for循環(huán)后,c的值為10for (a=1, b=5; a<=b; a+)c=a+b; 36、以下程序的運(yùn)行結(jié)果為(啥都沒(méi)有

57、)main(  ) int j=5;  while (j<=15)     if (+j % 2!=1)           continue;         else   printf("%d  ", j );      printf("n

58、");37、設(shè)ch1為char類型變量,若從鍵盤(pán)上由第一列輸入以下數(shù)據(jù): right?<回車>則以下三個(gè)程序段的輸出結(jié)果分別是right,sjhiu,right?。、c=getchar(  );    while (c!='?')      putchar(c);  c=getchar( );  、while (c=getchar(  )!='?')      putchar(+c);、while (putchar(getchar( )!='?')  ;38、下面程序段的功能是統(tǒng)計(jì)從鍵盤(pán)輸入的字符中的數(shù)字字符個(gè)數(shù),用換行符'n'結(jié)束循環(huán),請(qǐng)?zhí)羁?。int  n=0, c;c=getchar(  ) ;while (c!=n) if (c>=a&&c<=z|c>=A&&c&

溫馨提示

  • 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)論