<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    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ù)組的長度。
    ??? (1)int chn[3];
    ?????? 數(shù)組chn的長度為___。
    ??? (2)float isa[]={1.0,2.0,3.0,4.0,5.0};
    ?????? 數(shù)組isa的長度為___。
    ??? (3)int doom[8];
    ?????? 數(shù)組doom的長度為___。
    ??? (4)float pci[4][2];
    ?????? 數(shù)組pci的長度為___。
    ??? (5)int ast[3][3];
    ?????? 數(shù)組ast的長度為___。
    ??? (6)int att[3][4];
    ?????? 數(shù)組att的長度為___。
    ??? (7)float dell[][3]={{1,4,7},{2,5},{3,6,9}};
    ?????? 數(shù)組dell的長度為___。

    ??? 答案: 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/\\\""的長度為___。

    ??? 答案: 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的長度的函數(shù))

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

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

    ??? 答案: C


    14. 若有以下說明和語句,則輸出結(jié)果是___。(單選)
    ??? (strlen(s)為求字符串s的長度的函數(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 閱讀(3657) 評(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)論

    主站蜘蛛池模板: 久久免费区一区二区三波多野| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 亚洲精品免费视频| 亚洲国产天堂久久综合| 国产h视频在线观看免费| 免费看黄的成人APP| 成a人片亚洲日本久久| 亚洲人成电影院在线观看| 亚洲日韩一页精品发布| 免费在线观看你懂的| 成人免费在线观看网站| 久久免费看黄a级毛片| 成全高清在线观看免费| 精精国产www视频在线观看免费| 亚洲精华国产精华精华液好用| 亚洲1区1区3区4区产品乱码芒果 | 暖暖免费中文在线日本| 国产午夜亚洲精品| 色偷偷女男人的天堂亚洲网| 亚洲视频一区调教| 久久伊人久久亚洲综合| 亚洲国产综合无码一区| 久久亚洲高清综合| 亚洲精品无码av天堂| 亚洲av无码成人精品区| 国产黄色片在线免费观看| 午夜视频免费成人| 好男人视频社区精品免费| 亚洲欧洲免费无码| 男女免费观看在线爽爽爽视频 | 亚洲天堂一区二区三区四区| 久久亚洲精精品中文字幕| 亚洲va中文字幕无码久久不卡| 亚洲中文字幕无码永久在线| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 亚洲国产情侣一区二区三区| 亚洲视频在线一区二区三区| 亚洲一区二区三区首页| 亚洲三级电影网址| 亚洲理论片在线观看| 亚洲国产精品午夜电影|