2022年安徽省銅陵市全國計算機等級考試C語言程序設計真題二卷(含答案)_第1頁
2022年安徽省銅陵市全國計算機等級考試C語言程序設計真題二卷(含答案)_第2頁
2022年安徽省銅陵市全國計算機等級考試C語言程序設計真題二卷(含答案)_第3頁
2022年安徽省銅陵市全國計算機等級考試C語言程序設計真題二卷(含答案)_第4頁
2022年安徽省銅陵市全國計算機等級考試C語言程序設計真題二卷(含答案)_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022年安徽省銅陵市全國計算機等級考試C語言程序設計真題二卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.

有以下程序

#include<stdio.h>

main

{inta=1,b=2,c=3,x;

x=(a^b)&C;printf("%d",x);

}

程序的運行結果是()。

A.0B.1C.2D.3

2.以下程序運行后,輸出結果是______。fut(int**s,intp[2][3]){**s=p[1][1];}main(){inta[2][3]={1,3,5,7,9,11},*p;p=(int*)malloc(sizeof(int));fut(&p,a);printf("%d\n",*p);}

A.1B.7C.9D.11

3.下列程序的執(zhí)行結果是______。#include<stdio.h>unionun{inti;charc[2};};voidmain(){unionunx;x.c[0]=10;x.c[1]=1;printf("\n%d",x.i);}

A.266B.11C.265D.138

4.以下程序的輸出結果是______。charcchar(charch){if(ch>='A'&&ch<='z')ch=ch-'A'+'a';returnch;}main(){chars[]="ABC+abc=defDEF",*p=s;while(*p){*p=cchar(*p);p++;}printf("%s\n",s);}

A.abe+ABC=DEFdef

B.abc+abe=defdef

C.abcaABCDEFdef

D.abcabcdefdef

5.有以下程序:

程序執(zhí)行后的輸出結果是()。

A.357B.753C.369D.751

6.若有定義“intx=12,y=8,z;”,在其后執(zhí)行語句“z=0.9+x/y;”,則z的值為()。

A.1B.1.9C.2D.2.4

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

A.數(shù)據(jù)的邏輯結構與存儲結構必定是一一對應的

B.由于計算機存儲空間是向量式的存儲結構,因此,數(shù)據(jù)的存儲結構一定是線性結構

C.程序設計語言中的數(shù)組一般是順序存儲結構,因此,利用數(shù)組只能處理線性結構

D.以上三種說法都不對

8.若有說明“chars1[30]="abc",s2[]="defghi";",則在使用函數(shù)stoat(s1,s2)后,結果是()。

A.s1的內(nèi)容更新為abcdefghi

B.s1的內(nèi)容更新為defghi\0

C.s1的內(nèi)容更新勾defghiabc\0

D.s1的內(nèi)容更新為abcdefghi\0

9.數(shù)據(jù)庫設計中,用E—R圖來描述信息結構但不涉及信息在計算機中的表示,它屬于數(shù)據(jù)庫設計的()。

A.需求分析階段B.邏輯設計階段C.概念設計階段D.物理設計階段

10.數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一特定的圖符構成。下列圖符名標識的圖符不屬于數(shù)據(jù)流圖合法圖符的是______。

A.控制流B.加工C.數(shù)據(jù)存儲D.源和潭

11.若已定義:“inta[9],*p=a;”,并在以后的語句中未改變p的值,不能表示a[1]地址的表達式是______。

A.p+1B.a+1C.a++D.++p

12.有3個節(jié)點的二叉樹可能有()種。

A.12B.13C.5D.15

13.某二叉樹的前序和后序序列正好相反,則該二叉樹一定是_____的二叉樹

A.空或者只有一個結點B.高度等于其結點數(shù)C.任一結點無左孩子D.任一結點無右孩子

14.有如下說明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達式是()

A.*p+9B.*(p+8)C.*p+=9D.p+8

15.程序運行后的輸出結果是()。A.10B.11C.20D.21

16.有以下程序#include<stdio.h>voidfun(char**p){++p;printf("%s",*p);}main{char*a[]={"Morning","Afternoon","Evening","Night");fun(a);}程序的運行結果是()。A.AfternoonB.fternoonC.MorningD.orning

17.設二叉樹的中序序列為BCDA,前序序列為ABCD,則后序序列為()。

A.CBDAB.DCBAC.BCDAD.ACDB

18.有以下程序:voidswap(char*x,char*y){chart;t=*x;*x=*y;*y=t;}main{char*s1="abe",*s2="123":swap(s1,s2);printf("%s,%s\n",s1,s2);}程序執(zhí)行后的輸出結果是()。A.123,abeB.abc.123C.1bc,a23D.321,cba

19.快速排序在已經(jīng)有序的情況下效率最差,復雜度為()

A.O(nlogn)B.O(n^2logn)C.O(n^1.5)D.O(n^2)

20.設有如下定義:int(*ptr);則以下敘述中正確的是()。

A.ptr是指向一維組數(shù)的指針變量

B.ptr是指向int型數(shù)據(jù)的指針變量

C.ptr是指向函數(shù)的指針,該函數(shù)返回一個int型數(shù)據(jù)

D.ptr是一個函數(shù)名,該函數(shù)的返回值是指int型數(shù)據(jù)的指針

二、2.填空題(20題)21.若有以下定義,則使指針p指向值為35的數(shù)組元素的語句是______。

inta[10]={14,27,47,29,35,21,49,71},*p;

22.數(shù)據(jù)庫系統(tǒng)中實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件是______。

23.數(shù)據(jù)庫理論中,數(shù)據(jù)的獨立性一般可分為物理獨立性和______。

24.已有定義:charc=′′;inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&&a;后b的值為【】。

25.下面函數(shù)要求計算兩個整數(shù)x,y之和,并通過形參返回該值,請?zhí)羁铡?/p>

add(intx,inty,【】z)

{【】=x+y;}

26.以下程序運行后的輸出結果是【】。

#include<stdio.h>

main()

{inta,b,c;

a=25;b=025;e=0x25;

prinff("%d%d%d\n",a,h,c);

}

27.以下程序輸出的最后一個值是【】

intff(intn)

{staticintf=1;

f=f*n;

returnf;

}

main()

{inti;

for(i=1;i<=5;i++)printf("%d\n",ff(i));

}

28.用以下語句調(diào)用庫函數(shù)malloc,使字符指針st指向具有11個字節(jié)的動態(tài)存儲空間,請?zhí)羁铡t=(char*)【】;

29.閱讀下面程序,則執(zhí)行后的輸出結果是【】。

#include"stdio.h"

main()

{intx,y,z;

x=1;y=2;z=3;

if(x>y)if(x>z)printf("%d",x);

elseprintf("%d",y);

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

30.對長度為8的線性表進行冒泡排序,最壞情況下需要比較的次數(shù)為()。

31.在一個容量為32的循環(huán)隊列中,若頭指針front=3,尾指針rear=2,則該循環(huán)隊列中共有______個元素。

32.以下程序從輸入的10個字符串中找出最長的那個串,請?zhí)羁铡?/p>

#include<stdio.h>

#include<string.h>

#defineN10

main()

{charstr[N][81],*sp;

inti;

for(i=0;i<N;i++)gets(str[i]);

sp=str[0];

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

if(strlen(sp)<strlen(str[i]))

【】;

printf("輸出最長的那個串:\n%s\n",sp);

printf("輸出最長的那個串的長度:%d\n",strlen(sp));}

33.軟件設計模塊化的目的是______。

34.下列程序段的運行結果是______。

intx=0,y=0;

while(x<15)y++,x+=++y;

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

35.按“先進后出”原則組織數(shù)據(jù)的數(shù)據(jù)結構是[]。

36.以下程序運行后輸出結果是______。

voidswap(intx,inty)

{

intt;

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

}

main()

{

inta=3,b=4;

swap(a,b);printf("%d%d\n",a,b);

}

37.下列程序的運行結果是______。

#include<stdio.h>

longfunc(intx)

{longp;

if(x==0||x==1)

return(1);

p=x*func(x-1);

return(p);

}

main()

{printf("%d\n",func(4));

}

38.若有如下結構體說明:

structSTRU

{inta,b;charc:doubled;

structSTRU*p1,*p2;

};

請?zhí)羁?,以完成對t數(shù)組的定義,t數(shù)組的每個元素為該結構體類型。

【】t[20]

39.設有以下結構類型說明和變量定義,則變量a在內(nèi)存所占字節(jié)數(shù)是【】。

structstud

{charnum[6];

mts[4];

doubleave;

}a,*p;

40.設有以下定義和語句,則*(*(p+2)+1)的值為【】。

inta[3][2]={10,20,30,40,50,60},(*p)[2];

p=a;

三、1.選擇題(20題)41.以下錯誤的定義語句是A.intx[][3]={{0},{1},{1,2,3}};

B.intx[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};

C.intx[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};

D.intx[][3]={1,2,3,4};

42.字符(char)型數(shù)據(jù)在微機內(nèi)存中的存儲形式是______。

A.反碼B.補碼C.EBCDIC碼D.ASCⅡ碼

43.若有以下程序:main(){intk=2,i=2,m;m=(k+=i*=k);printf("%d,%d\n",m,i);}執(zhí)行后的輸出結果是

A.8,6B.8,3C.6,4D.7,4

44.在ASCII代碼表中每一個大寫字母比它相應的小寫字母的ASCII碼()。

A.小32B.小64C.大32D.大1

45.有以下程序段:main(){inta=5,*b,**c;c=&b;b=&a;}程序在執(zhí)行了“c=&b;b=&a;”語句后,表達式**c的值是()。

A.變量a的地址B.變量b中的值C.變量a中的值D.變量b的地址

46.有以下程序

#include<stdio.h>

voidfun(int*a,intn)/*fun函數(shù)的功能是將a所指數(shù)組元素從大到小排序*/

{intt,i,j;

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

for(j=i+1;j<n;j++)

if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}

}

main()

{intc[10]={1,2,3,4,5,6,7,8,9,0},i;

fun(c+4,6);

for(i=0;i<10;i++)printf("%d,",c[i]);

printf("\n");

}

程序的運行結果是

A.1,2,3,4,5,6,7,8,9,0,

B.0,9,8,7,6,5,1,2,3,4,

C.0,9,8,7,6,5,4,3,2,1,

D.1,2,3,4,9,8,7,6,5,0,

47.下列變量說明語句中,正確的是

A.char:abc;B.chara;b;c;C.intx;z;D.intx,z;

48.關系數(shù)據(jù)庫的數(shù)據(jù)及更新操作必須遵循______等完整性規(guī)則。

A.實體完整性和參照完整性

B.參照完整性和用戶定義的完整性

C.實體完整性和用戶定義的完整性

D.實體完整性、參照完整性和用戶定義的完整性

49.設有如下定義:structsk{inta;floatb;}data;int*p;若要使p指向data中的a域,正確的賦值語句是()

A.p=&a;B.p=data.a;C.p=&data.a,D.*p=data.a;

50.以下程序運行后的輸出結果是()main(){inta,b;a=50;b=90;printf("%d\n",(a,b))}

A.90B.5090C.50D.450

51.若定義了以下函數(shù):voidf(…){…*p=(double*)malloc(10*sizeof(double));…}p是該函數(shù)的形參,要求通過p把動態(tài)分配存儲單位的地址傳回主調(diào)函數(shù),則形參p的正確定義應當是()

A.double*pB.float**pC.double**pD.float*p

52.在一個C程序中

A.main函數(shù)必須出現(xiàn)在所有函數(shù)之前

B.main函數(shù)可以在任何地方出現(xiàn)

C.main函數(shù)必須出現(xiàn)在所有函數(shù)之后

D.main函數(shù)必須出現(xiàn)在固定位置

53.在深度為5的滿二叉樹中,葉子結點的個數(shù)為A.32B.31C.16D.15

54.算法一般都可以用______控制結構組合而成。

A.循環(huán)、分支、遞歸B.順序、循環(huán)、嵌套C.循環(huán)、遞歸、選擇D.順序、選擇、循環(huán)

55.已定義以下函數(shù)

fun(int*p)

{return*p;}

該函數(shù)的返回值是()

A.不確定的值

B.形參p中存放的值

C.形參p所指存儲單元中的值

D.形參p的地址值

56.下列寫法正確的是()。

A.main(){inti=3,j;j=5}

B.main(){inti=3;

C.main()

D.main(){;}

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

A.構成C程序的基本單位是函數(shù)

B.可以在一個函數(shù)中定義另一個函數(shù)

C.main函數(shù)必須放在其他函數(shù)之前

D.C函數(shù)定義的格式是K&R格式

58.若x是int型變量,且有下面的程序段:for(x=3;x<6;x++)printf((x%2)?("**%d"):("##%d\n"),x);此程序段的輸出結果是()。

A.**3##4**5B.##3**4##5C.##3**4##5D.**3##4**5

59.下面能正確進行字符串賦值操作的是

A.chars[5]={"ABCDE"};

B.chars[5]={'A','B','C','D','E'};

C.char*s;s="ABCDE";

D.char*s;chara;scanf("%s",&s);

60.已定義以下函數(shù):fun(char*p2,char*p1){while((*p2=*p1)!='\0'){p1++;p2++;}}

A.將p1所指字符串復制到p2所指內(nèi)存空間

B.將p1所指字符串的地址賦給指針p2

C.對p1和p2兩個指針所指字符串進行比較

D.檢查p1和p2兩個指針所指字符串中是否有'\0'

四、選擇題(20題)61.(46)面向?qū)ο蟮脑O計方法與傳統(tǒng)的的面向過程的方法有本質(zhì)不同,它的基本原理是()

A.模擬現(xiàn)實世界中不同事物之間的聯(lián)系

B.強調(diào)模擬現(xiàn)實世界中的算法而不強調(diào)概念

C.使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題

D.鼓勵開發(fā)者在軟件開發(fā)的絕大部分中都用實際領域的概念去思考

62.

63.語句:“printf("%d",(a=)&&(b=-2));”的輸出結果是()。

A.無輸出B.結果是不確定C.-1D.1

64.下面程序的輸出結果是()。

#include"string.h"

fun(char*w,intn)

{chart,*s1,*s2;

s1=w;s2=w+n-1;

while(s1<s2)

{t=*s1++;

*s1=*s2--;

*s2=t;

}

}

main()

{staticcharp[]="1234567";

fun(p,strlen(p));

printf("%s",p);

}

A.7654321B.1717171

C.7171717D.1711717

65.在軟件設計中不使用的工具是()。A.系統(tǒng)結構圖B.PAD圖C.數(shù)據(jù)流圖D.程序流程圖

66.

67.執(zhí)行下面的程序后,a的值為()。main{inta,b;for(a=1,b=1;a<=10;a++){if(b%3==l){b+=3;continue;}b-=5;}}A.7B.8C.9D.10

68.下列敘述中錯誤的是()。

A.線性表是由n個元素組成的一個有限序列

B.線性表是一種線性結構

C.線性表的所有結點有且僅有一個前件和后件

D.線性表可以是空表

69.以下敘述不正確的是

A.分號是C語言的必要組成部分B.C程序的注釋可以寫在語句的后面

C.函數(shù)是C程序的基本組成單位D.程序中可以有一個或多個main函數(shù)

70.有以下程序:

程序的運行結果是()。

A.1,2,3,4,B.1,0,7,0,C.1,4,5,9,D.3,4,8,10,

71.以下關于C語言的敘述中正確的是()。

A.C語言的數(shù)值常量中夾帶空格不影響常量值的正確表示

B.C語言中的變量可以在使用之前的任何位置進行定義

C.在C語言算術表達式的書寫中,運算符兩側(cè)的運算數(shù)類型必須一致\

D.C語言中的注釋不可以夾在變量名或關鍵字的中間

72.

73.

有以下程序:

main

{intk=5;

while(--k)printf("%d",k-=3);

printf("\n");

}

執(zhí)行后的輸出結果是()。

A.1B.2C.4D.死循環(huán)

74.若有以下定義和語句

structa

{intn,m;};

structast[3]={{2,3},{4,5},{6,7}};

structa*p=st;

則以下錯誤的引用是

A.(p++)->n;B.st[0].n;C.(*p).n;D.P=&st.m,

75.

76.

77.(VC++)若有以下定義,則對b數(shù)組元素正確的引用是

intb[2][3]={1,2,3,4,5,6};A.b[1]B.b[0][3]C.b[2][2]D.b[1][1]

78.面向?qū)ο蠓椒ㄖ?,繼承是指()。

A.一組對象所具有的相似性質(zhì)B.一個對象具有另一個對象的性質(zhì)C.各對象之間的共同性質(zhì)D.類之間共享屬性和操作的機制

79.

80.

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:讀入一個字符串(長度<20),將該字符串中的所有字符按ASCIl碼升序排序后輸出。

例如,輸入opdye,則應輸出deopy。

請修改程序中的錯誤,使它能得到正確結果。

注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結構。

試題程序:

#include%string.h>

#include%stdlib.h>

#include<conio.h>

#include<stdio.h>

//****found****

intproc(charstr[])

{

charC;

unsignedi,j;

for(i=0;i<strlen(str)-1;i++)

for(j=i+1;j<strlen(str);j4-+)

if(str[i]>str[j])

{

c=str[j]:

//****found****

str[j]=str[i++];

str[i]=C;

}

}

voidmain

{

charst/[81];

system("CLS");

printf("\nPleaseenteracharacter

string:");

gets(str);

printf("\nknBeforesorting:\n%s",str);

proc(str);

printf("\nAftersortingdecendingly:\n

%S",str);

}

六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),該函數(shù)的功能是統(tǒng)計一行字符串中單詞的個數(shù),并將其作為函數(shù)值返回。字符串在主函數(shù)中輸入,規(guī)定所有單詞由小寫字母組成,單詞之間由若干個空格隔開,一行的開始沒有空格。注意:部分源程序在文件prog1.c中。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:1#include<string.h>2#include<stdio.h>3#defineN804intfun(char*s)5{67}8voidmain()9{10FILE*wf;11charline[N];12intnum=0;13printf("Enterastring:\n");14gets(line);15num=fun(line);16printf("Thenumberofwordsis:%d\n\n",num);17/*********found*********/18wf=fopen("out.dat","w");19fprintf(wf,"%d",fun("abigcar"));20fclose(wf);21/*********found*********/22}

參考答案

1.D

\n首先計算1與2的或運算,再將其結果與3進行“與”運算,結果為00000011,即十進制數(shù)3。

\n

2.C

3.A解析:由于本題定義的是共用體,所以成員表列中的整型變量x與字符數(shù)組c共占用同一個存儲單元,且此存儲單元為2個字節(jié),通常c[0]位于低字節(jié),c[1]位于高字節(jié),所以x.i的值為266。

4.B解析:字符數(shù)組元素作函數(shù)參數(shù)是單向的值傳遞。函數(shù)cchar的功能是將大寫字母轉(zhuǎn)換為小寫字母。主函數(shù)中while循環(huán)語句的條件是判斷指針p當前指向的字符是否為空,若不為空,則調(diào)用函數(shù)cchar,即主函數(shù)中通過循環(huán)語句將字符串'ABC+abc=defDEF'中的大寫字母全部轉(zhuǎn)換為小寫字母,因此printf的輸出結果為選項B。

5.A本題考查的是for循環(huán)與二維數(shù)組的定義和引用。當定義二維數(shù)組的初始化列表只使用一重花括號時,其中的每個值依次代表從第l行的第1個元素起,直到第l行滿,接著代表第2行、第3行……的每一個元素。程序中的循環(huán)將循環(huán)3次,循環(huán)變量i的值分別是0、1、2,所以3次循環(huán)中輸出的數(shù)分別是:t[2一O][D]、t[2-1][1]、t[2~2]121,即t[2][0]、t[1][l]、t[0][2],所以最后輸出的結果為357。故應該選擇A)。

6.A在表達式“z=0.9+x/y”中,先計算“3.6-2”,結果為1;再計算“0.9+1”,結果為1.9。因為變量z為整型,所以z的值為1。故本題答案為A選項。

7.D解析:一般來說,一種數(shù)據(jù)的邏輯結構根據(jù)需要可以表示成多種存儲結構,因此,數(shù)據(jù)的邏輯結構與存儲結構不一定是一一對應的。選項A中的說法是錯誤的。雖然計算機的存儲空間是向量式的存儲結構,但由于一種數(shù)據(jù)的邏輯結構根據(jù)需要可以表示成多種存儲結構,例如,線性鏈表是線性表的鏈式存儲結構。一般來說,性表的鏈式存儲結構中,各數(shù)據(jù)結點的存儲序號是不連續(xù)的,并且各結點在存儲空間中的位置關系與邏輯關系也不一致。性鏈表中,各數(shù)據(jù)元素之間的前后件關系是由各結點的指針域來指示的。因此,數(shù)據(jù)的存儲結構不一定是線性結構。選項B中的說法也是錯誤的。雖然程序設計語言中的數(shù)組一般是順序存儲結構,但是,利用數(shù)組也能處理非線性結構。例如,滿二叉樹與完全二叉樹是非線性結構,但對于滿二叉樹與完全二叉樹來說,根據(jù)完全二叉樹的性質(zhì)6,可以按層序進行順序存儲,即利用程序設計語言中的數(shù)組來存儲,這樣,不僅節(jié)省了存儲空間,又能方便地確定每一個結點的父結點與左右子結點的位置。對于一般的二叉樹來說,也可以將二叉樹中每一個結點的左指針、右指針以及數(shù)據(jù)域分別用三個數(shù)組中的對應元素來存儲,即實際上也是利用了程序設計語言中的數(shù)組來處理二叉樹這樣的非線性結構。選項C中的說法也是錯誤的。綜上所述,選項A、B與C中的說法都是錯誤的。

8.Dstrcat(s1,s2)函數(shù)的功能是把s2字符串連接到s1字符串的末尾,要保證s1有足夠的空間容納下連接后的字符串。

9.CC?!窘馕觥縀—R(Entity—Relationship)圖為實體一聯(lián)系圖,提供了表示實體型、屬性和聯(lián)系的方法,用來描述現(xiàn)實世界的概念模型。

10.A解析:數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。數(shù)據(jù)流圖中的主要圖形元素有:加工(轉(zhuǎn)換)、數(shù)據(jù)流、存儲文件(數(shù)據(jù)源)、源和潭。

11.C

12.C

13.B

14.B解析:在C語言的數(shù)組元素的引用方法,我們在前面已經(jīng)講過了,比如數(shù)組元素a[0],可以用表達式*(p+0),即*p來引用,對于數(shù)組元素a[1],可以用表達式*(p+1)來引用,在這里,p+1的值就是數(shù)組元素a[1]的地址,對此地址使用“間接訪問運算符”:*(p+1)就代表存儲單元a[1],注意:一對圓括號不可少。同樣,對于數(shù)組元素a[2],則可以用表達式。(p+2)來引用…,對于數(shù)組元素a[9],可以用表達式,(p+9)來引用。因此,當指針變量p指向a數(shù)組的起始地址時,若0≤i<10,則數(shù)組元素a[i]可以用*(p+i)來表示。

15.D[解析]聲明data是結構S數(shù)組。初始化data[0].a=10;data[O]b=100;data[1].a=20;data[]b=200.主函數(shù)中p=data[1];即p.a=data[1].a;p.b=data[1].b;執(zhí)行語句prit("%odn",++(pa);打印輸出時p.a先增1再打印。p.a=data\u3000\u3000[1].a=20.先增1等于21.

16.A執(zhí)行fun(a)語句時,P指向的是字符串數(shù)組a的第一個字符串“Morning”,p自加1之后,p指向字符串數(shù)組a的第2個字符串“Afternoon”。

17.B二叉樹的前序序列為ABCD,由于前序遍歷首先訪問根節(jié)點,可以確定該二叉樹的根節(jié)點是A。再由中序序列為BCDA,可知以A為根節(jié)點的該二叉樹只存在左子樹,不存在右子樹,故后序序列為DCBA。本題答案為B選項。

18.C本題考查swap函數(shù),它的作用是把x、Y所指的內(nèi)容互換,其他的不變,因此當執(zhí)行完調(diào)用函數(shù)后,僅僅a與1互換,其他的沒有變。

19.D

20.C本題中int(*ptr)的含義是指向函數(shù)的指針變量,其為指向函數(shù)的指針變量,該函數(shù)返回一個int型數(shù)據(jù),故選擇C選項。

21.p=a+4或p=&a[4]。p=a+4或p=&a[4]。解析:可以直接將數(shù)組元素a[4]的地址(即&a[4])賦給指針變量p,也可以用數(shù)組名加偏移量的形式(即a+4)表示數(shù)組元素a[4]的地址,并賦給指針變量p。

22.數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)解析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的管理機構,它是一種系統(tǒng)軟件,負責數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護、控制及保護和數(shù)據(jù)服務等。

23.邏輯獨立性邏輯獨立性解析:數(shù)據(jù)的獨立性一般可分為物理獨立性和邏輯獨立性。

24.11解析:字符空格的ASCII碼不為0,所以本題中表達式\ue008!c\ue009的值為0,b=0&&1的結果顯然為0。

25.int**zint*\r\n*z解析:函數(shù)希望通過形參z帶回結果,形參z必須是指針類型的。由于返回整型結果,所以第一處填int*;函數(shù)返回前必須先把結果通過形參z間接引用傳回,第二處應填*z。

26.252137252137解析:程序中變量a、b、c分別為十進制、八進制、十六進制的數(shù)25,按%d格式輸出,a的輸出值為25;b=025轉(zhuǎn)換為十進制數(shù)(b=2*8+5=16+5=21)輸出;c=0x25轉(zhuǎn)換為十進制數(shù)(c=2*16+5=32+5=37)輸出。輸出結果為252137。

27.120120解析:靜態(tài)變量的類型說明符是static,靜態(tài)局部變量屬于靜態(tài)存儲方式,它具有以下特點:

①靜態(tài)局部變量屬于靜態(tài)存儲類別,在靜態(tài)存儲區(qū)內(nèi)分配存儲單元。在程序整個運行期間都不釋放。

②對靜態(tài)局部變量是在編譯時賦初值的,即只賦初值—次,在程序運行時它已有初值。以后每次調(diào)用函數(shù)時不再重新賦初值而只是保留上次函數(shù)調(diào)用結束時的值。

③如在定義局部變量時不賦初值的話,則對靜態(tài)局部變量來說,編譯時自動賦初值0(對數(shù)值型變量)或空字符(對字符變量)。(注意:C語言中的非靜態(tài)變量在定義時,系統(tǒng)并不會自動給它賦初值)

④雖然靜態(tài)局部變量在函數(shù)調(diào)用結束后仍然存在,但其他函數(shù)是不能引用它的。

本題中函數(shù)的功能是:與for語句一起求一個整數(shù)的階乘。

28.malloc(11)malloc函數(shù)的格式是void*(或char*)malloc(size),size表示應分配的存儲區(qū),此題要分配11字節(jié)的單元,把11代入即可。

29.33解析:C語言的語法規(guī)定:else子句總是與前面最近的不帶else的if相結合。因為x不大于y,所以執(zhí)行printf('%d\\n',z);語句。

30.2828解析:在最壞情況下,冒泡排序所需要的比較次數(shù)為n(n-1)/2;簡單插入排序所需要的比較次數(shù)為n(n-1)/2;希爾排序所需要的比較次數(shù)為O(n1.5);堆排序所需要的比較次數(shù)為O(nlog2n)。

31.3131解析:設隊列容量為m,如果:rear>front,則隊列中元素個數(shù)為rear-front;如果rear<front,則隊列中元素個數(shù)為m+(rear-front)。本題rear<front,則m=32+(2-3)=31。

32.sp=str[i]sp=str[i]解析:二維字符數(shù)組即數(shù)組的每個元素又是一個字符串,即字符串數(shù)組。題中二維數(shù)組的第一行的首地址賦給字符指針sp,使sp指向了二維字符數(shù)組的一個字符串。求字符串長度函數(shù)strlen比較當前字符串與數(shù)組的下一個元素的字符串的長度,如果當前字符串的長度小于下一個元素的,則指針sp又指向了下一個元素,直到比較到數(shù)組的最后一個元素,得到的sp指針所指向的字符串即為長度最長的字符串。

33.降低復雜性降低復雜性

34.8208,20解析:本題考查while循環(huán)和++運算符的運用。x=0符合條件x<15,則執(zhí)行y++,x+=++y后,y=1,x=0+2=2后y=2,符合條件繼續(xù)循環(huán),y=3,x=x+4=6后y=4,再循環(huán)y=5,x=x+6=6+6=12后,y=6,繼續(xù)循環(huán)y=7,x=x+8=12+8-20,此時y=8。

35.棧棧解析:棧和隊列都是—種特殊的操作受限的線性表,只允許在端點處進行插入和刪除。二者的區(qū)別是:棧只允許在表的—端進行插入或刪除操作,是—種“先進后出”的線性表;而隊列只允許在表的—端進行插入操作,在另—端進行刪除操作,是—種“先進先出”的線性表。

36.43344334解析:本題考查的是函數(shù)的傳值調(diào)用。在C語宮中函數(shù)是傳值調(diào)用的,印在函數(shù)中修改形參變量的內(nèi)容,不會影響傳給函數(shù)的實參變量的內(nèi)容。題目中首先讓a=3,b=4,然后調(diào)用swap()函數(shù),該函數(shù)首先交換兩個參數(shù)的值,然后輸出交換后的值,即輸出4和3,然后在主函數(shù)中再次輸出a和b的值,由于傳值調(diào)用不會影響實參的值,所以最后輸出的是3和4。

37.2424解析:本題考查函數(shù)的循環(huán)調(diào)用。p=x*func(x-1),當x=4時,不滿足if語句的條件,p=4*func(3),x=3也不滿足條件,則func(3)=3*func(2),func(2)=2*func(1),x=1滿足條件return(1),則輸出結果為4*3*2*1=24。

38.strudctSTRUstrudctSTRU解析:結構件類型是構造數(shù)據(jù)類型,是用戶自己定義的一種類型。

結構體類型的定義:

struct結構體類型名

{

成員項表;

};

定義結構體變量的的形式為:

struct結構體類型名變量1,變量2,...?

其中變量包括;一般變量、指針變量、數(shù)組變量等。

39.2222解析:C語言里char類型占1個字節(jié),int類型占2個字節(jié),float類型占4個字節(jié),double類型占8個字節(jié),因此變量a在內(nèi)存中所占字節(jié)數(shù)=1*6+4*2+1*8=6+8+8=22。

40.6060解析:程序中定義a是一個3行2列的二維數(shù)組,p是指向兩個元素的一維數(shù)組指針,并讓p指向二維數(shù)組a的首行。則代碼*(*(p+2)+1)中的p+2指向二維數(shù)組a的第三行a[2],*(p+2)指向a[2[]0],*(p+2)+1指向a[2][1],*(*(p+2)+1)是引用a[2][1],其值是60。

41.C解析:本題考查的是二維數(shù)組的定義和初始化方法。C語言中,在定義并初始化二維數(shù)組時,可以省略數(shù)組第一維的長度,但是不能省略第二維的長度。故選項C)錯誤。

42.D解析:將—個字符常量放到—個字符變量中,實際上并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的ASCII碼值放到存儲單元中。

43.C解析:本題考查的知識點是運算符的優(yōu)先級.在復合賦值語句中,應該由右向左依次賦值,在表達式中,右端由i*=k得i=2*2為4,k=k+i,即k值為6,m=k故m=6.所以4個選項中C正確。

44.A解析:本題考查大小寫字母的ASCII碼值的關系。大寫字母比它相應的小寫字母的ASCII碼小32。

45.C解析:主函數(shù)中定義了一個整型變量a,一個整型指針變量b和一個二級指針變量c,并讓c指向指針變量b,讓指針b指向整型變量a,所以**c為變量a的值,故4個選項中選項C符合題意。

46.D解析:在本題中,主函數(shù)在調(diào)用fun()函數(shù)進行排序時,傳遞的參數(shù)是c+4和6,fun()函數(shù)實現(xiàn)的功能是將數(shù)組c的第5個元素開始的6個元素依次進行從大到小的順序排列。排序之后,數(shù)組c的內(nèi)容變?yōu)閧1,2,3,4,9,8,7,6,5,0}。

47.D

48.D解析:關系模型中包括關系的數(shù)據(jù)結構、關系的操縱和關系中的數(shù)據(jù)約束。關系完整性約束即數(shù)據(jù)完整性,包括實體完整性、參照完整性和用戶自定義完整性。

49.C解析:data是—結構體變量,a是它的成員,因此引用a域的正確方法是:data.a,取它的地址賦值給指針變量p的語句應該是:p=&data.a。選項A,將a的地址直接賦給了p,而忽略了a為結構體內(nèi)部的一個成員,而不是一單獨的變量,故選項A不正確;選項B在p=data.a表達式中右邊為一個結構體變量的成員不是地址,而左邊為一指針應該將一地址賦給它,故選項B不正確;選項D表達式*p=data.a是將結構體變量中的成員a的值賦給指針p所指向的變量值,而不是使指針p指向data中的a域,故選項D不正確:4個選項中只有C正確。

50.A

51.C

52.B解析:一個完整的C語言程序有且僅有一個主函數(shù)(main()函數(shù))。程序總從main()函數(shù)的第一條語句開始執(zhí)行,到main()函數(shù)的最后一條語句結束,其他函數(shù)都是在執(zhí)行main()函數(shù)時,通過函數(shù)調(diào)用或嵌套調(diào)用而得以執(zhí)行的。C語言規(guī)定,main()函數(shù)在程序中的位置是任意的,故選項A、選項C和選項D均不正確。所以,B選項為所選。

53.C2(n-1)

=2(5-1)=16

54.D解析:算法的控制結構給出了算法的基本框架,不僅決定了算法中各操作的執(zhí)行順序,也直接反映了算法的設計是否符合結構化原則。一個算法一般都可以用順序、選擇、循環(huán)三種基本控制結構組合而成。

55.C解析:本題考核的知識點是函數(shù)的返回值.函數(shù)的返回值應該為return后面的表達式的值,在本題中的表達式為*p,*p指的是形參p所指存儲單元中的值,所以,4個選項中選項C符合題意。

56.D解析:本題考查語句的基本構成。選項A)中j=5后面少了一個分號:選項B)中少了“}”;選項C)不是一個完整的函數(shù)定義格式,一個完整的函數(shù)定義格式還包括一對花括號:選項D)正確,是一個空語句。

57.A解析:本題考查C語言的綜合基礎知識。構成C程序的基本單位是函數(shù),一個C程序總是從main函數(shù)開始執(zhí)行,而不論main函數(shù)在整個程序中的位置如何。C語言的函數(shù)定義都是互相平行、獨立的,在定義函數(shù)時,一個函數(shù)內(nèi)不能定義另一個函數(shù)。C函數(shù)定義的一般格式有兩種:傳統(tǒng)格式和現(xiàn)代格式。傳統(tǒng)格式也稱K&R格式,是早期編譯系統(tǒng)使用的格式;現(xiàn)代格式又稱ANSI格式,是現(xiàn)代編譯系統(tǒng)使用的格式。

58.D解析:本題考查條件運算符。如果x%2非0,輸出**和循環(huán)變量的值;如果x%2為0,輸出##和循環(huán)變量的值。當循環(huán)變量為3和5時,分別輸出**3和**5,當循環(huán)變量為4時,輸出##4后換行。

59.C解析:如果一個字符數(shù)組用來存儲字符串,那么在定義該字符數(shù)組時,數(shù)組的大小應該比它將要實際存放的字符串長度大1,所以選項A)和B)錯。選項D)e本身就是一個字符指針,不需再取地址。

60.A解析:fun()函數(shù)中聲明了兩個字符串指針作為形參,在其函數(shù)體中用了一個while循環(huán),首先while括號內(nèi)表達式*p2=*p1是將p1所指的內(nèi)容賦值到p2所指的存儲空間中,然后在判斷是否為'\\0',表達式的值為真時,執(zhí)行循環(huán)體,指針p1和p2分別下移一位,當p1指向字符,'\\0',時,表達式的值為假,循環(huán)結束,故此函數(shù)的功能是將p1所指字符串復制到p2所指內(nèi)存空間中。所以,4個選項中選項A符合題意。

61.C

62.A

63.D因為在邏輯表達式中,兩邊的賦值表達式都成立,即值為1,故選擇D選項。

64.D函數(shù)的功能是將數(shù)組的元素交換,首先s1=p,即s1指向1,s2=p+7-1,即s2指向7,t=*s1++,將1賦給t,然后s1指向2,*s1=*s2++,將7賦給s1,即原來2的位置,s2指向6,然后*s2=t,將1賦給*s2即原來6的位置,…….

65.C系統(tǒng)結構圖是對軟件系統(tǒng)結構的總體設計的圖形顯示。在需求分析階段。已經(jīng)從系統(tǒng)開發(fā)的角度出發(fā),把系統(tǒng)按功能逐次分割成層次結構,是在概要設計階段用到的。PAD圖是在詳細設計階段用到的。程序流程圖是對程序流程的圖形表示,在詳細設計過程中用到。數(shù)據(jù)流圖(DFD圖)是結構化分析方法中使用的工具,它以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動和處理的過程,由于它只反映系統(tǒng)必須完成的邏輯功能,因此它是一種功能模型,是在可行性研究階段用到的而非軟件設計時用到,所以本題答案為C)。

66.A

67.D本題考查continue的用法,continue語句的作用是結束本次循環(huán),直接進行下

溫馨提示

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

評論

0/150

提交評論