版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2022-2023年廣東省揭陽(yáng)市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)知識(shí)點(diǎn)匯總卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.采用開放定址法處理散列表的沖突時(shí),其平均查找長(zhǎng)度()
A.高于二分查找B.高于鏈接法處理沖突C.低于二分查找D.低于鏈接法處理沖突
2.下面程序的運(yùn)行結(jié)果是()。
A.gaeB.gaC.LanguageD.有語(yǔ)法錯(cuò)
3.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.4321098765B.5678901234C.0987654321D.0987651234
4.已知一個(gè)有序表為(15,19,30,33,49,50,65,88,93,126,164),當(dāng)二分查找值為126的元素時(shí),檢索成功需進(jìn)行的比較次數(shù)為()。
A.1次B.2次C.3次D.4次
5.有以下程序:#include<stdio.h>main(){charv[4][10];inti;for(i=0;i<4;i++)scanf(“%s”,v[i]);printf(“%c,%s,%s,%c”,**v,*(v+1),v[3]+3,*(v[2]+1));}程序運(yùn)行時(shí)輸入welcomeyoutobeijing并按<Enter>鍵,則輸出結(jié)果是()。
A.w,youjing,o
B.welcome,you,jing,to
C.w,you,eeijing,u
D.w,xelcome,eeijing,u
6.以下選項(xiàng)中,能用作數(shù)據(jù)常量的是______。A.o115B.0118C.1.5e1.5D.115L
7.有以下程序:#include<stdio.h>main(){chars[]=“012xy\08s34f4w2”;inti,n=0;for(i=0;s[i]|=0;i++) if(s[i]>=‘0’&&s[i]<=“9”)n++;printf(“%d\n”,n);}程序運(yùn)行后的輸出結(jié)果是()。
A.7B.0C.3D.8
8.單鏈表的存儲(chǔ)密度()順序表的存儲(chǔ)密度。
A.大于B.等于C.小于D.不能確定
9.若變量已正確定義,在語(yǔ)句“if(W)printf("%d\n",k);”中,以下不可替代w的是()。
A.ab+cB.ch=getcharC.a==b+CD.a++
10.
11.有下列程序:main{chars[]="abcde";s+=2:printf("%d\n",s[0]);}執(zhí)行后的結(jié)果是()。A.輸出字符a的ASCII碼B.輸出字符c的ASCII碼C.輸出字符cD.程序出錯(cuò)
12.
13.某堆棧的輸入序列為a,b,c,d,下面的四個(gè)序列中,不可能是它的輸出序列的是()。
A.a,c,b,dB.b,c,d,aC.c,d,b,aD.d,c,a,b
14.設(shè)有一個(gè)棧,元素依次進(jìn)棧的順序?yàn)锳、B、C、D、E。下列()是不可能的出棧序列。
A.A,B,C,D,EB.B,C,D,E,AC.E,A,B,C,DD.E,D,C,B,A
15.下列程序的執(zhí)行結(jié)果是()。#include<stdioh>main{inta,b,c;a=b=2,c=I;c=(a++)-1;printf("%d,0Ad",a,c);c+=-a+++(++b);printf("%d,%d",a,c);)A.3,14,1B.3,14,2C.2,04,1D.2,14,1
16.有n個(gè)結(jié)點(diǎn)的二叉樹鏈表共有__________個(gè)空指針域。
A.n-1B.nC.n+1D.n+2
17.有以下程序:voidfunl(char*p)程序執(zhí)行后的輸出結(jié)果是()A.ProhsbnB.PrphsbnC.ProgsbnD.Program
18.以下敘述中正確的是A.A.C程序中的注釋只能出現(xiàn)在程序的開始位置和語(yǔ)句的后面
B.C程序書寫格式嚴(yán)格,要求一行內(nèi)只能寫一個(gè)語(yǔ)句
C.C程序書寫格式自由,一個(gè)語(yǔ)句可以寫在多行上
D.用C語(yǔ)言編寫的程序只能放在一個(gè)程序文件中
19.與單鏈表相比,雙鏈表的優(yōu)點(diǎn)之一是()。
A.插入、刪除操作更簡(jiǎn)單B.可以進(jìn)行隨機(jī)訪問(wèn)C.可以省略表頭指針或表尾指針D.順序訪問(wèn)相鄰結(jié)點(diǎn)更靈活
20.若已知一個(gè)棧的進(jìn)棧序列是l,2,3…n,其輸出序列是P1,P2,P3,…PN,若P1=3,則P2為()。
A.可能是2B.一定是2C.可能是1D.一定是1
二、2.填空題(20題)21.用復(fù)合的賦值運(yùn)算符將變量x中的值增大2的賦值表達(dá)式是【】。
22.下列程序的輸出結(jié)果是______。
main()
{imti,sum;
for(i=1;i<7;i++)
sum+=i;
printf("%d",sum);
}
23.對(duì)于軟件測(cè)試,從是否需要執(zhí)行被測(cè)軟件的角度,可以分為靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試。代碼檢查屬于______測(cè)試。
24.下列程序可以判斷輸入的年份是不是閏年。
#include
main()
{int【】,leap;
scanf("%d",&year);
if(year%4)
leap=0;
elseif(year%lO0)
【】;
elseif(year%400)
leap=0;
else
leap=1;
if(【】)
printf("%d年是閏年",year);
else
printf("%d年不是閏年\n",year);
}
25.一個(gè)類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個(gè)方法提高了軟件的【】。
26.以下程序用來(lái)統(tǒng)計(jì)文件中字符個(gè)數(shù)。請(qǐng)?zhí)羁铡?/p>
#include"stdio.h"
main()
{FILE*fp;longnum=OL;
if((fp=fopen("fname.dat","r")==NULL)
{Pirntf("Openerror\n");exit(0);}
while(【】)
{fgetc(fp);num++;}
printf("num=%1d\n",num-1);
fclose(fp);
}
27.下面程序的運(yùn)行結(jié)果是【】。
#defineN10
#defines(x)x*x
#definef(x)(x*x)
mam()
{
intil,i2;
i1=1000/s(N);i2=1000/f(N);
printf("%d%d\n",il,i2);
}
28.以下程序中,for循環(huán)體執(zhí)行的次數(shù)是【】。
#defineN2
#defineMN+1
#defineKM+1*M/2
main()
{
inti;
for(i=1;i<K;i++)
{…}
…
}
29.以下程序運(yùn)行后的輸出結(jié)果是【】。
#include<stdio,h>
main()
{inta=1,b=2,c=3;
if(c=a)printf("%d\n",c);
elseprintf("%d\n",b);}
30.設(shè)有以下程序,為使之正確運(yùn)行,請(qǐng)?jiān)跈M線中填入應(yīng)包含的命令行。(注:try_me()函數(shù)在a:\myfile.txt中有定義。)
______
main()
{printf("\n");
try_me();
printf("\n");}
31.下列程序段的輸出結(jié)果是【】。
main()
{charb[]="Hello,you";
b[5]=0;
printf("%s\n",B);
}
32.以下程序運(yùn)行后的輸出結(jié)果是______。
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");
}
33.診斷和改正程序中錯(cuò)誤的工作通常稱為【】。
34.下列軟件系統(tǒng)結(jié)構(gòu)圖的寬度為[]。
35.以下程序的輸出結(jié)果是【】。
main()
{inta=0;
a+=(a=8);
printf("%d\n",A);
}
36.函數(shù)YangHui的功能是把楊輝三角形的數(shù)據(jù)賦給二維數(shù)組的下半三角,形式如下:
1
11
121
1331
14641
其構(gòu)成規(guī)律是:
①第0列元素和主對(duì)角線元素均為1。
②其余元素為其左上方和正上方元素之和。
③數(shù)據(jù)的個(gè)數(shù)每行遞增1。
請(qǐng)將程序補(bǔ)充完整。
#defineN6
voidyanghui(intx[N][N])
{inti,j;
x[O][0]=1;
for(i=1;i<N;i++)
{x[i][0]=【】=1;
for(j=1;j<i;j++)
x[i][j]=【】;
}
)
37.函數(shù)pi的功能是根據(jù)以下近似公式求π值:
請(qǐng)?jiān)谙旅娴暮瘮?shù)中填空,完成求π的功能。
#include<math.h>
doublepi(longn)
{doubles=0.0;
longi;
for(i=1;i<=n;i++)s=s+【】;
return(sqrt(6*s));
}
38.下列程序執(zhí)行后輸出的結(jié)果是【】。
structs
{intx,y;}data[2]={10,100,20,200};
main()
{
structs*p=data;
printf("%d\n",++(p->x));
}
39.執(zhí)行以下程序后sum的值是【】。
main()
{
inti,sum;
for(i=1;i<6;i++)
sum+=i;
printf("%d\n",sum);
}
40.設(shè)有定義“struct{inta;floatb;charc;}abc,*p_abc=&abc;”,則對(duì)結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc【】a。
三、1.選擇題(20題)41.結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是
A.程序的規(guī)模B.程序的效率C.程序設(shè)計(jì)語(yǔ)言的先進(jìn)性D.程序易讀性
42.有以下程序:#include<stdio.h>main(){charc[6];inti=0;for(;i<6;c[i]=getchar(),i++);for(i=0;i<6;i++)putchar(c[i];printf("\n");}如果從鍵盤上輸入:ab<回車>c<回車>def<回車>則輸出結(jié)果為______。
A.abcdefB.abcdC.abcdD.abcdef
43.以下敘述正確的是()。
A.continue語(yǔ)句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行
B.只能在循環(huán)體內(nèi)和switch語(yǔ)句體內(nèi)使用break語(yǔ)句
C.在循環(huán)體內(nèi)使用break語(yǔ)句或continue語(yǔ)句的作用相同
D.從多層循環(huán)嵌套中退出時(shí),只能使用goto語(yǔ)句
44.有以下程序:#include<stdio.h>main(){FILE*fp;inti,k=0,n=0;fp=fopen("d1.dat","w");for(i=1;i<4;i++)fprintf(fp,"%d",i);fclose(fp);fp=fopen("d1.dat","r");fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n);fclose(fp);}執(zhí)行后輸出結(jié)果是()。
A.12B.1230C.123D.00
45.有以下程序:#definef(x)(x*x)main(){inti1,i2;i1=f(8)/f(4);i2=f(4+4)/f(2+2);printf("%d,%d\n",i1,i2);}程序運(yùn)行后的輸出結(jié)果是______。
A.64,28B.4,4C.4,3D.64,64
46.程序流程圖(PFD)中的箭頭代表的是
A.數(shù)據(jù)流B.控制流C.調(diào)用關(guān)系D.組成關(guān)系
47.以下敘述中不正確的是
A.C語(yǔ)言中的文本文件以ASCII碼形式存儲(chǔ)數(shù)據(jù)
B.C語(yǔ)言中對(duì)二進(jìn)制文件的訪問(wèn)速度比文本文件快
C.C語(yǔ)言中,隨機(jī)讀寫方式不適用于文本文件
D.C語(yǔ)言中,順序讀寫方式不適用于二進(jìn)制文件
48.下列程序的輸出結(jié)果是______。#defineSQR(X)X*Xmain(){inta=16,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf("d\n",a);}
A.16B.2C.9D.1
49.用C語(yǔ)言編寫的代碼程序A.可立即執(zhí)行B.是一個(gè)源程序C.經(jīng)過(guò)編譯即可執(zhí)行D.經(jīng)過(guò)編譯解釋才能執(zhí)行
50.設(shè)有如下定義,則以下敘述中正確的是______。int(*ptr)();
A.ptr是指向一維數(shù)組的指針變量
B.ptr是指向int型數(shù)據(jù)的指針變量
C.ptr是指向函數(shù)的指針,該函數(shù)返回一個(gè)int型數(shù)據(jù)
D.ptr是一個(gè)函數(shù)名,該函數(shù)的返回值是指向int型數(shù)據(jù)的指針
51.執(zhí)行以下程序段后,m的值為______。inta[2][3]={{1,2,3},{4,5,6}};intm,*p;p=&a[0][0];m=(*p)*(*(p+2))*(*(p+4));
A.15B.14C.13D.12
52.執(zhí)行下面的程序段后,變量k中的值為()。intk=3,s[2];s[0]=k;k=s[1]*10;
A.不定值B.33C.30D.10
53.以下敘述中正確的是()。
A.局部變量說(shuō)明為static存儲(chǔ)類,其生存期將得到延長(zhǎng)
B.全局變量說(shuō)明為static存儲(chǔ)類,其作用域?qū)⒈粩U(kuò)大
C.任何存儲(chǔ)類的變量在未賦初值時(shí),其值都是不確定的
D.形參可以使用的存儲(chǔ)類說(shuō)明符與局部變量完全相同
54.函數(shù)fseek(pf,0L,SEEK_END)中的SEEK_END代表的是()。
A.文件開始B.文件末尾C.文件當(dāng)前位置D.以上都不對(duì)
55.請(qǐng)閱讀以下程序:#include<stdio.h>main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case2:a++,b++;break;}printf("a=%d,b=%d\n",a,b);上面程序的輸出結(jié)果是()。
A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2
56.若各選項(xiàng)中所用變量已正確定義,fun()函數(shù)中通過(guò)return語(yǔ)句返回一個(gè)函數(shù)值,下列選項(xiàng)中錯(cuò)誤的程序是()。
A.main(){……x=fun(2,10);……}floatfun(inta,intb){……}
B.floatfun(inta,intb){……}main(){……x=fun(i,j);……}
C.floatfun(int,int);main(){……x=fun(2,10);……}floatfun(inta,intb){……}
D.main(){floatfun(inti,intj);……x=fun(i,j);……}floatfun(inta,intb){……}
57.用樹形結(jié)構(gòu)表示實(shí)體之間聯(lián)系的模型的是
A.關(guān)系模型B.網(wǎng)狀模型C.層次模型D.以上三個(gè)都是
58.若進(jìn)棧序列為1,2,3,4,進(jìn)棧過(guò)程中可以出棧,則下列不可能的一個(gè)出棧序列是______。
A.1,4,3,2B.2,3,4,1C.3,1,4,2D.3,4,2,1
59.設(shè)q1和q2是指向一個(gè)float型一維數(shù)組的指針變量,k為float型變量,則不能正確執(zhí)行的語(yǔ)句是()。
A.k=*q1+*q2;B.q1=k;C.q1=q2;D.k=*q1*(*q2);
60.下列可用于C語(yǔ)言用戶標(biāo)識(shí)符的一組是
A.void,define,WORD
B.a3_b3,_123,Car
C.For,-abc,IFCase
D.2a,DO,sizeof
四、選擇題(20題)61.下列敘述中正確的是()。
A.循環(huán)鏈表是非線性結(jié)構(gòu)
B.雙向鏈表是非線性結(jié)構(gòu)
C.只有一個(gè)根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)
D.有一個(gè)以上根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)
62.有以下程序:
程序的運(yùn)行結(jié)果是()。
A.1212B.117C.1111D.127
63.程序調(diào)試的任務(wù)是()。
A.設(shè)計(jì)測(cè)試用例B.驗(yàn)證程序的正確性C.發(fā)現(xiàn)程序中的錯(cuò)誤D.診斷和改正程序中的錯(cuò)誤
64.有以下程序
main()
{inta,b,d=5;
a=d*10%8;b=a&&(-1);
printf("%d,%d\n",a,b);
}
程序運(yùn)行后的輸出結(jié)果是
A.10,1B.2,1
C.10,0D.2,0
65.
66.
67.設(shè)有定義:,以下不能計(jì)算出一"/Pchar型數(shù)據(jù)所占字節(jié)數(shù)的表達(dá)式是()。
68.下列有關(guān)數(shù)據(jù)庫(kù)的描述,正確的是______。
A.數(shù)據(jù)庫(kù)是一個(gè)DBF文件B.數(shù)據(jù)庫(kù)是一個(gè)關(guān)系C.數(shù)據(jù)庫(kù)是一個(gè)結(jié)構(gòu)化的數(shù)據(jù)集合D.數(shù)據(jù)庫(kù)是一組文件
69.
70.函數(shù)調(diào)用strcat(strcpy(str1,str2),str3)的功能是()。
A.將字符串str1復(fù)制到字符串str2中后再連接到字符串str3之后
B.將字符串str1連接到字符串str2之后再?gòu)?fù)制到字符串str3之后
C.將字符串str2復(fù)制到字符串str1之后再將字符串str3連接到字符串str1之后
D.將字符串str2連接到字符串str1之后再將字符串strl復(fù)制到字符串str3中
71.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。、
A.ABEFB.CDEFC.ABCDD.CDAB
72.一名教師可講授多門課程,一門課程可由多名教師講授。則實(shí)體教師和課程間的聯(lián)系是()。
A.1:l聯(lián)系B.1:m聯(lián)系C.m:l聯(lián)系D.m:n聯(lián)系
73.
74.下列定義數(shù)組的語(yǔ)句中,正確的是()。
A.intN=10;intx[N]:
B.#defineNl0;intx[N];
C.intx[0..10];
D.intx[];
75.在以下選項(xiàng)中,能正確調(diào)用對(duì)象屬性的語(yǔ)句是()。
A.對(duì)象名(屬性名)B.對(duì)象名一>屬性名C.對(duì)象名屬性名D.對(duì)象名.屬性名
76.
77.有以下程序:
#include<stdio.h>
voidexch(intt[])
{t[0]=t[s];}
main()
{intx[10]={1,2,3,4,5,6,7,8,9,10},i=0;
while(i<=4){exch(&x[i]);i++;}
for(i=0;i<5;i++)printf("%dl"x[i]);
printf("\n");
}
程序運(yùn)行后輸出的結(jié)果是()。
A.246810
B.13579
C.12345
D.678910
78.以下程序的輸出結(jié)果是()。main{inta=3:printf("%d\n",(a+a-=a*a));}A.-6B.12C.0D.-12
79.有以下程序程序運(yùn)行后的輸出結(jié)果是()
A.3,5,3,5B.3,5,5,3C.5,3,3,5D.5,3,5,3
80.數(shù)據(jù)庫(kù)管理系統(tǒng)中負(fù)責(zé)數(shù)據(jù)完整性、安全性定義的語(yǔ)言是()。
A.數(shù)據(jù)定義語(yǔ)言B.數(shù)據(jù)管理語(yǔ)言C.數(shù)據(jù)操縱語(yǔ)言D.數(shù)據(jù)控制語(yǔ)言
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)ptoc的功能是:利用插入排序法對(duì)字符串中的字符按從小到大的順序進(jìn)行排序。插入法的基本方法是:先對(duì)字符串中的頭兩個(gè)元素進(jìn)行排序,然后把第3個(gè)字符插入前兩個(gè)字符中,插入后前3個(gè)字符依然有序;再把第4個(gè)字符插入前三個(gè)字符中,待排序的字符串已
在主函數(shù)中賦予。
請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<strin9.h>
#include<stdi0.h>
#defineM80
voidproc(char*arr)
{inti,j,n;charch;
n=strlen(arr):
for(i=1;i<n;i++)
//****found****
{c=arr[i];
j=i-1;
while((j>=o)&&(ch<arr[j]))
{
arr[j+1]=arr[j];
j--;
}
arr[j+1]=ch;
}
}
voidmain
{
chara[M]="QWERTYUIOPASDFGHJKLMNBVCXZ";
printf("Theoriginalstring:%s\n",a);
proc(a);
printf("Thestringaftersortin9:
%s\n\n",a);
}
六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,定義了NxN的二維數(shù)組,并在主函數(shù)中自動(dòng)賦值。請(qǐng)編寫函數(shù)fun(),該函數(shù)的功能是使數(shù)組上三角元素中的值乘以m。若m的值為2,a數(shù)組中的值為197238456則返回主程序后a數(shù)組中的值應(yīng)為2181426164512注意:部分源程序在文件prog1.c中。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語(yǔ)句。試題程序:1#include2#include3#include4#include5#defineN56voidfun(inta[][N],intm)7{89}10main()11{12inta[N][N],m,i,j;13FILE*out;14printf("***Thearray***\n");15for(i=0;i<n;i++)16{for(j=0;j<n;i++)27{for(j=0;j38{for(j=0;j<n;j++)39fprintf(out,"%4d",a[i][j]);40fprintf(out,"\n");41}42fclose(out);43/*********found********/44}1voidfun(inta[][n],intm)2{3inti,j;4for(j=0;j<n;j++)5:for(i=0;i<=j;i++)6:a[i][j]=a[i][j]*m;/*上三角元素中的值乘以m*/
參考答案
1.B
2.A考查用指針來(lái)引用字符數(shù)組元素的方法。指針pl+k相當(dāng)于指針pl向后移動(dòng)了k個(gè)字符的位置,指針p2同理。
3.B該程序首先給一維數(shù)組賦值,然后三次調(diào)用fun函數(shù),其中fun(a,0,3);功能是將一維數(shù)組中第1個(gè)元素和第4個(gè)元素互換,第2個(gè)元素和第3個(gè)元素互換;其中fun(a,4,9);功能是將一維數(shù)組中第5個(gè)元素和第10個(gè)元素互換,第6個(gè)和第9個(gè)元素互換,第7個(gè)元素和第8個(gè)元素互換;其中fun(a.O,9);功能是將將一維數(shù)組中第l個(gè)元素和第10個(gè)元素互換,第2個(gè)元素和第9個(gè)元素互換……依此類推。因此B選項(xiàng)正確。
4.C
5.A題干中,定義一個(gè)二維字符數(shù)組v。然后通過(guò)for循環(huán),輸入4個(gè)字符串welcome、you、to、beijing,將其分別存放在v的4個(gè)元素中。數(shù)組v是存放4個(gè)字符串的二維數(shù)組;“**v”表示第1個(gè)字符串的第一個(gè)字符“w”;“*(v+1)”指向第2個(gè)字符串“you”;“v[3]+3”指向第4個(gè)字符串的第3個(gè)字符開始后的整個(gè)字符串“jing”;“*(v[2]+1)”表示第3個(gè)宇符串的第2個(gè)字符“o”。故本題答案為A選項(xiàng)。
6.D在C語(yǔ)言中,有整型常量、實(shí)型常量、字符常量和字符串常量等類型。整型常量和實(shí)型常量又稱數(shù)值型常量?;菊统A恐荒苡脭?shù)字表示,不帶小數(shù)點(diǎn),例如12、-1和0等,在VC6.0中可以在整型常量的后面加—個(gè)字母l(L的小寫)或L;實(shí)型常量必須用帶小數(shù)點(diǎn)的數(shù)表示,例如3.14159、-2.71828、0.0等;選項(xiàng)A中字母o不符合要求,選頂B中超出八進(jìn)制的范圍,選項(xiàng)C中e后面的不為整數(shù),因此選頂D是正確的。
7.C根據(jù)題意,要求統(tǒng)計(jì)字符數(shù)組s中阿拉伯?dāng)?shù)字的個(gè)數(shù)?!癱hars[]=“012xy\\08s34f4w2”;”,其元素是字符型。字符‘0的ASCII值是48,字符‘\\0’的ASCII值是0,因此可以計(jì)算出‘\\0’之前阿拉伯?dāng)?shù)字的個(gè)數(shù),由字符數(shù)組s可知,有3個(gè)阿拉伯?dāng)?shù)字。故本題答案為C選項(xiàng)。
8.C
9.A符號(hào)<>不是C語(yǔ)言中的運(yùn)算符,所以不能替代。
10.A
11.D因?yàn)樽址麛?shù)組s[]中的數(shù)組名s表示的是一個(gè)地址常量。所以語(yǔ)句“s+=2;”不能將指針在當(dāng)前位置的基礎(chǔ)上再向后移動(dòng)兩位。因而程序編譯時(shí)出錯(cuò)。
12.B
13.D
14.C
15.A本題主要考查自加減運(yùn)算符(++,--)的使用。①如果作為前綴變量“++a,--a”,在使用a之前,先使a的值加1或者減1,再使用表達(dá)式的值參與運(yùn)算;②后綴變量“a++,a--”,先使用表達(dá)式的值參與運(yùn)算,在使用a之后,再使i的值加1或者減1。在本題中計(jì)算表達(dá)式c=(a++)-1時(shí)先使用a的值進(jìn)行計(jì)算,結(jié)果為c=2-1=1,然后將a的值加1,即執(zhí)行完此句后l3-的值是3;表達(dá)式c+=-a+++(++b)也可寫成C=c+(一a++)+(++b),c=1+(一3)+3=1,此時(shí)a=4,b=3。
16.C
17.A本題中使用了函數(shù)的調(diào)用,由funl函數(shù)中的while循環(huán)可知,循環(huán)的作用是為了把q所指向的內(nèi)容增加1,而從主函數(shù)傳到函數(shù)時(shí)是從下標(biāo)為3開始傳,因此當(dāng)調(diào)用函數(shù)執(zhí)行完后,傳過(guò)去的字符串為hsbn,前面不變。
18.C
19.D
20.A
21.x+=2
22.無(wú)定值無(wú)定值解析:for(i=1;i<7;i++)決定了循環(huán)次數(shù)為6次,每次執(zhí)行的操作是Sum+=i,但由于sum沒有初始化,并不知道sum的初值是多少,所以結(jié)果無(wú)定值.
23.靜態(tài)靜態(tài)解析:靜態(tài)測(cè)試包括代碼檢查、靜態(tài)結(jié)構(gòu)分析,代碼質(zhì)量度量等。靜態(tài)測(cè)試不實(shí)際運(yùn)行軟件。
24.yearleap=1leap
25.可重用性繼承的優(yōu)點(diǎn):相似的對(duì)象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余,提高軟件的可重用性。
26.!feof(fp)!feof(fp)解析:本題中統(tǒng)計(jì)文件中字符個(gè)數(shù)的算法可描述為;首先判斷文件位置指針是否指向了文件尾,如果不是則讀出一個(gè)字符,同時(shí)字符的個(gè)數(shù)加1,再判斷文件位置指針是否位于文件尾,如此循環(huán),直到文件位置指針位于文件尾為止。本題首先以讀文件的方式打開了文件“fname.dat”,如果打開成功則把返回的文件型指針賦值給fp,然后通過(guò)循環(huán)求文件中的字符數(shù)。首先判斷文件位置指針是否位于文件尾,如果不是則循環(huán)讀取字符,每次字符數(shù)加l。所以下劃處應(yīng)填循環(huán)條件,文件位置指針不是指向文件尾,即“!feof(fp)”。
27.100010100010解析:首先將程序中的宏替換掉,兩處的宏替換后分別為i1=1000/10*10和i2=1000/(10*10),即i1=1000,i2=10,所以最后輸出的i1和i2的值分別為1000和10。
28.44解析:將程序中所有的宏替換掉可得:M=2+1,K=2+1*2+1/2=4,所以for循環(huán)共循環(huán)了K-1+1次,即4-1+1共4次。
29.11解析:該程序要注意的是if語(yǔ)句的判斷條件“c=a”是賦值,而不是“c==a”。由于a=1,故條件c=a使c的值為1(真),所以輸出c的值1。
30.#include<a:\myfile.txt>#include<a:\\myfile.txt>解析:本題考查了函數(shù)的存儲(chǔ)分類的概念。如果沒有特別說(shuō)明,函數(shù)的存儲(chǔ)范圍是從定義函數(shù)的位置到文件的結(jié)尾,如果其他文件想使用這個(gè)函數(shù),需要用ginclude文件包含命令將定義函數(shù)的文件包含進(jìn)來(lái)。
31.HelloHello解析:字符串中,數(shù)值0或符號(hào)'/0'表示字符串的結(jié)束。本題中,b[5]被賦了0值,表明字符串b的第六個(gè)字符就是結(jié)束標(biāo)志。因此,只輸出前五個(gè)字符,即Hello。
32.010111212010111212解析:本題考查的是靜態(tài)局部變量的運(yùn)用。靜態(tài)局部變量的作用域與普通局部變量一樣,但它的生存期將延長(zhǎng)到程序運(yùn)行結(jié)束。本題的主函數(shù)中使用一個(gè)for循環(huán)輸出循環(huán)變量i和fun(a)的值,由于a的值一直沒被修改過(guò),所以三次調(diào)用的都是fun(5)。第1次調(diào)用,b=0,c=3,所以返回值為5+1+4=10;第2次調(diào)用,因?yàn)閏是靜態(tài)局部變量,它仍然保存著上次調(diào)用結(jié)束時(shí)的值4,而b重新被創(chuàng)建和初始化為0,所以返回值為5+1+5=11;同理,第3次調(diào)用返回的是12。所以,程序最終輸出為:010111212。
33.程序調(diào)試程序調(diào)試解析:程序調(diào)試的任務(wù)是診斷和改正程序中的錯(cuò)誤。程序調(diào)試與軟件測(cè)試不同,軟件測(cè)試是盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤。先要發(fā)現(xiàn)軟件的錯(cuò)誤,然后借助于調(diào)試工具找出軟件錯(cuò)誤的具體位置。軟件測(cè)試貫穿整個(gè)軟件生命期,而調(diào)試主要在開發(fā)階段。
34.33解析:軟件系統(tǒng)結(jié)構(gòu)圖的寬度:整體控制跨度(最大模塊數(shù)的層)的表示。
35.1616解析:在程序中首先將8賦值給變量a,然后在進(jìn)行復(fù)合賦值運(yùn)算。即a=a+a=8+8=16,所以該空格處應(yīng)該填16。
36.x[i][i]x[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]x[i][i]\r\nx[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]解析:在程序中用兩重循環(huán)。在第一層循環(huán)中將每行的第0列賦值為1,對(duì)角線上的元素賦值為1顯然在第一個(gè)空中應(yīng)該填入對(duì)角線上的元素即x[i][i],在第2重循環(huán)中給每行其他元素賦值,而在每行中除了第0列和對(duì)角線的元素外其他元素為其對(duì)應(yīng)的上一行中同列和同列的前一列的元素相加,所以在第二個(gè)空中應(yīng)該填入x[i-1][j-1]+x[i-1][j]。
37.(double)1/(i*i)或10/(i*i)(double)1/(i*i)或1,0/(i*i)解析:本題考查數(shù)據(jù)類型的轉(zhuǎn)換。由題意s=1+1/(2*2)/1/(3*3)+…+1/(n*n),它的循環(huán)體為s=s+1/(i*i),由于s為double型數(shù)據(jù),所以要將1/(i*i)的值轉(zhuǎn)換為double類型。
38.1111解析:程序中結(jié)構(gòu)體數(shù)組data首地址(即&data[0])賦值給結(jié)構(gòu)體指針變量p,++(P->x)表示先將p所指向的結(jié)構(gòu)體變量的成員x值加1,然后將此x(即data[0].x)輸出。
39.1515解析:程序的功能是求1、2、3、4、5的和即15。
40.->->解析:若結(jié)構(gòu)體變量abc有成員a,并有指針p_abc指向結(jié)構(gòu)變量abc,則引用變量abc成員a的標(biāo)記形式有abc.a和p_abc->a。
41.D結(jié)構(gòu)化程序設(shè)計(jì)由迪杰斯特拉(E.W.dijkstra)在1969年提出,他主張“清晰第一,效率第二”,以模塊化設(shè)計(jì)為中心,將待開發(fā)的軟件系統(tǒng)劃分為若干個(gè)相互獨(dú)立的模塊,這樣使完成每一個(gè)模塊的工作變得單純而明確,為設(shè)計(jì)一些較大的軟件打下了良好的基礎(chǔ)。
由于模塊相互獨(dú)立,因此,在設(shè)計(jì)其中一個(gè)模塊時(shí),不會(huì)受到其他模塊的牽連,因而可將原來(lái)較為復(fù)雜的問(wèn)題化簡(jiǎn)為一系列簡(jiǎn)單模塊的設(shè)計(jì)。模塊的獨(dú)立性還為擴(kuò)充已有的系統(tǒng)、建立新系統(tǒng)帶來(lái)了不少的方便,因?yàn)榭梢猿浞掷矛F(xiàn)有的模塊作為積木式的擴(kuò)展。
結(jié)構(gòu)化程序設(shè)計(jì)的基本思想是采用“自頂向下,逐步求精”的程序設(shè)計(jì)方法和“單入口單出口”的控制結(jié)構(gòu)。自頂向下、逐步求精的程序設(shè)計(jì)方法從問(wèn)題本身開始,經(jīng)過(guò)逐步細(xì)化,將解決問(wèn)題的步驟分解為由基本程序結(jié)構(gòu)模塊組成的結(jié)構(gòu)化程序框圖;“單入口單出口”的思想認(rèn)為一個(gè)復(fù)雜的程序,如果它僅是由順序、選擇和循環(huán)三種基本程序結(jié)構(gòu)通過(guò)組合、嵌套構(gòu)成,那么這個(gè)新構(gòu)造的程序一定是一個(gè)單入口單出口的程序。據(jù)此就很容易編寫出結(jié)構(gòu)良好、易于調(diào)試的程序。
42.C解析:getchar():此函數(shù)的作用是從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入—個(gè)字符。
2.putchar():此函數(shù)的作用是向終端輸出—個(gè)字符,也可以輸出控制字符。
本題在輸入字符時(shí),ab和c后面的回車符分別賦給了c[2]和c[4],所以,正確答案為C。
43.B解析:continue是結(jié)束本次循環(huán),直接進(jìn)入到下次循環(huán)中,break用于循環(huán)語(yǔ)句中的作用是直接跳出本層循環(huán),能從多層循環(huán)中退出的語(yǔ)句除了goto語(yǔ)句,exit,return等語(yǔ)句也能直接跳出多層循環(huán)。注意:continue和break語(yǔ)句在while語(yǔ)句中的作用。
44.B解析:函數(shù)fopen(constchar*filename,constchar*mode)的功能,是以mode指定的模式打開filename指定的磁盤文件;fclose(FILE*fp)的功能是關(guān)閉文件指針fp指向的文件;函數(shù)fscanf(FILE*fp,constchar*format[,address,--])的功能是根據(jù)format中的格式從fP指向的文件中讀取數(shù)據(jù),并存入到相應(yīng)的address指向的變量中。函數(shù)fprintf(FILE*fp,constchar*format[,argument,--])的功能是把a(bǔ)rgument列表中的表達(dá)式值寫到fp所指向的文件中:本題中首先定義了一個(gè)文件指針fp,然后通過(guò)函數(shù)fopen以“w”的方式打開文件“d1.dat”,直接通過(guò)一個(gè)for循環(huán),每循環(huán)一次調(diào)用函數(shù)fpfintf將i的值寫進(jìn)fP所指的文件中,該循環(huán)共循環(huán)3次,循環(huán)完后fP所指文件的內(nèi)容為123,然后通過(guò)fclose函數(shù)關(guān)閉fp所指文件。接著通過(guò)fscanf函數(shù)將fP所指文件的內(nèi)容讀出并賦值給變量k和變量n,由于fp所指文件中只有123沒有分隔符,故只給k賦值為123,變量n的值依然為以前的值,故最后輸出k和n的值為123。
45.C解析:根據(jù)題意,il=f(8)/f(4)進(jìn)行宏替換后.i1=(8*8)/(4*4)=4,i2=f(4+4)/f(2+2)=(4+4*4+4)/(2+2*2+2)=24/8=3。所以輸出結(jié)果為4、3。
46.B解析:程序流程圖(PFD)是一種傳統(tǒng)的、應(yīng)用廣泛的軟件過(guò)程設(shè)計(jì)表示工具,通常也稱為程序框圖,其箭頭代表的是控制流。
47.D解析:在C語(yǔ)言中文本文件是以ASCII碼形式存放的,每個(gè)字符占一個(gè)字節(jié)。由于數(shù)據(jù)在計(jì)算機(jī)中是以二進(jìn)制形式存放的,因此二進(jìn)制文件中的數(shù)據(jù)可以直接讀出,而不需要像文本文件那樣把ASCII碼轉(zhuǎn)換成二進(jìn)制,因此速度較快。在文本文件葉,,數(shù)據(jù)以ASCII碼形式存放,用戶很難判定一個(gè)數(shù)據(jù)到底占幾個(gè)字節(jié),所以不適合使用隨機(jī)讀寫方式。數(shù)據(jù)以二進(jìn)制形式存放,占有的字節(jié)數(shù)是固定的,所以可以進(jìn)行隨機(jī)讀寫,當(dāng)然也可以順序讀寫。故D選項(xiàng)為所選。
48.B
49.B解析:C語(yǔ)言是一種高級(jí)語(yǔ)言,C語(yǔ)言源程序經(jīng)過(guò)C語(yǔ)言編譯程序編譯之后,生成一個(gè)后綴為.OBJ的二進(jìn)制文件(稱為目標(biāo)文件),最后還要由稱為“連接程序”(Link)的軟件,把此.OBJ文件與c語(yǔ)言提供的各種庫(kù)函數(shù)連接在一起,生成一個(gè)后綴.EXE的可執(zhí)行文件。顯然C語(yǔ)言不能立即執(zhí)行。
50.C解析:“int(*ptr)();”說(shuō)明ptr是一個(gè)指向函數(shù)的指針,返回值是整型。*ptr兩邊的括號(hào)非常關(guān)鍵,表示*和ptr組合成一個(gè)指針變量,然后再和后邊的圃括號(hào)結(jié)合,表示該指針變量*ptr是一個(gè)指向函數(shù)的指針變量。如果沒有*ptr兩邊的括號(hào),“int*ptr();”表示ptr是個(gè)函數(shù),該函數(shù)返回指向整型數(shù)據(jù)的指針。
51.A
52.A解析:定義數(shù)組時(shí),沒有對(duì)s[1]進(jìn)行初始化,因此s[1]的值不確定,所以k=s[1]*10的值也不確定。
53.A解析:局部變量在執(zhí)行到它所在的程序塊時(shí)產(chǎn)生,執(zhí)行完時(shí)被摧毀,而靜態(tài)局部變量的生存期將一直延長(zhǎng)到程序運(yùn)行結(jié)束,故選項(xiàng)A正確;全局變量的只有一種靜態(tài)存儲(chǔ)類別,故全局變量說(shuō)明為static存儲(chǔ)類,和沒有說(shuō)明為static存儲(chǔ)類其生存期都是一直延長(zhǎng)到程序運(yùn)行結(jié)束,故選項(xiàng)B不正確:未賦初值的局部變量的初值是隨機(jī)的,故選項(xiàng)C不正確;形參只能是一般局部變量,不能使用任何存儲(chǔ)類說(shuō)明符,故選項(xiàng)D不正確。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。
54.B解析:SEEK_END代表的是文件末尾,SEEK_SET代表的是文件的開始,SEEK_CUR代表的是文件當(dāng)前位置。
55.A解析:switch語(yǔ)句的執(zhí)行過(guò)程為:進(jìn)入switch結(jié)構(gòu)后,對(duì)條件表達(dá)式進(jìn)行運(yùn)算,然后從上至下去找與條件表達(dá)式值相匹配的case,以此作為入口,執(zhí)行switch結(jié)構(gòu)中后面的各語(yǔ)句,直到遇到break語(yǔ)句,則跳出switch語(yǔ)句,如果各case都不匹配時(shí)則執(zhí)行default后面的語(yǔ)句。注意:if語(yǔ)句及if嵌套語(yǔ)句的使用。
56.A解析:C語(yǔ)言規(guī)定,函數(shù)必須先定義,后調(diào)用(函數(shù)的返回值類型為int或char時(shí)除外)。在選項(xiàng)A)中,調(diào)用的子函數(shù)在調(diào)用后面定義,所以不正確。在選項(xiàng)B)、C)中,被調(diào)用函數(shù)在主調(diào)函數(shù)之前定義,再在主函數(shù)中調(diào)用,所以是正確的;在選項(xiàng)D)中,在主調(diào)函數(shù)中先對(duì)子函數(shù)floatfun(inti,intj)進(jìn)行了定義,然后進(jìn)行調(diào)用。
57.C解析:在數(shù)據(jù)庫(kù)系統(tǒng)中,由于采用的數(shù)據(jù)模型不同,相應(yīng)的數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)也不同。目前常用的數(shù)據(jù)模型有三種:層次模型、網(wǎng)狀模型和關(guān)系模型。在層次模型中,實(shí)體之間的聯(lián)系是用樹結(jié)構(gòu)來(lái)表示的,其中實(shí)體集(記錄型)是樹中的結(jié)點(diǎn),而樹中各結(jié)點(diǎn)之間的連線表示它們之間的關(guān)系。因此,本題的正確答案是C。
58.C解析:棧是一種后進(jìn)先出表,選項(xiàng)C中,先出棧的是3,說(shuō)明此時(shí)棧內(nèi)必然有1,2,由于1先于2進(jìn)淺,所以1不可能在2之前出棧,故選項(xiàng)C這種出棧序列是不可能的。
59.B解析:選項(xiàng)A)是將指針q1和q2所指向的變量值相加,然后賦給k;選項(xiàng)B)中,float型數(shù)據(jù)和指針型數(shù)據(jù)之間不能進(jìn)行賦值運(yùn)算:選項(xiàng)C)中,是兩個(gè)指針變量之間的賦值:選項(xiàng)D)中,是兩個(gè)指針型變量所指向的兩個(gè)float
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國(guó)農(nóng)科院農(nóng)業(yè)資源與農(nóng)業(yè)區(qū)劃研究所土壤耕作與種植制團(tuán)隊(duì)博士后公開招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 中儲(chǔ)糧高頻重點(diǎn)提升(共500題)附帶答案詳解
- 個(gè)人借款合同:2024年創(chuàng)新還款機(jī)制一
- 2025青海省事業(yè)單位聯(lián)考招聘(2744人)高頻重點(diǎn)提升(共500題)附帶答案詳解
- 二零二五年度白酒年份酒酒莊參觀與體驗(yàn)代理協(xié)議3篇
- 2025年度甲乙雙方關(guān)于影視制作的合作協(xié)議2篇
- 2025年山東煙臺(tái)衛(wèi)生健康委員會(huì)所屬事業(yè)單位綜合類崗位招聘45人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年山東濰坊臨朐縣事業(yè)單位招聘工作人員41人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年山東濟(jì)南市槐蔭區(qū)所屬事業(yè)單位招聘51人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年山東濟(jì)南市文化和旅游局所屬事業(yè)單位招聘42人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- (正式版)SHT 3075-2024 石油化工鋼制壓力容器材料選用規(guī)范
- 企業(yè)年度招聘計(jì)劃實(shí)施方案及費(fèi)用預(yù)算表Word
- 【真題】2023年徐州市中考道德與法治試卷(含答案解析)
- 三年級(jí)上冊(cè)數(shù)學(xué)脫式計(jì)算練習(xí)300題附答案
- 2024年公務(wù)員考試新疆維吾爾新疆生產(chǎn)建設(shè)兵團(tuán)圖木舒克市《行政職業(yè)能力測(cè)驗(yàn)》全真模擬試卷含解析
- 死因監(jiān)測(cè)工作總結(jié)
- 2024年中國(guó)華融資產(chǎn)管理股份有限公司招聘筆試參考題庫(kù)含答案解析
- 人教版數(shù)學(xué)四年級(jí)下冊(cè)全冊(cè)各單元教材解讀教材解析
- 義務(wù)教育化學(xué)課程標(biāo)準(zhǔn)2022年
- 前端開發(fā)入門教程
- 護(hù)理給藥制度課件
評(píng)論
0/150
提交評(píng)論