2021年廣州某學(xué)院C語言程序設(shè)計(jì)專升本預(yù)測卷(十二套試卷)及答案_第1頁
2021年廣州某學(xué)院C語言程序設(shè)計(jì)專升本預(yù)測卷(十二套試卷)及答案_第2頁
2021年廣州某學(xué)院C語言程序設(shè)計(jì)專升本預(yù)測卷(十二套試卷)及答案_第3頁
2021年廣州某學(xué)院C語言程序設(shè)計(jì)專升本預(yù)測卷(十二套試卷)及答案_第4頁
2021年廣州某學(xué)院C語言程序設(shè)計(jì)專升本預(yù)測卷(十二套試卷)及答案_第5頁
已閱讀5頁,還剩75頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

c語言程序設(shè)計(jì)專升本預(yù)測卷(-)D、if(a=>b)x++;

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

【答案】A

題號—*二三總分閱卷人

【解析】A雖然是賦值語句,但是在邏輯運(yùn)算中自動將賦值語句的結(jié)果當(dāng)作邏輯值,方

分值402040100法是,如果賦值語句的結(jié)果是非零值則當(dāng)作邏輯真,否則當(dāng)作邏輯假。C語言中關(guān)系運(yùn)

算符有〈(小于)、>(大于)、>=(大于等于)、<二(小于等于)、==(等于)、!=(不等于)

得分等六種,可見其他的條件表達(dá)式中的關(guān)系符寫錯(cuò)了。

4、下列關(guān)于do…while語句的敘述中正確的是。

■題目包括三大部分,單項(xiàng)選擇題,填空題,編程題,請按要求作答°A、do-while語句所構(gòu)成的循環(huán)不能用其他語句構(gòu)成的循環(huán)來代替

■答卷必須用藍(lán)色或者黑色鋼筆、圓珠筆,不許用鉛筆或者紅筆作答。

B、do…while語句所構(gòu)成的循環(huán)只能用break語句跳出

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

C、do---while語句所構(gòu)成的循環(huán)只有在while后面的表達(dá)式非零時(shí)才結(jié)束

一、單項(xiàng)選擇題(每小題2分,共40分)D、do…while語句所構(gòu)成的循環(huán)只有在while后面的表達(dá)式為零時(shí)才結(jié)束

1、若整型變量a、b、c、d中的值依次為:1、4、3、2,則條件表達(dá)式aVba:cVdc:d的【答案】D

值是0【解析】for語句、while語句以及do…while語句構(gòu)成的循環(huán)可以相互轉(zhuǎn)換。

A、1do…while循環(huán)的結(jié)束條件是while后面的表達(dá)式為0(即循環(huán)條件為“假”)。

B、2

C、35、下列程序的輸出結(jié)果是一

D、4^include<stdio.h>

intf(inta,intb);

【答案】Amain()

(

【解析】本題考查的是條件表達(dá)式的嵌套。因?yàn)闂l件運(yùn)算符的結(jié)合方向?yàn)椤白杂抑?/p>

inti=2,p,j,k;

左”,所以表達(dá)式aVba:c〈dc:d相當(dāng)于aVba:(cVdc:d)。由于a=l,b=4,所以a〈b

j二i;

的結(jié)果為“真”,整個(gè)表達(dá)式的值為a的值1。所以,4個(gè)選項(xiàng)中選項(xiàng)A)符合題意。k=++i;

p=f(j,k);

2、已有定義:intx=3,y=4,z=5;,則表達(dá)式?。▁+y)+z-1&&y+z/2的值是。

printfp);

A、6}

B、0intf(inta,intb)

C、2(

D、1intc;

if(a>b)c=l;

【答案】Delseif(a==b)c=0;

elsec=-l;

3、選擇出合法的if語句(設(shè)intx,a,b,c;)return(c);

A^if(a=b)x++;)

B>if(a=<b)x++;A、-1

C、if(a<>b)x++;B、1

C、210、有說明語句inta[4][5];則a[2]+3表示—。

D、編譯出錯(cuò),無法運(yùn)行A、a數(shù)組行下標(biāo)為2、列下標(biāo)為3的元素的地址

B、a數(shù)組行下標(biāo)為2、列下標(biāo)為3的元素的值

【答案】AC、a數(shù)組第2行的首地址

【解析】函數(shù)調(diào)用相當(dāng)于f(2,3),程序運(yùn)算結(jié)果為D、a數(shù)組第3行的首地址

6、下列選項(xiàng)中,不合法的變量是o

【答案】A

A^intx=3;

B、charch='c';11、若主調(diào)用函數(shù)類型為double,被調(diào)用函數(shù)定義中沒有進(jìn)行函數(shù)類型說明,而return

C、floatf;語句中的表達(dá)式類型為float型,則被調(diào)函數(shù)返回值的類型是o

D、casec;A、int型

B、float型

【答案】DC、double型

D、由系統(tǒng)當(dāng)時(shí)的情況而定

7、若charallO];已正確定義,以下語句中不能從鍵盤上給a數(shù)組的所有元素輸入值的

語句是。

【答案】A

A、gets(a);

B、scanfa);12、若以下選項(xiàng)中的變量已正確定義,則正確的賦值語句是o

C、for(i=0;i<10;i++)a[i]=getchar();A、xl=26.8%3;

D、a=getchar();B、l+2=x2;

C、x3=0xl2;

【答案】DD、x4=l+2=3;

8、若有如下程序段,其中s、a、b、c均已定義為整型變量,且a、c均已賦值(c大于0)

【答案】C

s=a;for(b=l;b<=c;b++)s=s+l;則與上述程序段功能等價(jià)的賦值語句是。

A、s=a+b;13、若有說明語句:inti,x[3][4];則不能將的值賦給變量i的語句是。

B、s=a+c;A^i=*(*(x+l)+l)

C、s=s+c;B,i=x[l][l]

D、s=b+c;C、i=*(*(x+D)

D、i=*(x[l]+l)

【答案】B

【答案】C

9、字符串〃\\\"abc\"\\"的長度是。

【解析】本題考查對數(shù)組元素的相關(guān)操作。

A、11

題目中給出的是一個(gè)二維數(shù)組x[3][4],數(shù)組名為x,取數(shù)組第一行第一列元素的幾種

B、7

方法分別是*(x[l]+l)、x[l][1]、*(*(x+l)+l)、*(x+l)[1]等。

C、5

D、314、以下程序運(yùn)行后的輸出結(jié)果是

#include<stdio.h>

【答案】Bstructst

高位舍棄,左邊高位空出要根據(jù)原來符號位的情況進(jìn)行補(bǔ)充,對無符號數(shù)則補(bǔ)0,對有

intx,y;符號數(shù),若為正數(shù)則補(bǔ)0,若為負(fù)數(shù)則補(bǔ)1。1

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

“異或”運(yùn)算是當(dāng)兩個(gè)運(yùn)算量的相應(yīng)位相同時(shí)結(jié)果為0,不相同時(shí)結(jié)果為1。b=2的二

進(jìn)制為(0000001。bVV2后為00001000,好1的二進(jìn)制為00000001,所以。干飛<<2

main()

(為00001001,轉(zhuǎn)化為十進(jìn)制后為9。

structst*p=data;

16、執(zhí)行以下循環(huán)語句時(shí),下列說法正確的是.ox=-1;

printf(/z%d,,z,p->y);

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

}

X=X*X;

、10,1

A)

B、20,1while(x==0);

C、10,2A、循環(huán)體將執(zhí)行一次

D、20,2B、循環(huán)體將執(zhí)行兩次

C、循環(huán)體將執(zhí)行無限次

【答案】C

D、系統(tǒng)將提示有語法錯(cuò)誤

【解析】正確地給結(jié)構(gòu)體數(shù)組賦初值,data[0].x=l>data[0].y=10>data[l].x=2、

datatl].y=20;首先,p指向data[O],第一條打印語句輸出p->y,即data[O].y的值【答案】A

10;(++p)->x含義是先++p,此時(shí)p指向data[l],第二條打印語句輸出(++p)->x,即

dala[l].x的值2。17、c語言中的基本數(shù)據(jù)類型包括

A、整型、實(shí)型、字符型

15、下述程序的輸出結(jié)果是oB、整型、字符型、數(shù)組

#include<stdio.h>

C、整型、實(shí)型、邏輯型

voidmainO{

D、整型、實(shí)型、結(jié)構(gòu)體

chara=l,b=2;

charc=a*b<<2;

【答案】A

printfc);

)18、以下四個(gè)程序中,完全正確的是o

A、9A、#include<stdio.h>

B、10main();{/"programming*/printf("programming!\n");}

C、12B、#include<stdio.h>

D、2mainO

{/*/programming/*//printf("programming!\n〃);)

【答案】A

C、#include<stdio.h>

【解析】本題主要考查C語言最基本的算術(shù)運(yùn)算“左移(VV)”和“異或O”。

main()

“左移”或“右移”運(yùn)算表達(dá)式的一般形式為:xVVn或x>>n。"左移(VV)”運(yùn)

{/*programming*/printf("programming!\n〃);}

算的規(guī)則是將x的二進(jìn)制位全部向左移動n位,將左邊移動的高位舍棄,右邊空出的位

補(bǔ)0:“右移(>>)”運(yùn)算的規(guī)則是將x的二進(jìn)制位全部向右移動n位,將右邊移動的

D^include<stdio.h>【解析】本題中,在調(diào)用函數(shù)時(shí)將結(jié)構(gòu)體變量的兩個(gè)成員作為實(shí)參,其中的成員數(shù)組a

mainO實(shí)際向函數(shù)f()傳遞的是該數(shù)組的地址,因此在函數(shù)f()中所對應(yīng)的形參發(fā)生改變時(shí),該

{/*/*programming*/*/printf("programming!\n");}數(shù)組內(nèi)的數(shù)據(jù)也會發(fā)生改變。函數(shù)f()實(shí)現(xiàn)的功能是將成員數(shù)組中的前9個(gè)元素分別加

上該元素的下標(biāo),作為新的元素。

【答案】C

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

19、以下能對一維數(shù)組a進(jìn)行正確初始化的語句是—

A、inta[10]=(0,0,0,0,0)1、在傳值調(diào)用中,實(shí)際是把實(shí)參的。

B、inta[10]={);

【答案】地址傳給形參

C、inta[]={0};

D、inta[10]={10*l};

2、局部變量的作用域是從定義的位置起,到結(jié)束止。

【答案】C

【答案】函數(shù)

20、有以下程序

3、函數(shù)的形參在未被調(diào)用前不分配空間,函數(shù)形參的數(shù)據(jù)類型要和實(shí)參相同。

structs

(

【答案】

intn;

inta[20];

4、在C語言中,表示靜態(tài)存儲類別的關(guān)鍵字。

};

voidf(int*a,intn)

【答案】static

(

inti;5、下列程序段的運(yùn)行結(jié)果是o

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

mainO

}

(

mainO

(intm=l,t=l;

inti;for(;;)

structss={10,{2,3,1,6,8,7,5,4,10,9}};(

f(s.a,s.n);m=m+t;

for(i=0;i<s.n;i++)printf("%d,”,s.a[i]);

t++;

}

if(m>9)break;

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

}

A、2,4,3,9,12,12,11,11,18,9,

printf(〃%d\n”,m);

B、3,4,2,7,9,8,6,5,11,10,

)

C、2,3,1,6,8,7,5,4,10,9,

D、1,2,3,6,8,7,5,4,10,9,【答案】11

【答案】A

6、以下sum函數(shù)的功能是計(jì)算下列級數(shù)之和。s=l+x+x2/2!+x3/3!+........+xn/n!9、以下程序運(yùn)行后的輸出結(jié)果是

請給函數(shù)中的各變量正確賦初值。doublesum(doublex,intn)mainO

((

inti;inti,j,a[][3]={l,2,3,4,5,6,7,8,9);

doublea,b,s;for(i=0;i<3;i++)for(j=i+l;j<3;j++)a[j][i]=0;

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

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

(for(j=0;j<3;j++)printf(^da[i][j]);

a=a*x;printf("\n");

b=b*i;)

s=s+a/b;)

}

【答案】123056009

returns;

)

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

【答案】['a=l.0;b=l.0;s=l.0:']ttdefinePI=3.14159

main()

7、函數(shù)swap(arr,n)可完成對arr數(shù)組從第一個(gè)元素到第n個(gè)元素兩兩交換。在運(yùn)行(

調(diào)用函數(shù)中的如下語句后,a[0]和a[l]的值分別為【1】________,原因是【2】floatr,s;

a[0]=l,a[l]=2;printf("Enteranumberr:");

swap(a,2);s=PI*r*r;

)

【答案】【1】2,1[2]地址傳遞對形參的改變能改變實(shí)參的值

【答案】['scanf,'printf("s=%f",s)']

8、以下程序功能是:借助指針變量找出數(shù)組元素中的最大值及其元素的下標(biāo)值。請?zhí)?/p>

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

ttinclude<stdio.h>

1、編寫程序:輸入兩個(gè)正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)。(本題10

main()

分)

(

inta[10],*p,*s;【答案】#include<stdio.h>

for(p=a;p-a<10;p++)scanf("%d",p);intmain()

for(p=a,s=a;p-a<10;p++)if(*p>*s)s=_________;

printf("index=%d\n",s-a);inta,b,t,r,n;

}printf("請輸入兩個(gè)數(shù)弓J\n");

scanf(n%d%dH,&a,&b);

【答案】p

if(a<b)

{t=b;b=a;a=t;}inti,x,m=0,n=0,k=0,j=0;

r=a%b;chara[20];

n=a*b;printf("請輸入字符串:”);

while(r!=0)gets(a);

(二x=strlen(a);

a=b;for(i=0;i='0,&&a[i]<='9,)

b=r;m++;

r=a%b;elseif(a[i]>=,A'&&a[i]<=,Z*)

}n++;

prinlf("這兩個(gè)數(shù)的最大公約數(shù)是%d,最小公倍數(shù)是%d\n”,b,n/b);elseif(a[i]>=1a'&&a[i]<=rz1)

k++;

return0;else

)j++;

【解析】1)最小公倍數(shù)二輸入的兩個(gè)數(shù)之積除于它們的最大公約數(shù),關(guān)鍵是求出最大公|

約數(shù);printf(M%d,%d,%d,%d\nM,m,n,k,j);

)

(2)求最大公約數(shù)用輾轉(zhuǎn)相除法(又名歐幾里德算法)

3、有一包含職工編號、年齡和性別的單向鏈表,分別使用函數(shù)完成以下功能

建立鏈表。

1)證明:設(shè)c是a和b的最大公約數(shù),記為c=gcd(a,b),a>=b,

分別統(tǒng)計(jì)男女職工的人數(shù)。

令r=amodb

在鏈表尾部插入新職工。

設(shè)a=kc,b=jc,則k,j互素,否則c不是最大公約數(shù)

刪除指定編號的職工。

據(jù)上,r=a-mb=kc-mjc=(k-mj)c

刪除60歲以上的男職工和55歲以上的女職工被刪除的結(jié)點(diǎn)保存到另一個(gè)鏈表

可知r也是c的倍數(shù),且k-mj與j互素,否則與前述k,j互素矛盾,

中。在主函數(shù)中設(shè)計(jì)簡單的菜單去調(diào)用上述函數(shù)。(本題16分)

由此可知,b與r的最大公約數(shù)也是c,即gcd(a,b)=gcd(b,amodb),得證。

【答案】#include<stdlib.h>

2)算法描述:

#include<stdio.h>

structnode{

第一步:a4-b,令r為所得余數(shù)(OWr第二步:互換:置a-b,b—r,并返回第一

longNo;

步。

intage;

charsex;

2、編寫程序,判斷從鍵盤輸入的字符中數(shù)字字符的個(gè)數(shù)、大寫字母的個(gè)數(shù)、小寫字母的

structnode*next;

個(gè)數(shù)及其它字符的個(gè)數(shù),以*作為字符輸入結(jié)束標(biāo)志。(本題14分)

);

【答案】#includenode*establish()

voidmain()

structnode*h,*p,*q;

longnum;structnode*p,*q;

h=(structnode*)malloc(sizeof(structnode));printfC請輸入新職工編號年齡和性別!\n”);

p=q=h;p=(structnode*)malloc(sizeof(structnode));

printf("請輸入職工編號(輸入0退出輸入)!\n”);scanf(w%ld,%d,%cn,&p->No,&p->age,&p->sex);

scanf(n%ld",&num);q=phead->next;

while(num!=0)while(q->next!=NULL)

(q=q->next;

p=(structnode*)malloc(sizeof(structnode));q->next=p;

p->No=num;p->next=NULL;

printf(”請輸入職工年齡和性別\n");

scanf(',%d,%cn,&p->age,&p->sex);voiddel(structnode*phead,longnum)

q->next=p;(

q二P;structnode*p,*q;

printf(”請輸入職工編號(輸入0退出輸入)!\n”);if(phead->next==NULL)

scanf(w%ld'\&num);{

}printfC'Listisnull.\n");

p->next=NULL;return;

returnh;)

Ip=phead->next;

voidcount(node*phead)q=phead;

while(p!=NULL&&p->No!=num)

intm=0,f=0;(

structnode*p;q=p;

p=phead->next;p=p->next;

while(p!=NULL))

{____if(p==NULL)return;

if(p->sex=='M,||p->sex==,m')if(q!=NULL)

m++;(

elsef++;p=q->next;

p=p->next;

溫馨提示

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

評論

0/150

提交評論