版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021-2022年甘肅省天水市全國計算機(jī)等級考試C語言程序設(shè)計真題(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.
2.
3.就平均查找速度而言,下列查找速度從慢至快的關(guān)系是()
A.順序折半哈希分塊B.順序分塊折半哈希C.分塊折半哈希順序D.順序哈希分塊折半
4.有以下程序
#include<stdio.h>
main()
{intx=1,y=2,z=3;
if(x>y)
if(y<z)printf("%d",++z);
elseprintf("%d",++y);
printf("%d\n",x++);
}
程序的運(yùn)行結(jié)果是
A.A.331
B.41
C.2
D.1
5.下列可用于C語言用戶標(biāo)識符的一組是
A.void,define,WORD
B.a3_b3,_123,Car
C.For,-abc,IFCase
D.2a,DO,sizeof
6.數(shù)據(jù)庫系統(tǒng)的核心是()。
A.數(shù)據(jù)模型B.數(shù)據(jù)庫管理系統(tǒng)C.數(shù)據(jù)庫D.數(shù)據(jù)庫管理員
7.設(shè)已包含頭文件<string.h>,下列程序段的運(yùn)行結(jié)果是()。chars1[]={"ACDEF"};chars2[]="ABC";strcpy(s1,s2);printf("%d",strlen(s1));
A.3B.4C.6D.5
8.有下列程序:#include<stdio.h>voidfun(char*a,char*B){while(*a=='*')a++;while(*b=*A){b++;a++;}}main(){char*s="*****a*b****",t[80];fun(s,t);puts(t);程序的運(yùn)行結(jié)果是()。A.*****a*bB.a*bC.a*b****D.ab
9.下列關(guān)系模型中,能使經(jīng)運(yùn)算后得到的新關(guān)系中屬性個數(shù)多于原來關(guān)系中屬性個數(shù)的是
A.選擇B.連接C.投影D.并
10.下列語句中存在語法錯誤的是()。
A.charss[6][20];ss[1]=“right?”;
B.charss[][20]={“right?”};
C.char*ss[6];ss[1]=“right?”;
D.char*ss={“right?”};
11.在16位C編譯系統(tǒng)上,若定義longa;,則能給a賦值40000的正確語句是()
A.a=20000+20000;B.a=4000*10;C.a=30000+10000;D.a=4000L*10L;
12.以下關(guān)于結(jié)構(gòu)化程序設(shè)計的敘述中正確的是()。
A.結(jié)構(gòu)化程序使用goto語句會很便捷
B.在c語言中,程序的模塊化是利用函數(shù)實現(xiàn)的
C.一個結(jié)構(gòu)化程序必須同時由順序、分支、循環(huán)三種結(jié)構(gòu)組成
D.由三種基本結(jié)構(gòu)構(gòu)成的程序只能解決小規(guī)模的問題
13.下列關(guān)于棧的描述中錯誤的是()。A.棧是先進(jìn)后出的線性表B.棧只能順序存儲C.棧具有記憶作用D.對棧的插入與刪除操作中,不需要改變棧底指針
14.設(shè)變量已正確定義,則以下能正確計算f=n!的程序是()。A.f=0:for(i=1;i<=n;i++)f*=i:
B.F=1:for(i=1;i<2n;i++)f*=i:
C.f=1:for(i=n;i>1;i++)f*=i:
D.f=1;for(i=n;i>=2;i--)f*=i:
15.下面關(guān)于圖的存儲的敘述中,哪一個是正確的。________
A.用相鄰矩陣法存儲圖,占用的存儲空間數(shù)只與圖中結(jié)點個數(shù)有關(guān),而與邊數(shù)無關(guān)
B.用相鄰矩陣法存儲圖,占用的存儲空間數(shù)只與圖中邊數(shù)有關(guān),而與結(jié)點個數(shù)無關(guān)
C.用鄰接表法存儲圖,占用的存儲空間數(shù)只與圖中結(jié)點個數(shù)有關(guān),而與邊數(shù)無關(guān)
D.用鄰接表法存儲圖,占用的存儲空間數(shù)只與圖中邊數(shù)有關(guān),而與結(jié)點個數(shù)無關(guān)
16.有以下程序:#include<stdio.h>intf(intx):main{intn=1,m;m=f(f(f(n)));printf("%d\n",m);}intf(intx){returnx*2;)程序運(yùn)行后的輸出結(jié)果是()。A.1B.2C.4D.8
17.下列程序的輸出結(jié)果是()。main(){inta=1,b=2;printf("%d,%d\n",--a,++b);}
A.1,2B.1,3C.0,2D.0,3
18.設(shè)有以下說明語句
structex
{intx;floaty;charz;}example;
則下面的敘述中不正確的是
A.struct結(jié)構(gòu)體類型的關(guān)鍵字
B.example是結(jié)構(gòu)體類型名
C.x,y,z都是結(jié)構(gòu)體成員名
D.structex是結(jié)構(gòu)體類型名
19.下列對隊列的敘述正確的是A.隊列屬于非線性表B.隊列按“先進(jìn)后出”原則組織數(shù)據(jù)C.隊列在隊尾刪除數(shù)據(jù)D.隊列按“先進(jìn)先出”原則組織數(shù)據(jù)
20.有以下程序:#include<stdio.h>voidfun(int*a,int*b){for(;(*a<*B)||(getchar()!=‘@’);){(*a)++;(*b)--;}}main(){inti=0,j=5;fun(&i,&j);printf(“%d,%d\n”,i,j);}程序運(yùn)行時在第1列開始輸入ab@并按<Enter>鍵,則運(yùn)行結(jié)果是()。
A.7,1B.3,2C.0,5D.5,0
二、2.填空題(20題)21.以下程序的輸出結(jié)果是【】。
intfun(int*x,intn)
{if(n==0)returnx[0];
elsereturnx[0]+fun(x+1,n-1);
}
main()
{inta[]={1,2,3,4,5,6,7};
printf("%d\n",fun(a,3));}
22.以下程序的輸出結(jié)果是______。
main()
{inta=0;
a+-(a=8);
printf("%d\n",a);
}
23.語句"int(*ptr)();"的含義是______是指向函數(shù)的指針,該函數(shù)返回一個int型數(shù)據(jù)。
24.實體—聯(lián)系模型是一種常用的高級概念數(shù)據(jù)模型,而【】是實體—模型中的核心。
25.下列程序的輸出結(jié)果是______。
main()
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)break;
elsei--;}
i+=11;
a+=i;
}
printf("%d\n",A);
}
26.下面程序輸出的結(jié)果是()。intm=17;intfun(intx,inty){intm=3;return(x*y-m);}main(){inta=5,b=7;printf("%d\n”,fun(a,B)/m);}
27.數(shù)據(jù)的物理結(jié)構(gòu)在計算機(jī)存儲空間中的存放形式稱為數(shù)據(jù)的【】。
28.下面的函數(shù)fun的功能是將形參x的值轉(zhuǎn)換成二進(jìn)制數(shù),所得二進(jìn)制數(shù)的每一位放在一維數(shù)組中返回,二進(jìn)制的最低位放在下標(biāo)為0的元素中,其他依次類推,請?zhí)羁铡?/p>
fun(intx,intb[])
{intk=0,r;
do{
r=x%【】;
b[k++]=r;
x/=【】;
}while(x);}
29.若有下列定義和語句:
char*s1="12345",*s2="1234";
printf("%d\n",strlen(strcpy(s1,s2)));
則輸出結(jié)果為______。
30.數(shù)據(jù)庫保護(hù)分為安全性、控制性、______、并發(fā)性控制和數(shù)據(jù)恢復(fù)。
31.Fibonacci數(shù)列中的頭兩個數(shù)是1和1,從第3個數(shù)開始,每個數(shù)等于前兩個數(shù)之和。下述程序計算此數(shù)列的前20個數(shù),且每行輸出5個數(shù),請?zhí)羁铡?/p>
#include<stdio.h>
main()
{intf,f1=1,f2=1;
inti;
printf("%6d%6d",f1,f2);
for(i=3;i<=20;i++)
{f=【】;
printf("%6d",f);
if(【】)
printf("\n");
f1=f2;
【】;
}
}
32.下面程序執(zhí)行后輸出的結(jié)果是【】。
intm=13;
intfun(intx,inty)
{intm=3;
return(x*y-m);
}
main()
{inta=7,b=5;
printf("%d\n",fun(a,b)/m);
}
33.以下isprime函數(shù)的功能是判斷形參a是否為素數(shù),如果是素數(shù),函數(shù)返回1,否則返回0。
intisprime(inta)
inti;
for(i=2;i<=a/2;i++)
if(a%i==0)【】;
【】;
}
34.下面程序的輸出結(jié)果是【】。
#defineMAX3
inta[MAX];
main()
{fun1();fun2(a);printf("\n");}
fun1()
{intk,t=0;
for(k=0;k<MAX;k++,t++)a[k]=t+t;
}
fun2(intb[])
{intk;
for(k=0;k<MAX;k++)printf("%d",*(b+k));
}
35.測試的目的是暴露錯誤,評價程序的可靠性;而______得目的是發(fā)現(xiàn)錯誤的位置并改正錯誤。
36.下面程序把從終端讀入的10個整數(shù)以二進(jìn)制方式寫入一個名為bi.dat的新文件中。
#include<stdio.h>
FILE*fp;
main()
{inti,j;
if(fp=fopen(【】)==NULL)exit(0);
for(i=0;i<10;i++)
{scanf("%d",&j);
fwrite(&j,sizeof(int),1,【】;
}
fclose(fp);
}
37.有以下程序:
fun(inta,intb)
{if(a>b)return(a);
elsereturn(b);
}
main()
{intx=3,y=8,z=6,r;
r=fun(fun(x,y),2*z);
printf("%\d\n",r);
}
程序運(yùn)行后的輸出的結(jié)果是【】。
38.若x、y和z均是int型變量,則執(zhí)行下面表達(dá)式后的x值為【】。
x=(y=4)+(z=3)
39.診斷和改正程序中錯誤的工作通常稱為【】。
40.在結(jié)構(gòu)化分析方法中,用于描述系統(tǒng)中所用到的全部數(shù)據(jù)和文件的文檔稱為【】。
三、1.選擇題(20題)41.設(shè)有以下說明語句typedefstruct{intn;charch[8];}PER;則下面敘述中正確的是
A.PER是結(jié)構(gòu)體變量名
B.PER是結(jié)構(gòu)體類型名
C.typedefstruct是結(jié)構(gòu)體類型
D.struct是結(jié)構(gòu)體類型名
42.設(shè)變量a是int型,f是float型,i是double型,則表達(dá)式10+'a'+i*f的值的數(shù)據(jù)類型為()。
A.intB.floatC.doubleD.不確定
43.以下不正確的定義語句是()。
A.doublex[5]={2.0,4.0,6.0,8.0,10.0};
B.inty[5]={O,1,3,5,7,9};
C.charc1[]={'1','2','3','4','5'};
D.charc2[]={'\x10','\xa','\x8'};
44.以下程序輸出的結(jié)果為______。main(){char*alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"};char**p;inti;p=alpha;for(i=0;i<4;i++)printf("%s",p[i]);}
A.ABCDEFGHIJKLB.ABCDC.ABCDEFGHIJKLMNOPD.AEIM
45.設(shè)x、y、t均為血型變量,則執(zhí)行語句x=y=3;t=++x||++y;后,y的值為______。
A.不定值B.4C.3D.1
46.在面向?qū)ο蠓椒ㄖ?,實現(xiàn)信息隱蔽是依靠()。
A.對象的繼承B.對象的多態(tài)C.對象的封裝D.對象的分類
47.下列描述中正確的是()。
A.程序就是軟件
B.軟件開發(fā)不受計算機(jī)系統(tǒng)的限制
C.軟件既是邏輯實體,又是物理實體
D.軟件是程序、數(shù)據(jù)與相關(guān)文檔的集合
48.以下不正確的定義語句是
A.doublex[5]={2.0,4.0,6.0,8.0,10.0};
B.inty[5]={0,1,3,5,7,9};
C.charc1[]={'1','2','3','4','5'};
D.charc2[]={'\x10','\xa','\x8'};
49.若有以下程序段:intm=0xabc,n=0xabc;m-=n;printf("%X\n",m);執(zhí)行后的輸出結(jié)果是______。
A.0X0B.0x0C.0D.0XABC
50.以下程序的輸出結(jié)果是()#include<stdio.h>#include<string.h>main(){charstr[12]={'s','t','r','i','n','g'};printf("%d\n",strlen(str));}
A.6B.7C.11D.12
51.檢查軟件產(chǎn)品是否符合需求定義的過程稱為()。
A.確認(rèn)測試B.集成測試C.驗證測試D.驗收測試
52.以下程序輸出正確的是______。amovep(int*p,int(*A)[3],intn){inti,j;for(i=0;i<n;i++)for(j=0;j<n;j++){*p=a[i][j];p++}}main(){int*p,a[3][3]={{1,3,5},{2,4,6}};p=(int*)malloc(100);amovep(p,a,3);printf("%d%d\n",p[2],p[5]);free(p);}
A.56B.25C.34D.程序錯誤
53.有以下程序main(){intx,y,z;x=y=1;z=X++,y++,++y;printf("%d,%d,%d\n",x,y,z);}程序運(yùn)行后的輸出結(jié)果是
A.2,3,3B.2,3,2C.2,3,1D.2,2,1
54.相對于數(shù)據(jù)庫系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)關(guān)聯(lián)差、數(shù)據(jù)不一致性和()。
A.可重用性差B.安全性差C.非持久性D.冗余性
55.下列關(guān)于棧的描述正確的是()。
A.在棧中只能插入元素而不能刪除元素
B.在棧中只能刪除元素而不能插入元素
C.棧是特殊的線性表,只能在一端插入或刪除元素
D.棧是特殊的線性表,只能在一端插入元素,而在另一端刪除元素
56.若整型變量a、b、c、d中的值依次為1、4、3、2。則條件表達(dá)式a<b?a:c<d?c:d的值是______。A.1B.2C.3D.4
57.局域網(wǎng)的網(wǎng)絡(luò)硬件主要服務(wù)器、工作站、網(wǎng)卡和()
A.傳播介質(zhì)B.網(wǎng)絡(luò)操作系統(tǒng)C.計算機(jī)D.網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
58.衡量顯示器的主要技術(shù)指標(biāo)是()
A.波特率B.分辨率C.主頻D.顯示速度
59.在面向?qū)ο笾校粋€對象請求另一個對象為其服務(wù)的方式是通過發(fā)送
A.調(diào)用語句B.命令C.口令D.消息
60.
(3)
A.p->nextB.pC.sD.s->next
四、選擇題(20題)61.在黑盒測試方法中,設(shè)計測試用例的主要根據(jù)是()。
A.程序外部功能B.程序內(nèi)部邏輯C.程序數(shù)據(jù)結(jié)構(gòu)D.程序流程圖
62.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.1,6,2,1,B.8,7,3,1,C.4,7,5,2,D.1,6,5,7,
63.下列關(guān)于線性鏈表的敘述中,正確的是()。
A.各數(shù)據(jù)結(jié)點的存儲空間可以不連續(xù),但它們的存儲順序與邏輯順序必須一致
B.各數(shù)據(jù)結(jié)點的存儲順序與邏輯順序可以不一致,但它們的存儲空間必須連續(xù)
C.進(jìn)行插入與刪除時,不需要移動表中的元素
D.各數(shù)據(jù)結(jié)點的存儲順序與邏輯順序可以不一致,它們的存儲空間也可以不一致
64.以下程序的輸出結(jié)果是
#include<stdio.h>
main()
{
inta,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b);
}
A.6,1B.6,0
C.2,1D.2,0
65.以下能正確定義字符串的語句是()。
A.charstr=”\x43”;
B.charstr[]=”、0”;
C.charstr=”;
D.charstr[]={’\064’};
66.
67.
68.
69.數(shù)據(jù)庫系統(tǒng)的核心是()。
A.數(shù)據(jù)模型B.數(shù)據(jù)庫管理系統(tǒng)C.數(shù)據(jù)庫D.數(shù)據(jù)庫管理員
70.
71.
72.以下關(guān)于結(jié)構(gòu)化程序設(shè)計的敘述中正確的是()。
A.一個結(jié)構(gòu)化程序必須同時由順序、分支、循環(huán)三種結(jié)構(gòu)組成
B.結(jié)構(gòu)化程序使用goto語句會很便捷
C.在C語言中,程序的模塊化是利用函數(shù)實現(xiàn)的
D.由三種基本結(jié)構(gòu)構(gòu)成的程序只能解決小規(guī)模的問題
73.有以下程序
74.
75.有以下程序:
程序執(zhí)行后的輸出結(jié)果是()。
A.PrphsbnB.ProhsbnC.ProgsbnD.Program
76.以下說法錯誤的是A.A.高級語言都是用接近人們習(xí)慣的自然語言和數(shù)學(xué)語言作為語言的表達(dá)形式
B.計算機(jī)只能處理由0和1的代碼構(gòu)成的二進(jìn)制指令或數(shù)據(jù)
C.C語言源程序經(jīng)過C語言編譯程序編譯之后生成一個后綴為.EXE的二進(jìn)制文件
D.每一種高級語言都有它對應(yīng)的編譯程序
77.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.4,5,6,4,5,6,
B.1,2,3,4,5,6,
C.4,5,6,1,2,3,
D.6,5,4,3,2,1,
78.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.22B.76C.72D.62
79.
80.下面的程序段運(yùn)行后,輸出結(jié)果是()。
A.9B.不確定值C.0D.18
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:先從鍵盤上輸入一個3行3列的矩陣的各個元素的值,然后輸出主對角線元素之和。請修改函數(shù)proc()中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.某學(xué)生的記錄由學(xué)號、8門課程成績和平均分組成,學(xué)號和8門課程的成績已在主函數(shù)中給出,請編寫函數(shù),其功能是:求出該學(xué)生的平均分,并放入記錄的ave成員中。例如,學(xué)生的成績是:85.5,76,69.5,85,91,72,64.5,87.5,則他的平均分應(yīng)為78.875。注意:部分源程序給出如下。請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun部位中填入你編寫的若干語句。試題程序:#include<stdio.h>#defineN8typedefstruct{charnum[10];doubles[N];doubleave;}STREC;voldfun(STREC*a){}voidmainSTRECs={"GA005",85.5,76,69.5,85,91,72,64.5,87.5};inti;fun(&s);printf("The%ssstudentdata:\n",s.num);for(i=0;i<N;i++)printf("%4.1fkn",s.s[i]);printf("\nknave=%7.3fkn",s.aVe);printf("\n");}
參考答案
1.B
2.D
3.B
4.D本題考查if-else語句的使用。if-else語句可以在條件為“真”或為“假”時執(zhí)行指定的動作,由if引導(dǎo)條件為“真”時執(zhí)行的操作;由else引導(dǎo)條件為“假”時執(zhí)行的操作。else語句要與上面最近的if語句進(jìn)行匹配,如果要嵌套調(diào)用if-else語句,需要將嵌套部分用{}括起來,避免程序報錯。題目中給出了一個if語句和一個if-else語句,if-else語句為第一個if語句的子語句。首先執(zhí)行外層if語句,執(zhí)行條件為x>y,由于x=1,y=2,故該條件為假,不執(zhí)行if的子語句,直接執(zhí)行語句printf("%d\\n",x++);,該語句先輸出x的值,然后進(jìn)行x++操作。x的初始值為1,輸出結(jié)果為1。
5.B解析:C語言規(guī)定標(biāo)識符只能由字母、數(shù)字和下畫線3種字符組成,且第一個字符必須為字母或下畫線,排除選項C)和D);C語言中還規(guī)定標(biāo)識符不能為C語言的關(guān)鍵字,而選項A)中void為關(guān)鍵字,故排除選項A)。
6.B解析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心,是負(fù)責(zé)數(shù)據(jù)庫的建立、使用和維護(hù)的軟件。數(shù)據(jù)庫管理系統(tǒng)建立在操作系統(tǒng)之上,實施對數(shù)據(jù)庫的統(tǒng)一管理和控制。用戶使用的各種數(shù)據(jù)庫命令以及應(yīng)用程序的執(zhí)行,最終都必須通過數(shù)據(jù)庫管理系統(tǒng)。另外,數(shù)據(jù)庫管理系統(tǒng)還承擔(dān)著數(shù)據(jù)庫的安全保護(hù)工作,按照數(shù)據(jù)庫管理員所規(guī)定的要求,保證數(shù)據(jù)庫的完整性和安全性。
7.A解析:頭文件<string.h>是字符串處理函數(shù)對應(yīng)的頭文件,要想調(diào)用C語言的庫函數(shù)時,都要在程序中嵌入該函數(shù)對應(yīng)的頭文件,否則無法使用庫函數(shù)。
strcpy(s1,s2)把s2中的字符串復(fù)制到s1中,所以結(jié)果就為s2的長度。
8.C解析:主函數(shù)main()定義了指向字符串的指針和一個字符數(shù)組,接著調(diào)用fun(s,t)函數(shù),進(jìn)行實參向形參傳遞,函數(shù)fun()第一個while語句判斷*a中的值為“*”時繼續(xù)掃描,當(dāng)遇到不是“*”時結(jié)束,接著第二個while循環(huán)語句,將*a中從“a”開始的后續(xù)所有字符都賦予*b,也就是t[80]中的內(nèi)容為“a*b****”,所以此題的運(yùn)行結(jié)果為選項C)。
9.B解析:本題主要考查關(guān)系模型中幾種運(yùn)算的特征。經(jīng)過選擇或投影運(yùn)算得到的新關(guān)系的屬性個數(shù)最多不會超過原關(guān)系中的屬性個數(shù)。經(jīng)過連接運(yùn)算得到的新關(guān)系最多不少于原關(guān)系中屬性的個數(shù)。故選項B正確。
10.A數(shù)組定義后,不可以對數(shù)組整體賦值。ss是二維數(shù)組,因ss[1]是一維字符數(shù)組,相當(dāng)于一維數(shù)組的數(shù)組名,是常量,不能重新賦值,A選項錯誤。B選項和D選項是定義時對數(shù)組初始化。在C選項中,將字符串在內(nèi)存中的首地址賦給指針數(shù)組的一個元素。故本題答案為A選項。
11.D
12.B濫用90t0語句將使程序的流程毫無規(guī)律,可讀性差,對于初學(xué)者來說盡量不要使用,所以A錯誤?!獋€結(jié)構(gòu)化程序可以包含順序、分支、循環(huán)結(jié)構(gòu)中的一種或多種,所以C錯誤。由三種基本結(jié)構(gòu)構(gòu)成的程序可以解決任何復(fù)雜的問題,所以D錯誤。
13.B棧是限定只能在表的一端進(jìn)行插入和刪除操作的線性表,入棧和出棧都是在棧頂進(jìn)行,它們的操作特點是先進(jìn)后出,因此具有記憶作用。??梢圆捎庙樞虼鎯?,也可以采用鏈?zhǔn)酱鎯Α?/p>
14.D由i"11的數(shù)字定義可知n!=n*(n-1)*(n-2)*…*1。在選項A中,由于f的初值為0,在for循環(huán)語句中,f依次乘以1,2,3,…,n,最后計算得到f=n!一0,所以選項A不正確。在選項B中,f的初值為1,在for循環(huán)語句中,f依次乘以1,2,3,…,(n-1),最后計算得到f=(n-1)!,所以選項B不正確。在選項C中,f的初值為1,在for循環(huán)語句中,f依次乘以n,n+1,n+2,……,所以選項c不正確。在選項D中,f的初值為l,在for循環(huán)語句中,f依次乘以n,n-1,n-2,…,2,最后計算得到f=n!,所以選項D正確。
15.A
16.D本題考查函數(shù)返回值作參數(shù),最初n=1,f(n)=f(1)=2,將f(n)的結(jié)果代入第二個f(n)中,即f(f(n))=f(2)=4,所以f(f(f(f(n))))=f(4)=8。
17.D解析:本題主要考查自加(++)、自減(--)運(yùn)算符的使用?!?+i,--i”在使用i之前,先使i的值加1或者減1,然后再使用i此時的值參與運(yùn)算;“i++,i--”是在使用i參與表達(dá)式運(yùn)算之后,再使i的值加1或者減1。本題中--a和++b是先執(zhí)行a減1和b加1操作,再輸出表達(dá)式的值。
18.B解析:本題中,structex是結(jié)構(gòu)體類型名,ex-ample是結(jié)構(gòu)體變量名。
19.D解析:本題考查數(shù)據(jù)結(jié)構(gòu)中隊列的基本知識。隊列是一種限定性的線性表,它只允許在表的一端插入元素,而在另一端刪除元素,所以隊列具有先進(jìn)先出的特性。在隊列中,允許插入元素的一端叫做隊尾,允許刪除的一端則稱為隊頭。這與日常生活中的排隊是一致的,最早進(jìn)入隊列的人最早離開,新來的人總是加入到隊尾。因此,本題中只有選項D的說法是正確的。
20.Dfun函數(shù)接收兩個整型指針變量a、b。for循環(huán)判斷a、b指向的值大小和getchar讀入的字符是否為“@”來決定循環(huán)是否執(zhí)行。循環(huán)體內(nèi)對a、b指向的值各自自增1、自減1。main函數(shù)定義并初始化實參i的值為0,實參j的值為5,調(diào)用函數(shù)fun,傳入i、j的地址。所以形參a指向i,形參b指向j,*a的值為0,*b的值為5,*a<*b為真,執(zhí)行循環(huán)體;*a的值為1,*b的值為4,*a<*b為真,執(zhí)行循環(huán)體;*a的值為2,*b的值為3,*a<*b為真,執(zhí)行循環(huán)體;*a的值為3,*b的值為2,*a<*b為假,getchar讀入字符“a”,執(zhí)行循環(huán)體;*a的值為4,*b的值為1,*a<*b為假,getchar讀入字符“b”,執(zhí)行循環(huán)體;*a的值為5,*b的值為0,*a<*b為假,getchar讀入字符“@”,fun函數(shù)執(zhí)行完畢,main函數(shù)輸出5,0。故本題答案為D選項。
21.1010解析:題目中的fun()函數(shù)直接調(diào)用了自身,所以它是遞歸函數(shù)。函數(shù)中只有一條if語句,意思是:若n為0,則返回x所指內(nèi)容(x[0]等價于*x),否則返回x所指內(nèi)容加上fun(x+1,n-1)。即,當(dāng)n>0時,fun(x,n)=x[0]+fun(x+1,n-1)=x[0]+x[1]+fun(x+2,n-2)=…=x[0]+x[1]+…+x[n];當(dāng)n=0時,fun(x,n)=x[0];當(dāng)n<0時,函數(shù)將無限循環(huán)遞歸調(diào)用下去,因為n-1下去永遠(yuǎn)也不會等于0。所以本題中fun(a,3)=a[0]+a[1]+a[2]+a[3]=12+3+4=10。故應(yīng)該填10。
22.1616解析:在程序中首先將8賦值給變量a,然后在進(jìn)行復(fù)合賦值運(yùn)算。即a=a+a=8+8=16,所以該空格處應(yīng)該填16。
23.ptrptr解析:本題考查函數(shù)指針的概念。函數(shù)指針的定義格式是:類型標(biāo)識符(*旨針變量名)()。注:“類型標(biāo)識符”為函數(shù)返回值的類型。
24.實體-聯(lián)系圖(E-R圖)實體-聯(lián)系圖(E-R圖)解析:實體-聯(lián)系圖(E-R圖)是實體聯(lián)系模型中的核心。由于E-R圖描述的是數(shù)據(jù)流圖中數(shù)據(jù)存儲及其之間的關(guān)系,因此它是數(shù)據(jù)庫概念設(shè)計的最常用的工具。
25.3232解析:while(表達(dá)式)的功能是:首先計算表達(dá)式的值,若為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢,再計算表達(dá)式的值,若仍為真,則重復(fù)執(zhí)行循環(huán)體語句,直到表達(dá)式的值為假時,結(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é)束。
26.11解析:本題考查局部變量和全局變量的區(qū)別:局部變量是指作甩域在函數(shù)級和塊級的變量,全局變量是指作用域在程序級和文件級的變量。
27.內(nèi)模式或物理模式或存儲模式內(nèi)模式或物理模式或存儲模式解析:一個數(shù)據(jù)庫只有一個內(nèi)模式,它是數(shù)據(jù)物理結(jié)構(gòu)和存儲方式的描述,是數(shù)據(jù)庫內(nèi)部的表示方法。例如,記錄的存儲方式是順序存儲、索引按照什么方式組織;數(shù)據(jù)是否壓縮存儲,是否加密等。
28.222\r\n2解析:深刻理解+進(jìn)制轉(zhuǎn)化為二進(jìn)制的方法,即取余法;數(shù)組名作為實參,在函數(shù)內(nèi)部可以直接修改調(diào)用函數(shù)中定義的數(shù)組的值。注意:掌握兩個數(shù)據(jù)進(jìn)行交換的算法原理。
29.44解析:strcpy(s1,s2)函數(shù)的作用是將字符串s2中的內(nèi)容拷貝到字符串s1中的內(nèi)容覆蓋。strlen()函數(shù)是求字符串的長度。本題實際上是要求s2字符串的長度,即是4。
30.
31.f1+f2i%5==0f2=ff1+f2\r\ni%5==0\r\nf2=f解析:f用來保存前兩個數(shù)之和,并作為第三個數(shù),計算后把第二個數(shù)(f2)賦給f1,第三個數(shù)(f)賦給f2,再執(zhí)行for循環(huán)。
32.22解析:本題變量m既是外部變量(值是13),又是fun函數(shù)的局部變量(值為3)。函數(shù)fun(x*y-m)的值為7*5-3=32,在main函數(shù)中,fun(a,b)/m中的m應(yīng)取外部變量的值13,因此輸出2。
33.return0或return(0)return1或return(1)return0或return(0)\r\nreturn1或return(1)解析:素數(shù)是指只能被1和其本身整除,不能被其他任何整數(shù)整除的數(shù)。根據(jù)if條件語句,若形參a對i取余等于0,則形參a可以被其他數(shù)整除,所以第一處填return0;若形參a對i取余不等于0,則形參s不可以被其他數(shù)整除,所以第二處填return1。
34.024
35.軟件測試的目標(biāo)是在精心控制的環(huán)境下執(zhí)行程序,以發(fā)現(xiàn)程序中的錯誤,給出程序可靠性的鑒定;調(diào)試也稱排錯,它是一個與測試有聯(lián)系又有區(qū)別的概念。具體來說,測試的目的是暴露錯誤,評價程序的可靠性,而調(diào)試的目的是發(fā)現(xiàn)錯誤的位置,并改正錯誤。\r\n\r\n
36."bi.dat"fp'bi.dat'\r\nfp解析:打開文件函數(shù)fopen的參數(shù)是文件名,因此有fopen('bi.dat');而寫文件的參數(shù)是文件指針,因此有fwrite(&j,sizeof(int),1,fp);
37.1212解析:函數(shù)fun的功能是求兩個數(shù)當(dāng)中的最大值。語句r=fun(fun(x,y),2*z)的執(zhí)行過程為:首先計算fun(x,y),因x=3、y=8,所以結(jié)果為8;然后計算fun(8,2,*z),即計算fun(8,12),所以r=12。
38.77解析:x=(y=4)+(z=3)等價于y=4,z=3,x=y+z=4+3=7。
39.程序調(diào)試程序調(diào)試解析:程序調(diào)試的任務(wù)是診斷和改正程序中的錯誤。程序調(diào)試與軟件測試不同,軟件測試是盡可能多地發(fā)現(xiàn)軟件中的錯誤。先要發(fā)現(xiàn)軟件的錯誤,然后借助于調(diào)試工具找出軟件錯誤的具體位置。軟件測試貫穿整個軟件生命期,而調(diào)試主要在開發(fā)階段。
40.數(shù)據(jù)字典數(shù)據(jù)字典解析:在結(jié)構(gòu)化分析方法中,用于描述系統(tǒng)中所用到的全部數(shù)據(jù)和文件的文檔稱為數(shù)據(jù)字典。
41.B解析:本題中,typedef聲明新的類型名PER來代替已有的類型名,PER代表上面指定的一個結(jié)構(gòu)體類型,此時,也可以用PER來定義變量。
42.C解析:int型、float型、double型的數(shù)據(jù)可以混合,要先轉(zhuǎn)換成同一類型再運(yùn)算。10+‘a(chǎn)’運(yùn)算后值的類型為int型,i*f運(yùn)算后值的類型為double型,最后表達(dá)式值的類型為double型。
43.B解析:選項B中初值列表中的初值個數(shù)超過了數(shù)組包含的元素的個數(shù)。
44.C解析:alpha[0]指向“ABCD”的首地址;alpha[1]指向“EFGH”的首地址;alpha[2]指向“IJKL”的首地址,依此類推。當(dāng)執(zhí)行p=alpha后,p指向指針數(shù)組alpha的首地址。for循環(huán)中輸出了4個字符串。
45.C解析:C語言中在做邏輯或運(yùn)算時,自左向右判斷各個參加或運(yùn)算的表達(dá)式,一旦運(yùn)算到某式的值為非零時,表明整個表達(dá)式一定為真,余下的語句則不再進(jìn)行運(yùn)算。本題中,++x的值為真,則++y并沒有進(jìn)行運(yùn)算,所以y值不變。
46.C解析:通常認(rèn)為,面向?qū)ο蠓椒ň哂蟹庋b性、繼承性、多態(tài)性幾大特點。就是這幾大特點,為軟件開發(fā)提供了一種新的方法學(xué)。
封裝性:所謂封裝就是將相關(guān)的信息、操作與處理融合在一個內(nèi)含的部件中(對象中)。簡單地說,封裝就是隱藏信息。這是面向?qū)ο蠓椒ǖ闹行?,也是面向?qū)ο蟪绦蛟O(shè)計的基礎(chǔ)。
繼承性:子類具有派生它的類的全部屬性(數(shù)據(jù))和方法,而根據(jù)某一類建立的對象也都具有該類的全部,這就是繼承性。繼承性自動在類與子類間共享功能與數(shù)據(jù),當(dāng)某個類作了某項修改,其子類會自動改變,子類會繼承其父類所有特性與行為模式。繼承有利于提高軟件開發(fā)效率,容易達(dá)到一致性。
多態(tài)性:多態(tài)性就是多種形式。不同的對象在接收到相同的消息時,采用不同的動作。例如,一個應(yīng)用程序包括許多對象,這些對象也許具有同一類型的工作,但是卻以不同的做法來實現(xiàn)。不必為每個對象的過程取一過程名,造成復(fù)雜化,可以使過程名復(fù)用。同一類型的工作有相同的過程名,這種技術(shù)稱為多態(tài)性。
經(jīng)過上述分析可知,在面向?qū)ο蠓椒ㄖ?,實現(xiàn)信息隱蔽是依靠對象的封裝。正確答案是選項C。
47.D\r\n軟件是與計算機(jī)操作相關(guān)的計算機(jī)程序、規(guī)程、規(guī)則,以及可能有的文件、文檔及數(shù)據(jù);軟件開發(fā)要受到計算機(jī)系統(tǒng)的限制;軟件是一個邏輯實體,不是物理實體,軟件具有抽象性。因此選項D正確。
48.B解析:在一維數(shù)組中要注意的是作為下標(biāo)表達(dá)式的常量表達(dá)式的值必須是大于等于0,選項B)中定義有5個元素,但賦值時有6個元素,所以是錯誤的。
49.C解析:“%X”以十六進(jìn)制無符號形式輸出整數(shù),變量m和n的初始值都是十六進(jìn)制數(shù),m=m-n=0xabc-oxabc=0x0,所以輸出結(jié)果為0。
50.A解析:本題考查求字符串的長度。程序中定義字符串str時中請了12個字節(jié)的內(nèi)存空間,對它賦初值后,函數(shù)strlen在求串長度時,以'\\0'作為串結(jié)束符,所以,strlen(str)的值為6。
51.A本題主要考查軟件測試的基本知識。軟件測試的步驟可分為單元測試(模塊測試)、集成測試、確認(rèn)測試和系統(tǒng)測試。
(1)單元測試是針對每個模塊進(jìn)行的測試,它可從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計測試用例,多個模塊可以平行、對立地測試。單元測試主要用于發(fā)現(xiàn)詳細(xì)設(shè)計和編程時犯下的錯誤。單元測試多采用白盒測試,輔之以黑盒測試。
(2)集成測試是在單元測試的基礎(chǔ)上,根據(jù)模塊結(jié)構(gòu)圖將各個模塊連接起來,必須精心計劃,應(yīng)提交集成測試計劃、集成測試規(guī)格說明和集成測試分析報告。主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問題。集成測試可以發(fā)現(xiàn)概要設(shè)計時犯的錯誤。
(3)確認(rèn)測試用于驗證軟件的功能和性能及其他特性是否與用戶的要求一致。確認(rèn)測試主要用于發(fā)現(xiàn)需求分析時犯下的錯誤,一般使用黑盒法測試,以表明軟件符合需求說明書的要求,應(yīng)該仔細(xì)設(shè)計測試用例和測試過程。確認(rèn)測試必須有用戶參加,或以用戶為主,用戶應(yīng)參與設(shè)計測試用例,通常情況下,主要使用生產(chǎn)中的實際數(shù)據(jù)進(jìn)行測試,測試數(shù)據(jù)通過用戶接口輸入。
(4)系統(tǒng)測試是將已經(jīng)通過確認(rèn)測試的軟件,作為整個計算機(jī)系統(tǒng)的元素與計算機(jī)硬件、外設(shè)和網(wǎng)絡(luò)等其他因素結(jié)合在一起,進(jìn)行一系列的組裝測試和確認(rèn)測試。系統(tǒng)測試的目的是通過與系統(tǒng)的需求定義做比較,發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合的地方。系統(tǒng)測試可以發(fā)現(xiàn)問題定義時犯下的錯誤。
52.A解析:本題main函數(shù)中定義了指針p和二維數(shù)組a,通過函數(shù)amovep將數(shù)組的值存入指針p所指向的存儲單元中,a的各各元素分別為:a[0][0]=1,a[0][1]=3,a[0][2]=5,a[1][0]=2,a[1][1]=4,a[1][2]=6,a[2][0]=0,a[2][1]=0,a[2][2]=0。通過malloc()函數(shù)紿指針分配內(nèi)存空間,free()函數(shù)用于釋放指針變量所用內(nèi)存空間。在主函數(shù)中通過amovep(p,a,3)調(diào)用函數(shù)amovep,使得實參p與形參p,實參數(shù)組a與形參中指向數(shù)組的指針變量共用同一存儲空間。最后輸出p[2],p[5]為56。
53.C解析:整型變量x、y的初值都為1,“x++,y++,++y”是一個逗號表達(dá)式,程序執(zhí)行“z=x++,y++,++y”后,x的值為2,y的值為3,z取豆號表達(dá)式中第二個表達(dá)式的值,為1。
54.D解析:文件系統(tǒng)所管理的數(shù)據(jù)文件基本上是分散的、相互獨立的,因此相對于數(shù)據(jù)庫系統(tǒng),以此為基礎(chǔ)的數(shù)據(jù)處理存在3個缺點,數(shù)據(jù)冗余大、數(shù)據(jù)的不一致性、程序與數(shù)據(jù)的相互依賴(簡稱為數(shù)據(jù)依賴)。注意:文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)各自的特點,人工管理階段及數(shù)據(jù)庫系統(tǒng)三代的特點。
55.C解析:根據(jù)數(shù)據(jù)結(jié)構(gòu)對棧的定義及其特點可知:棧是限定只在表尾進(jìn)行插入或刪除操作的線性表,因此棧是先進(jìn)后出的線性表,對棧的插入與刪除操作,不需要改變棧底元素。棧是限定只在表尾進(jìn)行插入或刪除操作的線性表。
56.A解析:條件表達(dá)式的形式如下:表達(dá)式1?表達(dá)式2:表達(dá)式3,所以本題條件表達(dá)式a<b?a:c<d?c:d應(yīng)該理解為a<b?a:(c<d?c:d),首先求出條件表達(dá)式c<d?c:d的值等于2,再求條件表達(dá)式a<b?a:2的值,由于a-1<b-4成立,所以上述條件表達(dá)式的值等于1。
57.A
58.B
59.D解析:面向?qū)ο蟮氖澜缡峭ㄟ^對象與對象間彼此的相互合作來推動的,一個對象與另一個對象通過發(fā)送消息彼此交換信息,請求對方執(zhí)行某一處理或回答某一要求的信息。
60.B解析:在主函數(shù)中,定義了一個結(jié)構(gòu)體型指針變量head,然后將函數(shù)CreatList()的返回值賦給指針變量head,從這里可知函數(shù)CreatList()的返回值為struetnode*類型,所以第48處的空格處應(yīng)該填struetnode*;在函數(shù)CreatList()中首先定義三個結(jié)構(gòu)體型指針變量h,p和q,然后調(diào)用malloc()函數(shù)分配了一個結(jié)點空間,并讓指針h指向它,開始指針p、q和h都指向它,然后調(diào)用一個while循環(huán)語句,當(dāng)?shù)竭_(dá)字符串?dāng)?shù)組s的末尾結(jié)束循環(huán),在每次循環(huán)中,分配一個結(jié)點空間,并讓p指向它,然后讓該結(jié)點的data域的值等于字符串指針s所指的值,故49處的空格處應(yīng)填*s;接下來讓指針q所指結(jié)點的指針域指向結(jié)點p,然后讓指針q指向該指針的所指結(jié)點的下一個結(jié)點即p。
61.A【答案】:A
【知識點】:黑盒測試
【解析】:黑盒測試也稱功能測試或數(shù)據(jù)驅(qū)動測試,它完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特征,只著眼于程序的外部結(jié)構(gòu),主要用來檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用。故選A。
62.D首先對二維數(shù)組進(jìn)行賦值操作,a[0][0]、a[0][1]、…、a[3][2]、a[3][3]的值為l、4、…、6、1。通過for語句和if語句,對二維數(shù)組各列元素進(jìn)行由
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年沈陽北軟信息職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 2025年無錫南洋職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 2025年曲阜遠(yuǎn)東職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 專題05 名句名篇默寫(第1期)
- 專題05 青春時光(第1期)
- 全新承包公寓合同下載
- 幼兒園指紋教育活動策劃方案五篇
- 總經(jīng)理聘用合同的范文
- 金融合同保險業(yè)務(wù)居間合約
- 生活垃圾清運(yùn)服務(wù)合同年
- 【人教版化學(xué)】必修1 知識點默寫小紙條(答案背誦版)
- 江蘇省無錫市2023-2024學(xué)年八年級上學(xué)期期末數(shù)學(xué)試題(原卷版)
- 全國第三屆職業(yè)技能大賽(無人機(jī)駕駛(植保)項目)選拔賽理論考試題庫(含答案)
- 《奧特萊斯業(yè)態(tài)淺析》課件
- 2022年湖南省公務(wù)員錄用考試《申論》真題(縣鄉(xiāng)卷)及答案解析
- 小學(xué)語文中段整本書閱讀的指導(dǎo)策略研究 中期報告
- 浙教版2023-2024學(xué)年數(shù)學(xué)八年級上冊期末復(fù)習(xí)卷(含答案)
- 運(yùn)動訓(xùn)練與康復(fù)治療培訓(xùn)資料
- 小班繪本教學(xué)《藏在哪里了》課件
- 老師呀請你別生氣教學(xué)反思
評論
0/150
提交評論