




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2022-2023年江蘇省蘇州市全國計算機等級考試C語言程序設計預測試題(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列描述中,不是線性表順序存儲結構特征的是
A.不便于插入和刪除B.需要連續(xù)的存儲空間C.可隨機訪問D.需另外開辟空間來保存元素之間的關系
2.若已定義x和y是整型變量,x=2;,則表達式y(tǒng)=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.在邏輯上,可以把二維數(shù)組看成是一個具有行和列的表格或矩陣
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);當執(zhí)行上述程序段時,從鍵盤上輸入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.計算機能夠直接識別和執(zhí)行的語言是
A.匯編語言B.自然語言C.機器語言D.高級語言
8.對表進行水平方向和垂直方向的分割,分別對應的關系運算是()
A.選擇和投影B.投影和選擇C.選擇和聯(lián)接D.投影和聯(lián)接
9.數(shù)據(jù)在計算機存儲器內表示時,如果元素在存儲器中的相對位置能反映數(shù)據(jù)元素之間的邏輯關系,則稱這種存儲結構為()。
A.存儲結構B.邏輯結構C.順序存儲結構D.鏈式存儲結構
10.以下只有在使用時才為該類型變量分配內存的存儲類型說明是()。
A.auto和static
B.auto和register
C.register和static
D.extern和register
11.計算機系統(tǒng)的組成是______。
A.主機、外設B.運算器、控制器C.硬件系統(tǒng)和軟件系統(tǒng)D.CPU、內存儲器
12.程序中主函數(shù)的名字為()。
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(tǒng))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.在先左后右的原則下,根據(jù)訪問根結點的次序,二叉樹的遍歷可以分為三種;前序遍歷、【】遍歷和后序遍歷。
22.若定義#definePI3.14159,則執(zhí)行完下列程序后輸出結果是______。
#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.軟件測試是保證軟件質量的重要手段,而軟件測試的主要和重要的測試方法是通過測試數(shù)據(jù)和【】的設計來實現(xiàn)。
30.以下程序將數(shù)組a的4個元素和數(shù)組b的6個元素寫到名為lett.dat的二進制文件中,請?zhí)羁铡?/p>
#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函數(shù)使p指向一個雙精度型的動態(tài)存儲單元______。
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的循環(huán)隊列中,若頭指針front=3,尾指針rear=2,則該循環(huán)隊列中共有______個元素。
38.一棵二叉樹第6層(根結點為第一層)的結點最多為______個。
39.以下程序中,函數(shù)fun的功能是計算x2-2x+6,主函數(shù)中將調用fun函數(shù)計算:
y1=(x+8)2-2(x+8)+6
y2=sin2(x)-2sin(x)+6
請?zhí)羁铡?/p>
#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()函數(shù)實現(xiàn)字符串復制,即將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占用內存的字節(jié)數(shù)是
A.1B.2C.7D.11
42.下列關于棧的敘述正確的是()
A.棧是非線性結構B.棧是一種樹狀結構C.棧具有先進先出的特征D.棧具有后進先出的特征
43.下列敘述中正確的是()。
A.在模塊化程序設計中,一個模塊應該盡量多的包括與其他模塊聯(lián)系的信息
B.在自頂向下、逐步細化的設計過程中,首先應設計解決問題的第一個細節(jié)
C.在模塊化程序設計中,一個模塊內部的控制結構也要符合結構化原則
D.在程序設計過程中,不能同時采用結構化程序設計方法與模塊化程序設計方法
44.有以下函數(shù)fun(char*a,char*b){while((*a!='\0')&&(*b!='\0')&&(*a==*b)){a++;b++;}return(*a-*b);}該函數(shù)的功能是______。
A.計算a和b所指字符串的長度之差
B.將b所指字符串連接到a所指字符串中
C.將b所指字符串連接到a所指字符串后面
D.比較a和b所指字符串的大小
45.字符型數(shù)據(jù)在機器中用ASCII碼表示,字符“5”和“7”在機器中表示為()。
A.10100011和01110111
B.01000101和01100011
C.00110101和00110111
D.01100101和01100111
46.以下能正確定義一維數(shù)組的選項是
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.程序段執(zhí)行無限次
49.下列敘述中,正確的是
A.用E-R圖能夠表示實體集間一對一的聯(lián)系、一對多的聯(lián)系和多對多的聯(lián)系
B.用E-R圖只能表示實體集之間一對一的聯(lián)系
C.用E-R圖只能表示實體集之間一對多的聯(lián)系
D.用E-R圖表示的概念數(shù)據(jù)模型只能轉換為關系數(shù)據(jù)模型
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所占的內存字節(jié)數(shù)是______。unionU{charst[4];inti;long1;};structA{intc;unionUu;}a;
A.4B.5C.6D.8
52.算法的空間復雜度是指()。
A.算法程序的長度B.算法程序中的指令條數(shù)C.算法程序所占的存儲空間D.執(zhí)行算法需要的內存空間
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);}執(zhí)行后的輸出結果是()
A.you&meB.youC.meD.err
57.以下關于函數(shù)的敘述中正確的是______。A.每個函數(shù)都可以被其他函數(shù)調用(包括main函數(shù))
B.每個函數(shù)都可以被單獨編譯
C.每個函數(shù)都可以單獨運行
D.在一個函數(shù)內部可以定義另一個函數(shù)
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.算法加數(shù)據(jù)結構D.程序、數(shù)據(jù)與相關文檔的完整集合
四、選擇題(20題)61.在C語言中,只有在使用時才占用內存單元的變量,其存儲類型是()。
A.aut0和register
B.extem和register
C.auto和static
D.static和register
62.對兩個數(shù)組a和b進行下列初始化:
charm[]1="l234567":
charn[]={'1','2','3','4','5','6','7');
則下列敘述正確的是()。A.A.數(shù)組m與數(shù)組n完全相同
B.數(shù)組m與數(shù)組n長度相同
C.數(shù)組m比數(shù)組n長1
D.數(shù)組m與數(shù)組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.對象之問的通信靠傳遞消息來實現(xiàn)
C.在外面看不到對象的內部特征是基于對象的“模塊獨立性好”這個特征
D.類是具有共同屬性、共同方法的對象的集合
66.在Internet中,域名服務器的主要功能是實現(xiàn)()的轉換。
A.IP地址到域名(主機名字)B.域名到IP地址C.主機IP地址和路由器IP地址之間D.路由器IP地址之問
67.
68.
69.有以下程序:
程序執(zhí)行后的輸出結果是()。
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.開發(fā)軟件所需高成本和產(chǎn)品的低質量之間有著尖銳的矛盾,這種現(xiàn)象稱為()。
A.軟件投機B.軟件危機C.軟件工程D.軟件產(chǎn)生
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.下列給定程序中,函數(shù)proc()的功能是:計算str所指字符串中含有t所指字符串的數(shù)目,并作為函數(shù)值返回。
請修改程序中的錯誤,使它能得出正確的結果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。
試題程序:
六、程序設計題(1題)82.請編寫一個函數(shù)proc(),它的功能是:將str所指字符串中所有下標為奇數(shù)位置的字母轉換為大寫(若該位置上不是字母,則不轉換)。例如,若輸入abcdel23,則應輸出aBcDe123。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.D解析:線性表的順序存儲是用一片連續(xù)的空間來存放數(shù)據(jù)元素,其特點是邏輯上相鄰的元素在物理位置上也相鄰。數(shù)據(jù)元素之間邏輯上的先后關系自動隱含在物理位置的相鄰元素之中,因此,不需要另外開辟空間來保存元素之間的關系。
2.C
3.D二維數(shù)組在初始化時,可以省第1維,但是不可以省第2維??梢詾椴糠謹?shù)組元素初始化。A選項、B選項和C選項內的初始化都沒有錯誤。因此D選項正確。
4.C解析:賦值的一般形式為:變量名:表達式;,賦值的方向為由右向左,即將:右側表達式的值賦給:左側的變量,執(zhí)行步驟是先計算再賦值。選項A中運算符%的運算對象必須為整數(shù),而選項A中26.8不為整數(shù),故選項A不正確;選項B將一個變量賦值給一個常量,這在C語言中是不允許的,故選項B不正確;選項D中也是將一個常量3賦值給一個常量,故選項D不正確;所以,4個選項中選項C符合題意。
5.Ascanf是格式輸入函數(shù),即按用戶指定的格式從鍵盤上把數(shù)據(jù)輸入指定的變量中。其中,在百分號(%)與格式碼之間的整數(shù)用于限制從對應域讀入的最大字符數(shù)。所以j的值為55,y的值為566.0,字符數(shù)組name的值為7777abc。故本題答案為A選項。
6.A程序首先使用typedef定義一種新的類型名PER,它包含3種數(shù)據(jù)成員:整數(shù)num,字符數(shù)組name,整數(shù)score。main函數(shù)使用PER定義結構體數(shù)組s,s包含兩個PER類型的元素。然后調用函數(shù)fun將數(shù)組s傳入。fun函數(shù)的功能是比較形參數(shù)組x的兩個元素的score值的大小。若第1個元素的score值大于第2個元素的score值,就使用臨時變量t將兩個元素的score值交換。由于621大于585且x等價于實參s的指針,因此實參s的兩個元素的score也會進行交換,執(zhí)行完fun函數(shù)之后,for循環(huán)將兩個元素輸出。故本題答案為A選項。
7.C
8.A解析:從關系中找出滿足給定條件的那些元組稱為選擇,是從行的角度進行的運算,即水平方向抽取元組。從關系模式中挑選若干屬性組成新的關系稱為投影,是從列的角度進行的運算,相當于對關系進行垂直分解。所以,本題選擇A。
9.C
10.B在用靜態(tài)static與外部extern定義變量時,系統(tǒng)立刻給其分配內存,而定義自動類auto與強制放入寄存器register類型變量時,只有當使用時才分配內存。
11.C
12.A
13.D
14.Cscanf函數(shù)用于輸入數(shù)據(jù)。第1個參數(shù)表示輸入格式控制。本題變量a是double類型,使用格式控制符%If;變量b是float類型,使用%If;變量c是short類型,使用%hd,選項C正確。本題答案為C選項。
15.B解析:在主函數(shù)中,第—次調用fun函數(shù),將變量b,c的值傳給形參x,y,在fun()函數(shù)中執(zhí)行if語句,判斷b和c的值是否相等,由于在主函數(shù)中賦初值b=5,c=6,所以判斷條件不滿足,執(zhí)行else語句,返回表達式(x+y)/2的值,即:(5+6)/2,因為參數(shù)的類型都為int型,所以結果也為整型:5,第二次調用時8和5也不相等,所以返回值為6,因此,選項B是正確的。
16.C
17.B解析:本題考查的知識點是變量賦初值.選項A中的語句只能起定義n1的作用,而n2=10是n1的初始值表達式,但因前面沒有定義過n2,所以編譯會報錯“n2未定義”,故不正確。選項B使用一個整數(shù)初始化一個字符變量是正確的,因為字符變量中保存的本來就是整數(shù)(某字符的ASCII碼值)。選項C定義的初始值表達式中出現(xiàn)了它自身,某些編譯器能通過編譯,但f在初始化之前是一個未知的值,用未知值來初始化也還是未知值,這是不可取的。選項D的初始值是一個非法常量,因為實型常量指數(shù)形式的指數(shù)部分必須為整數(shù),這里的2.5非法。
18.B
19.BC語言中沒有“<>”運算符,所以A選項錯誤。運算符“%”的左右兩個操作數(shù)必須為整型數(shù)據(jù),所以B選項正確。表達式“a*y”的結果為double型,所以C選項錯誤。不能將值賦給像“x+y”這樣的表達式,所以D選項錯誤。故本題答案為B選項。
20.A
\nC語言規(guī)定,標識符是由字母、數(shù)字或下劃線組成,并且它的第一個字符必須是字母或者下劃線。int就是表達整型變量類型的標識符,它不能用做變量名和函數(shù)名。
\n
21.中序中序解析:在先左后右的原則下,根據(jù)訪問根結點的次序,二叉樹的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷.前序遍歷是指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結點,然后遍歷左子樹,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先訪問根結點,然后遍歷左子樹,最后遍歷右子樹。中序遍歷指在訪問根結點、遍歷左了樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結點,最后遍歷右子樹:并且遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結點,最后遍歷右子樹。后序遍歷指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷右子樹,然后訪問根結點,最后遍歷左子樹;并且遍歷左、右子樹時,仍然光遍歷右子樹,然后訪問根結點,最后遍歷左子樹。
22.PI=3.14159PI=3.14159解析:本題先定義了一個宏名PI,以后在程序中出現(xiàn)PI都用3.14159替代,但是C語言規(guī)定:雙引號中的宏名是不進行替換的。
23.類類解析:在面向對象的方法中,把具有相同屬性和方法的對象稱為類,類是對象的抽象,對象是類的實例。
24.*2*4*6*8**2*4*6*8*解析:程序中指針p指向數(shù)組a,while(*P)語句的循環(huán)條件是*p!=\'\\0\',在循環(huán)體中,當i=0,2,4,6,8時,i%2=0,執(zhí)行*p=\'*\',即a[i]=\'*\',繼續(xù)執(zhí)行p++;i++;使i為奇數(shù);當i=1,3,5,7時,i%2=1,繼續(xù)執(zhí)行p++;i++;使i為偶數(shù)??梢?,程序在字符串'123456789',的下標為偶數(shù)的位置上賦值\'*\',代替原字符串中的1,3,5,7,9。所以,程序輸出結果為*2*4*6*8*。
25.1a61a6解析:對于指針變量的運算,就是對地址的運算。本題中由于指針指向的是整型變量,所以,使指針變量移動9個位置也就是移動18個字節(jié)。注意,本題是以十六進制輸出的。
26.k=5k=5解析:本題主要考查了函數(shù)的遞歸調用方法。g=0或g=1或g=2是遞歸的終止條件,然后用回代的方法從一個已知值推出下一個值,直到計算出最終結果。
27.數(shù)據(jù)流數(shù)據(jù)流解析:結構化分析方法的實質是著眼于數(shù)據(jù)流,自頂向下,逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。
28.abcbccabcbcc解析:for循環(huán)用strcpy函數(shù)將字符數(shù)組ch的值'abc',分別復制給二維數(shù)組x的每一行,然后通過for循環(huán)先后打印出以x[0][0],x[1][1],x[2][2]開頭的字符串'abe','bc','c',所以輸出結果為:abcbcc。
29.測試實例測試實例解析:進行軟件測試時,應精心設計測試實例和選擇測試數(shù)據(jù),以對系統(tǒng)進行全面測試。
30.lett.dat6*sizeof(char)lett.dat6*sizeof(char)解析:本題主要考查函數(shù)fwrite(char*pt,unsignedsize,unsignedn,F(xiàn)ILE*fp),把pt所指向的n*size個字節(jié)輸出到fp所指定的文件中。
31.55解析:該程序考查do-while循環(huán)。循環(huán)共進行兩次。第一次循環(huán)b=3,a=4;第二次循環(huán)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()函數(shù)只有一個參數(shù),該參數(shù)指定了需要分配多少字節(jié)的內存。然后將分配好的內存塊的首地址作為void*(未知類型指針)返回.故標準的調用形式應該寫成:
p(double*)malloc(sizeof(double));
33.77解析:程序中經(jīng)過宏替換后,表達式t=MAX(a+b,c+d)*10變?yōu)閠=(a+b)>(c+d)?(a+b):(c+d)*10。因為(a+b)>(c+d)為真,所以t=(a+b),輸出結果為7。
34.1010解析:題目中的fun()函數(shù)直接調用了自身,所以它是遞歸函數(shù)。函數(shù)中只有一條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時,函數(shù)將無限循環(huán)遞歸調用下去,因為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”的首地址,循環(huán)開始后若指針不是指向當前字符串的結束標志位,則進入循環(huán)體。循環(huán)中每次檢驗字符串中字母是否在'a'與'z'之間,若滿足則將當前值賦值給數(shù)組a,最后給數(shù)組添加字符結束標志。此程序可以篩選出字符串中的小寫字母。
36.87788,7,7,8解析:本題中執(zhí)行語句p=&a和q=&b后,*p=7,*q=8;執(zhí)行完語句r=p,p=q,q=r后,*p=8,*q=7,故答案為8,7,7,8。
37.3131解析:設隊列容量為m,如果:rear>front,則隊列中元素個數(shù)為rear-front;如果rear<front,則隊列中元素個數(shù)為m+(rear-front)。本題rear<front,則m=32+(2-3)=31。
38.3232解析:二叉樹第k層上,最多有2k-1(k≥1)個結點。第6層的結點數(shù)最多是26-1=32。注意區(qū)別“二叉樹的結點最多數(shù)”和“某一層的結點最多數(shù)”。前者的計算是深度為m的二叉樹最多有2m-1個結點。
39.x+8sin(x)x+8,sin(x)解析:考查考生對函數(shù)調用相關知識的了解。用x+8代替函數(shù)fun(doublex)中形式參數(shù)x;用sin(x)代替函數(shù)fun(doublex)中形式參數(shù)x。
40.*t++或*(t++)*t++或*(t++)解析:主函數(shù)中定義了兩個字符型數(shù)組str1和str2,并且給str2賦初值“abcdefgh”,接著調用函數(shù)strcpy(str1,str2),將字符串str2的值賦給str1。在函數(shù)sstrcpy(*s,*t)中,用了一個while循環(huán),每循環(huán)一次將形參指針t所指的字符賦給形參指針s所指向的存儲空間,然后將指針s和t都移到下一個元素。所以空白處應該填*t++或*(t++)。
41.D解析:結構體變量所占用內存的字節(jié)數(shù)是其所有成員所占用內存字節(jié)數(shù)之和。本題中整型變量i所占用的內存是2字節(jié),字符型變量ch所占用的內存是1字節(jié),雙精度型變量f所占用的內存是8字節(jié),三者相加即可。
42.D解析:棧是一種對操作的位置加以限制的線性表,它采用了順序存儲方式,屬于線性結構。與隊列不同,棧只允許在表的一端進行插入或刪除操作,具有后進先出的特征。
43.CC?!窘馕觥吭谀K化程序設計中,模塊之間的聯(lián)系可以通過程序的控制結構來實現(xiàn),在自頂向下、逐步細化的設計過程中,首先要考慮全局目標,而不是細節(jié)。在程序設計中模塊化和結構化可以同時使用,一個模塊的內部結構也要符合結構化設計原則。
44.D解析:本題的函數(shù)fun的最后一個語句是“return(*a-*b);”,也就是返回指針a所指單元的值與指針b所指單元的值的差。顯然這不可能是計算a和b所指字符串的長度之差,因此選項A的說法是錯誤的。由于函數(shù)中并沒有出現(xiàn)。a=*b的賦值操作,所以選項B的連接字符串的說法也是錯誤的。同理,由于沒有*a現(xiàn)*a=*b的賦值操作,所以選項C的復制字符串的說法也是錯誤的。排除了三個選項后,就可以斷定正確選項是D。
45.C解析:字符“5”和“7”的ASCII碼值分別為53和55,其二進制形式分別為00110101和00110111。
46.B解析:選項A)中,定義的初值個數(shù)大于數(shù)組的長度;選項C)中,數(shù)組名后少了中括號;選項D)中,整型數(shù)組不能賦予字符串。
47.D
48.B解析:本題考查while語句的使用。本題考查邏輯非運算符和不等于運算符的區(qū)別,邏輯非運算符'!'的優(yōu)先級大于不等于運算符'!='的優(yōu)先級。
49.A解析:兩個實體之間的聯(lián)系實際上是實體集間的函數(shù)關系,這種函數(shù)關系可以有下面幾種,即一對一的聯(lián)系、一對多(或多對一)的聯(lián)系和多對多的聯(lián)系;概念模型便于向各種模型轉換。由于概念模型不依賴于具體的數(shù)據(jù)庫管理系統(tǒng),因此,容易向關系模型、網(wǎng)狀模型和層次模型等各種模型轉換。
50.A
51.C解析:結構體變量所占內存長度是各成員占內存長度之和,而共用體變量所占的內存長度等于最長的成員的長度。本題結構體變量a中成員c為整型占2個字節(jié),共用體變量u最大長度為4個字節(jié),故選C。
52.D解析:算法的復雜度主要包括算法的時間復雜度和算法的空間復雜度。所謂算法的時間復雜度是指執(zhí)行算法所需要的計算工作量;算法的空間復雜度一般是指執(zhí)行這個算法所需要的內存空間。
53.B解析:本題考查的是C語言中實型常量的指數(shù)表示法。實型常量的指數(shù)表示法是用字母e(或E)將一個實數(shù)的小數(shù)部分和指數(shù)部分分隔開。字母e(或E)之前是小數(shù)部分,之后是指數(shù)部分,這兩部分都不能省略,且指數(shù)部分必須為整數(shù)。故選項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解析:本題考查函數(shù)的一些概念.main()函數(shù)是一個程序的主函數(shù),它由系統(tǒng)調用,所以選項A不正確。一個C語言源程序文件可以只包含一個函數(shù),每個源文件都可以被單獨編譯成。obj文件,最后鏈接成可執(zhí)行文件。因此每個函數(shù)都可以被單獨編譯,選項B正確。一個C程序必須從主函數(shù)main()開始運行,其他函數(shù)只能是直接或間接被main()函數(shù)調用才能得以運行,因此選項C錯誤。C語言不支持函數(shù)的嵌套定義,所有函數(shù)只能是全局函數(shù),所以選項D錯誤。故應該選擇B。
58.B解析:一個算法應當具有以下5個特性:有窮性;確定性;可行性;有零個或多個輸入;由一個或多個輸出.簡潔性不屬于這5個特性,所以本題應該選擇B。
59.D
60.D軟件是計算機系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)及相關文檔的完整集合。其中,程序是軟件開發(fā)人員根據(jù)用戶需求開發(fā)的、用程序設計語言描述的、適合計算機執(zhí)行的指令(語句)序列;數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結構;文檔是與程序開發(fā)、維護和使用有關的圖文資料。因此本題的正確答案是D。
61.A本題的考查點是變量的存儲類型。extern、register、static、auto分別是定義自動變量、寄存器變量、靜態(tài)變量、外部變量,其中,自動變量和寄存器變量屬于動態(tài)存儲,調用時臨時分配單元;而靜態(tài)變量和外部變量屬于靜態(tài)存儲,在整個程序運行時間都存在。
62.C在m數(shù)組中賦值的是字符串,其長度為7,末尾有結束符'\0',故字節(jié)數(shù)為8,而n數(shù)組中賦的是字符,其長度為7,故C選項正確。
63.A\n當X為1時,執(zhí)行case1,a自加等于1,因為case1后沒有break,接著執(zhí)行case2,此時a的值為2,b自加為1,故選擇A選項。
\n
64.C
65.C對象的封裝性是指從外面看只能看到對象的外部特性,而對象的內部,其處理能力的實行和內部狀態(tài)對外是不可見的,是隱蔽的。
66.B在Internet中,把域名翻譯為IP地址的軟件稱為域名系統(tǒng)DNS,運行域名系統(tǒng)的主機稱為域名服務器。域名服務器的主要功能是實現(xiàn)入網(wǎng)主機名字和IP地址的轉換。
67.B
68.C
69.C本題的含義是在1—40的蔓敦的范圍中,只有當i的值能被5整除,且i+2的值能被3薹纛時,打印i的值,滿跫這個條件的只有32,選擇c選項。
70.B本題考查的是指針作為函數(shù)的參數(shù)和函數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 深入理解注冊會計師試題及答案
- 2025年證券從業(yè)考試技能強化與試題答案
- 項目管理的決策實施技巧試題及答案
- 批發(fā)磚石材料的合同協(xié)議
- 高效學習注冊會計師脈絡試題及答案
- 深入了解金融市場的構成與2025年考試試題及答案
- 2025年銀行資格證考試的知識縱覽試題及答案
- 注會現(xiàn)場模擬試題及答案
- 2025年證券投資合規(guī)管理試題及答案
- 暖氣片購買與銷售合同協(xié)議書模板
- 設備的運行動態(tài)管理制度(4篇)
- 抖店仲裁申請書模板
- 借款利率協(xié)議
- 雞球蟲課件(共32張課件)《動物疫病防治》
- 八年級下 地理 商務星球版《海洋利用與保護》名師課件
- 第七章 堅持以軍事、科技、文化、社會安全為保障-國家安全教育大學生讀本教案
- 《民法典》醫(yī)療損害責任篇培訓課件
- 國企數(shù)字化轉型解讀及賦能zzw
- 血液透析前中后護理
- 《建筑工程設計文件編制深度規(guī)定》(2022年版)
- 《碳排放管理師》(高級)培訓考試模擬題及答案
評論
0/150
提交評論