往年山東工商學院C語言專升本樣卷(八套試卷)及答案_第1頁
往年山東工商學院C語言專升本樣卷(八套試卷)及答案_第2頁
往年山東工商學院C語言專升本樣卷(八套試卷)及答案_第3頁
往年山東工商學院C語言專升本樣卷(八套試卷)及答案_第4頁
往年山東工商學院C語言專升本樣卷(八套試卷)及答案_第5頁
已閱讀5頁,還剩88頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

山東工商學院

C語言專升本樣卷(一)

(考試時間90分鐘,總分100分)

題號—*二三總分

得分

?題目包括三大部分,單項選擇題,填空題,編程題,請按要求作答。

?答卷必須用藍色或者黑色鋼筆、圓珠筆,不許用鉛筆或者紅筆作答。

?考試中途不能無端離場,否則視為放棄。考試過程中如遇問題請及時向監(jiān)考老師反饋。

得分評卷人

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

()1、已知inta,b;用語句scanf&a,&b);輸入a,b的值時,不能作為輸入數(shù)據(jù)分隔符

的是?

A、,

B、.空格

C、回車

D、Tab鍵

【答案】A

【解析】

C語言規(guī)定在使用scanf輸入時可以用作數(shù)據(jù)分隔符的有空格,回車和Tab鍵。用戶如果要從鍵盤

輸入空格字符,則需要使用其他的輸入方式。

()2、若x是整型變量,pb是類型為整型的指針變量,則正確的賦值表達式是o

A、pb=&x;

B、pb=x;

C、*pb=&x;

D、*pb=*x

【答案】A

()3、設變量a、b、e、d和y都已正確定義并賦值。若有以下if語句:if(aVb)if(c==d)y=0;

elsey=l;該語句所表示的含義是。

A、y=0,a

B、y=0,a

y=l,a,by一1,a2b且c#d

第1/93頁

C、y=0,a

D、y=0,a

y=l,aVB且CWDy=〃1,cWd

【答案】C

()4、在下列選項中,沒有構(gòu)成死循環(huán)的程序段是

A、inti=100;

for(;;){

i=i%10+l;

if(i>10)

break;

)

B、while(l);

C、intk=0;

do

(

++k;

)

while(k<=10);

D、ints=12;

while(s);

-s;

【答案】c

【解析】

本題考查死循環(huán)的知識。選項A)中,for循環(huán)沒有任何控制語句就會一直執(zhí)行下去,所以不可能

通過控制表達式的值結(jié)束循環(huán)。循環(huán)體內(nèi),i=i961O+l這個表達式的值永遠小于10,所以永遠不

會跳出循環(huán),是死循環(huán);選項B)中,while中表達式永遠是非0,不會結(jié)束循環(huán);選項C)中,當k

>10時,結(jié)束循環(huán);選項D)中,while(s);后面沒有任何表達式而是直接加了一個分號,會一

直執(zhí)行,形成死循環(huán)。

()5、下面函數(shù)定義形式正確的是o

A^intf(intx;inty)

B、intf(intx,y)

C、intf(int,inty)

D、intf(x,y:int)

【答案】C

()6、二進制數(shù)101001轉(zhuǎn)換成十進制整數(shù)是一

A、41

第2/93頁

B、43

C、45

D、39

【答案】A

【解析】

二進制數(shù)轉(zhuǎn)換成十進制數(shù)的方法是將二進制數(shù)按權(quán)展開:

(101001)2=1X25+0X24+1X23+0X22+0X21+1X20=41

()7、下列選項中合法的數(shù)組定義是o

A、inta[]="string”;

B、inta[5]={

0,1,2,3,4,5};

C、chara="sting”;

D>chara[]={

0,1,2,3,4}

【答案】A

()8、若希望當a的值為奇數(shù)時,表達式的值為〃真〃。a的值為偶數(shù)時,表達式的值為〃假則以下

不能能滿足要求的表達式是。

A、!(A%2)

B、!(A%2==0)

C、A%2==1

D、A%2

【答案】A

()9、在下列各項中,運算級別最低的為。

A、算術(shù)運算符

B、關系運算符

C、邏輯運算符

D、圓括號()

【答案】C

【解析】

如果在同一個表達式中出現(xiàn)不同的運算符,其優(yōu)先順序為:先執(zhí)行算術(shù)運算、字符串運算和日

期時間運算,其次執(zhí)行關系運算,最后執(zhí)行邏輯運算。如果在表達式中包含圓括號,首先應該

計算出圓括號中的結(jié)果,其優(yōu)先級最高。

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

第3/93頁

Sinclude<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];

printfx);

)

A、數(shù)組a中首尾的對應元素的乘積

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

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

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

【答案】D

()11、以下正確的敘述是

A、C語言允許main函數(shù)帶形數(shù),且形參個數(shù)和形參名均可由用戶指定

B、C語言允許main函數(shù)帶形參,形參名只能是argc和argv

C、當main函數(shù)帶有形參時,傳給形參的值只能從命令行中得到

D、有說明:main(intargc,char*argv),則形參argc的值必須大于1

【答案】C

()12、設x和y均為int型變量,則以下語句:"x+=y;y=x-y;x-=y;"的功能是。

A、把x和y按從大到小排列

B、把x和y按從小到大排列

C、無確定結(jié)果

D、交換x和y中的值

【答案】D

【解析】

先將兩個數(shù)的和賦給變量x,即*=*+丫;再執(zhí)行y=x-y,相當于y=(x+y)-y=x,x的值已經(jīng)換給了

y;最后執(zhí)行*=*-丫,相當于x=(x+y)-x=y,這樣不通過第3個變量就可以將兩個變量的值互換。

()13、以下不能正確進行字符串賦初值的語句是o

A、charstr[5]="good!";

B、charstr[]="good!

C、char*str="good!”;

D、charstr[5]={'g',"o',"o','d'};

【答案】A

第4/93頁

()14、設有如下枚舉類型定義:enumlanguage

(

basic=3,assembly,ada=100,cobol,fortran

);

枚舉量fortran的值為。

A、4

B、7

C、102

D、103

【答案】c

()15、以下程序運行后的輸出結(jié)果是.

#include<stdio.h>

voidmain()

(

inti=10,j=0;

do

(

j=j+l;

i—;

)

while(i>2);

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

)

A、50

B、52

C、51

D、8

【答案】D

()16^若變量已正確定義:for(x=0,y=0;(y!=99&&x<4);x++)則以上for循環(huán)()

A、執(zhí)行3次

B、執(zhí)行4次

C、執(zhí)行無限次

D、執(zhí)行次數(shù)不定

【答案】B

【解析】

本題重點考查for語句的循環(huán)次數(shù),for(x=0,y=0;(y!=99&&x<4);x++),y!=99&&xV4即循環(huán)條

第5/93頁

件當y不等于99以及xV4時,執(zhí)行循環(huán)語句,當有一個條件不成立時?,均結(jié)束循環(huán),因此循環(huán)

4次,B選項正確。

()17、下面程序的輸出結(jié)果為o

structst

(

intx;

int*y;

}

*p;

intdtL4>{10,20,30,40);

structstaa[4]={50,60,70,&dt[2],80,&dt[3]};

voidmain()

(

p=aa;

printf(z/%d”,++p->x);

printf(/7%d”,(++p)->x);

printfC%d”,++(*p->y));

)

A、102020

B、506021

C、516021

D、607031

【答案】c

【解析】

初始化后,aa[0].x賦值為50,aa[0].y指向dt[O];aa[l].x賦值為60,aa[l].y指向

aa[2].x賦值為70,aa[2].y指向dt[2];aa[3].x賦值為80,aa[3].y指向dt[3]。++p->x是將

aa[0].x自增1,返回51;(++p)->x返回aa[l].x的值,即60;++(*p->y)將aa[l].y指向的

dt[l]的值自增1,返回21。

()18、有以下程序

main()

(

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

printf(al,a2));

}

以下敘述中正確的是。

A、程序輸出大寫字母M

B、程序輸出小寫字母m

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

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

第6/93頁

【答案】B

()19、以下對二維數(shù)組a進行正確初始化的是o

A、inta[2][3]={{l,2},{3,4},{5,6}};

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

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

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

【答案】B

()20、以下結(jié)構(gòu)體類型說明和變量定義中正確的是

A、typedefstruct

intn;charc;REC;

RECtl,t2;

B、struetREC;

intn;charc;;

RECtl,t2;

C、typedefstructREC;

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

RECtl,t2;

D、struct

intn;charc;REC;

【答案】A

【解析】

struct結(jié)構(gòu)體名后不能加“;”號,所以選項B、C錯誤,選項D中應為structtl,t2;選項A為

正確的定義形式。

-------------二、填空題(共10題,每題2分,共計20分)

1、字母'a'的ascii碼值為多少()

【答案】

65

2、已知charstr[]="happy!”,則strlen(str)的值為。

【答案】

6

3、c語言變量按其作用域分為全局變量和局部變量。按其生存期分為存儲和

存儲。

第7/93頁

I合榮J

['動態(tài)','靜態(tài)']

4、一般地,調(diào)用標準字符或格式輸入輸出庫函數(shù)時,文件開頭應有以下預編譯命令:—

【答案】

['

#include<stdio.h>

(或

#includez,stdio.h〃)’]

5、執(zhí)行下列程序段后,輸出的a的值是o

main()

(

intm=0;

switch(m)

(

case0:m=2*m+l;

break;

case1:m=m-l;

break;

case2:m=m+5;

break

)

printf(〃%d〃,m);

)

【答案】

1

6、請將下列程序中的函數(shù)聲明語句補充完整。

#include<stdio.h>

int;

main()

(

intx,y,(*p)();

scanf&x,&y);

p=max;

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

)

intmax(inta,intb)

(

return(a>b?a:b);

}

【答案】

['max(inta,intb))]

第8/93頁

7、讀取文件的函數(shù)名是【1】o

【答案】

fread

8、在scanf函數(shù)中,用符號表示變量的地址。

【答案】

&

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

main()

inti,m=0,n=0,k=0;

for(i=9;i<=ll;i++)switch(i/10)

case0:m++;

n++;

break;

case10:n++;

break;

default:k++;

n++;

printf(z,%d%d%d\n〃,m,n,k);

)

【答案】

「132']

10、設有以下程序:

main()

intnl,n2;

scanf(〃%d〃,&n2);

while(n2!=0)

nl=n2;

n2=n2/10;

printf(,z%d〃,nl);

)

程序運行后,如果從鍵盤上輸入1298;

則輸出結(jié)果為。

【答案】

8921

第9/93頁

得分評卷人

編程題(共3題,每題分值不等,共計40分)

1、編寫程序:一個5位數(shù),判斷它是不是回文數(shù)。即12321是回文數(shù),個位與萬位相同,十位與

千位相同。(本題10分)

【答案】

^include<stdio.h>

intmain()

(

longge,shi,qian,wan,x;

printf("請輸入5位數(shù)字:”);

scanf&x);

wan=x/10000;/*分解出萬位*/

qian=x%10000/1000;/*分解出千位*/

shi=x%100/10;/*分解出十位*/

ge=x%10;/*分解出個位*/

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

printf("這是回文數(shù)\n");

}else{

printf("這不是回文數(shù)\n");

}

)

【解析】

學會分解出每一位數(shù)。

2、編寫程序:輸出200?300之間的所有素數(shù),要求每行輸出8個素數(shù)。(本題14分)

【答案】

ttinclude<stdio.h>

^include<math.h>

main()

(

intm,j,n=0,k;

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

(

k=sqrt(m);

for(j=2;j<=k;j++)

/************fotind************/

ifcontinue;

if(j>k)

(

if(n%8==0)printfC\n");

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

第10/93頁

printf(%d,,m);

n++;

3、題描述,逆序輸出成績表

輸組學的成績,將輸內(nèi)容逆序輸出。

輸格式為每兩個數(shù)值,學號N為10位數(shù)字,成績S取值為整數(shù)(0WSW100)

讀取輸直到輸結(jié)束(數(shù)據(jù)總量不超過50)

輸出

輸出格式為每兩個數(shù)值,學號N之后有個空格,成績值的輸出寬度占3個位置

樣例輸

201701040578

201701042680

201701040261

201701037795

樣例輸出

201701037795

201701040261

201701042680

201701040578(本題16分)

【答案】

#include<stdio.h>

#include<string.h>

constintN=50+5;

typedefstructstudent{

charno[15];

intscore;

)STU:

intmain(){

STUstu[N];

intn=0;

while(scanf("%s%d”,stu[n].no,&stu[n].score)!=EOF)

n++;

for(inti=n-1;i>=0;i-){

printf("%s%3d\n”,stu[i].no,stu[i].score);

}

returnO;

第11/93頁

山東工商學院

C語言專升本樣卷(二)

(考試時間90分鐘,總分100分)

?題目包括三大部分,單項選擇題,填空題,編程題,請按要求作答。

?答卷必須用藍色或者黑色鋼筆、圓珠筆,不許用鉛筆或者紅筆作答。

?考試中途不能無端離場,否則視為放棄??荚囘^程中如遇問題請及時向監(jiān)考老師反饋。

評卷人

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

()1、以下字符中不是轉(zhuǎn)義字符的是O

A、\a'

B、\b'

C、\c'

D、'\\'

【答案】c

()2、設有定義:intn=0,*p=&n,**q=&p;則以下選項中,正確的賦值語句是—

A、p=l;

B、*q=2;

C、q=p;

D>*p=5;

【答案】D

()3、c語言中下面哪個不是條件語句?

A、if

B、ifelse

C、NSLog

D^switch

【答案】C

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

第12/93頁

x=3;

do

(

y=x-;

if(!y)

(

printf("*");

continue;

)

printf;

)

while(x=2);

A、期

B、##*

C、死循環(huán)

D、輸出錯誤信息

【答案】C

()5、若有以下函數(shù)調(diào)用語句:£皿5+門》+丫,£(<11+%2,區(qū)丫)));在此函數(shù)調(diào)用語句中實參的個數(shù)是

A、6

B、5

C、4

D、3

【答案】D

【解析】

參數(shù)之間是用逗號分隔的,不要因為參數(shù)是表達式而被迷惑。函數(shù)的第一個參數(shù)是表達式m+n,

第三個參數(shù)是表達式f(m+n,z,(x,y))o

()6、在c語言中,只有在使用時才占用內(nèi)存單元的變量,其存儲類型是o

A、auto和register

B、extern和register

C、auto和static

D、static和register

【答案】A

()7、以下程序的運行結(jié)果是。

^include<stdio.h>

main()

第13/93頁

inta[]={l,2,3,4,5,6,7,8,9,10,11,12);

int*p=a+5,*q=null;

*q=8(p+5);

printf(w%d%d\nz/,*p,*q);

)

A、運行后報錯

B、66

C、611

D、55

【答案】A

【解析】

本題的考查點是通過指針引用數(shù)組元素。程序中沒有給q分配存儲單元,只是給它賦了一個

NULL,所以程序的運行結(jié)果是:611NULLpointerassignment,也就是運行后報錯。

()8、設x,y,z,s均為int型變量,且初值均為1,則執(zhí)行語句s=++x||++y&&++z后,則s的值為:

A、不定值

B、2

C、1

D、0

【答案】C

()9、以下選項中能表示合法常量的是0

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

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

C、字符斜杠:"\"

D、字符串:"\007"

【答案】D

()10、以下不能正確定義二維數(shù)組的選項是

A、inta[2][2]={{l},{2}):

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

C、inta[2][2]={{l},2,3};

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

【答案】D

()11、putcharO函數(shù)可以向終端輸出一個

第14/93頁

A、整型變量表達式值

B、字符

C、字符串

D、實型變量值

【答案】B

()12、關于指針概念說法不正確的是

A、一個指針變量只能指向同一類型變量

B、一個變量的地址稱為該變量的指針

C、只有同一類型變量的地址才能放到指向該類型變量的指針變量之中

D、指針變量可以由整數(shù)賦,不能用浮點賦

【答案】D

()13、對于c語言的函數(shù),下列敘述中正確的是________.

A、函數(shù)的定義不能嵌套,但函數(shù)調(diào)用可以嵌套

B、函數(shù)的定義可以嵌套,但函數(shù)調(diào)用不能嵌套

C、函數(shù)的定義和調(diào)用都不能嵌套

D、函數(shù)的定義和調(diào)用都可以嵌套

【答案】A

()14、有以下結(jié)構(gòu)體說明和變量的定義,且指針p指向變量屋指針q指向變量b,則不能把結(jié)點b連接

到結(jié)點a之后的語句是。

structnode

(

chardata;

structnode*next;

)

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

A、a.next二q;

B、P.next=&b:

C、p->next=&b;

D>(*p),next=q;

【答案】B

()15、下列程序執(zhí)行后的輸出結(jié)果是

main()

(

charx=0xFFFF;printf%d”,x一);

第15/93頁

)

A、-32767

B、FFFE

C、-1

D、-32768

【答案】C

()16、以下描述錯誤的是0

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

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

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

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

【答案】B

()17、設

structdata

(

inta;

floatb;

}c,*p=&c;

,引用正確的是o

A、*p.a

B、p.b

C、p->a

D>*p->b

【答案】C

()18、閱讀下面的程序

main()

(

inti,j;

scanfC%3d%2d/,,&i,&j);

printf("i=%d,j=%d\rT,i,j);

)

如果從鍵盤上輸入1234567V回車〉,則程序的運行結(jié)果是一

A、i=123,j=4567

B、i=1234,j=567

C、i=l,j=2

第16/93頁

D、i=123,j=45

【答案】D

()19、設inta[10],*p=a;數(shù)組元素a[4]的正確引用是

A、*(p+4)

B、p+4

C、*p+4

D、a+4

【答案】A

()20、相同結(jié)構(gòu)體類型的變量之間,可以

A、相加

B、賦值

C、比較大小

D、地址相同

【答案】B

得分評卷人

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

1、在C語言中,將字符串中小寫字母轉(zhuǎn)換成大寫字母的函數(shù)是O

【答案】

struprSstrupr()ttstrupr(字符串)

2、在c語言中,正確的標識符是由組成的,且由開頭的。

【答案】

「字母、數(shù)字、下劃線','以字母、下劃線']

3、設a=3,b=2,c=l,則a>b>c的值為。

【答案】

1

4、設inta;floatf;doublei;則表達式10+'a'+i*f值的數(shù)據(jù)類型是,

【答案】

「double(雙精度型)']

5、程序的結(jié)果是:

#include<stdio.h>

voidmain()

第17/93頁

inti,j,x=0;

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

{

x++;

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

(

if(j%2)continue;

x++;

}

x++;

}

printf("x=%d",x);

)

【答案】

x=8

6、以下程序運行結(jié)果是。

itinclude<stdio.h>

voidmain()

(

intx,y=l;

if(y!=0)x=5;

printf("\t%d\n”,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);

)

【答案】

55,1

【解析】

上程序中第三個if語句有嵌套,前兩個if語句沒有嵌套。前兩個if語句根據(jù)y=l便可得知輸出結(jié)

果均為5;最后一個if語句,根據(jù)條件y<0便知不成立,后續(xù)語句無法執(zhí)行,只好輸出前一賦值

語句x=l的值。

7、在c語言中,函數(shù)的返回值是由語句傳遞的。

【答案】

returnttreturn()

8、int*p的含義是o

第18/93頁

【答案】

['指針變量P為整型']

9、下面程序的功能是統(tǒng)計正整數(shù)的各位數(shù)字中零的個數(shù),并求各位數(shù)字中的最大者請分析程

序填空。

#include<stdio.h>

main()

(

intn,count,max,t;

count=max=0;

scanf(〃96d〃,&n);

do

(

[1];

if(t==0)++count;

elseif(max<t)[2];

n/=10;

)

while(n);

printf("count二/d,max=96d〃,count,max);

)

【答案】

[1]n%10[2]max=t

10、下面程序段的運行結(jié)果是o

i二l;

a=0;

s=l;

do

(

a=a+s*i;

s=-s;

i++;

)

while(i<=10);

printf(〃a=%d〃,a);

【答案】

a=-5

得分評卷人

三、編程題(共3題,每題分值不等,共計40分)

1、編寫程序:統(tǒng)計一維數(shù)組a中素數(shù)的個數(shù)

第19/93頁

例如:如果數(shù)組a的元素為:2,3,5,7,8,9,10,11,12,13,則程序的輸出應為:primenumber(s)

is(are)(本題10分)

【答案】

#include<math.h>

#include<conio.h>

#include<stdio.h>

prinum(inta[])

{

intcount,i,j,k;

count=0;

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

(

k=a[i]-l;

for(j=2;j<=k;j++)

if(a[i]%j=0)break;

if(j>=k+1)count++;

)

return(count);

)

main()

(

inta[10]={2,3,5,7,8,9,10,11,12,13},n;

n=prinum(a);

printf(''primenumber(s)is(are):%d”,n);

)

2、求3行3列矩陣a[3]⑶=”,2,3,4,5,6,7,8,9)非對角線上元素之和。(本題14分)

【答案】

#include

voidmain()

(

inti,j,sum=O;

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

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

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

if(i!=j&&i+j!=2)

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

printf(〃%d",sum);

printf(〃\n〃);

)

3、編寫程序:本題為用結(jié)構(gòu)體求學生的平均分和分數(shù)最高的學生對應課程以及分數(shù)。

輸入10個學生5門課的成績,分別用函數(shù)實現(xiàn)以下功能:

1、計算每個學生平均分

第20/93頁

2、計算每門課平均分

3、找出所有50個分數(shù)中最高的分數(shù)所對應的學生和課程(本題16分)

【答案】

#include<stdio.h>

typedefstructstu(

intnum[20];

floatscorel;

floatscore2;

floatscore3;

floatscore4;

floatscore5;

floataver;

}student;

floata[5];

intmain(){

studentstu[10];

studentaverageScore(studentstu[10]);

studentaverages(studentstu[10]);

studentmax(studentstu[101);

inti;

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

scanf(//%d%f%f%f%f%f,,,stu[i].num,&stuLi].scorel,&stu[i].score2,&stu[i].score3,&stu[i

].score4,&stu[i].score5);

}

average5(stu);

averageScore(stu);

for(i=0;iV5;i++){

printf(,zthe%dscore'saverageis

)

max(stu);

return0;

)

studentaverages(studentstu[10]){

inti;

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

stu[i].aver=

(stu[i]?scorel+stu[i].score2+stu[i].score3+stu[i].score4+stuEi].score5)/5;

printf(z,the%dstudent'saveragescoreis%f\nz,,stu[i].num,stu[i].aver);

}

)

studentaverageScore(studentstu[10]){

inti;

floatsum=0;

第21/93頁

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

sum=sum+stu[i].scorel;

}

a[Oldsum;

sum=0;

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

sum=sum+stu[i].score2;

)

a[l]=sum;

sum=0;

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

sum=sum+stu[i].score3;

}

a⑵=sum;

sum=0;

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

sum=sum+stu[i].score4;

)

a[3]=sum;

sum=0;

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

sum=sum+stu[i].score5;

}

a[4]=sum;

}

studentmax(studentstu[10]){

inti,j,n,r,d;

floats[50],max1=0;

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

s[i]=stu[i].scorel;

s[i+l]=stu[i].score2;

s[i+2]=stu[i].score3;

s[i+3]=stu[i].score4;

s[i+4]=stu[i].score5;

)

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

for(j=i+l;j<50;j++){

if(s[i]>maxl){

maxl=s[i];

n=i;

)

)

}

printf("%d〃,n);

r=n%5;

第22/93頁

d=n%10;

printf("themaxscoreis%f,the%dthstudent's%dthscore”,maxi,d+1,r);

第23/93頁

山東工商學院

C語言專升本樣卷(三)

(考試時間90分鐘,總分100分)

題號—*二三總分

得分

?題目包括三大部分,單項選擇題,填空題,編程題,請按要求作答。

?答卷必須用藍色或者黑色鋼筆、圓珠筆,不許用鉛筆或者紅筆作答。

?考試中途不能無端離場,否則視為放棄??荚囘^程中如遇問題請及時向監(jiān)考老師反饋。

共計40分)

B、x=n%2.5;

C^x+n=l;

D、x=5=4+l

【答案】A

()2、若有以下定義,則正確的語句是

uniondata

(

inti;

charc;

floatf;

}a;

intn;

A、c=5;

B、a={

2/a,1.2);

C、printfa);

D>n=a;

【答案】C

()3、下列程序的運行結(jié)果是—

main()

第24/93頁

inta=-5,b=l,c=l;

intx=0,y=2,z=0;

if(c>0)x=x+y;

if(a<=0)

(

if(b>0)if(c<=0)y=x-y;

)

elseif(c>0)y=x-y;

elsez=y;

printf("%d,%d,%d\n”,x,y,z);

}

A、2,2,0

B、2,2,2

C、0,2,0

D、2,0,2

【答案】A

【解析】

本題考查ifelse語句的使用。先判斷第1個if語句,因為c=l>0,所以x=x+y=0+2=2。第1個

if語句,因為a=-5V0,所以進入下列的復合語句。經(jīng)判斷發(fā)現(xiàn),復合語句中第2個if語句的條

件均不滿足,不執(zhí)行任何語句退出,在這個過程中y和z的值沒有發(fā)生變化。

()4、結(jié)構(gòu)化程序設計方法的結(jié)構(gòu)不包括o

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

B、分支結(jié)構(gòu)

C、循環(huán)結(jié)構(gòu)

D、跳轉(zhuǎn)結(jié)構(gòu)

【答案】D

()5、若定義a=3,b=4,執(zhí)行printf("%d,%d”,(a,b),(b,a));的輸出結(jié)果為。

A、3,4

B、4,3

C、3,3

D、4,4

【答案】B

【解析】

在調(diào)用格式輸出函數(shù)的語句中,其中每個格式符對應一個輸出項,格式符d要求輸出項內(nèi)容以十

進制整數(shù)形式輸出,第一個輸出項(a,b)是一個逗號表達式,該表達式的是b的值,輸出4;第二

第25/93頁

個輸出項(b,a)的值是a的值,輸出3。

()6、運行下面程序后,輸出是.

ttinclude<stdio.h>

voidmain()

(

intk=-3;

if(k<=0)printf(〃****\n〃);

elseprintf(〃####\n〃)

)

A、####

B、****

C、####****

D、有語法錯誤不能通過編譯

【答案】D

()7、若有定義語句:intm[]={5,4,3,2,1},i=4;則下面對m數(shù)組元素的引用中錯誤的是

______O

A、--i]

B、m[2*2]

C、

D、

【答案】c

()8、若以下選項中的變量已正確定義,則正確的賦值語句是o

A、xl=26.8%3;

B、1+2=x2;

C、x3=0x12;

D、x4=l+2=3;

【答案】C

()9、以下正確的字符串常量是?

A、“\\\"

B、'abc'

C、Olympic

D、**

【答案】D

第26/93頁

()10、int(*p)L6J;它的含義為o

A、具有6個元素的一維數(shù)組

B、定義了一個指向具有6個元素的一維數(shù)組的行指針變量

C、指向整型指針變量

D、指向6個整數(shù)中的一個的地址

【答案】B

()11、有以下函數(shù)intfun(char*s)

(

char*t=s;

while(*t++);

return(t-s);

}

該函數(shù)的功能是o

A、比較兩個字符串的大小

B、計算S所指字符串占用內(nèi)存字節(jié)的個數(shù)

C、計算S所指字符串的長度

D、將S所指字符串復制到字符串t中

【答案】B

【解析】

循環(huán)語句while(*t++);執(zhí)行完時,指針變量t就指向了字符串結(jié)束符之后的位置,所以語

句return(t-s);返回的就是字符串s所用內(nèi)存的字節(jié)個數(shù)。

()12、以下選項中不合法的標識符是o

A、print

B、FOR

C、&a

D、_00

【答案】c

()13^若有說明:int*pl,*p2,m=5,n;

以下均是正確賦值語句的選項是o

A、pl=&m;

B、p1=&m;p2=&n;*p1=*p2;

C、pl=&m;p2=pl;

D、pl=&m;*p2=*pl;

【答案】C

第27/93頁

()14、設有如下定義:

structsk

(

intn;

floatx;

}data,*p;

若要使P指向data中的n域,正確的賦值語句是.

A、p=&datn;

B、*p=datn;

C、p=(structsk*)&datn;

D、p=(structsk*)datn;

【答案】C

【解析】

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

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

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

main()

(

inta=12,b=12;

printf(級d,%d\n”,—a,++b);

)

A、10,10

B、12,12

C、11,10

D、11,13

【答案】D

()16、有以下程序

ttinclude<stdio.h>

intmain()

(

int{1,4,7,2,5,8,3,6,9);

inti,j,k=2;

for(i=0;i<3;i++)printf("%2d”,m[k]Li]);

)

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

A、456

B、258

第28/93頁

C、369

D、789

【答案】C

【解析】

變量k的初值為2,循環(huán)執(zhí)行了3次,分別輸出m[2][0]、m⑵⑴和m⑵⑵,其值分別為

3,6,9o

()17、設有以下語句

typedefstructs

(

intg;

charh;

)

t:

則下面敘述中正確的是。

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

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

C、S是struct類型的變量

D、T是structS類型的變量

【答案】A

()18、下面程序段的運行結(jié)果是ocharc[]="\t\v\\\Owill'n";

printf('%d”,strlen(c));

A、3

B、6

C、9

D、14

【答案】A

()19、設a為存放(短)整型的一維數(shù)組,如果a的首地址為p,那么a中第i個元素的地址為(底

A、P+i*2

B、P+(i-l)*2

C、P+(i-l)

D、P+i

【答案】B

()20、有以下程序:

structstu

第29/93頁

charnum[10];

floatscore[3];

);

main()

(

structstus[3]={{"20021”,90,95,85},{“20022”,95,80,75},

{"20023”,100,95,90}},*p=s;

inti;

floatsum=0;

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

sum=sum+p->score[i];

)

printf(/z%6.2f\n”,sum);

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

A、260

B、270

C、280

溫馨提示

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

評論

0/150

提交評論