C語言考試試題及答案_第1頁
C語言考試試題及答案_第2頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

《C語言》考卷一

單選題(每題2分,共25題,共50分)1.要把高級(jí)語言編寫的源程序轉(zhuǎn)換為目標(biāo)程序,需要使用(

)[2分][2分]A.編輯程序B.驅(qū)動(dòng)程序C.診斷程序D.編譯程序參考答案:D2.以下敘述中正確的是(

)[2分][2分]A.C語言程序?qū)脑闯绦蛑械谝粋€(gè)函數(shù)開始執(zhí)行B.可以在程序中由用戶指定任意一個(gè)函數(shù)作為主函數(shù),程序?qū)拇碎_始執(zhí)行C.C語言規(guī)定必須用main作為主函數(shù)名,程序?qū)拇碎_始執(zhí)行,在此結(jié)束D.main可作為用戶標(biāo)識(shí)符,用以命名任意一個(gè)函數(shù)作為主函數(shù)參考答案:C3.若變量a是int類型,并執(zhí)行了語句:a=‘A'+1.6;,則正確的敘述是

(

)[2分][2分]intainta=66=65+1.6=66.6A.a的值是字符BB.a的值是浮點(diǎn)型C.不允許字符型和浮點(diǎn)型相加D.a的值是字符‘A’的ASCII值加上2參考答案:Ainta=‘A’;charb=65;4.若變量已正確定義并賦值,以下符合C語言語法的表達(dá)式是(

)[2分][2分]A.a:=b+1B.a=b=c+2C.18.5%3D.a=a+7=c+b參考答案:B5.下列可用于C語言用戶標(biāo)識(shí)符的一組是(

)[2分][2分]A.void,

define,

WORDB.a3_b3,

_123,carC.For,

-abc,

IF

CaseD.2a,

DO,

sizeof參考答案:B6.若在定義語句:int

a,b,c,*p=&c;之后,接著執(zhí)行以下選項(xiàng)中的語句,則能正確執(zhí)行的語句是(

)[2分][2分]A.scanf("%d",a,b,c);B.scanf("%d%d%d",a,b,c);C.scanf("%d",p);//scanf(“%d”,&c);D.scanf("%d",&p);參考答案:C7.以下關(guān)于long、int和short類型數(shù)據(jù)占用內(nèi)存大小的敘述中正確的是(

)[2分][2分]A.均占4個(gè)字節(jié)B.根據(jù)數(shù)據(jù)的大小來決定所占內(nèi)存的字節(jié)數(shù)//longa=1intb=1000000C.由用戶自己定義D.由C語言編譯系統(tǒng)決定參考答案:D8.若變量已正確定義,有以下程序段

i=0;

do{

printf("%d,",i);//0

}while(i++);//while(0)i=1

printf("%d\n",i);//1

其輸出結(jié)果是(

)[2分][2分]A.0,0B.0,1C.1,1D.程序進(jìn)入無限循環(huán)參考答案:B9.有以下計(jì)算公式

則不能夠正確計(jì)算上述公式的程序段是(

)(提示:庫函數(shù)sqrt()用來求一個(gè)數(shù)的平方根)[2分][2分]A.if(x>=0)

y=sqrt(x);

else

y=sqrt(-x);//if/else配合使用B.y=sqrt(x)if(x<0)

y=sqrt(-x);C.if(x>=0)y=sqrt(x);

if(x<0)y=sqrt(-x);//if單獨(dú)使用D.y=sqrt(x>=0?x:-x);參考答案:B10.設(shè)有條件表達(dá)式:

EXP?i++:j--;

則以下表達(dá)式與之完全等價(jià)的是(

)[2分][2分]A.(EXP==0)

?i++:j--;B.(EXP!=0)

?i++:j--;C.(EXP==1)

?i++:j--;D.(EXP!=1)

?i++:j--;參考答案:B11.有以下程序#include<stdio.h>

int

main(void)

{

int

y=9;

for(

;

y>0;y--)

{

if(y%3==0)

printf("%d",--y);

}

}

程序的運(yùn)行結(jié)果是(

)[2分][2分]A.741B.963C.852D.875421參考答案:C12.若函數(shù)調(diào)用時(shí)的實(shí)參為變量時(shí),以下關(guān)于函數(shù)形參和實(shí)參的敘述中正確的是(

)[2分][2分]A.函數(shù)的實(shí)參和其對(duì)應(yīng)的形參共占同一存儲(chǔ)單元B.形參只是形式上的存在,不占用具體存儲(chǔ)單元//局部變量C.同名的實(shí)參和形參占同一存儲(chǔ)單元D.函數(shù)的形參和實(shí)參分別占用不同的存儲(chǔ)單元參考答案:D13.已知字符‘A’的ASCⅡ代碼值是65,字符變量c1的值是‘A’,c2的值是‘D’。

則執(zhí)行語句printf("%d,%d",c1,c2-2);后,輸出結(jié)果是(

)[2分][2分]A.A,BB.A,68charc1=‘A’charc1=65charc2=68C.65,66D.65,68參考答案:C14.以下敘述中錯(cuò)誤的是(

)[2分][2分]A.函數(shù)的形參存放在數(shù)據(jù)段中B.函數(shù)可以返回地址值C.可以給指針變量強(qiáng)制賦一個(gè)浮點(diǎn)數(shù)作為地址值D.可以給指針變量賦NULL參考答案:A15.以下正確的字符串常量是(

)[2分][2分]A."\\\"B.‘a(chǎn)bc’C.Olympic

GamesD.""參考答案:D16.設(shè)有定義:char

p[]={'a','b','c'},*q=p;

,以下不能計(jì)算出一個(gè)char型數(shù)據(jù)所占字節(jié)數(shù)的表達(dá)式是(

)[2分][2分]A.sizeof(p)=3B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])參考答案:A17.有以下程序:

int

func(char*s)

{

char*t=s;

while(*t++){;}

t--;

return(t-s);

}

intmain(void)

{

char*s="abcdefghijk";

intn=func(s);

printf("%d\n",n)

}

程序的執(zhí)行結(jié)果是(

)[2分][2分]A.字符串s的長度11B.比較兩個(gè)串的大小C.將串s復(fù)制到串tD.求字符串s所占字節(jié)數(shù)12參考答案:A18.若有定義語句:int

a[3][6];

,按在內(nèi)存中的存放順序,a數(shù)組的第10個(gè)元素是(

)[2分][2分]A.a[0][4]B.a[1][3]

C.a[0][3]D.a[1][4]參考答案:B19.有以下程序

#include<stdio.h>

void

fun(char

*

(*p)

)

{

++p;

printf("%s\n",*p);

}

int

main(void)

{

char

*a[

]={"Morning","Afternoon","Evening","Night"};

fun(a);

}

程序的運(yùn)行結(jié)果是(

)[2分][2分]A.AfternoonB.fternoonC.MorningD.orning參考答案:A20.若有定義語句:int

a[2][3],*p[3];

,則以下語句中正確的是(

)[2分][2分]A.p=a;B.p[0]=a;C.p[0]=&a[1][2];

D.p[1]=&a;參考答案:C21.有以下程序

#include<stdio.h>

int

fun(char

s[])

{

int

n=0;

while(*s<=‘9’&&*s>=‘0’)

{

n=10*n+*s-‘0’;

s++;

}

return(n);

}

int

main(void)

{

char

s[10]={’6’,’1’,’*’,’4’,’*’,’9’,’*’,’0’,'*'};

printf("%d\n",fun(s));

}

程序運(yùn)行的結(jié)果是(

)[2分][2分]A.9B.61490C.61D.5參考答案:C22.以下能正確定義一維數(shù)組的選項(xiàng)是(

)[2分][2分]A.int

a[5]={0,1,2,3,4,5};B.char

a[

]={0,1,2,3,4,5};C.char

a={’A’,’B’,’C’};D.int

a[5]="0123";參考答案:B23.以下敘述中正確的是(

)

[2分][2分]A.預(yù)處理命令行必須位于源文件的開頭B.在源文件的一行上可以有多條預(yù)處理命令C.宏名必須用大寫字母表示D.宏替換不占用程序的運(yùn)行時(shí)間參考答案:D24.若有以下說明和定義(

)

union

dt

{

int

a;

char

b;

double

c;

}data;

data.a=5;

以下敘述中錯(cuò)誤的是[2分][2分]A.data的每個(gè)成員起始地址都相同B.變量data所占的內(nèi)存字節(jié)數(shù)與成員c所占字節(jié)數(shù)相等C.語句printf("%f\n",data.c)的輸出結(jié)果為5.000000D.data可以作為函數(shù)的實(shí)參參考答案:C25.以下語句或語句組中,能正確進(jìn)行字符串賦值的是

(

)

[2分][2分]A.char

*sp;

*sp="abcd";B.char

s[10];

s="right!";

C.char

s[10];

*s="right!";D.char

*sp="right!";

參考答案:D二

填空題(每題4分,共10題,共40分)26.以下代碼試圖找出a、b、c的最小值:

#include<stido.h>

int

main(void)

{

int

a,b,c,t1,t2;

scanf("%d%d%d",&a,&b,&c);

t1=a<b?

a:b

t2=c<t1?

c:t1

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

}[每空2分]27.以下程序的輸出結(jié)果是

54321

#include

<stdio.h>

int

main(void)

{

int

n=12345,

d;

while(n!=0)

{

d=n%10;

printf("%d",d);

n/=10;

}

}

[每空4分]28.已有定義如下:

struct

node

{

int

data;

struct

node

*next;

}*p;

以下語句調(diào)用malloc函數(shù),使指針p指向一個(gè)具有struct

node類型的動(dòng)態(tài)存儲(chǔ)空間,請(qǐng)?zhí)顚懰杩臻g的大小

structnode*p

=

(struct

node

*)malloc(

sizeof(structnode)

);[每空4分]29.表達(dá)式(int)((double)5/2+2.5)的值是:

5

[每空4分]寫出以下兩段程序的執(zhí)行結(jié)果。如果程序無法編譯,請(qǐng)指出出錯(cuò)部分并寫明原因;如果程序陷入死循環(huán),請(qǐng)回答“死循環(huán)”。

如果執(zhí)行結(jié)果出現(xiàn)內(nèi)存錯(cuò)誤,請(qǐng)指出出錯(cuò)部分并寫明原因。

int

main(void)

{

char

s[

]="man";

int

i;

for(i=0;

s[i];

i++)

{

printf("\n%c%c%c%c",s[i],

*(s+i),

*(i+s),

i[s]);

}

}

mmmmaaaannnn

int

main(void)

{

char

*cptr,c;

void

*vptr,v;

c=10;

v=0;

}

不能定義void型普通變量

[每空2分]對(duì)下面程序段進(jìn)行解釋:

1typedefvoid

(*lpFunction)(void);

2lpFunction

lpReset

=(lpFunction)0xF000FFF0;

3lpReset();[4分]參考答案:1,為一種函數(shù)指針類型定義了一個(gè)別名,叫l(wèi)pFunction

2,用這個(gè)類型定義了一個(gè)這種函數(shù)指針變量IpReset,并且將地址OxF000FFF0賦給該指針

3,調(diào)用處于地址OxF000FFF0的代碼32.指出下面代碼的不妥之處:

void

get_memory(T_S8

*p,

T_S16

nNum)

{

p

=

(T_S8

*)malloc(sizeof(T_S8)

*

nNum);

}

void

Test(void)

{

T_S8

*str

=

NULL;

get_memory(str,

100);

strcpy(str,

"hello");

}[4分]參考答案:值傳遞不能改變str的值,所以實(shí)參str的值仍然為NULL,不能執(zhí)行strcpy(str,"hello"),會(huì)發(fā)生段錯(cuò)誤。33.以下程序的運(yùn)行結(jié)果如何?原因?

char

*get_memory(void)

{

char

p[]

=

"hello

world";

return

p;

}

intmain(void)

{

char

*str

=

NULL;

str

=

get_memory();

printf("%s",str);

}[4分]參考答案:結(jié)果不確定,函數(shù)調(diào)用結(jié)束,數(shù)組p的空間被釋放,不用再次引用34.以下程序的運(yùn)行結(jié)果如何?原因?

void

get_memory(char

**p,

int

num)

{

*p

=

(char

*)malloc(num);

}

int

main(void)

{

char

*str

=

N

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論