重慶市計(jì)算機(jī)等級(jí)考試(二級(jí)C 語(yǔ)言)模擬試卷_第1頁(yè)
重慶市計(jì)算機(jī)等級(jí)考試(二級(jí)C 語(yǔ)言)模擬試卷_第2頁(yè)
重慶市計(jì)算機(jī)等級(jí)考試(二級(jí)C 語(yǔ)言)模擬試卷_第3頁(yè)
重慶市計(jì)算機(jī)等級(jí)考試(二級(jí)C 語(yǔ)言)模擬試卷_第4頁(yè)
重慶市計(jì)算機(jī)等級(jí)考試(二級(jí)C 語(yǔ)言)模擬試卷_第5頁(yè)
已閱讀5頁(yè),還剩50頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

C語(yǔ)言(二級(jí))筆試模擬試卷

(考試時(shí)間120分鐘,滿分共100分)

試卷I

-、單項(xiàng)選擇題(每小題1分,共20分)

1.若N為整型變量,則£。「("10;21;2-);循環(huán)里的循環(huán)體被()。

A)無(wú)限循環(huán)B)執(zhí)行9次C)執(zhí)行一次D)一次也不執(zhí)行

2.以下程序的輸出結(jié)果是()(注:備選答案中,一代表空格)

main()

printf(〃\n*sl=%15s*〃,“chinabeijing〃);

printf("\n*s2或-5s*〃,〃chi〃);

*sl二chinabeijing*B)*sl=chinabeijing___*

*s2=**chi*;*s2=chi*

*s1=*_chinabeijing*D)*sl=__chinabeijing*

*s2=_chi;*s2=chi_*;

3.設(shè)有整型變量a,單精度型變量f,雙精度型變量x,則表達(dá)式a+'b'+x*f值的類型為()。

A)intB)floatC)doubleD)不能確定

4.有以下說明語(yǔ)句,0<=iGO,則下面哪個(gè)是對(duì)數(shù)組元素的錯(cuò)誤引用

inta[]={l,2,3,4,5,6,7,8,9,0),*p,i;

P=a;

A.*(a+i)B.a[p-a]C.p+iD.*(&a[i])

5.以下所列的各函數(shù)首部中,正確的是()。

A.voidplay(var:Integer,varb:Integer)B.voidplay(inta,b)

C.Subplay(aasinteger,basinteger)D.voidplay(inta,intb)

6.下面程序運(yùn)行情況是()。

#include<stdio.h>

voidmainO

{intx=3,y=-10,z=10;

if(x=y+z)

printf(〃####〃);

else

printf("****〃);

A)有語(yǔ)法錯(cuò)誤不能通過編譯B)輸出####

C)可以通過編譯,但不能通過連接,因而不能運(yùn)行D)輸出****

7.如下程序運(yùn)行后x的值為()

#include<stdio.h>

voidmainO

{intx=5,b=3,x=10,y=20;

(a<b)&&(x++);

printf("x=%d\n”,x);

}

A)9B)10C)11D)12

8.表達(dá)式k=(12〈10)?4:l?2:3的值為()1,

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

9.在下列程序中,調(diào)用fabona(8)的值是()

intfabona(intn)

{if(n==l)return(1);

elseif(n-2)return(2);

elsereturn(fabona(n-1)+fabona(n-2));

)

A)13B)21C)55D)34

10.C語(yǔ)言中,函數(shù)調(diào)用時(shí)若實(shí)參是數(shù)組名,則被調(diào)用函數(shù)對(duì)應(yīng)形參()。

A)可以是相應(yīng)類型簡(jiǎn)單變量B)必須是相應(yīng)類型的指針變量

C)必須是相應(yīng)類型數(shù)組名D)可以是相應(yīng)類型的指針變量

11.sizeofCa'+12)的值為()類型。

A)intB)floatC)doubleD)char

12.判斷字符串a(chǎn)和b是否相等,應(yīng)當(dāng)使用()o

A)if(a==b)B)if(a=b)

C)if(strcpy(a,b))D)if(strcmp(a,b))

13.以下對(duì)C語(yǔ)言函數(shù)的有關(guān)描述中,正確的是0。

A)在C中,調(diào)用函數(shù)時(shí),只能把實(shí)參的值傳送給形參,形參的值不能傳送給實(shí)參

B)C函數(shù)既可以嵌套定義又可以遞歸調(diào)用

0函數(shù)必須有返回值,否則不能使用函數(shù)

D)C程序中有調(diào)用關(guān)系的所有函數(shù)必須放在同一個(gè)源程序文件中

14.在〃文件包含〃預(yù)處理語(yǔ)句的使用形式中,當(dāng)#include后面的文件名用<>(尖括號(hào))括起

時(shí),找尋被包含文件的方式是()。

A.僅僅搜索當(dāng)前目錄

B.僅僅搜索源程序所在目錄

C.直接按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索目錄

D.先在源程序所在目錄搜索,再按照系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索

15.若二維數(shù)組a有m歹U,則計(jì)算任一元素在數(shù)組中位置的公式為()。

(假設(shè)a[0][0]位于數(shù)組的第1個(gè)位置上。)

A.i*m+jB.j*m+iC.i*m+j-lD.i*m+j+l

16.一個(gè)數(shù)據(jù)類型為void的函數(shù)中可以沒有return語(yǔ)句,那么函數(shù)的被調(diào)用時(shí)()。

A)沒有返回值B)返回一個(gè)系統(tǒng)默認(rèn)值

C)返回只有用戶臨時(shí)決定D)返回一個(gè)不確定的值

17.有定義:inty,*p=&y;,假定變量y在內(nèi)存中所占地址為100、103。那么p的值為()。

A)100B)101C)102D)103

18.設(shè)有定義:structsk

{inta;floatb;}data,*p;

若有p二&data;,則對(duì)data中的a域的正確引用是()

A)(*p).data.aB)(*p).aC)p->data.aD)p.data,a

19.有定義:inta[10][10],*p=a[O],j,k;,其中j和k表示數(shù)組元素下標(biāo)并在數(shù)組允許范圍

內(nèi),那么能夠正確引用元素值的是()。

A)*(a[j]+k)B)*((p+j)+k)0*(p[j]+k)D)(a+j)+k

20.有定義:char*s="\t\"Name\\Address\"\n";,那么strlen(s)等于()。

A)15B)16C)17D)18

二、不定項(xiàng)選擇題(每小題1分,共10分,錯(cuò)選、漏選均不得分)

1.在下面C語(yǔ)言的函數(shù)說明語(yǔ)句中,正確的是()。

A)intfun(int,int);B)intfun(intx,y);C)intfun(x,y);

D)intfun(intx;inty);E)intfun(intx,inty);

2.C語(yǔ)言中,形式參數(shù)不能使用的存儲(chǔ)類型說明為()。

A)autoB)registerC)externD)staticE)staticregister

3.在C語(yǔ)言中,對(duì)函數(shù)而言正確的概念有()。

A)函數(shù)可以嵌套定義B)函數(shù)不能嵌套定義C)函數(shù)可以嵌套調(diào)用

D)函數(shù)可以遞歸調(diào)用E)函數(shù)可以沒有返回值

4.有定義:inta[5]定],*p=a[0]則能正確引用a[2][3]元素地址的有()。

A)a[2]+3B)*((p+2)+3)C)*(p[2]+3)D)*(a+2)+3E)

p+2*4+3

5.下列選項(xiàng)中,對(duì)變量的初始化定義正確的是()。

A)inta,b,c=3;B)inta=3,b=3,c=3;C)inta=b=c=3;

D)inta=3;b=3;c=3;E)inta,b=c=3;

6.在下列語(yǔ)句所構(gòu)成的程序結(jié)構(gòu)中,break語(yǔ)句和continue語(yǔ)句均可使用的是()

A)用goto語(yǔ)句和if語(yǔ)句構(gòu)成的循環(huán)B)while循環(huán)C)do-while循環(huán)

D)for循環(huán)E)switch語(yǔ)句構(gòu)成的分支結(jié)構(gòu)

7.對(duì)結(jié)構(gòu)類型不能進(jìn)行的操作有()。

A)賦值和存取B)復(fù)制C)作實(shí)際參數(shù)

D)作函數(shù)的返回值類型E)&操作

8.C語(yǔ)言中的語(yǔ)句中除了控制語(yǔ)句外,還應(yīng)包括()。

A)函數(shù)調(diào)用語(yǔ)句B)表達(dá)式語(yǔ)句C)空語(yǔ)句

D)復(fù)合語(yǔ)句E)輸入輸出語(yǔ)句

9下列關(guān)于文件的結(jié)論中正確的是()。

A)對(duì)文件操作必須先關(guān)閉文件B)對(duì)文件操作必須先打開文件

0對(duì)文本文件只能順序操作D)C語(yǔ)言不能操作二進(jìn)制文件

E)對(duì)文件操作結(jié)束后必須關(guān)閉文件

10.以下說法中不正確的是()。

A)宏名必須大寫B(tài))預(yù)處理時(shí)要檢查宏定義中的拼寫錯(cuò)誤

C)程序中所有與宏名相同的字符串都要進(jìn)行置換

D)可以用$undef命令終止宏定義的作用域

E)宏定義有帶參數(shù)和不帶參數(shù)兩種

三、判斷分析題(如正確,選擇V;如錯(cuò)誤,選擇X。每小題1分,共10分)

1.在一個(gè)函數(shù)定義中,可以根據(jù)需要使用多個(gè)return語(yǔ)句。

2.--個(gè)C程序無(wú)論有多少個(gè)源程序文件組成,在其中一個(gè)源程序文件中定義的全局變量

的作用域默認(rèn)為整個(gè)C程序。

3.對(duì)任一變量一旦指定為某一確定類型后,該變量在程序運(yùn)行時(shí)所占存儲(chǔ)空間的多少和

所能參加的運(yùn)算類型便已確定了。

4.可以將一個(gè)整型指針變量的值賦給一個(gè)實(shí)型指針變量,但可能引起符號(hào)位擴(kuò)展。

5.在程序的運(yùn)行過程中,符號(hào)常量的值是可以改變的。

6.函數(shù)返回值的數(shù)據(jù)類型取決于主調(diào)函數(shù)傳遞過來的實(shí)參的數(shù)據(jù)類型。

7.表達(dá)式128>>2的值是32。

8.用C語(yǔ)言編寫的程序是一種需要經(jīng)過編譯和連接才能運(yùn)行的程序。

9.函數(shù)fseek(fp,10L,1)的作用是將fp指向的文件內(nèi)部指針從當(dāng)前位置后移10個(gè)字節(jié)的

位置。

10.C語(yǔ)言中,所有函數(shù)之間都可以互相調(diào)用。

四、填空題。(每空2分,共20分)

1.以下程序中,主函數(shù)調(diào)用了LineMax函數(shù),實(shí)現(xiàn)在N行M列的二維數(shù)組中,找出每一行

上的最大值。請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

#defineN3

#defineM4

voidLineMax(intx[N][M])

(

inti,j,p;

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

(

p=0;

for(j=l;j<M;j++)

if(x[iHp]<x[i][j])①;

printf("Themaxvalueinlineis%d\n",②;

)

}

voidmainO

(

intx[N]=5,7,4,2,6,4,3,8,2,3,1};

_______________?_______________;

)

2.以下程序的功能是:從整數(shù)10~99之間選出那些能被3整除、且有一位數(shù)字是5的數(shù)存

放到x數(shù)組中,并輸出這些數(shù)的個(gè)數(shù)。請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

voidmain0

(

intx[100],k,a,b,i④,;

for(k=10;k<=99;k++)

{b=k/10;

a=k-b*10;

if(⑤)}

{x[i]=k;

i++;

}

)

printfC數(shù)據(jù)個(gè)數(shù)是:\n〃,i);

3.函數(shù)hs的功能是根據(jù)下面的公式求出滿足精度要求的乃值,請(qǐng)?zhí)羁胀瓿珊瘮?shù)。

doublehs(doubleep)

{doubles=0.0,t=l.0;

intn,fg=l;

for(⑥;t>ep;n++)

{s=s+fg*t;

t=1.0/(2*n+l);

fg=-fg;

)

return?;

)

4.函數(shù)yh的功能是構(gòu)成一個(gè)楊輝三角形,請(qǐng)?zhí)羁胀瓿稍摵瘮?shù)。

#include<stdio.h>

#defineN11

voidyh(a[][N])

(

intj,k;

}

for(⑧;j<N;j++)

for(k=2;k<=j-l;k++)

a[j][k]=⑨+a[j-l][k];

)

5.下述程序用“輾轉(zhuǎn)相除法”計(jì)算兩個(gè)正整數(shù)m和n的最大公約數(shù)。請(qǐng)?zhí)羁胀瓿沙绦颉?/p>

ttinclude<stdio.h>

voidmain()

(

intm,n,w;

scanf("%5d,%d〃,&m,&n);

while(n)

{w=⑩;m=n;n=w;}

printf(〃%d〃,m);

)

五、閱讀程序,寫出運(yùn)行結(jié)果(每小題4分,共20分)

1.給出以下程序的運(yùn)行結(jié)果()。

#include<stdio.h>

intx,y,a=15,b=10;

voidnum()

x二a-b;

y=a+b;

)

voidmain()

(

inta=7,b=5;

x=x+a;

y=y-b;

num();

printf(〃%d,%d\n,z,x,y);

)

2.以下程序的運(yùn)行結(jié)果是()。

#include<stdio.h>

unsignedfun6(unsignednum)

{unsignedk=l;

do

{k*=num%10;

num/=10;

}while(num);

return(k);

)

voidmain()

{unsignedn=26;

printf(,,%d\n,z,fun6(n));

)

3.下面程序的輸出結(jié)果是()

ttinclude<stdio.h>

voidff(char*pl,char*p2)

{while(*p2++=*pl++)

)

voidmain()

{char*pl=〃abcde〃,*p2=〃1234567〃;

ff(pl,p2);

printf("%s\n%s\n”,pl,p2);

)

4.下列程序的運(yùn)行結(jié)果是()。

#include<stdio.h>

voidmain()

{char*ay=〃abcdefghijk〃,*p;

for(p=&ay[5];p>=ay;p-)

printf(〃%2c〃,*p);

printf("\n〃);

}

5.#include<stdio.h>

voidmain()

{intfun(inta);

inta=2,j;

for(j=0;j<3;j++)

printf(〃%d〃,fun(a));

)

intfun(inta)

{intb=0;

staticintc=3;

b++,c++;

returna+b+c;

)

六、編程序。(每小題10分,共20分)

1.函數(shù)adddigit的原型為intadddigit(intnum);,其功能是求num各位數(shù)字之和。要求編

制該函數(shù)并用相應(yīng)的主函數(shù)進(jìn)行測(cè)試。

2.函數(shù)的原型說明為intchrn(char*s,charc);其功能是測(cè)試c在s中出現(xiàn)的次數(shù),編制該

函數(shù)并用相應(yīng)的主函數(shù)對(duì)其進(jìn)行測(cè)試。

試卷II

一、單項(xiàng)選擇題。(每小題1分,共20分)

1.邏輯運(yùn)算符兩側(cè)運(yùn)算對(duì)象的數(shù)據(jù)類型()

A.只能是0或1B.只能是0或非0正數(shù)

C.只能是整型或字符型數(shù)據(jù)D.可以是任何類型的數(shù)據(jù)

2.表達(dá)式“c=*p++”的執(zhí)行過程是()。

A.將*p的賦值給c后再執(zhí)行p++B.將*p的賦值給c后再執(zhí)行*p++

C.將p的賦值給c后再執(zhí)行p++D.執(zhí)行p++后將*p賦值給c

3.有定義:inta[]={l,3,5,7,9},*p=a;則值為5的表達(dá)式是()。

A)p+=2,*p++B)p+=2,*p++C)p+=2,(*p)++D)a+=2,*a

4.在C語(yǔ)言中,函數(shù)返回值的數(shù)據(jù)類型取決于()。

A)函數(shù)的名字B)return語(yǔ)句中表達(dá)式的數(shù)據(jù)類型

C)在定義該函數(shù)時(shí)所指定的數(shù)據(jù)類型D)主調(diào)函數(shù)的數(shù)據(jù)類型

5.設(shè)x,y分別為單精度和雙精度類型變量,則下列選項(xiàng)()可將表達(dá)式x+y的運(yùn)算結(jié)果強(qiáng)

制轉(zhuǎn)換為整型數(shù)據(jù)。

A)(int)x+yB)int(x)+yC)int(x+y)D)(int)(x+y)

6.設(shè)x、y和z是int型變量,且x=3,y=4,z=5,則下面表達(dá)式中值為0的是()?

A)x&&y;B)x〈=y;C)x||y+z&&y-z;D)!((x<y)&&!z111);

7.如果程序中有#include“文件名”則意味著()。

A)將“文件名”所指的該文件的全部?jī)?nèi)容,嵌入到此語(yǔ)句行處。

B)指定標(biāo)準(zhǔn)輸入輸出C)宏定義一個(gè)函數(shù)D)條件編譯說明

8.若有說明:inta[][4]={0,0};則下面不正確的敘述是().

A.數(shù)組a的每個(gè)元素都可得到初值0

B,二維數(shù)組a的第一維大小為1

C.因?yàn)槎S數(shù)組a中第二維大小的值除以初值個(gè)數(shù)的商為1,故數(shù)組a的行數(shù)為1

D.只有元素a[0][0]和可得到初值0,其余元素均得不到初值0

9.以卜只有在使用時(shí)才為該變量分配內(nèi)存單元的存儲(chǔ)類型說明是()。

A.auto和staticB.autoregister

C.register和staticD.extern和register

10.有定義:inta[5],*pl=a,*p2=pl;,則能夠正確表示元素a[2]的是()。

A)*(p2+2)B)p2+2C)*pl+2D)*p2+2

11.以下為一維整型數(shù)組a的正確說明是()o

A.inta(20);B.intN=30,a[N];

C.intm;D.#defineSIZE40;

scanf&m);inta[SIZE];

inta[m];

12.設(shè)有如下程序:

#include<stdio.h>

voidmain()

{int**k,*j,i=100;

j=&i;k=&j;

printf(〃%d\n”,**k);

上述程序的輸出結(jié)果是()。

A)運(yùn)行錯(cuò)誤B)100C)i的地址D)j的地址

13.結(jié)構(gòu)化程序的三種基本結(jié)構(gòu)是()。

A)順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)B)遞歸結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、轉(zhuǎn)移結(jié)

構(gòu)

C)嵌套結(jié)構(gòu)、遞歸結(jié)構(gòu)、順序結(jié)構(gòu)D)循環(huán)結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)、順序結(jié)

構(gòu)

14.C語(yǔ)言在判斷一個(gè)量時(shí),用()表示邏輯真值。

A)trueB)TC)整型值0D)非0整型值

15.C語(yǔ)言源程序經(jīng)過編譯后,生成文件的后綴是()o

A>.cB>.objC、.ccD、.exe

16.下列常數(shù)中不能作為C的常量的是()o

A.0xA5B.2.5e-2C.3e2D.0582

17.若有定義floatx,y;inta,b;則合法的switch語(yǔ)句是()

A)switch(a)B)switch(a)

{case3+x:printf("abc〃);case3printf(〃abc〃);

case4:printf(〃123abc〃);}case4printf(,z123abc);}

C)switch(b)D)switch(a+b);

{default:a++;{case1+2:printf(“1234”)

case1:printf("abc");case1:printf("abc");

case1+2:printf(“1234”);}default:a++;}

18.針對(duì)typedef的敘述中不正確的是(

A)用typedef可以增加系統(tǒng)內(nèi)置新類型

B)用typedef可以用來定義各種類型名,但不能用來定義變量

0用typedef只是將已經(jīng)存在的類型用一個(gè)新的標(biāo)識(shí)符來代表

D)用typedef有利于程序的通用和移植

19.在16位系統(tǒng)中,要將一個(gè)整數(shù)12000分別以ASCII碼文件和二進(jìn)制文件形式存放,各自所

占的存儲(chǔ)空間數(shù)分別是()字節(jié)。

A)5和2B)2和5C)2和2D)5和5

20.設(shè)有整型變量a,實(shí)型變量f,雙精度型變量x,則表達(dá)式10+'b"+x*f值的類型為()。

A)intB)floatC)doubleD)不能確定

二、不定項(xiàng)選擇題。(每題1分,共10分,錯(cuò)選、漏選均不得分)

1.C語(yǔ)言中,對(duì)存儲(chǔ)類型static而言,正確的方法為()。

A)作用于局部變量B)作用于全局變量C)作用于數(shù)組

D)作用于構(gòu)造數(shù)據(jù)類型變量E)作用于形式參數(shù)

2.C語(yǔ)言的函數(shù)定義中,如果函數(shù)的返回值為0到255之間的整數(shù),則函數(shù)的返回類型可以定

義為()。

A)intB)floatC)charD)doubleE)long

3.C語(yǔ)言的語(yǔ)句中除了控制語(yǔ)句外,還應(yīng)包括()。

A)函數(shù)調(diào)用語(yǔ)句B)表達(dá)式語(yǔ)句C)空語(yǔ)句D)復(fù)合語(yǔ)句E)

輸入輸出語(yǔ)句

4.在下列說法中,正確的是()。

A)和其他語(yǔ)言一樣,C語(yǔ)言本身也提供了輸入輸出語(yǔ)句。

B)在C語(yǔ)言中,賦值語(yǔ)句和賦值表達(dá)式不是兩個(gè)等價(jià)的概念。

C)語(yǔ)句斕=丫+3;與*=乂旃+3;的執(zhí)行效果是一樣的。

D)在inta=3,b=3,c=3;中對(duì)變量的初始化不是在編譯階段完成的。

E)語(yǔ)句x=a>b?a:b;與語(yǔ)句if句〉b)x=a;elsex=b;的作用等價(jià)。

5.有定義:structA{intx;inty)a,*p=&a;則能表示成員變量x的有()。

A)a.xB)(*p).xC)p->xD)p.xE)a->x

6.若有inta=10,b=100,t,*temp,*ptra=&a,*ptr=&b;則下列各語(yǔ)句組中,可實(shí)現(xiàn)a,b兩個(gè)整

型變量值互換的是()。

A)t=a;a=b;b=t;B)t=*ptra;*ptra=*ptrb;*ptrb=t;

C)temp=ptra;ptra=ptrb;ptrb=temp;D)a=a+b;b=a-b;a=a-b;

E)b=a;a=b;

7.對(duì)于下列定義,正確的敘述是()

unionss

{inti;

charc;

floatf;

}a,b;

A)變量a所占內(nèi)存的長(zhǎng)度等于成員f的長(zhǎng)度

B)變量a的地址值和它的各成員地址值都是相同的

C)地址表達(dá)式&a、&a.i、&a.c、&a.f的值相同

D)變量a所占內(nèi)存的長(zhǎng)度等于各成員所占空間之和

E)sizeof(unionss)的值為4

8.若有定義chars[20]="Programming",*ps=s;則能夠代表字符。的表達(dá)式是()。

A)ps+2B)s[2]C)ps[2]D)ps+=2,*psE)*(ps+2)

9.下列哪些運(yùn)算符的優(yōu)先級(jí)相同且運(yùn)算次序從左到右()。

A)()、口、->B)++、~C)<、>=

D)&&、||E)&、|、八

10.以下是屬于算法的特點(diǎn)的選項(xiàng)()。

A)有窮性B)確定性C)有效性

D)有零性和多個(gè)輸入E)有一個(gè)或多個(gè)輸出

三、判斷分析題(如正確,選擇V;如錯(cuò)誤,選擇X。每小題1分,共10分)

1.若有定義:longintj,*p;則操作j=(longint)p;是合法操作。

2.C語(yǔ)言的編譯系統(tǒng)對(duì)宏命令的處理是在程序連接時(shí)進(jìn)行的。

3.在C語(yǔ)言中,定義inta=b=c=5;是錯(cuò)誤的,而inta,b,c;a=b=c=5;是正確的。

4.兩個(gè)char型數(shù)據(jù)相加,其結(jié)果為char型。

5.用fseek函數(shù)可以使文件指針重新置于文件的開頭。

6.C語(yǔ)言中,任意兩個(gè)函數(shù)間不能嵌套定義,但可以互相調(diào)用。

7.return語(yǔ)句作為函數(shù)的出口,在某一個(gè)函數(shù)體內(nèi)必須唯一。

8.在C語(yǔ)言中,程序main。{int*ptr;*ptr=100;printf(〃%d〃,*ptr);}是正確的。

9.C語(yǔ)言與其他高級(jí)語(yǔ)言一樣,對(duì)于所有的同級(jí)運(yùn)算符均遵循左結(jié)合原則。

10.C語(yǔ)言在判斷一個(gè)量是否為真時(shí),以非0值代表“真”,以0值代表“假”。

四.填空題。(每空2分,共20分)

1.下列程序的功能是輸入一個(gè)正整數(shù),判斷是否是素?cái)?shù),若為素?cái)?shù)輸出1,否則輸出0,請(qǐng)?zhí)?/p>

空完成程序。

#include<stdio.h>

voidmainO

{inti,x,?;

scanf("%”,&x);

for(i=2;i<=x/2;i++)

if(②){y=0;break;}

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

)

2.下面程序的功能是統(tǒng)計(jì)從命令行上傳遞進(jìn)來的第?個(gè)參數(shù)中出現(xiàn)的字母?jìng)€(gè)數(shù)。請(qǐng)?zhí)羁胀瓿?/p>

程序。(注:參數(shù)個(gè)數(shù)從0開始記數(shù))

#include<stdio.h>

#include<ctype.h>

voidmain(intargc,(3)argv[])

(

char*str;

intcount=0;

if(argc<2)

return;

str=?;

while(*str)

if(isalpha(*str++))

count++;

printf(〃%d\n〃,count);

}

3.下面程序用于計(jì)算1+(1+2)+(1+2+3)+.....+(1+2+3+......+10),請(qǐng)完善程序。

#include<stdio.h>

voidmainO

{inttotal,sum,m,n;

___________________;

for(m=l;m<=10;m++)

{sum=0;

for(n=l;n<=m;n++)sum=sum+n;

⑥___________;

)

printf(//total=%\n,\total);

)

4.下面函數(shù)的功能是求一正整數(shù)的各位數(shù)字之積,請(qǐng)?zhí)羁铡?/p>

intfun(intn)

(

ints=?;

while(n)

(

s=s*(8);

n=n/10;

)

returns;

)

5.下面程序的功能是從鍵盤輸入一些字符,逐個(gè)把它們寫到文件中去,直到輸入?個(gè)“#"

為止。請(qǐng)?zhí)羁胀瓿沙绦颉?/p>

/include<stdio.h>

voidmain()

{FILE*fp;

charch,filename[13];

scanffilename);

if(⑨=NULL)

{printf(/zcannotopenfile\n〃);

return;

)

while((ch=getchar())!=⑩)

fputc(ch,fp);

fclose(fp);

}

五.閱讀程序,寫出運(yùn)行結(jié)果(每小題4分,共20分)

1.下列程序的運(yùn)行結(jié)果是()。

Sinclude<stdio.h>

voidmain()

{char*string[4]={〃pascal〃,〃c〃,“basic","fortran"},**ptr;

inti;

ptr=string;

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

puts(ptr[i]);

}

2.下列程序的輸出結(jié)果是()。

#include<stdio.h>

ttdefineMIN(x,y)(x)<(y)?(x):(y)

^defineML(x,y)x*y

voidmain()

{inta,b,k,m;

a=10;

b=15;

k=10*MIN(a,b);

m=ML(a+b,a-b);

printf(〃%d,%d〃,k,m);

)

3.以下程序的運(yùn)行結(jié)果是()。

#include<stdio.h>

voidincre()

{staticinty=0;

y=y+l;printf(〃%d\n〃,y);

}

voidmain()

{increO;

incre();

incre();

)

4,下述程序的輸出結(jié)果是()。

Sinclude<stdio.h>

voidmain()

{charmn口=〃Goodbye”;

char*pc=

while(一pc>=mn)

putchar(*pc);

putchar(〃\n〃);

)

5.下述程序的運(yùn)行結(jié)果是()。

^include<stdio.h>

voidmain()

inta=100,x=10,y=20,okl=5,ok2=0;

if(x<y)

if(y!=10)

if(!okl)

a=l;

else

if(ok2)a=10;

a=-l;

printf("%d'n",a);

)

六.編程序。(每小題10分,共20分)

1.函數(shù)mxmiav的原型為:doublemxmiav(doublea[],intn,double*max,doble*min);,

其功能是同時(shí)獲取長(zhǎng)度為n的實(shí)型數(shù)組a中的最大元素值,最小元素值和元素平均值。測(cè)試用

主函數(shù)如卜所示,請(qǐng)編制該函數(shù)。

#include<stdio.h>

voidmain()

(

doublemxmiav(doublea[],intn,double*max,double*min);

doubleac[10],maxc,mine,averc;

inti;

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

scanf&ac[i]);

averc=mxmiav(ac,10,&maxc,&minc);

printf("zniax=%lf,min=%lf,aver=%lf\n”,maxc,mine,averc);

)

2.編制程序?qū)崿F(xiàn)功能:統(tǒng)計(jì)指定文本文件myfile.txt中英語(yǔ)字母的個(gè)數(shù)。

試卷III

一、單項(xiàng)選擇題(每小題1分,共20分)

1.在執(zhí)行語(yǔ)句if(x=y=2>=x&&(x<5))y*=x;后變量x、y的值應(yīng)分別為()

A.X=2,Y=2B.X=5,Y=2

C.X=5,Y=10D.執(zhí)行時(shí)報(bào)錯(cuò)

2.設(shè)有定義:intx,*p;,能使指針變量p指向變量x的語(yǔ)句是()。

(A)*p=&x;⑻p=&x;

(C)*p=x;(D)p=*&x;

3.設(shè)有定義:char*s="\t\'REACJ\\12345ss\'\n";,那么strlen(s)等于()

(A)15(B)16(C)17(D)18

4.在執(zhí)行語(yǔ)句if((x=y=2)>=x&&(x=5))y*=x;后變量x、y的值應(yīng)分別為()

(A)2、2(B)5、2(C)5,10(D)執(zhí)行時(shí)報(bào)錯(cuò)

5.若N為整型變量,則for(N=10;N=0;N-);循環(huán)里的循環(huán)體被()。

(A)無(wú)限循環(huán)(B)執(zhí)行10次(C)執(zhí)行一次(D)一次也不執(zhí)行

6.下列程序段的輸出結(jié)果是()。

intx=l,y=l,z;

z=l||++x&&y一;

printf("\n%d,%d,%d”,x,y,z);

(A)l,1,1(B)2,0,1(C)2,1,1(D)2,0,0

7.執(zhí)行下述語(yǔ)句后的結(jié)果是()o

enumweekday{sun,mon=3,tue,wed,thu);

enumweekdayday;

day=wed;

printf("%d\n〃,day);

(A)5(B)6(C)4(D)編譯時(shí)出錯(cuò)

8.設(shè)有定義語(yǔ)句struct{intx;inty;}d[2]={{1,3},{2,7}};,則

printf("%d\n",d[0].y/d[0].x);的輸出結(jié)果是()。

(A)0(B)l(C)3(D)6

9.已有定義int(*p)();指針p可以()o

A.代表函數(shù)的返回值B.指向函數(shù)的入口地址

C.表示函數(shù)的類型D.表示函數(shù)返回值的類型

10.設(shè)有如下所示結(jié)構(gòu)體類型定義,則下列說法錯(cuò)誤的是()。

structstu

{ingnum;

charname[20];

);

(A)結(jié)構(gòu)體變量的指針就是這個(gè)結(jié)構(gòu)體變量所占內(nèi)存單元的起始地址

(B)經(jīng)structstu*p;定義后,指針p可以指向任何類型的結(jié)構(gòu)體變量

(C)經(jīng)structstuss,*p=&ss;定義后,p->num+l等價(jià)于(p->num)+l

(D)經(jīng)structstuss,*p=&ss;定義后,p->num++等價(jià)于(*p).num++

11.設(shè)inta=0,b=5,c=2;選擇結(jié)構(gòu)中可執(zhí)行x++語(yǔ)句的是()。

(A)if(a)x++(B)if(a=b)x++;

(C)if(a=<b)x++;(D)if(!(b-c))x++;

12.在下列程序中,函數(shù)調(diào)用f(8)后得到的值是()。

intf(intn)

(

if(n==l)return(1);

elseif(n==2)return(2);

elsereturn(f(n-1)+f(n-2));

)

(A)13(B)21(C)55(D)34

13.設(shè)有下列語(yǔ)句

typedefstruct

{intn;

charch[8];

}Stt;

則下面敘述正確的是()。

(A)Stt是結(jié)構(gòu)體變量(B)Stt是結(jié)構(gòu)類型名

(C)typedefStruct是結(jié)構(gòu)體類型(D)struct是結(jié)構(gòu)體類型名

14.設(shè)有定義語(yǔ)句:charcl=92,c2=92;,則以下表達(dá)式中值為零的是()。

A.clc2B.cl&c2C.?c2D.cl|c2

15.有兩個(gè)字符數(shù)組a、b,則以下正確的輸入語(yǔ)句是()o

A.gets(a,b);B.scanf(繪s%s”,a,b);

C.scanf(//%s%s/z,&a,&b);D.gets("a"),gets("b");

16.設(shè)有變量定義intx,y;,則表達(dá)式(x=2,y=5,y—,++x+y)的值是()?

(A)5(B)8(C)6(D)7

17.數(shù)組定義為“inta[4]數(shù)下列錯(cuò)誤的引用是()。

A.*aB.*(*(a+2)+3)

C.&a[2][3]D.++a

18.x和y代表整型數(shù),以下表達(dá)式中不能正確表示數(shù)學(xué)關(guān)系|x-y|<10的是()。

A.abs(x-y)<10B.x_y>~10&&x-y<10

C.@(x-y)<-10||!(y-x)>10D.(x-y)*(x-y)<100

19.以下程序運(yùn)行后,輸出結(jié)果是()o

#include<stdio.h>

#definePT5.5

#defines(x)PT*x*x

voidmain()

{

inta=l,b=2;

printfC%4.lf\n",s(a+b));

)

(A)49.5(B)9.5(C)22.0(D)45.0

20.假設(shè)有C語(yǔ)句doublex,*y=&x,**z=&y;,則與變量x等價(jià)的是()。

(A)z(B)*z(C)**z(D)&z

二、基本概念選擇填空題(本大題后面有若干備選項(xiàng),請(qǐng)選擇合適的備選項(xiàng)并將其號(hào)碼填入

各小題的空白處,每空2分,共10分)

1.一個(gè)C源程序可以由函數(shù)構(gòu)成,其中有且僅有—主函數(shù),C程序執(zhí)行總是從_

開始的。

2.在16位系統(tǒng)中,設(shè)有定義floatx,*p=&x;,那么執(zhí)行p++;后指針p的值增加了字

節(jié).

3.在對(duì)一維數(shù)組進(jìn)行初始化時(shí),若提供了數(shù)組所有的初始化值省略對(duì)數(shù)組長(zhǎng)度的指

定。

備選項(xiàng):

①一個(gè)②4個(gè)③2個(gè)④若干個(gè)⑤主函數(shù)⑥也不能⑦就可以

三、程序填空題(每空2分,共20分)

1.函數(shù)strjoin的功能是實(shí)現(xiàn)字符串si和s2的連接,請(qǐng)?zhí)羁胀晟坪瘮?shù)。

voidstrjoin(char*sl,char*s2)

(

while(*sl)

①;

while((*sl++=*s2++)!='\0')

2.下面程序的功能是求一維數(shù)組的各位元素之積,請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

floatpro(floata[],intn)

(

inti;

floatp=l;

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

p*=③;

returnp/n;

)

voidmain()

(

inti;

floatb[10];

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

scanf&b[i]);

printf(z,\n%5.2f\n”,pro(?));

)

3.下面程序的功能是將-個(gè)字符串str的內(nèi)容顛倒過來,請(qǐng)?zhí)羁铡?/p>

main()

{charstr[]={nabcdefg"};

char*pl,*p2,ch;

p1=str;

p2=str;

while(*p2!=W)p2++;

⑤;

while(pl<p2)

{ch=*pl;*pl=*p2;*p2=ch;

⑥;

p2-;}

}

4.下面程序的功能是輸出數(shù)組s中最大元素的下標(biāo),請(qǐng)?zhí)羁胀晟瞥绦颉?/p>

#include<stdio.h>

voidmainO

(

intk,p;

ints[]={l,-9,7,2,-10,3};

for(p=0,k=p;p<6;p++)

if(s[p]>s[k])

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

5.下面程序的功能是從鍵盤輸入一些字符,逐個(gè)把它們寫到文件中去,直到輸入一個(gè)

字符為止,請(qǐng)?zhí)羁胀晟瞥绦颉?/p>

#include<stdio.h>

#include<stdlib.h>

voidmain()

(

FILE*fp;

charch,filename[10];

printf(z,Inputfilename:",);

scanf(〃%s〃,filename);

if((fp=fopen(filename,〃w〃))==NULL)

(

printf("'cannotopenfile\n〃);

exit(0);

)

while((ch=getchar())!='#')

(

putchar(ch);

)

fclose(fp);

)

6.下面函數(shù)fl的功能是求x的n次方,請(qǐng)?zhí)羁胀晟坪瘮?shù)定義。

doublefl(doublex,intn)

(

inti;

doublek;

for(i=l,k=x;i<n;i++)

returnk;

)

7.下面函數(shù)fun的功能是求一個(gè)3*4矩陣中的最小元素,請(qǐng)?zhí)羁胀晟坪瘮?shù)定義。

intfun(inta[][4])

(

inti,j,k,min;

min=a[0][0];

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

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

if(@)

min=a[i][j];

returnmin;

)

四、閱讀程序題(每小題5分,共30分)

1.下面程序的輸出結(jié)果是()。

#include<stdio.h>

intm=13;

voidmain()

(

intfun(intx,inty);

inta=7,b=5;

printf(//%d\n,/,fun(a,b)/m);

}

intfun(intx,inty)

(

intm=3;

returnx*y-m;

)

運(yùn)行結(jié)果:

2.下面程序的輸出結(jié)果是()。

#include<stdio.h>

voidmain()

(

inta[]={l,3,5},s=l,j,*p=a;

for(j=0;j<3;j++)

s*二*(p+j);

printf(〃s=%d\n〃,s);

}

運(yùn)行結(jié)果:

3.下面程序的輸出結(jié)果是()。

#include<stdio.h>

#include<string.h>

voidmain()

(

charstr[20]=〃xyz”;

charsi口=〃abed”;

chars2□二〃ABCD〃;

strepy(str+1,strcat(sl+1,s2+l));

puts(str);

)

運(yùn)行結(jié)果:

4.下面程序的輸出結(jié)果是()o

#include<stdio.h>

voidmain()

staticinta[][3]={9,7,5,3,1,2,4,6,8};

inti,j,sl=O,s2=0;

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

for(j=0;j<3;j++)

(

if(i==j)

sl+=a[i][j];

if(i+j==2)

s2+=a[i][j];

)

printf(z,%d,%d\n,z,si,s2);

)

運(yùn)行結(jié)果:

5.下面程序的輸出結(jié)果是()

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論