




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
南京財經(jīng)大學(xué)C語言期末(一)
考試方式:【閉卷】考試時間:【60分鐘】總分:【100分】
一、單項選擇題(共50題,每小題2分,共100分)
1、以下不正確的說法是—
A、在不同的函數(shù)n可以使用相同名字的變量
B、形式參數(shù)是局部變量
C、在函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效
D、在函數(shù)內(nèi)的復(fù)合語句中定義的變量在本函數(shù)范圍內(nèi)有效
【答案】D
2、把十六進(jìn)制數(shù)baf轉(zhuǎn)換成二進(jìn)制數(shù)________o
A、101110101111
B、110110101111
C、101110111111
D、111011011111
【答案】A
【解析】(BAF)16=(101110101111)2
3、能正確表示或aWO的關(guān)系表達(dá)式是。
A、a>=10ora<=0
B、a>=10||a<=0
C、a>=10|a<=0
D、a>=10&&a<=0
【答案】B
4、假定等級和分?jǐn)?shù)有以下對應(yīng)關(guān)系:等級:a分?jǐn)?shù):85?100等級:b分
數(shù):60?84等級:c分?jǐn)?shù):60以下對于等級grade輸出相應(yīng)的分?jǐn)?shù)區(qū)
間,能夠完成該功能的程序段是.
A、switch(grade)
(
case1A':printf("85—100\n");
case'B':printf("60—84\n");
caserC':printf(H60以下\nw);
default:printf(*'等級錯誤!\nH);
)
B、switch(grade)
(
case1A':printf("85—100\n");break;
case'B':printf("60-84\n");
case'C':printf("60以下\nH);
default:printf("等級錯誤!\n");
C、switch(grade)
(
caserA':printf("85—100\n");break;
caserB':printf("60—84\n");break;
case'C':printf("60以下\nM);
default:printf(n等級錯誤!\nM);
)
D、switch(grade)
(
case'A':printf("85―100\n");break;
caserB':printf("60—84\n");break;
case'C':printf("60以下\n");break;
default:printf(H等級錯誤!\nH);}
【答案】D
5、假定int類型變量占用4個字節(jié),若有定義:intx[10]={0,2,4}則數(shù)組x在
內(nèi)存中所占字節(jié)數(shù)是O
A、4
B、12
C、20
D、40
【答案】D
6、若變量a,b,t已正確定義,要將a和b中的數(shù)進(jìn)行交換,以下選項中不正確
的語句是o
A、a=a+b;b=a-b;a=a-b;
B、t=a;a=b;b=t;
C、a=t;t=b;b=a;
D、t=b;b=a;a=t;
【答案】C
7、以下程序中的函數(shù)reverse的功能是將a所指數(shù)組中的內(nèi)容進(jìn)行逆置。
voidreverse(inta[],intn)
{
inti,t;
for(i=0;i<n/2;i++)
(
t=a[i];
a[i]=a[n-l-i];
a[n-l-i]=t;
}
)
main()
(
intb[10]={l,2,3,4,5,6,7,8,9,10};
inti,s=0;
reverse(b,8);
for(i=6;i<10;i-+)s+=b[i];
printf("%d\n\s);
)
程序運(yùn)行后的輸出結(jié)果是o
A、22
B、10
C、34
D、30
【答案】A
8、c語言的程序一行寫不下時,可以。
A、用逗號換行
B、用分號換行
C、在任意一空格處換行
D、用回車符換行
【答案】C
9、下列字符串中,正確的c標(biāo)識符是o
A、foo-1
B、2b
C、new
D、256
【答案】D
【解析】此題考查的是C語言中標(biāo)識符的定義。標(biāo)識符由字母、數(shù)字或下劃線
構(gòu)成,但第一個字符必須是字母或下劃線:標(biāo)識符中大小寫字母是不同的;用
戶定義標(biāo)識符時,不允許采用系統(tǒng)的關(guān)鍵字。
10、charal□='abcw,a2[80]=M1234o;將al串連接到a2串后面的語句是
A、strcat(a2,al);
B、strcpy(a2,al);
C、strcat(al,a2);
D、strcpy(al,a2);
【答案】A
IkC語言函數(shù)內(nèi)定義的局部變量的隱含存儲類則是
A、static
B、auto
C、register
D、extern
【答案】B
12、下面程序段的功能是
^include<stdio.h>
main()
charsi;
sl=putc(getc(stdin),stdout);
}
D、在調(diào)用函數(shù)中必須說明數(shù)組的大小,但在被調(diào)函數(shù)中可以使用不定尺寸數(shù)
組
【答案】C
18、若有以下定義和語句,則輸出結(jié)果是o
int**pp,*p,a=10,b=20;pp=&p;p=&a;p=&b;printf("%d\n",*p,**pp);
A、10,20
B、10,10
C、20,10
D、20,20
【答案】D
19、設(shè)有如下定義:charaa[2][20]={HabcdM,wabcdH);則以下說法中錯
誤的是.
A、aa是個二維數(shù)組,可以存放2個19個字符以下的字符串
B、aa是個二維數(shù)組,每行中分別存放了字符串"abed"和"BCD”
C、aa[0]可以看作是一維數(shù)組名
D、aa[0][0]可以看作是一維數(shù)組名
【答案】D
20、設(shè)有如下定義:
structsk
(
inta;
floatb;
)
data,*p;
若有p二&dala;
則對data中成員a的引用正確的是_______。
A、(*p).data,a
B、(*p).a
C、p->data.a
D、p.data,a
【答案】B
【解析】p是指向結(jié)構(gòu)體的指針,用指針引用結(jié)構(gòu)體成員有兩種格式:p->成
員、(*p).成員
21、c語言中運(yùn)算對象必須是整型的運(yùn)算符是o
A、%=
B、/
C、=
D、〈二
【答案】A
22、在c語言程序中可用做用戶標(biāo)識符的是。
A、void
123
BBN
B、aa
_abc
cas
C、as+b3
-123
If
D、6f
Do
SIG
【答案】B
23、設(shè)int*p[4];則標(biāo)識符p是。
A、整型數(shù)組名
B、指針數(shù)組名
C、指針函數(shù)名
D、指向整型變量的指針
【答案】B
【解析】指針數(shù)組的定義格式為:數(shù)據(jù)類型*指針數(shù)組名[長度],…其中,指針
數(shù)組名是標(biāo)識符,前面必須有號,故本題選B。
24、若有以下程序段,w和k都是整型變量;
w=k;
LB:if(w=0)
gotoLE;
w一;
printf(n*")gotoLB;
LE;
則不能與上面程序段等價的循環(huán)語句是O
A、for(w=k;w!-0;w-)printf(n*”);
B、for(w=k;W;—w)printf(M*”);
C、w=k;
while(w-!=0)printfC*");
D、w=k:
W++;do
(
w―;printf(0?;)while(w!=0);
【答案】C
25、若變量已正確定義為int型,要通過語句scanf("%d,%d,%d",&a,&b,&c);
給a賦值1、給b賦值2、給c賦值3,以下輸入形式中錯誤的是o(U代
表一個空格符)
A、HLUU,2,3V回車》
B、1U2113V回車》
C、1,口口口2,UUU3V回車》
D、1,2,3V回車〉
【答案】B
【解析】scanf()函數(shù)的一般格式:scanf(格式控制,地址列表)。在輸入多個數(shù)
值數(shù)據(jù)時,若“格式控制”字符串中沒有非格式字符作輸入數(shù)據(jù)之間的間隔,
則可用空格、TAB或回車作間隔。C編譯在碰到空格,TAB,回車或非法數(shù)據(jù)(如
對“外d”輸入“12A”時,A即為非法數(shù)據(jù))時即認(rèn)為該數(shù)據(jù)結(jié)束。如果在“格
式控制”字符串中除了格式說明以外還有其他字符,則在輸入數(shù)據(jù)時應(yīng)輸入與
這些字符相同的字符。本題由于格式控制符中用了逗號,所以在輸入數(shù)據(jù)時,
必須在輸入的各數(shù)據(jù)間用逗號分隔,故選項B不正確。
26、以下程序段中與語句k=a>b?(b>c?l:O):O;功能等價的是o
A、if((a>b)&&(b>c))k=l;
elsek=0;
B、if((a>b)I|(b>c))k=l;
elsek=0;
C、if(a<=b)k=0;
elseif(b<=c)k=l;
D、if(a>b)k=l;
elseif(b>c)k=l;
elsek=0;
【答案】A
27、設(shè)charstr[100];inti=5;則引用數(shù)組元素的錯誤形式的是。
A、strElilO]
B、*(srr+
C、(str+T-1)
D、*(&(str++)+
【答案】D
28、下列選項中不是字符常量的是o
A、7
B、'\x2a'
C、H
D、"\0"
【答案】D
【解析】C語言規(guī)定,一個字符常量代表ASCII碼字符集里的一個字符,在程
序中用單引號括起來,以便區(qū)分?!癨v”'表示的是豎向跳格;"'\x2a'”表
示的是兩位+六進(jìn)制數(shù);“‘a(chǎn)'”表示的是字符a對應(yīng)的ASCII碼值。
29、下面正確的字符串常量是o
A、E
B、'376'
C、"\n"
D、376
【答案】C
30、標(biāo)準(zhǔn)庫函數(shù)fgets(str,n,fp)的功能是________。
A、從fp所指的文件中讀取長度不超過n-1字符串存入指針str所指的
內(nèi)存
B、從fp所指的文件中讀取長度為n的字符串存入指針str所指的內(nèi)存
C、從fp所指的文件中讀取n個字符串存入指針str所指的內(nèi)存
D、從fp所指的文件中讀取長度為n-1的字符串存入指針str所指的內(nèi)
存
【答案】A
【解析】fgets函數(shù)的功能是從fp所指文件中讀入nl個字符放入以str為
起始地址的空間內(nèi),讀取長度不超過nT,讀入結(jié)束后,自動在最后添加0,選項
A正確,本題答案Ao
31、已定義以下函數(shù)fun(char*p2,char*pl)
(
while((*p2=*pl)!='\0r)
(
pl++;
p2++;
}
}
函數(shù)的功能是。
A、將pl所指字符串復(fù)制到p2所指內(nèi)存空間
B、將pl所指字符串的地址賦給指針p2
C、對pl和p2兩人指針?biāo)缸址M(jìn)行比較
D、檢查pl和p2兩個指針?biāo)缸址惺欠裼小?0'
【答案】A
32、在16位編譯器環(huán)境下,double類型占多少字節(jié)?
A、2
B、4
C、1
D、8
【答案】D
【解析】在16位編譯器環(huán)境下,double類型占8個字節(jié)。
33、以下敘述中錯誤的是________。
A、對于double類型數(shù)星,不可以直接用數(shù)組名對數(shù)組進(jìn)行整體輸入或輸出
B、數(shù)組名代表的是數(shù)組所占存儲區(qū)的首地址,其值不可改變
C、當(dāng)程序執(zhí)行中,數(shù)組元素的下標(biāo)超出所定義的下標(biāo)范圍時,系統(tǒng)將給出
“下標(biāo)越界”的出錯信息
D、可以通過賦初值的方式確定數(shù)組元素的個數(shù)
【答案】C
34、有以下定義和語句:
structstudents{
intnum;
charname[20];
charc;
struct(
intgrade1;
intgrade2;
}s;
);
structstudentsw,*pw;
*pw=w;
下列賦值語句不正確的是0
A、num=1002;
B、w.grade1=85;
C、pw->num=1002;
D、w.s.grade2=85;
【答案】B
【解析】本題主要考查的是結(jié)構(gòu)體變量的嵌套定義,也就是說一個結(jié)構(gòu)體變量
也可以是一個結(jié)構(gòu)體。在本題中student這個結(jié)構(gòu)體中包含了結(jié)構(gòu)體s。所以
對結(jié)構(gòu)體變量w中g(shù)rade1成員的引用是w.s.grade1或w->s->grade1u
35、若有定義和語句:int**pp,*p,a=20,b=10;
pp=8p;
p=&a;
p=&b;
printf(H%d,%d\n",*p,**pp);
則輸出結(jié)果是。
A、20,10
B、20,20
C、10,20
D、10,10
【答案】D
36、執(zhí)行下面程序片段的結(jié)果是。intx=23;
printf("%2dn,x-);
)
while(!x);
A、打印出321
B、打印出23
C、不打印任何內(nèi)容
D、陷入死循環(huán)
【答案】B
37、以下敘述中正確的是o
A、構(gòu)成C程序的基本單位是函數(shù)
B、可以在一個函數(shù)中定義另一個函數(shù)
C、main。函數(shù)必須放在其他函數(shù)之前
D、所有被調(diào)用的函數(shù)一定要在調(diào)用之前進(jìn)行定義
【答案】A
38、有以下程序
mainO
{
intx[8]={8,7,6,5,0,0},*s;
s=x+3;
printf(w%d\nH,s[2]);
}
執(zhí)行后輸出結(jié)果是O
A、隨機(jī)值
B、0
C、5
D、6
【答案】B
39、若有定義:intc[4][5],(*cp)[5];和語句cp二c;,則能正確引用c數(shù)組元
素的是.
A、cp+1
B、*(cp+3)
C、*(cp+1)+3
D、*(*cp+2)
【答案】D
40、以下scanf函數(shù)調(diào)用語句中不正確的是
structpupil
{
charname[20];
intage;
intsex;
)
pup[5],*p=pup;
A、scanf(n%s'r,pup[0].name);
B、scanf("%d,r,&pup[0].age);
C、scanf(M%d'r,p->age);
D、scanf("%d&(p->sex));
【答案】C
41、c語言中的標(biāo)識符第一個字符。
A、必須為字母
B、必須為下劃線
C、必須為字母或r劃線
D、可以是字母,數(shù)字和下劃線中任一種字符
【答案】C
42、已知year為整型變量,不能使表達(dá)式
(year%4==0&&year%100!=o)Iyear%400==0的值為"真"的數(shù)據(jù)是一
A、1990
B、1992
C、1996
D、2000
【答案】A
43、設(shè)變量a、b、c、d和y都已正確定義并賦值。若有以下if語句:if(a<
b)if(c==d)y=0;elsey=l;該語句所表示的含義是。
A、y=0,a
y=l,a2b
B、y=0,a
y=l,a2b且c#d
C、y=0,a
y=l,aVB且CWD
D、y=0,a
y=l,cWd
【答案】C
44、有以下程序段:
intx=3;
do
(
printf(“%3d",x-=2);
}
while(!(—x));
程序段的輸出結(jié)果是o
A、1
B、30
C、12
D、死循環(huán)
【答案】C
45、設(shè)有下面的程序段:chars[]="china0;char*p=s;則下列敘述正確的
是—O
A、數(shù)組s中的內(nèi)容和指針變量p中的內(nèi)容相等
B、s和p完全相同
C、s數(shù)組長度和p所指向的字符串長度相等
D、*p與s[0]相等
【答案】D
46、經(jīng)過以下語句定義后,表達(dá)式z+=x>y?++x:++y的值為________。
intx=l,y=2,z=3;
A、2
B、3
C、6
D、5
【答案】C
47、以下函數(shù)按每行8個輸出數(shù)組中的數(shù)據(jù)
voidfun(int*w,intn)
(
inti;
for(i=0;i<n;i+-)
{
printf,w[i]);
)
printf("\nv);
}
下列劃線處應(yīng)填入的語句是。
A、if(i/8==0)printf(a\nff);
B、if(i/8==0)continue;
C、if(i%8=0)printf(“\n”);
D、if(i%8==0)continue;
【答案】C
48、調(diào)試程序是指對程序進(jìn)行
A、編輯
B、編譯
C、查錯和排錯
D、連接
【答案】C
49、下面各語句行中,能正確進(jìn)行給字符串賦值操作的語句行是o
A、charst[4][5]={"ABCDEff);
B、chars[5]={'Af,'B1,'C*,fD',rE'};
C、char*s="ABCDE";
D、char*s;scanf("%sM,*s);
【答案】C
50、下列敘述中正確的是o
A、C語言編譯時不檢善語£
B、C語言的子程序有過程和函數(shù)兩種
C、C語言的函數(shù)可以嵌套定義
D、C語言中,根據(jù)函數(shù)能否被其它源文件調(diào)用,被區(qū)分為內(nèi)部函數(shù)和外部函數(shù)
【答案】D
南京財經(jīng)大學(xué)C語言期末(二)
考試方式:【閉卷】考試時間:【60分鐘】總分:【100分】
一、單項選擇題(共50題,每小題2分,共100分)
1、在標(biāo)準(zhǔn)ascii碼表中,已知英文字母a的十進(jìn)制碼值是65,英文字母a的十進(jìn)
制碼值是°
A、95
B、96
C、97
D、91
[答案]C
【解析】a的十進(jìn)制碼值比A大32。
2、若需要利用形參直接訪問實參,則應(yīng)把形參變量說明為()參數(shù)。
A、指針
B、引用
C、傳值
D、常值
【答案】B
【解析】在進(jìn)行參數(shù)傳遞時,引用參數(shù)是利用形參直接訪問實參,形參的變化
直接影響實參的變化,而傳值參數(shù)不會影響實參變量。
3、若a是數(shù)值類型,則邏輯表達(dá)式(a=l)||(a!=D的值是。
A、1
B、0
C、2
D、不知道a的值,不能確定
【答案】A
4、以下程序段.x=-l;
do
(
x=x*x;
}
while(!x);
A、是死循環(huán)
B、循環(huán)執(zhí)行二次
C、循環(huán)執(zhí)行一次
D、有語法錯誤
【答案】C
5、下列字符串中,不可以用作c標(biāo)識符的是o
A、y_2006
B、_FESTJI
C、Return
D、switch
【答案】D
【解析】在C中,變量標(biāo)識符必須是以大小寫字母、下畫線開始,由數(shù)字或者
字母下畫線等組成的一個字符串,其中C++關(guān)鍵字不能作為標(biāo)識符,不能包含
-、+、*、/等運(yùn)算符號。C++變量區(qū)分大小寫,麻以Retrun不是關(guān)鍵字,而是
一個合法變量;swith為關(guān)鍵字,所以不能定義為標(biāo)示符。
6、大寫字母b的ascii碼值是。
A、65
B、66
C、41H
D、97
【答案】B
【解析】字母A對應(yīng)的ASCII碼值是1000001,即65,因此字母B對應(yīng)的ASCII
碼值是66o
7、若有說明:int/][3]={{1,2,3},{4,5},{6,7)};則數(shù)組4的第一維的大小
為:()
A、2
B、3
C、4
D、無確定值
【答案】B
8、為了要計算s=10!(10的階乘),則以下對s的定義正確的是o標(biāo)
識符由字母,數(shù)字和下劃線組成且第一個字符必須為字母或下劃線auto自動變
量register寄存器變量extern外部變量static靜態(tài)變量
A、ints
B、unsigneds
C、shorts
D、longs
【答案】D
9、下列哪個是c語言的有效標(biāo)識符
A、_Nol
B、No.1
C、12345
D、int
【答案】A
【解析】標(biāo)識符是一個以字母或下劃線開始的,由字母、下劃線和數(shù)字組成的
字符串,標(biāo)識符不能與任意關(guān)鍵字同名。
10、若有運(yùn)算符:〉、一、〈V、%、sizcof,則它們按優(yōu)先級(由高至低)的正
確排列順序為_______O
A、%、sizeofx>、VV、=
B、sizeofx%、>、=、<<
C、sizeofx<<x>、%、=
D、sizeofx%、VV、>、=
【答案】D
11>合法的main。函數(shù)命令參數(shù)形式是________。
A、main(inta,char*c[])
B、main(intarc,char**arv)
C、main(intargc,char*argv)
D、main(intargv,char*argc[])
【答案】C
12、c語言的編譯系統(tǒng)對宏定義的處理是o
A、在程序連接時進(jìn)行的
B、在程序運(yùn)行時進(jìn)行的
C、在對源程序中的箕它語句進(jìn)行編譯前進(jìn)行的
D、和C程序中的其它語句同時進(jìn)行編譯的
[答案]C
【解析】所謂“編譯預(yù)處理”就是在C編譯程序?qū)源程序進(jìn)行編譯前,由編
譯預(yù)處理程序?qū)@些編譯預(yù)處理命令進(jìn)行處理的過程。宏定義屬于預(yù)處理命令,
在對源程序中的其它語句進(jìn)行編譯前進(jìn)行的。本題答案為C選項。
13、已知三個字符為a、z和8,按它們的ascii碼值升序排序,結(jié)果是
A、8,a,Z
B、a,8,Z
C、a,Z,8
D、8,Z,a
【答案】D
14、有如下函數(shù)調(diào)用語句func(rec1,rec2+rec3,rec4,rec5);該函數(shù)調(diào)用語
句中,含有的實參個數(shù)是.
A、3
B、4
C、5
D、有語法錯誤
【答案】B
15、有以下程序
main()
{
intm=0256,n=256;
printf(r%o%o\n",m,n);
}
程序運(yùn)行后的輸出結(jié)果是o
A、02560400
B、0256256
C、256400
D、400400
[答案]c
【解析】以0為開頭的整數(shù)表示八進(jìn)制整數(shù),所乂按八進(jìn)制輸出時,m的結(jié)果
為256,而根據(jù)十進(jìn)制數(shù)和八進(jìn)制數(shù)之間的轉(zhuǎn)化,十進(jìn)制數(shù)256轉(zhuǎn)化為八進(jìn)制
數(shù)時,應(yīng)該是400。
16、以下for語句中不是死循環(huán)的是o
A^for(inti=0;i<l;i++);
B、for(inti=0;i++);
C、for(inti=l;i>0;++i);
D、for(;;);
【答案】A
【解析】考查循環(huán)語句for的使用。
[解題要點(diǎn)]for循環(huán)的一般格式為for(初始化部分;終止條件判斷部分;迭代
部分){循環(huán)體;}說明如下:for循環(huán)開始時,首先執(zhí)行初始化操作,然后判斷
終止條件是否滿足,如果滿足,則執(zhí)行循環(huán)體中的語句,最后執(zhí)行迭代部分。
完成一次循環(huán)后,重新判斷終止條件。
[錯解分析]在for語句中,如果省略了終止條件判斷部分,開且在語句中沒有
break,或者是終止條件判斷部分始終沒有終止,都將出現(xiàn)死循環(huán)。
[考點(diǎn)鏈接]for循環(huán)語句可由while循環(huán)語句來代替。
17、若有下列定義,則對a數(shù)組元素的正確引用是ointa[5],*p=a;
A、*(p+5)
B、*p+2
C、*(ai2)
D、*&a[5]
【答案】C
18、以下程序運(yùn)行后的輸出結(jié)果是
main(){
charc;
intn=100;
floatf=10;
doublex;
x=f*二n/=(c=50);
printf(n%dn,x);
}
A、220.000000
B、100,20.000000
C、240.000000
D、10040.000000
【答案】A
【解析】對于c語言中的賦值運(yùn)算符,必須遵循乂下規(guī)則:賦值運(yùn)算符的優(yōu)先
級別只高于逗號運(yùn)算符,比其他任何運(yùn)算符的優(yōu)先級都低,并且具有自右向左
的結(jié)合性。因此先得到變量C的值為50,變量n經(jīng)過計算結(jié)果為2,最后通過
變量f的值10和n的值2相乘得到變量x的值,為20.000000。因此選項A)正
確。
19、若使用一位數(shù)組名作為函數(shù)實參,則以下正確的說法是。
A、必須在主調(diào)函數(shù)中說明此數(shù)組的大小
B、實參數(shù)組類型與形參數(shù)組類型可以不匹配
C、在被調(diào)函數(shù)中,不需要考慮形參數(shù)組的大小
D、實參數(shù)組名與形參數(shù)組名必須一致
【答案】C
20、若有以下語句:
typedefstructs
(
intg;
charh;
}t;
以下敘述中正確的是o
A、可用S定義結(jié)構(gòu)體變量
B、可用T定義結(jié)構(gòu)體變量
C、S是struct類型的變量
D、T是structS類型的變量
【答案】B
21、設(shè)x,y,z,s均為int型變量,且初值均為1,則執(zhí)行語句s=++xI++y&&+-z
后,則s的值為:
A、不定值
B、2
C、1
D、0
【答案】C
22、有定義:"inta=2,b=3,c=4;",則下列選項中值為0的表達(dá)式是_______0
A、(!a==l)&&(!b-0)
B、(a<B)&&!C||1
C、a&&b
D、a||(b+b)&&(c-a)
【答案】A
23、通常適用于從被調(diào)用函數(shù)中將一個值傳回主一周函數(shù)的參數(shù)傳遞方式是
A、利用返回值數(shù)據(jù)傳遞方式
B、利用形參與實參傳遞數(shù)據(jù)的方式
C、利用全局變量傳遞數(shù)據(jù)的方式
D、以上都不對
【答案】A
24、若變量已正確定義,有以下程序段i—。;
doprintf("%d,",i);
while(i++);
printf("%d",i)其輸出結(jié)果是________。
A、0,0
B、0,1
C、1,1
D、程序進(jìn)入無限循環(huán)
【答案】B
25、在函數(shù)聲明中,下面哪項是不必要的—
A、函數(shù)參數(shù)的類型和參數(shù)名
B、函數(shù)名
C、函數(shù)的類型
D、函數(shù)體
【答案】D
【解析】本題考核函教的原型聲明格式。解析此題時,要注意函數(shù)定義和函數(shù)
聲明的區(qū)別。
①C中每一個函數(shù)的定義都是由4個部分組成的,即函數(shù)類型、函數(shù)名、函
數(shù)參數(shù)表和函數(shù)體。
②函數(shù)的聲明是為了消除函數(shù)定義的位置影響。不管函數(shù)是在何處定義的,
只要在調(diào)用前進(jìn)行函數(shù)的聲明,就可保證函數(shù)調(diào)用的合法性。
③函數(shù)原型的說明格式為:
V類型〉〈函數(shù)名〉(V形參表》);
26、下列語句的輸出結(jié)果是()。
printf(,,%d\nM,(int):2.5+3.0)/3);
A、有語法錯誤不能通過編譯
B、2
C、1
D、0
【答案】C
27、fun函數(shù)的功能是:通過鍵盤輸入給x所指的整型數(shù)組所有元素賦值。在下
劃線處應(yīng)填寫的是_______O
^defineN5
voidfun(intx[N])
{
intm;
for(m=N-t;m>=0;m-)scanf("%d二_______);
)
A、%&X[++m]
B、
C、x+(m++)
D、x+m
【答案】D
28、軟件設(shè)計中模塊劃分應(yīng)遵循的準(zhǔn)則是o
A、低內(nèi)聚低耦合
B、高內(nèi)聚低耦合
C、低內(nèi)聚高耦合
D、高內(nèi)聚高耦合
【答案】B
29、對下述程序的判斷中,正確的是o
main()
(
char*p,s[256];
p=s;
while(strcmp(s,*theend"))
printf(ninputthestring:,F);
gets(s);
while(*p)putchar(*p++);
}
A、此程序循環(huán)接收字符串并輸出,直到接收到字符串“theend”為止
B、此程序循環(huán)接收字符串,接收到字符串“theend”則輸出,否則程序終
止
C、此程序循環(huán)接收字符串并輸出,直到接收字符串“theend”為止,但因
為代碼有錯誤,程序不能正常工作
D、此程序循環(huán)接收字符串并將其連接在一起,直到接收字符串“theend”
為止,輸出連接在一起的字符串
【答案】C
30、執(zhí)行以下程序后,test,txt文件的內(nèi)容是(若文件能正常打開)o
^include<stdio.h>
main()
(
file*fp;
char*sl=Mfortran*',*s2="basic”;
if((fp=fopen(r,test,txt",Hwb"))==null)
(
printf("can'topentest.txtfile\nr);
exit(1);
)
fwrite(si,7,1,fp);
/*把從地址si開始的7個字符寫到fp所指文件中*/fseek(fp,
01,seekset);
/*文件位置指針移到文件開頭*/fwrite(s2,5,l,fp);
fclose(fp);
}
A、Basican
B、BasicFortran
C、Basic
D、FortranBasic
【答案】A
31、有以下程序:
int*f(int*x,int*y){
if(*x<*y)returnx;
elsereturny;
)
main()
inta=7,b=8,*p,*q,*r;
p=&a;
q=&b;
r=f(p,q);
printf("%d,%d,%d\n",*p,*q,*r);
}
執(zhí)行后輸出結(jié)果是。
A、7,8,8
B、7,8,7
C、8,7,7
D、8,7,8
【答案】B
【解析】本題定義了一個返回值為指針的函數(shù)f(),此函數(shù)有兩個指針型的形
參x和y,該函數(shù)的功能,是返回x和y指向的變量中值較小的那個指針變
量。主函數(shù)中定義了兩個指針變量p和q,并讓它們指向變量a和b,調(diào)用函數(shù)
f(),返回指向的變量喧較小的指針變量,r的值為指針變量p的值(變量a的
地址),因此最后輸出的*p、*q和*r的值是7,8和7。所以,B選項為所選。
32、設(shè)c語言中,int類型數(shù)據(jù)占2個字節(jié),則long類型數(shù)據(jù)占
A、1個字節(jié)
B、2個字節(jié)
C、4個字節(jié)
D、8個字節(jié)
【答案】C
33、若有說明:long*p,a;則不能通過scanf語句正確給輸入項讀入數(shù)據(jù)
的程序段是______O
A、*p=&a;scanf(M%ld,r,p);
B、p=(long*)malloc(8);scanf(M%ld",p);
C、scanf("機(jī)d”,p=&a);
D、scanf("機(jī)d",&a);
【答案】A
34、有如下定義
structperson
(
charname[9];
intage;
}
structpersonclass[10]={"john\17,,fpaul",19,"mary",18,
"adam",16);
根據(jù)上述定義,能輸出字母a的語句是o
A、printfC^cXn'1,class[3].name);
B、printf(w%c\nH,class[3].name[0]);
C、printf(w%c\nH,class[4].name[l]);
D、printf("%c\n\class[4].name[O]);
【答案】B
35、以下語句段執(zhí)行后的輸出結(jié)果是o
#include<stdio.h>
main()
(
intk=3;
if(k)printfelseprintf("&&&&");
)
A、###
B、&&&&
C、###&&&&
D、有語法錯誤,不能執(zhí)行
【答案】D
【解析】在C語言中語句結(jié)束時應(yīng)該以分號結(jié)尾,程序中的第1個
printf("###")輸出語句后面少了一個分號(;),因此執(zhí)行程序時會出錯。
36、以下程序的輸出結(jié)果是。
main()
(
intx=l,y=O,a=O,b=O;
switch(x)
(
case1:switch(y)
(
case0:a++;
break;
casel:b++;
break;
}
case2:a++;
b++;
break;
)
printf(,'%d,%d\n'r,a,b);
)
A、2,1
B、2,2
C、1,1
D、21
【答案】A
37、有以下程序
main()
inta[3][2]={0},(*ptr)[2],i,j;
for(i=0;i<2;i+-)
{
ptr=a+i;
scanf(H%d",ptr);
ptr++;
}
for(i=0;i<3;i+-)
(
for(j=0;j<2;j++)printf(w%2dw,a[i][j]);
printf(',\n'3;
若運(yùn)行時輸入:123V回車,,則輸出結(jié)果是_____
A、產(chǎn)生錯誤信息
B、10
C、12
D、10203020000030
【答案】B
【解析】本題定義了一個二維數(shù)組a,又定義了一個指針變量ptr,它用于指向
包含2個元素的一維數(shù)組,在第一個for循環(huán)中,語句"ptr=a+i;"用于將指針
變量ptr指向第i行的數(shù)組元素,通過兩次循環(huán),分別給二維數(shù)組a的第0行
的第1個元素和第1行的第1個元素賦了值1和2。
38、有以下程序
voidf(int*q)
(
inti=0;
for(;i<5;i++)(*q)++;
}
main()
{
inta[5]={l,2,3,4,5},i;
f(a);
for(i=0;i<5;i+-)printf("%d,\a[i]);
}
程序運(yùn)行后的輸出結(jié)果是o
A、2,2,3,4,5,
B、6,2,3,4,5,
C、1,2,3,4,5,
D、2,3,4,5,6,
【答案】B
39、已有以下數(shù)組定義和f函數(shù)調(diào)用語句,則在f函數(shù)的說明中,對形參數(shù)組
array的錯誤定義方式為。inta[3][4];
f(a);
A、f(intarray[][6])
B、f(intarray[3][])
C、f(intarray[][4])
D、f(intarray[2][5])
【答案】B
40、有以下程序:
structstu
(
charnum[10];
floatscore[3];
};
main()
(
structstus[3]={{"2002r\90,95,85},{'20022”,95,80,75},
{"20023”,100,95,90}),*p=s;
inti;
floatsum=0;
for(i=0;i<3;i?)(
sum=sum+p->score[i];
)
printf("%6.2f\n\sum);
程序運(yùn)行后的輸出結(jié)果是o
A、260
B、270
C、280
D、285
【答案】B
【解析】給結(jié)構(gòu)體數(shù)組賦韌值時,由于數(shù)組中的每個元素都是一個結(jié)構(gòu)體,因
此要將其成員的值依次放在一對花括號中,以便區(qū)分各元素。
s[0]二{"20021〃,90,95,85},s[l]={”20022',95,80,75},s[2]:
{"20023”,100,95,90}。
41、c風(fēng)格的注釋*c風(fēng)格的注釋,也稱塊注釋或多行注釋,以開始,以
______結(jié)束。
A、/*和*/
B、{和}
C、[和]
D、(和)
【答案】A
42、若已定義x和y為double類型,則表達(dá)式x=l,y=x+3/2的值是。
A、1
B、2
C、2.0
D、2.5
【答案】C
43、c語言中邏輯表達(dá)式的值為o
A、0或1
B、非零值或零值
C、true或false
D、'true'或'false'
【答案】A
44、下列選項中均屬于c語言合法的標(biāo)識符是3
A、Int
#sub
break
B、_3ab
FOR
Long
C、3a
printf
a_b
D、WORD
auto
include
【答案】B
【解析】選項A含有非法字符'#'、break屬于C語言關(guān)鍵字都不是合
法標(biāo)識符;選項C中力以數(shù)字開頭不是合法標(biāo)識符;選項D中的auto是C語
言關(guān)鍵字不屬于合法標(biāo)識符;故應(yīng)該選擇B。
45、若定義的函數(shù)為float*fun()……,則函數(shù)的返回值是。
A、float型數(shù)據(jù)
B、void型數(shù)據(jù)
C、float型指針
D、void型指針
【答案】C
46、執(zhí)行以下語句后a的值為o
inta,b,c;
a=b=c=l;
++a||++b&&++c;
A、錯誤
B、0
C、2
D、1
【答案】C
47、下列哪個數(shù)組定義是正確的o
A、inta[5)5];
B、INTa[10];
C、inta[n];
D、inta[3+2];
【答案】D
48、關(guān)于標(biāo)識符,下列選項中描述錯誤的是o
A、標(biāo)識符只能由字母、數(shù)字和下劃線組成
B、標(biāo)識符不能以二劃線作為第一個字符
C、標(biāo)識符不能以數(shù)字作為第一個字符
D、標(biāo)識符不區(qū)分入小寫字母
【答案】D
【解析】標(biāo)識符區(qū)分大小寫字母.
49、判斷兩個字符串是否相等,正確的表達(dá)方式是o
A、while(si==s2)
B、while(sl=s2)
C、while(strcmp(si,s2)==0)
D、while(strcmp(si,s2)=0)
【答案】C
50、以下敘述中正確的是o
A、C語言中的文件是流式文件,因此只能順序存取數(shù)據(jù)
B、打開一個已存在的文件并進(jìn)行了寫操作后,原有文件中的全部數(shù)據(jù)必定被
覆蓋
C、在一個程序中當(dāng)對文件進(jìn)行了寫操作后,必須先關(guān)閉該文件然后再打開,
才能讀到第1個數(shù)據(jù)
D、當(dāng)對文件的讀(寫)操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)會失
【答案】D
【解析】如果以寫方式打開一個已經(jīng)存在的文件,則在打開時將該文件刪除,然
后重新建立一個同名的新文件。
南京財經(jīng)大學(xué)C語言期末(三)
考試方式:【閉卷】考試時間:【60分鐘】總分:【100分】
一、單項選擇題(共50題,每小題2分,共100分)
1、以下關(guān)于c語言標(biāo)汛符的描述中,正確的是。
A、標(biāo)識符可以由漢字組成
B、標(biāo)識符只能以字母開頭
C、關(guān)鍵字可以作為用戶標(biāo)識符
D、Area與area是不同的標(biāo)識符
【答案】D
2、若變量已正確說明為floal類型,要通過語句
scanf(H%f%f給a賦予10.0,b賦予22.0,c賦予33.0,不正
確的輸入形式是O
A、102233
B、10.0,22.0,33.0
C、10.022.033.0
D、10V回車>22V回車>33V回車〉
【答案】B
【解析】用scanf()讀取從鍵盤輸入的數(shù)據(jù)時,口間不能加逗號,要用空格隔
開
3、有以下程序
main()
(
inti;
for(i-0;i<3;i+-)
switch(i)
(
case1:printf("%d",i);
case2:printf(,,%dM,i);
default:printf(v%d",i);
)
)
執(zhí)行后輸出的結(jié)果是o
A、011122
B、012
C、012020
D、120
【答案】A
【解析】當(dāng)執(zhí)行switch語句時,首先計算緊跟其后一對括號中的值,然后在語
句體內(nèi)尋找與該值吻合的case標(biāo)號。若相等,則執(zhí)行該標(biāo)號后開始的各語句,
包括在其后的所有case和default后的語句,直到switch語句體結(jié)束。
4、有以下程序:
#include<stdio.h>
main()
inti=5;
do{
if(i%3==l)
if(i%5==2){
printf(H*%dH,i);
break;
)
i++;
)
while(i!=0);
printf("\n");
)
程序的運(yùn)行結(jié)果是_______。
A、*7
B、*3*5
C、*5
D、*2*6
【答案】A
【解析】本題考查的是break語句。do…while循環(huán)是“先執(zhí)行,后判斷”,
所以無論條件如何,它都至少會執(zhí)行一遍。程序首先初始化變量i為5,然后
進(jìn)入do…while循環(huán)體,首先判斷(i%3=l),因為5%3=2,所以if條件不滿
足,跳過下面的if語句,執(zhí)行i++,i變?yōu)?。第1遍循環(huán)結(jié)束,判斷(i!R)
為真,繼續(xù)循環(huán)?,F(xiàn)在設(shè)3二6%3=0,所以if語句還是不被執(zhí)行,繼續(xù)i+十,i
變?yōu)?,仍然滿足(i!R),繼續(xù)循環(huán)。第3遍循環(huán)設(shè)3=7%3=1,滿足條件
(i%3=l),繼續(xù)判斷條件i%5=2成立,即輸出*7,然后執(zhí)行break語句跳出循
環(huán)。
5、已知:intn=10;那么下列語句中錯誤的是________o
A、int*p=newlong[n];
B、intp[n];
C、int*p=newlong(n);
D、intp[10];
【答案】B
6、執(zhí)行下列語句后變量x和y的值是________oy=10;x=y++;
A、x=10,y=10
B、x=ll,y=ll
C、x=10,y=ll
D、x=ll,y=10
【答案】C
7、若有定義:intaa[8];則以下表達(dá)式中不能代表數(shù)組元aa[l]的地址的是
A、&aa[O]+l
B、&aa[l]
C、&aa[O]++
D、aa+1
【答案】C
8、以下敘述正確的是。
A、在C程序中,每行中只能寫一條語句
B、若a是實型變量,C程序中允許賦值a=lD,因此實型變量中允許存放整
型數(shù)
C、C程序中,無論是整數(shù)還是實數(shù),都能被準(zhǔn)確無誤地表示
D、在C程序中,%是只能用于整數(shù)運(yùn)算的運(yùn)算符
【答案】D
9、設(shè)有以下程序段:inta[5]=0,*p,*q;p=a;q二a;則下列選項中,合法的運(yùn)
算是o
A、p+q
B、p-q
C、p*q
D、p%q
【答案】B
【解析】本題考核指針的運(yùn)算。C語言中,指向同一字符串的指針之間能且只
能進(jìn)行減運(yùn)算,減運(yùn)算后返回的是一整型數(shù),表示指針之間的地址偏移量。
10、若a=l,b=2貝I]ab的值是()。
A、0
B、1
C、2
D、3
【答案】D
11>有以下函數(shù):charfun(char*p)
(
returnp;
}
該函數(shù)的返回值是O
A、無確功的值
B、形參P中存放的地址值
C、一個臨時存儲些元的地址
D、形參P自身的地址值
【答案】A
12、”對下面程序段:
ttdefineA3
ttdefineB(a)((A+l)*a)...x=3*(A+B(7));正確的判斷是。"
A、程序錯誤,不許嵌套宏定義
B、程序錯誤,宏定義不許有參數(shù)
C、x=93
D、x=21
【答案】C
13、下列程序的運(yùn)行結(jié)果是o
#include<stdio.h>
voidfun(int*s,int*p){
staticintt=3;
*p=s[t];
t一;
}
main()
{
inta[]={2,3,4,5},k;
intx;
for(k=0;k<4;k+-){
fun(a,&x);
printf(H%d,n,x);
}
)
A、5,4,3,2
B、2,3,4,5,
C、2,2,2,2,
D、5,5,5,5,
【答案】A
【解析】分析fun函教程序段,可知fun函數(shù)要實現(xiàn)的功能是將s中第(t+1)個
元素以前的元素逆置賦給數(shù)組P。由于fun中函數(shù)定義了靜態(tài)變量t=3,因此,
在主函數(shù)中調(diào)用函數(shù)fun(a,&x)時,就是要將數(shù)組a中前4個元素逆置賦給數(shù)
組x,最后輸出x數(shù)組。
14、#define能作簡單的替代,用宏來替代計算多項式5*X*x4-5*x+5的值的函
數(shù)f,正確的宏定義語句為()。
A、^definef(x)5*x*x+5*X+5
B、#definef5*x*x+5*x+5
C、^definef(a)(5*a”a+5*a+5)
D、#define(5*x*x+5+x+5)f(x)
【答案】C
15、以下程序運(yùn)行后的輸出結(jié)果是。
main()
(
char*s="abcdc";
s+=2;
printf("%ld\nM,s);
)
A、cde
B、字符c的ASCH碼值
C、字符c的地址
D、出錯
【答案】C
16、下面程序
main()
(
inty=9;
for(;y>0;y-)
(
if(y%3=0)
(
printf('%cT,-y);
continue;
)
)
}
的輸出是O
A、741
B、852
C、963
D、875421
【答案】B
17、若調(diào)用一個函數(shù),且此函數(shù)中沒有return語句,則正確的說法是________。
A、該函數(shù)沒有返回值
B、該函數(shù)返回若二個系統(tǒng)默認(rèn)值
C、能返回一個用戶所希望的函數(shù)值
D、返回一個不確定的值
【答案】D
18、以下程序的輸出結(jié)果是.
#include<stdio.h>
voidmain()
(
inti,x[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i+-)printf("%d,n,x[i][i]>;
printf("\n");
)
A、1,5,9,
B、1,4,7,
C、3,5,7,
D、3,6,9,
【答案】A
19、設(shè)有以下定義和語句:charstr[20]—"program",*p;p=str:則以下敘述
中正確的是_______o
A、*P與str[0]的值相等
B、str與P的類型完全相同
C、str數(shù)組長度和P所指向的字符串長度相等
D、數(shù)組str中存放的內(nèi)容和指針變量P中存放的內(nèi)容相同
【答案】A
20、若有以下說明語句:
structstudent
(
intnum;
charname[];
floatscore;
}stu;
則下面的敘述不正確的是:()
A、struct是結(jié)構(gòu)體類型的關(guān)鍵字
B、structstudent是用戶定義的結(jié)構(gòu)體類型
C、num,score都是結(jié)構(gòu)體成員名
D、stu是用戶定義的結(jié)構(gòu)體類型名
【答案】D
21、以下數(shù)值中,不正確的八進(jìn)制數(shù)或十六進(jìn)制數(shù)是o
A、0x16
B、016
C、-16
D、Oxaaaa
【答案】C
22、設(shè)x的值為4,則未達(dá)式y(tǒng)=(++x)+(++x)+(++x)后,y的值是。
A、12
B、18
C、16
D、21
【答案】D
23、以下敘述正確的是________。
A、C程序總是以main。作為程序執(zhí)行的起始行
B、main。函數(shù)若天帶參數(shù),其后面的一對圓括號可省略
C、函數(shù)體內(nèi)的定義語句和可執(zhí)行語句允許任意交替出現(xiàn)
D、C語言中的語句之間必須用分號作為分隔符
【答案】A
24、對于while、do…while循環(huán)結(jié)構(gòu),正確的說法是________。
A、只是表達(dá)形式不同
B、do…while結(jié)構(gòu)中的語句
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030中國門禁系統(tǒng)行業(yè)市場深度調(diào)研及競爭格局與投資研究報告
- 2025-2030中國鋅基復(fù)合材料行業(yè)市場發(fā)展分析及需求分析與投資研究報告
- 2025-2030中國鉸接臂AWP行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 2025-2030中國針狀粉行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 2025-2030中國采暖烘干設(shè)備行業(yè)市場發(fā)展分析及發(fā)展趨勢與投資研究報告
- 2025-2030中國鄰羥基苯乙酮行業(yè)市場深度分析及發(fā)展趨勢與投資研究報告
- 2025-2030中國透光混凝土行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 2025-2030中國輔助試劑行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 2025-2030中國輪胎橡膠化學(xué)品行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 2025-2030中國豪華羊絨服裝行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 基于深度學(xué)習(xí)的小學(xué)數(shù)學(xué)跨學(xué)科主題探究
- 2024年全國統(tǒng)一高考數(shù)學(xué)試卷(新高考Ⅱ)含答案
- DB65-T 4828-2024 和田玉(子料)鑒定
- 2022-2023學(xué)年北京市海淀區(qū)中關(guān)村中學(xué)八年級(下)期中數(shù)學(xué)試卷
- DB32-T 4765-2024 化工行業(yè)智能化改造數(shù)字化轉(zhuǎn)型網(wǎng)絡(luò)化聯(lián)接實施指南
- 龜兔賽跑英語故事帶翻譯完整版
- 中學(xué)駐校教官管理方案
- Siemens Simcenter:Simcenter聲振耦合分析技術(shù)教程.Tex.header
- 部編人教版七年級下-17課《紫藤蘿瀑布》名師-特級教師-余映潮公開課課件
- 項目HSE組織機(jī)構(gòu)和職責(zé)
- 2024數(shù)據(jù)中心基礎(chǔ)設(shè)施運(yùn)行維護(hù)管理規(guī)范
評論
0/150
提交評論