版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
國家二級C語言機試(C語言程序設(shè)
計)模擬試卷1(共9套)
(共290題)
國家二級C語言機試(C語言程序設(shè)
計)模擬試卷第1套
一、選擇題(本題共35題,每題1.0分,共35分。)
1、要求通過while循環(huán)不斷讀入字符,當(dāng)讀入字母N時結(jié)束循環(huán)。若變量己正確
定義,以下正確的程序段是
A、while(ch=getchar()='N')printf("%c",ch);
B、while(ch=getchar()=="N")printf("%cn,ch);
C>while((ch=getchar())!=,N,)printf(,'%c",ch);
D、\vhile((ch=getchar())==,N,)printfi("%c%ch);
標(biāo)準(zhǔn)答案:C
知識點解析:while循環(huán)的執(zhí)行過程如下:①計算while后面圓括號中表達式的
值,當(dāng)值為非0時,執(zhí)步驟②;當(dāng)值為0時,執(zhí)行步驟④:②執(zhí)行循環(huán)體一次:
③轉(zhuǎn)去執(zhí)行步驟①;④退出循環(huán)。在選項C)中,表達式(ch=getchar())!=,N,表示
輸入的字符不等于N,如果這個條件表達式成立,則執(zhí)行循環(huán)體,打印輸出輸入的
字符。如果這個條件表達式不成立,即輸入的字符等于N,則退出循環(huán)。
2、若有以下程序main(j{inta=-2,b=0;while(a++)++b:printf(n%d,%d\n",
a,b);)則程序的輸出結(jié)果是
A、0,2
B、1,2
C、1,3
D、2,3
標(biāo)準(zhǔn)答案:B
知識點解析:循環(huán)體執(zhí)行兩次,第一次表達式a++值為一2,a的值為一1,執(zhí)行循
環(huán)體++b,b值為1,第二次表達式a++值為-1,a的值等于0,執(zhí)行++b,b值為
2,第三次判斷條件a++,表達式值為0,不執(zhí)行循環(huán)體,但是條件判斷以后,a的
值為1。
3、由以下while構(gòu)成的循環(huán),循環(huán)體執(zhí)行的次數(shù)是intk=O;while(k=l)k++;
A、一次也不執(zhí)行
B、執(zhí)行一次
C、無限次
D、有語法錯,不能執(zhí)行
標(biāo)準(zhǔn)答案:C
知識點解析:循環(huán)條件表達式為賦值表達式k=l,因此循環(huán)執(zhí)行無限次。
4、有以下程序main(){inta=—2,b=0;while(a++&&++b);printf("%d,%d\
n,,a,b);)程序運行后輸出結(jié)果是
A、0,3
B、1,2
C、1,3
D、0,2
標(biāo)準(zhǔn)答案:B
知識點解析:循環(huán)體為空,共執(zhí)行2次。第一次變量a初值為一2,b初值為0,表
達式a++&&++b值為1,同時a的值為一1,b的值為1,第二次循環(huán)條件判斷以
后,a的值為0,b的值2,執(zhí)行循環(huán)體空,第三次判斷條件表達式值為0,不執(zhí)行
循環(huán)體,而a的值為1,但是表達式a十十的值為0,囚此不計算表達式十十b的值,b
的值仍為2。
5、關(guān)于do循環(huán)體while(條件表達式):以下敘述中正確的是
A、循環(huán)體的執(zhí)行次數(shù)總是比條件表達式的執(zhí)行次數(shù)多一次
B、條件表達式的執(zhí)行次數(shù)總是比循環(huán)體的執(zhí)行次數(shù)多一次
C、條件表達式的執(zhí)行次數(shù)與循環(huán)體的執(zhí)行次數(shù)無關(guān)
D、條件表達式的執(zhí)行次數(shù)與循環(huán)體的執(zhí)行次數(shù)一樣
標(biāo)準(zhǔn)答案:D
知識點解析:do…while語句先執(zhí)行語句,后判斷表達式的值0故do…Vwhile語句
又稱“直到型,,循環(huán)結(jié)構(gòu),由于是先執(zhí)行后判斷,因比do…while語句的循環(huán)語句至
少被執(zhí)一次,循環(huán)條件至少判斷一次。
6、以下不構(gòu)成無限循環(huán)的語句或語句組是
A、n=0;do{++n;)while(n<=0);
B、n=0;while(l){n++;}
C^n=10;while(n):{n-;)
D、fbr(n=0,i=l;;i+-)n+=i;
標(biāo)準(zhǔn)答案:A
知識點解析:選項B)中while(l)永遠為真所以進入死碉環(huán),選項C)中whiIe(n=10)
同理,選項D)中for循環(huán)沒有循環(huán)限定條件也將進入無限循環(huán),只有選項A)中
while(nV=0)循環(huán)判定成立,循環(huán)將不進入無限循環(huán)。
7、有以下程序main(){inti=5;do{if(i%3=l)if(i^5==2){prmtf(,,*%d%i);
break:)i++;)while(i!=0);printf("\n”);)程序的運行結(jié)果是
A、*3*5
B、*5
C、*7
D、*2*6
標(biāo)準(zhǔn)答案:C
知識點解析:由于循環(huán)變量i的初值等于5,所以第一、二次進入do…while循環(huán)
語句時,條件語句if(i%3=l),if(i%5=2){printf("*%d”,i);break;}不執(zhí)行,只
執(zhí)行i++語句。當(dāng)行7時,滿足條件語句if(i%3==l),if(i%5==2){printf(H*%d",
i);break:},所以輸出*7,結(jié)束循環(huán)。
8、若變量已正確定義,有以下程序段i=0;doprintf(n%d,i);while(i++);
printf(n%d\n",i);其輸出結(jié)果是
A、0,0
B、1,1
C、0,1
D、程序進入無限循環(huán)
標(biāo)準(zhǔn)答案:C
知識點解析:do…while循環(huán)的執(zhí)行過程如下:①執(zhí)行do后面的循環(huán)體中的語
句。②計算while后一對圓括號中表達式的值。當(dāng)值為非0時,轉(zhuǎn)去執(zhí)行步驟
①:當(dāng)值為。時,執(zhí)仃步驟③。③退出do…while循環(huán)。對于本題變量i的初始
值等于“0”,接著執(zhí)行do后而的循環(huán)體中的語句,輸出變量i的值0。再判斷while
后面括號中表達式i++的值,其值為0,所以循環(huán)垢束。此時變量i的值經(jīng)過自加
已經(jīng)變?yōu)?,所以再次輸出i值'T'。
9、若有以下程序main。{inta==—2,b=0;do{++b;}while(a++);printf("%d,%d
\n'\a.h):)則程序的輸出結(jié)果是
A、0,2
B、1,2
C、1,3
D、2,3
標(biāo)準(zhǔn)答案:c
知識點解析:由于a的初始值等于一2,所以while循環(huán)語言執(zhí)行二次結(jié)束,第一
次a=-2,b=l,然后判斷循環(huán)條件a++非零,執(zhí)行第二次循環(huán)體a=-l,b=2,判
斷循環(huán)條件非零,執(zhí)行循環(huán)體a=0,b=3,判斷循環(huán)條件為0,此時變量a的值等于
lo
10>有以卜程序main。{inta=3;do{printf(M%d,",a—=2);}while(!(—a));
printf(”\n");}程序運行后的輸出結(jié)果是
A、1,
B、I,-2,
C、3,0,
D、1,0
標(biāo)準(zhǔn)答案:B
知識點解析:循環(huán)體執(zhí)行兩次。首先輸出a=l,然后判斷表達式!(-a),a為0,循
環(huán)條件表達式值為1,執(zhí)行第二次循環(huán)體,輸出歸一2。判斷循環(huán)條件表達式值為
0,循環(huán)退出。
11、若i和k都是int類型變量,有以下for語句「or(i=0,k=-l;k=l;
k++)printf(”*****\n");下面關(guān)于語句執(zhí)行情況的敘述中正確的是
A、循環(huán)體執(zhí)行兩次
B、循環(huán)體執(zhí)行一次
C、循環(huán)體一次也不能執(zhí)行
D、構(gòu)成無限循環(huán)
標(biāo)準(zhǔn)答案:D
知識點解析:本題考查for循環(huán)。本題的for循環(huán)初始條件為i=0,k=l:循環(huán)結(jié)束
條件為k=l永遠為真(k不為0),因此循環(huán)不能結(jié)束。
12、若k是int類型變量,且有以下for語句1for(k=-1;k<0;k++)printf("****
\n");下面關(guān)于語句執(zhí)行情況的敘述中正確的是
A、循環(huán)體執(zhí)行兩次
B、循環(huán)體執(zhí)行一次
C、循環(huán)體一次也不執(zhí)行
D、構(gòu)成無限循環(huán)
標(biāo)準(zhǔn)答案:B
知識點解析:本題考查for循環(huán)的使用。在程序中,for循環(huán)的初始值k=-1,循環(huán)
結(jié)束條件是kVO,每次循環(huán)k增加1,第一一次進入循環(huán)的時候k為一1,k小于
0,執(zhí)行打印,然后k的值變成0,下次進入循環(huán)k不小于0,循環(huán)結(jié)束,因此循環(huán)
只能執(zhí)行一次C
13、有以下程序段inti,n;for(i=0;i<8;i++){n=rand()%5;switch(n){case1:
case3:primf("%d\n",n);break;case2:case4:printf(H%d\n",n);
continue:case0:exit(0);}printf("%d\n'1,n);}以下關(guān)于程序段執(zhí)行情況的敘
述,正確的是
A、當(dāng)產(chǎn)生的隨機數(shù)n為4時結(jié)束循環(huán)操作
B、當(dāng)產(chǎn)生的隨機數(shù)n為1和2時不做任何操作
C、當(dāng)產(chǎn)生的隨機數(shù)n為0時結(jié)束程序運行
D、for循環(huán)語句固定執(zhí)行8次
標(biāo)準(zhǔn)答案:C
知識點解析:rand。函數(shù)功能為產(chǎn)生一個隨機數(shù),rand()%5,則產(chǎn)生0?4之間的任
意隨機數(shù),當(dāng)產(chǎn)生的隨機數(shù)n為。時,執(zhí)行“case。:exit(O)”這條語句,結(jié)束程序的
運行。
14、有以下程序程ncludeVsidio.h>main(){inty=9;for(;y>0;y-?)if(y%
3==O)printf("%d",-y);}程序的運行結(jié)果是
A、963
B、852
C、741
D、875421
標(biāo)準(zhǔn)答案:B
知識點解析:y的值的初值為9,所以在for循環(huán)中,當(dāng)y的值為9、6或3時,if
語句的條件成立,執(zhí)行輸出句,輸出表達式-y的值。因為自減符號在y的前面,
所以首先y的自減1,然后再輸出y的值,故輸出結(jié)果為852。
15、有以下程序#inckide<stdio.h>main(){inii,j,m=l;for(i=l;i<3;i++)
{for(j=3;j>0;j—){if(i*j>3)break;m*=i*j;}}printf("m=%d\n",m);}程
序運行后的輸出結(jié)果是
A^m=2
BNm=4
C、m=5
D^m=6
標(biāo)準(zhǔn)答案:D
知識點解析:這道題考查了for循環(huán)的嵌套應(yīng)用。對于外層for循環(huán)來說,變量i從
1增到2,循環(huán)執(zhí)行2次。當(dāng)變量i的值等于1時,對于內(nèi)層for循環(huán)水說,變量i
從3減到1,求得變量m的值等于6。當(dāng)變量i的值等于2時,第一遍執(zhí)行內(nèi)層for
循壞,變量i的值等于3,那么i*j的值等于6,其值大于3,這時執(zhí)行break語
句,退出內(nèi)層for循環(huán)的執(zhí)行。所以程序輸出變量m的值為6。
16、有以下程序#includeVstdio.h>voidmain(){intc=0,k;for(k=1;k<3:
k++)switch(k){default:c+=k;case2:C++;break;case4:c+=2;break;}
printf("%d\n”,c):!
A、9
B、7
C、5
D、3
標(biāo)準(zhǔn)答案:D
知識點解析:在這段程序中,整型變量c的初始值賦為0,在第一次執(zhí)行for循環(huán)
語句時,因為此時變量k的值等于1,所以在swiich語句中首先執(zhí)行defaull語句,
給變量c的值加1,因為在defauk語句后面沒有break語句,所以就會接著執(zhí)行
case2這條語句,再給變量c的值加1,其值變?yōu)?,這時退出switch語句塊,進
入第二次for循環(huán),此時k的值等于2,就會執(zhí)行swiich語句塊中的case2這條語
句,再給變量c的值加1,這時變量c的值就是3,此時退出switch語句塊,循環(huán)
變量k的值加1,成為3,此時已不再滿足循環(huán)條件,執(zhí)行程序中的最后一條語
句,把變量c的值再屏幕上輸出。
17、有以下程序程ncludeVsidio.h>main(){inti,j;for(i=3;i>=l;i-)
{for(j=l;j<=2;j++)printf("%d",i+j);printf(n\nM);}}程序的運行結(jié)果是
A、432543
B、233445
C、453423
D、233423
標(biāo)準(zhǔn)答案:C
知識點解析:本題中的外層行變量i從3逐次遞減到1,共輸出3行。內(nèi)層列變量i
每次從1遞增到2,每行輸出2個數(shù)字。所以當(dāng)i=3時,第一行輸出i+l=4i+2=5,
即45;當(dāng)i=2時,第一行輸出i+l=3和i+2=4,即34;當(dāng)i=l時,第一行輸出
i+l=2和i+2=3,即23。
18、設(shè)變量己正確定義,則以下能正確計算kn!的程序段是
A、f=0;for(i=l;i<=n;i++)f*=i;
B、f=l;for(i=l;i<n;i++)f*=i;
C^f=I;for(i=n;i>1;i++)f*:=i;
D、f=l;for(i=n;i>=2;i—)f*=i;
標(biāo)準(zhǔn)答案:D
知火點解析:本題主要考查for循環(huán)的使用。題目要求計算階乘n!,通過for循環(huán)
來實現(xiàn),循環(huán)變量i可以從1到n(包括n)或者從n到1,在循環(huán)體內(nèi)做累乘。選項
A)中,累乘變量的初值為0,最終計算結(jié)果也為0;選項B)中循環(huán)次數(shù)為n—1
次,累乘結(jié)果少乘了n;選項C)是死循環(huán);選項D)正確。
19、有以下程序main。{inti;for(i=l;i<=40;i++){if(i++%5==0)if(++i%
8==0)printf(,,%d",i);)printf(”\n");}執(zhí)行后的輸出結(jié)果是
A、24
B、5
C、32
D、40
標(biāo)準(zhǔn)答案:c
知識點解析:在for循環(huán)體中,先判斷自變量i能否被5整除,然后自加兩次,最
后判斷i能否被8整除。當(dāng)for循叫執(zhí)行到第30次時,i的值為30能被5整除,然
后i經(jīng)過兩次自加1運算,值變?yōu)?2,能被8整除,放執(zhí)行“printf(“%d“i):”語
句,即輸出32o
20>有以下程序程ncludeVsidio.h>voidmain(){charb,c;inti;b='a';
c='A';for(i=0;i<6:i++){if(i%2)putchar(i+b);elseputchar(i+c);}printf("\
n");}程序運行后的輸出結(jié)果是
A、ABCDEF
B、aBcDeF
C^abcdef
D、AbCdEf
標(biāo)準(zhǔn)答案:D
知識點解析:循環(huán)變量i從0依玖遞增到5,依次輸出字母A,b,C,d,E,fo
21>有以下程序main(){inta=l,b=2:for(;a<8;a++){b+=a;a+=2;)
printf("%d,%d\n”,a,b);}程序運行后的輸出結(jié)果是
A、8,11
B、10,14
C、7,11
D、9,18
標(biāo)準(zhǔn)答案:B
知識點解析:在這段程序中變量a的初值等于1,變量b的初值等于2。第1次執(zhí)
行for循環(huán)語句后,變量a的值等于3,變量b的值等于3。第2次執(zhí)行for循環(huán)
后,變量a等于6,變量b的值等于7。第3次執(zhí)行for循環(huán)后,變量a等于9,變
量b的值等于14。第4次執(zhí)行for循環(huán)后,變量a等于10,這時退出for循環(huán),此
時變量b的值等于14。因而程序輸出變量a,b的值分別為10,I4o
22>有以下程序段inti,n;for(i=0;i<8;i++){n=rand()%5;switch(n){case
1:case3:printf("%d\nH,n);break;case2:case4:printf("%d\n",n);
continue:case0:exit(O);}printf("%d\n",n)?)
A、當(dāng)產(chǎn)生的隨機數(shù)n為4時結(jié)束循環(huán)操作
B、當(dāng)產(chǎn)生的隨機數(shù)n為1和2時不做任何操作
C、當(dāng)產(chǎn)生的隨機數(shù)n為。時結(jié)束程序運行
D、for循環(huán)語句固定執(zhí)行8次
標(biāo)準(zhǔn)答案:C
知識點解析:rand()函數(shù)功能為產(chǎn)生一個隨機數(shù),rand()%5,則產(chǎn)生0-4之間的任
意隨機數(shù),當(dāng)產(chǎn)生的隨鞏數(shù)n為0時■,執(zhí)行case。:cxit(0)這條語句,結(jié)束程序的
運行。
23>若有以下程序main(){inta=6,b=0,c=0;for(;a;){b+=a;a—=++c;|
printf("%d,%d,%d\n",a,b,c);)則程序的輸出結(jié)果是
A、1,14,3
B、0,18,3
C、0,14,3
D、0,14,6
標(biāo)準(zhǔn)答案:C
知識點解析:循環(huán)體執(zhí)行三次,a初值6,第一次執(zhí)行循環(huán)體,b=6,a=5o繼續(xù)執(zhí)
行循環(huán)體,b=ll,a=3,第三次執(zhí)行循環(huán)體,b=14,a=0,循環(huán)退出。
24>若有以下程序main。{inta=6,b=0,c=0;for(;a&&(b==0);){b+=a;a—
=c++;}printf("%d,%d,%d\n",a,b,c);}則程序的輸出結(jié)果是
A、6,0,0
B、5,6,0
C、6,6,1
D、5,6,1
標(biāo)準(zhǔn)答案:C
知識點解析:循環(huán)條什a&&(b=O),a非零同時b=0則執(zhí)行循環(huán)體,否則退出。
循環(huán)體執(zhí)行一次,此時b=6,a=6,c=lo
25、以下敘述中正確的是
A、對于“for(表達式1;表達式2;表達式3)循環(huán)體”首先要計算表達式2的值,以
便決定是否開始循環(huán)
13、對于、'for(表達式1;表達式2;表達式3)循環(huán)體”,只在個別情況下才能轉(zhuǎn)換成
while語句
C、只要適當(dāng)?shù)匦薷拇a,就可以將do-while與while相互轉(zhuǎn)換
D、如果根據(jù)算法需要使用無限循環(huán)(即通常所稱的“死循環(huán)”),則只能使用while語
句
標(biāo)準(zhǔn)答案:C
知識點解析:while和do...while語句和for語句很容易進行相互轉(zhuǎn)換。對于for循
環(huán)的執(zhí)行過程如下:①計算表達式1。②計算表達式2。若其值為非0,轉(zhuǎn)步驟
③:若其值為0,轉(zhuǎn)步驟⑤。③執(zhí)行一次for循環(huán)體。④計算表達式3,轉(zhuǎn)向步螺
②。⑤結(jié)束循環(huán)。任何循環(huán)都有可能成為死循環(huán)。
26、若有以下程序#includechar*a="you":charb[]="WelcomeyoutoChina!";
main(){inti,j=0;char*p;for(i=0;b[i]!=,\09;i++){if(*a==b[i]){p=a;for(j=i;
*p!=*\0,;j++){if(*p!=b[j])break;p++;}\O')break;}}printf("%s",
&b[i]);}則程序的輸出結(jié)果是
A^youtoChina!
B、toChina!
C、meyoutoChina!
D、China!
標(biāo)準(zhǔn)答案:A
知識點解析:程序中循環(huán)部分的主要功能是,在字符串b中尋找是否含有子串a(chǎn),
如果含有則退出,此時i為子串a(chǎn)在字符串b中第一次出現(xiàn)的位置,因此最后的輸
出函數(shù)則從第i個字符開始一直輸出到字符串的末尾。
27、以下程序段中的變量已正確定義for(i=0;i<4:i++,i++)for(k=l;k<3;
k++):printfC'*");程層段的輸出結(jié)果是
A、********
B、****
C、**
D、*
標(biāo)準(zhǔn)答案:D
知識點解析:本題考查循環(huán)語句,題中第二個(內(nèi)層)「or循環(huán)之后有一個分號,意
思是每次循環(huán)種的操作為空,不執(zhí)行任何操作。冉循環(huán)結(jié)束后執(zhí)行printf語句,即
只打出一個*。
28、有以下程序main。{inti,j;fbr(i=l;i<4;i++){fbr(j=i;j<4;j++)
prinlf("%d*%d=%d”,i,j,i*j);printf("\n");)}
A、1*1=11*2=21*3=32*1=22*2=43*1=3
B、1*1=11*2=22*2=41*3=32*3=63*3=9
C、1*1=11*2=21*3=32*2=42*3=63*3=9
D、1*1=12*1=22*2=43*1=33*2=63*3=9
標(biāo)準(zhǔn)答案:c
知識點3析:外層foi?循環(huán)自變量i從1開始,每次循環(huán)后增1,直到i等于3結(jié)
束。對于外層循環(huán)自變量i的每一個值,內(nèi)層循環(huán)的自變量i每次從i開始,每次
循環(huán)后增1,直到j(luò)等于3結(jié)束。所以往每次外循環(huán)開始后,內(nèi)層循環(huán)在一行先打
印力=兩個乘數(shù)的積,然后回車換行,下次循環(huán)從下一行開始打印輸出結(jié)果。
29、有以下程序#includeVstdio.h>main(){intij?m=55;for(i=l;i<=3;i++)
for(j=3;j<=i;j++)m=m%j;printf("%d\n",m);}程序的運行結(jié)果是
A、0
B、1
C、2
D、3
標(biāo)準(zhǔn)答案:B
知識點解析:在程序中,內(nèi)層循環(huán)判斷條件為“"j〈=i",而i的初值為3,故當(dāng)外層
循環(huán)變量i的值為1和2時,內(nèi)層循環(huán)體都不會被執(zhí)行。只有當(dāng)i和j都等于3時
循環(huán)才會執(zhí)行一次。因為m的值為55對3求余結(jié)果為1。
30、以下敘述中正確的是
A、循環(huán)發(fā)生嵌套時,最多只能兩層
B、三種循環(huán)for,while,do-while可以互相嵌套
C、循環(huán)嵌套時,如果不進行縮進形式書寫代碼,則會有編譯錯誤
D、for語句的圓括號中的表達式不能都省略掉
標(biāo)準(zhǔn)答案:B
知識點解析:在一個循環(huán)體內(nèi)又完整包含了另一個循環(huán),稱為循環(huán)嵌套。循環(huán)的嵌
套可以多層,但每一層循環(huán)在邏輯上必須是完整的。for循環(huán)、while循環(huán)、do-
while循環(huán)可以互相嵌套,但每層循環(huán)在邏輯上必須完整。而在for語句中,for語
句中的表達式可以部分或全部省略,但兩個“;”不可省略。
31、有以下程序main。{inti,j,x=0:for(i=0;i<2;i++){x++;for(j=0;j<
=3;j++){if(j%2)continue;x++;}x++;)printf(,,x=%d\nH,x);}程序執(zhí)行后
的輸出結(jié)果是
A、x=4
B、x=6
C^x=12
D、x=8
標(biāo)準(zhǔn)答案:D
知識點解析:在第1次外層for循環(huán)中,首先x++得到x=l。進入到內(nèi)層for循環(huán),
只有循環(huán)變量i的值為奇數(shù)時,變鞋x的值才自加1,所以在內(nèi)層for循環(huán)執(zhí)行過
程中,變量x的值自加兩次,當(dāng)退出內(nèi)層for循環(huán)時,x=3,然后執(zhí)行x++,得至I」
x=4o在進入執(zhí)行第2次外層for循環(huán)中,首先x++得到x=5。進入到內(nèi)層fof循
環(huán),只有循環(huán)變量j的值為奇數(shù)時,變量x的值才自加1,所以在內(nèi)層for循環(huán)執(zhí)
行過程中,變量x的值自加1兩次,當(dāng)退出內(nèi)層fo「循環(huán)時,x=7,然后執(zhí)行x++,
得到x=8,所以打印輸出變量x的值為8。
32、有以下程序程ncludeVstdio.h>main。{intx=8;for(;x>0;x—){if(x%
3){printf("%d,”,x-);continue;}prinff("%d,",-x);}}程序的運行結(jié)果是
A^8,7,5,2,
B、9,7,6,4,
C、7,4,2,
D、8,5,4,2,
標(biāo)準(zhǔn)答案:D
知識點解析:“x-」表示先執(zhí)行程序,再令x的值減1;而“-x”表示令x的值減1,
再執(zhí)行程序。x=8時,x%3為非0值,執(zhí)行語句“{printf("%d,",x-);
continue;}“,輸出“8,”,此時經(jīng)過x--,x的值變?yōu)?,跳出此次循環(huán);執(zhí)行“x?
x=6,x%3=0”,后面語句不執(zhí)行,執(zhí)行語句“pijnt("%d,",-x);”,輸出
“5,”;執(zhí)行for語句中的x--,得到x=4,判斷x%3,輸出“4,”,執(zhí)行兩次x--
后,x=2,執(zhí)行“{printf("%d,",X-);continue;}”后,輸出“2,”;然后執(zhí)行兩次
x--后,x=0,不符合“x>0”,循環(huán)全部結(jié)束。
33、以下敘述中正確的是
A、continue語句的作用是:使程序的執(zhí)行流程跳出包含它的所有循環(huán)
B、break語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)
C>在循環(huán)體內(nèi)使用break語句和continue語句的作用相同
D、break語句只能用于switch語句體中
標(biāo)準(zhǔn)答案:B
知識點解析:只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句。continue語句的
作用是結(jié)束本次循環(huán),即跳過本次循環(huán)體中continue語句后面的語句,立刻進行下
一次的循環(huán)條件判斷,可以理解為僅結(jié)束本次循環(huán)。而break語句可以使程序流程
跳出switch語句體,也可用break語句在循環(huán)結(jié)構(gòu)中終止循環(huán)體。
34、以下敘述中正確的是
A、break語句不能用于提前結(jié)束for語句的本層循環(huán)
B、continue語句使得整個循環(huán)終止
C、使用break語句可以使流程跳出switch語句體
D、在foi■語句中,conlinue與break的效果是一樣的,可以互換
標(biāo)準(zhǔn)答案:C
知識點解析:用break語句可以使程序流程跳出switch語句體,也可用break語句
在循環(huán)結(jié)構(gòu)中終止循環(huán)體,從而提前結(jié)束循環(huán),而continue語句的作用是結(jié)束本次
循環(huán),即跳過本次循環(huán)體中continue語句后面的語句,立刻進行下一次的循環(huán)條件
判斷,可以理解為僅結(jié)束本次循環(huán)。
35、以下敘述中正確的是
A、當(dāng)break出現(xiàn)在循環(huán)體中的switch語句體內(nèi)時,其作用是跳出該switch語句
體,并中止循環(huán)體的執(zhí)行
B、只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句
C、continue語句的作用是:在執(zhí)行完本次循環(huán)體中剩余語句后,中止循環(huán)
D、在while語句和do-whilc語句中無法使用continue語句
標(biāo)準(zhǔn)答案:B
知識點解析:break語句可以使程序流程跳出switch語句體,也可用break語句在
循環(huán)結(jié)構(gòu)中終止循環(huán)體,從而提前結(jié)束循環(huán),而當(dāng)break出現(xiàn)在循環(huán)體中的switch
語句體內(nèi)時,其作用只是跳蹦該switch語句體,并不能中止循環(huán)體的執(zhí)行。若想
強行終1)=循環(huán)體的執(zhí)行,可以在循環(huán)體中,但并穴在switch語句中設(shè)置break語
句,滿足某種條件則跳出循環(huán)體。cominue語句的作用是結(jié)束本次循環(huán),在while
和do?while循環(huán)中,conlinue語句使得流程直接跳到循環(huán)控制條件的測試部分,然
后決定循環(huán)是否繼續(xù)進行。
國家二級C語言機試(C語言程序設(shè)
計)模擬試卷第2套
一、選擇題(本題共27題,每題1.0分,共27分。)
1、若變量己正確定義,則以下語句的輸出結(jié)果是s=32:S'=32:printfC,%
d",s);
A、-1
B、1
C、32
D、0
標(biāo)準(zhǔn)答案:D
知識點解析:“按位異或”運算的規(guī)則是:參與運算的兩個運算數(shù)中相對應(yīng)的二制位
上,若數(shù)相同,則該位的結(jié)果為0;若數(shù)不同,則該位的結(jié)果為1。因為語句$=
32:s'=32;相當(dāng)于s與自身做按位異或運算,所以其結(jié)果等于0。
2、若有以下程序main(i{intc;c=KT5;printf(H%d\n",c);}則程序的輸出
結(jié)果是
A、15
B、10000
C、5
D、105
標(biāo)準(zhǔn)答案:A
知識點解析:按位異或(人)的運算規(guī)則是:參與運算的兩個運算數(shù)中相對應(yīng)的二進
制位上,若數(shù)相同,則該位的結(jié)果為0;若數(shù)不同,該位的結(jié)果為1。整數(shù)10和5
的二進制編碼分別為1010和0101,異或結(jié)果為1111,其十進制數(shù)據(jù)位15。
3、若有以下程序main(){iritc;c=13I5;printf("%d\n",c):}則程序的輸出
結(jié)果是
A、15
B、18
C、13
D、5
標(biāo)準(zhǔn)答案:C
知火點解析:按位或(1)的運算規(guī)則是:參加運算的兩個運算數(shù)中,只要兩個相應(yīng)
的二進制位中一個為1,則該位的運算結(jié)果即為1;只有當(dāng)兩個相應(yīng)位的數(shù)都為0
時,該位的運算結(jié)果才為0。13的二進制位1101,5的二進制位0101,或運算的
結(jié)果為1101,因此值為13。
4、有以下程序main(){inti=0;i=~i;.printf("%d\n",i);}程序運行后的
輸出結(jié)果是
A、0
B、I
「、8
D、-1
標(biāo)準(zhǔn)答案:D
知識點解析:運算符(?)是位運算符中唯一的一個單目運算符,運算對象應(yīng)置于運
算符的右邊,其運算功能是把運算對象的內(nèi)容按位取反(使每一位上的0變1,1變
0)oi的初值為0,二進制位00000000,因此取反后結(jié)果為11111111,最高位為符
號位,為-1的補碼形式,因此輸出結(jié)果為一1.
5、有以下程序main(){imi=l;i=iF;printf("%d\n”,i);}程序運行后的輸
出結(jié)果是
A、-1
B、0
C、1
D、7
標(biāo)準(zhǔn)答案:B
知識點解析:按位異或(入)的運算規(guī)則是:參與運算的兩個運算數(shù)中相對應(yīng)的二進
制位上,若數(shù)相同,則該位的結(jié)果為0;若數(shù)不同,該位的結(jié)果為1。本題中表達
式內(nèi)的值必為0,因為i的各個位置的二進制值相同。
6、下面關(guān)于位運算符的敘述,正確的是
A、#表示“按位異或”的運算
B、II表示“按位或,的運算
C、~表示“按位異或”的運算
D、&表示“按位與”的運算
標(biāo)準(zhǔn)答案:D
知識點解析:C語言提供了6種位運算符,各種位運算符的含義見下表:
_____________各種位運算符及其含乂
含義優(yōu)知1
按位求反1(高)
?左移2
?右移2
&按位與3
A按位異或4
1技位或5(低)
7、以下敘述中正確的是
A、打開一個己存在的文件并進行了寫操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋
B、在一個程序中當(dāng)對文件進行了寫操作后,必須先關(guān)閉該文件然后再打開,才能
讀到第1個數(shù)據(jù)
C、C語言中的文件是流式文件,因此只能順序存取數(shù)據(jù)
D、當(dāng)對文件的讀(寫)操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失
標(biāo)準(zhǔn)答案:D
知識點解析:在C語言中,有兩種對文件的存取方式;順序存取和直接存??;如
果以“建的方式對一個已打開的文件進行寫操作后,則原有文件中內(nèi)容將保存,新
的數(shù)據(jù)寫在原有內(nèi)容之后。如果以“a+”的方式為讀和寫而打開一個文件,則既可
以對文件進行讀,也可以對文件進行寫,而且在讀和寫操作之間不必關(guān)閉文件,可
以從頭開始讀。當(dāng)對文件的讀(寫)操作完成之后,必須將它關(guān)閉。
8、下列關(guān)于C語言文件的敘述中正確的是
A、文件由結(jié)構(gòu)序列組成,可以構(gòu)成二進制文件或文本文件
B、文件由一系列數(shù)據(jù)依次排列組成,只能構(gòu)成二進制文件
C、文件由數(shù)據(jù)序列組成,可以構(gòu)成二進制文件或文本文件
D、文件由字符序列組成,其類型只能是文本文件
標(biāo)準(zhǔn)答案:C
知識點解析:在C語言中,對輸入、輸出的數(shù)據(jù)都按“數(shù)據(jù)流”的形式進行處理。
數(shù)據(jù)可以按文本形式或二進制形式存放在介質(zhì)上,因此文件可以按數(shù)據(jù)的存放形式
分為文本文件和二進制文件。
9、下面選項中關(guān)于“文件指針”概念的敘述正確的是
A、文件指針就是文件位置指針,表示當(dāng)前讀寫數(shù)據(jù)的位置
B、文件指針指向文件在計算機中的存儲位置
C、文件指針是程序中用FILE定義的指針變量
D、把文件指針傳給fscanf函數(shù),就可以向文本文件中寫入任意的字符
標(biāo)準(zhǔn)答案:C
知識點解析:文件指針實際上是指向一個結(jié)構(gòu)體類型的指針,這個結(jié)構(gòu)體中包含如
緩沖區(qū)的地址、在緩沖區(qū)中當(dāng)前存取的字符的位置、對文件是“讀”或“寫”、是否出
錯、是否已經(jīng)遇到文件結(jié)束標(biāo)志等信息。一般稱文件指針結(jié)構(gòu)體類型名為FILE,
可以用此類型名來定義文件指針?!靖袷健縁ILE*指針變量名【說明】FILE是一
個存儲文件信息的結(jié)構(gòu)體類型的變量。注意不要和文件位置指針混淆,在文件內(nèi)
部有一個位置指針,用以指示文件內(nèi)部的當(dāng)前讀寫位置。使用fgctc函數(shù),每讀寫
一次,該指針均向后移動,它不需在程序中定義說明,而是由系統(tǒng)自動設(shè)置的。而
文件指針是指向整個文件的,須在程序中定義說明,只要不重新賦值,文件指針的
值是不變的。fscanf函數(shù)可以向文本文件和二進制文件輸入數(shù)據(jù)。
10、設(shè)fp已定義,執(zhí)行語句Fp=fbpen("file","w”);后,以下針對文本文件file操
作敘述的選項中正確的是
A、寫操作結(jié)束后可以從頭開始讀
B、只能寫不能讀
C、可以在原有內(nèi)容后追加寫
D、可以隨意讀和寫
標(biāo)準(zhǔn)答案:B
知識點解析:本題考查文件操作°fopen的mode參數(shù)有多種類型:r以只讀方式打
開文件、r+以可讀寫方式打開文件、rb+以讀寫方式打開一個二進制文件、w以
只寫方式打開文件、w+以讀寫方式打開文件、wb+讀寫方式打開二進制文件。
11、以下函數(shù)不能用于向文件中寫入數(shù)據(jù)的是
A、fwrite
B、fputc
C、ftell
D、fprintf
標(biāo)準(zhǔn)答案:C
知識點解析:本題考查文件操作。ftell函數(shù)返回文件指針的當(dāng)前位置,其他的都寫
文件函數(shù)。
12、設(shè)文件指針fp已定義,執(zhí)行語句fp=fopen(“file”,"w");后,以下針對文本文
件file操作敘述的選項中正確的是
A、寫操作結(jié)束后可以從頭開始讀
B、可以在原有內(nèi)容后追加寫
C、可以隨意讀和寫
D、只能寫不能讀
標(biāo)準(zhǔn)答案:D
知識點解析:在題目中函數(shù)fopcn以“只寫”方式打開文件fileo
13、有以卜.程序#includemain(){FILE*f:f=fopen(Hfilea.txt",Hw");
fprintf(f;'abc");fclose(f):)若文本文件filea.txt中原有內(nèi)容為:hello,則運行以
上程序后,文件tilca.ixt中的內(nèi)容為
A、abclo
B、abc
C>hclloabc
D、abchello
標(biāo)準(zhǔn)答案:B
知識點解析:本題考查文件打開方式。
文件使用方式?義
只讀打開一個文本文件,只允許諼數(shù)據(jù)
只寫打開或建立一個文本文件,只允許寫數(shù)據(jù)
追加打開一個文本文件,并在文件末尾寫數(shù)據(jù)
"rb-只讀打開一個二迸制文件,只允許讀散據(jù)
“wb”只寫打開或建立一個二進制文件,只允許日敗泰
追加打開一個二進制文件,并在文件末尾號數(shù)據(jù)
y讀寫打開一個文本文件,允許讀和寫
“wt+"讀寫打開或建立一個文本文件,允許該寫
讀寫打開一個文本文件,允許讀?或在文件末追
加數(shù)據(jù)
-rb*"讀寫打開一個二進制文件,允許讀和寫
“wb?”讀寫打開或建立一個二進制文件,允許沒和寫
讀寫打開一個二進制文件,允許讀,或在文件末
-lb***
0整-----------------------------------------格式:文件指針名二
fopcn(文件名,使用文件方式)需要注意的是:用“w”打開的文件只能向該文件寫
入。若打開的文件不存在,則以指定的文件名建立該文件,若打開的文件已經(jīng)存
在,則將該文件刪去,重建一個新文件。
14、有以下程序#includemain。[FILE*fp;inti,a|6]={1,2,3,4,5,6);fp
=fopen("d2.dat",nw+");for(i=0;i<6;i++)fprintf(fp,n%d\n",a[i]);
rewind(fp);for(i—0;i<6;i++)fscanf(fp,"%d",&a[5-i]);fclose(fp);for(i—0;i
<6;i++)printf(M%d"a[i]);)
A、1,2,3,4,5,6
B、6,5,4,3,2,1,
C、4,5,6,1,2,3,
D、1,2,3,3,2,1,
標(biāo)準(zhǔn)答案:B
知識點解析:在程序中定義了一個整型數(shù)組a[6],并對它賦初值,并以寫入的方式
打開了文件d2.dato然后利用一個for循環(huán)把數(shù)組a中的元素數(shù)據(jù)寫入文件
d2.dal中,調(diào)用函數(shù)rewind把將文件內(nèi)部的位置指針重新指向一個文件的開頭,
再利用for循環(huán)語句把文件中的數(shù)據(jù)依次寫入到倒序排列的數(shù)組a中,最后輸出數(shù)
組a中的數(shù)組元素。
15、執(zhí)行以下程序后,test,txt文件的內(nèi)容是(若文件能正常打開)#includemain。
{HLE*tb;charts1="Fortran",*s2="Basic";if((tb=
fopen("test.txtM,,,wb,,))=NULL){printf(,'Can,topentest.txtfile\n");exit(l);}
fwrite(sl,7,1,fb);/*把從地址si開始的7個字符寫到fb所指文件中*/
fseek(fb,OL,SEEK_SET);/*文件位置指針移到文件開頭*/fwrite(s2,5,1,
fb));fclose(fb);)
Basican
B、BasicFortran
C、Basic
D^FortranBasic
標(biāo)準(zhǔn)答案:A
知識點解析:本題主要考查文件的基本操作。在main函數(shù)中,首先打開lexl.txl
文件,然后通過fwrite函數(shù)把si字符串寫到文件中,接下來通過fseek函數(shù)把文件
指針移動到文件開始,再調(diào)用fwrite函數(shù)把s2字符竄寫到文件中,s2的長度小于
si的長度,因此第二次寫的時候會覆蓋第一次寫的部分內(nèi)容,程序運行后
test,text中內(nèi)容為Basican。
16、讀取二進制文件的函數(shù)調(diào)用形式為:frcad(buffcr,size,count,fp));其中
buffer代表的是
A、一個整型變量.代表待讀取的數(shù)據(jù)的字節(jié)數(shù)
B、一個內(nèi)存塊的首地址,代表讀入數(shù)據(jù)存放的地址
C、一個文件指針,指向待讀取的文件
D、一個內(nèi)存塊的字節(jié)數(shù)
標(biāo)準(zhǔn)答案:B
知識點解析:buffer是數(shù)據(jù)塊的指針;對fread來說,它是內(nèi)存塊的首地址,輸入
的數(shù)據(jù)存入此內(nèi)存塊中;
17、有下列程序:#includemain(){FILE*fp;inta|10|={1,2,3},i,n;fp=
fopen("dl.daf,"w");for(i=0;i<3;i++)fprintf(fp;,%d,,,a[i]);fprintf(fp:'\
n");fclose(fp);fp=openf'd1.daf/'r");fscanf(fp,"%d",&n);fclose(fp);
printf("%d\n”,n);}程序的運行結(jié)果是
A、12300
B、123
C、I
D、321
標(biāo)準(zhǔn)答案:B
知識點解析:本題考查以讀和寫的方式打開文件對文件內(nèi)容操作的不同,fp=
fopen("dl.daC,”w");以可寫的方式為輸出建立新文本文件,調(diào)用printf,輸出
“123",fp=fopen("dl,dat","r");以只讀的方式打開文本文件,不能對文件內(nèi)容
進行操作。
18、以下敘述中錯誤的是
A、gets函數(shù)用于從終端讀入字符串
13、getchar函數(shù)用于從磁盤文件讀入字符
C、fpuls函數(shù)用于把字符串輸出到文件
D、fwrite函數(shù)用于以二進制形式輸出數(shù)據(jù)到文件
標(biāo)準(zhǔn)答案:B
知識點解析:本題考查的是輸入輸出函數(shù)的使用,乂ets和getchar函數(shù)用于從標(biāo)準(zhǔn)
輸入設(shè)備終端讀入字符串和字符,并非從磁盤文件讀入,fputs用于把字符串輸出
到文件,fwrite用于以二進制形式輸出數(shù)據(jù)到文件。
19、有以下程序程ncludemain。{FILE*pf;char*sI="China",*s2="Beijing";pf
=fopen("abc.dat","wb-f-*'):fwrite(s2,7,1,pf);rewind(pf):/*文件位置指
針回到文件開頭*/fwrite(sl?5,1,pf);fclose(pQ;}以上程序執(zhí)行后abc.dat
文件的內(nèi)容是
A^Chinang
B、China
C、ChinaBeijing
D^BeijingChina
標(biāo)準(zhǔn)答案:A
知識點解析:本題主考查函數(shù)fwrite的使用。函數(shù)fwrite的調(diào)用形式為:ini
fwrite(char*pt.unsignedsize,unsignedn.FILE*fp):其功能是把pt所指向的
n*size個字節(jié)輸出到fp所指文件中。在本題中fwric(s2,7,1,pf);的功能是把
字符串“Beijing”輸入到文件abc.dal中,然后調(diào)用rewind(pf),把文件位置指針回
到文件開頭,再調(diào)用fwrite(sl,5,1,Pf)把字符串“China”寫入到文件abc.dat
中,所以此時文件abc.dat的內(nèi)容為Chinang。
20、有下列程序:#includemain(){FILE*fp;intk,n,a[6]={1,2,3,4,5,
6);fp=fopen("d2.dat","w");fprintf(fp,"%d%d%d\n”,a[0],a[l],a[2]):
fprintf(fp,u%d%d%d\n",a|3],a|4],a|5]);fclose(fp);fp=fopen("d2.dat",
"r");fscanf(fp,n%d%d",&k,&n);printf(H%d%d\n",k,n);fclose(fp);)程
序運行后的輸出結(jié)果是
A、I4
B、123456
C>1234
D、i2
標(biāo)準(zhǔn)答案:B
知識點解析:用文件函數(shù)fopen打開d2.dat文件并把數(shù)組a[6]中的元素分兩行寫
入到d2.dat文件中,關(guān)閉文件。然后再次打開文件d2.dat,用fscanf()函數(shù)讀取
文件d2.dat中的數(shù)據(jù),因為每行沒有分隔符,所以每一行會被認(rèn)為是一個完整的
數(shù),并存入到變量k和n中,輸出變量k和n的值為123456。
21、有下列程序:includemain(){FILE*fp;inta[10]={1,2,3,0,0),i;
fp=fopen("d2.dal","wbM);fwtite(a,sizeof(int),5,fp);fwrite(a,sizeof(int),
5,fp);fclose(fp);fp=fopen(*'d2.dat'V'rb");fread(a,sizeof(int),10,fp);
tclose(tp);tor(i=。;i<]。;i+十)pnntf("%d”,a[ij);}程序的運行結(jié)果是
A、1,2,3,1,2,3,0,0,0,0,
B、1,2,3,0,0,1,2,3,0,0,
C、123,0,0,0,0,123,0,0,0,0,
D、1,2,3,0,0,0,0,0,0,0,
標(biāo)準(zhǔn)答案:B
知識點解析:首先用函數(shù)fopcn()以“wb”的方式開打文件“d2.dat”,然后調(diào)用兩次
fwrite函數(shù)將數(shù)組a的5個元素,依次輸出到文件fp中,共10個字節(jié),關(guān)閉文
件。再次打開文件,使用文件指針指向文件的開頭,調(diào)用fread函數(shù)從文件fp中讀
取這10個字節(jié)的數(shù)據(jù)到數(shù)組a中,此時數(shù)組a的內(nèi)容就變?yōu)椋?,2,3,0,0,1,
2,3,0,0),最后的輸出結(jié)果為“1,2,3,0,0,1,2,3,0,0”。
22、設(shè)fp為指向某二進制文件的指針,且已讀到此文件末尾,則函數(shù)feof(fp)的返
回值為
A、,\(r
B、0
C>NULL
D、非0值
標(biāo)準(zhǔn)答案:D
知識點解析:ANSIC提供的fcof函數(shù)的功能是判斷fp所指的文件的位置是否已達
到文件尾,如果達到文件尾,則feof函數(shù)的值為1,否則為0,表示文件尚未結(jié)
束。
23、有以卜程序#includemain。{FILE*fp;charstr[10J;fp=fbpen(Mmyfile.dat",
"W");fputs(Mabc",fp);fclose(fp);fp=fopen("myfile.dat","a+");fjprintf(fp,H%
d",28):rewind(fp):fscanf(fp,"%s”,str);puts(str);fclose(fp);}程序運行后的輸
出結(jié)果是
A、28c
B>abc28
C、abc
D、因類型不一致而出錯
標(biāo)準(zhǔn)答案:B
知識點解析:在程序中首先把字符串a(chǎn)bc寫入到文件myfile.dal中,然后再把整
數(shù)28追加到字符串a(chǎn)bc的后面,最后把文件myfile.dat的內(nèi)容讀入到字符串也
中,并把其內(nèi)容輸出。
24、以下程序依次把從終端輸入的字符存放到f文件中,用#作為結(jié)束輸入的標(biāo)
志,則在橫線處應(yīng)填入的選項是#includemain(){F【LE*fp;charch;fp=
fopen("fname","w"):while((ch=getchar())!='#')fputc();
fclose(fp);}
A、fp,ch
B、ch
C、ch,"fname"
D、ch,fp
標(biāo)準(zhǔn)答案:D
知識點解析:fputc()是以字符(字節(jié))為單位的讀寫函數(shù)。每次可從文件讀出或向文
件寫入一個字符。使用格式為fputc(ch,fp);其中ch是待輸出的某個字符,它可
以是一個字符常量,也可以是一個字符變量;fp是文件指針。fputc(ch,fp)的功能
是將字符ch寫到文件指針fp所指的文件中。如果輸出成功,fpuic函數(shù)返回所輸出
的字符:如果輸出失敗,則返回一個EOF值。EOF是在stdio.h庫函數(shù)文件中定
義的符號常量,其值等于-1。
25、以下程序用來統(tǒng)計文件中字符的個數(shù)(函數(shù)feof用以檢查文件是否結(jié)束,結(jié)束
時返回非零)#inckidemain(){FILE*fp:longnum=0,fp=fopen(,'fname.dat",
"r");while(){fgctc(fp);num++;)printf("num=%d\n'^num):
fclose(fp);}下面選項中,填入橫線處不能得到正確結(jié)果的是
A^feof(fp)
B、fcof(fp)==NULL
C>!feof(fp)
D、feof(fp)==0
標(biāo)準(zhǔn)答案:C
知識點解析:feof函數(shù)用來判斷文件是否結(jié)束。如果遇到文件結(jié)束,函數(shù)feof(fp))
的值為1,否則為0。題目橫線用于判斷文件不結(jié)束,讀出字符。文件不結(jié)束feof
值為0,若執(zhí)行循環(huán)則應(yīng)用表達式!feof(fp)。
26、下面關(guān)于“EOF”的敘述,正確的是
A、EOF的值等于0
B、文本文件和二進制文件都可以用EOF作為文件結(jié)束標(biāo)志
C、EOF是在庫函數(shù)文件中定義的符號常量
D、對于文本文件,fgelc函數(shù)讀入最后一個字符時,返回值是EOF
標(biāo)準(zhǔn)答案:c
知識點。析:EOF是在stdio.h庫函數(shù)文件中定義的符號常量,其值等于一1。
EOF用作文件結(jié)束標(biāo)志,在二進制或者文本文件內(nèi)部有一個位置指針,用以指示
文件內(nèi)部的當(dāng)前讀寫位置。使用fgelc函數(shù),每讀寫一次,該指針均向后移動,
27、若fp已定義為指向某文件的指針,且沒有讀到該文件的末尾,則C語言因數(shù)
feof(fp)的函數(shù)返回值是
A、0
B、非0
C、一1
D、EOF
標(biāo)準(zhǔn)答案:A
知識點解析:feof用來判斷文件是否結(jié)束。如果遇到文件結(jié)束,函數(shù)feof(fp)的值
為1,否則為0。
家二級C語言機試(C語言程序設(shè)
計)模擬試卷第3套
一、選擇題(本題共26題,每題1.0分,共26分。)
1、設(shè)有定義:struct{charmark[12];intnum1;doublenum2;Jtl?t2;若變量均
己正確賦初值,則以下語句中錯誤的是
A^t2.numl=tl.numl:
B、t2.mark=tl.mark;
C、tl=t2;
D^t2.num2=tl.num2:
標(biāo)準(zhǔn)答案:B
知識點解析:這個題目主要涉及到結(jié)構(gòu)體的定義與賦值操作。根據(jù)題意結(jié)構(gòu)體變量
tl,t2的成員變量mark是字符數(shù)組,對于字符數(shù)組之間的賦值操作應(yīng)該使用循環(huán)
語句對每個字符進行賦值,而選項A是用數(shù)組名實現(xiàn)字符數(shù)組之間的賦值操作,
是錯誤的。
2、有以下程序structA{inta;charb[10];doublec:);voidf(structAt);
main(){structAa={1001;'ZhangDa",1098.0);f(a);printf("%d,%s,%6.lf\
n",a.a,a.b,a.c);)voidf(structAl){t.a=1002;strcpy(t,b,
"ChangRong");t.c=1202.0:}程序運行后的輸出結(jié)果是
A、1002,ChangRong,1202.0
B、1001,ZhangDa,1098.0
C、1001,ChangRong,1098.0
D、1002,ZhangDa,1202.0
標(biāo)準(zhǔn)答案:B
知識點解析:在主函數(shù)中定義結(jié)構(gòu)體A的變量a,并對其賦初值,再調(diào)用函數(shù)
f(a),形參t接收實參的數(shù)據(jù),在函數(shù)f(。中對結(jié)構(gòu)體變量t的各個成員進行了賦值
操作,需要注意的,形參和實參之間是數(shù)據(jù)傳遞,因此對形參的操作對實參不產(chǎn)生
影響,因此在主函數(shù)輸出仍然輸出變量a的數(shù)據(jù)
3、若有以下程序structstu{char*name,gender:intscore;(;main(){structstua
={NULL,'m',290},b;a.name=(char*)malloc(10);strcpy(a.name,
"Zhao");b=a:b.gender=T;b.score=350;strcpy(b.name,"Qian");
primf("%s,%c,%d,”,a.name,a.g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 遵義市教育體育局直屬事業(yè)單位遵義市體育運動學(xué)校2025年公開招聘事業(yè)單位工作人員備考題庫及答案詳解參考
- 2026年結(jié)合醫(yī)療細分領(lǐng)域:如眼科、口腔、心血管等??圃O(shè)備服務(wù)合同
- 2025年張家港市第五人民醫(yī)院自主招聘編外合同制衛(wèi)技人員備考題庫附答案詳解
- 2025年中電科海洋信息技術(shù)研究院有限公司招聘備考題庫完整參考答案詳解
- 2025年醫(yī)保工作人員年終個人總結(jié)例文(五篇)
- 交流研討個人發(fā)言材料
- 國家知識產(chǎn)權(quán)局專利局專利審查協(xié)作北京中心福建分中心2026年度行政助理招聘備考題庫含答案詳解
- 黑龍江公安警官職業(yè)學(xué)院《德語聽力》2025 學(xué)年第二學(xué)期期末試卷
- 2025年阿克蘇市面向社會公開招聘警務(wù)輔助人員備考題庫及參考答案詳解一套
- 2025年廈門大學(xué)教育研究院行政秘書招聘備考題庫及答案詳解參考
- 2026富滇銀行公司招聘面試題及答案
- 2025年南京鐵道職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性測試題庫附答案
- 2025年網(wǎng)絡(luò)維護管理人員工作總結(jié)例文(2篇)
- 城銀清算服務(wù)有限責(zé)任公司2026年校園招聘16人備考題庫附答案
- 2025青海省生態(tài)環(huán)保產(chǎn)業(yè)有限公司招聘11人筆試考試參考題庫及答案解析
- 骨科VSD治療患者的體位管理護理
- 茶樓餐廳轉(zhuǎn)讓協(xié)議書
- 中國正常分娩臨床實踐指南
- 2025中國工業(yè)互聯(lián)網(wǎng)研究院校園招聘筆試歷年參考題庫附帶答案詳解
- 2025年河南豫能控股股份有限公司及所管企業(yè)第二批社會招聘18人筆試歷年參考題庫附帶答案詳解
評論
0/150
提交評論