




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
2022年河北省邢臺市全國計算機等級考試C語言程序設(shè)計重點匯總測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.對表進行水平方向和垂直方向的分割,分別對應(yīng)的關(guān)系運算是()
A.選擇和投影B.投影和選擇C.選擇和聯(lián)接D.投影和聯(lián)接
2.下面排序算法中,初始數(shù)據(jù)集的排列順序?qū)λ惴ǖ男阅軣o影響的是()
A.堆排序B.插入排序C.冒泡排序D.快速排序
3.有以下程序#include<stdio.h>main(){charcl,c2;c1=A+8-4c2=A+8-5;printf("%C,%d\n",cl,c2);}已知字母A的ASCIl碼為65,程序運行后的輸出結(jié)果是()。A.E,69B.D,69C.E,DD.輸出無定值
4.有以下程序: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
5.按照“先進先出”組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是()。
A.隊列B.棧C.雙向鏈表D.二叉樹
6.以下說法錯誤的是()。
A.C語言標(biāo)識符中可以有多個字母、數(shù)字和下劃線字符
B.C語言標(biāo)識符中下劃線字符可以出現(xiàn)在任意位置
C.C語言標(biāo)識符不能全部由數(shù)字組成
D.C語言標(biāo)識符必須以字母開頭
7.若有說明:int*p,m=5,n;以下正確的程序段是
A.p=&n;scanf("%d",&p);
B.p=&n;scanf("%d",*p)
C.scanf("%d",&n);*p=n;
D.p=&n;*p=m;
8.以下程序的輸出結(jié)果是______。#include<stdio.h>main(){inta=200;#definea100printf("%d",a);#undefaprintf("%d",a);}
A.200100B.100100C.100200D.200200
9.在軟件設(shè)計中,不屬于過程設(shè)計工具的是()。
A.PDLB.DFD圖C.PAD圖D.N—S圖
10.下列定義數(shù)組的語句中,正確的是()。A.#defineN10;intx[N];
B.intN=10;intx[N];
C.int:x[0.10];
D.intx[];.
11.有以下程序:#include<stdio.h>main(){inta=1,b=2;for(;a<8;a++){b+=a;a+=2;}printf(“%d,%d\n”,a,b);}程序運行后的輸出結(jié)果是()。
A.9,18B.8,11C.7,11D.10,14
12.若有說明inta[][3]={1,2,3,4,5,6,7,8,9},則a數(shù)組第一維的大小是()。
A.2B.3C.4D.無確定值
13.以下敘述中正確的是()。
A.宏替換不占用程序的運行時間
B.預(yù)處理命令行必須位于源文件的開頭
C.在源文件的一行上可以有多條預(yù)處理命令
D.宏名必須用大寫字母表示
14.下列敘述中正確的是()。
A.棧是一種先進先出的線性表B.隊列是一種后進先出的線性表C.棧與隊列都是非線性結(jié)構(gòu)D.以上三種說法都不對
15.下列敘述中正確的是()。
A.算法的執(zhí)行效率與數(shù)據(jù)存儲結(jié)構(gòu)無關(guān)
B.算法的空間復(fù)雜度是指算法程序中指令(或語句)的條數(shù)
C.算法的有窮性是指算法必須能在執(zhí)行有限個步驟之后終止
D.以上3種描述都不對
16.以下敘述中錯誤的是()。
A.在一個函數(shù)內(nèi)的復(fù)合語句中定義的變量在本函數(shù)范圍內(nèi)有效
B.在一個函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效
C.在不同的函數(shù)中可以定義相同名字的變量
D.函數(shù)的形參是局部變量
17.設(shè)有二維數(shù)組A7×8,每個數(shù)據(jù)元素占8個字節(jié)存儲單元,順序存放,A第一個元素A0,0的存儲地址為1000,數(shù)組A的最后一個元素A6,7的存儲地址為()。
A.1024B.1440C.1448D.1432
18.
19.下面程序的運行結(jié)果是
#include<stdio.h>
main()
{inta=28,b;
chars[10],*p;
p=s;
do{b=a%16;
if(b<10)*p=b+48;
else*p=b+55;
p++;a=a/5;}while(a>0);
*p=′\0′;puts(s);}
A.10B.C2C.C51D.\0
20.輸入序列為ABC,可以變?yōu)镃BA時,經(jīng)過的棧操作為()。
A.push,pop,push,pop,push,pop
B.push,push,push,pop,pop,pop
C.push,push,pop,pop,push,pop
D.push,pop,push,push,pop,pop
二、2.填空題(20題)21.當(dāng)調(diào)用函數(shù)時,實參是一個數(shù)組名,則向函數(shù)傳遞的是【】。
22.下列程序的運行結(jié)果是【】。
#include<string.h>
char*ss(char*s)
{returns+strlen(s)/2;}
main()
{char*p,*str="abcdefgh";
p=ss(str);printf("%\n",p);
}
23.軟件需求規(guī)格說明書應(yīng)具有完整性、無歧義性、正確性、可驗證性、可修改性等特性,其中最重要的是【】。
24.以下程序運行后輸入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);
}
25.數(shù)據(jù)流圖的類型有【】和事務(wù)型。
26.軟件的需求分析階段的工作,可以概括為四個方面:【】、需求分析、編寫需求規(guī)格說明書和需求評審。
27.以下程序段中,錯誤的行號是【】。①#include<stdio.h>②main()③{charstr[14];str[]={"IloveChina!"};④printf("%s",str);⑤}
28.關(guān)系模型的完整性規(guī)則是對關(guān)系的某種約束條件,包括實體完整性、______和自定義完整性。
29.下列程序的輸出結(jié)果是______。
#include<stdio.h>
main()
{intx=10,y=10,i;
for(i=0;x>8;y=++i)
printf("%d%d",x--,y);
}
30.下面的程序?qū)崿F(xiàn)的是從指針p所指向的地址的n個數(shù)中,找出最大的和最小的數(shù)據(jù),請?zhí)羁铡?/p>
fun(int*p,intn)
{int*q;
intmax,min;
max=min=*p;
for(q=p;【】;q++)
if(*q>max)max=*q;
elseif(*q<min)min=*q;}
31.“printf("%d\n",strlen("\t\"\023\xAB\nC"));”語句的輸出結(jié)果是()。
32.已有定義:charc='';inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&Ra;后b的值為______。
33.在面向?qū)ο蠓椒ㄖ校畔㈦[蔽是通過對象的______性來實現(xiàn)的。
34.以下程序中select函數(shù)的功能是:在N行M列的二維數(shù)組中,選出一個最大值作為函數(shù)值返回,并通過形參傳回此最大值所在的行下標(biāo)。請?zhí)羁铡?/p>
#defineN3
#defineM3
select{inta[N][M],int*n;
{inti,j,row=l,eolum=l;
for(i=0;i<N;i++
forj=0;j<M;j++)
if(a[i][j]>a[row][colum]){row=i;colum=j:}
*n=______;
return______;
}
main()
{inta[N][M]={9,11,23.6,1,15,9,17,20},max,nj
max=select(a,&n);
printf("max=%d,line=%d\n",max.n;
}
35.如果一個工人可管理多個設(shè)施,而一個設(shè)施只可被一個工人管理,則實體“工人”與實體“設(shè)備”之間存在【】聯(lián)系。
36.按照邏輯結(jié)構(gòu)分類,結(jié)構(gòu)可以分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),棧屬于______。
37.以下程序運行后的輸出結(jié)果是【】。
voidfun()
{
staticinta=0;
a+=2;printf("%d",A);
}
main()
{intcc;
for(cc=1;cc<4,cc++)fun();
printf("\n");
}
38.下列程序的輸出結(jié)果是()。
intt(intx,inty,intcp,intdp)
{cp=x%y+y*y;
dp=x+x-y*y;
}
main()
{ima=4,b=3,c=9,d=8;
t(a,b,c,D);
printf("%d%d\n",c,D);
}
39.結(jié)構(gòu)化程序設(shè)計的3種基本結(jié)構(gòu)分別是順序、選擇和______。
40.與結(jié)構(gòu)化需求分析方法相對應(yīng)的是【】方法。
三、1.選擇題(20題)41.以下不能正確定義二維數(shù)組的選項是
A.inta[2][2]={{1},{2}};
B.inta[][2]={1,2,3,4};
C.inta[2][2]={{1},{2,3}};
D.inta[2][]={1,2},{3,4}};
42.有以下程序
#include<stdio.h>
voidfun(char*t,char*s)
{while(*t!=0)t++;
while((*t++=*s++)!=0);
}
main()
{charss[10]="acc",aa[10]="bbxxyy";
fun(ss,aa);printf("%s,%s\n",ss,aa);
}
程序的運行結(jié)果是
A.accxyy,bbxxyy
B.acc,bbxxyy
C.accxxyy,bbxxyy
D.accbbxxyy,bbxxyy
43.結(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)
44.在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)庫用戶能夠看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述是()
A.外模式B.邏輯模式C.概念模式D.物理模式
45.有以下程序:#include<stdio.h>main(){inti=0.s=0;for(;;)if(i==3‖i==5)continue;if(i==6)break;i++;s+=i;}printf("%d\n",s);程序運行后的輸出結(jié)果是()。
A.10B.13C.21D.程序進入列循環(huán)
46.有以下程序#include<stdio.h>main(){inta[]={1,2,3,4},y,*p=&a[3];--p;y=*p;printf("y=%d\n",y);}程序的運行結(jié)果是
A.y=0B.y=1C.y=2D.y=3
47.編制一個好的程序,首先要保證它的正確性和可靠性,還應(yīng)強調(diào)良好的編程風(fēng)格,在書寫功能性注釋時應(yīng)考慮
A.僅為整個程序作注釋B.僅為每個模塊作注釋C.為程序段作注釋D.為每個語句作注釋
48.以下程序運行后,如果從鍵盤上輸入ABCDEF<回車>,則輸出結(jié)果為______。#include<stdio.h>#include<string.h>func(charstr[]){intnum=0;while(*(str+num)!='\0')num++;return(num);p}main(){charstr[10],*p=str;gets(p);printf("%d\n",func(P));}
A.8B.7C.6D.5
49.若有如下定義:ints[3][4];則下面表達(dá)式中能代表數(shù)組元素s[1][0]的值的是()
A.*(s+1)B.s[1]C.s+1D.*(s[1])
50.若有一些定義和語句#include<stdio.h>inta=4,b=3,*p,*q,*w;p=&a;q=&b;w=q;q=NULL;則以下選項中錯誤的語句是
A.*q=0;B.w=p;C.*p=a;D.*p=*w;
51.若有定義inta=5,b=7;,則表達(dá)式a%=(b%2)運算后,a的值為()。
A.0B.1C.11D.3
52.以下敘述中錯誤的是A.C語言源程序經(jīng)編譯后生成后綴為.obj的目標(biāo)程序
B.C程序經(jīng)過編譯、連接步驟之后才能形成一個真正可執(zhí)行的二進制機器指令文件
C.用C語言編寫的程序稱為源程序,它以ASCII代碼形式存放在一個文本文件中
D.C語言中的每條可執(zhí)行語句和非執(zhí)行語句最終都將被轉(zhuǎn)換成二進制的機器指令
53.在以下各標(biāo)識符中,合法的用戶標(biāo)識符是()
A.1B.table__1C.0__tD.k%
54.下面程序在屏幕上的輸出是______。main(){printf(“ab\b\bc”);}A.ab\b\bcB.acC.abcD.abc
55.C語言庫函數(shù)fgets(str,n,fg)的功能是_______。
A.從中指向的文件中讀取長度n的字符串存入str指向的內(nèi)存
B.從fp指向的文件中讀取長度不超過n-1的字符串存入str指向的內(nèi)存
C.從fp指向的文件中讀取n個字符串存入str指向的內(nèi)存
D.從sb讀取至多n個字符到文件fp
56.在位運算中,操作數(shù)每右移一位,其結(jié)果相當(dāng)于()
A.操作數(shù)乘以2B.操作數(shù)除以2C.操作數(shù)除以16D.操作數(shù)乘以16
57.設(shè)有定義:charp[]={'1','2','3'},*q=p;,以下不能計算出一個char型數(shù)據(jù)所占字節(jié)數(shù)的表達(dá)式是
A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p[0])
58.以下程序有錯,錯誤原因是()。main(){int*p,i;char*q,ch;p=&i;q=&ch;*p=40;*p=*q;┇}
A.p和q的類型不一致,不能執(zhí)行*p=*q;語句
B.*p中存放的是地址值,因此不能執(zhí)行*p=40;語句
C.q沒有指向具體的存儲單元,所以*q沒有實際意義
D.q雖然指向了具體的存儲單元,但該單元中沒有確定的值,所以執(zhí)行語句*p=*q;沒有意義,可能會影響后面語句的執(zhí)行結(jié)果
59.設(shè)有定義:intn=0,*p=&n,**q=&p;則以下選項中,正確的賦值語句是()A.p=1;B.*q=2;C.q=p;D.*p=5;
60.下列程序的輸出結(jié)果是______。main(){inti=3;switch(i){case1:case2:printf("%d",i);case3:case4:break;default:printf("OK");}}
A.0B.3C.OKD.沒有任何輸出
四、選擇題(20題)61.
62.語句:“printf("%d",(a=)&&(b=-2));”的輸出結(jié)果是()。A.A.無輸出B.結(jié)果是不確定C.-1D.1
63.有以下程序:
程序運行后的輸出結(jié)果是()。
A.21B.11C.6D.1
64.有以下程序:
程序運行后的輸出結(jié)果是()。
A.2,3,1,6,8,7,5,4,10,9,
B.3,4,2,7,9,8,6,5,11,10,
C.2,4,3,9,12,12,11,11,18,9,
D.1,2,3,6,8,7,5,4,10,9,
65.有以下程序:
程序運行后的輸出結(jié)果是()。
A.zB.0C.元素eh[5]的地址D.字符Y的地址
66.有如下程序段
#include"stdio.h"
typedefstructaa
{inta;
structaa*next;
}M;
voidset(M*k,inti,int*b)
{intj,d=0;
for(j=1;j<i;j++)
{k[j-1].next=&k[j];
k[j-1].a=b[d++];
}
k[j].a=b[d];
}
main()
{Mk[5],*p;
intd[5]={23,34,45,56,67};
set(k,5,d);
p=k+1;
printf("%d\n",________);
}
要輸出45,則在下畫線處應(yīng)填入的選項是
A.p->next->aB.++p->a
C.(*p).a(chǎn)++D.p++->a
67.
下列程序的輸出結(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
68.
69.對如下二叉樹進行后序遍歷的結(jié)果為()。
A.A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
70.
71.以下程序的運行結(jié)果是()。
#include<stdio.h>
main{inta=1,b=2,c=3,x;
x=(a^b)&c;printf("%d\n",x);}
A.0B.1C.2D.3
72.有以下程序:
程序運行后的輸出結(jié)果是()。
A.b,B"b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B
73.下列說法不正確的是()。
A.調(diào)用函數(shù)時,實參可以是表達(dá)式
B.調(diào)用函數(shù)時,實參與形參可以共用內(nèi)存單元
C.調(diào)用函數(shù)時,將實參的值復(fù)制給形參,使實參變量和形參變量在數(shù)值上相等
D.調(diào)用函數(shù)時,實參與形參的類型必須一致
74.有以下程序,程序中庫函數(shù)islower(ch)用以判斷ch中的字母是否為小寫字母:
程序運行后的輸出結(jié)果是()。
A.abcdEFg!B.AbCdEFg!C.abcdEFG!D.aBcDEFG!
75.
76.在單鏈表中,增加頭結(jié)點的目的是()。
A.方便運算的實現(xiàn)B.使單鏈表至少有一個結(jié)點C.標(biāo)識表結(jié)點中首結(jié)點的位置D.說明單鏈表是線性的鏈?zhǔn)酱鎯崿F(xiàn)
77.有以下程序:
程序的運行結(jié)果是()。
A.xy,aaaaCeB.aaaaCC,xyC.bCC,aabCCD.aabCC,bCC
78.
79.
80.CSS指的是下列()的縮寫。
A.ComputerStyle.Sheets
B.CascadingStyle.Sheets
C.CreativeStyle.Sheets
D.ColorfulStyle.Sheets
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的作用是:將字符串str中的大寫字母都改為對應(yīng)的小寫字母,其他字符不變。例如,若輸入“abD,dFAD”,則輸出“abd,dfad”。請修改函數(shù)proc()中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件析下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),tt指向一個M行N列的二維數(shù)組,求出二維數(shù)組每列中值最大的元素,并依次放入pp所指的一維數(shù)組中。二維數(shù)組中的元素已在主函數(shù)中給出。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#defineM3#defineN4voidfun(inttt[M][N],intpp[N]){}voidmain(){ intt[M][N]={{68,32,54,12},{14,24,88,58},{42,22,44,56}}; intp[N],i,j,k; ystem(“CLS”); printf(“Theoriginaldatais:\n”); for(i=0;i<=""p=""> { for(j=0;j<=""p=""> printf(“%6d”,t[i][j]); printf(“\n”n); } fun(t,p); printf(“\nTheresultis:\n”); for(k=0;k<n;k++)<p=""></n;k++)<> printf(“%4d”,p[k]); printf(“\n”);}
參考答案
1.A解析:從關(guān)系中找出滿足給定條件的那些元組稱為選擇,是從行的角度進行的運算,即水平方向抽取元組。從關(guān)系模式中挑選若干屬性組成新的關(guān)系稱為投影,是從列的角度進行的運算,相當(dāng)于對關(guān)系進行垂直分解。所以,本題選擇A。
2.A
3.A本值輸出兩個值,%c為輸出一個字母,0/4d輸出一個數(shù)字?!癆”的ASCIl碼為65,再加4之后為69,也就是字母E,所以本題A正確。
4.D解析:程序中while語句的循環(huán)條件為i<7&&p[i]%2。當(dāng)i=0時,條件成立,k=k+p[0]=11;當(dāng)i=1時,條件仍成立,k=k+p[1]=11+13=24;當(dāng)i=2時,p[2]%2=0條件不成立,結(jié)束while循環(huán),所以k=24。
5.A隊列是一種特殊的線性表,只允許在表的一端插八元素,在表的另一端刪除元素,插入元素的一端叫“隊尾”,刪除元素的一端叫“隊頭”。先插入的元素先被刪除,是按“先進先出”的原則組織數(shù)據(jù)的。
【知識拓展】“隊列”和“?!倍际且环N特殊的線性表。之所以稱之為“隊列”,其形式如“排隊”。要講究“先來后到”,先進先出,后進后出。
6.DC語言的合法的標(biāo)識符的命名規(guī)則是:標(biāo)識符可以由字母、數(shù)字和下劃線組成,并且第1個字符必須是字母或下劃線。選項D錯誤。本題答案為D選項。
7.D解析:“&”是求址運算符,“*”是指變量說明符。選項A)、B)應(yīng)改為scanf('%d',p);選項C)中指針變量p未指向一確定的內(nèi)存單元,不能為其賦值,并且這樣做很危險,建議不使用。
8.C解析:#define宏名的有效范圍為定義命令之后到本源文件結(jié)束,可以在程序中使用#undef命令終止宏定義的作用域。本題由于#undef的作用,使a的作用范圍在#definea100到#undefa之間,故答案為C。
9.B常見的過程設(shè)計工具有圖形土具(程序流程圖、N—S圖、PAD圖、HIP0圖)、表格工具(判定表)和語言工具(PDL)。DFD是數(shù)據(jù)流圖,是描述數(shù)據(jù)處理過程的工具。
10.A[解析]數(shù)組說明的一般形式為:類型說明符數(shù)組名[常量表達(dá)式]。B)中N是變量,不能用變量定義數(shù)組長度。C)選項中數(shù)組長度是非法的一串?dāng)?shù)字。定義數(shù)組時必須為其指明長度,D)選項中數(shù)組長度為空,所以非法。\u3000\u3000
11.D第1次循環(huán),a的值為1,滿足條件,執(zhí)行“b+=a;”與“a+=2;”,則b的值變?yōu)?,a的值變?yōu)?。執(zhí)行“a++”,a的值為4,滿足條件進入第2次循環(huán),執(zhí)行完循環(huán)體后,b的值為7,a的值為6。執(zhí)行“a++”,a的值為7,滿足條件進入第3次循環(huán),執(zhí)行完循環(huán)體后,b的值為14,a的值為9。執(zhí)行“a++”,a的值為10。條件不滿足,退出循環(huán)。故本題答案為D選項。
12.B解析:本題考查二維數(shù)組第一維的大小如何確定。二維數(shù)組第一維的大小由下列規(guī)則確定:①當(dāng)初值的個數(shù)能被第二維的常量表達(dá)式的值除盡時,所得商數(shù)就是第一維的大?。孩诋?dāng)初值的個數(shù)不能被第二維的常量表達(dá)式的值除盡時,第一維的大小等于所得商數(shù)加1。
13.A宏替換是在編譯階段前的預(yù)處理階段,對程序中的宏完成文本替換,因此宏替換不占用運行時間,選項A正確;預(yù)處理命令行無須在源文件的開頭,它可以出現(xiàn)在程序的任何一行的開始部位,其作用一直持續(xù)到源文件的末尾,選項B錯誤;在源文件的一行上至多只能有一條預(yù)處理命令,選項C錯誤;宏名通常使用大寫字母表示,這并不是語法規(guī)定,只是一種習(xí)慣,選項D錯誤。本題答案為A選項。
14.D【答案】:D
【知識點】:棧和隊列
【解析】:棧和隊列都是線性結(jié)構(gòu),所以選項C錯誤;棧是一種先進后出的線性表,故選項A錯誤;隊列是一種先進先出的線性表,故選項B錯誤,所以選D。
15.C在程序設(shè)計中,算法執(zhí)行效率與數(shù)據(jù)的存儲結(jié)構(gòu)密切相關(guān)。算法的空間復(fù)雜度是指算法執(zhí)行過程中所需存儲空間。
16.A在一個函數(shù)內(nèi)的復(fù)合語句中定義的變量在本復(fù)合語句塊范圍內(nèi)有效,選項A錯誤,其他選項正確。本題答案為A選項。
17.B
18.C
19.C解析:考查用字符指針處理字符串的方法。語句'p=s;'是使指針p指向字符數(shù)組s。*p則引用了p所指位置的數(shù)組元素。通過指針來引用一維數(shù)組元素。
20.B
21.數(shù)組的首地址數(shù)組的首地址解析:在函數(shù)中,可以通過指針變量來引用調(diào)用函數(shù)中對應(yīng)的數(shù)組元素,此操作是通過傳遞數(shù)組的首地址來實現(xiàn)的。
22.efghefgh解析:函數(shù)ss的作用是讓形參指針s指向該字符串的右半部分。主函數(shù)中首先定義了一個字符型指針變量p和字符型指針str,并初始化為“abcdefgh”,然后調(diào)用函數(shù)ss,將實參str傳給形參s,因此可知該函數(shù)返回的指針,指向str所指的字符串“abcdefgh”的右半部分,即指向字符串“efgh”,所以最后輸出指針p(指針p的值為調(diào)用函數(shù)ss(str)的返回值)所指向的字符串為“efgh”。
23.正確性正確性解析:本題考查軟件工程中需求規(guī)格說明書的評審。衡量需求規(guī)格說明書好壞的標(biāo)準(zhǔn)按重要性次序排列為:正確性、無歧義性、完全性、可驗證性、一致性、可理解性、可修改性和可追蹤性。因此,劃線處應(yīng)填入“正確性”。
24.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。
25.變換型典型的數(shù)據(jù)流類型有兩種:變換型和事務(wù)型。變換型是指信息沿輸入通路進入系統(tǒng),同時由外部形式變換成內(nèi)部形式,進入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng);在很多軟件應(yīng)用中,存在某種作業(yè)數(shù)據(jù)流,它可以引發(fā)一個或多個處理,這些處理能夠完成該作業(yè)要求的功能,這種數(shù)據(jù)流就叫做事務(wù)。
26.需求獲取需求獲取解析:軟件的需求分析階段的工作,可以概括為四個方面:需求獲取、需求分析、編寫需求規(guī)格說明書和需求評審。需求獲取的目的是確定對目標(biāo)系統(tǒng)的各方面需求;需求分析是對獲取的需求進行分析和綜合,最終給出系統(tǒng)的解決方案和目標(biāo)系統(tǒng)的邏輯模型;編寫需求規(guī)格說明書作為需求分析的階段成果,可以為用戶、分析人員和設(shè)計人員之間的交流提供方便,可以直接支持目標(biāo)軟件系統(tǒng)的確認(rèn),又可以作為控制軟件開發(fā)進度的依據(jù);需求評審是對需求分析階段的工作進行的復(fù)審,驗證需求文檔的一致性、可行性、完整性和有效性。
27.③數(shù)組可以在定義時整體賦初值,但不能在賦值語句中整體賦初值。因此,可將第三行改為charstr[14]={"IloveChina!"};
28.參照完整性參照完整性
29.101091101091解析:for(表達(dá)式1;表達(dá)式2:表達(dá)式3)語句的功能是:首先計算表達(dá)式1的值,然后檢測表達(dá)式2的值,若其值為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢后,再計算表達(dá)式3的值。然后再檢測表達(dá)式2的值是否為真,若為真,繼續(xù)執(zhí)行循環(huán)體語句,若為假,則退出循環(huán):第1次循環(huán)x>8成立,輸出x=10,y=10后,x的值減1,i=1,執(zhí)行y=++i操作,y的值變?yōu)?;判斷條件還成立,輸出x=9,y=1,然后x的值減1,循環(huán)條件不成立,則退出循環(huán)。
30.q<p+nq<p+n解析:考查對于函數(shù)的地址傳遞的掌握情況。通過地址傳遞可以在被調(diào)函數(shù)中對調(diào)用函數(shù)中的變量進行引用。
31.66解析:strlen()函數(shù)的作用是計算字符串的長度并作為函數(shù)的返回值,這里的長度不包括串尾的結(jié)束標(biāo)志\'\\0\'。\'\\t\'是轉(zhuǎn)義字符,代表橫向跳若干格;\'\\'\'是轉(zhuǎn)義字符,代表雙引號:\'\\023\'也只代表一個字符,而不管轉(zhuǎn)義字符后面有幾個符;\'\\xAB\'是以兩位十六進制數(shù)AB表示的ASCII碼字符,只代表一個字符;\'\\n\'是轉(zhuǎn)義字符,代表回車換行。題中語句中的字符串有5個字符常量各代表一個字符,再加上字母C,所以返回的長度是6。
32.11解析:字符空格的ASCII碼不為0,所以本題中表達(dá)式!c的值為0,b=0&&1的結(jié)果顯然為0。
33.封裝封裝
34.rowa[row][colum]row\r\na[row][colum]解析:通過對題意的分析,在select()函數(shù)中,變量row的作用是用來記錄最大元素的行下標(biāo),column的作用是用來記錄最大元素的列下標(biāo)。程序中通過一個循環(huán)求得數(shù)組元素中最大值的行列下標(biāo),分別存放在變量row和colmnn中,根據(jù)題意,應(yīng)該把行下標(biāo)賦值給形參指針變量n指向的變量,把最大值a[row][columa]作為函數(shù)值返回。
35.一對多或1:N實體之間的對應(yīng)關(guān)系稱為聯(lián)系,它反映現(xiàn)實世界事物之間的相互關(guān)聯(lián)。兩個實體間的聯(lián)系可以歸結(jié)為三種類型:一對一聯(lián)系表現(xiàn)為某一實體與另一實體一一對應(yīng)相關(guān)聯(lián);一對多聯(lián)系表現(xiàn)為某一實體與相關(guān)多個實體相關(guān)聯(lián);多對多聯(lián)系表現(xiàn)為多個實體與相關(guān)多個實體相關(guān)聯(lián)。
36.線性結(jié)構(gòu)線性結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間的邏輯關(guān)系,分為線性結(jié)構(gòu)和非線性結(jié)構(gòu)。常見的線性結(jié)構(gòu)有線性表、棧和隊列等,常見的非線性結(jié)構(gòu)有樹、二叉樹等。
37.246246解析:static聲明的外部變量只限于被本文件引用,而不能被其他文件引用。用static來聲明一個變量的作用有:①對局部變量用static聲明,則為該變量分配的空間在整個程序執(zhí)行期間始終存在;②全部變量用static聲明,則該變量的作用域只限于本文件模塊(即被聲明的文件中)。
38.9898解析:本題的考查點是函數(shù)的調(diào)用。本題中a,b,c,d是實參,x,y,cp,dp是形參。C語言規(guī)定,實參變量對形參變量的數(shù)據(jù)傳遞是“值傳遞”,即單向傳遞,只由實參傳給形參,而不能由形參傳回來給實參。在內(nèi)存中,實參單元與形參單元是不同的單元。在調(diào)用函數(shù)時,給形參分配存儲單元,并將實參對應(yīng)的值傳遞給形參,調(diào)用結(jié)束后,形參單元被釋放,實參單元仍保留并維持原值。因此,程序的輸出結(jié)果是98。
39.重復(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)就足以表達(dá)出各種其他形式結(jié)構(gòu)的程序設(shè)計方法。其中利用循環(huán)結(jié)構(gòu),可以簡化大量的程序執(zhí)行。
40.結(jié)構(gòu)化設(shè)計結(jié)構(gòu)化設(shè)計解析:與結(jié)構(gòu)化需求分析方法相對應(yīng)的是結(jié)構(gòu)化設(shè)計方法。結(jié)構(gòu)化設(shè)計就是采用最佳的可能方法設(shè)計系統(tǒng)的各個組成部分以及各個成分之間的內(nèi)部聯(lián)系的技術(shù)。
41.D解析:二維數(shù)組的定義和初始化在定義中如果對所有元素賦初值,其第一維的長度可以省略;二維數(shù)組初始化也可以只對每行或前若干行的前若干個元素賦初值;在二維數(shù)組定義時不能省略第二維的長度。
42.D解析:本題中fun函數(shù)實現(xiàn)丁字符串函數(shù)str-eat的功能,將字符串a(chǎn)a連接到字符串ss的末尾。調(diào)用fun函數(shù)時,形參t和s分別指向了字符串ss和aa,然后通過一個while循環(huán)使t指向字符串ss的結(jié)束符的位置,第二個while循環(huán)將字符串a(chǎn)a中的字符(包括結(jié)束符'\\0')逐個復(fù)制到字符串ss的末尾處。
43.BB)【解析】程序設(shè)計語言僅僅使用順序、選擇和重復(fù)(循環(huán))三種基本控制結(jié)構(gòu)就足以表達(dá)出各種其他形式結(jié)構(gòu)的程序設(shè)計方法。遵循程序結(jié)構(gòu)化的設(shè)計原則,按結(jié)構(gòu)化程序設(shè)計方法設(shè)計出的程序易于理解、使用和維護;可以提高編程工作的效率,降低軟件的開發(fā)成本。
44.AA)【解析】外模式也稱子模式,它是數(shù)據(jù)庫用戶(包括應(yīng)用程序員和最終用戶)能夠看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,它是由概念模式推導(dǎo)出來的.是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。一個概念模式可以有若干個外模式。
45.D解析:程序第1次執(zhí)行for循環(huán)時,i=0,兩條if語句中的表達(dá)式都不成立,執(zhí)行i++;s+=i;此時i為1,s為1第2次循環(huán),兩條if語句中的表達(dá)式也不成立,執(zhí)行i++,s+=i,此時i為2,s為3;……;當(dāng)i=3時,執(zhí)行continue,結(jié)束本輪循環(huán),不執(zhí)行i++;繼續(xù)執(zhí)行下一輪循環(huán),這樣一來i值始終為3,繼續(xù)continue,無終止條件,進入死循環(huán)。
46.D解析:在程序中指針變量P初始指向a[3],執(zhí)行p減1后,P指向a[2],語句y=*p的作用是把a[2]的值賦給變量y,所以輸出為y=3。
47.C解析:功能性注釋是嵌在源程序體中的,用以描述其后的語句或程序段是在做什么工作,或者執(zhí)行了下面的語句會怎么樣。所以它描述的是一段程序,是為程序段做注釋,而不是每條語句。
48.C解析:本題通過函數(shù)gets()從鍵盤接收一個字符串,并通過調(diào)用fune()函數(shù),統(tǒng)計串中字符的個數(shù)。
49.D
50.A解析:本題考核的知識點是指針變量的使用與空指針(NULL)基本概念.本題中定義了3個指向整型的指針變量p、q、w,并讓p指向a,讓q指向b,通過將q的值賦給w,使w也指向b,最后將NULL賦值給q。由整形變量指針的定義可知,可以給整型指針指向的變量賦一個常數(shù)值(表達(dá)式),故選項C和選項D是正確的;可以給指針變量賦一個同種類型的指針變量(或地址值),故選項B也是正確的;選項A錯誤,因為q不指向任何變量,給一個空指針指向的單元賦值是錯誤的。所以,A選項為所選。
51.A解析:本題考查'%'運算符的使用。運算符'%'要求兩個運算對象都為整型,其結(jié)果是整數(shù)除法的余數(shù)。本題中表達(dá)式ao%=(b%2)等價于a=a%o(b%2)=5%(7%2)=5%1=0。
52.D(44)D)解析:并不是源程序中的所有行都參加編譯。在條件編譯形式下,相關(guān)內(nèi)容只在滿足一定條件時才進行編譯。選項D)中的非執(zhí)行語句不在其范圍內(nèi)。
53.B
54.BC語言中允許使用一種特殊形式的字符常量,就是以一個“\\”開頭的字符序列,這樣的字符稱為“轉(zhuǎn)義字符”。常用的轉(zhuǎn)義字符有:\\n,換行;\\t,水平制表;\\b,退格;\\r,回車。
55.B解析:fgets函數(shù)的作用是從指定的文件讀入一個字符串。fgets(str,n,fp);中的n為要求得到的字符的個數(shù),但只從fp指向的文件輸入n-1個字符,然后在最后加一個‘\\0’字符,因此得到的字符串共有n個字符。
56.B
57.A解析:在本題中,p和q同為指向字符類型數(shù)據(jù)的指針。*q和p[0]同為字符型數(shù)據(jù)。選項B)、C)和D)都符合題目的要求;選項A)計算得出的是指針類型數(shù)據(jù)所占的內(nèi)存字節(jié)數(shù)。
58.D解析:在該程序中,首先聲明整型指針變量p和整型變量i,字符型指針變量q和字符型變量ch,將i的地址賦給指針變量p,將ch的地址賦給指針變量q,然后將40賦給*p。此時,雖然q已經(jīng)指向了一個具體的存儲單元,但ch的值不確定,即*q沒有確定的值,所以不能執(zhí)行*p=*q;語句。
59.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符合題意。
60.D解析:在題中,i的值為3,由于“case3:”后面沒有break語句,所以繼續(xù)向下執(zhí)行“case4:”后面的語句,由于“case4:”后面的語句為break強行退出switch語句,所以,本題沒有任何輸出。
61.C
62.D因為在邏輯表達(dá)式中,兩邊的賦值表達(dá)式都成立,即值為1,故選擇D選項。
63.A按位或運算符”1”是雙目運算符,其功能是參與運算的兩數(shù)各對應(yīng)的二進位相或。左移運算符”<<”是雙目運算符,其功能把”<<”左邊的運算數(shù)的各二進位全部左移若干位,由”<<”右邊的數(shù)指定移動的位數(shù),高位丟棄,低位補0。將5變換為二進制數(shù)為101,左移2位后為10100,1轉(zhuǎn)換為二進制數(shù)為00001,10100與00001進行或運算后為l0101,再將其轉(zhuǎn)換為十進制數(shù)為21。因此,本題答案為A)。
64.C題目中定義了一個結(jié)構(gòu)體類型s,然后定義了一個結(jié)構(gòu)體變量s并初始化,執(zhí)行f函數(shù)后,將s中元素a的每個元素都加上i,這里需要注意最后一個元素沒有加i,所以最終答案為C選項。
65.A本題考查的是指向數(shù)組的指針。本題中定義了一個字符串?dāng)?shù)組和指針,并將指針pc指向該數(shù)組的首地址,執(zhí)行輸出語句printf(”%c\n”,*(pc+5));。語句中的
*(pc+5)指的就是pc[5]的值,所以最后輸出的結(jié)果為z。
66.A在本題中,程序首先定義了一個結(jié)構(gòu)體,結(jié)構(gòu)體中有兩個成員變量,一個是整型,另一個是指向該結(jié)構(gòu)體的指針。然后程序定義了一無返回值的函數(shù)set,該函數(shù)帶有三個參數(shù),第一個是結(jié)構(gòu)體指針變量k,第二個是整型變量i,第三個是整型指針變量b。在函數(shù)體中,首先定義了兩個整型變量,然后執(zhí)行for循環(huán),從循環(huán)變量的初始值及循環(huán)結(jié)束條件我們可以知道,循環(huán)執(zhí)行的次數(shù)與形參變量i有關(guān),從循環(huán)體中我們可以看出,該循環(huán)是將結(jié)構(gòu)體數(shù)組中的前一個結(jié)構(gòu)體的指針成員指向后一個結(jié)構(gòu)體的首地址,并用數(shù)組b中的值給結(jié)構(gòu)體的成員變量a賦值。
在主函數(shù)中,定義了一個大小為5的結(jié)構(gòu)體數(shù)組k和一個結(jié)構(gòu)體指針p,然后定義了一個數(shù)組d,并給數(shù)組d進行了初始化操作,然后調(diào)用函數(shù)set,實參分別為結(jié)構(gòu)體數(shù)組k、5和數(shù)組d,結(jié)合上面我
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 太原市2025年公需課考試題庫及答案
- 2025年吉林省延吉市公需課培訓(xùn)(專業(yè)技術(shù)人員繼續(xù)教育)試題及答案
- 2025年甘肅省張掖市繼續(xù)教育公需課考試題(含答案)
- 2025年國家公務(wù)員考試試題時事政治題庫與答案
- 2025年安全生產(chǎn)法規(guī)題庫附答案
- 人教版四年級數(shù)學(xué)期末試卷
- 小學(xué)語文作業(yè)批改規(guī)范及反饋建議
- 環(huán)保項目資金申請書寫作模板及案例
- 幼兒園教學(xué)評估與改進方案
- 2025年考研英語(一)翻譯技巧解析 專項訓(xùn)練試卷
- 財務(wù)風(fēng)險防控與內(nèi)控管理方案
- 牛肉醬制作培訓(xùn)課件
- 民族共同體課件
- 售電入門基礎(chǔ)知識培訓(xùn)課件
- 2024年時事政治考試題庫有答案
- 小兒鎮(zhèn)靜課件
- 光伏建筑投標(biāo)文件范本
- 2025年藥店員工培訓(xùn)考試試題(附答案)
- 民辦學(xué)校招生方案及推廣策略實操指南
- 公益慈善投資策略-洞察及研究
- 碳排放咨詢員基礎(chǔ)技能培訓(xùn)手冊
評論
0/150
提交評論