中國美術學院計算機C語言專升本試題(含六卷)含答案_第1頁
中國美術學院計算機C語言專升本試題(含六卷)含答案_第2頁
中國美術學院計算機C語言專升本試題(含六卷)含答案_第3頁
中國美術學院計算機C語言專升本試題(含六卷)含答案_第4頁
中國美術學院計算機C語言專升本試題(含六卷)含答案_第5頁
已閱讀5頁,還剩76頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

中國美術學院計算機C語言專升本試題(一)

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

1、條件語句。

A、不可以嵌套使月

B、可以嵌套使用

C、在一條件下可以嵌套使用

D、嵌套語句中不能使用else子句

2、輸出〃%%〃正確的是o

A、printf(“嬲〃);

B、printf(〃嬲〃);

printf("%c〃,37);

C、printf(〃\%\%〃);

printf(〃%%'%");

3、設有定義:inta=l,b=2,c=3;,以下語句中執嚀效果與其它三個不同的是

________0

A、if(a>b)c=a,a=b,b=c;

B、if(a>b){c=a,a=b,b=c;}

C、if(a>b)c=a;a=b;b=c;

D、if(a>b){c=a;a=b;b=c;)

4、運行以下程序后,如果從鍵盤上輸入china#〈回車〉,則輸出結果為

#include<stdio.h>

main()

(

intvl=0,v2=0;

charch;

while((ch=getchar())!=,#>)switch(ch;

{

case'a':case'h':default:vl++;

case'o':v2++;

printf(//%d,%d\n”,vl,v2);

}

A、2,0

B、5,0

C、5,5

D、2,5

5、下面說法正確的是o

A、結構化程序的基本結構有三種,分別是循環結構、選擇結構和順序結構

B、計算機只能執行順序結構的C語言源程序

C、循環結構無法使用N-S流程圖描述

I)、一般稱含有20條以內語句的算法為簡單算法,超過20條則不可能是

簡單算法

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

_______O

A、遞歸次數與初始數據的排列次序無關

B、每次劃分后,允處理較長的分區可以減少遞歸次數

C、每次劃分后,允處理較短的分區可以減少遞歸次數

D、遞歸次數與每次劃分后得到的分區處理順序無關

7、以下選項中合法的用戶標識符是o

A、long

B、2Test

C、3Dmax

D、dal

8、下面程序的運行結果是

#include<stdio.h>

main()

inta=28,b;

chars[10],*p;

P二s;

do

(

b=a%16;

if(b<10)*p=b+48;

else*p=b+55;

p++;

a=a/5;

while(a>0);

*p八O';

puts(s);

A、10

B、C2

C、C51

D、\0

9、能將高級語言編寫的源程序轉換為目標程序的是()o

A、鏈接程序

B、解釋程序

C、編譯程序

D、編輯程序

10、下列字符常量的寫法中,正確的是o

A^'abc*

B、'\5A'

C、A

D、''73'

11、若有定義:〃inta[2][3];〃,則對a數組的第i行第j列元素的正確引用為

()o

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

B、(a+i)[j]

C、*(a+j+j)

Ds*(a+i)+j

12、有以下程序:

main()

{二;

chara[7]=z,a0\0a0\0,/:inti,ji=sizeof(a);

j=strlen(a):printf(〃%d%d\n〃,i,j);

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

A、22

B、76

C、72

D、62I";"":"[";";";

13、下面程序段的功能是

#include<stdio.h>

main()

(

charsi;

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

)

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

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

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

D、在屏幕上輸出stdout的值

14、當用戶要求輸入的字符串中含有空格時,應使用的輸入函數是

A、scanf()

B、getchar()

C、getsO

D、getcO

15、有以下程序:

main()

(

intx=10,y;

if(x<20)尸100:J""...

if(x>4)y=55/x:號二

elsey=10;

/,,,

print.f(%d\n>y);

則輸出結果是o

A、100

B、5)5

C、10

D、5

16、下列程序段的輸出結果為ointy=l;while(y—);

printf(z,y=%d\n,z,y);

A、y=-l

B、y=0

C、死循環

D^y=9

17、以下程序運行后的輸出結果是

#include<stdio.h>

structst

intx,y;

}data[2]={{1,10],{2,20}};

main()

{

structst*p=data;

printf(〃%d,〃,p->y);

printf(〃%d\n〃,(-+p)->x);

)

A、10,1

B、20,12/:

C、10,2

I)、20,2

18、執行語句printf(〃%u\n〃,+12345)的輸出結果是

A、12345

B、0

c、-1

D、非定值

19、若有定義:intb[5];

則以下對b數組元素的正確引用是________O

A、*b[5]

B、b+2

C、*(*(b+2))

D、*(b+2)

20、定義結構體的關鍵字是o

A^union

B、enum

C^struct

D、typedef

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

()1、定義〃ini*a[3]〃和〃ini(*a)[3]〃具有相同的含義。

()2、表達式!(x>0||y>0)等價于!(x>0;&&!(y>0).()

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

()4、在c語言中,跳轉語句有break語句、goto語句和continue語句。

()5、字符串常量是由一對雙引號括起來的字符序列。

()6、c語言規定,簡單變量做實參時,它和對應形參之間的數據傳遞方式是

地址傳遞。

()7、有數組定義inta[2][2]={{1},{2,3}};

則的值為0。

()8、文件的讀函數是從輸入文件中讀取信息,并存放在內存中。

()9、return語句作為函數的出口,在一個函數體內只能有一個

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

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

1、從鍵盤上輸入10個數,求其平均值。(本題10分)

2、編寫程序,從輸入的一行字符串中抽取一部分(從第n個字符開始,抽取m

個字符)構成一個新的字符串,并輸出。其中n〉0且水二字符串的長度,否則

打卬“起始位置n越界”

要求:n和m都由用戶輸入。

如果抽取的字符串長度不夠,則按照實際長度抽取,例如,字符串為

“abcde",若n=2,m=3,則抽取結果為“bed";若n=3,m=5,則抽取結果為

“cde";若n=0,m=4則輸出:起始位置0越界;若n=6,m=2則輸出:起

始位置6越界(本題14分)

3、題目描述

有10個學生,每個學生的數據包括學號、姓名、3門課程的成績。讀入這

個學生的數據,要求輸出3門課程的總平均成績,以及個人平均分最高的學生

的數據(包括學號、姓名、3門課程成績、平均分數)。

輸入

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

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

輸出

第一行包含了3個實數,分別表示3門課程的總立均成績,保留2位小數,每

個數之后輸出一個空格。

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

個人平均分最高的學生,輸出按照輸入順序第一個最高分的學生數據。

請注意行尾輸出換行。

樣例輸入:

樣例輸出

85.6087.9090.40

105EEE929394(本題16分)

參考答案

一、單項選擇題

1、B

2、B

3、C

4、C

5、A

【解析】結構化程序的基本結構為循環結構、選擇結構和順序結構,選項A正

確;計算機可以執行循環結構、選擇結構和順序結構的C語言程序,選項B錯

誤;循環結構可以使用-S流程圖描述,選項C錯誤;算法復雜度是指算法在編寫

成可執行程序后,運行時所需要的時間資源和內存資源,并不是指算法語句的多

少,選項D錯誤;本題答案為Ao

6、D

【解析】考查快速排序。

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

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

關。

7、B

【解析】有關用戶標識符的考題經常在考試中出現,考生應該重視。A選項中

long是C語言保留字,不能用于用戶標識符。C選項中的3Dmax,它的第一個

字符是數字3,不是所規定的字母或下劃線,所以也不是合法的用戶標識符。D

選項中的A.dal,它中間出現了符號,不符合標識符的定義規則。所以只有B

選項中的標識符是合法的C標識符。

8、C

【解析】考查用字符指針處理字符串的方法。[解題要點]語句“p=s;”是使

指針P指向字符數組s。*p則引用了p所指位置的數組元素。[考點鏈接]通

過指針來引用一維數組元素。

9、C

10、D

【解析】選項A不是一個字符常量,因為C++基本數據類型中不存在與其相對

應的類型,如果將起止符號改為雙引號,它就是一個字符串類型的常量。選項

B中缺少開始標記字母X。選項C中的字符A沒有用單引號括起來,只能看成一

個標識符。

11、A

12、C

【解析】C語言中以''0'作為字符串的結束符,且strlenO函數計算的是''0'字

符前的所有字符的個數。數組定義以后系統就為其分配相應大小的內存空間,而

不論其中有沒有內容。

13、C:;

.....??.???;■;

15、I)

16、A

【解析】當y一返回。時,while語句停止循環,此時y二T。

17、C

【解析】正確地給結構體數組賦初值,data[0].x=kdata析].y=10、

data[l].x=2、data[l].y=20;首先,p指向data[0],第一條打印語句輸出p-

>y,即data[0].y的值10;(++p)->x含義是先++p,此時p指向data[l],

第二條打印語句輸出(Tp)->x,即dala[l].x的值2o

18、A

19、D

20、C

二、判斷題

1、錯誤

2、正確

3、錯誤

4、正確

【解析】跳轉語句用于實現循環執行過程中程序流程的跳轉,在C語言中,跳

轉語句有break語句、goto語句和continue語句。

5、正確

6、錯誤

7、正確

8、正確

9、錯誤

10、錯誤

三、編程題

1、#include<stdio.h>

voidmain(){

inta,i,sum=0;

floatave;;

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

scanf("%d",&a);

sum+=a;

ave=(float)sum/10;

printf(z,avc=%f\n〃,ave);

)

2、^include<stdio.h>

ttinclude<string.h>

intmain()

intn,m,i;

unsignedlong1.

chars[80];

gets(s);

scanf(〃%d%d〃,&n,&m);

l=strlen(s);

if(n+m-l>l){

m=l+l-n;

if(n>O&&n<=l)(

for(i=n-l;i<n+m-l;i++){

printf("%c〃,s[i]);

)

}else{

printf(〃起始位置刎越界〃,n);

■}w次:三

return0;

3、#inc1udp<st.dio.h>

#include<string.h>

structpeople{

intnum,a,b,c;

charname[10];

intinput(structpeoplestuLJ){

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

scanf(〃刎%s%d%d%dz,,&stu[i].num,stu[i].name,&stu[i].a,&stu[i].b,&s

tu[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)){

stu[i+l].nun=stu[i].num;

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

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

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

st.u[i+1].c=stu[i].c:

printf(*%.2f%.2f%.2f\n〃,x/10.0,y/10.0,z/10.0);

printf(?,%d%s%d%d%d\n,\stu[9].num,stu[9].name,stu[9].a,stu[9].b,st

u網;:::"

intmain(){

structpeoplestu[10];

input(stu):

print(stu);

return0;

)

中國美術學院計算機C語言專升本試題(二)

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

1、以下說法錯誤的是o

A、計算機算法具有有窮性;確定性;0或多個輸入;一個或者多個輸出;

有效性

B、結構化設計采月自頂向下;逐步細化;模塊化設計;結構化編碼。

C、算法是解決問題的方法和步驟。

D、只有流程圖和NS圖能描述算法,偽碼則不行。

2、c語言提供的合法的數據類型關鍵字是.

A、Double

B、short

C、integer

Char

3、若變量已正確定義為int型,要給a、b、c輸入數據,正確的輸入語句是

________0

A、read(a,b,c);

B、scanfa,b,c);

C、scanfC%D%D%DZ/,&a,%b,%c);

D、scanfC%d%d%d",&a,&b,&c);

4、c語言的if語句嵌套時,if與else的配對關系是。

A、每個else總是與它上面的最近的并且尚未與其他else匹配的if配對

B、每個else總是與最外層的if配對

C、每個else與if的配對是任意的

D、每個else總是與它上面的if配對

5、下面程序的運行結果是o

main()

intcl=2,c2=0;

while(!c2-)printf(',%d%d,',cl-,c2);

}

A、陷入死循環

B、不輸出任何內容

C、輸出2T

D、輸出20

6、若有以下的說明和語句,則在執行for語句后,*(*(pt+l)+2)表示的數組元素

是。

int[3][3],*pt[3],k;

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

pt[k]-&t[k][0];...

A、t[2]Eo]

B、t⑵⑵\jy:<-^<<<<<:

C、tell[2]

D、t⑵⑴

7、不能正確表示a*b/c*d的c語言表達式是o

A^a*b/c*d

B、a/(c*d)*b

C^a*b/c/d

D^a*b/(c*d)

8、若有下面的程序片段:

int[12]={0}>*p[3],**pp,i;

for(i=0;i<3;i)p[i]=&a[i*4];

PP=P

則對數組元素的錯誤引用是

A、pp[0][1]

B、a[10]

C、p⑶⑴

D、*(*(p+2)+2)

9、下面關于指針的說法中錯誤的是________o

A、在指針定義的同時可以對其進行初始化

B、指針根據其所指向變量的類型的不同,所占用內存大小也不同

C、指針中存放的是內存單元的地址

D、相同類型的指針之間可以相互賦值

10、以下選項中合法的c語言字符常量是_______o

A、

B、〃A〃

C、67V/.

D、A

1k已知3個字符為:a、z和8,按它們的ascii碼值升序排序,結果是

A、8,a,Z

B、a,8,Z

C、a,Z,8

D、8,Z,a

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

A、一個數組只允許存儲同種類型的變量

B、如果在對數組進行初始化時,給定的數據元素個數比數組元素個數少時,

多余的數組元素會被自動初始化為最后一個給定元素的值

C、數組的名稱其實是數組在內存中的首地址

D、當數組名作為參數被傳遞給某個函數時,原數組中的元素的值可能被修

13、判斷實數x屬丁閉區間[a,b]的表達式為設a為整型變

量,不能正確表達數學關系10<a<15的c語言表達是o

A、a>10&&a<15

B、a>10|a<15

C、!(a<=10||a>=15)

D、!(a<=10)&&!(a>=15)

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

#include<stdio.h>

intm=13;

intfun(intx,inty;{

intm=2;

return(x*y-m);

}

main()

inta=7,b=6;

printffun;a,h)/m):

A、1

B、3

C、7

D、10

15、有以下程序的輸出結果為

main()

chara=0x95,b,c;

b=(a&Oxf)<<4;

u=(a&OxfO)>>4;

a=bc;

printf(〃%x\n〃,a;;

}

A、24

B、59

C、34

D、56

16、語句for(k=0;k<5;++k)

{

if(k==3)continue;

printf(〃%d〃,k);

)

的輸出結果為______

A、012V/▲

B、0124

C、01234

I)、沒有輸出結果

17、以下對枚舉類型名的定義中正確的是________o

A、enuma={sum,mon,tue};

B、enuma{sum=9,mon=-l,tue};

Cr〃〃〃〃〃,

、enuma=(sum,mon,tue\;

、enuma{sum,mon,tue);

18、設x,y均為int型變量,且x=10,y=3,則printf(〃%d,%d\n〃,x-,-y);

語句的輸出結果是______o

A、10,3

B、9,3

C、9,2

D、10,2

19、有說明語句iuLa[4][5];則”[2]十3表示—。

A、a數組行下標為2、列下標為3的元素的地址

B、a數組行下標為2、列下標為3的元素的值

C、a數組第2行的首地址

D、a數組第3行的首地址

20、以下scanf函數調用語句中不正確的是_。

structpupil

(

charname[20];

intage;

intsex;

)

pup[5],*p=pup;

A、scanf(〃%s〃$pup[0].name);

B、scanf(線d〃,&pup[0].ago);

C、scanf(〃%d〃,p->age);

I)、scanf("%d〃,ft(p->sex));

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

()1、表達式都有運算結果

()2、計算機語言(computerlanguage)是人與計算機之間通訊的語言。

()3、關系表達式的值是一個邏輯值,即〃真〃或“假〃,并且用0表示〃假〃,用1

衣不具。

()4、在多層循環中,一個break語句只向外跳一層。

()5、printf(〃格式控制字符串〃,輸出項表列)中,格式控制字符串中的瑜出

項格式說明與輸出項表列中的輸出項按順序一一對應,且輸出項的數據類型要與

格式字符相容,否則會導致執行錯誤。

()6、若函數的返回值與return表達式類型無一致時,以return表達式類

型為準。

()7、字符串必須以'0'結束,但字符數組可以不包括'0'。

()8、c語言每個函數的返回值都是int型的。

()9、c語言中不相同類型的指針變量也可以相互賦值。

()10、在同一源文件中,使用extern可將全局變量的作用域向上擴展。

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

1、輸入n的值,計算并輸出1*1+2*2+3*3+4*4+5*52..+n*n的值。要求編寫函

數f求平方。(本題10分)

2、輸入一行字符,將所有的小寫字母轉換成大寫字母,(本題14分)

3、已知學生的記錄由學號和學習成績構成N名學生的數據已存入a結構體數組

中。試編寫函數fun函數的功能是找出成績最低的學生記錄通過形參返回主函

數規定只有一個最低分在主函數中調用fun,使用結構體實現(本題16

分)

參考答案

一、單項選擇題

1、D

2、B

3、D

4、A

5、C

6、C

7、C"工二勿:

8、C

【解析】考查指向數組的指針。[解題要點]本題綜合考查一維數組和多維數組

指針變量的表示方法。在C語言中,引用數組元素的方法有兩種,即:下標法

和指針法。下標法如a[下形式;指針法如*(a+i)或*(p+l)。其中a是數組名,

P是指向數組的指針變量,其初值P二a。再如*(*\+2)y)是a⑵⑵的值,注

意語句中指針型數組的書寫格式,不能寫成“住數組名)[長度]”,因為這是定

義指向含有“長度”個元素的一維數組的指針變量。例如有定義語句“inta,

b,c,c,*P[3]=(&a,&b,&c};”,它定義了一個名為p的指針型數組,其3

個元素p[0],P[1],p[2]分別指向B個整型變量a,b,c0[考點鏈接]數組

元素的引用方法。

9、B

【解析】指針是一種用來存放其他變量地址的數據類型,它的聲明形式為:

〈類型〉+〈變量名〉,可以在聲明的時候對其進行初始化。由于其存放的是內

存單元的地址,所以大小一般都是4個字節。

10、A

【解析】在C語言中,一個字符常量代表ASCH字符集中的一個小字符,在程

序中用單引號把一個字符括起來作為字符常量,選項A)是一個轉義字符常量,

表示橫向跳若干空格(代表“TAB”鍵);選項B)表示一個字符串;選項C)表示

一個整型常量;選項D)表示一個標識符(代表一人變量),故本題答案為A)。

11、D

【解析】在ASCII碼袁中,根據碼值由小到大的徘列順序是:控制符、數字

符、大寫英文字母、小寫英文字母。

12、B

13、B

14、B

【解析】本題考查的是函數調用時的參數的作用域。在函數調用時,當全局變

量和局部變量的名稱相同時,在局部變量的作用域內,局部變量起作用,因而

在fun函數內m的應該等于2,main中的m為13,所以返回值為7X6-2=40,

而fun(a,b)/m值為40/13=3。

15、B:]

16、B

17、B

18、D

【解析】C語言的自減運算符有前置與后置兩種形式。當自減運算符前置時,

變量先自減一后再參與表達式運算;而后置時,變量先參與表達式運算后再自

身減一。

19、A

20、C

二砥二"

1、正確

【解析】在C語言中,三種運算符的算術運算符優先級最高,賦值運算符優先

級最低。

2、正確

3、正確

4、正確

5、正確

6、錯誤

7、正確

8、錯誤

9、錯誤

10、正確

三、編程題

1、Sinclude

voidmain()

(

intf(intx);

intn,sum;

printf(〃V/

請輸n值:〃);

scanf(〃%d〃,&n);

sum=f(n):

printfsum);

intf(intx)

intj,z=0;

for(j=l;j<=x;j+-)

Z=z+j*j;

returnz;

)

2、大寫字母轉換成小寫字母,其余字符不變。輸出轉變

后的這行字符。

ttiiiulude"sldio.h〃

voidmain()

(

chara[n];

inti;

scanf(〃%s〃,a);

printf(〃大寫為:〃);

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

if(a<=,z&&a>=,a*)

a=a-32;

printfa);

)

printf(〃\n小寫為:〃);

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

(

a=a+32;

printf("%c〃,a):

3、#include<stdio.h>

#defineN10

structstudent

(

longnumber;

intscore;

};

voidPun(structstudentstdL],structstudent*min)

(

inii,in;

m=std[0].score:

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

if(std[i].score<m)

m=std[i].score;

min->number=(std+i)->number;

min->score=(std+i)->score;

)

}

intmain(){

structstudent

a[N]={{l,81},{2,77},{3,63},{4,93},{5,66},{6,531{7,73},{8,89},{9,85},

(10,73}};'A二;

structstudentmin;

fun(a,&min):

printf(〃成績最低的學生記錄為:\n學號:%ld,成

績:%d〃,min.number,min.score);

}

中國美術學院計算機C語言專升本試題(三)

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

1、若變量已正確定義并賦值,下面符合c語言語法的表達式是

A^m:=5

B、c=b=a=l

C、float8%5

D、x+5=y+2

2、在c語言中,全局變量的存儲類別是.

A、static

B、extern

C^void

D^registe

若有定義:intx,*pb;則正確的賦值表達式是o

A、pb=&X

B、pb二X

C、*pb=&x

D、*pb=*x

4、能正確表示a210或aWO的關系表達式是_______。

A^a>=10ora<=0

B、a>=10||a<=0

C、a>=10|a<=0

D、a>=10&&a<=0

5、以下敘述中正確的是_______o

A、N-S流程圖只能描述簡單的順序結構的程序

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

C、結構化程序的三種基本結構是循環結構、選擇結構、順序結構

D、計算機可以直接處理C語言程序,不必進行任何轉換

6、設有字符串a=〃hehas錢!〃,則該字符串的長度為()。

A、9

B、10

C、11

D、8

7、假定x和y為double型,則表達式x=2,y=x+3/2的值是。

A、3.500000

B、3

C、2.000000

D、3.000000

8、設有二維數組a(12JO),其每個元素占4個字節,數據按列優先順序存儲,第

一個元素的存儲地址為100o則元素a(5,5)的存儲地址為o

..????-<<

R、276

C、208

D、308

9、當說明一個共用體變量時系統分配給它的內存是

A、各成員所需要內存量的總和

B、共用體中笫一人成員所需內存量

C、成員中占內存量最大者所需的容量

D、共用體中最后一個成員所需內存量

10、以下不能將s所指字符串正確復制到t所指存儲空間的是。

A、do*t++=*s++;while(*s);

B、for(i=0;t[i]=s[i];i++);

C、while(*t=*s)t++;s++;

D、fur(i=0,j=O;l[i++]=s[j++];);

Ik若函數調用時用數組名作為函數參數,以下敘述中,不正確的是

A、實參與其對應的形參共占用同一段存儲空間

B、實參將其地址傳遞給形參,結果等同于實現了參數之間的雙向值傳遞

C、實參與其對應的形參分別占用不同的存儲空間

D、在調用函數中必須說明數組的大小,但在被調函數中可以使用不定尺寸

數組

12、以下關于retun語句的敘述中正確的是。

A^一個自定義函數中必須有一條return語句

B、一個自定義函數中可以根據不同情況設置多條return語句

C、定義成void類型的函數中可以有帶返回值的return語句

D、沒布Return語句的自定義函數在執行結束時不能返回到調用處

13、以下非法的字符常量是________。

->A、”莖二;

B、.

C、'\x21'

I)、''0'

14、下面程序段的運行結果是chara[]=〃lanuage〃,*p;p=a;

while(*p!=u)printf(〃%c〃,*p-32);p++;

A、LANGUAGE

B、language

C、LANI";"":"";";";"

D、langUAGE

15、要輸出下面的圖形,請完善程序。

ttinclude<stdio.h>

main()

(

inti,j,k;

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

(

for(j=l;j<=20-2*i;j++)printf(〃”);

for(k=l;________;k++)printf(〃%2d〃,i);

}

A、i<=k

printf(/z〃);

B、k<j

printfC\n");

C、k<=i

printf("\n");

D、k<=i1

printf(z/〃);

16、有如下程序

ttdpfinpN3

#defineMN+l#defineNUM2*M+1

main()

(

inti;

,,,

for(i=l;i<=NUM:i++)printfC%d\n,i);

)

該程序中的for循環執行的次數是。

A、5

B、8

C、7

D、6

17、變量日所占的內存字節數是_____o

unionu{

charst[4];

inti;

long1;

};

structA{

intc;

unionu;

}a;

A、4

B、5

C、6

D、8

18、有以下程序#include<stdio.h>

main(){

inta=l,b=0;

if(a)b++;

elseif(a==0)if(a)b+=2;

elseb+=3;

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

}程序運行后的輸出結果是________O

A、0

B、1

C、

D、3

19、要定義一個字符串,下列選項中錯誤的是________

A、chars[5]="hello";

B、chars[]="hello”;

C、chai本s="hell」;

、charsLJ={h,e,1,1,oJ;

20、若有以下說明語句:

structstudent

intnum;

charname[];

floatscore;

}stu;

則下面的敘述不正確的是:()

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

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

C、num,score都是結構體成員名

D、stu是用戶定義的結構體類型名

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

()1、c語言程序在書寫上只能是一條語句寫一行。

()2、執行〃for(i=l;iV10;i+=2)s+二i;〃后,i的當前值為11

()3、break語句不能夠單獨使用,只能用于循環語句和switch語句

()4、由于do-while循環中循環體語句只能是一條可執行語句,所以循環體

內不能使用復合語句。

()5、chars="CLanguage";表示s是一個指向字符串的指針變量,把字

符串的首地址賦予s

()6、在c語言程序設計中函數是允許嵌套定義的。

()7、有指針變量p和數組a,指針變量和數組都可以實現本身的值的改

變,如p++和a++

()8、在c程序中,函數既可以嵌套定義,也可以嵌套調用。()

()9、實參向形參進行數值傳遞時,數值傳遞的方向是單向的,即形參變量值

的改變不影響實參變量的值。

()10、c語言對文件讀、寫之前不必先打開文件,在使用文件之后無需關閉

該文件。

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

1、輸出所有0-200之間能被3整除且個位數字為6的整數。(本題10分)

2、編寫程序,讀一個在字母C和X之間的字符,打印出該字母在中間的相鄰五

個字母。如輸入F,則輸出DEFGH。(本題14分)

3、編寫程序:創建一個長度為n的鏈表,然后反向輸出該鏈表。(本題16

分)

參考答案

一、單項選擇題

1、B

【解析】選項A)中的賦值方法為Pascal語言賦值格式;C語言中賦值直接為

,無冒號;選項D)中“x+5=y+2”賦值格式錯誤,賦值號左邊不可以已現

常量,也不可以同時出現兩個變量。選項C)應改為(float)8%3

2、A

3、A-

4、B"工:

5、C

【解析】N-S流程圖是可以描述循環結構、選擇結構、順序結構等多種結構的

程序,所以A選項錯誤。程序的算法可以用流程圖、偽代碼、N-S結構圖等方

法表示所以B選項錯誤。計算機只能處理二進制表示的目標程序不能直接現行

由C語言編寫的源程序所以D選項錯誤。,

6、B

7、D

8、D

9、C

10、A

【解析】do

{*t++=*s++;}while(*s);不能。因為當*s=0時,while(*s)跳出循環,這樣字

符串結束標志\0沒有復制給*1,造成*t不完整。注意,*1++=*s++是先執行

*t=*s,然后才進行t=t+l,s=s+lo選項B、C、D都能將\0復制過去。

11、C

12、B

13、A

14、C

【解析】本段程序的作用是輸出字符串“lanuage”中字母u之前的字符,并將

其轉化為大寫字母。

注意:如果一個字符數組用來作為字符串使用,那么在定義該字符數組時,

數組的大小就應該比它將要實際存放的最長字符多一個元素,以存放,\0,。

15、C

16、B

17、C

【解析】結構件變量所占內存長度是各成員占內存長度之和,而共用體變量所

占的內存長度等于最長的成員的長度。本題結構體變量a中成員c為整型占2

個字節,共用體變量u最大長度為4個字節,故選C。

18、AV/上

19、D?"二

【解析】定義字符數組,字符元素要用單引號括起來。

20、I)

二、判斷題三.炎孑必7m:

1、錯誤三一

2、正確

3、正確::::

4、錯誤I";;;";";";:】

5、正確

6、錯誤

7、錯誤

8、錯誤

9、正確

10、錯誤

三、編程題

1、Sinclude

voidmain()

(

inti;

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

if((i%3=0)&&((i-6)%10==0))

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

printf(〃\n〃);

)

2、Sinclude<stdio.h>

main()

(

charch,cha;

printf(〃請輸入一個字母(C到X之間):〃);

scanf(〃%c〃,&ch);?:"":

if((ch<,C,)|(ch>'X'))

printf(〃輸入錯誤!\n〃);

else

for(cha=ch-2;cha<=ch+2;cha++)

printfcha);

printf(/z\n/z);

3、#includo<stdio.h>

#include<stdlib.h>

#include<malloc.h>

typedefstructLNode{

intdata;

structLNode*next;

}LNude,*LinkLisl;

LinkListCreateListlintn);

voidprint(LinkListh);

intmain()

LinkListHead=NULL;

intn;

scanf(〃%d〃,&n);

Head=CreateListIn);

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

print(Head);

printf(〃\n\n〃);

system("pause");

rpturn0:

}

LinkListCreateListlintn)

LinkListL,p,q;

inti;

L=(LNodo*)malloc(sizcof(LNodc));

if(!L)return0;

L->next=NULL;

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

p=(LiiikLialJnicillou(LNodc));

printf(〃請輸入第%d個元素的值:〃,i);

scanf&(p->data));

p->next=NULL;

q->next=p;

q二P;

returnL;

}

voidprint(LinkListh)

LinkListp=h->next;

while(p!=NULL){

printf(,z%dp->data);

p=p->next;

中國美術學院計算機C語言專升本試題(四)

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

1、c語言中,double類型數據占o

A、1個字節

B、2個字節

C、4個字節

D、8個字節

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

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

elseif(x<0)y=l;

elsey=0;

>

if(x>0)y=l;

elseif(x<0)y=-l;

elsey=0;

c、y二t

if(x>0)y=l:

elseif(x=-0)y=0;

elsey=-l;

D、y二0;

if(x>=0)

if(x>=0)y=l;

elsey=-l;

3、指針變量p進行自加運算(即執行p++;)后,地址偏移值為4,則其數據類型

為o

A、int

B、float

C、double

D、char

4、若a和b均是整型變量并已正確賦值,正確的switch語句是

A、switch(a+b);...

switch(a+b*3.0)...

C>switcha...

D、switch(a%b)...

5、下面的程序

main()

intx=3;

....;

printf(,,%d\n,\x-=2);

whiled(-x));

:--<<-<<<<?<<<:???:

A、輸出的是1

B、輸出的是1和-2

C、輸出的是3和0

D、是死循環

6、有以下程序

#include<stdio.h>

#defineN4

voidfun(inia[][N],inib[]){

inti;

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

b[i]=a[i][i]-a[i][N-l-i];

}

voidmain(){

intx[N][N]=l,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,y[N],i;

fun(x,y);

for(i=0;i<N;i++)printfC%d,y[i]);

printffV);

)

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

A、-12,-3,0,0,

B、_3,_1,1,3,

C、0,1,2,3,

D、-3,-3,-3,-3,

7、若變量c為char類型,能正確判斷出e為小寫字母的表達式是

A>a<=c<=,2'

B、(c>='a')||(eV二'z')....

C、(Ja,<=c)and(,z>c)

D、(c>=,a')&&(c<=,Z')

8、下列對字符數組進行初始化的語句正確的是。

A、chara□=“Hello”;

B、chara

C^chara[5]=〃Hello〃;

Dschara[2][5]={〃Hello","World"};p

9、在位運算中,操作數每右移兩位,其結果相當于——o

A、操作數乘以2

B、操作數除以2

C、操作數除以4

D、操作數乘以4

10、設char*s=〃\ta\017bc〃;

則指針變量s指向的字符串所占的字節數是________O

A、9

B、5

C、6

D、7

Ik下面程序的運行結果是

#include<stdio.h>

main()

(

staticchara口二〃languagef”,b□="programe”;

char*pl,*p2;

intk;

pl=a;

p2=b;

for(k=0;k<=7;k-+)if(*(pl+k)==*(p2+k))

printf(〃%c〃,*(p:+k));

A、gae

::;:;:■:

C、LanSuagc

D、有語法錯

12、設有語句:printfJ%2d\n”,2010);

,則以下敘述正確的是________。

A、程序運行時輸巴20

B、程序運行時輸出10

C、程序運行時輸出2010

D、指定的輸出寬度不夠,編譯出錯

13、己知inta,b;月語句scanf(〃%d%d”,&a,&b);輸入a,b的值時,不能作

為輸入數據分隔符的是。

A、,

B、.空格

C、回車

D、Tab鍵

14、有定義:char**pl,*p2;

則下列表達式中正確合理的是o

A、pl/=5

B、pl*=p2

C^pl=&p2

Dspl+二5

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

main()

charcl='6',c2=,O':

printf(''%d,%d,%d\n'',cl,c2,cl-c2);

)

A、因輸出格式不合法,輸出出錯信息

B、54,48,6

C、6)0,7

D、6,0,6

16、有以下程序

ttinclude<stdio.h>

main()

inti,j,m=l;

fox(i=l;i<3;i+-)

(

for(j=3;j>0;j—)

(

if(i*j>3)break;

m*=i*j;

printf("m=%d\n'1,m)

)

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

A、m=6

B、m=2

C、m=4

D、m=5

17、若有下列說明和語句,則對結構體變量st中成員i的引用方式不正確的是

struct,st.il{

inti;

intname;

}st,*p;p=&st;

A、st.i

*p.i

C、(*p).i

D、p->i

18、有以下程序

#include<studio.h>

intfun()

(

blulicintx=l;

x*=2;

returnx;

}

main()

inti,s=l;

for(i=l;i<=2;i++)s=fun();

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

)

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

A、0

B、1

C、4

D、8V

19、數組a[10]的下標從()開始。

A、1

R、0

C、10

D、不確定

20、在16位pc機上使用c語言,若有如下定義

structdata{

inti;

charch;

doublef;

}b;

則結構變量b占用內存的字節數是_______0

A、1

B、2

C、7

D、11

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

()1、c語言中〃++〃的運算符優先級高于〃+〃

()2、在標準c中,變量可以先使用再定義。

()3、在switch語句中,多個case可以共用一組執行語句。

()4、若變量已正確定義,執行以下程序段,輸入0或者負數時?,循環結束。

total=0;

scanf(〃%d〃,&score>;

while(score>0)

(

total=total+score;

scanf(飛d〃,&score);

()5^函數strcpy(strl,str2);

的功能是將字符串st.r2復制到字符串strl中.

()6、若定義時,函數返回值類型為void,函數仍然可有retu

溫馨提示

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

評論

0/150

提交評論