2022-2023年湖南省常德市全國計算機等級考試C語言程序設計_第1頁
2022-2023年湖南省常德市全國計算機等級考試C語言程序設計_第2頁
2022-2023年湖南省常德市全國計算機等級考試C語言程序設計_第3頁
2022-2023年湖南省常德市全國計算機等級考試C語言程序設計_第4頁
2022-2023年湖南省常德市全國計算機等級考試C語言程序設計_第5頁
已閱讀5頁,還剩105頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2022-2023年湖南省常德市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________

一、單選題(20題)1.

2.設一組初始記錄關鍵字序列(5,2,6,3,8),以第一個記錄關鍵字5為基準進行一趟快速排序的結果為()。

A.2,3,5,8,6B.3,2,5,8,6C.3,2,5,6,8D.2,3,6,5,8

3.對線性表進行折半查找時,要求線性表必須()。A.A.以順序方式存儲

B.以順序方式存儲,且結點按關鍵字有序排列

C.以鏈式方式存儲

D.以鏈式方式存儲,且結點按關鍵字有序排列

4.對長度為n的線性表進行順序查找,在最壞情況下需要比較的次數(shù)為()。

A.125B.n/2C.nD.n+1

5.下面關于串的的敘述中,哪一個是不正確的()。

A.串是字符的有限序列

B.空串是由空格構成的串

C.模式匹配是串的一種重要運算

D.串既可以采用順序存儲,也可以采用鏈式存儲

6.

7.有以下程序voidf(intx,inty){intt;if(x<y){t=x;x=Y;y=t;)}main{inta=4,b=3,c=5;f(a,b);f(a,c);f(b,c);printf("%d,%d,%d\n",a,b,c);}執(zhí)行后輸出結果是()。A.3,4,5B.5,3,4C.5,4,3D.4,3,5

8.最小堆[0,3,2,5,7,4,6,8],在刪除堆頂元素0之后,其結果是()

A.[3,2,5,7,4,6,8]

B.[2,3,5,7,4,6,8]

C.[2,3,4,5,7,8,6]

D.[2,3,4,5,6,7,8]

9.樹的度為3,且有9個度為3的節(jié)點,5個度為1的節(jié)點,但沒有度為2的節(jié)點。則該樹中的葉子節(jié)點數(shù)為()。

A.18B.33C.19D.32

10.在調用函數(shù)時,如果實參是簡單變量,它與對應形參之間的數(shù)據傳遞方式是().

A.地址傳遞B.單向值傳遞C.由實參傳給形參,再由形參傳回實參D.傳遞方式由用戶指定

11.對長度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是()。

A.快速排序B.冒泡排序C.直接插入排序D.堆排序

12.

下列程序的輸出結果是()。

#include<stdio.h>

main

{inta[2][3]={{1,2,3),{4,5,6)),(*p)[3],i;

p=a;

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

{if(i<2)

p[1][i]=p[1][i]-1;

else

p[1][i]=1;

}

printf("%d\n",a[o][1]+a[1][1]+a[1][2]);

}

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

13.

14.下列運算符中優(yōu)先級最低的算符是()。

A.||B.!=C.<;=D.十

15.若有以下程序:inta=1,b=2;a=a^b;b=b^a;則執(zhí)行以上語句后a和b的值分別是()。A.a=1,b=2B.a=3,b=lC.a=3,b=2D.a=2,b=l

16.C語言中函數(shù)返回值的類型是由()決定的。

A.return語句中的表達式類型B.調用該函數(shù)的主調函數(shù)類型C.定義函數(shù)時所指定的函數(shù)類型D.以上說法都不正確

17.以下程序是用來計算兩個非負數(shù)之間的最大公約數(shù):我們假設x,y中最大的那個數(shù)的長度為n,基本運算時間復雜度為O(1),那么該程序的時間復雜度為()A.O(1)B.O(logn)C.O(n)D.O(n^2)

18.有以下程序voidf(int*x,int*y){intt;t=*x;*x=*y;*y=t;}main(){inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;p=a;q=&a[7];while(p<q){f(p,q);p++;q--;}for(i=0;i<8;i++)printf("%d,",a[i]);}程序運行后的輸出結果是

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

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

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

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

19.有以下程序:#include<stdio.h>voidmain(){char*s=“\ta\018bc”;for(;*s!=‘\0’;s++)printf(“*”);printf(“\n”);}程序運行后的輸出結果是()。

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

20.當執(zhí)行以下程序段時,()。x=-l:do{x=x*X;)while(!x);A.循環(huán)體將執(zhí)行一次B.循環(huán)體將執(zhí)行兩次C.循環(huán)體將執(zhí)行無限次D.系統(tǒng)將提示有語法錯誤

二、2.填空題(20題)21.函數(shù)check用來判斷字符串s是否是“回文”(順讀和倒讀都一樣的字符串為“回文”,如abeba)。是則函數(shù)返回值1,否則返回值0,請?zhí)羁铡?/p>

intcheck(char*s)

{

char*p1,*p2;intn;

n=strlen(s);

p1=s;

p2=【】;

while(p1<p2)

{

if(*p1!=*p2)break;

else{p1++;p2--;}

}

if(【】)return0;

elsereturn1;

}

22.在關系模型中,若屬性A是關系R的主碼,屬性A的取值不能為空,稱為約束。

23.下列程序的輸出結果是______。

main()

{inti,sum;

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

sum+=i;

printf("%d",sum);

}

24.有定義chara,b;若想通過&運算符保留a對應的二進制數(shù)的第3位和第6位的值,其余位置0,則b的二進制數(shù)應是【】。

25.以下函數(shù)的功能是求出能整除x且不是偶數(shù)的各整數(shù),并按從小到大的順序放在pp所指的數(shù)組中,這些除數(shù)的個數(shù)通過形參n返回。例如,若x中的值為30,則有4個數(shù)符合要求,它們是1,3,5,15。請按題意,完成填空。

試題程序:

#include<conio.h>

#include<stdio.h>

voidfun(intx,intpp[],int*n)

{inti,j=0;

for(i=1;i<x;i+=2)

if(x%i==0)pp[j++]=i;

【】;

}

main()

{intx,aa[1000],n,i;

clrscr();

printf("\nPleasenteranintegernumber:\n");scanf("%d",&x);

fun(x,aa,&n);

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

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

printf("\n");

}

26.下列程序的功能是將字符串s中所有的字符c刪除。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{chars[80];

inti,j;

gets(s);

for(i=j=0;s[i]!='\0';i++)

if(s[i]!='c')

s[j]='\0';

puts(s);

}

27.若有定義inta[4][4]={1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},則初始化后,a[1][1]得到的初值是______。

28.以下程序的輸出是【】。

main()

{

charstr1[]="Howdoyoudo",*p1=str1;

strcpy(str1+strlen(str1)/2,"esshe");

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

}

29.數(shù)據字典是各類數(shù)據描述的集合,它通常包括5個部分,即數(shù)據項、數(shù)據結構、數(shù)據流、______和處理過程。

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

main()

{intX=10,y=20,t=0;

if(X==y)t=x;x=y;y=t;

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

}

31.以下程序的輸出結果是【】。

main()

{charc=′z′;

printf("%c",c-25);}

32.以下程序的輸出結果是【】。

#defineMAX(x,y)(x)>(y)?(x):(y)

main()

{inta=5,b=2,c=3,d=3,t;

t=MAX(a+b,c+d)*10;

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

}

33.已有定義:charc='';inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&Ra;后b的值為______。

34.按照邏輯結構分類,數(shù)據結構可分為線性結構和非線性結構,二叉樹屬于______。

35.fseek函數(shù)的正確調用形式是【】。

36.【】是數(shù)據庫設計的核心。

37.若有以下程序

main()

{inta[4][4]={{1,2;-3,-4},{0,-12,-13,14},{21,23,0,-24},{-31,32,-33;0}};

inti,j,s=0;

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

{for(j=0;j<4;j++)

if(a[i][j]<0)continue;

if(a[i][j]==0)break;

s+=a[i][j];

}

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

}

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

38.在面向對象方法中,類之間共享屬性和操作的機制稱為______。

39.一棵二叉樹第6層(根結點為第一層)的結點最多為______個。

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

三、1.選擇題(20題)41.有以下程序:#inelude<stdio.h>main(){inti,j,x=0;for(i=0;i<2;i++){x++;for(j=0;j<=3;j++){fi(j%2)continue;x++;x++;}pfinff("x=%d\n",x);}程序執(zhí)行后的輸出結果是()。

A.x=4B.x=8C.x=6D.x=12

42.設有如下程序#include<stdio.h>main(){int**k,*j,i=100;j=&i;k=&j;printf("%d\n",**k);}上述程序的輸出結果是_______。

A.運行錯誤B.100C.i的地址D.j的地址

43.在C語言中,關于函數(shù)fseek的說法正確的是()。

A.使位置指針重新返回文件的開頭

B.使位置指針到文件的結尾

C.可以改變文件位置指針

D.利用fseek函數(shù)只能實現(xiàn)文件順序讀寫

44.請選出以下程序的輸出結果______。#include<stdio.h>sub(x,y,z)intx,y*z;{*z=y-x;}main(){inta,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf("%d,%d,%d\n",a,b,c);}

A.5,23B.-5,-12,7C.-5,-12,-17D.5,2,-7

45.下列描述中,不是線性表順序存儲結構特征的是

A.不便于插入和刪除B.需要連續(xù)的存儲空間C.可隨機訪問D.需另外開辟空間來保存元素之間的關系

46.結構化程序由3種基本結構組成,3種基本結構組成的算法()。

A.可以完成任何復雜的任務B.只能完成部分復雜的任務C.只能完成符合結構化的任務D.只能完成一些簡單的任務

47.以下選項中合法的實型常數(shù)是A.5E2.0B.E-3C.2.00E-01D.1.3E

48.變量m的值為8,m的地址為1010,若欲使p為指向m的指針變量,則下列賦值正確的是()。

A.&m=8B.*p=8C.*p=1010D.p=&m

49.對于長度為n的線性表,在最壞情況下,下列各排序法所對應的比較次數(shù)中正確的是()。

A.冒泡排序為n/2B.冒泡排序為nC.快速排序為nD.快速排序為n(n-1)/2

50.數(shù)據庫設計包括兩個方面的設計內容,它們是()

A.概念設計和邏輯設計B.模式設計和內模式設計C.內模式設計和物理設計D.結構特性設計和行為特性設計

51.判斷字符串s1是否大于字符串s2,應該使用()。

A.if(strcmp(s1,s2)<0)

B.if(s1>s2)

C.if(strcmp(s2,s1)<0)

D.if(strcmp(s1,s2))

52.與進制數(shù)101.01011等值的十六進制數(shù)是()

A.A.BB.5.51C.A.51D.5.58

53.可以作為Windows外殼程序的是()

A.程序管理器B.文件管理C.程序管理器和文件管理器D.主群組

54.下列程序的輸出結果是_____。intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(func(x,y),z);printf("%\d\n",r);}

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

55.下面的程序段運行后,輸出結果是inti,j,x=0;staticinta[8][8];for(i=0;<3;++)for(j=0;<3;j++)a[i][j]=2*i+j;for(i=0;<8;++)x+=a[i][j];printf("%d",x);

A.9B.不確定值C.0D.18

56.以下程序的輸出結果是main(){intc=35;printf("%d\n",c&c);}

A.0B.70C.35D.1

57.有以下程序voidss(char*s,chart){while(*s){if(*s==t)*s=t-'a'+'A';s++;}}main(){charstrl[100]=“abcddfefdbd”,c=‘d’;ss(strl,c);printf(“%s\n”,strl);}程序運行后的輸出結果是

A.ABCDDEFEDBDB.abeDDfefDbDC.abcAMefAbAD.Abcddfefdbd

58.下面函數(shù)的功能是()sss(s,t)char*s,*t;{while((*s)&&(*t)&&(*t++==*s++));return(*s-*t);}

A.求字符串的長度B.比較兩個字符串的大小C.將字符串s復制到字符串t中D.將字符串s接續(xù)到字符串t中

59.若有定義:inta=4,b=5;floatx=3.4,y=2.1;,則下列表達式的值為()。(float)(a+B)/2+(int)x%(int)y

A.5.5B.55C.5.5D.55

60.有下列函數(shù)定義:

fun(floath)

{printf("%f,%f\n”,h,h*h);}

該函數(shù)的類型是()。

A.int類型B.float類型C.void類型D.函數(shù)無類型說明,定義有錯

四、選擇題(20題)61.有三個關系R、s和T如下:

由關系R和s通過運算得到關系T,則所使用的運算為()。

A.并B.自然連接C.笛卡爾積D.交

62.

63.

64.下述程序執(zhí)行的輸出結果是()。

#include<stdio.h>

main()

{chara[2][4];,

strcpy(a。"are");strcpy(a[1],"you");

a[o][3]=&;

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

}

A.are&you

B.you

C.are

D.&

65.為了提高軟件的獨立性,模塊之間最好是()。

A.控制耦合B.公共耦合C.內容耦合D.數(shù)據耦合

66.下面的變量說明中__________是正確的。

A.char:a,b,c;

B.chara;b;c;

C.chara,b,c;

D.chara,b,c

67.

68.第

11

若有定義:char*st="howareyou";下列程序段中正確的是

A.chara[11],*p;strcpy(p=a+1,&st[4]);

B.chara[11];strcpy(++a,st);

C.chara[11];strcpy(a,st);

D.chara[],*p;strcpy(p=&a[1],st+2);

69.檢查軟件產品是否符合需求定義的過程稱為()。

A.確認測試B.集成測試C.驗證測試D.驗收測試

70.數(shù)據庫管理系統(tǒng)是()。

A.操作系統(tǒng)的一部分B.在操作系統(tǒng)支持下的系統(tǒng)軟件C.一種編譯系統(tǒng)D.一種操作系統(tǒng)

71.有以下程序:

voidmain()

{

inty=10;

while(y>>1){printf("y=%d\n",y);}

}

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

A.y=0

B.y=-1

C.y=1

D.while構成無限循環(huán)

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

A.順序存儲結構的存儲一定是連續(xù)的,鏈式存儲結構的存儲空間不一定是連續(xù)的

B.順序存儲結構只針對線性結構,鏈式存儲結構只針對非線性結構

C.順序存儲結構能存儲有序表,鏈式存儲結構不能存儲有序表

D.鏈式存儲結構比順序存儲結構節(jié)省存儲空間

73.有以下程序:

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

A.4B.34C.31D.32

74.有以下程序:main(){inti=1,j=1,k=2;if((j++‖k++)&&i++)printf("%d,%d,%d\n",i,j,k);}執(zhí)行后的輸出結果是______。

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

75.下列關于C語言文件的敘述中正確的是()。

A.文件由一系列數(shù)據依次排列組成,只能構成二進制文件

B.文件由結構序列組成,可以構成二進制文件或文本文件

C.文件由數(shù)據序列組成,可以構成二進制文件或文本文件

D.文件由字符序列組成,其類型只能是文本文件

76.以下關于return語句的敘述中正確的是()。

A.一個自定義函數(shù)中必須有一條return語句

B.一個白定義函數(shù)中可以根據不同情況設置多條return語句

C.定義成void類型的函數(shù)中可以有帶返回值的return語句

D.沒有return語句的自定義函數(shù)在執(zhí)行結束時不能返回到調用處

77.

78.作為信息處理熱點技術之一的“多媒體技術”中的媒體,強調的是()。

A.存儲媒體B.表現(xiàn)媒體C.傳輸媒體D.感覺媒體

79.相對于數(shù)據庫系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據關聯(lián)差、數(shù)據不一致性和()。

A.可重用性差B.安全性差C.非持久性D.冗余性

80.

五、程序改錯題(1題)81.假如整數(shù)數(shù)列中的數(shù)不重復,并存放在數(shù)組中。下列給定的程序中,函數(shù)proc()的功能是:刪除數(shù)列中值為x的元素。n中存放的是數(shù)列中元素的個數(shù)。請修改程序中的錯誤,使它能夠得出正確的結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:

六、程序設計題(1題)82.請編寫函數(shù)proc,該函數(shù)的功能是:將M行N列的二維數(shù)組中的數(shù)據,按行的順序依次放到一維數(shù)組中,一維數(shù)組中數(shù)據的個數(shù)存放在形參n所指的存儲單元中。例如,若二維數(shù)組中的數(shù)據為132333431424344415253545則一維數(shù)組中的內容應該是132333431424344415253545。注意:部分源程序給出如下。請勿改動main函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。試題程序:#include<stdio.h>voidproc(int(*s)[103,int*b,int*n,intrain.intnn){ }voidmain{intarr[10][10]={{33,33,33,33),{44,44,44,44},{55,55,55,55}),i,j;inta[l00]={o),n=o;printf("Thematrix:\n");for(i=0;i<3;i++){for(j=0;j<4;j++)printf("%3d",arr[i][j]):printf("\n");}proc(arr,a,&n,3,4):printf("TheAarray:\n");for(i=0;i<n;i++)printf("%3d",a[i]):printf("\n\n");}

參考答案

1.A

2.C

3.B

4.CC?!窘馕觥繉€性表進行順序查找時,從表中的第一個元素開始,將給定的值與表中逐個元素的關鍵字進行比較,直到兩者相符,查找到所要找的元素為止。在最壞情況下,要查找的元素是表的最后一個元素或查找失敗,這兩種情況都需要將這個元素與表中的所有元素進行比較,因此比較次數(shù)為n。

5.B

6.A

7.Da、b、C都是按值傳遞給函數(shù)f,函數(shù)f不能改變它們的值。所以,a、b、t的值仍然是4、3、5。

8.C

9.C設葉子結點數(shù)為〃,則該樹的結點數(shù)為n+9+5=n+\n14,根據樹中的結點數(shù)=樹中所有結點的度之和+1,得9×3+0×2+5×1+n×0+1=n+14,則n=19。本題選擇C選項。

10.B

11.D各種排序方法中最壞情況下需要比較的次數(shù)分別為:冒泡排序n(n-1)/2、快速排序n(n-1)/2、簡單插入排序n(n-1)/2、希爾排序0(n1.5)、簡單選擇排序n(n-1)/2、堆排序O(nlog2n)

12.B

\n本題考查for循環(huán)及if…else語句嵌套,第1次執(zhí)行for循環(huán),p[1][0]=p[1][0]=p[1][0]-1=3;第2次執(zhí)行for循環(huán),p[1][1]=p[1][1]-1=4;第3次執(zhí)行for循環(huán),p[1][2]=l,最后輸出的是a[0][1]+a[1][1]+a[1][2]=2+4+1=7。

\n

13.D

14.AC語言中規(guī)定運算符的優(yōu)先順序:一元算術運算符一>二元算術運算符一>關系運算符一>邏輯運算符一>賦值運算符,A項中為邏輯運算符,B項和c項都為關系運算符,D項為一元運算符。因此最低的是A項。

15.B本題考查按位異或的用法。按位異或運算的規(guī)則是:兩個運算數(shù)的相應二進制位相同,則結果為0,相異則結果為1。b=2的二進制為00000010,a=1的二進制為00000001,a=a^b一00000011,轉化為十進制后為3,b=b^a=00000010^00000011=00000001,即1。

16.C

17.B

18.D解析:本題考查循環(huán)和指針做函數(shù)參數(shù),程序的功能是將a[0]和a[7]對換,a[1]和a[6]對換,a[2]和a[5]對換,a[3]和a[4]對換,最后輸出。

19.Amain函數(shù)中定義一個字符指針s,指向字符串“\\ta\\018bc”。for循環(huán)遍歷s指向的字符串中的字符,然后輸出根據題意可以理解為:s指向的字符串中有多少個字符,就輸出多少個s指向的字符串中字符分別是\\t(轉義字符)、a、\\01(轉義字符)、8、b、c,總共6個。其中因為8不屬于八進制中的數(shù)字,所以“\\018”不是一個轉義字符,而“\\01”是轉義字符。故本題答案為A選項。

20.Ado-wlfile的功能是先執(zhí)行一次循環(huán)體,再判斷條件是否成立,當x=-1時,執(zhí)行do語句,x=x*x=1,接著執(zhí)行while后的表達式,其值為0,退出循環(huán),因此循環(huán)體只執(zhí)行了一次。

21.s+n-1p1<p2s+n-1\r\np1<p2解析:判斷是否“回文”字符串,應該使用兩個字符型指針,一個從前往后遍歷字符串,另一個從后往前遍歷字符串,直到它們中途相遇,如果每次兩個指針所指的字符都相同,則為“回文”字符串。程序中已經使p1=s,即指向字符串的第一個字符了,所以p2應該指向s的最后一個字符,故第一空應填s+n-1。比較兩個指針時,如果有一次不相同,則跳出循環(huán),因為此時已可肯定不是“回文”字符串。如果是while循環(huán)的條件p1<p2不滿足時自然結束的循環(huán),則每次比較都是相同的,兩個指針是中途相遇了才結束比較。兩種情況的區(qū)別就是pl<p2是否成立。故第二空應該填p1<p2。

22.實體完整性實體完整性

23.無定值無定值解析:for(i=1;i<7;i++)決定了循環(huán)次數(shù)為6次,每次執(zhí)行的操作是sum+=i,但由于sum沒有初始化,并不知道sum的初值是多少,所以結果無定值。

24.100100100100解析:“&”運算符的運算規(guī)則是:兩個二進制數(shù)的對應二進制位只要有一個為0,則結果為0;二者都為1時,結果為1。因此,要想保留某位可用1,屏蔽某位用0。

25.*n=j*n=j解析:本題題干信息是能整除x且不是偶數(shù)的所有整數(shù)之和。循環(huán)語句中i從1開始且每次增2,所以i始終是奇數(shù),*n=j;語句是記錄能夠符合題意的各個整數(shù)的各數(shù)。

26.S[j++]=s[i]S[j++]=s[i]解析:循環(huán)開始后如果數(shù)組s中儲存值與字符c相同,則i++直接跳過當前值;如果不相同,則將當前值賦予數(shù)組指定位置,并通過j++將下標加1,指向下一元素要存儲的位置。

27.二維數(shù)組可以看成是按矩陣形式排列的,題目中給二維數(shù)組賦初值是按行分段賦值的,a[4][4]可以分解為4個一維數(shù)組,其數(shù)組名分別為a[O]、a[1]、a[2]、a[3],這4個一維數(shù)組都有4個元素,a[0]的元素為a[0][0]、a[0][1]、a[0][2]、a[0][3]。\r\n\r\n

28.HowdoessheHowdoesshe解析:strcpy(str1,s1);字符串拷貝函數(shù),作用是將字符串s1拷貝到字符數(shù)組strl中去。strlen(str):測試字符串str的長度,函數(shù)的值為字符串中實際長度,不包括\'\\0\'在內。本題中strlen(str1)的值為13,則strcpy(strl+strlen(strl)/2,'esshe');相當于strcpy(strl+6,'esshe');,因此可得答案為Howdoesshe

29.數(shù)據存儲數(shù)據存儲

30.20020,0解析:在主函數(shù)中首先定義了3個整型變量x、y、t,并分別給它們賦初值為10、20、0,接著執(zhí)行汀語句,在if后面括號內的條件表達式中,條件x==y即10==20不成立,則不執(zhí)行其后的語句t=x,然后退出if語句,順序執(zhí)行語句x=y;y=t;。執(zhí)行完這兩條語句后x的值變?yōu)?0,y的值變?yōu)?,所以最后輸出x、y的值為20和0。

31.aa解析:'z'的ASCII碼值為122,經過c-25運算后,得97,以字符形式輸出是a。

32.77解析:在C語言中,宏定義是直接替換的,所以在劉表達式MAX(a+b,c+d)*10進行替換后,表達式變?yōu)?a+b)>(c+d)?(a+b):(c+d)*10。在這個條件表達式中,(a+b)>(c+d)為真,所以用(a+b)的值作為整個表達式的值(否則用(c+d)*10的值作為整個表達式的值),而(a+b)的值為7。所以整個表達式的值為7。

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

34.非線性結構非線性結構解析:對于一個非空的數(shù)據結構,如果同時滿足下列兩個條件,即1)有且只有一個根結點;2)每一個結點最多有一個前件,也最多有一個后件;即為線性結構,而二叉樹的結點可能存在兩個后件,所以是非線性結構。

35.fseek(文件指針位移量起始點)fseek(文件指針,位移量,起始點)解析:本題考查函數(shù)fseek的用法。fseek函數(shù)的調用形式為:

fseek(文件指針,位移量,起始點)

“起始點”用0,1或2代替,其中,0代表“文件開始”;1為“當前位置”;2為“文件末尾”?!拔灰屏俊敝敢浴捌鹗键c”為基點,向前移動的字節(jié)數(shù)。ANSIC和大多數(shù)C版本要求位移量是long型數(shù)據,這樣當文件的長度大于64k時不致出現(xiàn)問題。ANSIC標準規(guī)定在數(shù)字的末尾加一個字母L,就表示long型。

36.數(shù)據模型數(shù)據模型

37.5858解析:本題中處理二維數(shù)組元素用了兩重循環(huán),外循環(huán)變量i表示數(shù)組的行,內層循環(huán)變量j表示數(shù)組的列。在第二重循環(huán)中首先判斷數(shù)組元素的值是否小于0,若是則處理該行的下一個元素:若不是則判斷a[i][j],田的值是否等于0,若等于0則退出內層循環(huán)開始處理下一行;其他情況下,把a[i][j]的值加到變量s中。所以本程序段的功能是把每行值為0的元素前面的所有大于。的元素值加到變量s中。

38.繼承繼承

39.3232解析:二叉樹第k層上,最多有2k-1(k≥1)個結點。第6層的結點數(shù)最多是26-1=32。注意區(qū)別“二叉樹的結點最多數(shù)”和“某一層的結點最多數(shù)”。前者的計算是深度為m的二叉樹最多有2m-1個結點。

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

41.B解析:本問題要求給出程序執(zhí)行后輸出的x的值。x的初值為0,程序中出現(xiàn)了3次x++,其中外層循環(huán)中出現(xiàn)了兩次,共自增了4次;在內層循環(huán)中,當循環(huán)變量為。和2時,x自增,因此共自增了4次,這樣x共自增了8次,所以結果為8。

42.B解析:j=&i,j的值就是i的地址,*j=100,將j的地址賦給k,這時*k=j,那么,**k=*j,而*j=100,所以**k=100,最后的打印結果應當為100。

43.C解析:fseek()函數(shù)可以自由的改變文件位置指針的位置,即可以自由讀寫文件中的任何位置,故選項A、B、D都是錯誤的,應該選擇C。

44.B解析:sub()函數(shù)的作用是將形參y和x的差賦給了z指向的那個內存地址,所以在sub(10,5,&a),10和5屬于值傳遞,a是屬于地址傳遞,也就是a與z指向了同一個存儲單元,在執(zhí)行函數(shù)后,a的值隨*z變化,所以此次函數(shù)被調用后,a的值為y-x=-5,同理可知,在sub(7,a,&b)后,b的值發(fā)生變化其值為-5-7=-12,在sub(a,b,&c)后,c的值發(fā)生變化,其值為-12-(-5)=-7。

45.D解析:線性表的順序存儲是用一片連續(xù)的空間來存放數(shù)據元素,其特點是邏輯上相鄰的元素在物理位置上也相鄰。數(shù)據元素之間邏輯上的先后關系自動隱含在物理位置的相鄰元素之中,因此,不需要另外開辟空間來保存元素之間的關系。

46.A解析:C程序由3種基本的結構組成,分別為順序結構、選擇結構和循環(huán)結構,這3種結構可以組成任何復雜的C程序,即可以完成任何復雜的任務,故選項B、選項C和選項D都不正確。所以,4個選項中選項A符合題意。

47.C解析:在C語言中,實數(shù)有兩種表示形式:小數(shù)形式與指數(shù)形式。小數(shù)形式的實數(shù)由整數(shù)部分、小數(shù)點和小數(shù)部分組成(必須要有小數(shù)點)。指數(shù)形式字母e(E)之前必須有數(shù)字,且e或E后的指數(shù)必須為整數(shù)。選項A中,5E2.0中E后面的2.0不是整數(shù);選項B中,E前面沒有數(shù)字;選項D中,E后面沒有數(shù)字,只有選項C正確。

48.D解析:指針變量是通過指向變量地址來指定變量值的。這里只要取m的地址賦給p,即可實現(xiàn)使p為指向m的指針變量。

49.DD?!窘馕觥勘绢}主要考查對排序算法的理解。冒泡排序法首先將第一個記錄的關鍵字與第二個記錄的關鍵字進行比較,若逆序則交換,然后比較第二個與第三個,以此類推,直至第n-1個與第n個記錄的關鍵字進行比較。第一趟冒泡排序使最大的關鍵字元素放到最后。以此類推,進行第2~n次冒泡排序。如果在排序過程中不存在逆序,則排序結束。在最壞情況下,冒泡排序中,若初始序列為“逆序”序列,則需要比較n(D-1)/2次??焖倥判蚴菍γ芭菖判虻囊环N改進。它的基本思想是:通過一趟排序將待排記錄分割成獨立的兩部分,其中一部分記錄的關鍵字比另一部分記錄的關鍵字小,然后分別對這兩部分記錄繼續(xù)進行排序,最終達到整個記錄有序。對于快速排序,當初始記錄序列按關鍵字有序或基本有序時,快速排序退化為冒泡排序,最壞情況下比較次數(shù)為n(n-1)/2。

50.A解析:模式設計和內模式設計是概念設計的兩種方法。物理設計是根據特定的計算機系統(tǒng),對數(shù)據的存儲結構和存取方法進行設計,從而實現(xiàn)從邏輯結構到物理結構的轉換。從系統(tǒng)開發(fā)的角度來看,結構特性設計和行為特性-設計是數(shù)據庫應用系統(tǒng)所具有的兩個特性。結構特性的設計,設計各級數(shù)據庫模式(靜態(tài)特性):行為特性的設計,改變實體及其特性,決定數(shù)據庫系統(tǒng)的功能(動態(tài)特性)。

51.C解析:本題考查字符串比較函數(shù)strcmp()。調用形式:strcmp(s1,s2),其中s1、s2分別是字符串存儲區(qū)的首地址。函數(shù)功能:比較字符串str1和str2,當str1<str2時,返回值為負數(shù);當str1=str2時,返回0;當str1>str2,返回值為正數(shù)(注意:不能使用關系運算符比較兩個字符串的大小)。

52.D

53.C

54.D

55.C解析:本題主要考查的是用二維數(shù)組首地址和下標來引用二維數(shù)組元素的方法。通過分析可知,程序中的雙重循環(huán)定義了一個如下的二維數(shù)組:[*]

由于數(shù)組的下標是從0開始的,所以二維數(shù)組元素a[i][j]表示的是二維數(shù)組a的第i+1行、第j+1列對應位置的元素。

56.C解析:本題考查按位與“&”。因為1&1=1,0&0=0,所以任何數(shù)與自身按位與,結果仍為此數(shù),不發(fā)生變化。

57.B解析:本題中的函數(shù)ss()有兩個參數(shù),一個是字符型指針變量s;另一個是字符型變量t。在函數(shù)中通過一個while循環(huán),在循環(huán)中一次取出e指向的字符串并判斷它是否和t中存放的字符相同,若相等,則執(zhí)行“*s=t-'a'+'A';”(若是小寫字母,則把它轉換成大寫字母)語句。在主函數(shù)中執(zhí)行函數(shù)調用ss(strl,c),很顯然是把stfl數(shù)組中所有字符“d”變成大寫字母,其他字符不變。

58.B

59.C解析:在計算(float)(a+b)/2時,由于通過強制類型轉換將(a+b)轉換成了float型,所以應先將2轉換成float型,再進行計算,得4.500000。

在計算(int)x%(int)y時,先將x和y通過強制類型轉換成int型,再進行求余運算,得1。

又因為4.500000是float型,所以將1和它相加時,先將1換成float型,再計算,得到5.500000。

注意:類型轉換的一般規(guī)則是:低級類型服從高級類型,并進行相應的轉換。數(shù)據類型的級別由低到高的排序表示為:char→int→unsigned→long→float→double。

60.A解析:本題考查默認函數(shù)的函數(shù)值的類型。在函數(shù)定義時,由于函數(shù)沒有說明其類型,系統(tǒng)默認一律自動按整型處理,因此,函數(shù)的類型為int類型。

61.D關系R與s經交運算后所得到的關系是由那些既在R內又在S內的共有元組組成的,記為RnS。

62.A

63.C

64.A\nstrcpy實現(xiàn)的功能是復制,該操作把are復制到a中,aE03E33一’&’,且strcpy(aEl],'you')把you復制到a[l]中,故輸出a為“are&you”。

\n

65.D在程序設計中,各模塊間的內聚性越強,則耦合性越弱。一般較優(yōu)秀的軟件設計,應盡量做到高內聚、低耦合,以有利于提高模塊的獨立性。耦合性與內聚性是模塊獨立的兩個定性標準,是互相關聯(lián)的。

66.B

67.D

68.A本題綜合考查字符數(shù)組的賦值和strcpy函數(shù)的用法。C語言不允許用賦值表達式對字符數(shù)組賦值,如下面的語句就是非法的:str1='China',如果想把“China”這5個字符放到數(shù)組str1中,除了逐個輸入外,還能使用strcpy函數(shù),該函數(shù)的功能是將一個字符串復制到一字符數(shù)組中。例如,strcpy(str1,'China');或strcpy(str1,str2);注意,不能企圖用以下語句來實行賦值(將str2的值傳給str1):str1=str2;不能用賦值語句將一個字符串常量或字符數(shù)組直接給一個字符數(shù)組。

strcpy函數(shù)的結構是:strcpy(字符數(shù)組1,字符串2)

其中,需要注意的是,字符數(shù)組1的長度不應小于字符串2的長度,“字符數(shù)組1”必須寫成數(shù)組名形式,如(str1),“字符串2”可以是字符數(shù)組名,也可以是字符串常量,不能用賦值語句將一個字符串常量或字符數(shù)組直接給一個字符數(shù)組。

69.A本題主要考查軟件測試的基本知識。軟件測試的步驟可分為單元測試(模塊測試)、集成測試、確認測試和系統(tǒng)測試。

(1)單元測試是針對每個模塊進行的測試,它可從程序的內部結構出發(fā)設計測試用例,多個模塊可以平行、對立地測試。單元測試主要用于發(fā)現(xiàn)詳細設計和編程時犯下的錯誤。單元測試多采用白盒測試,輔之以黑盒測試。

(2)集成測試是在單元測試的基礎上,根據模塊結構圖將各個模塊連接起來,必須精心計劃,應提交集成測試計劃、集成測試規(guī)格說明和集成測試分析報告。主要目標是發(fā)現(xiàn)與接口有關的問題。集成測試可以發(fā)現(xiàn)概要設計時犯的錯誤。

(3)確認測試用于驗證軟件的功能和性能及其他特性是否與用戶的要求一致。確認測試主要用于發(fā)現(xiàn)需求分析時犯下的錯誤,一般使用黑盒法測試,以表明軟件符合需求說明書的要求,應該仔細設計測試用例和測試過程。確認測試必須有用戶參加,或以用戶為主,用戶應參與設計測試用例,通常情況下,主要使用生產中的實際數(shù)據進行測試,測試數(shù)據通過用戶接口輸入。

(4)系統(tǒng)測試是將已經通過確認測試的軟件,作為整個計算機系統(tǒng)的元素與計算機硬件、外設和網絡等其他因素結合在一起,進行一系列的組裝測試和確認測試。系統(tǒng)測試的目的是通過與系統(tǒng)的需求定義做比較,發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合的地方。系統(tǒng)測試可以發(fā)現(xiàn)問題定義時犯下的錯誤。

70.B數(shù)據庫管理系統(tǒng)是數(shù)據庫的機構,它是一種系統(tǒng)軟件,負責數(shù)據庫中的數(shù)據組織、數(shù)據操縱、數(shù)據維護、控制及保護和數(shù)據服務等,是一種在操作系統(tǒng)支持下的系統(tǒng)軟件,因此本題答案為B)。

71.D位運算;條件判斷y>>1對循環(huán)沒有任何影響,始終為真,所以循環(huán)是一個無限循環(huán)。

72.A解析:順序存儲結構就是用一組地址連續(xù)的存儲單元依次存儲該線性表中的各個元素,鏈式存儲結構中各數(shù)據結點的存儲序號是不連續(xù)的,并且各結點在存儲空間中的位置關系與邏輯關系也不一致,所以選項A是正確的。兩者都可以存儲線性的、有序的邏輯結構,所以選項B、C不正確。順序結構使用的是連續(xù)物理空間,鏈式結構可以使用零散的物理空間存儲,鏈式結構更靈活,不存在誰節(jié)約空間的說法,所以選項D不正確。

73.C本題重點考察二維數(shù)組名作為實參進行參數(shù)傳遞,在主函數(shù)中調用了fun函數(shù),實參為二維數(shù)組名a和兩個整數(shù)4.0,這樣對應定義fun函數(shù)首部有三種形式,這里采用了第一種形式——行指針,這樣在fun函數(shù)對s[i][j]進行操作實際上就是對主函數(shù)中的a[i][j]進行操作,再分析fun函數(shù)的作用便可知,是求二維數(shù)組第0列中最大的那個元素。因此C選項正確。

74.C解析:本題考查“邏輯或”運算的特例。本題中if語句的條件表達式為(j++||k++)&&i++,首先計算表達式(j++||k++)的值,++運算符位于右側,因此先取j、k當前值進行運算,因j=1,所以表達式(j++||k++)的值為真,k++表達式不再執(zhí)行,故執(zhí)行完表達式(j++||k++)&&i++后,j=2、k=2、i=2。

75.C文件由數(shù)據序列組成,可以構成二進制文件或文本文件。故本題答案為C選項。

76.Breturn語句又稱為返回語句。該語句的格式如下:“return;”和“return(<表達式>);”。其中,return是關鍵字。該語句有兩種格式:不帶返回值格式和帶返回值格式。該語句用在被調用函數(shù)中,在被調用函數(shù)中執(zhí)行到該語句時,將結束對被調用函數(shù)的執(zhí)行,并把控制權返回給調用函數(shù),繼續(xù)執(zhí)行調用函數(shù)后邊的語句。在帶有返回值的情況下,將return語句所帶的表達武的值返回給調用函數(shù),作為被調用函數(shù)的值。在被調用函數(shù)中,可以用return語句,也可以不用return語句。如果要求被調用函數(shù)有返回值,則一定要用return語句,采用return(<表達式>);格式。如果被調用函數(shù)不需要返回值,并且當被調用函數(shù)的所有語句執(zhí)行完后進行返回,則被調用函數(shù)可以不用return語句。

77.C

78.D媒體分為感覺媒體、表示媒體、存儲媒體、傳輸媒體和表現(xiàn)媒體五種,“多媒體技術”中的媒體強調的是感覺媒體。

79.D解析:文件系統(tǒng)所管理的數(shù)據文件基本上是分散的、相互獨立的,因此相對于數(shù)據庫系統(tǒng),以此為基礎的數(shù)據處理存在3個缺點,數(shù)據冗余大、數(shù)據的不一致性、程序與數(shù)據的相互依賴(簡稱為數(shù)據依賴)。注意:文件系統(tǒng)和數(shù)據庫系統(tǒng)各自的特點,人工管理階段及數(shù)據庫系統(tǒng)三代的特點。

80.D

81.錯誤:arr[i+1]=arr[i];

正確:arr[i]=arr[i+1];

【解析】題目中要求刪除數(shù)列中值為x的元素,需要將數(shù)列中的每一個元素與指定數(shù)值x相比較。如果比較結果為第i個元素與x相等,則把第i個位置以后的元素前移一個位置,因此,“arr[i+1]=arr[i];”應改為“arr[i]=arr[i+1]”。

82.voidproc(int(*s)[10],int*b,int*n,intmm,intnn){inti,j,k=0;for(i=0;i<mm;i++)//i是表示其行的下標for(j=0;j<nn;j++)//j是表示其列的下標b[k++]=s[i][j];//把其放到b的一維數(shù)組中*n=k;//把b數(shù)組的長度通過形參n傳回到主函數(shù)中}【解析】要將M行N列的二維數(shù)組中的數(shù)據,按行的順序依次放到一維數(shù)組中,可以通過首先行循環(huán),然后列循環(huán)取出二維數(shù)組中的每一個元素,并將其放入一維數(shù)組中。最后,將一維數(shù)組的長度通過形參返回到主函數(shù)當中。2022-2023年湖南省常德市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________

一、單選題(20題)1.

2.設一組初始記錄關鍵字序列(5,2,6,3,8),以第一個記錄關鍵字5為基準進行一趟快速排序的結果為()。

A.2,3,5,8,6B.3,2,5,8,6C.3,2,5,6,8D.2,3,6,5,8

3.對線性表進行折半查找時,要求線性表必須()。A.A.以順序方式存儲

B.以順序方式存儲,且結點按關鍵字有序排列

C.以鏈式方式存儲

D.以鏈式方式存儲,且結點按關鍵字有序排列

4.對長度為n的線性表進行順序查找,在最壞情況下需要比較的次數(shù)為()。

A.125B.n/2C.nD.n+1

5.下面關于串的的敘述中,哪一個是不正確的()。

A.串是字符的有限序列

B.空串是由空格構成的串

C.模式匹配是串的一種重要運算

D.串既可以采用順序存儲,也可以采用鏈式存儲

6.

7.有以下程序voidf(intx,inty){intt;if(x<y){t=x;x=Y;y=t;)}main{inta=4,b=3,c=5;f(a,b);f(a,c);f(b,c);printf("%d,%d,%d\n",a,b,c);}執(zhí)行后輸出結果是()。A.3,4,5B.5,3,4C.5,4,3D.4,3,5

8.最小堆[0,3,2,5,7,4,6,8],在刪除堆頂元素0之后,其結果是()

A.[3,2,5,7,4,6,8]

B.[2,3,5,7,4,6,8]

C.[2,3,4,5,7,8,6]

D.[2,3,4,5,6,7,8]

9.樹的度為3,且有9個度為3的節(jié)點,5個度為1的節(jié)點,但沒有度為2的節(jié)點。則該樹中的葉子節(jié)點數(shù)為()。

A.18B.33C.19D.32

10.在調用函數(shù)時,如果實參是簡單變量,它與對應形參之間的數(shù)據傳遞方式是().

A.地址傳遞B.單向值傳遞C.由實參傳給形參,再由形參傳回實參D.傳遞方式由用戶指定

11.對長度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是()。

A.快速排序B.冒泡排序C.直接插入排序D.堆排序

12.

下列程序的輸出結果是()。

#include<stdio.h>

main

{inta[2][3]={{1,2,3),{4,5,6)),(*p)[3],i;

p=a;

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

{if(i<2)

p[1][i]=p[1][i]-1;

else

p[1][i]=1;

}

printf("%d\n",a[o][1]+a[1][1]+a[1][2]);

}

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

13.

14.下列運算符中優(yōu)先級最低的算符是()。

A.||B.!=C.<;=D.十

15.若有以下程序:inta=1,b=2;a=a^b;b=b^a;則執(zhí)行以上語句后a和b的值分別是()。A.a=1,b=2B.a=3,b=lC.a=3,b=2D.a=2,b=l

16.C語言中函數(shù)返回值的類型是由()決定的。

A.return語句中的表達式類型B.調用該函數(shù)的主調函數(shù)類型C.定義函數(shù)時所指定的函數(shù)類型D.以上說法都不正確

17.以下程序是用來計算兩個非負數(shù)之間的最大公約數(shù):我們假設x,y中最大的那個數(shù)的長度為n,基本運算時間復雜度為O(1),那么該程序的時間復雜度為()A.O(1)B.O(logn)C.O(n)D.O(n^2)

18.有以下程序voidf(int*x,int*y){intt;t=*x;*x=*y;*y=t;}main(){inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;p=a;q=&a[7];while(p<q){f(p,q);p++;q--;}for(i=0;i<8;i++)printf("%d,",a[i]);}程序運行后的輸出結果是

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

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

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

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

19.有以下程序:#include<stdio.h>voidmain(){char*s=“\ta\018bc”;for(;*s!=‘\0’;s++)printf(“*”);printf(“\n”);}程序運行后的輸出結果是()。

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

20.當執(zhí)行以下程序段時,()。x=-l:do{x=x*X;)while(!x);A.循環(huán)體將執(zhí)行一次B.循環(huán)體將執(zhí)行兩次C.循環(huán)體將執(zhí)行無限次D.系統(tǒng)將提示有語法錯誤

二、2.填空題(20題)21.函數(shù)check用來判斷字符串s是否是“回文”(順讀和倒讀都一樣的字符串為“回文”,如abeba)。是則函數(shù)返回值1,否則返回值0,請?zhí)羁铡?/p>

intcheck(char*s)

{

char*p1,*p2;intn;

n=strlen(s);

p1=s;

p2=【】;

while(p1<p2)

{

if(*p1!=*p2)break;

else{p1++;p2--;}

}

if(【】)return0;

elsereturn1;

}

22.在關系模型中,若屬性A是關系R的主碼,屬性A的取值不能為空,稱為約束。

23.下列程序的輸出結果是______。

main()

{inti,sum;

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

sum+=i;

printf("%d",sum);

}

24.有定義chara,b;若想通過&運算符保留a對應的二進制數(shù)的第3位和第6位的值,其余位置0,則b的二進制數(shù)應是【】。

25.以下函數(shù)的功能是求出能整除x且不是偶數(shù)的各整數(shù),并按從小到大的順序放在pp所指的數(shù)組中,這些除數(shù)的個數(shù)通過形參n返回。例如,若x中的值為30,則有4個數(shù)符合要求,它們是1,3,5,15。請按題意,完成填空。

試題程序:

#include<conio.h>

#include<stdio.h>

voidfun(intx,intpp[],int*n)

{inti,j=0;

for(i=1;i<x;i+=2)

if(x%i==0)pp[j++]=i;

【】;

}

main()

{intx,aa[1000],n,i;

clrscr();

printf("\nPleasenteranintegernumber:\n");scanf("%d",&x);

fun(x,aa,&n);

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

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

printf("\n");

}

26.下列程序的功能是將字符串s中所有的字符c刪除。請?zhí)羁铡?/p>

#include<stdio.h>

main()

{chars[80];

inti,j;

gets(s);

for(i=j=0;s[i]!='\0';i++)

if(s[i]!='c')

s[j]='\0';

puts(s);

}

27.若有定義inta[4][4]={1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},則初始化后,a[1][1]得到的初值是______。

28.以下程序的輸出是【】。

main()

{

charstr1[]="Howdoyoudo",*p1=str1;

strcpy(str1+strlen(str1)/2,"esshe");

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

}

29.數(shù)據字典是各類數(shù)據描述的集合,它通常包括5個部分,即數(shù)據項、數(shù)據結構、數(shù)據流、______和處理過程。

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

main()

{intX=10,y=20,t=0;

if(X==y)t=x;x=y;y=t;

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

}

31.以下程序的輸出結果是【】。

main()

{charc=′z′;

printf("%c",c-25);}

32.以下程序的輸出結果是【】。

#defineMAX(x,y)(x)>(y)?(x):(y)

main()

{inta=5,b=2,c=3,d=3,t;

t=MAX(a+b,c+d)*10;

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

}

33.已有定義:charc='';inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&Ra;后b的值為______。

34.按照邏輯結構分類,數(shù)據結構可分為線性結構和非線性結構,二叉樹屬于______。

35.fseek函數(shù)的正確調用形式是【】。

36.【】是數(shù)據庫設計的核心。

37.若有以下程序

main()

{inta[4][4]={{1,2;-3,-4},{0,-12,-13,14},{21,23,0,-24},{-31,32,-33;0}};

inti,j,s=0;

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

{for(j=0;j<4;j++)

if(a[i][j]<0)continue;

if(a[i][j]==0)break;

s+=a[i][j];

}

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

}

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

38.在面向對象方法中,類之間共享屬性和操作的機制稱為______。

39.一棵二叉樹第6層(根結點為第一層)的結點最多為______個。

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

三、1.選擇題(20題)41.有以下程序:#inelude<stdio.h>main(){inti,j,x=0;for(i=0;i<2;i++){x++;for(j=0;j<=3;j++){fi(j%2)continue;x++;x++;}pfinff("x=%d\n",x);}程序執(zhí)行后的輸出結果是()。

A.x=4B.x=8C.x=6D.x=12

42.設有如下程序#include<stdio.h>main(){int**k,*j,i=100;j=&i;k=&j;printf("%d\n",**k);}上述程序的輸出結果是_______。

A.運行錯誤B.100C.i的地址D.j的地址

43.在C語言中,關于函數(shù)fseek的說法正確的是()。

A.使位置指針重新返回文件的開頭

B.使位置指針到文件的結尾

C.可以改變文件位置指針

D.利用fseek函數(shù)只能實現(xiàn)文件順序讀寫

44.請選出以下程序的輸出結果______。#include<stdio.h>sub(x,y,z)intx,y*z;{*z=y-x;}main(){inta,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf("%d,%d,%d\n",a,b,c);}

A.5,23B.-5,-12,7C.-5,-12,-17D.5,2,-7

45.下列描述中,不是線性表順序存儲結構特征的是

A.不便于插入和刪除B.需要連續(xù)的存儲空間C.可隨機訪問D.需另外開辟空間來保存元素之間的關系

46.結構化程序由3種基本結構組成,3種基本結構組成的算法()。

A.可以完成任何復雜的任務B.只能完成部分復雜的任務C.只能完成符合結構化的任務D.只能完成一些簡單的任務

47.以下選項中合法的實型常數(shù)是A.5E2.0B.E-3C.2.00E-01D.1.3E

48.變量m的值為8,m的地址為1010,若欲使p為指向m的指針變量,則下列賦值正確的是()。

A.&m=8B.*p=8C.*p=1010D.p=&m

49.對于長度為n的線性表,在最壞情況下,下列各排序法所對應的比較次數(shù)中正確的是()。

A.冒泡排序為n/2B.冒泡排序為nC.快速排序為nD.快速排序為n(n-1)/2

50.數(shù)據庫設計包括兩個方面的設計內容,它們是()

A.概念設計和邏輯設計B.模式設計和內模式設計C.內模式設計和物理設計D.結構特性設計和行為特性設計

51.判斷字符串s1是否大于字符串s2,應該使用()。

A.if(strcmp(s1,s2)<0)

B.if(s1>s2)

C.if(strcmp(s2,s1)<0)

D.if(strcmp(s1,s2))

52.與進制數(shù)101.01011等值的十六進制數(shù)是()

A.A.BB.5.51C.A.51D.5.58

53.可以作為Windows外殼程序的是()

A.程序管理器B.文件管理C.程序管理器和文件管理器D.主群組

54.下列程序的輸出結果是_____。intfunc(inta,intb){return(a+b);}main(){intx=2,y=5,z=8,r;r=func(func(x,y),z);printf("%\d\n",r);}

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

55.下面的程序段運行后,輸出結果是inti,j,x=0;staticinta[8][8];for(i=0;<3;++)for(j=0;<3;j++)a[i][j]=2*i+j;for(i=0;<8;++)x+=a[i][j];printf("%d",x);

A.9B.不確定值C.0D.18

56.以下程序的輸出結果是main(){intc=35;printf("%d\n",c&c);}

A.0B.70C.35D.1

57.有以下程序voidss(char*s,chart){while(*s){if(*s==t)*s=t-'a'+'A';s++;}}main(){charstrl[100]=“abcddfefdbd”,c=‘d’;ss(strl,c);printf(“%s\n”,strl);}程序運行后的輸出結果是

A.ABCDDEFEDBDB.abeDDfefDbDC.abcAMefAbAD.Abcddfefdbd

58.下面函數(shù)的功能是()sss(s,t)char*s,*t;{while((*s)&&(*t)&&(*t++==*s++));return(*s-*t);}

A.求字符串的長度B.比較兩個字符串的大小C.將字符串s復制到字符串t中D.將字符串s接續(xù)到字符串t中

59.若有定義:inta=4,b=5;floatx=3.4,y=2.1;,則下列表達式的值為()。(float)(a+B)/2+(int)x%(int)y

A.5.5B.55C.5.5D.55

60.有下列函數(shù)定義:

fun(floath)

{printf("%f,%f\n”,h,h*h);}

該函數(shù)的類型是()。

A.int類型B.float類型C.void類型D.函數(shù)無類型說明,定義有錯

四、選擇題(20題)61.有三個關系R、s和T如下:

由關系R和s通過運算得到關系T,則所使用的運算為()。

A.并B.自然連接C.笛卡爾積D.交

62.

63.

64.下述程序執(zhí)行的輸出結果是()。

#include<stdio.h>

main()

{chara[2][4];,

strcpy(a。"are");strcpy(a[1],"you");

a[o][3]=&;

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

}

A.are&you

B.you

C.are

D.&

65.為了提高軟件的獨立性,模塊之間最好是()。

A.控制耦合B.公共耦合C.內容耦合D.數(shù)據耦合

66.下面的變量說明中__________是正確的。

A.char:a,b,c;

B.chara;b;c;

C.chara,b,c;

D.chara,b,c

67.

68.第

11

若有定義:char*st="howareyou";下列程序段中正確的是

A.chara[11],*p;strcpy(p=a+1,&st[4]);

B.chara[11];strcpy(++a,st);

C.chara[11];strcpy(a,st);

D.chara[],*p;strcpy(p=&a[1],st+2);

69.檢查軟件產品是否符合需求定義的過程稱為()。

A.確認測試B.集成測試C.驗證測試D.驗收測試

70.數(shù)據庫管理系統(tǒng)是()。

A.操作系統(tǒng)的一部分B.在操作系統(tǒng)支持下的系統(tǒng)軟件C.一種編譯系統(tǒng)D.一種操作系統(tǒng)

71.有以下程序:

voidmain()

{

inty=10;

while(y>>1){printf("y=%d\n",y);}

}

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

A.y=0

B.y=-1

C.y=1

D.while構成無限循環(huán)

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

A.順序存儲結構的存儲一定是連續(xù)的,鏈式存儲結構的存儲空間不一定是連續(xù)的

B.順序存儲結構只針對線性結構,鏈式存儲結構只針對非線性結構

C.順序存儲結構能存儲有序表,鏈式存儲結構不能存儲有序表

D.鏈式存儲結構比順序存儲結構節(jié)省存儲空間

73.有以下程序:

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

A.4B.34C.31D.32

74.有以下程序:main(){inti=1,j=1,k=2;if((j++‖k++)&&i++)printf("%d,%d,%d\n",i,j,k);}執(zhí)行后的輸出結果是______。

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

75.下列關于C語言文件的敘述中正確的是()。

A.文件由一系列數(shù)據依次排列組成,只能構成二進制文件

B.文件由結構序列組成,可以構成二進制文件或文本文件

C.文件由數(shù)據序列組成,可以構成二進制文件或文本文件

D.文件由字符序列組成,其類型只能是文本文件

76.以下關于return語句的敘述中正確的是()。

A.一個自定義函數(shù)中必須有一條return語句

B.一個白定義函數(shù)中可以根據不同情況設置多條return語句

C.定義成void類型的函數(shù)中可以有帶返回值的return語句

D.沒有return語句的自定義函數(shù)在執(zhí)行結束時不能返回到調用處

77.

78.作為信息處理熱點技術之一的“多媒體技術”中的媒體,強調的是()。

A.存儲媒體B.表現(xiàn)媒體C.傳輸媒體D.感覺媒體

79.相對于數(shù)據庫系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據關聯(lián)差、數(shù)據不一致性和()。

A.可重用性差B.安全性差C.非持久性D.冗余性

80.

五、程序改錯題(1題)81.假如整數(shù)數(shù)列中的數(shù)不重復,并存放在數(shù)組中。下列給定的程序中,函數(shù)proc()的功能是:刪除數(shù)列中值為x的元素。n中存放的是數(shù)列中元素的個數(shù)。請修改程序中的錯誤,使它能夠得出正確的結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:

六、程序設計題(1題)82.請編寫函數(shù)proc,該函數(shù)的功能是:將M行N列的二維數(shù)組中的數(shù)據,按行的順序依次放到一維數(shù)組中,一維數(shù)組中數(shù)據的個數(shù)存放在形參n所指的存儲單元中。例如,若二維數(shù)組中的數(shù)據為132333431424344415253545則一維數(shù)組中的內容應該是132333431424344415253545。注意:部分源程序給出如下。請勿改動main函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。試題程序:#include<stdio.h>voidproc(int(*s)[103,int*b,int*n,intrain.intnn){ }voidmain{intarr[10][10]={{33,33,33,33),{44,44,44,44},{55,55,55,55}),i,j;inta[l00]={o),n=o;printf("Thematrix:\n");for(i=0;i<3;i++){for(j=0;j<4;j++)printf("%3d",arr[i][j]):printf("\n");}proc(arr,a,&n,3,4):printf("TheAarray:\n");for(i=0;i<n;i++)printf("%3d",a[i]):printf("\n\n");}

參考答案

1.A

2.C

3.B

4.CC?!窘馕觥繉€性表進行順序查找時,從表中的第一個元素開始,將給定的值與表中逐個元素的關鍵字進行比較,直到兩者相符,查找到所要找的元素為止。在最壞情況下,要查找的元素是表的最后一個元素或查找失敗,這兩種情況都需要將這個元素與表中的所有元素進行比較,因此比較次數(shù)為n。

5.B

6.A

7.Da、b、C都是按值傳遞給函數(shù)f,函數(shù)f不能改變它們的值。所以,a、b、t的值仍然是4、3、5。

8.C

9.C設葉子結點數(shù)為〃,則該樹的結點數(shù)為n+9+5=n+\n14,根據樹中的

溫馨提示

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

評論

0/150

提交評論