![2021-2022年江西省宜春市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第1頁](http://file4.renrendoc.com/view/85a44319cb3b1ff9b174f096955a0de5/85a44319cb3b1ff9b174f096955a0de51.gif)
![2021-2022年江西省宜春市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第2頁](http://file4.renrendoc.com/view/85a44319cb3b1ff9b174f096955a0de5/85a44319cb3b1ff9b174f096955a0de52.gif)
![2021-2022年江西省宜春市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第3頁](http://file4.renrendoc.com/view/85a44319cb3b1ff9b174f096955a0de5/85a44319cb3b1ff9b174f096955a0de53.gif)
![2021-2022年江西省宜春市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第4頁](http://file4.renrendoc.com/view/85a44319cb3b1ff9b174f096955a0de5/85a44319cb3b1ff9b174f096955a0de54.gif)
![2021-2022年江西省宜春市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)_第5頁](http://file4.renrendoc.com/view/85a44319cb3b1ff9b174f096955a0de5/85a44319cb3b1ff9b174f096955a0de55.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021-2022年江西省宜春市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.以下選項中,值為1的表達(dá)式是()。
A.1-‘0’B.1-‘\0’C.‘1’-0D.‘\0’-‘0’
2.有以下程序函數(shù)fun只對下標(biāo)為偶數(shù)的元素進(jìn)行操作.:
程序運行后的輸出結(jié)果是()。A.A.7,2,5,4,3,6,1,
B.1,6,3,4,5,2,7,
C.7,6,5,4,3,2,1,
D.1,7,3,5,6,2,1,
3.在數(shù)據(jù)庫系統(tǒng)中,用戶所見數(shù)據(jù)模式為______。A.概念模式B.外模式C.內(nèi)橫式D.物理模式
4.下列描述中,不是線性表順序存儲結(jié)構(gòu)特征的是
A.不便于插入和刪除B.需要連續(xù)的存儲空間C.可隨機訪問D.需另外開辟空間來保存元素之間的關(guān)系
5.有以下程序:#include<stdio.h>intfun(intX,inty){if(X!=y)return((x+y)/2);elsereturn(x);}main(){inta=4,b=5,c=6;printf("%d/n",fun(2*a,fun(b,c)));}程序運行后的輸入結(jié)果是()。A.3B.6C.8D.12
6.
7.下列能正確進(jìn)行字符串賦值的是()。
A.chars[5]={"ABCDE"};
B.chars[5]={A,B,C,D,E};
C.char*S;S="ABCDE";
D.char*s;printf("%《",s);
8.是哈希查找的沖突處理方法()。
A.求余法B.平均取中法C.二分法D.開放地址法
9.
10.
11.以下程序的輸出結(jié)果是()。main{charch[3][4]={"123","456","78"),*p[3];inti;for(i=0;i<3;i++)p[i]=ch[i];for(i=0;i<3;i++)printf("%s",p[i]);}A.123456780B.123456780C.12345678D.147
12.在單鏈表中,增加頭結(jié)點的目的是()。
A.方便運算的實現(xiàn)B.使單鏈表至少有一個結(jié)點C.標(biāo)識表結(jié)點中首結(jié)點的位置D.說明單鏈表是線性的鏈?zhǔn)酱鎯崿F(xiàn)
13.
14.在下列運算符中,優(yōu)先級最低的是()。A.||B.!=C.<D.+
15.若要求從鍵盤讀入含有空格字符的字符串,應(yīng)使用函數(shù)A.getc()B.gets()C.getchar()D.scanf()
16.在軟件設(shè)計中不使用的工具是()。
A.系統(tǒng)結(jié)構(gòu)圖B.程序流程圖C.PAD圖D.數(shù)據(jù)流圖(DFD圖)
17.判斷char型變量c1是否為小寫字母的正確表達(dá)式為()。
A.'a'<=c1<='z'
B.(c1>=A)‖(c1<=z)
C.('a'=>c1‖('z'<=c1)
D.(c1>='a')&&(c1<='z')
18.有以下程序:#include<stdio.h>main(){intx=072;printf(“>%d<\n”,x+1);}程序運行后的輸出結(jié)果是()。
A.>073<B.>73<C.>142<D.>59<
19.需求分析最終結(jié)果是產(chǎn)生
A.項目開發(fā)計劃B.需求規(guī)格說明書C.設(shè)計說明書D.可行性分析報告
20.設(shè)線性鏈表中結(jié)點的結(jié)構(gòu)為(data,next)。已知指針q所指結(jié)點是指針結(jié)點p的直接前驅(qū),若在*q與*p之間插入結(jié)點*s,則應(yīng)執(zhí)行下列()操作。
A.s->next=p->next;p->next=s;
B.q->next=s;s->next=p;
C.p->next=s->next;s->next=p;
D.p->next=s;s->next=q;
二、2.填空題(20題)21.在面向?qū)ο蠓椒ㄖ校畔㈦[蔽是通過對象的______性來實現(xiàn)的。
22.下列程序的運行結(jié)果是______。
#definePOW(r)(r)*(r)
main()
{intx=3,y=2,t;
t=POW(x+y);
printf("%d\n",t);
}
23.以下程序輸出的最后個值是【】
intff(intn)
{staticintf=1;
f=f*n
returnf;
}
main()
{inti;
for(i=1;i<=5:i++)printf("%d、n",ff(i));}
24.按照邏輯結(jié)構(gòu)分類,結(jié)構(gòu)可以分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),棧屬于______。
25.已定義charch="$";inti=1,j;執(zhí)行j=!ch&&i++以后,i的值為()。
26.以下程序運行后的輸出結(jié)果是______。
main()
{
charm;
m='B'+32;
printf("%e\n",m);
}
27.對于圖書管理數(shù)據(jù)庫,將圖書表中"人民郵電出版社"的圖書的單價漲價5%。請對下面的SQL語句填空:UPDATE圖書【】WHERE出版單位="人民郵電出版社"
28.軟件測試中路徑覆蓋測試是整個測試的基礎(chǔ),它是對軟件【】進(jìn)行測試。
29.以下程序的輸出結(jié)果是【】。
floatfun(intx,inty)
{return(x+y);}
main()
{inta=2,b=5,c=8;
printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}
30.軟件設(shè)計模塊化的目的是______。
31.以下程序的輸出結(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)));
}
32.以下程序段的運行結(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");}}
33.以下程序用來輸出結(jié)構(gòu)體變量ex所占存儲單元的字節(jié)數(shù):
structst
{charname[20];doublescore;};
main()
{structstex;
printf("exsize:%d\n",sizeof(【】));
}
34.下列軟件系統(tǒng)結(jié)構(gòu)圖的寬度為[]。
35.數(shù)據(jù)庫管理系統(tǒng)是位于用戶與______之間的軟件系統(tǒng)。
36.判定表和判定樹是以圖文形式描述數(shù)據(jù)流圖的【】
37.下面的程序?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;}
38.執(zhí)行以下程序后,輸出#號的個數(shù)是【】。
#include<stdio.h>
main()
{inti,j;
for(i=1;i<5;i++)
for(j=2;j<=i;j++)putchar('#');
}
39.設(shè)inta=5,b=6,表達(dá)式(++a==b--)?++a:--b的值是【】。
40.以下程序的運行結(jié)果是【】。
#include<string.h>
char*ss(char*s)
{returns+strlen(s)/2;}
main()
{char*p,*str="abcdefgh";
p=ss(str);printf("%s\n",p);
}
三、1.選擇題(20題)41.對長度為n的線性表進(jìn)行順序查找,在最壞情況下需要比較的次數(shù)為()。
A.125B.n/2C.nD.n+1
42.下列有關(guān)數(shù)據(jù)庫的描述,正確的是______。
A.數(shù)據(jù)庫是一個DBF文件B.數(shù)據(jù)庫是一個關(guān)系C.數(shù)據(jù)庫是一個結(jié)構(gòu)化的數(shù)據(jù)集合D.數(shù)據(jù)庫是一組文件
43.閱讀以下程序及對程序功能的描述,其中正確的描述是#include<stdio.h>main(){FILE*in,*out;charch,infile[10],outfile[10];printf("Entertheinfilename:\n");scanf("%s",infile);printf("Entertheoutfilename:\n");scanf("%s",outfile);if((in=fopen(infile,"r"))==NULL){printf("cannotopeninfile\n");exit(0);}if((out=fopen(outfile,"w"))==NULL){printf("cannotopenoutfile\n");exit(0);}while(!feof(in))fputc(fgetc(in),out);fclose(in);fclose(out);}
A.程序完成將磁盤文件的信息在屏幕上顯示的功能
B.程序完成將兩個磁盤文件合二為一的功能
C.程序完成將一個磁盤文件復(fù)制到另一個磁盤文件中
D.程序完成將兩個磁盤文件合并并在屏幕上輸出
44.以下敘述中正確的是()。
A.構(gòu)成C程序的基本單位是函數(shù)
B.可以在一個函數(shù)中定義另一個函數(shù)
C.main()函數(shù)必須放在其他函數(shù)之前
D.所有被調(diào)用的函數(shù)一定要在調(diào)用之前進(jìn)行定義
45.下列對于線性鏈表的描述中正確的是______。
A.存儲空間不一定是連續(xù),且各元素的存儲順序是任意的
B.存儲空間不一定是連續(xù),且前件元素一定存儲在后件元素的前面
C.存儲空間必須連續(xù),且各前件元素一定存儲在后件元素的前面
D.存儲空間必須連續(xù),且各元素的存儲順序是任意的
46.下列關(guān)于字符串的說法中錯誤的是
A.在C語言中,字符串是借助于字符型一維數(shù)組來存放的,并規(guī)定以字符'\0'作為字符串結(jié)束標(biāo)志
B.'\0'作為標(biāo)志占用存儲空間,計入串的實際長度
C.在表示字符串常量的時候不需要人為在其末尾加入'\0'
D.在C語言中,字符串常量隱含處理成以'\0'結(jié)尾
47.對于―個非空的數(shù)據(jù)結(jié)構(gòu),如果它有且只有―個根結(jié)點,并且每一個結(jié)點最多有一個前件,也最多有―個后件,那么()
A.肯定是一個線形結(jié)構(gòu)B.肯定是一個非線性結(jié)構(gòu)C.還不足以證明是一個線形結(jié)構(gòu)D.很可能是一個非線形結(jié)構(gòu)
48.C語言規(guī)定如果調(diào)用fputc函數(shù)輸出成功,則返回值是()。
A.1B.輸出的字符C.0D.真
49.當(dāng)輸入為"Fool&Swalow"時,下面程序的執(zhí)行結(jié)果是()。#include<stdio.h>main(){charc;while(c!='?'){c=getchar();putchar(C);}}
A.SwalowB.FoolC.Fool?D.?Swalow
50.已知intt=0;while(t=1){…}則以下敘述正確的是()。
A.循環(huán)控制表達(dá)式的值為0B.循環(huán)控制表達(dá)式的值為1C.循環(huán)控制表達(dá)式不合法D.以上說法都不對
51.有以下程序:main(){inti,j,x=0;for(i=0;i<2;i++){x++;for(j=0;j<=3;j++){if(j%2)continue;x++;}x++;}printf("x=%d\n",x);}程序執(zhí)行后輸出結(jié)果是()。
A.x=4B.x=8C.x=6D.x=12
52.結(jié)構(gòu)化程序設(shè)計的3種基本結(jié)構(gòu)是()。
A.過程、子程序和分程序B.順序、選擇和重復(fù)C.遞歸、堆棧和隊列D.調(diào)用、返回和轉(zhuǎn)移
53.有如下程序main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf("%f\n",y);}該程序輸出結(jié)果是______。
A.0B.0.25C.0.5D.1
54.定義int*swap()指的是______。
A.一個返回整型值的函數(shù)swap()
B.一個返回指向整型值指針的函數(shù)swap()
C.一個指向函數(shù)swap()的指針,函數(shù)返回一個整型值
D.以上說法均錯
55.語句int(*ptr)()的含義是()。
A.ptr是一個返回值是血的函數(shù)
B.ptr是指向int型數(shù)據(jù)的指針變量
C.ptr是指向函數(shù)的指針,該函數(shù)返回一個血型數(shù)據(jù)
D.ptr是一個函數(shù)名,該函數(shù)的返回值是指向int型數(shù)據(jù)的指針
56.下面程序段中,輸出*的個數(shù)是char*s="\ta\018bc";for(;*s!='\0';s++)printf("*");
A.9B.5C.6D.7
57.若有一些定義和語句#include<stdio.h>inta=4,b=3,*p,*q,*w;p=&a;q=&b;w=q;q=NULL;則以下選項中錯誤的語句是
A.*q=0;B.w=p;C.*p=a;D.*p=*w;
58.下列程序的輸出結(jié)果是______。#defineA100main(){inti=0,sum=0;do{if(i==(i/2)*2)continue;sum+=i;}while(++i<A);printf("%d\n",sum);
A.2500B.2050C.4D.0
59.下列敘述中錯誤的是()。
A.一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲結(jié)構(gòu)
B.數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)的處理效率無關(guān)
C.數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)的處理效率密切相關(guān)
D.數(shù)據(jù)的存儲結(jié)構(gòu)在計算機中所占的空間不一定是連續(xù)的
60.以下程序的輸出結(jié)果是______。longfun(intn){longs;if(n==1||n==2)s=2;elses=n-fun(n-1);returns;}main(){printf("%ld\n",fun(3));}
A.1B.2C.3D.4
四、選擇題(20題)61.有以下程序:
執(zhí)行后的輸出結(jié)果是()。
A.7
B.3
C.20)O
62.有以下程序:
voidfunl(char*p)
{char*q;
q=P;
while(*q!='\O')
{(*q)++;q++;}
}
main
{chara[]={"Program"),*P;
p=&a[3];funl(p);
printf("%s\n",a);
}
程序執(zhí)行后的輸出結(jié)果是()。A.A.ProhsbnB.PrphsbnC.ProgsbnD.Program
63.有以下程序:
程序運行后的輸出結(jié)果是()。
A.321B.12300C.1D.123
64.有以下程序:
程序的運行結(jié)果是()。
A.1212B.117C.1111D.127
65.讀取二進(jìn)制文件的函數(shù)調(diào)用形式為:fread(buffersize,count,fp);,其中buffer代表的是()。
A.一個文件指針,指向待讀取的文件
B.一個整型變量,代表待讀取的數(shù)據(jù)的字節(jié)數(shù)
C.一個內(nèi)存塊的首地址,代表讀人數(shù)據(jù)存放的地址
D.一個內(nèi)存塊的字節(jié)數(shù)
66.
67.以下不正確的定義語句是
A.inty[5.3]={0,1,3,5,7,9};B.doublex[5]={2.0,4.0,6.0,8.0,10.0};
C.charc1[]={’1’,’2’,’3’,’4’,’5’};D.charc2[]={’\x10’,’\xa’,’\x8’};
68.軟件設(shè)計中劃分模塊的一個準(zhǔn)則是()。A.低內(nèi)聚低耦合B.高內(nèi)聚低耦合C.低內(nèi)聚高耦合D.高內(nèi)聚高耦合
69.
下列程序的運行結(jié)果是()。
#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
70.
71.設(shè)有二元關(guān)系R和三元關(guān)系s,下列運算合法的是()。
A.R∩SB.R∪SC.R-SD.R×S
72.設(shè)變量已正確定義,則以下能正確計算f=n!的程序段是()。
A)f=0;B)f=1;
for(i=1;i<=n;i++)f*=i;for(i=1;i<n;i++)f*=i;
C)f=1;D)f=1;
for(i=n;i>1;i++)f*=i;for(i=n;i>=2;i--)f*=i;
73.串的長度是______。A.A.串中不同字符的個數(shù)
B.串中不同字母的個數(shù)
C.串中所含字符的個數(shù)且字符個數(shù)大于零
D.串中所含字符的個數(shù)
74.
75.
76.以下敘述中錯誤的是()。
A.c語言是一種結(jié)構(gòu)化程序設(shè)計語言
B.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題
C.結(jié)構(gòu)化程序設(shè)計提倡模塊化的設(shè)計方法
D.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成
77.以下敘述中錯誤的是()。
A.c語言中的每條可執(zhí)行語句和非執(zhí)行語句最終都將被轉(zhuǎn)換成二進(jìn)制的機器指令
B.c程序經(jīng)過編譯、連接步驟之后才能形成一個真正可執(zhí)行的二進(jìn)制機器指令文件
C.用c語言編寫的程序稱為源程序,它以ASCIl代碼形式存放在一個文本文件中
D.c語言源程序經(jīng)編譯后生成后綴為.obj的目標(biāo)程序
78.在URL中,默認(rèn)的Web服務(wù)器的端口是()。
A.80B.8080C.1024D.2048
79.
80.有三個關(guān)系R、S和T如下:
則由關(guān)系R和S得到關(guān)系T的操作是()。
A.自然連接B.交C.除D.并
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:依次取出字符串中所有的數(shù)字字符,形成新的字符串,并取代原字符串。例如原始字符串是“ab45c6djfd789”,則輸出后的字符是“456789”。請修改函數(shù)proc()中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),其功能是找出2×M整型二維數(shù)組中最大元素的值,并將此值返回調(diào)用函數(shù)。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#defineM4#include<stdio.h>intfun(inta[][m]){}voidmain(){intarr[2][M]={5,8,3,45,76,-4,12,82};printf(“max=%d\n”,fun(arr));}
參考答案
1.B字符‘\\0’為空值,其ASCII值為0,所以B選項的值為1。字符‘0’的ASCII值為48,所以A、C、D選項的值均不為1。故本題答案為B選項。
2.A由函數(shù)fun(int*a,intn)中語句if(a[j]>a[k])k=j;可知當(dāng)前k是記錄數(shù)組中較大數(shù)據(jù)值所在位置的下標(biāo)變量,所以該函數(shù)的作用是對數(shù)組a中的下標(biāo)為偶數(shù)位置的數(shù)據(jù)進(jìn)行從大到小的排序,即對a[0],a[2],a[4],a[6]中的數(shù)據(jù)1,3,5,7進(jìn)行從大到小的排序,其他位置的數(shù)據(jù)不變,所以答案為A)。
3.B解析:數(shù)據(jù)庫管理系統(tǒng)的三級模式結(jié)構(gòu)由外模式、模式和內(nèi)模式組成。夕模式,或子模式,或用戶模式,是指數(shù)據(jù)庫用戶所看到的數(shù)據(jù)結(jié)構(gòu),是用戶看到的數(shù)據(jù)視圖。模式,或邏輯模式,是數(shù)據(jù)庫中對全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特性的描述,是所有用戶所見到的數(shù)據(jù)視圖的總和。外模式是模式的—部分。內(nèi)模式,或存儲模式,或物理模式,是指數(shù)據(jù)在數(shù)據(jù)庫系統(tǒng)內(nèi)的存儲介質(zhì)上的表示,即對數(shù)據(jù)的物理結(jié)構(gòu)和存取力式的描述。
4.D解析:線性表的順序存儲是用一片連續(xù)的空間來存放數(shù)據(jù)元素,其特點是邏輯上相鄰的元素在物理位置上也相鄰。數(shù)據(jù)元素之間邏輯上的先后關(guān)系自動隱含在物理位置的相鄰元素之中,因此,不需要另外開辟空間來保存元素之間的關(guān)系。
5.B此題考查的是函數(shù)fun,fun(b,c)=5,然后fun(2*a,5)=fun(8,5)=6。
6.B
7.C選項A、B的空間不夠;字符串存儲要有結(jié)束符\0,且要占用一個空間,printf用來輸出字符,不能輸入字符串。
8.D
9.D
10.C
11.B第一個for循環(huán)的作用是讓p指向每行的首地址,第二個for循環(huán)的作用是把它指向的字符串輸出,故選擇B選項。
12.A根據(jù)單位鏈表(包含頭結(jié)點)的結(jié)構(gòu),只要掌握了表頭,就能夠訪問整個鏈表,因此增加頭結(jié)點的目的是為了便于運算的實現(xiàn)。
13.A
14.A
15.Bscanf(\u3000)語句中用“空格”間隔不同的字符串,空格將被全部忽略掉,所以用scanf(\u3000)函數(shù)不能輸入空格;getehar(\u3000)函數(shù)用于輸入字符,其調(diào)用形式為:ch=getelaar(\u3000),getehar(\u3000)函數(shù)從終端讀入一個字符作為函數(shù)值,把讀入的字符賦給變量ch。在輸入時,空格、回車符都將作為字符讀入,而且只有在用戶敲入Enter鍵時,讀入才開始執(zhí)行。gets(\u3000)函數(shù)的凋用形式為:gets(str_adr),其中stradr是存放輸入字符串的起始地址,可以是字符數(shù)組名、字符數(shù)組元素的地址或字符指針變量。9ets函數(shù)用來從終端鍵盤讀入字符串(包括空格符),直到讀入一個換行符為止。getc(\u3000)函數(shù)的調(diào)用形式為:ch=getc(pf)其中pf是文件指針。函數(shù)的功能是從pf指定的文件中讀入一個字符,并把它作為函數(shù)值返回。
16.D【答案】:D
【知識點】:軟件設(shè)計中使用的工具
【解析】:數(shù)據(jù)流圖是結(jié)構(gòu)化分析方法中使用的工具,它以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動和處理的過程,由于它只反映系統(tǒng)必須完成的邏輯功能,所以它是一種功能模型,是在可行性研究階段用到的。PAD圖是問題分析圖(ProblemAnalysisDiagram)的英文縮寫,是在詳細(xì)設(shè)計階段用到的。系統(tǒng)結(jié)構(gòu)圖是對軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計的圖形顯示,是在概要設(shè)計階段用到的。程序流程圖是對程序流程的圖形表示,故選D。
17.D解析:C語言規(guī)定,字符常量在程序中要用單引號括起來。判斷c1是否為小寫字母的充要條件c1>='a'和c1<='z',用邏輯與(&&)來表示。A選項的這種形式在C語言中沒有,所以選項D)正確.
18.D題干中x是一個整型變量,賦值為072。以0開頭的整數(shù)是八進(jìn)制的表示形式。printf函數(shù)中,格式字符%d表示以十進(jìn)制形式輸出“x+1”,所以需要將072轉(zhuǎn)換成十進(jìn)制數(shù),即7×8+2=58,輸出“x+1”為59。故本題答案為D選項。
19.B解析:本題考核軟件工程中的需求分析環(huán)節(jié)。需求分析應(yīng)交付的主要文檔就是需求規(guī)格說明書。
20.B
21.封裝封裝
22.2525解析:本題考查帶參數(shù)的宏的定義及相關(guān)運算。運算過程為:t=POW(x+y)=(2+3)*(2+3)=25。
23.120120解析:靜態(tài)變量的類型說明符是static,靜態(tài)局部變量屬于靜態(tài)存儲方式,它具有以下特點:
靜態(tài)變量的類型說明符是static,靜態(tài)局部變量屬于靜態(tài)存儲方式,它具有以下特點:
①靜態(tài)局部變量屬于靜態(tài)存儲類別,在靜態(tài)存儲區(qū)內(nèi)分配存儲單元。在程序整個運行期間都不釋放。
②對靜態(tài)局部變量是在編譯時賦初值的,即只賦初值—次,在程序運行時它已有初值。以后每次調(diào)用函數(shù)時不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時的值。
③如在定義局部變量時不賦初值的話,則對靜態(tài)局部變量來說,編譯時自動賦初值0(對數(shù)值型變量)或空字符(對字符變量)。(注意:C語言中非靜態(tài)變量在定義時,系統(tǒng)并不會自動給它賦初值)
④雖然靜態(tài)局部變量在函數(shù)調(diào)用結(jié)束后仍然存在,但其他函數(shù)是不能引用它的。本題中函數(shù)的功能是:與for語句一起求一個整數(shù)的階乘。
24.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間的邏輯關(guān)系,分為線性結(jié)構(gòu)和非線性結(jié)構(gòu)。常見的線性結(jié)構(gòu)有線性表、棧和隊列等,常見的非線性結(jié)構(gòu)有樹、二叉樹等。
25.11解析:用“&&”連接兩個表達(dá)式時,若第1個表達(dá)式的值為“假”,則運算結(jié)果與第2個表達(dá)式無關(guān),此時第2個表達(dá)式將不再進(jìn)行計算。本題中第1個表達(dá)式“j=!ch”值為0,所以第2個表達(dá)式i++將不再進(jìn)行計算,i的值為1。
26.bb解析:字符類型的數(shù)據(jù)在內(nèi)存中以相應(yīng)的ASCII碼存放,另外,字符數(shù)據(jù)還可以作為整數(shù)參加運算。格式控制參數(shù)中的格式字符用以指定輸出項的數(shù)據(jù)類型和輸出格式,輸出字符與其對應(yīng)的輸出項的類型要一致。本題中,“B”的ASCII碼為98,字符類型m的ASCII為(98+32=130),所以最后輸出為b。
27.SET單價=單價*1.05SET單價=單價*1.05解析:更新表中元組的值,使用UPDATE命令,一次可以更新表中的一個或多個屬性值。UPDATE短語之后指定更新數(shù)據(jù)所屬的表,將新的屬性值或表達(dá)式賦值給對應(yīng)的屬性名(SET單價=單價*1.05),并置于SET短語之后。要求對人民郵電出版社的圖書漲5%,需要用WHERE短語對元組進(jìn)行限制,即對符合條件的元組進(jìn)行更新。
28.結(jié)構(gòu)結(jié)構(gòu)解析:路徑測試是白盒測試方法中的—種,它要求對程序中的每條路徑最少檢查一次,目的是對軟件的結(jié)構(gòu)進(jìn)行測試。
29.99解析:本題考查函數(shù)的綜合知識。首先,我們可以利用強制轉(zhuǎn)換類型轉(zhuǎn)換運算符,將一個表達(dá)式轉(zhuǎn)換成所需類型。如:(double)a是將a轉(zhuǎn)換成double類型;(int)(x+y)是將x+y的值轉(zhuǎn)換成整型。
本題可按部就班地逐步運算:
fun((int)fun(a+c,b),a-c)
fun((int)fun(10,5),2-8)
fun((int)15.000000,-6)
fun(15,-6)
9
30.降低復(fù)雜性降低復(fù)雜性
31.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。
32.x=2
33.ex或structstex或structst解析:求一個變量所占的存儲單元數(shù),用sizeof函數(shù),參數(shù)為該變量名或其變量類型。
34.33解析:軟件系統(tǒng)結(jié)構(gòu)圖的寬度:整體控制跨度(最大模塊數(shù)的層)的表示。
35.操作系統(tǒng)操作系統(tǒng)解析:數(shù)據(jù)庫管理系統(tǒng)是幫助用戶創(chuàng)建和管理數(shù)據(jù)庫的應(yīng)用程序的集合。因此,數(shù)據(jù)庫管理系統(tǒng)需要操作系統(tǒng)的支持,為用戶提供服務(wù)。
36.判定樹、判定表判定樹、判定表
37.q<p+nq<p+n解析:通過地址傳遞可以在被調(diào)函數(shù)中對調(diào)用函數(shù)中的變量進(jìn)行引用。
38.66解析:本題中i循環(huán)執(zhí)行4次,當(dāng)i=1時,j循環(huán)執(zhí)行0次;當(dāng)i=2時,j循環(huán)執(zhí)行1次;當(dāng)i=3時,j循環(huán)執(zhí)行2次;當(dāng)i=4時,j循環(huán)執(zhí)行3次,所以輸出#號的個數(shù)是0+1+2+3=6。
39.77解析:此表達(dá)式為三目運算符,++a的值為6,b--的值為6,則整個表達(dá)式的值為++a的值,++a的值為7。請注意前綴++,--和后綴++,--的區(qū)別。
40.efghefgh解析:函數(shù)ss返回形參s所指向的符號串的后半部分,故p='efgh'。
41.CC?!窘馕觥繉€性表進(jìn)行順序查找時,從表中的第一個元素開始,將給定的值與表中逐個元素的關(guān)鍵字進(jìn)行比較,直到兩者相符,查找到所要找的元素為止。在最壞情況下,要查找的元素是表的最后一個元素或查找失敗,這兩種情況都需要將這個元素與表中的所有元素進(jìn)行比較,因此比較次數(shù)為n。
42.C解析:數(shù)據(jù)庫(Database,簡稱DB)是數(shù)據(jù)的集合,它具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲介質(zhì)內(nèi),是多種應(yīng)用數(shù)據(jù)的集成,并可被各個應(yīng)用程序所共享。數(shù)據(jù)庫中的數(shù)據(jù)具有“集成”、“共事”之特點。
43.C解析:本題中,最主要的是掌握幾個有關(guān)文件的函數(shù)的應(yīng)用。
函數(shù)名:fopen功能:打開一個文件調(diào)用方式FILE*fp;fp=fopen(文件名,使用文件方式);
函數(shù)名:feof功能:檢查文件是否結(jié)束調(diào)用方式:feof(FILE*fp);
函數(shù)名:fputc功能:把一個字符寫到磁盤文件上去調(diào)用方式:fputc(ch,fp)(ch是要輸出的字符,fp是從指定的文件讀入一個字符,該文件必須是以讀或讀寫方式打開的調(diào)用方式:ch=fgetc(fp)(ch是字符變量,fp是文件指針變量);
函數(shù)名:fclose功能:關(guān)閉一個文件調(diào)用方式:fclose(文件指針)。
44.A解析:本題綜合考查C語言的概念部分,關(guān)于C語言,我們應(yīng)該了解以下必須要掌握的基礎(chǔ)知識:
①C程序是由函數(shù)構(gòu)成的。
②一個函數(shù)由兩部分組成:函數(shù)的首部和函數(shù)體。
③一個C程序總是從main函數(shù)開始執(zhí)行的,而不論main函數(shù)的整個程序中的位置如何(main函數(shù)可以放在程序最開始,也可以放在程序最后,或?qū)懺谝恍┖瘮?shù)之前,在另一些函數(shù)之后)。
④C程序在書寫上,表現(xiàn)形式比較自由,一行內(nèi)可以寫幾個語句,一個語句可以分寫在幾行上。每個語句和數(shù)據(jù)定義的最后必須有一個分號。
⑤C程序本身沒有輸入輸出語句。輸入和輸出的操作是由庫函數(shù)scanf和printf等函數(shù)來完成。
⑥可以用/*……*/對C語言的程序的任何部分作注釋。
45.A解析:線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)稱為線性鏈表,是一種物理存儲單元上非連續(xù)、非順序的存儲結(jié)構(gòu),數(shù)據(jù)元素的邏輯順序是通過鏈表中的指針鏈接來實現(xiàn)的。
46.B解析:'\\0'作為標(biāo)志占用存儲空間,但是不計入串的實際長度。當(dāng)給一個字符型指針賦值時,賦給這個指針的是這個字符串的地址。
47.A
48.B解析:調(diào)用fputc函數(shù)輸出成功,則返回值是輸出的字符。
49.C
50.B解析:t=1是將t賦值為1,所以循環(huán)控制表達(dá)式的值為1。判斷t是否等于1時,應(yīng)用t==1,注意“=”與“==”的用法。
51.B解析:外循環(huán)的循環(huán)變量i從0遞增到1會循環(huán)2次,內(nèi)循環(huán)的循環(huán)變量j從0遞增到3會循環(huán)4次。但是內(nèi)循環(huán)中有一條if語句,每當(dāng)j%2為真,即j為奇數(shù)時會跳過下面的x++;語句,所以4次內(nèi)循環(huán)只有2次執(zhí)行到x++;語句,再加上外循環(huán)中包含的2條x++語句,所以每次外循環(huán)會使x自增4次,2次外循環(huán)下來x的值為8。故應(yīng)該選擇B。
52.BB。【解析】程序的三種基本控制結(jié)構(gòu)包括:順序、選擇和重復(fù)(循環(huán)),這三種結(jié)構(gòu)就足以表達(dá)出各種其他形式的結(jié)構(gòu)。
53.C解析:本題考查的是if...else語句的使用。x=2.0,符合第二個IF語句的條件x<10.0,所以執(zhí)行y=1.0/x語句,即y=1.0/2.0=0.500000。
54.B解析:一個函數(shù)可以帶回—個整型值、字符值、實型值等,但也可以帶回指針型數(shù)據(jù),即地址。本題的定義中,包括括號和*號,由于()優(yōu)先級高于*。故它是一個返回整型指針的函數(shù)。
55.C解析:本題考查的是指向函數(shù)的指針。函數(shù)指針定義的基本格式為:類型標(biāo)識符(指針變量名)()?!邦愋蜆?biāo)識符”為函數(shù)返回值的類型。
56.C解析:本題中,格式符。表示的是八進(jìn)制無符號形式輸出整型數(shù)(不帶前導(dǎo)0),字符常量在內(nèi)存中占一個字節(jié),存放的是ACSII碼代碼值。C語言規(guī)定,所有字符常量都作為整型量來處理,在計算機內(nèi)部,其對應(yīng)的整數(shù)值就是ACSII字符集中該字符的序號,即&*s中有幾個字符就輸出幾個*。
57.A解析:本題考核的知識點是指針變量的使用與空指針(NULL)基本概念.本題中定義了3個指向整型的指針變量p、q、w,并讓p指向a,讓q指向b,通過將q的值賦給w,使w也指向b,最后將NULL賦值給q。由整形變量指針的定義可知,可以給整型指針指向的變量賦一個常數(shù)值(表達(dá)式),故選項C和選項D是正確的;可以給指針變量賦一個同種類型的指針變量(或地址值),故選項B也是正確的;選項A錯誤,因為q不指向任何變量,給一個空指針指向的單元賦值是錯誤的。所以,A選項為所選。
58.A解析:本題程序的功能是求1到99之間(包括1和99)所有奇數(shù)之和。程序中的while循環(huán)的終止條件為++i=100,在while循環(huán)體內(nèi),如果i是偶數(shù),則執(zhí)行continue,跳過這依次循環(huán),執(zhí)行下一次循環(huán),否則求和。最后輸出的值是1到99之間(包括1和99)所有奇數(shù)之和(1+99)*50/2=2500。
59.BB?!窘馕觥繑?shù)據(jù)的存儲結(jié)構(gòu)分為順序結(jié)構(gòu)和鏈?zhǔn)浇Y(jié)構(gòu),一個數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲結(jié)構(gòu)。順序結(jié)構(gòu)中數(shù)據(jù)元素所占的存儲空間是連續(xù)的,而鏈?zhǔn)酱鎯Y(jié)構(gòu)中,數(shù)據(jù)元素所占的存儲空間不一定是連續(xù)的。數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)的處理效率密切相關(guān)。
60.A解析:該題考查的是遞歸函數(shù)的調(diào)用,題中讀fun函數(shù)進(jìn)行了遞歸調(diào)用,第1次調(diào)用:fun(3)n=3s=3-fun(2);第二次調(diào)用時:fun(2)n=2s=2返回第一次調(diào)用后,s=3-2=1。
61.C
62.A本題中使用了函數(shù)的調(diào)用,由{unl函數(shù)中的while循環(huán)可知,循環(huán)的作用是為了把q所指向的內(nèi)容增加l,而從主函數(shù)傳到函數(shù)時是從下標(biāo)為3開始傳,因此當(dāng)調(diào)用函數(shù)執(zhí)行完后,傳過去的字符串為'hsbn',前面不變。
63.D程序首先將數(shù)組a[10]中的元素l、2.3分別寫入了文件dl。dat文件中,然后又將dl.dat文件中的數(shù)據(jù)123,整體寫入到了變量n的空間中,所以打印n時輸出的數(shù)據(jù)為123。
64.B根據(jù)宏替換的替換規(guī)則,我們可知,
65.Cfread函數(shù)中的參數(shù)buffer是內(nèi)存塊的首地址,輸入的數(shù)據(jù)存入此內(nèi)存塊中。
66.C
67.A在一維數(shù)組中要注意的是,下標(biāo)表達(dá)式中常量表達(dá)式的值必須大于等于零,并且小于自身元素的個數(shù),即數(shù)組長度,選項A的下標(biāo)不是整數(shù),所以錯誤。
68.B一般較優(yōu)秀的軟件設(shè)計,應(yīng)盡量做到高內(nèi)聚、低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨立性。
69.B
\n本題考查帶參數(shù)的宏的定義:“#defineADD(x)x+x”中X代表m+n,故s寫成s=m+n+m+n*k=1+2+1+2*3=10。
\n
70.A
71.D本題給出的兩個關(guān)系R與S的表結(jié)構(gòu)是不同的(R是二元關(guān)系,S是三元關(guān)系),它們不能進(jìn)行∩、∪、一運算。而兩個不同結(jié)構(gòu)的關(guān)系是可以進(jìn)行笛卡兒積(×)運算的。
72.DA項不成立,因為f=0,乘以任何數(shù)都為0,B項的判斷條件錯誤,i<n,計算的結(jié)果為(n-1)!,C項也不對,計算的是一個無限循環(huán),n*(n+1)*(n+2)…….
73.D解析:串的長度指的是串中字符的個數(shù),且其字符個數(shù)可以為零。選項D正確。
74.B
75.C
76.BC語言是一種結(jié)構(gòu)化程序設(shè)計語言。結(jié)構(gòu)化程序設(shè)計是以模塊化設(shè)計為中心的,有三種基本結(jié)構(gòu):順序、選擇和循環(huán)結(jié)構(gòu)。各模塊相互獨立,因而可將原來較為復(fù)雜的問題化簡為一系列簡單模塊并充分利用現(xiàn)有模塊搭建新系統(tǒng),提高程序的重用性和可維護(hù)性。
77.Ac語言中的非執(zhí)行語句不會被編譯,不會生成二進(jìn)制的機器指令,因此A)選項錯誤。由C語言構(gòu)成的指令序列稱為C源程序,c源程序經(jīng)過c語言編譯程序編譯之后生成一個后綴為obj的二進(jìn)制文件(稱為目標(biāo)文件);最后要由“連接程序”把此.0bj文件與c語言提供的各種庫函數(shù)連接起來生成一個后綴為.exe的可執(zhí)行文件。根據(jù)上述分析可知,A)選項敘述錯誤。
78.A
79.D
80.C
81.82.intfun(inta[][m]){inti,j,max=a[0][0];/*對二維數(shù)組進(jìn)行遍歷*/for(i=0;i<2;i++)for(j=0;j<=""p="">if(max<a[i][j])<p=""></a[i][j])<>/*將最大值保存在max中*/max=a[i][j];returnmax;}因為數(shù)組是二維數(shù)組,所以應(yīng)使用兩層for循環(huán)嵌套。使用for循環(huán)語句時需注意循環(huán)變量的取值范圍。此類求最大值或最小值的問題,可以采用逐個比較的方式。遍歷數(shù)組中所有元素,從中找出數(shù)組的最大值或最小值。首先定義變量max來存放數(shù)組的第1個元素的值,然后利用for循環(huán)逐個找出數(shù)組中的元素,并與變量max比較。如果元素值大于max,則將該值賦給max。循環(huán)結(jié)束后max的值即為數(shù)組最大值。最后將該值返回。該類題目考查較多,需要掌握逐個比較的方法。對于m*n二維數(shù)組,采用逐個查找的方法,代碼實現(xiàn)如下:for(i=0;i<=""p="">for(j=0;j<=""p="">…2021-2022年江西省宜春市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.以下選項中,值為1的表達(dá)式是()。
A.1-‘0’B.1-‘\0’C.‘1’-0D.‘\0’-‘0’
2.有以下程序函數(shù)fun只對下標(biāo)為偶數(shù)的元素進(jìn)行操作.:
程序運行后的輸出結(jié)果是()。A.A.7,2,5,4,3,6,1,
B.1,6,3,4,5,2,7,
C.7,6,5,4,3,2,1,
D.1,7,3,5,6,2,1,
3.在數(shù)據(jù)庫系統(tǒng)中,用戶所見數(shù)據(jù)模式為______。A.概念模式B.外模式C.內(nèi)橫式D.物理模式
4.下列描述中,不是線性表順序存儲結(jié)構(gòu)特征的是
A.不便于插入和刪除B.需要連續(xù)的存儲空間C.可隨機訪問D.需另外開辟空間來保存元素之間的關(guān)系
5.有以下程序:#include<stdio.h>intfun(intX,inty){if(X!=y)return((x+y)/2);elsereturn(x);}main(){inta=4,b=5,c=6;printf("%d/n",fun(2*a,fun(b,c)));}程序運行后的輸入結(jié)果是()。A.3B.6C.8D.12
6.
7.下列能正確進(jìn)行字符串賦值的是()。
A.chars[5]={"ABCDE"};
B.chars[5]={A,B,C,D,E};
C.char*S;S="ABCDE";
D.char*s;printf("%《",s);
8.是哈希查找的沖突處理方法()。
A.求余法B.平均取中法C.二分法D.開放地址法
9.
10.
11.以下程序的輸出結(jié)果是()。main{charch[3][4]={"123","456","78"),*p[3];inti;for(i=0;i<3;i++)p[i]=ch[i];for(i=0;i<3;i++)printf("%s",p[i]);}A.123456780B.123456780C.12345678D.147
12.在單鏈表中,增加頭結(jié)點的目的是()。
A.方便運算的實現(xiàn)B.使單鏈表至少有一個結(jié)點C.標(biāo)識表結(jié)點中首結(jié)點的位置D.說明單鏈表是線性的鏈?zhǔn)酱鎯崿F(xiàn)
13.
14.在下列運算符中,優(yōu)先級最低的是()。A.||B.!=C.<D.+
15.若要求從鍵盤讀入含有空格字符的字符串,應(yīng)使用函數(shù)A.getc()B.gets()C.getchar()D.scanf()
16.在軟件設(shè)計中不使用的工具是()。
A.系統(tǒng)結(jié)構(gòu)圖B.程序流程圖C.PAD圖D.數(shù)據(jù)流圖(DFD圖)
17.判斷char型變量c1是否為小寫字母的正確表達(dá)式為()。
A.'a'<=c1<='z'
B.(c1>=A)‖(c1<=z)
C.('a'=>c1‖('z'<=c1)
D.(c1>='a')&&(c1<='z')
18.有以下程序:#include<stdio.h>main(){intx=072;printf(“>%d<\n”,x+1);}程序運行后的輸出結(jié)果是()。
A.>073<B.>73<C.>142<D.>59<
19.需求分析最終結(jié)果是產(chǎn)生
A.項目開發(fā)計劃B.需求規(guī)格說明書C.設(shè)計說明書D.可行性分析報告
20.設(shè)線性鏈表中結(jié)點的結(jié)構(gòu)為(data,next)。已知指針q所指結(jié)點是指針結(jié)點p的直接前驅(qū),若在*q與*p之間插入結(jié)點*s,則應(yīng)執(zhí)行下列()操作。
A.s->next=p->next;p->next=s;
B.q->next=s;s->next=p;
C.p->next=s->next;s->next=p;
D.p->next=s;s->next=q;
二、2.填空題(20題)21.在面向?qū)ο蠓椒ㄖ?,信息隱蔽是通過對象的______性來實現(xiàn)的。
22.下列程序的運行結(jié)果是______。
#definePOW(r)(r)*(r)
main()
{intx=3,y=2,t;
t=POW(x+y);
printf("%d\n",t);
}
23.以下程序輸出的最后個值是【】
intff(intn)
{staticintf=1;
f=f*n
returnf;
}
main()
{inti;
for(i=1;i<=5:i++)printf("%d、n",ff(i));}
24.按照邏輯結(jié)構(gòu)分類,結(jié)構(gòu)可以分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),棧屬于______。
25.已定義charch="$";inti=1,j;執(zhí)行j=!ch&&i++以后,i的值為()。
26.以下程序運行后的輸出結(jié)果是______。
main()
{
charm;
m='B'+32;
printf("%e\n",m);
}
27.對于圖書管理數(shù)據(jù)庫,將圖書表中"人民郵電出版社"的圖書的單價漲價5%。請對下面的SQL語句填空:UPDATE圖書【】WHERE出版單位="人民郵電出版社"
28.軟件測試中路徑覆蓋測試是整個測試的基礎(chǔ),它是對軟件【】進(jìn)行測試。
29.以下程序的輸出結(jié)果是【】。
floatfun(intx,inty)
{return(x+y);}
main()
{inta=2,b=5,c=8;
printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}
30.軟件設(shè)計模塊化的目的是______。
31.以下程序的輸出結(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)));
}
32.以下程序段的運行結(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");}}
33.以下程序用來輸出結(jié)構(gòu)體變量ex所占存儲單元的字節(jié)數(shù):
structst
{charname[20];doublescore;};
main()
{structstex;
printf("exsize:%d\n",sizeof(【】));
}
34.下列軟件系統(tǒng)結(jié)構(gòu)圖的寬度為[]。
35.數(shù)據(jù)庫管理系統(tǒng)是位于用戶與______之間的軟件系統(tǒng)。
36.判定表和判定樹是以圖文形式描述數(shù)據(jù)流圖的【】
37.下面的程序?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;}
38.執(zhí)行以下程序后,輸出#號的個數(shù)是【】。
#include<stdio.h>
main()
{inti,j;
for(i=1;i<5;i++)
for(j=2;j<=i;j++)putchar('#');
}
39.設(shè)inta=5,b=6,表達(dá)式(++a==b--)?++a:--b的值是【】。
40.以下程序的運行結(jié)果是【】。
#include<string.h>
char*ss(char*s)
{returns+strlen(s)/2;}
main()
{char*p,*str="abcdefgh";
p=ss(str);printf("%s\n",p);
}
三、1.選擇題(20題)41.對長度為n的線性表進(jìn)行順序查找,在最壞情況下需要比較的次數(shù)為()。
A.125B.n/2C.nD.n+1
42.下列有關(guān)數(shù)據(jù)庫的描述,正確的是______。
A.數(shù)據(jù)庫是一個DBF文件B.數(shù)據(jù)庫是一個關(guān)系C.數(shù)據(jù)庫是一個結(jié)構(gòu)化的數(shù)據(jù)集合D.數(shù)據(jù)庫是一組文件
43.閱讀以下程序及對程序功能的描述,其中正確的描述是#include<stdio.h>main(){FILE*in,*out;charch,infile[10],outfile[10];printf("Entertheinfilename:\n");scanf("%s",infile);printf("Entertheoutfilename:\n");scanf("%s",outfile);if((in=fopen(infile,"r"))==NULL){printf("cannotopeninfile\n");exit(0);}if((out=fopen(outfile,"w"))==NULL){printf("cannotopenoutfile\n");exit(0);}while(!feof(in))fputc(fgetc(in),out);fclose(in);fclose(out);}
A.程序完成將磁盤文件的信息在屏幕上顯示的功能
B.程序完成將兩個磁盤文件合二為一的功能
C.程序完成將一個磁盤文件復(fù)制到另一個磁盤文件中
D.程序完成將兩個磁盤文件合并并在屏幕上輸出
44.以下敘述中正確的是()。
A.構(gòu)成C程序的基本單位是函數(shù)
B.可以在一個函數(shù)中定義另一個函數(shù)
C.main()函數(shù)必須放在其他函數(shù)之前
D.所有被調(diào)用的函數(shù)一定要在調(diào)用之前進(jìn)行定義
45.下列對于線性鏈表的描述中正確的是______。
A.存儲空間不一定是連續(xù),且各元素的存儲順序是任意的
B.存儲空間不一定是連續(xù),且前件元素一定存儲在后件元素的前面
C.存儲空間必須連續(xù),且各前件元素一定存儲在后件元素的前面
D.存儲空間必須連續(xù),且各元素的存儲順序是任意的
46.下列關(guān)于字符串的說法中錯誤的是
A.在C語言中,字符串是借助于字符型一維數(shù)組來存放的,并規(guī)定以字符'\0'作為字符串結(jié)束標(biāo)志
B.'\0'作為標(biāo)志占用存儲空間,計入串的實際長度
C.在表示字符串常量的時候不需要人為在其末尾加入'\0'
D.在C語言中,字符串常量隱含處理成以'\0'結(jié)尾
47.對于―個非空的數(shù)據(jù)結(jié)構(gòu),如果它有且只有―個根結(jié)點,并且每一個結(jié)點最多有一個前件,也最多有―個后件,那么()
A.肯定是一個線形結(jié)構(gòu)B.肯定是一個非線性結(jié)構(gòu)C.還不足以證明是一個線形結(jié)構(gòu)D.很可能是一個非線形結(jié)構(gòu)
48.C語言規(guī)定如果調(diào)用fputc函數(shù)輸出成功,則返回值是()。
A.1B.輸出的字符C.0D.真
49.當(dāng)輸入為"Fool&Swalow"時,下面程序的執(zhí)行結(jié)果是()。#include<stdio.h>main(){charc;while(c!='?'){c=getchar();putchar(C);}}
A.SwalowB.FoolC.Fool?D.?Swalow
50.已知intt=0;while(t=1){…}則以下敘述正確的是()。
A.循環(huán)控制表達(dá)式的值為0B.循環(huán)控制表達(dá)式的值為1C.循環(huán)控制表達(dá)式不合法D.以上說法都不對
51.有以下程序:main(){inti,j,x=0;for(i=0;i<2;i++){x++;for(j=0;j<=3;j++){if(j%2)continue;x++;}x++;}printf("x=%d\n",x);}程序執(zhí)行后輸出結(jié)果是()。
A.x=4B.x=8C.x=6D.x=12
52.結(jié)構(gòu)化程序設(shè)計的3種基本結(jié)構(gòu)是()。
A.過程、子程序和分程序B.順序、選擇和重復(fù)C.遞歸、堆棧和隊列D.調(diào)用、返回和轉(zhuǎn)移
53.有如下程序main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf("%f\n",y);}該程序輸出結(jié)果是______。
A.0B.0.25C.0.5D.1
54.定義int*swap()指的是______。
A.一個返回整型值的函數(shù)swap()
B.一個返回指向整型值指針的函數(shù)swap()
C.一個指向函數(shù)swap()的指針,函數(shù)返回一個整型值
D.以上說法均錯
55.語句int(*ptr)()的含義是()。
A.ptr是一個返回值是血的函數(shù)
B.ptr是指向int型數(shù)據(jù)的指針變量
C.ptr是指向函數(shù)的指針,該函數(shù)返回一個血型數(shù)據(jù)
D.ptr是一個函數(shù)名,該函數(shù)的返回值是指向int型數(shù)據(jù)的指針
56.下面程序段中,輸出*的個數(shù)是char*s="\ta\018bc";for(;*s!='\0';s++)printf("*");
A.9B.5C.6D.7
57.若有一些定義和語句#include<stdio.h>inta=4,b=3,*p,*q,*w;p=&a;q=&b;w=q;q=NULL;則以下選項中錯誤的語句是
A.*q=0;B.w=p;C.*p=a;D.*p=*w;
58.下列程序的輸出結(jié)果是______。#defineA100main(){inti=0,sum=0;do{if(i==(i/2)*2)continue;sum+=i;}while(++i<A);printf("%d\n",sum);
A.2500B.2050C.4D.0
59.下列敘述中錯誤的是()。
A.一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲結(jié)構(gòu)
B.數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)的處理效率無關(guān)
C.數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)的處理效率密切相關(guān)
D.數(shù)據(jù)的存儲結(jié)構(gòu)在計算機中所占的空間不一定是連續(xù)的
60.以下程序的輸出結(jié)果是______。longfun(intn){longs;if(n==1||n==2)s=2;elses=n-fun(n-1);returns;}main(){printf("%ld\n",fun(3));}
A.1B.2C.3D.4
四、選擇題(20題)61.有以下程序:
執(zhí)行后的輸出結(jié)果是()。
A.7
B.3
C.20)O
62.有以下程序:
voidfunl(char*p)
{char*q;
q=P;
while(*q!='\O')
{(*q)++;q++;}
}
main
{chara[]={"Program"),*P;
p=&a[3];funl(p);
printf("%s\n",a);
}
程序執(zhí)行后的輸出結(jié)果是()。A.A.ProhsbnB.PrphsbnC.ProgsbnD.Program
63.有以下程序:
程序運行后的輸出結(jié)果是()。
A.321B.12300C.1D.123
64.有以下程序:
程序的運行結(jié)果是()。
A.1212B.117C.1111D.127
65.讀取二進(jìn)制文件的函數(shù)調(diào)用形式為:fread(buffersize,count,fp);,其中buffer代表的是()。
A.一個文件指針,指向待讀取的文件
B.一個整型變量,代表待讀取的數(shù)據(jù)的字節(jié)數(shù)
C.一個內(nèi)存塊的首地址,代表讀人數(shù)據(jù)存放的地址
D.一個內(nèi)存塊的字節(jié)數(shù)
66.
67.以下不正確的定義語句是
A.inty[5.3]={0,1,3,5,7,9};B.doublex[5]={2.0,4.0,6.0,8.0,10.0};
C.charc1[]={’1’,’2’,’3’,’4’,’5’};D.charc2[]={’\x10’,’\xa’,’\x8’};
68.軟件設(shè)計中劃分模塊的一個準(zhǔn)則是()。A.低內(nèi)聚低耦合B.高內(nèi)聚低耦合C.低內(nèi)聚高耦合D.高內(nèi)聚高耦合
69.
下列程序的運行結(jié)果是()。
#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
70.
71.設(shè)有二元關(guān)系R和三元關(guān)系s,下列運算合法的是()。
A.R∩SB.R∪SC.R-SD.R×S
72.設(shè)變量已正確定義,則以下能正確計算f=n!的程序段是()。
A)f=0;B)f=1;
for(i=1;i<=n;i++)f*=i;for(i=1;i<n;i++)f*=i;
C)f=1;D)f=1;
for(i=n;i>1;i++)f*=i;for(i=n;i>=2;i--)f*=i;
73.串的長度是______。A.A.串中不同字符的個數(shù)
B.串中不同字母的個數(shù)
C.串中所含字符的個數(shù)且字符個數(shù)大于零
D.串中所含字符的個數(shù)
74.
75.
76.以下敘述中錯誤的是()。
A.c語言是一種結(jié)構(gòu)化程序設(shè)計語言
B.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題
C.結(jié)構(gòu)化程序設(shè)計提倡模塊化的設(shè)計方法
D.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成
77.以下敘述中錯誤的是()。
A.c語言中的每條可執(zhí)行語句和非執(zhí)行語句最終都將被轉(zhuǎn)換成二進(jìn)制的機器指令
B.c程序經(jīng)過編譯、連接步驟之后才能形成一個真正可執(zhí)行的二進(jìn)制機器指令文件
C.用c語言編寫的程序稱為源程序,它以ASCIl代碼形式存放在一個文本文件中
D.c語言源程序經(jīng)編譯后生成后綴為.obj的目標(biāo)程序
78.在URL中,默認(rèn)的Web服務(wù)器的端口是()。
A.80B.8080C.1024D.2048
79.
80.有三個關(guān)系R、S和T如下:
則由關(guān)系R和S得到關(guān)系T的操作是()。
A.自然連接B.交C.除D.并
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:依次取出字符串中所有的數(shù)字字符,形成新的字符串,并取代原字符串。例如原始字符串是“ab45c6djfd789”,則輸出后的字符是“456789”。請修改函數(shù)proc()中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),其功能是找出2×M整型二維數(shù)組中最大元素的值,并將此值返回調(diào)用函數(shù)。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#defineM4#include<stdio.h>intfun(inta[][m]){}voidmain(){intarr[2][M]={5,8,3,45,76,-4,12,82};printf(“max=%d\n”,fun(arr));}
參考答案
1.B字符‘\\0’為空值,其ASCII值為0,所以B選項的值為1。字符‘0’的ASCII值為48,所以A、C、D選項的值均不為1。故本題答案為B選項。
2.A由函數(shù)fun(int*a,intn)中語句if(a[j]>a[k])k=j;可知當(dāng)前k是記錄數(shù)組中較大數(shù)據(jù)值所在位置的下標(biāo)變量,所以該函數(shù)的作用是對數(shù)組a中的下標(biāo)為偶數(shù)位置的數(shù)據(jù)進(jìn)行從大到小的排序,即對a[0],a[2],a[4],a[6]中的數(shù)據(jù)1,3,5,7進(jìn)行從大到小的排序,其他位置的數(shù)據(jù)不變,所以答案為A)。
3.B解析:數(shù)據(jù)庫管理系統(tǒng)的三級模式結(jié)構(gòu)由外模式、模式和內(nèi)模式組成。夕模式,或子模式,或用戶模式,是指數(shù)據(jù)庫用戶所看到的數(shù)據(jù)結(jié)構(gòu),是用戶看到的數(shù)據(jù)視圖。模式,或邏輯模式,是數(shù)據(jù)庫中對全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特性的描述,是所有用戶所見到的數(shù)據(jù)視圖的總和。外模式是模式的—部分。內(nèi)模式,或存儲模式,或物理模式,是指數(shù)據(jù)在數(shù)據(jù)庫系統(tǒng)內(nèi)的存儲介質(zhì)上的表示,即對數(shù)據(jù)的物理結(jié)構(gòu)和存取力式的描述。
4.D解析:線性表的順序存儲是用一片連續(xù)的空間來存放數(shù)據(jù)元素,其特點是邏輯上相鄰的元素在物理位置上也相鄰。數(shù)據(jù)元素之間邏輯上的先后關(guān)系自動隱含在物理位置的相鄰元素之中,因此,不需要另外開辟空間來保存元素之間的關(guān)系。
5.B此題考查的是函數(shù)fun,fun(b,c)=5,然后fun(2*a,5)=fun(8,5)=6。
6.B
7.C選項A、B的空間不夠;字符串存儲要有結(jié)束符\0,且要占用一個空間,printf用來輸出字符,不能輸入字符串。
8.D
9.D
10.C
11.B第一個for循環(huán)的作用是讓p指向每行的首地址,第二個for循環(huán)的作用是把它指向的字符串輸出,故選擇B選項。
12.A根據(jù)單位鏈表(包含頭結(jié)點)的結(jié)構(gòu),只要掌握了表頭,就能夠訪問整個鏈表,因此增加頭結(jié)點的目的是為了便于運算的實現(xiàn)。
13.A
14.A
15.Bscanf(\u3000)語句中用“空格”間隔不同的字符串,空格將被全部忽略掉,所以用scanf(\u3000)函數(shù)不能輸入空格;getehar(\u3000)函數(shù)用于輸入字符,其調(diào)用形式為:ch=getelaar(\u3000),getehar(\u3000)函數(shù)從終端讀入一個字符作為函數(shù)值,把讀入的字符賦給變量ch。在輸入時,空格、回車符都將作為字符讀入,而且只有在用戶敲入Enter鍵時,讀入才開始執(zhí)行。gets(\u3000)函數(shù)的凋用形式為:gets(str_adr),其中stradr是存放輸入字符串的起始地址,可以是字符數(shù)組名、字符數(shù)組元素的地址或字符指針變量。9ets函數(shù)用來從終端鍵盤讀入字符串(包括空格符),直到讀入一個換行符為止。getc(\u3000)函數(shù)的調(diào)用形式為:ch=getc(pf)其中pf是文件指針。函數(shù)的功能是從pf指定的文件中讀入一個字符,并把它作為函數(shù)值返回。
16.D【答案】:D
【知識點】:軟件設(shè)計中使用的工具
【解析】:數(shù)據(jù)流圖是結(jié)構(gòu)化分析方法中使用的工具,它以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動和處理的過程,由于它只反映系統(tǒng)必須完成的邏輯功能,所以它是一種功能模型,是在可行性研究階段用到的。PAD圖是問題分析圖(ProblemAnalysisDiagram)的英文縮寫,是在詳細(xì)設(shè)計階段用到的。系統(tǒng)結(jié)構(gòu)圖是對軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計的圖形顯示,是在概要設(shè)計階段用到的。程序流程圖是對程序流程的圖形表示,故選D。
17.D解析:C語言規(guī)定,字符常量在程序中要用單引號括起來。判斷c1是否為小寫字母的充要條件c1>='a'和c1<='z',用邏輯與(&&)來表示。A選項的這種形式在C語言中沒有,所以選項D)正確.
18.D題干中x是一個整型變量,賦值為072。以0開頭的整數(shù)是八進(jìn)制的表示形式。printf函數(shù)中,格式字符%d表示以十進(jìn)制形式輸出“x+1”,所以需要將072轉(zhuǎn)換成十進(jìn)制數(shù),即7×8+2=58,輸出“x+1”為59。故本題答案為D選項。
19.B解析:本題考核軟件工程中的需求分析環(huán)節(jié)。需求分析應(yīng)交付的主要文檔就是需求規(guī)格說明書。
20.B
21.封裝封裝
22.2525解析:本題考查帶參數(shù)的宏的定義及相關(guān)運算。運算過程為:t=POW(x+y)=(2+3)*(2+3)=25。
23.120120解析:靜態(tài)變量的類型說明符是static,靜態(tài)局部變量屬于靜態(tài)存儲方式,它具有以下特點:
靜態(tài)變量的類型說明符是static,靜態(tài)局部變量屬于靜態(tài)存儲方式,它具有以下特點:
①靜態(tài)局部變量屬于靜態(tài)存儲類別,在靜態(tài)存儲區(qū)內(nèi)分配存儲單元。在程序整個運行期間都不釋放。
②對靜態(tài)局部變量是在編譯時賦初值的,即只賦初值—次,在程序運行時它已有初值。以后每次調(diào)用函數(shù)時不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時的值。
③如在定義局部變量時不賦初值的話,則對靜態(tài)局部變量來說,編譯時自動賦初值0(對數(shù)值型變量)或空字符(對字符變量)。(注意:C語言中非靜態(tài)變量在定義時,系統(tǒng)并不會自動給它賦初值)
④雖然靜態(tài)局部變量在函數(shù)調(diào)用結(jié)束后仍然存在,但其他函數(shù)是不能引用它的。本題中函數(shù)的功能是:與for語句一起求一個整數(shù)的階乘。
24.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間的邏輯關(guān)系,分為線性結(jié)構(gòu)和非線性結(jié)構(gòu)。常見的線性結(jié)構(gòu)有線性表、棧和隊列等,常見的非線性結(jié)構(gòu)有樹、二叉樹等。
25.11解析:用“&&”連接兩個表達(dá)式時,若第1個表達(dá)式的值為“假”,則運算結(jié)果與第2個表達(dá)式無關(guān),此時第2個表達(dá)式將不再進(jìn)行計算。本題中第1個表達(dá)式“j=!ch”值為0,所以第2個表達(dá)式i++將不再進(jìn)行計算,i的值為1。
26.bb解析:字符類型的數(shù)據(jù)在內(nèi)存中以相應(yīng)的ASCII碼存放,另外,字符數(shù)據(jù)還可以作為整數(shù)參加運算。格式控制參數(shù)中的格式字符用以指定輸出項的數(shù)據(jù)類型和輸出格式,輸出字符與其對應(yīng)的輸出項的類型要一致。本題中,“B”的ASCII碼為98,字符類型m的ASCII為(98+32=130),所以最后輸出為b。
27.SET單價=單價*1.05SET單價=單價*1.05解析:更新表中元組的值,使用UPDATE命令,一次可以更新表中的一個或多個屬性值。UPDATE短語之后指定更新數(shù)據(jù)所屬的表,將新的屬性值或表達(dá)式賦值給對應(yīng)的屬性名(SET單價=單價*1.05),并置于SET短語之后。要求對人民郵電出版社的圖書漲5%,需要用WHERE短語對元組進(jìn)行限制,即對符合條件的元組進(jìn)行更新。
28.結(jié)構(gòu)結(jié)構(gòu)解析:路徑測試是白盒測試方法中的—種,它要求對程序中的每條路徑最少檢查一次,目的是對軟件的結(jié)構(gòu)進(jìn)行測試。
29.99解析:本題考查函數(shù)的綜合知識。首先,我們可以利用強制轉(zhuǎn)換類型轉(zhuǎn)換運算符,將一個表達(dá)式轉(zhuǎ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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貧困生申請書父母離異
- 學(xué)費緩交申請書范文
- 技能大賽申請書
- 考研宿舍的申請書
- 崗位調(diào)動申請書理由
- 住宿生申請書
- 2024-2025學(xué)年高中地理課時分層作業(yè)12人類面臨的主要環(huán)境問題含解析湘教版必修2
- 2024-2025學(xué)年高中化學(xué)課時分層作業(yè)11酚含解析新人教版選修5
- 2024-2025學(xué)年高中生物第6章第1節(jié)第2課時動物細(xì)胞的有絲分裂無絲分裂及觀察有絲分裂實驗學(xué)案新人教版必修1
- 2024-2025學(xué)年高中語文課時作業(yè)11包身工含解析新人教版必修1
- 【語文】第23課《“蛟龍”探海》課件 2024-2025學(xué)年統(tǒng)編版語文七年級下冊
- GB/T 32691-2016汽車空調(diào)電磁離合器
- 染廠公司簡介(4個范本)
- 鐵路工程概預(yù)算-工程經(jīng)濟管理培訓(xùn)-課件
- 面部激素依賴性皮炎的管理課件
- 智慧環(huán)衛(wèi)項目建設(shè)方案
- 人民醫(yī)院醫(yī)共體財務(wù)管理部工作手冊
- 高三日語一輪復(fù)習(xí)之自謙語句型課件
- YYT 0325-2022 一次性使用無菌導(dǎo)尿管
- 馬克思主義基本原理教案:第一章+教案
- 重走長征路卡通思維導(dǎo)圖
評論
0/150
提交評論