2021年四川省樂山市全國計算機等級考試C語言程序設計_第1頁
2021年四川省樂山市全國計算機等級考試C語言程序設計_第2頁
2021年四川省樂山市全國計算機等級考試C語言程序設計_第3頁
2021年四川省樂山市全國計算機等級考試C語言程序設計_第4頁
2021年四川省樂山市全國計算機等級考試C語言程序設計_第5頁
已閱讀5頁,還剩110頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年四川省樂山市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________

一、單選題(20題)1.向堆中插入一個元素的時間復雜度為________。

A.O(log2n)B.O(n)C.O(1)D.O(nlog2n)

2.若整型變量a、b、c、d中的值依次為2、2、3、4,則條件表達式a<b?a:c<d?c:d的值是()。A.1B.2C.3D.4

3.設有如下定義語句:intm[]={2,4,6,8,10},*k=m;以下選項中,表達式的值為6的是()。

A.*(k+2)B.k+2C.*k+2D.*k+=2

4.若有定義“doublea;”,則正確的輸入語句是()。A.A.seaM("%1f",&a);B.scanf("%f",&a);

C.scanf("%1f",&a)

D.scanf("%1e",&a);

5.有以下程序: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

6.在深度為5的滿二叉樹中,葉子結點的個數(shù)為()。

A.31B.32C.16D.15

7.數(shù)據(jù)的不可分割的基本單位是()。

A.元素B.結點C.數(shù)據(jù)類型D.數(shù)據(jù)項

8.以下敘述中錯誤的是()。

A.向量屬于線性結構B.二叉鏈表是二叉樹的存儲結構C.棧和隊列是線性表D.循環(huán)鏈表是循環(huán)隊列的鏈式存儲結構

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

10.下列程序的運行結果是()。

#include<stdio.h>

main()

{intx=5,a=1,b=2,C=5,d=0;

if(a<B)

if(b!=3)

if(!C)

x=1;

else

if(D)x=1;

elsex=-1;

printf("%d",x);

}

A.-1B.0C.1D.不確定的值

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

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

12.

13.已有定義int(*q)(),指針q可以()。

A.指向函數(shù)的入口地址B.代表函數(shù)的返回值C.表示函數(shù)的類型D.表示函數(shù)返回值的類型

14.設有說明:charw;intx;f1oaty;doublez;則表達式w*x+z-y值的數(shù)據(jù)類型為()。

A.floatB.charC.intD.double

15.在關系中凡能惟一標識元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個鍵,它們稱為該表的()

A.連接碼B.關系碼C.外碼D.候選碼

16.有以下程序:#includedstdi0.h>#definef(x)X*x*xmain(){inta=3,S,t;s=f(a+1);t=f((a+1));printf("%d,%d\n",S,t);}程序運行后的輸出結果是()。A.10,64B.10,10C.64,10D.64,64

17.以下說法正確的是()。

A.C語言只接受十進制的數(shù)

B.C語言只接受二進制、八進制、十六進制的數(shù)

C.C語言只接受二進制、十進制、十六進制的數(shù)

D.C語言只接受八進制、十進制、十六進制的數(shù)

18.下面敘述中錯誤的是()。

A.軟件測試的目的是發(fā)現(xiàn)錯誤并改正錯誤

B.對被調試的程序進行“錯誤定位”是程序調試的必要步驟

C.程序調試通常也稱為Debug

D.軟件測試應嚴格執(zhí)行測試計劃,排除測試的隨意性

19.若有定義floata=25,b,*p=&b;,則下列對賦值語句*p=a;和p=&a;的正確解釋為()。

A.兩個語句都是將變量a的值賦予變量p

B.*p=a是使p指向變量a,而p=&a是將變量a的值賦予變量指針p

C.*p=a是將變量a的值賦予變量b,而p=&a是使p指向變量a

D.兩個語句都是使p指向變量a

20.下面程序的輸出是()。A.17B.18C.23D.24

二、2.填空題(20題)21.以下程序運行后的輸出結果是______。

main()

{

inta,b,c;

a=25;

b=025;

c=0x25;

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

}

22.長度為n的順序存儲線性表中,當在任何位置上插入一個元素概率都相等時,插入一個元素所需移動元素的平均個數(shù)為【】。

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

main()

{intx=0;

sub(&x,8,1);

printf(“%d\n”,x);

}

sub(int*a,intn,intk)

{if(k<=n)sub(a,n/2,2*k);

*a+=k;

}

24.若有如下程序:

main()

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

y=++(*t);

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

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

25.數(shù)據(jù)庫管理系統(tǒng)常見的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和【】3種。

26.將以下程序寫成三目運算表達式是【】。

if(a>b)max=a;

elsemax=b;

27.下列程序的輸出結果是【】。

main()

{inta=1,b=2;

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

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

}

28.下列程序的運行結果為【】。

#include<stdio.h>

main()

{staticcharstr1[40];

charstr2140];

strcpy(str2,"China");

strcat(str1,str2);

strcat(str1,"isagreatcountry!");

printf("%s%s",str2,strl);

printf("%d%d\n",strlen(str2),strlen(str1));

}

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

main()

{

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

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

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

}

30.以下程序是求矩陣a,b的和,結果存入矩陣c中,并按矩陣形式輸出,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{inta[3][4]={13,-2,7,5},{1,0,4,-3},{6,8,0,2}};

intb[3][4]={{-2,0,1,4},{5,-1,7,6},{6,8,0,2}};

inti,j,c[3][4];

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

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

c[i][j]=【】;

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

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

printf("%3d",c[i][j]);

printf("\n");}}

31.設x、y、z均為int型變量,請寫出描述“x或y中至少有一個小于z”的表達式______。

32.若有定義:intx=1,y=2;floata=3.7,b=2.1;則(x+y)%2+(int)a/(int)b表達式的值為()。

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

main()

{inta=0;

a+=(a=8);

printf(“%d\n”,A);

}

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

main()

{

intx=10,y=20,t=0

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

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

}

35.以下函數(shù)的功能是刪除字符串s中的所有數(shù)字字符。請?zhí)羁铡?/p>

voiddele(char*s)

{

intn=0,i;

for(i=0,s[i];i++)

if(【】)

s[n++]=s[i];

s[n]=【】;

}

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

37.以下程序中,for循環(huán)體執(zhí)行的次數(shù)是【】。

#defineN2

#defineMN+1

#defineKM+1*M/2

main()

{

inti;

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

{…}

}

38.數(shù)據(jù)庫保護分為:安全性控制、______、并發(fā)性控制和數(shù)據(jù)的恢復。

39.算法的復雜度主要包括【】復雜度和空間復雜度。

40.以下函數(shù)rotate的功能是:將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第。列中,把a所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b所指二維數(shù)組中的其他數(shù)據(jù)不變。

#defineN4

voidrotate(inta[][N],intb[][N])

{int,i,j;

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

{b[i][N-1]=【】;

【】=a[N-1][i];

}

}

三、1.選擇題(20題)41.在設計程序時,應采納的原則之—是______。

A.程序結構應有助于讀者理解B.不限制goto語句的使用C.減少或者取消注解行D.程序越短越好

42.設y為整型變量,a=6,a的地址為E2000,b=14,b的地址為E2001;執(zhí)行語句b=&a;y=&a;后Y的值為()。

A.E2000B.E2001C.6D.14

43.下列描述中正確的是()。

A.軟件工程只是解決軟件項目的管理問題

B.軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問題

C.軟件工程的主要思想是強調在軟件開發(fā)過程中需要應用工程化原則

D.軟件工程只是解決軟件開發(fā)過程中的技術問題

44.下列敘述中錯誤的是A.計算機不能直接執(zhí)行用C語言編寫的源程序

B.C程序經(jīng)C編譯程序編譯后,生成后綴為.obj的文件是一個二進制文件

C.后綴為.obj的文件,經(jīng)連接程序生成后綴為.exe的文件是一個二進制文件

D.后綴為.obj和.exe的二進制文件都可以直接運行

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

fun(int*p)

{return*p;}

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

A.不確定的值

B.形參p中存放的值

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

D.形參p的地址值

46.用鏈表表示線性表的優(yōu)點是()。

A.便于隨機存取B.花費的存儲空間較順序存儲少C.便于插入和刪除操作D.數(shù)據(jù)元素的物理順序和邏輯順序相同

47.下列選項中正確的語句是

A.chars[8];s={"Beijing"};

B.char*s;s={"Beijing"};

C.chars[8];s="Beijing";

D.char*s;s="Beijing";

48.以下有4組用戶標識符,其中合法的一組是______。

A.FOR

B.4d

C.f2G3

D.WORD-subDOIFvoidCaseSizeabcdefine

49.為用戶與數(shù)據(jù)庫系統(tǒng)提供接口的語言是

A.高級語言B.數(shù)據(jù)定義語言(DDL)C.數(shù)據(jù)操縱語言(DML)D.匯編語言

50.有以下程序#include<stdio.h>main0{inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的運行結果是

A.741B.963C.852D.875421

51.有以下程序main(){ihtm=3,n=r,x;x=-m++;X=x+8/++n;printf("%d\n",x);}程序運行后的輸出結果是

A.3B.5C.-1D.-2

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

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

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

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

D.線性表可以是空表

53.分布式數(shù)據(jù)庫系統(tǒng)不具有的特點是()。A.A.數(shù)據(jù)分布性和邏輯整體性B.位置透明性和復制透明性C.分布性D.數(shù)據(jù)冗余

54.下面關于對象概念的描述中,錯誤的是

A.對象就是C語言中的結構體變量

B.對象代表著正在創(chuàng)建的系統(tǒng)中的一個實體

C.對象是一個狀態(tài)和操作(或方法)的封裝體

D.對象之間的信息傳遞是通過消息進行的

55.下面函數(shù)調用語句含有實參的個數(shù)為func((exp1,exp2),(exp3,exp4,exp5));

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

56.以下敘述中錯誤的是()。

A.C程序中的#include和#define行均不是C語句

B.除逗號運算符外,賦值運算符的優(yōu)先級最低

C.C程序中,j++;是賦值語句

D.C程序中,+、-、*、/、%是算術運算符,可用于整型和實型數(shù)的運算

57.已知字母A的ASCⅡ碼為十進制數(shù)65,下面程序的輸出結果是()main(){charch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}

A.67,DB.B,CC.C,DD.不確定的值

58.運行下列程序,若從鍵盤輸入字母“a”,則輸出結果是()。charc;c=getchar();if(c>='a'&&c<='g')c=c+4;elseif(c>='g'&&c<='z')c=c-21;elseprintf("inputerror!\n");putchar(c);

A.fB.tC.eD.d

59.關于結構化程序設計原則和方法描述錯誤的是()。

A.選用的結構只準許有一個入口和一個出口

B.復雜結構應該用嵌套的基本控制結構進行組合嵌套來實現(xiàn)

C.不允許使用GOTO語句

D.語言中所沒有的控制結構,應該采用前后一致的方法來模擬

60.程序的3種基本控制結構的共同點是______。

A.不能嵌套使用B.只能用宋寫簡單的程序C.已經(jīng)用硬件實現(xiàn)D.只有一個入口和一個出口

四、選擇題(20題)61.在下列關于二叉樹的敘述中,選出正確的一項()。

A.在二叉樹中,任何一個結點的度都是2

B.二叉樹的度為2

C.在二叉樹中至少有一個結點的度是2

D.一棵二叉樹的度可以小于2

62.

63.若intk=8;則執(zhí)行下列程序后,變量k的正確結果是

main()

{intk=8;

switch(k)

{case9:k+=1;

case10:k+=1;

default:k+=1;

case11:k+=1;break;

}

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

}

A.12B.1

C.10D.9

64.算法的空間復雜度是指()。

A.算法在執(zhí)行過程中所需要的計算機存儲空間

B.算法所處理的數(shù)據(jù)量

C.算法程序中的語句或指令條數(shù)

D.算法在執(zhí)行過程中所需要的臨時工作單元數(shù)

65.有以下程序程序的運行結果是()。

A.a=2,b=lB.a=2,b=2C.a=1,b=lD.a=1.b=0

66.函數(shù)調用strcat(strcpy(str1,str2),str3)的功能是()。

A.將字符串str1復制到字符串str2中后再連接到字符串str3之后

B.將字符串str1連接到字符串str2之后再復制到字符串str3之后

C.將字符串str2復制到字符串str1之后再將字符串str3連接到字符串str1之后

D.將字符串str2連接到字符串str1之后再將字符串strl復制到字符串str3中

67.

68.有下列程序

main()

{

inta[5]={2,4,6,8,10},*p,**k;

p=a;

k=&p;

printf("%d",*(p++));

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

}

運行該程序,其輸出結果是

A.4B.22

C.24D.46

69.下列說法不正確的是

A.數(shù)據(jù)庫減少了數(shù)據(jù)冗余B.數(shù)據(jù)庫實現(xiàn)了數(shù)據(jù)的共享

C.數(shù)據(jù)庫避免了一切數(shù)據(jù)的重復D.數(shù)據(jù)庫具有較高的數(shù)據(jù)獨立性

70.已知字符‘A’的ASCII代碼值是65,字符變量cl的值是‘A’,c2的值是‘D’。則執(zhí)行語句printf(”%d,%d”,cl,c2—2);的輸出結果是()。

A.65,68B.A,68C.A,BD.65,66

71.(35)檢查軟件產(chǎn)品是否符合需求定義的過程稱為______。

A.確認測試

B.集成測試

C.驗證測試

D.驗收測試

72.

73.

74.設有二元關系R和三元關系s,下列運算合法的是()。

A.R∩SB.R∪SC.R-SD.R×S

75.

76.

有下列程序:

main

{inti,s=0,t[]={1,2,3,4,5,6,7,8,9);

for(i=0;i<9;i+=2)s+=*(t+i);

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

}

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

A.45B.20C.25D.36

77.

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

A.char:a,b,c;

B.chara;b;c;

C.chara,b,c;

D.chara,b,c

79.以下程序的輸出結果是()。main(){inti,a[4][4]={{1,3,5),{2,4,6},{3,5,7}};printf("%(1%d%d%d\n".a(chǎn)[O][3],a[1][2],a[2][1],a[3][0]);}A.0650B.1470C.5430D.輸出值不定

80.有以下程序:

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

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

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:根據(jù)形參m(2≤m≤9)的值,在m行m列的二維數(shù)組中存放如下所示的數(shù)據(jù),由main()函數(shù)輸出。

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

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

試題程序:

六、程序設計題(1題)82.編寫函數(shù)fun,其功能是:求ss所指字符串中指定字符的個數(shù),并返回此值。

例如,若輸入字符串123412132,輸入字符為l,則輸出3。

注意:部分源程序在文件PROGl.C中。

請勿改動主函數(shù)main和其他函數(shù)中的任何內容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。

參考答案

1.A

2.C本題考查三目運算符a<b?a:c<d?c:d也可寫成a<b?a:(c<d?c:d),所以根據(jù)優(yōu)先級,先算括號內的,c小于d為真取C的值,再看a小于b為假,所以取C的值。

3.A本題考查數(shù)組和指針,*k指針是指向rn數(shù)組的首地址,所以要使表達武的值為6,只需要指針指向第m[2],所以答案選擇A。-

4.D本題考查seanf函數(shù)的調用形式:scanf(格式字符串,輸入項地址表)。題中定義變量a為雙精度型變量,雙精度變量的格式符為“l(fā)e”;變量的地址用取地址符“&”加變量名表示,所以選項D正確。

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

6.C解析:二叉樹的一個性質是,在二叉樹的第k層上,最多有2(k-1)(k>=1)個結點。對于滿二叉樹,每一層上的結點數(shù)都達到最大值,即在滿二叉樹的第k層上有2k-1個結點。所以,在深度為5的滿二叉樹中,所有葉子結點在第5層上,即其結點數(shù)為2(k-1)=2(5-1)=16。

7.D

8.D循環(huán)鏈表是線性表的一種鏈式存儲結構,循環(huán)隊列是隊列的一種順序存儲結構。因此D選項敘述錯誤。本題答案為D選項。

9.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.

10.A解析:本題考查ifelse語句。第1個if語句,先判斷條件,發(fā)現(xiàn)a<b條件成立,執(zhí)行下列的語句;第2個if語句,先判斷條件,發(fā)現(xiàn)b!=3條件成立,執(zhí)行下列的語句:第3個if語句,先判斷條件,c=5,則!c條件不成立,執(zhí)行與其配對的else語句:第4個if語句,先判斷條件,d=0,條件不成立,則x=-1,結束循環(huán)。

11.D

12.A

13.A解析:本題考查的是指向函數(shù)的指針。函數(shù)指針的定義方式是:類型標識符(*指針變量名)()。其中,“類型標識符”為函數(shù)返回值的類型;“指針”指向函數(shù)的入口地址。

14.D

15.DD)【解析】在關系中凡能惟一標識元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個鍵,它們稱為該表的候選碼或候選鍵。從二維表的所有候選鍵中選取一個作為用戶使用的鍵稱為主鍵或主碼。

16.A本題考查帶參數(shù)的宏定義。第一次函數(shù)調用求S的值,x=a+1,所以X*X*X應寫成a+1*a+1*a+1,沒有括號優(yōu)先級,結果為l0,第二次函數(shù)調用x*X*X可寫成(a+1)*(a+1)*(a+1),所以結果為43=64。

17.DC語言中,整型常量可以用十進制、八進制和十六進制表示。故本題答案為D選項。

18.A軟件測試的目的是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程,并不涉及改正錯誤,所以選項A錯誤。程序調試的基本步驟有:錯誤定位、修改設計和代碼,以排除錯誤、進行回歸測試,防止引進新的錯誤。程序調試通常稱為Debug,即排錯。軟件測試的基本準則有:所有測試都應追溯到需求、嚴格執(zhí)行測試計劃,排除測試的隨意性、充分注意測試中的群集現(xiàn)象、程序員應避免檢查自己的程序、窮舉測試不可能、妥善保存測試計劃等文件。故答案為A選項。

19.C解析:“p”是指針變量,指向一個地址:“*p”,為p指針所指向地址的內容。

20.B

21.252137252137解析:本題中先定義了整型變量a、b和c,然后分別給賦值a為25,b為八進制的025,c為十六進制0x25。然后調用pruntf()函數(shù)將a、b和c分別用十進制輸出,且中間用空格隔開,八進制025轉換為十進制的值為21,十六進制的0x25轉換為十進制的值為37,故最后的輸出結果為252137。

22.n/2性表的任何位置插入一個元素的概率相等,即概率為p=1/(n+1),則插入一個元素時所需移動元素的平均次數(shù)為E=1/(n+1)(n-i+1)=n/2。

23.77解析:在主函數(shù)中定義了一個變量x并賦初值0,然后執(zhí)行函數(shù)調用語句,該語句的執(zhí)行過程為sub(&x,8,1)調用sub(&a,4,2),sub(&a,4,2)調用sub(&a,2,4),sub(&a,2,4)中由于2<4,所以if后面括號里的判斷為假,遞歸結束,執(zhí)行其后的*a+=k;語句此時x=x+k=0+4=4,回退到上一層調用函數(shù)sub(&x,4,2)中,執(zhí)行后面的語句,x=x+k=4+2=6,再回推到最上一層調用函數(shù)sub(&x,8,1)執(zhí)行后面的語句,x=x+k=6+1=7,所以最后輸出7。

24.66

25.關系模型關系模型解析:數(shù)據(jù)庫管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層系統(tǒng)管理軟件,是一種系統(tǒng)軟件,是用戶與數(shù)據(jù)庫之間的一個標準接口。其總是基于某種數(shù)據(jù)模型,可以分為層次模型、網(wǎng)狀模型和關系模型。

26.max=(a>b)?a:b;max=(a>b)?a:b;解析:本題考查三目運算符的用法,條件運算符要求有三個操作對象,稱三目(元)運算符,它是C語言中惟一的一個三目運算符。條件表達式的一般形式為:表達式1?表達式2:表達式3所以,我們可以寫成(a,b)?a:b,它是一個“條件表達式”。執(zhí)行順序是:如果(a>b)條件為真,則條件表達式取值a,否則取值b。注意:逗號表達式的執(zhí)行原理。

27.21

28.ChinaChinaisagreatcountry!525

29.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

30.a[i][j]+b[i][j]a[i][j]+b[i][j]解析:此題是雙重for循環(huán)結構應用在了二維數(shù)組中。外層for循環(huán)用來控制二維數(shù)組的行,內層for循環(huán)控制二維數(shù)組的列。

31.x<z‖y<zx<z‖y<z解析:本題考查邏輯運算符和邏輯表達式。x或y中至少有一個小于z,即x<z或y<z,是“或”的關系。

32.22解析:本題考查表達式的運算。因為x=1,y=2,所以表達式(x+y)%2=3%2=1,(int)a/(int)b=(int)}(3/2)=1,因此整個表達式的結果為(x+y)%2+(int)a/(int)b=1+1=2。

33.1616解析:在程序中首先將8賦值給變量a,然后再進行復合賦值運算。即a=a+a=8+8=16,所以該空格處應該填16。

34.20020,0解析:本題考查的知識點是if語句的基本概念。在主函數(shù)中首先定義了三個整型變量x、y,t,并分別給它們賦初值為10,20,0,接著執(zhí)行if語句,在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。

35.s[i]<'0'||s[i]>'9'或!(s[i]>='0'&&s[i]<='9')或!(isdigit(s[i]))或isdigit(s[i])==0或s[i]>'9'||s[i>'0'或!(s[i]<='9'&&s[i]>='0')或*(s+i)<'0'||*(s+i)>'9'或!(*(s+i)>='0'&&*(s+i)<=9或!(isdigit(*(s+i)))或*(s+i)>='9'&&*(s+i)<='0'或!(*(s+i)<='9'&&*(s+i)>='0'或isdigis[i]<'0'||s[i]>'9'或!(s[i]>='0'&&s[i]<='9')或!(isdigit(s[i]))或isdigit(s[i])==0或s[i]>'9'||s[i>'0'或!(s[i]<='9'&&s[i]>='0')或*(s+i)<'0'||*(s+i)>'9'或!(*(s+i)>='0'&&*(s+i)<=9或!(isdigit(*(s+i)))或*(s+i)>='9'&&*(s+i)<='0'或!(*(s+i)<='9'&&*(s+i)>='0'或isdigi解析:從一個字符串中刪除某字符的力‘法是從字符串的第一個字符開始一一判斷該字符是否是要被刪除,若不是則把它放到結果字符串中,若是則不放入結果字符串中。本題的第一個空應判斷s[i]是否為數(shù)字字符,只有在不是數(shù)字字符的情況下才存入結果字符串,所以應填入s[i]<'0'||s[i]>'9'。最后應在結果字符串的末尾填上字符串結束標志\\0。

36.數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DBMS)

37.44解析:將程序中所有的宏替換掉可得:M=2+1,K=2+1*2+1/2=4,所以for循環(huán)共循環(huán)了K-1+1次,即4-1+1共4次。

38.完整性控制完整性控制

39.時間時間解析:算法的復雜度主要指時間復雜度和空間復雜度。所謂算法的時間復雜度,是指執(zhí)行算法所需要的計算工作量;算法的空間復雜度,一般是指執(zhí)行這個算法所需要的內存空間。

40.a[0][i]b[i][0]a[0][i]b[i][0]解析:根據(jù)題意,第一處所在語句行的作用是把a數(shù)組中的第0行放到b數(shù)組的最后一列中,a數(shù)組的第0行用a[0][]來表示,所以第一處填a[0][i];第二所在語句行的作用是將a數(shù)組的最后一行放到b數(shù)組的第0列中,b數(shù)組的第0列用b[][0]來表示,所以,第二處應填b[i][0]。

41.A解析:濫用goto語句將使程序流程無規(guī)律,可讀性差;添加的注解行有利于對程序的理解,不應減少或取消;程序的長短要依照實際需要而定,并不是越短越好。

42.D解析:&是取地址運算符,y=&a是將a的地址賦給y,而a的地址沒有發(fā)生變化,因此y的值為E2000。

43.CC?!窘馕觥寇浖こ淌侵笇⒐こ袒乃枷霊糜谲浖拈_發(fā)、應用和維護的過程,包括軟件開發(fā)技術和軟件工程管理。

44.D

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

46.C【解析】在鏈表中因為除了存放數(shù)據(jù)元素之外,還要存放指針,所以鏈表花費的存儲空間要比順序表還要多,在插入和刪除數(shù)據(jù)元素時,只需要移動相應的記錄指針即可,在鏈表中,數(shù)據(jù)的物理結構與邏輯結構不一定相同,因為是靠指針來實現(xiàn)對數(shù)據(jù)的指定的,所以不能進行隨機存取。

47.D解析:本題考核的知識點是字符欺組初始化及字符型指針的應用。字符數(shù)組初始化可以有兩種方式:方式一,按單個字符的方式賦初值。方式二,把一個字符串作為初值賦給字符數(shù)組。比如:charch[5]=rabc”),選項A屬于這種情況,但是選項A定義的字符數(shù)組長度為8,由于最后還要加一個“\\0”做結束標志,所以賦給他的字符串長度應小于等于7,所以選項A不正確;在給字符數(shù)組賦初值的時候,應該用花括號“{”和“}”將字符串括起來,故選項C不正確。將字符型指針變量指向字符串也有兩種方法,一是在定義指針變量時就給其賦初值,比如:char*p='student';二是給指針變量賦值,比如:p='student';(p已經(jīng)被定義為字符型指針變量;),故選項D正確,而選項C中的花括號是多余的,應該去掉,所以,4個選項中選項D符合題意。

48.C解析:C語言的標識符的定義為:以字母或下劃線開頭的由字母、數(shù)字字符、下戈峨組成的字符串。而且標識符不能與關鍵字相同。

49.C解析:DBMS提供數(shù)據(jù)操縱語言(DML)實現(xiàn)對數(shù)據(jù)庫中數(shù)據(jù)的操作,數(shù)據(jù)操縱語言(DML)是用戶(包括應用程序)與數(shù)據(jù)庫系統(tǒng)的接口。數(shù)據(jù)操縱語言通常包括檢索和更新功能。注意:程序模塊中語言處理部分的分類,各子類的定義及其功能。

50.C解析:本題考查變量的自加“++”和自減“--”問題。當y的值為9、6或3時,if語句的條件成立,執(zhí)行輸出語句,輸出表達式--y的值,y的自減要先于輸出語句執(zhí)行,故輸出結果為852。

51.D解析:主函數(shù)中首先定義了整型變量m、n和x,并給m和n賦初值為3和4,接著執(zhí)行兩條賦值語句,第一條x=-m++等價于x=-(m++),其值即為-3,第二條x=x+8/++n等價于x=x+8/(++n),即為x=-3+8/5=-2,因此最后輸出x的值為-2。

52.CC.【解析】線性表是一種線性結構,由n(n≥0)個元素組成,所以線性表可以是空表。但是在線性表中,第一個結點沒有前件,最后一個結點沒有后件,其他結點有且只有一個前件和后件,所以選項C.是錯誤的。

53.D解析:分布式數(shù)據(jù)庫系統(tǒng)具有數(shù)據(jù)分布性、邏輯整體性、位置透明性和復制透明性的特點,其數(shù)據(jù)也是分布的;但分布式數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)經(jīng)常重復存儲,數(shù)據(jù)也并非必須重復存儲,主要視數(shù)據(jù)的分配模式而定。若分配模式是一對多的,即一個片段分配到多個場地存放,則是冗余的數(shù)據(jù)庫,否則是非冗余的數(shù)據(jù)庫。

54.A解析:對象是由數(shù)據(jù)和容許的操作組成的封裝體,與客觀實體有直接的對應關系,對象之間通過傳遞消息互相聯(lián)系,從模擬現(xiàn)實世界中不同事物彼此之間的聯(lián)系,B)、C)、D)是正確的,對象的思想廣泛應用于C++、Java等語言中,因此A)錯誤。

55.B解析:函數(shù)調用的一般形式為:函數(shù)名(形參表)若函數(shù)無形參,調用形式為:函數(shù)名(),當所調用的函數(shù)用于求出某個值時,函數(shù)的調用可作為表達式出現(xiàn)在允許表達式出現(xiàn)的任何地方,本題中調用語句的參數(shù)個數(shù)為2個。

56.D解析:“%”是求余運算符,其兩側的數(shù)值只能為整型,不能用于實型數(shù)據(jù)的運算。

57.A

58.C解析:首先,getchar函數(shù)通過鍵盤讀入字符'a',即c='a',(其實c得到的是字符a的ASCII碼值),然后判斷if語句的控制條件,發(fā)現(xiàn)'a'>='a'&&'a'<='g'成立,則執(zhí)行下一步列的語句,c=c+4,c得到的是字符e的ASCII碼值,退出if語句,通過putchar函數(shù)輸出字符e。

59.C解析:限制使用GOTO語句是結構化程序設計的原則和方法之一,但不是絕對不允許使用GOTO語句。其他3項為結構化程序設計的原則。

60.D

61.D節(jié)點的度是其子節(jié)點的個數(shù),樹的度是其節(jié)點度的最大值,二叉樹的度小于等于2.

62.D

63.C在本題中,程序首先定義了一個整型變量k,并賦初值8,然后執(zhí)行switch選擇結構。由于k的初值為8,與程序中給出的選擇結構不匹配,那么只能執(zhí)行default結構,即執(zhí)行k+=1,將變量k的值變?yōu)?,執(zhí)行完后,由于沒有break語句,程序接著往下執(zhí)行,執(zhí)行case11結構,將變量k的值再加1,然后執(zhí)行break語句,跳出switch選擇結構。此時變量k的值為10,然后執(zhí)行輸出語句輸出k的值。因此,本題程序的最后輸出結果為10,答案選C。\r\n\r\n\r\n

64.A算法的空間復雜度是指算法在執(zhí)行過程中所需要的內存空間。所以選擇A項。

65.Acase常量表達式只是起語句標號作用,并不是該處進行條件判斷。在執(zhí)行switch語句時,根據(jù)switch的表達式,找到與之匹配的case語句,就從該case-子句執(zhí)行下去,不再進行判斷。直到碰到break競語句結束為止。因此執(zhí)行內層switch(y)時只執(zhí)行了a++,此時a的值為l。然后執(zhí)行外層case2語句的a++;b++.a(chǎn)為2,b為l。所以結果為A)。

66.Cstrcat(s1,s2)函數(shù)的功能是把s2字符串連接到s1字符串末尾,strcpy(s1,s2)是把s2字符串復制到s1字符串,要保證sl的容量。

67.D

68.C在本題中,程序首先定義了一個一維數(shù)組a,賦其初值,并定義一個同類型的指針變量p和一個指向指針的指針變量k,然后讓指針變量p指向數(shù)組的首地址,接著將指針變量p的地址值賦給指向指針的指針變量k。

在第一條輸出語句中,首先我們需要弄清楚*(p++)的作用,它是先調用指針變量p的值,然后使其自加,輸出效果等價于*p,因此,最后輸出的結果是數(shù)組中的第一個元素。

在第二條輸出語句中,我們需要弄明白**k的作用,指向指針的指針變量類似于指針變量,如果用**k表示一個數(shù)值,可以確定這條輸出語句的輸出結果是一個數(shù)值,而非地址,從表達式k=&p可以看出,k的值是指針變量p的地址值,p的值改變后,k能實時得到改變,那么在第一條輸出語句對p的改變,在第二條輸出語句中得到了體現(xiàn)。因此,**k輸出的是數(shù)組中的第二個元素,即4。

綜合上面的分析,可以知道程序最終的輸出結果是24。

69.C數(shù)據(jù)庫是存儲在一起的相關數(shù)據(jù)的集合,具有以下特點。

(1)實現(xiàn)數(shù)據(jù)共享。數(shù)據(jù)共享包含所有的用戶可同時存取數(shù)據(jù)庫中的數(shù)據(jù),也包括用戶可以用各種方式通過接口使用數(shù)據(jù)庫,并提供數(shù)據(jù)共享。

(2)減少數(shù)據(jù)的冗余度。同文件系統(tǒng)相比,由于數(shù)據(jù)庫實現(xiàn)了數(shù)據(jù)共享,從而避免了用戶各自建立應用文件,減少了大量重復的數(shù)據(jù)和數(shù)據(jù)冗余,維護了數(shù)據(jù)的一致性。

(3)數(shù)據(jù)的獨立性。數(shù)據(jù)的獨立性包括數(shù)據(jù)庫的邏輯結構和應用程序相互獨立,也包括數(shù)據(jù)物理結構的變化不影響數(shù)據(jù)的邏輯結構。

(4)數(shù)據(jù)實現(xiàn)集中控制。在文件管理方式中,數(shù)據(jù)處于一種分散的狀態(tài),不同的用戶或同一用戶在不同的處理中,其文件之間毫無關系。利用數(shù)據(jù)庫可對數(shù)據(jù)進行集中控制和管理,并通過數(shù)據(jù)模型表示各種數(shù)據(jù)的組織以及數(shù)據(jù)間的聯(lián)系。

(5)數(shù)據(jù)一致性和可維護性,以確保數(shù)據(jù)的安全性和可靠性。主要包括:①安全性控制。以防止數(shù)據(jù)丟失、錯誤更新和越權使用。②完整性控制。保證數(shù)據(jù)的正確性、有效性和相容性。③并發(fā)控制。使在同一時間周期內,允許對數(shù)據(jù)實現(xiàn)多路存取,又能防止用戶之間的不正常交互作用。④故障的發(fā)現(xiàn)和恢復。由數(shù)據(jù)庫管理系統(tǒng)提供一套方法,可及時發(fā)現(xiàn)故障和修復故障,從而防止數(shù)據(jù)被破壞。

(6)故障恢復。由數(shù)據(jù)庫管理系統(tǒng)提供一套方法,可及時發(fā)現(xiàn)故障和修復故障,從而防止數(shù)據(jù)被破壞。數(shù)據(jù)庫系統(tǒng)能盡快恢復數(shù)據(jù)庫系統(tǒng)運行時出現(xiàn)的故障,可能是物理上或是邏輯上的錯誤。比如對系統(tǒng)的誤操作造成的數(shù)據(jù)錯誤等。

數(shù)據(jù)庫是不可能避免一切數(shù)據(jù)都沒有重復的,并且有些情況下需要有重復的數(shù)據(jù),比如數(shù)據(jù)庫恢復技術需要一定的數(shù)據(jù)冗余度。

70.D打印時以%d整型格式打印輸出,所以字符標量cl的值打印出來就是65,從c2—2的值打印出來就是68—2,即66。所以選擇D。

71.A

72.C

73.A

74.D本題給出的兩個關系R與S的表結構是不同的(R是二元關系,S是三元關系),它們不能進行∩、∪、一運算。而兩個不同結構的關系是可以進行笛卡兒積(×)運算的。

75.A

76.C

\n在for循環(huán)語句中自變量i從0開始,每次自加2,執(zhí)行s+=*(t+i)語句,因為C語言規(guī)定數(shù)組名做表達式相當于數(shù)組的首地址,也就是第一個元素的地址。因此,*(t+i)代表數(shù)組的第i+1個元素。所以程序運行的結果是1+3+5+7+9=25,即變量S的值等于25。

\n

77.A

78.B

79.A當所賦的值不夠其列的寬度時,系統(tǒng)在其后自動補0,因此a[0][3]=0,a[1][2]=6,a[2][1]=5,a[3][0]=0,故選擇A選項。

80.D在ifelse語句中else總是與離它最近的f配對。本題目中x為l所以!X為0,所以執(zhí)行elseif語句中的內容,判斷(x==O)是否成立,因為x為1所以條件不成立,聽以elseif內部的if…else語句不再執(zhí)行,所以Y的值還是初蛤值0。

81.(1)錯誤:proc(int**a,intm)

正確:voidproc(int(*a)[N],intm)

(2)錯誤:aEj][k]=k*J;

正確:a[j][k]=(k+1)*(j+1);

【解析】從主函數(shù)的調用可知,函數(shù)proc()沒有返回值,因此應該定義為void類型。形參a應該是一個整型的指針數(shù)組。因此,“proe(int**a,intm)”應改為“voidproc(int(*a)[N],intm)”。數(shù)組下標從0開始,由事例數(shù)組可知,其元素從l開始遞增,因此“a[j][k]=k*J;”應改為“a[j][k]=(k+1)*(j+1);”。

82.

【考點分析】

本題考查:for循環(huán)語句遍歷字符串,并通過if條件語句,判斷字符串是否結束。

【解題思路】

從字符串中查找指定字符,需要使用循環(huán)判斷結構,循環(huán)語句用來遍歷字符串,循環(huán)條件為字符串沒有結束,即當前字符不是‘\0’,判斷語句用來判斷當前字符是否為指定字符。最后返回指定字符的個數(shù)。2021年四川省樂山市全國計算機等級考試C語言程序設計學校:________班級:________姓名:________考號:________

一、單選題(20題)1.向堆中插入一個元素的時間復雜度為________。

A.O(log2n)B.O(n)C.O(1)D.O(nlog2n)

2.若整型變量a、b、c、d中的值依次為2、2、3、4,則條件表達式a<b?a:c<d?c:d的值是()。A.1B.2C.3D.4

3.設有如下定義語句:intm[]={2,4,6,8,10},*k=m;以下選項中,表達式的值為6的是()。

A.*(k+2)B.k+2C.*k+2D.*k+=2

4.若有定義“doublea;”,則正確的輸入語句是()。A.A.seaM("%1f",&a);B.scanf("%f",&a);

C.scanf("%1f",&a)

D.scanf("%1e",&a);

5.有以下程序: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

6.在深度為5的滿二叉樹中,葉子結點的個數(shù)為()。

A.31B.32C.16D.15

7.數(shù)據(jù)的不可分割的基本單位是()。

A.元素B.結點C.數(shù)據(jù)類型D.數(shù)據(jù)項

8.以下敘述中錯誤的是()。

A.向量屬于線性結構B.二叉鏈表是二叉樹的存儲結構C.棧和隊列是線性表D.循環(huán)鏈表是循環(huán)隊列的鏈式存儲結構

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

10.下列程序的運行結果是()。

#include<stdio.h>

main()

{intx=5,a=1,b=2,C=5,d=0;

if(a<B)

if(b!=3)

if(!C)

x=1;

else

if(D)x=1;

elsex=-1;

printf("%d",x);

}

A.-1B.0C.1D.不確定的值

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

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

12.

13.已有定義int(*q)(),指針q可以()。

A.指向函數(shù)的入口地址B.代表函數(shù)的返回值C.表示函數(shù)的類型D.表示函數(shù)返回值的類型

14.設有說明:charw;intx;f1oaty;doublez;則表達式w*x+z-y值的數(shù)據(jù)類型為()。

A.floatB.charC.intD.double

15.在關系中凡能惟一標識元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個鍵,它們稱為該表的()

A.連接碼B.關系碼C.外碼D.候選碼

16.有以下程序:#includedstdi0.h>#definef(x)X*x*xmain(){inta=3,S,t;s=f(a+1);t=f((a+1));printf("%d,%d\n",S,t);}程序運行后的輸出結果是()。A.10,64B.10,10C.64,10D.64,64

17.以下說法正確的是()。

A.C語言只接受十進制的數(shù)

B.C語言只接受二進制、八進制、十六進制的數(shù)

C.C語言只接受二進制、十進制、十六進制的數(shù)

D.C語言只接受八進制、十進制、十六進制的數(shù)

18.下面敘述中錯誤的是()。

A.軟件測試的目的是發(fā)現(xiàn)錯誤并改正錯誤

B.對被調試的程序進行“錯誤定位”是程序調試的必要步驟

C.程序調試通常也稱為Debug

D.軟件測試應嚴格執(zhí)行測試計劃,排除測試的隨意性

19.若有定義floata=25,b,*p=&b;,則下列對賦值語句*p=a;和p=&a;的正確解釋為()。

A.兩個語句都是將變量a的值賦予變量p

B.*p=a是使p指向變量a,而p=&a是將變量a的值賦予變量指針p

C.*p=a是將變量a的值賦予變量b,而p=&a是使p指向變量a

D.兩個語句都是使p指向變量a

20.下面程序的輸出是()。A.17B.18C.23D.24

二、2.填空題(20題)21.以下程序運行后的輸出結果是______。

main()

{

inta,b,c;

a=25;

b=025;

c=0x25;

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

}

22.長度為n的順序存儲線性表中,當在任何位置上插入一個元素概率都相等時,插入一個元素所需移動元素的平均個數(shù)為【】。

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

main()

{intx=0;

sub(&x,8,1);

printf(“%d\n”,x);

}

sub(int*a,intn,intk)

{if(k<=n)sub(a,n/2,2*k);

*a+=k;

}

24.若有如下程序:

main()

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

y=++(*t);

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

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

25.數(shù)據(jù)庫管理系統(tǒng)常見的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和【】3種。

26.將以下程序寫成三目運算表達式是【】。

if(a>b)max=a;

elsemax=b;

27.下列程序的輸出結果是【】。

main()

{inta=1,b=2;

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

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

}

28.下列程序的運行結果為【】。

#include<stdio.h>

main()

{staticcharstr1[40];

charstr2140];

strcpy(str2,"China");

strcat(str1,str2);

strcat(str1,"isagreatcountry!");

printf("%s%s",str2,strl);

printf("%d%d\n",strlen(str2),strlen(str1));

}

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

main()

{

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

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

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

}

30.以下程序是求矩陣a,b的和,結果存入矩陣c中,并按矩陣形式輸出,請?zhí)羁铡?/p>

#include<stdio.h>

main()

{inta[3][4]={13,-2,7,5},{1,0,4,-3},{6,8,0,2}};

intb[3][4]={{-2,0,1,4},{5,-1,7,6},{6,8,0,2}};

inti,j,c[3][4];

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

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

c[i][j]=【】;

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

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

printf("%3d",c[i][j]);

printf("\n");}}

31.設x、y、z均為int型變量,請寫出描述“x或y中至少有一個小于z”的表達式______。

32.若有定義:intx=1,y=2;floata=3.7,b=2.1;則(x+y)%2+(int)a/(int)b表達式的值為()。

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

main()

{inta=0;

a+=(a=8);

printf(“%d\n”,A);

}

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

main()

{

intx=10,y=20,t=0

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

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

}

35.以下函數(shù)的功能是刪除字符串s中的所有數(shù)字字符。請?zhí)羁铡?/p>

voiddele(char*s)

{

intn=0,i;

for(i=0,s[i];i++)

if(【】)

s[n++]=s[i];

s[n]=【】;

}

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

37.以下程序中,for循環(huán)體執(zhí)行的次數(shù)是【】。

#defineN2

#defineMN+1

#defineKM+1*M/2

main()

{

inti;

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

{…}

}

38.數(shù)據(jù)庫保護分為:安全性控制、______、并發(fā)性控制和數(shù)據(jù)的恢復。

39.算法的復雜度主要包括【】復雜度和空間復雜度。

40.以下函數(shù)rotate的功能是:將a所指N行N列的二維數(shù)組中的最后一行放到b所指二維數(shù)組的第。列中,把a所指二維數(shù)組中的第0行放到b所指二維數(shù)組的最后一列中,b所指二維數(shù)組中的其他數(shù)據(jù)不變。

#defineN4

voidrotate(inta[][N],intb[][N])

{int,i,j;

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

{b[i][N-1]=【】;

【】=a[N-1][i];

}

}

三、1.選擇題(20題)41.在設計程序時,應采納的原則之—是______。

A.程序結構應有助于讀者理解B.不限制goto語句的使用C.減少或者取消注解行D.程序越短越好

42.設y為整型變量,a=6,a的地址為E2000,b=14,b的地址為E2001;執(zhí)行語句b=&a;y=&a;后Y的值為()。

A.E2000B.E2001C.6D.14

43.下列描述中正確的是()。

A.軟件工程只是解決軟件項目的管理問題

B.軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問題

C.軟件工程的主要思想是強調在軟件開發(fā)過程中需要應用工程化原則

D.軟件工程只是解決軟件開發(fā)過程中的技術問題

44.下列敘述中錯誤的是A.計算機不能直接執(zhí)行用C語言編寫的源程序

B.C程序經(jīng)C編譯程序編譯后,生成后綴為.obj的文件是一個二進制文件

C.后綴為.obj的文件,經(jīng)連接程序生成后綴為.exe的文件是一個二進制文件

D.后綴為.obj和.exe的二進制文件都可以直接運行

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

fun(int*p)

{return*p;}

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

A.不確定的值

B.形參p中存放的值

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

D.形參p的地址值

46.用鏈表表示線性表的優(yōu)點是()。

A.便于隨機存取B.花費的存儲空間較順序存儲少C.便于插入和刪除操作D.數(shù)據(jù)元素的物理順序和邏輯順序相同

47.下列選項中正確的語句是

A.chars[8];s={"Beijing"};

B.char*s;s={"Beijing"};

C.chars[8];s="Beijing";

D.char*s;s="Beijing";

48.以下有4組用戶標識符,其中合法的一組是______。

A.FOR

B.4d

C.f2G3

D.WORD-subDOIFvoidCaseSizeabcdefine

49.為用戶與數(shù)據(jù)庫系統(tǒng)提供接口的語言是

A.高級語言B.數(shù)據(jù)定義語言(DDL)C.數(shù)據(jù)操縱語言(DML)D.匯編語言

50.有以下程序#include<stdio.h>main0{inty=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的運行結果是

A.741B.963C.852D.875421

51.有以下程序main(){ihtm=3,n=r,x;x=-m++;X=x+8/++n;printf("%d\n",x);}程序運行后的輸出結果是

A.3B.5C.-1D.-2

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

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

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

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

D.線性表可以是空表

53.分布式數(shù)據(jù)庫系統(tǒng)不具有的特點是()。A.A.數(shù)據(jù)分布性和邏輯整體性B.位置透明性和復制透明性C.分布性D.數(shù)據(jù)冗余

54.下面關于對象概念的描述中,錯誤的是

A.對象就是C語言中的結構體變量

B.對象代表著正在創(chuàng)建的系統(tǒng)中的一個實體

C.對象是一個狀態(tài)和操作(或方法)的封裝體

D.對象之間的信息傳遞是通過消息進行的

55.下面函數(shù)調用語句含有實參的個數(shù)為func((exp1,exp2),(exp3,exp4,exp5));

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

56.以下敘述中錯誤的是()。

A.C程序中的#include和#define行均不是C語句

B.除逗號運算符外,賦值運算符的優(yōu)先級最低

C.C程序中,j++;是賦值語句

D.C程序中,+、-、*、/、%是算術運算符,可用于整型和實型數(shù)的運算

57.已知字母A的ASCⅡ碼為十進制數(shù)65,下面程序的輸出結果是()main(){charch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}

A.67,DB.B,CC.C,DD.不確定的值

58.運行下列程序,若從鍵盤輸入字母“a”,則輸出結果是()。charc;c=getchar();if(c>='a'&&c<='g')c=c+4;elseif(c>='g'&&c<='z')c=c-21;elseprintf("inputerror!\n");putchar(c);

A.fB.tC.eD.d

59.關于結構化程序設計原則和方法描述錯誤的是()。

A.選用的結構只準許有一個入口和一個出口

B.復雜結構應該用嵌套的基本控制結構進行組合嵌套來實現(xiàn)

C.不允許使用GOTO語句

D.語言中所沒有的控制結構,應該采用前后一致的方法來模擬

60.程序的3種基本控制結構的共同點是______。

A.不能嵌套使用B.只能用宋寫簡單的程序C.已經(jīng)用硬件實現(xiàn)D.只有一個入口和一個出口

四、選擇題(20題)61.在下列關于二叉樹的敘述中,選出正確的一項()。

A.在二叉樹中,任何一個結點的度都是2

B.二叉樹的度為2

C.在二叉樹中至少有一個結點的度是2

D.一棵二叉樹的度可以小于2

62.

63.若intk=8;則執(zhí)行下列程序后,變量k的正確結果是

main()

{intk=8;

switch(k)

{case9:k+=1;

case10:k+=1;

default:k+=1;

case11:k+=1;break;

}

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

}

A.12B.1

C.10D.9

64.算法的空間復雜度是指()。

A.算法在執(zhí)行過程中所需要的計算機存儲空間

B.算法所處理的數(shù)據(jù)量

C.算法程序中的語句或指令條數(shù)

D.算法在執(zhí)行過程中所需要的臨時工作單元數(shù)

65.有以下程序程序的運行結果是()。

A.a=2,b=lB.a=2,b=2C.a=1,b=lD.a=1.b=0

66.函數(shù)調用strcat(strcpy(str1,str2),str3)的功能是()。

A.將字符串str1復制到字符串str2中后再連接到字符串str3之后

B.將字符串str1連接到字符串str2之后再復制到字符串str3之后

C.將字符串str2復制到字符串str1之后再將字符串str3連接到字符串str1之后

D.將字符串str2連接到字符串str1之后再將字符串strl復制到字符串str3中

67.

68.有下列程序

main()

{

inta[5]={2,4,6,8,10},*p,**k;

p=a;

k=&p;

printf("%d",*(p++));

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

}

運行該程序,其輸出結果是

A.4B.22

C.24D.46

69.下列說法不正確的是

A.數(shù)據(jù)庫減少了數(shù)據(jù)冗余B.數(shù)據(jù)庫實現(xiàn)了數(shù)據(jù)的共享

C.數(shù)據(jù)庫避免了一切數(shù)據(jù)的重復D.數(shù)據(jù)庫具有較高的數(shù)據(jù)獨立性

70.已知字符‘A’的ASCII代碼值是65,字符變量cl的值是‘A’,c2的值是‘D’。則執(zhí)行語句printf(”%d,%d”,cl,c2—2);的輸出結果是()。

A.65,68B.A,68C.A,BD.65,66

71.(35)檢查軟件產(chǎn)品是否符合需求定義的過程稱為______。

A.確認測試

B.集成測試

C.驗證測試

D.驗收測試

72.

73.

74.設有二元關系R和三元關系s,下列運算合法的是()。

A.R∩SB.R∪SC.R-SD.R×S

75.

76.

有下列程序:

main

{inti,s=0,t[]={1,2,3,4,5,6,7,8,9);

for(i=0;i<9;i+=2)s+=*(t+i);

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

}

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

A.45B.20C.25D.36

77.

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

A.char:a,b,c;

B.chara;b;c;

C.chara,b,c;

D.chara,b,c

79.以下程序的輸出結果是()。main(){inti,a[4][4]={{1,3,5),{2,4,6},{3,5,7}};printf("%(1%d%d%d\n".a(chǎn)[O][3],a[1][2],a[2][1],a[3][0]);}A.0650B.1470C.5430D.輸出值不定

80.有以下程序:

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

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

五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:根據(jù)形參m(2≤m≤9)的值,在m行m列的二維數(shù)組中存放如下所示的數(shù)據(jù),由main()函數(shù)輸出。

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

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

試題程序:

六、程序設計題(1題)82.編寫函數(shù)fun,其功能是:求ss所指字符串中指定字符的個數(shù),并返回此值。

例如,若輸入字符串123412132,輸入字符為l,則輸出3。

注意:部分源程序在文件PROGl.C中。

請勿改動主函數(shù)main和其他函數(shù)中的任何內容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。

參考答案

1.A

2.C本題考查三目運算符a<b?a:c<d?c:d也可寫成a<b?a:(c<d?c:d),所以根據(jù)優(yōu)先級,先算括號內的,c小于d為真取C的值,再看a小于b為假,所以取C的值。

3.A本題考查數(shù)組和指針,*k指針是指向rn數(shù)組的首地址,所以要使表達武的值為6,只需要指針指向第m[2],所以答案選擇A。-

4.D本題考查seanf函數(shù)的調用形式:scanf(格式字符串,輸入項地址表)。題中定義變量a為雙精度型變量,雙精度變量的格式符為“l(fā)e”;變量的地址用取地址符“&”加變量名表示,所以選項D正確。

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

6.C解析:二叉樹的一個性質是,在二叉樹的第k層上,最多有2(k-1)(k>=1)個結點。對于滿二叉樹,每一層上的結點數(shù)都達到最大值,即在滿二叉樹的第k層上有2k-1個結點。所以,在深度為5的滿二叉樹中,所有葉子結點在第5層上,即其結點數(shù)為2(k-1)=2(5-1)=16。

7.D

8.D循環(huán)鏈表是線性表的一種鏈式存儲結構,循環(huán)隊列是隊列的一種順序存儲結構。因此D選項敘述錯誤。本題答案為D選項。

9.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.

10.A解析:本題考查ifelse語句。第1個if語句,先判斷條件,發(fā)現(xiàn)a<b條件成立,執(zhí)行下列的語句;第2個if語句,先判斷條件,發(fā)現(xiàn)b!=3條件成立,執(zhí)行下列的語句:第3個if語句,先判斷條件,c=5,則!c條件不成立,執(zhí)行與其配對的else語句:第4個if語句,先判斷條件,d=0,條件不成立,則x=-1,結束循環(huán)。

11.D

12.A

13.A解析:本題考查的是指向函數(shù)的指針。函數(shù)指針的定義方式是:類型標識符(*指針變量名)()。其中,“類型標識符”為函數(shù)返回值的類型;“指針”指向函數(shù)的入口地址。

14.D

15.DD)【解析】在關系中凡能惟一標識元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個鍵,它們稱為該表的候選碼或候選鍵。從二維表的所有候選鍵中選取一個作為用戶使用的鍵稱為主鍵或主碼。

16.A本題考查帶參數(shù)的宏定義。第一次函數(shù)調用求S的值,x=a+1,所以X*X*X應寫成a+1*a+1*a+1,沒有括號優(yōu)先級,結果為l0,第二次函數(shù)調用x*X*X可寫成(a+1)*(a+1)*(a+1),所以結果為43=64。

17.DC語言中,整型常量可以用十進制、八進制和十六進制表示。故本題答案為D選項。

18.A軟件測試的目的是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程,并不涉及改正錯誤,所以選項A錯誤。程序調試的基本步驟有:錯誤定位、修改設計和代碼,以排除錯誤、進行回歸測試,防止引進新的錯誤。程序調試通常稱為Debug,即排錯。軟件測試的基本準則有:所有測試都應追溯到需求、嚴格執(zhí)行測試計劃,排除測試的隨意性、充分注意測試中的群集現(xiàn)象、程序員應避免檢查自己的程序、窮舉測試不可能、妥善保存測試計劃等文件。故答案為A選項。

19.C解析:“p”是指針變量,指向一個地址:“*p”,為p指針所指向地址的內容。

20.B

21.252137252137解析:本題中先定義了整型變量a、b和c,然后分別給賦值a為25,b為八進制的025,c為十六進制0x25。然后調用pruntf()函數(shù)將a、b和c分別用十進制輸出,且中間用空格隔開,八進制025轉換為十進制的值為21,十六進制的0x25轉換為十進制的值為37,故最后的輸出結果為252137。

22.n/2性表的任何位置插入一個元素的概率相等,即概率為p=1/(n+1),則插入一個元素時所需移動元素的平均次數(shù)為E=1/(n+1)(n-i+1)=n/2。

23.77解析:在主函數(shù)中定義了一個變量x并賦初值0,然后執(zhí)行函數(shù)調用語句,該語句的執(zhí)行過程為sub(&x,8,1)調用sub(&a,4,2),sub(&a,4,2)調用sub(&a,2,4),sub(&a,2,4)中由于2<4,所以if后面括號里的判斷為假,遞歸結束,執(zhí)行其后的*a+=k;語句此時x=x+k=0+4=4,回退到上一層調用函數(shù)sub(&x,4,2)中,執(zhí)行后面的語句,x=x+k=4+2=6,再回推到最上一

溫馨提示

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

評論

0/150

提交評論