2021年黑龍江省哈爾濱市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)_第1頁(yè)
2021年黑龍江省哈爾濱市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)_第2頁(yè)
2021年黑龍江省哈爾濱市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)_第3頁(yè)
2021年黑龍江省哈爾濱市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)_第4頁(yè)
2021年黑龍江省哈爾濱市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

2021年黑龍江省哈爾濱市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題二卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________

一、單選題(20題)1.

2.以下關(guān)于鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)說(shuō)法錯(cuò)誤的是()

A.比順序存儲(chǔ)結(jié)構(gòu)的存儲(chǔ)密度小

B.每個(gè)節(jié)點(diǎn)是由數(shù)據(jù)域和指針域組成

C.查找結(jié)點(diǎn)時(shí)鏈?zhǔn)酱鎯?chǔ)比順序存儲(chǔ)快

D.邏輯上不相鄰的節(jié)點(diǎn)物理上可能相鄰

3.以下選項(xiàng)中,非法的字符常量是______。

A.'t\'B.'\17'C.\nD.'\xaa'

4.利用fseek函數(shù)可實(shí)現(xiàn)的操作是()。

A.實(shí)現(xiàn)文件的順序讀寫(xiě)B(tài).改變文件的位置指針C.實(shí)現(xiàn)文件的隨機(jī)讀寫(xiě)D.以上答案均正確

5.有以下程序:#include<stdio.h>doublef(doublex);main(){doublea=0;inti;for(i=0;i<30;i+=10)a+=f((double)i);printf(“%3.0f\n”,a);}doublef(doublex)}returnx*x+1;}程序的運(yùn)行結(jié)果是()。

A.500B.401C.503D.1404

6.下面敘述正確的是______。A.算法的執(zhí)行效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無(wú)關(guān)

B.算法的空間復(fù)雜度是指算法程序中指令(或語(yǔ)句)的條數(shù)

C.算法的有窮性是指算法必須能在執(zhí)行有限個(gè)步驟之后終止

D.以上三種描述都不對(duì)

7.設(shè)有定義語(yǔ)句“int(*f)(int);”,則下列敘述中正確的是()。

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

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

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

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

8.

9.

10.假設(shè)下圖中每個(gè)正方形的邊長(zhǎng)為1,則從A到Z的最短路徑條數(shù)為()A.11B.12C.13D.14

11.以下程序執(zhí)行后sum的值是()。main{inti,sum;for(i=1;i<6;i++)sum+=i:printf("1%d\n",sum):}A.15B.14C.不確定D.0

12.以下屬于C語(yǔ)言實(shí)型常量的是()。

A.+6eB.e6+6C.6e+6D..e+6

13.

14.

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

A.66B.98C.bD.B

16.右兩個(gè)關(guān)系R和S如下:

則由關(guān)系R得到關(guān)系S的操作是()。A.自然連接B.并C.選擇D.投影

17.若有定義:int*p[3];,則以下敘述中正確的是()。

A.定義了一個(gè)基類型為int的指針變量p,該變量具有三個(gè)指針

B.定義了一個(gè)指針數(shù)組p,該數(shù)組含有三個(gè)元素,每個(gè)元素都是基類型為int的指針

C.定義了一個(gè)名為*p的整型數(shù)組,該數(shù)組含有三個(gè)int類型元素

D.定義了一個(gè)可指向一維數(shù)組的指針變量p,所指一維數(shù)組應(yīng)具有三個(gè)int類型元素

18.下列敘述錯(cuò)誤的是()。

A.函數(shù)名是屬于用戶標(biāo)識(shí)符,需符合C語(yǔ)言對(duì)標(biāo)識(shí)符的規(guī)定

B.形參只能是變量

C.為保證程序的正常運(yùn)行,函數(shù)中定義的變量不能與其他函數(shù)中的變量同名

D.函數(shù)中定義的變量可以與其他函數(shù)中的變量同名

19.設(shè)有序順序表中有n個(gè)數(shù)據(jù)元素,則利用二分查找法查找數(shù)據(jù)元素X的最多比較次數(shù)不超過(guò)()。A.log2+1

B.log2(n-1)

C.log2n

D.log2(n+1)

20.有以下程序:#include<stdio.h>main(){FILE*f;f=fopen(“fllea.txt”,“w”);fprintf(f,“abc”);fclose(f);}若文本文件filea.txt中原有內(nèi)容為hello,則運(yùn)行以上程序后,文件filea.txt中的內(nèi)容為()。

A.abcloB.abcC.helloabcD.abchello

二、2.填空題(20題)21.算法的復(fù)雜度主要包括時(shí)間復(fù)雜度和______復(fù)雜度。

22.若有程序:

main()

{inti,j;

scanq("i=%d,j=%d",&i,&j);

printf("i=%d,j=%d\n",i,j);

}

要求給i賦10,給j賦20,則應(yīng)該從鍵盤(pán)輸入【】。

23.以下程序的運(yùn)行結(jié)果是()。

main()

(inta=2,b=7,c=5;

switch(a>0)

{case1:switch(b<0)

{case1:switch(");break;

case2:printf("!");break;

}

case0:switch(c==5)

{case0:printf("*");break;

case1:printf("#");break;

case2:printf("$");break;

}

default:printf("&");

}

printf("\n");

}

24.閱讀下面程序,則程序的執(zhí)行結(jié)果為【】。

#include"stdio.h"

main()

{inta=30,b=20,z;

z=fun(a+b,a-b);

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

fun(inta,intb)

{intz;

z=a/b;

returnz;}

25.軟件定義時(shí)期主要包括______和需求分析兩個(gè)階段。

26.下列循環(huán)的循環(huán)次數(shù)是______。

ihtk=2;

while(k=0)

printf("%d",k);

k--;

printf("\n");

27.下列程序的功能是對(duì)輸入的一行字符中的數(shù)字字符的字面值累加,輸出此累加和,請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

#include<ctype.h>

main()

{charc;

inta,s=0;

while(______)

if(isdigit(C))

{a=c-'0';s+=a;}

printf("s=%d",s);

}

28.以下程序的運(yùn)行結(jié)果是:【】。

#include<stdio.h>

#include<string.h>

char*ss(char*s)

{returns+strlen(s)/2;}

main()

{char*p,*str="abcdefgh";

p=ss(str);printf("%s\n",p);

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

main()

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

d=(a>b>C);

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

}

30.—個(gè)類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個(gè)方法提高了軟件的【】。

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

#include<stdio.h>

fun()

{staticinta=0;

a+=3;printf("%d",A);

}

main()

{intcc;

for(cc=1;cc<5;cc++)fun();

printf("\n");

}

32.數(shù)據(jù)的邏輯結(jié)構(gòu)有線性結(jié)構(gòu)和______兩大類。

33.下述函數(shù)統(tǒng)計(jì)一個(gè)字符串中的單詞個(gè)數(shù),單詞是指處在空格之間的字符序列,請(qǐng)?zhí)羁铡?/p>

intword(char*s)

{intnum=0,flag=0;

while(*s)

{if(【】='')flag=0;

elseif(【】){flag=1;num++}

}

return【】}

34.以下程序段打開(kāi)文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用ftell函數(shù)返回當(dāng)前文件位置指針的具體位置,從而確定文件長(zhǎng)度,請(qǐng)?zhí)羁铡?/p>

FILE*myf;longf1;

myf=【】("test.t","rb");

fscek(myf,(),SEEK_END);f1+ftell(myf);

fclose(myf);

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

35.有以下程序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í)行后的輸出結(jié)果是

36.關(guān)系可以有3種類型,即基本關(guān)系(又稱基本表或基表)、查詢表和【】。

37.fun函數(shù)的功能是:首先對(duì)a所指的N行N列的矩陣,找出各行中的最大的數(shù),再求這N個(gè)最大值中的最小的那個(gè)數(shù)作為函數(shù)值返回。請(qǐng)?zhí)羁铡?/p>

#include<stdio.h>

#defineN100

intfun(int(*a)[N])

{

introw,col,max,min;

for(row=0;row<N;row++

{

for(max=a[row][0],col=1;col<N;col++)

if(【】)max=a[row][col];

if(row==0)min=max;

elseif(【】)min=max;

}

returnmin;

}

38.下列程序段的運(yùn)行結(jié)果是______。

charstr[]="ABCD",*p=str;

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

39.軟件測(cè)試是保證軟件質(zhì)量的重要手段,而軟件測(cè)試的主要和重要的測(cè)試方法是通過(guò)測(cè)試數(shù)據(jù)和【】的設(shè)計(jì)來(lái)實(shí)現(xiàn)。

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

main()

{inta=1,b=3,c=5;

if(c=a+b)printf("yes\n");

elseprintf("no\n");

}

三、1.選擇題(20題)41.有以下定義語(yǔ)句

doublea,b;intw;longc;

若各變量已正確賦值,則下列選項(xiàng)中正確的表達(dá)式是A.a=a+b=b++B.w%(int)a+b)C.(c+w)%(int)aD.w=a==b;

42.對(duì)表進(jìn)行水平方向和垂直方向的分割,分別對(duì)應(yīng)的關(guān)系運(yùn)算是()

A.選擇和投影B.投影和選擇C.選擇和聯(lián)接D.投影和聯(lián)接

43.有以下程序:main(){inti,s=0;for(i=1;i<10;i+=2)s+=i+1;printf("%d\n",s);}程序執(zhí)行后的輸出結(jié)果是()。

A.自然數(shù)1~9的累加和B.自然數(shù)1~10的累加和C.自然數(shù)1~9中奇數(shù)之和D.自然數(shù)1~10中偶數(shù)之和

44.有以下函數(shù)intaaa(char*s){char*t=s;while(*t++);t--;return(t-s);}以下關(guān)于aaa函數(shù)的功能的敘述正確的是A.求字符串s的長(zhǎng)度B.比較兩個(gè)串的大小C.將串s復(fù)制到串tD.求字符串s所占字節(jié)數(shù)

45.有以下程序main(){intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i++<7)if(p[i]%2)j+=p[i];prizltf("%d\n",j);}程序運(yùn)行后的輸出結(jié)果是

A.42B.45C.56D.60

46.若變量a、i已正確定義,且i已正確賦值,合法的語(yǔ)句是()。A.A.a==1B.++iC.a=a++=5D.a=int(i)

47.下列程序的輸出結(jié)果是______。#include<stdio.h>main(){printf("%d\n",NULL);}

A.不確定(因變量無(wú)定義)B.0C.-1D.1

48.以下敘述中不正確的是

A.預(yù)處理命令行都必須以#號(hào)開(kāi)始

B.在程序中凡是以#號(hào)開(kāi)始的語(yǔ)句行都是預(yù)處理命令行

C.宏替換不占用運(yùn)行時(shí)間,只占編譯時(shí)間

D.在以下定義是正確的:#definePI3.1415926;

49.有以下程序:int*f(int*x,int*y){if(*x<*y)returnx;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}執(zhí)行后輸出結(jié)果是()。

A.7,8,8B.7,8,7C.8,7,7D.8,7,8

50.有關(guān)物理獨(dú)立性的描述錯(cuò)誤的是()

A.物理獨(dú)立性是指用戶的應(yīng)用程序與存儲(chǔ)結(jié)構(gòu)是相互獨(dú)立的

B.符合物理獨(dú)立性的數(shù)據(jù)在磁盤(pán)上的數(shù)據(jù)庫(kù)中怎樣存儲(chǔ)用戶可以不了解

C.符合物理獨(dú)立性的數(shù)據(jù),當(dāng)其數(shù)據(jù)的物理存儲(chǔ)改變了,應(yīng)用程序不用改變

D.物理獨(dú)立性是指用戶的應(yīng)用程序與存儲(chǔ)結(jié)構(gòu)是相互聯(lián)系的

51.面向?qū)ο蟮脑O(shè)計(jì)方法與傳統(tǒng)的面向過(guò)程的方法有本質(zhì)不同,它的基本原理是()。

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

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

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

D.鼓勵(lì)開(kāi)發(fā)者在軟件開(kāi)發(fā)的絕大部分中都用實(shí)際領(lǐng)域的概念去思考

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

#include<stdio.h>

main()

{stmctst

{inty,x,z;

};

union

{longi;

intj;

chark;

}un;

printf("%d,%d\n",sizeof(stmctst),sizeof(un));

}

A.6,2B.6,4C.8,4D.8,6

53.以下數(shù)組定義中不正確的是_______。

A.inta[2][3];

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

C.intc[100][100={0};

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

54.以下程序的輸出結(jié)果是()。#include<stdio.h>main(){inta,i;a=0;for(i=1;i<5;i++){switch(i){case0:case3:a+=2;case1:case2:a+=3;default:a+=5;}}printf("%d\n",a);}

A.31B.13C.10D.20

55.有以下程序#include<stdio.h>main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;case3:a++;b++;}printf("a=%d,b=%d\n",a,b);}程序的運(yùn)行結(jié)果是

A.a=1,b=0B.a=2,b=2C.a=1,b=1D.a=2,b=1

56.C語(yǔ)言程序的基本單位是()

A.函數(shù)B.過(guò)程C.字符D.語(yǔ)句

57.要求通過(guò)while循環(huán)不斷讀入字符,當(dāng)讀入字母N時(shí)結(jié)束循環(huán),若變量已正確定義,下列正確的程序段是()。

A.while((ch=getchar())!='N')printf("%c",ch);

B.while(ch=getchar()!='N')printf("%c",ch);

C.while(ch=getchar()=='N')printf("%c",ch);

D.while((ch=getchar())=='N')printf("%c",ch);

58.以下選項(xiàng)中,不能作為合法常量的是

A.1.23E+04B.1.234e0.4C.1.23E+04D.1.23E+00

59.下列敘述中錯(cuò)誤的是()。

A.一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu)

B.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)處理的效率無(wú)關(guān)

C.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)處理的效率密切相關(guān)

D.數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)在計(jì)算機(jī)中所占的空間不一定是連續(xù)的

60.若有如下程序:sub(inta,intb,intc){c=a+b;return(c);}main(){intx=3,y=4,z=6;sub(x,y,z);printf('%d”,z);}則程序運(yùn)行后的輸出結(jié)果是()。

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

四、選擇題(20題)61.

62.有以下程序:

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

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

63.有三個(gè)關(guān)系R、S和T如下:

則由關(guān)系R和s得到關(guān)系T的操作是()。

A.自然連接B.差C.交D.并

64.下列處理中與隊(duì)列有關(guān)的是()。

A.操作系統(tǒng)中的作業(yè)調(diào)度B.執(zhí)行程序中的過(guò)程調(diào)用C.執(zhí)行程序中的循環(huán)控制D.——-X樹(shù)的遍歷

65.有以下程序:

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

A.197B.143C.33D.28

66.

67.

下列程序的運(yùn)行結(jié)果是()。

inty=5,x=14;

y=((x=3*Y,x+1),x-1);

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

A.x=27,y=27B.x=12,y=13C.x=15,y=14D.x=y=27

68.執(zhí)行下列程序中的輸出語(yǔ)句后,a的值是()。main{inta;printf(“%d\n”,(a=2*3,a*5,a+7));}A.17B.37C.6D.13

69.若有下列定義,則對(duì)a數(shù)組元素地址的正確引用是()。inta[5],*p=a;

A.p+5B.*a+1C.&a+1D.&a[0]

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

A.每個(gè)C語(yǔ)言程序文件中都必須要有一個(gè)main(.函數(shù)

B.在c語(yǔ)言程序中main(.函數(shù)的位置是固定的

C.c語(yǔ)言程序中所有函數(shù)之間都可以相互調(diào)用,與函數(shù)所在位置無(wú)關(guān)

D.在c語(yǔ)言程序的函數(shù)中不能定義另一個(gè)函數(shù)

71.

72.

73.軟件(程序)調(diào)試的任務(wù)是()。

A.診斷和改正程序中的錯(cuò)誤B.盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤C.發(fā)現(xiàn)并改正程序中的所有錯(cuò)誤D.確定程序中錯(cuò)誤的性質(zhì)

74.下列敘述中,不屬于軟件需求規(guī)格說(shuō)明書(shū)的作用的是()

A.便于用戶,開(kāi)發(fā)人員進(jìn)行理解和交流

B.反映出用戶問(wèn)題的結(jié)構(gòu),可以作為軟件開(kāi)發(fā)工作的基礎(chǔ)和依據(jù)

C.作為確認(rèn)測(cè)試和驗(yàn)收的依據(jù)

D.便于開(kāi)發(fā)人員進(jìn)行需求分析

75.閱讀下列程序,當(dāng)運(yùn)行函數(shù)時(shí),輸入abcdefgzl0,則輸出為()。

A.abcB.zl0C.abcdefgzl0abcdefgzl0D.abcdefgzl0

76.在C語(yǔ)言中,函數(shù)返回值的類型最終取決于()。

A.函數(shù)定義時(shí)在函數(shù)首部所說(shuō)明的函數(shù)類型

B.return語(yǔ)句中表達(dá)式值的類型

C.調(diào)用函數(shù)時(shí)主調(diào)函數(shù)所傳遞的實(shí)參類型

D.函數(shù)定義時(shí)形參的類型

77.若有定義語(yǔ)句:“inta=3,b=2,c=1;”,以下選項(xiàng)中錯(cuò)誤的賦值表達(dá)式是()。

A.a=(b=4)=3;B.a=b=c+1:C.a=(b=4)+C;D.a=1+(b=c一4);

78.算法的時(shí)間復(fù)雜度是指()。

A.算法所處理的數(shù)據(jù)量B.算法的執(zhí)行時(shí)間C.算法在執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)D.算法程序中的語(yǔ)句或指令條數(shù)

79.設(shè)有如下程序段:

則執(zhí)行P=s;語(yǔ)句后,以下敘述中正確的是()。

A.可以用*P表示s[O]

B.S數(shù)組中元素的個(gè)數(shù)和P所指字符串長(zhǎng)度相等

C.s和P都是指針變量

D.數(shù)組s中的內(nèi)容和指針變量P中的內(nèi)容相等

80.有以下程序:

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

A.58B.56C.45D.24

五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)fun的功能是:求出s所指字符串中最后一次出現(xiàn)的t所指字符串的地址,并通過(guò)函數(shù)值返回,在主函數(shù)中輸出從此地址開(kāi)始的字符串;’若未找到,則函數(shù)值為NULL。例如,當(dāng)字符串中的內(nèi)容為“123dabfl23dx”,t中內(nèi)容為“ab”時(shí),輸出結(jié)果應(yīng)是“l(fā)23dx”。當(dāng)字符串中的內(nèi)容為“l(fā)23dabfl23dx”,t中內(nèi)容為“aim”時(shí),則程序輸出未找到信息“Notfound!”。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:

六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫(xiě)函數(shù)proc(),其功能是:將str所指字符串中下標(biāo)為偶數(shù)的字符刪除,串中剩余字符形成的新串放在t所指數(shù)組中。

例如,當(dāng)str所指字符串中的內(nèi)容為abcdefg,則在t所指數(shù)組中的內(nèi)容應(yīng)是bdf。

注意:部分源程序給出如下。

請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。

試題程序:

參考答案

1.D

2.C

3.C解析:C語(yǔ)言中字符常量是以單引號(hào)括起來(lái)的單個(gè)字符,或以“\\”與三位八進(jìn)制數(shù)值或兩位十六進(jìn)制數(shù)值代替單個(gè)字符。

4.D解析:改變文件位置指針函數(shù)fseek()的功能:①改變文件的位置指針;②輔助實(shí)現(xiàn)文件的順序讀寫(xiě);③輔助實(shí)現(xiàn)文件的隨機(jī)讀寫(xiě)。

5.Cfor循環(huán)中,函數(shù)f的返回值累加到變量a中。第1次循環(huán),a=0,i=0,返回值a=0*0+1=1;第2次循環(huán),a=1,i=10,返回值a=10*10+1+1=102;第3次循環(huán),a=102,i=20,返回值a=20*20+1+102=503;第4次循環(huán)a=503,i=30,不符合1<30,跳出循環(huán),最后結(jié)果輸出a=503。故本題答案為C選項(xiàng)。

6.C解析:算法的執(zhí)行效率與數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)都有很緊密的關(guān)系。算法的空間復(fù)雜度是指執(zhí)行該算法需要的內(nèi)存空間,并非算法程序中指令的條數(shù)。算法一般應(yīng)該具有以下4個(gè)特征:可行性、確定性、有窮性和擁有足夠情報(bào)。其中,有窮性是指算法必須能在執(zhí)行有限個(gè)步驟之后終止,否則可能失去實(shí)際意義。

7.B此定義語(yǔ)句“int(*f)(int);”為指向函數(shù)的指針變量的定義方法,其中f為指向函數(shù)的指針變量,第1個(gè)int為函數(shù)返回值類型,第2個(gè)int為函數(shù)的形參類型。故本題答案為B選項(xiàng)。

8.D

9.D

10.C

11.Csum+=i等價(jià)于sun+i,在本題中sum沒(méi)有賦初值,而題中只輸出sum的值,因此整個(gè)結(jié)果為不確定值。

12.CC語(yǔ)言的實(shí)型常量可以用小數(shù)形式、指數(shù)形式來(lái)表示。題中的選項(xiàng)都是指數(shù)形式,指數(shù)形式的一般形式為:尾數(shù)E(或e)整型指數(shù)。C語(yǔ)言規(guī)定,字母E或e之前必須要有數(shù)字,且E或e后面的指數(shù)必須為整數(shù),E或e的前后以及數(shù)字之間不得插入空格。故本題答案為C選項(xiàng)。

13.D

14.B

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

16.C選擇:是在數(shù)據(jù)表中給予一定的條件進(jìn)行篩選數(shù)據(jù)。投影:是把表中的某幾個(gè)屬性的數(shù)據(jù)選擇出來(lái)。連接:有自然連接、外連接,內(nèi)連接等,連接主要用于多表之間的數(shù)據(jù)查詢。并:與數(shù)學(xué)中的并是一樣的。兩張表進(jìn)行并操作,要求它們的屬性個(gè)數(shù)相同并且需要相容。

17.B解析:當(dāng)一個(gè)數(shù)組中的元素均為指針類型數(shù)據(jù)時(shí),該數(shù)組就稱為指針數(shù)組。int*p[3]表示此數(shù)組是指針類型的,每個(gè)數(shù)組元素(指針變量)都是指向一個(gè)整型的指針變量。

18.C解析:本題考查函數(shù)調(diào)用時(shí)參數(shù)的作用域。在函數(shù)調(diào)用時(shí),函數(shù)體內(nèi)定義的變量的作用域連函數(shù)體內(nèi),因而在不同函數(shù)體內(nèi)定義的變量可以相同,不影響各個(gè)變量的使用。

19.A

20.B執(zhí)行“fprintf(f,“abc”);”后,f文件原有內(nèi)容被“abc”覆蓋。故本題答案為B選項(xiàng)。

21.空間空間解析:算法的復(fù)雜度主要包括時(shí)間復(fù)雜度和空間復(fù)雜度。所謂算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量。一個(gè)算法的空間復(fù)雜度,一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。

22.i=0j=20i=0,j=20解析:該函數(shù)的第一個(gè)參數(shù)是格式字符串,主要由兩類字符組成,一類是非格式符要求原樣輸入,一類是格式符對(duì)應(yīng)要輸入的變量,所以說(shuō)本題中應(yīng)該原樣輸入i=,j=,后面分別給變量0和20,所以說(shuō)空格處應(yīng)該填入i=0,j=20。

23.#&#&解析:剛開(kāi)始時(shí),switch后面的表達(dá)式a>0為真(1),與case1匹配,然后執(zhí)行case1后面的switch語(yǔ)句,表達(dá)式b<0值為0,沒(méi)有與其匹配的語(yǔ)句,返回外層,因?yàn)橥鈱記](méi)有break語(yǔ)句,順序執(zhí)行case0后面的switch語(yǔ)句,表達(dá)式“c==5”值為1,與其后面的case1匹配,因此輸出#,遇到break返回外層,又因?yàn)橥鈱記](méi)有break語(yǔ)句,順序執(zhí)行default后的語(yǔ)句,輸出&。

24.55解析:函數(shù)調(diào)用的時(shí)候,函數(shù)名字必須與所調(diào)用的函數(shù)名完全一致,形參與實(shí)參類型要一致,在沒(méi)有給出函數(shù)返回值類型的情況下,默認(rèn)為整形,當(dāng)返回值為整型的函數(shù)放到主函數(shù)后面時(shí),可以不需要事先說(shuō)明就調(diào)用這個(gè)函數(shù)。return既可以返回一個(gè)普通常量,也可以返回一個(gè)指針變量。

25.可行性研究可行性研究解析:軟件生命周期一般包括可行性研究與需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、交付使用及維護(hù)等,還可以將軟件生命周期分為三個(gè)階段:①軟件定義階段:可行性研究和需求分析;②軟件開(kāi)發(fā)階段:設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試;③軟件運(yùn)行維護(hù)階段:交付使用和維護(hù)。

26.00解析:解答本題需要注意表達(dá)式“k=0”,它是賦值表達(dá)式而不是關(guān)系表達(dá)式,不論k為何值,表達(dá)式k=0總會(huì)使k為0,所以不能進(jìn)入循環(huán)。

27.(c=getchar())!='\n'(c=getchar())!='\\n'解析:分析題目可知,程序中運(yùn)用函數(shù)c=getchar()從標(biāo)準(zhǔn)輸入設(shè)備讀取下一個(gè)字符,而且是一行的字符(即沒(méi)有換行),所以條件為(c=getchar())!='\\n'。

28.efghefgh解析:函數(shù)*ss的作用是使字符串指針往后移strlen(s)/2個(gè)位置。形參指針a指向字符串'abcdefeh',調(diào)用函數(shù)*ss后,指針指向e,所以輸出為efgh。

29.00解析:關(guān)系運(yùn)算符“>”的結(jié)合方式是從左向右的,所以在本題中的表達(dá)式a>b=c;從左向右開(kāi)始計(jì)算,a>b的結(jié)果為“1”,接著1和c比較假,該空格處應(yīng)該填0。

30.可重用性可重用性解析:繼承的優(yōu)點(diǎn):相似的對(duì)象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余,提高軟件的可重用性。

31.3691236912解析:本題考查最基本的for循環(huán):for(cc=1;cc<5;cc++)規(guī)定循環(huán)次數(shù)為4次,每次a+=3即每次a的值增3,但因?yàn)閒un函數(shù)中變量a為static類型,所以每次調(diào)用完于函數(shù)之后,變量a所做的改變都要保存。

32.非線性結(jié)構(gòu)非線性結(jié)構(gòu)

33.*s++flag=0或*(s-1)=''num*s++\r\nflag=0或*(s-1)=''\r\nnum解析:在統(tǒng)計(jì)字符串單詞個(gè)數(shù)的算法中,本題的flag是為了記錄一個(gè)單詞是否結(jié)束。第13空應(yīng)填*s++;如果某個(gè)字符不是空格,則必須判斷它是否是單詞,如是,則使得flag的標(biāo)志為1,num的值加1。本題判斷方法是:先判斷s所指向的字符是否為空格,如果是則使得flag=0,否則判斷前一個(gè)字符是否是空格,如果是則說(shuō)明這個(gè)字符是一個(gè)單詞的開(kāi)始,將flag標(biāo)志為1,num的值加1,如果不是,則不必記錄。故第14空應(yīng)填flag=0或*(s-1)='';最后一個(gè)空格需填寫(xiě)的是返回的單詞的個(gè)數(shù),即num。

34.fopenfopen解析:C語(yǔ)言中的文件分為:ASCII文件與二進(jìn)制j文件。文件在使用前打開(kāi),使用后要關(guān)閉。打開(kāi)文件的函數(shù)為:fopen(),調(diào)用形式為:fp=fopen('文件名','使用文件方式:);

關(guān)閉文件的函數(shù)為:fclose(),調(diào)用形式為:fclose(fp);其中fp為文件指針。

35.C

36.視圖表視圖表解析:關(guān)系數(shù)據(jù)庫(kù)中通常有3種關(guān)系,即基本關(guān)系(又稱基本表或基表)、查詢表和視圖表?;颈硎窃跈C(jī)器中實(shí)際存儲(chǔ)數(shù)據(jù)的表。查詢表是查詢的結(jié)果所對(duì)應(yīng)的臨時(shí)表。視圖表是由基本表或其他視圖表導(dǎo)出的表,是不實(shí)際存儲(chǔ)數(shù)據(jù)的表。視圖表是一個(gè)虛表。

37.a[row][col]>max或a[row][col]>=max或max<=a[row][col]或max<a[row][col)max<min或min>max或max<=min或min>=maxa[row][col]>max或a[row][col]>=max或max<=a[row][col]或max<a[row][col)\r\nmax<min或min>max或max<=min或min>=max解析:本題有兩層for循環(huán),主函數(shù)中定義了整型變量row、col、max和min,其中row用來(lái)存放外循環(huán)中的循環(huán)次數(shù),col用來(lái)存放內(nèi)循環(huán)中的次數(shù),max記錄每行中的最大值,min記錄所有行中最大值中的最小值。在內(nèi)循環(huán)中,首先給max賦初值為每行的第0列元素值,然后從第一列開(kāi)始依次與max進(jìn)行比較。如果大于max則將其值賦給max,當(dāng)每一行循環(huán)結(jié)束,max記錄了每一行的最大值。所以第一個(gè)空應(yīng)該填a[row][col]>max或a[row][col]>=max。退出內(nèi)循環(huán),在第一次退出內(nèi)循環(huán)時(shí),將min賦初值為第0行的max,然后在每次退出內(nèi)循環(huán)時(shí),將min和每行的max比較,如果大于max,則將max值賦min,所以第二個(gè)空應(yīng)該填max>min或mm>max,當(dāng)退出外循環(huán)時(shí),min為所有行中的最大值的最小值。

38.6868解析:本題考查如何用指針引用數(shù)組元素。本題先定義了一個(gè)指向字符型數(shù)組str的指針p,指針p指向數(shù)組str的首地址,p+3將指針指向str[3],*(p+3)指的是字符“D”,輸出時(shí)是以“%d”格式輸出的,即輸出其相應(yīng)ASCII碼值68。

39.測(cè)試實(shí)例測(cè)試實(shí)例解析:進(jìn)行軟件測(cè)試時(shí),應(yīng)精心設(shè)計(jì)測(cè)試實(shí)例和選擇測(cè)試數(shù)據(jù),以對(duì)系統(tǒng)進(jìn)行全面測(cè)試。

40.yesyes解析:if語(yǔ)句的條件語(yǔ)句為c=a+b=1+3=4,即條件為真,執(zhí)行語(yǔ)句printf('yes\\n');,輸出結(jié)果為yes。

41.C解析:選項(xiàng)A不是合法的賦值語(yǔ)句,將最右邊的第一個(gè)賦值表達(dá)式加括號(hào)即為a=a+(b=b++)才正確,故選項(xiàng)A不正確。選項(xiàng)B中運(yùn)算符%的對(duì)象必須是整型,而在選項(xiàng)B中(int)a+b為double型,故選項(xiàng)B不正確。a,b都為double型,應(yīng)當(dāng)避免使用a==b這樣的關(guān)系表達(dá)式,因?yàn)橥ǔ4娣旁趦?nèi)存中的實(shí)型數(shù)據(jù)是有誤差的,因此不可能精確相等,這將導(dǎo)致關(guān)系表達(dá)式a==b總為0。所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。

42.A解析:從關(guān)系中找出滿足給定條件的那些元組稱為選擇,是從行的角度進(jìn)行的運(yùn)算,即水平方向抽取元組。從關(guān)系模式中挑選若干屬性組成新的關(guān)系稱為投影,是從列的角度進(jìn)行的運(yùn)算,相當(dāng)于對(duì)關(guān)系進(jìn)行垂直分解。所以,本題選擇A。

43.D解析:本題考核的知識(shí)點(diǎn)是for循環(huán)語(yǔ)句和復(fù)合賦值+=運(yùn)算符的應(yīng)用。本題中,i賦初值為1,并對(duì)其每次進(jìn)行加2操作,即i每次均為1~10之間的奇數(shù),s+=i+1,即s=s+i+1,相當(dāng)于s等于原來(lái)的s每次加上1~10之間的偶數(shù),直到i<10不成立.當(dāng)i=1時(shí),s=0+1+1=2;當(dāng)i=3時(shí),s=2+3+1=2+4;當(dāng)i=5時(shí),s=2+4+5+1=2+4+6;當(dāng)i=7時(shí),s=2+4+6+7+1=2+4+6+8;當(dāng)i=9時(shí),s=2+4+6+8+9+1=2+4+6+8+10;當(dāng)i=11時(shí),i<10不成立,結(jié)束循環(huán)。所以,4個(gè)選項(xiàng)中選項(xiàng)D符合題意。

44.A解析:aaa()函數(shù)中,首先定義了一個(gè)字符指針t指向形參s,然后通過(guò)一個(gè)while循環(huán)讓指針\u3000t不斷遞增,直到t指向字符串結(jié)束標(biāo)志處。當(dāng)t指向結(jié)束標(biāo)志處時(shí),由于后綴++運(yùn)算符的原因,它還會(huì)被再遞增1,所以接卜來(lái)的t--;語(yǔ)句讓它回到結(jié)束標(biāo)志處。最后返回t-s,因此s還是指向字符串第1個(gè)字符處,而t指向了字符串結(jié)尾,故返回值為字符串的長(zhǎng)度值。

45.B解析:本題考查的是while語(yǔ)句和if語(yǔ)句的綜合應(yīng)用。程序中while的循環(huán)條件是1++<7,由于程序開(kāi)始時(shí)將i初始化為0,而且循環(huán)體中沒(méi)有改變變量i的語(yǔ)句,只有循環(huán)條件中i的自增,所以當(dāng)i從0自增到6時(shí)循環(huán)的循環(huán)體一共被執(zhí)行了7次,但是在循環(huán)體中,i的值為從1到7。在循環(huán)體中只有一條if語(yǔ)句,其條件表達(dá)式為p[i]%2,當(dāng)p[i]為奇數(shù)時(shí),p[i]除以2余1,條件表達(dá)式的值為“真”,所以整個(gè)循環(huán)語(yǔ)句所做的事就是:累計(jì)p[1]到p[7]之間的奇數(shù)到變量j中。所以最后j的值應(yīng)該為13+15+17=45.選項(xiàng)B符合題意。

46.B本題主要考查C語(yǔ)言合法語(yǔ)句的定義。

在選項(xiàng)A中,a==1不是一個(gè)合法的語(yǔ)句,因?yàn)樗鼪](méi)有語(yǔ)句結(jié)束標(biāo)識(shí)符“;”,不能說(shuō)是一條語(yǔ)句,如果作為一個(gè)表達(dá)式,它是正確的。

在選項(xiàng)B中,由于變量i已被正確定義并有初值,“++i;”是正確的語(yǔ)句。

在選項(xiàng)C中,由于正確的賦值語(yǔ)句中,賦值符號(hào)的左邊不能為常量或表達(dá)式,而右邊不能為變量或表達(dá)式,很明顯,“a=a++=5;”違背了賦值語(yǔ)句的原則。

在選項(xiàng)D中,“a=int(i);”語(yǔ)句是不正確的,在C語(yǔ)言中沒(méi)有這種表示形式,如果是想將變量i強(qiáng)制轉(zhuǎn)換為整型的操作,應(yīng)該為“a=(int)i;”。

47.B

48.D解析:帶參數(shù)的宏定義如下:#define宏名(參數(shù))字符串。本題中,宏定義的作用是指定用標(biāo)識(shí)符PI來(lái)代替“3.1415926”這個(gè)字符串,但宏定義不是C語(yǔ)句,不必在行末加分號(hào)。

49.B解析:本題定義了一個(gè)返回值為指針的函數(shù)f(),此函數(shù)有兩個(gè)指針型的形參x和y,該函數(shù)的功能,是返回x和y指向的變量中值較小的那個(gè)指針變量。主函數(shù)中定義了兩個(gè)指針變量p和q,并讓它們指向變量a和b,調(diào)用函數(shù)f(),返回指向的變量值較小的指針變量,r的值為指針變量p的值(變量a的地址),因此最后輸出的*p、*q和*r的值是7,8和7。所以,B選項(xiàng)為所選。

50.D

51.C解析:面向?qū)ο蟮脑O(shè)計(jì)方法與傳統(tǒng)的面向過(guò)程的方法有本質(zhì)不同。它的基本原理是,使用現(xiàn)實(shí)世界的概念抽象地思考問(wèn)題從而自然地解決問(wèn)題。它強(qiáng)調(diào)模擬現(xiàn)實(shí)世界中的概念而不強(qiáng)調(diào)算法,它鼓勵(lì)開(kāi)發(fā)者在軟件開(kāi)發(fā)的絕大部分中都用應(yīng)用領(lǐng)域的概念去思考。

52.B解析:本題主要考查結(jié)構(gòu)體和聯(lián)合內(nèi)存使用的區(qū)別:結(jié)構(gòu)中不同的成員分別使用不同的內(nèi)存空間,一個(gè)結(jié)構(gòu)所占內(nèi)存空間的大小是結(jié)構(gòu)中每個(gè)成員所占內(nèi)存空間大小的總和,結(jié)構(gòu)中每個(gè)成員相互獨(dú)立;聯(lián)合所占用的內(nèi)存空間為最長(zhǎng)的成員所占用的空間。

53.D解析:一維數(shù)組的定義方式為:

類型說(shuō)明符數(shù)組名[常量表達(dá)式];

選項(xiàng)A符合此定義形式,正確;C語(yǔ)言中多維數(shù)組賦初值時(shí)可以部分賦值,也可以不指定除第一維以外的其他維的大小,故選項(xiàng)C正確;另外,如果對(duì)全部數(shù)組元素都賦初值,則定義數(shù)組時(shí)對(duì)第一維的長(zhǎng)度可以不指定,但第二維的長(zhǎng)度不能省,所以選項(xiàng)B正確,而選項(xiàng)D是錯(cuò)誤的。

54.A解析:多分支選擇switch語(yǔ)句的一般形式為:

switch(表達(dá)式)

{case常量表達(dá)式1:語(yǔ)句1;

case常量表達(dá)式2:語(yǔ)句2;

case常量表達(dá)式n:語(yǔ)句n;

default:語(yǔ)句n+1;

}

其語(yǔ)義是:計(jì)算表達(dá)式的值,并逐個(gè)與其后的常量表達(dá)式值相比較,當(dāng)表達(dá)式的值與某個(gè)常量表達(dá)式的值相等時(shí),即執(zhí)行其后的語(yǔ)句,不再進(jìn)行判斷,繼續(xù)執(zhí)行后面所有case后的語(yǔ)句。如果表達(dá)式的值與所有case后的常量表達(dá)式均不相同時(shí),則執(zhí)行default后的語(yǔ)句。

55.D解析:本題考查switch語(yǔ)句,首先,x=1符合條件case1,執(zhí)行switch(y)語(yǔ)句。y=0符合case0語(yǔ)句,執(zhí)行a抖并跳出switch(y)語(yǔ)句,此時(shí)a=1。因?yàn)閏ase1語(yǔ)句后面沒(méi)有break語(yǔ)句,所以向后執(zhí)行case2語(yǔ)句,執(zhí)行a++,b++,然后跳出switch(x),得a=2,b=1。

56.A

57.A解析:while循環(huán)的執(zhí)行過(guò)程如下:(1)計(jì)算while后面圓括號(hào)中表達(dá)式的值.當(dāng)值為非0時(shí),執(zhí)行步驟(2);當(dāng)值為0時(shí),執(zhí)行步驟(4)。(2)執(zhí)行循環(huán)體一次。(3)轉(zhuǎn)去執(zhí)行步驟(1)。(4)退出循環(huán)。在選項(xiàng)A)中,表達(dá)式(ch=getchar())!='N'表示輸入的字符不等于N,如果這個(gè)條件表達(dá)式成立,則執(zhí)行循環(huán)體,打印輸出輸入的字符。如果這個(gè)條件表達(dá)式不成立,即輸入的字符等于N,則退出循環(huán).所以選項(xiàng)A)為正確答案。

58.B解析:C語(yǔ)言的語(yǔ)法規(guī)定,字母e(E)之前必須有數(shù)字,且e(E)后面的指數(shù)必須是整數(shù),而選項(xiàng)B)中,e(E)后面的指數(shù)是小數(shù),所以不合法。

59.B解析:一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲(chǔ)結(jié)構(gòu),常用的存儲(chǔ)結(jié)構(gòu)有順序、鏈接、索引等,選項(xiàng)A和選項(xiàng)D正確。采用不同的存儲(chǔ)結(jié)構(gòu),其數(shù)據(jù)處理的效率不同,因此,在進(jìn)行數(shù)據(jù)處理時(shí),選擇合適的存儲(chǔ)結(jié)構(gòu)是很重要的,選項(xiàng)C正確,選項(xiàng)B錯(cuò)誤,應(yīng)為本題正確答案。

60.B解析:本題定義了——個(gè)子函數(shù)sub(),因?yàn)閟ub()的形參為int型變量,而不是指針,即為傳值調(diào)用,所以sub()函數(shù)不會(huì)改變實(shí)參x、y、z的值,故最后輸出結(jié)果為6,應(yīng)該選擇B。

61.A

62.A在函數(shù)point函數(shù)調(diào)用時(shí),系統(tǒng)自動(dòng)為函數(shù)的形參P分配內(nèi)存空間,并賦值為實(shí)參P的值。當(dāng)執(zhí)行語(yǔ)句P+=3;時(shí),系統(tǒng)操作的是形參P的內(nèi)存空間,更改形參P的內(nèi)容,而實(shí)參指針變量P的值未受影響,即指針變量作為函數(shù)參

63.B關(guān)系T中的元組是R關(guān)系中有而S關(guān)系中沒(méi)有的元組的集合,所以進(jìn)行的是差的運(yùn)算。

64.A隊(duì)列是指允許在一端進(jìn)行插入,而在另一端進(jìn)行刪除的線性表。由于最先進(jìn)入隊(duì)列的元素將最先出隊(duì),所以隊(duì)列具有“先進(jìn)先出”的特性,體現(xiàn)了“先來(lái)先服務(wù)”的原則。作業(yè)調(diào)度是指根據(jù)一定信息,

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論