大連工業(yè)大學(xué)歷年計(jì)算機(jī)C語言專升本題目_第1頁
大連工業(yè)大學(xué)歷年計(jì)算機(jī)C語言專升本題目_第2頁
大連工業(yè)大學(xué)歷年計(jì)算機(jī)C語言專升本題目_第3頁
大連工業(yè)大學(xué)歷年計(jì)算機(jī)C語言專升本題目_第4頁
大連工業(yè)大學(xué)歷年計(jì)算機(jī)C語言專升本題目_第5頁
已閱讀5頁,還剩52頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

歷年計(jì)算機(jī)C語言專升本題目(-)

(總分100分,考試時(shí)長(zhǎng)90分鐘)

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

1、以下標(biāo)識(shí)符中,不能作為合法的C用戶定義標(biāo)識(shí)符的是o

A、putchar

double

C、_123

D、INT

2、下面判斷正確的是o

A、char*a=〃china〃;等價(jià)于char*a;*a=〃china”;

charstr[5]=,,china,/;等價(jià)于charstr口=“china”;

C、char*S二〃china〃;等價(jià)于char*S;S="china”;

charc[4]-"abc”,d[4]-〃abc〃;等價(jià)丁ch"c[4]-d[4]-〃abc〃;

3、c語言對(duì)嵌套的if語句的規(guī)定是:else總是與配對(duì)。

A、與之前最近的述

B、第一個(gè)if

C、縮進(jìn)位置相同的if

D、與之前最近的且尚未配對(duì)的if

4、若變量已正確定義,以下while循環(huán)正常結(jié)束時(shí),累加到pi的最后一項(xiàng)item

的值滿足o

A、item的絕對(duì)值小于0.0001

B、item的絕對(duì)值大于0.0001

C、item的絕對(duì)值大于等于0.0001

D、item的絕對(duì)值小于等于0.0001

5、設(shè)有以下語句:charstrl□="string”,str2[8],*str3,*str4=〃string";則

下列選項(xiàng)中,不是對(duì)庫函數(shù)strepy的正確調(diào)用,此庫函數(shù)用來復(fù)制字符串。

A、strepy(str1,“HELLO1〃);

strepy(str2,,,HELL02,/);

C、strepy(str3,,,HELLO3,/);

D、strepy(str4,“HELLO4");

6、設(shè)有定義:longx-1234561;則以下能夠正確輸出變量x值的語句是

__O

A、printf("x二%d\n",x)

printf("x=%ld\n",x)

C、printf((ix=l\n”,x)

D、printf(wx=%D\nw,x);

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

ttinclude<stdio.h>

voidmain()

(

inti,j,x=0;

staticinta[6]={l,2,3,4,5,6);

for(i=0,j=l;i<5;++i,j++)x+=a[i]*a[j];

printfC/%d\n,,>x);

)

A、數(shù)組a中首尾的對(duì)應(yīng)元素的乘積

B、數(shù)組a中首尾的對(duì)應(yīng)元素的乘積之和

C、數(shù)組a中相鄰各元素的乘積

D、數(shù)組a中相鄰各元素的乘積之和

8、調(diào)試程序是指對(duì)程序進(jìn)行

A^編輯

B、編譯

C、查錯(cuò)和排錯(cuò)

D、連接

9、從鍵盤上輸入某字符串時(shí),不可使用的函數(shù)是()。

A、getchar()

B、gets()

C、scanf()

fread()

10、設(shè)charstr[100];inti=5;則引用數(shù)組元素的錯(cuò)誤形式的是

A、str[I+10]

B、*(srr+

C、(str+I-1)

*(&(str++)+

11、有以下程序

main()

(

inta=666,b=888;

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

}

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

A、錯(cuò)誤信息

B、666

C、888

D、666,888

12、算法具有五個(gè)特性,以下選項(xiàng)中不屬于算法特性的是o

A、有窮性

B、簡(jiǎn)潔性

C、可行性

D、確定性

13設(shè)有數(shù)組定義:chararray□:"china”;則數(shù)組array所占的空間為

A、6字節(jié)

B、5字節(jié)

C、4字節(jié)

D、7字節(jié)

14、設(shè)有如下定義:

structsk

(

intn;

floatx;

}data,*p;

若要使p指向data中的n域,正確的賦值語句是________。

A、p=&datn;

*p=datn;

C、p=(structsk*)&datn;

D、p=(structsk*)datn;

15、已知字母a的ascii碼為65,以下程序運(yùn)行后的輸出結(jié)果是

#include<stdio.h>

main()

(

charcl,c2;

cl=a'+'8'-'4>;

c2='a'+'8'5';

printf(z,%c,%d\n,\cl,c2);

}

A、E,68

B、D,69

C、E,D

D、輸出無定值

16、有如下程序

#includedstdio.h>

voidmain()

(

inti,sum=0;

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

printf(〃/d\n〃,sum);

)

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

A、6

B、3

C、死循環(huán)

D、0

17、以下選項(xiàng)中,能定義m為合法的結(jié)構(gòu)體變量的是______。

A^typedefstructabc{

doublea;charb;}m;

B、struct(

doublea;charb;)m;

C^structABC{

doublea:charb;}ABCm;

D、typedefABC{

doublea;charb;)ABCm;

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

main()

(

externinta;

ai=3;

f();

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

)

inta=2;

voidf()

(

printf(〃%d&〃,a*a);

a+=a;

)

A、2510

B、25&25

C、10&25

D、25&10

19、以下敘述中錯(cuò)誤的是o

A、對(duì)于double類型數(shù)組,不可以直接用數(shù)組名對(duì)數(shù)組進(jìn)行整體輸入或輸出

B、數(shù)組名代表的是數(shù)組所占存儲(chǔ)區(qū)的首地址,其值不可改變

C、當(dāng)程序執(zhí)行中,數(shù)組元素的下標(biāo)超出所定義的下標(biāo)范圍時(shí),系統(tǒng)將給出

“下標(biāo)越界”的出錯(cuò)信息

D、可以通過賦初值的方式確定數(shù)組元素的個(gè)數(shù)

20、有以下結(jié)構(gòu)體說明和變量的定義,且指針p指向變量a,指針q指向變量bo

則不能把結(jié)點(diǎn)b連接到結(jié)點(diǎn)a之后的語句是o

structnode

(

chardata;

structnode*next;

a,b,*p=&a,*q=&b;

A、3475

B、3574

C、1234

D>1235

二、填空題(每小題2分,共20分)

1、在c語言中,關(guān)系運(yùn)算符中的〃等于〃表示為。

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

main()

(

intx=5,y=6;

printf(〃/da%d〃,x---,----y);

)

3、若有"inta[3][2]={{1,2},{3},{4,5});

〃,則a[2][2]的值是o

4、若有定義:inta=5,b=2,c=l;則表達(dá)式a-bVc|b二二c的值是。

5、c語言三個(gè)循環(huán)語句分別while語句、語句和語句。

6、下列程序的功能是計(jì)算圓的面積,將程序補(bǔ)充完整。

ttdefinePI=3.14159

main()

(

floatr,s;

printfC'Enteranumberr:〃);

s=PI*r*r;

}

7、在c語言中,按函數(shù)在程序中出現(xiàn)的位置可分為以下三種調(diào)用方式:函數(shù)語句、

函數(shù)表達(dá)式和函數(shù)0

8、若有〃inta[3][2]={{l,2},{3},{4,5}};〃,則的值是。

9、有以下程序

#include<stdio.h>

mainO{

intn[2],i,j;

for(i=0;i<2;i++)n[i]=O;

for(i=O;i<2;i++)

for(j=0;j<2;j++)n[j]=n[i]+l;

printf(〃%d\n〃,n[l]);

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

10、mystrlcn函數(shù)的功能是計(jì)算str所指字符串的長(zhǎng)度,并作為函數(shù)值返回。請(qǐng)

填空。intmystrlen(char*str)

{

inti;

for(i=0;!='\0';i++);

return();

}

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

1、編寫程序:輸出200?300之間的所有素?cái)?shù),要求每行輸出8個(gè)素?cái)?shù)。

(本題10分)

2、任意輸入兩行字符串,把第二行字符串連接到第一行字符串末尾(不用strcat

函數(shù))。(本題14分)

3、通過函數(shù)調(diào)用實(shí)現(xiàn):講結(jié)構(gòu)體數(shù)組中的三個(gè)元素按num成員進(jìn)行升序排列。

要求:

①數(shù)組元素依次賦初值為:{12,"sunny”,89.1}[8,"henry",73.5}、

{21,〃lucy”,9L7}。

②結(jié)構(gòu)體定義如下:structs{intnum;charname[30];floatscore;};(本題

16分)

參考答案

一、單項(xiàng)選擇題

1、A

2、C

【解析】選項(xiàng)A)char*a;*a="china”應(yīng)改為a二china;,選項(xiàng)B)應(yīng)該是

charstr[6];D)項(xiàng)表述方法有錯(cuò)誤。

3、D

4、A

5、C

6、B

7、D

8、C

9、A

10、D

11、B

【解析】本題考查的是輸出格式。printfO函數(shù)中,當(dāng)格式轉(zhuǎn)換說明符個(gè)數(shù)少

于輸出項(xiàng)個(gè)數(shù)時(shí),多余的輸出項(xiàng)不予輸出。

12、B

【解析】本題考/的是算法的特性。有窮性、確定性、有零個(gè)或多個(gè)輸入、有

一個(gè)或多個(gè)輸出、有效性是算法的五大特性。

13、A

【解析】在本題的定義方式中,系統(tǒng)會(huì)自動(dòng)在數(shù)組最后加入一個(gè)‘\0',表示字

符數(shù)組的結(jié)束,因此數(shù)組的長(zhǎng)度是6個(gè)字節(jié)。

14、C

【解析】本題主要考查了結(jié)構(gòu)體變量引用成員數(shù)據(jù)的方法,主要有以下幾種:

結(jié)構(gòu)體變量名,成員名或結(jié)構(gòu)體指針成員名的方法來引用結(jié)構(gòu)體成員。

15、A

【解析】cl='A'+'8'-'4'='A'+'4'='E',c2='A'+'8'-'5'='A'+'3'='D'(ASCII

碼為68),所以程序運(yùn)行結(jié)果為E,68。

16、C

17、B

18、D

19、C

20、B

【解析】在被調(diào)用過程中,有這樣的語句“StaticSum”,因?yàn)樽兞縎um是局

部變量,局部變量除了可以用Dim語句聲明外,還可用Static語句將變量聲明

為靜態(tài)變量,它在程序運(yùn)行過程中可保留變量的值,這就是說每次調(diào)用過程

時(shí),用Static說明的變量保持原來的值。具體過程分析如下:調(diào)用P(l),

所以在被調(diào)過程中N=L執(zhí)行ForNext循環(huán),P(l)=Sum=l;調(diào)用P(2),所以

在被調(diào)過程中N=2,執(zhí)行ForNext循環(huán),P(2)=Sum=4;調(diào)用P(3),所以在被

調(diào)過程中N=3,執(zhí)行ForNext循環(huán),P(3)=Sum=10;調(diào)用P(4),所以在被調(diào)過

程中N=4,執(zhí)行ForNext循環(huán),P(4)=Sum=20;不難看出,最后輸出的結(jié)臭S

值應(yīng)為1+4+10+20=35,所以選項(xiàng)C)正確。

二、填空題

1、==

2、5a5

3、無#不存在

4、0

5、['do-while語句','for語句']

6、['scanf&r)','printf(〃s=%f〃,s)']

7、參數(shù)

8、0

9、3

10^「*(str+i)str[i]','i']

三、編程題

1、^include<stdio.h>

#include<math.h>

main()

intm,j,n=0,k;

for(m=200;m<=300;m++)

k=sqrt(m);

for(尸2;jV=k;j++)

/**********x*foiind************/

if(m%j-0)continue;

if(j>k)

(

if(n%8==0)printf(〃\n〃);

/******x*****fcund************/

printf("%d,”,m);

n++;

}

}

)

2、^include<stdio.h>

#include<string.h>

intmain()

(

charsi[80],s2[80];

inti,11,12,j;

gels(sl);

gets(s2);

ll=strlen(si);

12=strlen(s2);

for(i=ll,j=0;j<12;i++,j++){

sl[i]=s2[j]:

puts(sl);

return0;

)

3、寫法1:在函數(shù)外部定義結(jié)構(gòu)體變量并且賦值,參數(shù)值為空。

charname[30];

floatscore;

}a[3]={{12,“sunny”,89.1},{8,“henry”,73.5},{21,〃lucy〃,91.7}};

voidfun()

(

inti,j;

struct,st:

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

(

for(j=0;j<2-i;j++)

(

if(a[j].num>a[j+l].num)

(

t=a[j];

a[j]=a[j+l];

a[j-l]=t;

}

}

)

)

intmain()

(

inti;

fun();

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

printf(,z%d,%s,%f\n,,>a[i].num,a[i].name,a[i].score);

}

return0;

)

8,henry,73.500000

12,sunny,89.099998

21,lucy,91.699997

寫法2:在主函數(shù)中定義變量,通過參數(shù)傳遞變量值

charname[30];

fIoatscore;

};

voidfun(structs*a,intn)

(

inti,j;

structst;

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

(

for(j=0;j<n-l-i;j++)

(

if(a[j].num>a[j+l].num)

(

l=a[j];

a[j]=a[j+l];

=t;

)

)

intmainO

structsa[3]={{12,"sunny",89.1),(8,"henry",73.5),

{21,〃lucy〃,91.7}};

inti;

fun(a,3);

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

(

printf("%d,%s,%f\n”,a[i].num,a[i].name,a[i].score);

}

rpturn0;

)

8,henry,73.500000

12,sunny,89.099998

21,lucy,91.699997

歷年計(jì)算機(jī)C語言專升本題目(二)

(總分100分,考試時(shí)長(zhǎng)90分鐘)

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

1、編寫c語言程序并上機(jī)調(diào)試運(yùn)行的一般過程是_______。

限編輯f編譯f連接--運(yùn)行

B、編譯編輯一連接一運(yùn)行

C、編輯一連接一編譯一運(yùn)行

D、編譯一連接一編輯一運(yùn)行

2、表達(dá)式X&&1等價(jià)于________o

A、x==0

B、x==1

C、x!=0

D.x!=1

3、與〃尸(x>0?l:xV0?T:0)〃;的功能相同的if語句是o

A、if(x>0)y=l;

if(x)

elseif(x>0)y=l;

elsey=0;elseif(x%0)y=-l;

elsey=0;

C、y=-l

D、y=0;

if(x)if(x>=0)

if(x>0)y=l;if(xi>=0)y=l;

elseif(x-0)y=0;elsey=-l;

elsey=-l;

4、結(jié)構(gòu)化程序所要求的基本結(jié)構(gòu)不包括()。

A、順序結(jié)構(gòu)

B、GOTO跳轉(zhuǎn)

C、選擇(分支)結(jié)構(gòu)

D、重復(fù)(循環(huán))結(jié)構(gòu)

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

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

A^a[p-a]

B、*(&

C、p

D、a[10]

6、下列語句合法的是。

A、4+c=b=0;

a=++c;

C、a=2=b=6;

D^a=4++;

7、已知有數(shù)組定義chara[3][4];下列表達(dá)式中錯(cuò)誤的是________。

A、a[2]=〃WIN〃

B、strcpy(a[2],Z,WIN,Z)

C、a[2][3]='W'

D、a[O][l]=a[O][l]

8、若a為int類型,且其值為3,則執(zhí)行完表達(dá)式a+=a-=a*a后,a的值是

A、-3

B、9

C、-12

D、6

9、判斷兩個(gè)字符串是否相等,正確的表達(dá)方式是_______o

A、while(sl==s2)

B、while(sl=s2)

C>while(strcmp(sl,s2)==0)

D、while(strcmp(si,s2)=0)

10、若有定義:inta[3][4];不能表示數(shù)組元素a[l][l]?

A、*(a[l]+l)

B、*(&a⑴⑴)

C、(*(a+l)[l])

Ds*(a+5)

11、有以下函數(shù)定義:

voidfun(intn,doublex)

)

若以下選項(xiàng)中的變量都已正確定義并賦值,則對(duì)函數(shù)fun的正確調(diào)用語句是

A、fun(inty,doublem);

B、k=fun(10,12.5);

C、fun(x,n):

D^voidfun(n,x);

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

A、x=n/2.5;

B、x==5;

C、x+n=I;

D>5=x=4+l;

13、若要用下面的程序片段使指針變量p指向一個(gè)存儲(chǔ)整型變量的動(dòng)態(tài)存儲(chǔ)單元

int*pp二___malloc(sizeof(int));則應(yīng)填入

A、int

int*

C、(*int)

D^(int*)

14、下面賦值表達(dá)式不正確的是.

structstudent

(

longnum;

charnameL20];

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

A、stl=st2

p->name=st2.name

C、p->num=st2.num

D、*p=st2

15、若有定義:inta,b,c;以下程序段的輸出結(jié)果是a=ll;b=3;c=0;

printf(z/%d\nz,,c=(a/b,a%b));

A、2

B、0

C、3

D、1

16、判斷關(guān)鍵字*不是關(guān)鍵字。

A、int

B、extern

C、break

main

17、設(shè)有以下語句:

typedefstructtt{charc;inta[4];}cin;則下面敘述中正確的是

__o

A、可以用TT定義結(jié)構(gòu)體變量

B、TT是struct類型的變量

C、可以用CIN定義結(jié)構(gòu)體變量

D、CIN是structTT類型的變量

18x以下程序的輸出結(jié)果是。charstr[15]=〃hello!〃;

printfstrlen(str));

A、15

B、14

C、7

D、6

19、下列程序的運(yùn)行結(jié)果是_____o

main()

inta[6],i;

for(i=2;i<6;i+-)

a[i]=4*(i-2^(i>3))%5;

printf("%2d",a[i]);

)

}

A>2323

B、1212

C、3232

D>2222

20、下列程序的輸出結(jié)果是________。

^include<stdio.h>

structabc

(

inta,b,c,s;

};

main()

(

structabcs[2]={{1,2,3},{4,5,6}};

intt;

t=sLOj.a+s[l].b;

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

)

A、5

B、6

C、7

D、8

二、填空題(每小題2分,共20分)

1、在c語言中,用轉(zhuǎn)義字符表示。答題提示:雙引號(hào)/單引號(hào)

/反斜線/橫向跳格/回車換行

2、在vc++編譯環(huán)境下,c語言基本整型變量所占字節(jié)數(shù)是一o

3、c語言規(guī)定,不能使用c語言中的_______做標(biāo)識(shí)符。

4、C語言中,關(guān)系表達(dá)式和邏輯表達(dá)式的值是0

5、c語言程序的三種基本結(jié)構(gòu)是順序結(jié)構(gòu)、選擇結(jié)構(gòu)和。

6、設(shè)有以下程序:

main()

{

intnl,n2;

scanf(〃%d〃,&n2):

while(n2!=0)

(

nl=n2;

n2=n2/10;

printf(z/%d”,nl);

}

)

程序運(yùn)行后,如果從鍵盤上輸入1298;

則輸出結(jié)果為________0

7、在定義函數(shù)時(shí)函數(shù)名后面括號(hào)中的變量名稱為o

8、若有說明:inta口⑶={{1,2,3},{4,5},{6,7}};則數(shù)組a的第一維的大小

為o

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

^include<stdio.h>

voidmain()

(

intx,y=l;

if(y!=0)x=5;

,x);

if(y==0)x=4;

elsex=5;

printf(,,\t%d\n,/,x);

x=l;

if(y<0)if(y>0)x=4;

elsex=5;

printf(〃\t%d\n”,x);

}

10、語句putcharCa'+2);的輸出結(jié)果是。

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

1、己知a,b,c都是1位整數(shù),求當(dāng)三位整數(shù)abc、cba的和為1333時(shí)a、b、

c的值。(本題10分)

2、輸入一個(gè)字符串和一個(gè)特定字符,在字符串中刪除從該特定字符開始的所有

字符。例如輸入字符串為〃abcdefg”,特定字符為'd',刪除后的字符串為〃abc〃;

輸入字符串為〃abcdefg〃,特定字符為'x',則輸出“特定字符不存在”。(本

題14分)

3、題目描述

萬里十佳歌手比賽終于開始了,評(píng)委席坐了N(N大于等于3,并且N小于80)個(gè)

評(píng)委,他們商量了很久,終于找出一個(gè)公正合理的評(píng)分方法。每次歌手唱完后,

每個(gè)評(píng)委自己打一個(gè)分,然后在N個(gè)評(píng)委的打分中,去掉一個(gè)最高分,一個(gè)最低

分。然后再把剩下的評(píng)委的打分求平均值~。

但是問題是他們嫌每次拿計(jì)算器按實(shí)在太煩。作為一名計(jì)算機(jī)專業(yè)學(xué)生、你用個(gè)

程序幫幫他們搞定吧。

輸入

輸入有*多組數(shù)據(jù)。每組2行,第一行是一個(gè)N,代表有N個(gè)評(píng)委。然后第二行有

N個(gè)數(shù),每個(gè)數(shù)用空格隔開,代表每個(gè)評(píng)委的打分。

當(dāng)輸入的N為0的時(shí)候結(jié)束輸入。

輸出

對(duì)于每組輸入,輸入最終這個(gè)選手的得分(小數(shù)點(diǎn)后面保留2位有效數(shù)字)。

樣例輸入

3

743634

7

16972726749688

樣例輸出

36.00

62.20(本題16分)

參考答案

一、單項(xiàng)選擇題

1、A

2、C

3、B

4、B

5、D

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

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

組范圍。

6、B

7、A

【解析】本題考查數(shù)組的基本知識(shí),B、C、D在C語言中都是允許的,A選項(xiàng)的

賦值是非法的。

8、C

9、C

10、D

11、C

12、A

13、D

【解析】不論P(yáng)是指向什么類型的指針變量,都可以通過強(qiáng)制類型轉(zhuǎn)換的方法

使之類型一致,強(qiáng)制類型轉(zhuǎn)換的格式為(數(shù)據(jù)類型*)。

14、B

15、A

16、C

17、C

【解析】將題目中的定義語句去掉前面的typedef和后面的CIN(分號(hào)保留),

就是一條完整的結(jié)構(gòu)體定義語句,其中struct是說明符,TT是結(jié)構(gòu)體名,大

括號(hào)里面的是結(jié)構(gòu)體成員的定義。此時(shí)要聲明該結(jié)構(gòu)體變量時(shí)需要使用struct

加結(jié)構(gòu)體名一起來聲明,structTT一起構(gòu)成一人結(jié)構(gòu)體類型,就好像字符類

型char。若只去掉前面的typedef,就是一條結(jié)構(gòu)體定義同時(shí)聲明個(gè)結(jié)構(gòu)體變量

CIN的語句,因?yàn)镃IN的前面部分是structTT的完整寫法,可以看作是

structTToC語言允許用typedef說明一種新類型名,其語法格式為:

typedef類型名標(biāo)設(shè)符;

以后就可以用該標(biāo)識(shí)符來代替被說明的類型名了。因此,當(dāng)前面存在

typedef時(shí),該語句就變成了給structTT的定義一個(gè)新的名稱CTN。所以,此

時(shí)的CIN是一個(gè)結(jié)構(gòu)體類型,它相當(dāng)于structTT,即可以和char一樣單獨(dú)用

來聲明該結(jié)構(gòu)體變量,而TT只是一個(gè)結(jié)構(gòu)體名,不能單獨(dú)用來聲明變量。所

以,4個(gè)選項(xiàng)中C符合題意。

18、D

19、C

【解析】本題程序的功能是對(duì)數(shù)組元素賦值,難點(diǎn)是對(duì)表達(dá)式4*(i-2*(i>

3))%5的分析。

20、B

【解析】在本題中,s[0].a=l,s[l].b=5,所以輸出結(jié)果為中

二、填空題

1、單引號(hào)

2、4

3、關(guān)鍵字

4、0或1

5、['循環(huán)結(jié)構(gòu)']

6、8921

7、形參

8、3

9、5|5,1

【解析】上程序中第三個(gè)if語句有嵌套,前兩個(gè)if語句沒有嵌套。前兩個(gè)if

語句根據(jù)y=l便可得知輸出結(jié)果均為5;最后一人if語句,根據(jù)條件yVO便

知不成立,后續(xù)語句無法執(zhí)行,只好輸出前一賦值語句x=l的值。

10、結(jié)果是c

三、編程題

1、^include

voidmain()

(

inta,b,c;

for(a=l;a<=9;a+-)

(

for(b=0;b<=9;b++)

{

for(c=l:c<=9;c++)

if(a*100+b*10+c+c*100+b*10+a==-333)

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

)

)

}

2、#include<stdio.h>

intmain()

(

inti,flag=0;

chars[80],n;

gets(s);

scanf&n);

printf("特定字符是機(jī)\n〃,u);

for(i=0;s[i]!='\0';i++){

if(s[i]==n){

s[i]-\0J;

flag=l;

printf("刪除特定字符枇后的字符串是〃,n);

puts(s);

break;

}else

flag=O;

}

if(flag==O){

printf(〃特定字符不存在〃);

)

)

3、#include<stdio.h>

intmain(){

intt,n,i,max,nin,sum:

intscore[102]=(O);

while(scanf(z/%dx,&n)){

if(n==0)break;

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

scanf(〃%d〃,&score[i]);

max=-l;

min=101;

sum=0;

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

if(score[i]>max)

max=score[i];

if(score[i]<min)

min=score[i];

sum+=score[i];

}

sum一二max-min;

printf(,z%.21f\n,/,(double)sum/(n-2));

)

returnO;

歷年計(jì)算機(jī)C語言專升本題目(三)

(總分100分,考試時(shí)長(zhǎng)90分鐘)

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

1、如果要求在if后的判斷條件是a不等于0,則下列選項(xiàng)中能正確表達(dá)這一關(guān)

系的是o

A、a<>0

B、!a

C、a=0

D、a

2、若fahr為整型變量,則能正確表示以下數(shù)學(xué)式的c語言表達(dá)式是o

A、5*(fahr-32)/9

B、5/9*(fahr-32)

C、5(fahr-32)/9

D、(fahr-32)/9*5

3、有以下程序

main()

(

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

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

printf("%d,%d,%d\n”,i,j,k);

)

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

A、1,1,2

B、2,2,1

C、2,2,2

D、2,2,3

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

x=3;

do

(

y二x一;

if(!y)

(

printf(〃*〃);

continue;

)

printf(〃#〃);

)

while(x=2);

A、##

B、##*

C、死循環(huán)

D、輸出錯(cuò)誤信息

5、在函數(shù)調(diào)用過程中,如果函數(shù)funa調(diào)用了函數(shù)funb,函數(shù)funb又調(diào)用了函數(shù)

funa,貝1o

A、稱為函數(shù)的直接遞歸調(diào)用

B,稱為函數(shù)的間接遞歸調(diào)用

C、稱為函數(shù)的循環(huán)調(diào)用

D、C語言中不允許這樣的遞歸調(diào)用

6、若有代數(shù)式|x3+lgx],則正確的c語言表達(dá)式是o

A、fabs(x*3+log10(x))

abs(pow(x,3)+loglO(x))

C>abs(pow(x,3)0)+logl0(x))

fabs(pow(x,3)0)+log10(x))

7、若有以下定義和語句:inta[10]={l,2,3,4,5,6,7,8,9,10},*ia=a;則不能

正確表示a數(shù)組元素的表達(dá)式是o

A、*ia

B、a[10]

C^*a

a[ia-a]

8、若已定義x和y是整型變量,x=2;,則表達(dá)式y(tǒng)=2.75+x/2的值是。

A、5.5

B、5

C、3

D、4.0

9、字符串〃xyz〃在內(nèi)存占用的字節(jié)數(shù)是o

A、3

B、4

C、6

D、8

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

A、inta[2][3];

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

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

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

11、以下關(guān)于宏的敘述中正確的是o

A、宏名必須用大寫字母表示

B、宏定義必須位于源程序中所有語句之前

C、宏替換沒有數(shù)據(jù)類型限制

D、宏調(diào)用比函數(shù)調(diào)用耗費(fèi)時(shí)間

12、整型變量x和y的值相等,且為非0值,則以下選項(xiàng)中結(jié)果為0的表達(dá)式是

A、X||Y

B、X|Y

C、X&Y

D、X"

13、下面關(guān)于形參與實(shí)參的說法,正確的是o

A、形參與實(shí)參的人數(shù)、類型、順序都應(yīng)一一對(duì)應(yīng)

B、形參與實(shí)參的人數(shù)可以不必相同,少一個(gè)多一個(gè)程序一樣執(zhí)行

C、形參與實(shí)參的類型可以不同,不影響運(yùn)算結(jié)果

D、形參與實(shí)參的類型個(gè)數(shù)相同,而順序不同,計(jì)算機(jī)可以自動(dòng)進(jìn)行匹配,所

以形參的順序無所謂,只要各種形參類型的數(shù)量與實(shí)參相同即可

14、有以下程序

structstu

(

charnum[10];

floatscore[3];

};

main()

(

structstu

s[3]={{"20021〃,90,95,85},{〃20022〃,95,80,75),{"20023",100,95,90)},2;

inti;

floatsum=0;

P=s+2;

for(i=0;i<3;i+-)sum=sum+p->score[i];

printfC'%6.2f\n”,sum);

)

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

A、250.00

B、250

C、285.00

D、285

15、有以下程序

#include<stdio.h>

main()

(

intx=l,y=0;

if(!x)y++;

elseif(x—0)if(x)y+=2;

elsey+=3;

printfC%d\n',y);

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

A、0

B、2

C、1

D、3

16、下列敘述中正確的是________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語句的作用相同

17、程序中有下面的說明和定義

structabc

(

intx;

chary;

)

structabcsi,s2;

則會(huì)發(fā)生的情況是。

A、編譯出錯(cuò)

B、程序?qū)㈨樌幾g、連接、執(zhí)行

C、能順利通過編譯、連接、但不能執(zhí)行

D、能順利通過編譯、但連接出錯(cuò)

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

#include<stdio.h>

mainO

(

floatx=l.236547;

printf("%f\n〃,(int)(x*1000+0.5)/(float;1000);

)

A、1.237000

B、輸出格式說明與輸出項(xiàng)不匹配,輸出無定值

C、1.236000

D、1.24

19、以下能正確定義數(shù)組并正確賦初值的選項(xiàng)是______。

A、intN=5,a[N][N];

B.intb[l][2]={{l},{2});

C、intc[2][]={{1,2},{3,4}};

D、intd[3][2]={{1,2),(3,4}};

20、設(shè)有以下說明語句

typedefstruct

intn;

charch[8];

)

per;

則下面敘述中正確的是o

A、PER是結(jié)構(gòu)體變量名

B、PER是結(jié)構(gòu)體類型名

C、typedefstruct是結(jié)構(gòu)體類型

struct是結(jié)構(gòu)體類型名

二、填空題(每小題2分,共20分)

1、全局的外部變量與函數(shù)體內(nèi)定義的局部變量同名時(shí),在函數(shù)體內(nèi),變

量起作用。

2、實(shí)型常量有兩種表示方法:小數(shù)形式和【1】形式。

3、inta=0;a+=(a=8);求a的最后結(jié)果

4^已知b=2,則表達(dá)式〃b+二b-=3〃的值是o

5、語句只能用在循環(huán)中,該語句的作用是結(jié)束本層本次循環(huán),繼續(xù)一下次循環(huán),前

不跳出循環(huán)。

6、下列程序段的運(yùn)行結(jié)果是____o

#definesub(x,y)x-y

main()

inta,b,s;

A=5,b=6;

S=sub(a,b);

printf(//s=%d\n/,,s);

}

7、一個(gè)C程序有且僅有一個(gè)______函數(shù)。

8、數(shù)組inta[3][3];共定義了個(gè)數(shù)組元素。

9、a=3;

a+=(a<l)?a:1;

printf(〃/d〃,a);

結(jié)果是o

10、請(qǐng)閱讀下面的程序,當(dāng)用戶從鍵盤輸入helloworld時(shí),分析程序是否能編繹

通過并正確運(yùn)行,如果不能,說明原因;

如果能,請(qǐng)寫出運(yùn)行結(jié)果。

voidmain()

(

charstr[256];

scanf();

printf();

)

hallo

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

1、輸入3個(gè)學(xué)生4門課的成績(jī){(60,70,65,75),(75,80,75,90),(95,75,90,65)},

計(jì)算每個(gè)學(xué)生的總分和平均成績(jī)并輸出,結(jié)果保留一位小數(shù)。(本題10分)

2、編寫程序:字符串反轉(zhuǎn),如將字符串"abc-123-xyz"反轉(zhuǎn)為〃zyx-321-cba〃。

(本題14分)

3、編寫程序:使用結(jié)構(gòu)體,創(chuàng)建一個(gè)長(zhǎng)度為n的鏈表。(本題16分)

參考答案

一、單項(xiàng)選擇題

1、D

【解析】if判斷條件的值只能是0或非0,if3)就是if(!0)的意思。

2、A

3、C

【解析】首先計(jì)算if語句后面的表達(dá)式值,先計(jì)算運(yùn)算符&&前面括號(hào)里的

“I”運(yùn)算。在“I”運(yùn)算中先計(jì)算j++,值為:(j的值為2),為真,后面的

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

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

的值為2、2和2。

4、C

5、B

【解析】在調(diào)用一個(gè)函數(shù)的過程中又出現(xiàn)直接或間接地調(diào)用該函數(shù)本身,稱為

函數(shù)的遞歸調(diào)用。本題描述的函數(shù)調(diào)用屬于函數(shù)的間接遞歸調(diào)用。

6、D

7、B

8、C

9、B

【解析】字符串中的每個(gè)字符占1個(gè)字節(jié),但C程序在存儲(chǔ)字符串時(shí),要在最

后一個(gè)有效字符后面接上1個(gè)字符串結(jié)束的標(biāo)記符'\0'。這樣,存儲(chǔ)字符串常

量”XyZ”需要4個(gè)字節(jié)。所以解答是B。

10、D

11、C

12、D

【解析】“II”為或運(yùn)算符,當(dāng)其左右表達(dá)式中只要一個(gè)為非零則整個(gè)表達(dá)式

的值1。I是按位或,&是按位與,”是按位異或,這三位運(yùn)算符是按值的二進(jìn)

制位來比較的。

13、A

【解析】形參、實(shí)參個(gè)數(shù)類型、數(shù)量、順序應(yīng)相同,因?yàn)轭愋娃D(zhuǎn)換都是有條件

的,如果浮點(diǎn)型變量向指針型變量轉(zhuǎn)換就是不可的。

14、C

15、A

【解析】Qx)為假,然后判斷(x=0),為假,最后就執(zhí)行輸出語句,y的值仍

為初始值,答案選擇A。

16、C

17、A

18、A

【解析】本題中,(int)(x*1000+中5)的結(jié)果為1237,(float)1000是將1000

強(qiáng)制轉(zhuǎn)換成float類型;整個(gè)表達(dá)式(int)(x*1000+0.5)/(float)1000的結(jié)果

為L(zhǎng)237000,再以實(shí)數(shù)(6位小數(shù))形式輸出.

19、D

【解析】數(shù)組維數(shù)必須為常量;數(shù)組為一行兩列,而兩行一列;數(shù)組

定義錯(cuò)誤,數(shù)組定義時(shí)列數(shù)必須寫明,而行數(shù)可以缺省;D.表示正確,相當(dāng)于

{{1,2},{3,4},{0,0})

20、B

二、填空題

1、函數(shù)體內(nèi)定義的局部

2、指數(shù)

3、16

4、-2

5、continue

6、s=-l

7、main

8、9

9、4

10、|〃%s",str|str

【解析】輸入hell。world時(shí),中間的空格對(duì)scanf()函數(shù)來說是終止符,后

面的內(nèi)容無法讀取。

三、編程題

1、^include

voidmain()

(

inta[3][4]={{60,70,65,75},{75,80,75,90},{95,75,90,65}};

inti,j;

floataverage,sum=0.0;

printf(〃三個(gè)學(xué)生的總分和平均成績(jī)依次為:\n〃);

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

(

sum=0.0;

for(j=0;j<4:j++)

sum=sum+a[i][j];

average=sum,4;

printf("%.2f,%.2f\n〃,sum,average);

}

)

2、^include<stdio.h>

voidreverse(char*s)

(

//獲取字符串長(zhǎng)度

intlen=0;

cliax*p=s;

while(*p!=0)

(

len++;

p++;

//交換...

inti=0;

charc;

while(i<=len/2-1)

(

c=*(s+i);

*(s+i)=*(s+len-1-i);

*(s+len-1-i)=c;

i++;

}

)

intmain()

(

chars[]=〃abcT23-xyz〃;

printf(/z,%sJ=>\nz/,s);

reverse(s);//反轉(zhuǎn)字符串

printf("'%s''n〃,s);

return0;

)

【解析】質(zhì)數(shù)(primenumber)又稱素?cái)?shù),有無限個(gè)。一個(gè)大于1的自然數(shù),

除了1和它本身外,不能被其他自然數(shù)整除。

3、#iiiulude<bldio.h>

#include<stdlib.h>

#include<malloc.h>

typedefstructLNode{

intdata;

structLNode*next;

}LNode,*LinkList;

LinkListCrcatcListlintn);

voidprint(LinkListh);

intmain()

(

LinkListHead=NULL;

intn;

scanf(〃%d〃,&n);

Head=CreateList:n);

printf(〃剛剛建立的各個(gè)鏈表元素的值為:\n〃);

print(Head);

printf('\n\n〃);

system("pause");

return0;

)

LinkListCreateListlintn)

(

LinkListL,p,q;

inti;

L=(LNode*)uialloc(sizeof(LNode));

if(!L)return0;

L->next=NULL;

q二L;

for(1=1;iV=n;i-+)

p=(LinkList}malloc(sizeof(LNode));

printf(〃請(qǐng)輸入第%d個(gè)元素的值:〃,i);

scanf(z/%d/z,&(p->data));

p->next=NULL;

q->next=p;

q二P;

)

returnL;

)

voidprint(LinkListh)

(

l.inkl.ist.p=h->npxt:

while(p!=NULL){

printfC^dp->data);

p=p->next;

)

}

歷年計(jì)算機(jī)C語言專升本題目(四)

(總分100分,考試時(shí)長(zhǎng)90分鐘)

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

1、下面程序段的功能是

ttinclude<stdio.h>

main()

{

charsi;

sl=putc(getc(stdin),stdout);

)

A、從鍵盤輸入一人字符給字符變量si

B、從鍵盤輸入一人字符,然后再輸出到屏幕

C、從鍵盤輸入一人字符,然后在輸出到屏幕的同時(shí)賦給變量si

D、在屏幕上愉出stdout的值

2、用語句scanf(〃%c%c%c〃,&cl,&c2,&c3)輸入〃a,b,c〃時(shí),變量cl、c2、c3的

值分別為()

A、'a','b','c'

C、'a','b'

D、a,,c

3、switch語句中表達(dá)式(expression)的值不允許用的類型是。

A、byle

B、int

C、boolean

D、char

4、設(shè)有循環(huán)語句〃for:i=l;i>0;i++)i++;〃,其循環(huán)執(zhí)行的次數(shù)是o

A、無限

B、0

C、3

D、4

5、下面函數(shù)的功能是

char*fun(char*str7char*str2){

while((*str1)&&(*str2++=*strl++));

returnstr2;

)

A、求字符串的長(zhǎng)度

B、比較兩個(gè)字符串的大小

C、將字符串strl復(fù)制到字符串str2中

D、將字符串strl接續(xù)到字符串str2中

6、若有定義語句:inta[4][10],*p,*q[4];且0<=iV4,則錯(cuò)誤的賦值是

A、p=a

B、q[i]=a[i]

C、p=a[i]

D、p=&a[2][l]

7、定義如下變量和數(shù)組:inti,x[3][3]={1,2,3,4,5,6,7,8,9

};則下面語句for(i=0;i<3;i++)printf(〃%d",x[i][2-i]);的輸出結(jié)果是

A、159

B、147

C、357

D>369

8、c語言中,int型數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式是________o

A、ASCII碼

B、補(bǔ)碼

C、反碼

D、原碼

9、下面選項(xiàng)中合法的字符常量是。

A、〃X〃

B、'X'

C、'abc'

D、'\'

10、設(shè)有如下程序段chars[20]=〃bejing〃,*p;p=s;則執(zhí)行p=s;語句后,以

下敘述正確的是________O

A、可以用*p表示s[0]

B、s數(shù)組中元素的個(gè)數(shù)和p所指字符串長(zhǎng)度相等

C、s和p都是指針變量

D、數(shù)組s中的內(nèi)容和指針變量p中的內(nèi)容相等

11、以下敘述中錯(cuò)誤的是________。

A、在一個(gè)程序中,每個(gè)模塊均可以獨(dú)立編譯運(yùn)行

B、程序“模塊化”有利于任務(wù)的分解簡(jiǎn)化

C、允許對(duì)函數(shù)單獨(dú)進(jìn)行編譯,是C語言實(shí)現(xiàn)“模塊化”的基礎(chǔ)

D、采用模塊化結(jié)構(gòu),可以提高編程效率

12、下列是多行注釋的符號(hào)是o

A、//

B、/

C、[*

D、/**/

13、計(jì)算斐波那契數(shù)列第n項(xiàng)的函數(shù)定義如下:intfib(intn)

if(n==0)returnl;

elseif(n==l)

return2;

else

returnfib(n-l)+fib(n-2);

}

若執(zhí)行函數(shù)調(diào)用表達(dá)式fib(2),函數(shù)fib被調(diào)用的次數(shù)是

A、1

B、2

C、3

D、4

14、設(shè)有以下說明語句:

typeclefstructstu

(

inta;

floatb;

)

stutype;

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

A、struct是結(jié)構(gòu)類型的關(guān)鍵字

structstu是用戶定義的結(jié)構(gòu)類型

C、a和b都是結(jié)構(gòu)成員名

D、stutype是用戶定義的結(jié)構(gòu)體變量名

15、請(qǐng)閱讀下面的程序,選擇正確的輸出結(jié)果。()

voidmain()

(

printf(〃%d〃,null);

)

A、0

B、變量無定義

C、-1

D、1

16、下列for循環(huán)語句的執(zhí)行次數(shù)是。

for(intx=0,y=0;(y!=0)&&(x<4);x++)

A、無限次

B、一次也不執(zhí)行

C、執(zhí)行一次

D、執(zhí)行三次

17、有以下程序

structstu

charname[10];

intnum;

floattotalscore;

};

voidf(structstu*p)

(

structstus[2]={{〃sundan〃,20044,550],{"penghua”,20045,537}},

*q=s;

++P;

++q;

*p=*q;

)

main()

(

structstus[3]={{"yangsan”,20041,703),{"lisiguo”,20042,580});

f(s);

printf(z/%s%d%3.0f\n〃,s[l].name,s[l].num,s[l].totalscorc):

)

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

A、SunDan20044550

B、Penghua20045537

C、LiSiGuo20042580

D、SunDan20041703

18、下述程序段的執(zhí)行結(jié)果是o

ttinclude<stdio.h>

voidmain(){

intx;

for(x=l;x<=100;x++)if(++x%3—0)if(++x%4==0)if(++x%7==0)

printfx);

)

A、

溫馨提示

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