华南俳烁实业有限公司

自考

各地資訊
當(dāng)前位置:華課網(wǎng)校 >> 自考 >> 模擬試題 >> 工學(xué)類 >> C語言程序設(shè)計(jì) >> 文章內(nèi)容

排行熱點(diǎn)

  • 歷年真題
  • 模擬試題
  • 自考自答

自學(xué)考試《C語言程序設(shè)計(jì)》練習(xí)題及答案_第7頁(yè)

來源:華課網(wǎng)校  [2017年1月31日]  【

  【2.51】下面程序的輸出結(jié)果是____。

  #include

  main( )

  { int a=1,*p,**pp;

  pp=&p;

  p=&a;

  a++;

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

  }

  A) 2,1,1 B) 2,1,2 C) 2,2,2 D) 程序有錯(cuò)誤

  【2.52】下面程序的輸出結(jié)果是____。

  main()

  { char *alpha[7]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX","YZ"};

  char **p;

  int i;

  p=alpha;

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

  printf("%c",*(p[i]));

  printf("\n");

  }

  A) AEIM B) BFJN C) ABCD D) DHLP

  【2.53】下面程序的輸出結(jié)果是____。

  #include

  char *pp[2][3]={ "abc", "defgh", "ijkl", "mnopqr", "stuvw", "xyz"};

  main ( )

  { printf("%c\n",***(pp+1)); /* ① */

  printf("%c\n",**pp[0]); /* ② */

  printf("%c\n",(*(*(pp+1)+1))[4]); /* ③ */

  printf("%c\n",*(pp[1][2]+2)); /* ④ */

  printf("%s\n",**(pp+1)); /* ⑤ */

  }

 、 A) a B) d C) i D) m

  ② A) a B) d C) i D) m

 、 A) h B) l C) q D) w

 、 A) k B) o C) u D) z

  ⑤ A) ijkl B) mnopqr C) stuvw D) xyz

  【2.54】下面程序的輸出結(jié)果是____。

  #include "stdio.h"

  struct str1

  { char c[5];

  char *s;

  };

  main( )

  { struct str1 s1[2]={ {"ABCD""EFGH"},{"IJK","LMN"} };

  struct str2

  { struct str1 sr;

  int d;

  }s2={"OPQ","RST",32767};

  struct str1 *p[2];

  p[0]=&s1[0];

  p[1]=&s1[1];

  printf("%s",++p[1]->s); /* ① */

  printf("%c",s2.sr.c[2]); /* ② */

  }

 、 A) LMN B) MN C) N D) IJK

 、 A) O B) P C) Q D) R

  【2.55】以下程序的輸出結(jié)果是____。

  struct st

  { int x,*y;

  }*p;

  int s[]={10,20,30,40};

  struct st a[]={1,&s[0],2,&s[1],3,&s[2],4,&s[3]};

  main()

  { p=a;

  printf("%d\n",++(*(++p)->y));

  }

  A) 10 B) 11 C) 20 D) 21

  【2.56】以下程序的輸出結(jié)果是____。

  #include

  main()

  { union EXAMPLE

  { struct

  { int x,y;

  }in;

  int a,b;

  }e;

  e.a=1;e.b=2;

  e.in.x=e.a*e.b;

  e.in.y=e.a+e.b;

  printf("%d,%d\n",e.in.x,e.in.y);

  }

  A) 2,3 B) 4,4 C) 4,8 D) 8,8

  【2.57】下面程序的輸出結(jié)果是____。

  #include

  main()

  { union

  { int i[2];

  long k;

  char c[4];

  }r,*s=&r;

  s->i[0]=0x39;

  s->i[1]=0x38;

  printf("%c\n",s->c[0]);

  }

  A) 39 B) 9 C) 38 D) 8

  【2.58】下面程序的輸出是 。

  main ( )

  { printf("%d\n", EOF);

  }

  A) -1 B) 0 C) 1 D) 程序是錯(cuò)誤的

  【閱讀程序題參考答案】

  【2.1】參考答案:D

  注釋:程序中除法運(yùn)算的兩個(gè)操作數(shù)均是整型,運(yùn)算結(jié)果也是整型。

  【2.2】參考答案:B

  注釋:C語言允許在程序塊(分程序)中說明變量。

  【2.3】參考答案:C

  注釋:變量i中的負(fù)號(hào)傳送給變量n后,因n是無符號(hào)數(shù),已不作為負(fù)號(hào)處理。

  【2.4】參考答案:D

  注釋:對(duì)變量x的――操作是后綴形式,變量x的減1操作要在執(zhí)行完 printf函數(shù)之后才進(jìn)行,所以變量x的值在輸出的時(shí)候仍然保持原值10。

  【2.5】參考答案:B

  注釋:C語言在執(zhí)行printf()時(shí),對(duì)函數(shù)中的表達(dá)式表列的處理順序是從后向前,即先處理n- -,再處理n++,最后處理n,而且每一個(gè)表達(dá)式作為一個(gè)處理單元,也就是說在不同的表達(dá)式中自增自減運(yùn)算是單獨(dú)考慮的。

  【2.6】參考答案:A

  注釋:變量x和變量y做按位與,結(jié)果為0x0200,右移4位為0x0020,再與0x005f做按位或,最后結(jié)果為0x007f。

  【2.7】參考答案:A

  注釋:逗號(hào)表達(dá)式的結(jié)果是用逗號(hào)分開的最后一個(gè)表達(dá)式的值,此題由于 c=='A'的值是0,所以逗號(hào)表達(dá)式的值為0。

  【2.8】參考答案: B

  【2.9】參考答案: A

  【2.10】參考答案: C

  注釋:在輸出格式描述"%m.ns"中,m是輸出總長(zhǎng)度,n是實(shí)際字符的個(gè)數(shù),這里m沒有給出,則輸出總長(zhǎng)度就是實(shí)際輸出字符的個(gè)數(shù)。

  【2.11】參考答案: C

  【2.12】參考答案:B

  【2.13】參考答案:C

  【2.14】參考答案:B

  【2.15】參考答案:D

  【2.16】參考答案:A

  【2.17】參考答案: C

  【2.18】參考答案:A

  【2.19】參考答案: C

  注釋:在switch語句中,case本身僅起到語句標(biāo)號(hào)的作用,不會(huì)改變語句的流程,執(zhí)行break語句才能退出當(dāng)前的switch語句。

  【2.20】參考答案: D

  注釋:siwtch語句的表達(dá)式中,變量c是后綴的增一運(yùn)算,第一次執(zhí)行do-while循環(huán)時(shí),執(zhí)行case 'A'后面的語句。

  【2.21】參考答案: D

  【2.22】參考答案: B

  【2.23】參考答案: B

  注釋:fabs()是浮點(diǎn)數(shù)絕對(duì)值函數(shù)。

  【2.24】參考答案: A

  【2.25】參考答案: C

  注釋:C語言允許在程序塊(分程序)內(nèi)說明變量,如果在程序塊內(nèi)說明的變量和程序塊外的變量同名,在塊外說明的變量在塊內(nèi)是不可見的?蓪⒋祟}和【2.11】進(jìn)行比較,加深理解。

  【2.26】參考答案: C

  【2.27】參考答案: B

  【2.28】參考答案: ① D ② A

  【2.29】參考答案:D

  【2.30】參考答案: B

  注釋:輸出結(jié)果為字符串長(zhǎng)度。

  【2.31】參考答案: D

  注釋:字符串拷貝函數(shù)strcpy()要求的兩個(gè)參數(shù)都是字符串首地址。本題中第二個(gè)參數(shù)是字符串常量,接受這個(gè)字符串的第一個(gè)參量不是直接給出字符數(shù)組名,而是進(jìn)行了地址運(yùn)算后的結(jié)果。由于str字符串的長(zhǎng)度是13,除2取整后是6,第一個(gè)參數(shù)給出的地址是字符數(shù)組str的首地址加6,也就是原來字符串中第二個(gè)空格的位置,把"es she"從該處放入,字符串str變?yōu)?How does she"。

  【2.32】參考答案: C

  注釋:main函數(shù)調(diào)用func函數(shù)時(shí),第一個(gè)實(shí)參使用的是逗號(hào)表達(dá)式的值,也就是x+y的結(jié)果。由于對(duì)變量x、y、z進(jìn)行的是后綴運(yùn)算,所以函數(shù)func的參數(shù)值是13和8。

  【2.33】參考答案: C

  【2.34】參考答案: ① C ② A ③ C

  【2.35】參考答案: C

  【2.36】參考答案: B

  注釋:函數(shù)fun進(jìn)行了遞歸調(diào)用,實(shí)際進(jìn)行的運(yùn)算是5×4×3×2×1×3×10。主函數(shù)內(nèi)說明的局部變量w屏蔽了外部變量w,所以在主函數(shù)中外部變量w是不可見的,在調(diào)用printf函數(shù)時(shí)表達(dá)式"fun(5)*w"中w的值是10。

  【2.37】參考答案: D

  注釋:main函數(shù)三次調(diào)用了函數(shù)funa,在funa函數(shù)中的靜態(tài)變量c僅在第一次調(diào)用時(shí)進(jìn)行了初始化,再次調(diào)用時(shí)不再對(duì)靜態(tài)變量賦初值。

  【2.38】參考答案: B

  注釋:main函數(shù)和num函數(shù)中都說明了變量a和b,由于它們是內(nèi)部變量,所以它們分別在說明它們的函數(shù)內(nèi)有效。外部變量x和y在函數(shù)num之后被說明,而在num函數(shù)中又要引用它們,所以在num函數(shù)中用關(guān)鍵字"extern"說明變量x和y是一個(gè)外部變量,也就是通知計(jì)算機(jī)這兩個(gè)變量在fun函數(shù)以外被說明,此處不是定義兩個(gè)int型變量。

  【2.39】參考答案: D

  注釋:函數(shù)f中的變量c是靜態(tài)變量,僅在第一次調(diào)用函數(shù)f時(shí)它被初始化為3,第二次調(diào)用函數(shù)f時(shí)c的值是4,第三次調(diào)用函數(shù)f時(shí)c的值是5。

  【2.40】參考答案: D

  【2.41】參考答案: D

  注釋:程序中有三個(gè)"x"分別在三個(gè)不同的函數(shù)中,這三個(gè)"x"都是自動(dòng)變量,所以三個(gè)"x"分別局部于三不同的函數(shù),在三個(gè)函數(shù)中對(duì)"x"的操作互不影響。

  【2.42】參考答案: A

  【2.43】參考答案: A

  注釋:*(++p)和*++p都是指針變量值前加1,第一次指向a[1],第二次指向a[2];a+3是a[3]的地址。

  【2.44】參考答案: C

  注釋:②句沒有語法錯(cuò)誤,但是a+6指向數(shù)組之外,因?yàn)閍是a[0]的地址,a+1是a[1]的地址,a+2是a[2]的地址,顯然數(shù)組a沒有a[6]分量。③句錯(cuò)誤,因?yàn)閍[1]是地址常量,它是a[1][0]的地址,對(duì)于地址常量是不可以進(jìn)行賦值運(yùn)算的。

  【2.45】參考答案: ① D ② A

  注釋:如果FMT定義為"%x\n",則輸出的16進(jìn)制數(shù)據(jù)用小寫字母表示。

  【2.46】參考答案: A

  注釋:語句"p=&a[0]"表示將數(shù)組a中元素a[0]的地址賦給指針變量p,則p就是指向數(shù)組首元素a[0]的指針變量,"&a[0]"是取數(shù)組首元素的地址。對(duì)于指向數(shù)組首址的指針,p+i(或a+i)是數(shù)組元素a[i]的地址,*(p+i)(或*(a+i))就是a[i]的值。

  【2.47】參考答案: B

  【2.48】參考答案: D

  【2.49】參考答案: D

  【2.50】參考答案: A

  注釋:變量g是指向函數(shù)的指針,(*g)(a,b)是調(diào)用指針g所指向的函數(shù)。

  【2.51】參考答案: C

  注釋:p是指針,pp是指向指針的指針。

  【2.52】參考答案: A

  注釋:對(duì)于指向數(shù)組的指針變量可以做下標(biāo)運(yùn)算,p[i]和alpha[i]都是指向字符串的首地址,*p[i]取出字符串的第一個(gè)字符。

  【2.53】參考答案: ① D ② A ③ D ④ D ⑤ B

  注釋:pp是一個(gè)二維指針數(shù)組,pp+1指向數(shù)組的第二維,*(pp+1)是第二維的起始地址,**(pp+1)是第二維第一個(gè)元素的地址,***(pp+1)是第二維第一個(gè)元素的內(nèi)容,所以,①的參考答案應(yīng)選D。*(pp+1)+1是第二維第二個(gè)元素的地址,*(*(pp+1)+1)是第二維第二個(gè)元素,(*(*(pp+1)+1))[4]則是第二維第二個(gè)元素所指字符串下標(biāo)為4的元素,即是字符w,故③應(yīng)當(dāng)選D。

  【2.54】參考答案: ① B ② C

  【2.55】參考答案:D

  【2.56】參考答案:C

  注釋:聯(lián)合體成員的取值是最后一次給成員賦的值。

  【2.57】參考答案: B

  注釋:整型數(shù)組i和字符數(shù)組c共用存儲(chǔ)空間,給i賦值也等于給c賦值,所以s->c[0]=0x39,所以輸出9。

  【2.58】參考答案:A

  注釋:基本概念。EOF是由C語言在頭文件stdio.h中定義的,用戶可以直接使用。

首頁(yè) 1 2 3 4 5 6 7 尾頁(yè)
責(zé)編:zhangjing0102
蓬溪县| 麦盖提县| 昆明市| 永和县| SHOW| 威宁| 明溪县| 五常市| 青川县| 上栗县| 郎溪县| 达日县| 永嘉县| 巫溪县| 皮山县| 庄河市| 雅江县| 哈巴河县| 来凤县| 香格里拉县| 灵山县| 双辽市| 丰镇市| 嫩江县| 五台县| 东乡县| 昆明市| 浪卡子县| 孝感市| 桐柏县| 涞水县| 于田县| 德昌县| 乌兰浩特市| 沧源| 栾川县| 紫阳县| 金华市| 饶河县| 吉安市| 宝坻区|