




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2021年江西省吉安市全國計算機等級考試C語言程序設(shè)計知識點匯總卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.設(shè)x、y和z是int型變量,且x=4,y=6,z=8,則下列表達式中值為0的是()。
A.x&&yB.x<=yC.x||++y&&y-zD.!(x<y&&!z||1
2.以下敘述中正確的是
A.用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作
B.用C程序?qū)崿F(xiàn)的算法可以沒有輸出但必須要有輸入
C.用C程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出
D.用C程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出
3.隊和棧的主要區(qū)別是________
A.邏輯結(jié)構(gòu)不同B.存儲結(jié)構(gòu)不同C.所包含的運算個數(shù)不同D.限定插入和刪除的位置不同
4.下列程序的輸出結(jié)果是()。main{inta,b,d=25;a=d/10%9;b=a&&(一1);printf("%d,%d\n",a,b);}A.6,1B.2,1C.6,0D.2,0
5.有以下程序:#include<stdio.h>main(){intx=8;for(;x>0;x--){ if(x%3) { printf(“%”d,x--); continue; }printf(“%d,”,--x);}}程序的運行結(jié)果是()。
A.7,4,2,B.8,7,5,2,C.9,7,6,4,D.8,5,4,2,
6.若果要求一個線性表既能較快查找,又能適應(yīng)動態(tài)變化的要求,可以采用()查找方法。
A.分塊B.順序C.二分D.散列
7.以下敘述中正確的是()。
A.用C語言編寫的程序只能放在一個程序文件中
B.C語言程序書寫格式嚴格,要求一行內(nèi)只能寫一個語句
C.C語言程序中的注釋只能出現(xiàn)在程序的開始位置和語句的后面
D.C語言程序書寫格式自由,一個語句可以寫在多行上
8.設(shè)有定義:intn=0,*p=&n,**q=&p;則以下選項中,正確的賦值語句是()A.p=1;B.*q=2;C.q=p;D.*p=5;
9.以下選項中與“(!a==0)”的邏輯值不等價的表達式是()。
A.(a==!0)B.aC.(a>0||a<0)D.(a!=0)
10.已定義以下函數(shù)fun(char*p2,char*p1){while((*p2=*p1)!='0'){P1++;p2++;}}函數(shù)的功能是
A.將p1所指字符串復(fù)制到p2所指內(nèi)存空間
B.將P1所指字符串的地址賦給指針p2
C.對p1和p2兩個指針所指字符串進行比較
D.檢查P1和p2兩個指針所指字符串中是否有'\0'
11.有以下程序:#include<stdio.h>main{shortC=124;C=C_;printf("%d\n",c);}若要使程序的運行結(jié)果為248,應(yīng)在下劃線處填入的是()。A.>>2B.|248C.&0248D.<<1
12.假設(shè)線性表的長度為n,則在最壞情況下,冒泡排序需要的比較次數(shù)為
A.log2nB.n2C.O(n1.5)D.n(n-1)/2
13.線性表L=(a1,a2,a3,…ai,…an),下列說法正確的是()
A.每個元素都有一個直接前件和直接后件
B.線性表中至少要有一個元素
C.表中諸元素的排列順序必須是由小到大或由大到小
D.除第一個元素和最后一個元素外,其余每個元素都有一個且只有一個直接前件和直接后件
14.在以下給出的表達式中,與“while(E)”中的“(E)”不等價的表達式是()。
A.(E>0||E<0)B.(E==0)C.(!E==0)D.(E!=0)
15.下面程序的輸出結(jié)果是()。#include<stdio.h>intm=13;intfun2(intx,inty){intm=3;return(x*y-m);}main(){inta=7,b=5;printf("%d\n",fun2(a,b)/m);}
A.1B.2C.7D.10
16.程序運行后的輸出結(jié)果是()。#include<stdio.h>#include<stdlib.h>main(){int*a,*b,*c;a=b=c(int*)malloc(sizeof(int));*a=1;*b=2;*c=3;a=b;printf(“%d,%d,%d\n”,*a,*b,*c);}A.1.1.3B.2.2.3C.1.2.3D.3.3.3
17.
18.有以下程序main(){intp[7]={11,13,14,15,16,17,18},i=0,k=0;while(i<7&&p[i]%2){k=k+p[i];i++;}printf("%d\n",k);}執(zhí)行后輸出結(jié)果是
A.58B.56C.45D.24
19.若有定義:inta,b;,通過語句scanf("%d;%d",&a,&b);,能把整數(shù)3賦給變量a,5賦給變量b的輸入數(shù)據(jù)是A.A.35B.3,5C.3;5D.35
20.以下敘述中正確的是()。
A.局部變量說明為static存儲類,其生存期將得到延長
B.全局變量說明為static存儲類,其作用域?qū)⒈粩U大
C.任何存儲類的變量在未賦初值時,其值都是不確定的
D.形參可以使用的存儲類說明符與局部變量完全相同
二、2.填空題(20題)21.設(shè)i,j,k均為int型變量,則執(zhí)行完下面的for語句后,k的值為【】。
for(i=0,j=10;i<=j;i++,j--)k=i+j;
22.以下程序運行后的輸出結(jié)果是【】。
main()
{chars[]="9876",*p;
for(p=s;p<s+2;p++)printf("%s\n",p);
}
23.有以下定義和語句,則sizeof(a)的值是【】,而sizeof(a.share)的值是【】。
structdate
{intday;
intmouth;
intyear;
union{intshare1;
floatshare2;
}share;
}a;
24.在程序設(shè)計階段應(yīng)該采取______和逐步求精的方法,把一個模塊的功能逐步分解,細化為一系列具體的步驟,繼而用某種程序設(shè)計語言寫成程序。
25.有以下程序
main()
{intt=1,i=5;
for(;i>=0;i--)t*=i;
printf("%d\n",t);
}
執(zhí)行后輸出結(jié)果是______。
26.以下程序的輸出結(jié)果是【】。
#include<stdlib.h>
main()
{char*s1,*s2,m;
s1=s2=(char*)malloc(sizeof(char));
*s1=15;*s2=20;m=*s1+*s2;
printf("%d\n",m);
}
27.以下程序中,fun函數(shù)的功能是求3行4列二維數(shù)組每行元素的最大值。請?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(i=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];
______=X;
}
}
28.深度為5的滿二叉樹中,葉子結(jié)點的個數(shù)為______。
29.以下程序給指針p分配三個double型動態(tài)內(nèi)存單元,請?zhí)羁铡?/p>
#include<stdio.h>
#include<stdlib.h>
main()
{double*p;
p=(double*)malloc(【】);
p[0]=1.5;p[1]=2.5;P[2]=3.5;
printf("%f%f%f\n",p[0],p[1],p[2]);
}
30.下面程序的功能是輸出數(shù)組s中最大元素的下標,請?zhí)羁铡?/p>
main()
{intk,p,s[]={1,-9,7,2,-10,3};
for(p=0,k=p;p<6;p++)
if(s[p]>s[k])【】
printf("%d\n",k);}
31.下列程序的運行結(jié)果是______。
#include<stdio.h>
func(a,b)
{staticintm=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
main()
{intk=5,m=3,p;
p=fune(k,m);
printf("%d",p);
p=func(k,m);
printf("%d\n",p);
}
32.以下程序運行后輸入3,abcde<回車>,則輸出結(jié)果是【】。
#include<string.h>
move(char*str,intn)
{chartemp;inti;
temp=str[n-1];
for(i=n-1;i>0;i--)str[i]=str[i-1];
str[0]=temp;
}
main()
{chars[50];intn,i,z;
scanf("%d,%s",&n,s);
z=strlen(S);
for(i=1;i<=n;i++)move(s,z);
printf("%s\n",s);
}
33.以下程序的輸出結(jié)果是【】。
#include<string.h>
main()
{printf("%d\n",strlen("IBM\n012\1\\"));}
34.語句:x++;、++x;、x=x+1;、x=1+x;,執(zhí)行后都使變量x中的值增1,請寫出一條同一功能的賦值語句(不得與列舉的相同)【】。
35.下列程序段中循環(huán)體的執(zhí)行次數(shù)是______。
a=15;
b=0;
do{b+=2;a-=2+b;}while(a>=0);
36.軟件測試中路徑覆蓋測試是整個測試的基礎(chǔ),它是對軟件【】進行測試。
37.需求分析的最終結(jié)果是產(chǎn)生【】。
38.結(jié)構(gòu)化程序設(shè)計的3種基本結(jié)構(gòu)分別是順序、選擇和______。
39.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{inta[5]={2,4,6,8,10},*p;
p=a;p++;
printf("%d",*p);
}
40.若有定義inta[4][4]={{1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},則初始化后,a[1][1]得到的初值是______。
三、1.選擇題(20題)41.有以下程序:#include<stdio,h>main(){chara1='M',a2='m';printf("%c\n",(a1,a2));}以下敘述中正確的是()。
A.程序輸出大寫字母MB.程序輸出小寫字母mC.格式說明符不足,編譯出錯D.程序運行時產(chǎn)生出錯信息
42.下列關(guān)于switch語句和break語句的結(jié)論中,正確的是
A.break語句是switch語句中的一部分
B.在switch語句中可以根據(jù)需要使用或不使用break句
C.在switch語句中必須使用break語句
D.以上三個結(jié)論中有兩個是正確的
43.下列程序的輸出結(jié)果是()。
main
{
doubled=3.2;intx,y;
x=1.2;y=(x+3.8)/5.0;
printf("%d\n",d*y);
}
A.3B.3.2C.0D.3.07
44.以下程序的功能是進行位運算:main(){unsignedchara,b;a=7^3;b=~4&3;printf("%d%d\n",a,b);}程序運行后的輸出結(jié)果是______。
A.43B.73C.70D.40
45.下列程序執(zhí)行后的輸出結(jié)果是()。#include<stdio.h>#include<string.h>main(){chararr[2][4];strcpy(arr[0],"you");strcpy(arr[1],"me");arr[0][3]='&';Printf("%s\n",arr);}
A.you&meB.youC.meD.err
46.下列選項中不屬于軟件生命周期開發(fā)階段任務(wù)的是()。
A.軟件測試B.概要設(shè)計C.軟件維護D.詳細設(shè)計
47.若有如下程序;main(){intm=-i;printf("%d,%u,%o,%X",m,m,m,m);}則程序運行后的輸出結(jié)果是()。
A.-1,65535,177777,ffff
B.-1,-1,177777,fffe
C.-1,1,177777,ffff
D.-1,65535,177776,fffe
48.有下列函數(shù):intfun(char*s){char*t=s;while(*t++);reurn(t-s);}該函數(shù)的功能是()。
A.比較兩個字符串的大小
B.計算s所指字符串占用內(nèi)存字節(jié)的個數(shù)
C.計算s所指字符串的長度
D.將s所指字符串復(fù)制到字符串t中
49.將E-R圖轉(zhuǎn)換到關(guān)系模式時,實體與聯(lián)系都可以表示成________。
A.屬性B.關(guān)系C.鍵D.域
50.以下數(shù)據(jù)結(jié)構(gòu)屬于非線性數(shù)據(jù)結(jié)構(gòu)的是_______。
A.隊列B.線性表C.二叉樹D.棧
51.以下程序的功能是進行位運算:main(){unsignedchara,b;a=7^3;b=~4&3;printf("%d%d\n",a,B);}程序運行后的輸出結(jié)果是()。
A.43B.73C.70D.40
52.已知字母A的ASCII代碼值為65,若變量kk為char型,以下不能正確判斷出kk中的值為大寫字母的表達式是
A.kk>='A'&&kk<='Z'
B.!(kk>='A'||kk<="Z")
C.(kk+32)>='a'&&(kk+32)<='Z'
D.isalpha(kk)&&(kk<91)
53.下列敘述中錯誤的是()。
A.一個C語言程序只能實現(xiàn)一種算法
B.c程序可以由多個程序文件組成
C.C程序可以由一個或多個函數(shù)組成
D.一個c函數(shù)可以單獨作為一個C程序文件存在
54.為了使模塊盡可能獨立,要求()。
A.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強
B.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱
C.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱
D.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強
55.有以下程序:main(){inti;for(i=1,i<=40;i++){if(i++%5==0)if(++i%8==0)printf("%d",i);}printf("\n");}執(zhí)行后的輸出結(jié)果是()。
A.5B.24C.32D.40
56.以下選項中,不能正確賦值的是()
A.charsl[10];sl="Ctest";
B.chars2[]={'C','t','e','s','t',}
C.chars3[20]="Ctest";
D.char*s[4]="Ctest\n";
57.以下不合法的數(shù)值常量是()。
A.11B.lelC.8.0E0.5D.0xabcd
58.C語言程序的基本單位是______。
A.程序行B.語句C.函數(shù)D.字符
59.設(shè)有下列二叉樹:
對此二叉樹中序遍歷的結(jié)果為______。
A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
60.若有以下定義和語句()intu=010,v=Ox10,w=10;printf("%d,%d%d\n",u,v,w);則輸出結(jié)果是
A.8,16,10B.10,10,10C.8,8,10D.8,10,10
四、選擇題(20題)61.C語言可執(zhí)行程序的開始執(zhí)行點是()。
A.包含文件中的第一個函數(shù)B.程序中第一個函數(shù)C.程序中的main()函數(shù)D.程序中第一條語句
62.以下所列的C語言常量中,錯誤的是()。
A.0xFFB.1.2e0.5C.2LD.‘72’
63.最常用的一種基本數(shù)據(jù)模型是關(guān)系數(shù)據(jù)模型,對于它的表示應(yīng)采用
A.樹B.網(wǎng)絡(luò)C.圖D.二維表
64.
65.以下敘述中錯誤的是()。
A.c語言是一種結(jié)構(gòu)化程序設(shè)計語言
B.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題
C.結(jié)構(gòu)化程序設(shè)計提倡模塊化的設(shè)計方法
D.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成
66.
67.有以下程序
#include<stdio.h>
structst
{intx,y,z;}data[2]={3,10,2,20,15,7};
main()
{structst*p=data;
printf("%d,",p->y);
printf("%d\n",(++p)->x);
}
程序的運行結(jié)果是
A.10,3B.20,3
C.10,20D.20,2
68.
69.按照“先進后出”原則組織數(shù)據(jù)的結(jié)構(gòu)是()。
A.隊列B.棧C.雙向鏈表D.二叉樹
70.下列敘述中正確的是()。
A.循環(huán)隊列是隊列的一種鏈式存儲結(jié)構(gòu)
B.循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu)
C.循環(huán)隊列是非線性結(jié)構(gòu)
D.循環(huán)隊列是一種邏輯結(jié)構(gòu)
71.在C語言程序中可用做用戶標識符的是()。
A.void123BBNB.aa_abccasC.as+b3-123IfD.6fDoSIG
72.下列敘述中正確的是()。
A.順序存儲結(jié)構(gòu)的存儲一定是連續(xù)的,鏈式存儲結(jié)構(gòu)的存儲空間不一定是連續(xù)的
B.順序存儲結(jié)構(gòu)只針對線性結(jié)構(gòu),鏈式存儲結(jié)構(gòu)只針對非線性結(jié)構(gòu)
C.順序存儲結(jié)構(gòu)能存儲有序表,鏈式存儲結(jié)構(gòu)不能存儲有序表
D.鏈式存儲結(jié)構(gòu)比順序存儲結(jié)構(gòu)節(jié)省存儲空間
73.若有以下程序段,w和k都是整型變量。
w=k;
LB:if(w==0)gotoLE;
w--;
printf("*");
gotoLB;
LE:
M
則不能與上面程序段等價的循環(huán)語句是
A.for(w=k;w!=0;w--)printf("*");
B.w=k;<CR>while(w--!=0)printf("*");w++;
C.w=k;<CR>do{w--;printf("*");}while(w!=0);
D.for(w=k;w;--w)printf("*");
74.
75.
76.以下關(guān)于C語言的敘述中正確的是()。
A.C語言的數(shù)值常量中夾帶空格不影響常量值的正確表示
B.C語言中的變量可以在使用之前的任何位置進行定義
C.在C語言算術(shù)表達式的書寫中,運算符兩側(cè)的運算數(shù)類型必須一致\
D.C語言中的注釋不可以夾在變量名或關(guān)鍵字的中間
77.
78.若有如下定義,則__________是對數(shù)組元素的正確的引用。.
inta[10],*p;p=a;
A.*&a[10]B.a[11]C.*(p+11)D.*p*p*p
79.設(shè)x,y,z均為整型變量,現(xiàn)有如下語句x=y=z=1;(++x||(++y&&++z));,則執(zhí)行這個語句后y的值為
A.2B.1C.0D.不定值
80.以下敘述中錯誤的是()。
A.全局變量的作用域一定比局部變量的作用域范圍大
B.靜態(tài)(static)類別變量的生存期貫穿于整個程序的運行期間
C.全局變量的生存期是整個程序的運行期間
D.靜態(tài)局部變量的初值是在編譯時賦予的,在程序執(zhí)行期間不再賦予初值
五、程序改錯題(1題)81.下列給定程序中函數(shù)fun的功能是:將長整型數(shù)中各位上為奇數(shù)的數(shù)依次取出,構(gòu)成一個新數(shù)放在t中。高位仍在高位,低位仍在低位。
例如,當s中的數(shù)為87653142時,t中的數(shù)為7531。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:部分源程序在文件MODll.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
六、程序設(shè)計題(1題)82.N名學(xué)生的成績已在主函數(shù)中放人一個帶頭節(jié)點的鏈表結(jié)構(gòu)中,h指向鏈表的頭節(jié)點。請編寫函數(shù)fun,其功能是:求出平均分,并由函數(shù)值返回。
例如,若學(xué)生的成績是:8576698591726487,則平均分應(yīng)當是:78.625。注意:部分源程序在文件PROGl.C中。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填人你編寫的若干語句。
參考答案
1.D本題考查邏輯運算符的使用。當“&&”的兩個運算對象都是邏輯1時,表達式返回值才是1;“||”的兩個運算對象至少有一個是邏輯1時,表達式返回值也是1,x<y為1,!z為0,1&&0為1,0||為1,因此,!1為0。
2.C算法具有的5個特性是:有窮性、確定性、可行性、有0個或多個輸入、有一個或多個輸出。所以說,用C程序?qū)崿F(xiàn)的算法可以沒有輸入,但必須要有輸出。因此本題答案選C。
3.D
4.B當邏輯運算符“&&”兩邊的值是非零時,邏輯表達式的值為真(即為1)。所以b=2&&(-1)=1,2%9=2,故a=2,故先算a/10=25/10=2。
5.Dcoutimie語句的作用是跳出循環(huán)體中剩余的語句而進行下一次循環(huán)。第1次循環(huán),x的值為8,循環(huán)體中if條件成立,輸出X的值8后將x減1,再執(zhí)行continue語句,跳出本次循環(huán)。第2次循環(huán),x的值為6,不滿足循環(huán)體內(nèi)的if條件,執(zhí)行輸出“--x”的操作,即輸出5后跳出循環(huán)。第3次循環(huán),x的值為4,滿足循環(huán)體內(nèi)的if條件,執(zhí)行輸出“x--”的操作,即輸出4后將x值減一,執(zhí)行continue語句,跳出本次循環(huán)。第4次循環(huán),x的值為2,滿足循環(huán)體內(nèi)的if條件,執(zhí)行輸出“x--”的操作,輸出2后將x減1,執(zhí)行continue語句,跳出本次循環(huán)。在進行for條件表達式中第3個表達式“x--”的操作后,x的值為0,不滿足條件,結(jié)束循環(huán)。所以運行結(jié)果為8,5,4,2,。故本題答案為D選項。
6.A
7.D用C語言編寫的程序可以放置于多個程序文件中,所以A選項錯誤。C語言程序中的一行可以有多條語句,所以B選項錯誤。C語言中的注釋語句可以與原語句放在一行,也可以不放在一行,所以C選項錯誤。故本題答案為D選項。
8.D解析:本題考核的知識點是指針變量定義和賦值語句的基本應(yīng)用。在使用一個指針變量之前,先要用聲明語句對其進行定義,在定義了一個指針變量之后,系統(tǒng)就為這個指針變量分配了一個存儲單元,用它來存放地址。在C語言中有兩個有關(guān)指針的運算符:&運算符,為取地址運算符,*運算符是指針運算符,*p代表p所指向的變量。本題中首先定義了整型變量n,其初值為0,接著定義一個指針變量p并讓它指向n,然后定義了一個指向指針的指針變量q并讓它指向p,選項A中將常量1賦給指針p不正確;選項B也是將常量2賦給*p,故選項B不正確;選項C中P不是指向指針的指針變量,而將他賦值給一個指向指針的指針變量小顯然不正確,所以,4個選項中選項D符合題意。
9.A運算符邏輯非“!”和“==”,邏輯非“!”的優(yōu)先級高于“==”,選項A等價于“(!a)==0”。如果a不等于0,則表達式為真,否則表達式為假。故本題答案為A選項。
10.A解析:fun()函數(shù)中聲明了兩個字符串指針作為形參,在其函數(shù)體中用了一個while循環(huán),首先while括號內(nèi)表達式*p2=*p1是將p1所指的內(nèi)容賦值到P2所指的存儲空間中,然后再判斷是否為'\\0',表達式的值為真時,執(zhí)行循環(huán)體,指針p1和指針P2分別下移一位,當p1指向字符'\\0'時,表達式的值為假,循環(huán)結(jié)束,故此函數(shù)的功能是將p1所指字符串復(fù)制到p2所指內(nèi)存空間中。
11.D124的2進制值為1111100,要輸出為248即124*2,則2進制值為11111000,即右移l位,所以選D。
12.D解析:假設(shè)線性表的長度為n,則在最壞情況下,冒泡排序要經(jīng)過n/2遍的從前往后的掃描和n/2遍的從后往前的掃描,需要的比較次數(shù)為n(n-1)/2。
13.D解析:線性表可以為空表,排除選項B。第一個元素沒有直接前件,最后一個元素沒有直接后件,故排除選項A。線性表的定義中,元素的排列沒有規(guī)定大小順序,故選項C也有誤,只有D項是正確的。
14.Bwhile語句中條件表達式E的值不為0即真,認為滿足條件。這與B選項中表達式的含義正好相反。故本題答案為B選項。
15.B解析:本題考查函數(shù)的調(diào)用。函數(shù)fun2的作用是將形參x和y的值相乘后減去3,在fun2中的變量m是一個局部變量,它的值在fun2函數(shù)內(nèi)有效;在主函數(shù)中的m指的是全局變量,其值為13,所以fun2(a,b)/m的值為(7*5-3)/13,即2。
16.D
17.B
18.D解析:在主函數(shù)中首先定義了一個數(shù)組p并初始化,在while后面括號里的表達式中,i初值為0,當p[i]為偶數(shù)時,P[i]%2等于0,根據(jù)“&&”運算符的規(guī)則,其表達式為假退出循環(huán),顯然當i=2時,p[i]=14為偶數(shù),此時while后面括號里的表達式的值為假,退出循環(huán),此時k=p[0]+p[1],即k=11+13。所以最后輸出k為24。
19.C解析:在C語言中scanf函數(shù)中輸入數(shù)據(jù)時要嚴格按照所規(guī)定的樣式輸入。
20.A解析:局部變量在執(zhí)行到它所在的程序塊時產(chǎn)生,執(zhí)行完時被摧毀,而靜態(tài)局部變量的生存期將一直延長到程序運行結(jié)束,故選項A正確;全局變量的只有一種靜態(tài)存儲類別,故全局變量說明為static存儲類,和沒有說明為static存儲類其生存期都是一直延長到程序運行結(jié)束,故選項B不正確:未賦初值的局部變量的初值是隨機的,故選項C不正確;形參只能是一般局部變量,不能使用任何存儲類說明符,故選項D不正確。所以,4個選項中選項A符合題意。
21.1010解析:該for語句以i為0,j為10作為初始值,循環(huán)條件是i<=j,每次循環(huán)后i增1、j減1,循環(huán)體是將i與j的和賦給k,這樣變量k將保存的是最后一次賦給它的值。一次循環(huán)后i為1、j為9,二次循環(huán)后i為2、j為8,……,五次循環(huán)后i為5、j為5,第六次循環(huán),將i與j的和10賦給k后,i為6、j為4,循環(huán)結(jié)束,k值為10。
22.98768769876\r\n876解析:指針是一種數(shù)據(jù)類型,這種數(shù)據(jù)類型的變量用來存放內(nèi)存中分配的存儲單元的首地址。指針的定義:
類型說明符*指針變量名;
23.10410\r\n4解析:結(jié)構(gòu)體變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和。每個成員分別占有其自己的內(nèi)存單元。int占2個字節(jié),float占4個字節(jié),共用體變量所占的內(nèi)存長度等于最長的成員的長度。所以,sizeof(a.share)的值是4,sizeof(a)的值是2+2+2+4=10。
24.自頂向下自頂向下解析:在程序設(shè)計時,應(yīng)先考慮總體,后考慮細節(jié),逐步使問題具體化,對復(fù)雜的問題,應(yīng)該設(shè)計一些子目標作為過渡,上述方法概括為:自頂向下,逐步細化。
25.00解析:本題中的for循環(huán)共執(zhí)行了6次,每執(zhí)行一次將相應(yīng)i的值相乘,最后當i=-1時停止循環(huán).該for循環(huán)執(zhí)行完后t的值為5*4*3*2*1*0=0,故最后輸出I的值為0。
26.4040解析:本題中指針s1和s2都指向同一個內(nèi)存中的地址。因此語句“*s2=20;”執(zhí)行后,*\u3000s1=*s2=20。所以m最后的值為40。
27.br[i]或*(br+i)br[i]或*(br+i)解析:求最大值算法要求輸入的一般是一系列數(shù),例如一個數(shù)組,而輸出只有一個值。計算時通常的做法是,首先將這一系列數(shù)的笫1個值保存到結(jié)果變量中,然后用一個指針或循環(huán)變量從頭(或從第2個值)至尾遍歷這一系列數(shù),每次比較結(jié)果變量和被遍歷的值,如果該值比結(jié)果大,則將該值保存到結(jié)果中。本題中,3行4列二維數(shù)組a顯然是算法的輸入值,而傳給函數(shù)fun()的3和4在函數(shù)中起到限制循環(huán)次數(shù)的作用,所以它們代表輸入數(shù)據(jù)的行列數(shù).而傳遞給函數(shù)的一維數(shù)組b即沒有初始化,最后又要輸出它,所以數(shù)組b肯定是用來保存每行的最大值。在函數(shù)中是一個二重循環(huán),外循環(huán)首先將ar[i][0]賦給x,然后內(nèi)循環(huán)中比較x和ar[il剛,若x比較小就讓x=ar[i][j],這就說明x是保存結(jié)果的臨時變量.最后應(yīng)該將x的值輸出到數(shù)組b中,也就是形參br的相應(yīng)位置。故在空格處應(yīng)該填的內(nèi)容為br[i]或者寫成指針方式*(br+i)。
28.1616解析:滿二叉樹的葉子結(jié)點都在最后一層,即第4層,且第4層的結(jié)點達到最大數(shù),即25-1=16。
29.3*sizeof(double)或243*sizeof(double)或24解析:觀察程序可知,本題要求用malloc函數(shù)分配三個double型的動態(tài)內(nèi)存單元。
30.k=p;k=p;解析:為要尋找數(shù)組中的最大元素的下標,需先預(yù)設(shè)1個臨時最大元素的下標,并順序逐一考查數(shù)組的元素,當發(fā)現(xiàn)當前元素比臨時最大元素更大時,就用當前元素的下標更新臨時最大元素下標。直至考查了數(shù)組的全部元素后,這臨時最大元素下標就是數(shù)組的最大元素下標。通常預(yù)設(shè)的最大元素下標是數(shù)組的首元素下標,考查是從首元素開始順序向后繼元素考查。程序中,存儲臨時最大元素下標的變量是k,變量p控制順序考查的循環(huán)控制變量。當發(fā)現(xiàn)當前元素s[p]比臨時最大元素s[k)更大時,應(yīng)該用p更新k。所以在空框處應(yīng)填入代碼“k=p;”。
31.11231123解析:在主函數(shù)中第一次調(diào)用func子函數(shù)時,m=0,i=2,i=i+m+1=3,m=i+a+b=3+5+3=11。因為在于函數(shù)中將m和i定義成了static類型,所以在于函數(shù)中對m和i進行的改變在下一次調(diào)用子函數(shù)時能進行保存,所以第二次調(diào)用于函數(shù)時,m=11,i=3,則i=i+m+1=15,m=i+a+b=15+5+3=23。
32.cdeabcdeab解析:本題move()函數(shù)的作用,是將形參s仕所指地址的連續(xù)n位循環(huán)右移1位,即讓str[n-1]=str[n-2],str[n-2]=str[n-3],…,str[1]=str[0],str[0]=str[n-1](原)。主函數(shù)中用了一個for循環(huán)調(diào)用move()函數(shù),共循環(huán)3次,所以數(shù)組s被循環(huán)右移了3位,故最后輸出的值為cdeab。
33.99解析:本題要輸出的結(jié)果是字符串'IBM\\n012\\1\\\\'的長度,'IBM'是3個字符,\'\\n\'是1個字符,'012'又是3個字符,最后的\'\\1\'和\'\\\\\'都是1個字符。所以最終字符串的長度應(yīng)該是3+1+3+1+1=9。故本題應(yīng)該填9。
34.x+=1;
35.33解析:本題考查do…while語句形式:
do循環(huán)體
while表達式
首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達式的值,若為真,則重復(fù)執(zhí)行循環(huán)體語句,否則退出循環(huán)。第1次循環(huán):b+=2,b=2,a-=2+b,a=11;第2次循環(huán):b=4,a=5;第3次循環(huán):b=6,a=-3,此時再判斷循環(huán)條件不滿足,退出循環(huán)。
36.結(jié)構(gòu)結(jié)構(gòu)解析:路徑測試是白盒測試方法中的—種,它要求對程序中的每條路徑最少檢查一次,目的是對軟件的結(jié)構(gòu)進行測試。
37.需求規(guī)格說明書需求規(guī)格說明書解析:軟件需求規(guī)格說明書是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。需求規(guī)格說明書包括正確性、無歧義性、完整性、可驗證性、一致性、可理解性、可修改性和可追蹤性等。
38.重復(fù)(循環(huán))重復(fù)(循環(huán))解析:結(jié)構(gòu)化程序設(shè)計包括3種基本的結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和重復(fù)結(jié)構(gòu)(循環(huán)結(jié)構(gòu)),利用這3種結(jié)構(gòu)就足以表達出各種其他形式結(jié)構(gòu)的程序設(shè)計方法。其中利用循環(huán)結(jié)構(gòu),可以簡化大量的程序執(zhí)行。
39.44解析:在主函數(shù)中,語句p=a;p++使用指針p指向數(shù)組a[1],所以輸出結(jié)果為4。
40.00解析:二維數(shù)組可以看成是按矩陣形式排列的,題目中給二維數(shù)組賦初值是按行分段賦值的,a[4][4]可以分解為4個一維數(shù)組,其數(shù)組名分別為a[0]、a[1]、a[2]、a[3],這4個一維數(shù)組都有4個元素,a[0]的元素為a[0][0]、a[0][1]、a[0][2]、a[0][3]。
41.B解析:本題輸出的是逗號表達式的值,即a2的值m。
42.B解析:break語句可以用在switch和循環(huán)語句中,作用是跳出switch或循環(huán)結(jié)構(gòu),但并不要求switch結(jié)構(gòu)和循環(huán)結(jié)構(gòu)中必須有break語句,所以選項B)的說法是正確的。注意:break、continue語句在循環(huán)語句中的使用。
43.C解析:本題中,程序先執(zhí)行語句x=1.2;,根據(jù)賦值運算的類型轉(zhuǎn)換規(guī)則,先將double型的常量1.2轉(zhuǎn)換為int型,即取整為1,然后將1賦值給變量x。接下來執(zhí)行語句y=(x+3.8)/5.0;根據(jù)運算符的優(yōu)先級,先計算小括號內(nèi),再計算除法,最后執(zhí)行賦值運算。小括號內(nèi)的運算過程:先將整型變量x的值1轉(zhuǎn)換為double型1.0,然后與3.8進行加法運算,得到中間結(jié)果4.8。接著進行除法運算4.8/5.0,其結(jié)果小于1.0,這里沒有必要計算出精確值,因為接著進行賦值運算,賦值號左邊的變量y的類型為整型,于是對這個小于1.0的中間結(jié)果進行取整,結(jié)果為0,于是變量y的值為0,d*y的值也為0。注意:格式輸出語句printf的使用。
44.A解析:a=7^3=00000111^00000011=00000100=4;b=~4&3=~00000100&00000011=11111011&00000011=00000011=3
45.A解析:函數(shù)strcpy的功能是字符串拷貝,函數(shù)原型為char*strcpy(char*strl,char*str2),作用是將字符串2復(fù)制到字符串1中去。二維數(shù)組可以看做是一種特殊的一維數(shù)組,它的每一個元素又是一個一維數(shù)組。本題arr可看做是一個具有兩個元素arr[0]和arr[1]的一維數(shù)組,每個元素又是一個包含四個元素的一維數(shù)組。
46.C解析:軟件生命周期由軟件定義、軟件開發(fā)和軟件維護三個時期組成,每個時期又進一步劃分為若干個階段。軟件定義時期的基本任務(wù)是確定軟件系統(tǒng)的工程需求。軟件定義可分為軟件系統(tǒng)的可行性研究和需求分析兩個階段。軟件開發(fā)時期是具體設(shè)計和實現(xiàn)在前一時期定義的軟件,它通常由下面五個階段組成:概要設(shè)計、詳細設(shè)計、編寫代碼、組裝測試和確認測試。軟件維護時期的主要任務(wù)是使軟件持久地滿足用戶的需要。即當軟件在使用過程中發(fā)現(xiàn)錯誤時應(yīng)加以改正;當環(huán)境改變時應(yīng)該修改軟件,以適應(yīng)新的環(huán)境;當用戶有新要求時應(yīng)該及時改進軟件,以滿足用戶的新要求。根據(jù)上述對軟件生命周期的介紹,可知選項C中的軟件維護不是軟件生命周期開發(fā)階段的任務(wù)。因此,本題的正確答案是C。
47.A解析:-1為帶符號的整型數(shù),在內(nèi)存中的存放形式為1111111111111111。按帶爺號的整型格式輸出仍為-1;按無帶符號的整數(shù)輸出為65535(將1111111111111111轉(zhuǎn)換為十進制數(shù));按八進制數(shù)輸出為177777(將1111111111111111轉(zhuǎn)換為八進制數(shù),方法為由低位到高位,每三位一組,用一個八進制數(shù)代替);按八進制數(shù)輸出為ffff(將1111111111111111轉(zhuǎn)換為十六進制數(shù),方法為由低位到高位,每四位一組,用一個十六進制數(shù)代替)。
48.C解析:在函數(shù)fun(char*s)中,首先用字符指針變量t指向s,而循環(huán)語句while(*t++);的功能是使指針變量t指向字符串變量s的末尾,這時退出循環(huán),因而語句return(t-s);回的就是字符串s所指字符串的長度。
49.B解析:關(guān)系數(shù)據(jù)庫邏輯設(shè)計的主要工作是將\ue008E-R\ue009圖轉(zhuǎn)換成指定RDBMS中的關(guān)系模式。首先,從E-R圖到關(guān)系模式的轉(zhuǎn)換是比較直接的,實體與聯(lián)系都可以表示成關(guān)系,E-R圖中屬性也可以轉(zhuǎn)換成關(guān)系的屬性,實體集也可以轉(zhuǎn)換成關(guān)系。
50.C解析:線性表、棧和隊列等數(shù)據(jù)結(jié)構(gòu)所表達和處理的數(shù)據(jù)以線性結(jié)椒為組織形式。棧是一種特殊的線性表,這種線性表只能在固定的一端進行插入和刪除操作,允許插入和刪除的一端稱為棧頂,另一端稱為棧底。一個新元素只能從棧頂一端進入;刪除時,只能刪除棧頂?shù)脑?,即剛剛被插入的元素。所以棧又稱后進先出表(LastInFirstOut):隊列可看作是插入在一端進行,刪除在另一端進行的線性表,允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭。在隊列中,只能刪除隊頭元素,隊列的最后一個元素一定是最新入隊的元素。因此隊列又稱先進先出表(FirstInFirstOut)。
51.A解析:本題考查位運算。位運算的對象應(yīng)為二進制的形式。7的二進制表示為00000111,3的二進制表示為00000011,7與3相異或得00000100,即十進制數(shù)4,表達式“~4&3”先進行位反操作,再進行位與,即11111011&00000011=00000011,即十進制數(shù)3。所以應(yīng)輸出為4和3。
52.B解析:C語言的字符以其ASCII碼的形式存在,所以要確定某個字符是大寫字母,只要確定它的ASCII碼在“A”和“Z”之間就可以了,選項A和C符合要求。函數(shù)isalpha用來確定一個字符是否為字母,大寫字母的ASCII碼值的范圍為65-90,所以如果一個字母的ASCII碼小于91,那么就能確定它是大寫字母。
53.A答案A
解析:一個C程序可以有一個或多個程序文件,也可以有一個或多個函數(shù),所以一個C語言程序可以實現(xiàn)多種算法。
54.B解析:模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。耦合性與內(nèi)聚性是模塊獨立性的兩個定性標準,耦合與內(nèi)聚是相互關(guān)聯(lián)的。在程序結(jié)構(gòu)中,各模塊的內(nèi)聚性越強,則耦合性越弱。一般較優(yōu)秀的軟件設(shè)計,應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨立性。本題答案為B。
55.C解析:i=30時,條件表達式“i++%5==0”為真,i++后i=31,++i后i=32,即條件表達式“++i%8==0”為真。
56.A
57.C解析:指數(shù)形式規(guī)定字母e(或E)之前必須有數(shù)字(可以是一個十進制的整數(shù)或小數(shù)),之后必須是一個整數(shù)。選項C的字母E之后是一個小數(shù),故應(yīng)該選擇C。
58.C解析:C語言是一個函數(shù)語言,C語言的主體就是一個主函數(shù),然后有庫函數(shù)和用戶自定義的函數(shù)來配合主函數(shù)完成一系列的任務(wù),所以說,C語言的基本單位是函數(shù)。
59.B解析:所謂中序遍歷是指在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹;并且在遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結(jié)點,最后遍歷右子樹。
60.A
61.C解析:每個C程序有且只有一個主函數(shù)main(),且程序必須從main函數(shù)開始執(zhí)行,并在main()函數(shù)中結(jié)束。
62.B在C語言中,用e來表示科學(xué)計數(shù)法時,規(guī)定在e后面的數(shù)字必須為整數(shù)。
63.D關(guān)系數(shù)據(jù)模型是以關(guān)系數(shù)學(xué)理論為基礎(chǔ)的,用二維表結(jié)構(gòu)來表示實體以及實體之間聯(lián)系的模型稱為關(guān)系模型。在關(guān)系模型中把數(shù)據(jù)看成是二維表中的元素,操作的對象和結(jié)果都是二維表,一張二維表就是一個關(guān)系。表的每一行代表一個元組,每一列稱為一個屬性。
64.C
65.BC語言是一種結(jié)構(gòu)化程序設(shè)計語言。結(jié)構(gòu)化程序設(shè)計是以模塊化設(shè)計為中心的,有三種基本結(jié)構(gòu):順序、選擇和循環(huán)結(jié)構(gòu)。各模塊相互獨立,因而可將原來較為復(fù)雜的問題化簡為一系列簡單模塊并充分利用現(xiàn)有模塊搭建新系統(tǒng),提高程序的重用性和可維護性。
66.C
67.C本題考查結(jié)構(gòu)體數(shù)組的相關(guān)操作。結(jié)構(gòu)體數(shù)組的定義方法與結(jié)構(gòu)體變量的定義方法一樣,只不過將變量變?yōu)閿?shù)組。數(shù)組內(nèi)的各元素在內(nèi)存中是連續(xù)存放的。題目中給出了一個結(jié)構(gòu)體st,該結(jié)構(gòu)體有三個整型成員x,y,z。結(jié)構(gòu)體數(shù)組data元素的個數(shù)為2,并對數(shù)組進行初始化,data[0]={3,10,2},data[1]={20,15,7}。主函數(shù)main中定義了一個指針p指向數(shù)組data,第一個printf函數(shù)是輸出p->y,即data[0].y,該值等于10。第二個printf函數(shù)是輸出(++p)->x,++p使得指
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2021年湖南省長沙市長郡名校聯(lián)考高考數(shù)學(xué)一模試卷(含解析)
- 全面解析2024年廣告設(shè)計師試題及答案
- 寵物醫(yī)護考試題庫及答案
- 采購主管面試題目及答案
- 寶安美術(shù)面試題目及答案
- 廚師基礎(chǔ)知識試題及答案
- 助理廣告師考試全線支持試題及答案
- 大模型時代的可觀測技術(shù)探索與實踐
- 2024年中國高校人才服務(wù)洞察報告
- 口腔招聘筆試試題及答案
- 工業(yè)園區(qū)消防安全管理制度
- 2024年福建省公務(wù)員錄用考試《行測》真題及答案解析
- 慢阻肺康復(fù)治療病例匯報
- 氫氧化鈉購銷
- 醫(yī)療器械供應(yīng)商合作管理制度
- 2024年中級電工考前必刷必練題庫500題(含真題、必會題)
- DB11-T 1832.7-2022 建筑工程施工工藝規(guī)程 第7部分:建筑地面工程
- 湖北省武漢市騰云聯(lián)盟2023-2024學(xué)年高二下學(xué)期5月聯(lián)考化學(xué)試卷
- 2024年《武器裝備科研生產(chǎn)單位保密資格標準》內(nèi)容考試試題庫及答案
- 變革管理方案計劃
- 異地就醫(yī)登記備案表
評論
0/150
提交評論