版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021-2022年安徽省馬鞍山市全國計算機等級考試C語言程序設(shè)計真題二卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.算法的空間復(fù)雜度是指()。
A.算法程序的長度B.算法程序中的指令條數(shù)C.算法程序所占的存儲空間D.算法執(zhí)行過程中所需要的存儲空間
2.同一個關(guān)系模型的任意兩個元組值()。
A.可以全相同B.不能全相同C.必須全相同D.以上都不對
3.下列變量聲明合法的是()。
A.shorta=1.4e-1;
B.doubleb=1+3e2.8;
C.longdo=OxfdaL;
D.float2
4.設(shè)"char**s;",以下正確的表達(dá)式是()。
A.s="computer";B.*s="computer";C.**s="computer";D.*s='c';
5.可用作C語言用戶標(biāo)識符的一組標(biāo)識符是()。A.voiddefine+WORDB.a3_b3_123YNC.for-abcCaseD.2aDOsizeof
6.以下敘述中正確的是()。
A.構(gòu)成C程序的基本單位是函數(shù)
B.可以在一個函數(shù)中定義另一個函數(shù)
C.main函數(shù)必須放在其他函數(shù)之前
D.C函數(shù)定義的格式是K&R格式
7.
8.設(shè)有如下函數(shù)定義:intfun(intk){if(k<1)return0;elseif(k==l)returnl;elsereturnfun(k-1)+1:}若執(zhí)行調(diào)用語句:“n=fun(3);”,則函數(shù)fun總共被訶用的次數(shù)是()。A.2B.3C.4D.5
9.有以下程序:#include<stdio.h>main(){charch=‘D’;while(ch>‘A’){ch--;putchar(ch);if(ch==‘A’)break;putchar(ch+1);}}程序運行后的輸出結(jié)果是()。
A.CBB.BCAC.CCBBD.CDBCA
10.現(xiàn)在有16枚外形相同的硬幣,其中一枚是假幣,且已知假幣比真幣重量輕。先給定一架沒有砝碼的天平,問至少需要多少次稱量才能找到這枚假幣?
A.3B.4C.5D.6
11.如果以鏈表作為棧的存儲結(jié)構(gòu),則出棧操作時()。
A.必須判別棧是否滿B.必須判別棧是否為空C.必須判別棧元素類型D.可不做任何判斷
12.有以下程序main()inta[10]={1,2,3,4,5,6,7,8,9,10},*p=.&a[3],*q=p+2;printf("%d\n",*p+*q);程序運行后輸出結(jié)查是
A.16B.10C.8D.6
13.若已知一個棧的進(jìn)棧序列是l,2,3…n,其輸出序列是P1,P2,P3,…PN,若P1=3,則P2為()。
A.可能是2B.一定是2C.可能是1D.一定是1
14.以下程序段運行后x的值為()。inti,j,x=0;for(i=3;i>=1;i--)for(j=1;j<=i;j++)x=x+2A.8B.14C.10D.12
15.若有運算符:>、=、<<、%、sizeof,則它們按優(yōu)先級(由高至低)的正確排列順序為()
A.%、sizeof、>、<<、=
B.sizeof、%、>、=、<<
C.sizeof、<<、>、%、=
D.sizeof、%、<<、>、=
16.已知待排序的n個元素可分為n/k個組,每個組包含k個元素,且任一組內(nèi)的各元素均分別大于前一組內(nèi)的所有元素和小于后一組內(nèi)的所有元素,若采用基于比較的排序,其時間下界應(yīng)為()A.O(nlog2n)B.O(nlog2k)C.O(klog2n)D.O(klog2k)
17.第
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);
18.下面程序的輸出結(jié)果是______。#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
19.數(shù)據(jù)在計算機存儲器內(nèi)表示時,物理地址與邏輯地址相同并且是連續(xù)的,稱為()。
A.存儲結(jié)構(gòu)B.邏輯結(jié)構(gòu)C.順序存儲結(jié)構(gòu)D.鏈?zhǔn)酱鎯Y(jié)構(gòu)
20.一棵二叉樹中共有70個葉子結(jié)點與80個度為1的結(jié)點,則該二叉樹中的總結(jié)點數(shù)為A.219B.221C.229D.231
二、2.填空題(20題)21.以下程序中,for循環(huán)體執(zhí)行的次數(shù)是______。
#defineN2
#defineMN+1
#defineKM+1*M/2
main()
{
inti;
for(i-1;i<K;i++)
{...}
...
}
22.下列程序的輸出結(jié)果是16.00,請?zhí)羁眨?/p>
main()
{
inta=9,b=2;
floatx=【】,y=1.1,z;
z=a/2+b*x/y+1/2;
printf("%5.2f\n",z);
}
23.有以下程序:
#include<stclio.h>
main()
{charc;
while((c=getchar())!='?')putchar(--c);
}
程序運行時,如果從鍵盤輸入:Y?N?<回車>,則輸出結(jié)果為【】。
24.下面的程序可對指定字符串進(jìn)行從大到小排序,請將程序填完整。(注:程序采用了冒泡排序算法)
#include<stdio.h>
#include<string.h>
main()
{char*str="ABCDabcd",temp;
intn,i;
n=strlen(str);
while(n->1)
for(i=0;i<n;i++)
if(str[i]<str[i+1])
{temp=【】;
str[i]=str[i+1];
【】=temp;
}
printf(【】);
}
25.設(shè)有以下定義和語句,則*(*(p+2)+1)的值為【】。
inta[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
26.以下函數(shù)creat用來建立一個帶頭結(jié)點的單向鏈表,新產(chǎn)生的結(jié)點是插在鏈表頭的
末尾。單向鏈表的頭指針作為函數(shù)值返回。請?zhí)羁铡?/p>
#include<stdio.h>
structlist
{chardata;
structlist*next;
};
structlist*creat;
{structlist*h,*p,*q;
charch;
h=(【】)malloc(sizeof(structlist));
p=q=h;
ch=getchar();
while(ch!='?')
{p=(【】)mallco(sizeof(structlist));
p->data=ch;
q->next=p;
q=p;
ch=getchar();
}
p->next='\0';
【】;
}
27.下列程序運行時輸入1234567<CR>,則輸出結(jié)果是______。
#include<stdio.h>
main()
{inta=1,b;
scanf("%2d%2d",&a,&b);printf("%d%d\n",a,b);
}
28.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為______。
29.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),線性鏈表屬于【】。
30.用樹型結(jié)構(gòu)表示實體類型及實體間聯(lián)系的數(shù)據(jù)模型稱為【】。
31.下面程序
main()
{inti,j,m,n;
i=5;
j=10;
m=++i;
n=j++;
printf("%d,%d,%d,%d",i,j,m,n);
}
運行后,i,j,m,n的值分別是_______。
32.數(shù)據(jù)庫系統(tǒng)的三級模式分別為______模式、內(nèi)部級模式與外部級模式。
33.算法的復(fù)雜度主要包括時間復(fù)雜度和______復(fù)雜度。
34.C語言程序的注釋可以出現(xiàn)在程序中的任何地方,一個注釋以【】分別作為開始和結(jié)束。
35.算法的基本特征主要包括叫個方面,它們分別是可行性、確定性、()和擁有足夠的情報。
36.下面程序的運行結(jié)果是【】。
main()
{unsigneda=0112,x;
x=a>>3;
printf("x=%o",x);
}
37.在循環(huán)中,continue語句與break語句的區(qū)別是:______語句只是結(jié)束本次循環(huán),然后進(jìn)行循環(huán)的條件判定。
38.以下程序是求矩陣a、b的和,結(jié)果存入矩陣c中,請?zhí)羁铡?include<stdio.h>main(){inta[4][4]={1,2,6,7},{0,4,2,-8},{1,4,5,2},{2,4,6,8}};intb[4][4]={{-4,0,7,9},{2,-7,7,4),{6,9,0,1),{8,8,6,5)};inti,j,c[4][4];for(i=0;i<4;i++)for(j=0;j<4;j++)c[i][j]=();for(i=0;i<4;i++)for(j=0;j<4;j++)printf("%d",c[i][j]);}
39.寫出下列程序的輸出結(jié)果______。
main()
{int=0;
while(n++<=1);
printf("%d,",n);
printf("%d",n++);
}
40.下列程序的運行結(jié)果是______。
main()
{inti,a[10];
a[0]=a[1]=1;
for(i=2;i<5;i++)
a[i]=a[i-2]+a[i-1];
for(i=0;i<5;i++)
{if(i%2==0)printf("\n");
printf("%d",a[i]);
}
}
三、1.選擇題(20題)41.有以下程序:main(){intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i++<7)if(p[i]%2)j+=p[i];printf("%d\n",j);}程序運行后的輸出結(jié)果是______。
A.42B.45C.56D.60
42.結(jié)構(gòu)化程序設(shè)計的3種結(jié)構(gòu)是()
A.順序結(jié)構(gòu),分支結(jié)構(gòu),跳轉(zhuǎn)結(jié)構(gòu)
B.順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)
C.分支結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)
D.分支結(jié)構(gòu),跳轉(zhuǎn)結(jié)構(gòu),循環(huán)結(jié)構(gòu)
43.下列數(shù)據(jù)結(jié)構(gòu)中,按先進(jìn)后出原則組織數(shù)據(jù)的是
A.線性鏈表B.棧C.循環(huán)鏈表D.順序表
44.設(shè)關(guān)系R1有r1個元組,關(guān)系R2有r2個元組,則關(guān)系R1和R2連接后的結(jié)果關(guān)系的元組數(shù)目是______個。
A.r1+r2B.r1×r2C.≤r1×r2D.≥r1×r2
45.以下程序有語法錯誤,有關(guān)錯誤原因的正確說法是main(){intG=5,k;voidprt_char();…k=prt_char(G);…}
A.語句voidprt_char();有錯,它是函數(shù)調(diào)用語句,不能用void說明
B.變量名不能使用大寫字母
C.函數(shù)說明和函數(shù)調(diào)用語句之間有矛盾
D.函數(shù)名不能使用下劃線
46.閱讀下列程序,則運行結(jié)果為#include"stdio.h"fun(){staticintx=5;x++;returnx;}main(){inti,x;for(i=0;i<3;i++)x=fun();printf("%d\n",x);}
A.5B.6C.7D.8
47.有以下程序:voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(aa+2,5);for(i=0;i<10;i++)printf("%d,",aa[i]);printf("\n");}程序運行后的輸出結(jié)果是()。
A.1,2,3,4,5,6,7,8,9,10,
B.1,2,7,6,3,4,5,8,9,10,
C.1,2,7,6,5,4,3,8,9,10,
D.1,2,9,8,7,6,5,4,3,10,
48.有以下程序:intf(inta){returna%2;}main(){ints[8]={1,3,5,2,4,6},i,d=0;for(i=0;f(s[i]);i++)d+=s[i];printf("%d\n",d);}程序運行后的輸出結(jié)果是()。
A.9B.11C.19D.21
49.下列程序執(zhí)行后的輸出結(jié)果是main(){inta[3][3],*p,i;p=&a[0][0];for(i=1;i<9;i++)p[i]=i+1;printf("%d\n",a[1][2]);}
A.3B.6C.9D.隨機數(shù)
50.設(shè)有聲明語句chara='\72';,則變量a______。
A.包含1個字符B.包含2個字符C.包含3個字符D.聲明不合法
51.有以下程序#include<stdio.h>#defineF(X,Y)(X)*(Y)main(){inta=3,b=4;printf("%d\n",F(a++,b++));程序運行后的輸出結(jié)果是
A.12B.15C.16D.20
52.以下程序的輸出結(jié)果是#include<stdio.h>inta[3][3]={1,2,3,4,5,6,7,8,9,},*p;main(){p=(int*)malloc(sizeof(int));f(p,a);printf("%d\n”,*p);free(p);}f(int*s,intp[][3]){*s=p[1][1];}
A.1B.4C.7D.5
53.有以下程序:#include<stdio.h>#include<string.h>main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}程序運行后的輸出結(jié)果是()。
A.22B.76C.72D.62
54.有以下程序:main(){chark;inti;for(i=1;i<3;i++){scanf("%c",&k);switch(k){case'0':printf("another\n");case'1':printf("number\n");}}}程序運行時,從鍵盤輸入:01<回車>,程序執(zhí)行后的輸出結(jié)果是
A.anothernumber
B.anothernumberanother
C.anothernumbernumber
D.numbernumber
55.算法的有窮性是指A.算法程序的運行時間是有限的
B.算法程序所處理的數(shù)據(jù)量是有限的
C.算法程序的長度是有限的
D.算法只能被有限的用戶使用
56.以下4組用戶定義標(biāo)識符中,全部合法的一組是
A.mainencludesin
B.If-maxturbo
C.txtREAL3COM
D.int12_001
57.設(shè)a、b、C、d、m、n均為int型變量,且a=5、b=6、c=7、d=8、m=2、n=2,則邏輯表達(dá)式(m==a>b)&&(n=c>d)運算后,n的值為______。
A.0B.1C.2D.3
58.以下敘述中錯誤的是()。
A.對于double類型數(shù)組,不可以直接用數(shù)組名對數(shù)組進(jìn)行整體輸入或輸出
B.數(shù)組名代表的是數(shù)組所占存儲區(qū)的首地址,其值不可改變
C.當(dāng)程序執(zhí)行中,數(shù)組元素的下標(biāo)超出所定義的下標(biāo)范圍時,系統(tǒng)將給出“下標(biāo)越界”的出錯信息
D.可以通過賦初值的方式確定數(shù)組元素的個數(shù)
59.下列關(guān)于函數(shù)的敘述中正確的是()。A.A.每個函數(shù)都可以被其他函數(shù)調(diào)用(包括main函數(shù))
B.每個函數(shù)都可以被單獨編譯
C.每個函數(shù)都可以單獨運行
D.在一個函數(shù)內(nèi)部可以定義另一個函數(shù)
60.設(shè)有以下定義:inta[3][3]={1,2,3,4,5,6,7,8,9};int(*Ptr)[3]=a,*p=a[0];則下列能夠正確表示數(shù)組元素a[1][2]的表達(dá)式是_______。
A.*((*ptr+1)[2])B.*(*(p+5))C.(*ptr+1)+2D.*(*(a+1)+2)
四、選擇題(20題)61.
執(zhí)行下列程序中的輸出語句后,a的值是()。
main
{inta;
printf("%d\n",(a=2*3,a*5,a+7));
}
A.17B.37C.6D.13
62.下列鏈表中,其邏輯結(jié)構(gòu)屬于非線性結(jié)構(gòu)的是()0、
A.雙向鏈表
B.帶鏈的棧
C.二叉鏈表
D.循環(huán)鏈表
63.
64.以下程序的輸出結(jié)果是()。main{inta[3][3]=“l(fā),2),{3,4),{5,6)},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf(”%d\n”,s);}A.18B.19C.20D.21
65.設(shè)fp為指向某二進(jìn)制文件的指針,且已讀到此文件末尾,則函數(shù).feof(fp)的返回值為()
66.數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)之間的關(guān)系是()。
A.數(shù)據(jù)庫包括數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)
B.數(shù)據(jù)庫系統(tǒng)包括數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)
C.數(shù)據(jù)庫管理系統(tǒng)包括數(shù)據(jù)庫和數(shù)據(jù)庫系統(tǒng)
D.三者沒有明顯的包含關(guān)系
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.下列選項中不符合良好程序設(shè)計風(fēng)格的是()。
A.數(shù)據(jù)說明的次序要規(guī)范化
B.程序中要有必要的注釋
C.對所有輸入的數(shù)據(jù)都要進(jìn)行檢查,確保數(shù)據(jù)的合法性
D.程序的效率第一,清晰第二
77.有以下程序,程序中庫函數(shù)islower(ch)用以判斷ch中的字母是否為小寫字母:
程序運行后的輸出結(jié)果是()。
A.abcdEFg!B.AbCdEFg!C.abcdEFG!D.aBcDEFG!
78.設(shè)有以下程序段:
structMP3
{charname[20];
charcolor;
floatprice;
}std,*ptr;
ptr=&std:
若要引用結(jié)構(gòu)體變量std中的color成員,寫法錯誤的是()。
A.std.color
B.ptr->color
C.std->color
D.(*ptr)color
79.
80.若有定義語句:
charS[10]=”1234567\0\0”;則strlen(s)的值是()。
A.7B.8C.9D.10
五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun的功能是:將s所指字符串的正序和反序進(jìn)行連接,形成的新串放在t所指的數(shù)組中。例如,當(dāng)S所指字符串為“ABCD”時,t所指字符串中的內(nèi)容應(yīng)為“ABCDDCBA”。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾析下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫一個函數(shù)fun(),它的功能是將ss所指字符串中所有下標(biāo)為奇數(shù)的字母轉(zhuǎn)換為大寫字母(若該位置上不是字母,則不轉(zhuǎn)換)。例如,若輸入“abc4Efg”,則應(yīng)輸出“aBc4EFg”。注意:部分源程序在文件prog1.c中。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:
參考答案
1.D【解析】算法的空間復(fù)雜度是指執(zhí)行這個算法所需要的內(nèi)存空間。一個算法所占用的存儲空間包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲空間以及算法執(zhí)行中所需要的額外空間。其中額外空間包括算法程序執(zhí)行過程中的工作單元以及某種數(shù)據(jù)結(jié)構(gòu)所需要的附加存儲空間。如果額外空間量相對于問題規(guī)模來說是常數(shù),則稱該算法是原地工作的。在許多實際問題中,為了減少算法所占的存儲空間,通常采用壓縮存儲技術(shù),以便盡量減少不必要的額外空間。
2.B關(guān)系具有以下7個性質(zhì)。①元組個數(shù)有限性:二維表中元組的個數(shù)是有限的。②元組的唯一性:二維表中任意兩個元組不能完全相同。③元組的次序無關(guān)性:二維表中元組的次序,即行的次序可以任意交換。④元組分量的原子性:二維表中元組的分量是不可分割的基本數(shù)據(jù)項。⑤屬性名唯一性:二維表中不同的屬性要有不同的屬性名。⑥屬性的次序無關(guān)性.二維表中屬性的次序可以任意交換。⑦分量值域的同一性:二維表屬性的分量具有與該屬性相同的值域,或者說列是同質(zhì)的。滿足以上7個性質(zhì)的二維表稱為關(guān)系,以二維表為基本結(jié)構(gòu)所建立的模型稱為關(guān)系模型。本題答案為B選項。
3.A解析:解答本題需了解3個知識點:①標(biāo)識符是由字母、數(shù)字或下劃線組成,并且它的第一個字符必須是字母或者下劃線;②do是C語言中的一個關(guān)鍵字,不能再用做變量名和函數(shù)名;③C語言規(guī)定,指數(shù)形式的實型常量e或E后面的指數(shù)必須是整數(shù)。
4.B
5.B
6.A解析:本題考查C語言的綜合基礎(chǔ)知識。構(gòu)成C程序的基本單位是函數(shù),一個C程序總是從main函數(shù)開始執(zhí)行,而不論main函數(shù)在整個程序中的位置如何。C語言的函數(shù)定義都是互相平行、獨立的,在定義函數(shù)時,一個函數(shù)內(nèi)不能定義另一個函數(shù)。C函數(shù)定義的一般格式有兩種:傳統(tǒng)格式和現(xiàn)代格式。傳統(tǒng)格式也稱K&R格式,是早期編譯系統(tǒng)使用的格式;現(xiàn)代格式又稱ANSI格式,是現(xiàn)代編譯系統(tǒng)使用的格式。
7.C
8.B此題考查簡單的循環(huán),當(dāng)執(zhí)行n=fun(3),則函數(shù)fun執(zhí)行3次。
9.Dputchar函數(shù)的功能是輸出一個字符,由whlie判斷條件和ch初始值可知,只要“ch≠‘A’”,執(zhí)行兩次putchar函數(shù),否則跳出循環(huán)。第1次輸出“CD”,第2次輸出“BC”,第3次輸出“A”后跳出循環(huán)。故本題答案為D選項。
10.A
11.B
12.B解析:本題考查的是指針的簡單應(yīng)用。題目中首先定義了一個int型數(shù)組a并初始化了,然后定義了兩個指針變量p和q,并分別初始化p為指向數(shù)組元素a[3]、q指向p后面的第2個元素即指向a[5]。所以最終輸出的值為a[3]+a[5]的值10。應(yīng)該選B。
13.A
14.D
15.D解析:主要考查運算符的優(yōu)先級。sizeof的優(yōu)先級最高,后面的順序是:%、<<、>,優(yōu)先級最低的是“=”。
16.B
17.A本題綜合考查字符數(shù)組的賦值和strcpy函數(shù)的用法。C語言不允許用賦值表達(dá)式對字符數(shù)組賦值,如下面的語句就是非法的:str1='China',如果想把“China”這5個字符放到數(shù)組str1中,除了逐個輸入外,還能使用strcpy函數(shù),該函數(shù)的功能是將一個字符串復(fù)制到一字符數(shù)組中。例如,strcpy(str1,'China');或strcpy(str1,str2);注意,不能企圖用以下語句來實行賦值(將str2的值傳給str1):str1=str2;不能用賦值語句將一個字符串常量或字符數(shù)組直接給一個字符數(shù)組。
strcpy函數(shù)的結(jié)構(gòu)是:strcpy(字符數(shù)組1,字符串2)
其中,需要注意的是,字符數(shù)組1的長度不應(yīng)小于字符串2的長度,“字符數(shù)組1”必須寫成數(shù)組名形式,如(str1),“字符串2”可以是字符數(shù)組名,也可以是字符串常量,不能用賦值語句將一個字符串常量或字符數(shù)組直接給一個字符數(shù)組。
18.B解析:sizeof函數(shù)是取變量所占的存儲空間的字節(jié)數(shù),標(biāo)識a代表常量121;constb=12;,其中數(shù)據(jù)類型可以缺省,默認(rèn)為整型;enumc{a1,a2};定義了—個枚舉類型enumc,a1,a2為枚舉元素,在C編譯時,對枚舉元素按常量處理,它們的值按定義順序依次為0,1。因此它們的字節(jié)數(shù)均為2,2,2。
19.C
20.A本題考查數(shù)據(jù)結(jié)構(gòu)中二叉樹的性質(zhì)。二叉樹滿足如下一條性質(zhì),即:對任意一棵二叉樹,若終端結(jié)點(即葉子結(jié)點)數(shù)為n0,而其度數(shù)為2的結(jié)點數(shù)為n2,則n0=n2+l。根據(jù)這條性質(zhì)可知,若二叉樹中有70個葉子結(jié)點,則其度為2的結(jié)點數(shù)為70-1,即69個。二叉樹的總結(jié)點數(shù)是度為2、度為1和葉子結(jié)點的總和,因此,題目中的二叉樹總結(jié)點數(shù)為69+80+70,即219。因此,本題的正確答案是選項A。
21.44解析:將程序中所有的宏替換掉可得:M=2+1,K=2+1*2+1/2=4,所以for循環(huán)共循環(huán)了K-1+1次,即4-1+1共4次。
解析:本題,已知結(jié)果z=16.00,即16.0=a/2+b*x/y+1/2,分別把a、b,代入,得到16.0=9/2+2*x/1.1+1/2。因為a=9,a是整型,所以9/2的值在沒有進(jìn)行類型轉(zhuǎn)換時,等于4,1/2同理,等于0。代入求一元一次方程,很容易就可以得出x=6.6。
23.XX解析:主函數(shù)中首先定義了一個字符型變量c,接著執(zhí)行下面while語句,在while循環(huán)中,首先從鍵盤上讀入一個字符Y并給賦給字符變量c,賦值表達(dá)式的值不為'?',執(zhí)行輸出語句,輸出字符X。接著判斷while中的循環(huán)條件,讀入一個字符'?'并賦值給c,賦值表達(dá)式的值為'?'循環(huán)條件不再滿足,退出循環(huán)。
24.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本題要求將字符串str中的字符用冒泡排序算法從大到小排列,其實現(xiàn)過程是將相鄰兩個字詞進(jìn)行比較,如果當(dāng)前字符小于下一個字符,則通過中間變量temp將字符兩兩交換,所以第一空應(yīng)填:str[i],第二空應(yīng)填:str[i+1]。最終打印輸出得到的字符串str,所以第三空應(yīng)填:'%s',str。
25.6060解析:程序中定義a是一個3行2列的二維數(shù)組,p是指向兩個元素的一維數(shù)組指針,并讓p指向二維數(shù)組a的首行。則代碼*(*(p+2)+1)中的p+2指向二維數(shù)組a的第三行a[2],*(p+2)指向a[2[]0],*(p+2)+1指向a[2][1],*(*(p+2)+1)是引用a[2][1],其值是60。
26.strcurlist*strucrlist*return(h)
27.本題考查的重點是scanf函數(shù)的調(diào)用。scanf(“<格式化字符串>”,<地址表>),格式化字符串后可以加上場寬,本題中兩個變量的場寬都為2,所以輸入1234567<CR>后,變量a的值為12。變址b的值為34,從而輸出為1234。\r\n\r\n
28.從定義到本源文件結(jié)束從定義到本源文件結(jié)束解析:C語言規(guī)定,宏名的有效范圍為從定義宏到本源程序結(jié)束。
29.存儲結(jié)構(gòu)
30.層次模型用樹型結(jié)構(gòu)表示實體類型及實體間聯(lián)系的數(shù)據(jù)模型稱為層次模型,用有向圖結(jié)構(gòu)表示實體類型及實體間聯(lián)系的數(shù)據(jù)模型稱為網(wǎng)狀模型,用二維表格結(jié)構(gòu)表示實體及其聯(lián)系的數(shù)據(jù)模型稱為關(guān)系模型。
31.611610。6,11,6,10。解析:本題考查自加的前置和后置的區(qū)別。
32.概念(或概念級)概念(或概念級)
33.空間空間解析:算法的復(fù)雜度主要包括時間復(fù)雜度和空間復(fù)雜度。所謂算法的時間復(fù)雜度,是指執(zhí)行算法所需要的計算工作量。一個算法的空間復(fù)雜度,一般是指執(zhí)行這個算法所需要的內(nèi)存空間。
34./**//**/解析:C語言程序的注釋可以出現(xiàn)在程序基本單詞之間的任何地方,C語言程序的注釋以“/*”作為開始標(biāo)記,并以“*/”作為結(jié)束標(biāo)記。
35.有窮性有窮性
36.x=11x=11解析:在對無符號數(shù)的右移是高位補0。
37.continuecontinue解析:continue語句只是結(jié)束本次循環(huán),然后進(jìn)行循環(huán)的條件判定。break語句是終止整個循環(huán)的執(zhí)行,不再進(jìn)行條件判定。
38.a[i][j]+b[i][j]a[i][j]+b[i][j]解析:求兩個矩陣的和只要將對應(yīng)元素相加即可。
39.333,3解析:本題在while(n++<=1)語句后,直接加了分號,說明如果while()的條件為真時,該循環(huán)什么都不做;n++是先取n的當(dāng)前值和I做比較,然后再將n加1。第一次循環(huán),n=0時,循環(huán)條件n++=0<=1成立,執(zhí)行循環(huán),然后得到n=1。第二次循環(huán),n=1時,循環(huán)條件n++=1<=1成立,執(zhí)行循環(huán),然后得到n=2。第三次循環(huán),n=2時,循環(huán)條件n++=2<=1不成立,不執(zhí)行循環(huán),但在判斷循環(huán)條件時仍將n加1,得到n=3。退出循環(huán)后執(zhí)行printf語句,第二個printf語句輸出n++,是先輸出n的當(dāng)前值3,然后再將n加1,即程序結(jié)束后得到n=4,但輸出的是3。
40.11<CR>23<CR>5(<CR代表換行)11<CR>23<CR>5(<CR,代表換行)解析:本題通過語句“for(i=2;i<5;i++)a[i]=a[i-2]+a[i-];”將數(shù)組中前面兩項的和賦值給數(shù)組當(dāng)前元素,得到a的值應(yīng)為(1,1,2,3,5)。語句if(i%2==0)pfintf('\\n')是要將數(shù)組中的元素以每行2個的形式輸出。
41.A解析:本題考查while語句和if語句的嵌套,程序段實現(xiàn)的功能是將p[1]至p[7]中的奇數(shù)相加求和并輸出,j=13+15+17=45。
42.BB)【解析】程序設(shè)計語言僅僅使用順序、選擇和重復(fù)(循環(huán))三種基本控制結(jié)構(gòu)就足以表達(dá)出各種其他形式結(jié)構(gòu)的程序設(shè)計方法。遵循程序結(jié)構(gòu)化的設(shè)計原則,按結(jié)構(gòu)化程序設(shè)計方法設(shè)計出的程序易于理解、使用和維護(hù);可以提高編程工作的效率,降低軟件的開發(fā)成本。
43.B解析:棧是限定在二端進(jìn)行插入與刪除的線性表。在棧中,允許插入與刪除的一端稱為棧頂,而不允許插入與刪除的另一端稱為棧底。棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素,即棧是按照“先進(jìn)后出”或“后進(jìn)先出”的原則組織數(shù)據(jù)的。注意:隊列組織數(shù)據(jù)的原則是“先進(jìn)先出”或“后進(jìn)后出”。注意:數(shù)據(jù)結(jié)構(gòu)中,棧和隊列組織數(shù)據(jù)的原則。
44.C
45.C解析:在C語言中,對于返回值是其他類型的函數(shù),若把函數(shù)定義放在調(diào)用之后,應(yīng)該在調(diào)用之前對函數(shù)進(jìn)行說明,或稱為函數(shù)原型說明。函數(shù)說明句中的類型必須與函數(shù)返回類型一致,函數(shù)說明可以是一條獨立的語句,也可以與普通變量一起出現(xiàn)在同一個語句中。對于函數(shù)值為整型的函數(shù)的說明,prt_char中定義時是void類型,那天返回值與k=prt_char();矛盾。所以本題的錯誤之處在于“函數(shù)說明和函數(shù)調(diào)用語句之間有矛盾?!?/p>
46.D解析:在整個程序運行期間,靜態(tài)局部變量在內(nèi)存的靜態(tài)存儲區(qū)中占據(jù)著永久的存儲單元,即使退出函數(shù)以后,下次再進(jìn)入該函數(shù)時,靜態(tài)局部變量仍使用原來的存儲單元,靜態(tài)局部變量的初值是在編譯的時候賦予的,在程序執(zhí)行期間不再賦予初值。本題由于連續(xù)三次調(diào)用函數(shù)fun(),三次對靜態(tài)變量x進(jìn)行操作,x的值應(yīng)依次為6,7,8。
47.C解析:先看sort()函數(shù),它沒有返回值,有兩個參數(shù),一個int型數(shù)組和一個int型變量。在函數(shù)中是一個二重循環(huán),外循環(huán)變量i從0遞增到n-2,內(nèi)循環(huán)變量j從i+1遞增到n-1。內(nèi)循環(huán)體是一條if語句“如果a[i]<a[j]就把兩個值交換”。這是一個典型的從大到小選擇排序算法,排序的范圍是a[0]~a[n-1],一共n個數(shù)排序,主函數(shù)中定義了一個數(shù)組aa[10],然后調(diào)用sort(aa+2,5);的意思是將aa[2]~aa[6]范圍的5個數(shù)據(jù)從大到小排序。所以排序以后數(shù)組aa[10]的內(nèi)容是1,2,7,6,5,4,3,8,9,10。故應(yīng)該選擇C。
48.A解析:函數(shù)f()的作用是形參a為偶數(shù)的時候返回0,主函數(shù)中首先定義了一個長度為8的一維數(shù)組,然后給它賦初值使得s[0]=1、s[1]=3、s[2]=5、s[3]=2、s[4]=4、s[5]=6。其他沒有賦值的數(shù)組元素將自動賦值為0。for循環(huán)中,當(dāng)s[i]不為偶數(shù)的時,將s[i]相加,即當(dāng)i=3時,s[i]=2為偶數(shù),退出循環(huán),此時d的值為d=s[0]+s[1]+s[2]=1+3+5=9,因此最后輸出的d的值為9。
49.B解析:本題中,a[1][2]是二維數(shù)組中的第6個元素,對應(yīng)for循環(huán)中i的值為5,p[5]=5+1。
50.A解析:轉(zhuǎn)文字符常量'\\xx'可以把'\\'后面的數(shù)字轉(zhuǎn)換為對應(yīng)的ASCII字符。
51.A解析:在程序中先用表達(dá)式將宏替換掉,則輸出語句中的表達(dá)式為(a++)*(b++),而a++的值為3,b++的值為4。因此最后的值為3*4=12。
52.D解析:本題考查了二維數(shù)組元素引用的方法。題中用動態(tài)存儲分配函數(shù)malloc分配了一個int型數(shù)據(jù)長度大小的內(nèi)存,然后指針p指向了這段內(nèi)存,函數(shù)f()中對p所指向的數(shù)據(jù)進(jìn)行了賦值,p[1][1]為二維數(shù)組第二行第二列的元素,對應(yīng)于實參a的元素5,所以輸出結(jié)果為5。
53.C解析:C語言.中以,'\\0'作為字符串的結(jié)束符,且strlen函數(shù)計算的是,'\\0',字符前的所有字符的個數(shù),故本題中strlen(a)應(yīng)為2。數(shù)組定義以后系統(tǒng)就為其分配相應(yīng)大小的內(nèi)存空間,而不論其中有沒有內(nèi)容。sizeof運算符是計算變量或數(shù)組所分配到的內(nèi)存空間的大小,所以本題的sizeof(a)為7。
54.C解析:switch語句的執(zhí)行過程是:在switch后面的表達(dá)式的值和case后面常量表達(dá)式的值吻合時,就執(zhí)行后面的語句.如果在該語句的后面沒有break語句,則繼續(xù)執(zhí)行下一個case,直到遇到break語句或switch多分支的結(jié)束,在switch語句中,break語句的作用是使流程跳出switch結(jié)構(gòu),終止Switch語句的執(zhí)行.本題中在for循環(huán)中嵌套了swish語句,每循環(huán)一次通過scanf()函數(shù)從鍵盤上輸入一個k值,然后執(zhí)行switch語句。for循環(huán)共循環(huán)了2次,當(dāng)i=1時,從鍵盤上輸入0,使得k的值為0,執(zhí)行switch語句中case:0后面的語句,輸出another,接著執(zhí)行case:0下面的語句輸出number,退出switch語句,當(dāng)i=2時,從鍵盤上輸入1,使得k的值為1,執(zhí)行switch語句中case1后面的語句,輸出number,退出switch語句.當(dāng)i=3時退出循環(huán).故最后的輸出為another、number和number,所以,4個選項中選項C符合題意。
55.A算法的有窮性,是指算法必須能在有限的時間內(nèi)做完,即算法必須能在執(zhí)行有限個步驟之后終止。
56.A解析:標(biāo)識符是以字母或下劃線開頭,由字母、數(shù)字或下劃線組成的字符序列{例如,-max含非法字符-),并且用戶標(biāo)識符不能與C語言中的32個關(guān)鍵字同名(例如,int是關(guān)鍵字,不是合法的用戶標(biāo)識符)。選項B中-max不是字母、數(shù)字或下劃線組成的字符序列,故選項B不正確;選項C中3COM不是由字母或下劃線開頭,故選項C不正確;選項D中int為C語言中的關(guān)鍵字,故選項D不正確;選項A中全部為合法的標(biāo)識符,所以,4個選項中選項A符合題意。
57.A解析:C語言中比較表達(dá)式的運算結(jié)果為0或1。0代表不成立,1表示成立。
58.C解析:在C語言中,除字符數(shù)組外,一個數(shù)組不能通過數(shù)組名對數(shù)姐進(jìn)行整體引用,因此選項A是對的。數(shù)組名中存放的是一個地址常量,它代表整個數(shù)組的首地址,因此選項B是對的。C語言程序在運行過程中,系統(tǒng)不自動檢驗數(shù)組元素的下標(biāo)是否越界,因此選項C是錯誤的。C語官規(guī)定可以通過賦初值來定義數(shù)組的大小,這時數(shù)組說明符的一對方括號中可以不指定數(shù)組的大小,因此選項D也是正確的。所以,4個選項中選項C符合題意。
59.B在C語言中,函數(shù)定義是平行的,函數(shù)不能嵌套定義,即函數(shù)之間沒有從屬關(guān)系。雖然函數(shù)之間可以
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年秋學(xué)??倓?wù)后勤工作計劃
- 2025年春季學(xué)期安全工作計劃范文
- 2025年秘書處工作計劃模板
- 2025年教學(xué)部門個人個人工作計劃
- 2025年度渠道銷售工作計劃表銷售工作計劃
- 止咳化痰類藥物相關(guān)行業(yè)投資規(guī)劃報告
- 交通運輸行業(yè)衛(wèi)生檢查
- 深化員工專業(yè)技能
- 2025年學(xué)期活動工作計劃工作計劃范文
- 財務(wù)報表編制與分析總結(jié)
- 2023-2024學(xué)年上海市普陀區(qū)三年級(上)期末數(shù)學(xué)試卷
- 小班班本課程《吃飯這件小事》
- 東風(fēng)7C型(DF7C)內(nèi)燃機車
- 標(biāo)桿房企人力資源體系研究之龍湖
- 規(guī)則大副貨運知識點
- 《2022年上海市初中語文課程終結(jié)性評價指南》中規(guī)定的150個文言實詞
- 關(guān)于轉(zhuǎn)發(fā)《關(guān)于進(jìn)一步加強少先隊輔導(dǎo)員隊伍建設(shè)的若干意見》的通知
- 愛麗絲夢游仙境話劇中英文劇本(共6頁)
- 書法少年宮活動記錄
- 鐵路橋梁鋼結(jié)構(gòu)設(shè)計規(guī)范(TB100022--99)修訂簡介
- 水文氣象報告
評論
0/150
提交評論