




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2021年浙江省杭州市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.若有定義:floatx=1.5;inta=1.b=3.c=2;則正確的switch語句是()。A.
B.
C.
D.
2.數據庫的故障恢復一般是由()來執(zhí)行恢復
A.電腦用戶B.數據庫恢復機制C.數據庫管理員D.系統(tǒng)普通用戶
3.有以下程序段當執(zhí)行上述程序段,從鍵盤上輸A,555667777123后,y的值為()。
A.566.0B.55566.0C.7777.0D.566777.0
4.有以下程序:程序運行后的輸出結果是()。A.1.000000B.0.000000C.0.250000D.0.500000
5.下列程序的輸出結果是()。#include<stdio.h>voidmain(){inta=0,b=1,c=2;if(++a>0‖++b>0)++c;printf("%d,%d,%d",a,b,c);}
A.0,1,2B.1,2,3C.1,1,3D.1,2,2
6.以下不能將s所指字符串正確復制到所指存儲空間的是()A.do{*t++=*s++;}while(*s);.
B.for(i=0;t[i]=s[i];i++);
C.while(*t=*s){t++;s++}
D.for(i=0,j=0;t[i++]=s[j++];);
7.對長度為n的無序線性表進行順序查找,則查找成功、不成功時的平均數據比較次數分別為()。
A.n/2,nB.n+1/2,n-1C.n+1/2,nD.n-1/2,n-1
8.若串S=,software,其子串的數目是()。
A.8B.37C.36D.9
9.若有定義“intk=7,x=12;”,則以下表達式值為3的是()。
A.(x%=k)-(k%=5)B.x%=(k%=5)C.x%=(k-k%5)D.x%=k-k%5
10.定義下列結構體(聯(lián)合)數組:structst{charname[15];intage;}a[10]={"ZHA0",14,"WANG",15,"LIU",16,"ZHANG",17);執(zhí)行語句printf("%d,%C",a[2].age,*(a[3].name+2))的輸出結果為()。A.15,AB.16,HC.16,AD.17,H
11.下列鏈表中,其邏輯結構屬于非線性結構的是()
A.雙向鏈表B.帶鏈的棧C.二叉鏈表D.循環(huán)鏈表
12.下面程序的輸出結果是______。#definea121constb=12;enumc{a1,a2};main(){printf("%d,%d,%d",sizeof(a),sizeof(b),sizeof(enumc));}
A.121,0,4B.2,2,2C.0,2,4D.0,2,2
13.
14.以下選項中,能表示邏輯值“假”的是()
A.1B.0.000001C.0D.100.0
15.
16.設有以下定義:inta=0;doubleb=1.25;charc='A';#defined2則下面語句中錯誤的是()。
A.a++;B.b++;C.c++;D.d++;
17.歐幾里得的《幾何原本》描述了解最大公約數的算法,針對兩個整型a,b(a>b>0),其偽代碼如下,請估算該算法的復雜度
A.O(lgb)B.O(a*b)C.O(a*a)D.O(b*b)
18.以下是if語句的基本形式:
if(表達式.語句
其中“表達式”()。
A.必須是邏輯表達式B.必須是關系表達式C.必須是邏輯表達式或關系表達式D.可以是任意合法的表達式
19.有以下程序main()inta[10]={1,2,3,4,5,6,7,8,9,10},*p=.&a[3],*q=p+2;printf("%d\n",*p+*q);程序運行后輸出結查是
A.16B.10C.8D.6
20.下列特征中不是面向對象方法的主要特征的是()。
A.多態(tài)性B.繼承C.封裝性D.模塊化
二、2.填空題(20題)21.若變量a,b已定義為int類型并賦值21和55,要求用printf函數以a=21,b=55的形式輸出,請寫出完整的的輸出語句()。
22.關系模型的完整性規(guī)則是對關系的某種約束條件,包括實體完整性、______和自定義完整性。
23.以下程序運行后的輸出結果是【】。
#include<stdio,h>
main()
{inta=3,b=4,c=5,t=99;
if(b<a&&a<c)t=a;a=c;c=t;
if(a<e&&b<c)t=b;b=a;a=t;
printf("%d%d%d\n",a,b,e);
}
24.定義inta=5,b;,則執(zhí)行表達式b=++a*--a之后,變量b的值為【】。
25.以下程序的輸出結果是______。
floatfun(intx,inty)
{return(x+y);}
main()
{inta=2,b=5,c=8;
printf("%3.Of\n",fun((int)fun(a+c,b),a-c));}
26.下列程序的輸出結果是【】。
#definePR(a)printf("%d\t",(int)(a))
#definePRINT(a)PR(a);printf("ok!")
main()
{inti,a=1;
for(i=0;i<3;i++)
PRINT(a+i);
printf("\n");}
27.設有以下定義和語句,則*(*(p+2)+1)的值為【】。
inta[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
28.在最壞情況下,冒泡排序所需要的比較次數為【】。
29.以下程序的輸出結果是【】。
main()
{chars[]="ABCD",*p;
for(p=s+1;p<s+4;p++)printf("%s\n",p);}
30.某二叉樹中度為2的結點有18個,則該二叉樹中有【】個葉子結點。
31.下列程序的功能是對輸入的一行字符中的數字字符的字面值累加,輸出此累加和,請?zhí)羁铡?/p>
#include<stdio.h>
#include<ctype.h>
main()
{charc;
inta,s=0;
while(______)
if(isdigit(C))
{a=c-'0';s+=a;}
printf("s=%d",s);
}
32.以下程序的輸出結果是【】。
main()
{inta=177;
printf(“%o\n”,A);
}
33.在面向對象方法中,【】描述的是具有相似屬性與操作的一組對象。
34.下列程序的輸出結果是______。
main()
{inta=2,b=4,e=6;
int*p1=&a,*p2=&b,*p;
*(p=&c)=*p1*(*p2);
printf("%d\n",c);
}
35.若有如下程序:
voidsub()
{staticintx=8;
x/=2;printf("%d",x);
}
main()
{intm;
for(m=0;m<2;m++)sub();}
則程序運行后的輸出結果是【】.
36.已有定義如下:
structnode
{
intdata;
structnode*next;
}*p;
以下語句調用malloc函數,使指針p指向一個具有stmctnode類型的動態(tài)存儲空間。
請?zhí)羁铡?/p>
p=(structnode*)malloc();
37.診斷和改正程序中錯誤的工作通常稱為【】。
38.下列程序的輸出結果是______。
#include<stdio.h>
main()
{inta=2,b=1,c=2;
if(a<b)
if(b<0)c=0;
elsec++;
printf("%d\n",c);
}
39.以下程序運行后的輸出結果是()。#definePower2(x)x*xmain(){inti=6,j=8;printf("%d\n",Power2(i+j));}
40.已有文本文件test.txt,其中的內容為:Hello,everyone!。以下程序中,文件test.txt已正確為“讀”而打開,由此文件指針fr指向文件,則程序的輸出結果是______。
#include<stdio.h>main(){FILE*fr;charstr[40];
fgets(str,5,fr);
printf("%s\n,,str);
fclose(fr);}
三、1.選擇題(20題)41.若有定義:inta[2][3];則才a數組的第i行第j列(假調i,j已正確說明并賦值)元素值的正確引用為
A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j
42.下列敘述中,錯誤的是()。
A.在同一C程序文件中,不同函數中可以使用名字相同的變量
B.在main()函數體內定義的變量是全局變量
C.形參是局部變量,函數調用完成即失去意義
D.若同一文件中全局和局部變量同名,則全局變量在局部變量作用范圍內不起作用
43.下列程序語句中,不正確的是______。
A.maia(){floata,b,c;scanf("%f,%f",&a,&b);c=add(a,b);……}intadd(floatx,floaty){……}
B.main(){floata,b,c;scanf("%f,%f",&a,&b);c=add(a,b);……}floatadd(floatx,floaty){……}
C.floatadd()maia(){floata,b,c;scanf("%f,%f",&a,&b);c=add(a,b);……}floatadd(floatx,floaty){……}
D.floatadd(floatx,floaty){……}main(){floata,b,c;scanf("%f,%f",&a,&b);c=add(a,b);……}
44.以下選項中可作為C語言合法常量的是______。
A.-80B.-80C.-8e1.0D.-80.0e
45.設fp為指向某二進制文件的指針,且已讀到此文件末尾,則函數feof(fp)的返回值為______。A.EOFB.非0值C.0D.NULL
46.以下程序的輸出結果是______。charcchar(charch){if(ch>='A'&&ch<='z')ch=ch-'A'+'a';returnch;}main(){chars[]="ABC+abc=defDEF",*p=s;while(*p){*p=cchar(*p);p++;}printf("%s\n",s);}
A.abe+ABC=DEFdef
B.abc+abe=defdef
C.abcaABCDEFdef
D.abcabcdefdef
47.下面程序段的運行結果是char*s="abcde";s+=2;printf("%d",s);
A.cdeB.字符'c'C.字符'c'的地址D.無確定的輸出結果
48.若有說明語句:double*p,a;則能通過scanf語句正確給輸入項讀入數據的程序段是()。
A.*p=&a;sCanf("%1f",p);
B.*p=&a;scanf("%f",p);
C.p=&a;scanf("%1f",*p);
D.p=&a;scanf("%1f",p);
49.在C語言中,int,char和short三種類型數據在內存中所占用的字節(jié)數
A.由用戶自己定義B.均為2個字節(jié)C.是任意的D.由所用機器的機器字長決定
50.若要定義a為3×4的二維數組,正確的定義語句是()
A.floata(3,4);
B.floata[3][4];
C.floata(3)(4);
D.floata[3,4];
51.設有以下說明語句typedefstruct{intn;charch[8];}PER;則下面敘述中正確的是
A.PER是結構體變量名
B.PER是結構體類型名
C.typedefstruct是結構體類型
D.struct是結構體類型名
52.對以下二叉樹
進行中序遍歷的結果是()。
A.ACBDFEGB.ACBDFGEC.ABDCGEFD.FCADBEG
53.有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END);語句的作用是使位置指針從文件末尾向前移2*sizeof(int)字節(jié)):#include<stdio.h>main(){FILE*fp;inti,a[4]={1,2,3,4},b;fp=fopen("data.dar","wb");for(i=0;i<4;i++)fwrite(&a[i],sizeof(int),1,fp);fclose(fp);fp=fopen("data.dar","rb");fseek(fp,-2L*sizeof(int),SEEK_END);fread(&b,sizeof(int),1,fp);/*從文件中讀取sizeof(int)字節(jié)的數據到變量b中*/fclose(fp);printf("%d\n",b);}執(zhí)行后的輸出結果()。
A.2B.1C.4D.3
54.關于線性表的描述,錯誤的一條是______。
A.線性表是線性結構
B.線性表就是單鏈表
C.線性表的順序存儲結構,必須占用一片連續(xù)的存儲單元
D.線性表的鏈式存儲結構,不必占用連續(xù)的存儲單元
55.下列變量定義中,合法的是______。
A.short_a=1-.le-1;
B.doubleb=1+5e2.5;
C.longdo=0xfdaL;
D.float2_and=l-e-3;
56.排序方法中,將整個無序序列分割成若干小的子序列并分別進行插入排序的力法,稱為______。
A.希爾排序B.冒泡排序C.插入排序D.選擇排序
57.以下程序段的輸出結果是______。intx=5;do{ptintf("%2d\n",x--);}while(!x);
A.5B.無任何輸出C.4D.陷入死循環(huán)
58.對長度為n的線性表進行順序查找,在最壞情況下所需要的比較次數為()。
A.log2nB.n/2C.nD.n+1
59.已知函數fread的調用形式為fread(buffer,size,count,fp);其中buffer代表的是()。
A.存放讀入數據項的存儲區(qū)
B.一個指向所讀文件的文件指針
C.一個指針,是指向輸入數據存放在內存中的起始地址
D.一個整型變量,代表要讀入的數據項總數
60.在數據庫設計中,將E-R圖轉換成關系數據模型的過程屬于()A.需求分析階段B.邏輯設計階段C.概念設計階段D.物理設計階段
四、選擇題(20題)61.若有定義和語句:inta,b;scanf("%d,%d",&a,&b);以下選項中的輸人數據,不能把值3賦給變量a、5賦給變量b的是()。
A.3,5,
B.3,5,4
C.3,5
D.35
62.
下列程序輸出結果是()。
#include<stdio.h>
main
{chara[]={a,b,C,d,e,f,\0).
inti,j;
i=sizeof(a);
j=strlen(a);
printf("%d,%d",i,j);
}
A.7,7B.7,6C.6,6D.6,7
63.(52)棧和隊列的共同點是()
A.都是先進后出B.都是先進先出
C.只允許在端點處插入和刪除元素
D.沒有共同點
64.在下列關于二叉樹的敘述中,選出正確的一項()。
A.在二叉樹中,任何一個結點的度都是2
B.二叉樹的度為2
C.在二叉樹中至少有一個結點的度是2
D.一棵二叉樹的度可以小于2
65.
66.有以下程序程序運托舌的輸出結果是()。
A.1,2B.1,0C.3,2D.0,0
67.
68.若變量已正確定義,有以下程序段:
其輸出結果是()。
A.0,0B.0,1C.1,1D.程序進入無限循環(huán)
69.在下列語句中,其含義為“q是一個函數指針,該指針指向整型數據”的定義語句是()。
A.int**q;B.int(*q);C.int*q;D.int*q;
70.
71.
72.
73.有如下程序
#include"stdio.h"
fun(inta,intb)
{ints;
s=a*(b/4);
printf("%d\n",s);}
main()
{inta=16,b=10;
fun(a,b);
}
該程序的輸出結果是
A.16B.32
C.40D.80
74.以下4個選項中,不能看作一條語句的是()。
A.;B.a=5,b=2.5,c=3.6;C.if(b!=5)x=2;y=6;D.returnj;
75.
76.在數據庫管理系統(tǒng)DBMS中,用來定義內模式和外模式等一些數據庫管理系統(tǒng)中其他結構的語言為
A.CB.BasicC.DDLD.DML
77.下列敘述中正確的是()。A.循環(huán)隊列有隊頭和隊尾兩個指針,因此,循環(huán)隊列是非線性結構
B.在循環(huán)隊列中,只需要隊頭指針就能反映隊列中元素的動態(tài)變化情況
C.在循環(huán)隊列中,只需要隊尾指針就能反映隊列中元素的動態(tài)變化情況
D.循環(huán)隊列中元素的個數是由隊頭指針和隊尾指針共同決定
78.若變量均已正確定義并賦值,以下合法的c語言賦值語句是()。A.x---y=--5;B.x--n%2.5;C.x+n=i;D.x=5--4+1;
79.有以下程序
80.(25)下面對對象概念描述錯誤的是()
A.任何對象都必須有繼承性
B.對象是屬性和方法的封裝體
C.對象間的通訊靠消息傳遞
D.操作是對象的動態(tài)性屬性
五、程序改錯題(1題)81.下列給定程序中,函數proc的功能是:首先把b所指字符串中的字符按逆序存放,然后將str1所指字符串中的字符和Str2所指字符串中的字符,按排列的順序交叉合并到str所指數組中,過長的剩余字符接在str所指數組的尾部。例如,當str1所指字符串中的內容為ABCDEFG,str2所指字符串中的內容為1234時,str所指數組中的內容應該為A483C2D1EFG;而當str1所指字符串中的內容為1234,str2所指字符串中的內容為ABCEDFG時,str所指數組中的內容應該為1G2F31:4DCBA。
請修改程序中的錯誤,使它能得出正確的結果。
注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。
試題程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio。h>
#include<string.h>
voidproc(char*strl,char*str2,char*str){
inti,j;charch;
i=0;j=strleu(str2)-1;
//****found****
while(i>j)
{
ch=str2[i];str2[i]=str2[j];str2[j]=ch;
i++;j--;
}
while(*str1||*str2)
{
if(*str1){*str=*str1;str++;str1++;)
if(*str2){*str=*str2;str++;str2++;)
}
//****found****
*str=0:
}
voidmain
{
chars1[100],s2[100],t[200];
system("CLS");
printf("\nEnters1string:");
scanf("%s",sl);
printf("\nEnters2string:");
scanf("%s",s2);
proc(s1,s2,t);
printf("\nTheresultis:%s\n",t);
}
六、程序設計題(1題)82.請編寫函數proc(),其功能是:將所有大于1小于整數m的非素數存入XX所指數組中,非素數的個數通過k傳回。例如,輸入20,則應輸出4689101214151618。注意:部分源程序給出如下。請勿改動main()函數和其他函數中的任何內容,僅在函數proc()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.AB)選項中switch(n[nx);語句中不應該有最后的分號。switch(expr1),中的exp1不能用浮點類型或Iong類型,也不能為一個字符串,所以C)錯誤。case后面常量表達式的類型必須與switch后面表達式的類型一致,所以D)錯誤。
2.CC)【解析】數據庫一旦發(fā)生故障,需要及時進行故障恢復,并由數據庫管理員負責執(zhí)行故障恢復。
3.A本題考查的是格式輸)ki$i數,即按用戶指定的格式從鍵盤上把數據輸入到指定的變量之中,其中的格式命令可以說明最大域寬。在百分號(%)與格式碼之間的整數用于限制從對應域讀入的最大字符數。因此j的值為55,y的值為566.0,字符數組nanle的值為7777123。故本題答案為A)。
4.D程序定義double變量x、y,給x賦初值2.0。if語句判斷,當x小于0.0時,給y賦值0.0。否則當x小于10.0時,y的值為1.0/x;當x大于等于10.0時,y的值為1.0。題干中x的值為2.0,所以y的值為1.0/x,即0.500000。本題答案為D選項。
5.C解析:本題考查if語句。先判斷if語句的條件是否成立,++a=1>0,此條件成立,又因為是進行邏輯或運算,在已知其中一個運算對象為真的情況下,不必判斷另外一個運算符的真假,即不進行++b操作,就可以直接得出整個表達式的值為邏輯1,執(zhí)行下列的++c。
6.Ado{*t++=*s++;}while(*s);不能因為當*s=‘\\0'時,while(*s)跳出循環(huán),這樣字符串結束標志’0\\沒有復制給*t,造成*t不完整。注意,*t++=*s++是先執(zhí)行t=*s,然后才進行t=t+1,s=s+1。B),C),D)三項都能將“\\0’復制過去。
7.C
8.B
9.A選項A中,表達式“x%=k”結果為5,表達式“k%=5”結果為2,5-2結果為3;選項B中,“k%=5”結果為2,“x%=2”結果為0;選項C中,“k%5”結果為2,“k-k%5”結果為5,“x%5”結果為2;選項D中,“k%5”結果為2,“k-k%5”結果為5,x%5結果為2。故本題答案為A選項。
10.C本題考查結構體數組。a[2].age為結構體aEZ]的age成員,即a[3].name為指向結構體a[3]的name成員的第一個元素的指針,即指向“2”,(a[3].name+2)將指針后移兩位指向第三個元素“A”,*(a[3].name+2)是取指針所指向地址的內容。
11.C數據的邏輯結構是描述數據之間的關系,分兩大類:線性結構和非線性結構。線性結構是n個數據元素的有序(次序)集合,指的是數據元素之間存在著“一對一”的線性關系的數據結構。常用的線性結構有:線性表,棧,隊列,雙隊列,數組,串。非線性結構的邏輯特征是一個結點元素可能對應多個直接前驅和多個后驅。常見的非線性結構有:樹(二叉樹等),圖(網等),廣義表。
12.B解析:sizeof函數是取變量所占的存儲空間的字節(jié)數,標識a代表常量121;constb=12;,其中數據類型可以缺省,默認為整型;enumc{a1,a2};定義了—個枚舉類型enumc,a1,a2為枚舉元素,在C編譯時,對枚舉元素按常量處理,它們的值按定義順序依次為0,1。因此它們的字節(jié)數均為2,2,2。
13.A
14.C\n本題考查邏輯值假,在程序中非0字符表示邏輯真,0表示邏輯假,所以答案選擇C。
\n
15.D
16.D解析:本題考核的知識點是在自加運算符的運算對象。自加運算對象可以是整型變量也可以是實型變量,但不能是表達式和常量。本題中,#defined2定義了d為常數2,不能在對d進行自加運算.故選項D是個不正確的語句,所以,4個選項中選項D符合題意。
17.A
18.D解析:本題主要考查關于if語句的說明,if后面圓括號中的表達式,可是任意合法的C語言表達式(如:邏輯表達式、關系表達式、算術表達式、賦值表達式等),也可以是任意類型的數據(如:整型、實型、字符型、指針型等。)
19.B解析:本題考查的是指針的簡單應用。題目中首先定義了一個int型數組a并初始化了,然后定義了兩個指針變量p和q,并分別初始化p為指向數組元素a[3]、q指向p后面的第2個元素即指向a[5]。所以最終輸出的值為a[3]+a[5]的值10。應該選B。
20.DD?!窘馕觥棵嫦驅ο笤O計方法與面向過程設計方法有本質的不同,其基本原理是:使用現實世界的概念抽象地思考問題從而自然地解決問題。其特點包括:分類性、多態(tài)性、封裝性、模塊獨立性、繼承和多態(tài)性等。模塊化是結構化程序設計的特點。
21.printf(“a=%db=%d”aB);printf(“a=%d,b=%d”,a,B);解析:printf函數的一般格式為:“printf(格式控制,輸出表列)”。
22.參照完整性參照完整性
23.45994599解析:要注意每條證語句后面是三條語句,而不是一條語句。執(zhí)行第一條if語句時,條件表達式不成立,執(zhí)行a=c;c=t;,此時a=5,c=99;執(zhí)行第二條if語句時,條件表達式成立,執(zhí)行t=b;b=a;a=t;交換a,b的值,輸出結果為4,5和99。
24.2525解析:#NAME?
25.本題考查函數的綜合知識。首先,我們可以利用強制轉換類型轉換運算符,將一個表達式轉換成所需類型。如:(double)a是將a轉換成double類型;(int)(x+y)是將x+y的值轉換成整型。
本題可按部就班地逐步運算:
fun((int)fun(a+c,b),a-c)
fun((int)fun(10,5),2-8)
fun((int)15.000000,-6)
fun(15,-6)
9
26.123ok!123ok!解析:本題主要考查了printf函數用在了宏替換中。宏替換不是函數調用,只是一種簡單的字符替代。所以本題中PRINT(a+i)展開為:printf(“%d\\t”,(int)(a+i)),當i=0時,輸出1;當i=1時,輸出2;當i=2時;輸出3;for循環(huán)結束后輸出ok!。
27.6060解析:程序中定義a是一個3行2列的二維數組,p是指向兩個元素的一維數組指針,并讓p指向二維數組a的首行。則代碼*(*(p+2)+1)中的p+2指向二維數組a的第三行a[2],*(p+2)指向a[2[]0],*(p+2)+1指向a[2][1],*(*(p+2)+1)是引用a[2][1],其值是60。
28.n(n-1)/2n(n-1)/2解析:在最壞情況下,冒泡排序所需要的比較次數為n(n-1)/2。
29.BCDCDDBCD\r\nCD\r\nD解析:本題考查指向字符串的指針的運算方法。指針變量p首先指向字符串中的第一個字符A,執(zhí)行p=s+1后,p指向字符串中的第二個字符B,然后輸出值“BCD”并換行,依次執(zhí)行循環(huán)語句。
30.1919解析:根據二叉樹的性質:在任意一棵二叉樹中,度為。的結點(即葉子結點)總是比度為2的結點多一個。本題中度為2的結點數為18,故葉子結點數為18+1=19個。
31.(c=getchar())!='\n'(c=getchar())!='\\n'解析:分析題目可知,程序中運用函數c=getchar()從標準輸入設備讀取下一個字符,而且是一行的字符(即沒有換行),所以條件為(c=getchar())!='\\n'。
32.261261解析:在控制格式符中“o”代表的是將數據按八進制數輸出,十進制數的177代表的八進制數是261。
33.類類解析:在面向對象方法中,類描述的是具有相似屬性與操作的一組對象。
34.88解析:本程序定義了3個指針變量p1、p2、p,并且將a、b的地址分別賦給p1、p2,則*p1=a=2,*p2=b=4,所以表達式*p1*(*p2)的值是8。在賦值語句的左邊是*(p=&c),即使指針p指向了變量c,因而*(P)代表了c的存儲單元,賦值語句“*(p=&c)=*p1*(*p2);”是把整數8賦給了變量c。
35.4242解析:主函數中的for循環(huán)循環(huán)兩次,即函數sub()被調用兩次。在sub()中x被定義為靜態(tài)整型變量,當調用函數sub()完畢返回主函數,x中的值仍然保留,下次調用函數sub()時,x不再被賦初值。第1次調用x/=2相當于x=x/2=8/2=4,第2次調用x=x/2=4/2=2,因此輸出42。
36.sizeof(structnode)或4sizeof(structnode)或4解析:本題考核的知識點是動態(tài)存儲分配函數malloc()的用法。C標準規(guī)定malloc()函數返回值的類型為void*,函數的調用形式為:malloc(size)。要求aize的類型為unsignedint,所以該空格處應該填sizeof(structnode)或4。
37.程序調試程序調試解析:程序調試的任務是診斷和改正程序中的錯誤。程序調試與軟件測試不同,軟件測試是盡可能多地發(fā)現軟件中的錯誤。先要發(fā)現軟件的錯誤,然后借助于調試工具找出軟件錯誤的具體位置。軟件測試貫穿整個軟件生命期,而調試主要在開發(fā)階段。
38.22解析:分析程序,a=2,b=-1,c=2時,if語句的表達式a<b不成立,不再柱下判斷,直接退出if語句,執(zhí)行后面的輸出語句,程序結束。在這個程序中a、b、c的值沒做任何改變。
39.6262解析:本題考查的是宏定義。帶參數的宏定義是按#indefine命令行中指定的字符串從左到右進行轉換。本題中替換的式子為:6+8*6+8,代入i,j的值得到62。
40.HellHell解析:該函數有3個參數,第三個參數是文件指針指向要讀取數據的文件,第二個參數是一個整數(假設為n),表示從文件中讀n-1個字符并在其后加一個'\\0',第一個參數為存放讀取的字符串的內存區(qū)的起始地址,讀取得數據保存在其中??梢姳绢}的輸出結果為:Hell。
41.A解析:本題考查了二維數組元素的引用方法。選項A中a引指向了數組a的第i+1行,*(a+i)則是第i+1行第0列的地址值,*(a+i)+j指向了數組a第i+1行,j+1列,*(*(a+i)+j)取到的是數組a的a[i][j]的元素。
42.B解析:本題考查函數調用時變量的作用域。形參是局部變量,函數調用完就失去意義了,所以在同一個C程序文件中,不同的函數體中可以使用名字相同的局部變量。注意:在函數之外定義的變量稱為外部變量,外部變量是全局變量,全局變量可以為本文件中其他函數所共用。它的有效范圍為:從定義變量的位置開始到本源文件結束.
43.B
44.A解析:選項B中,以0開頭表示是一個八進制數,而八進制數的取值范圍是0~7,所以-080是不合法的;選項C和D中,e后面的指數必須是整數,所以也不合法。
45.B(27)B)解析:函數feof的功能是:測試fp所指的文件的位置是否已達到文件尾,如果達到文件尾,則函數返回非0值,否則返回0,表示文件尚未結束。
46.B解析:字符數組元素作函數參數是單向的值傳遞。函數cchar的功能是將大寫字母轉換為小寫字母。主函數中while循環(huán)語句的條件是判斷指針p當前指向的字符是否為空,若不為空,則調用函數cchar,即主函數中通過循環(huán)語句將字符串'ABC+abc=defDEF'中的大寫字母全部轉換為小寫字母,因此printf的輸出結果為選項B。
47.C解析:對于字符串指針,其保留的是整個串的首地址,即為第一個字符的起始地址,當該指針做算術運算時,就是該指針根據其類型向后移動相應的存儲空間。
48.D解析:double*p,a;語句表示定義了一個指向雙精度型的指針變量p和雙精度型變量a,而語句p=&a表示將變量a的地址賦給指針變量p;scanf'('%1f',p)表示用鍵盤輸入的數賦給指針變量p所指向的地址單元中。scanf()函數要求在輸入double型數據,格式控制符必須用%1f(或%1e)。否則,數據不能正確輸入。所以選項D)為正確答案。
49.D解析:C語言中,常用的數據類型有int,char,float,double等,但C標準沒有具體規(guī)定以上各類數據所占內存字節(jié)數,只要求long型數據長度不短于int型,short型不長于int型,具體如何實現,由各計算機系統(tǒng)自行決定。
50.B
51.B解析:本題中,typedef聲明新的類型名PER來代替已有的類型名,PER代表上面指定的一個結構體類型,此時,也可以用PER來定義變量。
52.A解析:二叉樹的中序遍歷遞歸算法為:如果根不空,則①按中序次序訪問左子樹,②訪問跟結點,⑧按中序次序訪問右子樹;否則返回。本題中,根據中序遍歷算法,應首先按照中序次序訪問以C為根結點的左子樹,然后再訪問根結點P,最后才訪問以E為根結點的右子樹。遍歷以C為根結點的左子樹同樣要遵循中序遍歷算法,因此中序遍歷結果為ACBD;然后遍歷根結點P;遍歷以E為根結點的右子樹,同樣要遵循中序遍歷算法,因此中序遍歷結果為EG。最后把這三部分的遍歷結果按順序連接起來,中序遍歷結果為ACBDFEG。因此,本題的正確答案是選項A。
53.D解析:Leek(fp,-2L*sizeof(int),SEEK_END);語句的作用是使位置指針從文件末尾向前移2*sizeof(int)字節(jié),調用此函數后指針指向a[2],fread(&b,sizeof(int),1,fp)是從文件中讀取sizeof(int)字節(jié)的數據到變量b中,也就是從文件中讀取數據3到變量b中。
54.A解析:線性表是一種最簡單,最常用的數據結構。線性表操作的實現依賴于線性表中數據元素及元素之間的關系在存儲器中如何存儲。采用順序存儲方式存儲的線性表稱為順序表,用鏈式存儲方式存儲的線性表稱為線性鏈表,用散列方法存儲的線性表稱為散列表。
55.A
56.A解析:希爾排序法的基本思想是:將整個無序序列分割成若干小的子序列分別進行插入排序。
57.A解析:本題考查循環(huán)語句do-while語句的執(zhí)行情況。首先五條件執(zhí)行循環(huán)體,表達式x--的值為5,然后檢查條件。
58.C本題考查的是順序查找。在進行順序查找過程中,如果線性表中的第一個元素就是被查找元素,則只需做一次比較就查找成功,查找效率最高;但如果被查找的元素是線性表中的最后一個元素,或者被查找的元素根本就不在線性表中,則為了查找這個元素需要與線性表中所有的元素進行比較,這是順序查找的最壞情況。所以對長度為n的線性表進行順序查找,在最壞情況下需要比較n次。故本題答案為C。
59.C解析:數據塊讀取函數調用形式:fread(buffer,size,count,fp)。fread函數參數說明:“buffer”是一個指針,對fread來說,它是讀入數據的存放地址。對fwrite來說,是要輸出數據的地址?!皊ize”是要讀寫的字節(jié)數:“count”是要進行讀寫多少個size字節(jié)的數據項;“fp”是指文件型指針。
60.B數據庫應用系統(tǒng)的邏輯設計包括數據庫邏輯結構設計、數據庫事務概要設計和應用程序概要設計三方面。數據庫邏輯結構設計的主要步驟為:將E—R圖轉換為初始關系模式,對初始關系模式進行優(yōu)化,檢查關系表對數據庫事務的支持性,確定關系模式完整性約束,設計基于關系模式的用戶視圖。
61.C在輸入3和5之間除逗號外不能有其他字符。
62.B
\n本題要注意sizeof和strlen的區(qū)別,sizeof函數的功能是返回字符串所占的字節(jié)數,strlen函數的功能是返回字符串長度,\0是一個轉義符,它占存儲空間,但不計入串的長度。
\n
63.C注:這一共同點和線性表不一樣
64.D節(jié)點的度是其子節(jié)點的個數,樹的度是其節(jié)點度的最大值,二叉樹的度小于等于2.
65.C
66.A首先打印b=a+b=1+0--1的值l,此時已給b賦值為l。然后打印a:2*b:2"1:2的值2。因此結果是1,2。
67.C
68.B對于do…while循環(huán),程序先執(zhí)行一次循環(huán)體,再判斷循環(huán)是否繼續(xù)。本題先輸出一次i的值”0,”,再接著判斷表達式i++的值,其值為0,所以循環(huán)結束。此時變量i的值經過自加已經變?yōu)閘,程序再次輸出i的值…1"。
69.B本題考查指針函數。其定義的基本格式為:類型說明符(*函數名)?!邦愋驼f明符”表示返回的指針值指向的數據類型。
70.D
71.C
72.A
73.B題目給出的程序分為兩個部分:主函數main和函數fun。main函數給出了整型變量a,b的初始值,并將整型變量a,b作為fun的實參。fun函數的功能是計算s的值并輸出。對于整型變量,運算符“/”的作用是求出兩個數除法所得商的整數部分。s=a*(b/4),a的初始值為16,b的初始值為10,b/4的結果為2,a*2得32。
74.Cc語言規(guī)定每個語句以;(分號)結束,因此選項c)為兩條語句。
75.D
76.CC語言是一種計算機程序設計語言,常用的C語言IDE(集成開發(fā)環(huán)境)有MicrosoftVisualC++、BorlandC++、WatcomC++、BorlandC++Builder、GNUDJGPPC++、Lccwin32CCompiler3.1、HighC、TurboC、C-Free、win-tc等。
Basic是一種計算機高級設計語言,常見的有QuickBasic和VisualBasic。
DDL(DataDescriptionLanguage)是數據庫模式定義語言的縮寫,是用于描述數據庫中要存儲的現實世界實體的語言。一個數據庫模式定義包含該數據庫中所有實體的描述定義,包括結構定義、操作方法定義等。DDL描述的模式必須由計算機軟件進行編譯,轉換為便于計算機存儲、查詢和操縱的格式。
DML(DataManipulationLanguage)是數據操縱語言的縮寫,用戶通過它可以實現對數據庫的基本操作,如對表中數據的查詢、插入、刪除和修改。
77.D\r\n所謂循環(huán)隊列,就是將隊列存儲空間的最后一個位置繞到第一個位置,形成邏輯上的環(huán)狀空間,供隊列循環(huán)使用。在循環(huán)隊列中,用隊尾指針rear指向隊列中的隊尾元素,用排頭指針front指向排頭元素的前一個位置,因此,從排頭指針front指向的后一個位置直到隊尾指針real指向的位置之間所有的元素均為隊列中的元素。求解隊列中元素個數的方法是:若front>rear,隊列中有n-front+rear個元素(其中n為循環(huán)隊列的容量);若front<rear,隊列中有real-front個元素;若front=rear,隊列中有n個或0個元素。循環(huán)隊列是線性結構。因此本題的正確答案是D。
78.A%取余操作數只能是整數,x+n和數值5不能作為賦值的左值,NC2B)、C)、D)錯誤。
79.A本題考查的是文件操作。程序首先定義了一個文件指針pf,并使用fopen()函數以“wb+”方式新建一個可讀寫的二進制文件“123.dat”。然后使用fwrite()函數寫入字符串s2的前7"1個字符。現在文件中的內容應該為“Beijin9”。接下來程序使用rewind()函數,將文件的讀寫指針調回起始位置。并又調用fwrite()函數寫入字符串sl的前5"1個字符。所以文件原內容“Beijing'’的前5個字符被覆蓋,結果為“Chinan9”,故本題應該選擇A)。
80.A81.\n\t(1)錯誤:while(i>j)
\n正確:while(i<j)
\n(2)錯誤:*str=0;
\n正確:*str=\0;
\n【解析】由函數proc可知,變量i和j分別存放的是字符串str前面和后面第i個字符的位置,當i<j時,兩個位置的字符交換。因此,“while(i>j)”應改為“while(i<j)”;交叉合并完成后,要為新的字符串添加結束符,因此,“*str=0;”應改為“*str=\0;”,\n
82.
【解析】題目中要求將所有大于l小于整數m的非素數存入xx所指數組中,因此需要判斷所有大干1小于m的整數是否為素數。將所有大干1小于m的非素數放入數組xx中,并將非素數的個數通過形參k傳遞回主函數中。
2021年浙江省杭州市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.若有定義:floatx=1.5;inta=1.b=3.c=2;則正確的switch語句是()。A.
B.
C.
D.
2.數據庫的故障恢復一般是由()來執(zhí)行恢復
A.電腦用戶B.數據庫恢復機制C.數據庫管理員D.系統(tǒng)普通用戶
3.有以下程序段當執(zhí)行上述程序段,從鍵盤上輸A,555667777123后,y的值為()。
A.566.0B.55566.0C.7777.0D.566777.0
4.有以下程序:程序運行后的輸出結果是()。A.1.000000B.0.000000C.0.250000D.0.500000
5.下列程序的輸出結果是()。#include<stdio.h>voidmain(){inta=0,b=1,c=2;if(++a>0‖++b>0)++c;printf("%d,%d,%d",a,b,c);}
A.0,1,2B.1,2,3C.1,1,3D.1,2,2
6.以下不能將s所指字符串正確復制到所指存儲空間的是()A.do{*t++=*s++;}while(*s);.
B.for(i=0;t[i]=s[i];i++);
C.while(*t=*s){t++;s++}
D.for(i=0,j=0;t[i++]=s[j++];);
7.對長度為n的無序線性表進行順序查找,則查找成功、不成功時的平均數據比較次數分別為()。
A.n/2,nB.n+1/2,n-1C.n+1/2,nD.n-1/2,n-1
8.若串S=,software,其子串的數目是()。
A.8B.37C.36D.9
9.若有定義“intk=7,x=12;”,則以下表達式值為3的是()。
A.(x%=k)-(k%=5)B.x%=(k%=5)C.x%=(k-k%5)D.x%=k-k%5
10.定義下列結構體(聯(lián)合)數組:structst{charname[15];intage;}a[10]={"ZHA0",14,"WANG",15,"LIU",16,"ZHANG",17);執(zhí)行語句printf("%d,%C",a[2].age,*(a[3].name+2))的輸出結果為()。A.15,AB.16,HC.16,AD.17,H
11.下列鏈表中,其邏輯結構屬于非線性結構的是()
A.雙向鏈表B.帶鏈的棧C.二叉鏈表D.循環(huán)鏈表
12.下面程序的輸出結果是______。#definea121constb=12;enumc{a1,a2};main(){printf("%d,%d,%d",sizeof(a),sizeof(b),sizeof(enumc));}
A.121,0,4B.2,2,2C.0,2,4D.0,2,2
13.
14.以下選項中,能表示邏輯值“假”的是()
A.1B.0.000001C.0D.100.0
15.
16.設有以下定義:inta=0;doubleb=1.25;charc='A';#defined2則下面語句中錯誤的是()。
A.a++;B.b++;C.c++;D.d++;
17.歐幾里得的《幾何原本》描述了解最大公約數的算法,針對兩個整型a,b(a>b>0),其偽代碼如下,請估算該算法的復雜度
A.O(lgb)B.O(a*b)C.O(a*a)D.O(b*b)
18.以下是if語句的基本形式:
if(表達式.語句
其中“表達式”()。
A.必須是邏輯表達式B.必須是關系表達式C.必須是邏輯表達式或關系表達式D.可以是任意合法的表達式
19.有以下程序main()inta[10]={1,2,3,4,5,6,7,8,9,10},*p=.&a[3],*q=p+2;printf("%d\n",*p+*q);程序運行后輸出結查是
A.16B.10C.8D.6
20.下列特征中不是面向對象方法的主要特征的是()。
A.多態(tài)性B.繼承C.封裝性D.模塊化
二、2.填空題(20題)21.若變量a,b已定義為int類型并賦值21和55,要求用printf函數以a=21,b=55的形式輸出,請寫出完整的的輸出語句()。
22.關系模型的完整性規(guī)則是對關系的某種約束條件,包括實體完整性、______和自定義完整性。
23.以下程序運行后的輸出結果是【】。
#include<stdio,h>
main()
{inta=3,b=4,c=5,t=99;
if(b<a&&a<c)t=a;a=c;c=t;
if(a<e&&b<c)t=b;b=a;a=t;
printf("%d%d%d\n",a,b,e);
}
24.定義inta=5,b;,則執(zhí)行表達式b=++a*--a之后,變量b的值為【】。
25.以下程序的輸出結果是______。
floatfun(intx,inty)
{return(x+y);}
main()
{inta=2,b=5,c=8;
printf("%3.Of\n",fun((int)fun(a+c,b),a-c));}
26.下列程序的輸出結果是【】。
#definePR(a)printf("%d\t",(int)(a))
#definePRINT(a)PR(a);printf("ok!")
main()
{inti,a=1;
for(i=0;i<3;i++)
PRINT(a+i);
printf("\n");}
27.設有以下定義和語句,則*(*(p+2)+1)的值為【】。
inta[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
28.在最壞情況下,冒泡排序所需要的比較次數為【】。
29.以下程序的輸出結果是【】。
main()
{chars[]="ABCD",*p;
for(p=s+1;p<s+4;p++)printf("%s\n",p);}
30.某二叉樹中度為2的結點有18個,則該二叉樹中有【】個葉子結點。
31.下列程序的功能是對輸入的一行字符中的數字字符的字面值累加,輸出此累加和,請?zhí)羁铡?/p>
#include<stdio.h>
#include<ctype.h>
main()
{charc;
inta,s=0;
while(______)
if(isdigit(C))
{a=c-'0';s+=a;}
printf("s=%d",s);
}
32.以下程序的輸出結果是【】。
main()
{inta=177;
printf(“%o\n”,A);
}
33.在面向對象方法中,【】描述的是具有相似屬性與操作的一組對象。
34.下列程序的輸出結果是______。
main()
{inta=2,b=4,e=6;
int*p1=&a,*p2=&b,*p;
*(p=&c)=*p1*(*p2);
printf("%d\n",c);
}
35.若有如下程序:
voidsub()
{staticintx=8;
x/=2;printf("%d",x);
}
main()
{intm;
for(m=0;m<2;m++)sub();}
則程序運行后的輸出結果是【】.
36.已有定義如下:
structnode
{
intdata;
structnode*next;
}*p;
以下語句調用malloc函數,使指針p指向一個具有stmctnode類型的動態(tài)存儲空間。
請?zhí)羁铡?/p>
p=(structnode*)malloc();
37.診斷和改正程序中錯誤的工作通常稱為【】。
38.下列程序的輸出結果是______。
#include<stdio.h>
main()
{inta=2,b=1,c=2;
if(a<b)
if(b<0)c=0;
elsec++;
printf("%d\n",c);
}
39.以下程序運行后的輸出結果是()。#definePower2(x)x*xmain(){inti=6,j=8;printf("%d\n",Power2(i+j));}
40.已有文本文件test.txt,其中的內容為:Hello,everyone!。以下程序中,文件test.txt已正確為“讀”而打開,由此文件指針fr指向文件,則程序的輸出結果是______。
#include<stdio.h>main(){FILE*fr;charstr[40];
fgets(str,5,fr);
printf("%s\n,,str);
fclose(fr);}
三、1.選擇題(20題)41.若有定義:inta[2][3];則才a數組的第i行第j列(假調i,j已正確說明并賦值)元素值的正確引用為
A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j
42.下列敘述中,錯誤的是()。
A.在同一C程序文件中,不同函數中可以使用名字相同的變量
B.在main()函數體內定義的變量是全局變量
C.形參是局部變量,函數調用完成即失去意義
D.若同一文件中全局和局部變量同名,則全局變量在局部變量作用范圍內不起作用
43.下列程序語句中,不正確的是______。
A.maia(){floata,b,c;scanf("%f,%f",&a,&b);c=add(a,b);……}intadd(floatx,floaty){……}
B.main(){floata,b,c;scanf("%f,%f",&a,&b);c=add(a,b);……}floatadd(floatx,floaty){……}
C.floatadd()maia(){floata,b,c;scanf("%f,%f",&a,&b);c=add(a,b);……}floatadd(floatx,floaty){……}
D.floatadd(floatx,floaty){……}main(){floata,b,c;scanf("%f,%f",&a,&b);c=add(a,b);……}
44.以下選項中可作為C語言合法常量的是______。
A.-80B.-80C.-8e1.0D.-80.0e
45.設fp為指向某二進制文件的指針,且已讀到此文件末尾,則函數feof(fp)的返回值為______。A.EOFB.非0值C.0D.NULL
46.以下程序的輸出結果是______。charcchar(charch){if(ch>='A'&&ch<='z')ch=ch-'A'+'a';returnch;}main(){chars[]="ABC+abc=defDEF",*p=s;while(*p){*p=cchar(*p);p++;}printf("%s\n",s);}
A.abe+ABC=DEFdef
B.abc+abe=defdef
C.abcaABCDEFdef
D.abcabcdefdef
47.下面程序段的運行結果是char*s="abcde";s+=2;printf("%d",s);
A.cdeB.字符'c'C.字符'c'的地址D.無確定的輸出結果
48.若有說明語句:double*p,a;則能通過scanf語句正確給輸入項讀入數據的程序段是()。
A.*p=&a;sCanf("%1f",p);
B.*p=&a;scanf("%f",p);
C.p=&a;scanf("%1f",*p);
D.p=&a;scanf("%1f",p);
49.在C語言中,int,char和short三種類型數據在內存中所占用的字節(jié)數
A.由用戶自己定義B.均為2個字節(jié)C.是任意的D.由所用機器的機器字長決定
50.若要定義a為3×4的二維數組,正確的定義語句是()
A.floata(3,4);
B.floata[3][4];
C.floata(3)(4);
D.floata[3,4];
51.設有以下說明語句typedefstruct{intn;charch[8];}PER;則下面敘述中正確的是
A.PER是結構體變量名
B.PER是結構體類型名
C.typedefstruct是結構體類型
D.struct是結構體類型名
52.對以下二叉樹
進行中序遍歷的結果是()。
A.ACBDFEGB.ACBDFGEC.ABDCGEFD.FCADBEG
53.有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END);語句的作用是使位置指針從文件末尾向前移2*sizeof(int)字節(jié)):#include<stdio.h>main(){FILE*fp;inti,a[4]={1,2,3,4},b;fp=fopen("data.dar","wb");for(i=0;i<4;i++)fwrite(&a[i],sizeof(int),1,fp);fclose(fp);fp=fopen("data.dar","rb");fseek(fp,-2L*sizeof(int),SEEK_END);fread(&b,sizeof(int),1,fp);/*從文件中讀取sizeof(int)字節(jié)的數據到變量b中*/fclose(fp);printf("%d\n",b);}執(zhí)行后的輸出結果()。
A.2B.1C.4D.3
54.關于線性表的描述,錯誤的一條是______。
A.線性表是線性結構
B.線性表就是單鏈表
C.線性表的順序存儲結構,必須占用一片連續(xù)的存儲單元
D.線性表的鏈式存儲結構,不必占用連續(xù)的存儲單元
55.下列變量定義中,合法的是______。
A.short_a=1-.le-1;
B.doubleb=1+5e2.5;
C.longdo=0xfdaL;
D.float2_and=l-e-3;
56.排序方法中,將整個無序序列分割成若干小的子序列并分別進行插入排序的力法,稱為______。
A.希爾排序B.冒泡排序C.插入排序D.選擇排序
57.以下程序段的輸出結果是______。intx=5;do{ptintf("%2d\n",x--);}while(!x);
A.5B.無任何輸出C.4D.陷入死循環(huán)
58.對長度為n的線性表進行順序查找,在最壞情況下所需要的比較次數為()。
A.log2nB.n/2C.nD.n+1
59.已知函數fread的調用形式為fread(buffer,size,count,fp);其中buffer代表的是()。
A.存放讀入數據項的存儲區(qū)
B.一個指向所讀文件的文件指針
C.一個指針,是指向輸入數據存放在內存中的起始地址
D.一個整型變量,代表要讀入的數據項總數
60.在數據庫設計中,將E-R圖轉換成關系數據模型的過程屬于()A.需求分析階段B.邏輯設計階段C.概念設計階段D.物理設計階段
四、選擇題(20題)61.若有定義和語句:inta,b;scanf("%d,%d",&a,&b);以下選項中的輸人數據,不能把值3賦給變量a、5賦給變量b的是()。
A.3,5,
B.3,5,4
C.3,5
D.35
62.
下列程序輸出結果是()。
#include<stdio.h>
main
{chara[]={a,b,C,d,e,f,\0).
inti,j;
i=sizeof(a);
j=strlen(a);
printf("%d,%d",i,j);
}
A.7,7B.7,6C.6,6D.6,7
63.(52)棧和隊列的共同點是()
A.都是先進后出B.都是先進先出
C.只允許在端點處插入和刪除元素
D.沒有共同點
64.在下列關于二叉樹的敘述中,選出正確的一項()。
A.在二叉樹中,任何一個結點的度都是2
B.二叉樹的度為2
C.在二叉樹中至少有一個結點的度是2
D.一棵二叉樹的度可以小于2
65.
66.有以下程序程序運托舌的輸出結果是()。
A.1,2B.1,0C.3,2D.0,0
67.
68.若變量已正確定義,有以下程序段:
其輸出結果是()。
A.0,0B.0,1C.1,1D.程序進入無限循環(huán)
69.在下列語句中,其含義為“q是一個函數指針,該指針指向整型數據”的定義語句是()。
A.int**q;B.int(*q);C.int*q;D.int*q;
70.
71.
72.
73.有如下程序
#include"stdio.h"
fun(inta,intb)
{ints;
s=a*(b/4);
printf("%d\n",s);}
main()
{inta=16,b=10;
fun(a,b);
}
該程序的輸出結果是
A.16B.32
C.40D.80
74.以下4個選項中,不能看作一條語句的是()。
A.;B.a=5,b=2.5,c=3.6;C.if(b!=5)x=2;y=6;D.returnj;
75.
76.在數據庫管理系統(tǒng)DBMS中,用來定義內模式和外模式等一些數據庫管理系統(tǒng)中其他結構的語言為
A.CB.BasicC.DDLD.DML
77.下列敘述中正確的是()。A.循環(huán)隊列有隊頭和隊尾兩個指針,因此,循環(huán)隊列是非線性結構
B.在循環(huán)隊列中,只需要隊頭指針就能反映隊列中元素的動態(tài)變化情況
C.在循環(huán)隊列中,只需要隊尾指針就能反映隊列中元素的動態(tài)變化情況
D.循環(huán)隊列中元素的個數是由隊頭指針和隊尾指針共同決定
78.若變量均已正確定義并賦值,以下合法的c語言賦值語句是()。A.x---y=--5;B.x--n%2.5;C.x+n=i;D.x=5--4+1;
79.有以下程序
80.(25)下面對對象概念描述錯誤的是()
A.任何對象都必須有繼承性
B.對象是屬性和方法的封裝體
C.對象間的通訊靠消息傳遞
D.操作是對象的動態(tài)性屬性
五、程序改錯題(1題)81.下列給定程序中,函數proc的功能是:首先把b所指字符串中的字符按逆序存放,然后將str1所指字符串中的字符和Str2所指字符串中的字符,按排列的順序交叉合并到str所指數組中,過長的剩余字符接在str所指數組的尾部。例如,當str1所指字符串中的內容為ABCDEFG,str2所指字符串中的內容為1234時,str所指數組中的內容應該為A483C2D1EFG;而當str1所指字符串中的內容為1234,str2所指字符串中的內容為ABCEDFG時,str所指數組中的內容應該為1G2F31:4DCBA。
請修改程序中的錯誤,使它能得出正確的結果。
注意:不要改動main函數,不得增行或刪行,也不得更改程序的結構。
試題程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio。h>
#include<string.h>
voidproc(char*strl,char*str2,char*str){
inti,j;charch;
i=0;j=strleu(str2)-1;
//****found****
while(i>j)
{
ch=str2[i];str2[i]=str2[j];str2[j]=ch;
i++;j--;
}
while(*str1||*str2)
{
if(*str1){*str=*str1;str++;str1++;)
if(*str2){*str=*str2;str++;str2++;)
}
//****found****
*str=0:
}
voidmain
{
chars1[100],s2[100],t[200];
system("CLS");
printf("\nEnters1string:");
scanf("%s",sl);
printf("\nEnters2string:");
scanf("%s",s2);
proc(s1,s2,t);
printf("\nTheresultis:%s\n",t);
}
六、程序設計題(1題)82.請編寫函數proc(),其功能是:將所有大于1小于整數m的非素數存入XX所指數組中,非素數的個數通過k傳回。例如,輸入20,則應輸出4689101214151618。注意:部分源程序給出如下。請勿改動main()函數和其他函數中的任何內容,僅在函數proc()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.AB)選項中switch(n[nx);語句中不應該有最后的分號。switch(expr1),中的exp1不能用浮點類型或Iong類型,也不能為一個字符串,所以C)錯誤。case后面常量表達式的類型必須與switch后面表達式的類型一致,所以D)錯誤。
2.CC)【解析】數據庫一旦發(fā)生故障,需要及時進行故障恢復,并由數據庫管理員負責執(zhí)行故障恢復。
3.A本題考查的是格式輸)ki$i數,即按用戶指定的格式從鍵盤上把數據輸入到指定的變量之中,其中的格式命令可以說明最大域寬。在百分號(%)與格式碼之間的整數用于限制從對應域讀入的最大字符數。因此j的值為55,y的值為566.0,字符數組nanle的值為7777123。故本題答案為A)。
4.D程序定義double變量x、y,給x賦初值2.0。if語句判斷,當x小于0.0時,給y賦值0.0。否則當x小于10
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZJWL 001-2024 大宗商品供應鏈金融動產質押監(jiān)管倉儲服務規(guī)范
- T-ZNZ 264.3-2024 重金屬中度污染農田土壤修復和安全利用技術規(guī)范 第3部分:超積累東南景天與芝麻輪作
- 二零二五年度服裝品牌廠家全國代理合作協(xié)議
- 2025年度電影院包場租賃及廣告合作合同
- 二零二五年度金融科技股權投資合同協(xié)議
- 二零二五年度工傷事故賠償調解協(xié)議(含傷殘評定)
- 二零二五年度全包裝修合同模板含定制家具制作
- 2025年度離職賠償協(xié)議書中的離職員工離職通知及手續(xù)辦理
- 二零二五年度聯(lián)防聯(lián)控疫情防控科研合作合同
- 2025年度線上虛擬購物體驗合同書
- 硬筆書法紙(打直接打印)
- 陳銀子礦山基建施工組織方案方案
- 襄陽房地產市場月報2024年08月
- 工業(yè)互聯(lián)網平臺的架構與功能
- 八年級英語下冊課件教學
- 人教版(2019) 必修第二冊 Unit 1 Cultural Heritage Discovering Useful Structures(教案)
- 陳獨秀生平事跡
- 2024年人教版初三數學(下冊)模擬試卷及答案(各版本)
- 《大學美育》高職全套教學課件
- 醫(yī)院CT機房裝飾改造工程施工組織設計
- 軟件工程自考02333重點難點匯集
評論
0/150
提交評論