久久99热66热这里只有精品,特黄特色的大片在线观看,亚洲日本三级在线观看,国产三级农村妇女在线,亚洲av毛片免费在线观看,哺乳叫自慰在线看,天天干美女av网

c語言筆試題目及答案

時(shí)間:2024-09-13 23:27:00 學(xué)人智庫 我要投稿

c語言筆試題目及答案

  C語言是一門通用計(jì)算機(jī)編程語言,應(yīng)用廣泛。C語言的設(shè)計(jì)目標(biāo)是提供一種能以簡易的方式編譯、處理低級(jí)存儲(chǔ)器、產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語言。下面是c語言筆試題目及答案,請參考。

c語言筆試題目及答案

  c語言筆試題目及答案

  一、選擇題((1)~(10)每小題2分,(11)~(50)每小題1分,共60分)

  下列各題A)、B)、C)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的,請將正確的選

  項(xiàng)涂寫在答題卡相應(yīng)位置上,答在試卷上不得分。

  (1)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指________。

  A)存儲(chǔ)在外存中的數(shù)據(jù) B)數(shù)據(jù)所占的存儲(chǔ)空間量

  C)數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式 D)數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示

  答案:D

  評(píng)析:數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式形式稱為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)(也稱數(shù)據(jù)的物理結(jié)構(gòu))。

  (2)下列關(guān)于棧的描述中錯(cuò)誤的是________。

  A)棧是先進(jìn)后出的線性表

  B)棧只能順序存儲(chǔ)

  C)棧具有記憶作用

  D)對棧的插入與刪除操作中,不需要改變棧底指針

  答案:B

  評(píng)析:棧是一種特殊的線性表,又稱先進(jìn)后出表(FILO—First In Last Out)。

  (3)對于長度為n的線性表,在最壞情況下,下列各排序法所對應(yīng)的比較次數(shù)中正確的是

  ________。

  A)冒泡排序?yàn)閚2 B)冒泡排序?yàn)閚

  C)快速排序?yàn)閚 D)快速排序?yàn)閚(n一1)/2

  答案:D

  評(píng)析:假設(shè)線性表的長度為n,則在最壞情況下,冒泡排序需要經(jīng)過n/2遍的從前往后掃描和n/2遍的從后往前掃描,需要比較次數(shù)為n(n-1)/2?焖倥判蚍ǖ淖顗那闆r比較次數(shù)也是n(n-1)/2。

  (4)對長度為n的線性表進(jìn)行順序查找,在最壞情況下所需要的比較次數(shù)為________。

  A)log2n B)n/2 C)n D)n+l

  答案:C

  評(píng)析:順序查找過程中,如果被查找的元素是線性表中的最后一個(gè)元素,或者元素不在線性表中,則需要與線性表中所有的元素進(jìn)行比較。對長度為n的線性表進(jìn)行順序查找,在最壞情況下需要比較n次。

  (5)下列對于線性鏈表的描述中正確的是________。

  A)存儲(chǔ)空間不一定是連續(xù),且各元素的存儲(chǔ)順序是任意的

  B)存儲(chǔ)空間不一定是連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面

  C)存儲(chǔ)空間必須連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面

  D)存儲(chǔ)空間必須連續(xù),且各元素的存儲(chǔ)順序是任意的

  答案:A

  評(píng)析:在鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)空間可以不連續(xù),各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致,而數(shù)據(jù)元素之間的邏輯關(guān)系是由指針域來確定的。

  (6)下列對于軟件測試的描述中正確的是________。

  A)軟件測試的目的是證明程序是否正確

  B)軟件測試的目的是使程序運(yùn)行結(jié)果正確

  C)軟件測試的目的是盡可能多地發(fā)現(xiàn)程序中的'錯(cuò)誤

  D)軟件測試的目的是使程序符合結(jié)構(gòu)化原則

  答案:C

  評(píng)析:關(guān)于軟件測試的目的,Grenford J.Myers再《The Art of Software Testing》一書中給出了深刻的闡述,整體來說,軟件測試的目的就是盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤。

  (7)為了使模塊盡可能獨(dú)立,要求________。

  A)模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強(qiáng)

  B)模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱

  C)模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱

  D)模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強(qiáng)

  答案:B

  評(píng)析:模塊獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚,低耦合,有利于提高模塊的獨(dú)立性。

  (8)下列描述中正確的是________。

  A)程序就是軟件

  B)軟件開發(fā)不受計(jì)算機(jī)系統(tǒng)的限制

  C)軟件既是邏輯實(shí)體,又是物理實(shí)體

  D)軟件是程序、數(shù)據(jù)與相關(guān)文檔的集合

  答案:D

  評(píng)析:計(jì)算機(jī)軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。

  (9)數(shù)據(jù)獨(dú)立性是數(shù)據(jù)庫技術(shù)的重要特點(diǎn)之一,所謂數(shù)據(jù)獨(dú)立性是指________。

  A)數(shù)據(jù)與程序獨(dú)立存放

  B)不同的數(shù)據(jù)被存放在不同的文件中

  C)不同的數(shù)據(jù)只能被對應(yīng)的應(yīng)用程序所使用

  D)以上三種說法都不對

  答案:D

  評(píng)析:數(shù)據(jù)獨(dú)立性是數(shù)據(jù)與程序間的互不依賴性,即數(shù)據(jù)庫中數(shù)據(jù)獨(dú)立于應(yīng)用程序而不依賴于應(yīng)用程序。也就是說,數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)與存取方式的改變不會(huì)影響應(yīng)用程序。選項(xiàng)A、B、C三種說法都是錯(cuò)誤的。

  (10)用樹形結(jié)構(gòu)表示實(shí)體之間聯(lián)系的模型是________。

  A)關(guān)系模型 B)網(wǎng)狀模型 C)層次模型 D)以上三個(gè)都是

  答案:C

  評(píng)析:層次模型是最早發(fā)展起來的數(shù)據(jù)庫模型,它的基本結(jié)構(gòu)是樹形結(jié)構(gòu)。

  (11)算法具有五個(gè)特性,以下選項(xiàng)中不屬于算法特性的是________。

  A)有窮性 B)簡潔性 C)可行性 D)確定性

  答案:B

  評(píng)析:有窮性、確定性、有零個(gè)或多個(gè)輸入、有一個(gè)或多個(gè)輸出、有效性是算法的基本特性。

  (12)以下選項(xiàng)中可作為C語言合法常量的是________。

  A)-80. B)-080 C)-8e1.0 D)-80.0e

  答案:A

  評(píng)析:c語言的常量分為整型常量、實(shí)型常量和字符型常量。選項(xiàng)A屬于實(shí)型常量中的十進(jìn)制小數(shù)形式的表示法,是合法的。

  (13)以下敘述中正確的是________。

  A)用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作

  B)用C程序?qū)崿F(xiàn)的算法可以沒有輸出但必須要輸入

  C)用C程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出

  D)用C程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出

  答案:C

  評(píng)析:算法的特性中包括“有零個(gè)或多個(gè)輸入”及“有一個(gè)或多個(gè)輸出”這兩個(gè)特性。一個(gè)算法得到的結(jié)果就是算法的輸出,沒有輸出的算法是沒有意義的,所以一個(gè)算法必須至少有一個(gè)輸出。

  (14)以下不能定義為用戶標(biāo)識(shí)符的是________。

  A)Main B)_0 C)_int D)sizeof

  答案:D

  評(píng)析:C語言規(guī)定標(biāo)識(shí)符只能由字母、數(shù)字和下劃線三種符號(hào)組成,而且第一個(gè)字符必須是字母或下劃線。注意:大寫字母和小寫字母被認(rèn)為是兩個(gè)不同的字符。A中Main與主i函數(shù)名main不同。

  (15)以下選項(xiàng)中不能作為合法常量的是________。

  A)1.234e04 B)1.234e0.4 C)1.234e+4 D)1.234e0

  答案:B

  評(píng)析:指數(shù)形式的實(shí)型常量要求字每e(或E)之前必需有數(shù)字,且e后面的指數(shù)必須為整數(shù),所以本題中選項(xiàng)B非法。

  (16)數(shù)字字符0的ASCII值為48,若有以下程序

  main()

  {char a=”1″,b=”2″;

  printf(“%c,”,b++);

  printf(“%d ”,b-a);

  )

  程序運(yùn)行后的輸出結(jié)果是________。

  A) 3,2 B)50,2 C)2,2 D)2,50

  答案:C

  評(píng)析l執(zhí)行語句“printf(“%c,ll,b++);”后,b的值變成字符3,執(zhí)行“printf(“%d ”,b-a);”,即‘3’-‘1’。

  (17)有以下程序

  main( )

  {

  int m=12, n=34;

  printf(“%d%d”,m++,++n);

  printf(“%d%d ”,n++,++m);

  }

  程序運(yùn)行后的輸出結(jié)果是________。

  A)12353514 B)12353513 C)12343514 D)12343513

  答案:A

  評(píng)析:執(zhí)行“printf(“%d%d”m++,++n);”后,輸出的是m和n+l的值1235,接著執(zhí)行

  “printf(“%d%d\n”,n++,++m);”輸出n和m+l的值3514。

  (18)有定義語句:int b;char c[10】;,則正確的輸入語句是________。

  A) scanf("%d%s",&b,&C); B) scanf("%d%s",&b,C);

  C) scanf("%d%s",b,C); D) scanf("%d%s",b,&C);

  答案:B

  評(píng)析:scanf函數(shù)中的“格式控制”后面應(yīng)當(dāng)是地址,而不是變量名。對于變量,通過地址運(yùn)算符“&”求出內(nèi)存中的地址;對于數(shù)組c[10],數(shù)組名c即為數(shù)組在內(nèi)存中的地址。

  (19)有以下程序

  main()

  {int m,n,p;

  scanf(“m=%dn=%dp=%d”,&m,&n,&p);

  printf(“%d%d%d\n”,m,n,p);

  }

  若想從鍵盤上輸入數(shù)據(jù),使變量m中的值為123,n中的值為456,p中的值為789,

  則正確的輸入是________。

  A) m。123n=456p=789 B) m=123 n=456 p=789

  C) m=123,n=456,p=789 D) 123 456 789

  答案:A

  評(píng)析:根據(jù)本題的數(shù)據(jù)輸入形式“scanf(“m=%dn=%dp=%d”&m,&n,&p);”說明在輸入數(shù)據(jù)時(shí),必須輸入“m=”、“n=”、“p=”字符,且中間不能含有空格。

  (20)有以下程序

  main()

  { int a,b,d=25;

  a=d/10%9;

  b=a&&(-1);

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

  }

  程序運(yùn)行后的輸出結(jié)果是________。

  A)6,l B)2,l C)6,0 D)2,0

  答案:B

  評(píng)析:本題中“a=d/10%9;”的值為25/10%9=2; “b=a&&(-1);”為2&&(-1)=1(注意:-1表示真,只有O才表示假),所以a,b的值分別為2,1。

  (21)有以下程序

  main()

  {

  int i=1 j=2,k=3;

  if(i++==1&&(++j==3||k++==3))

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

  }

  程序運(yùn)行后的輸出結(jié)果是________。

  A)l 2 3 B)2 34 C) 2 2 3. D)2 3 3

  答案:D

  評(píng)析:執(zhí)行“i++==1&&(++j==3‖k++==3)”時(shí),表達(dá)式“i++==1”嗨值為真,其值為1,表達(dá)式“++j=3”的值為真,根據(jù)短路原理,右邊的表達(dá)式“k++==3”不再進(jìn)行運(yùn)算。括號(hào)中表達(dá)的值為l,作與運(yùn)算后整個(gè)表達(dá)式的值也為l,輸出i.j,k時(shí),由于未執(zhí)行過k,所以它們的值分別為2,3,3。

  (22)若整型變量a、b、c、d中的值依次為:1、4、3、2。則條件表達(dá)式a<b?a:c<d?c:d的值是________。

  A)l B)2 C)3 D)4

  答案:A

  評(píng)析:條件表達(dá)式的一般形式為:表達(dá)式17表達(dá)式2:表達(dá)式3

  本題先求的是a<b的值,為真,所以整個(gè)表達(dá)式“a<b?a:c<d?c:d”的值為a的值1。

  (23)有以下程序

  main( )

  {

  int p[8]={11,12,13,14,15,16,17,18},i=O,j=0;

  while(i++<7)if p[i]%2)j+-=p[i];

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

  }

  程序運(yùn)行后的輸出結(jié)果是________。

  A)42 B)45 C)56 D)60

  答案:B

  評(píng)析:本程序的作用是求除p[O]外的其它奇數(shù)的和。

  (24)有以下程序

  main()

  {

  char a[7]= “a0\OaO\0”; int i,j;

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

  printf(“%d%d\n”,i,j);

  )

  程序運(yùn)行后的輸出結(jié)果是________。

  A)2 2 B)76 C)7 2 D)6 2

  答案:C

  評(píng)析:c語言中以‘\0’作為字符串的結(jié)束符,且strlen()函數(shù)計(jì)算的是‘\0’字符前的所有字符的個(gè)數(shù)。數(shù)組定義以后系統(tǒng)就為其分配相應(yīng)大小的內(nèi)存空間,而不論其中有沒有內(nèi)容。

  (25)以下能正確定義一維數(shù)組的選項(xiàng)是________。

  A)int a[5]={0,1,2,3,4,5; B)char a[]={0,1,2,3,4,5};

  C)char a={’A’,’B’,’C’}; D)int a[5]=”0123″;

  答案:B

  評(píng)析:選項(xiàng)A中定義的是5個(gè)數(shù)組元素,但賦值的時(shí)候賦的是6個(gè)元素,所以出錯(cuò);選項(xiàng)c不符合數(shù)組定義形式,數(shù)組名后應(yīng)加上“[]”;選項(xiàng)D的類型說明符錯(cuò)誤,如果用char定義就對了;選項(xiàng)B中的0,1,2,3,4,5分別表示對應(yīng)字符的ASCII碼,所以選項(xiàng)B是正確的。

  (26)有以下程序

  int fl(int x,int y){return x>y?x:y;}

  int f2(int x,int y){return x>y?y:x;}

  main()

  {

  int a=4,b=3,c=5,d=2,e,f,g;

  e=f2(f1(a,b),f1(c,d));f=fl(f2(a,b),f2(c,d));

  g=a+b+c+d-e-f;

  printf(“%d,%d,%d\n”,e,f,g);

  )

  程序運(yùn)行后的輸出結(jié)果是________。

  A)4,3,7 B)3,4,7 C)5,2,7 D)2,5,7

  答案:A

  評(píng)析:函數(shù)n的功能是返回兩個(gè)數(shù)中比較大的值,f2的功能是返回兩個(gè)數(shù)中比較小的值。

  (27)已有定義:char a[]=”xyz”,b[]={’x’,’y’,’z};,以下敘述中正確的是________。

  A)數(shù)組a和b的長度相同 B)a數(shù)組長度小于b數(shù)組長度

  C)a數(shù)組長度大于b數(shù)組長度 D)上述說法都不對

  答案:C

  評(píng)析:c語言規(guī)定‘\0’為字符串結(jié)束標(biāo)志。所以“char a[]=“xyz””的數(shù)組長度為4,而“b[]={‘x’,‘y’,‘z’};”的數(shù)組長度為3,數(shù)組長度與strlen函數(shù)所求的長度不同,本題是指數(shù)組占內(nèi)存空間的大小。

  (28)有以下程序

  Void f(int *x, int *y)

  {

  int t;

  t= *x; *x=*y;’*y=t;

  )

  main( )

  {

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

  p=a;q=&a[7];

  while(p<q)

  {f(p,q); p++; q–;} 。

  for(i=0;i<3;i++) printf(“%d”,a[1][i]);

  }

  程序運(yùn)行后的輸出結(jié)果是________。

  A)8,2,3,4,5,6,7,1, B)5,6,7,8,1,2,3,4.

  C)1,2,3,4,5,6,7,8, D)8,7,6,5,4,3,2,l,

  答案:D

  評(píng)析;本程序中函數(shù)f的作用是交換指針變量x和y所指向的存儲(chǔ)單元的值。

  (29)有以下程序

  main()

  {

  im a[3][3],*p,i;

  p=&a[0][o];

  for(i=0;j<9;i++) p[i]=I;

  for(i=0;j<3;i++)printf(“%d”,a[1][i]);

  )

  程序運(yùn)行后的輸出結(jié)果是________。

  A)012 B)123 C)234 D)345

  答案:D

  評(píng)析:本題賦值后,a的數(shù)組元素的值分別為a[01[0]=0,a[0][1]=1,a[0][2]=2,a[1][0]=3,a[1][1]=4,a[1][2]=5,a[2][0]=6,a[2][1]=7,a[2][2]=8,故本題輸出的值為345。

  (30)以下敘述中錯(cuò)誤的是________。

  A)對于double類型數(shù)組,不可以直接用數(shù)組名對數(shù)組進(jìn)行整體輸入或輸出

  B)數(shù)組名代表的是數(shù)組所占存儲(chǔ)區(qū)的首地址,其值不可改變

  C)當(dāng)程序執(zhí)行中,數(shù)組元素的下標(biāo)超出所定義的下標(biāo)范圍時(shí),系統(tǒng)將給出“下標(biāo)越

  界”的出錯(cuò)信息

  D)可以通過賦初值的方式確定數(shù)組元素的個(gè)數(shù)

  答案:C

  評(píng)析:在c語言中,如果出現(xiàn)下標(biāo)越界的情況,系統(tǒng)不管在編譯還是執(zhí)行時(shí)都不會(huì)給出“下標(biāo)越界”的錯(cuò)誤提示。

  (31)有以下程序

  #define N20

  fun(int a[],int n,int m)

  { int i,j;

  for(i=m;i>=n;i–)a[i+1]=a[i];

  }

  main()

  {

  int i,a[N]={1,2,3,4,5,6,7,8,9,10};

  fun(a,2,9);

  for(i=O;i<5;i++) printf(“%d”,a[i]);

  }

  程序運(yùn)行后的輸出結(jié)果是________。

  A)10234 B)12344 C)12334 D)12234

  答案:C

  評(píng)析:本題函數(shù)fun的作用是將指定的數(shù)組元素(從下標(biāo)n到下標(biāo)m)向后移一位。由函數(shù)調(diào)用“fun(a,2,9);”可知,函數(shù)fun用于將a[2]到a[9]的各元素依次向后移一位,移完后,a數(shù)組中各元素的值分別為1,2,3,3,4,5,6,7,8,9,10,故輸出的前5個(gè)數(shù)組元素為12334。

  (32)有以下程序

  main()

  {

  int a[3][2]={0},(*ptr)[2],i,j;

  for(i=0;i<2;i++) {ptr=a+i; scanf(“%d”,ptr); ptr++;}

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

  { for(i=0;j<2;j++) printf(“%2d”,a[i][j]);

  printf(“\n”);

  }

  }

  若運(yùn)行時(shí)輸入:1 2 3<回車>,則輸出結(jié)果是________。

  A)產(chǎn)生錯(cuò)誤信息

  B)l0 C)l 2 D)l 0

  2 O 3 0 2 0

  0 0 0 O 3 0

  答案:B

  評(píng)析:二維數(shù)組a,通過a[3][2]={0}將數(shù)組中的各個(gè)元素初始化為0,指針變量ptr,指向包含2個(gè)元素的一維數(shù)組。a[0][0]:l,a[1][0]=2,故本題的輸出選B。

  (33)有以下程序

  prt(int *m, int n)

  { int i;

  for(i=O;i<n;i++) m[i]++;

  )

  main()

  {

  int a[]={ 1,2,3,4,5 },i;

  prt(a,5);

  for(i=O;i<5;i++)

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

  程序運(yùn)行后的輸出結(jié)果是________。

  A)l,2,3,4,5, B)2,3,4,5,6, C)3,4,5,6,7, D)2,3,4,5,1,

  答案:B

  評(píng)析:用數(shù)組名作函數(shù)實(shí)參時(shí),不是把數(shù)組的值傳遞給形參,而是把實(shí)參數(shù)組的起始地址傳遞給形參數(shù)組,這樣兩個(gè)數(shù)組就共同占用同一段內(nèi)存單元。

  (34)有以下程序

  main()

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

  for(p=a;p<a+10;p++)printf(“%d,”,*p);

  }

  程序運(yùn)行后的輸出結(jié)果是________。

  A)l,2,3,4,5,6,7,8,9,0, B)2,3,4,5,6,7,8,9,10,1,

  C)0,1,2,3,4,5,6,7,8,9, D)l,l,1,l,l,l,l,l,l,l,

  答案:A

  評(píng)析:c語言規(guī)定數(shù)組變量名代表數(shù)組的首地址,即第0號(hào)元素的地址。本題將a數(shù)組中的值全部輸出,即為l,2,3,4,5,6,7,8,9,0,。

  (35)有以下程序

  #define P 3

  void F(int x){return(P*x*x);}

  main()

  {printf(“%d\n”,F(3+5));}

  程序運(yùn)行后的輸出結(jié)果是________。

  A)192 B)29 C)25 D)編譯出錯(cuò)

  答案:D

  評(píng)析:return語句用于從被調(diào)函數(shù)帶回一個(gè)函數(shù)值。void關(guān)鍵字表示“無類型”,即不需要從被調(diào)函數(shù)中帶回函數(shù)值,所以不需要return語句,故編譯時(shí)出錯(cuò)。

  (36)有以下程序

  main()

  {int c=35;printf(“%d\n”,c&C);}

  程序運(yùn)行后的輸出結(jié)果是________。

  A)0 B)70 C)35 D)1

  答案:C

  評(píng)析:按位“與”時(shí),1&1=1,其他都等O。因?yàn)楸绢}中相與的兩個(gè)值相等,即對應(yīng)位上的二進(jìn)制值相等,所以“與”的結(jié)果也即為其值本身。

  (37)以下敘述中正確的是________。

  A)預(yù)處理命令行必須位于源文件的開頭

  B)在源文件的一行上可以有多條預(yù)處理命令

  C)宏名必須用大寫字母表示

  D)宏替換不占用程序的運(yùn)行時(shí)間

  答案:D

  評(píng)析:通常,預(yù)處理命令位于源文件的開頭,也可以寫在函數(shù)與函數(shù)之間;不能在一行上寫多條預(yù)處理命令:宏名一般習(xí)慣用大寫字母表示,以便與變量名相區(qū)別,但這并非規(guī)定,也可用小寫字母。

  (38)若有以下說明和定義

  union dt

  {int a;har b;ouble c;}data;

  以下敘述中錯(cuò)誤的是________。

  A)data的每個(gè)成員起始地址都相同

  B)變量data所占的內(nèi)存字節(jié)數(shù)與成員c所占字節(jié)數(shù)相等

  C)程序段:data.a(chǎn)=5;pintf(“%f ”,data.C);輸出結(jié)果為5.000000

  D)data可以作為函數(shù)的實(shí)參

  答案:C

  評(píng)析:union是表示共用體的關(guān)鍵字,成員a,b,c共占用同一個(gè)內(nèi)存空間,data的每個(gè)成員起始地址都相同;共用體變量所占的內(nèi)存長度等于最長的成員的長度,故變量’data所占的內(nèi)存字節(jié)數(shù)與成員c所占字節(jié)數(shù)相等;執(zhí)行“data.a(chǎn)=5;printf(“%f ”,data.C);”printf函數(shù)只是將內(nèi)存中的數(shù)據(jù)以不同的類型輸出,而不能將內(nèi)存中的整型數(shù)據(jù)自動(dòng)轉(zhuǎn)換為等值的浮點(diǎn)數(shù),故C是錯(cuò)誤的。

  (39)以下語句或語句組中,能正確進(jìn)行字符串賦值的是________。

  A)char*sp;*sp=”right!”; B)char s[lO];s=”right! “;

  C)char s[10];*s=”right! “; D)char*sp=”right! “;

  答案:D

  評(píng)析:選項(xiàng)A定義了字符型的指針變量sp,則*sp存儲(chǔ)的是第一個(gè)字符,而給它賦的是字符串,故錯(cuò);

  選項(xiàng)B表示代表數(shù)組的首地址,而題中給它賦的是字符串,所以錯(cuò)誤;

  選項(xiàng)c定義了一個(gè)字符型的數(shù)組s[10],再通過+s給數(shù)組元素賦初值,這時(shí)是與選項(xiàng)A相同的錯(cuò)誤。

  (40)設(shè)有如下說明

  typedef struct ST

  {long a; int b; char c[2];}NEW;

  則下面敘述中正確的是________。

  A)以上的說明形式非法 B)ST是一個(gè)結(jié)構(gòu)體類型

  C)NEW是一個(gè)結(jié)構(gòu)體類型 D)NEW是一個(gè)結(jié)構(gòu)體變量

  答案:C

  評(píng)析:typedef關(guān)鍵字用于聲明一個(gè)新的類型名代替已有的類型名。

  本題中如果沒有用typedef進(jìn)行定義的話,則struct ST為結(jié)構(gòu)體類型,現(xiàn)在用typedef定義后,相當(dāng)于用NEW代表了struct ST這一結(jié)構(gòu)體類型,故NEW為結(jié)構(gòu)體類型。

  (41)有以下程序

  main()

  { int a=1,b;

  for(b=l;b<10;b++)

  { if(a>=8)break;

  if(a%2==1){a+=5;continue;}

  a-=3;

  )

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

  }

  程序運(yùn)行后的輸出結(jié)果是________。

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

  答案:B

  評(píng)析:break和continue的區(qū)別是:continue語句只結(jié)束本次循環(huán),而不是終止整個(gè)循環(huán)的執(zhí)行;而break語句則是結(jié)束整個(gè)循環(huán)過程,.不再判斷執(zhí)行的條件是否成立。

  (42)有以下程序

  main()

  { char s[]=”l 59″,*p;

  p=s;

  printf(“%c”,*p++);printf(“%c”,*p++);

  }

  程序運(yùn)行后的輸出結(jié)果是________。

  A)15 B)16 C)12 D)59

  答案:A

  評(píng)析:本題通過“p=s”將指針變量p指向字符數(shù)組s,在第一次輸出時(shí),由于++和*為同一優(yōu)先級(jí),“*p++”相于“+(p++)”。p指向s[1],輸出為s[1]的值。

[c語言筆試題目及答案]

【c語言筆試題目及答案】相關(guān)文章:

C語言筆試題目及答案08-12

文秘筆試題目及答案07-20

騰訊筆試題目及答案06-21

文秘筆試題目及答案(3)11-01

工廠筆試題目和答案07-09

公司文員筆試題目及答案04-24

軟件測試筆試題目及答案08-18

小升初面試筆試題目及答案05-29

事業(yè)單位筆試題目及答案10-26

富士康筆試題目及答案精選07-24