版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
2022年江蘇省淮安市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。
A.多態(tài)性B.繼承C.封裝性D.模塊化
2.對一個關(guān)系投影操作以后,新關(guān)系的元組個數(shù)______原來關(guān)系的元組個數(shù)。
A.小于B.小于或等于C.等于D.大于
3.C語言提供的合法關(guān)鍵字是()
A.switchB.cherC.caseD.default
4.圖的深度優(yōu)先遍歷類似于二叉樹的_______。
A.先序遍歷B.中序遍歷C.后序遍歷D.層次遍歷
5.有以下程序:main(){intk=5,n=0;do{switch(k){case1:case3:n+=l;k--;break;defalut:n=0;k--;case2:case4:n+=2;k--;break:}printf("%d",n);}while(k>0&&n<5);}程序運行后的輸出結(jié)果是()。A.235B.0235C.02356D.2356
6.
7.以下敘述中錯誤的是A.算法正確的程序最終一定會結(jié)束
B.算法正確的程序可以有零個輸出
C.算法正確的程序可以有零個輸入
D.算法正確的程序?qū)τ谙嗤妮斎胍欢ㄓ邢嗤慕Y(jié)果
8.以下程序段中的變量已正確定義:for(i=0;i<4;i++,i++)for(k=1;k<3;k++);printf(“*”);該程序段的輸出結(jié)果是()。
A.*B.****C.**D.********
9.
10.有三個關(guān)系R,S和T如下:
其中關(guān)系T由關(guān)系R和s通過某種操作得到,該操作為()。
A.選擇B.交C.投影D.并
11.若有定義“charc=“hello!”;”,則以下說法正確的是()。
A.c占用7字節(jié)內(nèi)存B.c是一個字符串變量C.定義中有語法錯誤D.c的有效字符個數(shù)是6
12.下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()
A.便于用戶,開發(fā)人員進行理解和交流
B.反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)
C.作為確認(rèn)測試和驗收的依據(jù)
D.便于開發(fā)人員進行需求分析
13.計算機系統(tǒng)的組成是______。
A.主機、外設(shè)B.運算器、控制器C.硬件系統(tǒng)和軟件系統(tǒng)D.CPU、內(nèi)存儲器
14.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.0,1,0B.0,1,1C.0,0,1D.0,0,0
15.函數(shù)調(diào)用:strcat(strcpy(str1,str2),str3)的功能是______。
A.將串str1復(fù)制到串str2中后再連接到串str3之后
B.將串str1連接到串str2之后再復(fù)制到串str3之后
C.將串str2復(fù)制到串str1中后再將串sir3連接到串str1之后
D.將串str2連接到串str1之后再將串str1復(fù)制到串str3中
16.程序段:intx=12;doub1ey=3.141593;printf("%d%8.6f"x,y);的輸出結(jié)果是______。A.123.141593B.123.141593C.12,3.141593D.123,1415930
17.若有下列定義,則對a數(shù)組元素地址的正確引用是()。inta[5],*p=a;
A.p+5B.*a+1C.&a+1D.&a[0]
18.
19.任何一個無向圖的最小生成樹()。
A.只有一棵B.有一棵或多棵C.一定有多棵D.可能不存在
20.若要求定義具有10個int型元素的一維數(shù)組a,則以下定義語句中錯誤的是A.#defineN10inta[N];B.#definen5inta[2*n];C.inta[5+5];
D.intn=10,a[n];
二、2.填空題(20題)21.下面的程序可對指定字符串中的字符串進行從大到小排序,請將程序填完整。(注:程序采用了冒泡排序算法)
#include<stdio.h>
#include<string.h>
main()
{char*str="ABCDabcd",temp;
intn,i;
n=strlen(str);
while(n->1)
for(i=0;i<n;i++)
if(str[i]<str[i+1])
{temp=【】;
str[i]=str[i+1];
【】=temp;
}
printf(【】);
}
22.若有如下定義:
intx=2,y=3,z=4;
則表達式!(x=y)||x+z&&y-z的值是【】。
23.以下程序的功能是對從鍵盤上輸入的兩個字符串進行比較,然后輸出兩個字符串中第一個不相同字符的ASCII碼值之差。請?zhí)羁铡?/p>
#include"stdio.h"
main()
{chara1[20],a2[20];intn=0,t;
scanf("%st",a1);scanf("%s",a2);
while(a1[n]!=a2[n]&&(a1[n]!=【】))
{t=【】;
printf("%d\n",t);n++;}}
24.若x=3,y=2,z=1,表達式z-=x<y?x++:++y的值為______。
25.下面能正確進行字符串賦值操作的是
26.一個類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個方法提高了軟件的【】。
27.設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語句,且fun函數(shù)為void類型;請寫出fun函數(shù)的首部【】(要求形參名為b)。main(){doubles[10][22];intn;……fun(s);……}
28.在Windows環(huán)境下,可以利用單擊、雙擊、拖動這三種鼠標(biāo)操作之一的【】操作實現(xiàn)窗口的移動。
29.多媒體計算機所用的CD-ROM是【】。
30.以下程序的輸出結(jié)果是【】。
#defineMCNA(m)2*m
#defineMCNB(n,m)2*MCRA(n)+m
#definef(x)(x*x)
main()
{inti=2,j=3;
printf("%d\n",MCRB(j,MCRA(i)));
}
31.軟件測試是保證軟件質(zhì)量的重要手段,而軟件測試的主要和重要的測試方法是通過測試數(shù)據(jù)和【】的設(shè)計來實現(xiàn)。
32.表示""整數(shù)x的絕對值大于5""時值為""真""的C語言表達式是【】。
33.以下程序段的運行結(jié)果是()。#include<stdio.h>main(){intx=2,y=1:switch(x){case1:switch(y){case0:printf("x=2,y=1\n");break;case1:printf("y=1\n");break;}case2:printf("x=2\n");}}
34.x、y、x均為int型變量,描述"x、y和z中至少有兩個為正數(shù)"的表達式是______。
35.下面的程序?qū)崿F(xiàn)的是從指針p所指向的地址的n個數(shù)中,找出最大的和最小的數(shù)據(jù),請?zhí)羁铡?/p>
fun(int*p,intn)
{int*q;
intmax,min;
max=min=*p;
for(q=p;【】;q++)
if(*q>max)max=*q;
elseif(*q<min)min=*q;}
36.以下程序的功能是根據(jù)輸入的“y”(“Y”)與“n”(“N”),在屏幕上分別顯示出“ThisisYES.”與“ThisNO.”??瞻滋幮枰钊氲膬?nèi)容是
#include<stdio.h>
voidYesNo(charch)
{switch(ch)
{case'y':
case'Y':printf("\nThisisYES,\n");
case'n':
case'N':printf("\nThisisNO.\n");}}
main()
{charch;
printf("\nEnterachar'y','Y'or'n','N':");
ch=【】;
printf("ch;%c",ch);
YesNo(ch);}
37.下面rotate函數(shù)的功能是:將n行n列的矩陣A轉(zhuǎn)置未AT,例如:
請?zhí)羁?/p>
#defineN4
voidrotate(inta[][])
{inti,j,t;
for(i=0;i<N;i++)
for(j=0;【】;j++)
{t=a[i][j];【】;a[j][i]=t;}
}
38.下列程序的輸出結(jié)果是______。
main()
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)break;
elsei--;}
i+=11;
a+=i;
}
printf("%d\n",A);
}
39.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為______。
40.語句:x++;、++x;、x=x+1;、x=1+x;,執(zhí)行后都使變量x中的值增1,請寫出一條同一功能的賦值語句(不得與列舉的相同)【】。
三、1.選擇題(20題)41.最簡單的交換排序方法是()。A.快速排序B.選擇排序C.堆排序D.冒泡排序
42.有如下程序main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x>10.0)y=1.O/x;elsey=1.0;printf("%f\n",y);}該程序的輸出結(jié)果是
A.0B.0.25C.0.5D.1
43.下列對于軟件測試的描述中正確的是()。
A.軟件測試的目的是證明程序是否正確
B.軟件測試的目的是使程序運行結(jié)果正確
C.軟件測試的目的是盡可能多地發(fā)現(xiàn)程序中的錯誤
D.軟件測試的目的是使程序符合結(jié)構(gòu)化原則
44.當(dāng)k的值不為0時,在下列選項中能夠?qū)的值賦給變量m,n的是
A.m=k=n
B.(m=k)&&(n=k)
C.(m=k)||(n=k)
D.(k=m)&&(n=k)
45.結(jié)構(gòu)化程序由三種基本結(jié)構(gòu)組成,三種基本結(jié)構(gòu)組成的算法A.可以完成任何復(fù)雜的任務(wù)B.只能完成部分復(fù)雜的任務(wù)C.只能完成符合結(jié)構(gòu)化的任務(wù)D.只能完成一些簡單的任務(wù)
46.下面程序的執(zhí)行結(jié)果是______。#defineMAX10nta[MAX],i;main(){printf("\n");sub1();sub3(A);sub2();sub3(A);}sub1(){for(i=0;i<1MAX;i++)a[i]-i+i;}sub2(){inta[MAX],i,max;max=5;for(i=0;i<max;i++)a[i]=i;}sub3(inta[]){inti;for(i=0;i<MAX;i++)printf("%d",a[i]);printf("\n");}
A.02468101214161801234
B.01234024681012141618
C.012345678901234
D.024681012141618024681012141618
47.有以下程序#include<string.h>main(intarge,char*argv[]){inti,len=0;for(i=1;i<arge;i++)len+=strlen(argv[i]);printf(“%d\n”,len);}程序編譯連接后生成的可執(zhí)行文件是exl.exe,若運行時輸入帶參數(shù)的命令行是:exlabcdefg10<回車>則運行的結(jié)果是
A.22B.17C.12D.9
48.有以下程序main(){ihtm=3,n=r,x;x=-m++;X=x+8/++n;printf("%d\n",x);}程序運行后的輸出結(jié)果是
A.3B.5C.-1D.-2
49.局域網(wǎng)的網(wǎng)絡(luò)硬件主要服務(wù)器、工作站、網(wǎng)卡和()
A.傳播介質(zhì)B.網(wǎng)絡(luò)操作系統(tǒng)C.計算機D.網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
50.軟件生命周期中花費時間最多的階段是()
A.詳細(xì)設(shè)計B.軟件編碼C.軟件測試D.軟件維護
51.設(shè)x,y和z都是int型變量,且x=3,y=4,z=5,則下面表達式中,值為0的表達式是
A.x&&y
B.x<=y
C.x||++y&&y-z
D.!(x<y&&!z||1)
52.結(jié)構(gòu)化程序設(shè)計的核心和基礎(chǔ)是()。
A.結(jié)構(gòu)化分析方法B.結(jié)構(gòu)化設(shè)計方法C.結(jié)構(gòu)化設(shè)計理論D.結(jié)構(gòu)化編程方法
53.若要求從鍵盤讀入含有空格字符的字符串,應(yīng)使用函數(shù)
A.getc()B.gets()C.getehar()D.scanf()
54.下列程序的運行結(jié)果為#include<stdio.h>voidabc(char*str){inta,b;for(a=b=0;str[a]!='\0';a++)if(str[a]!='c')str[b++]=str[a];str[b]='\0';}voidmain(){charstr[]="abcdef";abc(str);printf("str[]=%s",str);}
A.str[]=abdefB.str[]=abcdefC.str[]=aD.str[]=ab
55.函數(shù)rewind的作用是
A.使文件位置指針重新返回文件的開始位置
B.將文件位置指針指向文件中所要求的特定位置
C.使文件位置指針指向文件的末尾
D.使文件位置指針自動移至下一個字符位置
56.一個文件的擴展名通常表示()
A.由用戶自定義B.文件的版本C.文件的大小D.文件的類型
57.若有如下程序:#include"stdio.h"voidmain(){FILE*fp;fp=fopen("test","wb")fprintf(fp,"%d%.1f,%c%c",5,238.41,'B','h');fclose(fp);}則程序運行后向文件輸出的結(jié)果是()
A.5238.41BhB.5238.4,BhC.5,238.4,B,hD.5238.41Bh
58.若有以下定義和語句:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則不能表示a數(shù)組元素的表達式是______。
A.*pB.a[10]C.*aD.a[p-a]
59.下面程序的輸出結(jié)果是#include<stdio.h>main(){inti=010,j=10;Printf(“%d,%d”,++i,j--);}
A.11,10B.9,10C.010,9D.10,9
60.有以下函數(shù)定義:voidfun(intn,doublex){......}若以下選項中的變量都已正確定義并賦值,則對函數(shù)fun正確調(diào)用語句是______。
A.fun(inty,doublem);
B.k=fun(10,12.5);
C.fun(x,n);
D.voidfun(n,x);
四、選擇題(20題)61.一間宿舍可住多名學(xué)生,則實體宿舍和學(xué)生之間的聯(lián)系是()。A.一對一B.一對多C.多對一D.多對多
62.
63.
64.#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)
65.有以下程序:
main()
{intX,i;
for(i=1;i<=50;i++)
{x=i;
if(X%2=O)
if(x%3=O)
if(X%7=0)
printf("%d,i)";
}
}
輸出結(jié)果是()。
A.28
B.27
C.42
D.41
66.
67.有下列二叉樹.對此二叉樹前序遍歷的結(jié)果為()。
A.ACFXDBEYZB.ABEFXYZCDC.ABCDEFXY7D.ABDYECFXZ
68.設(shè)有intx=11;則表達式(x++*1/3)的值是()。
A.3B.4C.11D.12
69.
70.下列敘述中正確的是()。
A.軟件交付使用后還需要進行維護
B.軟件一旦交付使用就不需要再進行維護
C.軟件交付使用后其生命周期就結(jié)束
D.軟件維護是指修復(fù)程序中被破壞的指令
71.以下關(guān)于C語言的敘述中,不正確的是
A.C語言中的注釋可以夾在變量名或關(guān)鍵字的中間
B.C語言中使用變量必須是先定義后使用
C.C語言表達式運算符兩側(cè)的運算數(shù)類型必須一致
D.C語言的數(shù)值常量中夾帶空格不影響常量值的正確表示
72.有以下程序:
程序運行后的輸出結(jié)果是()。
A.11B.9C.6D.7
73.有以下結(jié)構(gòu)體說明、變量定義和賦值語句
74.
75.數(shù)據(jù)流圖中帶有箭頭的線段表示的是()。
A.控制流B.事件驅(qū)動C.模塊調(diào)用D.數(shù)據(jù)流
76.標(biāo)準(zhǔn)庫函數(shù)fgets(s,n,file)的功能是()。
A.從文件file中讀取長度為n的字符串存入字符數(shù)s由
B.從文件file中讀取長度不超過n-1個字符的字符放到字符數(shù)組S中
C.從文件file中讀到n個字符串存入字符數(shù)組s中
D.從文件file中讀取長度為n-1個字符的字符串存字符數(shù)組S中
77.
78.下面程序由兩個源程序文件t4.h和t4.c組成,程序編譯運行的結(jié)果是()。
t4.h的源程序為:
A.920B.1611C.911D.1610
79.程序調(diào)試的目的是
A.發(fā)現(xiàn)程序中的錯誤B.改正程序中的錯誤C.驗證程序的正確性D.改善軟件的性能
80.有以下程序
五、程序改錯題(1題)81.下列給定的程序中,函數(shù)proc()的功能是:計算并輸出k以內(nèi)最大的10個能被13或17整除的自然數(shù)之和。k的值由主函數(shù)傳人,若k的值為600,則函數(shù)的值為5671。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.請編一個函數(shù)intfun(inta),它的功能是:判斷a是否是素數(shù),若a是素數(shù),返回1;若不是素數(shù),返回0。A的值由主函數(shù)從鍵盤讀入。
參考答案
1.DD。【解析】面向?qū)ο笤O(shè)計方法與面向過程設(shè)計方法有本質(zhì)的不同,其基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。其特點包括:分類性、多態(tài)性、封裝性、模塊獨立性、繼承和多態(tài)性等。模塊化是結(jié)構(gòu)化程序設(shè)計的特點。
2.B解析:投影操作是從關(guān)系中選擇某些列,投影后消去了某些屬性,就可能出現(xiàn)重復(fù)元組,根據(jù)關(guān)系的性質(zhì),應(yīng)消去這些完全相同的元組。這樣使得新關(guān)系的元組數(shù)小于或等于原來的元組數(shù)。
3.C
4.A
5.B本題考查分支語句用法加個句號因為變量的初始值分別為k一5、n一0,所以程序第1次進入循環(huán)時,執(zhí)行default語句,輸出0,k減1;這時n=0、k=4,程序進行第2次循環(huán),執(zhí)行case4:這個分支,結(jié)果是n=2、k=3,打印出2;這時n=2、k=3,break跳出,程序進行第3次循環(huán),執(zhí)行case3:這個分支,結(jié)果是n=3、k=2,打印出3;這時n一3、k2,b¨ak跳出,程序然后進行第4次循環(huán),執(zhí)行case2:case4:這個分支,結(jié)果是n=5、k=1,打印出5,break跳出,這時因為n=5不滿足n<5的循環(huán)條件,因此循環(huán)結(jié)束。
6.C
7.B(45)B)解析:算法應(yīng)該具有下列五個特性:
①有窮性:一個算法必須在執(zhí)行有窮步之后結(jié)束。
②確定性:算法中的每一步,必須有確切的含義,在他人理解時不會產(chǎn)生二義性。
③動態(tài)性:算法中描述的每一步操作都可以通過已有的基本操作執(zhí)行有限次實現(xiàn)。
④輸入:一個算法應(yīng)該有零個或多個輸入。
⑤輸出:一個算法應(yīng)該有一個或多個輸出。這里所說的輸出是指與輸入有某種特定關(guān)系的量。
8.AC語言中,分號為一條語句的結(jié)束。因此“for(i=0;i<4;i++,i++)for(k=1;k<3;k++);”是完整的語句,“printf(“*”);”是獨立語句,不屬于for循環(huán)。最后執(zhí)行printf語句輸出“*”。故本題答案為A選項。
9.A
10.D\n兩個相同結(jié)構(gòu)關(guān)系的并是由屬于這兩個關(guān)系的元組組成的集合。
\n
11.Cc是字符變量,“hello!”是字符串。字符串不能賦給字符變量,定義中有語法錯誤。本題答案為C選項。
12.D解析:軟件需求規(guī)格說明書SRS,SoftwareRequirementSpecification)是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。它有以下幾個方面的作用,①便于用戶、開發(fā)人員進行理解和交流;②反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù);③作為確認(rèn)測試和驗收的依據(jù)。
13.C
14.Bif條件表達式“a--‖b--&&--c”使用了邏輯或運算符和邏輯與運算符。因為邏輯與運算符優(yōu)先級比邏輯或運算符優(yōu)先級高,所以條件表達式等價于“(a--)‖(b--&&--c)”,自左向右運算,執(zhí)行“a”,因為a初值為1,所以a--的值為1,執(zhí)行完后a的值為0;又因為邏輯或運算符的短路原則,當(dāng)a--的值為1時,條件為真,后面的表達式b--&&--c不執(zhí)行。程序執(zhí)行if語句塊,輸出a、b、c的值為:0,1,1。本題答案為B選項。
15.C解析:題目中所給函數(shù)的功能是;先用函數(shù)strcpy把參數(shù)串str2復(fù)制到參數(shù)串str1中去,然后用函數(shù)strcat把參數(shù)串str3連接到經(jīng)過修改后的參數(shù)串str1后,因此選項C正確。
16.A解析:在printf函數(shù)常用的格式說明中,每個格式說明都必須用“%”開頭,以—個格式字符作為結(jié)束,在此之間可以根據(jù)需要插入“寬度說明”、左對齊符號“-”、前導(dǎo)零符號“0”等。本題中用到了d和f,d代表輸出符號的十進制整型數(shù),f代表以帶小數(shù)點的數(shù)學(xué)形式輸出浮點數(shù)(單精度和雙精度數(shù))。對于float和double類型的實數(shù),可以用“n1.n2”的形式來指定輸出寬度(n1和n2分別代表—個整常數(shù)),其中n1指定輸出數(shù)據(jù)的寬度(包括小數(shù)點),n2指定小數(shù)點后小數(shù)位的位數(shù),由于輸出格式是以緊湊格式輸出,因此選項A是正確的。
17.D本題考查數(shù)組元素的地址的引用。A中,p+5引用的是a[5]的地址,而數(shù)組a只有5個元素,即a[0]、a[1]、a[2]、a[3]、a[4],所以引用錯誤(注:數(shù)組元素下標(biāo)從0開始);B中,*a+1指的是將數(shù)組a的第一個元素加1;選項C中,不存在這種引用方式;D中,&a[0]引用的是數(shù)組的首地址。
18.D
19.B
20.D答案D
解析:在選項D中,n是一個整型的變量。C語言規(guī)定,在一維數(shù)組的定義中,其下標(biāo)只能是常量表達式,不能包含變量。
21.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本題要求將字符串str中的字符用冒泡排序算法從大到小排列,其實現(xiàn)過程是將相鄰兩個字符進行比較,如果當(dāng)前字符小于下—個字符,則通過中間變量temp將字符兩兩交換,所以第一空應(yīng)填:str[i],第二空應(yīng)填:str[i+1]。最終打印輸出得到的字符串str,所以第三空應(yīng)填:'%s',str。
22.11解析:運算符的優(yōu)先級次序由高到底是!,算術(shù)運算符,&&,||。先運算!(x=y),由于x=3非零,則表達式!(x=y)的值為0。再運算x+z,x+z=3+4=7,非零則運算y-z,y-z=3-4=-1,非零則表達式x+z&&y-z的值為1。0||1=0,則表達式!(x=y)||x+z&&y-z的值是1。
23.\0'al[n]-a2[n]或s2[n]-al[n]\\0'\r\nal[n]-a2[n]或s2[n]-al[n]
24.-2。-2。解析:表達式z-=x<y?x++:++y相當(dāng)于先執(zhí)行++y,再執(zhí)行z-=x<y?x:y,最后執(zhí)行x++,其中z-=x<y?x:y等價于z=z-(x<y?x:y),由于x值為3,y值為3,x<y不成立,返回y的值,z-y的值為-2,賦給z。
25.C
26.可重用性繼承的優(yōu)點:相似的對象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余,提高軟件的可重用性。
27.
28.拖動拖動
29.只讀光盤只讀光盤
30.1616解析:本題定義了兩個宏MCRA(m)和MCRB(n,m),展開宏MCRB(n,m),得到:MCRB(j,MCRA(i)=2*MCRA(j)+MCRA(i)=2×2×j+2×i=4×3+2×2=12+4=16,因此printf函數(shù)的輸出結(jié)果為16。
31.測試實例測試實例解析:進行軟件測試時,應(yīng)精心設(shè)計測試實例和選擇測試數(shù)據(jù),以對系統(tǒng)進行全面測試。
32.x>5||x<-5x<-5或x<-5||x>5x>5||x<-5,x<-5或x<-5||x>5解析:要使整數(shù)x的絕對值大于5,則x大于5或x小于5,用C語言表示即為:x>5||x<-5或者x<-5||x>5。故本題答案為;x>5||x<-5或者x<-5||x>5。
33.x=2
34.((x>0)&&(y>0))||((x>0)&&(z>0)||((y>0)&&(z>0))((x>0)&&(y>0))||((x>0)&&(z>0)||((y>0)&&(z>0))解析:題目要求“x、y和z中至少有兩個為正數(shù)”,即x、y和z這3個數(shù)中必須有兩個是正數(shù),且這3個數(shù)中的哪兩個數(shù)都有可能是正數(shù),所以它們之間是或的關(guān)系。
35.q<p+nq<p+n解析:考查對于函數(shù)的地址傳遞的掌握情況。通過地址傳遞可以在被調(diào)函數(shù)中對調(diào)用函數(shù)中的變量進行引用。
36.getchargetchar解析:題中要求根據(jù)輸入的字符調(diào)用函數(shù)YesNo來判斷輸入的字符是y(Y)還是n(N),字符的輸入可用字符輸入函數(shù)getchar。函數(shù)YesNo用來判斷一個字符是y(Y)還是n(N),主要用了一個switch多分支結(jié)構(gòu)來比較輸入字符與字符'y','Y'、,'n','N'是否相等來實現(xiàn)的。注意:用于字符串處理的函數(shù)。
37.j<=ia[i][j]=a[j][i]j<=i\r\na[i][j]=a[j][i]解析:將矩陣轉(zhuǎn)置就是將行列互換,所以第一處應(yīng)填j<=i,第二處應(yīng)填a[i][j]=a[j][i]。
38.3232解析:while(表達式)的功能是:首先計算表達式的值,若為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢,再計算表達式的值,若仍為真,則重復(fù)執(zhí)行循環(huán)體語句,直到表達式的值為假時,結(jié)束while語句的執(zhí)行,繼續(xù)執(zhí)行while語句后面的語句:i=0時滿足循環(huán)條件,也滿足if的條件,執(zhí)行語句得i=11,a=11,第2次循環(huán)不滿足if的條件,執(zhí)行i--,i=10,執(zhí)行i+=11;a+=i后,得i=21,a=32,不滿足i<20,循環(huán)結(jié)束。
39.從定義到本源文件結(jié)束從定義到本源文件結(jié)束解析:C語言規(guī)定,宏名的有效范圍為從定義宏到本源程序結(jié)束。
40.x+=1;
41.D冒泡排序(BubbleSort)的基本概念是:依次比較相鄰的兩個數(shù),將小數(shù)放在前面,大數(shù)放在后面。即在第一趟:首先比較第1個和第2個數(shù),將小數(shù)放前,大數(shù)放后。然后比較第2個數(shù)和第3個數(shù),將小數(shù)放前,大數(shù)放后,如此繼續(xù),直至比較最后兩個數(shù),將小數(shù)放前,大數(shù)放后。至此第一趟結(jié)束,將最大的數(shù)放到了最后。在第二趟:仍從第一對數(shù)開始比較(因為可能由于第2個數(shù)和第3個數(shù)的交換,使得第1個數(shù)不再小于第2個數(shù)),將小數(shù)放前,大數(shù)放后,一直比較到倒數(shù)第二個數(shù)(倒數(shù)第一的位置上已經(jīng)是最大的),第二趟結(jié)束,在倒數(shù)第二的位置上得到一個新的最大數(shù)(其實在整個數(shù)列中是第二大的數(shù))。如此下去,重復(fù)以上過程,直至最終完成排序。
42.D解析:本題考查if語句中的一種表達方式,即:if…elseif…。
該表達式的語句是:
if(表達式1)
語句1
elseif(表達式2)
語句2
elseif(表達式3)
語句3
else
語句4
……
本題執(zhí)行elsey=1.0,并且以“%f”輸出。注意:條件表達式在if語句中的使用。
43.C解析:關(guān)于軟件測試的目的,GrenfordJ.Myers在《TheArtofSoftwareTesting》一書中給出了深刻的闡述:軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程;一個好的測試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯誤的用例;一個成功的測試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯誤的測試。整體來說,軟件測試的目的就是盡可能多地發(fā)現(xiàn)程序中的錯誤。本題答案為C。
44.B解析:&&,‖在某種情況下會實行“短路規(guī)則”,即當(dāng)邏輯與前面一個表達式的值為假的時候,后面一個表達式就不需要計算,這個邏輯表達式一定為假;當(dāng)邏輯或前面一個表達式為真的時候,后面一個表達式就不需要計算,這個邏輯或表達式一定為真。選項A)是將n的值賦值給m和k。選項C)就是進行了短路規(guī)則,當(dāng)m=k賦值后,m得到的新值不為0,即為真,邏輯或后面的表達式就不被計算,所以n沒有被賦值。D)答案沒有什么意義。
45.A解析:C程序由順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)三種基本的結(jié)構(gòu)組成,這三種結(jié)構(gòu)可以組成任何復(fù)雜的C程序,即可以完成任何復(fù)雜的任務(wù)。
46.D解析:函數(shù)sub1給全局作用范圍內(nèi)數(shù)組a(長度為10)的每個元素賦值,函數(shù)sub2中數(shù)組a僅在本函數(shù)范圍內(nèi)有效,長度也是10,但僅給前5個元素賦值,main函數(shù)調(diào)用sub3時,傳遞數(shù)組地址均是全局作用范圍內(nèi)數(shù)組a的地址,因此兩次調(diào)用打印的結(jié)果相同。
47.D解析:main()函數(shù)可以帶參數(shù),并且參數(shù)只能有兩個,第一個參數(shù)(arge)類型為整型用來記下命令行的參數(shù)個數(shù),第二個參數(shù)(argv)為一個字符型指針數(shù)組,其各個元素用來記下命令行各參數(shù)字符串的首地址。本題執(zhí)行時,arge的值為4,在循環(huán)中依次求出algv[l]、argv[2]和argv[3]指向的字符串(“abcd”、“efg”和“10”)的長度,并把它們加到變量len中,得到len的值9。所以最后輸出的len值為9。
48.D解析:主函數(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。
49.A
50.D解析:軟件生命周期分為軟件定義、軟件開發(fā)及軟件運行維護3個所段。本題中,詳細(xì)設(shè)計、軟什編碼和軟件測試都屬于軟件開發(fā)階段;維護是軟件生命周期的最后一個階段,也是持續(xù)時間最長,花費代價最大的一個階段,軟件工程學(xué)的一個目的就是提高軟件的可維護性.降低維護的代價。
51.D解析:該題考查邏輯與'&&'和邏輯或'||'以及邏輯非'!'符號的用法。選項A)即3&&4為真;選項B)即3<=4為真;選項C)是一個邏輯或與邏輯與的混合運算,只要執(zhí)行了邏輯或左半部分,程序?qū)⒅苯油V箞?zhí)行邏輯或右半部分程序,因為x的值為真;此時選項C)變?yōu)?&&-1為真。選項D)不用計算,括號內(nèi)邏輯或右邊的值為1,因而括號內(nèi)的值為1,再進行邏輯非運算得0。
52.CC?!窘馕觥拷Y(jié)構(gòu)化程序設(shè)計的核心和基礎(chǔ)是結(jié)構(gòu)化設(shè)計理論,其中包括:結(jié)構(gòu)化分析方法、結(jié)構(gòu)化設(shè)計方法和結(jié)構(gòu)化編程方法。
53.B解析:scanf()語句用“空格”區(qū)別不同的字符串;getc()與getchar()語句不能用于字符串的讀入。
54.A解析:本題考查了用字符指針引用字符數(shù)組中的字符及對字符的操作。函數(shù)abc()的for語句執(zhí)行過程是:從字符指針str所指向的字符數(shù)組的第一個元素開始,逐一判斷字符是否為'c',若不是就執(zhí)行一次數(shù)組元素的賦值過程,若字符為'c'就不執(zhí)行。
55.A解析:函數(shù)rewind的功能是將文件指針重新指向一個流的開頭。用法如下:
intrewind(FILE*stream);并且無返值。
56.D
57.B解析:本題對文件test輸出4個數(shù)據(jù),第一個5原樣輸出,第二個238.41只保留小數(shù)點后1位,然后輸出一個‘,’,再連續(xù)輸出兩個字符‘B’和‘h’。所以最終的輸出結(jié)果是5238.4,Bh。應(yīng)該選擇B。
58.B解析:程序中定義了數(shù)組a[10],則其元素的下標(biāo)范圍為0~9,而B選項中的a[10]所表示的元素已經(jīng)超出a數(shù)組元素的范圍,故應(yīng)該選擇B。
59.B解析:程序中i的值用八進制表示(十進制為8),++i是在變量使用前自身先加1,而j--是在變量使用后自身減1。
60.C解析:函數(shù)調(diào)用的一般形式為:函數(shù)名(實參表列);,實參與形參的個數(shù)應(yīng)相等,類型應(yīng)一致,在調(diào)用函數(shù)時,不要指定其返回類型,對于返回類型為void的函數(shù),不能作為賦值表達式的組成部分,所以選C。
61.B因為一間宿舍可以住多名學(xué)生即多名學(xué)生住在一間宿舍中,但,名學(xué)生只能住一間宿舍,所以實體宿舍和學(xué)生之間是一對多的關(guān)系,因此本題答案為B)。
62.C
63.B\r\n
64.C解析:帶參數(shù)宏的格式為:#define標(biāo)識符(形參表)形參表達式。其功能是:在預(yù)處理程序中將程序中出現(xiàn)的所有帶實參的宏名,展開成由實參組成的表達式。
65.C\n只有當(dāng)3個if條件同時成立,即能夠同時被2、3、7整除時,才輸出i的值,而從0到50能夠同時被2、3、7整除的數(shù)只有42,故選擇c選鞏。
\n
66.C
67.D
\n所謂二叉樹的前序遍歷是指先訪問根結(jié)點,訪問左子樹,最后訪問右子樹,本題中序為DYBEAFCZX,后序為YDEBFZXCA。
\n
68.A解析:當(dāng)自加運算符做后綴表達式的時候,表達式的值不變,只有變量的值增加1,所以表達式(x++*1/3)相當(dāng)于(11*1/3),值為3。
69.B
70.A解析:維護是軟件生命周期的最后一個階段,也是持續(xù)時間最長、付出代價最大的階段。軟件工程學(xué)的目的就在于提高軟件的可維護性,同時也要設(shè)法降低維護的代價。
軟件維護通常有以下四類;
①為糾正使用中出現(xiàn)的錯誤而進行的改正性維護;
②為適應(yīng)環(huán)境變化而進行的適應(yīng)性維護;
③為改進原有軟件而進行的完善性維護;
④為將來的可維護和可靠而進行的預(yù)防性維護。
軟件維護不僅包括程序代碼的維護,還包括文檔的維護。文檔可以分為用戶文檔和系統(tǒng)文檔兩類。但無論是哪類文檔,都必須與程序代碼同時維護。只有與程序代碼完全一致的文檔才有意義和價值。由此可知,本題中選項B、C、D中的說法都是錯誤的。
71.CA選項指出“C語言中的注釋可以夾在變量名或關(guān)鍵字的中間”,該選項是正確的。通常采用/*.....*/作為C語言里的注釋符,注釋符之間的內(nèi)容是方便他人理解程序而寫的,對編譯和運行不起作用。注釋可以在程序的任何位置。
B選項“C語言中使用變量必須是先定義后使用”,該選項是正確的。變量先定義后使用是編程語言的語法規(guī)則。這樣可以讓編譯器首先知道該定義變量的類型,可以事先為該變量安排好存儲空間,不至于最后編譯失敗。如果預(yù)先沒有定義,編譯器會因為不清楚該變量的類型而導(dǎo)致隨意分配內(nèi)存空間,這樣可能導(dǎo)致空間分配過大了浪費或因為空間過小無法存儲數(shù)據(jù)。
C選項“C語言表達式運算符兩側(cè)的運算數(shù)類型必須一致”,該選項是錯誤的。C語言允許整型、實型、字符型數(shù)據(jù)間進行混合運算。在運算時,不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型,然后進行運算。
D選項“C語言的數(shù)值常量中夾帶空格不影響常量值的正確表示”,該選項是正確的??崭穹?、制表符、換行符等統(tǒng)稱為空白符。空白符只在字符常量和字符串常量中起作用。在其他地方出現(xiàn)時,只起間隔作用,編譯程序?qū)λ鼈兒雎?。因此,在程序中使用空白符與否,對程序的編譯不發(fā)生影響,但在程序中適當(dāng)?shù)牡胤绞褂每瞻追麑⒃黾映绦虻那逦院涂勺x性。
72.Cstrcpy:字符串拷貝函數(shù);strlen:求字符串長度函數(shù)(注意:不包含字符串結(jié)束標(biāo)識符‘、0’);strcat:字符串連接函數(shù)。執(zhí)行完語句strcat(P,r);后,P數(shù)組中存儲的元素為a,b,c,d,a,b,C,d,8;執(zhí)行語句strcpy(P+strlen(q),q);得到的結(jié)果是將q所指向的字符串拷貝至P+strlen(q)開始的存儲位置,因為strlen的值為3,即從P+3開始存儲q中的元素。所以執(zhí)行完strcpy(P+str|en(q),q)語句后,字符數(shù)組P[20]的存儲元素為a,b,c,a,b,o;所以strlen(P)的結(jié)果為6。因此C選項正確。
73.Aps一>age不是地址,不能用于scanf函數(shù)中。所以選擇A)。
74.A
75.D解析:數(shù)據(jù)流圖是描述數(shù)據(jù)處理過程的工具,是需求理解的邏輯模型的圖形表示,它直接支持系統(tǒng)的功能建模。數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。數(shù)據(jù)流圖中的主要的圖形元素與說明如下:
加工(轉(zhuǎn)換):輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出。
數(shù)據(jù)流:沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標(biāo)注數(shù)據(jù)流名。
存儲文件(數(shù)據(jù)源):表示處理過程中存放各種數(shù)據(jù)的文件。
源,潭:表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實體。
76.B本題考查fgets函數(shù)的使用調(diào)用形式:fgets(s,n,fp)。fgets函數(shù)參數(shù)說明:“S”可以是一個字符數(shù)組名,也可以是指向字符串的指針;“n”為要讀取的最多的字符個數(shù);“fp”是指向該文件型指針。fgets函數(shù)的功能是:從fp所指向的文件中讀取長度不超過n-1個字符的字符串,并將該字符串放到字符數(shù)組S中,讀入字符串后會自動在字符串末尾加入"\0"結(jié)束符,表示字符串結(jié)束。
77.C
78.B
79.B調(diào)試也稱排錯或糾錯。它與成功的測試形影相隨,測試成功的標(biāo)志是發(fā)現(xiàn)錯誤。根據(jù)錯誤跡象,診斷錯誤的原因和位置,進而改正程序中的錯誤,這就是調(diào)試的任務(wù)。
調(diào)試分為靜態(tài)調(diào)試和動態(tài)調(diào)試,靜態(tài)調(diào)試就是指對源程序進行分析,然后確定可能出錯的地方并進行排錯。動態(tài)調(diào)試是指對程序的運行進行跟蹤并觀察其出錯點,然后進行排錯。
靜態(tài)調(diào)試通??梢圆捎萌缦聝煞N方法。
(1)輸出寄存器的內(nèi)容
在測試中出現(xiàn)問題,設(shè)法保留現(xiàn)場信息。把所有的寄存器和主存中有關(guān)部分的內(nèi)容打印出來(通常以八進制或十六進制的形式打?。?,進行分析研究。用這種方法調(diào)試,輸出的是程序的靜止?fàn)顟B(tài)(程序在某一時刻的狀態(tài)),效率非常低,不得已才采用。
(2)為取得關(guān)鍵變量的動態(tài)值,在程序中插入打印語句。這是取得動態(tài)信息的簡單方法,并可檢驗在某事件后某個變量是否按預(yù)期要求發(fā)生了變化。此方法的缺點是可能輸出大量需要分析的信息,必須修改源程序才能插入打印語句,這可能改變關(guān)鍵的時序關(guān)系,引入新的錯誤。
動態(tài)調(diào)試通常利用程序語言提供的調(diào)試功能或?qū)iT的調(diào)試工具來分析程序的動態(tài)行為。一般程序語言和工具提供的調(diào)試功能有檢查主存和寄存器;設(shè)置斷點,即當(dāng)執(zhí)行到特定語句或改變特定變量的值時,程序停止執(zhí)行,以便分析程序此時的狀態(tài)。
80.Ap是指向二維字符數(shù)組第二行One*Dream[的數(shù)組指針,因此長度是l0,打印輸出的也是該字符串。
81.(1)錯誤:if((k%13=0)||(k%17=0))
正確:if((k%13==0)||(k%17==0))
(2)錯誤:缺少大括號
正確:在“k-=;”后加}
【解析】題目中要求能被13或17整除的自然數(shù),判斷整除條件是取余恒等于0,判斷相等的符號應(yīng)該用“==”,符號“=”是賦值符號,因此“=”應(yīng)改為“==”;在C語言中,括號一定是成對出現(xiàn)的,因此,在語句“k——;”后要加上符號“}”。
82.\n#include”stdio.h”
\nintfun(inta)
\n{intI;
\nif(a==2)return1;I=2;
\nwhile((a%I)!=0I<=sqrt((float)a))
\nI++;
\nif(a%I==0)
\n{printf(“%disnotaprime!”,a);
\nreturn0;}
\nprintf(“%disaprime!”,a);
\nreturn1;}
\nmain
\n{intx;
\nprintf(“\\npleaseenteranumber:”);
\nscanf(“%d”,&x);
\nprintf(“%d\\n”,fun(x));}
\n2022年江蘇省淮安市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。
A.多態(tài)性B.繼承C.封裝性D.模塊化
2.對一個關(guān)系投影操作以后,新關(guān)系的元組個數(shù)______原來關(guān)系的元組個數(shù)。
A.小于B.小于或等于C.等于D.大于
3.C語言提供的合法關(guān)鍵字是()
A.switchB.cherC.caseD.default
4.圖的深度優(yōu)先遍歷類似于二叉樹的_______。
A.先序遍歷B.中序遍歷C.后序遍歷D.層次遍歷
5.有以下程序:main(){intk=5,n=0;do{switch(k){case1:case3:n+=l;k--;break;defalut:n=0;k--;case2:case4:n+=2;k--;break:}printf("%d",n);}while(k>0&&n<5);}程序運行后的輸出結(jié)果是()。A.235B.0235C.02356D.2356
6.
7.以下敘述中錯誤的是A.算法正確的程序最終一定會結(jié)束
B.算法正確的程序可以有零個輸出
C.算法正確的程序可以有零個輸入
D.算法正確的程序?qū)τ谙嗤妮斎胍欢ㄓ邢嗤慕Y(jié)果
8.以下程序段中的變量已正確定義:for(i=0;i<4;i++,i++)for(k=1;k<3;k++);printf(“*”);該程序段的輸出結(jié)果是()。
A.*B.****C.**D.********
9.
10.有三個關(guān)系R,S和T如下:
其中關(guān)系T由關(guān)系R和s通過某種操作得到,該操作為()。
A.選擇B.交C.投影D.并
11.若有定義“charc=“hello!”;”,則以下說法正確的是()。
A.c占用7字節(jié)內(nèi)存B.c是一個字符串變量C.定義中有語法錯誤D.c的有效字符個數(shù)是6
12.下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()
A.便于用戶,開發(fā)人員進行理解和交流
B.反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)
C.作為確認(rèn)測試和驗收的依據(jù)
D.便于開發(fā)人員進行需求分析
13.計算機系統(tǒng)的組成是______。
A.主機、外設(shè)B.運算器、控制器C.硬件系統(tǒng)和軟件系統(tǒng)D.CPU、內(nèi)存儲器
14.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.0,1,0B.0,1,1C.0,0,1D.0,0,0
15.函數(shù)調(diào)用:strcat(strcpy(str1,str2),str3)的功能是______。
A.將串str1復(fù)制到串str2中后再連接到串str3之后
B.將串str1連接到串str2之后再復(fù)制到串str3之后
C.將串str2復(fù)制到串str1中后再將串sir3連接到串str1之后
D.將串str2連接到串str1之后再將串str1復(fù)制到串str3中
16.程序段:intx=12;doub1ey=3.141593;printf("%d%8.6f"x,y);的輸出結(jié)果是______。A.123.141593B.123.141593C.12,3.141593D.123,1415930
17.若有下列定義,則對a數(shù)組元素地址的正確引用是()。inta[5],*p=a;
A.p+5B.*a+1C.&a+1D.&a[0]
18.
19.任何一個無向圖的最小生成樹()。
A.只有一棵B.有一棵或多棵C.一定有多棵D.可能不存在
20.若要求定義具有10個int型元素的一維數(shù)組a,則以下定義語句中錯誤的是A.#defineN10inta[N];B.#definen5inta[2*n];C.inta[5+5];
D.intn=10,a[n];
二、2.填空題(20題)21.下面的程序可對指定字符串中的字符串進行從大到小排序,請將程序填完整。(注:程序采用了冒泡排序算法)
#include<stdio.h>
#include<string.h>
main()
{char*str="ABCDabcd",temp;
intn,i;
n=strlen(str);
while(n->1)
for(i=0;i<n;i++)
if(str[i]<str[i+1])
{temp=【】;
str[i]=str[i+1];
【】=temp;
}
printf(【】);
}
22.若有如下定義:
intx=2,y=3,z=4;
則表達式!(x=y)||x+z&&y-z的值是【】。
23.以下程序的功能是對從鍵盤上輸入的兩個字符串進行比較,然后輸出兩個字符串中第一個不相同字符的ASCII碼值之差。請?zhí)羁铡?/p>
#include"stdio.h"
main()
{chara1[20],a2[20];intn=0,t;
scanf("%st",a1);scanf("%s",a2);
while(a1[n]!=a2[n]&&(a1[n]!=【】))
{t=【】;
printf("%d\n",t);n++;}}
24.若x=3,y=2,z=1,表達式z-=x<y?x++:++y的值為______。
25.下面能正確進行字符串賦值操作的是
26.一個類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個方法提高了軟件的【】。
27.設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語句,且fun函數(shù)為void類型;請寫出fun函數(shù)的首部【】(要求形參名為b)。main(){doubles[10][22];intn;……fun(s);……}
28.在Windows環(huán)境下,可以利用單擊、雙擊、拖動這三種鼠標(biāo)操作之一的【】操作實現(xiàn)窗口的移動。
29.多媒體計算機所用的CD-ROM是【】。
30.以下程序的輸出結(jié)果是【】。
#defineMCNA(m)2*m
#defineMCNB(n,m)2*MCRA(n)+m
#definef(x)(x*x)
main()
{inti=2,j=3;
printf("%d\n",MCRB(j,MCRA(i)));
}
31.軟件測試是保證軟件質(zhì)量的重要手段,而軟件測試的主要和重要的測試方法是通過測試數(shù)據(jù)和【】的設(shè)計來實現(xiàn)。
32.表示""整數(shù)x的絕對值大于5""時值為""真""的C語言表達式是【】。
33.以下程序段的運行結(jié)果是()。#include<stdio.h>main(){intx=2,y=1:switch(x){case1:switch(y){case0:printf("x=2,y=1\n");break;case1:printf("y=1\n");break;}case2:printf("x=2\n");}}
34.x、y、x均為int型變量,描述"x、y和z中至少有兩個為正數(shù)"的表達式是______。
35.下面的程序?qū)崿F(xiàn)的是從指針p所指向的地址的n個數(shù)中,找出最大的和最小的數(shù)據(jù),請?zhí)羁铡?/p>
fun(int*p,intn)
{int*q;
intmax,min;
max=min=*p;
for(q=p;【】;q++)
if(*q>max)max=*q;
elseif(*q<min)min=*q;}
36.以下程序的功能是根據(jù)輸入的“y”(“Y”)與“n”(“N”),在屏幕上分別顯示出“ThisisYES.”與“ThisNO.”??瞻滋幮枰钊氲膬?nèi)容是
#include<stdio.h>
voidYesNo(charch)
{switch(ch)
{case'y':
case'Y':printf("\nThisisYES,\n");
case'n':
case'N':printf("\nThisisNO.\n");}}
main()
{charch;
printf("\nEnterachar'y','Y'or'n','N':");
ch=【】;
printf("ch;%c",ch);
YesNo(ch);}
37.下面rotate函數(shù)的功能是:將n行n列的矩陣A轉(zhuǎn)置未AT,例如:
請?zhí)羁?/p>
#defineN4
voidrotate(inta[][])
{inti,j,t;
for(i=0;i<N;i++)
for(j=0;【】;j++)
{t=a[i][j];【】;a[j][i]=t;}
}
38.下列程序的輸出結(jié)果是______。
main()
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)break;
elsei--;}
i+=11;
a+=i;
}
printf("%d\n",A);
}
39.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為______。
40.語句:x++;、++x;、x=x+1;、x=1+x;,執(zhí)行后都使變量x中的值增1,請寫出一條同一功能的賦值語句(不得與列舉的相同)【】。
三、1.選擇題(20題)41.最簡單的交換排序方法是()。A.快速排序B.選擇排序C.堆排序D.冒泡排序
42.有如下程序main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x>10.0)y=1.O/x;elsey=1.0;printf("%f\n",y);}該程序的輸出結(jié)果是
A.0B.0.25C.0.5D.1
43.下列對于軟件測試的描述中正確的是()。
A.軟件測試的目的是證明程序是否正確
B.軟件測試的目的是使程序運行結(jié)果正確
C.軟件測試的目的是盡可能多地發(fā)現(xiàn)程序中的錯誤
D.軟件測試的目的是使程序符合結(jié)構(gòu)化原則
44.當(dāng)k的值不為0時,在下列選項中能夠?qū)的值賦給變量m,n的是
A.m=k=n
B.(m=k)&&(n=k)
C.(m=k)||(n=k)
D.(k=m)&&(n=k)
45.結(jié)構(gòu)化程序由三種基本結(jié)構(gòu)組成,三種基本結(jié)構(gòu)組成的算法A.可以完成任何復(fù)雜的任務(wù)B.只能完成部分復(fù)雜的任務(wù)C.只能完成符合結(jié)構(gòu)化的任務(wù)D.只能完成一些簡單的任務(wù)
46.下面程序的執(zhí)行結(jié)果是______。#defineMAX10nta[MAX],i;main(){printf("\n");sub1();sub3(A);sub2();sub3(A);}sub1(){for(i=0;i<1MAX;i++)a[i]-i+i;}sub2(){inta[MAX],i,max;max=5;for(i=0;i<max;i++)a[i]=i;}sub3(inta[]){inti;for(i=0;i<MAX;i++)printf("%d",a[i]);printf("\n");}
A.02468101214161801234
B.01234024681012141618
C.012345678901234
D.024681012141618024681012141618
47.有以下程序#include<string.h>main(intarge,char*argv[]){inti,len=0;for(i=1;i<arge;i++)len+=strlen(argv[i]);printf(“%d\n”,len);}程序編譯連接后生成的可執(zhí)行文件是exl.exe,若運行時輸入帶參數(shù)的命令行是:exlabcdefg10<回車>則運行的結(jié)果是
A.22B.17C.12D.9
48.有以下程序main(){ihtm=3,n=r,x;x=-m++;X=x+8/++n;printf("%d\n",x);}程序運行后的輸出結(jié)果是
A.3B.5C.-1D.-2
49.局域網(wǎng)的網(wǎng)絡(luò)硬件主要服務(wù)器、工作站、網(wǎng)卡和()
A.傳播介質(zhì)B.網(wǎng)絡(luò)操作系統(tǒng)C.計算機D.網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
50.軟件生命周期中花費時間最多的階段是()
A.詳細(xì)設(shè)計B.軟件編碼C.軟件測試D.軟件維護
51.設(shè)x,y和z都是int型變量,且x=3,y=4,z=5,則下面表達式中,值為0的表達式是
A.x&&y
B.x<=y
C.x||++y&&y-z
D.!(x<y&&!z||1)
52.結(jié)構(gòu)化程序設(shè)計的核心和基礎(chǔ)是()。
A.結(jié)構(gòu)化分析方法B.結(jié)構(gòu)化設(shè)計方法C.結(jié)構(gòu)化設(shè)計理論D.結(jié)構(gòu)化編程方法
53.若要求從鍵盤讀入含有空格字符的字符串,應(yīng)使用函數(shù)
A.getc()B.gets()C.getehar()D.scanf()
54.下列程序的運行結(jié)果為#include<stdio.h>voidabc(char*str){inta,b;for(a=b=0;str[a]!='\0';a++)if(str[a]!='c')str[b++]=str[a];str[b]='\0';}voidmain(){charstr[]="abcdef";abc(str);printf("str[]=%s",str);}
A.str[]=abdefB.str[]=abcdefC.str[]=aD.str[]=ab
55.函數(shù)rewind的作用是
A.使文件位置指針重新返回文件的開始位置
B.將文件位置指針指向文件中所要求的特定位置
C.使文件位置指針指向文件的末尾
D.使文件位置指針自動移至下一個字符位置
56.一個文件的擴展名通常表示()
A.由用戶自定義B.文件的版本C.文件的大小D.文件的類型
57.若有如下程序:#include"stdio.h"voidmain(){FILE*fp;fp=fopen("test","wb")fprintf(fp,"%d%.1f,%c%c",5,238.41,'B','h');fclose(fp);}則程序運行后向文件輸出的結(jié)果是()
A.5238.41BhB.5238.4,BhC.5,238.4,B,hD.5238.41Bh
58.若有以下定義和語句:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則不能表示a數(shù)組元素的表達式是______。
A.*pB.a[10]C.*aD.a[p-a]
59.下面程序的輸出結(jié)果是#include<stdio.h>main(){inti=010,j=10;Printf(“%d,%d”,++i,j--);}
A.11,10B.9,10C.010,9D.10,9
60.有以下函數(shù)定義:voidfun(intn,doublex){......}若以下選項中的變量都已正確定義并賦值,則對函數(shù)fun正確調(diào)用語句是______。
A.fun(inty,doublem);
B.k=fun(10,12.5);
C.fun(x,n);
D.voidfun(n,x);
四、選擇題(20題)61.一間宿舍可住多名學(xué)生,則實體宿舍和學(xué)生之間的聯(lián)系是()。A.一對一B.一對多C.多對一D.多對多
62.
63.
64.#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)
65.有以下程序:
main()
{intX,i;
for(i=1;i<=50;i++)
{x=i;
if(X%2=O)
if(x%3=O)
if(X%7=0)
printf("%d,i)";
}
}
輸出結(jié)果是()。
A.28
B.27
C.42
D.41
66.
67.有下列二叉樹.對此二叉樹前序遍歷的結(jié)果為()。
A.ACFXDBEYZB.ABEFXYZCDC.ABCDEFXY7D.ABDYECFXZ
68.設(shè)有intx=11;則表達式(x++*1/3)的值是()。
A.3B.4C.11D.12
69.
70.下列敘述中正確的是()。
A.軟件交付使用后還需要進行維護
B.軟件一旦交付使用就不需要再進行維護
C.軟件交付使用后其生命周期就結(jié)束
D.軟件維護是指修復(fù)程序中被破壞的指令
71.以下關(guān)于C語言的敘述中,不正確的是
A.C語言中的注釋可以夾在變量名或關(guān)鍵字的中間
B.C語言中使用變量必須是先定義后使用
C.C語言表達式運算符兩側(cè)的運算數(shù)類型必須一致
D.C語言的數(shù)值常量中夾帶空格不影響常量值的正確表示
72.有以下程序:
程序運行后的輸出結(jié)果是()。
A.11B.9C.6D.7
73.有以下結(jié)構(gòu)體說明、變量定義和賦值語句
74.
75.數(shù)據(jù)流圖中帶有箭頭的線段表示的是()。
A.控制流B.事件驅(qū)動C.模塊調(diào)用D.數(shù)據(jù)流
76.標(biāo)準(zhǔn)庫函數(shù)fgets(s,n,file)的功能是()。
A.從文件file中讀取長度為n的字符串存入字符數(shù)s由
B.從文件file中讀取長度不超過n-1個字符的字符放到字符數(shù)組S中
C.從文件file中讀到n個字符串存入字符數(shù)組s中
D.從文件file中讀取長度為n-1個字符的字符串存字符數(shù)組S中
77.
78.下面程序由兩個源程序文件t4.h和t4.c組成,程序編譯運行的結(jié)果是()。
t4.h的源程序為:
A.920B.1611C.911D.1610
79.程序調(diào)試的目的是
A.發(fā)現(xiàn)程序中的錯誤B.改正程序中的錯誤C.驗證程序的正確性D.改善軟件的性能
80.有以下程序
五、程序改錯題(1題)81.下列給定的程序中,函數(shù)proc()的功能是:計算并輸出k以內(nèi)最大的10個能被13或17整除的自然數(shù)之和。k的值由主函數(shù)傳人,若k的值為600,則函數(shù)的值為5671。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.請編一個函數(shù)intfun(inta),它的功能是:判斷a是否是素數(shù),若a是素數(shù),返回1;若不是素數(shù),返回0。A的值由主函數(shù)從鍵盤讀入。
參考答案
1.DD?!窘馕觥棵嫦?qū)ο笤O(shè)計方法與面向過程設(shè)計方法有本質(zhì)的不同,其基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。其特點包括:分類性、多態(tài)性、封裝性、模塊獨立性、繼承和多態(tài)性等。模塊化是結(jié)構(gòu)化程序設(shè)計的特點。
2.B解析:投影操作是從關(guān)系中選擇某些列,投影后消去了某些屬性,就可能出現(xiàn)重復(fù)元組,根據(jù)關(guān)系的性質(zhì),應(yīng)消去這些完全相同的元組。這樣使得新關(guān)系的元組數(shù)小于或等于原來的元組數(shù)。
3.C
4.A
5.B本題考查分支語句用法加個句號因為變量的初始值分別為k一5、n一0,所以程序第1次進入循環(huán)時,執(zhí)行default語句,輸出0,k減1;這時n=0、k=4,程序進行第2次循環(huán),執(zhí)行case4:這個分支,結(jié)果是n=2、k=3,打印出2;這時n=2、k=3,break跳出,程序進行第3次循環(huán),執(zhí)行case3:這個分支,結(jié)果是n=3、k=2,打印出3;這時n一3、k2,b¨ak跳出,程序然后進行第4次循環(huán),執(zhí)行case2:case4:這個分支,結(jié)果是n=5、k=1,打印出5,break跳出,這時因為n=5不滿足n<5的循環(huán)條件,因此循環(huán)結(jié)束。
6.C
7.B(45)B)解析:算法應(yīng)該具有下列五個特性:
①有窮性:一個算法必須在執(zhí)行有窮步之后結(jié)束。
②確定性:算法中的每一步,必須有確切的含義,在他人理解時不會產(chǎn)生二義性。
③動態(tài)性:算法中描述的每一步操作都可以通過已有的基本操作執(zhí)行有限次實現(xiàn)。
④輸入:一個算法應(yīng)該有零個或多個輸入。
⑤輸出:一個算法應(yīng)該有一個或多個輸出。這里所說的輸出是指與輸入有某種特定關(guān)系的量。
8.AC語言中,分號為一條語句的結(jié)束。因此“for(i=0;i<4;i++,i++)for(k=1;k<3;k++);”是完整的語句,“printf(“*”);”是獨立語句,不屬于for循環(huán)。最后執(zhí)行printf語句輸出“*”。故本題答案為A選項。
9.A
10.D\n兩個相同結(jié)構(gòu)關(guān)系的并是由屬于這兩個關(guān)系的元組組成的集合。
\n
11.Cc是字符變量,“hello!”是字符串。字符串不能賦給字符變量,定義中有語法錯誤。本題答案為C選項。
12.D解析:軟件需求規(guī)格說明書SRS,SoftwareRequirementSpecification)是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。它有以下幾個方面的作用,①便于用戶、開發(fā)人員進行理解和交流;②反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù);③作為確認(rèn)測試和驗收的依據(jù)。
13.C
14.Bif條件表達式“a--‖b--&&--c”使用了邏輯或運算符和邏輯與運算符。因為邏輯與運算符優(yōu)先級比邏輯或運算符優(yōu)先級高,所以條件表達式等價于“(a--)‖(b--&&--c)”,自左向右運算,執(zhí)行“a”,因為a初值為1,所以a--的值為1,執(zhí)行完后a的值為0;又因為邏輯或運算符的短路原則,當(dāng)a--的值為1時,條件為真,后面的表達式b--&&--c不執(zhí)行。程序執(zhí)行if語句塊,輸出a、b、c的值為:0,1,1。本題答案為B選項。
15.C解析:題目中所給函數(shù)的功能是;先用函數(shù)strcpy把參數(shù)串str2復(fù)制到參數(shù)串str1中去,然后用函數(shù)strcat把參數(shù)串str3連接到經(jīng)過修改后的參數(shù)串str1后,因此選項C正確。
16.A解析:在printf函數(shù)常用的格式說明中,每個格式說明都必須用“%”開頭,以—個格式字符作為結(jié)束,在此之間可以根據(jù)需要插入“寬度說明”、左對齊符號“-”、前導(dǎo)零符號“0”等。本題中用到了d和f,d代表輸出符號的十進制整型數(shù),f代表以帶小數(shù)點的數(shù)學(xué)形式輸出浮點數(shù)(單精度和雙精度數(shù))。對于float和double類型的實數(shù),可以用“n1.n2”的形式來指定輸出寬度(n1和n2分別代表—個整常數(shù)),其中n1指定輸出數(shù)據(jù)的寬度(包括小數(shù)點),n2指定小數(shù)點后小數(shù)位的位數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年增壓輸送系統(tǒng)項目立項申請報告模式
- 1、軍神(說課稿)2023-2024學(xué)年統(tǒng)編版語文五年級下冊
- 12 《醉翁亭記》說課稿2024-2025學(xué)年九年級上冊語文同步備課(統(tǒng)編版)
- 黑龍江省大興安嶺達標(biāo)名校2025屆中考生物模試卷含解析
- 考慮用戶舒適度的電熱泵集群需求響應(yīng)策略研究
- 敘事設(shè)計方法下的兒童性教育產(chǎn)品設(shè)計
- 2024年烏蘭察布職業(yè)學(xué)院高職單招職業(yè)技能測驗歷年參考題庫(頻考版)含答案解析
- 2024年電商市場研究報告
- 黔東南2024年貴州黔東南州雷山縣招聘公安機關(guān)輔警41人歷年參考題庫(頻考版)含答案解析
- 黃山2024年安徽黃山市第三人民醫(yī)院使用周轉(zhuǎn)池編制招聘急需緊缺專業(yè)人才歷年參考題庫(頻考版)含答案解析
- 通信安全員ABC證報名考試題庫及答案
- 開放系統(tǒng)10861《理工英語(4)》期末機考真題及答案(第103套)
- 思想道德與法治測試三考試附有答案
- 《中華民族大團結(jié)》(初中)-第7課-共同創(chuàng)造科學(xué)成就-教案
- 醫(yī)療耗材銷售工作計劃
- 《短視頻拍攝與制作》課件-3短視頻拍攝的三大技巧
- 《城鎮(zhèn)燃?xì)庠O(shè)施運行、維護和搶修安全技術(shù)規(guī)程?CJJ+51-2016》詳細(xì)解讀
- 太空艙民宿可行性研究報告
- 新《植物生產(chǎn)與環(huán)境》考試題庫大全-中(多選題匯總)
- 手部安全防護培訓(xùn)參考課件
- 飛盤比賽團建策劃方案
評論
0/150
提交評論