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

下載本文檔

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

文檔簡介

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

一、單選題(20題)1.下列程序的執(zhí)行結果是______。#include<stdio.h>unionun{inti;charc[2];};voidmain(){unionunx;x.c[0]=10;x.c[1]==1;printf("\n%d",x.i);}

A.266B.11C.265D.138

2.語句int(*ptr)的含義是()。

A.ptr是一個返回值為int的函數

B.ptr是指向int型數據的指針變量

C.ptr是指向函數的指針,該函數返回一個int型數據

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

3.有以下程序

#include<stdio.h>

main()

{inta=1,b=0;

if(--a)b++;

elseif(a==0)b+=2;

elseb+=3:

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

}

程序運行后的輸出結果是A.A.0B.1C.2D.3

4.以下函數不能用于向文件中寫入數據的是()。

A.hellB.fwriteC.fputcD.fprintf

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

A.C語言函數中定義的自動變量,系統(tǒng)不自動賦確定的初值

B.在C語言的同一函數中,各復合語句內可以定義變量,其作用域僅限于本復合語句內

C.C語言函數中定義的賦有初值的靜態(tài)變量,每調用一次函數為其賦一次初值

D.C語言函數的形參不可以說明為static型變量

6.若有定義和語句:inta,b;scanf("%d,%d",&a,&b);以下選項中的輸人數據,不能把值3賦給變量a、5賦給變量b的是()。A.3,5,B.3,5,4C.3,5D.3,5

7.在以下的敘述中,正確的是()。

A.線性表的順序存儲結構優(yōu)于鏈表存儲結構

B.二維數組是其數據元素為線性表的線性表

C.棧的操作方式是先進先出

D.隊列的操作方式是先進后出

8.表達式a*(-b+c)的逆波蘭式是()

A.ab-+c*B.abc-+*C.a*b-c+D.ab-c+*

9.

10.

11.若有定義“inta,b,c;”以下程序段的輸出結果是()。a=11;b=3;c=0;printf(“%d\n”,c=(a/b,a%b));

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

12.

13.面向對象的設計方法與傳統(tǒng)的面向過程的方法有本質不同,它的基本原理是()。

A.模擬現實世界中不同事物之間的聯系

B.強調模擬現實世界中的算法而不強調概念

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

D.不強調模擬現實世界中的算法而強調概念

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

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

A.測試工作必須由程序編制者自己完成

B.測試用例和調試用例必須一致

C.一個程序經調試改正錯誤后,一般不必再進行測試

D.上述三種說法都不對

16.以下程序的輸出結果是()。main{inta=1,b;for(b=1,b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a=3;}printf("%d\n",b);}A.A.3B.4C.5D.6

17.檢查軟件產品是否符合需求定義的過程稱為()。

A.確認測試B.集成測試C.驗證測試D.驗收測試

18.下面算法的時間復雜度為()A.O(1)B.O(n)C.O(n*n)D.O(n!)

19.下列程序的輸出結果是()#include<stdio.h>main(){inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=1;case1:case2:a+=2;default:a+=3;}printf(“%d”,a);}A.19B.18C.6D.8

20.下列描述錯誤的是()。

A.繼承分為多重繼承和單繼承

B.對象之間的通信靠傳遞消息來實現

C.在外面看不到對象的內部特征是基于對象的“模塊獨立性好”這個特征

D.類是具有共同屬性、共同方法的對象的集合

二、2.填空題(20題)21.數據的邏輯結構有線性結構和______兩大類。

22.度為10的線性表進行冒泡排序,最壞情況下需要比較的次數為______。

23.x和y都是double型變量,x的初值為4.0,y的初值為2.0,則表達式pow(y,fabs(x))的值為______。

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

#defineMAX(x,y)(x)>(y)?(x):(y)

main()

{inta=5,b=2,c=3,d=3,t;

t=MAX(a+b,c+d)*10;

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

}

25.以下程序運行后輸入:3,abcde<回車>,則輸出結果是【】。

#include<string.h>

move(char*str,intn)

{chartempinti;

temp=str[n-1);

for(i=n-1;i>0;i--)str[i]=str[i-1];

str[0]=temp

}

main()

{chars[50];ihtn,i,z;

scanf("%d,%s",&n,s);

z=strlen(s);

for(i=1;i<=n;i++)move(s,z);

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

}

26.有以下程序

main()

{intn=0,m+1,X=2;

if(!n)X-=l;

if(m)X-=2;

if(X)X-=3;

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

}

執(zhí)行后輸出的結果是【】。

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

main()

{charc=′z′;

printf("%c",c-25);}

28.函數de1ete(s,i,n)的作用是從字符串s中刪除從笫i個字符開始的n個字符,請?zhí)羁铡?/p>

voidde1ete(chars[],inti,intn)

{intj,k,length=O;

whi1e(s[length])

【】

-i;

j=i;

}

if(【】)

{k=i+n;

if(i+n<=length)

whi1e(k<length)

s[j++]=s[k++];

s[j]='\0;}

29.若a=1,b=2,則表達式!(x=A)‖(y=B)&&0的值是______。

30.數據庫系統(tǒng)中實現各種數據管理功能的核心軟件稱為【】。

31.若已定義inta[10],i;以下fun函數的功能是,在第一個循環(huán)中給前10個數組元素依次賦1,2,3,4,5,6,7,8,9,10;在第二個循環(huán)中使a數組前10個元素中的值對稱拆疊,變成1,2,3,4,5,5,4,3,2,1。請?zhí)羁铡?/p>

fun(inta[])

{inti;

for(i=1;i<=10;i++)【】=i;

for(i=0;i<5;i++)【】=a[i];

}

32.使用結構體處理數據的場合是【】。

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

voidswap(int*a,int*b)

{

int*tp;

t=a;a=b;b=t;

}

main()

{

intx=3,y=5,*p=&x,*q=&y;

swap(p,q);

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

}

34.數據結構包括數據的邏輯結構、數據的【】以及對數據的操作運算。

35.有下列程序;

#include<stdio.h>

main()

{charc;

while((c=getchar())!=',')putchar(++C);

}

程序運行時,如果從鍵盤輸入:A,B,<CR>,則輸出結果為______。

36.要求使下列程序輸出5個整數,請?zhí)羁铡?/p>

for(i=0;i<=______;printf("%d\n",i+=2));

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

#include<stdio.h>

unsignedfun6(unslgnednum)

{unsignedk=1;

do{k*=mum%10;num/=10;}

while(num);

returnk;

}

main()

{unsignedn=26;

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

}

38.以下程序的功能是建立一個帶有頭結點的單向鏈表,鏈表結點中的數據通過鍵盤輸入,當輸入數據為-1時,表示輸入結束(鏈表頭結點的data域不放數據,表空的條件是ph->next==NULL),請?zhí)羁铡?/p>

#include<stdio.h>

structlist{intdata;structlist*next;};

structlist*creatlist()

{structlist*p,*q,*ph;inta;ph=(structlist*)malloc(sizeof(structlist));

p=q=ph;printf("Inputanintegernumber;entre-1toend:\n");

scanf("%d",&a);

while(a!=-1)

{p=(structlist*)malloc(sizeof(structlist));

[14]=a;q->next=p;[15]=p;scanf("%d",&a);}

p->next='\0';return(ph);}

main()

{stuctlist*head;head=creatlist();}

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

main()

{char*p=“abodefgh”,*r;

long*q;

q=(long*)p;

q++;

r=(char*)q;

printf(“%s\n”,r);

}

40.開發(fā)軟件所需要的高成本和產品的低質量之間有著尖銳的矛盾,這種現象被人們稱之為【】。

三、1.選擇題(20題)41.設有定義:intn=0,*p=&n,**q=&p;則以下選項中,正確的賦值語句是()A.p=1;B.*q=2;C.q=p;D.*p=5;

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

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

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

C.作為確認測試和驗收的依據

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

43.若有以下函數首部intfun(doublex[10],int*n)則下面針對此函數的函數聲明語句中正確的是______。A.intfun(doublex,int*n);

B.intfun(double,int);

C.intfun(double*x,intn);

D.intfun(double*,int*);

44.以下程序段的輸出結果是()。#include<stdio.h>main(){charp[][4]={"ABC","DEF","GHI"};inti;for(i=0;i<3;i++)puts(p[i]);}

A.ABCB.ADGC.ABCDEFGHID.ABC

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

A.對于double類型數組,不可以直接用數組名對數組進行整體輸入或輸出

B.數組名代表的是數組所占存儲區(qū)的首地址,其值不可改變

C.當程序執(zhí)行中,數組元素的下標超出所定義的下標范圍時,系統(tǒng)將給出“下標越界”的出錯信息

D.可以通過賦初值的方式確定數組元素的個數

46.分析下列程序,其最終執(zhí)行結果是______。main(){intn[3],i,j,k;for(i=0;i<3;i++)n[i]=O;k=2;for(i=0;i<k;i++)for(j=0;j<k;j++)n[j]=n[i]-1;printf("%d\n",n[0]);}

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

47.計算機系統(tǒng)的組成是______。

A.主機、外設B.運算器、控制器C.硬件系統(tǒng)和軟件系統(tǒng)D.CPU、內存儲器

48.下列選項中錯誤的說明語句是

A.chara[]={'t''o','y','o','u','\0'};

B.chara[]={"toyou\0"};

C.chara[]="toyou\O";

D.chara[]='toyou\0';

49.有以下程序main(){intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};inti,s=0;for(i=0;i<4;i++)s+=aa[i][1];printf("%d\n",s);}程序運行后的輸出結果是()

A.11B.19C.13D.20

50.關系數據庫管理系統(tǒng)能實現的專門關系運算包括()。

A.排序、索引、統(tǒng)計B.選擇、投影、連接C.關聯、更新、排序D.顯示、打印、制表

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

A.軟件交付使用后還需要進行維護

B.軟件一旦交付使用就不需要再進行維護

C.軟件交付使用后其生命周期就結束

D.軟件維護是指修復程序中被破壞的指令

52.下列程序的輸出結果是()。#include<stdio.h>#include<string.h>main(){chara[]="\n123\\";printf("%d,%d\n",strlen(a),sizeof(a));}

A.5,6B.5,5C.6,6D.6,5

53.有以下程序:#include<stdio.h>main(){printf("%d\n",NULL));程序運行后的輸出結果是()。

A.0B.1C.-1D.NULL沒定義,出錯

54.有如下程序#include<stdio.h>main(){FILE*fp1;fp1;fopen("ftxt","w");fprintf(fpl,"abc")fclose(fpl);}若文本文件f1.txt中原有內容為:good,則運行以上:程序后文件f1.Mt中的內容為

A.goodabcB.abcdC.abcD.abcgood

55.當運行以下程序時,從鍵盤輸入AhaMA(空格)Aha<CR>,則下面程序的運行結果是

#include<stdio.h>

main()

{chars[80],c=′a′;

inti=0;

scanf("%s",s);

while(s[i]!=′

{if(s[i]==c)s[i]-32;

elseif(s[i]==c-32)s[i]=s[i]+32;

i++;}

puts(s);}

A.ahaMaB.AbAMaC.AhAMa[空格]ahAD.ahAMa[空格]ahA

56.概要設計是軟件系統(tǒng)結構的總體設計,以下選項中不屬于概要設計的是()。A.A.把軟件劃分成模塊B.確定模塊之間的調用關系C.確定各個模塊的功能D.設計每個模塊的偽代碼

57.有以下函數定義:

voidfun(intn,doublex){……}

若以下選項中的變量都已正確定義并賦值,則對函數fun的正確調用語句是A.fun(inty,doublem);

B.k=fun(10,12.5);

C.fun(x,n);

D.voidfun(n,x);

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

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

59.閱讀下面程序,則執(zhí)行后的結果為#include"stdio.h"longfun(intn){if(n>2)return(fun(n-1)+fun(n-2));elsereturn(2);}main(){printf("%ld\n",fun(5));}

A.10B.15C.20D.以上3個答案都不正確

60.在C語言中,引用數組元素時,其數組下標的數據類型允許是()。

A.整型表達式B.整型常量C.整型常量或整型表達式D.任何類型的表達式

四、選擇題(20題)61.表達式a+=a-=a=9的值是()。

A.9B.-9C.18D.0

62.若有定義語句:doublex,y,*px,+py;,執(zhí)行Tpx=&x;py=&y之后,正確的輸入語句是()。

63.有下列函數定義:fun(floath){printf("%f,%f\n",h,h*h);)該函數的類型是()。A.int類型B.float類型C.void類型D.函數無類型說明,定義有錯

64.設有定義:“char*c;”,以下選項中能夠使字符型指針c正確指向一個字符串的()。

A.charstr[]="string";c=str;

B.scanf(%s,c):

C.c=getchar();

D.*c="strin9";

65.

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

A.便于插入和刪除操作

B.數據元素的物理順序與邏輯順序相同

C.花費的存儲空間較順序存儲少

D.便于隨機存取

67.有以下程序:

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

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

68.

69.

70.在結構化方法中,軟件功能分別屬于下列軟件開發(fā)中的(

)階段。A.詳細設計B.需求分析C.總體設計D.編程調試

71.23.若有下面的程序段

chars[]="china";char*p;p=s;

則下列敘述正確的是

A.s和p完全相同B.數組s中的內容和指針變量p中的內容相等

C.s數組長度和p所指向的字符串長度相等D.*p與s[0]相等

72.

73.

74.有以下程序

75.若有定義語句:

76.(6)在結構化方法中,用數據流程圖(DFD)作為描述工具的軟件開發(fā)階段是()

A.可行性分析

B.需求分析

C.詳細設計

D.程序編碼

77.在面向對象方法中,不屬于“對象’’基本特點的是()。A.一致性B.分類性C.多態(tài)性D.標識唯一性

78.以下描述中正確的是()。

A.由于do-while循環(huán)中循環(huán)體語句只能是一條可執(zhí)行語句,所以循環(huán)體內不能使用復合語句

B.do-while循環(huán)由do開始,用while結束,在while(表達式.后面不能寫分號

C.在do-while循環(huán)體中,是先執(zhí)行一次循環(huán),再進行判斷

D.do-while循環(huán)中,根據情況可以省略while

79.在位運算中,操作數每左移兩位,其結果相當于()。

A.操作數乘以2B.操作數除以2C.操作數除以4D.操作數乘以4

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

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

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

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

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

五、程序改錯題(1題)81.已知一個數列從0項開始的前3項為0,0,1,以后的各項都是其相鄰的前3項之和。下列給定的程序中,函數proc()的功能是:計算并輸出該數列前n項的和sum。n的值通過形參傳人。例如,當n-20時,程序的輸出結果應為42762.000000。請修改程序中的錯誤,使它能得到正確結果。注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。試題程序:

六、程序設計題(1題)82.請編寫函數proc,其功能是將兩個兩位數的正整數a、b合并形成一個整數放在c中。合并的方式是:將a數的十位和個位數依次放在c數個位和十位上,b數的十位和個位數依次放在c數的百位和千位上。例如,當a=25,b=43,實際輸入時個數之間以Enter鍵分隔,調用該函數后,c=3452。注意:部分源程序給出如下。請勿改動main()函數和其他函數中的任何內容,僅在函數proc()的花括號中填入所編寫的若干語句。試題程序:

參考答案

1.A解析:由于本題定義的是共用體,所以成員表列中的整型變景x與字符數組c共占用同—個存儲單元,且此存儲單元為2個字節(jié),通常c[0]位于低字節(jié),c[1]位于高字節(jié),所以x.i的值為266。

2.C本題考查的是指向函數的指針。函數指針定義的基本格式為:類型標識符(*指針變量名)()?!邦愋蜆俗R符”為函數返回值的類型。

3.C解析:本題考察運算符和選擇語句,執(zhí)行到if語句時,--a為0,所以不會執(zhí)行后面的語句,但是會執(zhí)行elseif后面的語句,所以執(zhí)行后,b=2,選項C)正確。

4.Aftell是返回文件當前指針。

5.CA選項描述正確,自動變量未被賦初值,為隨機值;B選項描述正確,除在函數開始位置定義變量外,在復合語句內也可以定義變量;C選項描述錯誤,函數內的靜態(tài)變量只在第1次調用時賦值,以后調用保留上次的值;D選項描述正確,形參屬于局部變量,占用動態(tài)存儲區(qū),而static型變量占用靜態(tài)存儲區(qū)。故本題答案為C選項。

6.C在輸入3和5之間除逗號外不能有其他字符。

7.B

8.D

9.C

10.B

11.AC語言中,逗號運算符可以把兩個以上(包含兩個)的表達式連接成一個表達式。逗號運算符的優(yōu)先級是所有運算符中級別最低的,逗號運算符保證左邊的子表達式運算結束后才進行右邊的子表達式的運算。也就是說,逗號運算符是一個序列點,其左邊所有子表達式運算都結束后,才對其右邊的子表達式進行運算,并以最右邊表達式的值作為整個逗號表達式的值。因此c的值為“a%b”,即“11%3=2”。故本題答案為A選項。

12.B

13.C\n面向對象的設計方法的基本原理是:使用現實世界的概念抽象地思考問題從而自然地解決問題。它雖強調模擬現實世界中的概念而不強調算法,但是它鼓勵開發(fā)者在軟件開發(fā)的過程中從應用領域的概念角度去思考。

\n

14.D

15.D解析:測試不是為了證明程序是正確的,而是在設想程序有錯誤的前提下進行的,其目的是設法暴露程序中的錯誤和缺陷,一般應當避免由開發(fā)者測試自己的程序,因此,選項A錯誤;測試是為了發(fā)現程序錯誤,不能證明程序的正確性,調試主要是推斷錯誤的原因,從而進一步改正錯誤,調試用例與測試用例可以一致,也可以不一致,選項B錯誤;測試發(fā)現錯誤后,可進行調試并改正錯誤:經過調試后的程序還需進行回歸測試,以檢查調試的效果,同時也可防止在調試過程中引進新的錯誤,選項C錯誤。

16.B當b=1時,a=1,第二個if語句成立,此時a=6,返回for循環(huán);當b=2,兩個if語句都為假,此時a=3,再返回循環(huán);當b=3,第二個if成立,此時a=8,繼續(xù)循環(huán);當b=4,第一個if成立,退出for循環(huán)體時b為4,a為8。

17.A本題主要考查軟件測試的基本知識。軟件測試的步驟可分為單元測試(模塊測試)、集成測試、確認測試和系統(tǒng)測試。

(1)單元測試是針對每個模塊進行的測試,它可從程序的內部結構出發(fā)設計測試用例,多個模塊可以平行、對立地測試。單元測試主要用于發(fā)現詳細設計和編程時犯下的錯誤。單元測試多采用白盒測試,輔之以黑盒測試。

(2)集成測試是在單元測試的基礎上,根據模塊結構圖將各個模塊連接起來,必須精心計劃,應提交集成測試計劃、集成測試規(guī)格說明和集成測試分析報告。主要目標是發(fā)現與接口有關的問題。集成測試可以發(fā)現概要設計時犯的錯誤。

(3)確認測試用于驗證軟件的功能和性能及其他特性是否與用戶的要求一致。確認測試主要用于發(fā)現需求分析時犯下的錯誤,一般使用黑盒法測試,以表明軟件符合需求說明書的要求,應該仔細設計測試用例和測試過程。確認測試必須有用戶參加,或以用戶為主,用戶應參與設計測試用例,通常情況下,主要使用生產中的實際數據進行測試,測試數據通過用戶接口輸入。

(4)系統(tǒng)測試是將已經通過確認測試的軟件,作為整個計算機系統(tǒng)的元素與計算機硬件、外設和網絡等其他因素結合在一起,進行一系列的組裝測試和確認測試。系統(tǒng)測試的目的是通過與系統(tǒng)的需求定義做比較,發(fā)現軟件與系統(tǒng)的定義不符合的地方。系統(tǒng)測試可以發(fā)現問題定義時犯下的錯誤。

18.B

19.A本題考查switch語句。當i=1時,執(zhí)行case1,因為沒有遇到break語句,所以依次往下運行,a=a+2=2,a=a+3=5;當i=2時,執(zhí)行case2,因為沒有遇到break語句,所以依次往下運行,a=a+2=7,a=a+3=10;當i=3時,執(zhí)行case3,a=a+1=11,因為沒有遇到break語句,所以依次往下運行,a=a+2=13,a=a+3=16;當i=4時,執(zhí)行default,a=a+3=19,結束循環(huán)。

20.C解析:對象的封裝性是指從外面看只能看到對象的外部特性;而對象的內部,其處理能力的實行和內部狀態(tài)對外是不可見的,是隱蔽的。

21.非線性結構非線性結構

22.4545解析:對于長度為N的線性表,在最壞情況下(即線性表中元素現在的順序與目標順序正好相反),冒泡排序需要經過N/2遍的從前往后的掃描和N/2遍的從后往前的掃描,需要的比較次數為N(N-1)/2。

23.1616解析:函數運算不改變數據類型,所以結果也是double型,fabs(x)是對x取絕對值,pow(y,fabs(x))是y的labs(x)次冪,即2.04。0=16.000000(注意;結果為double型)。

24.77解析:在C語言中,宏定義是直接替換的,所以在劉表達式MAX(a+b,c+d)*10進行替換后,表達式變?yōu)?a+b)>(c+d)?(a+b):(c+d)*10。在這個條件表達式中,(a+b)>(c+d)為真,所以用(a+b)的值作為整個表達式的值(否則用(c+d)*10的值作為整個表達式的值),而(a+b)的值為7。所以整個表達式的值為7。

25.cdeabcdeab解析:本題中函數move的實參到形參是按地址傳遞,故形參的改變會影響實參。根據題目可知在main函數中,n=3、s[0]=\'a\'、s[1]=\'b\'、s[2]=\'c\'、s[3]=\'d\'、s[4]=\'e\',數組元素s[5]~s[49]全部為\'\\0\',故z=strlen(s)=5。

第1次調用函數move時,形參str='abcd'、n=5,執(zhí)行完函數move后str[4]=str[3]=\'d\'、str[3]=str[2]=\'c\'、str[2]=str[1]=\'b\'、str[1]=str[0]=\'a\'、str[0]=str[4]=\'e\'。即s[0]=\'e\'、s[1]=\'a\'s[2]、s[2]=\'b\'、s[3]=\'c\'、s[4]=\'d\'。

第2次調用函數move時,形參str='eabcd、n=5,執(zhí)行完函數move后str[4]=str[3]=\'c\'、str[3]=str[2]=\'b\'、str[2]=str[1]=\'a\'、str[1]=str[0]=\'e\'、str[0]=str[4]=\'d\'。即s[0]=\'d\'、s[1]c\'e\'、s[2]=\'a\'、s[3]=\'b\'、s[4]=\'c\'。

第3次調用函數move時,形參str='deabc'、n=5,執(zhí)行完函數move后str[4]=str[3]=\'b\'、str[3]=str[2]=\'a\'、str[2]=str[1]=\'e\'、str[1]=str[0]=\'d\'、str[0]=str[4]=\'c\'。即s[0]=\'c\'、s[1]=\'d\'、s[2]=\'e\'、s[3]=\'a\'、s[4]=\'b\'。

所以printf函數的輸出結果為:cdeab。

26.-4-4解析:if-else構造了一種二路分支選擇,是一種最基本的選擇結構,if(條件)S1(if分結構)elseS2(else分結構),它的工作過程是:先對條件表達式進行判斷,若為真(成立,值為非零),就執(zhí)行if分結構(S1);否則(不成立,值為0),就執(zhí)行else分結構(S2)。本題中,n=O,可以判斷(!n)為真,執(zhí)行“x=x-1=2-1=1;m=1”,可以判斷(m)為真,執(zhí)行“x=x-2=1-2=-1;”進而可以判斷(x)為真,執(zhí)行x=x-3=-1-3=-4。所以,最后輸出為-4。

27.aa解析:'z'的ASCII碼值為122,經過c-25運算后,得97,以字符形式輸出是a。

28.length++i<lengthlength++\r\ni<length解析:第—個循環(huán)極有可能是計算串的長度,在i<=length時字符才被刪除,被刪除的是從第i個到第i+n或最后—個間的所有字符。刪除前,應判斷i<=length。由于已經進行了-i運算,故實際應填入i<length。

29.00解析:根據運算符的運算順序可知,該表達式最后運算的是與(&&)運算,而任何表達式與“0”進行“與”運算,結果都為0。

30.數據庫管理系統(tǒng)數據庫管理系統(tǒng)(DBMS)

31.a[i-1]或a[-1+i]a[9-i]或a[-i+9]a[i-1]或a[-1+i]\r\na[9-i]或a[-i+9]

32.把不同類型的數據作為整體處理

33.3535解析:在主函數中通過定義和賦初值使p和q分別指向了x和y,執(zhí)行函數調用“swap(p,q)”,把p和q中的地址值傳給了形參指針.變量a和b,a和b分別指向了實參x和y。在函數swap()中交換了指針變量a和b的值,并沒有交換a和b指向的實參的值,所以函數調用返回后x和y依舊是原來的值。

34.存儲結構數據結構包括3個方面,即數據的邏輯結構、數據的存儲結構及對數據的操作運算。

35.BB解析:因為c是字符類型變量,它只能接收一個字符,所以c=A,字符型變量在參與算術運算的時候是用其相應的ASCII碼參與運算的,這樣++c得到字母B的ASCII碼,用putchar函數輸出是輸出其相應的字符,所以是B。

36.88解析:本題考查基本的for循環(huán)條件,i+=2表示i每次遞增2,從0開始,輸出5個整數則需要的條件是i<=8。

37.1212解析:循環(huán)語句中,表達式num%10是取num的個位。循環(huán)直至num為0結束,這是逐一求出num+進制表示的各位數字,并累乘于變量k中。函數最后返回k,所以程序輸出12。

38.p->dataqp->data\r\nq解析:本題考查的是鏈表這一數據結構對結構體變量中數據的引用。鏈表的特點是結構體變量中有兩個域,一個是數據,另一個是指向該結構體變量類型的指針,用以指明鏈表的下一個結點。

39.efghefgh解析:本題定義了一個字符型指針變量p并通過賦初值讓它指向了一個字符串,定義了另一個字符型指針變量r和一個長整型指針變量q。首先通過語句“q=(long*)p;”把P的地址值強制轉換為長整型地址值并賦值給q,然后執(zhí)行“q++;”,地址值增加了4,執(zhí)行語句“r=(char*)q;”,把長整型指針變量q的值再強制轉換成字符型地址值并賦給r,r的值應為字符串中字符“e”的地址,最后輸出,指向的字符中,是“efgh”。

40.軟件危機軟件危機

41.D解析:本題考核的知識點是指針變量定義和賦值語句的基本應用。在使用一個指針變量之前,先要用聲明語句對其進行定義,在定義了一個指針變量之后,系統(tǒng)就為這個指針變量分配了一個存儲單元,用它來存放地址。在C語言中有兩個有關指針的運算符:&運算符,為取地址運算符,*運算符是指針運算符,*p代表p所指向的變量。本題中首先定義了整型變量n,其初值為0,接著定義一個指針變量p并讓它指向n,然后定義了一個指向指針的指針變量q并讓它指向p,選項A中將常量1賦給指針p不正確;選項B也是將常量2賦給*p,故選項B不正確;選項C中P不是指向指針的指針變量,而將他賦值給一個指向指針的指針變量小顯然不正確,所以,4個選項中選項D符合題意。

42.D解析:軟件需求規(guī)格說明書SRS,SoftwareRequirementSpecification)是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。它有以下幾個方面的作用,①便于用戶、開發(fā)人員進行理解和交流;②反映出用戶問題的結構,可以作為軟件開發(fā)工作的基礎和依據;③作為確認測試和驗收的依據。

43.D解析:函數聲明可以照寫已定義的函數的首部,再加一個號就成為了對函數的聲明,在函數聲明中也可以不寫形參名,而只寫形參的類型,但要保證與函數首部寫法上的—致,即函數類型、函數名、參數個數、參數類型和參數順序相同。字符數組可用指針來表示,所以選頂D正確。

44.C

45.C解析:在C語言中,除字符數組外,一個數組不能通過數組名對數姐進行整體引用,因此選項A是對的。數組名中存放的是一個地址常量,它代表整個數組的首地址,因此選項B是對的。C語言程序在運行過程中,系統(tǒng)不自動檢驗數組元素的下標是否越界,因此選項C是錯誤的。C語官規(guī)定可以通過賦初值來定義數組的大小,這時數組說明符的一對方括號中可以不指定數組的大小,因此選項D也是正確的。所以,4個選項中選項C符合題意。

46.D解析:當i為0,內循環(huán)在j為0時,執(zhí)行n[j]=n[i]-1;,即n[0]=n[0]-1,n[0]值變?yōu)?1:在j為1時,執(zhí)行n[j]=n[i]-1;,即n[1]=n[0]-1,將-2賦給n[1]。當i為1時,內循環(huán)在j為0時,執(zhí)行n[j]=n[i]-1;,即n[0]=n[1]-1,n[0]值變?yōu)?3;在j為1時,執(zhí)行n[j]=n[i]-1;,即n[1]=n[1]-1,將-3賦給n[1];最后n[0]和n[1]的值均為-3。

47.C

48.D解析:通過賦初值的方式給一維數組賦字符串,可以用給一般數組賦初值的相同方式給一維字符數組賦字符串,也可以在賦值時直接賦字符串常量。選項B)和C)后面的'\\0'是多余的,在C語言中,系統(tǒng)會自動在字符串的結尾處加上一個字符'\\0'作為串的結束標記。

49.B解析:C語言規(guī)定,數組元素的下標是從零開始的.本題首先定義了一個二維數組aa并按行賦初值,定義了一個變量s用于求和。for循環(huán)執(zhí)行4次分別把數組元素aa[0][1]、aa[1)[1)、oa[2][1]和aa[2][1]的值(2,6,9,2)加到變量s中,s的值為19,所以最后輸出的s的值為19.所以4個選項中B正確。

50.B解析:此題為數據庫的基本概念,可以對照辦工軟件的電子表格進行如下理解:選擇:我們根據某條件選擇出一行或多行元組(一個元組即為二維表中的一行)。投影:按字段(也稱屬性,比如學生關系(學號,姓名,出生年月,性別),學號、姓名…都是屬性)選取一列或多列(一個二維表中所有元組在某一列或幾列上截取出來)。連接:2個或2個以上的表連接組成一張新的表,通常有條件連接。比如學生關系(學號,姓名,系號),又有一張系表(系號,系名,主任),2張表可以合并為一張這樣的表(學號,姓名,系號,系名,主任)。

51.A解析:維護是軟件生命周期的最后一個階段,也是持續(xù)時間最長、付出代價最大的階段。軟件工程學的目的就在于提高軟件的可維護性,同時也要設法降低維護的代價。

軟件維護通常有以下四類;

①為糾正使用中出現的錯誤而進行的改正性維護;

②為適應環(huán)境變化而進行的適應性維護;

③為改進原有軟件而進行的完善性維護;

④為將來的可維護和可靠而進行的預防性維護。

軟件維護不僅包括程序代碼的維護,還包括文檔的維護。文檔可以分為用戶文檔和系統(tǒng)文檔兩類。但無論是哪類文檔,都必須與程序代碼同時維護。只有與程序代碼完全一致的文檔才有意義和價值。由此可知,本題中選項B、C、D中的說法都是錯誤的。

52.A解析:轉義字符'\\n'表示換行,'\\\\'表示反斜杠,函數strlen()是計算字符串的長度,不包括文件結束標志('\\0'),函數sizeof()統(tǒng)計字符串所占的字節(jié)數。

53.A解析:在C語言中NULL的ASCII碼值為0,而輸出函數要求以整形格式輸出,故最后的輸出數為0。所以,4個選項中選項A符合題意。

54.C解析:本題考核的知識點是操作文件的幾個基本函數。主函數中定義了一個文件指針中1,然后通過fopen()函數,以寫的方式打開文件“f1.txt’,并讓指針印1指向它,接著調用fptind()函數將“abc”寫到文件fp1所指的文件里,由于開始fp1指向文件的“f1.txt”的開始位置,因此“abc”將把文件“f1.txt”里原來的內容“good”覆蓋掉,故文件“f1.txt”里最后的內容為“abc”,所以,4個選項中選項C符合題意。

55.A解析:本題主要考查的知識點是大寫字母比它對應的小寫字母ASCII碼值小32,并且字符可以看作整數進行算術運算等操作。

56.D解析:概要設計是軟件系統(tǒng)結構的總體設計,其目的就是要按照需求規(guī)格說明書,把軟件按照功能劃分為多個模塊,然后確定每個模塊要實現的功能,最后確定模塊之間的調用關系。而設計每個模塊的偽代碼則屬于詳細設計。所以只有最后一個不屬于概要設計范疇。

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

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

59.A解析

溫馨提示

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

評論

0/150

提交評論