2021年專升本c語言模擬題及答案與解析_第1頁
2021年專升本c語言模擬題及答案與解析_第2頁
2021年專升本c語言模擬題及答案與解析_第3頁
2021年專升本c語言模擬題及答案與解析_第4頁
2021年專升本c語言模擬題及答案與解析_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年湖北專升本c語言模擬題

一、單選(30分)

1、以下敘述中正確的是()

A、C語言函數(shù)可以嵌套調(diào)用,例如:fun(fun(x))

B、C語言程序是由過程和函數(shù)組成的

C、C語言函數(shù)不可以單獨編譯

D、C語言中除了main函數(shù)外,其他函數(shù)不可作為單獨文件形

式存在

2、以下不合法的字符常量有()

A、'\\'B、'\"'C、'\18'D、'\xcc'

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

A、x=y==5B、x=n%2.5C、x+n=iD、x=5=4+l

4、表達(dá)式a+=a-=a=9的值是()

A、18B、9C、0D、-9

5、若a是數(shù)值類型,則邏輯表達(dá)式(a==l)||(a!=l)的值是()

A、1B、0C、2D、不知道a的值,不能確定

6、有以下程序:

Mian(){

intx=l,y=2,z=3;

if(x>y)if(y<z)

printf("%d”,++z);

else

printf("%d",++y);

printf("%d/n”,x++);

}

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

A、1B、41C、2D、331

7、以下數(shù)組定義中錯誤的是()

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

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

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

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

8、如有定于語句intb=2,則表達(dá)式(b?2)/(3||b)的值是()

A、4B、8C、0D、2

9、若有定義語句inta[2][3],*p[3];則以下語句中正確的是()

A、p=aB、p[O]=aC^p[O]=&a[l][2]D、p[1]=&a

10、若有定義,inta=3,*p=&a,**q=&p,則下列敘述中錯誤的是()

A、q是指針變量,*q就是變量a

B、p是指針變量,p指向變量a

C、q指向變量p,所以*q指向變量a

D、*p與**q都代表變量a

二、填空(30分一題三個空每空一分,一題一個空每空三

分)

11、設(shè)C語言中,int類型數(shù)據(jù)占一個字節(jié),則long類型數(shù)據(jù)占—

個字節(jié),unsignedint類型數(shù)據(jù)占個字節(jié)。

12、合法標(biāo)識符是由,,組成。

13、每個C語言程序且main函數(shù)。

14、對應(yīng)scanf("a=%d,b=%d",&a,&b);語句的輸入a為3,b為7

的鍵盤輸入格式是—,

15、是具有一定功能的一個程序塊,是C語言的基本組成單位。

16、函數(shù)調(diào)用可以做為一個函數(shù)的

17、若#definePAI3.14,則PAI稱為

18、三種循環(huán)結(jié)構(gòu)分別是、、.

19、*p為一級指針,存放的地址。

20、**p為二級指針,存放的地址。

三、補(bǔ)全程序(一空3分)

21、下面程序的功能是在a數(shù)組中查找與x值相等的元素所在位置,

請?zhí)羁铡?/p>

#include<stdio.h>

voidmain()

{inta[10]zxj;

printf("pleaseinputtennumers:\nn);

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

scanf(”%d”,&a[i]);

)

printf("pleaseinputthenumberyouwanttofindx:");

scanf("%d",_(1)_);

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

lf(_(2)_)

Break;

if(_G)_)

printf("thepostionofxis:%d\n,i);

else

printf("notbeenfoundx!\n");

})

22、下面程序可求出矩陣a的主對角線上的元素之和(行號和列號相等的元素),請?zhí)羁帐?/p>

程序完整。

#include"stdio.h"

#include"math.h"

main()

{inta[3][3]={1,3,5,7,9,11,13,15,17},sum=o,i,j;

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

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

if(—⑷_)

sum=sum+_(5)_;

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

return0;

)

23、將輸入的十進(jìn)制正整數(shù)n通過函數(shù)Dec2Bin轉(zhuǎn)化成二進(jìn)制,并將轉(zhuǎn)換結(jié)果輸出。

#include<stdio.h>

voidDec2Bin(intm)

(

intbin[32]j;

for(j=0;m!=0;j++)

(

bin[j]=—(6)—;

m=m/2;

)

for(;j!=0;j-)

printf("%d",(7));

)

voidmain()

(

intn;

scanf("%d",&n);

Dec2Bin(n);

四、計算題(一題8分)

24、#include<stdio.h>

intfun(intx[],intn){

staticintsum=O,i;

for(i=0;i<n;i++)sum+=x[i];

returnsum;}

voidmain(){

inta[]={l,2,3,4,5},b[]={6,7,8,9},s=0;

s=fun(a,5)+fun(b,4);

printf("%d",s);}

程序運行結(jié)果o

25、#include<stdio.h>

voidfun(doublex,double*y,double*z){

0;*z=*z+x;}

main(){

doublea=2.5,b=9.0,*pa,*pb;

pa=&a;pb=&b;

fun(b-a,pa,pb);printf("%f\n",a);

}程序結(jié)果是;

26、#include<stdio.h>

Main(){

inta[3][3]={

{1,3,5},

{7,9,11},

{13,15,17)};

int(*p)[3]=a,i,j,n=O;

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

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

n+=*(*(p+i)+j);

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

)

程序運行的結(jié)果

五、編程題(一題15分)

27、輸入一個不多于五位數(shù)的正整數(shù),判斷它是幾位,并逆序輸出

各位數(shù)字。

28、編寫一個程序,將將兩個字符串連接起來,不能使用strcat函

數(shù)。

29、一個數(shù)如果恰好等于它的因子之和,這個數(shù)被稱為“完數(shù)"。求

1000以內(nèi)的所有完數(shù)。

2021年專升本C語言答案與解析

一、單選

1、AC語言程序是由函數(shù)組成,所以B錯。C語言函數(shù)可以單獨進(jìn)

行編程,所以C錯。每個C程序中必須包含一個main函數(shù),但不一

定是每個C程序文件都必須有,用于單獨編寫的某個函數(shù)也可以存儲

為一個C程序文件,所以D錯。

2、C轉(zhuǎn)義字符中,八進(jìn)制的表示形式為\ddd,但是八進(jìn)制中不能包

含數(shù)字8,所以C不合法。

\,單引號039

\"雙引號034

\\反斜杠092

\x開頭的表示后面兩位連在一起組成一個16進(jìn)制的數(shù)字,這個數(shù)字

代表該字符的編碼值,里就代表著一個編碼為204的字符

3、AB項中運算符"%"的前后必須為整數(shù),C項中不能將變量賦

值給表達(dá)式x+n,D項不能將表達(dá)式4+1賦值給常量5

4、CC語言中賦值語句從右向左解析

a=9

a-=(9)a=a-9=0a+=0

a=a+0=0

5、AC語言的邏輯運算符比較特別,它的操作數(shù)沒有明確的數(shù)據(jù)類

型。前面為1是邏輯或者則邏輯值為1

6、Aelse總是與離他最近的if配對,所以第一個if語句的判斷條

件不成立,不再執(zhí)行第二個if語句和與第二個if語句配對的else

語句,而是直接執(zhí)行打印x++的操作,打印x的值1以后再加1

7、B這里b應(yīng)該是兩個數(shù)組每個數(shù)組里面三個元素,而不是三個數(shù)

組各兩個元素

8、B這里b<<2是b的二進(jìn)制值向移動兩位,10->1000,在轉(zhuǎn)為二進(jìn)

制就是8。3:lb的值是lo8/1為8o

9、Cp是一個指針數(shù)組,它有四個元素,每個都是一個指向int型

的指針。

a是一個二維數(shù)組,它的每個元素都是int型的。

A的錯誤是因為p是常量(數(shù)組名都是指針常量),不可以被賦值。

而且p和a的類型也不一致。

B錯誤,因為p[0]是一個int指針,也就是int*;而a是一個指向指

針的指針int**。

C選項中是a的一個元素,是一個int型值,&取了它的

地址,所以是正確的。

D錯誤,因為a作為數(shù)組名,不能取地址,即使能取,p[l]是

int*,

&a是int***,類型不對。

10、A指針變量p指向變量a,p的值是a的地址;指針變量q指向

變量P,q的值是P的地址,所以q是指針變量,q指向P,*q是變

量P,所以A錯

二、填空

11、2、4、2

12、字母、數(shù)字、下劃線

13、1個

14、a=3,b=7

15、函數(shù)(或函數(shù)體)

16、實參

17、符號常量

18、for循環(huán)、do-while循環(huán)、while循環(huán)

19、變量

20、一級指針

三、補(bǔ)全程序

21、&x、a[i]==x、i<10

22、i==j,a[i][j]

23、m%2、bin[j]

四、計算

24、60這里static是靜態(tài)變量,所以保留了之前sum的值,sum

從第二次開始值是15。最后就是15+45=60。

25、1.500000指針pa指向a,指針pb指向b。將b-a、pa,pb傳

給函數(shù)fun,此時x為6.5,y指向a,z指向b;*y=*yT.0,是將變

量a的值減去1.0賦給a,a為1.5,b為15.5,函數(shù)執(zhí)行完后a的

值為1.5

26、48*(*(p+i)+j)表示一維數(shù)組p+i的第j個元素的內(nèi)容程序是

求數(shù)組各行前兩列的數(shù)字之和

五、編程題

27、ttinclude<stdio.h>

Intmain(){

longx;

inty,i=l;

printf(“輸入一個不超過100000的整數(shù)”);

scanf("%ld”,&x);

if(x>99999||x<l){

printf(“超出計算范圍”);

}else{

While(x!=0){

y=x%10;

prin

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論