![2021-2022年黑龍江省大興安嶺地區(qū)全國計算機等級考試C語言程序設(shè)計真題(含答案)_第1頁](http://file4.renrendoc.com/view/ce0614851e80ca11be416d630a3db400/ce0614851e80ca11be416d630a3db4001.gif)
![2021-2022年黑龍江省大興安嶺地區(qū)全國計算機等級考試C語言程序設(shè)計真題(含答案)_第2頁](http://file4.renrendoc.com/view/ce0614851e80ca11be416d630a3db400/ce0614851e80ca11be416d630a3db4002.gif)
![2021-2022年黑龍江省大興安嶺地區(qū)全國計算機等級考試C語言程序設(shè)計真題(含答案)_第3頁](http://file4.renrendoc.com/view/ce0614851e80ca11be416d630a3db400/ce0614851e80ca11be416d630a3db4003.gif)
![2021-2022年黑龍江省大興安嶺地區(qū)全國計算機等級考試C語言程序設(shè)計真題(含答案)_第4頁](http://file4.renrendoc.com/view/ce0614851e80ca11be416d630a3db400/ce0614851e80ca11be416d630a3db4004.gif)
![2021-2022年黑龍江省大興安嶺地區(qū)全國計算機等級考試C語言程序設(shè)計真題(含答案)_第5頁](http://file4.renrendoc.com/view/ce0614851e80ca11be416d630a3db400/ce0614851e80ca11be416d630a3db4005.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2021-2022年黑龍江省大興安嶺地區(qū)全國計算機等級考試C語言程序設(shè)計真題(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.下面程序的運行結(jié)果是
#include<stdio.h>
main()
{inta=28,b;
chars[10],*p;
p=s;
do{b=a%16;
if(b<10)*p=b+48;
else*p=b+55;
p++;a=a/5;}while(a>0);
*p=′\0′;puts(s);}
A.10B.C2C.C51D.\0
2.定義int*swap()指的是______。
A.—個返回整型值的函數(shù)swap()
B.一個返回指向整型值指針的函swap()
C.一個指向函數(shù)swap()的指針,函數(shù)返回一個整型值
D.以上說法均錯
3.下面關(guān)于圖的存儲的敘述中正確的是()。
A.用鄰接表法存儲圖,占用的存儲空間大小只與圖中邊數(shù)有關(guān),而與頂點個數(shù)無關(guān)
B.用鄰接表法存儲圖,占用的存儲空間大小與圖中邊數(shù)和頂點個數(shù)都有關(guān)
C.用鄰接矩陣法存儲圖,占用的存儲空間大小與圖中頂點個數(shù)和邊數(shù)無關(guān)
D.用鄰接矩陣存儲圖,占用的存儲空間大小只與圖中邊數(shù)有關(guān),而與頂點個數(shù)無關(guān)
4.
5.下列程序的輸出結(jié)果是______。#include<stdio.h>main(){doubled=3.2;intx,y;x=1.2;y=(x+3.8)/5.0;printf("%d\n",d*y);}
A.3B.3.2C.0D.3.07
6.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.0,1,0B.0,1,1C.0,0,1D.0,0,0
7.若已知一個棧的進棧序列是1,2,3,,n,其輸出序列為p1,p2,p3,?,pn,若p1=n,則pi為()。
A.iB.n-iC.n-i+1D.不確定
8.有以下程序:#include<stdio.h>main(){intx=1,y=2,z=3;if(x>y)if(y<z) printf(“%d”,++z);else printf(“%d”,++y);printf(“%d\n”,x++);}程序的運行結(jié)果是()。
A.1B.41C.2D.331
9.設(shè)有條件表達式:(EXP)?i++;j--,則以下表達式中(EXP)完全等價的是()。
A.(EXP==0)B.(EXP!=0)C.(EXP==1)D.(EXP!=1)
10.同一個關(guān)系模型的任意兩個元組值()。
A.可以全相同B.不能全相同C.必須全相同D.以上都不對
11.
12.在下列幾種排序方法中,空間復(fù)雜度最高的是()
A.歸并排序B.快速排序C.插入排序D.選擇排序
13.
14.數(shù)據(jù)獨立性是數(shù)據(jù)庫技術(shù)的重要特點之一。所謂數(shù)據(jù)獨立性是指()
A.數(shù)據(jù)與程序獨立存放
B.不同的數(shù)據(jù)被存放在不同的文件中
C.不同的數(shù)據(jù)只能被對應(yīng)的應(yīng)用程序所使用
D.以上三種說法都不對
15.軟件工程的出現(xiàn)是由于()。A.A.程序設(shè)計方法學(xué)的影響B(tài).軟件產(chǎn)業(yè)化的需要C.軟件危機的出現(xiàn)D.計算機的發(fā)展
16.按照C語言規(guī)定的用戶標(biāo)識符命名規(guī)則,不能出現(xiàn)在標(biāo)識符中的是()。A.大寫字母B.下劃線C.數(shù)字字符D.連接符
17.若有定義“inta=0,b=1,c=1;”,關(guān)于邏輯表達式“a++||b++&&c++”中各個部分的執(zhí)行順序,以下說法正確的是()。
A.先執(zhí)行“b++”,再執(zhí)行“c++”,最后執(zhí)行“a++”
B.先執(zhí)行“a++”,再執(zhí)行“b++”,最后執(zhí)行“c++”
C.先執(zhí)行“c++”,再執(zhí)行“b++”,最后執(zhí)行“a++”
D.先執(zhí)行“b++”,再執(zhí)行“a++”,最后執(zhí)行“c++”
18.設(shè)有6個結(jié)點的無向圖,該圖至少應(yīng)有()條邊才能確保是一個連通圖。
A.5B.6C.7D.8
19.結(jié)構(gòu)化程序所規(guī)定的三種最基本控制結(jié)構(gòu)是A.A.輸入、處理、輸出
B.樹形、網(wǎng)形、環(huán)形
C.順序、選擇、循環(huán)
D.主程序、子程序、函數(shù)
20.下列說法中錯誤的是A.A.只能在循環(huán)體內(nèi)使用break語句
B.在循環(huán)體內(nèi)使用break語句可以使流程跳出本層循環(huán)體,從而提前結(jié)束本層循環(huán)
C.在while和do…while循環(huán)中,continue語句并沒有使整個循環(huán)終止
D.continue的作用是結(jié)束本次循環(huán),即跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進行循環(huán)判斷
二、2.填空題(20題)21.以下程序的輸出是【】。
main()
{
charstr1[]="Howdoyoudo",*pl=str1;
strcpy(str1+strlen(str1)/2,"esshe");
intf("%s\n",p1);
22.下面程序由兩個源程序文件:t4.h和t4.c組成,程序編譯運行的結(jié)果是:【】。
t4.h的源程序為:
#defineN10
#dennef2(x)(x*N)
t4.c的源程序為:
#include<stdio.h>
#defineM8
#definef(x)((x)*M)
#include"t4.h"
#main()
{inti,j;
i=f(1+1);j=f2(1+1);
printf(%d%d\n",i,j);
}
23.以下程序運行后的輸出結(jié)果是【】。
#include<stdio.h>
msin()
{inti,n[]={0,0,0,0,0};
for(i=1;i<=4;i++)
{n[i]=n[i-1]*2+1;
printf("%d",n[i]);
}
}
24.以下程序的功能是:從鍵盤輸入一字符串,要求將每個單詞中的第一個字母改成小寫(如果原來已是小寫字母,則不變),然后輸出轉(zhuǎn)換結(jié)果,補足所缺語句。
main()
{charstr[200];inti=0;
while((______=getchar())!='\n');
str[i-1)='\0';
for(i=0;str[i]!='\0';i++)
if((str[i-1]==''‖i==0)&&str[i]>='A'&&str[i]<='Z')
str[i]+=______;
printf("%s\n",str);
}
25.若有定義doublea[5];,則a數(shù)組元素下標(biāo)的上限為______。
26.軟件測試按功能劃分的方法劃分,通常分為【】測試方法和黑盒測試方法。
27.用下面語句調(diào)用庫函數(shù)malloc,使單精度型指針p指向具有40個字節(jié)的動態(tài)存儲空間,請?zhí)羁铡?/p>
p=(float*)【】;
28.以下程序運行后的輸出結(jié)果是【】。
main()
{inta=3,b=4,c=5,t=99;
if(b<a&&a<c)t=-a;a=c;c=t;
if(a<c&&b<c)t=b;b=a;a=t;
printf("%d%d%d\n",a,b,c);
}
29.下面程序的輸出是【】。
main()
{enumem{em1=3,em2=1,em3};
char*aa[]={"AA","BB","CC","DD"};
printf("%s%s%s\n",aa[em1],aa[em2],aa[em3]);
}
30.下列程序的運行結(jié)果為【】。
main()
{inta=5,b=5,y,z;
y=b-->++a?++b:a;
z=++a>b?a:y;
printf("%d,%d,%d,%d",a,b,y,z);
}
31.下列程序的運行結(jié)果是______。
#include<string.h>
char*ss(char*s)
{returns+strlen(s)/2;}
main()
{char*p,*str="abcdefgh";
p=ss(str);printf('%s\n",p);
}
32.下面函數(shù)要求計算兩個整數(shù)x,y之和,并通過形參返回該值,請?zhí)羁铡?/p>
add(intx,inty,【】z)
{【】=x+y;}
33.若有如下定義,則該數(shù)組的第一維大小為【】。
intb[][4]={1,2,3,4,5,6,7,8,9);
34.下面程序運行后的輸出結(jié)果是()。
#include<stdio.h>
main()
{inta[]={1,2,3,4,5,6},*k[3],i=1;
while(i<4)
{k[i-1]=&a[2*i-1];
printf("%d",*k[i-1]);
i++;
}
}
35.以下程序段打開文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用ftell函數(shù)返回當(dāng)前文件位置指針的具體位置,從而確定文件長度,請?zhí)羁铡?/p>
FILE*myf;longfl;
myf=【】("test.t","rb");
fseek(myf,(),SEEK_END)fl+ftell(myf);
fclose(myf);
printf("%ld\n",fl);
36.以下程序運行后的輸出結(jié)果是【】。
structNODE
{intk;
structNODE*link;
};
main()
{structNODEm[5],*p=m,*q=m+4;
inti=0;
while(p!=q){
p->k=++i;p++;
q->k=i++;q--;
}
q->k=i;
for(i=0;i<5;i++)printf("%d",m[i].k);
printf("\n");
}
37.下列程序的運行結(jié)果是______。
#definePOWER(x)((x)*(x))
main()
{inti=1;
printf("%d,%d",POWER(i++),i);
}
38.閱讀下面語句,則程序的執(zhí)行結(jié)果是【】。
#include"stdio.h"
main()
{inta=-1,b=1,k;
if((++a<0)&&!(b--<=0))
printf("%d,%d\n",a,b);
elseprintf("%d,%d\n",b,a);}
39.有以下程序:
#include<stdio.h>
main()
{charc;
while((c=getchar())!='?')putchar(--c);
}
程序運行時,如果從鍵盤輸入Y?N?<回車>,則輸出結(jié)果為【】。
40.在一個容量為32的循環(huán)隊列中,若頭指針front=3,尾指針rear=2,則該循環(huán)隊列中共有______個元素。
三、1.選擇題(20題)41.下列程序段選擇項,使i的運行結(jié)果為3的程序段是()。
A.inti=0,j=O;(i=2,(j++)+i);
B.inti=1,j=0;j=i=((i=3)*2);
C.inti=0,j=1;(j=1)?(i=1):(i=3);
D.inti=1,j=1;i+=j+=1;
42.設(shè)定義下列結(jié)構(gòu)體,結(jié)構(gòu)體變量p的出生年份賦值正確的語句是()。stmctst{intx;inty;intz;}structworker{charname[20];charsex;structstbirth;}p;
A.x=1987B.birth.x=1987;C.p.birth.x=1987;D.p.x=1987;
43.下列程序的運行結(jié)果為()。
#deflneMAX(x,y)(x)>(y)(x):(y)
main()
{inta=2,b=3,c=1,d=3,t;
printf("%d\n",(MAX(a+b,c+D))*100);
}A.A.500B.5C.4D.400
44.設(shè)x、y和z是int型變量,且x=4,y=6,z=8,則下列表達式中值為0的是()。
A.x&&y
B.x<=y
C.x||y+z&&y-z
D.!((x<y)&&!z||1)
45.以下程序的功能是進行位運算main(){unsignedchara,b;a=73;b=~4&3;printf("%d%d\n",a,b);}程序運行后的輸出結(jié)果是
A.43B.73C.70D.40
46.下列敘述中錯誤的是()。
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ù)的
47.以下程序運行后,輸出結(jié)果是#definePT5.5#defineS(x)PT*x*x#include<stdio.h>main(){inta=1,b=2;printf("%4.1f\n",s(a+b));}
A.49.5B.9.5C.22D.45.0
48.在c語言中,變量的隱含存儲類別是()。
A.autoB.staticC.externD.無存儲類別
49.下列能正確定義一維數(shù)組的選項是()。
A.inta[5]={0,1,2,3,4,5);
B.chara[]={0,1,2,3,4,5};
C.chara={'A','B','C'};
D.inta[5]="0123";
50.若x,i,j和k都是int型變量,則計算表達式x=(i=4,j=16,k=32)后,x的值為()。
A.4B.16C.32D.52
51.實型數(shù)據(jù)在計算機中表示的方法有()。
A.雙精度型和單精度型B.小數(shù)形式和ASCII碼法C.BCD碼法和指數(shù)形式D.小數(shù)形式和指數(shù)形式
52.有以下程序:#include<stdio.h>main(){intc;while((c=getchar())!='\n'){switch(c-'2'){case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);case4:putchar(c+3);break;}}printf("\n")}從第一列開始輸入以下數(shù)據(jù)<CR>代表一個回車符。2743<CR>程序的輸出結(jié)果是
A.66877B.668966C.6677877D.6688766
53.若有以下定義和語句:()ints[4][5](*ps)[5];ps=s;則對s數(shù)組元素的正確引用形式是
A.psq+1B.*(ps+3)C.ps[0][2]D.*(ps+1)+3
54.下列選項中不是字符常量的是()。
A.'\v'B.'\x2a'C.'a'D."\0"
55.在E-R圖中,用來表示實體的圖形是
A.矩形B.橢圓形C.菱形D.三角形
56.下列描述錯誤的是()。
A.繼承分為多重繼承和單繼承
B.對象之間的通信靠傳遞消息來實現(xiàn)
C.在外面看不到對象的內(nèi)部特征是基于對象的“模塊獨立性好”這個特征
D.類是具有共同屬性、共同方法的對象的集合
57.以下數(shù)組定義中不正確的是______。
A.inta[2][3];
B.intb[][3]={0,1,2};
C.intc[100][100]{0};
D.intd[3][]={{1,2},{1,2,3},{1,2,3,}};
58.以下4個選項中,不能看作一條語句的是
A.{;}B.a=0,b=0,c=0;C.if(a>0);D.if(b==0)m=1;n=2;
59.有以下程序:voidswap(char*x,char*y){cbart;t=*x;*x=*y;*y=t;}main(){char*s1="abc",*s2="123";swap(s1,s2);printf("%s,%s\n",s1,s2);}程序執(zhí)行后的輸出結(jié)果是()。
A.123,abcB.abc,123C.1bc,a23D.321,cba
60.設(shè)有定義:intn=0,*p=&n,**q=&p;則下列選項中正確的賦值語句是()。
A.p=1;B.*q=2;C.q=p;D.*p=5;
四、選擇題(20題)61.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系是()。
A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.沒有任何關(guān)系
62.若變量c為char類型,能正確判斷出c為小寫字母的表達式是_______。A.′a′<=c<=′z′
B.(c>=′a′)||(c<=′z′)
C.(′a′=C)
D.(c>=′a′)&&(c<=′z′)
63.以下選項中可用作C程序合法實數(shù)的是()。A..1eOB.3.0e0.2C.E9D.9.12E
64.
65.若有以下語句
66.
67.分析以下程序的輸出結(jié)果是()。
main
{inta=5,b=-1,c;
c=adds(a,b);
printf(“%d”,c);
c=adds(a,b);
printf(“%d\n”,c);}
intadds(intx,inty)
{staticintm=0,n=3;
n*=++m;
m=n%x+y++;
return(m);}
A.2,3B.2,2C.3,2D.2,4
68.CSS指的是下列()的縮寫。
A.ComputerStyle.Sheets
B.CascadingStyle.Sheets
C.CreativeStyle.Sheets
D.ColorfulStyle.Sheets
69.
70.
71.
72.常采用的兩種存儲結(jié)構(gòu)是()。
A.順序存儲結(jié)構(gòu)和鏈式存儲結(jié)構(gòu)B.散列方法和索引方式C.鏈表存儲結(jié)構(gòu)和數(shù)組D.線性存儲結(jié)構(gòu)和非線性存儲結(jié)構(gòu)
73.鏈表不具有的特點是()。
A.不必事先估計存儲空間B.可隨機訪問任意元素C.插入、刪除不需要移動元素D.所需空間與線性表長度成正比
74.34.有以下程序
#include<stdio.h>
unionpw
{inti;
charch[2];
}a;
main()
{a.ch[0]=13;a.ch[1]=0;
printf("%d\n",a.i);
}
程序的輸出結(jié)果是
A.13B.14
C.0D.20
75.現(xiàn)有定義inta;doubleb;floatc;chark;,則表達式a/b+C—k值的類型為:()。
A.intB.doubleC.floatD.char
76.
77.
78.有以下程序:
程序運行后的輸出結(jié)果是()。
A.b,B"b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B
79.下列定義數(shù)組的語句中,正確的是()。
80.
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:將str所指字符串中的字母轉(zhuǎn)換為按字母序列的后續(xù)字母(但Z轉(zhuǎn)化為A,z轉(zhuǎn)化為a),其他字符不變。
請修改函數(shù)proc()中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,定義了NxN的二維數(shù)組,并在主函數(shù)中賦值。請編寫函數(shù)fun(),其功能是求出數(shù)組周邊元素的平均值并將其作為函數(shù)值返回給主函數(shù)中的s。例如,若a數(shù)組中的值為0127919745238314568259141則返回主程序后s的值應(yīng)為3.375。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:1#include<stdio.h>2#include<conio.h>3#include<stdlib.h>4#defineN55doublefun(intw[][n])6{78}9voidmain()10{11FILE*wf;12inta[N][N]={0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,13inti,j;14doubles;15system("CLS");16printf("***Thearray***\n");17for(i=0;i<N;i++)18{for(j=0;j<N;j++)19{printf("%4d",a[i][j]);}20printf("\n");21}22s=fun(a);23printf("***TheResult***\n");24printf("Thesumis:%lf\n",s);25/******************/26wf=fopen("out.dat","w");27fprintf(wf,"%if",s);28fclose(wf);29/******************/30}
參考答案
1.C解析:考查用字符指針處理字符串的方法。語句'p=s;'是使指針p指向字符數(shù)組s。*p則引用了p所指位置的數(shù)組元素。通過指針來引用一維數(shù)組元素。
2.B解析:—個函數(shù)可以帶回—個整型值、字符值、實型值等,但也可以帶回指針型數(shù)據(jù),即地址。本題的定義中,包括括號和*號,由于()優(yōu)先級高于*。故它是—個返回整型指針的函數(shù)。
3.B
4.D
5.C
6.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選項。
7.C
8.Aelse總是與離它最近的if配對,所以當(dāng)?shù)?個if語句的判斷條件不成立時,不再執(zhí)行第2個if語句以及與第2個if語句配對的else語句,而是直接執(zhí)行“x++”,輸出1。故本題答案為A選項。
9.B解析:條件表達式的形式為:“表達式1?表達式2:表達式3”。其含義為:當(dāng)“表達式1”的值為非零時,求出“表達式2”的值,此時“表達式2”的值就是整個條件表達式的值;當(dāng)“表達式1”的值為零時,求出“表達式3”的值,此時“表達式3”的值就是整個條件表達式的值。對于本題來說,當(dāng)表達式EXP為非0值時條件成立,即執(zhí)行語句i++;當(dāng)EXP等于0時,執(zhí)行語句j--;這等同于條件表達式“(EXP!=0)?i++:i++;”。
10.B關(guān)系具有以下7個性質(zhì)。①元組個數(shù)有限性:二維表中元組的個數(shù)是有限的。②元組的唯一性:二維表中任意兩個元組不能完全相同。③元組的次序無關(guān)性:二維表中元組的次序,即行的次序可以任意交換。④元組分量的原子性:二維表中元組的分量是不可分割的基本數(shù)據(jù)項。⑤屬性名唯一性:二維表中不同的屬性要有不同的屬性名。⑥屬性的次序無關(guān)性.二維表中屬性的次序可以任意交換。⑦分量值域的同一性:二維表屬性的分量具有與該屬性相同的值域,或者說列是同質(zhì)的。滿足以上7個性質(zhì)的二維表稱為關(guān)系,以二維表為基本結(jié)構(gòu)所建立的模型稱為關(guān)系模型。本題答案為B選項。
11.B
12.A
13.C
14.D解析:在數(shù)據(jù)庫系統(tǒng)中,通過系統(tǒng)提供的映象功能,使數(shù)據(jù)具有兩方面的獨立性:一是物理獨立性。即由于數(shù)據(jù)的存儲結(jié)構(gòu)與邏輯結(jié)構(gòu)之間由系統(tǒng)提供映象,使得當(dāng)數(shù)據(jù)的存儲結(jié)構(gòu)改變時,其邏輯結(jié)構(gòu)可以不變,因此,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改。二是邏輯獨立性。即由于數(shù)據(jù)的局部邏輯結(jié)構(gòu)(它是總體邏輯結(jié)構(gòu)的一個子集,由具體的應(yīng)用程序所確定,并且根據(jù)具體的需要可以作一定的修改)與總體邏輯結(jié)構(gòu)之間也由系統(tǒng)提供映象,使得當(dāng)總體邏輯結(jié)構(gòu)改變時,其局部邏輯結(jié)構(gòu)可以不變,從而根據(jù)局部邏輯結(jié)構(gòu)編寫的應(yīng)用程序也可以不必修改。由此可知,選項A.B與C中的說法都是錯誤的。
15.C解析:軟件工程的基本概念。軟件工程概念的出現(xiàn)源自于軟件危機。為了消除軟件危機,通過認真研究解決軟件危機的方法,認識到軟件工程是使計算機軟件走向工程科學(xué)的途徑,逐步形成了軟件工程的概念。
16.D[解析]C語言中標(biāo)識符由字母、下劃線、數(shù)字組成,且開頭必須是字母或下劃線。所以D)選項中的連接符不合法。
17.BC語言中運算符有優(yōu)先級和結(jié)合性。自增、自減運算符的優(yōu)先級高于邏輯運算符,邏輯運算符中邏輯與“&&”的優(yōu)先級比邏輯或“||”高,邏輯運算符的結(jié)合性自左向右。所以題干中表達式等價于“(a++)||((b++)&&(c++))”。運算順序為:首先執(zhí)行“a++”,再執(zhí)行“b++”,最后執(zhí)行“C++”。故本題答案為B選項。
18.A:在一個無向圖G中,若從頂點Vi到頂點Vj有路徑相連,則稱Vi和Vj是連通的。連通圖是指任意兩個結(jié)點之間都有一個路徑相連。6個節(jié)點的無向圖,至少要5個邊才能確保是任意兩個節(jié)點之間都有路徑相連。下圖是一種可能的連接方式:故本題選A。
19.C解析:結(jié)構(gòu)化程序設(shè)計方法采用順序、選擇和循環(huán)三種基本程序控制結(jié)構(gòu)編寫程序,從而使程序具有好的結(jié)構(gòu)。
20.A解析:只能在循環(huán)體內(nèi)和switch語句體內(nèi)使用break語句,當(dāng)break出現(xiàn)在循環(huán)體中的switch語句體時,其作用是跳出該switch語句體。當(dāng)break出現(xiàn)在循環(huán)體中,但不在switch語句體中時,則在執(zhí)行break后,跳出本層循環(huán)體。continue語句的作用是,跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進行循環(huán)的條件判定。
21.HowdoessheHowdoesshe解析:strcpy(str1,s1):字符串拷貝函數(shù),作用是將字符串s1拷貝到字符數(shù)組str1中去。strlen(str):測試字符串str的長度,函數(shù)的值為字符串中實際長度,不包括‘\\0’在內(nèi)。本題中strlen(strl)的值為13,則strcpy(strl+strlen(strl)/2,'esshe');相當(dāng)于strqoy(strl+6,'esshe');因此可得答案為Howdoesshe。
22.16111611解析:題目中第1條要替換的語句i=f(1+1);展開后是i=((1+1)*M);繼續(xù)展開為i((1+1*8),結(jié)果使i=16。而第2條語句j=f2(1+1)”;展開后為j=(1+1*N);繼續(xù)展開為j=(1+1*10),結(jié)果使j=11。故程序運行的結(jié)果是輸出1611。
23.1371513715解析:程序中n是一個有5個元素,且元素值全為0的數(shù)組。在for循環(huán)中,當(dāng)i=1時,n[1]=n[0]*2+1,此時n[1]=1;i=2時,n[2]=n[1]*2+1,此時n[2]=3;i=3時,n[3]=n[2]*2+1,此時n[3]=7;i=4時,n[4]=n[3]*2+1,此時n[4]=15,循環(huán)結(jié)束。輸出函數(shù)中%d后有空格,因此輸出結(jié)果為13715。
24.str[i++]32。str[i++]32。解析:while語句的循環(huán)控制條件既要將相應(yīng)元素賦予從鍵盤輸入的字符,又要改變元素的下標(biāo)值,以便接受下一個字符,可用下標(biāo)變量的后置加實現(xiàn);小寫字母的ASCII碼值比相對應(yīng)的大寫形式大32。
25.44解析:一維數(shù)組元素的定義形式為:數(shù)組名[N],則該數(shù)組中元素的下限是0,上限是N-1。
26.白盒白盒解析:軟件測試的方法分為白盒測試方法和黑盒測試方法。
27.malloc(40)malloc(40)解析:庫函數(shù)malloc()只有一個參數(shù),就是所需分配內(nèi)存的字節(jié)數(shù),然后返回一個void*指針。本題要求分配40個字節(jié),故直接調(diào)用malloc(40)就可以了。
28.45994599解析:if語句只對緊跟其后的一條語句或語句塊產(chǎn)生作用。因此,題目中兩條if語句只有t=a;和t=b是if的子句。第1條if語句中b<a為假,所以跳過語句t=-a;,執(zhí)行a=c;c=t,a=5、b=4、c=99。第2條if語句的判斷條件a<c&&b<c為真,所以后面3條語句都被執(zhí)行,這3條語句構(gòu)成一次a和b的內(nèi)容交換。所以最后輸出的結(jié)果是:4599。
29.DDBBCCDDBBCC解析:C語言對枚舉的定義規(guī)定:在枚舉中聲明的各個枚舉元素,如果沒有明確指出某個枚舉元素的值,它的上一個元素存在并有明確值的情況下,這個枚舉元素的值為其上一個元素的值+1。在本題中,沒有明確說明枚舉元素em3的值,則em3=em2+1=1+1=2,進而可知,在printf()打印函數(shù)中,要打印的數(shù)組元素是aa[3]、aa[1]、aa[2],因此最后的打印結(jié)果應(yīng)當(dāng)為“DDBBCC”。
30.7467
31.efghefgh解析:本題考核的知識點是通過指針引用字符串.函數(shù)“的作用是讓形參指針s指向該字符串的右半部分.主函數(shù)中首先定義了一個字符型指針變量p和字符型指針str;并初始化為“abcdefgh”,然后調(diào)用函數(shù)ss,將實參str傳給形參s,因此可知該函數(shù)返回的指針,指向str所指的字符串“abcdefgh”的右半部分,即指向字符串“efgh”,所以最后輸出指針p(指針p的值為調(diào)用函數(shù)ss(sD)的返回值)所指向的字符串為“efgh。
32.int**zint*\r\n*z解析:函數(shù)希望通過形參z帶回結(jié)果,形參z必須是指針類型的。由于返回整型結(jié)果,所以第一處填int*;函數(shù)返回前必須先把結(jié)果通過形參z間接引用傳回,第二處應(yīng)填*z。
33.33解析:在初始化一個含有未指定維度的數(shù)組時,C語言總是在能完全容納初始化列表的基礎(chǔ)上盡可能小地設(shè)定該維度,來作為指定維度的標(biāo)準。本題有9個初始值,若指定第一維度為2,則數(shù)組含有2*4=8個元素,容納不下,所以指定維度為3,3*4=12,足夠容納了。故應(yīng)該填3。
34.246
35.fopenfopen解析:C語言中的文件分為:ASCII文件與二進制文件。文件在使用前打開,使用后要關(guān)閉。打開文件的函數(shù)為:fopen(),調(diào)用形式為:fp=fopen('文件名','使用文件方式');關(guān)閉文件的函數(shù)為:fclose(),調(diào)用形式為:fclose(fp),其中fp為文件指針。
36.1343113431解析:初始化時,指針p指向m[0]的地址,指針q指向m[4]的地址,p!=q滿足循環(huán)條件,執(zhí)行循環(huán)語句,得到m[0].k=1,m[4].k=1,此時i=2,指針p指向m[1]的地址,指針q指向m[3]的地址,p!=q滿足循環(huán)條件,執(zhí)行循環(huán)語句,得到m[1].k=3,k=3,此時i=4,指針q指向m[2]的地址,p==q不滿足循環(huán)條件,則退出循環(huán),m[2].k=4。所以最后輸出為13431。
37.111,1解析:POWER(i++)中先引用i的值1,再將i的值加1,POWER(i++)=1*1=1。
38.101,0解析:與運算兩邊的語句必須同時為真時,結(jié)果才為真,當(dāng)執(zhí)行完if((++a<0)&&!(b--<=0))時,a,b的值已經(jīng)發(fā)生了變化。
39.XX解析:程序是從鍵盤緩沖區(qū)循環(huán)接收字符,并輸出接收到的字符在ASCII碼表中的前一個字符,直到接收到‘?’為止。
40.3131解析:設(shè)隊列容量為m,如果:rear>front,則隊列中元素個數(shù)為rear-front;如果rear<front,則隊列中元素個數(shù)為m+(rear-front)。本題rear<front,則m=32+(2-3)=31。
41.D
42.C解析:本題主要考查怎樣為嵌套定義的結(jié)構(gòu)中的成員賦值:由于worker中的birth是一個st型的結(jié)構(gòu),在給birth賦值時,不能將birth作為一個整體,要用“.”運算再深入一層訪問到最基本的成員x、y\\z。
43.A解析:本題考查帶參數(shù)的宏的定義及相關(guān)運算:(x)>(y)(x):(y)是x>y時輸出x,否則輸出y,調(diào)用(MAX(a+b,c+d))*100時,(a+b=5)>(c+d=4),所以輸出a+b=5,所以x=5*100。
44.D解析:本題考查邏輯運算符的使用。當(dāng)“&&”的兩個運算對象都足邏輯1時,表達式才返回值是1;當(dāng)“||”的兩個運算對象至少有一個是邏輯1時,表達式返回值是1。選項A)中,x和y都是邏輯1,所以返回值是1;選項B)中,x=4<=y(tǒng)=6為邏輯1,所以返回值是1;選項C)中,y+z的值等于14,非0,y-z的值為-2,非0,所以邏輯表達式4||14&&-2的值不為0;選項D)中,x<y為1,!z為0,1&&0為1,0||為1,因此,!1為0。
45.A解析:是位異或運算符,其作用是將左右運算分量的相應(yīng)二進制位進行異或操作。即,相應(yīng)位同時為?;蛲瑫r為1則結(jié)果相應(yīng)位為0,否則結(jié)果相應(yīng)位為1。所以a=73=(00000111)2(00000011)2=(00000100)2=4?!俏环催\算符,作用是將運算分量的二進制位按位取反。即,原來是0的二進制位變成1,原來是1的變成0。&是位與運算符,其作用是將左右運算分量的相應(yīng)二進制位進行與操作。即,相應(yīng)位同時為1時結(jié)果相應(yīng)位為1,否則結(jié)果相應(yīng)位為0。所以b=-4&3=~(00000100)2&(00000011)2(11111011)2&(00000011)2=(00000011)2=3。故應(yīng)該選擇A。
46.BB?!窘馕觥繑?shù)據(jù)的存儲結(jié)構(gòu)分為順序結(jié)構(gòu)和鏈式結(jié)構(gòu),一個數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲結(jié)構(gòu)。順序結(jié)構(gòu)中數(shù)據(jù)元素所占的存儲空間是連續(xù)的,而鏈式存儲結(jié)構(gòu)中,數(shù)據(jù)元素所占的存儲空間不一定是連續(xù)的。數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)的處理效率密切相關(guān)。
47.A
48.A解析:auto變量:無static聲明的局部變量。用auto作存儲類別的聲明時,可以不寫auto,存儲類別隱含確定為auto(自動存儲類別),是動態(tài)存儲方式。大多數(shù)變量是自動變量。用static聲明的局部變量是靜態(tài)局部變量。函數(shù)調(diào)用結(jié)束后靜態(tài)局部變量占據(jù)的內(nèi)存存儲單元空間不釋放,局部變量保留原值,下次調(diào)用時可以繼續(xù)使用該值。用extern聲明外部變量,外部變量即全局變量,可以用extern聲明來改變?nèi)肿兞康淖饔糜?實際上,關(guān)鍵字'auto'可以省略,auto不寫則隱含確定為'自動存儲類別',屬于動態(tài)存儲方式。
49.B解析:在定義數(shù)組時,如果賦給的初始值個數(shù)大于數(shù)值的長度,這樣就會越界,因此選項A)錯誤;選項C)中定義的是一個字符變量C:選項D)中整型數(shù)組a中只能存儲整型數(shù)據(jù),而不能存儲字符串常量“0123”。
50.C本題主要考查逗號表達式。逗號是一個特殊的運算符,它具有所有運算符中最低的優(yōu)先級。在C語言中,用它可以將兩個表達式連接起來,逗號表達式的一般表現(xiàn)形式為:
表達式1,表達式2,…,表達式n
逗號表達式的求解過程是:先求解表達式1,再求解表達式2,依次往后計算,整個逗號表達式的值是最后一個表達式的值,如“3+5,5+6”的值是11。
在本題中,逗號表達式為i=4,j=16,k=32,根據(jù)上面的分析,計算逗號表達式得到的結(jié)果為k=32,最后將逗號表達式的結(jié)果賦值給變量x,那么變量x的值為32。因此,本題的正確答案選C。
51.D解析:實型數(shù)據(jù)有兩種表示形式:①小數(shù)形式。它由數(shù)字和小數(shù)點組成(注意必須有小數(shù)點)。123、123.0、0.0都是小數(shù)形式。②指數(shù)形式。如123e3或123E3都代表123*103(上標(biāo))。注意,字母e(或E)之前必須有數(shù)字,且e后面的指數(shù)必須為整數(shù)。如e3、3.le3.5、.e3、e等都不合法。所以,本題應(yīng)該選擇D。
52.A解析:本題主要考查了字符輸入輸出函數(shù)getchar和putchar的使用。getchar函數(shù)用來從標(biāo)準輸入設(shè)備上讀入一個字符,putchar(c)函數(shù)是將字符變量c中的字符輸出到標(biāo)準輸出設(shè)備上。并且字符可以看作整數(shù)參與運算。
53.C
54.Dc語言規(guī)定,一個字符常量代表ASCII碼字符集里的一個字符,在群序中用單引號括起來,以便區(qū)分。'\v'表示的是豎向跳格:'kx2a'表示的是兩位十六迸制數(shù);'a'表示的是字符a對應(yīng)的ASCII碼值。"\0"用雙引號故不正確。
55.A解析:在E-R圖中,用三種圖框分別表示實體、屬性和實體之間的聯(lián)系,其規(guī)定如下:用矩形框表示實體,框內(nèi)標(biāo)明實體名;用橢圓狀框表示實體的屬性,框內(nèi)標(biāo)明屬性名;用菱形框表示實體間的聯(lián)系,框內(nèi)標(biāo)明聯(lián)系名。所以,選項A正確。
56.C解析:對象的封裝性是指從外面看只能看到對象的外部特性;而對象的內(nèi)部,其處理能力的實行和內(nèi)部狀態(tài)對外是不可見的,是隱蔽的。
57.D解析:一維數(shù)組的定義方式為:
類型說明符數(shù)組名[常量表達式];
選項A符合此定義形式,正確;C語言中多維數(shù)組賦初值時可以部分賦值,也可以不指定除第一維以外的其他維的大小,故選項C正確;另外,如果對全部數(shù)組元素都賦初值,則定義數(shù)組時對第一維的長度可以不指定,但第二維的長度不能省,所以選項B正確,而選項D是錯誤的。
58.D解析:C語言的語句都用“;”結(jié)束。如果只有一個分號,稱為“空語句”。用一對花括號把若干語句括起來構(gòu)成一個語句組,稱為“復(fù)合語句”,在語法上視為一條語句。因此選項A是一條語句。選項B是逗號表達式加分號構(gòu)成的語句。選項C是一條if語句,該語句的if子句是一條空語句。選項D中“if(b==0)m=1;n=2;”是兩個表達式語句。所以,4個選項中選項D符合題意。
59.C解析:函數(shù)swap()實現(xiàn)的功能為交換字符指針x和y首位的數(shù)值。
60.D解析:選項A),B),C)的指針賦值表達方式都不正確,*p=5表達整數(shù)5放到指針p所指向的存儲單元中。注意:通過指針引用一個存儲單。
61.C(10)C)解析:DB即數(shù)據(jù)庫(Database),是統(tǒng)一管理的相關(guān)數(shù)據(jù)的集合;DBMS即數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem),是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,為用戶或應(yīng)用程序提供訪問DB的方法;DBS即數(shù)據(jù)庫系統(tǒng)(DatabaseSystem)由如下5部分組成,數(shù)據(jù)庫(數(shù)據(jù))、數(shù)據(jù)庫管理系統(tǒng)(軟件)、數(shù)據(jù)庫管理員(人員)、系統(tǒng)平臺之一——硬件平臺(硬件)、系統(tǒng)平臺之二——軟件平臺(軟件)。
62.D
63.Ae前e后有數(shù)字,e后數(shù)值為整數(shù),所以B)、c)、D)錯誤。
64.C
65.A本題考核的知識點是結(jié)構(gòu)體類型定義和結(jié)構(gòu)體的基本概念。結(jié)構(gòu)體類型的定義格式為:slxuct結(jié)構(gòu)體名{成員說明列表};結(jié)構(gòu)體變量的定義有3種形式。第一種:定義結(jié)構(gòu)體類型的同時定義結(jié)構(gòu)體變量,如struct結(jié)構(gòu)體名{成員說明列表)變量;第二種:先定義一個結(jié)構(gòu)體類型,然后使用該類型來定義結(jié)構(gòu)體變量,如structstudent{成員說明列表l;student變量;第三種:定義一個無名稱的結(jié)構(gòu)體類型的同時定義結(jié)構(gòu)體變量,如truct§tudent{成員說明列表l變量。
66.C
67.A
68.B
69.B
70.C
71.B
72.AA?!窘馕觥烤€性表的存儲通常分為兩種存儲結(jié)構(gòu):順序存儲結(jié)構(gòu)和鏈式存儲結(jié)構(gòu)。
\n
73.B鏈表采用的是鏈式存儲結(jié)構(gòu),它的結(jié)點空間可以動態(tài)申請和釋放;它的數(shù)據(jù)元素的邏輯次序靠結(jié)點的指針來指示,插入、刪除不需要移動數(shù)據(jù)元素。但是鏈式存儲結(jié)構(gòu)也有不足之處:每個結(jié)點中的指針域需額外占用存儲空間,它是一種非隨機存儲結(jié)構(gòu)。
74.A本題主要考查聯(lián)合體的內(nèi)容。關(guān)于聯(lián)合體,我們需要注意以下幾個特點。
(1)聯(lián)合體不允許做初始化賦值,賦值只能在程序中進行。
(2)
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 書店裝修合同主要條款
- 洗浴中心舒適裝修合同模板
- 企業(yè)總部衛(wèi)生間裝修合同
- 博物館裝修設(shè)計合同模板
- 液態(tài)膠水槽罐車物流合同
- 體育館裝修及看臺座椅合同
- 專業(yè)健身房裝修協(xié)議
- 古建筑石材裝修項目協(xié)議
- 房地產(chǎn)公司辦公樓裝修合同
- 汽車零部件配送中介合同
- 中興ZCTP 5GC高級工程師認證考試題庫匯總(含答案)
- 大學(xué)生創(chuàng)新創(chuàng)業(yè)教程PPT全套完整教學(xué)課件
- 小學(xué)科學(xué)項目化作業(yè)的設(shè)計與實施研究
- 2023年考研考博-考博英語-西安建筑科技大學(xué)考試歷年真題摘選含答案解析
- 2020年中考生物試卷及答案
- 反接制動控制線路電路圖及工作原理
- MCNP-5A程序使用說明書
- java基礎(chǔ)知識大全
- SMM英國建筑工程標(biāo)準計量規(guī)則中文 全套
- GB 18030-2022信息技術(shù)中文編碼字符集
- SB/T 10977-2013倉儲作業(yè)規(guī)范
評論
0/150
提交評論