最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

C語(yǔ)言程序設(shè)計(jì)(???復(fù)習(xí)題 )

2022-03-20 11:43 作者:答案鬼  | 我要投稿

?現(xiàn)代遠(yuǎn)程教育課程考試(專科)復(fù)習(xí)題及參考答案

《C語(yǔ)言程序設(shè)計(jì)》

一、選擇題

1.以下不是C語(yǔ)言的特點(diǎn)的是(????)

A.C語(yǔ)言簡(jiǎn)潔、緊湊 ?????????????????B.能夠編制出功能復(fù)雜的程序

C. C語(yǔ)言可以直接對(duì)硬件進(jìn)行操作 ????D.C語(yǔ)言移植性好

2.?以下不正確的C語(yǔ)言標(biāo)識(shí)符是( ???)。

A.ABC ?????????B.a(chǎn)bc ????????C.a(chǎn)_bc ?????????D.a(chǎn)b.c

3.一個(gè)c程序的執(zhí)行是從( ??).

A.main( ???)函數(shù)開(kāi)始,直到main( ???)函數(shù)結(jié)束

B.第一個(gè)函數(shù)開(kāi)始,直到最后一個(gè)函數(shù)結(jié)束

C.第一個(gè)語(yǔ)句開(kāi)始,直到最后一個(gè)語(yǔ)句結(jié)束

D.main( ???)函數(shù)開(kāi)始,直到最后一個(gè)函數(shù)結(jié)束

4.以下不正確的語(yǔ)句(設(shè)有int p,q)是( ???)。

A.P*=3; ?B.p/=q; ??C.p十=3; ?D.p&&=q

5.下列四組選項(xiàng)中,均不是C語(yǔ)言關(guān)鍵字的選項(xiàng)是(????).

A.define ???B.getc ?????C.include ???D.while ????

if ??????????char ????????sanf ????????go

type ??????????printf ??????case ????????pow

6.下面四個(gè)選項(xiàng)中,均是合法整形常量的選項(xiàng)是(???).

?A.160 ? B.-0xcdf ???????C.-01 ???????D.-0x48a

???-0xffff ????01a ??????????986,012 ?????2e5

???????011 ??? ???0xe ??????0668 ????????0x

7. 下面四個(gè)選項(xiàng)中,均是不合法浮點(diǎn)數(shù)的選項(xiàng)是(???).

??A.160. ? B.123 ???C.-.18 ?D.-e3

0.12 ?????2e4.2 ?????123e4 ???0.234

???????e3 ?????????.e5 ? ???0.0 ????1e3

8. 若有代數(shù)式3ae/bc,則不正確的C語(yǔ)言表達(dá)式是(??)

???A.a/b/c*e*3 ? ? ?B.3*a*e/b/c

????????C.3*a*e/b*c ? ? ?D.a*e/c/b*3

9. 若以下變量均是整形,且num=sum=7;則計(jì)算表達(dá)式sUM=num++,sUM++,++num后sum的值為(??).

A.7 ?????????B.8 ????????C.9 ???????????????D.10

10.若有定義:int a=7; float x=205 ,y=4.7; 則表達(dá)式x+a%3*(int)(x+y)%2/4的值是(??)。

A.2.500000 ?B.2.750000 ?C.3.500000 ?D.0.000000

11.? sizeof(float)是(??)。

A.一個(gè)雙精度型表達(dá)式 ? B.?一個(gè)整型表達(dá)式

?C.一種函數(shù)調(diào)用 ? ? D.?一個(gè)不合法的表達(dá)式

12. 設(shè)int n=3;則n十十的結(jié)果是( ???)。

?????A.2 ????????B.3 ??????C.4 ??????D.5

13. 設(shè)有說(shuō)明:?char w; int x; float y; double z; 則表達(dá)式w*x+z-y值的數(shù)據(jù)類型為(???)。

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

14. 若x,y均定義為int型,z定義為double型,以下不合法的scanf函數(shù)調(diào)用語(yǔ)句是(??).

A.?scanf(“%d%d1x,%1e”,&x,&y,&z);

B.?scanf(“%2d*%d%1f”,&x,&y,&z);

C.?scanf(“%x%*d%o”,&x,&Y);

D.?scanf(“%x%o%6.2f”, &x,&y,&z);

15. 以下說(shuō)法正確的是(??).

A.?輸入項(xiàng)可以為一個(gè)實(shí)型常量,如scanf(“%f”,3.5);

B.?只有格式控制,沒(méi)有輸入項(xiàng),也能進(jìn)行正確輸入,如scanf(“a=%d,b=%d”);

C.?當(dāng)輸入一個(gè)實(shí)型數(shù)據(jù)時(shí),格式控制部分應(yīng)規(guī)定小數(shù)點(diǎn)后的位數(shù),如scanf(“%4.2f”,&f);

D.?當(dāng)輸入數(shù)據(jù)時(shí),必須指明變量的地址,如scanf(“%f”,&f);

16. 以下程序的執(zhí)行結(jié)果是(???)。

#include<stdio.h>

main()

{

int sum,pad;

sum=pad=5;

pad=sum++;

pad++;

++pad;

printf("%d\n",pad);

}

A.7 ????????B.6 ??????????????C.5 ???????????????????D.4

17. 巳知字母A的ASCII碼是65,以下程序的執(zhí)行結(jié)果是( ?)。

#include<stdio.h>

main()

{

?char c1='A',C2='Y';

?printf("%d,%d\n",c1,c2);

A.A,Y ????????B.65,65 ?????????C.65,90 ?????????????D.65,89

18. 為了避免嵌套的if-else語(yǔ)句的二義性,c語(yǔ)言規(guī)定else總是與( ??)組成配對(duì)關(guān)系。

A.縮排位置相同的if

B.在其之前末配對(duì)的if

C.在其之前未配對(duì)的最近的if

D.同一行上的if

19. 邏輯運(yùn)算符兩側(cè)運(yùn)算對(duì)象的數(shù)據(jù)類型(??).

?A.能是0或1

?B.只能是0或非0正數(shù)

?C.只能是整型或字符型數(shù)據(jù)

??????D.可以是任何類型的數(shù)據(jù)

20.?設(shè)x、y和z是int型變量,且x=3,y=4,z=5,則下面表達(dá)式中值為0的是(???).

A.’x’&&’y’

B.x<=y(tǒng)

C.?x||y+z&&y-z

D.!((x<y)&&!z ||1)

21. 若希望當(dāng)A的值為奇數(shù)時(shí),表達(dá)式的值為“真”,A的值為偶數(shù)時(shí),表達(dá)式的值為“假”。則以下不能滿足要求的表達(dá)式是(??).

A.A%2==1 ???B.!(A%2==0) ???C.!(A%2) ???D.A%2

22. 以下不正確的if語(yǔ)句形式是(??).

A.if(x>y&&x!=y);

B.if(x==y(tǒng))x十=y(tǒng);

C.if(x ! =y(tǒng))scanf(“%d”,&x) e1se scanf(”%d,&y);

D.if(x<y){x十十;y十十;}

23.?以下if語(yǔ)句語(yǔ)法正確的是(??).

A.if(x>0)

????printf(“%f“,x)

????else printf(“%f”,-x);

B.if(x>0)

{x=x+y;printf(“%f“,x);}

else printf(“%f”,-x)

C.if(x>0)

{x=x+y;printf(“%f“,x);}

else printf(“%f”,-x)

D.if(x>0)

{x=x+y;printf(“%f“,x);}

else printf(“%f”,-x)

else printf(“%f”,-x);

24. 閱讀以下程序

main()

{int a=5,b=0,c=0;

if(a=b+c) printf(“***\n”);

else ????printf(“$$$\n”);

}

以上程序?(???).

A.語(yǔ)法有錯(cuò)不能通過(guò)編譯 ??????????????????????B.可以通過(guò)編譯但不能通過(guò)連接?

C.輸出*** ???????????????????????????????????D.輸出$$$

25. 以下程序運(yùn)行結(jié)果是(??).

main()

{int a=100,x=10,y=20,ok1=5,ok2=0;

?if (x<y)

????if (y!=10)

?????If(!ok1)

??????????a=1;

???????else

??????????if(ok2) ??a=10;

??a=-1;

printf(“%d\n”,a);

}

A.1 ??????????B.0 ?????????????c.-1 ??????????????????D.不確定

26. 執(zhí)行以下程序段后,變量a,b,c得值分別是(??).

int x=10,y=9;

int a,b,c;

a=(--x==y++)? –x: ++y;

b=x++;

c=y;

A.a=9,b=9,c=9 ?????????????????B.a=8,b=8,c=10

C.a=9,b=10,c=9 ????????????????D.a=1,b=11,c=10

27. 若w,x,y,z,m均為int型變量,則執(zhí)行下面語(yǔ)句后的m值是(??).

w=1; ??x=2; ??y=3; ??z=4;

m=(w<x)? w:x;

m=(m<y)? m:y;

m=(m<z)? m:z;

A.1 ???????????B.2 ??????????????C.3 ????????????????D.4

28. 語(yǔ)句while(!e);中的條件!e等價(jià)于( ???)。

?????A.e==0 ??????B.e!=1 ??????????C.e!=0 ????????????D.~e

29. 下面有關(guān)for循環(huán)的正確描述是( ??)

A.for循環(huán)只能用于循環(huán)次數(shù)已經(jīng)確定的情況

B.for循環(huán)是先執(zhí)行循環(huán)體語(yǔ)句,后判定表達(dá)式

C.在for循環(huán)中,不能用break語(yǔ)句跳出循環(huán)體

D.for循環(huán)體語(yǔ)句中,可以包含多條語(yǔ)句,但要用花括號(hào)括起來(lái)

30.?C語(yǔ)言中while和do-while循環(huán)的主要區(qū)別是(??).

A.do-while的循環(huán)體至少無(wú)條件執(zhí)行一次

B.while的循環(huán)控制條件比的循環(huán)控制條件嚴(yán)格

C.do-while允許從外部轉(zhuǎn)到循環(huán)體內(nèi)

D.do-while的循環(huán)體不能是復(fù)合語(yǔ)句

31.以下程序段(??).

x=-1; ?do{x=x*x;} ?while(! x);

A.是死循環(huán)?????????????????B.循環(huán)執(zhí)行二次

C.?循環(huán)執(zhí)行二次???????????D.有語(yǔ)法錯(cuò)誤

32. 下面程序的運(yùn)行結(jié)果是(??).

#include <stdio.h>

main()

{int y=10;

do{y--;}while(--y);

printf(“%d\n”,y--);}

A.-1 ???????B.1 ???????????C.8 ???????????????D.0

33.?以下正確的描述是(??).

A.continue語(yǔ)句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行

B.只能在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)使用break語(yǔ)句

C.在循環(huán)體內(nèi)使用break語(yǔ)句或continue語(yǔ)句的作用相同

D.從多層循環(huán)嵌套中退出時(shí),只能使用goto語(yǔ)句

34.?c語(yǔ)言中( ???)。

A.不能使用do-while語(yǔ)句構(gòu)成的循環(huán)

B.do-while語(yǔ)句構(gòu)成的循環(huán)必須用break語(yǔ)句才能退出

C.do—whiLe語(yǔ)句構(gòu)成的循環(huán),當(dāng)while語(yǔ)句中的表達(dá)式值為非零時(shí)結(jié)束循環(huán)

D.do—while語(yǔ)句構(gòu)成的循環(huán),當(dāng)while語(yǔ)句中的表達(dá)式值為零時(shí)結(jié)束循環(huán)

35. 在C語(yǔ)言中,引用數(shù)組元素時(shí),其數(shù)組下標(biāo)的數(shù)據(jù)類型允許是( )

?????A.?整型常量 ??B.整型表達(dá)式C.整型常量或整型表達(dá)式D.任何類型的表達(dá)式

36. 在C語(yǔ)言中,一位數(shù)組的定義方式為:類型說(shuō)明符?數(shù)組名( ?)。

A.?[常量表達(dá)] ?B.?整型表達(dá)式C.?[整型常量]或[整型表達(dá)式] D.?[整型常量]

37. 以下不能對(duì)二維整形數(shù)組a進(jìn)行正確初始化的語(yǔ)句是( ?)。

A.int a[2][3]={0};

B.?int a[][3]={{1,2},{0}};

C.?int a[2][3]={{1,2},{3,4},{5,6}};

D.?int a[][3]={1,2,3,4,5,6};

38. 若有說(shuō)明:int ?a[][4]={0,0};則下面正確的敘述是( )。

A.?數(shù)組a中每個(gè)元素均可得到初值0

?B.?二維數(shù)組a的第一維大小為1

C.?因?yàn)槎S數(shù)組a中第二維大小的值除以初值個(gè)數(shù)的商為1,故數(shù)組a的行數(shù)為1

D.只有元素a0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

39. 若有說(shuō)明:int a[][3]={1,2,3,4,5,6,7};則a數(shù)組第一維的大小是( )。

A.2???????????B.3??????????C.4??????????D.無(wú)確定值

40. 下面程序的運(yùn)行結(jié)果是( )。

char c[5]={‘a(chǎn)’,’b’,’\0’,’c’c,’\0’};

printf(“%s”,c);}

A.‘a(chǎn)’’b’

B.ab

C.ab c

D.ab

41. 有兩個(gè)字符數(shù)組a、b,則以下正確的輸入語(yǔ)句是( ?)。

gets(a,b);

scanf(“%s%s”,a,b);

scanf(“%s%s”,&a,&b);

gets(“a”),gets(“b”);

?

A.?s[j+=]=s[i] ?????????B.?s[++j]=s[i]

C.?s[j]=s[i]; j++ ??????D.s[j]=s[i]

42.?若使用一維數(shù)組名作函數(shù)實(shí)參,則以下正確的說(shuō)法是(??).

A.必須在主調(diào)函數(shù)中說(shuō)明此數(shù)組的大小

B.實(shí)參數(shù)組類型與形參數(shù)組類型可以不匹配

C.在被調(diào)函數(shù)中,不需要考慮形參數(shù)組的大小

D.實(shí)參數(shù)組名與形參數(shù)組名必須一致

43. 以下正確的說(shuō)法是(??).

A.如果在一個(gè)函數(shù)中的復(fù)合語(yǔ)句中定義了一個(gè)變量,則該變量只在該復(fù)合語(yǔ)句中有效

B.在該函數(shù)中有效

C.在本程序范圍內(nèi)均有效

D.非法變量

44. 凡是函數(shù)中未指定存儲(chǔ)類別的局部變量,其隱含的存儲(chǔ)類別為(??).

A.自動(dòng)(auto)?B.靜態(tài)(static)C.外部(extern)?D.?寄存器(register)

45. 以下程序的運(yùn)行結(jié)果是( ?)。

#define MIN(x,y) ??(x)<(y)?(x):(y)

main()

{int i=10,j+15,k;

k+10*MIN(i,j);

printf(“%d\n”,k);

}

A.10 ??????????B.15 ????????????C.100 ??????????????D.150

46.?C語(yǔ)言的編譯系統(tǒng)對(duì)宏命令的處理是( ?)。

A.在程序運(yùn)行時(shí)進(jìn)行的

B.在程序連接時(shí)進(jìn)行的

C.和C程序中的其它語(yǔ)句同時(shí)進(jìn)行編譯的

D.在對(duì)源程序中的其它語(yǔ)句同時(shí)進(jìn)行編譯的

47. 請(qǐng)讀程序

#include<stdio.h>

#defineMUL(x,y)(x)*y

main()

{int a=3,b=4,c;

c=MUL(a++,b++);

printf("%d\n",c); ??????

}

上面程序的輸出結(jié)果是( ?)。

A.12 ??????B.15 ??????C.20 ???????D.16

48. 以下程序的輸出結(jié)果為( ?)。

#definePT ???5.5

#defineS(x) ??PT*x*x

main()

{inta=1,b=2;

printf("%4.1\n",S(a+b));

}

A.12.0 ???????B.9.5 ??????C.12.5 ????D.33.5

49. 在“文件包含”預(yù)處理語(yǔ)句的使用形式中,當(dāng)#include后面的文件名用<>括起時(shí),尋找被包含文件的方式是( )。

A.僅僅搜索當(dāng)前目錄

B.僅僅搜索源程序所在目錄

C.直接按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索目錄

D.先在源程序所在目錄搜索,再按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索

50. 以下正確的描述是( )。

A.C語(yǔ)言的預(yù)處理功能是指定完成宏替換和包含文件的調(diào)用

B.預(yù)處理指令只能位于C源程序文件的首部

C.凡是C源程序中行首以“#”標(biāo)識(shí)的控制行都是預(yù)處理指令

D.C語(yǔ)言的編譯預(yù)處理就是對(duì)源程序進(jìn)行初步的語(yǔ)法檢查

51. 設(shè)p1和p2是指向同一個(gè)字符串的指針變量,c為字符變量,則以下不能正確執(zhí)行的賦值語(yǔ)句是(??)。

?A.c=*p1+p2; ????B.p2=c ?????C.p1=p2 ??????D.c=*p1*(*p2);

52. 設(shè)有下面的程序段:

??????????chat s[]=”china”; char *p; p=s;

??????????則下列敘述正確的是(??)。

A.s和p完全相同

B.數(shù)組s中的內(nèi)容和指針變量p中的內(nèi)容相等
C.s數(shù)組長(zhǎng)度和p所指向的字符串長(zhǎng)度相等
D.*p與s[0]相等

53. 下面程序的運(yùn)行結(jié)果是(??)。

?????????#include<stdio.h>

?????????#include<string.h>

?????????main()

?????????{

char *p1,*p2,str[50]=”abc”;

p1=”abc”; ?p2=”abc”;

strcpy(str+1,strcat(p1,p2));

printf(“%s\n”,str);

}

A.?abcabcabc ??B.bcabcabc ?C.?aabcabc ??D.cabcabc

54. 若有定義:int a[2][3];則對(duì)數(shù)組a的第i行第j列(假設(shè)i,j已正確說(shuō)明并賦值)元數(shù)值的正確引用為(?)。

????????A.*(*(i+j)+j) ?B.(a+i)[j] ??C.*(a+i+j) ????D.*(a+i)+j

55. 若有定義:int ?(*p)[4];則標(biāo)識(shí)符p(??)。

A.是一個(gè)指向整型變量的指針?

B.是?一個(gè)指針數(shù)組名

C.是一個(gè)指針,它指向一個(gè)含有四個(gè)整型元素的一維數(shù)組

D.定義不合法

56. 若有以下定義和賦值語(yǔ)句,則對(duì)b數(shù)組的第i行第j列(假設(shè)i,j已正確說(shuō)明并賦值)元素地址的非法引用為(??)。

int b[2][3]={0},(*p)[3];

p=b;

A.*(*(p+i)+j)??????????B.*(p[i]+j)

C.(p+i)+j ??????????????D.(*(p+i))[j]

57. 當(dāng)說(shuō)明一個(gè)結(jié)構(gòu)體變量時(shí)系統(tǒng)分配給它的內(nèi)存是( ?).

A.各成員所需內(nèi)存量的總和

B.結(jié)構(gòu)中第一個(gè)成員所需內(nèi)存量

C.成員中占內(nèi)存量最大者所需的容量

D.結(jié)構(gòu)中最后一個(gè)成員所需內(nèi)存量

58.?C語(yǔ)言結(jié)構(gòu)體類型變量在程序執(zhí)行期間( ?).

A.所有成員一直駐留在內(nèi)存中

B.只有一個(gè)成員駐留在內(nèi)存中

C.部分成員駐留在內(nèi)存中

D.沒(méi)有成員駐留在內(nèi)存中

59. 以下對(duì)C語(yǔ)言中共用體類型數(shù)據(jù)的敘述正確的是(???)。

???????A.可以對(duì)共用體變量名直接賦值

???????B.一個(gè)共用體變量中可以同時(shí)存放其所有成員

???????C.一個(gè)共用體變量中不可能同時(shí)存放其所有成員

???????D.共用體類型定義中不能出現(xiàn)結(jié)構(gòu)體類型的成員

60.?C語(yǔ)言共用體型變量在程序運(yùn)行期間??(??) ??。

??????????A.所有成員一直駐留在內(nèi)存中

??????????B.只有一個(gè)成員駐留在內(nèi)存中

??????????C.部分成員駐留在內(nèi)存中

??????????D.沒(méi)有成員駐留在內(nèi)存中

61. 請(qǐng)讀程序片段:

int x=20;

printf(“%d\n”, ~x);

上面程序片段的輸出結(jié)果是(???).

A.02

B.–20

C.-21

D.-11

62. 在位運(yùn)算中,操作數(shù)每左移一位,其結(jié)果相當(dāng)于(???).

A.操作數(shù)乘以2

B.操作數(shù)除以2

C.操作數(shù)除以4

D.操作數(shù)乘以4

63.?系統(tǒng)的標(biāo)準(zhǔn)輸入文件是指(??)。

A.?鍵盤????????B .顯示器????????C .軟盤????????D.?硬盤

64. 當(dāng)順利執(zhí)行了文件關(guān)閉操作時(shí),fclose函數(shù)的返回值是(??)。

??A .-1 ??????B.?TURE ???????C.?0 ??????D.1

65. 已知函數(shù)的調(diào)用形式:fread(buffer,size,count,fp);其中buffer代表的是??????????(??)。

??????A .一個(gè)整形變量,代表要讀入的數(shù)據(jù)項(xiàng)總數(shù)

??????B .一個(gè)文件指針,指向要讀的文件

??????C .一個(gè)指針,指向要讀入數(shù)據(jù)的存放地址

??????D.一個(gè)存儲(chǔ)區(qū),存放要讀的數(shù)據(jù)項(xiàng)

?

二、填空題:

1.?C程序的基本單位是??????????。

2. 表達(dá)式10%3的結(jié)果是???????????。

3. 假設(shè)所有變量均為整型,則表達(dá)式(a=2,b=5,a++,b++,a+b)的值為 ????????。

4. 在C語(yǔ)言中(以16位PC機(jī)為例),一個(gè)float型數(shù)據(jù)在內(nèi)存中所占用的字節(jié)數(shù)為??????;

5.C語(yǔ)言所提供的基本數(shù)據(jù)類型包括:????????????????????????????????????????????。

6.表達(dá)式pow(2.8,sqrt(double(x))) 值的數(shù)據(jù)類型為??????????????????。

7.以下程序的執(zhí)行結(jié)果是????????????????????????????????。

#include<stdio.h>

main()

{

float f=3.5;

printf("%f,%g",f,f)

}

8. 以下程序的執(zhí)行結(jié)果是??????????????????。

#include<stdio.h>

main()

{

float f=31.41592;

printf("%f,%e",f,f)

}

9. 以下程序的執(zhí)行結(jié)果是??????????????????????????。

#include<stdio.h>

main()

{

int a,b,c;

a=2;b=3;c=1;

if(a>c)

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

else

?printf("%d\n",b);

printf("end\n");

}

10. 在C語(yǔ)言中,表示邏輯“真”值用?????????????????.

11. 有int x,y,z; 且x=3,y=-4,z=5,則表達(dá)式(x&&y)= =(x︱︱z)的值為??????????????。

12. 下面程序從鍵盤輸入的字符中統(tǒng)計(jì)數(shù)字字符的個(gè)數(shù),用換行符結(jié)束循環(huán)。請(qǐng)?zhí)羁铡?/p>

int n=0,c;

c=getchar();

while(??????????????)

?{if(c>=‘0’&&c<=‘9’) n++;

??c=getchar();

?}

13. 執(zhí)行下面程序段后,k值是???????????????????????.

k=1;n=263;

do{k*=n%10; n/=10 } ?while(n);

14. 下面程序段中循環(huán)體的執(zhí)行次數(shù)是???????????????????.

a=10;

b=0;

do{b+=2;a-+2+b; }while (a>=0);

15.?若for循環(huán)用以下形式表示:

??????????????for(表達(dá)式1;表達(dá)式2;表達(dá)式3)???循環(huán)體語(yǔ)句

?????????則執(zhí)行語(yǔ)句for(i=0;i<3;i++) ?printf(“*”);時(shí),表達(dá)式3執(zhí)行??????????次。

16.?以下程序的輸出結(jié)果是__________。?

main( )

{int s[10]={1,2,3,4,5,6,7,8,9,10},*p=s;

printf("%d\n",*(p+4));

}

17.?若二維數(shù)組a有m列,則計(jì)算任一元素a[i][j]在數(shù)組中位置的公式為:????????????。(假設(shè)a[0][0]位于數(shù)組的第一個(gè)位置上。)

18. 在C語(yǔ)言中,二維數(shù)組元素的內(nèi)存中的存放順序是???????????????。

19. 在C 語(yǔ)言中,一個(gè)函數(shù)一般由兩個(gè)部分組成,它們是???????????????????????????。

20.?以下程序的運(yùn)行結(jié)果是???????????????????。

??????????#include<stdio.h>

??????????f(int a[])

??????????{int i=0;

???????????while (a[i]<=10)

{printf(“%d”,a[i]);

?i++;}

}

main()

{int a[]={1,5,10,9,11,7};

?f(a+1);

}

21. 設(shè)有以下宏定義:#define WIDTH 80

????????????????????#define LENGTH (WIDTH+40)

則執(zhí)行賦值語(yǔ)句:k=LENGTH*20;(k為int 型變量)后,k的值是????????????????。

22. 下面的運(yùn)行結(jié)果是?????????????????。

      #define MUL(z) ??(z)*(z)

????????????main()

????????????{

?????????????????printf(“%d\n”,MUL(1+2)+3);

????????????}

23. 下面程序的運(yùn)行結(jié)果是????????????????。

????#define EXCH(a,b) ?{int t;t=a;a=b; b=t;}

????main()

????{int x=5,Y=9;

EXCH(x,y);

printf(“x=%d,y=%d\n”,x,y);

}

24. 下面程序段的運(yùn)行結(jié)果是?????????????。

char s[80], *sp=”HELLO!”;

sp=strcpy(s,sp);

s[0]=’h’;

puts(sp);

25. 下面程序段的運(yùn)行結(jié)果是?????????????。

????????????char s1=”AbcdEf”,s2=”aB”;

????????????s1++;

t=(strcmp(s1,s2)>0);

print(“%d\n”,t)

26. 下面程序段的運(yùn)行結(jié)果是????????????。

??????????char *p=”PDP1-0”;

??????????int I,d;

??????????for(I=0;I<7;I++)

{d=isdigit(*(p+ii));

if(d!=0) ?printf(“%c *(p+I));

}

27. 當(dāng)運(yùn)行以下程序時(shí),從鍵盤輸入?book<CR>

book ?<CR>

(<CR>表示回車,?表示空格),則下面程序段運(yùn)行的結(jié)果是???????????????。

char a1[80],a2[80],*s1=a1,*s2=a2;

gets(s1);gets(s2);

if(!strcmp(s1,s2)) printf(“*”):

else printf(“#”);

printf(“%d”,strlen(strcat(s1,s2)));

28.?若已定義:

struct ?num

{int a;

??int b;

??float f;

} n={1,3,5.0};

struct num * pn = &n;

則表達(dá)式?(*pn).a+pn->f的值是???????????。

29.?在C語(yǔ)言中,&運(yùn)算符作為雙目運(yùn)算符時(shí)表示的是?????????運(yùn)算.

30. 在C語(yǔ)言中,文件的存取是以字符為單位的,這種文件被稱作???????????文件。

?

三、編程題

1.將一個(gè)字符串的內(nèi)容顛倒過(guò)來(lái)。

2. 求整形數(shù)組的最大值。

3. 求字符串的長(zhǎng)度(不用strlen)。

4. 編寫程序,將字符串str中的所有字符’k’刪除。

5.找出二維數(shù)組的鞍點(diǎn),即該位置上的元素是該行上的最大值,是該列上的最小值。二維數(shù)組也可能沒(méi)有鞍點(diǎn)。

6.a(chǎn)是一個(gè)2*4的整型數(shù)組,且各元素均已賦值.函數(shù)max_value可求出其中的最大元素值max,并將此值返回主調(diào)函數(shù).今有函數(shù)調(diào)用語(yǔ)句max=max_value(a);請(qǐng)編寫max_value函數(shù).

7. 設(shè)計(jì)函數(shù),實(shí)現(xiàn)字符串連接操作(不使用strcat)。

8. 以下程序的功能是應(yīng)用下面的近似公式計(jì)算e的n次方.函數(shù)f1用來(lái)計(jì)算每項(xiàng)分子的值,函數(shù)f2用來(lái)計(jì)算每項(xiàng)分母的值.請(qǐng)編寫f1和f2函數(shù).

ex=1=x=x2\2!+x3\3!…(前20項(xiàng)的和)

9.?從鍵盤上輸入若干個(gè)學(xué)生的成績(jī),計(jì)算出平均成績(jī),并輸出不及格的成績(jī)和人數(shù)。

10.設(shè)計(jì)函數(shù),在二維數(shù)組中產(chǎn)生如下形式的揚(yáng)輝三角形。

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

······

11. 回文是從前向后和從后向前讀起來(lái)都一樣的句子。寫一個(gè)函數(shù),判斷一個(gè)字符串是否為回文,注意處理字符串中有中文也有西文的情況。

12.約瑟夫環(huán)問(wèn)題:編號(hào)為1,2,3,···,n的n個(gè)人按順時(shí)針?lè)较驀蝗?,每人持有一個(gè)正整數(shù)密碼。一開(kāi)始任選一個(gè)正整數(shù)m作為報(bào)數(shù)上限值,從第一個(gè)人開(kāi)始按順時(shí)針報(bào)數(shù),報(bào)到m時(shí)停止,報(bào)m的人出列,將他的密碼作為新的m值,從他在順時(shí)針?lè)较虻南乱粋€(gè)人開(kāi)始重新從1報(bào)數(shù),如此下去,直到所有人全部出列為止。設(shè)計(jì)程序求出出列順序。

參考答案

?

一、選擇題

1.?B 2.D 3.A 4.D 5.A 6.A 7.B 8.C 9.A 10.A 11.B 12.B 13.D 14.D 15.D 16.A 17.D 18.C 19.D 20.D 21.C 22.C 23.B 24.D 25.C 26.B 27.A 28.A 29.D 30.A 31.C 32.B 33.B 34.D 35.C 36.D 37.C 38.D 39.B 40.B 41.B 42.A 43.A 44.A 45.B 46.D 47.A 48.B 49.C 50.C 51.B 52.D 53.C 54.A 55.C 56.C 57.A 58.A 59.C 60.B 61.C 62.A 63.A 64.C 65.C

二、填空題

1.函數(shù)??2. 1?3. 9??4. 4??5.單精度型、雙精度型、整型、字符型和枚舉型?6.雙精度型(或:doubLe型)?7.3.500000,3.5??8. ?31.415920,3.14159e+01?9.end?10.非0的數(shù)字?11.1?12.c!='\n'?13.36??14.3 15.3??16.5???17.i*m+j+i?18.按行主順序存放?19.函數(shù)說(shuō)明部分和函數(shù)體??20.5 ?10 ?9??21.2400??22.12??23.x=8,y=5?24.hELLO!

25.1?26.1*0*?27.#9 28.6.0??29.按位與?30.流式

?

三、編程題

1.?解:注意交換位置的控制方法,參考程序如下:

#include <stdio.h>

#include <string.h>

void change(char ?str[])

{ int len,i,j;

??char c;

??len=strlen(str);

??for (i=0,j=len-1;i<len/2;i++,j--)

???{ c=str[i];

?????str[i]=str[j];

?????str[j]=c;

???}

}

main()

{ char str[80];

??printf("Enter string:");

??gets(str);

??change(str);

??printf("\n result is: %s\n",str);

}

2.解:參考程序如下:

#include <stdio.h>

int max(int a[],int n)

{ int i,mx;

??mx=a[0];

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

????if (a[i]>mx) mx=a[i];

??return mx;

}

main()

{ int a[8]={23,4,6,12,33,55,2,45};

??printf("max is %d\n",max(a,8));

}

3.解:參考程序如下:

#include <stdio.h>

int strlen(char str[])

{ int i;

??for (i=0;str[i]!='\0';i++);

??return i;

}

main()

{ char str[80];

??printf("Enter string:");

??gets(str);

??printf("\n string length is: %d \n",strlen(str));

}

4. 解:將從字符串中刪除所有字符’k’ 的功能定義為函數(shù)。參考程序如下:

#include <stdio.h>

void delchar(char str[],char c)

{ int i,j;

??for (i=0,j=0;str[i]!='\0';i++)

?????if (str[i]!=c)

str[j++]=str[i];

??str[j]='\0';

}

main()

{ char str[80];

??int i,j;

??gets(str);

??delchar(str,'k');

??puts(str);

}

5.解:依鞍點(diǎn)定義,對(duì)數(shù)組每行元素循環(huán),找到當(dāng)前行上最大元素,記下所在的列號(hào),再判斷此元素是否為對(duì)應(yīng)列的最小元素。將尋找打印數(shù)組鞍點(diǎn)的操作定義為函數(shù),如果沒(méi)有鞍點(diǎn),函數(shù)返回-1。參考程序如下:

#include <stdio.h>

#define N 10

#define M 10

int andian(int a[][M],int n,int m)

{ int i,j,k,max,maxcol;

??int flag1,flag2=0; /*flag1標(biāo)記每一行的最大值是否鞍點(diǎn),flag2標(biāo)記矩陣是否有鞍點(diǎn)*/

??for (i=0;i<n;i++)

???{ max=a[i][0];

?????for (j=1;j<m;j++)

???????if (a[i][j]>max)

???????{ max=a[i][j];maxcol=j;}

?????for (k=0,flag1=1;k<n&&flag1;k++)

???????if (a[k][maxcol]<max)

?????????flag1=0;

?????if (flag1==1)

??????{ ?printf("\n%3d %3d %5d\n",i,maxcol,max);

?????????flag2=1;

??????}

???}

??if (flag2==0)

?return -1;

}

main()

{ int i,j,n,m,a[N][M];

??printf("Enter row && col:");

??scanf("%d%d",&n,&m);

??printf("Enter array element:");

??for (i=0;i<n;i++)

????for (j=0;j<m;j++)

??????scanf("%d",&a[i][j]);

??printf("\n");

??for (i=0;i<n;i++)

??{ for (j=0;j<m;j++)

??????printf("%d ",a[i][j]);

????printf("\n");

??}

??if (andian(a,n,m)==-1)

?????printf("\n no andian \n");

}

6.?max_value(int arr[][4])

{ ??????}

?

max(int arr[ ][4])

{int I,j, max;

max=arr[0][0];

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

for(j=0;j<4;j++)

if(arr[i][j]>max)max=arr[i][j];

return(max);

}

7. 解:注意結(jié)束字符的判斷和處理,目標(biāo)字符串的長(zhǎng)度應(yīng)足夠長(zhǎng)。參考程序如下:

#include <stdio.h>

void scat(char s1[],char s2[])

{ int i,j;

??for (i=0;s1[i]!='\0';i++);

??for (j=0;s2[j]!='\0';j++)

????s1[i++]=s2[j];

??s1[i]='\0';

}

main()

{ char s1[80]="Good ";

??char s2[10]="morning";

??scat(s1,s2);

??printf("%s\n",s1);

}

8. ex=1=x=x2\2!+x3\3!…(前20項(xiàng)的和)

float f2(int n)

{ ?????}

?

float f1(int x,int n)

{ ?????}

?

main()

{ float exp=1.0;int n,x;

printf(“Input a number:”)’

scanf(“%d”,&x); ?printf(“%d\n”,x);

exp=exp+x;

for(n=2;n<=19;n++) ?exp=exp+f1(x,n)/f2(n);

printf(“\nThe is exp(%d)=%8.4f\n”,x,exp)’

}

?

運(yùn)行結(jié)果:Input a number:3

??????????????????The is exp(3)=20.0855

?

float f2 (int n)

{if(n==1)return1;

else return(f2(n-1)*n);

}

float f1(intx,intn)

{int I; float j=1;

for(I=1;I<=n;I++)j=j*x;

return j;

}

?

9.解:用輸入負(fù)數(shù)表示輸入結(jié)束。參考程序如下:

#include <stdio.h>

main()

{ float score[200],ave,sum,x;

??int i,n,count;

??printf("Enter score:");

??scanf("%f",&x);

??n=0;

??sum=0.0;

??while (x>0&&n<200)

???{ sum+=x;

?????score[n++]=x;

?????scanf("%f",&x);

???}

??ave=sum/n;

??printf("average= %f\n",ave);

??for (count=0,i=0;i<n;i++)

????if (score[i]<60)

??????{ printf("%f\n",score[i]);

??????count++;

??????}

??printf("%d not pass\n",count);

???????????}

10.解:揚(yáng)輝三角形各行數(shù)據(jù)規(guī)律:

(1) 每行第一個(gè)和最后一個(gè)數(shù)都是1

(2) 從第3行起,(3) 除第一和最后一個(gè)數(shù)外,(4) 其余的數(shù)都是上一行同(5) 列和前一列兩個(gè)數(shù)的和。

定義函數(shù),將揚(yáng)輝三角形的數(shù)據(jù)保存在二維數(shù)組中。參考程序如下:

#include <stdio.h>

#define N 10

void yanghui(int a[][N],int n)

{ int i,j;

??for (i=0;i<n;i++)

????{ a[i][0]=1;

??????a[i][i]=1;

????}

??for (i=2;i<n;i++)

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

???????a[i][j]=a[i-1][j-1]+a[i-1][j];

?}

main()

{ int i,j,n,a[N][N];

??printf("Enter n:");

??scanf("%d",&n);

??yanghui(a,n);

??for (i=0;i<n;i++)

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

????????printf("%d ",a[i][j]);

??????printf("\n");

????}

}

11. 解:依回文定義從字符串的起始字符向后,最后一個(gè)字符向前依次判斷,遇漢字的第一個(gè)字符同時(shí)處理兩個(gè)字符。參考程序如下:

#include <stdio.h>

#include <string.h>

int huiwen(char str[])

{ int i,j,len,flag=1;

??len=strlen(str);

??for (i=0,j=len-1;i<=j;i++,j--);

?????if (str[i]!=str[j])

??????{ if (str[i]>128&&str[j]>128) /*兩側(cè)都是漢字字符*/

???????????{ if (str[i]==str[j-1]&&str[i+1]==str[j])

????????????{ i++; j--; }

??????????????else flag=0;

???????????}

????????else flag=0;

??????}

????return flag;

}

main()

{ char str[50];

??printf("Enter string:");

??gets(str);

??if (huiwen(str))

?????printf("%s is a palindroma\n");

??else

?????printf("%s is not palindroma\n");

}

12.解:設(shè)整型數(shù)組a中保存n個(gè)人的密碼,對(duì)應(yīng)的人出列后,數(shù)組元素置0作為標(biāo)志。順時(shí)針確定下一個(gè)人的方法,可將下標(biāo)加1,再對(duì)n求余。參考程序如下:

#include <stdio.h>

#define N 100

main()

{ int a[100];

??int i,j,m,n,k=0;

??printf("Enter n & m:");

??scanf("%d%d",&n,&m);

??printf("Enter code array :");

??for (i=0;i<n;i++)

?????scanf("%d",&a[i]);

??printf("\nOutput:\n");

??for (i=0;i<n;i++)

????{ j=1;

??????while (j<m)

??????{ while (a[k]==0) /*跳過(guò)已出列的人*/

?????????k=(k+1)%n;

??????j++;

??????k=(k+1)%n;

??????}

??????while (a[k]==0) /*跳過(guò)已出列的人*/

k=(k+1)%n;

??????printf("%d ",k);

??????m=a[k]; a[k]=0;

????}

}

四、翻譯題

1.(對(duì)這種人)我的確既感到快樂(lè)而又覺(jué)得悲哀。

2.大約有幾十個(gè)。

3.倘若有了危急,怎么辦?

4.箭射中了塔上的磚,箭的一半射進(jìn)磚里。

5.這樣稱呼我確實(shí)恰當(dāng)。

6.沒(méi)有辦法度過(guò)她的余生。

7.何況是從前的呢?

8.道路上有餓死的人卻不知開(kāi)倉(cāng)賑糧。

9.吃飯時(shí)把肉挑出來(lái)放在一邊。

10.不把人民看作自己的子女一樣地去關(guān)心愛(ài)護(hù)他們。

11.本來(lái)我就預(yù)先知道事情會(huì)是這樣的。

12.誠(chéng)懇拘謹(jǐn)?shù)臉幼酉駛€(gè)鄉(xiāng)下人。

13.就完善文德教化使他們來(lái)。

14.驅(qū)逐客卿使諸侯成就功業(yè)。

15.不如早點(diǎn)給共叔段安排個(gè)地方。

?

?

五、簡(jiǎn)答題

1.在魯迅看來(lái),它的實(shí)質(zhì)是:“一、想做奴隸而不得的時(shí)代(亂世);二、暫時(shí)做穩(wěn)了奴隸的時(shí)代(治世)”。

2.主要對(duì)比之處有三:一是李廣與匈奴射雕者的對(duì)比,主要突出了李廣的善射;二是李廣和程不識(shí)的對(duì)比,主要突出了李廣治軍簡(jiǎn)易、號(hào)令不煩的特點(diǎn),同時(shí)也表現(xiàn)出李廣的膽略和才氣;三是李廣與李蔡的對(duì)比,主要突出了李廣終生不遇、白首未封的不幸遭遇,同時(shí)說(shuō)明了李廣遭遇的不公,朝廷用人的不當(dāng)和軍功制度的不合理。

3.《飲酒》(其五)抒寫了詩(shī)人歸隱后對(duì)田園風(fēng)光和農(nóng)家生活的熱愛(ài)和悠然自得的心境,表現(xiàn)了他安于隱逸、樂(lè)于田園,陶醉自然,不滿現(xiàn)實(shí),與世無(wú)爭(zhēng)的人生態(tài)度和思想情趣。

4.這兩句詩(shī)用了比興手法。作者說(shuō)他想要渡過(guò)黃河,河水卻被堅(jiān)冰堵塞;想要登上太行,太行卻被大雪覆蓋。含義是:以自然界路途的艱險(xiǎn)來(lái)象征人生仕途的艱難,抒發(fā)了作者政治失意之后的憂愁、苦悶和惆悵之情。

5.說(shuō)明沙子龍內(nèi)心深處對(duì)已被時(shí)代風(fēng)沙淹沒(méi)了的往昔的絕技和英名十分留戀,故借夜間練槍來(lái)自我安慰、自我欣賞,說(shuō)明沙子龍?jiān)诒举|(zhì)上是一個(gè)內(nèi)心世界深藏不露、與現(xiàn)實(shí)格格不入的時(shí)代的落伍者。

6.體現(xiàn)了孔子治國(guó)以禮,為政以德的主張。

7.通過(guò)四場(chǎng)戰(zhàn)役,即:上郡遭遇戰(zhàn)、雁門出擊戰(zhàn)、右北平以四千對(duì)四萬(wàn)敵之戰(zhàn)、最后隨衛(wèi)青出擊一戰(zhàn)。

8.用的是比興手法?!吧V绰?,其葉沃若”是比喻女主人公年輕貌美時(shí);“桑之落矣,其黃而隕”是比喻女主人公的容貌衰退。

9.用了《楚辭·招隱士》“王孫兮歸來(lái),山中兮不可久留”的典故。作者在這里是反用其意,表達(dá)自己眷戀山林,樂(lè)于歸隱的決心以及逃避現(xiàn)實(shí)、潔身自好、不同流俗的生活態(tài)度。

10.說(shuō)明趙七爺是個(gè)復(fù)辟之心不死、善于韜晦、時(shí)刻伺機(jī)復(fù)辟的封建帝制余孽。

11.雙重喻意:一是將季氏比作虎兕,將顓臾比作龜玉,說(shuō)明季氏悍然出兵,顓臾必然遭到毀滅的命運(yùn);二是將冉有、季路比作守柙護(hù)櫝之人,說(shuō)明無(wú)論季氏行兇,還是顓臾被毀,冉有、季路都有著不可推卸的責(zé)任。

12.韓愈因讀李翰《張巡傳》后感到有所不足,作《張中丞傳后敘》來(lái)補(bǔ)敘有關(guān)事跡和軼事并發(fā)議論,所以稱為“后敘”。

13.《種樹(shù)郭橐駝傳》運(yùn)用了多重對(duì)比:一是郭橐駝與他植者的對(duì)比;二是他植者中過(guò)于疏懶者與過(guò)于勤勉者之間的對(duì)比;三是郭囊駝種樹(shù)貴得樹(shù)之天性和“長(zhǎng)人者好煩其令”形成對(duì)比。

14.統(tǒng)領(lǐng)全詩(shī)內(nèi)容的是第一句:“和戎詔下十五年”??梢钥闯鲞@首詩(shī)揭露的對(duì)象是南宋統(tǒng)治者的妥協(xié)投降政策。

15.一是象征詩(shī)人的愛(ài)國(guó)感情長(zhǎng)期埋藏在心底,只有到了“五四”運(yùn)動(dòng)以后,這股激情才得以噴發(fā);二是象征被封建主義束縛了幾千年的中華民族,直到“五四”運(yùn)動(dòng)以后,才煥發(fā)出真正的青春活力。


C語(yǔ)言程序設(shè)計(jì)(???復(fù)習(xí)題 )的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
乌什县| 钦州市| 若尔盖县| 鹿邑县| 惠水县| 长岭县| 那坡县| 龙川县| 额济纳旗| 高碑店市| 梅河口市| 庆安县| 凤城市| 滨海县| 乐安县| 抚顺市| 顺义区| 琼结县| 五大连池市| 南京市| 巴林右旗| 榆中县| 微山县| 克东县| 沈阳市| 宁明县| 含山县| 广灵县| 宜阳县| 平定县| 上高县| 平阳县| 达尔| 根河市| 莲花县| 格尔木市| 开原市| 定西市| 新竹市| 邢台县| 兴隆县|