四川某美術(shù)學(xué)院C語言程序設(shè)計預(yù)測卷(十二套試卷)及答案_第1頁
四川某美術(shù)學(xué)院C語言程序設(shè)計預(yù)測卷(十二套試卷)及答案_第2頁
四川某美術(shù)學(xué)院C語言程序設(shè)計預(yù)測卷(十二套試卷)及答案_第3頁
四川某美術(shù)學(xué)院C語言程序設(shè)計預(yù)測卷(十二套試卷)及答案_第4頁
四川某美術(shù)學(xué)院C語言程序設(shè)計預(yù)測卷(十二套試卷)及答案_第5頁
已閱讀5頁,還剩75頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C語言程序設(shè)計預(yù)測卷(一)B、inti=l,j=l;I=j=((i=3)++);i+=i+=2;

(總分100分,考試時長90分鐘)C,inti==0,j=0;

D、inti=0,j=l;15(i=2,i+(j=2));(j==l)?i+=3:i=2;

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

7、若有定義語句:inta[3][6];,按在內(nèi)存中的存放順序,a數(shù)組的第10個元素是一

1、為了避免嵌套的條件分支語句if-else的二義性,c語言規(guī)定:c程序中的else總是與

A、a[0][4]

()組成配對關(guān)系。

B、a[l][3]

A、縮排位置相同的if

C,a[0][3]

B、在其之前未配對的if

D、a[l][4]

C、在其之前未配對的最近的if

D、同一行上的if8、如果邏輯與(and)運算的結(jié)果為"真",與它所連接的兩個條件必須是_______。

A、前一個為“真”,后一個為“假”

2、下列數(shù)據(jù)中是合法的整型常量的是一。

B、前一個為“假”,后一個也為“假”

A,3E2

C、前一個為真,后一個也為真

B、029

D、前一個為假,后一個為真

C、-32768

D、6e+0079、在宏定義#definePI3.14159中,用宏名代替一個。

A、常量

3、c語言中,關(guān)系表達(dá)式和邏輯表達(dá)式的值是。

B、單精度數(shù)

A、0

C、雙精度數(shù)

B、1

D、字符串

C、0或1

D、T或"F'10、以下數(shù)組定義中錯誤的是=

A,intx[][3]={0};

4、c語言的跳轉(zhuǎn)語句中,對于break和continue說法正確的是________。

B、intx[2][3]={{1,2},{3,4},(5,6}};

A,break語句只應(yīng)用于循環(huán)體中

C、intx[][3]={{1,2,3},{4,5,6}};

B、continue語句只應(yīng)用于循環(huán)體中

D、intx[2]E3]={1,2,3,4,5,6};

C、break是無條件跳轉(zhuǎn)語句,continue不是.?

D、break和continue的跳轉(zhuǎn)范圍不夠明確,容易產(chǎn)生問題11,若有以下函數(shù)首部:intfun(doublex[10],int*n)則下面針對此函數(shù)的函數(shù)聲明

語句中正確的是_______。

5、c語言程序中,若對函數(shù)類型未加顯式說明,則函數(shù)的隱含說明類型為_______。

A、intfun(doublex,int*n);

A、void

B、intfun(double,int);

B,double

C、intfun(double*x,intn);

C、int

D、intfun(double*,int*);

D、char

12、有定義語句:intx,y;若要通過scanf("%d,%d",&x,&y);語句使變量x得到數(shù)值

6、運行下述程序段后,i值為4的是。

11,變量y得到數(shù)值12,下面四組輸入形式中,錯誤的是

A,inti=l,j=0;

A、1112〈回車〉

B、11,12〈回車〉A(chǔ)、switch(a)

C、11,12〈回車〉casea:a++;break;

D、11,(回車〉caseb:b++;break;

12〈回車〉B、switch(a+b)

case1:a+b;break;

13、定義如下一維數(shù)組:inta[5],*p;則下列描述錯誤的是一

case1:a-b

A、表達(dá)式p=p+l是合法的

C、switch(a*a)

B、表達(dá)式a=a+l是合法的

case1,2:++a;

C、表達(dá)式p-a是合法的

case3,4:++b:

D、表達(dá)式a+2是合法的

D、switch(a/10+b)

14、有如下定義case5:a/5:break:

structpersondefault:a+b;

(

charname[9];17、若有下列說明和語句,則對結(jié)構(gòu)體變量st中成員i的引用方式不正確的是

intage;structstu{

}inti;

intname;

structpersonclass[10]={'rjohn,r,17,*'paul0,19,"mary”,18,"adam",16};}st,*p;p=&st;

根據(jù)上述定義,能輸出字母a的語句是______。A、st.i

A、printf(,'%c\nn,class[3].name);B、*p.i

B、printf("%c\nw,class[3].name[0]);C、(*p).i

C、printf(w%c\nM,class[4].name[l]);D、p->i

D、printf("%c\n",class[4].name[0]);

18、有以下程序

15、以下程序的輸出結(jié)果是omain()

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

main()inta,b,d=25;

(a=d/10%9;

inta=l,b=2,c=3;b=a&&(-l);

printf(n%d\n'\m(a+b.b+c,c+a));printf(n%d,%d,r,a,b);

})

A、19程序運行后的輸出結(jié)果是o

B、17A、6,1

C、15B、2,1

D、12C、6,0

D、2,0

16、已知:inta,b;下列switch語句中,()是正確的。

19、下面程序的輸出結(jié)果是

#include<stdio.h>1、若有定義:inta=5,b=2,c=l;則表達(dá)式a-bVc||b==c的值是。

mainO

(2、已知b=2,則表達(dá)式“b+=b-=3"的值是o

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

p=a;3、共用體類型變量的定義關(guān)鍵字是o

printf(r,%d\nn,*p+9);

)4、若有定義:inta[3][4]={{1,2},{0},{4,6,8,10});

A、0則初始化后,得到的初值是[1],a[2][l]得到的初值是12初

B、1

5、結(jié)構(gòu)化程序設(shè)計的3種基本結(jié)構(gòu)是:順序結(jié)構(gòu)、結(jié)構(gòu)、循環(huán)結(jié)構(gòu),這三種基本

C、10

結(jié)構(gòu)構(gòu)成了復(fù)雜的c語言程序。

D、9

20、有以下程序6、求主次對角線之和。

structstumain()

((

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

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

floattotalscore;

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

};

(

voidf(structstu*p)

(if()sl=sl+a[i][j];

structstus[2]={{nsundann,20044,550},{Mpenghua",20045,537}},*q=s;if()s2=s2+a[i]Ej];

++p;)

++q;printf(M%d\n%d\nM,si,s2);

*p二*q;

)

)

main()

7、在c語言中,若確實不要求返回函數(shù)值,則應(yīng)將函數(shù)定義為()類型。

(

r,

structstus[3]={{"yangsan20041,703},{1isiguo",20042,580}};8、inty=l,x,*p,a[]={2,4,6,8,10};

f(s);

p=&a[l];

printf(M%s%d%3.0f\nn,s[1].name,s[l].num,s[l].totalscore);

for(x=0;x<3;x++)y+=*(p+x);

}

printf(w%d\nn,y);

程序運行后的輸出結(jié)果是o

A、SunDan20044550程序的輸出結(jié)果y的值是o

B、Penghua20045537

9、以下程序的運行結(jié)果是o

C、LiSiGuo20042580

main()

D、SunDan20041703

二、填空題(每小題2分,共20分)intk,a[3][3]={1,2,3,4,5,6,7,8,9};

for(k=0;k<3:k++)printf("%d,",a[k][k]);

}

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

main()

if(2*2==5<2*2==4)printf("t");

elseprintf("f");

}

三、編程題(每小題分,共40分)

1、編寫程序:寫一個函數(shù),求一個字符串的長度,在main函數(shù)中輸入字符串,并輸出

其長度。(本題10分)

2、編寫程序:利用條件運算符的嵌套來完成此題:學(xué)習(xí)成績>=90分的同學(xué)用A表

示,60-89分之間的用B表示,60分以下的用C表示。(本題14分)

3、題目描述

有10個學(xué)生,每個學(xué)生的數(shù)據(jù)包括學(xué)號、姓名、3門課程的成績。讀入這10個學(xué)生的

數(shù)據(jù),要求輸出3門課程的總平均成績,以及個人平均分最高的學(xué)生的數(shù)據(jù)(包括學(xué)

號、姓名、3門課程成績、平均分?jǐn)?shù))。

輸入

共有10行,每行包含了一個學(xué)生的學(xué)號(整數(shù))、名字(長度不超過19的無空格字符

串)和3門課程的成績(0至100之間的整數(shù)),用空格隔開。

輸出

第一行包含了3個實數(shù),分別表示3門課程的總平均成績,保留2位小數(shù),每個數(shù)之后

輸出一個空格。

第二行輸出個人平均分最高的學(xué)生的數(shù)據(jù),與輸入數(shù)據(jù)格式相同。如果有多位個人平均

分最高的學(xué)生,輸出按照輸入順序第一個最高分的學(xué)生數(shù)據(jù)。

請注意行尾輸出換行。

樣例輸入

樣例輸出

85.6087.9090.40

105EEE929394(本題16分)

參考答案二、填空題

1、0

一、單項選擇題2、~2

1、C3、union

2、C4、【1】0[2]6

3、C5、選擇#分支

4、B6、'i+j=2']

【解析】break語句和continue語句都是C的跳轉(zhuǎn)語句。break語句又稱為跳出語句,7、void

它可以用在循環(huán)語句和switch語句中。在switch語句中,break用來使執(zhí)行流程跳出8、19

switch語句。在循環(huán)語句中,break語句用來使執(zhí)行流無條件跳出本層循環(huán)體。9、59

continue語句又稱為繼續(xù)語句,它僅用在循環(huán)語句中。它的功能是:結(jié)束本次循環(huán),接10、f

著進(jìn)行下一次是否執(zhí)行循環(huán)的條件判定。三、編程題

5、C1、^include<stdio.h>

6、B#include<stdlib.h>

7、BintmainO

8、C(

9、Dintlen;

10、Bcharstr[20];

11、Dprintf("請輸入字符串:\nn);

【解析】本題中的fun函數(shù)有兩個參數(shù),一個類型是double型一維數(shù)組,另一個是intscanf(M%s'r,str);

型指針。而在C語言中,一維數(shù)組用作函數(shù)參數(shù)和該數(shù)組元素的指針類型是等價的。所len=length(str);

以本題的正確答案是選項D。printfC字符串有%d個字符。"Jen);

12、A}

13、B〃求字符串長度

14、Bintlength(char*s)

15、D(

16、Dinti=0;

17、Bwhile(*s!=,\0*)

【解析】本題主要考查結(jié)構(gòu)指針:p=&st,訪問結(jié)構(gòu)體的成員,可以通過結(jié)構(gòu)變量訪問,(

即st.i,也可以用等價的指針形式即(*p).i和p->i。

i++;

18、Bs++;

19、C)

【解析】此題考查了指針引用一維數(shù)組元素的方法。*p+9因為運算符的優(yōu)先級高returni;

于“+”,所以輸出結(jié)果為p指向的元素1,然后加9,值為10。}

20、B

2、#include<stdio.h>stu[i+l].num=stu[i].num;

intmain()strcpy(stu[i+l].name,stu[i].name);

(stu[i+l].a=stu[i].a;

intscore;stu[i+l].b=stu[i].b;

chargrade;stu[i+l].c=stu[i].c;

printf("請輸入分?jǐn)?shù):");)

scanf(,&score);)

grade=(score>=90)?'A':((score>=60)?,B,:;printf("%.2f%.2f%.2f\n",x/10.0,y/10.0,z/10.0);

printf("%c'n",grade);printf(r,%d%s%d%d%d\nM,stu[9].num,stu[9].name,stu[9].a,stu[9].b,stu[9].c);

return0;)

)intmain(){

3、#include<stdio.h>structpeoplestu[10];

#include<string.h>input(stu);

structpeople{print(stu);

intnum,a,b,c;return0;

charname[10];}

);

intinput(structpeoplestu[]){

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

scanf(n%d%s%d%dnum,stu[i].name,&stu[i].a,&stu[i].b,&stu[i].c)

)

intprint(structpeoplestu[]){

doublex=0,y=0,z=0;

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

x=x+stu[i].a*l.0;

y=y+stu[i].b*l.0;

z=z+stu[i].c*l.0;

}

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

if((stu[i].a+stu[i].b+stu[i].c)>=(stu[i+l].a+stu[i+l].b+stu[i+l].c)){

C語言程序設(shè)計預(yù)測卷(二)B、f=l;

(總分100分,考試時長90分鐘)for(i=l;i<=n;i++)f*=i;for(i=l;i>=2;i--)

C、f=l;

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

D、f=l;

1、在16位編譯器環(huán)境下,double類型占多少字節(jié)?for(i=n;i>l;i++)f*=i;for(i=n;i>=2;i一)

A、2

7、若有定義:inta=4,b=5;floatx=3.4,y=2.1;則下列表達(dá)式的值為

B、4

(float)(a+b)/2+(int)x%(int)y

C、1

A、5.5

D、8

B、55

2、若intx=l,y=2,z=3則表達(dá)式xVz?y:z的結(jié)果是0C、5.500000

A、-1D、55.00000

B、3

8、以下關(guān)于運算符優(yōu)先順序的描述中正確的是。

C、2A、關(guān)系運算符〈算術(shù)運算符〈賦值運算符V邏輯與運算符

D、0

B、邏輯與運算符〈關(guān)系運算符〈算術(shù)運算符〈賦值運算符

3、下列描述正確的是_______oC、賦值運算符V邏輯與運算符〈關(guān)系運算符〈算術(shù)運算符

A、表示m>n為true或m<n為true的表達(dá)式為m>n&&m<nD、算術(shù)運算符〈關(guān)系運算符〈賦值運算符〈邏輯與運算符

B、switch語句結(jié)構(gòu)中必須有default語句

9、若輸入字符串:abode〈回車〉,則以下while循環(huán)體將執(zhí)行多少次。

C、if語句結(jié)構(gòu)中必須有else語句while((ch=getchar())!='e')printf("*");

D、如果至少有一個操作數(shù)為true,則包含“運算符的表達(dá)式為trueA、5

B、4

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

A、N-S流程圖只能描述簡單的順序結(jié)構(gòu)的程序C、6

D、1

B、程序的算法只能使用流程圖來描述

C、結(jié)構(gòu)化程序的三種基本結(jié)構(gòu)是循環(huán)結(jié)構(gòu)、選擇結(jié)構(gòu)、順序結(jié)構(gòu)10、若要定義一個具有5個元素的整型數(shù)組,以下錯誤的定義語句是o

D、計算機可以直接處理C語言程序,不必進(jìn)行任何轉(zhuǎn)換A、inta[5]={0};

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

5、下面函數(shù)的功能是oa(sl,s2)charsl[],s2[];while(s2++=sl++);

C、intc[2+3];

A、字符串比較

D、inti=5,d[i];

B、字符串復(fù)制

C、字符串鏈接11、以下敘述錯誤的是o

D、字符串反向A、一個C程序可以包含多個不同名的函數(shù)

B、一個C程序只能有一個主函數(shù)

6、設(shè)變量已正確定義,則以下能正確計算f二n!的程序段是o

C、C程序在書寫時,有嚴(yán)格的縮進(jìn)要求,否則不能編譯通過

A、f=0;

D、C程序的主函數(shù)必須用main作為函數(shù)名

12、為表示匕和b都不等于0”,應(yīng)使用的c語言表達(dá)式是B、9,6

A、(a!=0)||(b!=0)C、9,4

B、a||bD、8,5

C、!(a=0)&&(b!=0)

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

D、a&&b

A、while循環(huán)的循環(huán)體至少執(zhí)行1次

13、若要求從鍵盤讀入含有空格字符的字符串,應(yīng)使用函數(shù)B.while循環(huán)的循環(huán)控制條件比do-while循環(huán)的循環(huán)控制條件復(fù)雜

A、getc()C、do-while循環(huán)體不能是復(fù)合語句

B、gets()D、do-whi1循環(huán)的循環(huán)體至少執(zhí)行1次

C、getchar0

17、在c語言中,系統(tǒng)為一個結(jié)構(gòu)體變量分配的內(nèi)存是________o

D、scanf()

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

14、enumaB、結(jié)構(gòu)體第一個成員所需的內(nèi)存量

(C、成員中占內(nèi)存量最大者所需的容量的整數(shù)倍

sum=9,mon=-l,tue

D、結(jié)構(gòu)體中最后一個成員所需的內(nèi)存量

)

18、以下程序段的輸出結(jié)果是o

最了________o

intk,j,s;

A、枚舉變量for(k=2;k<6;k++,k++)

B、3個標(biāo)識符(

C、枚舉數(shù)據(jù)類型s=l;

for(j=k;j<6;j++)s+=j;

D、整數(shù)9和-1

)

15、下列程序執(zhí)行后輸出的結(jié)果是oprintf(M%d\nM,s);

intd=l;A、1

fun(intp)B、9

(C、11

intd=5;

D、10

d+=p++;

printf("%d,",d);19、下面程序段的運行結(jié)果是chara[]=,,lanuage\*p;p=a;while(*p!=,u')

)printf(H%cw,*p-32);p++;

main()A、LANGUAGE

(

B、language

inta=3;

fun(a);C、LAN

d+=a++;D、langUAGE

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

20、有以下程序

)

typedefstruct

A、8,4

charname[9];6、有一下程序

charsex;itinclude<stdio.h>

fl

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論