2021年江蘇省蘇州市全國計算機等級考試C語言程序設計測試卷一(含答案)_第1頁
2021年江蘇省蘇州市全國計算機等級考試C語言程序設計測試卷一(含答案)_第2頁
2021年江蘇省蘇州市全國計算機等級考試C語言程序設計測試卷一(含答案)_第3頁
2021年江蘇省蘇州市全國計算機等級考試C語言程序設計測試卷一(含答案)_第4頁
2021年江蘇省蘇州市全國計算機等級考試C語言程序設計測試卷一(含答案)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2021年江蘇省蘇州市全國計算機等級考試C語言程序設計測試卷一(含答案)學校:________班級:________姓名:________考號:________

一、單選題(20題)1.s1和s2已正確定義并分別指向兩個字符串。若要求:當s1所指串大于s2所指串時,執(zhí)行語句s;則以下選項中正確的是()。

A.if(s1>s2)S;

B.if(strcmp(s1,s2))S;

C.if(strcmp(s2,sl)>O)S;

D.if(stremp(s1,s2)>O)S;

2.下列關于棧的敘述中,正確的是()。

A.棧底元素一定是最后入棧的元素B.棧操作遵循先進后出的原則C.棧頂元素一定是最先入棧的元素D.以上三種說法都不對

3.假設某算法的計算時間可用遞推關系式T(n)=2T(n/2)+n,T(1)=1表示,則該算法的時間復雜度為()

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

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

A.C語言程序必須由一個或一個以上的函數(shù)組成

B.函數(shù)調用可以作為一個獨立的語句存在

C.若函數(shù)有返回值,必須通過return語句返回

D.函數(shù)形參的值也可以傳回給對應的實參

5.排序的算法很多,若排序的穩(wěn)定性和不穩(wěn)定性分類,則()是不穩(wěn)定排序。

A.冒泡排序B.歸并排序C.直接插入排序D.希爾排序

6.已知一個大小為n的整型數(shù)組,現(xiàn)求該數(shù)組的全部連續(xù)子數(shù)組的元素之和的最大值,最優(yōu)算法的時間復雜度是()如:a[4]={2,-1,3,-4},它的全部連續(xù)子數(shù)組為{2,-1,3,-4,[2,-1],[-1,3],[3,-4],[2,-1,3],[-1,3,-4],[2,-1,3,-4]},它們的元素之和為{2,-1,3,-4,1,2,-1,4,-2,0},其中的最大值為4。

A.O(logN)B.O(N)C.O(N*logN)D.O(N^2)

7.下面關于圖的存儲的敘述中正確的是()。

A.用鄰接表法存儲圖,占用的存儲空間大小只與圖中邊數(shù)有關,而與頂點個數(shù)無關

B.用鄰接表法存儲圖,占用的存儲空間大小與圖中邊數(shù)和頂點個數(shù)都有關

C.用鄰接矩陣法存儲圖,占用的存儲空間大小與圖中頂點個數(shù)和邊數(shù)無關

D.用鄰接矩陣存儲圖,占用的存儲空間大小只與圖中邊數(shù)有關,而與頂點個數(shù)無關

8.有以下函數(shù)定義:voidfun(intn,doubx){……}若以下選項中的變量都已正確定義并賦值,則對函數(shù)fun的正確調用語句是()。

A.fun(inty,doublem);

B.k=fun(10,12.5);

C.fun(x,n);

D.voidfum(n,x);

9.有定義:“inta=2,b=3,c=4;”,則下列選項中值為0的表達式是()。A.(!a==1)&&(!b==0)B.(a<b)&&!c‖1C.a&&bD.a||(b+b)&&(c-a)

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

A.在C語言中,函數(shù)中的自動變量可以賦初值,每調用一次賦一次初值

B.在C語言中,在調用函數(shù)時,實參和對應形參在類型上只需賦值兼容

C.在C語言中,外部變量的隱含類型是自動存儲類別

D.在C語言中,函數(shù)形參的存儲類型是自動(auto)類型的變量

11.有以下程序:#include<stdio.h>main(){chars[]=“012xy\08s34f4w2”;inti,n=0;for(i=0;s[i]|=0;i++) if(s[i]>=‘0’&&s[i]<=“9”)n++;printf(“%d\n”,n);}程序運行后的輸出結果是()。

A.7B.0C.3D.8

12.若有定義“inta=1234,b=-5678;”,用語句“printf("%+-6d%+-6d",a,b);”輸出,以下正確的輸出結果是()。

A.+1234-5678(中間有一個空格,最后有一個空格)

B.+1234-5678(最前面有一個空格,中間有一個空格)

C.+-1234+-5678(最前面和最后均無空格)

D.1234-5678(中間有兩個空格,最后有一個空格)

13.以下關于字符串的敘述中正確的是()。

A.C語言中有字符串類型的常量和變量

B.兩個字符串中的字符個數(shù)相同時才能進行串符串大小的比較

C.可以用關系運算符對字符串的大小進行比較

D.空串一定比空格打頭的字符串小

14.

15.設一個廣義表中結點的個數(shù)為n,則求廣義表深度算法的時間復雜度為____。

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

16.數(shù)據(jù)的邏輯關系是指數(shù)據(jù)元素的()。

A.關聯(lián)B.結構C.數(shù)據(jù)項D.存儲方式

17.下列結構體類型說明和變量定義中正確的是()。

A.structREC;{intn;charc;};RECt1,t2;

B.typedefstruct{intn;charc;}REC;RECt1,t2;

C.typedefstructREC;{intn=0;charc=‘A’;}t1,t2;

D.struct{intn;charc;}REC;RECt1,t2;

18.若i、j已定義成mt型,則下列程序段中內循環(huán)體的總執(zhí)行次數(shù)是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30

19.以下選項中,算術表達式的值與其他3個不同的是()。

A.3/5.B.3./5C.3/5D.3.0/5.0

20.

二、2.填空題(20題)21.以下程序的功能是:求出數(shù)組x中各相鄰兩個元素的和依次存放到a數(shù)組中,然后輸出。請?zhí)羁铡?/p>

main()

{intx[10],a[9],I;

for(I=0;I<10;I++)scanf("%d",&x[I]);

for(【】;I<10;I++)

a[I-1]=x[I]+【】;.

for(I=0;I<9;I++)printf("%d",a[I]);

printf("");

}

22.以下函數(shù)用來求出兩整數(shù)之和,并通過形參將結果傳回,請?zhí)羁铡?/p>

voidfunc(intx,inty,【】z)

{*z=x+y;}

23.下面的函數(shù)fun的功能是將形參x的值轉換成二進制數(shù),所得二進制數(shù)的每一位放在一維數(shù)組中返回,二進制的最低位放在下標為0的元素中,其他依次類推,請?zhí)羁铡?/p>

fun(intx,intb[])

{intk=0,r;

do{

r=x%【】;

b[k++]=r;

x/=【】;

}while(x);}

24.若有程序:

main()

{inti,j;

scanf('i=%d,j=%d";&i,&j);

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

}

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

25.函數(shù)voidfun(float*sn,intn)的功能是:根據(jù)以下公式計算S,計算結果通過形參指針sn傳回;n通過形參傳入,n的值大于等于0。請補全程序。

S=1-1/3+1/5-1/7+…+1/(2n+1)

voidfun(float*sn,intn)

{floats=0.0,w,f=-1.0;

inti=0;

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

{f=【】*f;

w=f/(2*i+1);

s+=w;

}

【】=s;

}

26.以下程序中函數(shù)fun的功能是:構成一個如圖所示的帶頭結點的單詞鏈表,在結點的數(shù)據(jù)域中放入了具有兩個字符的字符串。函數(shù)disp的功能是顯示輸出該單鏈表中所有結點中的字符串。請?zhí)羁胀瓿珊瘮?shù)disp。[*]

#include<stdio.h>

typedefstructnode/*鏈表結點結構*/

{charsub[3];

structnode*next;

}Node;

Nodefun(chars)/*建立鏈表*/

{…}

voiddisp(Node*h)

{Node*

27.下面rotate函數(shù)的功能:將n行n列的矩陣A轉置為A',請?zhí)羁铡?/p>

#defineN4

voidrotate(inta[][N])

{inti,j,t;

for{i=0;i<N;j++}

for{j=0;【】;j++}

{t=a[i][j];

a[i][j]=a[j][i];

a[j][i]=t;

}

}

28.以下說明語句中,【】是結構體類型名。

typedefstruct

{intn;

charch[8];

}PER;

29.軟件定義時期主要包括______和需求分析兩個階段。

30.下面程序的運行結果是【】。

#include<stdio.h>

#defineSIZE12

main()

{chars[SIZE];inti;for(i=0;i<SIZE;i++)s[i]='A'+i+321;

sub(s,7,SIZE-1);

for(i=0;i<SIZE;i++)printf("%c",s[i]);

printf("\n");}

sub(char*a,intt1,intt2)

{charch;

while(t1<t1)

{ch=*(a+t1);

*(a+t1)=*(a+t2);

*(a+t2)=ch;

t1++;t2--;}}

31.軟件測試方法中,黑盒測試法和白盒測試法是常用的方法,其中黑盒測試法主要是用于測試【】。

32.設有以下定義和語句,則*(*(p+2)+1)的值為【】。

inta[3][2]={10,20,30,40,50,60},(*p)[2];

p=a;

33.數(shù)據(jù)結構分為線性結構和非線性結構,帶鏈的隊列屬于[]。

34.關系操作的特點是______操作。

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

#include<stdio.h>

fun()

{staticinta=0;

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

}

main()

{intcc;

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

printf("\n");

}

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

main()

{inta=3,b=4,c=5,t=99;

if(b<a&&a<c)t=-a;a=c;c=t;

if(a<c&&b<c)t=b;b=a;a=t;

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

}

37.在結構化設計方法中,數(shù)據(jù)流圖表達了問題中的數(shù)據(jù)流與加工間的關系,并且每一個______實際上對應一個處理模塊。

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

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");

}

39.設有下列宏定義:

#defineA2

#defineB(A+3)

則執(zhí)行賦值語句“k=B*20;”(k為int型變量)后,k的值是______。

40.棧中允許進行插入和刪除的一端叫做______。

三、1.選擇題(20題)41.CPU能夠直接訪問的存儲器是

A.軟盤B.硬盤C.RAMD.CD-ROM

42.在下列語句中,其含義為“q為一個指針的函數(shù),該指針指向整型數(shù)據(jù)”的定義語句是()。

A.int**q;B.int(*q)();C.int*q;D.int*q();

43.數(shù)據(jù)庫設計的四個階段是:需求分析、概念設計、邏輯設計和______。A.編碼設計B.測試階段C.運行階段D.物理設計

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

A.在面向對象的程序設計中,各個對象之間具有密切的關系

B.在面向對象的程序設計中,各個對象都是公用的

C.在面向對象的程序設計中,各個對象之間相對獨立,相互依賴性小

D.上述3種說法都不對

45.下列選項中不屬于軟件生命周期開發(fā)階段任務的是()。

A.軟件測試B.概要設計C.軟件維護D.詳細設計

46.設a=5,bc6,c=7,d=8,m=2,n=2,執(zhí)行(m=a>b)&&(n=c>b)后n的值為______。

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

47.若有下列說明和語句,則對結構體變量st中成員i的引用方式不正確的是()。Structstu{inti;intname;}st,*p;p=&st;

A.st.iB.*p.iC.(*p).iD.p->i

48.結構化程序設計的核心和基礎是()。

A.結構化分析方法B.結構化設計方法C.結構化設計理論D.結構化編程方法

49.規(guī)范化理論中,分解______主要是消除其中多余的數(shù)據(jù)相關性。

A.關系運算B.內模式C.外模式D.視圖

50.以下程序的輸出結果是______。main(){inti,a[10];for(i=9;i>=0;i-)a[i]=10-i;printf("%d%d%d",a[2],a[5],a[8]);}

A.258B.741C.852D.369

51.下列選項中,不屬于模塊間耦合的是()。A.數(shù)據(jù)耦合B.標記耦合C.異構耦合D.公共耦合

52.下述函數(shù)功能是______。intfun(char*x){char*y=x;while(*y++);retumy-x-1;}

A.求字符串的長度B.求字符串存放的位置C.比較兩個字符串的大小D.將字符串x連接到字符串y后面

53.有以下程序:voidss(char*s,chart){while(*s){if(*s==t)*s=t-'a'+'A';s++;}}main(){charstr1[100]="abcddfefdbd",c='d';ss(str1,c);printf("%s\n",str1);}程序運行后的輸出結果是()。

A.ABCDDEFEDBDB.abcDDfefDbDC.abcAAfefAbAD.Abcddfefdbd

54.若以“葉”方式打開一個己存在的文件,則下列敘述正確的是()。

A.文件打開時,原有文件內容不被刪除,位置指針移到文件末尾,可以進行添加或讀操作

B.文件打開時,原有文件內容不被刪除,只能進行讀操作

C.文件打開時,原有文件內容被刪除,只能進行寫操作

D.以上3種說法都不正確

55.下列關于字符串的說法中錯誤的是

A.在C語言中,字符串是借助于字符型一維數(shù)組來存放的,并規(guī)定以字符'\0'作為字符串結束標志

B.'\0'作為標志占用存儲空間,計入串的實際長度

C.在表示字符串常量的時候不需要人為在其末尾加入'\0'

D.在C語言中,字符串常量隱含處理成以'\0'結尾

56.有以下程序

#include<stdio.h>

main()

{FILE*fp;inti=20,j=30,k,n;

fp=fopen("d1.dat","w");

fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);

fclose(fp);

fp=fopen("d1.dat","r");

fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);

fclose(fp);}

程序運行后的輸出結果是

A.2030B.2050C.3050D.3020

57.視圖設計—般有3種設計次序,下列不屬于視圖設計的是______。

A.自頂向下B.由外向內C.由內向外D.自底向上

58.若有定義inta[10],*p=a,則p+6表示()。

A.數(shù)組元素a[5]的值B.數(shù)組元素a[5]的地址C.數(shù)組元素a[6]的地址D.數(shù)組元素a[0]的值加上5

59.字符串"\\\"ABCDEF\"\\"的長度是()。

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

60.若有說明inti,j=2,*p=&i;,則能完成i=j賦值功能的語句是______。

A.i=*p;B.*p=*&j;C.i=&j;D.i=**p;

四、選擇題(20題)61.有以下程序程序運行后的輸出結果是()。

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

62.若有以下程序段輸出結果:是()。

A.4B.8C.16D.2

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

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

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

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

D.線性表可以是空表

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

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

65.

66.Internet使用的網(wǎng)絡協(xié)議是()。

A.3CP協(xié)議B.TCP/IP協(xié)議C.UDP協(xié)議D.IP協(xié)議

67.

68.

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

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

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

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

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

70.

71.

有以下程序:

fun(intx)

{intP;

if(x==0||x==l)return(3);

p=x-fun(x-2);

returnp;

}

main

{printf("%d\n",fun(7));}

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

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

72.

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

#include<stdio.h>

#defineADD(x)x+x

main

{intm=1,n=2,k=3;

intS=ADD(m+n)*k;

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

}

A.sum=18B.sum=10C.sum=9D.sum=25

73.設變量已正確定義并賦值,以下正確的表達式是()。

A.X=Y+z+5,++YB.int(15.8%5)C.X=Y*5=X+ZD.X=25%5.0

74.按照c語言規(guī)定的用戶標識符命名規(guī)則,不能出現(xiàn)在標識符中的是()。A.連接符B.大寫字母C.數(shù)字字符D.下劃線

75.在數(shù)據(jù)結構中,從邏輯上可以把數(shù)據(jù)結構分為()。A.動態(tài)結構和靜態(tài)結構B.緊湊結構和非緊湊結構C.線性結構和非線性結構D.內部結構和外部結構

76.若有以下程序段

intm=0xabc,n=0xabc;

m-=n;

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

執(zhí)行后的輸出結果是A.A.0X0

B.0x0

C.0

D.0xABC

77.若有說明:intn=2,*p=&n,*q=p;,則以下非法的賦值語句是()。

A.p=qB.*p=*qC.n=*qD.p=*n

78.

79.對線性表進行二分法檢索,其前提條件是()。

A.線性表以順序方式存儲,并按關鍵碼值排好序

B.線性表以順序方式存儲,并按關鍵碼的檢索頻率排好序

C.線性表以鏈式方式存儲,并按關鍵碼值排好序

D.線性表以鏈式方式存儲,并按關鍵碼的檢索頻率排好序

80.

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

六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),該函數(shù)的功能是將M行N列的二維數(shù)組中的數(shù)據(jù),按行的順序依次放到一維數(shù)組中,一維數(shù)組中數(shù)據(jù)的個數(shù)存放在形參n所指的存儲單元中。例如,若二維數(shù)組中的數(shù)據(jù)為333333334444444455555555則一維數(shù)組中的內容應該為333333334444444455555555。注意:部分源程序在文件prog1.c中。請勿改動main()函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:

參考答案

1.D在C語言中,不能直接比較兩個字符串的大小,必須用特定的函數(shù)來完成,選項A錯誤;選項B不管大于還是小于都執(zhí)行S,不符合題意;選項C正好相反,當s2大于s1時,執(zhí)行語句S,可知選項D正確。

2.B棧是先進后出,因此,棧底元素是先入棧的元素,棧頂元素是后入棧的元素。

3.B

4.D形參是定義函數(shù)時由用戶定義的。實參是函數(shù)調用時,主調函數(shù)為被調函數(shù)提供的原始數(shù)據(jù)。在C語言中,實參向形參傳送數(shù)據(jù)的方式是“值傳遞'是單向傳遞。故本題答案為D選項。

5.D

6.B

7.B

8.C解析:選項A中應將y和m前面的函數(shù)的類型說明符去掉,故選項A不正確;選項B中函數(shù)傳了2個參數(shù),其中一個為整型—個為浮點型,而fun()函數(shù)在定義時聲明的2個參數(shù),一個為整型一個為雙精度型,其參數(shù)類型不一致,故選項B不正確;選項D在調用函數(shù)時,不應該再聲明其返回類型,故選項D不正確。所以,4個選項中選項C符合題意.

9.A本題考查邏輯與運算“&&”與邏輯或運算“||”。在選項A中,因為!a=0,所以關系表達式!a=1為0,又因為邏輯與運算符“&&”兩邊的表達式只要一個等于零,則整個表達式為零,所以選項A正確。在選項8中,關系表達式a<b為真,表達式(a<b)&&!C為假,而表達式(a<b)&&!||1為真,所以整個表達式的值為真。選項C中,a&&b的結果為真。在選項D中,a||(b+b)&&(C-a)的結果為真。

10.C解析:外部變量在編譯時由系統(tǒng)分配永久的內存空間,所以外部變量的類型不是自動存儲類別。

11.C根據(jù)題意,要求統(tǒng)計字符數(shù)組s中阿拉伯數(shù)字的個數(shù)?!癱hars[]=“012xy\\08s34f4w2”;”,其元素是字符型。字符‘0的ASCII值是48,字符‘\\0’的ASCII值是0,因此可以計算出‘\\0’之前阿拉伯數(shù)字的個數(shù),由字符數(shù)組s可知,有3個阿拉伯數(shù)字。故本題答案為C選項。

12.Aprintf函數(shù)參數(shù)包括格式控制字符串和輸出參數(shù),其中格式控制字符串中除了格式控制字符外,其他字符原樣輸出。本題中的printf(“%+-6d%+-6d”,a,b);”,在%和格式控制字符d之間,“+”號表示輸出的數(shù)字帶正負號號表示輸出數(shù)據(jù)向左對齊,“6”表示輸出寬度,如果輸出數(shù)據(jù)的寬度不夠6,那么左對齊,右邊補空格。所以本題輸出+1234-5678(中間有一個空格,最后有一個空格)。本題答案為A選項。

13.D解析:C語言中只有字符串常量而沒有字符串變量,故選項A不正確:字符串比較大小是以第1個不相同字符的大小為標準的,跟長度沒有關系,故選項B不正確:字符串比較大小除了使用庫函數(shù)stremp()以外,就只能靠自己寫代碼來實現(xiàn)了,而不能通過關系運算符來比較大小,因為字符串在表達式中相當于coostchar*,即常字符指針,代表的是字符串的首地址,關系運算符會將兩個字符串的首地址值比較大小,這是毫無意義的。所以選項C也不正確??沾拈L度為0,而以空格打頭的字符串的長度至少為1,故選項D正確,本題應該選擇D。

14.A

15.D

16.A

17.B選項A中“structREC”后面不能有分號。C選項中“typedefstructREC”的后面也不能有分號。選項D中“REC”是結構體變量,不能當作結構體類型來使用。故本題答案為B選項。

18.B本題考查for循環(huán)的使用。對于第1個for循環(huán),任何一個i,內層j的循環(huán)都要使j~0到3,j=4時不符合,所以退出j循環(huán);然后i減1,J仍然要從0~3,j=4時退出J循環(huán)直到i變成0,退出i循環(huán)。第一條for語句執(zhí)行6次,第二條for語句執(zhí)行4次,所以內循環(huán)體執(zhí)行6*4=24次。

19.CC語言中除法運算有兩個運算數(shù),兩個整數(shù)的除法運算會舍去小數(shù)部分,結果為整數(shù);由于C語言中浮點數(shù)的小數(shù)形式必須要有小數(shù)點,所以選項A(5.)、B(3.)、D(3.0和5.0)都是浮點數(shù)。選項A、B運算時自動將另一個整數(shù)轉換成浮點數(shù),然后再運算,選項D中兩個都是浮點數(shù),浮點數(shù)的除法運算結果還是浮點數(shù)。所以本題中選項A、B、D運算結果是浮點數(shù),選項C運算結果是整數(shù)。故本題答案為C選項。

20.B

21.I=1x[I-1]I=1,x[I-1]解析:對于10個數(shù),相臨的兩個數(shù)相加取和,總共要進行9次加法運算,所以空14處應填入I=1。相臨的兩個數(shù)相加取和,放在數(shù)組a中,x[0]與x[1]的和存放在a[0]中,所以空15處應填入x[I-1]。

22.int*int*解析:從題中代碼可知:z應該是一個整型指針,因此應填int*。

23.222\r\n2解析:深刻理解+進制轉化為二進制的方法,即取余法;數(shù)組名作為實參,在函數(shù)內部可以直接修改調用函數(shù)中定義的數(shù)組的值。注意:掌握兩個數(shù)據(jù)進行交換的算法原理。

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

25.-1或-1.0*sn-1或-1.0\r\n*sn解析:由于在對S求和時,相鄰兩項的符號剛好相反,而在函數(shù)fun中沒有對數(shù)據(jù)進行取反的操作,故第—空的目的是對數(shù)據(jù)進行取反,以保證序列中相鄰兩項的符號不同。故第—個應填-1或-1.0。在執(zhí)行完循環(huán)體后,要將求和結果通過指針參數(shù)的形式傳遞紿調用fun的函數(shù),故第二空應填*sn。

26.

27.j<=ij<=i解析:由題意可知第一個空應填入j<=i,第二個空應填入a[i][j]=a[j][i]。

28.PERPER解析:本題中,typedef聲明新的類型名PER來代替已有的類型名,PER代表上面指定的一個結構體類型,此時,也可以用PER來定義變量。

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

30.abcdefglkjihabcdefglkjih解析:本題主要考查了字符變量可參與的運算。因為字符在計算機中是以ASCII碼的形式存放的,所以字符變量可看作整型變量來處理,如參與算術運算等,某字符的大寫字母的ASCII碼值比它對應的小寫字母ASCII碼值小32。

31.軟件外部功能軟件外部功能

32.6060解析:程序中定義a是一個3行2列的二維數(shù)組,p是指向兩個元素的一維數(shù)組指針,并讓p指向二維數(shù)組a的首行。則代碼*(*(p+2)+1)中的p+2指向二維數(shù)組a的第三行a[2],*(p+2)指向a[2[]0],*(p+2)+1指向a[2][1],*(*(p+2)+1)是引用a[2][1],其值是60。

33.線性結構線性結構解析:與棧類似,隊列也是線性表,也町以采用鏈式存儲結構。

34.集合集合

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

36.45994599解析:if語句只對緊跟其后的一條語句或語句塊產(chǎn)生作用。因此,題目中兩條if語句只有t=a;和t=b是if的子句。第1條if語句中b<a為假,所以跳過語句t=-a;,執(zhí)行a=c;c=t,a=5、b=4、c=99。第2條if語句的判斷條件a<c&&b<c為真,所以后面3條語句都被執(zhí)行,這3條語句構成一次a和b的內容交換。所以最后輸出的結果是:4599。

37.加工加工解析:數(shù)據(jù)流圖是從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。其中的每一個加工對應一個處理模塊。

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

39.100100解析:本題考查帶參數(shù)的宏定義及相關運算。運算過程為:k=B*20=(A+3)*20=(2+3)*20=100。

40.棧頂棧頂解析:棧是限定在表的一端進行插入和刪除操作的線性表。在表中,允許插入和刪除的一端叫做“棧頂”,不允許插入和刪除的一端叫做“棧底”。

41.C解析:CPU讀取和寫人數(shù)據(jù)都是通過內存來完成的。

42.B解析:本題考查的是指針函數(shù)。指針函數(shù)定義的基本格式為:類型說明符(*函數(shù)名)()。其中,類型說明符表示返回的指針值指向的數(shù)據(jù)類型。

43.DD)【解析】數(shù)據(jù)庫設計目前一段采用生命周期法.即將整個數(shù)據(jù)庫應用系統(tǒng)的開分解成目標獨立的若干階段,它們是:需要分析階段、概念設計階段、邏輯設計階段、物理設計階段、編碼階段、測試階段、運行階段、進一步修改階段。在數(shù)據(jù)庫設計中采用上面幾個階段中的前四個階段,并且重點以數(shù)據(jù)結構和模型設計為主線。

44.C本題考查對面向對象的理解。面向對象的程序設計是對象模擬問題領域中的實體,各對象之間相對獨立,相互依賴性小,通過消息來實現(xiàn)對象之間的相互聯(lián)系。

45.C解析:軟件生命周期由軟件定義、軟件開發(fā)和軟件維護三個時期組成,每個時期又進一步劃分為若干個階段。軟件定義時期的基本任務是確定軟件系統(tǒng)的工程需求。軟件定義可分為軟件系統(tǒng)的可行性研究和需求分析兩個階段。軟件開發(fā)時期是具體設計和實現(xiàn)在前一時期定義的軟件,它通常由下面五個階段組成:概要設計、詳細設計、編寫代碼、組裝測試和確認測試。軟件維護時期的主要任務是使軟件持久地滿足用戶的需要。即當軟件在使用過程中發(fā)現(xiàn)錯誤時應加以改正;當環(huán)境改變時應該修改軟件,以適應新的環(huán)境;當用戶有新要求時應該及時改進軟件,以滿足用戶的新要求。根據(jù)上述對軟件生命周期的介紹,可知選項C中的軟件維護不是軟件生命周期開發(fā)階段的任務。因此,本題的正確答案是C。

46.B解析:m=a>b的值為邏輯值0,n=c>b不被執(zhí)行,n的值仍為2。

47.B解析:本題主要考查結構指針:p=&st,訪問結構體的成員,可以通過結構變量訪問,即st.i,也可以用等價的指針形式,即(*p).i和p->i。

48.CC?!窘馕觥拷Y構化程序設計的核心和基礎是結構化設計理論,其中包括:結構化分析方法、結構化設計方法和結構化編程方法。

49.A解析:數(shù)據(jù)庫規(guī)范化的基本思想是逐步消除數(shù)據(jù)依賴中不合適的部分,根本思想是通過分解關系運算來消除多余的數(shù)據(jù)相關性。

50.C解析:在本題運行時主要注意的是當i=9時,a[i]=10-9=1;i=8時,a[i]=10-8=2;i=7時,a[i]=10-7=3;……依此類推,直到i=0時,a[i]=10-0=10;此時,i的值已變?yōu)?1,判斷for的循環(huán)條件,不成立,然后輸出a[2],a[5],a[8],分別為8,5,2。

51.C解析:模塊之間的耦合程度反映了模塊的獨立性,也反映了系統(tǒng)分解后的復雜程度。按照耦合程度從弱到強,可以將其分成5級,分別是:數(shù)據(jù)耦合、同構耦合、控制耦合、公用耦合和內容耦合。選項C),沒有這種耦合方式。注意:評價模塊獨立性的主要標準,以及對它們的定義和分類。

52.A解析:在函數(shù)體內定義一字符型指針并指向形參,然后遍歷其中各字符直到NULL,最后返回字符串首尾地址的差值,即字符串的長度。

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

54.A解析:本題考查文件使用方式標識符,以“葉”方式打開一個已存在的文件,則表示保留文件中原有的數(shù)據(jù),文件的位置指針在文件末尾,此時,可以進行追加或讀操作。

55.B解析:'\\0'作為標志占用存儲空間,但是不計入串的實際長度。當給一個字符型指針賦值時,賦給這個指針的是這個字符串的地址。

56.A解析:本題中,最主要的是掌握幾個有關文件函數(shù)的應用。

函數(shù)名:fopen

功能:打開一個文件

調用方式FILE*fp;

fp=fopen(文件名,使用文件方式);

函數(shù)名:fprintf

功能:傳送格式化輸出到一個文件中

調用方式:fprintf(文件指針,格式字符串,輸出表列);

函數(shù)名:fclose

功能:關閉一個文件

調用方式:fclose(文件指針);

函數(shù)名:fscanf

功能:從磁盤文件執(zhí)行格式化輸入

調用方式:fscanf(文件指針,格式字符串,輸入列表)。

57.B解析:視圖設計—般有3種設計次序,它們分別是自頂向下、自底向上和由內向外,它們又為視圖設計提供了具體的操作方法,設計者可根據(jù)實際情況靈活掌握,可以單獨使用也可混合使用。

58.C解析:指針中存放的是變量的地址,指針也可以進行加減運算,這時指針移動的最小單位是一個存儲單元,而不是一個字節(jié)。所以題中p+6指的是將指針向后移動了6個存儲單元,指向a[6],存放的是a[6]的地址。

59.B解析:本題涉及字符串最基本的兩個概念:①字符串的長度是指字符串中字符的個數(shù),但不包括字符串結束符;②以反斜杠“\\”開頭的特殊字符序列,意思是把反斜杠后面的字符序列轉換成特定的含義,而不是原來的含義,不包含在字符串長度之內,“\\”連同后面的字符為一個長度。

60.B解析:指針是—種用來存放變量地址的特殊變量。本題中指針變量p用于存放整型變量i的地址,改變*p的值即為改變i的值。又因為“&”和“*”兩個運算符的優(yōu)先級相同,按自右而左的方向結合,所以*&j運算選進行&j運算,得j的地址,再進行*運算,取所得地址里面的值,故*&j與j等價。

61.Amalloc函數(shù)動態(tài)分配一個整型的內存空間,然后把函數(shù)返回的地址用(ints)強制類型轉換為整型指針,再把它賦給a,b,c,即讓指針變量a,h,’c都指向剛申請的內存空間。因此只有最后一個賦值語句*c=3的值保留在了該空間內,因為a,b,c三個指針變量均指向該空間,所以打印該空間內的數(shù)值均為3,選項A)正確。

62.Ar右移1位,結果為4,所以選擇A。

63.CC.【解析】線

溫馨提示

  • 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

提交評論