2022-2023年黑龍江省鶴崗市全國計算機等級考試C語言程序設計模擬考試(含答案)_第1頁
2022-2023年黑龍江省鶴崗市全國計算機等級考試C語言程序設計模擬考試(含答案)_第2頁
2022-2023年黑龍江省鶴崗市全國計算機等級考試C語言程序設計模擬考試(含答案)_第3頁
2022-2023年黑龍江省鶴崗市全國計算機等級考試C語言程序設計模擬考試(含答案)_第4頁
2022-2023年黑龍江省鶴崗市全國計算機等級考試C語言程序設計模擬考試(含答案)_第5頁
已閱讀5頁,還剩65頁未讀 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

2022-2023年黑龍江省鶴崗市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.當c的值不為0時,在下列選項中不能正確將c的值賦給變量a、b的是()。

A.c=b=a;B.(a=c)||(b=c)C.(a=c)&&(b=c);D.a=c=b;

2.以下語句定義正確的是()A.A.inta[1][4]-{1,2,3,4,5};

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

C.longa[2][3]={{1},{1,2},{1,2,3},{0,0)};

D.doublea[][3]={O);

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

4.有以下定義和語句:structworkers{intnum;charname[20];charc;struct{intday;intmonth;intyear;}s;};structworkersw,*pw;pw=&w;能給w中year成員賦1980的語句是()。

A.pw->year=1980;

B.w.year=1980;

C.w.s.year=1980;

D.*pw.year=1980;

5.以下程序段中,與語句“k=a>b?(b>c?1:0):0;”功能相同的是()。

A.if((a>b)||(b>c))k=1;elsek=0;

B.if((a>b)&&(b>c))k=1;elsek=0;

C.if(a<=b)k=0;elseif(b<=c)k=1;

D.if(a>b)k=1;elseif(b>c)k=1;elsek=0;

6.設有定義:

inta=1,b=2,C=3;

以下語句中執(zhí)行效果與其他三個不同的是()。

A.if(a>B.C=a,a=b,b=C;

B.if(a>B.{C=a,a=b,b=C;}

C.if(a>B.C=a;a=b;b=c;

D.if(a>B.{C=a;a=b;b=c;}

7.有以下程序:

程序運行后的輸出結(jié)果是()。A.34B.55C.10D.18

8.有下列程序:

intfunl(doublea){returna*=a;}

intfun2(doublex,doubley)

{doublea=0,b=0;

a=funl(x);b=funl(y);return(int)(a+b);

}

main()

{doublew;w=fun2(1.1,2.0),……}

程序執(zhí)行后變量w中的值是()。、

A.5.21B.5C.5.0D.0.0

9.

10.有以下程序:#include<stdio.h>main(){inti,j,m=1;for(i=1;i<3;i++){for(j=3;j>0;j--){if(i*j>3)break;m*=i+j;}}printf("m=%d\n",m);}程序運行后的輸出結(jié)果是()。A.m=6B.m=2C.m=4D.m=3

11.下述程序執(zhí)行的輸出結(jié)果是()。#include<stdio.h>main(){chara[2][4];strcpy(a。"are");strcpy(a[1],"you");a[o][3]=&;printf("%s\n",a);}A.are&youB.youC.areD.&

12.以下敘述中正確的是_____。A.用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作

B.用C程序?qū)崿F(xiàn)的算法可以沒有輸出但必須要輸入

C.用C程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出

D.用C程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出

13.下列定義數(shù)組的語句中錯誤的是()。

A.intnum[][3]={{1,2},3,4,5,6};

B.intnum[2][4]={{1,2},{3,4},{5,6}};

C.intnum[]={1,2,3,4,5,6};

D.intnum[][4]={1,2,3,4,5,6};

14.以下說法錯誤的是()。

A.C語言標識符中可以有多個字母、數(shù)字和下劃線字符

B.C語言標識符中下劃線字符可以出現(xiàn)在任意位置

C.C語言標識符不能全部由數(shù)字組成

D.C語言標識符必須以字母開頭

15.設x為int型變量,則執(zhí)行以下語句后,x的值為()。x=10;x=x-=x-x;

A.10B.20C.40D.30

16.下面的哪一個保留字不能作為函數(shù)的返回類型()。

A.voidB.intC.newD.long

17.對n個關(guān)鍵字的序列進行快速排序,平均情況下的空間復雜度為_______

A.O(1)B.O(logn)C.O(n)D.O(nlogn)

18.在下列排序算法中,在待排序的數(shù)據(jù)表已經(jīng)為有序時,花費時間反而最多的是()

A.希爾排序B.堆排序C.冒泡排序D.快速排序

19.若有以下說明:chars1[]={"tree"},s2[]={"flower"};,則以下對數(shù)組元素或數(shù)組的輸出語句中,正確的是()。

A.printf("%s%s",s1[5],s2[7]);

B.printf("%c%c",s1,s2);

C.puts(s1);puts(s2);

D.puts(s1,s2);

20.當執(zhí)行下面的程序時,如果輸入ABC,則輸出結(jié)罘是()。#include<stdio.h>#include<string.h>main(){charss[10]="1,2,3,4,5":gets(ss);strcat(ss,"6789");printf("%s\n",ss);}A.ABC6789B.ABC67C.12345ABC6D.ABC456789

二、2.填空題(20題)21.以下函數(shù)fun的功能是返回str所指字符串中以形參c中字符開頭的后續(xù)字符串的首地址,例如;str所指字符串為:Hello!,c中的字符為e,則函數(shù)返回字符串:ello!的首地址。若str所指字符串為空串或不包含c中的字符,則函數(shù)返回NULL。請?zhí)羁铡?/p>

char*fun(char*str,charc)

{intn=0;char*p=str;

if(p!=NULL)

while(p[n]!=c&&p[n]!='\O')n++;

if(p[n]='\0')returnNULL;

return(【】);

}

22.設有以下定義變量的語句,并且已賦確定的值,則表達式“W*X+Z-y”所求得的數(shù)據(jù)類型為【】。

charw;intx;floaty;double2;

23.為建立如下圖所示的存儲結(jié)構(gòu)(即每個結(jié)點兩個域,p是指向結(jié)點的指針域,data用以存放整型數(shù)),請將定義補充完整。

pdata

a

structlist

{【】;intdata;}a;

24.按"先進后出"原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是【】。

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

#include<stdio.h>

main()

{inta=5,b=4,c=3,d;

d=(a>b>c);

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

}

26.表達式1/2*(int)3.7/(int)(2.4*(1.5+2.5))值的數(shù)據(jù)類型為______。

27.若a是int型變量,則下列表達式的值為______。

(a=2*3,a*2),a+4

28.數(shù)據(jù)庫系統(tǒng)的主要特點為數(shù)據(jù)集成性、數(shù)據(jù)的高______和低冗余性、數(shù)據(jù)獨立性和數(shù)據(jù)統(tǒng)一管理和控制。

29.數(shù)據(jù)庫技術(shù)的主要特點為數(shù)據(jù)的集成性、數(shù)據(jù)的高【】和低冗余性、數(shù)據(jù)獨立性和數(shù)據(jù)統(tǒng)一管理與控制。

30.面向?qū)ο蟮哪P椭?,最基本的概念是對象和______。

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

#include<string.h>

main()

{printf("%d\n",strlen("IBM\n012\1\\"));}

32.有以下程序

intfa(intx){returnx*x;}

intfb(intx){retumx*x*x;}

intf(int(*f1)(),int(*f2)(),intx)

{returnf2(x)-f1(x);}

main()

{inti;i=f(fa,fb,2);printf("%d\n",i);}

程序運行后,輸出結(jié)果是【】。

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

10ngfun5(intn)

{longs;

if((n==1)‖(n==2))

s=2;

else

s=n+fun5(n-1);

return(s);

}

main()

{longx;

x=fun5(4);

printf("%1d\n",x);}

34.下列程序中的數(shù)組a包括10個整數(shù)元素,分別將前項和后項之和存入數(shù)組b,并按每行4個元素輸出數(shù)組bo請?zhí)羁铡?/p>

#include<stdio.h>

main()

{inta[10],b[10],i;

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

scanf("%d",&a[i]);

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

______;

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

{if(i%4==0)printf("\n");

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

}

}

35.算法執(zhí)行過程中所需要的基本運算次數(shù)稱為算法的______。

36.常用的黑箱測試有等價類劃分法、【】和錯誤推測法3種。

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

#include<stdio.h>

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=1,b=8,c=7,d=9;

t(a,b,c,d);

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

}

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

longfun5(intn)

{longs;

if((n==1)||(n==2))

s=2;

else

s=n+fun5(n-1);

return(s);}

main()

{longx;

x=fun5(4);

printf("%ld\n",x);}

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

intf(inta[],intn)

{if(n>=1)returnf(a,n-1)+a[n-1];

elsereturn0;

}

main()

{intaa[5]={1,2,3,4,5),s;

s=f(aa,5);printf("%d\n",s);

}

40.mystrlen函數(shù)的功能是計算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁铡?/p>

intmystrlen(char*str)

{inti;

for(i=0;【】!='\0';i++);

return(【】);

}

三、1.選擇題(20題)41.若ch為char型變量,k為int型變量(已知字符a的ASCII碼是97),則執(zhí)行下列語句后輸出的結(jié)果為()。ch='b';k=10;printf("%x,%o,",ch,ch,k);printf("k=%%d\n",k);

A.因變量類型與格式描述符的類型不匹配,輸出無定值

B.輸出項與格式描述符個數(shù)不符,輸出為0值或不定值

C.62,142,k=%d

D.62,142,k=%10

42.以下程序的功能是進行位運算:main(){unsignedchara,b;a=7^3;b=~4&3;printf("%d%d\n",a,B);}程序運行后的輸出結(jié)果是()。

A.43B.73C.70D.40

43.假定所有變量均已正確說明,下列程序段運行后x的值是()。a=b=c=0;x=12;if(!a)x--;elsex=5:if(c)x=3:elsex=4:A.11B.4C.12D.3

44.在設計程序時,應采納的原則之一是()。

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

45.有以下程序main(){intm=3,n=4,x;x=-m++;x=x+8/++n;printf(“%d\n”,x);}程序運行后的輸出結(jié)果是______。A.3B.5C.-1D.-2

46.若有定義“doublea;”,則正確的輸入語句是()。

A.scanf("%1f,A);

B.scanf("%f,&A);

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

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

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

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

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

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

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

48.設int型占2個字節(jié),則unsignedint所能表示的數(shù)據(jù)范圍是______。

A.0~65535B.-3276~32767C.1~65536D.0~32767

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

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

50.設有如下關(guān)系表:

則下列操作正確的是()。

A.T=R/SB.T=R×SC.T=R∩SD.T=R∪S

51.設有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);則

A.運行程序段后輸出0B.運行程序段后輸出1C.程序段中的控制表達式是非法的D.程序段執(zhí)行無限次

52.IEEE802.3的物理層協(xié)議10BASE-T規(guī)定從網(wǎng)卡到集線器的最大距離為()

A.100mB.185mC.360mD.500m

53.C語言庫函數(shù)fgets(str,n,fp)功能是______。

A.從中指向的文件中讀取長度n的字符串存入int指向的內(nèi)存

B.從fp指向的文件中讀取長度不超過n-1的字符串存入str指向的內(nèi)存

C.從fp指向的文件中讀到n個字符串存入str指向的內(nèi)存

D.從str讀取至多n個字符到文件fp

54.結(jié)構(gòu)化分析方法是面向()的自頂向下、逐步求精進行需求分析的方法

A.對象B.數(shù)據(jù)結(jié)構(gòu)C.數(shù)據(jù)流D.目標

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

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

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

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

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

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

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

57.在軟件工程中,高質(zhì)量的文檔是______、一致性和無二義性的。

A.安全性B.完整性C.組合性D.統(tǒng)一性

58.#define能作簡單的替代,用宏來替代計算多項式5*x*x+5*x+5的值的函數(shù)f,正確的宏定義語句為()。

A.#definef(x)5*x*x+5*x+5

B.#definef5*X*x+5*x+5

C.#definef(a)(5*a*a+5*a+5)

D.#define(5*x*x+5*x+5)f(x)

59.判斷字符型變量chr為小寫字母的表達式是______。

A.'a'<=chr<='z'

B.(chr>='a')||(chr<='z')

C.(chr>=A)&&(chr<=z)

D.(chr>='a')&&(chr<='z')

60.對象實現(xiàn)了數(shù)據(jù)和操作的結(jié)合,是指對數(shù)據(jù)和數(shù)據(jù)的操作進行______。A.A.結(jié)合B.隱藏C.封裝D.抽象

四、選擇題(20題)61.以下敘述中不正確的是()。

A.在不同的函數(shù)中可以使用相同名字的變量

B.函數(shù)中的形式參數(shù)是局部變量

C.在一個函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效

D.在一個函數(shù)內(nèi)的復合語句中定義的變量在本函數(shù)范圍內(nèi)有效

62.

63.若有定義語句:

則strlen(s)的值是()。

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

64.設fun函數(shù)的定義形式為voidfun(charch,floatx){…}則下列對函數(shù)fun的調(diào)用語句中,正確的是()。

A.fun("abc",3.0);

B.t=fun(D.16.5);

C.fun(65,2.8);

D.fun(32,32);

65.有以下程序:

i

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

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

66.

67.

68.

69.以下定義語句中正確的是()。

A.

B.

C.

D.

70.有以下程序段:

當執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為()。A.55566.0B.566.0C.7777.0D.566777.0

71.有以下程序:

voidmain()

{inta=15,b=21,m=0;

switch(a%3)

{case0:m++;break;

case1:m++;

switch(b%2)

{defaule:m++;

case0:m++;break;

}

}

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

}

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

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

72.以下選項中,當x為大于l的奇數(shù)時,值為0的表達式是()。

73.有以下程序:

voidmain()

{

inty=10;

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

}

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

A.y=0

B.y=-1

C.y=1

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

74.

75.一間宿舍可住多名學生,則實體宿舍和學生之間的聯(lián)系是()。A.一對一B.一對多C.多對一D.多對多

76.

77.

78.以下能定義為用戶標識符的是()。

A.printfB.charC._8abcD.Void

79.

80.有以下程序:

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

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

五、程序改錯題(1題)81.下列給定程序中函數(shù)fun()的功能是:求出如下分數(shù)序列的前n項之和,結(jié)果通過函數(shù)值返回。例如,若n=5,則應輸出8.391667。請改正程序中的錯誤,使其得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設計題(1題)82.請編寫函數(shù)fun,其功能是:找出2×M整型二維數(shù)組中最大元素的值,并將此值返回調(diào)用函數(shù)。

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

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

參考答案

1.C選項A是先將a的值賦給變量b,再將變量b的值賦給變量c,不合題意;B選項中由于c的值不為0,在將c的值賦給變量a后,表達式a=c的值為1,不再對表達式b=c計算;對于c選項,表達式a=c的值為1,再求表達式b=c的值為1,然后進行邏輯與運算;D選項將b的值賦給c后再賦給e,故選擇C選項。

2.D本題考查的是如何對二維數(shù)組進行賦值。選項A)中數(shù)組第二維的大小是4,但卻給賦了5個元素;選項B)中C語言規(guī)定,對于二維數(shù)組,只可以省略第一個方括號中的常量表達式而不可以省略第二個方括號中的常量表達式:選項c)中數(shù)組第一維的大小是2,但是賦值卻超過了2;選項D)中在對二維數(shù)組元素賦初值時,可以只對部分元素賦初值,未賦初值的元素自動取0。

3.D

4.C題目中定義了一個結(jié)構(gòu)體,結(jié)構(gòu)體中成員又是一個結(jié)構(gòu)體,w為結(jié)構(gòu)體workers的變量。如果給內(nèi)層結(jié)構(gòu)體成員賦值,先要得到內(nèi)層結(jié)構(gòu)體變量,即“w.s”。若要給year賦值,表示為“w.s.year”即可。故本題答案為C選項。

5.B條件表達式的含義是:如果表達式1成立,結(jié)果為表達式2的值,如果不成立,則為表達式3的值。在題干中,如果“a>b”且“b>c”,則k值為1;如果“a>b”且“b<c”,則k值為0;如果“a<b”,則k值為0。條件“a>b”與“b>c”中只要有一個條件不成立,k的值就為0。故本題答案為B選項。

6.C由于a小于b,所以所有選項中的條件都為假,c選項中實際執(zhí)行了a=b;b=c;兩個操作。而A、B、D選項由于條件不成立,所以什么也沒有做,所以選擇c選項。

7.D題干中,函數(shù)fun的功能是通過遞歸,將數(shù)組a中下標為0~n-1位置的元素累加,作為函數(shù)返回值返回。main函數(shù)調(diào)用fun時,傳入的a+2作為數(shù)組參數(shù),傳入n的值是4,所以函數(shù)返回值是元素a[2]、a[3]、a[4]、a[5]的和,程序輸出18。本題答案為D選項。

8.C子函數(shù)funl(doublea)的功能是返回a的平方值的整數(shù)部分。子函數(shù)fun2(doubleX,doubley)的功能是返回X的平方值的整數(shù)部分與Y的平方值的整數(shù)部分的和。又因為題中變量W的定義為double型,函數(shù)fun(2)的定義為int型,按照各類數(shù)值型數(shù)據(jù)間的混合運算,整型數(shù)據(jù)被轉(zhuǎn)換為實型數(shù)據(jù)。所以雙精度型變量w的值為5.0。

9.D

10.A本題考查了多重for循環(huán)。當(i*j)>3時,跳出循環(huán),本題中i=1,j=3,i*J后值為3,所以執(zhí)行下邊語句:m*=i+j,也可寫成m=m*i+j,這時要注意優(yōu)先級,所以m的值為6。

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

12.C解析:算法的特性中包括“有零個或多個輸入”及“有一個或多個輸出”這兩個特性。一個算法得到的結(jié)果就是算法的輸出,沒有輸出的算法是沒有意義的,所以一千算法必須至少有一個輸出。

13.BB選項中定義的數(shù)組為2行4列,而賦值時卻賦成了3行,所以錯誤。故本題答案為B選項。

14.DC語言的合法的標識符的命名規(guī)則是:標識符可以由字母、數(shù)字和下劃線組成,并且第1個字符必須是字母或下劃線。選項D錯誤。本題答案為D選項。

15.A執(zhí)行x=x-=x-x語句可寫成x=x-(x-x),可看出結(jié)果為10,故八選項正確。

16.C

17.D

18.D

19.C

20.A當執(zhí)行g(shù)ets(ss)后,ss數(shù)組中的元素為ABC,再執(zhí)行strcat(ss,"6789"),strcat的作用,是把6789連接到了ss數(shù)組后面,執(zhí)行完后SS數(shù)組為ABC6789,故選擇A選項。

21.&P(n)或p+n&P(n)或p+n解析:因為n被初始化為0、p被初始化指向str所指字符串的首地址,所以while循環(huán)的功能是從str所指字符串的第1個字符開始比較,若等于c或等于字符串結(jié)束符'\\0'就跳出循環(huán)。故循環(huán)結(jié)束后,若p[n]為'\\0',則證明str所指字符串不包含c中的字符,應該返回NULL,否則應該返回p[n]的地址值。返回NULL在第2條if語句中已經(jīng)實現(xiàn),所以我們應該填入的表達式為p[n]的地址值,即&p[n]或p+n。

22.double或雙精度型double或雙精度型

23.structlist*nextstructlist*next解析:定義的指針類型變量next也應該是結(jié)構(gòu)體類型的。

24.棧棧解析:考查考生對棧和隊列概念的掌握。按'先進后出'原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是棧;按'先進先出'原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是隊列。

25.00解析:在本題中,d=(a>b>c);相當于d=(5>4>3);其計算過程為:先算5>4,結(jié)果為真,得1,即d=(1>3);然后計算1>3,結(jié)果為假,得0。

26.整型整型解析:上面的表達式中,通過強制類型轉(zhuǎn)換把最后參與運算的數(shù)據(jù)都轉(zhuǎn)換成了int型,所以最后得到的結(jié)果也是int類型。

27.1010解析:此題考查逗號表達式。逗號表達式的值是最后一個表達式的值,所以本題的返回值是a+4。前面已經(jīng)給a賦值6,所以追回值a+4=6+4=10。

28.共享性共享性解析:數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能被不同的應用程序使用,實現(xiàn)了數(shù)據(jù)的高度共享,從而降低了數(shù)據(jù)的冗余,這也是數(shù)據(jù)庫的主要目的。

29.共享性共享性解析:數(shù)據(jù)庫技術(shù)的主要特點有以下幾個方面:數(shù)據(jù)的集成性,數(shù)據(jù)的高共享性與低冗余性,數(shù)據(jù)的獨立性,數(shù)據(jù)統(tǒng)一管理與控制。

30.類類

31.99解析:本題要輸出的結(jié)果是字符串'IBM\\n012\\1\\\\'的長度,'IBM'是3個字符,\'\\n\'是1個字符,'012'又是3個字符,最后的\'\\1\'和\'\\\\\'都是1個字符。所以最終字符串的長度應該是3+1+3+1+1=9。故本題應該填9。

32.44解析:在主函數(shù)中調(diào)用函數(shù)f,函數(shù)f有三個參數(shù),形參f1與f2分別是兩個指向函數(shù)的指針。在f中執(zhí)行f2(x)-f1(x),實際上是執(zhí)行了fb(2)-fa(2),故執(zhí)行i=(fa,fb,2)后i的值為23-22=4。

33.99解析:考查ifelse語句,n==4不滿足條件,所以fun5(4)=4+fun5(3),n==3也不滿足條件,fun5(3)=3+fun5(2),n==2滿足條件fun5(2)=2,故x=4+3+2=9。

34.b[i]=a[i]+a[i+1]b[i]=a[i]+a[i+1]解析:將數(shù)組a中元素a[i]與a[i+1]值相加后的值賦予數(shù)組b中元素b[i],即可實現(xiàn)將一個數(shù)組的前項和后項之和存入另一數(shù)組。

35.時間復雜度時間復雜度解析:算法在執(zhí)行過程中所執(zhí)行的基本運算的次數(shù),也就是執(zhí)行算法所需要的計算工作量,稱為算法的時間復雜度。

36.邊界值分析法邊界值分析法解析:黑箱測試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導出測試用例。常用的黑箱測試有等價類劃分、邊界值分析法和錯誤推測法3種。

37.7979解析:因為在調(diào)用子函數(shù)時進行的是數(shù)值傳遞,調(diào)用子函數(shù)并不能改變實參的值,所以經(jīng)過調(diào)用子函數(shù),c、d的值并沒有發(fā)生變化還是原來的值。

38.9

39.1515解析:通過遞歸調(diào)用f函數(shù)實現(xiàn)了數(shù)組各元素之和,即a[4]+a[2]+a[1]+a[0]=15。

40.str[i]或str+iistr[i]或str+i\r\ni

41.C解析:第1個printf函數(shù),格式說明的個數(shù)是2,而輸出項的個數(shù)是3,所以對于多余的輸出項k不予輸出;第2個pfintf函數(shù),有兩個%說明,第1個%后面的字符要原樣輸出。注意:本題考查printf函數(shù)的格式。①“%x”和“%o”分別表示以十六進制和八進制無符號型輸出整型數(shù)據(jù)(不帶前導Ox或O):②printf函數(shù)中格式說明符之前插入的任何字符都原樣輸出:⑧格式說明與輸出項的個數(shù)也要相等,如果格式說明的個數(shù)少于輸出項的個數(shù),則對于多余的輸出項不予輸出。

42.A解析:本題考查位運算。位運算的對象應為二進制的形式。7的二進制表示為00000111,3的二進制表示為00000011,7與3相異或得00000100,即十進制數(shù)4,表達式“~4&3”先進行位反操作,再進行位與,即11111011&00000011=00000011,即十進制數(shù)3。所以應輸出為4和3。

43.B解析:本題考查ifelse語句。第一個if語句,先判斷條件,發(fā)現(xiàn)a=0,則!a成立,執(zhí)行下列的語句,x--,得x=11:第二個if語句,判斷條件,發(fā)現(xiàn)c=o,則條件不成立,執(zhí)行下列的else語句,得x=4。

44.D解析:濫用goto語句將使程序流程無規(guī)律,可讀性差,因此選項A)不選;注解行有利于對程序的理解,不應減少或取消,選項B)也不選;程序的長短要依照實際情況而論,而不是越短越好,選項C)也不選。

45.D本題考核的知識點是運算符的優(yōu)先級。主函數(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。所以,4個選項中選項D符合題意。

46.D解析:scanf函數(shù)的調(diào)用形式是:scanf(格式字符串,輸入項地址表)。其中,“格式字符串”是要輸入的變量的格式符;“輸入項地址表”是要輸入的變量的地址。題中定義變量a為雙精度型變量,雙精度變量的格式符為“1e”;變量的地址用取地址符“&”加變量名表示,例如變量a的地址為“&a”。

47.C解析:“int(*ptr)();”說明ptr是一個指向函數(shù)的指針,返回值是整型。*ptr兩邊的括號非常關(guān)鍵,表示*和ptr組合成一個指針變量,然后再和后邊的圃括號結(jié)合,表示該指針變量*ptr是一個指向函數(shù)的指針變量。如果沒有*ptr兩邊的括號,“int*ptr();”表示ptr是個函數(shù),該函數(shù)返回指向整型數(shù)據(jù)的指針。

48.A解析:本題int型占2個字節(jié),即16位,unsignedint所能表示的數(shù)據(jù)范圍是0~(216(上標)-1),即0~65535。

49.A解析:數(shù)據(jù)流圖包括4個方面,即加工(轉(zhuǎn)換)(輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出)、數(shù)據(jù)流(沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標注數(shù)據(jù)流名)、存儲文件(數(shù)據(jù)源)(表示處理過程中存放各種數(shù)據(jù)的文件)、源和潭(表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實體)。不包括選項中的控制流。

50.C解析:T就是關(guān)系R中有的,同時S中也有的有序組(1、2、3),即交運算(∩)。

51.B解析:本題考查while語句的使用。本題考查邏輯非運算符和不等于運算符的區(qū)別,邏輯非運算符'!'的優(yōu)先級大于不等于運算符'!='的優(yōu)先級。

52.A

53.B解析:fgets函數(shù)的作用是從指定的文件讀入—個字符串。fgets(str,n,fp);中的n為要求得到的字符的個數(shù),但只從fp指向的文件輸入n-1個字符,然后在最后加—個“\\0”字符,因此得到的字符串共有n個字符。

54.CC?!窘馕觥拷Y(jié)構(gòu)化分析方法是面向數(shù)據(jù)流進行需求分析的方法,采用自頂向下、逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。

55.C\r\n軟件工程是試圖用工程、科學和數(shù)學的原理與方法研制、維護計算機軟件的有關(guān)技術(shù)及管理方法。軟件工程的主要思想是強調(diào)在軟件開發(fā)工程中需要應用工程化的原則。軟件工程用來解決以下問題:軟件需求的增長得不到滿足、軟件開發(fā)成本和進度無法控制、軟件質(zhì)量難以保證、軟件不可維護或維護程度低、軟件得成本不斷提高、軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和應用需求的增長。軟件項目的管理、軟件產(chǎn)品的生產(chǎn)率、軟件開發(fā)中的技術(shù)都是軟件工程需要解決的部分問題。因此選項C正確。

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

57.B

58.C解析:帶參數(shù)宏的格式為:#define標識符(形參表)形參表達式。其功能是:在預處理程序中將程序中出現(xiàn)的所有帶實參的宏名,展開成由實參組成的表達式。

59.B解析:程序段中定義x值為1,!x值為0,因此循環(huán)執(zhí)行的條件永遠成立,該循環(huán)是死循環(huán)。

60.C解析:對象是由數(shù)據(jù)及可以對這些數(shù)據(jù)施加的操作組成的統(tǒng)一體。對象的內(nèi)部,即處理能力的實行和內(nèi)部狀態(tài),對外是看不見的,這一特性稱做對象的封裝。

61.D在一個函數(shù)中的復合語中定義的變量,只能在這個復合語句范圍內(nèi)有效。

62.C

63.A本題考查的是字符串的長度。字符數(shù)組中可以存放字符串,但字符數(shù)組的長度并不是字符串的長度,字符串的長度是指字符數(shù)組中存放的有效字符個數(shù),即“Ⅷ”之前的字符數(shù)。字符數(shù)組s中依次存放的字符是:l234567和2個字符串結(jié)束標記“Ⅷ”,故字符串的長度是7,所以應該選擇A)。

64.C由題目的已知條件函數(shù)fun的定義形式voidfun(charch,floatx){…)可知第一個形參為字符型,所以A不符合,第二個形參為精度型,所以D不符合,函數(shù)fun定義為void型(無論返回值型),故其沒有返回值,所以選項B錯誤。選項C的第一個實參的類型為字符型,第二個實參的類型為單精度型,與函數(shù)fun的形式參數(shù)的類型相符合,所以選項C為正確答案。

65.C本題考查結(jié)構(gòu)體數(shù)組的相關(guān)操作,dt為結(jié)構(gòu)體數(shù)組,那么指針P指向了結(jié)構(gòu)體數(shù)組的一個元素,所以P一>x為1,P一>Y為2,結(jié)果為2,3。選項C正確。

66.D

67.D

68.B

69.C解析:選項A中兩個變量的定義應當以逗號隔開;選項B中a和b應當分開賦值;選項D中變量類型不相匹配,b應當是指針型變量。

70.B本題考查通過scanf函數(shù)輸入數(shù)據(jù)時的格式控制問題。變量J的格式控制為”%2d”,即只接收輸人數(shù)據(jù)的前兩位,從第三位開始直到空格之間的輸入都會被保存到變量Y中,因為Y為浮點型數(shù)據(jù),所以輸出結(jié)果為選項B。

71.Aa=15,a%3=0,執(zhí)行case0語句標號,m++編程1,break;退出結(jié)構(gòu),所以m的值為1.

72.A當X為大于1的奇數(shù),x%2==0表達式為0,所以選擇A)。

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

74.B

75.B因為一間宿舍可以住多名學生即多名學生住在一間宿舍中,但,名學生只能住一間宿舍,所以實體宿舍和學生之間是一對多的關(guān)系,因此本題答案為B)。

76.C

77.C

78.B用戶自定義標識符不能與關(guān)鍵字相同。但可以與庫函數(shù)名相同,只是一般不建議用戶這么做。

79.A

80.B本題考查的是用于字符串處理的函數(shù)。

81.(1)錯誤:fun(intn)

正確:doublefun(intn)

(2)錯誤:s=s+(Double)a/b;

正確:s=s+(double)a/b;

【解析】本題考查函數(shù)的定義規(guī)則。函數(shù)定義的一般形式為類型標識符函數(shù)名(形式參數(shù)表列){函數(shù)體}。fun()函數(shù)中,最后返回的是變量s,由變量s的定義可知,返回值是double型,所以fun()函數(shù)定義時應明確注明標識符double類型。Double為書寫問題,寫程序時切記書寫格式。

82.

【考點分析】

本題考查:求數(shù)組的最大值,需要運用循環(huán)語句,因為數(shù)組是二維數(shù)組,所以應使用二層for循環(huán)嵌套。使用for循環(huán)語句時需要注意循環(huán)變量的取值范圍。

【解題思路】

此類求最大值或最小值的問題,我們可以采用逐個比較的方式,要求對數(shù)組中所有元素遍歷一遍,并且從中找出數(shù)組最大值或最小值。首先定義變量max存放數(shù)組中的第一個元素的值,然后利用for循環(huán)逐個找出數(shù)組中的元素,并與max比較,如果元素值大于max,則將該值賦予max,循環(huán)結(jié)束后max的值即為數(shù)組最大值,最后將該值返回。

【解題寶典】

該類題目考查較多,要掌握逐行比較的方法。對于m*n二維數(shù)組,如采用逐行查找方法,代碼實現(xiàn)為:

2022-2023年黑龍江省鶴崗市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.當c的值不為0時,在下列選項中不能正確將c的值賦給變量a、b的是()。

A.c=b=a;B.(a=c)||(b=c)C.(a=c)&&(b=c);D.a=c=b;

2.以下語句定義正確的是()A.A.inta[1][4]-{1,2,3,4,5};

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

C.longa[2][3]={{1},{1,2},{1,2,3},{0,0)};

D.doublea[][3]={O);

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

4.有以下定義和語句:structworkers{intnum;charname[20];charc;struct{intday;intmonth;intyear;}s;};structworkersw,*pw;pw=&w;能給w中year成員賦1980的語句是()。

A.pw->year=1980;

B.w.year=1980;

C.w.s.year=1980;

D.*pw.year=1980;

5.以下程序段中,與語句“k=a>b?(b>c?1:0):0;”功能相同的是()。

A.if((a>b)||(b>c))k=1;elsek=0;

B.if((a>b)&&(b>c))k=1;elsek=0;

C.if(a<=b)k=0;elseif(b<=c)k=1;

D.if(a>b)k=1;elseif(b>c)k=1;elsek=0;

6.設有定義:

inta=1,b=2,C=3;

以下語句中執(zhí)行效果與其他三個不同的是()。

A.if(a>B.C=a,a=b,b=C;

B.if(a>B.{C=a,a=b,b=C;}

C.if(a>B.C=a;a=b;b=c;

D.if(a>B.{C=a;a=b;b=c;}

7.有以下程序:

程序運行后的輸出結(jié)果是()。A.34B.55C.10D.18

8.有下列程序:

intfunl(doublea){returna*=a;}

intfun2(doublex,doubley)

{doublea=0,b=0;

a=funl(x);b=funl(y);return(int)(a+b);

}

main()

{doublew;w=fun2(1.1,2.0),……}

程序執(zhí)行后變量w中的值是()。、

A.5.21B.5C.5.0D.0.0

9.

10.有以下程序:#include<stdio.h>main(){inti,j,m=1;for(i=1;i<3;i++){for(j=3;j>0;j--){if(i*j>3)break;m*=i+j;}}printf("m=%d\n",m);}程序運行后的輸出結(jié)果是()。A.m=6B.m=2C.m=4D.m=3

11.下述程序執(zhí)行的輸出結(jié)果是()。#include<stdio.h>main(){chara[2][4];strcpy(a。"are");strcpy(a[1],"you");a[o][3]=&;printf("%s\n",a);}A.are&youB.youC.areD.&

12.以下敘述中正確的是_____。A.用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作

B.用C程序?qū)崿F(xiàn)的算法可以沒有輸出但必須要輸入

C.用C程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出

D.用C程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出

13.下列定義數(shù)組的語句中錯誤的是()。

A.intnum[][3]={{1,2},3,4,5,6};

B.intnum[2][4]={{1,2},{3,4},{5,6}};

C.intnum[]={1,2,3,4,5,6};

D.intnum[][4]={1,2,3,4,5,6};

14.以下說法錯誤的是()。

A.C語言標識符中可以有多個字母、數(shù)字和下劃線字符

B.C語言標識符中下劃線字符可以出現(xiàn)在任意位置

C.C語言標識符不能全部由數(shù)字組成

D.C語言標識符必須以字母開頭

15.設x為int型變量,則執(zhí)行以下語句后,x的值為()。x=10;x=x-=x-x;

A.10B.20C.40D.30

16.下面的哪一個保留字不能作為函數(shù)的返回類型()。

A.voidB.intC.newD.long

17.對n個關(guān)鍵字的序列進行快速排序,平均情況下的空間復雜度為_______

A.O(1)B.O(logn)C.O(n)D.O(nlogn)

18.在下列排序算法中,在待排序的數(shù)據(jù)表已經(jīng)為有序時,花費時間反而最多的是()

A.希爾排序B.堆排序C.冒泡排序D.快速排序

19.若有以下說明:chars1[]={"tree"},s2[]={"flower"};,則以下對數(shù)組元素或數(shù)組的輸出語句中,正確的是()。

A.printf("%s%s",s1[5],s2[7]);

B.printf("%c%c",s1,s2);

C.puts(s1);puts(s2);

D.puts(s1,s2);

20.當執(zhí)行下面的程序時,如果輸入ABC,則輸出結(jié)罘是()。#include<stdio.h>#include<string.h>main(){charss[10]="1,2,3,4,5":gets(ss);strcat(ss,"6789");printf("%s\n",ss);}A.ABC6789B.ABC67C.12345ABC6D.ABC456789

二、2.填空題(20題)21.以下函數(shù)fun的功能是返回str所指字符串中以形參c中字符開頭的后續(xù)字符串的首地址,例如;str所指字符串為:Hello!,c中的字符為e,則函數(shù)返回字符串:ello!的首地址。若str所指字符串為空串或不包含c中的字符,則函數(shù)返回NULL。請?zhí)羁铡?/p>

char*fun(char*str,charc)

{intn=0;char*p=str;

if(p!=NULL)

while(p[n]!=c&&p[n]!='\O')n++;

if(p[n]='\0')returnNULL;

return(【】);

}

22.設有以下定義變量的語句,并且已賦確定的值,則表達式“W*X+Z-y”所求得的數(shù)據(jù)類型為【】。

charw;intx;floaty;double2;

23.為建立如下圖所示的存儲結(jié)構(gòu)(即每個結(jié)點兩個域,p是指向結(jié)點的指針域,data用以存放整型數(shù)),請將定義補充完整。

pdata

a

structlist

{【】;intdata;}a;

24.按"先進后出"原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是【】。

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

#include<stdio.h>

main()

{inta=5,b=4,c=3,d;

d=(a>b>c);

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

}

26.表達式1/2*(int)3.7/(int)(2.4*(1.5+2.5))值的數(shù)據(jù)類型為______。

27.若a是int型變量,則下列表達式的值為______。

(a=2*3,a*2),a+4

28.數(shù)據(jù)庫系統(tǒng)的主要特點為數(shù)據(jù)集成性、數(shù)據(jù)的高______和低冗余性、數(shù)據(jù)獨立性和數(shù)據(jù)統(tǒng)一管理和控制。

29.數(shù)據(jù)庫技術(shù)的主要特點為數(shù)據(jù)的集成性、數(shù)據(jù)的高【】和低冗余性、數(shù)據(jù)獨立性和數(shù)據(jù)統(tǒng)一管理與控制。

30.面向?qū)ο蟮哪P椭?,最基本的概念是對象和______。

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

#include<string.h>

main()

{printf("%d\n",strlen("IBM\n012\1\\"));}

32.有以下程序

intfa(intx){returnx*x;}

intfb(intx){retumx*x*x;}

intf(int(*f1)(),int(*f2)(),intx)

{returnf2(x)-f1(x);}

main()

{inti;i=f(fa,fb,2);printf("%d\n",i);}

程序運行后,輸出結(jié)果是【】。

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

10ngfun5(intn)

{longs;

if((n==1)‖(n==2))

s=2;

else

s=n+fun5(n-1);

return(s);

}

main()

{longx;

x=fun5(4);

printf("%1d\n",x);}

34.下列程序中的數(shù)組a包括10個整數(shù)元素,分別將前項和后項之和存入數(shù)組b,并按每行4個元素輸出數(shù)組bo請?zhí)羁铡?/p>

#include<stdio.h>

main()

{inta[10],b[10],i;

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

scanf("%d",&a[i]);

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

______;

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

{if(i%4==0)printf("\n");

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

}

}

35.算法執(zhí)行過程中所需要的基本運算次數(shù)稱為算法的______。

36.常用的黑箱測試有等價類劃分法、【】和錯誤推測法3種。

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

#include<stdio.h>

intt(intx,inty,intcp,intdp)

{cp=x*x+y*y;

dp=x*x-y*y;

}

main()

{inta=1,b=8,c=7,d=9;

t(a,b,c,d);

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

}

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

longfun5(intn)

{longs;

if((n==1)||(n==2))

s=2;

else

s=n+fun5(n-1);

return(s);}

main()

{longx;

x=fun5(4);

printf("%ld\n",x);}

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

intf(inta[],intn)

{if(n>=1)returnf(a,n-1)+a[n-1];

elsereturn0;

}

main()

{intaa[5]={1,2,3,4,5),s;

s=f(aa,5);printf("%d\n",s);

}

40.mystrlen函數(shù)的功能是計算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁铡?/p>

intmystrlen(char*str)

{inti;

for(i=0;【】!='\0';i++);

return(【】);

}

三、1.選擇題(20題)41.若ch為char型變量,k為int型變量(已知字符a的ASCII碼是97),則執(zhí)行下列語句后輸出的結(jié)果為()。ch='b';k=10;printf("%x,%o,",ch,ch,k);printf("k=%%d\n",k);

A.因變量類型與格式描述符的類型不匹配,輸出無定值

B.輸出項與格式描述符個數(shù)不符,輸出為0值或不定值

C.62,142,k=%d

D.62,142,k=%10

42.以下程序的功能是進行位運算:main(){unsignedchara,b;a=7^3;b=~4&3;printf("%d%d\n",a,B);}程序運行后的輸出結(jié)果是()。

A.43B.73C.70D.40

43.假定所有變量均已正確說明,下列程序段運行后x的值是()。a=b=c=0;x=12;if(!a)x--;elsex=5:if(c)x=3:elsex=4:A.11B.4C.12D.3

44.在設計程序時,應采納的原則之一是()。

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

45.有以下程序main(){intm=3,n=4,x;x=-m++;x=x+8/++n;printf(“%d\n”,x);}程序運行后的輸出結(jié)果是______。A.3B.5C.-1D.-2

46.若有定義“doublea;”,則正確的輸入語句是()。

A.scanf("%1f,A);

B.scanf("%f,&A);

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

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

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

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

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

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

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

48.設int型占2個字節(jié),則unsignedint所能表示的數(shù)據(jù)范圍是______。

A.0~65535B.-3276~32767C.1~65536D.0~32767

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

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

50.設有如下關(guān)系表:

則下列操作正確的是()。

A.T=R/SB.T=R×SC.T=R∩SD.T=R∪S

51.設有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);則

A.運行程序段后輸出0B.運行程序段后輸出1C.程序段中的控制表達式是非法的D.程序段執(zhí)行無限次

52.IEEE802.3的物理層協(xié)議10BASE-T規(guī)定從網(wǎng)卡到集線器的最大距離為()

A.100mB.185mC.360mD.500m

53.C語言庫函數(shù)fgets(str,n,fp)功能是______。

A.從中指向的文件中讀取長度n的字符串存入int指向的內(nèi)存

B.從fp指向的文件中讀取長度不超過n-1的字符串存入str指向的內(nèi)存

C.從fp指向的文件中讀到n個字符串存入str指向的內(nèi)存

D.從str讀取至多n個字符到文件fp

54.結(jié)構(gòu)化分析方法是面向()的自頂向下、逐步求精進行需求分析的方法

A.對象B.數(shù)據(jù)結(jié)構(gòu)C.數(shù)據(jù)流D.目標

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

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

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

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

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

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

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

57.在軟件工程中,高質(zhì)量的文檔是______、一致性和無二義性的。

A.安全性B.完整性C.組合性D.統(tǒng)一性

58.#define能作簡單的替代,用宏來替代計算多項式5*x*x+5*x+5的值的函數(shù)f,正確的宏定義語句為()。

A.#definef(x)5*x*x+5*x+5

B.#definef5*X*x+5*x+5

C.#definef(a)(5*a*a+5*a+5)

D.#define(5*x*x+5*x+5)f(x)

59.判斷字符型變量chr為小寫字母的表達式是______。

A.'a'<=chr<='z'

B.(chr>='a')||(chr<='z')

C.(chr>=A)&&(chr<=z)

D.(chr>='a')&&(chr<='z')

60.對象實現(xiàn)了數(shù)據(jù)和操作的結(jié)合,是指對數(shù)據(jù)和數(shù)據(jù)的操作進行______。A.A.結(jié)合B.隱藏C.封裝D.抽象

四、選擇題(20題)61.以下敘述中不正確的是()。

A.在不同的函數(shù)中可以使用相同名字的變量

B.函數(shù)中的形式參數(shù)是局部變量

C.在一個函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效

D.在一個函數(shù)內(nèi)的復合語句中定義的變量在本函數(shù)范圍內(nèi)有效

62.

63.若有定義語句:

則strlen(s)的值是()。

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

64.設fun函數(shù)的定義形式為voidfun(charch,floatx){…}則下列對函數(shù)fun的調(diào)用語句中,正確的是()。

A.fun("abc",3.0);

B.t=fun(D.16.5);

C.fun(65,2.8);

D.fun(32,32);

65.有以下程序:

i

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

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

66.

67.

68.

69.以下定義語句中正確的是()。

A.

B.

C.

D.

70.有以下程序段:

當執(zhí)行上述程序段,從鍵盤上輸入555667777abc后,y的值為()。A.55566.0B.566.0C.7777.0D.566777.0

71.有以下程序:

voidmain()

{inta=15,b=21,m=0;

switch(a%3)

{case0:m++;break;

case1:m++;

switch(b%2)

{defaule:m++;

case0:m++;break;

}

}

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

}

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

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

72.以下選項中,當x為大于l的奇數(shù)時,值為0的表達式是()。

73.有以下程序:

voidmain()

{

inty=10;

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

}

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

A.y=0

B.y=-1

C.y=1

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

74.

75.一間宿舍可住多名學生,則實體宿舍和學生之間的聯(lián)系是()。A.一對一B.一對多C.多對一D.多對多

76.

77.

78.以下能定義為用戶標識符的是()。

A.printfB.charC._8abcD.Void

79.

80.有以下程序:

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

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

五、程序改錯題(1題)81.下列給定程序中函數(shù)fun()的功能是:求出如下分數(shù)序列的前n項之和,結(jié)果通過函數(shù)值返回。例如,若n=5,則應輸出8.391667。請改正程序中的錯誤,使其得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設計題(1題)82.請編寫函數(shù)fun,其功能是:找出2×M整型二維數(shù)組中最大元素的值,并將此值返回調(diào)用函數(shù)。

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

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

參考答案

1.C選項A是先將a的值賦給變量b,再將變量b的值賦給變量c,不合題意;B選項中由于c的值不為0,在將c的值賦給變量a后,表達式a=c的值為1,不再對表達式b=c計算;對于c選項,表達式a=c的值為1,再求表達式b=c的值為1,然后進行邏輯與運算;D選項將b的值賦給c后再賦給e,故選擇C選項。

2.D本題考查的是如何對二維數(shù)組進行賦值。選項A)中數(shù)組第二維的大小是4,但卻給賦了5個元素;選項B)中C語言規(guī)定,對于二維數(shù)組,只可以省略第一個方括號中的常量表達式而不可以省略第二個方括號中的常量表達式:選項c)中數(shù)組第一維的大小是2,但是賦值卻超過了2;選項D)中在對二維數(shù)組元素賦初值時,可以只對部分元素賦初值,未賦初值的元素自動取0。

3.D

4.C題目中定義了一個結(jié)構(gòu)體,結(jié)構(gòu)體中成員又是一個結(jié)構(gòu)體,w為結(jié)構(gòu)體workers的變量。如果給內(nèi)層結(jié)構(gòu)體成員賦值,先要得到內(nèi)層結(jié)構(gòu)體變量,即“w.s”。若要給year賦值,表示為“w.s.year”即可。故本題答案為C選項。

5.B條件表達式的含義是:如果表達式1成立,結(jié)果為表達式2的值,如果不成立,則為表達式3的值。在題干中,如果“a>b”且“b>c”,則k值為1;如果“a>b”且“b<c”,則k值為0;如果“a<b”,則k值為0。條件“a>b”與“b>c”中只要有一個條件不成立,k的值就為0。故本題答案為B選項。

6.C由于a小于b,所以所有選項中的條件都為假,c選項中實際執(zhí)行了a=b;b=c;兩個操作。而A、B、D選項由于條件不成立,所以什么也沒有做,所以選擇c選項。

7.D題干中,函數(shù)fun的功能是通過遞歸,將數(shù)組a中下標為0~n-1位置的元素累加,作為函數(shù)返回值返回。main函數(shù)調(diào)用fun時,傳入的a+2作為數(shù)組參數(shù),傳入n的值是4,所以函數(shù)返回值是元素a[2]、a[3]、a[4]、a[5]的和,程序輸出18。本題答案為D選項。

8.C子函數(shù)funl(doublea)的功能是返回a的平方值的整數(shù)部分。子函數(shù)fun2(doubleX,doubley)的功能是返回X的平方值的整數(shù)部分與Y的平方值的整數(shù)部分的和。又因為題中變量W的定義為double型,函數(shù)fun(2)的定義為int型,按照各類數(shù)值型數(shù)據(jù)間的混合運算,整型數(shù)據(jù)被轉(zhuǎn)換為實型數(shù)據(jù)。所以雙精度型變量w的值為5.0。

9.D

10.A本題考查了多重for循環(huán)。當(i*j)>3時,跳出循環(huán),本題中i=1,j=3,i*J后值為3,所以執(zhí)行下邊語句:m*=i+j,也可寫成m=m*i+j,這時要注意優(yōu)先級,所以m的值為6。

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

12.C解析:算法的特性中包括“有零個或多個輸入”及“有一個或多個輸出”這兩個特性。一個算法得到的結(jié)果就是算法的輸出,沒有輸出的算法是沒有意義的,所以一千算法必須至少有一個輸出。

13.BB選項中定義的數(shù)組為2行4列,而賦值時卻賦成了3行,所以錯誤。故本題答案為B選項。

14.DC語言的合法的標識符的命名規(guī)則是:標識符可以由字母、數(shù)字和下劃線組成,并且第1個字符必須是字母或下劃線。選項D錯誤。本題答案為D選項。

15.A執(zhí)行x=x-=x-x語句可寫成x=x-(x-x),可看出結(jié)果為10,故八選項正確。

16.C

17.D

18.D

19.C

20.A當執(zhí)行g(shù)ets(ss)后,ss數(shù)組中的元素為ABC,再執(zhí)行strcat(ss,"6789"),strcat的作用,是把6789連接到了ss數(shù)組后面,執(zhí)行完后SS數(shù)組為ABC6789,故選擇A選項。

21.&P(n)或p+n&P(n)或p+n解析:因為n被初始化為0、p被初始化指向str所指字符串的首地址,所以while循環(huán)的功能是從str所指字符串的第1個字符開始比較,若等于c或等于字符串結(jié)束符'\\0'就跳出循環(huán)。故循環(huán)結(jié)束后,若p[n]為'\\0',則證明str所指字符串不包含c中的字符,應該返回NULL,否則應該返回p[n]的地址值。返回NULL在第2條if語句中已經(jīng)實現(xiàn),所以我們應該填入的表達式為p[n]的地址值,即&p[n]或p+n。

22.double或雙精度型double或雙精度型

23.structlist*nextstructlist*next解析:定義的指針類型變量next也應該是結(jié)構(gòu)體類型的。

24.棧棧解析:考查考生對棧和隊列概念的掌握。按'先進后出'原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是棧;按'先進先出'原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是隊列。

25.00解析:在本題中,d=(a>b>c);相當于d=(5>4>3);其計算過程為:先算5>4,結(jié)果為真,得1,即d=(1>3);然后計算1>3,結(jié)果為假,得0。

26.整型整型解析:上面的表達式中,通過強制類型轉(zhuǎn)換把最后參與運算的數(shù)據(jù)都轉(zhuǎn)換成了int型,所以最后得到的結(jié)果也是int類型。

27.1010解析:此題考查逗號表達式。逗號表達式的值是最后一個表達式的值,所以本題的返回值是a+4。前面已經(jīng)給a賦值6,所以追回值a+4=6+4=10。

28.共享性共享性解析:數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能被不同的應用程序使用,實現(xiàn)了數(shù)據(jù)的高度共享,從而降低了數(shù)據(jù)的冗余,這也是數(shù)據(jù)庫的主要目的。

29.共享性共享性解析:數(shù)據(jù)庫技術(shù)的主要特點有以下幾個方面:數(shù)據(jù)的集成性,數(shù)據(jù)的高共享性與低冗余性,數(shù)據(jù)的獨立性,數(shù)據(jù)統(tǒng)一管理與控制。

30.類類

31.99解析:本題要輸出的結(jié)果是字符串'IBM\\n012\\1\\\\'的長度,'IBM'是3個字符,\'\\n\'是1個字符,'012'又是3個字符,最后的\'\\1\'和\'\\\\\'都是1個字符。所以最終字符串的長度應該是3+1+3+1+1=9。故本題應該填9。

32.44解析:在主函數(shù)中調(diào)用函數(shù)f,函數(shù)f有三個參數(shù),形參f1與f2分別是兩個指向函數(shù)的指針。在f中執(zhí)行f2(x)-f1(x),實際上是執(zhí)行了fb(2)-fa(2),故執(zhí)行i=(fa,fb,2)后i的值為23-22=4。

33.99解析:考查ifelse語句,n==4不滿足條件,所以fun5(4)=4+fun5(3),n==3也不滿足條件,fun5(3)=3+fun5(2),n==2滿足條件fun5(2)=2,故x=4+3+2=9。

34.b[i]=a[i]+a[i+1]b[i]=a[i]+a[i+1]解析:將數(shù)組a中元素a[i]與a[i+1]值相加后的值賦予數(shù)組b中元素b[i],即可實現(xiàn)將一個數(shù)組的前項和后項之和存入另一數(shù)組。

35.時間復雜度時間復雜度解析:算法在執(zhí)行過程中所執(zhí)行的基本運算的次數(shù),也就是執(zhí)行算法所需要的計算工作量,稱為算法的時間復雜度。

36.邊界值分析法邊界值分析法解析:黑箱測試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導出測試用例。常用的黑箱測試有等價類劃分、邊界值分析法和錯誤推測法3種。

37.7979解析:因為在調(diào)用子函數(shù)時進行的是數(shù)值傳遞,調(diào)用子函數(shù)并不能改變實參的值,所以經(jīng)過調(diào)用子函數(shù),c、d的值并沒有發(fā)生變化還是原來的值。

38.9

39.1515解析:通過遞歸調(diào)用f函數(shù)實現(xiàn)了數(shù)組各元素之和,即a[4]+a[2]+a[1]+a[0]=15。

40.str[i]或str+iistr[i]或str+i\r\ni

41.C解析:第1個printf函數(shù),格式說明的個數(shù)是2,而輸出項的個數(shù)是3,所以對于多余的輸出項k不予輸出;第2個pfintf函數(shù),有兩個%說明,第1個%后面的字符要原樣輸出。注意:本題考查printf函數(shù)的格式。①“%x”和“%o”分別表示以十六進制和八進制無符號型輸出整型數(shù)據(jù)(不帶前導Ox或O):②printf函數(shù)中格式說明符之前插入的任何字符都原樣輸出:⑧格式說明與輸出項的個數(shù)也要相等,如果格式說明的個數(shù)少于輸出項的個數(shù),則對于多余的輸出項不予輸出。

42.A解析:本題考查位運算。位運算的對象應為二進制的形式。7的二進制表示為00000111,3的二進制表示為00000011,7與3相異或得00000100,即十進制數(shù)4,表達式“~4&3”先進行位反操作,再進行位與,即11111011&00000011=00000011,即十進制數(shù)3。所以應輸出為4和3。

43.B解析:本題考查ifelse語句。第一個if語句,先判斷條件,發(fā)現(xiàn)a=0,則!a成立,執(zhí)行下列的語句,x--,得x=11:第二個if語句,判斷條件,發(fā)現(xiàn)c=o,則條件不成立,執(zhí)行下列的else語句,得x=4。

44.D解析:濫用goto語句將使程序流程無規(guī)律,可讀性差,因此選項A)不選;注解行有利于對程序的理解,不應減少或取消,選項B)也不選;程序的長短要依照實際情況而論,而不是越短越好,

溫馨提示

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

最新文檔

評論

0/150

提交評論