




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2021-2022年湖北省武漢市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)重點(diǎn)匯總測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.在一個(gè)元素個(gè)數(shù)為N的數(shù)組里,找到升序排在N/5位置的元素的最優(yōu)算法時(shí)間復(fù)雜度是()A.O(n)B.O(nlogn)C.O(n(logn)2)D.O(n3/2)
2.若有定義:typedefint*INTEGER;INTEGERp,*q;則以下敘述正確的是()。
A.q是基類型為int的指針變量
B.p是int型變量
C.p是基類型為int的指針變量
D.程序中可用INTEGER代替類型名int
3.有以下程序:#include<stdi0.h>main(){inta=1,b=2;for(;a<8;a++){b+=a;a+=2;)printf("%d,%d\n",a,b);}程序運(yùn)行后的輸出結(jié)果是()。A.9,18B.8,11C.7,11D.10,14
4.C語言可執(zhí)行程序的開始執(zhí)行點(diǎn)是()。
A.包含文件中的第一個(gè)函數(shù)B.程序中第一個(gè)函數(shù)C.程序中的main()函數(shù)D.程序中第一條語句
5.若要說明一個(gè)類型名STP,使得定義語句STPs;等價(jià)于Char*s;,以下選項(xiàng)中正確的是()。
A.typedefChar*s;
B.typedefChar*STP;
C.typedefSTP*Char;
D.typedef*CharSTP;
6.設(shè)有向無環(huán)圖G中的有向邊集合E={<1,2>,<2,3>,<3,4>,<1,4>},則下列屬于該有向圖G的一種拓?fù)渑判蛐蛄械氖?)。
A.1,2,3,4B.2,3,4,1C.1,4,2,3D.1,2,4,3
7.若變量已正確定義并賦初值,以下合法的賦值語句是()。
A.k=(m==n);B.k=-m-nC.k=int(m+n);D.k=m*n=1;
8.有定義語句intb;charc[10];,則正確的輸入語句是______。A.scallf("%d%s",&b,&c);
B.scallf("%d%s",&b,c);
C.scanf("%d%s",b,c)
D.scanf("%d%s",b,&c);
9.有以下定義和語句:structworkers{intnum;charname[20];charc;struct{intday;intmonth;intyear;}s;};structworkersw,*pw;pw=&w;能給w中year成員賦1980的語句是()。
A.pw->year=1980;
B.w.year=1980;
C.w.s.year=1980;
D.*pw.year=1980;
10.以下編碼方法中,()屬于熵編碼。
A.哈夫曼編碼B.小波變換編碼C.線性預(yù)測編碼D.形成編碼
11.
12.以下程序的輸出結(jié)果是()。main(){charst[20]="hell0\O\t\\\”;printf("%d%d\n",strlen(st),sizeof(st));}A.99B.520C.1320D.2020
13.下面關(guān)于串的的敘述中,哪一個(gè)是不正確的()。
A.串是字符的有限序列
B.空串是由空格構(gòu)成的串
C.模式匹配是串的一種重要運(yùn)算
D.串既可以采用順序存儲(chǔ),也可以采用鏈?zhǔn)酱鎯?chǔ)
14.下列能正確定義且賦初值的語句是()。
A.intn1=n2=1;
B.charC=99;
C.floatf=f+1;
D.doublex=1.2E5.6;
15.
16.在一個(gè)順序隊(duì)列中,隊(duì)首指針指向隊(duì)首元素的____位置。
A.前一個(gè)B.后一個(gè)C.當(dāng)前D.最后一個(gè)
17.以下敘述中錯(cuò)誤的是
A.在函數(shù)外部定義的變量在所有函數(shù)中都有效
B.在函數(shù)內(nèi)部定義的變量只能在本函數(shù)范圍內(nèi)使用
C.函數(shù)中的形參屬于局部變量
D.在不同的函數(shù)中可以使用相同名字的變量
18.已知大寫字母A的ASCII碼是65,小寫字母a的ACSII碼是97。下列能將變量C中的大寫字母轉(zhuǎn)換為對應(yīng)小寫字母的語句是()。
A.c=(c-'A')%26+'A'B.c=c+32C.c=c-'A'+'A'D.c=('A'+C)%26-'a'
19.讀取二進(jìn)制文件的函數(shù)調(diào)用形式為:fread(buffersize,count,fp);,其中buffer代表的是()。
A.一個(gè)文件指針,指向待讀取的文件
B.一個(gè)整型變量,代表待讀取的數(shù)據(jù)的字節(jié)數(shù)
C.一個(gè)內(nèi)存塊的首地址,代表讀人數(shù)據(jù)存放的地址
D.一個(gè)內(nèi)存塊的字節(jié)數(shù)
20.下列敘述中正確的是()。
A.continue語句的作用是使程序的執(zhí)行流程跳出包含它的所有循環(huán)
B.break語句只能用在循環(huán)體內(nèi)和switch語句體內(nèi)
C.在循環(huán)體內(nèi)使用break語句和continue語句的作用相同
D.break語句只能用于switch語句體中
二、2.填空題(20題)21.算法執(zhí)行過程中所需要的基本運(yùn)算次數(shù)稱為算法的______。
22.以下程序運(yùn)行后的輸出結(jié)果是()。structNODE{intk;structNODE*link;};main(){structNODEm[5],*p=m,*q=m+4;inti=0:while(p!=q){p->k=++i;p++;q->k=1++;q--;}q->k=i:for(i=0;i<5;i++)printf("%d",m[i].k);printf("\n");}
23.以下程序的輸出結(jié)果是【】。
#defineMCRA(m)2*m
#defineMCRB(n,m)2*MCRA(n)+m
main()
{
inti=2,j=3;
printf("%d\n",MCRB(j,MCRA(i)));
}
24.以下條件表達(dá)式可計(jì)算:1+|a|的值,請?zhí)羁铡?/p>
a>=0?【】:【】
25.對于長度為n的順序存儲(chǔ)的線性表,當(dāng)隨機(jī)插入和刪除一個(gè)元素時(shí),需平均移動(dòng)元素的個(gè)數(shù)為【】。
26.設(shè)有下列程序:
#include<stdio.h>
#include<string.h>
main()
{inti;
chars[10],t[10];
gets(t);
for(i=0;i<2;i++)
{gets(s);
if(strcmp(t,s)<0)strcpy(t,s);
}
printf("%s\n",t);
}
程序運(yùn)行后,從鍵盤上輸入(<CR>代表回車符):CDEF<CR>BADEF<CR>QTHRG<CR>,則程序的輸出結(jié)果是______。
27.以下程序的輸出結(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));}
28.面向?qū)ο蟮哪P椭校罨靖拍钍菍ο蠛汀尽俊?/p>
29.以下程序輸出的最后一個(gè)值是【】。
intff(intn)
{staticintf=1;
f=f*n;
retumf;
}
main()
{inti;
for(i=1;i<=5;i++)printf("%d\n",ff(i))i
}
30.性表的多種存儲(chǔ)結(jié)構(gòu)中,最簡單的方法是【】。
31.表示“整數(shù)x的平方大于36"時(shí)的值為“真”的C語言邏輯表達(dá)式是【】。
32.若有定義intm=5,y=2,則執(zhí)行表達(dá)式y(tǒng)+=y-=m*=y后,y的值為【】。
33.下面程序中函數(shù)creat用于建立一個(gè)帶頭結(jié)點(diǎn)的單向鏈表,新產(chǎn)生的結(jié)點(diǎn)總是插在鏈表的末尾,單向鏈表的頭指針作為函數(shù)值返回。將程序補(bǔ)充完整。
#include<stdiao.h>
structlist
{chardata;structlist*next;};
structlist*creat()
{
structlist*h,*p,*q;charch;
h=【】malloc(sizeof(structlist));
p=q=h;ch=getchar();
while(ch!='?')
{
p=【】malloc(sizeof(structlist));
p->data=ch;q->next=p;q=p;ch=getchar();
}
p->next='\0';
【】;
}
34.若有如下程序:
voidsub()
{staticintx=6;
x/=2;printf("%d",x);}
main()
{intm;
for(m=0;m<=2;m++)sub();}
則程序運(yùn)行后的輸出結(jié)果是【】。
35.執(zhí)行下列程序的輸出結(jié)果是【】。
main()
{
floata=1,b;
b=++a*++a;
printf("%f\n",b);
}
36.以下程序的輸出結(jié)果是【】。
main()
{inta=0;
a+=(a=8);
printf(“%d\n”,A);
}
37.以下函數(shù)sstrcat的功能是實(shí)現(xiàn)字符串的連接,即將t所指字符串復(fù)制到s所指字符串的尾部。例如:,所指字符串為abed,t所指字符串為efgh,調(diào)用函數(shù)sstrcat后s所指字符串為abcdefgh。請?zhí)羁铡?/p>
#inehde<stdio.h>
#include<string.h>
voidsstuat(char*9,char*t)
{intn;
n=strlen(s);
while(*(s+n)=【】){s++;t++;}
38.以下程序的運(yùn)行結(jié)果是【】。
#include<stdio.h>
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
case3:a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
39.下述函數(shù)用于統(tǒng)計(jì)—行字符中的單詞個(gè)數(shù),單詞之間用空格分隔。
word_num(str)
charstr[];
{int,num=O,word=O;
for(i=0;str[i]!=【】;i++)
if(【】=")wprd=0
elseif(word=O)
{
word=1:
【】;
}
return(num);
}
40.有以下程序片段,請問執(zhí)行后的輸出結(jié)果是【】。
intn=10;
while(n>7)
{printf("%d",n--);
}
三、1.選擇題(20題)41.設(shè)有如下三個(gè)關(guān)系表:
下列操作中正確的是()。
A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S
42.下列語句中,正確的是______。
A.staticcharstr[]="China";
B.staticcharstr[];str="China";
C.staticcharstr1[5],str2[]={"China"};strl=str2;
D.staticcharstr1[],str2[];str2={"China"};strcpy(str1,str2);
43.下列敘述中正確的是()。
A.軟件測試應(yīng)該由程序開發(fā)者來完成
B.程序經(jīng)調(diào)試后一般不需要再測試
C.軟件維護(hù)只包括對程序代碼的維護(hù)
D.以上三種說法都不對
44.有如下程序:main(){inta[3][3]={{i,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d\n",s);}該程序的輸出結(jié)果是______。
A.18B.19C.20D.21
45.有以下程序intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=1;i<3;i++)j+=f(i);printf("%d\n",j);}程序運(yùn)行后的輸出結(jié)果是
A.4B.3C.2D.1
46.根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間前后件關(guān)系的復(fù)雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分成()。
A.動(dòng)態(tài)結(jié)構(gòu)和靜態(tài)結(jié)構(gòu)B.緊湊結(jié)構(gòu)和非緊湊結(jié)構(gòu)C.線性結(jié)構(gòu)和非線性結(jié)構(gòu)D.內(nèi)部結(jié)構(gòu)和外部結(jié)構(gòu)
47.在軟件測試設(shè)計(jì)中,軟件測試的主要目的是
A.實(shí)驗(yàn)性運(yùn)行軟件B.證明軟件正確C.找出軟件中全部錯(cuò)誤D.盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤
48.設(shè)計(jì)軟件結(jié)構(gòu)是在軟件生命周期的()。
A.軟件定義期B.軟件開發(fā)期C.軟件維護(hù)期D.以上3個(gè)都不是
49.字符(char)型數(shù)據(jù)在微內(nèi)存中的存儲(chǔ)形式是______。
A.反碼B.補(bǔ)碼C.EBCDIC碼D.ASCII碼
50.字符串"\\\"ABCDEF\"\\"的長度是()。
A.15B.10C.7D.8
51.為了避免在嵌套的條件語句ifelse中產(chǎn)生二義性,C語言規(guī)定,else子句總是與()配對。
A.縮排位置相同ifB.其前面最近的ifC.其后面最近的ifD.同一行上的if
52.已知大寫字母A的ASCII碼是65,小寫字母a的ASCII碼是97。下列不能將變量c中的大寫字母轉(zhuǎn)換為對應(yīng)小寫字母的語句是()。
A.c=(c-'A')%26+'a'
B.c=c+32
C.c=C-'A'+'a'
D.c=('A'+C)%26-'a'
53.有下列二叉樹,對此二叉樹前序遍歷的結(jié)果為()。
A.XZCYABB.XYZABCC.XYABCZD.XYAZBC
54.單個(gè)用戶使用的數(shù)據(jù)視圖的描述稱為______。
A.外模式B.概念模式C.內(nèi)模式D.存儲(chǔ)模式
55.下面程序段的執(zhí)行結(jié)果是()。main(){inta[5][5],i,j;for(i=1;i<5;i++)for(j=1;j<5;j++)a[i][j]=(i<j)*(j/i);for(i=1;i<5;i++){for(j=1;j<5;j++)printf("%2d",a[i][j]);printf("\n");}}
A.1111111111111111
B.0001001001001000
C.1000010000100001
D.0000000000000000
56.若有說明inta[][3]={1,2,3,4,5,6,7,8,9},則a數(shù)組第一維的大小是()。
A.2B.3C.4D.無確定值
57.當(dāng)變量c的值不為2、4、6時(shí),值也為"真"的表達(dá)式是
A.(c==2)||(c==4)||(c==6)
B.(c>=2&&c<=6)||(c!=3)||(c!=5)
C.(c>=2&&c<=6)&&!(c%2)
D.(c>=2&&c<=6)&&(c%2!=1)
58.請讀程序:#include<stdio.h>main(){inta=5,b=7,c=9;pintf("%d,%d,"a,b,C);printf("%d,%d",a,D);}上面程序的輸出結(jié)果是_______。
A.5,7,9,5,7B.5,7,5,7C.5,7,不定7,9D.5,7,5,7,不定
59.有以下程序:#include<stdio.h>main(){charc1='1',c2='2';c1=getchar();c2=getchar();putchar(c1);putchar(c2);}當(dāng)運(yùn)行時(shí)輸入:a<回車>后,以下敘述正確的是()。
A.變量c1被賦予字符a,c2被賦予回車符
B.程序?qū)⒌却脩糨斎氲?個(gè)字符
C.變量c1被賦予字符a,c2中仍是原有字符2
D.變量c1被賦予字符a,c2中將無確定值
60.有以下程序:main(intarge,char*argv[]){intn,i=0;while(arv[1][i]!='\0'{n=fun();i++;}printf("%d\n",n*argc)}intfun(){staticints=0;s+=1;returns;}假設(shè)程序經(jīng)編譯、連接后生成可執(zhí)行文件exam.exe,若輸入以下命令行exam123<回車>則運(yùn)行結(jié)果為()。
A.6B.8C.3D.4
四、選擇題(20題)61.
62.算法的有窮性是指A.算法程序的運(yùn)行時(shí)間是有限的
B.算法程序所處理的數(shù)據(jù)量是有限的
C.算法程序的長度是有限的
D.算法只能被有限的用戶使用
63.(74)用鏈表表示線性表的優(yōu)點(diǎn)是()
A.便于插入和刪除操作
B.數(shù)據(jù)元素的物理順序與邏輯順序相同
C.花費(fèi)的存儲(chǔ)空間較順序存儲(chǔ)少
D.便于隨機(jī)存取
64.下面各選項(xiàng)中,均是C語言合法標(biāo)識(shí)符的選項(xiàng)組是()。
A.
B.
C.
D.
65.以下程序的輸出結(jié)果是()。
A.20,024,0x14
B.20,24,14
C.20,0x14,024
D.20,20,20
66.以下關(guān)于指針概念不正確的是()。
A.指針變量可以用整數(shù)賦值,但不可以用浮點(diǎn)數(shù)賦值
B.一個(gè)變量的地址稱為該變量的指針,一個(gè)指針變量只能指向同一類型的變量
C.只有同一類型的變量地址才能放到指向該類型變量的指針變量之中
D.只能將地址賦給指針變量
67.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.2344B.4332C.1234D.1123
68.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.10B.11C.20D.21
69.
70.以下關(guān)于typedef的敘述錯(cuò)誤的是()。
A.用typedef可以增加新類型
B.typedef只是將已存在的類型用一個(gè)新的名字來代表
C.用typedef可以為各種類型說明一個(gè)新名,但不能用來為變量說明一個(gè)新名
D.用typedef為類型說明一個(gè)新名,通常可以增加程序的可讀性
71.
72.
73.程序調(diào)試的任務(wù)是()。
A.設(shè)計(jì)測試用例B.驗(yàn)證程序的正確性C.發(fā)現(xiàn)程序中的錯(cuò)誤D.診斷和改正程序中的錯(cuò)誤
74.用鏈表表示線性表的優(yōu)點(diǎn)是()。A.A.便于隨機(jī)存取B.花費(fèi)的存儲(chǔ)空間較順序存儲(chǔ)少
C.便于捅入和刪除操作
D.數(shù)據(jù)元素的物理順序與邏輯順序相同
75.以下選項(xiàng)中不能作為C語言合法常量的是
A.’Fab’B.0.7e+9C."\b"D.’\01211’
76.
設(shè)有定義:“inta;floatb;”,執(zhí)行“scanf("%2d%f",&a,&b);”語句時(shí),若從鍵盤輸入876543.0<回車>,a和b的值分別是()。
A.876和543.000000
B.87和6.000000
C.87和543.000000
D.76和543.000000
77.有以下程序:
程序的運(yùn)行結(jié)果是()。
A.0B.10C.20D.出錯(cuò)
78.
79.(28)在數(shù)據(jù)管理技術(shù)的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中數(shù)據(jù)獨(dú)立性最高的階段是()
A.數(shù)據(jù)庫系統(tǒng)
B.文件系統(tǒng)
C.人工管理
D.數(shù)據(jù)項(xiàng)管理
80.若有定義:“inta,b;”,通過語句“scan[("%d;%d".,&a,&b);”,能把整數(shù)3賦給變量a,5賦給變量b的輸入數(shù)據(jù)是()。
A.35B.3,5C.3;5D.35
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)ptoc的功能是:利用插入排序法對字符串中的字符按從小到大的順序進(jìn)行排序。插入法的基本方法是:先對字符串中的頭兩個(gè)元素進(jìn)行排序,然后把第3個(gè)字符插入前兩個(gè)字符中,插入后前3個(gè)字符依然有序;再把第4個(gè)字符插入前三個(gè)字符中,待排序的字符串已
在主函數(shù)中賦予。
請修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<strin9.h>
#include<stdi0.h>
#defineM80
voidproc(char*arr)
{inti,j,n;charch;
n=strlen(arr):
for(i=1;i<n;i++)
//****found****
{c=arr[i];
j=i-1;
while((j>=o)&&(ch<arr[j]))
{
arr[j+1]=arr[j];
j--;
}
arr[j+1]=ch;
}
}
voidmain
{
chara[M]="QWERTYUIOPASDFGHJKLMNBVCXZ";
printf("Theoriginalstring:%s\n",a);
proc(a);
printf("Thestringaftersortin9:
%s\n\n",a);
}
六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是根據(jù)以下公式計(jì)算S,并將計(jì)算結(jié)果作為函數(shù)值返回,通過形參傳入。例如,若n的值為11時(shí),函數(shù)的值為1.833333。注意:部分源程序給出如下。請勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#include<string.h>floatfun(intn){}voidmain(){ intn; floats; system(“CLS”); printf(“\nPleaseenterN:”); scanf(“%d”,&n); s=fun(n); printf(“Theresultis:%f\n”,s);}
參考答案
1.A
2.C題干中使用typedef定義新類型名INTEGER,它代表int*類型。使用INTEGER定義p,相當(dāng)于int*p。使用INTEGER定義*q,相當(dāng)于int**q。所以p是基類型為int的指針變量,q是基類型為int*的指針變量,選項(xiàng)A、B、D錯(cuò)誤。故本題答案為C選項(xiàng)。
3.D第一次執(zhí)行循環(huán)前,a=1,滿足a<8,執(zhí)行循環(huán)后,b=3,a=3。執(zhí)行完a++操作后,a=4。由于a<8,執(zhí)行第二次循環(huán)后,b=7,a=6,執(zhí)行完a++操作后,a=7。由于a<8,執(zhí)行第三次循環(huán)后,b=14,a=9,執(zhí)行完a++操作后a=10。此時(shí)不滿足a<8,跳出循環(huán)。
4.C解析:每個(gè)C程序有且只有一個(gè)主函數(shù)main(),且程序必須從main函數(shù)開始執(zhí)行,并在main()函數(shù)中結(jié)束。
5.B用關(guān)鍵字typedef聲明一種新的類型的形式為typedef類型名標(biāo)識(shí)符。本題中的類型為char*。
6.A
7.A變量m、n的數(shù)據(jù)類型未知,但題目中已定義并賦初值。選項(xiàng)B的語句缺少分號結(jié)尾。選項(xiàng)C,強(qiáng)制轉(zhuǎn)化使用錯(cuò)誤。選項(xiàng)D的“m*n”只能用作表達(dá)式的右值,不能作為左值。故本題答案為A選項(xiàng)。
8.B解析:scanf函數(shù)中的“格式控制”后面應(yīng)當(dāng)是地址,而不是變量名。對于變量,通過地址運(yùn)算符“&”求出內(nèi)存中的地址;對于數(shù)組c[10],數(shù)組名c即為數(shù)組在內(nèi)存中的地址。
9.C題目中定義了一個(gè)結(jié)構(gòu)體,結(jié)構(gòu)體中成員又是一個(gè)結(jié)構(gòu)體,w為結(jié)構(gòu)體workers的變量。如果給內(nèi)層結(jié)構(gòu)體成員賦值,先要得到內(nèi)層結(jié)構(gòu)體變量,即“w.s”。若要給year賦值,表示為“w.s.year”即可。故本題答案為C選項(xiàng)。
10.A
11.D
12.B從題目中可知,\O、\t、\\分別為一個(gè)字符,而sizeof是求字節(jié)個(gè)數(shù)的函數(shù),其中包括\O占的字節(jié),strlen函數(shù)是求數(shù)組長度的函數(shù);其以\0結(jié)束,因此strlen的值為5,sizeof的值為20。
13.B
14.B在c語言規(guī)定中,可以在定義變量的同時(shí)給變量賦初值,選項(xiàng)A中n2沒有定義;選項(xiàng)C中不能在賦值表達(dá)式的右邊出現(xiàn)變量本身,選項(xiàng)D中字母E后面的數(shù)應(yīng)該為整數(shù),所以不對。
15.A
16.A
17.A全局變量有效范圍是從定義的位置開始到所在源文件的結(jié)束,在這區(qū)域內(nèi)的函數(shù)才可以調(diào)用,如果在定義函數(shù)之后,定義的變量,該變量不能被之前的函數(shù)訪問所以A選項(xiàng)說法錯(cuò)誤,答案為A選項(xiàng)。
18.B根據(jù)ASCII碼可知大寫字符A與小寫字符a的ASCIl碼相差32,而D中應(yīng)該是加上'a',選項(xiàng)A和C左側(cè)的表達(dá)式都是大寫字符C與大寫字符A的差與'a'的ASCIl代碼的和就是小寫字符c的ASCII代碼。
19.Cfread函數(shù)中的參數(shù)buffer是內(nèi)存塊的首地址,輸入的數(shù)據(jù)存入此內(nèi)存塊中。
20.Bcontinue語句的作用是跳過循環(huán)體中剩余的語句而進(jìn)行下一次循環(huán),所以A選項(xiàng)錯(cuò)誤。break語句的作用是終止正在執(zhí)行的switch語句體,跳出switch語句體或者強(qiáng)制終止當(dāng)前循環(huán),從當(dāng)前執(zhí)行的循環(huán)中跳出,所以C、D選項(xiàng)錯(cuò)誤。故本題答案為B選項(xiàng)。
21.時(shí)間復(fù)雜度時(shí)間復(fù)雜度解析:算法在執(zhí)行過程中所執(zhí)行的基本運(yùn)算的次數(shù),也就是執(zhí)行算法所需要的計(jì)算工作量,稱為算法的時(shí)間復(fù)雜度。
22.13431
23.1616解析:首先用j和MCRA(i)替換MCRB(n,m)中的參數(shù)n和m,變成2*MCRA(j)+MCRA(i),再用j和i替換MCRA(m)中的參數(shù)m,變成2*2*j+2*i=2*2*3+2*2=16。
24.1+a1-a1+a\r\n1-a解析:因?yàn)轭}目中求的是1+|a|的值,即1和a的絕對值之和。所以根據(jù)數(shù)學(xué)中求絕對值的規(guī)則,當(dāng)a>=0時(shí),絕對值取本身,當(dāng)a<0時(shí),絕對值取相反數(shù),再結(jié)合條件運(yùn)算符的計(jì)算規(guī)則可得到本題的答案為a>=0。注意:逗號表達(dá)式的求值規(guī)則。
25.n/2n/2解析:刪除一個(gè)元素,平均移動(dòng)的元素個(gè)數(shù)為(n-1+n-2+…+0)/n=(n-1)/2;插入一個(gè)元素,平均移動(dòng)元素個(gè)數(shù)為(n+n-1+n-2+…+1)/n=(n+1)/2;所以總體平均移動(dòng)元素個(gè)數(shù)為n/2。
26.QTHRGQTHRG解析:strcmp(t,s)函數(shù)用來比較t和s所指字符串的大小,若t>s,則函數(shù)值大于0;若t=s,則函數(shù)值等于0:若t<s,則函數(shù)值小于0。strcpy(t,s)函數(shù)的功能是把字符數(shù)組s所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指的存儲(chǔ)空間中。本題中,t[10]='CDEF'。第一次循環(huán),s[10]='BADEF',if語句的控制條件strcmp(t,s)<0不成立,接著執(zhí)行第二次循環(huán).s='QTHRG',if語句的控制條件strcmp(t,s)<0成立,執(zhí)行下列的語句,將字符數(shù)組s所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指的存儲(chǔ)空間中,然后輸出字符數(shù)組t。
27.99解析:本題考查函數(shù)的綜合知識(shí)。首先,我們可以利用強(qiáng)制轉(zhuǎn)換類型轉(zhuǎn)換運(yùn)算符,將一個(gè)表達(dá)式轉(zhuǎn)換成所需類型。如:(double)a是將a轉(zhuǎn)換成double類型;(int)(x+y)是將x+y的值轉(zhuǎn)換成整型。
本題可按部就班地逐步運(yù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
28.類類解析:面向?qū)ο竽P椭校罨镜母拍钍菍ο蠛皖?。對象是現(xiàn)實(shí)世界中實(shí)體的模型化:將屬性集和方法集相同的所有對象組合在一起,可以構(gòu)成一個(gè)類。
29.120120解析:靜態(tài)變量的類型說明符是static,靜態(tài)局部變量屬于靜態(tài)存儲(chǔ)方式,它具有以下特點(diǎn):
①靜態(tài)局部變量屬于靜態(tài)存儲(chǔ)類別,在靜態(tài)存儲(chǔ)區(qū)內(nèi)分配存儲(chǔ)單元。在程序整個(gè)運(yùn)行期間都不釋放。
②對靜態(tài)局部變量是在編譯時(shí)賦初值的,即只賦初值一次,在程序運(yùn)行時(shí)它已有初值。以后每次調(diào)用函數(shù)時(shí)不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時(shí)的值。
③如在定義局部變量時(shí)不賦初值的話,則對靜態(tài)局部變量來說,編譯對自動(dòng)賦初值0(對數(shù)值型變量)或空字符(對字符變量)。(注意:C語言中的非靜態(tài)變量在定義時(shí),系統(tǒng)并不會(huì)自動(dòng)給它賦初值)
④雖然靜態(tài)局部變量在函數(shù)調(diào)用結(jié)束后仍然存在,但其他函數(shù)是不能引用它的。
本題中函數(shù)的功能是:與for語句一起求一個(gè)整數(shù)的階乘。
30.順序存儲(chǔ)順序存儲(chǔ)
31.x<-6||x>6
32.-16-16解析:將賦值運(yùn)算符右側(cè)的“表達(dá)式”的值賦給左側(cè)的變量,并且賦值運(yùn)算符按照“自右而左”的結(jié)合順序,本題表達(dá)式應(yīng)先算m的值為10,再運(yùn)算y的值為8,最后計(jì)算y=y+(-8)=-8+(-8)=-16。
33.(structlist*)(structlist*)return(h)
34.310
35.66解析:++的優(yōu)先級高于*,先作自加運(yùn)算,b=++a*++a=2.0*3.0=6.0。b按實(shí)型輸出6.000000。
36.1616解析:在程序中首先將8賦值給變量a,然后再進(jìn)行復(fù)合賦值運(yùn)算。即a=a+a=8+8=16,所以該空格處應(yīng)該填16。
37.*t*t解析:程序中,(a+n)代表字符串s最后一個(gè)字符后的,'\\0',根據(jù)題意,'\\0'所在位置應(yīng)該賦值為字符串t的第一個(gè)字符,字符中t的其他字符根據(jù)循環(huán),依次賦值到,所指字符串的尾部,所以[14]應(yīng)填:*t。
38.a=2b=1a=2,b=1解析:本題考查了switch結(jié)構(gòu)的內(nèi)容。C語言中,程序執(zhí)行完一個(gè)case標(biāo)號的內(nèi)容后,如果沒有break語句,控制結(jié)構(gòu)會(huì)轉(zhuǎn)移到下一個(gè)case繼續(xù)執(zhí)行,因?yàn)閏ase常量表達(dá)式只是起語句標(biāo)號作用,并不是在該處進(jìn)行條件判斷。本題程序在執(zhí)行完內(nèi)部switch結(jié)構(gòu)后,繼續(xù)執(zhí)行了外部switch結(jié)構(gòu)的case2:分支,最后a和b的值分別為2和1。
39.\0'或0或NULLstr[i]num++或num=num+1或mum+=l\\0'或0或NULL\r\nstr[i]\r\nnum++或num=num+1或mum+=l解析:觀察題目要求,可以知道以下幾點(diǎn):
①for循環(huán)的結(jié)束條件應(yīng)當(dāng)是:str[i]已是字符串的最后一個(gè)字符;
②str[i]代表字符串str中的第i+1個(gè)字符;
③整型變量num的值是要記錄的單詞的個(gè)數(shù)。
C語言中規(guī)定字和會(huì)串的最后一個(gè)字和會(huì)是一個(gè)隱含的字符串結(jié)束符“\\0”,所以在題中第一個(gè)空中應(yīng)填寫“\\0”;題中第二個(gè)空應(yīng)填寫“str[i]”,以判斷當(dāng)前位置的字符是否為空格;題中第三個(gè)空中應(yīng)當(dāng)填寫“num++”,通地變量num的加1累加到字符串中的單詞個(gè)數(shù)。
40.1098
41.C解析:本題考查數(shù)據(jù)庫的關(guān)系代數(shù)運(yùn)算。R表中只有一個(gè)域名A,有兩個(gè)記錄(也叫元組),分別是m和n;S表中有兩個(gè)域名,分別是B和C,其所對應(yīng)的記錄分別為1和3。注意觀察表T,它是由R的第一個(gè)記錄依次與S的所有記錄組合,然后再由R的第二個(gè)記錄與S的所有記錄組合,形成的一個(gè)新表。上述運(yùn)算恰恰符合關(guān)系代數(shù)的笛卡兒積運(yùn)算規(guī)則。關(guān)系代數(shù)中,笛卡兒積運(yùn)算用“×”來表示。因此,上述運(yùn)算可以表示為T=R×S。因此,本題的正確答案為C。
42.A
43.D解析:本題考核軟件測試、軟件調(diào)試和軟件維護(hù)的概念。軟件測試的目標(biāo)是在精心控制的環(huán)境下執(zhí)行程序,以發(fā)現(xiàn)程序中的錯(cuò)誤,給出程序可靠性的鑒定。軟件測試具有挑剔性,測試不是為了證明程序是正確的,而是在設(shè)想程序有錯(cuò)誤的前提下進(jìn)行的,其目的是設(shè)法暴露程序中的錯(cuò)誤和缺陷,就是說,測試是程序執(zhí)行的過程,目的在于發(fā)現(xiàn)錯(cuò)誤;一個(gè)好的測試在于能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯(cuò)誤;一個(gè)成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯(cuò)誤。由于測試的這一特征,一般應(yīng)當(dāng)避免由開發(fā)者測試自己的程序。所以,選項(xiàng)A的說法錯(cuò)誤。
調(diào)試也稱排錯(cuò),目的是發(fā)現(xiàn)錯(cuò)誤的位置,并改正錯(cuò)誤,經(jīng)測試發(fā)現(xiàn)錯(cuò)誤后,可以立即進(jìn)行調(diào)試并改正錯(cuò)誤;經(jīng)過調(diào)試后的程序還需進(jìn)行回歸測試,以檢查調(diào)試的效果,同時(shí)也可防止在調(diào)試過程中引進(jìn)新的錯(cuò)誤。所以,選項(xiàng)B的說法錯(cuò)誤。
軟件維護(hù)通常有4類:為糾正使用中出現(xiàn)的錯(cuò)誤而進(jìn)行的改正性維護(hù);為適應(yīng)環(huán)境變化而進(jìn)行的適應(yīng)性維護(hù);為改進(jìn)原有軟件而進(jìn)行的完善性維護(hù);為將來的可維護(hù)和可靠而進(jìn)行的預(yù)防性維護(hù)。軟件維護(hù)不僅包括程序代碼的維護(hù),還包括文檔的維護(hù)。文檔可以分為用戶文檔和系統(tǒng)文檔兩類。但無論是哪類文檔,都必須與程序代碼同時(shí)維護(hù)。只有與程序代碼完全一致的文檔才有意義和價(jià)值。所以,選項(xiàng)C的說法錯(cuò)誤。
綜上所述,選項(xiàng)A、B、C的說法都錯(cuò)誤,所以,選項(xiàng)D為正確答案。
44.A解析:題中的外循環(huán)只執(zhí)行了2次:
第1次:a[1][0]=3,a[1][1]=4,所以s=7;
第2次:a[2][0]=5,a[2][1]=6,a[2][2]=0,所以s=7+5+6+0=18。
45.B解析:主函數(shù)中for循環(huán)執(zhí)行兩次,i=1和i=2。調(diào)用函數(shù)f(1),返回值為1,j=1;調(diào)用函數(shù)f(2),計(jì)算表達(dá)式f(n-1)+1的值時(shí)遞歸調(diào)用f(1),返回值為2,j=3。所以B為所選。
46.C解析:數(shù)據(jù)結(jié)構(gòu)概念一般包括3個(gè)方面的內(nèi)容:數(shù)據(jù)之間的邏輯關(guān)系、數(shù)據(jù)在計(jì)算機(jī)中的存儲(chǔ)方式以及在這些數(shù)據(jù)上定義的運(yùn)算的集合。數(shù)據(jù)的邏輯結(jié)構(gòu)是數(shù)據(jù)間關(guān)系的描述,它只抽象地反映數(shù)據(jù)元素間的邏輯關(guān)系,而不管其在計(jì)算機(jī)中的存儲(chǔ)方式。數(shù)據(jù)的邏輯結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu)。若各數(shù)據(jù)元素之間的邏輯關(guān)系可以用一個(gè)線性序列簡單地表示出來,則稱之為線性結(jié)構(gòu),否則稱之為非線性結(jié)構(gòu)。線性表是典型的線性結(jié)構(gòu),而樹形結(jié)構(gòu)是典型的非線性結(jié)構(gòu)。
47.D解析:使用人工或自動(dòng)手段來運(yùn)行或測定某個(gè)系統(tǒng)的過程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。軟件測試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程。測試要以查找錯(cuò)誤為中心,而不是為了演示軟件的正確功能。
48.BB。【解析】設(shè)計(jì)軟件結(jié)構(gòu),是在軟件概要設(shè)計(jì)階段進(jìn)行的,而概要設(shè)計(jì)屬于軟件開發(fā)期。
49.D解析:將一個(gè)字符常量放到一個(gè)字符變量中,實(shí)際上并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的ASCII碼值放到存儲(chǔ)單元中。
50.B解析:本題涉及字符串最基本的兩個(gè)概念:①字符串的長度是指字符串中字符的個(gè)數(shù),但不包括字符串結(jié)束符;②以反斜杠“\\”開頭的特殊字符序列,意思是把反斜杠后面的字符序列轉(zhuǎn)換成特定的含義,而不是原來的含義,不包含在字符串長度之內(nèi),“\\”連同后面的字符為一個(gè)長度。
51.B解析:本題考查ifelse語句。C語言規(guī)定,else總是與它前面的最近的if配對。
52.D解析:由題意可知,小寫字符a和大寫字符A的ASCII代碼相差為32,所以選項(xiàng)C)能將大寫字符c的ASCII代碼轉(zhuǎn)換為小寫字符c的ASCⅡ代碼;選項(xiàng)A)和C)左側(cè)的表達(dá)式都是大寫字符c與大寫字符A的差與'a'的ASCII代碼的和就是小寫字符c的ASCII代碼。而選項(xiàng)D)中應(yīng)該是加上'a',而不是減去'a'。
53.D解析:對二叉樹的前序遍歷是指先訪問根結(jié)點(diǎn),然后訪問左于樹,最后訪問右子樹,并且在訪問左、右子樹時(shí),先訪問根結(jié)點(diǎn),再依次訪問其左、右于樹。
54.A解析:選項(xiàng)A)正確,外模式是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式;選項(xiàng)B)不正確,全局?jǐn)?shù)據(jù)視圖的描述稱為概念模式,即數(shù)據(jù)庫中全部數(shù)據(jù)的整體邏輯結(jié)構(gòu)的描述;選項(xiàng)C)不正確,物理存儲(chǔ)數(shù)據(jù)視圖的描述稱為內(nèi)模式,即數(shù)據(jù)庫在物理存儲(chǔ)方面的描述;選項(xiàng)D)不正確,存儲(chǔ)模式即為內(nèi)模式。
55.C解析:本題使用一個(gè)雙重循環(huán)對—個(gè)二維數(shù)組的一部分賦值(下標(biāo)中含0的元素不賦值),賦值表達(dá)式是a[i][j]=(i/j)*(j/i)。因?yàn)閕和j都是正整數(shù),所以當(dāng)i大于j時(shí),j/i為0,當(dāng)i小于j時(shí),i/j為0,而0乘以任何數(shù)都為0,故表達(dá)式(i/j)*(j/i)在i和j不相等時(shí)的值為0。當(dāng)i和j相等時(shí),i/j和j/i的值都為1,所以表達(dá)式(i/j)*(j/i)的值為1。故二維數(shù)組中的a[1][1]、a[2][2]、a[3][3]、a[4][4]被賦為1,其余下標(biāo)不含0的元素被賦為0。故應(yīng)該選擇C。
56.B解析:本題考查二維數(shù)組第一維的大小如何確定。二維數(shù)組第一維的大小由下列規(guī)則確定:①當(dāng)初值的個(gè)數(shù)能被第二維的常量表達(dá)式的值除盡時(shí),所得商數(shù)就是第一維的大?。孩诋?dāng)初值的個(gè)數(shù)不能被第二維的常量表達(dá)式的值除盡時(shí),第一維的大小等于所得商數(shù)加1。
57.B解析:滿足表達(dá)式(c>=2&&c<=6)的整型變量c的值是2,3,4,5,6。當(dāng)變量c的值不為2,4,6時(shí),其值只能為3或5,所以表達(dá)式c!=3和c!=5中至少有一個(gè)為真,即不論c為何值,選項(xiàng)B中的表達(dá)式都為'真'。
58.D解析:printf函數(shù)按格式控制符的個(gè)數(shù)輸出表列中對應(yīng)的數(shù)據(jù),若輸出表列的個(gè)數(shù)大于格式控制符個(gè)數(shù),則輸出與格式控制符對應(yīng)的輸出表列的數(shù)據(jù),輸出表列中多的則省略;若格式控制符個(gè)數(shù)大于輸出表列的個(gè)數(shù),則輸出與格式控制符對應(yīng)的輸出表列的數(shù)據(jù),格式控制符多的部分輸出的數(shù)據(jù)是隨機(jī)的。
59.A解析:本題考查的是getchar()函數(shù)。getchar()函數(shù)執(zhí)行時(shí)將從鍵盤緩沖區(qū)中讀取用戶的輸入,而不管輸入的是否可打印字符,所以當(dāng)輸入a<回車>后,鍵盤緩沖區(qū)被輸入的實(shí)際上是兩個(gè)字符:'a'和'\\n'。故選項(xiàng)A的說法是正確的。
60.A解析:主函數(shù)的第一個(gè)參數(shù)argc為整形參數(shù),記下從命令行輸入的參數(shù)的個(gè)數(shù);第二個(gè)參數(shù)argv是一個(gè)字符型的指針數(shù)組,它的每一個(gè)元素指向命令行輸入的參數(shù)字符數(shù)。在本例中argc的值為2,argv[0]指向字符串“exam”,argv[1]指向參數(shù)字符串“123”。在main()函數(shù)中,while循環(huán)執(zhí)行了3次,調(diào)用了3次fun()函數(shù);第一次調(diào)用了fun()函數(shù)時(shí),定義了一個(gè)靜態(tài)變量s并賦初值0,加1后作為函數(shù)值返回,n的值為1;第二次調(diào)用fun()函數(shù)時(shí),靜態(tài)變量s的值將保留上一次退出時(shí)的值1,再加1為2,作為函數(shù)值返回,n的值為2;同理第三次調(diào)用返回后,n的值為3。輸出n*argc的值為6所以,A選項(xiàng)為所選。
61.B
62.A算法的有窮性,是指算法必須能在有限的時(shí)間內(nèi)做完,即算法必須能在執(zhí)行有限個(gè)步驟之后終止。
63.A注:因?yàn)椴恍枰苿?dòng)元素
64.B合法的標(biāo)識(shí)符由字母、數(shù)字和下劃線組成,并且第一個(gè)字符必須為字母或下劃線,用戶定義的標(biāo)識(shí)符不能與關(guān)鍵字相同。選項(xiàng)A),數(shù)字不能為第一個(gè)字母,auto為關(guān)鍵字;選項(xiàng)c)中,也是數(shù)字不能為第一個(gè)字母,else為關(guān)鍵字;選項(xiàng)D)中負(fù)號不合法。
65.B本題的考查點(diǎn)是不同格式的數(shù)據(jù)輸出。prinff函數(shù)對不同類型的數(shù)據(jù)用不同的格式字符,”%d”是以帶符號的十進(jìn)制形式輸出整數(shù)(正數(shù)不輸出符號
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公路開挖合同范本
- 買衣服購銷合同范本
- 養(yǎng)殖配件小窗采購合同范本
- 京津冀外包合同范本
- 農(nóng)民承包樹苗合同范本
- 企業(yè)定制酒合同范本
- 出售農(nóng)機(jī)全套紙合同范本
- 半日制合同范本
- 單位門衛(wèi)聘用合同范本
- 北京正規(guī)購車合同范本
- 2024-2025年第二學(xué)期數(shù)學(xué)教研組工作計(jì)劃
- 2025輔警招聘公安基礎(chǔ)知識(shí)題庫附含參考答案
- GB/T 44927-2024知識(shí)管理體系要求
- 2025年環(huán)衛(wèi)工作計(jì)劃
- 2024年07月山東省泰山財(cái)產(chǎn)保險(xiǎn)股份有限公司2024年夏季校園招考29名工作人員筆試歷年參考題庫附帶答案詳解
- 品質(zhì)巡檢培訓(xùn)課件
- 醫(yī)療器械生產(chǎn)企業(yè)并購合同
- 2025版新能源汽車充電站建設(shè)合同含政府補(bǔ)貼及稅收優(yōu)惠條款
- 初驗(yàn)整改報(bào)告格式范文
- 2025年北京國資公司招聘筆試參考題庫含答案解析
- 2023青島版數(shù)學(xué)三年級下冊全冊教案
評論
0/150
提交評論