首頁(yè) 考試吧論壇 Exam8視線 考試商城 網(wǎng)絡(luò)課程 模擬考試 考友錄 實(shí)用文檔 求職招聘 論文下載
2011中考 | 2011高考 | 2012考研 | 考研培訓(xùn) | 在職研 | 自學(xué)考試 | 成人高考 | 法律碩士 | MBA考試
MPA考試 | 中科院
四六級(jí) | 職稱(chēng)英語(yǔ) | 商務(wù)英語(yǔ) | 公共英語(yǔ) | 托福 | 雅思 | 專(zhuān)四專(zhuān)八 | 口譯筆譯 | 博思 | GRE GMAT
新概念英語(yǔ) | 成人英語(yǔ)三級(jí) | 申碩英語(yǔ) | 攻碩英語(yǔ) | 職稱(chēng)日語(yǔ) | 日語(yǔ)學(xué)習(xí) | 法語(yǔ) | 德語(yǔ) | 韓語(yǔ)
計(jì)算機(jī)等級(jí)考試 | 軟件水平考試 | 職稱(chēng)計(jì)算機(jī) | 微軟認(rèn)證 | 思科認(rèn)證 | Oracle認(rèn)證 | Linux認(rèn)證
華為認(rèn)證 | Java認(rèn)證
公務(wù)員 | 報(bào)關(guān)員 | 銀行從業(yè)資格 | 證券從業(yè)資格 | 期貨從業(yè)資格 | 司法考試 | 法律顧問(wèn) | 導(dǎo)游資格
報(bào)檢員 | 教師資格 | 社會(huì)工作者 | 外銷(xiāo)員 | 國(guó)際商務(wù)師 | 跟單員 | 單證員 | 物流師 | 價(jià)格鑒證師
人力資源 | 管理咨詢(xún)師考試 | 秘書(shū)資格 | 心理咨詢(xún)師考試 | 出版專(zhuān)業(yè)資格 | 廣告師職業(yè)水平
駕駛員 | 網(wǎng)絡(luò)編輯
衛(wèi)生資格 | 執(zhí)業(yè)醫(yī)師 | 執(zhí)業(yè)藥師 | 執(zhí)業(yè)護(hù)士
會(huì)計(jì)從業(yè)資格考試會(huì)計(jì)證) | 經(jīng)濟(jì)師 | 會(huì)計(jì)職稱(chēng) | 注冊(cè)會(huì)計(jì)師 | 審計(jì)師 | 注冊(cè)稅務(wù)師
注冊(cè)資產(chǎn)評(píng)估師 | 高級(jí)會(huì)計(jì)師 | ACCA | 統(tǒng)計(jì)師 | 精算師 | 理財(cái)規(guī)劃師 | 國(guó)際內(nèi)審師
一級(jí)建造師 | 二級(jí)建造師 | 造價(jià)工程師 | 造價(jià)員 | 咨詢(xún)工程師 | 監(jiān)理工程師 | 安全工程師
質(zhì)量工程師 | 物業(yè)管理師 | 招標(biāo)師 | 結(jié)構(gòu)工程師 | 建筑師 | 房地產(chǎn)估價(jià)師 | 土地估價(jià)師 | 巖土師
設(shè)備監(jiān)理師 | 房地產(chǎn)經(jīng)紀(jì)人 | 投資項(xiàng)目管理師 | 土地登記代理人 | 環(huán)境影響評(píng)價(jià)師 | 環(huán)保工程師
城市規(guī)劃師 | 公路監(jiān)理師 | 公路造價(jià)師 | 安全評(píng)價(jià)師 | 電氣工程師 | 注冊(cè)測(cè)繪師 | 注冊(cè)計(jì)量師
繽紛校園 | 實(shí)用文檔 | 英語(yǔ)學(xué)習(xí) | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲

05年9月等級(jí)考試二級(jí)C語(yǔ)言考前密卷(五)


     (28)有如下程序
  main()
  { int x=3;
  do
  { printf("%d",x--);}
  while(!x);
  }
  該程序的執(zhí)行結(jié)果是________。
  A)321  B)3  C)不輸出任何內(nèi)容  D)陷入死循環(huán)
  答案:B
  評(píng)析:本題x賦初值為3,當(dāng)執(zhí)行printf("%d",x--);時(shí),由于X--的作用是先運(yùn)算x,再將x的值減l,所以,printf輸出的x值為3,等輸出后,x的值減1變?yōu)?,繼續(xù)執(zhí)行,判斷條件!x為假,循環(huán)只被執(zhí)行一次。
  
  (29)設(shè)有聲明語(yǔ)句:char a='\72';則變量a__________
  A)包含1個(gè)字符  B)包含2個(gè)字符
  C)包含3個(gè)字符  D)聲明不合法
  答案:A
  評(píng)析:轉(zhuǎn)義字符常量'\xx'可以把'\'后面的數(shù)字轉(zhuǎn)換為對(duì)應(yīng)的ASCII字符。
  
  (30)有以下程序段:
  main()
  {
  int a=5,*b,**c
  c==&b;b=&a;
  }
  程序在執(zhí)行了c=&b;b=&a;語(yǔ)句后,表達(dá)式ttc的值是__________。
  A)變量a的地址  B)變量b中的地址
  C)變量a中的值  D)變量b的地址
  答案:C
  評(píng)析:指針變量是用來(lái)存放地址的。&:取地址運(yùn)算符。+:指針運(yùn)算符。**c為指針變量*c所指向的存儲(chǔ)單元,*c為指針指針變量c所指向的存儲(chǔ)單元,而c=&b表示c為變量b的地址,b=&a表示b為變量a的地址。表達(dá)式一c的值就是變量a中的值。
  
  (31)有如下函數(shù)調(diào)用語(yǔ)句
  func(recl,rec2+rec3,(rec4,rec5));
  該函數(shù)調(diào)用語(yǔ)句中,含有的實(shí)參個(gè)數(shù)是________。
  A)3  B)4  C)5   D)有語(yǔ)法錯(cuò)誤
  答案:A
  評(píng)析:(rec4,rec5)是逗號(hào)表達(dá)式,它的值是rec5的值。所以該函數(shù)調(diào)用語(yǔ)句含有的實(shí)參個(gè)數(shù)是3。
  
  (32)有如下程序
  main()
  {
  char s[115]={.tabc","de","fgh"};
  printf("%e",s[2][6]);
  }
  其輸出為_(kāi)_________。
  A)不確定  B)編譯錯(cuò)誤  C)g    D)輸出null字符
  答案:A
  評(píng)析:由于s[2116]表示字符串已超出了數(shù)組s的表示范圍,在c中不會(huì)對(duì)數(shù)組越界進(jìn)行檢查,當(dāng)數(shù)組越界時(shí),會(huì)得到一個(gè)不確定的值。
  
  (33)有如下程序
  int rune(ira a,int b)
  { remm(a+b);}
  main()
  { int x=2,y=5,z=8,r;
  r=func(func(x,y),z);
  primf("%d\n",r);
  }
  該程序的輸出結(jié)果是________。
  A)12  B)13  C)14    D)15
  答案:D
  評(píng)析:調(diào)用函數(shù)func(x,y),返回x+y,即7;再調(diào)用函數(shù)func(7,z),返回7+z,即15。
  
  (34)有如下程序段
  int  *p,a=10,b=l;
  p=&a; a=*p+b;
  執(zhí)行該程序段后,a的值為_(kāi)________。
  A)12  B)11  C)10  D)編譯出錯(cuò)
  答案:B
  評(píng)析:執(zhí)行p=&a;后,p指向整數(shù)a,*p即p的目標(biāo)變量,也就是a;所以a=*p+b等價(jià)于a=a+b,可知a的值最終為11。
  
  (35)有以下程序:
  int*f(int*x,int*y)
  {  if(*x<*y)return x;
  else returny;
  }
  main()
  {
  int a=7,b=8,*p,*q,*r;
  p=&a;q=&b;
  r=f(p,q);
  printf("%d,%d,%d\n",*p,*q,*r);
  }
  程序運(yùn)行后輸出結(jié)果是_________。
  A)7,8,8  B)7,8,7  C)8,7,7  D)8,7,8
  答案:B
  評(píng)析:f函數(shù)的功能是返回地址為x,y的兩個(gè)數(shù)中值較的數(shù)的地址,本題輸出結(jié)果是7,8,7。
  
  (36)有如下程序
  long fib(im n)
  { if(n>2) return(fib(n-1)+fib(n-2));
  else return(2);
  )
  main()
  { printf(%ld\n",fib(3));}
  該程序的輸出結(jié)果是_________。
  A)2  B)4  C)6  D)8
  答案:B
  評(píng)析:函數(shù)舶內(nèi)部有兩個(gè)遞歸調(diào)用,當(dāng)n=3時(shí),fib(n-1)返回2,fib(n-2)也返回2,所以fib(n-I)+fib(n-21的值為4。
  
  (37)下面程序的輸出結(jié)果是_________。
  main()
  {
  char str[10],c='a';
  inti=0:
  for(;i<5;i++)
  str[I]=c++;
  printf("%s",str);
  }
  A)abcde  B)a  C)不確定  D)bcdef
  答案:C
  評(píng)析:字符串少一個(gè)結(jié)束標(biāo)志,所以輸出的結(jié)果不確定。
  
  (38)在c語(yǔ)言中,函數(shù)中變量的隱含存儲(chǔ)類(lèi)別是__________。
  A)auto  B)static  C)extern  D)無(wú)存儲(chǔ)類(lèi)別
  答案:A
  評(píng)析:函數(shù)中變量的存儲(chǔ)類(lèi)別包括auto,static,extern,其中auto為隱含存儲(chǔ)類(lèi)別,static為靜態(tài)存儲(chǔ)類(lèi)別,register是寄存器存儲(chǔ)類(lèi)別。A
  評(píng)析:函數(shù)中變量的存儲(chǔ)類(lèi)別包括auto,static,extern,其中auto為隱含存儲(chǔ)類(lèi)別,static為靜態(tài)存儲(chǔ)類(lèi)別,register是寄存器存儲(chǔ)類(lèi)別。
  
  (39)有如下程序
  #define n 2
  #define m N+I
  #define NUM  2*m+l
  main()
  { int i;
  for(i=1;i<=NUM;i++)printtf("%d\n",i);
  }
  該程序中的for循環(huán)執(zhí)行的次數(shù)是_________。
  A)5  B)6  C)7  D)8
  答案:B
  評(píng)析:在c語(yǔ)言中,宏定義在編譯時(shí)將被直接替換,所以NUM最后會(huì)被替換成2*N+l+l,即2*2+1+1,值為6。因此,for循環(huán)執(zhí)行的次數(shù)為6。
  
  (40)假設(shè)在turboc2.0采用small模式編譯如下程序
  main()
  {
  char a[4]:{'a','b'};
  char%="abc.t:
  printf("%d,%d",sizeof(a),sizeof(b));
  }
  其輸出結(jié)果為_(kāi)________。
  A)4,2  B)4,4  C)4,3  D)2,2
  答案:A
  評(píng)析:用small模式編譯,指針變量占2個(gè)字節(jié)。sizeof(array):數(shù)組名array代表數(shù)組本身,sizeof函數(shù)測(cè)出的是整個(gè)數(shù)組的大小。a數(shù)組的大小為4,b指針變量的大小為2。
  
  (41)有以下函數(shù)
  char *fun(char *p)
  {  retum p; }
  該函數(shù)的返回值是_________。
  A)無(wú)確切的值        B)形參p中存放的地址值
  C)一個(gè)臨時(shí)存儲(chǔ)單元的地址  D)形參p自身的地址值
  答案:B
  評(píng)析:p本身就是一個(gè)字符型指針變量,返回p也就是返回變量p中存放的地址值。
  
  (42)有如下程序段:
  #include<stdio.h>
  #define Max(a,b)a>b?a:b
  main()
  {
  int a=5,b=6,c=4,d;
  d=c+Max(a,b);
  printf("%d",d);
  }
  其輸出結(jié)果為_(kāi)_________。
  A)10  B)5  C)6  D)編譯錯(cuò)誤
  答案:B
  評(píng)析:在c語(yǔ)言中,宏定義是直接替換的,所以在c+a>b?a:b這個(gè)條件表達(dá)式中,c+a>b為真,所以用a的值作為整個(gè)表達(dá)式的值,而a的值為5,所以整個(gè)表達(dá)式的值為5。
  
  (43)有如下程序段
  int a=14,b=l 5,x;
  char c='A':
  x=(a&&b) &&(c<'B');
  執(zhí)行該程序段后,x的值為_(kāi)_______。
  A)true  B)false  C)0  D)l
  答案:D
  評(píng)析:a&&b的值為true,c<'B'的值也為true,所以(a&&b)&&(c<'B')的值為true。但x是int型變量,所以(披&b)&&(c<'B')的值最后要從bool型轉(zhuǎn)換為int型賦給x。這樣x的值應(yīng)為l。
  
  (44)下述關(guān)于C語(yǔ)言文件的操作的結(jié)論中,正確的是________。
  A)對(duì)文件操作必須先關(guān)閉文件
  B)對(duì)文件操作必須先打開(kāi)文件
  C)對(duì)文件操作順序無(wú)要求
  D)對(duì)文件操作前必須先測(cè)文件是否存在,然后再打開(kāi)文件。
  答案:B
  評(píng)析:在c中對(duì)文件操作必須先打開(kāi)文件,待文件操作完畢后要關(guān)閉文件。對(duì)文件以讀的方式進(jìn)行打開(kāi)操作時(shí),同時(shí)會(huì)執(zhí)行文件的檢查文件是否存在,不存在將會(huì)返回空的文件指針,如果對(duì)文件以寫(xiě)的方式打開(kāi)時(shí),文件不存在,將會(huì)自動(dòng)創(chuàng)建文件,.因此在C中打開(kāi)文件前不必對(duì)其檢查文件是否存在,故答案為B。
  
  (45)下列關(guān)鍵字中,不屬于C語(yǔ)言變量存儲(chǔ)類(lèi)別的是________。
  A)register  B)auto  C)extem  D)public
  答案:D
  評(píng)析:變量的存儲(chǔ)類(lèi)別具體包含四種:自動(dòng)的(auto),靜態(tài)的(statiC),寄存器的(register),外部的(extern)。
  
  (46)有如下說(shuō)明
  im a[10]={l,2,3,4,5,6,7,8,9,10},*p=a;
  則數(shù)值為9的表達(dá)式是________。
  A)木p+9  B)半(p+8)  C)牛p+=9  D)p+8
  答案:B
  評(píng)析:p是指針,p+8是地址值,D是錯(cuò)的;*p是p的目標(biāo)變量,即a[0],值為1,所以+p+9的值是lO,而*p+=9值是重新給a[O]賦了值(1+9);所以A和C也是錯(cuò)的。p+8是地址值,指向a[8],那么*(p+8)。的值就是a[81的值,即9。
  
  (47)若有以下定義:int t[3][2];能正確表示t數(shù)組元素地址的表達(dá)式是________。
  A)&t[3][2]  B]t[3]  C]t[1]  D]*t[2]
  答案:C
  評(píng)析:A和B兩個(gè)表達(dá)式都已越界了;*t[2]是目標(biāo)變量,即一個(gè)整數(shù),而不是地址值。
  
  (48)下面程序運(yùn)行后的輸出結(jié)果是________。
  struct abc
  {
  int a,b,c;
  }
  main()
  {
  struct abc s[2]={{1,2,3},{4,5,6}};
  int t=-s[0].a(chǎn)+s[1].b;
  printf("%d\n",t);
  }
  A)5  B)6  C)7  D)8
  答案:B
  評(píng)析:在main函數(shù)中定義了一個(gè)struct abc類(lèi)型的數(shù)組,同時(shí)分別利用{1,2,3}及{4,5,6}對(duì)數(shù)組中兩個(gè)元素進(jìn)行初始化。在該結(jié)構(gòu)體,依次對(duì)其中的a,b,c三個(gè)變量進(jìn)行初始化。故s[O].a(chǎn)=l,s[1].b=5,所以本題輸出為6。
  
  (49)有如下程序
  main()
  {
  int a[31131。{{1,2},{3,4},{5,6}},i,j,s=0;
  for(i=l;i<3;i++)
  for(j=0;j<=i;j++)
  s+=a[I][j];
  printf("%d\n",s);
  }
  該程序的輸出結(jié)果是________。
  A)18  B)19  C)20  D)2l
  答案:A
  評(píng)析:題中的外循環(huán)只執(zhí)行了2次:
  第1次:a[1][0]=3,a[1][1]=4,所以s=7;
  第2次:a[2][O]=5,a[2][1]=6,a[2][2]=0,所以s=7+5+6+0=18。
  
  (50)若己建立如下圖所示的單向鏈表結(jié)構(gòu):
  
  在該鏈表結(jié)構(gòu)中,指針p、s分別指向圖中所示結(jié)點(diǎn),則不能將s所指的結(jié)點(diǎn)插入到鏈表末尾仍構(gòu)成單向鏈表的語(yǔ)句組是__________。
  A)p=p->next;s->next:p;p->next=s;
  B)p=p->next;s->next:p->next;p->next=s;
  C)s->next:NULL;p=p->next;p->next:s;
  D)p=(*p).next;(*s).next=(*p).next;(*p).next=s;
  答案:A
  評(píng)析:在答案A中:p=p->next;s->next=p;p->next=s;s的確已插到了鏈表的末尾,但它的next卻并沒(méi)有為NULL,而是指向了它的直接前趨p,這樣它就不是一個(gè)單向鏈表(單向鏈表最后一個(gè)結(jié)點(diǎn)的next指針一定是一個(gè)NULL)。
  
  二、填空題(每空2分,共40分)
  
  請(qǐng)將每一個(gè)空的正確答案寫(xiě)在答題卡的【1】至【20】序號(hào)的橫線上,答在試卷上不得分。
  
  (1)在運(yùn)算過(guò)程中,能夠使空表與非空表的運(yùn)算統(tǒng)一的結(jié)構(gòu)是 【1】 。
  答案:【1】循環(huán)鏈表
  評(píng)析:在鏈表的運(yùn)算過(guò)程中,采用鏈接方式即循環(huán)鏈表的結(jié)構(gòu)把空表與非空表的運(yùn)算統(tǒng)一起來(lái)。循環(huán)鏈表具有兩個(gè)特點(diǎn):
 、僭谘h(huán)鏈表中增加了一個(gè)表頭結(jié)點(diǎn),其數(shù)據(jù)域?yàn)槿我饣蚋鶕?jù)需要來(lái)設(shè)置,指針域指向線性表的第一個(gè)元素的結(jié)點(diǎn)。循環(huán)鏈表的頭指針指向表頭結(jié)點(diǎn)。
 、谘h(huán)鏈表中最后一個(gè)結(jié)點(diǎn)的指針不是空,而是指向表頭結(jié)點(diǎn)。
  
  (2)軟件工程研究的內(nèi)容主要包括: 【2】 技術(shù)和軟件工程管理。
  答案:【2】軟件開(kāi)發(fā)
  評(píng)析:基于軟件工程的目標(biāo),軟件工程的理論和技術(shù)性研究的內(nèi)容主要包括:軟件開(kāi)發(fā)技術(shù)和軟件工程管理。
  軟件開(kāi)發(fā)技術(shù)包括:軟件開(kāi)發(fā)方法學(xué)、開(kāi)發(fā)過(guò)程、開(kāi)發(fā)工具和軟件工程環(huán)境,其主體內(nèi)容是軟件開(kāi)發(fā)方法學(xué)。
  軟件工程管理包括:軟件管理學(xué)、軟件工程經(jīng)濟(jì)學(xué)、軟件心理學(xué)等內(nèi)容。
  
  (3)與結(jié)構(gòu)化需求分析方法相對(duì)應(yīng)的是 【3】 方法。
  答案:【3】結(jié)構(gòu)化設(shè)計(jì)
  評(píng)析:與結(jié)構(gòu)化需求分析方法相對(duì)應(yīng)的是結(jié)構(gòu)化設(shè)計(jì)方法。結(jié)構(gòu)化設(shè)計(jì)就是采用最佳的可能方法設(shè)計(jì)系統(tǒng)的各個(gè)組成部分以及各個(gè)成分之間的內(nèi)部聯(lián)系的技術(shù)。也就是說(shuō),結(jié)構(gòu)化設(shè)計(jì)是這樣一個(gè)過(guò)程,它決定用哪些方法把哪些部分聯(lián)系起來(lái),才能解決好某個(gè)具體且有清楚定義的問(wèn)題。
  
  (4)關(guān)系模型的完整性規(guī)則是對(duì)關(guān)系的某種約束條件,包括實(shí)體完整性、 【4】 和自定義完整性。
  答案:【4】參照完整性
  評(píng)析:關(guān)系模型允許定義三類(lèi)數(shù)據(jù)約束,它們是實(shí)體完整性、參照完整性以及用戶定義的完整性約束,其中前兩種完整性約束由關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)自動(dòng)支持。
  實(shí)體完整性約束要求關(guān)系的主鍵中屬性值不能為空,這是數(shù)據(jù)庫(kù)完整性的最基本要求,因?yàn)橹麈I是惟一決定元組的,如為空則其惟一性就成為不可能的了。
  參照完整性約束是關(guān)系之間相關(guān)聯(lián)的基本約束,它不允許關(guān)系引用不存在的元組:即在關(guān)系中的外鍵要么是所關(guān)聯(lián)關(guān)系中實(shí)際存在的元組,要么是空值。
  自定義完整性是針對(duì)具體數(shù)據(jù)環(huán)境與應(yīng)用環(huán)境由用戶具體設(shè)置的約束,它反映了具體應(yīng)用中數(shù)據(jù)的語(yǔ)義要求。
  
  (5)數(shù)據(jù)模型按不同的應(yīng)用層次分為三種類(lèi)型,它們是 【5】  數(shù)據(jù)模型、邏輯數(shù)據(jù)模型和物理數(shù)據(jù)模型。
  答案:【5】概念
  評(píng)析:數(shù)據(jù)模型按不同的應(yīng)用層次分為三種類(lèi)型,它們是概念數(shù)據(jù)模型、邏輯數(shù)據(jù)模型和物理數(shù)據(jù)模型。
  概念數(shù)據(jù)模型簡(jiǎn)稱(chēng)概念模型,是一種面向客觀世界、面向用戶的模型;它與具體的數(shù)據(jù)庫(kù)管理系統(tǒng)無(wú)關(guān)。
  
  (6)表示""整數(shù)x的絕對(duì)值大于5""時(shí)值為""真""的C語(yǔ)言表達(dá)式是 【6】  。
  答案:【6】x>5‖x<-5或k<-5‖x>5
  評(píng)析:要使整數(shù)x的絕對(duì)值大于5,則x大于5或x小于-5,用c語(yǔ)言表示即為:x>5‖x<-5或者x<-5‖x>5。
  故本題答案為:x>5‖x<-5或者x<-5‖x>5。
  
  (7)以下程序的輸出結(jié)果是 【7】 。
  main()
  {  unsigned short a=65536;int b;
  printf("%d\n",b=a);
  }
  答案:【7】0
  評(píng)析:對(duì)于一個(gè)unsigned short來(lái)說(shuō),它能取的最大值是65535。這里給a賦值65536,已經(jīng)超出了它的取值范圍,這樣它的高位將被截掉,只把低位賦給它(全零)。所以a的值實(shí)際為0。
  
  (8)若有定義:ira a=lO,b=9,c=8;,接著順序執(zhí)行下列語(yǔ)句,變量b中的值是 【8】 。
  c=(a-=(b-5));
  c=(a%11)+(b=3);
  答案:【8】3
  評(píng)析:這里:b-5=4,a.=4之后a的值為6,并把它賦給c。此時(shí)b的值并未被改變。在第2個(gè)表達(dá)式中,也只有賦值表達(dá)式b=3改變了b的值。所以?xún)尚姓Z(yǔ)句執(zhí)行完畢,b的值應(yīng)該為3。
  
  (9)以下程序運(yùn)行后的輸出結(jié)果是 【9】 。
  main()
  {
  int p=30;
  primf("%d\n",(p/3>O?p/10:p%3));
  }
  答案:【9】3
  評(píng)析:條件表達(dá)式的一般形式為:表達(dá)式17表達(dá)式2:表達(dá)式3條件運(yùn)算符的執(zhí)行順序:先求解表達(dá)式1,若為非0(真)則求解表達(dá)式2,此時(shí)表達(dá)式2的值就作為整個(gè)條件表達(dá)式的值;若表達(dá)式l的值為0(假)-,則求解表達(dá)式3,表達(dá)式3的值就是整個(gè)條件表達(dá)式的值。30/3=10>0,所以執(zhí)行p/lO,結(jié)果為3。
  
  (10)函數(shù)pi的功能是根據(jù)以下近似公式求n值:
  (∏*∏)/6=1+1/(2*2)+1/(3*3)+…+1(n*n)
  現(xiàn)在請(qǐng)你在下面的函數(shù)中填空,完成求n的功能。
  #include"math.H"
  { double s=0.0;long i;
  for(i=1;i<=n;i++)s=s+ 【10】  ;
  retum(sqrt(6*s));
  }
  答案:【10】1.O/(i*i1或(double)l/(i*i)
  評(píng)析:表達(dá)式1+1/(2*2)+l/(3*3)+…+1(n*n)可寫(xiě)為:1/(1*1)+1/(2*2)+1/(3*3)+…+1(n*n)
  n
  即:∑l÷(i×i)
  i-l
  對(duì)應(yīng)的c語(yǔ)言的表達(dá)式:s=s+1.O/(i*i)。注:必須要寫(xiě)成1.0的形式,否則1/(i*i)返回值為其值截尾取整,即恒為O。
  
  (11)函數(shù)pi的功能是根據(jù)以下公式近似求得的:
  pi*pi/6=1+1/(2*2)+1/(3*3)+…+1/(n*n)
  請(qǐng)?jiān)谙旅娴暮瘮?shù)中填空,完成求pi的功能。
  #include<math.h>
  double pi(10ng n1
  { double s=O.O,long i;
  for(i=1;i<=n;I++)s=s+ 【11】  ;
  return(sqrt(6*s));
  }
  答案:【11】1.0/i/i或1.O/(i*i)
  評(píng)析:由題面中提供的計(jì)算pi的公式可知:在第i項(xiàng)其值為1/(i*i),考慮到運(yùn)算結(jié)果為浮點(diǎn)數(shù),故必須要將l轉(zhuǎn)化為浮點(diǎn)數(shù)或采用1.O/(i*i)的形式。故本題應(yīng)填1.O/(i*i)或其等效形式。
  
  (12)若輸入字符串:abcde/,則以下while循環(huán)體將執(zhí)行 【12】  次。
  while((ch=getchar())=='e')printf("*");
  答案:【12】0
  評(píng)析:函數(shù)getchar()是從鍵盤(pán)得到用戶輸入的一個(gè)字符。用戶輸入的第1個(gè)字符是a,不管后面輸入的是什么ch的值都是'a',因此條件(ch=getchar())=='e'為假,這個(gè)循環(huán)不會(huì)被執(zhí)行。
  
  (13)以下函數(shù)用來(lái)求出兩整數(shù)之和,并通過(guò)形參將結(jié)果傳回,請(qǐng)?zhí)羁铡?BR>  voidfunc(intx,inty, 【13】  z]
  { *z-x+y;},
  答案:【13】int*
  評(píng)析:從題中代碼可知:z應(yīng)該是一個(gè)整型指針,因此應(yīng)填:int*
  
  (14)若有以下定義,則不移動(dòng)指針p,且通過(guò)指針p引用值為98的數(shù)組元素的表達(dá)式是  【14】  。
  int w[10]={23,54,10,33,47,98,72,80,61},*p=w;
  答案:【14】p[5]或*(p+5)
  評(píng)析:98是數(shù)組w的第5個(gè)元素(最開(kāi)始的為第O個(gè)),而通過(guò)*p=w已經(jīng)將p指向了數(shù)組w,要想不移動(dòng)指針p而引用98,可以有以下兩種寫(xiě)法:p[5]、*(p+5)。
  
  (15)設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語(yǔ)句,且fun函數(shù)為void類(lèi)型;請(qǐng)寫(xiě)出fun函  數(shù)的首部 【15】  。要求形參名為b。
  main()
  {  double s[10][22];
  int n:
  ……
  fun(s);
  ……
  }
  答案:【15】void fun(double b[1011221]
  評(píng)析:本題答案:void fun(double b[10][22])
  
  (16)有以下程序:
  int f(int n)
  {  if(n==1)return 1;
  else return f(n-1)+1;}
  main()
  { int i j=0;
  for(i=1;i<3;i++)j+=f(i);
  printf("%d\n"'j);
  }
  程序運(yùn)行后的輸出結(jié)果是 【16】 。
  答案:【16】3
  評(píng)析:i=l時(shí),f(1)=1 J=j+f(1)=0+1=1;i=2時(shí),f(2)=f(1)+l=1+1=2 j=j+f(2)=l+3=3;此時(shí)循環(huán)結(jié)束,程序運(yùn)行后的輸出結(jié)果是3。
  
  (17)以下程序的輸出結(jié)果是 【17】 。
  void fun()
  { static int a:0;
  a+=2;printf("%d",a);
  }
  main()
  { int cc;
  for(CC=1;cc<4;cc++)fun();
  printf("\n");
  }
  答案:【17】246
  評(píng)析:循環(huán)for(cc=l;cc<4;cc++)被執(zhí)行了3次。在函數(shù)fun中,由于a是static型變量,所以函數(shù)第1次調(diào)用后,a=2;第2次調(diào)用后,a=4;第3次調(diào)用后,a=6。
  
  (18)實(shí)現(xiàn)程序可將磁盤(pán)中的一個(gè)文件復(fù)制到另一個(gè)文件中,兩個(gè)文件的文件名在可執(zhí)行命令的命令行中(相當(dāng)于copy命令),假定文件在當(dāng)前目錄下。請(qǐng)補(bǔ)全程序。
  #include<stdio.h>
  void main(int argc,char。argv[])
  { FILE *f1,*f2;
  if(argc< 【18】 )
  {  printf("parameter error!\n");exit(0);}
  fl=fopen(argv[1],"r");
  f2=fopen(argv[2],"w");
  while( 【19】 )fputc(fgetc(f1),f2);
  fclose(f1);
  fclose(f2);
  }
  答案:【18】3
  【19】!feof(f1)
  評(píng)析:在c語(yǔ)言中,宏定義是直接替換的,所以在對(duì)表達(dá)式MAX(a+b,c+d)*10進(jìn)行或替換后,表達(dá)式變?yōu)椋?a+b)>(c+d)?(a+b):(c+d)*10
  在這個(gè)條件表達(dá)式中,(a+b)>(c+d)為真,所以用(a+b)的值作為整個(gè)表達(dá)式的值(否則用(c+d)*10的值作為整個(gè)表達(dá)式的值),而(a+b)的值為7。所以整個(gè)表達(dá)式的值為7。
  
  (19)以下程序的輸出結(jié)果是 【20】 。
  #define  MAX(x,y)(x)>(y)?(x):(y)
  main()
  f int  a=5,b=2,c=3,d=3,t;
  t=MAX(a+b,c+d)*10;
  printf("%d\n",t);
  }

文章搜索
版權(quán)聲明:如果計(jì)算機(jī)等級(jí)考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請(qǐng)與我們聯(lián)系800@exam8.com,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本計(jì)算機(jī)等級(jí)考試網(wǎng)內(nèi)容,請(qǐng)注明出處。