網(wǎng)站首頁(yè)
分類導(dǎo)航
試題中心
下載中心
英語(yǔ)學(xué)習(xí)
繽紛校園
考試論壇
網(wǎng)站留言
客服中心
 二級(jí)C語(yǔ)言典型題解析
【字體:
二級(jí)C語(yǔ)言典型題解析
http://m.1glr.cn 來(lái)源:考試吧(Exam8.com) 點(diǎn)擊: 更新:2004-9-8

2004年4月二級(jí)C語(yǔ)言選擇題


(46)有以下程序

       void f(int a[], int i, int j)

       {  int  t;

          if(i<j)

          {  t=a[i];   a[i]=a[j];   a[j]=t;

             f(a,i+1,j-1);

          }

       }

       main()

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

          f(aa,0,4);

          for(i=0; i<5; i++) printf("%d,",aa[i]);printf("\n");

       }

       執(zhí)行后輸出結(jié)果是

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

答案:A
解析:f(aa,0,4)調(diào)用是地址雙向傳遞.i=0,j=4,交換aa=[0]、aa[4]的值使aa[5]={5,4,3,2,1};接著遞歸調(diào)用f(a,i+1,j-1)即f(a,1,3),交換aa[1]、aa=[3]的值使aa[5]={5,4,3,2,1};接著遞歸調(diào)用f(a,i+1,j-1)即f(a,2,2),由于i=j=2,退出函數(shù)調(diào)用,依次輸出aa[5]的數(shù)組元素為"5,4,3,2,1,"

(47)有以下程序

       struct STU

       {  char  name[10];

          int   num;

          int  Score;

       };

       main()

       {  struct STU   s[5]={{"YangSan", 20041, 703},{"LiSiGuo", 20042, 580},

                             {"WangYin", 20043, 680},{"SunDan", 20044, 550},

                             {"Penghua", 20045, 537}},    *p[5], *t;

          int   i,j;

          for(i=0; i<5; i++)  p[i]=&s[i];

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

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

             if(p[i]->Score > p[j]->Score)

             { t=p[i]; p[i]=p[j]; p[j]=t;}

          printf("%d  %d\n", s[1].Score, p[1]->Score);

       }

       執(zhí)行后輸出結(jié)果是

A)550  550   B)680  680   C)580  550   D)580  680

答案:C
解析:本題算法類似于"冒泡排序",它是依次將p[0]、p[1]、p[2]、p[3]、p[4]分別指向s[5]中成員Score從低到高排列的數(shù)組單元,即537、550、580、680、703,而s[5]數(shù)組的值不變,因此,s[1].Score=580,p[1]->Score=550.


(50)有以下程序(提示:程序中fseek(fp, -2L*sizeof(int), SEEK_END);語(yǔ)句的作用是使位置指針從文件末尾向前移2*sizeof(int)字節(jié))

       #include    <stdio.h>

       main()

       {  FILE  *fp;  int i,  a[4]={1,2,3,4},b;

          fp=fopen("data.dat", "wb");

          for(i=0;i<4;i++) fwrite(&a[i],sizeof(int),1, fp);

          fclose(fp);

          fp=fopen("data.dat", "rb");

          fseek(fp, -2L*sizeof(int), SEEK_END);

          fread(&b, sizeof(int), 1, fp);    /* 從文件中讀取sizeof(int)字節(jié)的數(shù)據(jù)到變量b中*/

          fclose(fp);

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

       }

       執(zhí)行后輸出結(jié)果是

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

答案:D
解析:本程序先是建立一個(gè)二進(jìn)制文件data.dat,并從數(shù)組a[4]中取出四個(gè)整型變量數(shù)據(jù)塊寫(xiě)入該文件,從該文件中位置指針處開(kāi)始取一個(gè)整型變量數(shù)據(jù)塊給變量b即b=3.

文章錄入:admin    責(zé)任編輯:admin  
 版權(quán)聲明
   如果本網(wǎng)站所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請(qǐng)與我們聯(lián)系,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本網(wǎng)內(nèi)容,請(qǐng)注明出處。
 發(fā)表評(píng)論
關(guān)于本站 網(wǎng)站聲明 廣告服務(wù)  聯(lián)系方式  付款方式  站內(nèi)導(dǎo)航  客服中心  友情鏈接   
Copyright © 2004-2006 考試吧 (Exam8.com) All Rights Reserved 
中國(guó)科學(xué)院研究生院中關(guān)村園區(qū)(北京市海淀區(qū))