c語言模擬考試及答案_第1頁
c語言模擬考試及答案_第2頁
c語言模擬考試及答案_第3頁
c語言模擬考試及答案_第4頁
c語言模擬考試及答案_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

C語言模擬考試及答案

作者:

日期:

個(gè)人收集整理,勿做商業(yè)用途

模擬試題

模擬試卷一

一、選擇題

1.邏輯運(yùn)算符兩惻運(yùn)算對(duì)象的數(shù)據(jù)

A.只能是?;?B.只能是?;蚍?。正數(shù)

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

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

inta=023;

printf(*%d\nM,-a);

A.23B.17C.18D.24

3.若有定義:inta[3][4];下面不能表示數(shù)組a[l][1]的是.。

A.*(a[l]+l)B.C.(*(a+l))[l]D.*(a+5)

,

4.設(shè)有語句:charstrl[]=*string"?str2[8]r*str3,*str4=*string*;ML_不是對(duì)原函數(shù)strcpy的正確調(diào)用。

A.strcpy(strl,*HELL01*);B.strcpy(str2,"HELL02"):

C.strcpy(str3,*HELL03*");D.strcpy(str4,*HELL.O4*);

5.設(shè)有定義:inta[4][3]=”,2,3,4,5,6,7,8,9,10,11,12}:

int(*prt)[3]=a,*p=a[0];

則下列能夠正確表示數(shù)組元素a[l][2]的表達(dá)式是。

A.*((*prt+l)[2])B.*(*(p+5))C.(*prt+l)+2D.*(*(a+l)+2)

6.有以卜程序

structabc

{inta,b,c;};

mainO

{structabcs[2]={(1,2,3},{4,5,6)}:intt;

t=s[0].a+s[l],b:

printf(*%d\n*tt);

}

程序運(yùn)行后輸出結(jié)果是一O

A.5B.6C.7D.8

7.有以下程序:

#include<stdio.h>

unionpw

{inti;charch[2]:}a;

mainO

個(gè)人收集整理,勿做商業(yè)用途

{a.ch[0]=13:a.chH1=0:printf(*%d\n*.a.i):)

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

A.13B.14C.208D.209

8.已知字符0的ASCH碼為十六進(jìn)制的30,若有以卜程序

main。

{union{unsignedcharc;unsignedinti[4]:}z;

z.i[0]=0x38;

z.i[l]=0x36;

printf(*%c\n*,z.c);)

輸出結(jié)果為一。

A.6B.8C.0D.3

9.若有定義chara=l,b=2,c=3;,則表達(dá)式a|b&'c的值為一。

A.0B.1C.2D.3

10.以下程序的輸出結(jié)果是。

main()

{charx=020:

printf(飛o'n",x?2):

}

A.100B.80C.64D.32

11.下列關(guān)于C語言數(shù)據(jù)文件的敘述中正確的是___。

A.文件由ASCII碼字符序列組成,C語言只能讀寫文本文件

B.文件由二進(jìn)制數(shù)據(jù)序列組成,C語言只能讀寫二進(jìn)制文件

C.文件由記錄序列組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件

0.文件由數(shù)據(jù)流形式組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件

12.若要打開D盤上lest子目錄下名為abc.lxt的文本文件進(jìn)行讀、寫操作,下面符合此要求的函數(shù)調(diào)用是

A.fopen(*D:\\test\\abc.txt*,*r*)B.fopen(*D:\\test\\abc.txt*,*r+*)

C.fopenCD:\\test\\abc.txt*,*rb*)D.fopen(*D:\\test\\abc.txt*,*w*)

13.若fp是指向某文件的指針,且已讀到文件末尾,則庫函數(shù)feof(fp)的返回值是一。

A.EOFB.1C.非零值D.NULL

14.用fopen函數(shù)打開文件時(shí),若文件使用方式參數(shù)為“r+”,則該文件.

A.只能讀,不能寫B(tài),可以讀、寫,但文件必須存在

C.只能寫,不能讀D.可以讀、寫,若文件不存在則創(chuàng)建新文件

15.在打開的文件中,要獲得文件位置指針的當(dāng)前位置,應(yīng)調(diào)用的庫函數(shù)是_o

A.fseckB.frcadC.ftel1D.rewind

個(gè)人收集整理,勿做商業(yè)用途

二、填空題

1.C源程序的基木單位是O

2.一個(gè)C語句中至少應(yīng)包含一個(gè)。

3.在C語言中,輸入操作可以由庫函數(shù)完成,輸出操作可以由庫函數(shù)___完成。

4.若x是int型變量,且x=6,則表達(dá)式x%2+(x+l)%2的值為。

5.若a、b、c均是ini型變量,則執(zhí)行表達(dá)式c=(a=5)-(b=2)+a后,c的值為0

6.若有定義:inty=7;floatx=2.5,z=4.7;,則表達(dá)式x+(int)(y/3*Gnt)(x+z)/2)%4的值為_。

7.以下程序的功能是:輸入三個(gè)整數(shù)nl、n2、n3,按從大到小的順序進(jìn)行輸出。請(qǐng)雄空。

raain()

{intnl,n2,n3,temp:

scanf(*%d%d%d*.&nl.&n2,&n3);

if()

(temp=n2;n2=n3:n3=temp;}

if()

(temp=nl;nl=n2;n2=temp;}

printfC%d,%d,%d\n*?nl,n2,n3);

)

8.輸入一個(gè)字符,如果它是一個(gè)大寫字母,則把它變成小寫字母:如果它是一個(gè)小寫字母,則把它變成大寫字母:其它字符不變。請(qǐng)?zhí)羁铡?/p>

main()

{charch1;

scanf("/c",chi):

if()

chl=chl+32;

elseif(chl>=,a*&&chl<=,z)

printfch!);

9.程序運(yùn)行后的輸出結(jié)果是一。

mainO

{inta=l,b=3,c=5;

if(c==a+b)printf(*ycs\n*);

elseprinif:

)

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

個(gè)人收集整理,勿做商業(yè)用途

mainO

{intx=10,y=20,t=0:

if(x—y)t=x;x=y;y=t;

printf(*%d,%d\n*,x,y):

}

11.以下程序運(yùn)行后的輸出結(jié)果是一。

mainO

{intx=10,y=20,t=0:

if(x=y)

{t=x;x=y;y=l;}

printf(*%d,%d\n*,x,y):

}

12.以下程序運(yùn)行后的輸出結(jié)果是__0

mainO

{inti,n?=0,n=O,k=0;

for(i=9:i<=ll:i++)

switch(i/10)

{case0:m++;n++;break;

case1:n++;break:

default:k++;n++;

)

printf(*%d%d%d\n*,m,n,k);

)

三、程序設(shè)計(jì)

1.請(qǐng)編寫函數(shù)fun,它的功能是:求出ss所指字符串中、指定字符的個(gè)數(shù),并返回此值。

2.寫程序,實(shí)現(xiàn)矩陣(3行3列)的轉(zhuǎn)苴(即行列互換)。

#include<stdio.h>

voidfun(intarray[3][3])

}

mainO

{inti,j;

intarray[3][3]={{100,200,300},(400,500,600},(700,800,900)):

個(gè)人收集整理,勿做商業(yè)用途

for(i=0;i<3;i堪

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

printf(飛7d”,array[i][j]);

printf("\n");

}

fun(array):

printf(^Convertedarray:\n*);

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

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

prinlf(飛7d",array[i][j]):

printfr\n*l;

個(gè)人收集整理,勿做商業(yè)用途

模擬試卷一參考答案

一、選擇題

I.【答案】D

【解析】本題考查邏輯值的表示,在C語言中,非零就表示真,零表示假。

2.【答案】C

【解析】本題考查整數(shù)的表示形式和自減運(yùn)算符.023是八進(jìn)制,轉(zhuǎn)化為十進(jìn)制是19,所以一a的值是18.

3.【答案】D

【解析】本題考查二維數(shù)組元素的表示方法,D答案表示的是第5行第0列的地址,而不是數(shù)組元素。

4.【答案】C

【解析】strcpy函數(shù)的第一個(gè)參數(shù)必須是數(shù)組名或者是一個(gè)指向確定字符串的指針。不能是沒有經(jīng)過賦值的指針。

5.【答案】D

【解析】本題考查使用二維數(shù)組名和指向數(shù)組的指針變量表示二維數(shù)組元素的方法。注意行指針和列指針的表示方法,而通過行指針

是無法訪問數(shù)組元素的,只能通過列指針訪問,這樣就筋要通過、”把行指針變成列指針。

6.【答案】B

【解析】本題考查結(jié)構(gòu)體數(shù)組的概念,s[0].a的值為1,s[l].b的值為5。

7.【答案】A

【解析】本題考查共用體,共用體成員使用的是相同的存儲(chǔ)區(qū)域,大小為最大的成員所占內(nèi)存的大小,本題中的2個(gè)字節(jié)的存儲(chǔ)區(qū)域,

低1字節(jié)存放13,高】字節(jié)存放0,所以輸出這兩個(gè)字節(jié)組成的值時(shí)輸出13。

8.【答案】B

【解析】同上題.z.i[0]的值為十進(jìn)制的56,輸出z.c就是輸出最低字節(jié)的值,而且以猊的形式輸出,所以輸出ascii碼值為56的

字符8。

9.【答案】B

【解析】本題考查位運(yùn)算的概念,把a(bǔ),b,c轉(zhuǎn)換成一.進(jìn)制,按照優(yōu)先級(jí)先算?,再算&,最后,即可。

10.【答案】A

【解析】注意x被賦值為八進(jìn)制的020,十進(jìn)制為16,再左移2位,即乘以4,轉(zhuǎn)換成八進(jìn)制輸出100.

11.【答案】D

【解析】本題考查C語言中的文件,C系統(tǒng)在處理文件時(shí),并不區(qū)分?jǐn)?shù)據(jù)的類型,都看成是字符流,按字節(jié)進(jìn)行處理輸入輸出

字符流的開始和結(jié)束只由程序控制而不受物理符號(hào)(如回東符)的控制。因此也把這種文件稱作“流式文件”。按數(shù)據(jù)的存放形式

分為二進(jìn)制文件和文本文件。

12.【答案】B

【解析】C語言中使用fopen函數(shù)打開文件,由于路徑使用飛“分隔,而飛”是轉(zhuǎn)移符號(hào)的的引導(dǎo)符故使用表示

13.【答案】B

【解析】判斷文件是否處于文件結(jié)束位踐,如文件結(jié)束,則返回值為】,否則為0。

14.【答案】B

個(gè)人收集整理,勿做商業(yè)用途

【解析】對(duì)于文件使用方式有以‘下幾點(diǎn)說明:

1.文件施用方式由十六個(gè)字符拼成,各字符的含義是:

r(read):讀

w(write):寫

a(append):追加

t(text):文本文件,可省略不寫

b(banary):二進(jìn)制文件

+:讀和寫

2.凡用“r”打開一個(gè)文件時(shí),該文件必須已經(jīng)存在,且只能從該文件讀出。

3.用“w”打開的文件只能向該文件寫入。若打開的文件不存在,則以指定的文件名建立該文件?,若打開的文件已經(jīng)存在,則將該文

件刪去,重建一個(gè)新文件.

4.若要向?個(gè)已存在的文件追加新的信息,只能用“a”方式打開文件。但此時(shí)該文件必須是存在的,否則將會(huì)出錯(cuò)。

5.在打開一個(gè)文件時(shí),如果出錯(cuò),fopen將返回一個(gè)空指針值NULL在程序中可以用這一信息來判別是否完成打開文件的工作,并作相應(yīng)的

處理。因此常用以下程序段打開文件:

if((fp=fopen(*c:\\hzkl6*,*rb*)—NIILL)

{

printf("\nerroronopenc:\\hzkl6file!*):

getchO;

exit(1);

}

6.把一個(gè)文本文件讀入內(nèi)存時(shí),要將ASCII碼轉(zhuǎn)換成二進(jìn)制碼,而把文件以文本方式寫入磁盤時(shí),也要把二進(jìn)制碼轉(zhuǎn)換成ASCII碼,因此文

本文件的讀寫要花贄較多的轉(zhuǎn)換時(shí)間。對(duì)二進(jìn)制文件的讀寫不存在這種轉(zhuǎn)換。

7.標(biāo)準(zhǔn)輸入文件(鍵盤),標(biāo)準(zhǔn)輸出文件(顯示疑),標(biāo)準(zhǔn)出錯(cuò)輸出(出錯(cuò)信息)是由系統(tǒng)打開的,可直接使用。

15.【答案】C

【解析】「seek函數(shù)用來移動(dòng)文件內(nèi)部位置指針。

數(shù)據(jù)塊讀寫函數(shù)(freadO和「write。)。

fseek函數(shù)(一般用于二進(jìn)制文件)改變文件的位置指針.

ftell函數(shù)作用:得到流式文件中的當(dāng)前位置,用相對(duì)于文件開頭的位移量來表示。返回值:返回當(dāng)前位置,出錯(cuò)時(shí)返回TL

二、填空題

1.函數(shù)

2.主函數(shù)或者main函數(shù)

3.scanf0printf0

4.1

5.8

個(gè)人收集整理,勿做商業(yè)用途

6.5.5

7.n2<n3nl<n2

8.chl〉='A'&&chl<='11chl=chl-32或者chl-=32

9.no

10.20,0

11.20,10

12.130

三、程序設(shè)計(jì)

1.參考答案:

#include<conio.h>

#include<stdio.h>

/defineM81

intfun(char*ss,charc)

{

}

mainO

{chara[M],ch:

clrscrO;

printf(*\nPleaseenterastrint:*);gets(a);

printf(w\nPleaseenterachar:*);ch=getchar();

printf(*\nThenumberofthecharis:%d\n*,fun(a,ch)):

I

2.參考答案

/*這題的關(guān)鍵在于進(jìn)行行列卜標(biāo)轉(zhuǎn)換的算法,由矩陣的對(duì)稱性可以看出在進(jìn)行行列互換時(shí)a[j]在好是與互換,因而只要讓程

序走完矩陣的左上角即可(用for(i=0;i<2;i++)再套for(j=i+l;j〈3;j++)來完成左上角的走動(dòng)。*/

intfun(intarray[3][3])

{inti,j,t;

for(i=0:i<2;i++)

for(j=i+l;j<3;j++)

{t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;)

個(gè)人收集整理,勿做商業(yè)用途

模擬試卷二

一、選擇題

I.下列敘述中正確的是

A.(:語言編譯時(shí)不檢杳語法B.C語番的子程序有過程和函數(shù)兩種

C.C語言的函數(shù)可以嵌套定義D.C語言所有函數(shù)默認(rèn)都是外部函數(shù)

以下關(guān)于C程序的說法中錯(cuò)誤的是一

A.必須有?個(gè)且只能有?個(gè)主函數(shù)B.可以有任意多個(gè)不同名的函數(shù)

C.必須用main作為主函|數(shù)名D.主函數(shù)必須放在其他函數(shù)之前

3.以下選項(xiàng)中含有不合法注釋的是一。

A.ini/?aisNo.*/a,b;B.inta,/*aisNo.*/b;

C.inta,b/*aisNo.*/;D.inta,b;/*/?aisNo.*/*/

4.關(guān)于C程序語句的說法錯(cuò)誤的是—o

A.定義語句和執(zhí)行語句均必須以分號(hào)結(jié)束B.一行中可以有多條語句

C.程序中的最后一條語句可以省略分號(hào)D.一條語句可以分寫在多行

5.C語言源程序經(jīng)編譯后生成的目標(biāo)文件擴(kuò)展名為

A..cB..objC..exeD..h

6.C語言提供的合法的數(shù)據(jù)類型關(guān)鍵字是

A.DoubleB.shortC.integerD.Char

在C語言中,不正確的int類型的常數(shù)是一。

A.32768B.0C.037D.OxAF

8.在C語言中,合法的字符常量是一

A.''084'B.'\x43'D.'0'

9.設(shè)有intx=ll:則表達(dá)式(x++*1/3)的值是一

A.3B.4C.11D.12

10.能正確表示邏輯關(guān)系:或aWO”的C語言表達(dá)式是—。

A.a>=I0ora<=0B.a>=0|a<=10

C.a>=10&&a<=0D.a>=10IIa<=0

11.x、y、z被定義為int型變量,若從鍵盤給x、y、z輸入數(shù)據(jù),正確的輸入語句是

A.INPUTx、y、z:B.scanf(飛湍d*d,,&x,&y,&z);

C.scanf(*%d%d%d*,x,y,z):D.rcad(*%d%d%d*?&x,&y,&z);

12.有以下說明和語句,且則對(duì)數(shù)組元素地址的正確表示是o

inta[]={l,2,3,4,5,6,7,8,9,0},*p,i:p=a:

A.&(a+l)B.a++C.&pD.ap[i]

13.typedeflongintBG;的作用是

個(gè)人收集整理,勿做商業(yè)用途

A.建立一種新的數(shù)據(jù)類名/B.第1個(gè)整型變量

C.定義一個(gè)長(zhǎng)整型變量D.定義一個(gè)新的數(shù)據(jù)類型標(biāo)識(shí)符

14.定義變量:chars[5],c;registerintb;則正確的調(diào)用語句是。

A.scanf(*%s%c*,s,c):B.scanf&b,&c);

C.scanf(*%D%c*,b,&c):D.scanf(*%s%c*,s,&c);

15.設(shè)有如下說明

typedefstruct

{intn;charc;doublex;}STD;

則以下選項(xiàng)中,能正確定義結(jié)構(gòu)體數(shù)組并賦初值的語句是一。

A.STDtt[2]={U,'A',62),{2,'B',75});

B.STDtt[2]=(l,*A*,62,2,*\75);

C.struct={{1,'A'),[2,'B')};

D.structtt[2]={{1,62.5},(2,*B*.75.OH:

二、填空題

1.若k、m為int整型變量,k被賦值11,有11>=1<++,則m值為,k的值為.

2.有以下程序段

intm=0,n=0:charc=,a*:

scanf(飛d%c%d”,&m,&c,&n):

printf%c,%d\n*?m,c,n);

若從鍵盤上輸入:IOA1O<回車>,則輸出結(jié)果是—(,

3.有以下程序

main()

(inti=10,j=l:

printf(*%d,$d\n",i—,++j);

執(zhí)行后輸出結(jié)果是?

4.以下程序段的輸出結(jié)果是

charstr[]-"ABCD”,*p=str;

printf(4,%d\n",*(p+4)):

5.設(shè)有語句inta=3;則執(zhí)行了語句a+=a-=a*a;后,變量a的值是_

6.以下程序求a數(shù)組中的所有?素?cái)?shù)的和,函數(shù)isprimc用來判斷自變量是否為素?cái)?shù)。素?cái)?shù)是只能被1和本身整除且大于1的自然數(shù)。

^include<stdio.h>

mainO

(inti,a[10],*p=a,sum=0;

printf("Enter10num:\n*);

個(gè)人收集整理,勿做商業(yè)用途

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

scanf(*%d*,&a[i]);

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

if(isprime(*(p+________))==1)

{printfCM*,*(a+i)):sum+=*(a+i):

}

printf(*\nlhesum=%d\n”,sum);

)

isprime(x)

inix;

{inti;

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

if(x%i==O)return(0);

|

7.以下程序的輸出結(jié)果是一

inta=3;

mainO

{int.s=0;

{inta=5:

s+=a++:

}s+=a++;

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

8.以卜程序運(yùn)行后的輸出結(jié)果是—

mainO

{chars[]=“9876”,*p;

for(p=s;p;p++)printf(0%s\nM,p);

}

9.下面程序段的運(yùn)行結(jié)果是一

i=l,s=3:

do

{s+=i++:

if(s%7==0)

continue;

個(gè)人收集整理,勿做商業(yè)用途

\else

++i;

}while(s<15);

printfi):

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

voidmain(void)

(

inta=l,k;

for(k=0;k<3:k++)

prinlf(飛4d",fl(a));

)

intfl(intx)

(staticintz=3,y=0:

y++;

z++;

return(x+y+z):

}

11.以下程序的功能是計(jì)算函數(shù)F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,請(qǐng)選擇填空。

#include<stdio,h>

#include〈math.h>

floatfunl(float,float);

voidmain(void)

(

floatx,y,z,sum;

scanf&x,&y,&z);

sum=funl(______)+funl();

printf(*sum-%f\n*,sum);

)

floatfunl(floata,floatb)

{

floatnum;

num=a/b:

returnnum;

個(gè)人收集整理,勿做商業(yè)用途

12.若有以下定義和語句:

inta[4]={0,1,2.3),*p;

p=&a[2];

則*—P的值是_____。

三.程序設(shè)計(jì)題

1.設(shè)計(jì)程序從鍵盤上輸入兩個(gè)整數(shù),然后交換這兩個(gè)數(shù),再輸出交換后的這兩個(gè)數(shù)。

2.從鍵盤輸入一個(gè)正整數(shù),判斷該數(shù)是否為索數(shù)若是,輸出yes,否則輸出no。

個(gè)人收集整理,勿做商業(yè)用途

模擬試卷二參考答案

一、選擇題

1.【答案】D

【解析】C語言編譯時(shí)要進(jìn)行語法檢查,有語法錯(cuò)誤的程序是不會(huì)執(zhí)行的。C語言的基本單位是函數(shù),沒有其它概念如子過程、子程

序之類的概念。C語言的函數(shù)允許嵌套調(diào)用,但是不允許嵌套定義。為了使函數(shù)能夠被其它文件的函數(shù)調(diào)用,函數(shù)默認(rèn)都是外部函數(shù)。

2.【答案】D

【解析】C程序中只能有?個(gè)main函數(shù),而且位置任意,不同的函數(shù),函數(shù)名不同。

3.【答案】D

【解析】C語言的注釋是/*……*/.可以出現(xiàn)在分隔符(空格、tab、回車)出現(xiàn)的位置,但不能嵌套。

4.【答案】C

【解析】C語言的語句必須有分號(hào),分號(hào)是語句的組成部分,?行可以寫?個(gè)或多個(gè)語句。?個(gè)語句也可以寫在多行上,區(qū)分語句是

否結(jié)束只要看有沒有遇到分號(hào)。

5.【答案】B

【解析】C語言中的源文件擴(kuò)展名為.c,編譯后生成.obj目標(biāo)文件,經(jīng)過鏈接生成可執(zhí)行文件.exe。

6.【答案】B

【解析】C語言是區(qū)分大小寫的,整型用ini表示而不是integer,

7.【答案】A

【解析】基本整型的范國(guó)是一32768?+32767.在這個(gè)范圍內(nèi)的都用int表示.其次可以用0開頭的八進(jìn)制數(shù)表示,和Ox開頭表示

的十六進(jìn)制。

8.【答案】B

【解析】字符常量只能是單引號(hào)括起來的單個(gè)字符,或是'引導(dǎo)的轉(zhuǎn)移符,若用八進(jìn)制表示則是'\ddd',l到3位的八進(jìn)制數(shù),十六進(jìn)

制‘\xhh'.1到2為的十六進(jìn)制數(shù)。

9.【答案】A

【解析】x++,先取x的值和1相乘再和3整除,注意/兩邊都是整型數(shù)據(jù),所以是整除.

10.【答案】D

【解析】C語言中兩個(gè)條件同時(shí)成立用&&連接,多個(gè)條件成立一個(gè)即可,使用H連接。

II.【答案】B

【解析】使用scanf輸入數(shù)據(jù)格式:scanf("格式控制符",變量的地址)

12.【答案】D

【解析】數(shù)組名a是常量,不能自增自減,可以通過指針加下標(biāo)的形式訪問數(shù)組元素如p[i].

】3.【答案】D

【解析】不能使用typedef產(chǎn)生新的數(shù)據(jù)類型,但可以根據(jù)定義已有的數(shù)據(jù)類型的別名。

14.【答案】D

【解析】b是寄存器變量,不能對(duì)寄存器變量取地址,使用%s輸入字符串時(shí),只需給出數(shù)組名即可,因?yàn)閿?shù)組名就是地址了.

個(gè)人收集整理,勿做商業(yè)用途

15.【答案】A

【解析】注意有沒有typedef,有則是定義一個(gè)結(jié)構(gòu)體類型的別名STD,若沒有則是定義一個(gè)結(jié)構(gòu)體類型的同時(shí),定義結(jié)構(gòu)體變量。

二、填空題

1.1112

2.10,A,10

3.10,2

4.0

5.-12

6.ireturn1

7.8

8.9876

876

76

6

9.8

10.6810

11.x+y,x-yz+y,z-y

12.1

三.程序設(shè)計(jì)題

1.參考答案:

include<stdio.h>

voidmain()

(intx,y,t:

scanf&x,&y);

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

t=x;

x=y;

y=t;

printf("x=$d,y=%d\n*,x,y);

}

2.參考答案:

#include<stdio.h>

#include<math.h>

voidmain()

個(gè)人收集整理,勿做商業(yè)用途

{intm,i,k;

scanf;

k=(int)sqrt(m);

for(i=2:i<=k:i++)

if(m%i=O)

break:

if(i<m)

printf(*no\n*);

else

prinlf(*yes\n*);

個(gè)人收集整理,勿做商業(yè)用途

模擬試卷三

一、選擇題

L要把高級(jí)語言編寫的源程序轉(zhuǎn)換為目標(biāo)程序,需要使用O

A.編輯程序B.驅(qū)動(dòng)程序C.診斷程序D.編譯程序

2.以下敘述中正確的是—。

A.C程序中注釋部分可以出現(xiàn)在程序中任意合適的地方

B.花括號(hào)“{”和“}”只能作為函數(shù)體的定界符

C.構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名

D.分號(hào)是C語句之間的分隔符,不是語句的一部分

3.設(shè)有以下說明語句

typedefstruct

{intn;charch[6]:)TYP;

則下面敘述中正確的是—。

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

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

4.以下說法中正確的是一°

A.^define和printf都是C語句B.^define是C語句,而prinlf不是

C.printf1是C語句,但#define不是D.#define和printf都不是C語句

5.設(shè)有以卜說明語句

structex

{inta;floatb;charc:}example:

則下面的敘述中錯(cuò)誤的是—O

A.struct是結(jié)構(gòu)體類型的關(guān)鍵字B.example是結(jié)構(gòu)體類型名

C.a、b、c都是結(jié)構(gòu)體成員名D.structex是結(jié)構(gòu)體類型

6.C語言中的數(shù)據(jù)類型包括基本類型和_

A.構(gòu)造類型、指針類型、空類型B.構(gòu)造類型、指針類型、邏輯類型

C.指針類型、集合類型、邏輯類型D.口期類型、構(gòu)造類型、指針類型

7.以下敘述正確的是——o

A.可以把include和else定義為用戶標(biāo)識(shí)符

B.可以把include定義為用戶標(biāo)以符,但不能把else定義為用戶標(biāo)識(shí)符

C.可以把else定義為用戶標(biāo)識(shí)符,但不能把include定義為用戶標(biāo)識(shí)符

D.include和else都不能定義為用戶標(biāo)識(shí)符

8.若變量a、i已正確定義,且i已正確賦值,合法的語句是——o

A.a—1B.++i;C.a=a++=5;D.a=int(i);

個(gè)人收集整理,勿做商業(yè)用途

9.有如下程序

inainO

{intx=l,a=0,b=0:

switch(x)

(case0:b++:

case1:a++;

case2:+a+;b++;

)

prinlf(Ha=%d,b=%d\nM,a,b);

1

該程序的輸出結(jié)果是

A.a=2,b=lB.a=l,b=lC.a=l,b=OD.a=2,b=2

10.有以下程序

main()

{inti=l,j=l,k=2;

lk++)&&i++)

printf(*%d,%d,%d\n*?i,j,k):

)

執(zhí)行后輸出結(jié)果是

A.1,1,2B.2,2,1C.2,2,2D.2,2,3

11.語句while(!E):中的條件!E等價(jià)于一。

A.E==0B.E!=1C.E!=0D.~E

12.函數(shù)調(diào)用語句中含有一個(gè)實(shí)參。

Fun(《al,a2)?(a3?a4,a5)?a6);

A.3B.4C.5D,6

13.在C語言中,只有?在使用時(shí)才占用存儲(chǔ)空間的變量存儲(chǔ)類型為0

A.static和autoB.register和auto

C.static和registerD.register和extern

14.以下程序的輸出結(jié)果是^——.

/defineM(x,y,z)x*y+z

main()

{inta=l,b=2,c=3;

print!’("%d'n”,M(a+b,b+c,c+a));}

A.B.17C.15D.12

個(gè)人收集整理,勿做商業(yè)用途

15.設(shè)有以下語句,其中OWigO,則_不是對(duì)a數(shù)組元素的正確引用。

inta[10]=9,1,2,3,4,5,6,7,8,9),*p=a:

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

二、判斷題

1.程序的執(zhí)行總是從主函數(shù)開始,主函數(shù)執(zhí)行完時(shí),則程序執(zhí)行結(jié)束。()

2.控制臺(tái)標(biāo)準(zhǔn)輸入設(shè)備一般是指鍵盤。()

3.do-while語句的循環(huán)體至少執(zhí)行?次。

4.循環(huán)體中continue語句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行。()

5.C語言規(guī)定,else子句總是與它上面的最近的if配對(duì)。()

6.數(shù)組的長(zhǎng)度是固定的。

7.若有說明:inta[3][4];則a[l+l][0]是對(duì)a數(shù)組元素的正確引用。()

8.chara口=@1,2,3,4,5,6};不是正確的數(shù)組說明語句。()

9.字符串"This"大于字符串"that"。()

10.在用數(shù)組名作為函數(shù)實(shí)參時(shí),傳遞的是數(shù)組的起始地址,所以就不允許使用形參數(shù)組的形式。()

11.如果在同一個(gè)源文件中,外部變量與局部變量同名,則在局部變量的作用范圍內(nèi),外部變量被“屏蔽”,即它不起作用。()

12.預(yù)處理命令不是C語言本身的組成部分,不能直接對(duì)它們進(jìn)行編譯。()

13.全局變量可以被任何一個(gè)函數(shù)中的任何一個(gè)表達(dá)式使用。()

14.表達(dá)式i++與在任何場(chǎng)合功能完全相同.()

15.在賦值表達(dá)式中,隙值號(hào)左邊的變量和右邊的表達(dá)式之值的數(shù)據(jù)類型可以不相同。()

三、程序運(yùn)行結(jié)果題

1.#include<stdio.h>

#include<stdlib.h>

#include<conio.h>

tiinclude<string.h>

voidmain(void)

{charsi[101],s2[51];

intIL12,i;

printfC請(qǐng)輸入字符串1:*):

gets(sl);

printf("請(qǐng)輸入字符串2:");

gets(s2);

ll=strlen(sl):

12=strlen(s2);

for(i=0:i<12+l:i++)si[1l+i]=s2[i];

個(gè)人收集整理,勿做商業(yè)用途

*printf(si):

1

假設(shè)運(yùn)行上述程序時(shí),輸入的2個(gè)字符串分別為ABCDEF,1234,則運(yùn)行結(jié)果為()。

2.當(dāng)運(yùn)行以下程序時(shí),從鍵盤鍵入right?,則卜面程序的運(yùn)行結(jié)果是()。

^include<stdio.h>

voidmain(void)

{

charc:

while((c=gelchar())!='?')pulchar(++c);

}

3.如果運(yùn)行以卜.程序段輸入字符為“t”,則程序段的運(yùn)行結(jié)果是()。

voidmain(void)

(

charc1;

scanf&cl);

cl=(cl>=A'&&cl<=Z,)?(cl+32):cl:

cl=(cl>-a'&&cl<=,z')?(cl-32):cl;

printf(*%c*,cl);

}

4.以卜程序的運(yùn)行結(jié)果是(

-include<string.h>

voidmain()

{printfstrlen("school");)

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

^defineA4

UdcfineB(x)A*x/2

voidmainO

(

floatc,a=4.5;

c=B(a);

printf(*%.lf\n*,c);

)

四、程序設(shè)計(jì)

l.輸入一個(gè)華氏溫度,要求輸出攝氏溫度。公式為c=5(F-32”9,輸出要求有文字說明,取位2小數(shù),

個(gè)人收集整理,勿做商業(yè)用途

2.輸入一行字符,分別統(tǒng)計(jì)出其中英文字母、空格、數(shù)字和其他字符的個(gè)數(shù)。

個(gè)人收集整理,勿做商業(yè)用途

模擬試卷三參考答案

一、選擇題

I.【答案】D

【解析】高級(jí)語言編寫的源程序必須經(jīng)過編譯程序的編譯,產(chǎn)生目標(biāo)程序。源程序到目標(biāo)程序有兩種方式:編譯方式和解釋方式。

2.【答案】A

【解析】{}不僅是函數(shù)體的定界符還是第合語句的定界符。函數(shù)可以分為系統(tǒng)函數(shù)和用戶自定函數(shù).

3.【答案】B

【解析】使用lypedef定義了TYP結(jié)構(gòu)體類型

4.【答案】D

【解析】編譯預(yù)處理命令不是C語句,所以卷一個(gè)預(yù)處理命令后是沒有分號(hào)的,printf是預(yù)定義函數(shù)名。

5.【答案】B

【解析】struct是定義結(jié)構(gòu)體的關(guān)鍵字,structex是結(jié)構(gòu)體類型,example是結(jié)構(gòu)體變量名。

6.【答案】A

【解析】本題考查的是數(shù)據(jù)類型包含基本類型、構(gòu)造類型、指針、空類型。C語言中沒有邏輯類型、日期類型。

7.【答案】B

【解析】C語言關(guān)鍵字不能定義為用戶自定義標(biāo)識(shí)符,系統(tǒng)預(yù)定義標(biāo)識(shí)符可以定義為用戶自定義標(biāo)識(shí)符,但改變了原來的意義,如irn

prinlf:

8.【答案】B

【解析】合法的語句,既然是語句就必須有分號(hào),賦值號(hào)左邊不能是表達(dá)式,強(qiáng)制類型轉(zhuǎn)換時(shí)類型要用括號(hào)括起來。

9.【答案】A

【解析】switch語句中的caso語句如果沒有break語句時(shí),是要順次往下執(zhí)行的.

10.【答案】C

【解析】C語言對(duì)邏輯運(yùn)算符I和&&運(yùn)算符優(yōu)化,即運(yùn)算符左邊為真時(shí)右邊是沒有被執(zhí)行運(yùn)算的。&&運(yùn)算符左邊為假(0)時(shí),右

邊也不用計(jì)算。

11?【答案】A

【解析】條件可以這樣理解:當(dāng)E等于。時(shí)成立。

12.【答案】A

【解析】注意函數(shù)的參數(shù)里邊有兩個(gè)逗號(hào)表達(dá)式,函數(shù)參數(shù)是表達(dá)式要先計(jì)算表達(dá)式的值,再進(jìn)行參數(shù)傳遞.

13.【答案】B

溫馨提示

  • 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)論