




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2022-2023年江蘇省蘇州市全國計算機等級考試C語言程序設計預測試題(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列描述中,不是線性表順序存儲結構特征的是
A.不便于插入和刪除B.需要連續的存儲空間C.可隨機訪問D.需另外開辟空間來保存元素之間的關系
2.若已定義x和y是整型變量,x=2;,則表達式y=2.75+x/2的值是()。
A.5.5B.5C.3D.4.0
3.以下敘述中正確的是
A.語句inta[4][3]={{1,2},{4,5}};是錯誤的初始化形式
B.語句inta[4][3]={1,2,4,5};是錯誤的初始化形式
C.語句inta[][3]={1,2,4,5};是錯誤的初始化形式
D.在邏輯上,可以把二維數組看成是一個具有行和列的表格或矩陣
4.若以下選項中的變量已正確定義,則正確的賦值語句是()。
A.x1=26.8%3B.1+2=x2C.x3=0x12D.x4=1+2=3
5.有以下程序段:#include<stdio.h>intj;floaty;charname[50];scanf(“%2d%f%s”,&j,&y,name);當執行上述程序段時,從鍵盤上輸入555667777abc后,y的值為()。
A.566.0B.55566.0C.7777.0D.566777.0
6.有以下程序:#include<stdio.h>typedefstruct{intnum;charname[10];intscore;}PER;voidfun(PERx[]){intt;if(x[0].score>x[1].score){t=x[0].score;x[0].score=x[1].score;x[1].score=t;}}main(){PERs[2]={{1001,“zhang”,621},{1002,“wang”,585}};inti;fun(s);for(i=0;i<2;i++)printf(“%d,%s,%d,”,s[i].num,s[i].name,s[i].score);}程序的運行結果是()。A.1001,zhang,585,1002,wang,621,
B.1001,zhang,621,1002,wang,585,
C.1002,wang,585,1001,zhang,621,
D.1002,wang,621,1001,zhang,585,
7.計算機能夠直接識別和執行的語言是
A.匯編語言B.自然語言C.機器語言D.高級語言
8.對表進行水平方向和垂直方向的分割,分別對應的關系運算是()
A.選擇和投影B.投影和選擇C.選擇和聯接D.投影和聯接
9.數據在計算機存儲器內表示時,如果元素在存儲器中的相對位置能反映數據元素之間的邏輯關系,則稱這種存儲結構為()。
A.存儲結構B.邏輯結構C.順序存儲結構D.鏈式存儲結構
10.以下只有在使用時才為該類型變量分配內存的存儲類型說明是()。
A.auto和static
B.auto和register
C.register和static
D.extern和register
11.計算機系統的組成是______。
A.主機、外設B.運算器、控制器C.硬件系統和軟件系統D.CPU、內存儲器
12.程序中主函數的名字為()。
A.mainB.MAINC.MainD.任意標識符
13.設一組初始記錄關鍵字序列為(Q,H,C,Y,P,A,M,S,R,D,F,X),則按字母升序的第一趟冒泡排序結束后的結果是()
A.F,H,C,D,P,A,M,Q,R,S,Y,X
B.P,A,C,S,Q,D,F,X,R,H,M,Y
C.A,D,C,R,F,Q,M,S,Y,P,H,X
D.H,C,Q,P,A,M,S,R,D,F,X,Y
14.若有定義“doublea;floatb;shortc;”,若想把1.2賦給變量a,3.4賦給變量b,5678賦給變量c,程序運行時鍵盤輸入:1.23.45678<回車>則以下正確的讀入語句是()。A.scanf("%If%If%d",&a,&b,&c);
B.scanf("%If%If%hd",&a,&b,&c);
C.scanf("%If%f%hd",&a,&b,&c);
D.scanf("%f%f%d",&a,&b,&c);
15.有以下程序#include<stdio.h>intfun(intx;inty){if(x=y)reurn(x);elsereturn((x+y)/2);}main(){inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c)));}程序運行后的輸出結果是______。A.3B.6C.8D.12
16.
17.以下能正確定義且賦初值的語句是______。A.intn1=n2=10;
B.charc=32;
C.floatf=f+1.1;
D.doublex=12.3E2.5;
18.設有6個結點的無向圖,該圖至少應有()條邊才能確保是一個連通圖。
A.7B.5C.8D.6
19.若有定義“inta;longb;doublex,y;”,則以下選項中正確的表達式是()。
A.a=x<>yB.a%(int)(x-y)C.(a*y)%bD.y=x+y=x
20.下列字符串是標識符的是()。
A.aaB.a-classC.intD.LINE1
二、2.填空題(20題)21.在先左后右的原則下,根據訪問根結點的次序,二叉樹的遍歷可以分為三種;前序遍歷、【】遍歷和后序遍歷。
22.若定義#definePI3.14159,則執行完下列程序后輸出結果是______。
#definePI3.14159;printf("PI=%P",PI);
23.在面向對象的方法中,______描述的是具有相似屬性與操作的一組對象。
24.以下程序運行后的輸出結果是【】
#include<stdio.h>
main()
{chara[]="123456789",*p;
inti=0;
p=a;
while(*p)
{if(i%2==0)*p='*';
p++;i++;
}
puts(a);
}
25.下面程序有兩個printf語句,如果第一個printf語句輸出的是194,則第二個printf語句的輸出結果是【】。
main()
{inta[10]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf("%x\n",p);
printf("%x\n,p+9);
}
26.以下程序的運行結果是______。
#include<stdio.h>
longfib(intg)
{switch(g)
{case0:return0;
case1:
case2:return1;}
return(fib(g-1)+fib(g-2));}
main()
{longk;
k=fib(5);
printf("k=%51d\n",k);}
27.結構化分析方法是面向______進行分析的方法。
28.以下程序運行后的輸出結果是【】。
#include<stdio,h>
#include<string,h>
main()
{charch[]="abc".,x[3][4]:inti:
for(i=0;i<3:i++)strcpy(x[i],ch):
for(i=0;i<3:i++)printf("%s",&x[i][i]);
printf("\n")
}
29.軟件測試是保證軟件質量的重要手段,而軟件測試的主要和重要的測試方法是通過測試數據和【】的設計來實現。
30.以下程序將數組a的4個元素和數組b的6個元素寫到名為lett.dat的二進制文件中,請填空。
#include<stdio.h>
#include<stdlib.h>
main()
{FILE*fp;
chara[5]="1234",b[7]="abcedf";
if((fp=fopen("【】","wb"))==NULL)exit(0);
fwrite(a,sizeof(char),4,fp);
fwrite(b,【】,1,fp);
fclose(fp);
}
31.以下程序運行后的輸出結果是()。
#include<stdio.h>
main()
{inta=1,b=7;
do{
b=b/2;a+=b;
}while(b>1);
printf("%d\n",A);
}
32.已有定義:double*p;,請寫出完整的語句,利用malloc函數使p指向一個雙精度型的動態存儲單元______。
33.以下程序的輸出結果是【】。
#include<stdio.h>
#defineMAX(x,y)(x)>(y)?(x):(y)
main()
{inta=5,b=2,c=3,d=3,t;
t=MAX(a+b,c+d)*10;
printf("%d\n",1);
}
34.以下程序的輸出結果是【】。
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));}
35.下面程序的運行結果是()。#include<stdio.h>main(){chara[80],*p="AbabCDcd";inti=0,j=0;while(*(p++)!='\0'){if(*p>='a'&&*p<='z'){a[i]=*p;i++;}}a[i]='\0';puts(A);}
36.有以下程序:
main()
{inta=7,b=8,*p,*q,*r;
p=&a;q=&b;
r=p;p=q;q=r;
printf("%d,%d,%d,%d\n",*p,*q,a,b);
}
程序運行后的輸出結果是【】。
37.在一個容量為32的循環隊列中,若頭指針front=3,尾指針rear=2,則該循環隊列中共有______個元素。
38.一棵二叉樹第6層(根結點為第一層)的結點最多為______個。
39.以下程序中,函數fun的功能是計算x2-2x+6,主函數中將調用fun函數計算:
y1=(x+8)2-2(x+8)+6
y2=sin2(x)-2sin(x)+6
請填空。
#include"math.h"
doublefun(doublex){return(x*x-2*x+6);}
main()
{doublex,y1,y2;
printf("Enterx:");scanf("%lf",&x);
y1=fun(【】);
y2=fun(【】);
printf("y1=%lf,y2=%lf\n",y1,y2);
}
40.以下sstrcpy()函數實現字符串復制,即將t所指字符串復制到s所指向內存空間中,形成一個新的字符串s。清填空。
voidsstrcpy(char*s,char*t)
{while(*s++=【】);}
main()
{charstr1[100],str2[]="abcdefgh";
strcpy(str1,str2);
printf('%s\n",str1);
}
三、1.選擇題(20題)41.在16位IBM-PC機上使用C語言,若有如下定義structdata{inti;charch;doublef;}b;則結構變量b占用內存的字節數是
A.1B.2C.7D.11
42.下列關于棧的敘述正確的是()
A.棧是非線性結構B.棧是一種樹狀結構C.棧具有先進先出的特征D.棧具有后進先出的特征
43.下列敘述中正確的是()。
A.在模塊化程序設計中,一個模塊應該盡量多的包括與其他模塊聯系的信息
B.在自頂向下、逐步細化的設計過程中,首先應設計解決問題的第一個細節
C.在模塊化程序設計中,一個模塊內部的控制結構也要符合結構化原則
D.在程序設計過程中,不能同時采用結構化程序設計方法與模塊化程序設計方法
44.有以下函數fun(char*a,char*b){while((*a!='\0')&&(*b!='\0')&&(*a==*b)){a++;b++;}return(*a-*b);}該函數的功能是______。
A.計算a和b所指字符串的長度之差
B.將b所指字符串連接到a所指字符串中
C.將b所指字符串連接到a所指字符串后面
D.比較a和b所指字符串的大小
45.字符型數據在機器中用ASCII碼表示,字符“5”和“7”在機器中表示為()。
A.10100011和01110111
B.01000101和01100011
C.00110101和00110111
D.01100101和01100111
46.以下能正確定義一維數組的選項是
A.inta[5]={0,1,2,3,4,5}
B.chara[]={'0','1','2','3','4','5','\0'};
C.chara={'A','B','C'};
D.inta[5]="0123";
47.若要求在if后一對圓括號中表示a不等于0的關系,則能正確表示這一關系的表達式為()
A.a<0B.!aC.a=0D.a
48.設有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);則
A.運行程序段后輸出0B.運行程序段后輸出1C.程序段中的控制表達式是非法的D.程序段執行無限次
49.下列敘述中,正確的是
A.用E-R圖能夠表示實體集間一對一的聯系、一對多的聯系和多對多的聯系
B.用E-R圖只能表示實體集之間一對一的聯系
C.用E-R圖只能表示實體集之間一對多的聯系
D.用E-R圖表示的概念數據模型只能轉換為關系數據模型
50.有程序:voidfun(inta,intb,intc){a=456;b=567;c=678;}main(){intx=10,y=20,z=30;fun(x,y,Z);printf("%d,%d,%d\n",z,y,x);}輸出結果是()
A.30,20,10B.10,20,30C.456,567,678D.678,567,456
51.變量a所占的內存字節數是______。unionU{charst[4];inti;long1;};structA{intc;unionUu;}a;
A.4B.5C.6D.8
52.算法的空間復雜度是指()。
A.算法程序的長度B.算法程序中的指令條數C.算法程序所占的存儲空間D.執行算法需要的內存空間
53.以下選項中不能作為合法常量的是_____。A.1.234e04B.1.234e0.4C.1.234e+4D.1.234e0
54.設有如下定義:structsk{inta;floatb;}data;int*p;若要使p指向data中的a域,正確的賦值語句是()
A.p=&a;B.p=data.a;C.p=&data.a,D.*p=data.a;
55.下列敘述中錯誤的是()。
A.線性表是由n個元素組成的一個有限序列
B.線性表是一種線性結構
C.線性表的所有結點有且僅有一個前件和后件
D.線性表可以是空表
56.下列程序main(){chararr[2][4];strcpy(arr,"you");strcpy(arr[1],"me");arr[0][3]='&';printf("%s\n",arr);}執行后的輸出結果是()
A.you&meB.youC.meD.err
57.以下關于函數的敘述中正確的是______。A.每個函數都可以被其他函數調用(包括main函數)
B.每個函數都可以被單獨編譯
C.每個函數都可以單獨運行
D.在一個函數內部可以定義另一個函數
58.算法具有五個特性,以下選項中不屬于算法特性的是_____。A.有窮性B.簡潔性C.可行性D.確定性
59.若變量都已正確說明,則以下程序段輸出結果為()。#include<stdio.h>main(){chara='a';intb=2;printf(a>b?”***a=%d":"###b=%d",a,B;}
A.***a=3B.###b=3C.***a=3##b=5D.全部錯誤
60.軟件是指()。A.程序B.程序和文檔C.算法加數據結構D.程序、數據與相關文檔的完整集合
四、選擇題(20題)61.在C語言中,只有在使用時才占用內存單元的變量,其存儲類型是()。
A.aut0和register
B.extem和register
C.auto和static
D.static和register
62.對兩個數組a和b進行下列初始化:
charm[]1="l234567":
charn[]={'1','2','3','4','5','6','7');
則下列敘述正確的是()。A.A.數組m與數組n完全相同
B.數組m與數組n長度相同
C.數組m比數組n長1
D.數組m與數組n中都存放字符串
63.有如下程序:
main()
{intx=1,a=0,b=0;
switch(x)
{
case0:b++;
casel:a++;
case2:a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
該程序的輸出結果是()。
A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2
64.
65.下列描述錯誤的是()。
A.繼承分為多重繼承和單繼承
B.對象之問的通信靠傳遞消息來實現
C.在外面看不到對象的內部特征是基于對象的“模塊獨立性好”這個特征
D.類是具有共同屬性、共同方法的對象的集合
66.在Internet中,域名服務器的主要功能是實現()的轉換。
A.IP地址到域名(主機名字)B.域名到IP地址C.主機IP地址和路由器IP地址之間D.路由器IP地址之問
67.
68.
69.有以下程序:
程序執行后的輸出結果是()。
A.5B.24C.32D.40
70.有以下程序:
程序運行后的輸出結果是()。
A.2,2,3,4,5,
B.6,2,3,4,5,
C.1,2,3,4,5,
D.2,3,4,5,6,
71.下列程序的運行結果為()。#include<stdio.h>main{structdate{intyear,month,day;}today;printf("%d\n",sizeof(structdate));}A.8B.6C.10D.12
72.
有以下程序
#include<stdi0.h>
voidfun(intn,int*p)
(intf1,f2;
if(n==1||n==2)*p=1;
else
{fun(n-1,&f1);fun(n-2,&f2);
*p=f1+f2;
}
}
main
{ints;
fun(3,&s);printf("%d",s);
}
程序的運行結果是()。
A.2B.3C.4D.5
73.第
11
題
若有定義:char*st="howareyou";下列程序段中正確的是
A.chara[11],*p;strcpy(p=a+1,&st[4]);
B.chara[11];strcpy(++a,st);
C.chara[11];strcpy(a,st);
D.chara[],*p;strcpy(p=&a[1],st+2);
74.程序段:intx=12;doubley=3.141593;printf(”%d%8.6f”,x,y.;的輸出結果是()。
A.123.141593
B.123.141593
C.12,3.141593
D.123.1415930
75.
76.開發軟件所需高成本和產品的低質量之間有著尖銳的矛盾,這種現象稱為()。
A.軟件投機B.軟件危機C.軟件工程D.軟件產生
77.設變量已正確定義并賦值,以下正確的表達式是()。
A.X=Y+z+5,++YB.int(15.8%5)C.X=Y*5=X+ZD.X=25%5.0
78.
79.
80.設有定義:
五、程序改錯題(1題)81.下列給定程序中,函數proc()的功能是:計算str所指字符串中含有t所指字符串的數目,并作為函數值返回。
請修改程序中的錯誤,使它能得出正確的結果。
注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。
試題程序:
六、程序設計題(1題)82.請編寫一個函數proc(),它的功能是:將str所指字符串中所有下標為奇數位置的字母轉換為大寫(若該位置上不是字母,則不轉換)。例如,若輸入abcdel23,則應輸出aBcDe123。注意:部分源程序給出如下。請勿改動main()函數和其他函數中的任何內容,僅在函數proc()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.D解析:線性表的順序存儲是用一片連續的空間來存放數據元素,其特點是邏輯上相鄰的元素在物理位置上也相鄰。數據元素之間邏輯上的先后關系自動隱含在物理位置的相鄰元素之中,因此,不需要另外開辟空間來保存元素之間的關系。
2.C
3.D二維數組在初始化時,可以省第1維,但是不可以省第2維。可以為部分數組元素初始化。A選項、B選項和C選項內的初始化都沒有錯誤。因此D選項正確。
4.C解析:賦值的一般形式為:變量名:表達式;,賦值的方向為由右向左,即將:右側表達式的值賦給:左側的變量,執行步驟是先計算再賦值。選項A中運算符%的運算對象必須為整數,而選項A中26.8不為整數,故選項A不正確;選項B將一個變量賦值給一個常量,這在C語言中是不允許的,故選項B不正確;選項D中也是將一個常量3賦值給一個常量,故選項D不正確;所以,4個選項中選項C符合題意。
5.Ascanf是格式輸入函數,即按用戶指定的格式從鍵盤上把數據輸入指定的變量中。其中,在百分號(%)與格式碼之間的整數用于限制從對應域讀入的最大字符數。所以j的值為55,y的值為566.0,字符數組name的值為7777abc。故本題答案為A選項。
6.A程序首先使用typedef定義一種新的類型名PER,它包含3種數據成員:整數num,字符數組name,整數score。main函數使用PER定義結構體數組s,s包含兩個PER類型的元素。然后調用函數fun將數組s傳入。fun函數的功能是比較形參數組x的兩個元素的score值的大小。若第1個元素的score值大于第2個元素的score值,就使用臨時變量t將兩個元素的score值交換。由于621大于585且x等價于實參s的指針,因此實參s的兩個元素的score也會進行交換,執行完fun函數之后,for循環將兩個元素輸出。故本題答案為A選項。
7.C
8.A解析:從關系中找出滿足給定條件的那些元組稱為選擇,是從行的角度進行的運算,即水平方向抽取元組。從關系模式中挑選若干屬性組成新的關系稱為投影,是從列的角度進行的運算,相當于對關系進行垂直分解。所以,本題選擇A。
9.C
10.B在用靜態static與外部extern定義變量時,系統立刻給其分配內存,而定義自動類auto與強制放入寄存器register類型變量時,只有當使用時才分配內存。
11.C
12.A
13.D
14.Cscanf函數用于輸入數據。第1個參數表示輸入格式控制。本題變量a是double類型,使用格式控制符%If;變量b是float類型,使用%If;變量c是short類型,使用%hd,選項C正確。本題答案為C選項。
15.B解析:在主函數中,第—次調用fun函數,將變量b,c的值傳給形參x,y,在fun()函數中執行if語句,判斷b和c的值是否相等,由于在主函數中賦初值b=5,c=6,所以判斷條件不滿足,執行else語句,返回表達式(x+y)/2的值,即:(5+6)/2,因為參數的類型都為int型,所以結果也為整型:5,第二次調用時8和5也不相等,所以返回值為6,因此,選項B是正確的。
16.C
17.B解析:本題考查的知識點是變量賦初值.選項A中的語句只能起定義n1的作用,而n2=10是n1的初始值表達式,但因前面沒有定義過n2,所以編譯會報錯“n2未定義”,故不正確。選項B使用一個整數初始化一個字符變量是正確的,因為字符變量中保存的本來就是整數(某字符的ASCII碼值)。選項C定義的初始值表達式中出現了它自身,某些編譯器能通過編譯,但f在初始化之前是一個未知的值,用未知值來初始化也還是未知值,這是不可取的。選項D的初始值是一個非法常量,因為實型常量指數形式的指數部分必須為整數,這里的2.5非法。
18.B
19.BC語言中沒有“<>”運算符,所以A選項錯誤。運算符“%”的左右兩個操作數必須為整型數據,所以B選項正確。表達式“a*y”的結果為double型,所以C選項錯誤。不能將值賦給像“x+y”這樣的表達式,所以D選項錯誤。故本題答案為B選項。
20.A
\nC語言規定,標識符是由字母、數字或下劃線組成,并且它的第一個字符必須是字母或者下劃線。int就是表達整型變量類型的標識符,它不能用做變量名和函數名。
\n
21.中序中序解析:在先左后右的原則下,根據訪問根結點的次序,二叉樹的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷.前序遍歷是指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結點,然后遍歷左子樹,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先訪問根結點,然后遍歷左子樹,最后遍歷右子樹。中序遍歷指在訪問根結點、遍歷左了樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結點,最后遍歷右子樹:并且遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結點,最后遍歷右子樹。后序遍歷指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷右子樹,然后訪問根結點,最后遍歷左子樹;并且遍歷左、右子樹時,仍然光遍歷右子樹,然后訪問根結點,最后遍歷左子樹。
22.PI=3.14159PI=3.14159解析:本題先定義了一個宏名PI,以后在程序中出現PI都用3.14159替代,但是C語言規定:雙引號中的宏名是不進行替換的。
23.類類解析:在面向對象的方法中,把具有相同屬性和方法的對象稱為類,類是對象的抽象,對象是類的實例。
24.*2*4*6*8**2*4*6*8*解析:程序中指針p指向數組a,while(*P)語句的循環條件是*p!=\'\\0\',在循環體中,當i=0,2,4,6,8時,i%2=0,執行*p=\'*\',即a[i]=\'*\',繼續執行p++;i++;使i為奇數;當i=1,3,5,7時,i%2=1,繼續執行p++;i++;使i為偶數。可見,程序在字符串'123456789',的下標為偶數的位置上賦值\'*\',代替原字符串中的1,3,5,7,9。所以,程序輸出結果為*2*4*6*8*。
25.1a61a6解析:對于指針變量的運算,就是對地址的運算。本題中由于指針指向的是整型變量,所以,使指針變量移動9個位置也就是移動18個字節。注意,本題是以十六進制輸出的。
26.k=5k=5解析:本題主要考查了函數的遞歸調用方法。g=0或g=1或g=2是遞歸的終止條件,然后用回代的方法從一個已知值推出下一個值,直到計算出最終結果。
27.數據流數據流解析:結構化分析方法的實質是著眼于數據流,自頂向下,逐層分解,建立系統的處理流程,以數據流圖和數據字典為主要工具,建立系統的邏輯模型。
28.abcbccabcbcc解析:for循環用strcpy函數將字符數組ch的值'abc',分別復制給二維數組x的每一行,然后通過for循環先后打印出以x[0][0],x[1][1],x[2][2]開頭的字符串'abe','bc','c',所以輸出結果為:abcbcc。
29.測試實例測試實例解析:進行軟件測試時,應精心設計測試實例和選擇測試數據,以對系統進行全面測試。
30.lett.dat6*sizeof(char)lett.dat6*sizeof(char)解析:本題主要考查函數fwrite(char*pt,unsignedsize,unsignedn,FILE*fp),把pt所指向的n*size個字節輸出到fp所指定的文件中。
31.55解析:該程序考查do-while循環。循環共進行兩次。第一次循環b=3,a=4;第二次循環b=1,a=5。輸出a的值為5。
32.p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);p=(double*)malloc(sizeof(double)):或p=(double*)malloc(8);解析:malloc()函數只有一個參數,該參數指定了需要分配多少字節的內存。然后將分配好的內存塊的首地址作為void*(未知類型指針)返回.故標準的調用形式應該寫成:
p(double*)malloc(sizeof(double));
33.77解析:程序中經過宏替換后,表達式t=MAX(a+b,c+d)*10變為t=(a+b)>(c+d)?(a+b):(c+d)*10。因為(a+b)>(c+d)為真,所以t=(a+b),輸出結果為7。
34.1010解析:題目中的fun()函數直接調用了自身,所以它是遞歸函數。函數中只有一條if語句,意思是:若n為0,則返回x所指內容(x[0]等價于*x),否則返回x所指內容加上fun(x+1,n-1)。即,當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];當n=0時,fun(x,n)=x[0];當n<0時,函數將無限循環遞歸調用下去,因為n-1下去永遠也不會等于0。所以本題中fun(a,3)=a[0]+a[1]+a[2]+a[3]=12+3+4=10。故應該填10。
35.babcdbabcd解析:C語言中“\\0”表示字符串的結束。程序將p指針指向字符串“AbabCDcd”的首地址,循環開始后若指針不是指向當前字符串的結束標志位,則進入循環體。循環中每次檢驗字符串中字母是否在'a'與'z'之間,若滿足則將當前值賦值給數組a,最后給數組添加字符結束標志。此程序可以篩選出字符串中的小寫字母。
36.87788,7,7,8解析:本題中執行語句p=&a和q=&b后,*p=7,*q=8;執行完語句r=p,p=q,q=r后,*p=8,*q=7,故答案為8,7,7,8。
37.3131解析:設隊列容量為m,如果:rear>front,則隊列中元素個數為rear-front;如果rear<front,則隊列中元素個數為m+(rear-front)。本題rear<front,則m=32+(2-3)=31。
38.3232解析:二叉樹第k層上,最多有2k-1(k≥1)個結點。第6層的結點數最多是26-1=32。注意區別“二叉樹的結點最多數”和“某一層的結點最多數”。前者的計算是深度為m的二叉樹最多有2m-1個結點。
39.x+8sin(x)x+8,sin(x)解析:考查考生對函數調用相關知識的了解。用x+8代替函數fun(doublex)中形式參數x;用sin(x)代替函數fun(doublex)中形式參數x。
40.*t++或*(t++)*t++或*(t++)解析:主函數中定義了兩個字符型數組str1和str2,并且給str2賦初值“abcdefgh”,接著調用函數strcpy(str1,str2),將字符串str2的值賦給str1。在函數sstrcpy(*s,*t)中,用了一個while循環,每循環一次將形參指針t所指的字符賦給形參指針s所指向的存儲空間,然后將指針s和t都移到下一個元素。所以空白處應該填*t++或*(t++)。
41.D解析:結構體變量所占用內存的字節數是其所有成員所占用內存字節數之和。本題中整型變量i所占用的內存是2字節,字符型變量ch所占用的內存是1字節,雙精度型變量f所占用的內存是8字節,三者相加即可。
42.D解析:棧是一種對操作的位置加以限制的線性表,它采用了順序存儲方式,屬于線性結構。與隊列不同,棧只允許在表的一端進行插入或刪除操作,具有后進先出的特征。
43.CC。【解析】在模塊化程序設計中,模塊之間的聯系可以通過程序的控制結構來實現,在自頂向下、逐步細化的設計過程中,首先要考慮全局目標,而不是細節。在程序設計中模塊化和結構化可以同時使用,一個模塊的內部結構也要符合結構化設計原則。
44.D解析:本題的函數fun的最后一個語句是“return(*a-*b);”,也就是返回指針a所指單元的值與指針b所指單元的值的差。顯然這不可能是計算a和b所指字符串的長度之差,因此選項A的說法是錯誤的。由于函數中并沒有出現。a=*b的賦值操作,所以選項B的連接字符串的說法也是錯誤的。同理,由于沒有*a現*a=*b的賦值操作,所以選項C的復制字符串的說法也是錯誤的。排除了三個選項后,就可以斷定正確選項是D。
45.C解析:字符“5”和“7”的ASCII碼值分別為53和55,其二進制形式分別為00110101和00110111。
46.B解析:選項A)中,定義的初值個數大于數組的長度;選項C)中,數組名后少了中括號;選項D)中,整型數組不能賦予字符串。
47.D
48.B解析:本題考查while語句的使用。本題考查邏輯非運算符和不等于運算符的區別,邏輯非運算符'!'的優先級大于不等于運算符'!='的優先級。
49.A解析:兩個實體之間的聯系實際上是實體集間的函數關系,這種函數關系可以有下面幾種,即一對一的聯系、一對多(或多對一)的聯系和多對多的聯系;概念模型便于向各種模型轉換。由于概念模型不依賴于具體的數據庫管理系統,因此,容易向關系模型、網狀模型和層次模型等各種模型轉換。
50.A
51.C解析:結構體變量所占內存長度是各成員占內存長度之和,而共用體變量所占的內存長度等于最長的成員的長度。本題結構體變量a中成員c為整型占2個字節,共用體變量u最大長度為4個字節,故選C。
52.D解析:算法的復雜度主要包括算法的時間復雜度和算法的空間復雜度。所謂算法的時間復雜度是指執行算法所需要的計算工作量;算法的空間復雜度一般是指執行這個算法所需要的內存空間。
53.B解析:本題考查的是C語言中實型常量的指數表示法。實型常量的指數表示法是用字母e(或E)將一個實數的小數部分和指數部分分隔開。字母e(或E)之前是小數部分,之后是指數部分,這兩部分都不能省略,且指數部分必須為整數。故選項B不正確。所以,4個選項中選項B符合題意。
54.C解析:data是—結構體變量,a是它的成員,因此引用a域的正確方法是:data.a,取它的地址賦值給指針變量p的語句應該是:p=&data.a。選項A,將a的地址直接賦給了p,而忽略了a為結構體內部的一個成員,而不是一單獨的變量,故選項A不正確;選項B在p=data.a表達式中右邊為一個結構體變量的成員不是地址,而左邊為一指針應該將一地址賦給它,故選項B不正確;選項D表達式*p=data.a是將結構體變量中的成員a的值賦給指針p所指向的變量值,而不是使指針p指向data中的a域,故選項D不正確:4個選項中只有C正確。
55.CC.【解析】線性表是一種線性結構,由n(n≥0)個元素組成,所以線性表可以是空表。但是在線性表中,第一個結點沒有前件,最后一個結點沒有后件,其他結點有且只有一個前件和后件,所以選項C.是錯誤的。
56.A
57.B解析:本題考查函數的一些概念.main()函數是一個程序的主函數,它由系統調用,所以選項A不正確。一個C語言源程序文件可以只包含一個函數,每個源文件都可以被單獨編譯成。obj文件,最后鏈接成可執行文件。因此每個函數都可以被單獨編譯,選項B正確。一個C程序必須從主函數main()開始運行,其他函數只能是直接或間接被main()函數調用才能得以運行,因此選項C錯誤。C語言不支持函數的嵌套定義,所有函數只能是全局函數,所以選項D錯誤。故應該選擇B。
58.B解析:一個算法應當具有以下5個特性:有窮性;確定性;可行性;有零個或多個輸入;由一個或多個輸出.簡潔性不屬于這5個特性,所以本題應該選擇B。
59.D
60.D軟件是計算機系統中與硬件相互依存的另一部分,是包括程序、數據及相關文檔的完整集合。其中,程序是軟件開發人員根據用戶需求開發的、用程序設計語言描述的、適合計算機執行的指令(語句)序列;數據是使程序能正常操縱信息的數據結構;文檔是與程序開發、維護和使用有關的圖文資料。因此本題的正確答案是D。
61.A本題的考查點是變量的存儲類型。extern、register、static、auto分別是定義自動變量、寄存器變量、靜態變量、外部變量,其中,自動變量和寄存器變量屬于動態存儲,調用時臨時分配單元;而靜態變量和外部變量屬于靜態存儲,在整個程序運行時間都存在。
62.C在m數組中賦值的是字符串,其長度為7,末尾有結束符'\0',故字節數為8,而n數組中賦的是字符,其長度為7,故C選項正確。
63.A\n當X為1時,執行case1,a自加等于1,因為case1后沒有break,接著執行case2,此時a的值為2,b自加為1,故選擇A選項。
\n
64.C
65.C對象的封裝性是指從外面看只能看到對象的外部特性,而對象的內部,其處理能力的實行和內部狀態對外是不可見的,是隱蔽的。
66.B在Internet中,把域名翻譯為IP地址的軟件稱為域名系統DNS,運行域名系統的主機稱為域名服務器。域名服務器的主要功能是實現入網主機名字和IP地址的轉換。
67.B
68.C
69.C本題的含義是在1—40的蔓敦的范圍中,只有當i的值能被5整除,且i+2的值能被3薹纛時,打印i的值,滿跫這個條件的只有32,選擇c選項。
70.B本題考查的是指針作為函數的參數和函數
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司數字化活動方案
- 公司羽毛球團建活動方案
- 公司秋季出游活動方案
- 公司粽子節活動方案
- 公司新人見面會策劃方案
- 公司畢業晚會活動方案
- 公司聚會團建策劃方案
- 公司比學趕幫超活動方案
- 公司端午慰問活動方案
- 公司消除浪費活動方案
- 體外診斷試劑盒線性范圍研究線性區間評價資料及可報告區間建立
- AQ 1097-2014 井工煤礦安全設施設計編制導則(正式版)
- 甲乙方施工合同范本
- 嬰幼兒配方乳粉市場銷售管理規范
- 小班語言《誰的救生圈》課件
- 海思芯片PC-測試技術規范
- 內陸養殖與水生植物種植
- 集體協商培訓課件
- Unit 3 What would you like A Let's learn(教學設計)人教PEP版英語五年級上冊
- 物業社區團購方案
- 仙家送錢表文-文字打印版
評論
0/150
提交評論