c語言基礎知識_第1頁
c語言基礎知識_第2頁
c語言基礎知識_第3頁
c語言基礎知識_第4頁
c語言基礎知識_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

判斷題

1.函數若無返回值,則它一定無形參。X

2.在C程序中,函數既可以嵌套定義,也可以嵌套調用。X

3.C程序總是從main()函數的第一條語句開始執(zhí)行的。V

4.同一函數內可以有多個return語句。V

5.main函數中的變量名不可以與其它函數相同。義

6.C程序可由多個函數組成,但必須有并且只有一個主函數main。V

7.在C語言中的每個函數必須要有一個明確的return語句才能返回調用程序。X

8.主函數中定義的變量的作用域僅限于主函數內。V

9.傳值調用的形參只有在被調用時,才被創(chuàng)建(分配存儲單元)。V

10.C程序執(zhí)行總是從第一個函數開始。X

11.一個C程序的執(zhí)行總是從該程序的main函數開始,在main函數最后結束.X

12.被main函數調用的函數只能是庫函數。X

13.函數說明指的是在程序中設定一個函數模塊。X

14.在C程序中,若對函數類型未加說明,則函數的隱含類型為void。X

15.形參可以是常量、變量或表達式。X

16.函數調用可以作為一個函數的形參。X

17.C語言規(guī)定,實參應與其對應的形參類型一致。V

18.定義函數時,形參的類型說明可以放在函數體內。X

19.一個函數可以帶回一個整型值、字符值、實型值等,也可以帶回指針型的數據。V

20.全局變量可以被任何一個函數中的任何一個表達式使用。X

21.函數的隱含存儲類型是extern。V

22.定義在main函數后的任何函數都需在main中進行函數聲明。X

23.a是一維數組名,數組元素a[l]還可以寫作“*(a++)”°X

24.C語言中數組名是指針常量。J

25.構成數組的各個元素必須具有相同的類型。J

26.數組元素的下標可以選用正整數或正實數。X

27.數組名可以作為參數進行傳遞。V

28.若有定義“i又a[4][5];",則在數組元素a[3][3]前有12個元素。X

29.若有定義inta[3][4];則共有12個元素,最后一個元素是a[3][4]。X

30.字符數組中字符串可以整體輸入輸出。J

31.若有定義語句“charsl[]="abc",s2[]=「",b,'c'}:",則蛆si和數組s2均有3個

元素。X

32.若a為一維數組名,則*(a+i)與a[i]等價。V

33.函數原型為“voidsort(floata[],intn)”,調用該函數時,形參數組a被創(chuàng)建,實參數組各

元素的值被復制到a數組各元素中。X

34.C允許對數組的大小作動態(tài)定義,即可用變量定義數組的大小。X

35.數組定義inta[10];也可以寫成inta(10);。X

36.在對全部數組元素賦初值時,可以不指定數組長度。V

37.定義s為5X6(5行6歹I」)的數組可寫成floata[5,6];X

38.數組定義inta[10];表示數組名為a,此數組有10個元素,第10個元素為a[10]。X

39.staticcharc[]={'a','','b','o','o','k',、0'};與staticcharc[]={'a'等價。X

40.設已有說明:staticcharcl[10],c2[10];下面程序片段是合法的。cl={"book"};c2=cl;X

41.調用函數時,實參為數組名,則向數組傳遞的是數組的首地址。V

42.puts。函數的作用是接收從鍵盤輸入的字符串。X

43.兩個字符串所包含的字符個數相同時,才能進行字符串的比較。X

44.若有說明:拾12m3]={1,2,3,4,5,6,7};則數組2第一維大小是3。V

45.在C語言中,數組下標從1開始。X

46.若有說明:inta口[4]={{0},{0}};則二維數組a的第一維大小為1。X

47.在C語言中,數組名是一個不可改變的地址常量,不能對它進行賦值運算。V

48.若有說明:inta[3][4]={0},則只有元素a⑼⑼可得到初值0。X

49.字符串作為一維數組存放在內存中。V

50.若有形參定義:inta[10];則a++是合法的表達式。X

51.定義數組可以采取以下形式:inta[5];a[l]=l;a[2]=3;a[3]=6;a[4]=7;a[5]=9;X

52.設charx[]="1234”,y[]={T2'3'4'\0'};那么x數組的長度等于y

數組的長度。V

53.'a'和"a”在內存中所占字節(jié)相同。X

54.C語言的編譯系統(tǒng)對宏命令的處理是在C源程序編譯階段完成的。X

55.預處理命令如:#include<stdio.h>不屬于c語言的一部分。X

56.若有宏定義:#defineM(x,y,z)x*y+z則宏引用M(2+3,4+5,6+7)

通過宏展開后的表達式應為(2+3)*(4+5)+(6+7)。X

57.C語言中的宏定義允許嵌套定義,也允許帶參數。V

58.宏替換時先求出實參表達式的值,然后代入形參運算求值。X

59.使用帶參數的宏時,參數的類型應與宏定義時的一致。X

60.若有宏定義:#definePI3.14i5926,則系統(tǒng)預編譯時會報錯。V

61.已知宏定義#defineSQ(x)x*x,執(zhí)行語句printf(u10/SQ(3)=%d",10/SQ(3));后的輸出

結果是10/3*3=1。X

62.形參為指針變量時,實參必須是數組名。X

63.若有定義:inta[5],*p;,使p指向最后一個數組元素a⑷的語句是p=a+4;。V

64.已有定義:inta[5]={1,2,3,4,5},*s=a;,則表達式*(s+3)的值是3。X

65.若有定義:inta[5]={l0,20,30,40,50},*p=%*s=a+2;,表達式s-p的值是2。J

66.在int*p;和語句printf("%d",*p);中的*p含義相同。X

67.設有說明int(*ptr)(int);,則ptr是一個函數名。X

68.位運算賦值有6個,但位運算組成復合的賦值運算符只有5個。V

69.說明:chars[]="world",*p;,執(zhí)行語句p=s后,*(p+5)的值是‘d'。X

70.結構體類型中各成員項的數據類型可以不同。V

71.在程序中定義了一個結構體類型,將為此類型分配存儲空間。X

72.在說明一個結構體變量時系統(tǒng)分配給它的存儲空間是該結構體中所有成員所需存儲空

間的總和。V

73.若打開文件的方式為“w”而該文件已經存在,則文件中原有數據被清空。V

74.若用fopen()函數打開一個已存在的文本文件,保留該文件原有數據且可以讀也可以寫,

則文件的打開模式是“r+”。V

75.C文件使用前需要打開,使用后需要關閉。J

76.對文件進行操作的一般步驟包括:打開/建立要操作的文件;對文件進行讀寫等操作;

關閉被操作的文件。V

77.若fp已正確定義并指向某文件,當未遇到該文件結束標志時函數feof(fp)的值為1。X

78.文件由二進制數據序列組成,C語言只能讀寫二進制文件。X

79.feof函數只能對二進制文件進行判定。X

80.利用fclose函數關閉己打開的文件。4

選擇題

1.下列敘述中,正確的敘述項是(B

A.定義函數時,必須要有形參

B.函數中可以沒有return語句,也可以有多條return語句

C.函數f可以用f(f(x))形式調用,這種調用形式是遞歸調用

D.函數必須有返回值

2.下列敘述中,不正確的敘述項是(D)o

A.函數調用時,形參變量只有在被調用時才被創(chuàng)建(分配存儲單元)

B.函數調用時,實參可以是常量、變量或表達式

C.定義變量時,省略對變量的存儲類別定義,則變量是自動型變量

D.語句retum(a,b);則函數可以返回兩個值

3.傳值調用的特點是(B)。

A.實參傳給形參變量的數據是地址

B.在函數中形參變量值改變后,不改變實參變量的值

C.在函數中形參變量值改變后,實參變量的值隨之也改變

D.實參必須是變量

4.如果在函數中定義一個變量,有關該變量作用域正確的是(A)。

A.只在該函數中有效B.在該文件中有效

C.在本程序中有效D.為非法變量

5.根據下面函數print的定義,選出調用函數print(5378)的值是(A)

voidprint(longn)

{if(n==0)return;

else{

print(n/10);

printf(M%d”,n%10);

return;}

)

A.5378B.8735

C.3578D.8753

6.根據下面函數f,選出f(f(3))的值是(C)。

intf(intx)

{staticintk=0;

x=x+k;

k-;

returnx;

)

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

7.以下說法中正確的是(C)o

A.C程序總是從第一個函數開始執(zhí)行

B.C程序中,函數最多不能超過2個

C.C程序總是從main()函數開始執(zhí)行

D.C程序的main()函數必須放在程序的最前面

8.以下函數調用語句中實參的個數為(D)。

aver((v1,v2),(v3,v4,v5),v6);

A.6B.5C.4D.3

9.下列程序的輸出結果是(D

fun(inta,intb,intc)

{c=a*b;}

main()

{intc;

fun(2,3,c);

printf(n%d\n';c);

)

A.0B.1C.6D.無法確定

10.執(zhí)行下列程序后的輸出結果是(A)。

#include<stdio.h>

charf(chars[],intn)

{return(s[nj);}

main()

{chara[]="ABCDH;

printf(H%c,',f(a,2)+1);

)

A.DB.CC.BD.A

11.對于以下遞歸函數f(),調用f(4),其返回值為(A)o

intf(intn)

{if(n)returnf(n-l)+n;

elsereturnn;

)

A.10B.4C.0D.以上均不是

12.下列能正確定義一維數組a的語句是(D)。

A.inta(10);B.intn=I0,a[n];

C.intn;scanf("%d”,&n);D.#definen10

inta[n];inta[n];

13.若有定義語句則下列對a中數組元素正確引用的是(A)。

A.a[10/2-5]B.a[10]C.a[4.5]D.a(1)

14.能對一維數組正確初始化的語句是(A)o

A.inta[6]={6*l)B.inta[6]={1,?3}

C.inta[6]={}D.inta[6]=(0,0,0)

15.以下能正確定義二維數組的語句為(D)o

A.inta[][];B.inta[][4];C.inta[3][];D.inta[3][4];

16.若有數組定義語句“inta[4][5];",則對a中數組元素的正確引用是(D)。

A.a[4][l]B.a[2,1]C,a[4][5]D.a[4-l][5-5]

17.下列各語句定義數組,其中不正確的是(C)。

A.chara[3][10]={"China1',"American''/^sia"};B.intx⑵⑵={1,2};

C.floatx[2][]={1,2,4,6,8,10};D.intm[][3]={1,2,34,5,6};

18.數組定義為inta[3][2]={1,2,3,4,5,6},下列表述中正確的是(D)。

A.a[3]⑵的值為6B.a[6]的值為6

C.a[0]的值為1D.a[2][l]的值為6

19.以下能對二維數組a進行正確初始化的語句為(D)o

A.inta[2][]={{1},{4,5}};B.inta[2][3]={l,2,3,4,5,6,7};

C.inta[][]={l,2,3,4,5,6};D.inta[][3]={l,2,3,4,5};

20.下列對字符數組s的初始化不正確的是(C)o

A.chars[5]="abcn;B.chars[5]={'a,,'b','c\d,'e"};

C.chars[5]=(,abcdeM;D.chars[]=,,abcdeH;

21.下列程序段的運行結果為(B)o

chars[]=,'ab\0cdn;printf("%sM,s);

A.abOB.abC.AbedD.abcd

22.下列數組s中所存放字符串的長度為(C)o

chars[]=Ha\128b\\\tcd\xdg\n";

A.9B.10C.11D.18

23.有數組定義語句“chara[20];”,則正確的輸入語句為(D)。

A.scanf("%s”,&a);B.scanf(n%sn,a[]);

C.gets(a[20]);D.gets(a);

24.若有inta[10]={1,2,3,4,5,6,7,8,9,10);

則數值為6的表達式是(C)o

A.a[0]B.a[6]C.a[0]+5D.a[l]+5

25.下面程序執(zhí)行后的正確輸出項是(A)o

#include<stdio.h>

voidswap1(inta[])

{intt;

t=a[O];a[0]=a[l];a[l]=t;

)

voidswap2(inta,intb)

{intt;

t=a;a=b;b=t;

)

voidmain()

{intx⑵={1,5};

inty[2]={l,5};

swapl(x);

swap2(y[0],y[l]);

printf(nx:%d%d\nM,x[0],x[U);

printf("y:%d%d\nM,y[O],y[l]);

)

A.x:51B.x:15C.x:15D.x:51

y:15y:51y:15y:51

26.有以下程序

main()

{chara[7]=,,a0\0a0\0,,;inti,j;

i=sizeof(a);j=strlen(a);

printf("%d%d\n",i,j);

程序運行后的輸出結果是(C)

A.22B.76C.72D.62

27.執(zhí)行下列程序后的輸出結果是(D)。

#include<stdio.h>

intf(inta[],intn)

{if(n==O)returna[0|;

elsereturnf(a,n-l)+a[n];

)

main()

{intx[]={1,3,579};

printf(n%d\nn,f(x,3));

)

A.1B.4C.9D.16

28.下面對數組定義正確的是(D)o

A.inta[];B.intn=5,a[n];C.intn,a[n]={1,2,3,4,5};D.int

a[10/2];

29.設有語句"inta[]={1,2,3,9,8,7};",則表達式"a⑵-a[4]"的值是(C)。

A.-2B.-4C.-5D.-7

30.數組定義為則數組a有(D)個數組元素。

A.12B.144C.100D.121

31.以下能正確定義二維數組的是(B)。

A.inta[][3];B.inta[][3]={{2},{2*3}};C.inta[][3]={};D.inta⑵[3]={{1},{2},{3,4}};

32.若有以下說明和語句,則輸出結果是(B)。

charsp||="\t\v\\\0will\n";

printf("%d",strlen(sp));

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

33.若有以下說明和語句,則輸出結果是(C

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

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

34.設有定義語句chars[4]="abc";,則表達式s[3]的值是(B3

A.未知字符B.0C.'O'D.'c'

35.設變量定義為charformat口="s=%d\n";,則數組format元素的個數為(C設

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

36.函數調用"strcmp("123","321")的返回值是(D

A.OB.1C.任意正整數D.負整數

37.下列宏定義命令中,哪一個格式是正確的(D)。

A.#definepi=3.14l59;B.definepi=3.14159

C.#definepi="3.14159"D.#definepi(3.14159)

38.宏定義為“#definediv(x,y)3y;”,若語句“printf("div(x,y)=%d\n",div(x+3,y-

3));”作宏替換后為(C)o

A.printf("x/y=%d\n".(x+3)/(y—3));B.printf("x/y=%d\n",x+3/y—3);

C.printf("div(x,y)=%d\n".x+3/y—3;);D.printf("x/y=%d\n",x+3/y—3;);

39.程序中調用了庫函數exit,必須包含頭文件(B

A.string.hB.stdlib.hC.ctype.hD.math.h

40.已知宏定義

#defineN3

#defineY(n)((N+l)*n)

執(zhí)行語句z=2*(N+Y(5+l));后,變量z的值是(B)o

A.42B.48C.52D.出錯

41.下列程序段的輸出結果是(D)o

#defineM(x,y)x/y

printf("%d",M(10,2+3));

A.2B.2.0C.5D.8

42.執(zhí)行下列程序段后變量i的值應為(B)o

#defineMA(x,y)(x*y)

i=5;

i=MA(i,i+l)-7;

A.30B.19C.23D.1

43.下面程序的運行結果是(B)o

#definePS3+4

#include<stdio.h>

voidmain()

{intz;

z=PS*2;

printf(n%dn,z);

A.14B.11C.2D.24

44.對于以下變量定義,(D)是正確的賦值。

int*p[3],a[3];

A.p=aB.*p=a[0]C.p=&a[0]D.p[0]=&a[0]

45.下列語句定義p為指向float型變量d的指針,其中正確的是(C)o

A.floatd,*p=d;B.float*p=&d,d;

C.floatd,*p=&d;D.floatd,p=d;

46.指針變量pl、p2類型相同,要使p2、pl指向同一變量,哪一個語句是正確的(A)。

A.p2=*&pl;B.p2=**pl;C.p2=&p1;D.p2=*pl;

47.若有“floata=1.5,b=3.5,*pa=&a;*pa*=3;pa=&b;",則正確的是(C)。

A.pa的值是1.5B.*pa的值是4.5

C.*pa的值是3.5D.pa的值是3.5

48.數組定義為"inta[4][5];,\下列哪一個引用是錯誤的(D)。

A.*aB.*(*(a+2)+3)C.&a[2][3]D.++a

49.表達式“c=*p++”的執(zhí)行過程是(A)?

A.復制*p的值給c后再執(zhí)行p++B.復制*p的值給C后再執(zhí)行(*p)++

C.復制p的值給c后再執(zhí)行p++D.執(zhí)行p++后將*p的值復制給c

50.若已定義intx,*p;則以下正確的賦值表達式是(A)o

A.p=&xB.p=xC.*p=&xD.*p=*x

51.下面程序輸出結果是(B)o

#include<stdio.h>

voidmain()

{intx=4,y=7,*px=&x,*py=&y;

*py=*px;

printf("%d,%d'',x,y);

A.7,7B.4,4C.4,7D.7,4

52.聲明語句為^chars[4][15]>*pl,**p2;intx,*y;”,下列語句中正確的是(D)。

A.p2=s;B.y=*s;C.*p2=s;D.y=&x;

53.定義函數int*max()的正確含義是(B

A.返回整型值的函數

B.返回指向整型變量的指針

C.返回指向函數max()的指針

D.上面的敘述都不正確。

54.若有定義“int(*ptr)(float);”,其正確的含義是(C若

A.ptr是指向一維數組的指針變量

B.ptr是指向int型數據的指針變量

C.ptr是指向函數的指針變量,該函數有一個float型參數,返回值是整型

D.ptr是一個函數名,該函數的返回值是指向int型數據的指針

55.指出正確的程序是(程序(2))。

程序(1)程序(2)

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

voidmain()voidmain()

ff

\i

char*p;chars[80];doublex,y,*p;

P=s|0];x=3.45;p=&x;y=*p;

scanf(n%sn,s);printf(H%f\nM,y);

printf(n%s\nn,p);

))

程序(3)程序(4)

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

voidmain()voidmain()

((

intx,*p;int*p=&a;

*p=x;inta;

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

))

56.下面程序的輸出結果是(B)o

voidmain()

|

inta[12]={l,2,3,4,5,6,7,8,9,10,ll,12},*p[4],i;

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

p[i]=a+i*3;//或p[i]=&a[i*3];

printf("%d",*(p[3]+2));//或printf("%d",p[3][2]);

A.8B.12C.6D.程序有錯

57.變量的指針,其含義是指該變量的(B)。

A.值B.地址C.名D.一個標志

58.設變量定義為“intx,*p=&x;",則&*p相當于(A).

A.pB.*pC.xD.*&x

59.若變量已正確定義,(A)不能使指針p成為空指針。

A.p=EOFB.p=0C.p='\0'D.p=NULL

60.對于類型相同的指針變量,不能進行(A)運算。

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

61.設有指針變量p已指向float型變量x,正確的輸入語句是(C)o

A.scanf(n%fn,x);B.scanf(n%dn,&x);C.scanf(M%f',p);D.scanf(M%f',*p);

62.執(zhí)行下列程序段,輸出結果(D)。

intm=5,n=25,*ql,*q2=&n,;

ql=&m;

q2=ql;

printf(n%d%d",*ql,*q2);

A.&m&m;B.2525C.255D.55

63.下面程序執(zhí)行后輸出是(B)。

#include<stdio.h>

voidmain()

{intk=4,*pl=&k;

if(*pl==k)printf(,'%d',,l);

elseprintf(M%dH,0);

)

A.4B.1C.0D.運行時出錯

64.設有定義語句shortx=12;假定分配給x的內存地址是OxfTOO和OxfTOl,則在程序中能表

示變量x地址的表達式是(A)。

A.&xB.&12C.ffOOD.ffDl

65.設有定義語句inta,*pa二&a;和賦值語句*pa=a;,則下列說法正確的是(A)。

A.定義語句中的“*pa=&a”表示將a的地址賦給pa

B.定義語句中的“*pa=&a”表示將a的值賦給pa

C.賦值語句中的“*pa二a”表示將a的地址賦給pa

D.賦值語句中的“*pa二a”表示將a的值賦給pa

66.已有定義intk=2,*pl=&k,*p2=&k;下面不能正確執(zhí)行的賦值語句是(B)。

A.k=*pl+*p2;B.p2=k;C.pl=p2;D.k=*pl*(*p2);

67.若有語句int*p,a=4^lp=&a;下面均代表地址的一組選項是(D)。

A.a,p,*&aB.&*a,&a,*pC.*&p,*p,&aD.&a,&*p,p

68.若有定義:int*p,m=5,n;以下正確的程序段是(D)。

A.p=&n;scanf("%dn,&p);B.p=&n;scanf(n%d",*p);

C.scanf(n%dM,&n);*p=n;D.p=&n;*p=m;

69.指出函數abc的作用是(D)o

voidabc(char*s,char*t)

{while(*t++);

while(*t++=*s++);//注:是單等號

A.求字符串長度B.將字符串t復制到字符串s中

C.比較字符串大小D.將字符串t連接到字符串s的尾部

70.若有定義:int*pl,*p2,m=5,n;以下均是正確賦值語句的選項是(C)。

A.pl=&m;p2=&pl;B.pl=&m;*pl=*p2;

C.pl=&m;p2=pl;D.pl=&m;*p2=*pl;

71.聲明語句為,下列表達式中與數組元素等價的是(A)。

A.*(a[2]+l)B.a[9]C.*(a[l]+2)D.*(*(a+2))+l

72.已有變量定義和函數調用語句:inta=25;print_value(&a);下面函數的正確輸出結果是

(D)o

voidprint_value(int*x)

{printf(',%d\n,,,++*x);}

A.32B.24C.25D.26

73.下面程序的輸出是(B)

#include"stdio.h"

voidfun(int*a,intb)

{*a=13;b*=5;

return;}

voidmain()

{intx=12,y=12;

fun(&x,y);

printfCtx=%d,y=%d\n,,,x,y);}

A.x=12,y=12B.x=13,y=12C.x=13,y=60D.x=12,y=60

74.inta[]={1,2,3},*p,*q;

p=a+l;

q=p++;

執(zhí)行該程序段后,p和q所指向的單元的內容分別為(C)。

A.(*p)=1,(*q)=2B.(*p)=2,(*q)=3

C.(*p)=3,(*q)=2D.以上都錯

75.和定義語句char*a="ccw”;功能完全相同的程序段是(C

A.char*a,a="ccwH;B.char*a;*a=,,ccw";C.char*a;a=,,ccw";D.char*a,*a=',ccwn;

76.下列程序段的輸出結果是(D)o

intt,a[3]={10,5,1};

int*p;

for(p=a;p<a+3;p++)

t=t+*p;

printf(H%d';t);

A.15B.16

C.10D.不確定

77.設有定義語句intx[]={1,2,3},*p=x;則結果不是地址值的表達式是(C)。

A.p+1B.xC.*pD.&x[0]

78.執(zhí)行下列程序段后,變量y的值為(D)。

intx[]={l,2,3,4),y,*p=&x[l];

y=(*-p)++;

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

79.設有定義語句inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;則結果為8的表達式是(D)。

A.p+7B.*p+8C.*(p+8)D.*p+=7

80.設變量定義為:int*p[3],a[3];,(C)是正確的賦值。

81.A.p=&a[0]B.*p=**a

82.C.p[0]=aD.**p=a

83.執(zhí)行下列程序段后,m的值為(D)。

inta[2][3]={{l,2,3},{4,5,6});

intm,*p;

p=&a[0][0];

m=(*p)*(*(p+2))*(*(p+4));

A.12B.13C.14D.15

84.運行下列程序的輸出結果是(C)。

#include<stdio.h>

main()

{inti;

chara[20]=Ml23456",*p;

for(p=&a[5];p>=a;p—)

printf(',%c,,*p);

)

A.135B.246C.654321D.123456

85.運行下列程序的輸出結果是(A)o

#include<stdio.h>

main()

{char*p=u13542";

while(*p!='4')

printf(,'%c,',*(p4-+)+l);

)

A.246B.135C.152D.13542

86.不正確的賦值或賦初值的方式是(D)o

A.charstr[6]={'s't'r'i'n'g,};

B.charstr[10]=,>string”;

C.char*str=wstringn;

D.charstr[10];str=,,string”;

87.如下程序段,其輸出應為(B)o

intc[]={l,7,12);

int*k;

k=c;

printf(',%d,,,*++k);

A.2B.7C.1D.以上均不對

88.調用f(“1234”)的返回結果是(B),,

intf(char*s)

{intk=0;

while(*s)k=k*10+*s++-'0‘;

return(k);

}

A.”1234”B.1234C."4321D.4321

89.以下程序運行后的輸出結果是(B)。

main()

{chars[]=,,Yes\n/No,',*ps=s;

printf("%s”,ps+4);

*(ps+4)=0;

puts(s);

)

A.n/No/NoB./NoYesC.n/NOYesD.YesYesYes/No

90.設有定義:charstr[]=UABCD,\*p=str;則語句printf("%d\n",*(p+4));的輸出結

果是(B)o

A.68B.0C.字符d的地址D.不確定的值

91.下面程序執(zhí)行后a的值是(B)。

#includeHstdio.hn

voidmain()

{inta,k=4,m=6,*pl=&k,*p2=&m;

a=pl!=&m;

printf(n%d\nM,a);

)

A.4B.1C.0D.運行時出錯,a無定值

92.語句:printf(printf("%d\n”,sMen("ATS\nO12\l\\”)));的輸出結果是(C)。

A)llB)10C)9D)8

93.以下程序段輸出字符串str,其中循環(huán)條件str[i]!='0'還可以寫成(A)。

charstr[80];

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

putchar(str[i]);

A.str[i]!=NULLB.i<80

C.!(str[i]=W)D.i<=80

94.設變量定義為:intn,*p;charch,*q,*g;,則語句(D)是不正確的。

A.p=&n;g=q=&ch;B.p=&n;q=&ch;

C.p=&n;g=&ch;D.p=&n;q=&ch;g=p;

95.下列數據定義語句中,正確的是(B)。

A.charc[2],*p=c[l];B.charc,*p=&c;C.float*p=&a,a=5;D.floatbl,p=&bl;

96.設有charstr[100];inti=5;則引用數組元素的錯誤形式是(A)。

A.*((str++)+i)B.*(str+i-l)C.*(str+i)D.str[i+10]

97.設有定義語句inta⑶[4],*p=a[0];則下列表達式中,不能代表合法數組元素的是(D)。

A.**aB.*(a[2]+1)C.*(p+2*4+l)D.*(*(p+2)+l)

98.下列程序段的輸出結果是(B)o

char*st[]={"SUNM,"MOON",nSTAR",nXn};

printf(u(%s,%c)M,*(st+l)+l,*(*(st+2)+2)+2);

A.(MOON,M)B.(OON,C)C.(OON,Q)D.(OON,A)

99.已有定義:inti,a[10],*p;,則合法的賦值語句是(D

A.p=100;B.p=a[5];C.p=a[2]+2;D.p=a+2;

100.以下程序運行后的輸出結果是(D

main()

{chars[]=HABCD",*p;

for(p=s+l;p<s+4;p++)printf(n%s\nH,p);

A.ABCDB.AC.BD.BCD

BCDBCCD

CDCDD

10L有定義:char*p[10];,則p是一個(D)。

A.函數名B.指針變量C.數組元素D.數組名

102.S12和s2已正確定義并分別指向兩個字符串。若要求:當si所指串大于s2所指串時,

執(zhí)行語句S;則以下選項中正確的是(D)。

A.if(sl>s2)S;B.if(strcmp(sl,s2))S;

C.if(strcmp(s2,s1)>0)S;D.if(strcmp(s1,s2)>0)S;

103.設有定義語句

intx[6]={2,4,6,8,5,7),*p=x,i;

要求依次輸出x數組6個元素中的值,不能完成此操作的語句是(D)o

A.for(i=0;i<6;i++)printf(n%2d",*(p++));

B.for(i=0;i<6;i++)printf(M%2dH,*(p+i));

C.for(i=0;i<6;i++)printf("%2d”,*p++);

D.for(i=0;i<6;i++)printf(,,%2d",(*p)++);

104.有以下的結構變量定義語句:

structstudent{intnum;charname[9];}stu;

則下列敘述中錯誤的是(B)。

A.結構類型名為studentB.結構類型名為stu

C.num是結構成員名D.struct是C的關鍵字

105.設變量定義如下,則對其中的結構分量num正確的引用是(A),

structstudent{

intnum;

charname[20];

floatscore;

}stud[10];

A.stud[l].num=10;B.student.stud.num=10;

C.struct.stud.num=10;D?structstudent.num=10;

106.對于以下的變量定義,語句(B)在語法和語義上都是正確的。

structnode{

floatx,y;

chars[10];

}point={1,2,''abc''},*p;

A.*p=point;B.p=&point;

C.point=p;D.p->x=point.y;

107.設變量定義如下,則表達式(D)是正確的。

structstudent{

intnum;

charname[20];

floatscore;

}stud[10];

A.stud[2]=stud[l]+3B.studfl]==stud[2]

C.stud[l]=stud[l]-stud[2]D.stud[l]=stud[2]

108.有以下的定義語句:

structstudent{intnum;charname[9];};

則不能正確定義結構數組并賦初始值的是(C)o

A.structstudentstu[2]={L"zhangsan",2,"lisi"};

B.structstudentstu[2]={{1,"zhangsan"},{2,“l(fā)isi"}};

C.structstu[2]={{1,"zhangsan"),{2,"lisi"}};

D.structstudentstu[]={{L"zhangsan”},{2,“l(fā)isi"}};

109.若有以下定義語句:

structdate{inty,m,d;};

structstudent

{intnum;charname[9];structdatebir;}stu,*p=&stu;

則以下對結構變量stu成員的引用錯誤的是(A)o

A.p->bir->yB.p->bir.yC.stu.bir.yD.

110.若結構體定義如下,則下面正確的項是(C)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論