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

下載本文檔

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

文檔簡介

2021年黑龍江省哈爾濱市全國計算機等級考試C語言程序設計真題二卷(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.

2.以下關于鏈式存儲結(jié)構(gòu)說法錯誤的是()

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

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

C.查找結(jié)點時鏈式存儲比順序存儲快

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

3.以下選項中,非法的字符常量是______。

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

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

A.實現(xiàn)文件的順序讀寫B(tài).改變文件的位置指針C.實現(xiàn)文件的隨機讀寫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;}程序的運行結(jié)果是()。

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

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

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

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

D.以上三種描述都不對

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

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

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

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

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

8.

9.

10.假設下圖中每個正方形的邊長為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語言實型常量的是()。

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

13.

14.

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

A.66B.98C.bD.B

16.右兩個關系R和S如下:

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

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

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

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

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

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

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

A.函數(shù)名是屬于用戶標識符,需符合C語言對標識符的規(guī)定

B.形參只能是變量

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

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

19.設有序順序表中有n個數(shù)據(jù)元素,則利用二分查找法查找數(shù)據(jù)元素X的最多比較次數(shù)不超過()。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,則運行以上程序后,文件filea.txt中的內(nèi)容為()。

A.abcloB.abcC.helloabcD.abchello

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

22.若有程序:

main()

{inti,j;

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

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

}

要求給i賦10,給j賦20,則應該從鍵盤輸入【】。

23.以下程序的運行結(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.軟件定義時期主要包括______和需求分析兩個階段。

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

ihtk=2;

while(k=0)

printf("%d",k);

k--;

printf("\n");

27.下列程序的功能是對輸入的一行字符中的數(shù)字字符的字面值累加,輸出此累加和,請?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.以下程序的運行結(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.—個類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個方法提高了軟件的【】。

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)計一個字符串中的單詞個數(shù),單詞是指處在空格之間的字符序列,請?zhí)羁铡?/p>

intword(char*s)

{intnum=0,flag=0;

while(*s)

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

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

}

return【】}

34.以下程序段打開文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用ftell函數(shù)返回當前文件位置指針的具體位置,從而確定文件長度,請?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.關系可以有3種類型,即基本關系(又稱基本表或基表)、查詢表和【】。

37.fun函數(shù)的功能是:首先對a所指的N行N列的矩陣,找出各行中的最大的數(shù),再求這N個最大值中的最小的那個數(shù)作為函數(shù)值返回。請?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.下列程序段的運行結(jié)果是______。

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

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

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

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

main()

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

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

elseprintf("no\n");

}

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

doublea,b;intw;longc;

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

42.對表進行水平方向和垂直方向的分割,分別對應的關系運算是()

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);}以下關于aaa函數(shù)的功能的敘述正確的是A.求字符串s的長度B.比較兩個串的大小C.將串s復制到串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);}程序運行后的輸出結(jié)果是

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

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

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

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

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

A.預處理命令行都必須以#號開始

B.在程序中凡是以#號開始的語句行都是預處理命令行

C.宏替換不占用運行時間,只占編譯時間

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.有關物理獨立性的描述錯誤的是()

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

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

C.符合物理獨立性的數(shù)據(jù),當其數(shù)據(jù)的物理存儲改變了,應用程序不用改變

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

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

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

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

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

D.鼓勵開發(fā)者在軟件開發(fā)的絕大部分中都用實際領域的概念去思考

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);}程序的運行結(jié)果是

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

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

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

57.要求通過while循環(huán)不斷讀入字符,當讀入字母N時結(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.以下選項中,不能作為合法常量的是

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

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

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

B.數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)處理的效率無關

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

D.數(shù)據(jù)的存儲結(jié)構(gòu)在計算機中所占的空間不一定是連續(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);}則程序運行后的輸出結(jié)果是()。

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

四、選擇題(20題)61.

62.有以下程序:

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

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

63.有三個關系R、S和T如下:

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

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

64.下列處理中與隊列有關的是()。

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

65.有以下程序:

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

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

66.

67.

下列程序的運行結(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í)行下列程序中的輸出語句后,a的值是()。main{inta;printf(“%d\n”,(a=2*3,a*5,a+7));}A.17B.37C.6D.13

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

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

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

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

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

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

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

71.

72.

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

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

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

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

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

C.作為確認測試和驗收的依據(jù)

D.便于開發(fā)人員進行需求分析

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

A.abcB.zl0C.abcdefgzl0abcdefgzl0D.abcdefgzl0

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

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

B.return語句中表達式值的類型

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

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

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

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

78.算法的時間復雜度是指()。

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

79.設有如下程序段:

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

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

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

C.s和P都是指針變量

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

80.有以下程序:

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

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

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

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

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

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

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

試題程序:

參考答案

1.D

2.C

3.C解析:C語言中字符常量是以單引號括起來的單個字符,或以“\\”與三位八進制數(shù)值或兩位十六進制數(shù)值代替單個字符。

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

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選項。

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

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

8.D

9.D

10.C

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

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

13.D

14.B

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

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

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

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

19.A

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

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

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

23.#&#&解析:剛開始時,switch后面的表達式a>0為真(1),與case1匹配,然后執(zhí)行case1后面的switch語句,表達式b<0值為0,沒有與其匹配的語句,返回外層,因為外層沒有break語句,順序執(zhí)行case0后面的switch語句,表達式“c==5”值為1,與其后面的case1匹配,因此輸出#,遇到break返回外層,又因為外層沒有break語句,順序執(zhí)行default后的語句,輸出&。

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

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

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

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

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

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

30.可重用性可重用性解析:繼承的優(yōu)點:相似的對象可以共享程序代碼和數(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,但因為fun函數(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)計字符串單詞個數(shù)的算法中,本題的flag是為了記錄一個單詞是否結(jié)束。第13空應填*s++;如果某個字符不是空格,則必須判斷它是否是單詞,如是,則使得flag的標志為1,num的值加1。本題判斷方法是:先判斷s所指向的字符是否為空格,如果是則使得flag=0,否則判斷前一個字符是否是空格,如果是則說明這個字符是一個單詞的開始,將flag標志為1,num的值加1,如果不是,則不必記錄。故第14空應填flag=0或*(s-1)='';最后一個空格需填寫的是返回的單詞的個數(shù),即num。

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

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

35.C

36.視圖表視圖表解析:關系數(shù)據(jù)庫中通常有3種關系,即基本關系(又稱基本表或基表)、查詢表和視圖表。基本表是在機器中實際存儲數(shù)據(jù)的表。查詢表是查詢的結(jié)果所對應的臨時表。視圖表是由基本表或其他視圖表導出的表,是不實際存儲數(shù)據(jù)的表。視圖表是一個虛表。

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用來存放外循環(huán)中的循環(huán)次數(shù),col用來存放內(nèi)循環(huán)中的次數(shù),max記錄每行中的最大值,min記錄所有行中最大值中的最小值。在內(nèi)循環(huán)中,首先給max賦初值為每行的第0列元素值,然后從第一列開始依次與max進行比較。如果大于max則將其值賦給max,當每一行循環(huán)結(jié)束,max記錄了每一行的最大值。所以第一個空應該填a[row][col]>max或a[row][col]>=max。退出內(nèi)循環(huán),在第一次退出內(nèi)循環(huán)時,將min賦初值為第0行的max,然后在每次退出內(nèi)循環(huán)時,將min和每行的max比較,如果大于max,則將max值賦min,所以第二個空應該填max>min或mm>max,當退出外循環(huán)時,min為所有行中的最大值的最小值。

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

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

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

41.C解析:選項A不是合法的賦值語句,將最右邊的第一個賦值表達式加括號即為a=a+(b=b++)才正確,故選項A不正確。選項B中運算符%的對象必須是整型,而在選項B中(int)a+b為double型,故選項B不正確。a,b都為double型,應當避免使用a==b這樣的關系表達式,因為通常存放在內(nèi)存中的實型數(shù)據(jù)是有誤差的,因此不可能精確相等,這將導致關系表達式a==b總為0。所以,4個選項中選項C符合題意。

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

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

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

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

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

在選項A中,a==1不是一個合法的語句,因為它沒有語句結(jié)束標識符“;”,不能說是一條語句,如果作為一個表達式,它是正確的。

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

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

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

47.B

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

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

50.D

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

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

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

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

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

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

switch(表達式)

{case常量表達式1:語句1;

case常量表達式2:語句2;

case常量表達式n:語句n;

default:語句n+1;

}

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

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

56.A

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

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

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

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

61.A

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

63.B關系T中的元組是R關系中有而S關系中沒有的元組的集合,所以進行的是差的運算。

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

溫馨提示

  • 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

提交評論