blogjava's web log

          blogjava's web log
          ...

          [分享]c語言問題100題

          1.? C語言的主要特點(diǎn)有哪些?(多選)

          ??? A.簡(jiǎn)潔、緊湊,使用方便、靈活,易于學(xué)習(xí)和應(yīng)用。
          ??? B.C語言是面向結(jié)構(gòu)化程序設(shè)計(jì)的語言。
          ??? C.C語言允許直接對(duì)位、字節(jié)和地址進(jìn)行操作。
          ??? D.數(shù)據(jù)類型豐富。
          ??? E.C語言生成的目標(biāo)代碼質(zhì)量高。
          ???
          ??? 答案:? ABCDE


          2.? C語言程序由什么組成?(單選)

          ?? A. 子程序?? B. 主程序和子程序?? C. 函數(shù)?? D. 過程

          ?? 答案: C


          3.? 源程序要正確地運(yùn)行,必須要有什么函數(shù)?(單選)

          ??? A. printf函數(shù)??? B. 自定義的函數(shù)
          ??? C. main函數(shù)????? D. 不需要函數(shù)

          ??? 答案: C

          4.? 指出下面合法的標(biāo)識(shí)符:(多選)

          ??? A. 3ab??? B. int??? C. ABC??? D. a_3
          ??? E. sum.a? F. #abc? G. _stu2? H. abc f

          ??? 答案:CDG

          5.? 指出下面哪些是保留字:(多選)

          ??? A. char?? B. abc??? C. printf?? D. Int
          ??? E. float? F. define G. include? H. PI??

          ??? 答案:AEFG

          6.? 指出下面哪些是合法的用戶定義的標(biāo)識(shí)符?(多選)

          ??? A. P-S?? B. putchar?? C. double?? D. _908
          ??? E. *par? F. sheep!?? G. wind??? H. x y

          ??? 答案:BDG


          7.? C語言的基本類型哪些:(多選)

          ??? A. 整型??? B. 枚舉型??? C. 數(shù)組型??? D. 指針型
          ??? E. 字符型? F. 構(gòu)造型??? G. 實(shí)形????? H. 空類型

          ??? 答案: ABEG

          8. 這段程序中的常量有:(多選)
          ?? #define PI? 3.14
          ?? void main()
          ?? {
          ????? int sum;

          ????? sum = 10 + 15;

          ????? printf("sum=%d\n",sum);
          ????? printf("result is 25\n");
          ?? }

          ?? 這段程序中常量有:

          ?? A. 10?? B. sum?? C. 15
          ?? D. 25?? E. main? F. PI

          ?? 答案:ACF

          9. C語言中整形常量按進(jìn)制劃分,有以下幾種:(多選)

          ?? A. 十六進(jìn)制常量?? B. 十進(jìn)制常量
          ?? C. 八進(jìn)制常量???? D. 二進(jìn)制常量

          ?? 答案:ABC


          10. 75的十六進(jìn)制寫法為___,八進(jìn)制寫法為___。
          ??? 0x75的八進(jìn)制寫法為___,十進(jìn)制寫法為___。
          ??? 075的十進(jìn)制寫法為___,十六進(jìn)制寫法為___。


          ??? 答案: 0x4b?? 0113
          ????????? 0165?? 117
          ????????? 61???? 0x3d

          11. 如果要把常量327存入變量a中,a可以定義成哪些類型?(多選)

          ??? A. int?????? B. char
          ??? C. long????? D. float
          ???
          ??? 答案: ACD

          12. 下面哪些寫法是對(duì)的,而且是常量?(多選)

          ??? A. 125??? B.? -.456??? C. 1.25e20??? D. 'AB'
          ??? E. E6???? F.? 0238???? G. 0xabcdef?? H. "\n\\\'\123"

          ??? 答案: ABCGH

          13. 下面哪個(gè)表達(dá)式的值為4.(單選)

          ?? A. 11/3?????????? B. 11.0/3
          ?? C. (float)11/3??? D. (int)(11.0/3+0.5)

          ?? 答案: D

          14. 已知整型變量a=6,b=7,c=1,則下面表達(dá)式的值為多少?

          ?? a+3??????????????? ___
          ?? (b-a*3)/5????????? ___
          ?? c*(a+b)+b*(c+a)??? ___
          ?? 3.2*(a+b+c)??????? ___

          ?? 答案: 9
          ???????? -2???????
          ???????? 62
          ???????? 44.8

          15. 已知整型變量a=6,字符型變量ch='A',浮點(diǎn)數(shù)變量f=2.1,則下面表達(dá)式的值為多少?
          ??? (提示:'A'的ASCII碼為65)

          ?? a+4.5??????? ___
          ?? ch+a+f?????? ___
          ?? (a+30)/5???? ___
          ?? (a+30)/5.0?? ___

          ??? 答案: 10.5
          ????????? 73.1
          ????????? 7
          ????????? 7.2

          16. 指出下面錯(cuò)誤的表達(dá)式:(多選)

          ?? A. a+b=5????????? B. 56=a11?? C. i=i++??
          ?? D. 5.6+6.2%3.1??? E. 12?????? F. a=5,b=6,c=7

          ?? 答案: BD

          17. 若變量f已說明為float類型,i為int類型,則下面哪些表達(dá)式(或語句)能夠?qū)崿F(xiàn)將f中的數(shù)值保留小數(shù)點(diǎn)后兩位,第三位進(jìn)行四舍五入的運(yùn)算?(多選)

          ??? A. f=(f*100+0.5)/100.0?????? B. i=f*100+0.5,f=i/100.0;
          ??? C. f=(int)(f*100+0.5)/100.0; D. f=(f/100+0.5)*100.0;

          ??? 答案: BC


          18. 寫出下面這個(gè)程序的結(jié)果。
          ?? void main()
          ?? {
          ????? int count,i;
          ????? int x,y,z;
          ??
          ????? x=y=z=0;
          ????? scanf("%d",&count);
          ????? for(i=0;i<count;i++)
          ????? {
          ???????? x=(x+1)%2;
          ???????? y=(y+1)%3;
          ???????? z=(z+1)%5;
          ????? }

          ????? printf("x=%d,y=%d,z=%d\n",x,y,z);
          ?? }

          ?? 如果運(yùn)行時(shí)輸入10, 結(jié)果是 x=___,y=___,z=___。
          ?? 如果運(yùn)行時(shí)輸入17, 結(jié)果是 x=___,y=___,z=___。

          ?? 答案:0?? 1?? 0
          ???????? 1?? 2?? 2

          19. 已知a為整型變量,那么與表達(dá)式 a!=0 真假值情況相同的表達(dá)式有哪些?(多選)

          ??? A. a>0||a<0??? B. a
          ??? C. !a==0?????? D. !a

          ??? 答案: ABC

          20.若要輸出下列各種類型的數(shù)據(jù),應(yīng)使用什么轉(zhuǎn)換說明符。(答題請(qǐng)打上雙引號(hào))

          ??? 字段寬度為4的十進(jìn)制數(shù)應(yīng)使用"%4d",字段寬度為6的十六進(jìn)制數(shù)應(yīng)使用___,八進(jìn)制整數(shù)應(yīng)使用___,字段寬度為3的字符應(yīng)使用___,字段寬度為10,保留3位小數(shù)的實(shí)數(shù)應(yīng)使用___,字段寬度為8的字符串應(yīng)使用___。

          ??? 答案:"%6x"?? "%o"?? "%3c"?? "%10.3f"?? "%8s"


          21. 該源程序執(zhí)行后,屏幕上顯示什么?(單選)

          ?? void main()
          ?? {
          ????? int a;
          ????? float b;

          ????? a=4;
          ????? b=9.5;

          ????? printf("a=%d,b=%4.2f\n",a,b);
          ?? }

          ?? A. a=%d,b=%f\n??? B. a=%d,b=%f
          ?? C. a=4,b=9.50???? D. a=4,b=9.5

          ?? 答案: C

          22. 下面哪些是非法的C語言轉(zhuǎn)義字符?(多選)

          ??? A. '\t'??? B. '\08'??? C. '\0xaf'?? D. '\\'???

          ??? 答案: BC

          23. 以下程序輸入三個(gè)整數(shù)值給a,b,c,程序把b中的值給a,把c中的值給b,把a(bǔ)中的值給c,然后輸出a,b,c的值。請(qǐng)?zhí)羁铡?br />?? #include <stdio.h>
          ?? main()
          ?? {
          ????? ___
          ????? int temp;
          ????? printf("Enter a,b,c:");
          ????? scanf("%d%d%d",___);
          ????? ___
          ????? a=b;
          ????? b=c;
          ????? ___
          ????? printf("a=%d b=%d c=%d\n",a,b,c);
          ?? }

          ?? 答案: int a,b,c;
          ???????? &a,&b,&c
          ???????? temp=a;
          ???????? c=temp;


          24. 若a為整型變量,且有以下語句___。(單選)

          ?? a=-017L;
          ?? printf("%d\n",a);

          ?? 則下面哪個(gè)說法是正確的?

          ?? A. 賦值不合法????? B. 輸出值為-17
          ?? C. 輸出為不確定值? D. 輸出值為-15

          ?? 答案: B

          25. 若ch為char型變量,a為int型變量,(已知字符a的ASCII十進(jìn)制代碼為97)則執(zhí)行以下語句后的輸出為哪一個(gè)?(單選)
          ???
          ??? char ch;
          ??? int a;

          ??? ch='a';
          ??? a=12;
          ??? printf("%x,%o,",ch,ch,a);
          ??? printf("k=%%d\n",k);

          ??? A. 61,141,12,k=%d
          ??? B. 輸出項(xiàng)與格式描述符個(gè)數(shù)不符,輸出為零值或不定值
          ??? C. 61,141,k=%d
          ??? D. 61,141,k=%12

          ??? 答案: C

          26. 若有以下說明語句:(單選)

          ??? char s='\\\092';

          ??? 則下面哪一項(xiàng)是正確的.

          ??? A. 使s的值包含2個(gè)字符??? B. 說明語句不合法
          ??? C. 使s的值包含6個(gè)字符??? D. 使s的值包含4個(gè)字符

          ??? 答案: B

          27.若k,g均為int型變量,則以下語句的輸出為哪一項(xiàng)?(單選)

          ??? int k,g;
          ???
          ??? k=017;
          ??? g=111;
          ??? printf("%d,",k);
          ??? printf("%x\n",g);
          ???
          ??? A. 15,6f?? B. f,6f??? C. f,111??? D. 15,111

          ??? 答案: A


          28. 請(qǐng)從下面的選項(xiàng)中選出正確的C語言的轉(zhuǎn)義字符。(多選)
          ???
          ??? A. '//'????? B. '\''????? C. '\t'?? D. '\n'
          ??? E. '\1011'?? F. '/018'??? G. '/123'?? H. '\xaa'

          ??? 答案:?? BCDH

          29. 如這程序所示,如果運(yùn)行時(shí),輸入 18,18 ,那么 b的值為多少?(單選)

          ?? void main()
          ?? {
          ????? int a,b;

          ????? scanf("%d,%o",&a,&b);

          ????? b+=a;
          ????? printf("%d",b);
          ?? }

          ?? A. 36?? B. 34?? C. 輸入錯(cuò)誤,b的值不確定?? D. 18

          ?? 答案: C

          30. 讀懂程序并填空。
          ?? #include <stdio.h>

          ?? void main()
          ?? {
          ????? char ch=0x31;

          ????? printf("%d\n",ch);//屏幕顯示___
          ????? printf("%o\n",ch);//屏幕顯示___
          ????? printf("%x\n",ch);//屏幕顯示___
          ????? printf("%c\n",ch);//屏幕顯示___
          ?? }

          ??? 答案: 49
          ????????? 61
          ????????? 31
          ????????? 1
          ?
          1.? C程序的結(jié)構(gòu)可分為哪幾類?(多選)

          ??? A.順序結(jié)構(gòu)
          ??? B.循環(huán)結(jié)構(gòu)
          ??? C.程序結(jié)構(gòu)
          ??? D.選擇結(jié)構(gòu)

          ??? 答案: ABD

          2.? 輸入兩個(gè)實(shí)數(shù)a,b,然后交換它們的值,最后輸出(提示:要交換兩個(gè)數(shù)得借助一個(gè)中間變量temp。首先讓temp存放a的值,然后把b存入a,再把temp存入b就完成了)。
          ?
          ?? void main()
          ?? {
          ????? float a,b,temp;

          ????? printf("請(qǐng)輸入a和b的值:");
          ????? scanf("%d,%d",___);

          ????? temp = a;
          ????? ___
          ????? ___
          ????? printf("交換后, a=%d , b=%d\n",___);
          ?? }

          ??? 答案: &a ,&b
          ????????? a = b;
          ????????? b = temp;
          ????????? a , b

          3. 當(dāng)a,b,c的值分別為3,4,5時(shí),以下各語句執(zhí)行后a,b,c的值為多少?

          ??????? (1)if(a>c)
          ?????????? {a=b;b=c;c=a;}
          ?????????? else
          ?????????? {a=c;c=b;b=a;}
          ??????????
          ?????????? 執(zhí)行后a,b,c的值為___,___,___
          ??????? (2)if(a<c)
          ???????????? a=c;
          ?????????? else
          ???????????? a=b;c=b;b=a;
          ??????????
          ?????????? 執(zhí)行后a,b,c的值為___,___,___
          ??????? (3)if(a!=c)
          ???????????? ;
          ?????????? else
          ???????????? a=c;c=b;b=a;
          ??????????
          ?????????? 執(zhí)行后a,b,c的值為___,___,___

          ??? 答案: 5? 5? 4
          ????????? 5? 5? 4
          ????????? 3? 3? 4

          4.? 當(dāng)a=3,b=4,c=5時(shí),寫出下列各式的值。
          ??? a<b的值為___, a<=b的值為___,
          ??? a==c的值為___, a!=c的值為___,
          ??? a&&b的值為___, !a&&b的值為___,
          ??? a||c的值為___, !a||c的值為___,
          ??? a+b>c&&b==c的值為___。

          ??? 答案: 1? 1
          ????????? 0? 1
          ????????? 1? 0
          ????????? 1? 1
          ????????? 0

          5.? 假設(shè)所有變量均已說明,寫出下列各程序段運(yùn)行后x的值。(多選)
          ??? ok1=1; ok2=2; ok3=0; x=15; a=3; b=4;

          ??? (1)if(!ok1)
          ???????? x++;
          ?????? else if(ok2)
          ?????? {
          ???????? if(ok3)
          ?????????? x=3;
          ???????? else??
          ?????????? x=4;
          ?????? }
          ??????
          ?????? 運(yùn)行后x的值為下面哪一個(gè)?
          ?????? A. 15?? B. 3?? C. 16? D. 4

          ??? (2)if(ok1)
          ?????? {
          ???????? if(a<b)
          ???????? {
          ?????????? if(!ok3)
          ????????????? x=0;
          ?????????? else
          ????????????? x=1;
          ???????? }
          ???????? else
          ?????????? x=2;
          ?????? }
          ?????? else
          ???????? x=3;
          ??????
          ?????? 運(yùn)行后x的值為下面哪一個(gè)?
          ?????? A. 0??? B. 1??? C. 2? D. 3

          ?????? 答案: D? A

          ?

          6.? 若整數(shù)x分別等于95、87、100、43、66、79,則以下程序段運(yùn)行后屏幕顯示是什么?
          ??? switch(x/10)
          ??? {
          ????? case 6:
          ????? case 7:
          ???????? printf("Pass\n");
          ???????? break;
          ????? case 8:
          ???????? printf("Good\n");
          ???????? break;
          ????? case 9:
          ????? case 10:
          ???????? printf("VeryGood\n");
          ???????? break;
          ????? default:
          ???????? printf("Fail\n");
          ??? }

          ??? x等于 95時(shí),程序段運(yùn)行后屏幕上顯示___
          ??? x等于 87時(shí),程序段運(yùn)行后屏幕上顯示___
          ??? x等于100時(shí),程序段運(yùn)行后屏幕上顯示___
          ??? x等于 43時(shí),程序段運(yùn)行后屏幕上顯示___
          ??? x等于 66時(shí),程序段運(yùn)行后屏幕上顯示___
          ??? x等于 79時(shí),程序段運(yùn)行后屏幕上顯示___
          ?
          ??? 答案: VeryGood??
          ????????? Good
          ????????? VeryGood
          ????????? Fail
          ????????? Pass
          ????????? Pass

          7.? 在C語言的if語句中,用作判斷的表達(dá)式為___。(單選)
          ???
          ??? A. 關(guān)系表達(dá)式??????? B. 邏輯表達(dá)式
          ??? C. 算術(shù)表達(dá)式??????? D. 任意表達(dá)式

          ??? 答案: D

          8.? 請(qǐng)問:下面這個(gè)程序段的輸出是什么?(單選)

          ??? int a,b,c;

          ??? a=7;b=8;c=9;
          ??? if(a>b)
          ?????? a=b,b=c;c=a;
          ??? printf("a=%d b=%d c=%d\n",a,b,c);

          ??? A. a=7 b=8 c=7???? B. a=7 b=9 c=7
          ??? C. a=8 b=9 c=7???? D. a=8 b=9 c=8

          ??? 答案: A

          9. 該程序的運(yùn)行結(jié)果是:(單選)

          ??? void main()
          ??? {
          ??????? int a,b,c;

          ??????? a=2;b=7;c=5;
          ??????? switch(a>0)
          ??????? {
          ??????? case 1:
          ?????????? switch(b<10)
          ?????????? {
          ????????????? case 1:printf("^");break;
          ????????????? case 0:printf("!");break;
          ?????????? }
          ??????? case 0:
          ?????????? switch(c==5)
          ?????????? {
          ????????????? case 0: printf("*");break;
          ????????????? case 1: printf("#");break;
          ????????????? default:printf("%%");break;
          ?????????? }
          ??????? default:
          ?????????? printf("&");
          ??????? }
          ??????? printf("\n");
          ??? }

          ??? A. ^#&???? B. ^?? C. &?? D. ^!*#%&

          ??? 答案: A

          10. 該程序的輸出結(jié)果是多少?(單選)
          ??
          ??? m=37;n=13;
          ??? while(m!=n)
          ??? {
          ?????? while(m>n)
          ???????? m=m-n;
          ?????? while(n>m)
          ???????? n-=m;
          ??? }
          ??? printf("m=%d\n",m);

          ??? 輸出結(jié)果為:
          ??? A. m=13?? B. m=11
          ??? C. m=1??? D. m=2

          ??? 答案:C

          11. 該程序的輸出結(jié)果是多少?(單選)
          ??
          ??? for(i=0;i<5;i++)
          ??? {
          ????? for(j=1;j<10;j++)
          ???????? if(j==5)
          ??????????? break;
          ????? if(i<2)
          ???????? continue;
          ????? if(i>2)
          ???????? break;
          ????? printf("%d,",j);
          ??? }
          ??? printf("%d\n",i);

          ??? 輸出結(jié)果為:
          ??? A. 10,3?? B. 5,2
          ??? C. 5,3??? D. 10,2

          ??? 答案:C

          12. 該程序的輸出結(jié)果是什么?(單選)

          ? #include <stdio.h>
          ? void main()
          ? {
          ??? int n;?
          ??? n=0;
          ??? while(n<8)
          ??? {
          ????? switch(n%3)
          ????? {
          ????? case 2:
          ??????? putchar('2');
          ????? case 1:
          ??????? putchar('i');
          ??????? break;
          ????? case 0:
          ??????? putchar('H');
          ????? }
          ????? n++;
          ??? }
          ? }

          ??? A. Hi2Hi2Hi? B. Hi2
          ??? C. Hi2iHi2i? D. Hi2iHi2iHi

          ??? 答案: D


          13. 該程序的輸出結(jié)果是多少?(單選)

          ?? #include <stdio.h>
          ?? main()
          ?? {
          ????? int i,j,x=0;

          ????? for(i=0;i<2;i++)
          ????? {
          ???????? x++;
          ???????? for(j=0;j<=3;j++)
          ???????? {
          ??????????? if(j%2)
          ?????????????? continue;
          ??????????? x++;
          ???????? }
          ????? }
          ????? printf("x=%d\n",x);
          ?? }

          ?? A. x=4??? B. x=8??? C. x=6??? D. x=12

          ?? 答案:? B


          14. 若k為整型,以下while循環(huán)執(zhí)行___次.(單選)

          ??? k=2;
          ??? while(k=0)
          ????? printf("%d",k),k--;
          ??? printf("\n");

          ??? A. 無限次?? B. 0次?? C. 1次?? D. 2次

          ??? 答案: D

          15. 下面這個(gè)程序的輸出是什么?(單選)

          ?? #include <stdio.h>
          ?? main()
          ?? {
          ????? int y=10;

          ????? while(y--);
          ????? printf("y=%d\n",y);
          ?? }

          ?? A. y=0??? B. while構(gòu)成死循環(huán)?? C. y=1?? D. y=-1

          ?? 答案: D

          16. 以下程序從讀入的整數(shù)數(shù)據(jù)中,統(tǒng)計(jì)大于零的整數(shù)個(gè)數(shù)和小于零的整數(shù)個(gè)數(shù).用輸入零來結(jié)束輸入,程序中用變量i統(tǒng)計(jì)大于零的整數(shù)個(gè)數(shù),用變量j統(tǒng)計(jì)小于零的整數(shù)個(gè)數(shù).請(qǐng)?zhí)羁?

          ?? #include <stdio.h>
          ?? main()
          ?? {
          ????? ___ n,i,j;
          ??
          ????? printf("輸入非零的整數(shù)(輸入零結(jié)束程序)");
          ????? i=j=0;
          ????? scanf("%d",&n);
          ????? while___
          ????? {
          ???????? if(n>0)
          ??????????? i=___;
          ???????? if(n<0)
          ??????????? j=___;
          ???????? ___;
          ????? }
          ????? printf("i=%4d j=%4d\n",i,j);
          ?? }

          ?? 答案: int
          ???????? (n!=0)
          ???????? i+1
          ???????? j+1
          ???????? scanf("%d",&n)


          17. 圓周率pi的近似率可用下面的公式求得:
          ???? pi*pi/6 約等于 1/(1*1) +1/(2*2) +...+1/(n*n)
          ??? 由以上公式可知,若n取值10000,則最后一項(xiàng)的值為1E-4,認(rèn)為可達(dá)到精度要求。?? 以下程序用來求pi的近似值。請(qǐng)?zhí)羁铡?其中函數(shù)sqrt(a)用于求a的平方根)(單選)

          ?? #include <stdio.h>
          ?? #include <math.h>
          ?? main()
          ?? {
          ????? long i;
          ????? float pi;
          ??
          ????? pi=0.0;
          ????? for(i=1;i<=10000;i++)
          ???????? pi+=___;
          ????? pi=sqrt(6.0*pi);
          ????? printf("pi=%10.6lf\n",pi);
          ?? }

          ??? A. 1/i*i??? B. 1/(i*i)??? C. 1.0/i*i?? D. 1.0/(i*i)
          ??? 答案: D


          18. 斐波哪契數(shù)列中的頭兩個(gè)數(shù)是0和1,從第三個(gè)數(shù)開始,每個(gè)數(shù)等于前兩個(gè)數(shù)的和,即:0,1,1,2,3,5,8,13,21,...等。下面這個(gè)程序就是求斐波哪契數(shù)列的前20個(gè)數(shù)。請(qǐng)?zhí)羁铡?/p>

          ?? #include <stdio.h>
          ?? void main()
          ?? {
          ?????? int f,f1,f2,i;

          ?????? f1=0;f2=___;
          ?????? printf("%d\n%d\n",f1,f2);
          ?????? for(i=3;i<=30;___)
          ?????? {
          ????????? f=___;
          ????????? printf("%d\n",f);
          ????????? f1=f2;
          ????????? f2=___;
          ?????? }
          ?? }

          ??? 答案: 1
          ????????? i++
          ????????? f1+f2
          ????????? f

          19. 下面這個(gè)程序執(zhí)行后i和s的值為多少?(單選)

          #include <stdio.h>
          void main()
          {
          ??? int i,s;

          ??? i=0;s=0;
          ??? while(i<10);
          ??? {
          ??????? s+=(i++);
          ??????? printf("%d\n",s);
          ??? }
          ??? printf("i=%d\n",i);
          }

          ??? A. i值為9,s值為45?? B. i值為10,s值為45
          ??? C. i值為10,s值為36? D. 程序陷入了死循環(huán)

          ??? 答案:? D


          20. 下面這個(gè)程序打印出以下這個(gè)三角形.請(qǐng)?zhí)羁铡?/p>

          0
          11
          222
          3333
          44444
          555555
          6666666
          77777777
          888888888
          9999999999

          ?? void main()
          ?? {
          ????? int i,j;

          ????? for(i=0;i<=___;i++)
          ????? {
          ???????? for(j=0;j<___;j++)
          ???????????? printf(___);
          ???????? ___
          ????? }
          ?? }

          ?? 答案: 9
          ???????? i
          ???????? "%d",i
          ???????? printf("\n");


          21. 讀懂下面的程序并填空。

          ?? #include <stdio.h>
          ?? void main()
          ?? {
          ????? long a,b,r;
          ?
          ????? scanf("%ld",&a);
          ????? b=0;
          ????? do{
          ???????? r=a%10;
          ???????? a=a/10;
          ???????? b=b*10+r;
          ????? }while(a);

          ????? printf("%ld",b);
          ?? }

          ??? 程序運(yùn)行時(shí)如果輸入 37?? , 輸出為___。
          ??? 程序運(yùn)行時(shí)如果輸入 -345 , 輸出為___。
          ??? 程序運(yùn)行時(shí)如果輸入 10239, 輸出為___。

          ??? 答案: 73
          ????????? -543
          ????????? 93201

          22. 如圖所示,該算式在四個(gè)字母所在處欠缺四個(gè)數(shù)位,下面這個(gè)程序用窮舉法搜尋解法。請(qǐng)?zhí)羁铡?/p>

          ??? 1A8??
          ?? * 3B??
          _________
          ?? C73D??

          #include <stdio.h>
          void main()
          {
          ? int A,B,C,D;
          ? int x,y,z;

          ? for(A=1;A<=9;A++)
          ??? for(B=1;B<=9;B++)
          ????? for(C=1;C<=9;C++)
          ??????? for(D=1;D<=9;D++)
          ??????? {
          ????????? x=100 + ___ + 8;
          ????????? y=___;
          ????????? z=___+700 +30 +___;

          ????????? if(___)
          ??????????? printf("A=%d,B=%d,C=%d,D=%d\n",
          ??????????????? A,B,C,D);
          ??????? }
          }

          ??? 答案:A*10
          ???????? 30+B
          ???????? C*1000
          ???????? D
          ???????? x*y==z

          1. 請(qǐng)改正下面這個(gè)遠(yuǎn)程序的錯(cuò)誤:

          #include <stdio.h>
          main()
          {
          ?? int i,j,list(10);

          ?? for(i=0,i<10,i++)
          ?? {
          ?????? list[i] = 2*i+3;
          ?????? for(j=9,j>=0,j--)
          ????????? printf("%d\n",list[j]);
          ?? }
          }

          ??? 答案: int i,j,list(10); 改為 int i,j,list[10];
          ????????? for(i=0,i<10,i++) 改為 for(i=0;i<10;i++)
          ????????? for(j=9,j>=0,j--) 改為 for(j=9;j>=0;j--)


          2.? 指出下面各說明語句中哪些是合法的:(多選)
          ??? A. int abcd[0x80];???? B. char 9ab[10];
          ??? C. char chi[-200];???? D. int aaa[5]={3,4,5};
          ??? E. float key[]={3.0,4.0,1,0};??? F. char disk[];
          ??? G. int n,floppy[n];????? H. int cash[4]={1,2,3,4,5,6};

          ??? 答案: ADE

          3.根據(jù)以下說明,寫出正確的說明語句。
          ??? (1)men是一個(gè)有10個(gè)整型元素的數(shù)組。
          ?????? ___
          ??? (2)step是一個(gè)有4個(gè)實(shí)型元素的數(shù)組,元素值分別為1.9, -2.33, 0, 20.6。
          ?????? ___
          ??? (3)grid是一個(gè)二維數(shù)組,共有4行,10列整型元素。
          ?????? ___

          ??? 答案: int mesh[10];
          ????????? float step[4] = {1.9, -2.33, 0, 20.6};
          ????????? int grid[4][10];

          4.? 請(qǐng)回答下列問題。
          ??? (1)array是一個(gè)一維整形數(shù)組,有10個(gè)元素,前6個(gè)元素的初值是9,4,7,49,32,-5,請(qǐng)寫出正確的說明語句。
          ?????? ___
          ??? (2)該數(shù)組下標(biāo)的取值范圍是從___到___(從小到大)。
          ??? (3)如何用scanf函數(shù)輸入數(shù)組的第二個(gè)元素。
          ?????? ___
          ??? (4)如何用賦值語句把39存入第一個(gè)元素。
          ?????? ___
          ??? (5)如何表示把第六個(gè)和第四個(gè)元素之和存入第一個(gè)元素。
          ?????? ___


          ??? 答案:? int array[10] = {9,4,7,49,32,-5};
          ?????????? 0?? 9
          ?????????? scanf("%d",&array[1]);
          ?????????? array[0] = 39;
          ?????????? array[0] = array[5] + array[3];


          5.? 寫出以下初始化數(shù)組的長(zhǎng)度。
          ??? (1)int chn[3];
          ?????? 數(shù)組chn的長(zhǎng)度為___。
          ??? (2)float isa[]={1.0,2.0,3.0,4.0,5.0};
          ?????? 數(shù)組isa的長(zhǎng)度為___。
          ??? (3)int doom[8];
          ?????? 數(shù)組doom的長(zhǎng)度為___。
          ??? (4)float pci[4][2];
          ?????? 數(shù)組pci的長(zhǎng)度為___。
          ??? (5)int ast[3][3];
          ?????? 數(shù)組ast的長(zhǎng)度為___。
          ??? (6)int att[3][4];
          ?????? 數(shù)組att的長(zhǎng)度為___。
          ??? (7)float dell[][3]={{1,4,7},{2,5},{3,6,9}};
          ?????? 數(shù)組dell的長(zhǎng)度為___。

          ??? 答案: 6
          ????????? 20
          ????????? 16
          ????????? 32
          ????????? 18
          ????????? 24
          ????????? 36

          6.? 這個(gè)程序輸入了20個(gè)數(shù)存放在一個(gè)數(shù)組中,并且輸出其中最大者與最小者、,20個(gè)數(shù)的和及它們的平均值。請(qǐng)?zhí)羁铡?/p>

          ??? void main()
          ??? {
          ??????? char array___;
          ??????? int max,min,average,sum;
          ??????? int i;
          ???
          ??????? for(i=0;i<___;i++)
          ??????? {
          ?????????? printf("請(qǐng)輸入第%d個(gè)數(shù):",i+1);
          ?????????? scanf("%d",___);
          ??????? }

          ??????? max=array[0];
          ??????? min=array[0];
          ??????? for(i=0;i<=___;i++)
          ??????? {
          ?????????? if(max<array[i])
          ????????????? ___
          ?????????? if(min>array[i])
          ????????????? ___
          ?????????? sum=___;
          ??????? }
          ??????? average = ___;

          ??????? printf("20個(gè)數(shù)中最大值是%d,",max);
          ??????? printf("最小值是%d,",min);
          ??????? printf("和是%d,",sum);
          ??????? printf("平均值是%d.\n",average);
          ??? }

          ??? 答案: [20]
          ????????? 20
          ????????? &array[i]
          ????????? 19
          ????????? max=array[i];
          ????????? min=array[i];
          ????????? sum+array[i]
          ????????? sum/20
          ?????????

          7.? 該程序的運(yùn)行結(jié)果是: min=___,m=___,n=___。
          ??? void main()
          ??? {
          ????? float array[3][4]={
          ?????????? {3.4,-5.6,56.7},
          ?????????? {56.8,999.,-.0123},
          ?????????? {0.45,-5.77,123.5},
          ?????????? {43.4,0,111.2}
          ??????? };

          ??????? int i,j;
          ??????? int min;
          ??????? int m,n;
          ?
          ??????? min = array[0][0];
          ??????? m=0;n=0;
          ??????? for(i=0;i<3;i++)
          ??????? for(j=0;j<4;j++)
          ????????? if(min > array[i][j])
          ????????? {
          ??????????? min = array[i][j];
          ??????????? m=i;n=j;
          ????????? }

          ??????? printf("min=%d,m=%d,n=%d\n",min,m,n);
          ??? }

          ??? 答案: -5.77? 1?? 2

          8. 下面的程序中哪一行有錯(cuò)誤?(單選)

          #include <stdio.h>
          main()
          {
          ?? float array[5]={0.0};???????? //第A行
          ?? int i;

          ?? for(i=0;i<5;i++)
          ????? scanf("%f",&array[i]);

          ?? for(i=1;i<5;i++)
          ????? array[0]=array[0]+array[i];//第B行

          ?? printf("%f\n",array[0]);????? //第C行
          }

          ??? A. 第A行? B. 第B行??
          ??? B. 第C行? D. 沒有

          ??? 答案: D

          9. 若有以下整型的a數(shù)組,數(shù)組元素和它們得值如下所示:

          ?? 數(shù)組元素:? a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]
          ?? 元素的值:? 9??? 4??? 12?? 8??? 2??? 10?? 7??? 5??? 1??? 3

          ??? (1)請(qǐng)寫出對(duì)該數(shù)組的說明,并賦以上初值。
          ?????? ___
          ??? (2)該數(shù)組的最小下標(biāo)值為___,最大下標(biāo)值為___。
          ??? (3)寫出下面各式的值:
          ???????? a[a[9]]的值為___
          ???????? a[a[4]+a[8]]的值為___

          ??? 答案: int a[10]={9,4,12,8,2,10,7,5,1,3};
          ????????? 0??? 9
          ????????? 8
          ????????? 8
          ?????????

          10. 寫出下面這個(gè)程序的輸出結(jié)果:

          void main()
          {
          ? char str[]="ABCDEFGHIJKL";

          ? printf("%s\n",str);?????? 屏幕上顯示___
          ? printf("%s\n",&str[4]);?? 屏幕上顯示___
          ? str[2]=str[5];
          ? printf("%s\n",str);?????? 屏幕上顯示___
          ? str[9]='\0';
          ? printf("%s\n",str);?????? 屏幕上顯示___
          }

          ??? 答案: ABCDEFGHIJKL
          ????????? EFGHIJKL
          ????????? AFCDEFGHIJKL
          ????????? AFCDEFGHI

          11. 字符串"ab\n\\012/\\\""的長(zhǎng)度為___。

          ??? 答案: 10

          12. 下面哪一項(xiàng)是不正確的字符串賦值或賦初值的方式。(單選)

          ??? A. char *str; str="string";
          ??? B. char str[7]={'s','t','r','i','n','g'};
          ??? C. char str1[10];str1="string";
          ??? D. char str1[]="string",str2[]="12345678";

          ??? 答案: C

          13. 若有以下說明和語句,則輸出結(jié)果是哪一項(xiàng)?(單選)
          ??? (strlen(s)為求字符串s的長(zhǎng)度的函數(shù))

          ??? char s[12]="a book!";
          ??? printf("%d",strlen(s));

          ??? A. 12?? B. 8?? C. 7?? D. 11

          ??? 答案: C


          14. 若有以下說明和語句,則輸出結(jié)果是___。(單選)
          ??? (strlen(s)為求字符串s的長(zhǎng)度的函數(shù))

          ??? char sp[]="\t\v\\\0will\n";???
          ??? printf("%d",strlen(sp));

          ??? A. 14??? B. 3??? C. 9??? D. 字符串中有非法字符

          ??? 答案: B

          15. 若有以下說明和語句,則輸出結(jié)果是___。(單選)

          ??? char str[]="\"c:\\abc.dat\"";
          ??? printf("%s",str);

          ??? A. 字符串中有非法字符???? B. \"c:\\abc.dat\"
          ??? C. "c:\abc.dat"?????????? D. "c:\\abc.dat"

          ??? 答案: C


          16. 讀懂下面的程序并填空。

          void main()
          {
          ?? char str[80];
          ?? int i=0;

          ?? gets(str);
          ?? while(str[i]!=0)
          ?? {
          ????? if(str[i]>='a'&&str<='z')
          ??????? str[i]-=32;
          ????? i++;
          ?? }
          ?? puts(str);
          }

          ?? 程序運(yùn)行時(shí)如果輸入 upcase, 屏幕顯示___
          ?? 程序運(yùn)行時(shí)如果輸入 Aa1Bb2Cc3, 屏幕顯示___

          ?? 答案: UPCASE
          ???????? AA1BB2CC3

          1. 分析下面的程序,并寫出運(yùn)行結(jié)果。

          #include <stdio.h>
          int max(int a,int b);

          main()
          {

          ? int x,y,z,t,m;
          ? scanf("%d,%d,%d",&x,&y,&z);
          ? t=max(x,y);
          ? m=max(t,z);
          ? printf("%d",m);
          }

          int max(int a,int b)
          {
          ? if(a>b)
          ??? return(a);
          ? else
          ??? return(b);
          }

          ??? 運(yùn)行時(shí)若輸入:10,15,9? 則輸出:___
          ??? 運(yùn)行時(shí)若輸入:300,129,300? 則輸出:___

          ??? 答案:15
          ????????? 300

          2. 分析下面的程序,并寫出運(yùn)行結(jié)果。

          #include <stdio.h>
          long sum(int a,int b);
          long factorial(int n);

          main()
          {
          ? int n1,n2;
          ? long a;
          ?
          ? scanf("%d,%d",&n1,&n2);
          ? a=sum(n1,n2);
          ? printf("a=%1d",a);
          }

          long sum(int a,int b)
          {
          ? long c1,c2;
          ? c1=factorial(a);
          ? c2=factorial(b);
          ? return(c1+c2);
          }

          long factorial(int n)
          {
          ? long rtn=1;
          ? int i;
          ? for(i=1;i<=n;i++)
          ??? rtn*=i;
          ? return(rtn);
          }

          ??? 運(yùn)行時(shí)若輸入:2,3? 則輸出:___
          ??? 運(yùn)行時(shí)若輸入:0, 5? 則輸出:___

          ??? 答案:8
          ????????? 121

          3. 分析下面的程序,并寫出運(yùn)行結(jié)果。

          #include <stdio.h>
          int s();

          int x,y;
          main()
          {
          ?int n;
          ?x=1;y=2;
          ?n=s();
          ?printf("x=%d,y=%d,n=%d",x,y,n);
          }

          int s()
          {
          ?int z;
          ?x=3;y=4;
          ?z=x+y;
          ?return(z);
          }

          ??? 程序運(yùn)行后輸出:___

          ??? 答案:? 3,4,7


          4.? C語言可執(zhí)行程序從什么地方開始執(zhí)行?(單選)

          ??? A. 程序中第一條可執(zhí)行語句??? B. 程序中第一個(gè)函數(shù)
          ??? C. 程序中的main函數(shù)????????? D. 包含文件中的第一個(gè)函數(shù)

          ??? 答案: C

          5. 有一個(gè)函數(shù)原型如下所示:(單選)

          ????? abc(float x,float y);

          ?? 則該函數(shù)的返回類型為___。

          ?? A. void?? B. double?? C. int?? D. float

          ?? 答案: C

          6. 以下程序的輸出結(jié)果是___。(單選)

          #include <stdio.h>
          int func(int a,int b);

          void main()
          {
          ?? int k=4,m=1,p;

          ?? p=func(k,m);
          ?? printf("%d,",p);
          ?? p=func("%d\n",p);
          }

          int func(int a,int b)
          {
          ?? static int m=0,i=2;

          ?? i+=m+1;
          ?? m=i+a+b;

          ?? return(m);
          }

          ??? A. 8,17??? B. 8,16??? C. 8,20??? D. 8,8

          ??? 答案: A

          7. 以下程序的輸出結(jié)果是a=___,b=___,c=___。

          #include <stdio.h>
          int func(int a,int *p);

          void main()
          {
          ?? int a=1,b=2,c;

          ?? c=func(a,&b);
          ?? b=func(c,&a);
          ?? a=func(b,&c);

          ?? printf("a=%d,b=%d,c=%d",a,b,c);???
          }

          int func(int a,int *p)
          {
          ??? a++;
          ??? *p=a+2;
          ??? return(*p+a);
          }

          ??? 答案: 36?? 16?? 19

          8.? 在C語言程序中,下面哪一個(gè)是正確的?(單選)

          ??? A. 函數(shù)的定義可以嵌套,但函數(shù)的調(diào)用不可以嵌套
          ??? B. 函數(shù)的定義不可以嵌套,但函數(shù)的調(diào)用可以嵌套
          ??? C. 函數(shù)的定義可以嵌套,函數(shù)的調(diào)用也可以嵌套
          ??? D. 函數(shù)的定義和函數(shù)的調(diào)用都不可以嵌套

          ??? 答案: B

          9. 下面哪些是定義局部變量?jī)?chǔ)存類別的保留字?(多選)

          ??? A. int?? B. auto??? C.static??? D.float
          ??? E. register? F.extern? G. unsigned H.signed

          ??? 答案: BCE

          10. 下面這個(gè)函數(shù)的功能是求兩個(gè)整數(shù)的積,并通過形參傳回結(jié)果。請(qǐng)?zhí)羁铡?/p>

          void mul(___x,___y,___result)
          {
          ?? ___=x*y;
          }

          ??? 答案:int?? int?? int*
          ???????? *result

          ?

          ?

          ?

          1.對(duì)于類型相同的指針變量,不能進(jìn)行哪種運(yùn)算?(單選)

          ??? A. +?? B. -?? C. =?? D. ==

          ??? 答案: A

          2. 若有以下說明和語句,且0<=i<10, 則下面哪個(gè)是對(duì)數(shù)組元素的錯(cuò)誤引用?(單選)

          int a[]={1,2,3,4,5,6,7,8,9,0}, *p, i;

          p=a;

          ??? A. *(a+i)??? B. a[p-a]?? C. p+i?? D. *(&a[i])

          ??? 答案: C

          3. 若有以下說明和語句,且0<=i<10,則下面哪個(gè)是對(duì)數(shù)組元素地址的正確表示?(單選)

          ??? int a[]={1,2,3,4,5,6,7,8,9,0}, *p,i;

          ??? p=a;

          ?? A. &(a+1)??? B. a++??? C. &p??? D. &p[i]

          ??? 答案: D

          4. 以下程序的輸出結(jié)果是___。

          #include <stdio.h>
          main()
          {
          ?? int a[]={1,2,3,4,5,6},*p;
          ?? p=a;
          ?? *(p+3)+=2;
          ?? printf("%d,%d\n",*p,*(p+3));
          }

          ?? A. 0,5?? B. 1,5?? C. 0,6?? D. 1,6

          ?? 答案: D

          5. 以下程序的輸出結(jié)果是哪一項(xiàng)?(單選)

          #include <stdio.h>
          main()
          {
          ?? int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}, *p[4],i;
          ?? for(i=0;i<4;i++)
          ????? p[i]=&a[i*3];
          ?? printf("%d\n",p[3][2]);
          }

          ??? A. 輸出項(xiàng)不合法??? B. 6
          ??? C. 8?????????????? D. 12

          ??? 答案: D

          6. 如果有以下的定義:(多選)

          struct person
          {
          ?? char name[20];
          ?? int age;
          ?? char sex;
          };

          struct person a={"xiao min",20,'m'},*p=&a;
          則對(duì)字符串"li ning"的引用方式可以是下面哪些?

          ?? A. (*p).name??? B. p.name??? C. a.name?? D. p->name

          ?? 答案: ACD


          7. 下面哪些定義的結(jié)構(gòu)在內(nèi)存分配是等價(jià)的。(單選)
          ??
          ?? (1)struct abc{
          ??????? char x;
          ??????? char y;
          ??????? int data;
          ????? };

          ?? (2)struct abc{
          ??????? char x,y;
          ??????? int data;
          ????? };

          ?? (3)struct abc{
          ??????? int data;
          ??????? char x;
          ??????? char y;
          ????? };

          ??? A. (1)和(2)?? B. (2)和(3)
          ??? C. (1)和(3)?? D. (1)(2)和(3)

          ??? 答案: A


          8. 若有以下說明和語句,, 則p1-p2的值為多少?(單選)

          int a[10], *p1, *p2;
          p1=a;
          p2=&a[5];

          ??? A. 5?? B. 6?? C. 10?? D. 沒有指針與指針的減法

          ??? 答案: A


          9. 讀懂源程序,并寫出正確結(jié)果。

          #include <stdio.h>

          struct stustruct{
          ? char name[10];
          ? int score[3];
          };
          ?
          void main()
          {
          ?? struct stu student={
          ????????? "xiaowang",
          ????????? {99,87,90}
          ?? };
          ?? struct stu *p1=&student;
          ?? int *p2=student.score;

          ?? printf("%d\n",student.score[0]);//屏幕顯示___
          ?? printf("%s\n",p1->name);??????? //屏幕顯示___
          ?? printf("%d\n",p2[2]);?????????? //屏幕顯示___
          ?? printf("%d\n",*(p2+1));???????? //屏幕顯示___
          }

          ??? 答案:99
          ???????? xiaoming
          ???????? 90
          ???????? 87


          10. 已知有以下的說明,

          int a[]={8,1,2,5,0,4,7,6,3,9};
          ??? 那么a[*(a+a[3])]的值為___.

          ??? 答案: 0


          11. 已知有以下的說明,那么執(zhí)行語句a=p+2;后, a[0]的值等于多少?(單選)

          float a[3]={1.2,45.6,-23.0};
          float *p=a;

          ??? A. 1.2???? B. 45.6
          ??? C. -23.0?? D. 語句有錯(cuò)
          ??? 答案: D

          1. 如果想把一些新的數(shù)據(jù)添加到文件xh.txt中,則應(yīng)該以下面哪一種方式打開文件?(單選)
          ?? A. fp=fopen(xh.txt,"a");???? B. fp=fopen("xh.txt",a);
          ?? C. fp=fopen("xh.txt","a");?? D. fp=fopen("xh.txt",'a');

          ??? 答案:C

          2.? 如果要把一個(gè)字符'A'寫入文件指針fp所指定的文件里,應(yīng)該如何寫?
          ??? ___
          ??? 如果要把一個(gè)字符串"Hello!"寫入文件指針fp所指定的文件里,應(yīng)該如何寫?
          ??? ___
          ??? 如果要把兩個(gè)整數(shù)23和567以ASCII碼方式寫入文件指針fp所指定的文件里,且整數(shù)之間以一個(gè)空格相隔,應(yīng)該如何寫?
          ??? ___

          ??? 答案: fputc('A',fp);
          ????????? fputs("Hello!",fp);
          ????????? fprintf(fp,"%d %d",23,567);
          ???
          3.? 如果有三個(gè)整數(shù)以ASCII碼方式寫入了文件指針fp所指定的文件里,且整數(shù)之間以逗號(hào)相隔。
          ??? 問:用a,b,c三個(gè)整形變量來獲取這三個(gè)整數(shù),該如何寫?
          ??? ___

          ??? 答案: fscanf(fp,"%d,%d,%d",&a,&b,&c);

          4. 一個(gè)abc.dat文件內(nèi)容如下:
          ?????? 0123456789abcdefABCDEF
          ??? 一個(gè)對(duì)abc.dat文件進(jìn)行操作的程序如下:

          #include <stdio.h>
          void main()
          {
          ? FILE *fp;
          ? char ch;
          ? char str[15];

          ? fp=fopen("abc.dat","rb");
          ? if(fp!=NULL)
          ? {
          ??? fseek(fp,2,SEEK_SET);
          ??? fgetc(fp);
          ??? fgetc(fp);
          ??? fgets(str,15,fp);
          ??? fseek(fp,-4,SEEK_CUR);
          ??? fgetc(fp);
          ??? fseek(fp,4,SEEK_CUR);

          ??? ch=fgetc(fp);
          ??? printf("ch=%c",ch);
          ??? fclose(fp);
          ? }
          }
          ?? 程序運(yùn)行的結(jié)果是ch為字符___。
          ??? 答案: D


          5.? 調(diào)用fopen函數(shù)以文本方式打開文本文件aaa.txt如下
          ??? FILE *fp=fopen("aaa.txt",___);

          ??? 如果為了輸出而打開應(yīng)在空白處填入___,
          ??? 如果為了輸入而打開應(yīng)在空白處填入___,
          ??? 如果為了追加而打開應(yīng)在空白處填入___。

          ??? 答案: "r"
          ????????? "w"??
          ????????? "a"

          6.? 下面哪條語句是從文件中讀取一個(gè)字符?(單選)

          ??? A. ch=getc();???????? B. fputc(ch,fp);
          ??? C. fscanf("%c",&ch);? D. scanf("%c",&ch);

          ??? 答案: C


          7. 有5個(gè)學(xué)生的成績(jī)需要保存在文件score.dat文件中。保存格式如下:
          ?????? 學(xué)生姓名,年齡,成績(jī)<CR>
          ?????? 學(xué)生姓名,年齡,成績(jī)<CR>
          ?????????? ...
          ?????????? ...

          ??? 請(qǐng)完成下面這段源程序。

          void main()
          {
          ??? FILE *fp;
          ??? int i;

          ??? char name[80];
          ??? int age;
          ??? float score;

          ??? fp=fopen(___,"w");
          ??? for(i=0;i<5;i++)
          ??? {
          ?????? printf("請(qǐng)輸入第%d個(gè)學(xué)生的信息\n",___);
          ?????? printf("姓名:");
          ?????? scanf(___);
          ?????? printf("年齡:");
          ?????? ___
          ?????? printf("成績(jī):");
          ?????? ___
          ?????? fprintf(fp,___,name,age,score);
          ??? }
          ??? ___
          }

          ?? 答案: "score.dat"
          ???????? i
          ???????? "%s",name
          ???????? scanf("%d",&age);
          ???????? scanf("%f",&score);
          ???????? "%d,%d,%f\n"
          ???????? fclose(fp);

          8. C語言中的文件類型如何劃分?(單選)

          ?? A. 索引文件和文本文件兩種
          ?? B. ASCII文件和二進(jìn)制文件兩種
          ?? C. 只有文本文件一種
          ?? D. 只有二進(jìn)制文件一種

          ?? 答案: B

          9. 下面這個(gè)程序?qū)⒂脩魪逆I盤輸入的字符寫入keyb.dat文件中,當(dāng)鍵入字符'!'時(shí),結(jié)束輸入,把'!'寫入文件后關(guān)閉文件,程序結(jié)束。
          ?? 請(qǐng)找出錯(cuò)誤。

          #include <stdio.h>
          void main()
          {
          ? char ch;
          ? FILE *fp;

          ? fp=fopen("keyb.dat","wb");
          ? do
          ? {
          ??? ch=getchar();
          ??? fprintf(fp,"%c",ch);
          ? }while(ch!='!')
          ? close(fp);
          }
          ?
          ??? 答案:? }while(ch!='!') 改為 while(ch!='!');
          ?????????? close(fp); 改為 fclose(fp);

          ?

          1.下面這個(gè)程序的作用是統(tǒng)計(jì)公元1年到公元2000年的閏年個(gè)數(shù)。判斷閏年的方法是:能被400整除的年是閏年;除能被400整除的年以外,凡是能被4整除,但不能被100整除的年是閏年。其余年份是平年。請(qǐng)?zhí)羁铡?/p>

          #include <stdio.h>
          void main()
          {
          ? int year;
          ? int count=0;

          ? for(year=0;year<=2000;year++)
          ??? if( (_____)
          ???????? ||( year%4==0 && ____) )
          ????? ____;
          ?
          ? printf("%d",count);
          }

          ??? 答案:year%400==0
          ????????? year%100!=0
          ????????? count++


          2. 讀懂程序并填空。

          #include <stdio.h>

          void main()
          {
          ? int digit_num=0;
          ? int letter_num=0;
          ? int other_num=0;
          ? char ch;

          ? while(1)
          ? {
          ??? ch=getchar();
          ??? if(ch=='!')
          ????? break;
          ??? if(ch>='0'&&ch<='9')
          ????? digit_num++;
          ??? else if( (ch>='A'&&ch<='Z')
          ????????? ||(ch>='a'&&ch<='z') )
          ????? letter_num++;
          ??? else
          ????? other_num++;
          ? }

          ? printf("The number of digit? is %d\n",digit_num);
          ? printf("The number of letter is %d\n",letter_num);
          ? printf("The number of other? is %d\n",other_num);
          }

          ??? 程序運(yùn)行時(shí)如果輸入:
          ??????? 123adfhd^%234FDG%34%hJK+!_AAAD!<回車>
          ??? 最后,變量 digit_num的值為___,
          ???????? 變量letter_num的值為___,
          ???????? 變量 other_num的值為___。

          ??? 答案: 8
          ????????? 11
          ????????? 5


          3. 下面這個(gè)程序要求用戶輸入兩個(gè)整數(shù)和一個(gè)字符。字符必須是'+'、'-'、'*'、'/'其中的一個(gè)。然后程序輸出兩數(shù)作相應(yīng)運(yùn)算的結(jié)果。
          ??? 例如:輸入 123,34,+? 程序輸出 123+34=157。請(qǐng)?zhí)羁铡?/p>

          #include <stdio.h>
          void main()
          {
          ?? float d1,d2,result;
          ?? char op;
          ?? int error=0;

          ?? scanf("%f,%f,%c",&d1,&d2,&op);
          ?? switch(op)
          ?? {
          ?? case '+':result=___;break;
          ?? case '-':result=___;break;
          ?? case '*':result=___;break;
          ?? case '/':result=___;break;
          ?? default :error=1;
          ?? }

          ?? if(error)
          ???? printf("運(yùn)算操作符輸入有錯(cuò)!");
          ?? else
          ???? printf("%.2f%c%.2f=%.2f\n",___);
          }

          ??? 答案: d1+d2
          ????????? d1-d2
          ????????? d1*d2
          ????????? d1/d2
          ????????? d1,op,d2,result

          4. 除1外,只能被1和自己本身整除的自然數(shù)叫素?cái)?shù)。下面這個(gè)程序就是求2到100之間的素?cái)?shù)。其中判斷某數(shù)為素?cái)?shù)的方法為用2到該數(shù)平方根之間的自然數(shù)去試整除該數(shù)。如果沒有哪個(gè)數(shù)能夠整除該數(shù),那么該數(shù)為素?cái)?shù);如果有,那么時(shí)合數(shù)。請(qǐng)?zhí)羁铡?br />?? (函數(shù)sqrt(a)求a的平方根)

          #include<math.h>
          #include <stdio.h>

          void main()
          {
          ?? int i,j,k;
          ?? int flag;

          ?? for(i=2;i<=___;i++)
          ?? {
          ???? flag=1;
          ???? k=(int)sqrt(i);
          ???? for(j=2;j<___;j++)
          ?????? if(___==0)
          ?????? {
          ???????? flag=0;
          ???????? break;
          ?????? }
          ???? if(flag)
          ?????? printf("%d\n",i);
          ?? }
          }

          ??? 答案:100
          ???????? k
          ???????? i%j


          5.如圖所示為數(shù)學(xué)上的楊暉三角形,它的規(guī)律是:
          ???? 1.每一行的首尾列都是1。
          ???? 2.每一行的第i列(除首尾列外)是上一行的第i-1列與上一行的第i列的和。
          1
          1?? 1
          1?? 2?? 1
          1?? 3?? 3?? 1
          1?? 4?? 6?? 4?? 1
          1?? 5? 10? 10?? 5?? 1
          1?? 6? 15? 20? 15?? 6?? 1

          ?? 下面這個(gè)程序打印了10層楊暉三角形,請(qǐng)?zhí)羁铡?/p>

          #include <stdio.h>

          #define LAYER??? 10
          #define LAYER_1? (LAYER+1)
          #define NUM? ( LAYER_1 * (LAYER_1 /2) )

          void main()
          {
          ?? int array[NUM],*p[LAYER],i,j,pos;

          ?? for(i=0;i<LAYER;i++)
          ?? {
          ????? pos= i*(i+1)/2;
          ????? p[i]=&array[pos];
          ?? }

          ?? for(i=0;i<LAYER;i++)
          ????? p[i][0]=p[i][i]=___;

          ?? for(i=2;i<LAYER;i++)
          ????? for(j=1;j<i;j++)
          ???????? p[i][j]=___;

          ?? for(i=0;i<LAYER;i++)
          ?? {
          ????? for(j=0;j<=i;j++)
          ??????? printf("%5d",___);
          ????? printf("\n");
          ?? }
          ??
          }

          ??? 答案: 1
          ????????? p[i-1][j-1]+p[i-1][j]
          ????????? p[i][j]


          6.? 當(dāng)程序輸入0 -5 3時(shí),程序依次輸出哪三個(gè)數(shù)? ___、___、___
          ??? 如果把SIZE改成5,輸入89,34,25,-1,22,程序依次輸出哪五個(gè)數(shù)? ___、___、___、___、___

          #include <stdio.h>
          #define SIZE? 3
          void swap(int *a,int *b);

          void main()
          {
          ? int data[SIZE];
          ? int i,j;
          ?
          ? for(i=0;i<SIZE;i++)
          ??? scanf("%d",&data[i]);

          ? for(i=0;i<SIZE-1;i++)
          ??? for(j=i+1;j<SIZE;j++)
          ????? if(data[i]>data[j])
          ??????? swap(&data[i],&data[j]);

          ? for(i=0;i<SIZE;i++)
          ??? printf("%d? ",data[i]);
          }

          void swap(int *a,int *b)
          {
          ? int temp;

          ? temp=*a;
          ? *a=*b;
          ? *b=temp;
          }

          ??? 答案: -5? 0? 3
          ????????? -1? 22? 25? 34? 89

          ?

          ?


          7.? 請(qǐng)選擇您認(rèn)為正確的說法。

          ??? A.在C語言中,函數(shù)可以嵌套定義。
          ??? B.程序中的注釋部分可有可無,通常可以省略。
          ??? C.在函數(shù)中,只能有一條return語句。
          ??? D.C程序中,會(huì)檢查數(shù)組下標(biāo)是否越界。
          ??? E.在C程序中,ABC和abc是兩個(gè)不同的變量。
          ??? F.在C語言中,函數(shù)中的變量可以賦初值,每調(diào)用一次該函數(shù),就賦一次初值。
          ??? G.C語言中不能對(duì)數(shù)組名進(jìn)行加減和賦值運(yùn)算。

          ??? 答案: BEG

          雖然這已經(jīng)是很古老的東西了,但是還是留起來,做個(gè)紀(jì)念。。。

          posted on 2006-03-28 09:51 record java and net 閱讀(3660) 評(píng)論(1)  編輯  收藏 所屬分類: dot net相關(guān)

          評(píng)論

          # re: [分享]c語言問題100題[未登錄] 2013-11-01 08:56 小浩

          已知銀行整存整取存款不同期限的月息利率分別為:
          月息利率= 要求輸入存錢的本金和期限,求到期時(shí)能從銀行得到的利息與本金的合計(jì)。要求用switch結(jié)構(gòu)實(shí)現(xiàn)。
          2. 任意輸入一個(gè)3位數(shù),判斷其是不是水仙花數(shù)。水仙花數(shù):各位數(shù)的立方和等于該數(shù)本身,如153=1的立方+5的立方+3的立方。
            回復(fù)  更多評(píng)論   

          導(dǎo)航

          常用鏈接

          留言簿(44)

          新聞檔案

          2.動(dòng)態(tài)語言

          3.工具箱

          9.文檔教程

          友情鏈接

          搜索

          最新評(píng)論

          主站蜘蛛池模板: 侯马市| 金乡县| 商南县| 黎平县| 哈尔滨市| 汝南县| 凤庆县| 柞水县| 莎车县| 台中县| 于田县| 昭平县| 太湖县| 绥化市| 张掖市| 工布江达县| 乌兰察布市| 扎兰屯市| 贵定县| 上蔡县| 阜平县| 泰安市| 辽宁省| 威远县| 平泉县| 崇仁县| 铜梁县| 黄山市| 文昌市| 湟中县| 金门县| 来宾市| 彭州市| 丁青县| 隆尧县| 湟中县| 宜兰市| 阿克| 麻阳| 渝中区| 双柏县|