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

下載本文檔

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

文檔簡介

2021-2022年四川省遂寧市全國計算機等級考試C語言程序設計真題(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.若有說明語句:double*p,a;則通過scanf語句正確給輸入項讀人數(shù)據(jù)的程序段是()。

A.*p=&a;scanf("%1f”,p);

B.*p=&a;scanf("%f",p);

C.p=&a;scanf("%",*p);

D.p=&a;scanf("%1f",p);

2.要求當A的值為奇數(shù)時,表達式的值為“真”,A的值為偶數(shù)時,表達式的值為“假”,以下不滿足要求的表達式是()。A.A%2==1B.!(A%2==0)C.A%2D.!(A%2)

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

A.宏替換不占用程序的運行時間

B.預處理命令行必須位于源文件的開頭

C.在源文件的一行上可以有多條預處理命令

D.宏名必須用大寫字母表示

4.設有定義:charpE]={’1’,‘2’,’3’},*q=p;,以下不能計算出一個char型數(shù)據(jù)所占字節(jié)數(shù)的表達式是()。

A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])

5.下列選項中,能正確定義數(shù)組的語句是()。

A.intnum[0..2008];

B.intnum[];

C.intN=2008;intnum[N];

D.#defineN2008;intnum[N];

6.

7.請選出可用作C語言用戶標識符的一組()。

A.voiddefineWORD

B.a3_b3_123IF

C.For_abccase

D.2aDOsizeof

8.

9.已知小寫母a的ASCII碼為97,大寫字母A的ASCII碼為65,以下程序的結(jié)果是_______。main(){unsignedinta=32,b=66;printf("%c\n",a|B);}

A.66B.98C.bD.B

10.第

4

棧底至棧頂依次存放元素A、B、C、D,在第五個元素E入棧前,棧中元素可以出棧,則出棧序列可能是

A.ABCEDB.DCBEAC.DBCEAD.CDABE

11.判定一個順序棧st(最多元素為MaxSize)為空的條件是()。

A.st->top!B.st->top!C.top==-1D.top==MaxSize

12.下列能正確定義且賦初值的語句是()。

A.intn1=n2=1;

B.charC=99;

C.floatf=f+1;

D.doublex=1.2E5.6;

13.

14.以下程序運行后,輸出結(jié)果是()#include<stdio.h>ss(char*s){char*p=s;while(*p)p++return(p-s);}main(){char*a=“abded”inti;i=ss(a);printf(“%d\n”,i);}A.8B.7C.6D.5

15.下列關于C語言數(shù)據(jù)文件的敘述中正確的是A.文件由ASCII碼字符序列組成,C語言只能讀寫文本文件

B.文件由二進制數(shù)據(jù)序列組成,C語言只能讀寫二進制文件

C.文件由記錄序列組成,可按數(shù)據(jù)的存放形式分為二進制文件和文本文件

D.文件由數(shù)據(jù)流形式組成,可按數(shù)據(jù)的存放形式分為二進制文件和文本文件

16.在以下一組運算中,優(yōu)先級最高的運算符是()

A.<=B.=C.%D.&&

17.數(shù)組A中,每個元素的長度為3個字節(jié),行下標i從1到8,列下標j從1到10,從首地址SA開始連續(xù)存放的存儲器內(nèi),該數(shù)組按行存放,元素A[8][5]的起始地址為()。

A.SA+141B.SA+144C.SA+222D.SA+225

18.若以下選項中的變量已正確定義,則正確的賦值語句是()。

A.x1=26.8%3B.1+2=x2C.x3=0x12D.x4=1+2=3

19.給出發(fā)下定義:charx[]="abcdefg";chary[]={'a','b','c','d','e','f','g'};則正確的敘述為______。

A.數(shù)組x和數(shù)組y等價B.數(shù)組x和數(shù)組y的長度相同C.數(shù)組x的長度大于數(shù)組y的長度D.數(shù)組x的長度小于數(shù)組y的長度

20.有下列程序:main{inty=10;do{y--;}while(--y);printf("%d\n",--y);)當執(zhí)行程序時,輸出的結(jié)果是()。A.-1B.1C.4D.0

二、2.填空題(20題)21.下列程序段的運行結(jié)果是______。

intx=0,y=0;

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

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

22.設有下列程序:

#include<stdio.h>

#include<string.h>

main()

{inti;

chars[10],t[10];

gets(t);

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

{gets(s);

if(strcmp(t,s)<0)strcpy(t,s);

}

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

}

程序運行后,從鍵盤上輸入(<CR>代表回車符):DEF<CR>BADEF<CR>QTHRG<CR>,則程

序的輸出結(jié)果是______。

23.在面向?qū)ο蠓椒ㄖ?,信息隱蔽是通過對象的______性來實現(xiàn)的。

24.設有以下程序:

main()

{inti,sum=0;

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

{if((i%2)==0)

continue;

sum+=i;}

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

}

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

25.按照邏輯結(jié)構(gòu)分類,數(shù)據(jù)結(jié)構(gòu)可分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),隊列屬于______。

26.下列程序的輸出結(jié)果是【】。

main()

{inta=1,b=2;

a=a+b;b=a-b,a=a-b;

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

}

27.若有如下程序:

main()

{intx=5,y,*t;t=&x;

y=++(*t);

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

則程序執(zhí)行后的x值為【】,y的值為【】。

28.以下程序的功能是調(diào)用函數(shù)fun計算:m=1-2+3-4+…+9-10,并輸出結(jié)果。請?zhí)羁铡?/p>

intfun(intn)

{intm=0,f=1,i;

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

{m+=i*f;

f=______;

}

returnm;

}

main()

{printf("%d\n",【】);}

29.軟件工程研究的內(nèi)容主要包括:【】技術和軟件工程管理。

30.下列程序的運行結(jié)果為【】。

main()

{intx=2,y,z;

x*=3+1;

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

x+=y=z=5;

printf("%d,",x);

K=y==Z;

printf{"%d\n",x);

}

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

32.已有文本文件test.txt,其中的內(nèi)容為:Hello,everyone!。以下程序中,文件test.txt已正確為“讀”而打開,由此文件指針fr指向該文件,則程序的輸出結(jié)果是【】。

#include<stdio.h>

main()

{FILE*fr;charstr[40];

fgets(str,5,fr);

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

felose(fr);

}

33.軟件生命周期分為軟件定義期、軟件開發(fā)期和軟件維護期,詳細設計屬于______中的一個階段。

34.以下函數(shù)用來求出兩整數(shù)之和,并通過形參將結(jié)果傳回,請?zhí)羁铡?/p>

voidfunc(intx,inty,【】z)

{*z=x+y;}

35.下面的程序可列指定字符串中的字符串進行從大到小排序,請將程序填完整。(注:程序采用了冒泡排序算法)

#include<stdio.h>

#include<string.h>

main()

{char*str="ABCDabcd",temp;

intn,i;

n=strlen(str);

while(n->1)

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

if(str[i]<str[i+1])

{temp=【】;

str[i]=str[i+1];

【】=temp;

}

printf(【】);

}

36.若有如下程序:

voidsub()

{staticintx=8;

x/=2;printf("%d",x);

}

main()

{intm;

for(m=0;m<2;m++)sub();}

則程序運行后的輸出結(jié)果是【】.

37.若a=1,b=2,則表達式!(x=A)‖(y=B)&&0的值是______。

38.下列程序的輸出結(jié)果是______。

#include<stdio.h>

main()

{inta=2,b=-1,c=2;

if(a<b)

if(b<0)c=0;

elsec++;

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

}

39.以下程序運行后的輸出結(jié)果是【】。

#include<string.h>

char*ss(char*s)

{char*p;t;

p=s+1;t=*s;

while(*p){*(p-1)=*p;p++;}

*(p-1)=t;

returns;

}

main()

{char*p,str[10]="abcdergh";

p=ss(str);

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

}

40.執(zhí)行下面程序段后,k的值是【】。

r=1;n=203;k=1

do}k*=n%10*r;n/=10;r++;}while(n);

三、1.選擇題(20題)41.以下程序執(zhí)行后,sum的值是______。main(){inti,sum;for(i=1;i<6;i++)sum+=i;printf("%d\n",sum);}

A.15B.14C.不確定D.0

42.有以下程序:#include<stdio.h>voidsum(int*a){a[0]=a[1];}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=2;i>=0;i--)sum(&aa[i]);printf("%d\n",aa[0]);}執(zhí)行后的輸出結(jié)果是()。

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

43.有以下程序:main(){unsignedchara,b;a=4|3;b=4&3;printf("%d%d\n",a,b);}執(zhí)行后輸出結(jié)果是()。

A.70B.07C.11D.430

44.視圖設計—般有3種設計次序,下列不屬于視圖設計的是______。

A.自頂向下B.由外向內(nèi)C.由內(nèi)向外D.自底向上

45.若有以下說明和語句:intc[4][5],(*p)[5];p=C;能夠正確引用c數(shù)組元素的是______。

A.p+1B.*(p+1)C.*(p+1)+3D.*(p[0]+2)

46.下列選項中錯誤的說明語句是

A.chara[]={'t''o','y','o','u','\0'};

B.chara[]={"toyou\0"};

C.chara[]="toyou\O";

D.chara[]='toyou\0';

47.在C語言中,可以把整數(shù)以二進制形式存放到文件中的函數(shù)是()

A.fprintf()函數(shù)B.fread()函數(shù)C.fwrite()函數(shù)D.fputc()函數(shù)

48.若程序中已包含頭文件stdio.h,以下選項中,正確運用指針變量的程序段是

A.int*i=NULL;scanf("%d",i);

B.float*f=NULL;*f=10.5;

C.chart='m',*c=&t;*c=&t;

D.long*L;L='\0';

49.在C語言中,運算對象必須是整型數(shù)的運算符是()。

A.%B.\C.%和\D.**

50.源程序中應包含一些內(nèi)部文檔,以幫助閱讀和理解程序,源程序的內(nèi)部文檔通常包括選擇合適的標識符、注釋和

A.程序的視覺組織B.盡量不用或少用GOTO語句C.檢查輸入數(shù)據(jù)的有效性D.設計良好的輸出報表

51.算法中的每一個步驟都必須是有明確意義的,不允許有模棱兩可的解釋,也不允許有多義性,這個性質(zhì)稱為

A.可行性B.有窮性C.正確性D.確定性

52.有如下程序段int*p,a=10,b=1;p=&a;a=*p+b;執(zhí)行該程序段后,a的值為______。

A.12B.11C.10D.編譯出錯

53.執(zhí)行下面的程序后,a的值為main(){inta,b;for(a=1,b=1;a<=100;a++){if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}}

A.7B.8C.9D.10

54.以下語句段執(zhí)行后的輸出結(jié)果是()。#include<stdio.h>main(){intk=3;if(k)printf("###")elseprintf("&&&&");}

A.###

B.&&&&

C.###&&&&

D.有語法錯誤,不能執(zhí)行

55.有以下程序

main()

{inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;

printf("%d\n",*p+*q);}

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

56.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結(jié)點訪問順序是()。

A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca

57.將E-R圖轉(zhuǎn)換到關系模式時,實體與聯(lián)系都可以表示成________。

A.屬性B.關系C.鍵D.域

58.有以下程序:#include<stdio,h>main(){charc1='1',c2='2';c1=getchar();c2=getchar();putchar(c1);putchar(c2);}當運行時輸入:a<回車>后,以下敘述正確的是()。

A.變量c1被賦予字符a,c2被賦予回車符

B.程序?qū)⒌却脩糨斎氲诙€字符

C.變量c1被賦予字符a,c2中仍是原有字符2

D.變量c1被賦予字符a,c2中將無確定值

59.以下程序的輸出結(jié)果是______。#include<stdio.h>#defineFUDGE(y)2.84+y#definePR(a)printf("%d",(int)(a))#definePRINT1(a)PR(a);putchar('\n')main(){intx=2;PRINT1(FUDGE(5)*x);}

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

60.下列選項中,不能作為合法常最的是()。

A.1.2340000B.1.234.4C.1.2340000D.1.234

四、選擇題(20題)61.有以下程序:

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

A.3B.4C.lD.9

62.現(xiàn)有如下程序段:

則程序的輸出結(jié)果為()。

A.78B.23C.21D.28

63.以下程序段中的變量已正確定義:

程序段的輸出結(jié)果是()。

A.**B.****C.*D.********

64.設有定義:,以下不能計算出一"/Pchar型數(shù)據(jù)所占字節(jié)數(shù)的表達式是()。

65.在“文件包含”預處理語句的使用形式中,當#include后面的文件名用(雙引號)括起時,尋找被包含文件的方式是()。

A.直接按系統(tǒng)設定的標準方式搜索目錄

B.先在源程序所在的目錄搜索,如沒找到,再按系統(tǒng)設定的標準方式搜索

C.僅僅搜索源程序所在目錄

D.僅僅搜索當前目錄

66.有以下程序:

fun(inta[],intm,intn)

{inti;

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

a[i+1]=a[i]+3;

returna[i+1];

}

voidmain()

{

inti,a[6]={2,4,6,8,10,12};

fun(a,2,5);

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

printf("%d",a[i]);

}

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

A.24691315B.24691215C.249121518D.249121415

67.面向?qū)ο蠓椒ㄖ校^承是指()。

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

68.有以下程序

main()

{

intx[]={1,3,5,7,2,4,6,0},i,j,k;

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

for(j=2;j>=i;j--)

if(x[j+1]>x[j])

{

k=x[j];

x[j]=x[j+1];

x[j+1]=k;

}

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

for(j=4;j<7-i;j++)

if(x[j]>x[j+1])

{

k=x[j];

x[j]=x[j+1];

x[j+1]=k;

}

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

printf("%d",x[i]);

printf("\n");

}

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

A.75310246B.01234567

C.76310462D.13570246

69.在面向?qū)ο蠓椒ㄖ校?)描述的是具有相似屬性與操作的一組對象。

A.屬性B.事件C.方法D.類

70.

71.有如下程序段

#include"stdio.h"

main()

{intk[10];

intj;

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

scanf("%d",&k[j]);

for(j=9;j>=0;j--)

printf("%d",k[j]);}

則程序段實現(xiàn)的功能是

A.輸入10個數(shù)據(jù)的順序輸入并輸出

B.輸入10個數(shù)據(jù)的逆序存放

C.輸入10個數(shù)據(jù)的逆序輸出

D.以上敘述均錯誤

72.

73.有以下程序:

#include<stdio.h>,

main()

{intS;

scanf("%d",&s);

while(s>O)

{switch(s)

{casel:printf("%d",s+5);

case2:printf("%d",s+4);break;

case3:printf("%d",s+3);

default:("%d",s+1);break;

}

scanf("%d",&s);

}

}

運行時,若輸入123450<回車>,由輸出結(jié)果是()。

A.6566456B.66656C.66666D.6666656

74.

75.

76.有以下程序:

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

A.1,6,2,1,B.8,7,3,1,C.4,7,5,2,D.1,6,5,7,

77.下面描述中錯誤的是()。

A.系統(tǒng)總體結(jié)構(gòu)圖支持軟件系統(tǒng)的詳細設計

B.軟件設計是將軟件需求轉(zhuǎn)換為軟件表示的過程

C.數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫設計是軟件設計的任務之一

D.PAD圖是軟件詳細設計的表示工具

78.有以下程序(說明:字母A的ASCIl碼值是65):

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

A.BTB.YEC.YTD.BY

79.設有定義語句int(*f)(int);,則以下敘述正確的是()。

A.f是基類型為int的指針變量

B.f是指向函數(shù)的指針變量,該函數(shù)具有一個int類型的形參

C.f是指向int類型一維數(shù)組的指針變量

D.f是函數(shù)名,該函數(shù)的返回值是基類型為int類型的地址

80.設有定義:,以下不能將一行(不超過80個字符)帶有空格的字符串正確讀入的語句或語句組是()。

五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun的功能是:將s所指字符串的正序和反序進行連接,形成的新串放在t所指的數(shù)組中。例如,當S所指字符串為“ABCD”時,t所指字符串中的內(nèi)容應為“ABCDDCBA”。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,函數(shù)fun()的功能是將s所指字符串中下標為偶數(shù)同時ASCII值為奇數(shù)的字符刪除,s所指字符串中剩余的字符形成的新字符串存放在t所指的數(shù)組中。例如,若s所指字符串中的內(nèi)容為“ABCDEFG12345”,其中字符C的ASCⅡ值為奇數(shù),在數(shù)組中的下標為偶數(shù),因此必須刪除;而字符1的ASCⅡ值為奇數(shù),在數(shù)組中的下標為奇數(shù),因此不應當刪除,其他依此類推。最后t所指的數(shù)組中的內(nèi)容應是“BDH2345”。注意:部分源程序在文件prog1.c中。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序::

參考答案

1.Ddouble*p,a定義了一個指向雙精度型的指針變量P和雙精度型變量a,p=&a表示將變量a的地址賦給指針變量p;scanf("%If",p)表示用鍵盤輸入的數(shù)賦給指針變量P所指向的地址單元中,scanf函數(shù)要求在輸入double型數(shù)據(jù),格式控制符必須用%1f。否則,數(shù)據(jù)不能正確輸入。所以選項D正確。

2.D

3.A宏替換是在編譯階段前的預處理階段,對程序中的宏完成文本替換,因此宏替換不占用運行時間,選項A正確;預處理命令行無須在源文件的開頭,它可以出現(xiàn)在程序的任何一行的開始部位,其作用一直持續(xù)到源文件的末尾,選項B錯誤;在源文件的一行上至多只能有一條預處理命令,選項C錯誤;宏名通常使用大寫字母表示,這并不是語法規(guī)定,只是一種習慣,選項D錯誤。本題答案為A選項。

4.A根據(jù)題目中的定義可以知道sizeof(p),計算的是數(shù)組P中所有元素所占用的字節(jié)數(shù),而不是ch”型數(shù)據(jù)所占字節(jié)數(shù)。

5.DC語言不允許定義動態(tài)數(shù)組,定義數(shù)組的大小必須為常量表達式。A選項錯誤,C語言中的數(shù)組沒有此類型的定義方法;B選項錯誤,定義數(shù)組應指明數(shù)組大小,如果不指明數(shù)組大小,需要給定元素的個數(shù);C選項錯誤,N為變量,不能用來定義數(shù)組大小。故本題答案為D選項。

6.C

7.B解析:C語言規(guī)定,標識符只能由字母、數(shù)字和下劃線三種符號組成,而且第一個字符必須是字母或下劃線。A)中的void與C語言的關鍵字重名,不合法;C)中的case和C語言的關鍵字重名,不合法;D)中的2a是數(shù)字開頭,而且sizeof與C語言的關鍵字重名,不合法。

8.B

9.C解析:位運算符“|”的作用是按位或,即兩個二進制數(shù)的相應位中只要有一個為1,該位的結(jié)果值為1。最后以字符型輸出,98對應的字符“b”

10.B解析:棧操作原則上“后進先出”,棧底至棧頂依次存放元素A、B、C、D,則表明這4個元素中D是最后進棧,B、C處于中間,A最早進棧。所以出棧時一定是先出D,再出C,最后出A。

11.B

12.B在c語言規(guī)定中,可以在定義變量的同時給變量賦初值,選項A中n2沒有定義;選項C中不能在賦值表達式的右邊出現(xiàn)變量本身,選項D中字母E后面的數(shù)應該為整數(shù),所以不對。

13.C

14.D

15.D解析:C語言把文件看成是一個字符(字節(jié))的序列,即由一個一個字符(字節(jié))的數(shù)據(jù)順序組成。根據(jù)數(shù)據(jù)的組織形式,可分為ASCII文件和二進制文件。ASCII文件又稱文本文件,它的每一個字節(jié)放一個ASCII代碼,代表一個字符。二進制文件是把內(nèi)存中的數(shù)據(jù)按其在內(nèi)存中的存儲形式原樣輸出到磁盤上存放。

16.C

17.C

18.C解析:賦值的一般形式為:變量名:表達式;,賦值的方向為由右向左,即將:右側(cè)表達式的值賦給:左側(cè)的變量,執(zhí)行步驟是先計算再賦值。選項A中運算符%的運算對象必須為整數(shù),而選項A中26.8不為整數(shù),故選項A不正確;選項B將一個變量賦值給一個常量,這在C語言中是不允許的,故選項B不正確;選項D中也是將一個常量3賦值給一個常量,故選項D不正確;所以,4個選項中選項C符合題意。

19.C

20.A本題考查do-while循環(huán)。當--y是0(即y是o)時結(jié)束循環(huán),輸出--y,先將y的值減1再輸出Y的值。

21.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。

22.QTHRGQTHRG解析:函數(shù)strcmp(t,s)用來比較t和s所指字符串的大小,若t>s,則函數(shù)值大于0;若t=s,則函數(shù)值等于0:若t<s,則函數(shù)值小于0。函數(shù)strcpy(t,s)的功能是,把字符數(shù)組s所指字符串的內(nèi)容復制到字符數(shù)組t所指存儲空間中。本題中,t[10]='CDEF'。第一次循環(huán),s[10]='BADEF',if語句的控制條件strcmp(t,s)<0不成立,接著執(zhí)行第二次循環(huán),s='QTHRG',if語句的控制條件strcmp(t,s)<0成立,執(zhí)行下列的語句,將字符數(shù)組s所指字符串的內(nèi)容復制到字符數(shù)組t所指存儲空間中,然后輸出字符數(shù)組t。

23.封裝封裝

24.2424解析:continue語句功能:結(jié)束本次循環(huán)(注:不是終止整個循環(huán)),即跳過循環(huán)體中continue語句后面的語句,開始下一次循環(huán)。

25.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:隊列有且只有一個根結(jié)點,而且每一個結(jié)點最多有一個前件,也最多有一個后件,滿足線性結(jié)構(gòu)的條件,所以屬于線性結(jié)構(gòu)。

26.21

27.66

28.fun中的答案為-fmain函數(shù)中的答案為fun(10)fun中的答案為-f,main函數(shù)中的答案為fun(10)解析:根據(jù)題意可知函數(shù)fun的功能是計算12+3-4+…+n的和,所以空格處應填入-f,main函數(shù)中輸出1-2+3-4+…+9-10的結(jié)果,所以函數(shù)的實參為10,函數(shù)調(diào)用為fun(10)。

29.軟件開發(fā)

30.8141

31.4545解析:對于長度為N的線性表,在最壞情況下(即線性表中元素現(xiàn)在的順序與目標順序正好相反),冒泡排序需要經(jīng)過N/2遍的從前往后的掃描和N/2遍的從后往前的掃描,需要的比較次數(shù)為N(N-1)/2。

32.HellHell解析:文件的字符串讀寫函數(shù)fgets()有3個參數(shù),第三個參數(shù)是文件指針指向要讀取數(shù)據(jù)的文件,第二個參數(shù)是一個整數(shù)(假設為n),表示從文件中讀取n-1個字符并在其后加一個'0',第一個參數(shù)為存放讀取的字符串的內(nèi)存區(qū)的起始地址,讀取得數(shù)據(jù)保存在其中??梢姳绢}的輸出結(jié)果為:Hell。

33.軟件開發(fā)軟件開發(fā)解析:軟件生命周期分為3個時期共8個階段:軟件定義期(問題定義、可行性研究和需求分析)、軟件開發(fā)期(系統(tǒng)設計、詳細設計、編碼和測試)、軟件維護期(即運行維護階段)。

34.int*int*解析:從題中代碼可知:z應該是一個整型指針,因此應填int*。

35.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本題要求將字符串str中的字符用冒泡排序算法從大到小排列,其實現(xiàn)過程是將相鄰兩個字符進行比較,如果當前字符小于下一個字符,則通過中間變量temp將字符兩兩交換,所以第一空應填:str[i],第二空應填:str[i+l]。最終打印輸出得到的字符串str,所以第三空應填:'%s',str。

36.4242解析:主函數(shù)中的for循環(huán)循環(huán)兩次,即函數(shù)sub()被調(diào)用兩次。在sub()中x被定義為靜態(tài)整型變量,當調(diào)用函數(shù)sub()完畢返回主函數(shù),x中的值仍然保留,下次調(diào)用函數(shù)sub()時,x不再被賦初值。第1次調(diào)用x/=2相當于x=x/2=8/2=4,第2次調(diào)用x=x/2=4/2=2,因此輸出42。

37.00解析:根據(jù)運算符的運算順序可知,該表達式最后運算的是與(&&)運算,而任何表達式與“0”進行“與”運算,結(jié)果都為0。

38.22解析:分析程序,a=2,b=-1,c=2時,if語句的表達式a<b不成立,不再往下判斷,直接退出if語句,執(zhí)行后面的輸出語句,程序結(jié)束。在這個程序中a、b、c的值沒做任何改變。

39.bcdefghabcdefgha解析:在本題定義的ss()函數(shù)中首先定義了一個指針p和一個字符變量t,然后讓p指向參數(shù)指針s的下一個位置s+1,并讓t保存s位置的字符。然后使用一個while循環(huán)將p指向的內(nèi)容賦給它前面一個位置,即將參數(shù)s所指的字符串從第2個字符開始整體往前移動一位。循環(huán)結(jié)束時,p指向原s串的結(jié)束標志處,所以讓*(p-1)=t;即是將原s串的第1個字符復制到s串的最后一個位置。整個函數(shù)實現(xiàn)的是讓一個字符串循環(huán)左移一位。故主函數(shù)中最后輸出的字符串是'bcdefgha'。

40.00解析:本題考查的是do…while循環(huán)。第一次執(zhí)行循環(huán)體,因為k=1,r=1,n=20;所以k=1*20%10*1=0,n=20/10=2,r=2;第二次執(zhí)行循環(huán)體,k=0*2%10*2=0,n=10/10=1,r=3;第三次執(zhí)行循環(huán)體,k=0*1%10*3=0,n=1/10=0,r=4。所以k的值為0。

41.C解析:變量sum在使用時未賦初值,所以無法確定sum最終的值。

42.A解析:該程序通過main函數(shù)循環(huán)凋用sum函數(shù)。

當i=2時,將實參aa[2]的地址傳遞給形參,此時a[0]=a[1]=aa[3]=4,即aa[2]=4;

當i=1時,將實參aa[1]的地址傳遞給形參,此時a[0]=a[1]=aa[2]=4,即aa[1]=4;

當i=0時,將實參aa[0]的地址傳遞給形參,此時a[0]=a[1]=aa[1]=4,即aa[0]=4;

當i=-1時,不滿足條件i>=0,跳出循環(huán),程序執(zhí)行后數(shù)組aa中的值為4,4,4,4,5,6,7,8,9,10,所以aa[0]=4。

43.A解析:在位與運算符&中參加運算的兩位都為1時,其結(jié)果為1,否則結(jié)果為0。所以本題中的4|3:01002|00112=01112=7。位與運算符|中參加運算的兩位只要有一個為1,則結(jié)果為1,只有當相應的兩位都為0結(jié)果才為0。所以本題中的4&3=01002&00112=00002=0。最后輸出a和b的值為7和0。故4個選項中選項A符合題意。

44.B解析:視圖設計—般有3種設計次序,它們分別是自頂向下、自底向上和由內(nèi)向外,它們又為視圖設計提供了具體的操作方法,設計者可根據(jù)實際情況靈活掌握,可以單獨使用也可混合使用。

45.D解析:p是指向一個一維數(shù)組的指針,選項A、B和C中都是地址,而非數(shù)組元素。選項D正確。

46.D解析:通過賦初值的方式給一維數(shù)組賦字符串,可以用給一般數(shù)組賦初值的相同方式給一維字符數(shù)組賦字符串,也可以在賦值時直接賦字符串常量。選項B)和C)后面的'\\0'是多余的,在C語言中,系統(tǒng)會自動在字符串的結(jié)尾處加上一個字符'\\0'作為串的結(jié)束標記。

47.C

48.D解析:選項A定義了一個整型變量i,并且初始化讓它指向NULL,接著通過seanf()函數(shù),改變i指向的存儲空間的值,選項A中首先定義了整型指針變量i并初始化為NULL,即表示指針i不指向任何內(nèi)存,即此時程序還沒有為i在內(nèi)存中開辟存儲單元,而在scanf()函數(shù)中笫;個參數(shù)是地址參數(shù),顯然在這里i不在表示地址,所以下面的scanf('%d',i)語句是不正確的,故選項A不正確;選項B定義了一個浮點型變量f并初始化讓它指向NULL,而當一個指針變量指向NULL以后不能在給它賦值,而按下來的程序中為其賦了一值,故選項B錯誤;選項C中首先定義了一個字符變量t并給它賦初值\'m\',然后定義一個字符型指針c并讓它指向了變量t,這一部分正確,然后接著用了一個語句“c=&t;”應該特該語句中c前的“*”去掉,故選項c運用指針變量不正確。所以,4個選項中選項D符合題意。

49.A解析:在C語言中,“%”運算符兩側(cè)的運算數(shù)必須是整型。

50.A解析:源程序文檔化主要包括三個方面的內(nèi)容:標識符的命名、程序中添加注釋以及程序的視覺組織。

51.D解析:算法中的每一個步驟都必須是有明確意義的,不允許有多義性。算法的這個性質(zhì)即為算法的確定性。

52.B解析:執(zhí)行p=&a;后,p指向整數(shù)a,*p即p的目標變量,也就是a;所以a=*p+b等價于a=a+b,可知a的值最終為11。

53.B解析:本題主要考查了循環(huán)語句中break和continue語句的使用。break語句的作用是結(jié)束本層循環(huán),而continue語句的作用是結(jié)束本次循環(huán)直接進入到下次循環(huán)。

54.D解析:在C語言中語句結(jié)束時應該以分號結(jié)尾,程序中的第1個printf('###')輸出語句后面少了一個分號(;),因此執(zhí)行程序時會出錯。

55.88解析:*p=&a[3],即*p=4,*q=p+2;即*q=6,所以*p+*q=10。

56.D解析:中序遍歷的遞歸算法定義:①遍歷左子樹;②訪問根結(jié)點;③遍歷右子樹。前序遍歷的遞歸算法定義:①訪問根結(jié)點;②遍歷左子樹;③遍歷右子樹。后序遍歷的遞歸算法定義:①遍歷左子樹;②遍歷右子樹;③訪問根結(jié)點。根據(jù)前序遍歷的結(jié)果可知,a是根結(jié)點。由中序遍歷的結(jié)果dgbaechf可知,d、g、b是左子樹的結(jié)點,e、c、h、f是右子樹的結(jié)點。再由前序遍歷的結(jié)果bdg可知,b是a左邊子樹的根,由cefh可知,c是a右邊子樹的根。再由中序遍歷的結(jié)果dgb可知,d、g是b左邊子樹的結(jié)點,b右邊子樹無結(jié)點。再由前序遍歷結(jié)果dg可知,d為b左子樹的根,g是以d為根的子樹的右結(jié)點。至此,a的左子樹已完全弄清楚了。同樣的道理,可以弄清楚以c為根的子樹的結(jié)點位置。所以可知后序遍歷的結(jié)果是D。

57.B解析:關系數(shù)據(jù)庫邏輯設計的主要工作是將\ue008E-R\ue009圖轉(zhuǎn)換成指定RDBMS中的關系模式。首先,從E-R圖到關系模式的轉(zhuǎn)換是比較直接的,實體與聯(lián)系都可以表示成關系,E-R圖中屬性也可以轉(zhuǎn)換成關系的屬性,實體集也可以轉(zhuǎn)換成關系。

58.A解析:函數(shù)getchar()的作用是從終端(或系統(tǒng)隱含指定的輸入設備)輸入一個字符,且只能接受一個字符(回車符也是一個字符)。故本題中變量c1被賦予字符a,c2被賦予回車符。

59.B解析:在程序中如果有帶實參的宏,則按#define命令行中指定的字符串從左到右進行置換,如果串中包含宏中的形參,則將程序語句中相應的實參代替形參。將實參帶入已經(jīng)定義的宏中,可以得出答案為“12”。

60.B

61.B每次內(nèi)循環(huán)只循環(huán)一次就結(jié)束,第一次外循環(huán)時t=t+b[0][b[0][0]]=1+b][0]=1+0=第二次外循環(huán)時t=t+b[1][b[1][1]]=1+b[1][1]=1+1=2;第三次外循環(huán)時t=t+b[2][b[2][2]]=2+b[2][2]=2+2=4。

62.C通過地址來引用二維數(shù)組,若有以下定

63.C由于內(nèi)層循環(huán)for(k=1;k<3;k++)后面直接跟了空語句“;”所以在循環(huán)內(nèi)部什么操作也不做,跳出外層循環(huán)后執(zhí)行打印語句,所以打印了一個“t”,選擇C。

64.A根據(jù)題目中的定義可以知道sizeof(p),計算的是數(shù)組p中所有元素所占用的字節(jié)數(shù),而不是char型數(shù)據(jù)所占字節(jié)數(shù)。

65.B#include"文件名",預處理程序首先在引用被包含文件的源文件所在的目錄下搜索指定的文件,如沒找到,再按系統(tǒng)指定的標準目錄搜索。

66.B函數(shù)的

溫馨提示

  • 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

提交評論