久久久国产精品秘人口麻豆|永久免费AV无语国产|人成电影免费中文字幕|久久AV嫩草影院2

    1. <dfn id="yitbn"><samp id="yitbn"><progress id="yitbn"></progress></samp></dfn>

          <div id="yitbn"></div>

          1. 網(wǎng)站首頁
            分類導(dǎo)航
            試題中心
            下載中心
            英語學(xué)習(xí)
            繽紛校園
            考試論壇
            網(wǎng)站留言
            客服中心
             05年9月等級(jí)考試二級(jí)C語言考前密卷(六)
            【字體:
            05年9月等級(jí)考試二級(jí)C語言考前密卷(六)
            http://www.eeeigo.com 來源:ChinaITLab 點(diǎn)擊: 更新:2005-9-15

                 (28)以下程序的輸出結(jié)果是_______。
              fun(int x,inty,int z)
              {z=x*x+y*y;}
              main()
              {
              int a=3l:
              fun(5,2,a);
              printf("%d",a);
              }
              A)0  B)29  C)3l  D)無定值
              答案:C
              評析:本題中,a的值并沒有改變,因?yàn)閭鬟f到函數(shù)中的是變量值。
              
              (29)下列程序段的輸出結(jié)果是__________。
              void fun(、int *x,int *y)
              {primf("%d%d",*x,*y);*x=3;*y=4;}
              main()
              {
              int x=l,y=2;
              fun(&y,&x);
              printf("%d%d",x,y);
              }
              A)2 1 4 3  B)1 2 l 2  C)l 2 3 4  D)2 1 l 2
              答案:A
              評析:本題中函數(shù)傳遞的是變量的地址,如果形參在函數(shù)中發(fā)生改變,相對應(yīng)的實(shí)參也就有了改變。
              
              (30)對于下面的程序
              #include<stdio.h>
              #include<string.h>
              char*scmp(char*s1,char*s2)
              {
              if(strcmp(sl,s2)<0)retum(s1);
              else return(s2);
              }
              main()
              {
              int i;char string[20],str[3][20];
              for(I=0;i<3;i++)gets(str[i]);
              strcpy(string,scmp(str[0],str[1]));
              strcpy(string,scmp(string,str[2]));
              printf("%s\n",string);
              }
              若運(yùn)行時(shí)依次輸入:abcd、abba和abc三個(gè)字符串,則輸出結(jié)果為________。
              A)abcd  B)abba  C)abc  D)abca
              答案:B
              評析:本題自定義函數(shù)semp()的作用是比較字符串s1和s2的大小,如果sl<s2,函數(shù)返回s1的值,否則返回s2的值。若運(yùn)行時(shí)依次輸入abed、abba和abe三個(gè)字符串,執(zhí)行strcpy(string,scmp(str[O],str[1]));后,string的值為abba,再執(zhí)行strepy(string,scmp(string,str[2]));,由于scmp(string,str[2])返回string的值
              abba,再拷貝到字符串?dāng)?shù)組string中,所以本題輸出abba。
              
              (31)下列程序的輸出結(jié)果是__________。
              main()
              {
              char a[10]={9,8,7,6,5,4,3,2,1,O},*p=a+5;
              print"%d*--p);
              }
              A)非法  B)a[4]的地址  C)5  D)3
              答案:C
              評析:本題中char*p=a+5;即相當(dāng)于p=&a[5],而--p,是先要減1,則printf語句要輸出的值就是a[4]。
              
              (32)對下面的程序進(jìn)行編譯與連接生成可執(zhí)行文件c.exe,并在DOS命令提示符下輸入:
              c I said"I love China"!
              程序代碼如下:
              main(、int argc,char*argv[])
              {
              printf("%d",argC);
              }
              其輸出結(jié)果為________。
              A)4  B)5  C)6  D)7
              答案:B
              評析:帶參數(shù)的main()函數(shù)常用形式為:main(int argc,ehar*argv[])
              其中,參數(shù)的個(gè)數(shù)由C程序運(yùn)行時(shí)自動(dòng)計(jì)算出來。字符型指針數(shù)組argv的第一個(gè)元素存放命令名,其后各個(gè)元素依次存放命令行中各個(gè)參數(shù)的首地址;整型變量arge用來記錄命令行中的參數(shù)個(gè)數(shù),文件名也作為一個(gè)參數(shù),對于命令行中雙引號(hào)內(nèi)的字符串,即使有空格分開,也只算是一個(gè)參數(shù),同時(shí)雙引號(hào)本身不算參數(shù)的內(nèi)容,因此本題argc的值等于5
              
              (33)下列程序的運(yùn)行結(jié)果是________。
              void fun(int *a,int *b)
              {
              int *k:
              k=a;a-b;b=k;
              }
              main()
              {
              int a=3,b=6,*x=&a,*y=&b;
              fun(x,y);
              printf["%d%d.f,a,b);
              }
              A)6 3  B)3 6  C)編譯出錯(cuò)  D)0 0
              答案:B
              評析:本題中主函數(shù)里的x、y,fun函數(shù)里的a、b、k,這些都是指針,fun函數(shù)中只是將a、b這兩個(gè)指針交換了位置,而并沒有改變主函數(shù)中變量a、b的值。
              
              (34)若有定義:int*p[3];,則以下敘述中正確的是________。
              A)定義了一個(gè)基類型為int的指針變量p,該變量有三個(gè)指針
              B)定義了一個(gè)指針數(shù)組p,該數(shù)組含有三個(gè)元素,每個(gè)元素都是基類型為int的指針
              C)定義了一個(gè)名為+p的整型數(shù)組,該數(shù)組含有三個(gè)int類型元素
              D)定義了一個(gè)可指向一維數(shù)組的指針變量p,所指一維數(shù)組應(yīng)具有三個(gè)int類型元素
              答案:B
              評析:由于運(yùn)算符[]優(yōu)先級(jí)比*高,int*p[3];相當(dāng)于int *(p[3]);表示數(shù)組p的三個(gè)元素都是指針變量,且每個(gè)元素都是基類型為int的指針。
              
              (35)有以下程序:
              void swapl(int *a,int *b)
              {int *c=a;
              a=b,b=c;
              }
              void swap2(int *a,int *b)
              {
              int c=*a:
              *a=*b,*b=c;
              }
              main()
              (int a=lO,b=15;
              swapl(&a,&b);
              printf("%d,%d,",a,b);
              a=lO,b=15;
              swap2(&a,&b);
              printf("%d,%dt.,a,b);
              }
              其輸出結(jié)果為_________。
              A)15,10,10,15  B)15,10,15,10  C)10,15,10,15  D)10,15,15,10
              答案:D
              評析:C語言規(guī)定,實(shí)參變量對形參變量的數(shù)據(jù)傳遞是"值傳遞",只由實(shí)參傳給形參,而不能由形參傳回來給實(shí)參。在內(nèi)函數(shù)調(diào)用結(jié)束后,形參單元被釋放,實(shí)參單元仍保留并維持原值。本題中swapl()函數(shù)中,雖然改變了形參指針的值,但實(shí)參指針的值并沒有改變,所以執(zhí)行第一個(gè)printf后應(yīng)輸出10,15,;swap2()函數(shù)實(shí)現(xiàn)了交換兩個(gè)變量a和b的值,因此執(zhí)行第二個(gè)printf后輸出交換后的值15,10,所以本題答案為D。
              
              (36)當(dāng)調(diào)用函數(shù)時(shí),實(shí)參是一個(gè)數(shù)組名,則向函數(shù)傳送的是__________。
              A)數(shù)組的長度       B)數(shù)組的首地址
              C)數(shù)組每一個(gè)元素的地址  D)數(shù)組每個(gè)元素中的值
              答案:B
              評析:當(dāng)調(diào)用函數(shù)時(shí),實(shí)參是一個(gè)數(shù)組名,則向函數(shù)傳送的是數(shù)組的首地址,函數(shù)中的形參可定義成以下三種形式:
             、傩螀⒍x成數(shù)組;
             、谛螀⒍x成可變長數(shù)組;
              ③形參定義為指針變量。
              
              (37)下面的程序輸出結(jié)果是________。
              #define r16
              #ifr==16
              void p(int a)
              {
              printf("%x",a);
              }
              #else
              voidp(int a)
              {
              printf("%d",a);
              }
              #endif
              main()
              {
              p(32);
              }
              A)32  B)20  C)編譯時(shí)錯(cuò)誤 D)運(yùn)行時(shí)錯(cuò)誤
              答案:B
              評析:"#define r16"的作用是指定用標(biāo)識(shí)符r來代替16,因此程序編譯時(shí)只編譯#if部分,故程序運(yùn)行時(shí),打印輸出十六進(jìn)制的32,即20。
              
              (38)設(shè)有以下聲明語句
              struct ex
              {  intx;floaty;char z;}example;
              則下面的敘述中不正確的是_________。
              A)struct是結(jié)構(gòu)體類型的關(guān)鍵字  B)example是結(jié)構(gòu)體類型名
              C)x,y,z都是結(jié)構(gòu)體成員名    D)struct ex是結(jié)構(gòu)體類型
              答案:B
              評析:example是結(jié)構(gòu)體變量名。
              
              (39)以下只有在使用時(shí)才為該類型變量分配內(nèi)存的存儲(chǔ)類說明是_________。
              A)auto和stmic      B)auto和register
              C)register和static   D)extem和register
              答案:B
              評析:extem、register、static、auto分別是定義外部變量、寄存器變量、靜態(tài)變量、自動(dòng)變量,其中,自動(dòng)變量和寄存器變量屬于動(dòng)態(tài)存儲(chǔ),調(diào)用時(shí)臨時(shí)分配單元;而靜態(tài)變量和外部變量屬于靜態(tài)存儲(chǔ),在整個(gè)程序運(yùn)行時(shí)都存在。
              
              (40)下面程序運(yùn)行后的輸出結(jié)果是__________。
              fut(int**s,int p[2][3])
              {
              **s=p[l][1];
              }
              main()
              {
              int a[2][3]={1,3,5,7,9,1l},*p;
              p=(int*)malloc(sizeof(int));
              fut(&p,a);
              printf("%d\n",*p);
              }
              A)l  B)7  C)9  D)ll
              答案:C
              評析:本題a[2][3]定義為一個(gè)具有兩行三列的元素的數(shù)組,malloc()函數(shù)的作用是開辟了一個(gè)長度為sizeof(int)的內(nèi)存區(qū),p為指向整型數(shù)據(jù)的指針變量,程序調(diào)用fur()函數(shù),將第一行第一列對應(yīng)的元素值賦給一s,由于數(shù)組中第一行第一列對應(yīng)的元素為9,所以本題輸出值9。
              
              (41)以下程序的輸出結(jié)果是_________。
              main()
              {
              inti,k,a[10],p[3];
              k=5;
              for(I=O;i<10;i++)a[i]=i;
              for(i=0;i<3;i++)p[i]=a[I*(i+1)];
              fbr(i=O;i<3;i++)k+=p[I]*2;
              printf("%d\n",k);
              }
              A)20  B)2l  C)22  D)23
              答案:B
              評析:按照程序的流程走一遍,可以得到,p[O]=0,p[1]=2,p[3]=6;執(zhí)行三次k+=p[i]*2,相當(dāng)于k=5+0*2+2*2+6*2=21
              
              (42)當(dāng)執(zhí)行下面的程序時(shí),其輸出結(jié)果為__________。
              union st
              {
              int a:
              charb:
              }
              main()
              {
              union st s:
              char*p=(char*)&s;
              s.a(chǎn)=Ox3132;
              s.b=Ox33;
              printf("%c",*p);
              }
              A)l  B)2  C)3  D)不確定
              答案:C
              評析:共用體類型結(jié)構(gòu)的特點(diǎn)是使幾個(gè)不同的變量共占同一段內(nèi)存,但在每一瞬時(shí)只能存放其中一種,而不是同時(shí)存放幾種,共用體變量中起作用的成員是最后一次存放的成員,在存入一個(gè)新的成員后原有的成員就失去作用。因此本題起作用的是成員b的值,所以程序打印輸出3。
              
              (43)當(dāng)執(zhí)行下面的程序時(shí),如果輸入ABc,則輸出結(jié)果是________。
              #include"stdio.h"
              #include"string.H"
              main()
              { char ss[10]="12345";
              gets(ss);strcat(ss,"6789");
              printf("%s\n",ss);
              }
              A)ABC6789  B)ABC67  C)12345ABC6  D)ABC456789
              答案:A
              評析:strcat(str1,str2)合并字符串函數(shù)的作用是把str2所指字符串的內(nèi)容連接到strl字符串的后面,自動(dòng)刪去strl原來串中的'\0'。為了進(jìn)行這項(xiàng)操作,要求strl所指的字符串后面有足夠的空間來容納'str2所指字符串中的內(nèi)容。函數(shù)值為strl所指第一個(gè)字符的地址。
              
              (44)main(im argo,char*argv[])
              {
              while(--argc>0)printf("%s",argv[argc]);
              printf("\n");
              }
              假定以上程序經(jīng)編譯和連接后生成可執(zhí)行文件PROG.ExE,如果在此可執(zhí)行文件所
              在目錄的Dos提示符下鍵入:PROG ABcDEFGHIJKL↙,則輸出結(jié)果為_________。
              A)ABCDEFG     B)IJHL
              C)ABCDEFGHIJKL   D)lJKLABCDEFGH
              答案:C
              評析:本題主函數(shù)帶有兩個(gè)參數(shù),一個(gè)int型變量argc,另一個(gè)是char型的一維一級(jí)指針數(shù)組argv。當(dāng)主函數(shù)被執(zhí)行時(shí),系統(tǒng)自動(dòng)將根據(jù)命令行的情況,分別給主函數(shù)的兩個(gè)參數(shù)賦值。Arge中存放命令行中命令字和參數(shù)的總和的個(gè)數(shù),argv用來存放命令行中命令字和所有參數(shù)的字符串的,并規(guī)定argv[0]存放命令字字符串,argv[1]用來存放第一個(gè)參數(shù)的字符串,argv[2]用來存放第2個(gè)參數(shù)的字符串,依次類推。
              題中argc的值是2,執(zhí)行完--argc后為1,輸出argv[1],此數(shù)組存在第一個(gè)參數(shù)的字符串ABCDEFGHIJKL。
              
              (45)設(shè)char型變量x中的值為10100lll,則表達(dá)式(2+x)"(~3)的值為_________。
              A)10101001  B)10101000  C)lll11101  D)0101010l
              答案:D
              評析:異或運(yùn)算符(n)的運(yùn)算規(guī)則是:參加運(yùn)算的兩個(gè)相應(yīng)位同號(hào),則結(jié)果為0(假):異號(hào)則為-1(真)。
              取反運(yùn)算符(~)的運(yùn)算規(guī)則是:對一個(gè)二進(jìn)制數(shù)按位取反,即將0變?yōu)閘,l變?yōu)镺。本題(~3)是對3(二進(jìn)制形式為00000011)按位取反即11111100。
              表達(dá)式(2+x)n(~3)的值就等價(jià)于(00000010+10100111)^11111100,結(jié)果為01010101。
              
              (46)以下程序的輸出結(jié)果是________。
              long fun(int n)
              {  long s;
              if(n==1‖n==2)s=2;
              else s=n-fun(n-1);
              return S:
              }
              main()
              {primf("%ld\n",fun(3));}
              A)l  B)2  C)3  D)4
              答案:A
              評析:這是一個(gè)遞歸函數(shù)。遞歸的結(jié)束條件是,n=l或者n=2。按照程序順序,即可得出本題結(jié)果為l。
              
              (47)以下程序試圖把從終端輸入的字符輸出到名為abe.txt的文件中,直到從終端讀入字 符串撐號(hào)時(shí)結(jié)束輸入和輸出操作,但程序有錯(cuò)
              #include<stdio.h>
              main()
              {
              FILE*fout:
              char ch:
              fout=fopen('abc.txt','w');
              ch=fgetc(stdin);
              while(chI_'))')
              {
              fputc(ch,fout);
              ch=fgetc(stdin);
              }
              fclose(fout);
              }
              出錯(cuò)的原因是_________。
              A)函數(shù)fopen調(diào)用形式錯(cuò)誤  B)輸入文件沒有關(guān)閉
              C)函數(shù)龜etc調(diào)用形式錯(cuò)誤  D)文件指針stdin沒有定義
              答案:A
              評析:本題考查的是文件的打開函數(shù)fopen(),其調(diào)用方式通常為:FLIE*fp;fp=fopen(文件名,使用文件方式);,如:fp=fopen("abc.txt","w");表示要打開名字為abc.txt的文件,使用文件方式寫入。fopen函數(shù)帶回指向abc.txt文件的指針并賦給fp,即審指向文件abc.txt。
              
              (48)以下程序的輸出結(jié)果是_______。
              #define SQR(X) X*X
              main()
              {  int a=16,k=2,m=l;
              a/=SQR(k+m)/SQR(k+m);
              printf("%d\n",a);
              }
              A)16  B)2  C)9  D)l
              答案:B
              評析:c語言在預(yù)編譯時(shí)遇到帶實(shí)參的宏名,則按命令行中指定的字符串從左到右進(jìn)行置換。在做這題時(shí),也不妨將運(yùn)用置換法。得到:a/=k+m*k+m/k+m*k+m=16/7=2。注:a為整型,所以在做除法時(shí),自動(dòng)取整。
              
              (49)假定建立了以下鏈表結(jié)構(gòu),指針p、q分別指向如圖所示的結(jié)點(diǎn),則以下可以將q所指結(jié)點(diǎn)從鏈表中刪除并釋放該結(jié)點(diǎn)的語句組是________。
              ↓p          ↓q
              8
              4
              3
              head→      →…→        →       →……
              datanext
              A)free(q);p->next=q->next;
              B)(*p).next=(*q).next;free(q);
              C)q=(*q).next;(*p).next=q;free(q);
              D)q=q->next;p->next=q;p=p->next;free(p);
              答案:B
              評析:選項(xiàng)A的錯(cuò)誤在于,先已經(jīng)把q結(jié)點(diǎn)給釋放,無法再進(jìn)行余下語句了:選項(xiàng)c和D的錯(cuò)誤在于因?yàn)橛辛藂=(*q).next做了賦值,則free(q)釋放了原來q后面的一個(gè)結(jié)點(diǎn)。
              
              (50)以下程序的輸出結(jié)果是__________。
              main()
              {  int x=05;char z='a';
              printf("%d\n",(x&1)&&(z<'z'));)
              A)0  B)1  C)2  D)3
              答案:B
              評析:"&"是位運(yùn)算符表示按位與運(yùn)算,"&&"是邏輯運(yùn)算符當(dāng)其兩邊的表達(dá)式都為真時(shí)返回真值。關(guān)系表達(dá)式()&1)&&(z<'z'),(x&1)為真,(Z<'Z')也為真,兩者相與,自然也為真,以整型輸出,則輸出1。
              
              二、填空題(每空2分,共40分)
              
              請將每一個(gè)空的正確答案寫在答題卡的【1】至【20】序號(hào)的橫線上,答在試卷上不得分。
              
              (1)棧的基本運(yùn)算有三種:入棧、退棧和 【1】 。
              答案:【1】讀棧頂元素
              評析:棧的基本運(yùn)算有三種:入棧、退棧和讀棧項(xiàng)元素。
              入棧運(yùn)算是指在棧項(xiàng)位置插入一個(gè)新元素。這個(gè)運(yùn)算有兩個(gè)基本操作:首先將棧頂指針進(jìn)一(即top加1),然后將新元素插入到棧頂指針指向的位置。
              退棧運(yùn)算是指取出棧頂元素并賦給一個(gè)指定的變量。這個(gè)運(yùn)算有兩個(gè)基本操作:首先將棧頂元素(棧項(xiàng)指針指向的元素)賦給一個(gè)指定的變量,然后將棧項(xiàng)指針退一(即top減1)。
              讀棧頂元素是指將棧頂元素賦給一個(gè)指定的變量。這個(gè)運(yùn)算不刪除棧頂元素,只是將它的值賦給一個(gè)變量。
              
              (2)在面向?qū)ο蠓椒ㄖ,信息隱蔽是通過對象的 【2】 性來實(shí)現(xiàn)的。
              答案:【2】封裝
              評析:軟件工程的基本原則包括抽象、信息隱蔽、模塊化、局部化、確定性、一致性、完備性和可驗(yàn)證性。
              信息隱蔽是指采用封裝技術(shù),將程序模塊的實(shí)現(xiàn)細(xì)節(jié)隱藏起來,使模塊接口盡量簡單。
              
              (3)數(shù)據(jù)流的類型有 【3】 和事務(wù)型。
              答案:【3】變換型
              評析:典型的數(shù)據(jù)流類型有兩種:變換型和事務(wù)型。
              變換型:是指信息沿輸入通路進(jìn)入系統(tǒng),同時(shí)由外部形式變換為內(nèi)部形式,進(jìn)入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng)。
              事務(wù)型:在很多軟件應(yīng)用中,存在某種作業(yè)數(shù)據(jù)流,它可以引發(fā)一個(gè)或多個(gè)處理,這些處理能夠完成該作業(yè)要求的功能,這種數(shù)據(jù)流就叫做事務(wù)。
              
              (4)數(shù)據(jù)庫系統(tǒng)中實(shí)現(xiàn)各種數(shù)據(jù)管理功能的核心軟件稱為 【4】 。
              答案:【4】數(shù)據(jù)庫管理系統(tǒng)或DBMS
              評析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的機(jī)構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等。數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心。
              
              (5)關(guān)系模型的數(shù)據(jù)操縱即是建立在關(guān)系上的數(shù)據(jù)操縱,一般有 【5】  、增加、刪除  和修改四種操作。
              答案:【5】查詢
              評析:關(guān)系模型的數(shù)據(jù)操縱即是建立在關(guān)系上的數(shù)據(jù)操縱,一般有查詢、增加、刪除和修改四種操作。
              數(shù)據(jù)查詢:用戶可以查詢關(guān)系數(shù)據(jù)庫中的數(shù)據(jù),它包括一個(gè)關(guān)系內(nèi)的查詢以及多個(gè)關(guān)系間的查詢。
              數(shù)據(jù)刪除的基本單位是一個(gè)關(guān)系內(nèi)的元組,它的功能是將指定關(guān)系內(nèi)的指定元組刪除。
              數(shù)據(jù)插入僅對一個(gè)關(guān)系而言,在指定關(guān)系中插入一個(gè)或多個(gè)元組。
              數(shù)據(jù)修改是在一個(gè)關(guān)系中修改指定的元組和屬性。
              
              (6)下列程序的輸出結(jié)果是 【6】 。
              main()
              {
              int a=l,b=2;
              a=a+b;b=a-b;a=a-b;
              printf("%d,%d\n",a,b);
              }
              答案:【6】2,1
              評析:本題中,執(zhí)行a=a+b時(shí),a=l,b=2,a=l+2=3;b=a-b時(shí),a=3,b=2,b=3-2=1;a=a-b時(shí),a=3,b=l,a=3.1=2;因此,本題的輸出是2,1.
              
              (7)下列程序的輸出結(jié)果是16.00,請?zhí)羁;?BR>  main()
              {
              int a=9,b=2:
              float x= 【7】 ,y=1.1,z;
              z=a/2+b*x/y+l/2;
              printf("%5.2tin",z);
              }
              答案:【7】6.6
              評析:本題,已知結(jié)果z=16.00,即16.0=a/2+b*x/y+l/2,分別把a(bǔ)、b代入,得到16.0=9/2+2"x/1.1+1/2。
              因?yàn)閍=9,a是整型,所以9/2的值在沒有進(jìn)行類型轉(zhuǎn)換時(shí),等于4,1/2同理,等于0。代入求一元一次方程,很容易就可以得出x=6.6。
              
              (8)用以下語句調(diào)用庫函數(shù)malloc,使字符指針st指向具有11個(gè)字節(jié)的動(dòng)態(tài)存儲(chǔ)空間,  請?zhí)羁铡?BR>  st=(chhr*) 【8】 ;
              答案:181 malloc(11)
              評析:malloc函數(shù)的格式是:void*(或char*)malloc(size),size表示應(yīng)分配的存儲(chǔ)區(qū)。此題要分配11字節(jié)的單元,把11代入即可。
              
              (9)下列程序段的輸出結(jié)果是 【9】 。
              main()
              {char b[]="Hello,you";
              b[5]=0;
              printf("%s\n",b);
              }
              答案:【9】Hello
              評析:字符串中,數(shù)值0或符號(hào)'\O'表示字符串的結(jié)束。本題中,b[5]被賦了0值,表明字符串b的第六個(gè)字符就是結(jié)束標(biāo)志。因此,只輸出前五個(gè)字符,即Hello。
              
              (10)下列程序段的輸出結(jié)果是 【10】 。
              int n='c':
              switch(n++)
              {default:printf("error");break;
              case。a':
              case'A。:
              caseIb':
              tase'B':printf("good");break;
              case'c':case'C':printf("pass");
              case'd':case'D':printf("warn");
              }
              答案:【10】passwarn
              評析:n++是在執(zhí)行完其所在的語句后再加l,因此,在執(zhí)行case的時(shí)候,n的值依然為'c',執(zhí)行case'c'后面的語句,先打印出"pass";在執(zhí)行完case'c'后,未遇到break跳出switch,便接著執(zhí)行下面的語句,又打印出warn。所以此題輸出結(jié)果是:passwarn。
              
              (11)以下程序通過函數(shù)指針p調(diào)用函數(shù)mn,請?jiān)谔羁諜趦?nèi),寫出定義變量p的語句。
              void fun(int'x,int*y)
              { …… }
              main()
              { int a=lO,b=20;
              【11】。
              p=fun; p(&a,&b);
              ……
              }
              答案:【11】void(*p)();
              評析:要定義p為指向函數(shù)的指針變量,需寫成:void(*p)();注意+p兩側(cè)的括弧不可以省略,表示p先與*結(jié)合,是指針變量,再與后面的()結(jié)合,表示此指針變量指向函數(shù),這個(gè)函數(shù)無返回值(同fun函數(shù))。
              
              (12)以下程序的輸出結(jié)果 【12】 。
              main()
              {
              int p[7]={ll,13,14,15,16,17,18};
              int i=0,J=0;
              while(1<7&&p[i]%2==1)j+=p[i++];
              printf("%d\n"J);
              }
              答案:【12】24
              評析:本題程序定義了一維數(shù)組p,有七個(gè)數(shù)組元素,整型變量i,.j初值分別為0,當(dāng)while的條件表達(dá)式(i<7&&p[i]%2==1)的值為真時(shí),執(zhí)行語句j+=p[i++];,如:當(dāng)i=0時(shí),i<7為真,p[I]%2=11%2=1,表達(dá)式(p[i]%2:=1)的值為真,所以整個(gè)表達(dá)式(i<7&&p[i]%2==1)的值為真,執(zhí)行j=j+p[i++]=0+11=11,i=l;依次類推可以得出答案24。
              
              (13)下列程序的輸出結(jié)果是 【13】  。
              void fun(int *n)
              {
              while((*n)--);
              printf("%d",++(*n));
              }
              main()
              { int a=100;
              fun(&a);
              }
              答案:【13】0
              評析:在函數(shù)fun()中,while((*n)--)是先引用+n的值,再做(*n)--運(yùn)算,所以循環(huán)結(jié)束時(shí)*n的值為O,再做(+n)--運(yùn)算后,*n的值為-1;執(zhí)行++(*n)后,*n的值是O。
              
              (14)以下程序的輸出結(jié)果是 【14】 。
              main()
              {
              int arr[]={30,25,20,15,10,5},*p=arr;
              p++;
              printf("%d\n",*(p+3));
              )
              答案:【14】10
              評析:整型指針最初被賦的值是數(shù)組art的頭指針,即指向數(shù)組的第一個(gè)元素30,p++后,指針指向數(shù)組的下一個(gè)元素,即*p=arr[1]=25,在執(zhí)行*(p+3)時(shí),則相當(dāng)于a[1+3],即10。因此,輸出應(yīng)為10。
              
              (15)以下程序運(yùn)行后的輸出結(jié)果是 【15】 。
              main()
              {
              char a[]="Language",b[]="Programe";
              char *p1,*p2;
              int k:
              pl=a,p2=b;
              for(k=0;k<=7;k++)
              if(*(pl+k)==*(p2+k))printf("%c",*(pl+k));
              }
              答案:【15】gae
              評析:本題定義了兩個(gè)字符串?dāng)?shù)組a[],b[],字符型指針變量p1和p2,且分別指向字符串?dāng)?shù)組a和b,執(zhí)行for循環(huán),當(dāng)if(*(pl+k)==*(p2+k))條件為真,執(zhí)行輸出*(pl+k)對應(yīng)的字符。即當(dāng)k=0時(shí),*(pl+k)對應(yīng)的字符串?dāng)?shù)組a.中的字符L,*(p2+k)對應(yīng)的字符串?dāng)?shù)組b中的字符P,因此if(*(pl+k)==*(p2+k))條件為假,不執(zhí)行printf語句,依次類推,將字符串?dāng)?shù)組a和b中對應(yīng)位置上的字符一一比較,如果對應(yīng)位置上的字符相同,則輸出該字符。
              
              (16)下面程序把從終端讀入的文本(用@作為文本結(jié)束標(biāo)志)輸出到一個(gè)名為bi.dat的新文  件中,請?zhí)羁铡?BR>  #include "stdio.H"
              FILE *fp;
              main()
              {  char ch;
              if((fp=fopen( 【16】 ))==NULL)exit(0);
              while((ch=getchar())!='@')fputc(ch,fp);
              fclose(fp);
              }
              答案:【l6】"bi.Dat", "w"或"bi.dat","w+"或"bi.dat","r+"
              評析:本題的考點(diǎn)是fopen()函數(shù),此函數(shù)的格式是fopen(文件名,使用文件方式),題目的要求是將從鍵盤讀入的文本寫到文件中,因此選擇的打開方式應(yīng)該是"w"(只寫);蛘呤亲x寫"r+"或"w+"。
              
              (17)以下程序是從終端讀入數(shù)據(jù)到數(shù)組中,統(tǒng)計(jì)其中正數(shù)的個(gè)數(shù),并計(jì)算它們的和。請?zhí)羁铡?BR>  main()
              {
              int i,a[20],sum,count;
              sum=count= 【17】;
              for(i=0;i<20;i++)scanf("%d", 【18】  );
              for(i=0;i<20;i++)
              {
              if(a[I]>0)
              { count++;
              sum+=  【19】 ;
              }
              }
              printf("sum=%d,count=%d\n",sum,count);
              }
              答案:【17】0
              【18】&a[i]
              【19】a[i]
              評析:本題要求從終端讀入數(shù)據(jù)到數(shù)組中,統(tǒng)計(jì)其中正數(shù)的個(gè)數(shù),并計(jì)算它們的和。程序中首先要對存放正數(shù)個(gè)數(shù)的變量count及存放和值的變量sum初始化為0,所以第一空應(yīng)填:0。接著要求從終端讀入數(shù)據(jù)到數(shù)組中,可以通過scanf函數(shù)實(shí)現(xiàn),因此第二空應(yīng)填:&a[i]。最后通過sum+=a[i];語句累加正數(shù)a[i]的值到sum中,因此第三空應(yīng)填:a[i]。
              
              (18)若變量n中的值為24,則pint函數(shù)共輸出 【20】 行。
              void prnt(int n,int aa[])
              { int i;
              for(I=1;i<=n;i++)
              {  printf("%6d",aa[I]);
              if(!(i%5,J)printf("\n");
              }
              printf("\n");
              }
              答案:【20】5
              評析:本題的關(guān)鍵在于if(!(i%5))printf("\n");這句,即如果i可被5整除時(shí),則換行。i值為24,可以被5整除4次,并余4,因此,prnt函數(shù)共輸出5行,最后一行有4個(gè)

            上一頁  [1] [2] 

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