版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2021年甘肅省武威市全國計算機等級考試C語言程序設計真題(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.
2.第
24
題
下面程序段的運行結果是
char*p="abcdefgh";
p+=3;
printf("%d\n",strlen(strcpy(p,"ABCD")));
A.8B.12C.4D.7
3.
有以下程序:
main
{intx=102,y=012;
printf("%2d,%2d\n",x,y);
}
執(zhí)行后輸出結果是()。
A.10,01B.02,12C.102,10D.02,10
4.對n個關鍵字的序列進行快速排序,平均情況下的空間復雜度為_______
A.O(1)B.O(logn)C.O(n)D.O(nlogn)
5.x>0||y==5的相反表達式為()。
A.x<=0||y!=5B.x<=0&&y!=5C.x>0||y!=5D.x>0&&y==5
6.下列選項不符合良好程序設計風格的是()。
A.源程序要文檔化B.數據說明的次序要規(guī)范化C.避免濫用goto語句D.模塊設計原則是高耦合、高內聚
7.下列程序的輸出結果是()。main{inti=1,j=2,k=3;if(i++==1&&(++j==3==||k++==3))printf("%d%d%d\n",i,j,k);}A.123B.234C.223D.233
8.程序運行后的輸出結果是()。
A.m=4
B.m=2
C.m=6
D.m=5
9.下列敘述中,正確的是()
A.軟件交付使用后還需要進行維護
B.軟件一旦交付使用就不需要再進行維護
C.軟件交付使用后其生命周期就結束
D.軟件維護是指修復程序中被破壞的指令
10.以下敘述中正確的是()。
A.在C語言中,預處理命令行都以“#”開頭
B.預處理命令行必須位于c源程序的起始位置
C.#include<stdi0.h>必須放在C程序的開頭
D.C語言的預處理不能實現宏定義和條件編譯的功能
11.
12.
13.有以下程序:
程序執(zhí)行后的輸出結果是()。
A.45B.20C.25D.36
14.CPU能夠直接訪問的存儲器是
A.軟盤B.硬盤C.RAMD.CD-ROM
15.下列能正確進行字符串賦值的是()。
A.chars[5]={"ABCDE"};
B.chars[5]={A,B,C,D,E};
C.char*S;S="ABCDE";
D.char*s;printf("%《",s);
16.若用一個大小為6的數組來實現循環(huán)隊列,且當前rear和front的值分別為0和3,當從隊列中刪除一個元素,再加入兩個元素后,rear和front的值分別為()
A.2和4B.1和5C.4和2D.5和1
17.線性表是具有n個()的有限序列。
A.表元素B.字符C.數據元素D.數據項
18.折半查找的時間復雜性為()
A.O(n2)B.O(n)C.O(nlogn)D.O(logn)
19.若變量a、i已正確定義,且i已正確賦值,合法的語句是()。
A.a==lB.++iC.a=a++=5D.a=int(i)
20.
二、2.填空題(20題)21.在對文件進行操作的過程中,若要求文件的位置回到文件的開頭,應當調用的函數是【】函數。
22.數據獨立性分為邏輯獨立性與物理獨立性。當數據的存儲結構改變時,其邏輯結構可以不變,因此,基于邏輯結構的應用程序不必修改,稱為【】。
23.在C語言中,while和do…while循環(huán)的主要區(qū)別是______的循環(huán)至少被執(zhí)行一次。
24.以下程序的輸出結果是()。#definePR(ar)printf("ar=%d”,ar)main(){intj,a[]={1,8,3,7,6,13,17,15},*p=a+5;for(j=3;j;j--)switch(j){case1:case2:PR(*p++);break;case3:PR(*(--p));}}
25.設變量已正確定義為整型,則表達式n=i=2,++i,i++的值為【】。
26.以下程序的運行結果是【】。
#include<string.h>
typeaefstructstudent{
charname[10];
longsno;
floatscore;
{STU;
main()
{STUa={"zhangsan",2001,95},b={"Shangxian",2002,90},c={"Anhua",2003,95},d,*p=&d;
d=a;
if(strcmp(a.name,b.name)>0)d=b;
if(strcmp(C.name,)>0)d=C;
printf("%1d%s\n",d.sno,p->name);
}
27.以下程序運行后的輸出結果是______。
fun(inta)
{intb=0;staticintc=3;
b++;c++;
return(a+b+c);
}
main()
{inti,a=5;
for(i=0;i<3;i++)printf("%d%d",i,fun(a));
printf("\n");
}
28.結構化程序設計的3種基本結構分別是順序、選擇和______。
29.下面程序的功能是:輸出100以內能被3整除且個位數為6的所有整數,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{inti,j;
for(i=0【】;i++)
{j=i*10+6;
if(【】)continue;
printf("%d",j);
}
}
30.一張3.5英寸軟盤大約能存儲140萬個ASCⅡ字符,若存放漢字大約能存放【】個。
31.Jackson方法是一種面向【】的結構化方法。
32.用十六進制給存儲器中的字節(jié)地址進行編號,其地址編號從0000到FFFF,則該存儲器容量是【】。
33.在軟件生命周期中,【】階段是花費最多、持續(xù)時間最長的階段。
34.以下程序中,fun()函數的功能是求3行4列二維數組每行元素中的最大值,請?zhí)羁铡?/p>
voidfun(int,int,int(*)[4],int*);
main()
{inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;
fun(3,4,a,b);
for(i=0;i<3;i++)printf("%4d",b[i]);
printf("\n");
}
voidfun(intm,intn,intar[][4],int*br)
{inti,j,x;
for(i=0;i<m;i++)
{x=ar[i][0];
for(j=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];
______=x;
}
}
35.以下程序運行后的輸出結果是【】。
structNODE
{
intnum;
stmctNODE*next;
};
main()
{structNODEs[3]={{1,'\0'),{2,'\0'),{3,'\0'}),*p,*q,*r;
intsum=0;
s[0].next=s+1;
s[1].next=s+2;
s[2].next=s;
p=s
q=p->next;
r=q->next;
sum+=q->next->num;
sum+=r->next->next->num;
printf("%d\n",sum);
}
36.程序測試分為靜態(tài)分析和動態(tài)測試。其中【】是指不執(zhí)行程序,而只是對程序文本進行檢查,通過閱讀和討論,分析和發(fā)現程序中的錯誤。
37.數據庫三級模式體系結構的劃分,有利于保持數據庫的【】。
38.若a是int型變量,則表達式(a=2*3,a*2),a+6的值為______。
39.設y是int型變量,請寫出y為奇數的關系表達式【】。
40.執(zhí)行下列語句段后,x的值是______。
int*p,x;
x=100;
p=&x;
x=*p+50;
三、1.選擇題(20題)41.若有下面的說明和定義:unionun{chars[10];longd[3];}ua;struetstd{charc[10];doubled;inta;unionunvb;}a;則printf("%d\n",sizeof(structstd)+sizeof(unionun));輸出的值為______。
A.34B.52C.54D.64
42.下列關于隊列的敘述中正確的是()。
A.在隊列中只能插入數據B.在隊列小只能刪除數據C.隊列是先進先出的線性表D.隊列是先進后出的線性表
43.在E-R圖中,用來表示實體的圖形是
A.矩形B.橢圓形C.菱形D.三角形
44.下列程序的輸出結果是()。#include<stdio.h>main(){inti;for(i=1;i<=10;i++){if((i*i>=20)&&(i*i<=100))break;}printf("%d\n",i*i);}
A.49B.36C.25D.64
45.在順序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找關鍵碼值11,所需的關鍵碼比較次數為______。
A.2B.3C.4D.5
46.關系代數運算是以______為基礎的運算。
A.關系運算B.謂詞運算C.集合運算D.代數運算
47.表達式0x130x17的值是()。
A.0x04B.0x13C.0xE8D.0x17
48.有下列程序:#include<stdio.h>main(){charc1,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&c1,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(c1);putchar(c2);printf("%c%c\n",c5,c6);}程序運行后,若從鍵盤輸入(從第1列開始)123<CR>45678<CR>則輸出結果是()。
A.1267B.1256C.1278D.1245
49.設有以下語句:chara=3,b=6,c;c=ab<<2;則c的二進制值是()。
A.11011B.10100C.11100D.11000
50.設有下列二叉樹:
對此二叉樹中序遍歷的結果為______。
A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
51.以下程序執(zhí)行后x的值是main(){intx,y=252,i=386,*m=&y,*z=&i;x=(z==y);printf("%d",x);}
A.252B.1C.0D.運行時出錯,x無定值
52.已有定義:inti,a[10],*p;則合法的賦值語句是()。
A.p=100;B.p=a[5];C.p=a[2]+2;D.p=a+2;
53.關系表中的每一橫行稱為一個()。A.元組B.字段C.屬性D.碼
54.下列方法中,屬于白盒法設計測試用例的方法的是()。
A.錯誤推測B.因果圖C.基本路徑測試D.邊界值分析
55.若有定義: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);
56.設有以下說明語句typedefstruct{intn;charch[8];}PER;則下面敘述中正確的是
A.PER是結構體變量名
B.PER是結構體類型名
C.typedefstruct是結構體類型
D.struct是結構體類型名
57.下列能正確進行字符串賦值的是()。
A.chars[5]={"ABCDE"};
B.chars[5]={'A','B','C','D','E'};
C.char*s;s="ABCDE";
D.char*s;printf("%s",s);
58.有三個關系R、s和T如下:
由關系R和s通過運算得到關系T,則所使用的運算為()。
A.并B.自然連接C.笛卡爾積D.交
59.設有以下語句,則c的二進制值是()chara=3,b=6,c;c=ab<<2;
A.11011B.10100C.11100D.11000
60.若有下列說明和語句,則對結構體變量st中成員i的引用方式不正確的是()。Structstu{inti;intname;}st,*p;p=&st;
A.st.iB.*p.iC.(*p).iD.p->i
四、選擇題(20題)61.
62.下列程序的運行結果是()。main(){intx=1,y=3,a=0;while(x++!=(y-=1)){a+=1;if(y<x)break;}printf("%d,%d,%d\n",x,y,a);}
A.2,3,2B.2,3,1C.1,3,3D.3,1,2
63.
64.用鏈表表示線性表的優(yōu)點是()。
A.便于隨機存取B.花費的存儲空間較順序存儲少C.便于插入和刪除操作D.數據元素的物理順序與邏輯順序相同
65.有以下程序:main(){intm=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);}程序運行后的輸出結果是______。
A.12353514B.12353513C.12343514D.12343513
66.有以下程序:
#include<stdio.h>
main
{inty=10;
while(y--);
printf("y=%d\n",y);
}
程序執(zhí)行后的輸出結果是()。
A.y=0B.y=-1C.y=lD.while構成無限循環(huán)
67.
68.
69.
70.算法分析最重要的目的是
A.找出數據結構的合理性B.找出算法中輸入和輸出之間的關系
C.分析算法的易懂性和可靠性D.分析算法的效率以求改進
71.C語言中用于結構化程序設計的三種基本結構是A.順序結構、選擇結構、循環(huán)結構
B.if、switch、break
C.for、while、do-while
D.if、for、continue
72.
73.有以下定義:
74.
75.
76.若有定義:doublea=22;inti=0,k=18;,則不符合c語言規(guī)定的賦值語句是()。
A.i=(a+k)<=(i+k);B.i=a%11;C.a=a++,i++;D.i=!a;
77.有以下程序程序的運行結果是()。
A.6B.9C.0D.8
78.
79.下列敘述中正確的是()。
A.在棧中,棧中元素隨棧底指針與棧頂指針的變化而動態(tài)變化
B.在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動態(tài)變化
C.在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動態(tài)變化
D.以上說法都不正確
80.有以下程序
#defineN15
fun(inta[],intn,intm)
{inti,j;
for(i=m;i>=n;i--)
a[i+1]=a[i];
}
main()
{inti,a[N]={1,2,3,4,5,6,7,8,9,10};
fun(a,3,7);
for(i=3;i<8;i++)
printf("%d",a[i]);
}
程序的運行結果是A.A.45678
B.44567
C.45567
D.45677
五、程序改錯題(1題)81.下列給定程序中,函數proc()的功能是:通過某種方式實現兩個變量值的交換,規(guī)定不允許增加語句和表達式。例如變量num1中的值原為2,num2中的值原為1,程序運行后,num1中的值為l,num2中的值為2。請修改程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。試題程序:
六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,編寫函數fun(),其功能是將兩個兩位數的正整數a、b合并成一個整數放在c中。合并的方式是將a中的十位數和個位數依次放在c的個位和百位上,b中的十位數和個位數依次放在c的十位和千位上。例如,當a=45,b=12時,調用該函數后c=2514。注意:部分源程序給出如下。請勿改動主函數main()和其他函數中的任何內容,僅在函數fun()的花括號中填入你編寫的若干語句。試題程序:#include<conio.h>#include<stdio.h>voidfun(inta,intb,long*c){}main(){ inta,b; longc; printf(“Inputa,b:”); scanf(“%d%d”,&a,&b); fun(a,b,&c); printf(“Theresultis:%ld\n”,c);}
參考答案
1.B
2.C在本題中,程序段首先定義了字符型指針變量p,并使其指向一個字符串,然后將指針變量p加3,即使其指向字符串的第四個元素。然后執(zhí)行輸出語句,通過輸出語句的輸出格式我們可以知道,最后輸出的是一個十進制數的整型數值,其輸出列表為strlen(strcpy(P,″ABCD″))。這就要求我們了解strlen函數和strcpy函數的作用。
strcpy的調用格式是:strcpy(目的地址,源地址),其功能是把源地址的字符串復制到目的地址中,這種復制將覆蓋原來的字符串。strcat函數的功能是將源地址的字符串復制到目的地址字符串的后面。
strlen的調用格式是:strlen(字符串地址),其功能是返回字符串中字符的個數。
那么程序中執(zhí)行strcpy(P,″ABCD″)后指針變量p所指向的字符串為“ABCD”,該字符串中字符的個數為4,那么執(zhí)行strlen后,程序最終輸出的結果是4。因此本題正確的答案是C。
3.C解析:本題中,“printf('%2d,%2d\\n',x,y)”表示以逗號隔開輸出兩個十進制整數,每個整數域寬是2。而在C語言中規(guī)定:當域寬小于實際寬度時域寬不起作用,按實際寬度輸出,因此最后的輸出值為102和10(y的初值012表示八進制整數12,等于十進制的10)。所以,4個選項中選項C符合題意。
4.D
5.B
6.D在程序設計中,對于軟件設計中的模塊設計要保證高內聚和低耦合,源程序要有文檔說明,同時對程序中數據的說明要規(guī)范化。而goto語句破壞程序的結構,要盡量避免使用。所以選項D不正確。
7.D本題考夢自增運算符“++”、邏輯與運算符“&&”和邏輯或運算符“||”。自增運算符“++”出現在變量之前,表示先使用變量的值加l,再使用變量的值進行運算;出現在變量之后,表示先使用變量的值進行運算,再使用變量的值加l。當邏輯與運算符“&&’’兩邊的運算對象都為真時,邏輯表達式的值才為真;當邏輯或運算符“||”只要一個值為1,值就為1。根據運算符的優(yōu)先級,題中應先計算內層括號中的值。++j是先自加后運算,因此運算時j的值等于3,所以表達式++j=3成立,即表達式的值為1;1與任何數都為進行或(||)運算,結果都為1,因此k=3的表達式i++是先運算后自加,因此運算時i為1,所以i++=1成立,自加1后i=2。if語句的條件為真即“1”,所以輸出i、j、k的值分別是2,3,3。
8.C[解析]第一次外循環(huán)的值為1.第一次內循環(huán)的值為3.不滿足條件執(zhí)行m*=j即m的值為3;第二次的值為2.不滿足條件執(zhí)行m*=*j,即m的值為6;第三次的值為1.不滿足條件執(zhí)行m*=j,即m的值仍為6.第二次外循環(huán)的值為2.j的值為3.滿足條件,執(zhí)行break語句,跳出循環(huán)。
9.A解析:維護是軟件生命周期的最后一個階段,也是持續(xù)時間最長、付出代價最大的階段。軟件工程學的目的就在于提高軟件的可維護性,同時也要設法降低維護的代價。
軟件維護通常有以下四類;
①為糾正使用中出現的錯誤而進行的改正性維護;
②為適應環(huán)境變化而進行的適應性維護;
③為改進原有軟件而進行的完善性維護;
④為將來的可維護和可靠而進行的預防性維護。
軟件維護不僅包括程序代碼的維護,還包括文檔的維護。文檔可以分為用戶文檔和系統文檔兩類。但無論是哪類文檔,都必須與程序代碼同時維護。只有與程序代碼完全一致的文檔才有意義和價值。由此可知,本題中選項B、C、D中的說法都是錯誤的。
10.A預處理命令是以“#”號開頭的命令,它們不是C語言的可執(zhí)行命令,這些命令應該在函數之外書寫,一般在源文件的最前面書寫,但不是必須在起始位置書寫,所以B、c錯誤。C語言的預處理能夠實現宏定義和條件編譯等功能,所以D錯誤。
11.A
12.C
13.C統計1~9九個數中的奇數和,此題重點考察指向數組的指針。c語言規(guī)定數組名代表數組的首地址,也就是第一個元素的地址。因此*(t+i)代表數組的第i+1個元素。程序運行的結果是l+3+5+7+9=25。1
14.C解析:CPU讀取和寫人數據都是通過內存來完成的。
15.C選項A、B的空間不夠;字符串存儲要有結束符\0,且要占用一個空間,printf用來輸出字符,不能輸入字符串。
16.A
17.A
18.D
19.B選項A為表達式,因此不正確,選項C中a++本身就是表達式,無需再賦值,選項D中,在強制類型轉換時,類型名應用括號括起來,故選擇8選項。
20.A
21.rewind()或fseek()rewind()或fseek()
22.物理獨立性物理獨立性解析:數據獨立性分為邏輯獨立性與物理獨立性。當數據的存儲結構改變時,其邏輯結構可以不變,因此,基于邏輯結構的應用程序不必修改,稱為物理獨立性。
23.do…whiledo…while解析:考查while和do…while循環(huán)的主要區(qū)別。while循環(huán)的控制出現在循環(huán)體之前,只有當while后面的表達式的值為非零時,才可能執(zhí)行循環(huán)體;在do…while構成的循環(huán)體中,總是先執(zhí)行一次循環(huán)體,然后再求表達式的值,因此無論表達式的值是否為零,循環(huán)體至少要被執(zhí)行一次。
24.ar=6ar=6ar=13ar=6ar=6ar=13解析:通過*p=a+5將指針P指向a[5],第1次循環(huán),i=3時,switch(3),執(zhí)行case3,*(-p)-a[4]=6,所以輸出ar=6;第2次循環(huán),j=2時,switch(2),執(zhí)行case2,(*p++)是先引用a[4]的值6,輸出ar=6,再將指針P移位指向a[5];第3次循環(huán),j=1時,switch(1),執(zhí)行case1,case1后沒有break語句,接著執(zhí)行case2,(*p++)是先引用a[5]的值13,輸出ar=13,再將指針P移位指向a[6]。
25.33解析:本題考查的是C語言逗號表達式的相關知識。程序在計算逗號表達式時,從左到右計算由逗號分隔各表達式的值,整個逗號表達式的值等于其中最后一個表達式的值。本題中,首先i被賦值為2,再自加1,最后i++的值計算為3。
26.2002Shanxian2002Shanxian解析:本題中第一個if語句將結構體變量a.name和結構體變量b.name中較小的那個賦值給結構體變量d,第二個if語句將結構體變量c.name和結構體變量d.name較大的那個賦給結構體變量d。通過函數strcmp比較。strcmp()函數有兩個參數,分別為被比較的兩個字符串。如果第一個字符串大于第二個字符串返回值大于0,若第一個小于第二個返回值小于0,相等時返回值為0。字符串比較大小的標準是從第一個字符開始依次向右比較,遇到某一個字符大,該字符所在的字符串就是較大的字符串,如果遇到某一個字符小,該字符所在的字符串就是較小的字符串。本程序中第一個if語句strcmp(a.name,b.name)>0為真,故將b的值賦給d,第二個if語句strcmp(c.name,d.name)>0為假,故不執(zhí)行后面的語句,最后d的值為b的值,因此d.sno和p->name的值為2002Shangxian。
27.010111212010111212解析:本題考查的是靜態(tài)局部變量的運用。靜態(tài)局部變量的作用域與普通局部變量一樣,但它的生存期將延長到程序運行結束。本題的主函數中使用一個for循環(huán)輸出循環(huán)變量i和fun(a)的值,由于a的值一直沒被修改過,所以三次調用的都是fun(5)。第1次調用,b=0,c=3,所以返回值為5+1+4=10;第2次調用,因為c是靜態(tài)局部變量,它仍然保存著上次調用結束時的值4,而b重新被創(chuàng)建和初始化為0,所以返回值為5+1+5=11;同理,第3次調用返回的是12。所以,程序最終輸出為:010111212。
28.重復(循環(huán))重復(循環(huán))解析:結構化程序設計包括3種基本的結構:順序結構、選擇結構和重復結構(循環(huán)結構),利用這3種結構就足以表達出各種其他形式結構的程序設計方法。其中利用循環(huán)結構,可以簡化大量的程序執(zhí)行。
29.i<=9或i<10或9>=i或10>ij%3!=0或j%3i<=9或i<10或9>=i或10>i\r\nj%3!=0或j%3
30.70萬70萬
31.數據結構數據結構解析:Jackson方法是—‘種面向數據結構的結構化方法。
32.64KB
33.維護維護
34.br[i]
35.55解析:主函數首先聲明了一個結點數組s[3],并分別初始化其成員num為1、2、3,而成員next全部被初始化為'\\0'也就是0。下面又用三條語句s[0].next=s+1;s[1].next=s+2;s[2].next=s;分別將三個結點指向其后面一個結點,而最后一個結點指向第1個結點,構造出一條單向循環(huán)鏈表。接下來用結點指針p=s即讓其指向s[0],然后讓q=p->next,即指向了s[1],r=q->next即讓r指向s[2],然后讓一個累計變量sum累加q->next->num和r->next->next->nm,因為q指向s[1]所以它的next指針指向的是s[2],故第1次累加的是s[2].num=3,而r指向的是s[2]所以它的next是s[0],s[0]的next指向s[1],故第2次累加的是s[1].num=2。所以程序最終輸出結果為5。
36.靜態(tài)分析靜態(tài)分析解析:程序測試分為靜態(tài)分析和動態(tài)測試。其中,靜態(tài)分析是指不執(zhí)行程序,而只是對程序文本進行檢查,通過閱讀和討論,分析和發(fā)現程序中的錯誤。
37.數據獨立性數據獨立性解析:數據庫的三級模式體系結構把數據的組織管理工作進行了劃分,把數據的具體組織留給DBMS管理,使用戶能邏輯地、抽象地處理數據,而不必關心數據在計算機中的具體表示方式與存儲方式,保證了數據的獨立性。
38.1212解析:本題考查逗號表達式的運算規(guī)則。逗號表達式的基本格式為:“表達式1,表達式2,…”,其整個表達式的結果取最后一個子表達式的值。本題中首先計算逗號表達式中的第1個表達式a=2*3=6,然后計算第2個表達式a*2,這時整個表達式的值為12,但要注意,因為第2個表達式并沒有給a賦值,因此a的值不變;接下來執(zhí)行最后一個表達式a+6=12,所以整個表達式最后的值為12。
39.(y%2)==1或(y%2)!=0(y%2)==1或(y%2)!=0
40.150150解析:本題先給變量x賦初始值100,然后將指針p指向變量x,*p是取指針p所指地址的內容,即100,所以x=100+50=150。
41.B解析:結構體中的每個成員分別占用獨立的存儲空間,因此它所占的內存字節(jié)數是其成員所占字節(jié)數的總和;共用體變量所占內存字節(jié)數與其成員中占字節(jié)數最多的那個成員相等。
42.C解析:隊列是指允許在一端進行插入、而在另一端進行刪除的線性表,允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭,選項A和選項B錯誤。在隊列中,最先插入的元素將最先能夠被刪除,反之,最后插入的元素將最后才能被刪除,所以,隊列又稱為“先進先出”或“后進后出”的線性表,它體現了“先來先服務”的原則,選項C正確,選項D錯誤。
43.A解析:在E-R圖中,用三種圖框分別表示實體、屬性和實體之間的聯系,其規(guī)定如下:用矩形框表示實體,框內標明實體名;用橢圓狀框表示實體的屬性,框內標明屬性名;用菱形框表示實體間的聯系,框內標明聯系名。所以,選項A正確。
44.C解析:本題考查if語句.當執(zhí)行到第一個滿足(i*i>=20)&&(i*i<=100)這個條件的i出現時,通過break語句跳出循環(huán),執(zhí)行下列的printf語句。
45.C解析:二分法查找是一種線性查找方法,其基本方法是:首先要用要查找的關鍵碼與線性表中間位置結點的關鍵碼值進行比較,這個中間結點把線性表分為兩個子表,比較相等則查找完畢,不等則根據查找結果確定下一步的查找應該在哪一個子表中進行,如此下去,直到找到滿足條件的結點:或者確定表中沒有這樣的結點。用二分法查找關鍵碼值11的順序如下所示,其中[]內為本次栓索的子表,()內為該子表的中間結果。從圖中可以看出,經四次查找后,確定表中沒有這樣的結點。因此本題正確答案為選項C(4)。
第一次:[3,6,8,10,12,(15),16,18,21,25,30]
第二次:[3,6,(8),10,12],15,16,18,21,25,30
第三次:[3,6,8,[(10),(12)],15,16,18,21,25,30]
第四次:[3,6,8,10,[(12)],(15),16,18,21,25,30]查找失敗。
46.C解析:關系代數是以集合代數為基礎女發(fā)展起來的,它是以關系代數作為運算對象的一組高級運算的集合。它的基本操作是并、交、差、笛卡爾積,另外還包括針對數據庫環(huán)境專門設計的操作,包括對關系進行垂直分割(投影)、水平分割(選擇)、關系的結合(連接)等。
47.A解析:運算符“^”是按位異或運算符,其運算規(guī)則是:參與運算的兩個二進制數,若相對應的二進制位上的數相同,則該位的結果為0;否則該位的結果為1??傻茫?x130x17=1001110111=0x04
48.D解析:當用scanf函數從鍵盤輸入數據時,每行數據的末尾按下回車鍵(Enter鍵)之前,可以任意修改。但按下回車鍵putchar(c1)(Enter鍵)之后,scanf函數即接受了這一行數據,不能再回去修改。所以本題中,當輸入123<CR>時,變量c1、c2、c3的值分別為1、2、3,當輸入45678<CR>時,變量c5、c6的值4和5。所以用輸出函數putchar(c1)輸出1,putchar(c2)輸出2,printf('%c%c\\n',c5,c6)輸出45。所以選項D)為正確答案。
49.A解析:“<<”是C語言中規(guī)定的左移運算符,例如,a=a<<2,是將a的二進制數左移兩位,左移一位相當于該數乘以2,左移兩位相當于該數乘以2的2次方;“^”是異或運算符,所以,c的二進制值應為00011011。
50.B解析:所謂中序遍歷是指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結點,最后遍歷右子樹;并且在遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結點,最后遍歷右子樹。
51.C解析:指針變量m和z分別指向整型變量y和i,所以這兩個指針變量中存儲的地址是不同的。變量x接受的是一個關系運算的結果,因為兩個地址是不同的,所以“z=y”的判斷結果為0。注意:C語言中,邏輯值的表示方法。
52.D解析:本題考核的知識點是指針變量的賦值。本題中定義了一個整型數組a和一個整型指針變量P。選項A中將一個整型數賦值給一個指針變量,C語言規(guī)定,只能特地址賦給指針指針變量,故選項A不正確:選項B中a[5]為一數組元素,同樣不是一個地址,故選項B不正確;選項c中a[2]為一數組元素,同樣是一個整型數據,不是個地址,故選項C不正確:選項D中數蛆名a代表數組首地址加2,代表第三個元素的地址,故選項D正確,所以,4個選項中選項D符合題意。
53.A解析:關系表中,每一行稱為一個元組,對應表中的一條記錄;每一列稱為表中的一個屬性,對應表中的一個字段;在二維表中凡能惟一標識元組的最小屬性集稱為該表的鍵或碼。
54.CC)【解析】白盒測試方法也稱為結構測試或邏輯測試,主要方法有邏輯覆蓋測試、基本路徑測試等。
55.A解析:本題綜合考查字符數組的賦值和strcpy函數的用法。C語言不允許用賦值表達式對字符數組賦值,如下面的語句就是非法的:strl=“China”,如果想把“China”這5個字符放到數組strl中,除了逐個地輸入外,還能使用strcpy函數,該函數的功能是將一個字符串復制到一字符數組中。例如:strcpy(strl,“China”);或strcpy(strl,str2);注意,不能企圖用以下語句來實行賦值(將str2的值傳給strl):strl=str2;不能用賦值語句將一個字符串常量或字符數組直接給一個字符數組。
strcpy函數的結構是:strcpy(字符數組1,字符串2)
其中,需要注意的是,字符數組1的長度不應小于字符串2的長度,“字符數組1”必須寫成數組名形式,如(strl),“字符串2”可以是字符數組名,也可以是字符串常量,不能用賦值語句將一個字符串常量或字符數組直接給一個字符數組。
56.B解析:本題中,typedef聲明新的類型名PER來代替已有的類型名,PER代表上面指定的一個結構體類型,此時,也可以用PER來定義變量。
57.C解析:字符串存儲要有結束符“\\0”且要占用一個空間,選項A)、B的空間不夠:printf用來輸出字符,不能輸入字符串.
58.D關系R與s經交運算后所得到的關系是由那些既在R內又在S內的共有元組組成的,記為RnS。
59.A
60.B解析:本題主要考查結構指針:p=&st,訪問結構體的成員,可以通過結構變量訪問,即st.i,也可以用等價的指針形式,即(*p).i和p->i。
61.D
62.D解析:本題考查while循環(huán)。第一次循環(huán),先拿x的值和(y-1)比較,此時x=1,y-1=2,循環(huán)條件成立,比較完將x的值加1,此時x=2,進入循環(huán),a=a+1=1,判斷if語句的控制條件是否成立,y<x不成立,接著執(zhí)行下一次循環(huán)。第二次循環(huán),先拿x的值和(y-1)比較,此時x=2,y-1=1,循環(huán)條件成立,比較完將x的值加1,此時x=3,進入循環(huán),a=a+1=2,判斷if語句的控制條件是否成立,y<x成立,執(zhí)行break語句退出循環(huán)。
63.D
64.CC。【解析】數據結構是相互之間存在一種或多種特定關系的數據元素的集合。”關系”描述的是數據元素之間的邏輯關系,因此又稱數據的邏輯結構。數據的存儲結構是指數據結構(數據的邏輯結構)在計算機中的表示,又稱物理結構。數據的存儲結構有順序存儲結構和鏈式存儲結構兩種。不同存儲結構的數據處理效率不同。由于鏈表采用鏈式存儲結構,元素的物理順序并不連續(xù),對于插入和刪除無需移動元素,很方便,當查找元素時就需要逐個元素查找,因此查找的時間相對更長。
65.A解析:自增運算符“++”,放在變量之前表示在使用變量之前,先使變量的值加1;放在變量之后表示在使用變量之后,再使變量的值加1。第一條輸出語句,先輸出m=12,m再自加1,變成13,n先自加1再輸出,輸出n=35;第二條輸出語句,先輸出n=35,n再自加1,變成36,m先自加1再輸出,輸出m=14。
66.B\ny
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 超市商品陳列及擺放制度
- 右江區(qū)四塘鎮(zhèn)拉皓鄉(xiāng)村振興光伏發(fā)電項目(重大變動)環(huán)境影響報告表
- 污水處理改造合同協議書
- 染織工藝知識培訓課件
- 2024-2025學年青海省西寧市大通回族土族自治縣高二下學期期末聯考歷史試題(解析版)
- 2024-2025學年山東省濟寧市高二下學期期末質量監(jiān)測歷史試題(解析版)
- 2026年中醫(yī)執(zhí)業(yè)醫(yī)師考試題目及答案解析
- 2026年食品質量安全檢測試題食品安全監(jiān)管與風險評估
- 2026年汽車維修技術試題汽車構造與維修技術要點
- 2026年汽車維修技術專業(yè)訓練題目
- 涮羊肉烹飪技術培訓課件
- 智能監(jiān)控系統安裝與維護指南(標準版)
- 智慧育兒:家庭教育經驗分享
- 2025年人力資源部工作總結暨2026年工作計劃
- 兩委換屆考試題庫及答案
- 熱電廠主體設備安裝施工組織設計
- CT尿路成像的課件資料
- GB/T 26784-2011建筑構件耐火試驗可供選擇和附加的試驗程序
- 煤礦安全規(guī)程執(zhí)行說明
- 二道壩通水冷卻專項方案課件
- 咸陽市住房公積金提取申請表_6344
評論
0/150
提交評論