全國計算機等級考試二級C語言真題題庫2 2024年9月_第1頁
全國計算機等級考試二級C語言真題題庫2 2024年9月_第2頁
全國計算機等級考試二級C語言真題題庫2 2024年9月_第3頁
全國計算機等級考試二級C語言真題題庫2 2024年9月_第4頁
全國計算機等級考試二級C語言真題題庫2 2024年9月_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

全國計算機等級考試二級c語言真題題庫22024年9月

(總分43,做題時間120分鐘)

一、選擇題(每小題1分,共40分)

1.下列敘述中正確的是()。

A節(jié)點中具有兩個指針域的鏈表肯定是二叉鏈表

B節(jié)點中具有兩個指針域的鏈表可以是線性結(jié)構(gòu),也可以是非線性結(jié)構(gòu)

C二又樹只能采納鏈式存儲結(jié)構(gòu)

D循環(huán)鏈表是非線性結(jié)構(gòu)

答案舊

[解析]具有兩個指針域的鏈表可能是雙向鏈表,A選項錯誤。雙向鏈表是線性結(jié)構(gòu),

二叉樹為非線性結(jié)構(gòu),兩者節(jié)點中均有兩個指針域,B選項正確。二叉樹通常采納鏈式存

儲結(jié)構(gòu),也可采納其他結(jié)構(gòu),C選項錯誤。循環(huán)鏈表是線性結(jié)構(gòu),故D選項錯誤。

2.某二叉樹的前序序列為ABCD,中序序列為DCBA,則后序序列為()。

ABADC

BDCBA

CCDAB

DABCD

答案舊

[解析]二叉樹遍歷可以分為3種:前序遍歷(訪問根節(jié)點,左節(jié)點,右節(jié)點)、中序遍

歷(訪問左節(jié)點,根節(jié)點,右節(jié)點)、后序遍歷(訪問左節(jié)點,右節(jié)點,根節(jié)點)。本題中前序

序列為ABCD,中序序列為DCBA,可知D為根節(jié)點,ABC為左側(cè)節(jié)點,C為D左子節(jié)

點,A為B子節(jié)點,故后序廳列為DCBA,故B選項正確。

3.下面不能作為軟件設計工具的是()。

APAD圖

B程序流程圖

C數(shù)據(jù)流程圖(DFD圖)

D總體結(jié)構(gòu)圖

答案:C

[解析]軟件設計常用的工具有:圖形工具,如程序流徑圖、N—S圖、PAD圖、

HIPO;表格工具,如判定表;語言工具,如PDL(偽碼)。另外,在結(jié)構(gòu)化設計方法中,常

用的結(jié)構(gòu)設計工具是結(jié)構(gòu)圖,故選擇C選項。

4.邏輯模型是面對數(shù)據(jù)庫系統(tǒng)的模型,下面屬于邏輯模型的是()。

A關系模型

B謂詞模型

C物理模型

D實體-聯(lián)系模型

答案:A

[解析]邏輯數(shù)據(jù)模型也稱數(shù)據(jù)模型,是面對數(shù)據(jù)庫系統(tǒng)的模型,著重于在數(shù)據(jù)庫系統(tǒng)

一級的實現(xiàn)。成熟并大量運用的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型、關系模型和面對對象模

型等。故A選項正確。

5.運動會中一個運動項目可以有多名運動員參與,一個運動員可以參與多個

項目。則實體項目和運動員之間的聯(lián)系是()。

A多對多

B一對多

C多對一

D一對一

答案:A

[解析]一般來說,實體集之間必需通過聯(lián)系來建立連接關系,分為三類:一對一聯(lián)系

(1:1)、一對多聯(lián)系(1:m)、多對多聯(lián)系(m:n)o一個運動項目有許多運動員參與,而一

個運動員可以參與多項運動項目,故實體項目和運動員之間的聯(lián)系是多對多,故A選項正

確。

6.下面描述不屬于軟件特點的是()。

A軟件是一種邏輯實體,具有抽象性

B軟件在運用中不存在磨損、老化問題

C軟件困難性高

D軟件運用不涉及學問產(chǎn)權(quán)

答案:D

[解析]軟件具有以下特點:軟件是一種邏輯實體,具有抽象性;軟件沒有明顯的制作

過程;軟件在運用期間不存在磨損、老化問題;對硬件和環(huán)境具有依靠性;軟件困難性

高,成本昂貴;軟件開發(fā)涉及諸多的社會因素,如學問產(chǎn)權(quán)等。故選項D正確。

7.某二叉樹中有15個度為1的節(jié)點,16個度為2的節(jié)點,則該二叉樹中總的

節(jié)點數(shù)為()。

A32

B46

C48

D49

答案:C

[解析]在樹結(jié)構(gòu)中,一個節(jié)點所擁有的后件個數(shù)稱為該節(jié)點的度,全部節(jié)點中最大的

度稱為樹的度。對任何一棵二又樹,度為0的節(jié)點(即葉子節(jié)點)總是比度為2的節(jié)點多一

個。由16個度為2的節(jié)點可知葉子節(jié)點個數(shù)為17,則節(jié)點總數(shù)為16+17+15=48,故C

選項正確。

8.下面對軟件特點描述錯誤的是()。

A軟件沒有明顯的制作過程

B軟件是一種邏輯實體,不是物理實體,具有抽象性

C軟件的開發(fā)、運行對計算機系統(tǒng)具有依靠性

D軟件在運用中存在磨損、老化問題

答案:D

[解析]軟件具有以下特點;軟件是一種邏輯實體,具有抽象性;軟件沒有明顯的制作

過程;軟件在運用期間不存在磨損、老化問題;對硬件和環(huán)境具有依靠性;軟件困難性

高,成本昂貴;軟件開發(fā)涉及諸多的社會因素。故D選項正確。

9.某系統(tǒng)結(jié)構(gòu)圖如下圖所示:

該系統(tǒng)結(jié)

構(gòu)圖中最大扇入是()。

A0

B1

C2

D3

答案:c

[解析]扇入指的是調(diào)用一個給定模塊的模塊個數(shù)。題干系統(tǒng)中,第2層模塊扇人均為

1,第3層中功能模塊3。1扇入為2,其余為1,放最大扇人為2,故C選項正確。

10.設有表示公司和員工及雇傭的3張表,員工可在多家公司兼職,其中公司

表C(公司號,公司名,地址,注冊資本,法人代表,員工數(shù)),員工表S(員工

號,姓名,性別,年齡,學歷),雇傭表E(公司號,員工號,工資,工作起始

時間)。其中表C的鍵為公司號,表S的鍵為員工號,則表E的鍵(碼)為

()o

A公司號,員工號

B員工號,工資

C員工號

D公司號,員工號,工資

答案:A

[解析]二維表中的行稱為元組,候選鍵(碼)是二維表中能唯一標識元組的最小屬性集。

若一個二維表有多個候選碼,則選定其中一個作為主鍵(碼)供用戶運用。公司號唯一標識

公司,員工號唯一標識員工,而雇傭須要公司號與員工號同時唯一標識,故表E的鍵(碼)

為(公司號,員工號),故A選項正確。

11.算法應當具有的特性不包括()。

A可行性

B有窮性

C確定性

D美觀性

答案:D

[解析]一個算法應當具有以下5個重要的特征:有窮性、確定性、輸入、輸出以及可

行性,故答案選D選項。

12.若想給已定義為int型的變量a、b、c、d賦整數(shù)1,以下選項中錯誤的語

句是()。

Ad=c,c=b,b=a,a=1;

Bd=c=b=a=1;

Cd=(b=c=(a=1)i;

Dd=1,c=d,b=c,a=b;

答案:A

[解析]賦值是將一個常量的值賦結(jié)一個變量,在A選項中,變量c初姑值未定義,相

當于一個未知數(shù)給變量d賦值,不滿意賦值為1的條件,答案選A選項。

13.以下選項中,合法的C語言常量是()。

A21.84

B'CPP

C"\1.0

D2MB

答案:A

[解析]21.84是典型的浮點型數(shù)據(jù),故A選項正確;字符常量是單引號括起來的一個

字符,字符串常量是雙引號括起來的字符序列,B、C選項錯誤;C語言常量不能干脆用

末加引號的字母、數(shù)字組合,故D選項錯誤。

14.下面敘述正確的是()。

AC語言程序的語句經(jīng)過編譯和鏈接轉(zhuǎn)換成二進制機器指令后才能執(zhí)行

B任何算法須要包含3種基本結(jié)構(gòu)中的兩種以上

C困難算法是不能用3種基本結(jié)構(gòu)來表達的

D只要是簡潔算法,它的操作步驟都不會超過20步

答案:A

[解析]算法共有3種邏輯結(jié)構(gòu),即依次結(jié)構(gòu)、條件結(jié)構(gòu)和循環(huán)結(jié)構(gòu),一個算法可以含

有這3種邏輯結(jié)構(gòu)的隨意組合,B選項錯誤;困難算法可以用3種基本結(jié)構(gòu)表達,C選項

錯誤;簡潔算法操作步驟不超過5步,D選項錯誤。答案為A選項。

15.若已有定義語句:inta,b,c;,且變量已正確賦初值,則以下選項中

正確的賦值表達式是()。

Aa=(b=c)+8;

B(a=b)=c=9;

Ca=(b==c)='A';

Da+b=c+1;

答案:A

[解析]賦值運算符左邊必需是一個變量,B、D選項錯誤3c選項中,(b==c)是個表

達式,語法錯誤,故解除C選項,故答案為A選項。

16.以下表達式的值與x無關、其值恒為真的是()。

A0<x<5

Bx>10&&x<5

Cx>10||x<5

Dx<10&&x>5

答案:A

[解析]邏輯與只有在“&&”符號兩邊操作均為其時,邏輯表達式為真;邏輯或當且只當

“||"符號兩邊操作至少有一個為真時,邏輯表達式為真??梢娺x項B、C、D中,使得表達

式恒為真,都跟x的取值有關,故解除B、C、D選項;答案為A選項,0VXV5,依據(jù)優(yōu)

先級,OVx為0或1,均小于5,故恒真。

17.以下非法的字符常量是()。

A'\\n,

BAior

C,\x21,

D''0'

答案:A

[解析]C語言允許運用一些以特別形式出現(xiàn)的字符臂最,運用\rY來表示換行,

事實上是一個字符,它的ASCII碼值為10,不存在'\\n'用法,故答案為A選項。

18.若有定義:inta=0,b=0,c=0,d=0;,以下關于C語言表達式:

(++a||++b)?++c:++d執(zhí)行依次的敘述正確的是()。

A先執(zhí)行++a,表達式++a的值為1;再執(zhí)行++b,表達式++b的值為1,由此可確定

(++a||++b)值為1,因此執(zhí)行++c

B先執(zhí)行++a,表達式++a的值為1,由此可確定(++a||++b)值為1,因此執(zhí)行++c

C先執(zhí)行++b,表達式++b的值為1;再執(zhí)行++a,表達式++a的值為1,由此可確定

(++a||++b)值為1,因止匕執(zhí)彳丁++c

D先執(zhí)行++a,++b,++c,++d,使得a,b,c,d的值都為1,由此可確定(++a||

++b)值為1,因此執(zhí)行++c

答案:B

[解析]表達式1?表達式2:表達式3,若表達式1為真,則執(zhí)行表達式2,否則執(zhí)行

表達式3,++a表示先將變量a+1,再執(zhí)行其他操作,邏輯或運算符遵循“短路求值”策略,

即只有在僅靠左操作數(shù)的值無法確定該邏輯表達式的結(jié)果時,才會求解右操作數(shù),表達式

(++a||++b)中,左操作數(shù)++a的值為1,已經(jīng)可以確定整個邏輯表達式的結(jié)果為1,因此

右操作數(shù)++b不再求解,干脆執(zhí)行表達式2,即++c,答案為B選項。

#include<stdio.h>

main()

inti,data;

scanf(H,&data);

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

I

if(i>data)break;

printf(,r%d/\i);

I

19.有如下程序:?程序運行時,從

鍵盤輸入:3<回車)后,程序輸出結(jié)果為()。

A3,4,5,

B1,2,3,

C2,3,4,

D0,1,2,3,

答案:D

[解析]從鍵盤上輸入“3”,此時data=30進入for語句,執(zhí)行if語句,推斷i>data是

否成立,假如條件成立,運行break語句結(jié)束整個循環(huán)過程。當i等于0、1、2、3時,if

條件不滿意,執(zhí)行循環(huán)體中的printf("%d",i)語句,因此答案為D選項。

20.有以下程序:

#include<stdio.h>

main()

I

inti=4;

Hw

for(printf(%ti);i<2;i++)printf(%,i);

printf(w\nM)j

I

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

A12

B4

C1

DO

答案:B

[解析]for(printf("%d",i):i<2:i++)先輸出i,由于i=4,不滿意條件,干脆輸出換

行符,因此答案為B選項。

#include<stdio.h>

main()

I

if(r\0x==0)putcharCr);

if(O==0)putchar(2);

if(3>'b')putchar(3z);

21.有以下程序:(程序運行

后的輸出結(jié)果是()。

A1

B123

C23

D3

答案:A

[解析]'\O'是轉(zhuǎn)義字符,表示空字符,故'\0'==。成立,輸出1;'O'是字符常量和0

不等,‘a(chǎn)'和b都是字符常量,因為宣,不執(zhí)行if后面的語句,所以最終輸出只有1,

故答案為A選項。

intk;

22.有如下程序段:for(k=2;k==O;)printf("%d",k--);

則for循環(huán)體執(zhí)行的次數(shù)是()。

A0次

B1次

C2次

D無限次

答案:A

[解析]for(k=2:k==0;)表示給k賦值2,假如k等于0,則進入循環(huán),但是k不滿

意條件,因此循環(huán)體不執(zhí)行。正確答案為A選項。

#include<stdio.h>

intk=5;

voidf(int*s)

js二&k;

*s=7;

I

main()

!intm=3;

f(&m);

printf(H%d,%d\nK,m,k);

23.有以下程序:>程序運行后的

輸出結(jié)果是()。

A3,5

B7,7

C5,7

D3,7

答案:D

[解析]函數(shù)f()的功能是定義一個整型的指針變量S,指向全局變量k,然后修改s指向

地址中的值為7,因此f()函數(shù)只是修改全局變量k的值為7,與main。函數(shù)中臨時變量m

無關,因此最終輸出為3,7,答案為D選項。

#include<stdio.h>

voidfun(inta]J,intn)

inti;

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

if(i%3==0)

a[i]-二n;

else

aui]+=n;

main()

Iintc[5]=[6,7,8,9,10},i;

fun(c,5);

24.有以下程序:

for(i=0;i<5;i++)printf(H%d/\c[i]);

printf(H\nM);

程序運

行后的輸出結(jié)果是()。

A1,12,13,4,15,

B10,9,8,7,6,

C1,7,13,9,15,

D10,12,8,4,6,

答案:A

[解析]fun()函數(shù)功能是:對數(shù)組中,下標對3求余為。的元素減去5,下標對3求余

不為0的元素累加5,所以執(zhí)行完fun()函數(shù)后,數(shù)組c中元素值為1,12,13,4,15,

答案為A選項。

/include<stdio.h>

intsub(doublea,doubleb)

return(int)(a-h-1.3);

I

main()

I

printf(M%d\nr,,sub(3.2,4.1));

25.有以下程序:?程

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

A-2

B1.7

C-3

D2.0

答案:A

[解析]sub()函數(shù)輸出(int)(a-b-1.3)將結(jié)果強制轉(zhuǎn)化為整型,因此可以解除B、D選

項,(a-b-1.3)=-2.2,(int)(-2.2)=-2,sub(3.2,4.1)=-2,故答案為A選項。

26.有以下程序:

#include<stdio.h>

main()

I

inti9*ptr;

intarray[4]=|1,1,3,4(?

for(ptr=array,i=0;i<3;i++)printf(M%d,M,?ptr++)?

printf(M\nM);

I

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

A1,2,4,

B1,3,4,

C1,1,3,

D1,3,4,

答案:C

[解析]for語句中把array數(shù)組首地址值賦給ptr,然后在循環(huán)體中進行輸出,再把ptr

對應的地址值加1,重復3次,輸出數(shù)組前3個數(shù)1,1,3,因此答案為C選項。

#include<stdio.h>

main()

{intx[]=18,2,6,12,5,15},fl,f2;

int*p=x;

fl=f2=x[0];

for(;p<=x4-5;p++)

|if(fl<*p)fl=?p;

if(f2>*p)f2=*p;

printf("%d,%d\n”,fl,£2);

27.有以下程序:,

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

A15,2

B15,15

C2,15

D8,8

答案:A

[解析]本題的用意是求數(shù)組的最大值和最小值,首先把數(shù)組x首地址的值賦給指針

P,故*p初始值為8、而p是地址值,p+1相當于數(shù)組中下一元素的地址,在for循環(huán).是

求數(shù)組x對應的最大值和最小值,f1為最大值,f2為最小值。因此輸出為15,2,答案為

A選項。

28.有以下程序:

#include<stdio.h>

main()

Iintx[3][4]=[1,3,5,7,9,11,2,4,6,8,10,121;

int(*p)^41=x,k=1,m,n=0;

fbr(m=0;m<2;m++)n+=*(*(p+m)+k);

printf<0%d\n\n);

I

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

A10

B20

C14

D16

答案:C

[解析]*(*(p+m)+k)系統(tǒng)默認為指針指向數(shù)組中第個元素,因此,在for循環(huán)中,

n+="(*(p+m)+k);執(zhí)行的是將數(shù)組x⑼⑴和x⑴⑴累加后賦值給n,最終進行輸出,答案

為c選項。

29.有以下程序:

#include<stdio.h>

main()

jcharb[4J.10],c;..

inti,j;

for(i=0?i<4;i++)

Ij=o;

while((c=getchar())1="'&&c!='\n')b[i][j++]=c;

b⑴[j]='\0r;

I

11H

printf(%s%s%s%s\n,b[0],b[1],b[2]9b[3])?

1

程序運行時從第一列起先輸入:Peachflowerispink.V回車〉則輸出結(jié)果

是()。

APeachflowerispink.

BPeachflowerispink.

CPeachflowerispink.

DPeachflowerisFink.

答案:A

[解析]for循環(huán)語句中,通過執(zhí)行While語句,Wh心的推斷條件輸入的字符不為空格

和回車,把輸入的字符串以“為分隔符,分別保存在二維數(shù)組b的4行中,再通過%s格式

限制符,將二維數(shù)組b的4行字符串無空格連接輸出,答案為A選項。

#include<stdio.h>

voidconvert(charch)

I

if(ch<,X')convert(ch4-1);

printf(〃%c,1,ch);

I

main()

1

convert(zWr);

printf("\n");

30.有如下程序:,程序運

行后的輸出結(jié)果是()。

AYZ

BVW

CXY

DXW

答案:D

[解析]在main函數(shù)中,執(zhí)行convert('W')函數(shù),因為W比X小,滿意if語句,再執(zhí)

行convert(ch+1);此時ch=X,不滿意條件,輸出X,完成后,返回上一次convert中,

輸出上次ch=,W,因此答案為D選項。

31.有以下程序:

#include<stdio.h>

#include<string,h>

main()

|chara[20]=MabM,b[20]=ncdefN;

intk=0;

strcat(a,b);

while(a[k]!='\0')Ib[k]=a[k];k++;|

puts(b);

'程序的運行

結(jié)果是()。

Aabcdef

Bcbcdef

Ccdef

Dab

答案:A

[解析]strcat(字符串1,字符串2)函數(shù)是把字符串2連接到字符串1的后面,最終結(jié)

果存放到字符串1中,因此本題把字符串a(chǎn),b連接起來放在數(shù)組a中,while語句完勝利

能是再將字符串a(chǎn)賦給字符串b,因此答案為A選項。

32.以下使指針指向一個字符串的選項錯誤的是()。

charstr[]="string",*ps;

A*ps二str;

charstrI]="string”;

Bchar*ps=str;

charstr[]=11string11,?ps;

cps=str;

char*ps;

H

Dps=string”;

答案:A

[解析]A選項中定義了指針ps后,*ps表示指針ps指向地址的內(nèi)容,而不是地址,

*ps=str無法將str的首地址賦給一個常量,語法錯誤,答案為A選項。語句charstQ

*ps=strcharstr[].*ps;ps=str0

33.有以下程序:

#include<stdio.h>

typedefstructstu|

charname110j;

chargender;

intscore;

ISTU;

voidf(STUa,STU*b)

*b=a;

printf("%s,%c,%d,”,b->name,b->gender,b->score);

I

main()

{STUa=「,Zhao",'m',290},b={“Qian”,f,350};

f(a,&b);

printf("%s,%c,%d\n”,b.name,b.gender,b.score);

I

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

AZhao,m,290,Qian,f,350

BQian,m,290,Zhao,m,290

CQian,f,350,Qian,f,350

DZhao,m,290,Zhao,m,290

答案:D

[解析]本題定義了一個結(jié)構(gòu)變量structstu,并且命名為STU,STU結(jié)構(gòu)中包含3個

數(shù)據(jù)。main函數(shù)中,首先為結(jié)構(gòu)變量a,b初始化,再調(diào)用函數(shù)f(),在f()函數(shù)中,運用結(jié)

構(gòu)體變量a對指針b指向的結(jié)構(gòu)體進行賦值,使得指針b指向的結(jié)構(gòu)體成員依次賦值為結(jié)

構(gòu)體a的成員,然后依次愉出指針b指向的結(jié)構(gòu)體成員的值;由于f函數(shù)形參b為指針,

所以指針b指向的值被修改為a的同時,main函數(shù)中的實參b的值也被修改成a,答案為

D選項(注:形參指針b與實參結(jié)構(gòu)體變量b不要混淆)。

34.若有定義:typedefint*T;Ta[20];則以下與上述定義中a類型完全

相同的是()。

Aint*a[20];

Bint(*a)[20];

Cinta[20];

Dint**a[20];

答案:A

[解析]“typedef類型名新類型名”表示為一個已定義的類型標識符重新定義一個新類型

名,題中選項A代表的意思是數(shù)組指針,即指向數(shù)組的指針,B選項是指針數(shù)組,即數(shù)組

存放的元素是整型指針,首先為整型指針類型命名為T,再通過T定義了一個整型指針數(shù)

m*a[20],等價于int*a[20],答案為A選項。

35.有如下程序:

#include<stdio>h>

structperson

I

charname10];

intage;

I;

main()

I

structpersonroom[2]={|MWang",19},\HLi”,20}};

printf("%s:%d\n”,(room+1)->nametroom->age);

I

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

ALi:19

BWang:19

CLi:20

DWang:17

答案:A

[解析]聲明結(jié)構(gòu)類型person后,在main函數(shù)中定義了一個結(jié)構(gòu)數(shù)組room,其中有2

個元素,每個元素都是person類型數(shù)據(jù)。在輸出中,因為room表示數(shù)組首地址,首地址

+1.指向room數(shù)組中其次個元素,并將該元素的name信息進行輸出,同理,對第一個

元素中的age信息輸出,因此,答案為A選項。

36.以下關于編譯頂處理的敘述中錯誤的是()。

A預處理吩咐行必需位于源程序的起先

B源程序中凡是以并起先的限制行都是預處理吩咐行

C--行上只能有?條有效的預處理吩咐

D預處理吩咐是在程序正式編譯之前被處理的

答案:A

[解析]通常,預處理吩咐位于源文件的開頭,也可以寫在函數(shù)與函數(shù)之間,答案為A

選項。

37.以下關于宏的敘述錯誤的是()。

A宏替換不具有計算功能

B宏是一種預處理指令

C宏名必需用大寫字母構(gòu)成

D宏替換不占用運行時間

答案:C

[解析]宏名習慣米納大寫字母,以便與一般變量區(qū)分,但是并沒有規(guī)定肯定要用大寫

字母,因此,答案為C選項。

38.有以下程序:

/include<stdio.h>

structS

I

intx,y;

I;

inain()

1

structSdata3]=[4,3,2,0,8,11;

inti;

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

printf("%d%d;",dataui].x,dataLi].y?1);

printf(M\nn);

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

A41:20;80:

B41;22;64;

C40;21;80;

D43;20;81;

答案:A

[解析]聲明結(jié)構(gòu)類型S中有兩個整型變量x,y,在main函數(shù)中,為S結(jié)構(gòu)類型定義

一個數(shù)組變量data初始化3個結(jié)構(gòu)體元素,分別兩兩賦值給結(jié)構(gòu)體中的x,y。在for循環(huán)

中,對3個結(jié)構(gòu)體元素y值轉(zhuǎn)換成2進制數(shù)后向有移一位,再對此時x,y值依次進行輸

出,答案為A選項。

39.以下敘述正確的是()。

A文件指針是指針類型的變量

B在運用文件指針時,不須要在內(nèi)存中為其安排空間

C文件指針變量的值是文件的當前讀取位置

D調(diào)用fscanf函數(shù)能向全部類型的文件中寫入隨意字符

答案:A

[解析]文件指針指向的是文件緩沖區(qū),而不是文件本身位置,因此B,C選項錯誤;

fscanf()函數(shù)作用是從指定的文件中格式化讀數(shù)據(jù),讀取數(shù)據(jù)類型由格式限制符確定,D選

項錯誤,答案為A選項。

40.有以下程序:

#include<stdio.h>

typedefstructstuI

charname[10];

chargender;

intscore;

ISTU;

voidf(STUa,STU*b)

\a=*b;

printf("%s,%c,%d,”,a.name,a.genderta.score);

main()

|STUa=〃Zhao”290|,b=|"Qian",'f',3501;

f(a,&b);

printf("%s,%c,%d\n”,a.name,a.gender,a.score);

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

AQian,f,350,Qian,f,350

BZhao,m,209,Qian,f,350

CQian,f,350,Zhao,m,290

DZhao,m,290,Zhao,m,290

答案:C

[解析]main函數(shù)中,首先定義兩個結(jié)構(gòu)體STU類型的變量a,b,并對a,b初始

化,f函數(shù)的功能是:用形參結(jié)構(gòu)體指針b指向的結(jié)構(gòu)體對形參a賦值,此時形參結(jié)構(gòu)體a

的值為指針b指向的值,輸出a即輸出指針b指向的結(jié)構(gòu)體,返回到main函數(shù)后,在輸

出實參a的值,答案為C選項,注:形參a,b不要和實參a,b混淆。

二、程序填空題

41.給定程序中,函數(shù)fun的功能是:計算形參x所指數(shù)組中N個數(shù)的平均值

(規(guī)定全部數(shù)均為正數(shù)),將所指數(shù)組中大干平均值的數(shù)據(jù)移至數(shù)組的前部,小

于等于平均值的數(shù)據(jù)移至x所指數(shù)組的后部,平均值作為函數(shù)值返回,在主函

數(shù)中輸出平均值和移動后的數(shù)據(jù)。例如,有10個正數(shù):46、30、32、40、6、

17>45、15、48、26,平均值為30.500000o移動后的輸出為:46、32、40、

45、48、30、6、17、15、26。請在程序的下畫線處填入正確的內(nèi)容并把下畫

線刪除,使程序得出正確的結(jié)果。留意:部分源程序在文件BLANKLC中。不

得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

#include<stdlib.h>

#include<stdio.h>

#defineN10

doublefun(double*x)

{inti,j;doubles,av,yLNJ;

s=0;

for(i=0;i<N;i++)s=s+x:i];

/?****?***?found**********/

av=[11;

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

if(x[i]>av)|

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

y[L211=x[i];

x[i]=T;1

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

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

if(x[i]!=[3J)y[j++]=x[i];

for(i=0;i<N;i++)x[i]=y[i];

returnav;

main()

|inti;doublex[N];

for(i=0;i<N;i++)|x"i]=rand()%50;printf(u%4.Ofn,x[i]);■1

printf(u\nH);

printf(n\nTheaverageis:%f\nH,fun(x));

printf(**\nTheresult:\nH,fun(x));

for(i=0;i<N;i++)printf(,r%5.0r',x[i]);

printf(N\n,f);

答案:

(1)s/N

⑵j++

(3)-1

[解題思路]

填空1:由原程序可知,av代表的是平均值,而平均值的

溫馨提示

  • 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

提交評論