歷年江蘇某大學C語言預測卷(八套試卷)及答案_第1頁
歷年江蘇某大學C語言預測卷(八套試卷)及答案_第2頁
歷年江蘇某大學C語言預測卷(八套試卷)及答案_第3頁
歷年江蘇某大學C語言預測卷(八套試卷)及答案_第4頁
歷年江蘇某大學C語言預測卷(八套試卷)及答案_第5頁
已閱讀5頁,還剩76頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

江蘇科技大學

C語言預測卷(一)

考試方式:【閉卷】考試時間:【90分鐘】

總分:【100分】

一、單項選擇題(共20題,每小題2分,共40分)

1、流程圖里面的開始和結束用()表示。

A、矩形

B、圓

C、橢圓

D、菱形

【答案】C

2、設intx;則以下語句中錯誤的輸入是

A、scanf("%d",x);

B、scanf("%d”,&x);

C、scanf("%o”,&x);

D、scanf("%x”,&x);

【答案】A

3、下列個選項中,合法的c語言關鍵字是—

A、integer

B、sin

C、string

D、void

【答案】D

4、有以下程序

main()

(

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

if((j++IIk++)&&i++)

printf(H%d,%d,%d\n,f,i,j,k);

)

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

A、1,1,2

B、2,2,1

C、2,2,2

D、2,2,3

【答案】C

【解析】首先計算if語句后面的表達式值,先計算運算符&&前面括號里的

“II”運算。在I”運算中先計算j++,值為l(j的值為2),為真,后面的

k++將不再計算,k的值依舊為2。計算&&后面的表達式i++,值為l(i的值變

為2)。整個表達式的值為真,所以執(zhí)行后面的輸出語句,最后輸出的i、j和k

的值為2、2和2。

5、下列敘述中正確的是o

A、break語句只能用于switch語句體中

B、continue語句的作用是使程序的執(zhí)行流程跳出包含它的所有循環(huán)

C、break語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)

D、在循環(huán)體內(nèi)使用break語句和continue語句的作用相同

【答案】C

6、以下對一維數(shù)組a的正確說明是o

A、intn;scanf("%d",&n);inta[n];

B、intn=10,a[n];

C、inta(10);

D、#defineSIZElOinta[SIZE];

【答案】D

7、下述共同體變量x所占用內(nèi)存字節(jié)數(shù)為o

unionexp

{

inti;

floatj;

doublek;

)

x;

A、16個

B、12個

C、8個

D、隨機而定

【答案】C

【解析】共用體占內(nèi)存大小是根據(jù)其成員最大占內(nèi)存大小來決定的。

8、若有定義:"inta[2][3];",則對a數(shù)組的第i行第j列元素的正確引用為

()?

A、*(*(a+i)+j)

B、(a+i)[j]

C、*(a+j+j)

D、*(a+i)+j

【答案】A

9、有以下程序段

charch;

intk;

ch='a';

k=12;

printf("%c,%d,",ch,ch,k);

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

已知字符a的ascii十進制代碼為97,則執(zhí)行上述程序段后輸出結果是一

A、因變量類型與格式描述符的類型不匹配輸出無定值

B、輸出項與格式描述符個數(shù)不符,輸出為零值或不定值

C、a,97,12k=12

D、a,97,k=12

【答案】D

10、以下能將字符串,youareluck!正確讀入的語句組是。

A、chars[80];scanf("%s",s);

B、char*s:scanfs);

C、chars[80];gets(s);

D、char*s;gets(3);

【答案】C

11、以下數(shù)組定義中不正確的是

A、inta[2][3];

B、intb[][3]={0,l,2,3};

C、intc[100][100]={0};

D、inta[3][>{{1,2},{1,2,3},{1,2,3,4)};

【答案】D

12、下列敘述中錯誤的是o

A、在C語言中,函數(shù)中的自動變量可以賦初值,每調用一次賦一次初值

B、在C語言中,在調用函數(shù)時,實參和對應形參在類型上只需賦值兼容

C、在C語言中,外部變量的隱含類型是自動存儲類別

D、在C語言中,函數(shù)形參的存儲類型是自動(aut類型的變量

【答案】C

【解析】外部變量在編譯時由系統(tǒng)分配永久的內(nèi)存空間,所以外部變量的類型

不是自動存儲類別。

13、在標準ascii編碼表中,數(shù)字碼、小寫英文字母和大寫英文字母的前后次序

是O

A、數(shù)字、小寫英文字母、大寫英文亨母

B、小寫英文字母、大寫英文字母、數(shù)字

C、數(shù)字、大寫英文字母、小寫英文字母

D、大寫英文字母、小寫英文字母、數(shù)字

【答案】C

【解析】在標準ASCH碼表中,數(shù)字碼、小寫英文字母和大寫英文字母的前后

次序是:數(shù)字、大寫英文字母、小寫英文字母。

14、合法的main。函數(shù)命令參數(shù)形式是。

A、main(inta,char*c[])

B、main(intarc,char**arv)

C、main(intargc,char*argv)

D、main(intargv,char*argc[])

【答案】C

15、下列程序的執(zhí)行結果是

#include<stdio.h>

main()

(

inta,b,c;

a=b=2;

c=(a++)-1;

printf("%d,%d",a,c);

c+=-a+++(++b);

printf("%d,%d",a,c);

)

A、3,14,1

B、3,14,2

C、2,04,1

D、2,14,1

【答案】A

【解析】本題主要考查自加運算符(++、--)的使用。①前綴變量“++i、-

i”,在使用i之前,先使i的值加1或者減1,再使用此時的表達式的值參與

運算:②后綴變量“i++、i~”,先使用此時的表達式的值參與運算,在使用

i之后,再使i的值加1或者減1。題中計算表達式c=(a++)T時先使用a的

值進行計算,結果為c=2T=l,然后將a的值加1,即執(zhí)行完此語句后a的值是

3;表達式c+=-a+++(++b)等價于c=c+(-a++)+(++b),c=l+(—3)+3=1,此時

a=4,b=3o

16、以下的for循環(huán)次數(shù)是多少次?for(x=0,y=0;(y!=123)!|(x<4);x++);

A、執(zhí)行3次

B、執(zhí)行4次

C、循環(huán)次數(shù)不定

D、是無限循環(huán)

【答案】D

17、設有以下說明語句structstu

(

inta;

floatb;

)

stutype;

則下面的敘述不正確的是_____。

A、struct是結構體類型的關鍵字

B、structstu是用戶定義的結構體類型

C、stutype是用戶定義的結構體類型名

D、a和b都是結構體成員名

【答案】C

18、有以下程序

ttinclude<stdio.h>

#defineF(X,Y)(X)*(Y)

main()

(

inta=3,b=4;

printf("%d\n",F(a++,b++));

)

程序運行后的輸出結果是。

A、12

B、15

C、16

D、20

【答案】A

19、若已定義:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0WiW9,則

對a數(shù)組元素不正確的引用是o

A、a[p-a]

B、*(&

C、p

D、a[10]

【答案】D

【解析】通常,引用一個數(shù)組元素可以用下標法,如s[p-a]和p[i]的形式;或

指針法,如*(&a[i])的形式。在本題中a[0]=0,a[9]=9,顯然a[10]超出了數(shù)

組范圍。

20、設有以下語句

typedefstructs

(

intg;

charh;

)

t;

則下面敘述中正確的是。

A、可用S定義結構體變量

B、可以用T定義結構體變量

C、S是struct類型的變量

D、T是structS類型的變量

【答案】A

二、判斷題(共10題,每小題2分,共20分)

()1、在c語言中,引用數(shù)組元素時,數(shù)組下標的數(shù)據(jù)類型只能是整型常量。

()

【答案】錯誤

()2、邏輯運算符&&|I!的運算順序是!優(yōu)先于&&優(yōu)先于||()

【答案】正確

()3、指針數(shù)組的每個元素都是一個指針變量

【答案】正確

()4、while語句構成的循環(huán)至少執(zhí)行一次

【答案】錯誤

()5、c語言中字符串的結束符是'\0'。()

【答案】正確

()6、在函數(shù)的定義和調用過程中,形式參數(shù)和實在參數(shù)數(shù)目可以不一致

【答案】錯誤

()7、c程序中如果對一維數(shù)組的全部元素都賦初值,則定義數(shù)組時必須指定

數(shù)組長度。

【答案】錯誤

()8、函數(shù)strcmp從頭至尾順序地將其對應字符比較,遇到兩個字符不等

時,兩個字符相減得到一個int型值,兩個字符串完全相同時,則返回0。

【答案】正確

()9、c程序中如果對二維數(shù)組的全部元素都賦初值,則定義數(shù)組時第一維的

長度不能省略,但第二維的長度可以不指定。

【答案】錯誤

()10、宏定義和文件包含都是c語言中的編譯預處理命令,對它們的處理是

在編譯前完成的

【答案】正確

三、編程題(共3題,共40分)

1、編寫程序:輸入一個圓半徑r,當r>=0時,計算并輸出圓的面積和周

長,否則,輸出提示信息。(本題10分)

【答案】Sinclude<stdio.h>

ttdefinePI3.14

intmain(void)

doubler,area,girth;

printf(,fpleaseinputr:\n,f);

scanf(H%lfH,&r);

if(r>=0)

{area=PI*r*r;

girth=2*PI*r;

printf(,ftheareais%.2f\nH,area);

printf(Mthegirthis%.2f\n",girth);}

else

printf(HInputerror!\n,f);

return0;

}

2、我國古代有一種回文詩,倒念順念都有意思,例如“人過大佛寺“,倒讀起

來便是“寺佛大過人”。還有經(jīng)典的對聯(lián)“客上天然居,居然天上客”。此種

例子舉不勝舉。在自然數(shù)中也有類似情形,比如1991就是一個很特殊的四位

數(shù),從左向右讀與從右向左讀竟是完全一樣的,這樣的數(shù)稱為“回文數(shù)”。編

程序輸出1到10000內(nèi)的所有回文數(shù)并統(tǒng)計個數(shù)。(本題14分)

【答案】#include<stdio.h>

ftinclude<math.h>

voidmain()

{inti,oldi,newi,t,count=0;

for(i=l;i<=10000;i++)

{〃以下代碼用于產(chǎn)生i的逆序數(shù)

newi=0;

oldi=i;

do

(

t=oldi%10;

oldi=oldi/10;

newi=newi*10+t;

}while(oldi!=0);

〃如果產(chǎn)生的逆序數(shù)跟原數(shù)相同剛說明是回文數(shù)

if(newi==i)

{printf(K%8d,f,i);

count++;

printf("\n共有%d個!\n",count);

)

3、給定n本書的名稱和定價,本題要求編寫程序,查找并輸出其中定價最高和

最低的書的名稱和定價。

輸入格式:

輸入第一行給出正整數(shù)n(<10),隨后給出n本書的信息。每本書在一行中給

出書名,即長度不超過30的字符串,隨后一行中給出正實數(shù)價格。題目保證沒

有同樣價格的書。

輸出格式:

在一行中按照“價格,書名”的格式先后輸出價格最高和最低的書。價格保留

2位小數(shù)。

輸入樣例:

3

ProgramminginC

21.5

ProgramminginVB

18.5

ProgramminginDelphi

25.0

輸出樣例:

25.00,ProgramminginDelphi

18.50,ProgramminginVB(本題16分)

【答案】#include<stdio.h>

structmessage

IF

charnamel[30];

charname2[30];

charname3[30];

doubleprice;

};

structmessaged[10];

intmain()

intN;

scanf(w%dM,&N);

inti,j;

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

(

scanf(n%s%s%s,f,d[i].namel,d[i].name2,d[i].name3);

scanf(M%lfH,&d[i].price);

)

intt,r;

doublemax,min;

max=min=dEO].price;

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

(

if(min>d[j].price)

(

min=d[j].price;

t=j;}

if(max<d[j].price)

(

max=d[j].price;

r=j;

)

)

printf(n%.21f,%s%s%s\nM,max,d[r].namel,d[r].name2,d[r].name3);

printf(M%.21f,%s%s%s\nn,min,d[t].namel,d[t].name2,d[t].name3);

return0;

)

江蘇科技大學

C語言預測卷(二)

考試方式:【閉卷】考試時間:【90分鐘】

總分:【100分】

一、單項選擇題(共20題,每小題2分,共40分)

1、數(shù)據(jù)的存儲結構是指O

A、存儲在外存中的數(shù)據(jù)

B、數(shù)據(jù)所占的存儲空間量

C、數(shù)據(jù)在計算機中的順序存儲方式

D、數(shù)據(jù)的邏輯結構在計算機中的表示

【答案】D

【解析】數(shù)據(jù)的邏輯結構在計算機存儲空間中的存放形式稱為數(shù)據(jù)的存儲結

構,也稱數(shù)據(jù)的物理結構,所以選項D正確。

2、設a為int型變量,執(zhí)行下列賦值語句后,a的取值分別為()

a=125.534;a=20.0/3;a=20%3;a=(int)125%521%4;a=5<<2;

A、125,6.666666,2,1,1

B、125,6,2,1,1

C、125.534,6.666666,2,1,20

D、125,6,2,1,20

【答案】D

3、下列選項中正確的語句組是o

A、chars[8];s={"Beijing");

B、char*s;s={"Beijing");

C、chars[8];s="Beijing";

D、char*s;s="Beijing”;

【答案】D

4、有以下程序

#include<stdio.h>

main()

inta=5,b=4,c=3,d=2;

if(a>b>c)

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

elseif((c-1>=d)==1)

printf("%d\n",d+1);

else

printf("%d\n",d+2);

}

執(zhí)行后輸出的結果是。

A、2

B、3

C、4

D、編譯時有錯,無結果

【答案】B

【解析】第二個if語句中的表達式“c-l>=d”的值為邏輯值1,所以該條件

成立。

5、有以下程序:

mainO

(

ints=0.n;

for(n=O;n<3;n++)

(

switch(s)

(

case0;

easel:s+=l;

case2:s+=2;

break;

case3:s+=3;

default:s+=4;

)

printf("%d,"s);

)

}

程序運行后的輸出結果是O

A、1,2,4,

B、1,3,6,

C、3,10,14,

D、3,6,10,

【答案】C

6、若有以下說明:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則值為6的表

達式是o

A、*p+6

B、*(p+6)

C、*p+=5

D、p+5

【答案】C

【解析】選項A,*p+6,其值等于1+6=7;選項B,*(p+6),其值等于a[6]=7;

選項C,*p+=5,其值等于*p=*p+5=l+5=6;選項D,p+5是個地址值。

7、表達式0xl3-0xl7的值是

A、0x04

B、0x13

C、0xE8

D、0x17

【答案】A

【解析】運算符“J'是按位異或運算符,其運算規(guī)則是:參與運算的兩個二進

制數(shù),若相對應的二進制位上的數(shù)相同,則該位的結果為0;否則該位的結果

為1o可得:

0x13*0x17=1001r10111=0x04

8、在c語言中,引用數(shù)組元素時,其數(shù)組下標的數(shù)據(jù)類型允許是(,

A、整型表達式

B、整型常量

C、整型常量或整型表達式

D、任何類型的表達式

【答案】C

【解析】在C語言中,引用數(shù)組元素時,其數(shù)組下標的數(shù)據(jù)類型可以是整型常

量,也可以是整型表達式。

9、c語言中非空的基本數(shù)據(jù)類型包括.

A、整型,實型,邏輯型

B、整型,實型,字符型

C、整型,字符型,邏輯型

D、整型,實型,邏輯型,字符型

【答案】B

10、以下選項中能表示合法常量的是。

A、整數(shù):1,200

B、實數(shù):1.5E2.0

C、字符斜杠:"斜

D、字符串:"\007"

【答案】D

11、如有說明:charsl[5],s2[7];要給數(shù)組si和s2整體賦值,下列語

句中正確的是.

A、sl=getchar();s2=getchar();

B、scanf("%s%s",si,s2);

C、scanf("%c%c",s1,s2);

D、gets(si,s2);

【答案】C

12、下面函數(shù)調用語句含有實參的個數(shù)為o

func((expl,exp2),(exp3,exp4,exp5));

A、1

B、2

C、3

D、5

【答案】B

【解析】本題考套函數(shù)調用時的實參形式。這里有一個逗號運算的考查,(a,

b)的運算結果為b,因而只有一個值,結合func的調用形式,可以知道實參的

個數(shù)只有2個。

13、在c語言中,下列運算符優(yōu)先級最高的是o

A、>=

B、==

C、!=

D、&&

【答案】D

【解析】本題考查一些常見運算符的優(yōu)先級。

運算符的優(yōu)先級表示的是運算的先后次序,優(yōu)先級最高的先參加運算。本題

選項中的運算符優(yōu)先級從低到高依次為>=、==、!=、&&o

14、設有說明int(*ptr)[m];其中ptr是。

A、M個指向整型變量的指針

B、指向M個整型變量的函數(shù)指針

C、一個指向具有M個整型元素的一維數(shù)組的指針

D、具有M個指針元素的一維指針數(shù)組,每個元素都只能指向整型量

【答案】C

15、以下程序的輸出結果是o

#include<stdio.h>

main()

{

intcount,i=0;

for(count=l;count<=4;count++)

(

i+=2;

printf("%d",i);

A、20

B、246

C、2468

D、2222

【答案】C

16、若有以下程序

#include<stdio.h>

main(){

inta=6,b=0,c=0;

for(;a;){

b+=a;

a-=++c;

)

printf("%d,%d,%d\n",a,b,c);

)

則程序的輸出結果是______o

A、0,14,3

B、1,14,3

C、0,18,3

D、0,14,6

【答案】A

【解析】循環(huán)執(zhí)行3次,使a為0,循環(huán)結束,最終abc分別為0143,所

以選擇A。

17、以下程序的輸出結果是______o

structhar

(

intx,y;

structhar*p;

)

h[2];

main()

(

h[O].x=l;

h[0].y=2;

h[l].x=3;

h[l].y=4;

h[O].p=&h[l];

h[l].p=h;

printf("%d%d\n",(h[O].p)->x,(h[l].p)->y);

)

A、12

B、23

C、14

D、32

【答案】D

18、以下程序的結果是______ointa=5,b=7;

voidsun()

(

a=100;

b=200;

)

main()

(

inta=200,b=100;

sun();

printf("%d%d\n",a,b);

)

A、100200

B、57

C、200100

D、75

【答案】C

19、以下敘述中正確的是o

A、每個數(shù)組包含一組具有同一類型的變量,這些變量在內(nèi)存中占有連續(xù)的

存儲單元

B、一條語句只能定義一個數(shù)組

C、數(shù)組說明符的一對方括號中只能使用整型常量,而不能使用表達式

D、在引用數(shù)組元素時,下標表達式可以使用浮點數(shù)

【答案】A

【解析】數(shù)組的元素是同一類型,占用連續(xù)空間,所以選擇A。

20、當定義一個結構體變量時,系統(tǒng)分配給它的內(nèi)存是o

A、各成員所需內(nèi)存量的總和

B、結構中第一個成員所需內(nèi)存量

C、結構中最后一個成員所需內(nèi)存量

D、成員中占內(nèi)存量最大者所需的容量

【答案】A

二、判斷題(共10題,每小題2分,共20分)

()1、c語言中"++"的運算符優(yōu)先級高于

【答案】正確

()2、'a'和"a"是完全等價的常量。

【答案】錯誤

()3、當函數(shù)的類型為float型時,vc++允許省略函數(shù)聲明。

【答案】錯誤

()4、do-while循環(huán)的while后的分號可以省略。

【答案】錯誤

()5、字符數(shù)組定義后,不能用賦值語句將一字符串常量或字符數(shù)組直接賦給

一個字符數(shù)組。

【答案】正確

()6、函數(shù)的實參和形參都可以是變量、常量和表達式。

【答案】錯誤

()7、若有定義一維數(shù)組inta[4]的首地址為0078h,則a[l]元素的首地

址是0079h(設int型數(shù)據(jù)占兩個字節(jié))。

【答案】錯誤

()8、在定義函數(shù)時,必須要指定函數(shù)中的參數(shù)列表。()

【答案】錯誤

()9、指針變量,只能作為函數(shù)的形參,不可以作函數(shù)的實參

【答案】正確

()10、fseek函數(shù)一般用于二進制文件。

【答案】正確

三、編程題(共3題,共40分)

1,編程序輸出1—1000內(nèi)的所有素數(shù)。所謂素數(shù)是指除了能被1和它本身之外

不能被其它數(shù)整除的數(shù)。(本題10分)

【答案】Sinclude<stdio.h>

voidmain()

inti,j,signal,count=0;

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

(

signal=l;

for(i=2;i<j&&signal==l;i++)

if(j%i==O)

signal=0;

if(signal=l)

{

printf(H%8dM,j);

count++;

printf("\n共有%d個!\nn,count);

2、一個5位數(shù),判斷它是不是回文數(shù)。即12321是回文數(shù),個位與萬位相同,

十位與千位相同。(本題14分)

【答案】程序分析:先分離出各位,然后判斷個位與萬位相同,且十位與千位

相同,即是回文數(shù)。

程序源代碼:

main()

(

longge,shi,qian,wan,x;

scanf("%ld",&x);

wan=x/10000;

qian=x%10000/1000;

shi=x%100/10;

ge=x%10;

if(ge==wan&&shi==qian)/*個位等于萬位并且十位等于千位*/

printf("thisnumberisahuiwen\n");

else

printf("thisnumberisnotahuiwen\n");

)

3、編寫一個函數(shù)統(tǒng)計并打印所輸入的正文中的各個英文單詞出現(xiàn)的次數(shù)并按次

數(shù)的遞減順序輸出,使用結構體實現(xiàn)。(本題16分)

【答案】#include<stdio.h>

#include<stdlib.h>

#include<string.h>

structlist{

charwordsL100];

intnum;

structlist*next;

);

typedefstructlistnode;

typedefnode*link;

voidcount(char*str){

linkptrthead,ptrn,headnew;

inti=0,j=0,prei=0;

chartemp[20];

ptr=(1ink)malloc(sizeof(node));

head=ptr;

ptr->next=NULL;

do{

if(*(str+i)==,'|*(str+i)==,\0'){

temptj]=,\0';

ptr=head;

while(ptr->next!=NULL){

if(strcmp(ptr->next->words,temp)==0){

ptr->next->num++;

break;

)

else{

ptr=ptr->next;

if(ptr->next==NULL){

ptr->next=(link)malloc(sizeof(node));

strcpy(ptr->next->words,temp);

ptr->next->num=l;

ptr->next->next=NULL;

}

if(*(str+l)='\0')break;

j=0;i++;

continue;

)

temp[j++]=str[i++];

}while⑴;

ptrn=(link)malloc(sizeof(node));

headnew=ptrn;

ptrn->next=NULL;

ptr=head->next;

ptrn=headnew;

while(head->next!=NULL){

while(ptrn->next!=NULL&&ptrn->next->num>=ptr->num)

ptrn=ptrn->next;

head->next=ptr->next;

ptr->next=ptrn->next;

ptrn->next=ptr;

ptr=head->next;

ptrn=headnew;

ptr=headnew->next;

while(ptr!=NULL){

puts(ptr->words);

printf(,f%d\nM,ptr->num);

ptr=ptr->next;

intmain(){

charstr[500];

gets(str);

count(str);

江蘇科技大學

C語言預測卷(三)

考試方式:【閉卷】考試時間:【90分鐘】

總分:【100分】

一、單項選擇題(共20題,每小題2分,共40分)

1、下列選項中,哪一項不是C語言的關鍵字O

A、auto

B、int

C、add

D、goto

【答案】c

【解析】add不是C語言的關鍵字,所以答案為選項3。

2、下列程序段的輸出是___ointc[]={l,3.5);

int*k=c+l;

printf("%d",*++k);

A、3

B、4

C、5

D、6

【答案】c

3、若有以下定義:chara;intb;floatc;doubled;則表達式a*b+b-c值的

類型為()o

A、float

B、int

C、char

D、double

【答案】D

4、switch語句不能用于下列哪種數(shù)據(jù)類型()

A、double

B、byte

C、short

D、char

【答案】A

【解析】swish語句中表達式expression只能返回這幾種類型的值:int、

byte、short和char。如果比較的數(shù)據(jù)類型是double型,則不能使用switch

結構。

5、設j為int型變量,則下面for循環(huán)語句的執(zhí)行結果是。for(j=10;j

>3;j—)

(

if(j%3)j—;

—j;

一j;

printf("%d",j);

)

A、63

B、74

C、62

D、73

【答案】B

6、對下面程序段,描述正確的是。for(t=l;t<=100;t++)

(

scanf("%d",&x);

if(x<0)continue;

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

)

A、當x<0時,整個循環(huán)結束

B、當x>=0時,什么也不輸出

C、printf函數(shù)永遠也不執(zhí)行

D、最多允許輸出100個非負整數(shù)

【答案】D

7、定義floata=8.735,那么printf(崛7.2f",a);的輸出結果為

A、7.2

B、8.73

C、【空格】【空格】【空格】8.73

D、【空格】【空格】8.73

【答案】C

8、下列字符數(shù)組長度為5的是o

A、chara[]={'h','a','b','c','d'};

B、charb[]={'h',"a','b','c','d','\0');

C、charc[10]={'h',"a','b','c',"d');

D、chard[6]={'h','a','b',"c','\0'};

【答案】A

9、以下敘述中錯誤的是o

A、用戶所定義的標識符允許使用關鍵字

B、用戶所定義的標識符應盡量做到"見名知意"

C、用戶所定義的標識符必須以字母或下劃線開頭

D、用戶定義的標識符中,大、小寫字母代表不同標識

【答案】A

10、下列字符串是標識符的是:。

A、_HJ

B、9_student

C、long

D、LINE1

【答案】A

11、下面程序的輸出結果是。

#include<stdio.h>

main(){

chara[]='a','b','c','d','f','g',*p;

p=a;

printf("%c\n",*p+4);

)

A、a

B、b

C、e

D、f

【答案】C

【解析】號的優(yōu)先級比“+”的優(yōu)先級高,所以先執(zhí)行“*P”;指針P指

向的是數(shù)組的首地址,因此*p=a,再加4得'e'。

12、如果在一個復合語句中定義了一個變量,則有關該變量正確的說法是

A、只在該復合語句中有效

B、只在該函數(shù)中有效

C、在本程序范圍內(nèi)均有效

D、為非法變量

【答案】A

13、關于標識符,下列選項中描述錯誤的是o

A、標識符只能由字母、數(shù)字和下劃線組成

B、標識符不能以下劃線作為第一個字符

C、標識符不能以數(shù)字作為第一個字符

D、標識符不區(qū)分大小寫字母

【答案】D

【解析】標識符區(qū)分大小寫字母。

14、若有定義:intw[3][5];則以下不能正確表示該數(shù)組元素的表達式是

A、*(*w+3)

B、*(w+l)[4]

C、*(*(w+1))

D、*(&w[0][0]+l)

【答案】B

【解析】本題考查的是通過指針引用二維數(shù)組元素。通過一維數(shù)組名或指向一

維數(shù)組元素的指針來引用數(shù)組元素有兩種寫法:a[i]和*(a+i),它們是等價

的。這是一種運算符之間的等價轉換,就好像a-(b-c)等價于a-b+c-樣。知道

了這種轉換,可以將之擴展到二維數(shù)組甚至任意維數(shù)組上來。因為口運算符的

結合性是從左至右的,所以等價于(w[i])[j],此時可以先將任意一個

[運算符轉換為指針形式為:(*(w+i))[j]或*(w[i]+j),或者同時轉換:

*(*(w+i)+j)o上述幾種形式都完全等價于w[i][j]o

15、有以下程序

intfl(intx,inty)

(

returnx>y?x:y;

)

intf2(intx,inty)

(

returnx>y?y:x;

main()

inta=4,b=3,c=5,d,e,f;

d=f1(a,b);

d=fl(d,c);

e=f2(a,b);

e=f2(e,c);

f=a+b+c-d-e;

printf("%d,%d,%d\n",d,f,e);

)

執(zhí)行后輸出的結果是O

A、3,4,5

B、5,3,4

C、5,4,3

D、3,5,4

【答案】C

16、有下列程序:

#include<stdio.h>

main()

(

inta=6,b=7,m=l;

switch(a%2)

(

case0:m++;

break;

casel:m++;

switch(b%2)

(

defaut:m++;

caseO:m++;

break;

)

)

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

)

程序運行后的輸出結果是

A、1

B、2

C、3

D、4

【答案】B

【解析】本題考查switch語句。第一個switch語句,因為a=6,a%2=0,所以

執(zhí)行case。,將m加1,遇到break語句跳出switch語句,結束循環(huán)。

17、已知有如下結構體:

structsk

(

inta;

floatb;

)

data,*p;

若有p=&data,則對data的成員a引用正確的是。

A、(*p).data,a

B、(*p).a;

C、p->data.a

D、P.data,a

【答案】B

18、有以下程序

main()

(

charal='m',a2='m';

printf("%c\n",(al,a2));

)

以下敘述中正確的是o

A、程序輸出大寫字母M

B、程序輸出小寫字母m

C、格式說明符不足,編譯出錯

D、程序運行時產(chǎn)生出錯信息

【答案】B

19、設有定義語句inta[]={66,77,99},則下列對此語句的敘述中錯誤的是

A、定義了一個名為a的一維數(shù)組

B、a數(shù)組有3個元素

C、a數(shù)組的元素的下標為1?3

D、數(shù)組中的每一個元素都是整型

【答案】C

【解析】a數(shù)組元素的下標應為0-2,注意數(shù)組的下標從0開始。

20、以下結構體類型說明和變量定義中正確的是o

A、typedefstruct

intn;charc;REC;

RECtl,t2;

B、struetREC;

intn;charc;;

RECtl,t2;

C、typedefstructREC;

intn=0;charc='A';tl,t2;

RECtl,t2;

D、struct

intn;charc;REC;

【答案】A

【解析】struct結構體名后不能加“;”號,所以選項B、C錯誤,選項D中

應為structtl,t2;選項A為正確的定義形式。

二、判斷題(共10題,每小題2分,共20分)

()1、C語言中逗號運算符是所有運算符中級別最低的。

【答案】正確

()2、在標準c中,沒有邏輯型數(shù)據(jù),故不能使用邏輯表達式。

【答案】錯誤

()3、c程序中如果對二維數(shù)組的全部元素都賦初值,則定義數(shù)組時第一維的

長度可以不指定,但第二維的長度不能省略。

【答案】正確

()4、break語句可用于循環(huán)體內(nèi),它將退出該重循環(huán)。

【答案】正確

()5,用puts和gets函數(shù)只能輸入或輸出一個字符串。

【答案】正確

()6、fseek函數(shù)一般用于文本文件。

【答案】錯誤

()7、對二維數(shù)組a來說,由于a+1與*(a+l)的值相等,因此二者的含義是一

樣的.

【答案】錯誤

()8、一個c程序可以包含若干函數(shù),但必須有主函數(shù)。

【答案】正確

()9、函數(shù)的形參可以是常量,變量或表達式

【答案】錯誤

()10、c語言程序只能有一個文件。

【答案】錯誤

三、編程題(共3題,共40分)

1、從鍵盤輸入n和a的值,計算a+aa+aaa+...+aa...a(n個a)的值。(本題

10分)

【答案】#include

voidmain()

inti,a,n;

longintsum=O,st=O;

printf("請輸a和n:w);

scanf(,f%d%d",&a,&n);

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

st=st+a;

sum=sum+st;

a=a*10;

)

printf("%ld\n",sum);

)

2、編寫程序:求一維數(shù)組a中值為偶數(shù)的元素之和(本題14分)

【答案】#include<conio.h>

#include<stdio.h>

sum(intarr[],intn)

inti,s;

s=0;

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

if(arr[i]%2==0)

/************found************/

s=s+arrLi];

return(s);

voidmain()

inta[10]={10,4,2,7,3,12,5,34,5,9},s;

/************found************/

s=sum(a,10);

printf("Theresultis:%d\n",s);

}

3、編寫程序:有五個學生,每個學生有3門課的成績,從鍵盤輸入以上數(shù)據(jù)

(包括學生號,姓名,三門課成績),計算出平均成績,況原有的數(shù)據(jù)和計算出

的平均分數(shù)存放在磁盤文件"stud"中。功能如下:

請輸入5個同學的信息:學生號,姓名,3門成績:

1a607080

2b608090

3c593989

4e568898

5d438878

打開stud文件,內(nèi)容如下

1a60708070

2b60809076

3c59398962

4e56889880

5d43887869(本題16分)

【答案】#include<stdio.h>

#include<stdlib.h>

typedefstruct{

intID;

intmath;

intEnglish;

intC;

intavargrade;

charname[20];

}Stu;

intmain()

I

FILE*fp;

Stustu[5];

inti,avargrade=0;

printf("請輸入5個同學的信息:學生號,姓名,3門成績:\n”);

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

scanf(,f%d%s%d%d%dH,&(stu[i].ID),stu[i].name,&(stu[i].math),&(stu[

i].English),&(stu[i].C));

stu[i].avargrade=(stu[i].math+stu[i].English+stu[i].C)/3;

}

if((fp=fopen(Hstudw,,,w,,))==NULL)

{

printf(Herror:cannotopenfile!\n,f);

exit(0);

}

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

fprintf(fp,H%d%s%d%d%d%d\nH,stu[i].ID,stu[i].name,stu[i].math,st

u[i].English,

stu[i].C,stu[i].avargrade);

fclose(fp);

//system(npause,f);

return0;

江蘇科技大學

C語言預測卷(四)

考試方式:【閉卷】考試時間:【90分鐘】

總分:【100分】

一、單項選擇題(共20題,每小題2分,共40分)

1、若變量均已正確定義并賦值,以下合法的c語言賦值語句是

A、x=y=5;

B、x=n%2.5;

C、x+n=1;

D、x=5=4+l

【答案】A

2、已知x=2.5,a=7,y=4.7,則表達式x+a%3*(int)(x+y)%2/4的結果是_

A、2.4

B、2.5

C、2.75

D、0

【答案】B

3、表達式y(tǒng)=(13>12?15:6>7?8:9)的值為。

A、9

B、8

C、15

D、1

【答案】C

4、以下程序的輸出結果是

main()

(

inta=0,i;

for(i=;i<5;i++)

(

switch(i)

case0:case3:a+=2;

case1:case2:a+=3;

default:a+=5;

)

)

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

)

A、31

B、13

C、10

D、20

【答案】A

5、以下描述錯誤的是o

A、break語句可用于switch語句和循環(huán)語句

B、break語句和continue語句的作用是一樣的,都是提前結束整個循環(huán)

C、在循環(huán)語句中使用break語句是為了跳出循環(huán),提前結束循環(huán)

D、在循環(huán)語句中使用continue語句是為了結束本次循環(huán),而不終止整個

循環(huán)

【答案】B

6、采用遞歸方式對順序表進行快速排序,下列關于遞歸次數(shù)的敘述中,正確的是

________O

A、遞歸次數(shù)與初始數(shù)據(jù)的排列次序無關

B、每次劃分后,先處理較長的分區(qū)可以減少遞歸次數(shù)

C、每次劃分后,先處理較短的分區(qū)可以減少遞歸次數(shù)

D、遞歸次數(shù)與每次劃分后得到的分區(qū)處理順序無關

【答案】D

【解析】考查快速排序。

遞歸次數(shù)與各元素的初始排列有關。如果每一次劃分后分區(qū)比較平衡,則遞

歸次數(shù)少;如果劃分后分區(qū)不平衡,則遞歸次數(shù)多。遞歸次數(shù)與處理順序無

關。

7、以下定義語句正確的是。

A、intn=5,a[n][n];

B、inta[][3]={{1,2},{3,4},{516}};

C、inta[][3];

D、inta[][]={{1,2},{3,4},{5,6}}

【答案】B

8、若要定義一個具有5個元素的整型數(shù)組,以下錯誤的定義語句是。

A、inta[5]={0};

B、intb[]={0,0,0,0,0)

C、intc[2+3];

D、inti=5,d[i];

【答案】D

9、如果一個表達式包含算術運算、關系運算、邏輯運算和字符運算時,運算的先

后順序是O

A、算術運算一關系運算一邏輯運算一字符運算

B、算術運算一字符運算一關系運算一邏輯運算

C、邏輯運算一關系運算一算術運算一字符運算

D、字符運算一算術運算一邏輯運算一關系運算

【答案】B

【解析】在一個含有各種運算的表達式中,它們運算的優(yōu)先順序是:算術運算

一字符運算和日期時間運算一關系運算一邏輯運算。故選項B為正確答案。

10、以下正確的字符串常量是。

A、“\\\"

B、'abc'

C>Olympic

D、**

【答案】D

11、有數(shù)組:chara[]="thisisanegg";o請問該數(shù)組到底占了幾個字節(jié)?

A、11

B、12

C、14

D、15

【答案】D

12、下面說法中錯誤的是o

A、共用體變量的地址和它各成員的地址都是同一地址

B、共用體內(nèi)的成員可以是結構變量,反之亦然

C、在任一時刻,共用體變量的各成員只有一個有效

D、函數(shù)可以返回一個共用體變量

【答案】I)

13、c語言運算對象必須是整型的運算符是

A、%

B、/

C、=

D、<=

【答案】A

14、以下求n!的函數(shù)可以正確計算21!,正確的選項是

fact(intn)

(

inti;

product;

product=1;

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

(

product=product*i;

)

returnproduct;

)

A、double

B、int

C、float

D、void

【答案】A

15、main()

(

intn;

(n=6*4,n+6),n*2;

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

)

此程序的輸出結果是.

A、30

B、24

C、60

D、48

【答案】B

16、下述for循環(huán)語句。

inti,k;

for(i=0,k=-l;k=l;i++,k++)

printf("****");

A、判斷循環(huán)結束的條件非法

B、是無限循環(huán)

C、只循環(huán)一次

D、一次也不循環(huán)

【答案】B

17、以下敘述中正確的是o

A、使用typedef定義新類型名后,新類型名與原類型名實際上是等價的

B、結構體類型中的各個成分均不能是數(shù)組或指針

C、結構體類型的變量,不能在聲明結構體類型組成時一起定義

D、元素為結構體類型的數(shù)組,只能在聲明過結構體類型之后,單獨進行定義

【答案】A

【解析】本題考查typedef的使用方法,typedef對已存在的類型使用一個新

的名字,結構體類型中的成分可以是數(shù)組和指針,所以B選項錯誤,結構體類型

的變量可以在聲明結構體的時候一起定義,C選項錯誤,D選項中可以一起定

義。

18、下列關于單目運算符++、一的敘述中正確的是。

A、它們的運算對象可以是任何變量和常量

B、它們的運算對象可以是char型變量和int型變量,但不能是float型

變量

C、它們的運算對象可以是int型變量,但不能是double型變量和float

型變量

D、它們的運算對象可以是char型變量、int型變量和float型變量

【答案】D

【解析】++(或一)的運算結果是使運算對象增1(或減1);運算對象可以是整型

變量、實型變量,也可以是字符型變量,但不能是常量或表達式。++(或--)的

結合方向是“自右向左”。

19、對于int*pa[5];的描述,以下哪個選項是正確的

A、pa是一個指向數(shù)組的指針,所指向的數(shù)組是五個int類型的指針

B、pa是一個具有五個元素的指針數(shù)組,每個元素都是一個int類型的指針

C、pa[5]表示某個數(shù)的第五個元素的值

D、pa是一個指向某個數(shù)組中第五個元素的指針,該元素是int類型的變量

【答案】B

20、下面賦值表達式不正確的是.

structstudent

(

longnum;

charname[20];

}stl,st2={101,"tom"},*p=&stl;

A、stl=st2

B、p->name=

C、p->num=st2.num

D、*p=st2

【答案】B

二、判斷題(共10題,每小題2分,共20分)

()1、C語言程序實現(xiàn)與其他高級語言一樣也要經(jīng)過編輯、編譯連接和運行

這樣的三步曲。

【答案】正確

()2、在c語言中,同一種數(shù)據(jù)類型在不同的編譯系統(tǒng)中所占空間不一定相

同。()

【答案】正確

()3、c語言中的

溫馨提示

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

評論

0/150

提交評論