版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2021年廣東省東莞市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)重點(diǎn)匯總測試卷(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.
2.以下敘述中錯(cuò)誤的是()。
A.函數(shù)的返回值類型不能是結(jié)構(gòu)體類型,只能是簡單類型
B.函數(shù)可以返回指向結(jié)構(gòu)體變量的指針
C.可以通過指向結(jié)構(gòu)體變量的指針訪問所指結(jié)構(gòu)體變量的任何成員
D.只要類型相同,結(jié)構(gòu)體變量之間可以整體賦值
3.設(shè)x=011050,則x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
4.為了使模塊盡可能獨(dú)立,要求()。
A.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強(qiáng)
B.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱
C.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱
D.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強(qiáng)
5.
有以下程序
#include<stdio.h>
main
{inta=1,b=2,c=3,x;
x=(a^b)&C;printf("%d",x);
}
程序的運(yùn)行結(jié)果是()。
A.0B.1C.2D.3
6.
7.在下列幾種排序方法中,空間復(fù)雜度最高的是()
A.歸并排序B.快速排序C.插入排序D.選擇排序
8.若有以下定義,則能使值為3的表達(dá)式是intk=7,x=12;
A.x%=(k%=5)B.x%=(k-k%5)C.x%=k-k%5D.(x%=k)-(k%=5)
9.在學(xué)生管理的關(guān)系數(shù)據(jù)庫中,存取一個(gè)學(xué)生信息的數(shù)據(jù)單位是()。
A.文件B.數(shù)據(jù)庫C.字段D.記錄
10.鏈表不具有的特點(diǎn)是()。
A.插入、刪除不需要移動(dòng)元素B.可隨機(jī)訪問任一元素C.不必事先估計(jì)存儲(chǔ)空間D.所需空間與線性長度成正比
11.
12.下列選項(xiàng)中,能夠滿足“若字符串s1等于字符串s2,則執(zhí)行ST”要求的是()。A.if(strcmp(s2,s1)==0)ST;
B.if(s1===s2)ST;
C.if(strcpy(s1,s2)==1)ST;
D.if(s1,s2==0)ST;
13.表達(dá)式a*(-b+c)的逆波蘭式是()
A.ab-+c*B.abc-+*C.a*b-c+D.ab-c+*
14.有以下程序
#include<stdio.h>
intfun()
{staticintx=1;
x*2;returnx;
}
main()
{inti,s=1,
for(i=1;i<=2;i++)s=fun();
printf("%d\n",s);
}
程序運(yùn)行后的輸出結(jié)果是A.A.0B.1C.4D.8
15.以下選項(xiàng)中,不能作為合法常量的是
A.1.234e04B.1.234e0.4C.1.23E+4D.1.234e0
16.有以下程序:#include<stdio.h>main(){intx=0x9;printf(“%c\n”,‘A’+x);}程序運(yùn)行后的輸出結(jié)果是()。
A.IB.JC.KD.H
17.堆是一種有用的數(shù)據(jù)結(jié)構(gòu)。下列關(guān)鍵碼序列()是一個(gè)堆。
A.94,31,53,23,16,72
B.94,53,31,72,16,23
C.16,53,23,94,31,72
D.16,31,23,94,53,72
18.有以下程序:#include<stdio.h>structtt{intx;structtt*y;}*p;structtta[4]={20,a+1,15,a+2,30,a+3,17,a};main(){inti;p=a;for(i=1;i<=2;i++){printf(“%d,”,p->x);p=p->y;}}程序的運(yùn)行結(jié)果是()。
A.20,30,B.30,17,C.15,30,D.20,15,
19.下列定義中,不正確的有______。
A.#definePI3.141592
B.#defineS345;
C.intmax(x,y);
D.staticcharc;intx,y;{...}
20.有以下程序
#include<stdio.h>
main()
{structnode{intn;structnode*next;}*p;
structnodex[3]={{2,x+1},{4,x+2},{6,NULL}};
p=x:
printf("%d,",p->n);
printf("%d\n",P->next->n);
}
程序運(yùn)行后的輸出結(jié)果是A.A.2,3B.2,4C.3,4D.4,6
二、2.填空題(20題)21.若i、j為int類型,則以下程序段內(nèi)循環(huán)體的總執(zhí)行次數(shù)是【】。
for(i=5;i;i--)
for(j=0;j<3;j++)
{
}
22.下面程序把從終端讀入的文本(用#作為文本結(jié)束標(biāo)志)復(fù)制到一個(gè)名為file.txt的新文件中。補(bǔ)足所缺語句。
main()
{charch;
FILE*fp;
if((fp=fopen(______))=NULL)exit(0);
while((ch=getchar())!='#')
fputc(ch,fp);
______;
}
23.以下程序的運(yùn)行結(jié)果是()。
intk=0;
voidfun(intm)
{m+=k;k+=m;printf("m=%d\nk=%d",m,k++);}
main()
{inti=4;
fun(i++);printf("i=%dk=%d\n",i,k);
}
24.將代數(shù)式轉(zhuǎn)換成程序設(shè)計(jì)中的表達(dá)式為【】。
25.下面程序由兩個(gè)源程序文件:t4.h和t4.c組成,程序編譯運(yùn)行的結(jié)果是:【】。
t4.h的源程序?yàn)椋?/p>
#defineN10
#dennef2(x)(x*N)
t4.c的源程序?yàn)椋?/p>
#include<stdio.h>
#defineM8
#definef(x)((x)*M)
#include"t4.h"
#main()
{inti,j;
i=f(1+1);j=f2(1+1);
printf(%d%d\n",i,j);
}
26.以下程序的運(yùn)行結(jié)果是【】。
#defineMAX(a,b)(a>b?a:b)+1
main()
{inti=6,j=8,k;
printf("%d\n",MAX(i,j));
}
27.軟件開發(fā)環(huán)境是全面支持軟件開發(fā)全過程的【】集合。
28.在程序設(shè)計(jì)階段應(yīng)該采取【】和逐步求精的方法,把一個(gè)模塊的功能逐步分解,細(xì)化為一系列具體的步驟,進(jìn)而用某種程序設(shè)計(jì)語言寫成程序。
29.設(shè)有下列的程序段;
charstr[]="Hello";
char*ptr;
ptr=str;
執(zhí)行上面的程序段后,*(ptr+5)的值為______。
30.與表達(dá)式a+=b等價(jià)的另一書寫形式是______。
31.對(duì)下列二叉樹進(jìn)行中序遍歷的結(jié)果為【】。
32.若fp已正確定義為一個(gè)文件指針,d1.dat為二進(jìn)制文件,請(qǐng)?zhí)羁眨员銥椤白x”而打開此文件:
fp=fopen(【】);。
33.數(shù)據(jù)庫理論中,數(shù)據(jù)的獨(dú)立性一般可分為物理獨(dú)立性和______。
34.以下程序運(yùn)行后的輸出結(jié)果是【】。
#include<stdio.h>
main()
{inti,m=0,n=0,k=0;
for(i=9;i<=11;i++)
switch(i/10)
{case0:m++;n++;break;
case10:n++;break;
default:k++;n++;
}
printf("%d%d%d\n",m,n,k);
}
35.下面程序是計(jì)算100以內(nèi)能被4整除且個(gè)位數(shù)為4的所有整數(shù),請(qǐng)?zhí)羁铡?/p>
main()
{intm,n;
for(m=0;【】;m++)
{n=m*10+4;
If(【】)continue;
printf("%d\n",n);}}
36.“printf("%d\n",strlen("\t\"023\xABC\n");”語句的輸出結(jié)果是______。
37.若有以下程序
main()
{intp,a=5;
if(p=a!=0)
printf("%d\n",p);
else
pfintf("%d\n",p+2);
}
執(zhí)行后輸出結(jié)果是【】。
38.現(xiàn)有如下定義:structaa{inta;floatb;charc;}*p;現(xiàn)需用malloc函數(shù)動(dòng)態(tài)的申請(qǐng)一個(gè)structaa類型大小的空間(由p指向),則定義的語句為:【】。
39.mystrlen函數(shù)的功能是計(jì)算str所指字符串的長度,并作為函數(shù)值返回。請(qǐng)?zhí)羁铡?/p>
intmystrlen(char*str)
{inti;
for(i=0;【】!='\0';i++);
return(i);}
40.測試的目的是暴露錯(cuò)誤,評(píng)價(jià)程序的可靠性;而______的目的是發(fā)現(xiàn)錯(cuò)誤的位置并改正錯(cuò)誤。
三、1.選擇題(20題)41.有以下結(jié)構(gòu)體說明和變量定義,如圖所示,指針p、q、r分別指向一個(gè)鏈表中的三個(gè)連續(xù)結(jié)點(diǎn)。structnode{intdata;tractnode*next;}*p,*q,*r;
現(xiàn)要將q和r所指結(jié)點(diǎn)的先后位置交換,同時(shí)要保持鏈表的連續(xù),以下錯(cuò)誤的程序段是
A.r->next=q;q->next=r->next;p->next=r;
B.q->next=r->next;p-next=r;r->next=q;
C.p->next=r;q->next=r->next;r->next=q;
D.q->next=r->next;r->next=q;P->next=r;
42.標(biāo)準(zhǔn)庫函數(shù)fgets(s,n,file)的功能是()。
A.從文件file中讀取長度為n的字符串存入字符數(shù)組s中
B.從文件file中讀取長度不超過n-1個(gè)字符的字符串放到字符數(shù)組s中
C.從文件file中讀取n個(gè)字符串存入字符數(shù)組s中
D.從文件file中讀取長度為n-1個(gè)字符的字符串存入字符數(shù)組s中
43.下列敘述中不正確的是()。
A.在C語言中調(diào)用函數(shù)時(shí),只能把實(shí)參的值任送給形參,形參的值不能傳送給實(shí)參
B.在C的函數(shù)中,最好使用全局變量
C.外部變量可以在函數(shù)之間傳遞數(shù)據(jù)
D.自動(dòng)變量實(shí)質(zhì)上是一個(gè)函數(shù)內(nèi)部的局部變量
44.已知一棵二叉樹前序遍歷和中序遍歷分別為ABDEGCFH和DBGEACHF,則該二叉樹的后序遍歷為()。
A.GEDHFBCAB.DGEBHFCAC.ABCDEFGHD.ACBFEDHG
45.有以下程序#include<stdio.h>main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;case3:a++;b++;}printf("a=%d,b=%d\n",a,b);}程序的運(yùn)行結(jié)果是
A.a=1,b=0B.a=2,b=2C.a=1,b=1D.a=2,b=1
46.以下程序段的輸出結(jié)果是______。main(){chars1[10],s2[10],s3[10];scanf("%s",s1);gets(s2);gets(s3);puts(s1);puts(s2);puts(s3);}輸入數(shù)據(jù)如下:(此處<CR>代表回車符)aaa<CR>bbb<CR>
A.aaabbbB.aaabbbC.aaa\0bbb\0D.aaabbb
47.若運(yùn)行時(shí)給變量x輸入12,則以下程序的運(yùn)行結(jié)果是main(){intx,y;scanf("%d",&x);y=x>12?x+10:x-12;printf("%d\n",y);}
A.0B.22C.12D.10
48.若執(zhí)行下列程序時(shí)從鍵盤上輸入2,則輸出結(jié)果是()。#include<stdio.h>main(){inta;scanf("%d",&a);if(a++<3)printf("%d\n",a);elseprintf("%d\n",a--);}
A.1B.3C.2D.4
49.請(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
50.閱讀以下程序及對(duì)程序功能的描述,其中正確的是
#include<stdio.h>
main()
{FILE*in,*out;
charch,infile[10],outfile[10];
printf("Entertheinfilename:\n");
scanf("%s",infile);
printf("Entertheoutfilename:\n");
scanf("%s",outfile);
if((in=fopen(infile,"r"))==NULL)
{printf("cannotopeninfile\n");
exit(0);}
if((out=fopen(outfile,"w"))==NULL)
{printf("cannotopenoutfile\n");
exit(0);}
while(!feof(in))fputc(fgetc(in),out);
fclose(in);fclose(out);}
A.程序完成將磁盤文件的信息在屏幕上顯示的功能
B.程序完成將兩個(gè)磁盤文件合二為一的功能
C.程序完成將一個(gè)磁盤文件復(fù)制到另一個(gè)磁盤文件中
D.程序完成將兩個(gè)磁盤文件合并并在屏幕上輸出
51.以下程序有錯(cuò),錯(cuò)誤原因是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沒有指向具體的存儲(chǔ)單元,所以*q沒有實(shí)際意義
D.q雖然指向了具體的存儲(chǔ)單元,但該單元中沒有確定的值,所以執(zhí)行*p=*q;沒有意義,可能會(huì)影響后面語句的執(zhí)行結(jié)果
52.C語言程序的基本單位是______。
A.程序行B.語句C.函數(shù)D.字符
53.若有說明inti,j=2,*p=&i;,則能完成i=j賦值功能的語句是______。
A.i=*p;B.*p=*&j;C.i=&j;D.i=**p;
54.結(jié)構(gòu)化程序設(shè)計(jì)的三種結(jié)構(gòu)是()。
A.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)
B.分支結(jié)構(gòu)、等價(jià)結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
C.多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價(jià)結(jié)構(gòu)
D.順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
55.下列選項(xiàng)中不屬于軟件生命周期開發(fā)階段任務(wù)的是()。
A.軟件測試B.概要設(shè)計(jì)C.軟件維護(hù)D.詳細(xì)設(shè)計(jì)
56.下列不屬于軟件工程的3個(gè)要素的是______。
A.工具B.過程C.方法D.環(huán)境
57.下列合法的聲明語句是()。
A.int_abc=50;
B.doubleint=3+5e2.5;
C.longdo=1L:
D.float3_asd=3e-3;
58.已知inta=2,b=3;則執(zhí)行表達(dá)式a=a<b后,變量a的值為()。
A.0B.1C.2D.3
59.有以下程序#include<stdio.h>main(){FILE*fp;inta[10]={1,2,3},i,n;fp=fopen("d1.daf","w");for(i=0;i<3;i++)fprintf(fp,"%d",a[i]);fprintf(fp,"\n");fclose(fp);fp=fopen("d1.dat","r");fscanf(fp,"%d",&n);fclose(fp);
A.12300B.123C.1D.321
60.已知:intc[3][4];,則對(duì)數(shù)組元素引用正確的是()。
A.c[1][4]B.c[1.5][0]C.c[1+0][0]D.以上表達(dá)都錯(cuò)誤
四、選擇題(20題)61.有以下程序
62.以下關(guān)于return語句的敘述中正確的是()。A.一個(gè)自定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語句
B.一個(gè)自定義函數(shù)中必須有一條return語句
C.定義成void類型的函數(shù)中可以有帶返回值的retum語句
D.沒有return語句的自定義函數(shù)在執(zhí)行結(jié)束時(shí)不能返回到調(diào)用處
63.
64.下列選項(xiàng)中不合法的十六進(jìn)制數(shù)是()。A."0"xff
B."0"X11
C."0"x1g
D."0"Xabc
65.在E-R圖中,用來表示實(shí)體的圖形是
A.矩形B.橢圓形C.菱形D.三角形
66.
有以下程序
#include<stdi0.h>
main
{FILE*fp;inta[0]一{1,2,3,0,0},i;
fp=fopen("d2.dat,"wb");
fwrite(a,sizeof(int),5,fp);
fwrite(a,sizeof(int),5,fp);
fclose(fp);
fp=fopen("d2.dat","rb");
fread(a.sizeof(int),10,fp);
fclose(fp);
for(i=0;i<10;i++)printft("%d",a[i]);
}
程序的運(yùn)行結(jié)果是()。
A.1,2,3,0,0,o,0,0,0,0,
B.1,2,3,1,2,3,0,0,0,0,
C.123,0,0,0,0,123,0,0,0,0,
D.1,2,3,0,0,1,2,3,0,0,
67.有如下程序
main()
{
chars[]="ABCD",*p;
for(p=s+1;p<s+4;p++)
printf("%s\n",p);
}
該程序的輸出結(jié)果是
68.以下程序段完全正確的是()。
69.
70.
71.
若希望下列的程序運(yùn)行后輸出25,程序空白處的正確選項(xiàng)是()。
main
{inti,j=50,a[]={7,4,10,5,8};
for()
j+=a[i];
printf("%d",j-40);
}
A.i=l;i<4;++i
B.i=1;i<3;++i
C.i=4;i>2;i--
D.i=2;i<4;++i
72.支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是()。
A.棧B.樹C.隊(duì)列D.二叉樹
73.
74.執(zhí)行下列程序時(shí)輸入:123<空格>456<空格>789<回車>,輸出結(jié)果是
main()
{chars[100];intc,i;
scanf("%c",&c);scanf("%d",&i);scanf("%s",s);
prinnf("%c,%d,%s\n",c,i,s);}
A.123,456,789B.1,456,789
C.1,23,456,789D.1,23,456
75.
有下列程序:
main
{char*p[]={"3697","2584"};
inti,j;longnum=0;
for(i=0;i<2:i++)
{j=0;
while(p[i][j]!=\0)
{if((p[i][j]-\0)%2)num=1O*num+p
[j][j]-0;
j+=2;
}
}
printf("%d\n",num);
}
程序執(zhí)行后的輸m結(jié)果是()。
A.35B.37C.39D.3975
76.有以下程序程序運(yùn)行后的輸出結(jié)果是()。
A.9B.10C.8D.7
77.設(shè)有定義intn1=0,n2,*p=&n2,*q=&n1;,以下賦值語句中與n2=n1;語句等價(jià)的是______。A.*p=*q;B.p=q;C.*p=&n1;D.p=*q;
78.若變量已正確定義并賦值,下面符合C語言要求的表達(dá)式是
A.a(chǎn):=b+1B.a(chǎn)=b=c+2C.int18.5%3D.a(chǎn)=a+7=c+b
79.
80.以下選項(xiàng)中不屬于字符常量的是()。
A.
B.
C.
D.
五、程序改錯(cuò)題(1題)81.下列給定程序中,proc()函數(shù)的功能是:根據(jù)形參m,計(jì)算下列公式的值。t=1+1/2+1/3+1/4+…+1/m例如,若輸入10,則應(yīng)輸出2.928968。請(qǐng)修改程序中的錯(cuò)誤,使它能計(jì)算出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編寫函數(shù)fun(),其功能是將形參s所指字符串放入形參a所指的字符數(shù)組中,使a中存放同樣的字符串。說明:不得使用系統(tǒng)提供的字符串函數(shù)。注意:部分源程序存放在文件prog1.c中,請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()指定的部位填入所編寫的若干語句。試題程序:
參考答案
1.D
2.A函數(shù)返回值類型可以是簡單類型和結(jié)構(gòu)體類型。
3.A本題考查按位與運(yùn)算,按位與就是相同為1,不同為0,把x=011050化成二進(jìn)制為0001001000101000,把01252化成二進(jìn)制為0000001010101010,兩者相與得0000001000101000。
4.B解析:模塊獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。耦合性與內(nèi)聚性是模塊獨(dú)立性的兩個(gè)定性標(biāo)準(zhǔn),耦合與內(nèi)聚是相互關(guān)聯(lián)的。在程序結(jié)構(gòu)中,各模塊的內(nèi)聚性越強(qiáng),則耦合性越弱。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性。本題答案為B。
5.D
\n首先計(jì)算1與2的或運(yùn)算,再將其結(jié)果與3進(jìn)行“與”運(yùn)算,結(jié)果為00000011,即十進(jìn)制數(shù)3。
\n
6.A
7.A
8.D解析:運(yùn)算符“%”的兩側(cè)都應(yīng)該是整型數(shù)。另外,本題需要掌握的知識(shí)點(diǎn)是:x%=k,等價(jià)于x=x%k。注意:強(qiáng)制類型轉(zhuǎn)換表達(dá)式。
9.D解析:在關(guān)系數(shù)據(jù)表中,行稱為元組,對(duì)應(yīng)存儲(chǔ)文件中的記錄,列稱為屬性,對(duì)應(yīng)存儲(chǔ)文件中的字段,所以本題答案為D。
10.BB選項(xiàng)的特點(diǎn)是順序存儲(chǔ)結(jié)構(gòu)的特點(diǎn),即數(shù)組的特點(diǎn)。
11.B
12.A解析:strcmp(char*,char*),函數(shù)strcmp用于比較兩個(gè)字符串的長度,長者為大,若字符個(gè)數(shù)也一樣,則從左至右依次比較相同位上的字符,字符大小按ASCⅡ表值計(jì)算,直到最后一個(gè)字符,若還相同,則兩個(gè)字符串相等,返回值0。選項(xiàng)A中if(strcmp(s2,s1)=0)ST,若s2等于s1,則返回值0,0等于0,所以邏輯表達(dá)式strcmp(s2,s1)=0為真執(zhí)行ST。
13.D
14.C
15.B解析:C語言的語法規(guī)定,字母e(E)之前必須有數(shù)字,且e(E)后面的指數(shù)必須是整數(shù),而選項(xiàng)B)中,e(E)后面的指數(shù)是小數(shù),所以不合法。
16.B“printf(“%C\\n”,‘A’+X),x=0X9;”中0x9是十六進(jìn)制數(shù),轉(zhuǎn)為十進(jìn)制數(shù)x=9?!皃rintf(“%C\\n”,‘A’+9);”,輸出格式要求是“%c”,因此將字符‘A’按字母順序向后偏移9個(gè)位置,可得結(jié)果為“J”。故本題答案為B選項(xiàng)。
17.D
18.D結(jié)構(gòu)體指針變量p指向a數(shù)組的第1個(gè)元素,所以“p->x”為20。執(zhí)行“p=p->y”后,p指向數(shù)組a的第2個(gè)元素,所以輸出15。故本題答案為D選項(xiàng)。
19.C
20.B解析:p指向x的第一個(gè)元素,所以p->n的值為2,p->next指向x+1,即指向x的第二個(gè)元素,所以p->next->n為4。
21.1515解析:執(zhí)行二重循環(huán)時(shí),外循環(huán)每執(zhí)行一次,內(nèi)循環(huán)將循環(huán)一遍。本題的程序段中外循環(huán)執(zhí)行了5次,內(nèi)循環(huán)執(zhí)行了3次,所以程序段內(nèi)循環(huán)體的總執(zhí)行次數(shù)是15。
22.file.txt"w"fclose(fp)。file.txt,'w'fclose(fp)。解析:向文件中寫數(shù)據(jù),并且該文件是新文件,應(yīng)當(dāng)使用文件打開方式'w',文件操作結(jié)束時(shí)要用函數(shù)fclose關(guān)閉文件,以防數(shù)據(jù)丟失。
23.m=4k=4i=5k=5m=4k=4i=5k=5解析:在主函數(shù)main()中定義了一個(gè)變量i,并賦初值4,調(diào)用fun()函數(shù)將i的初值傳遞給形參m,進(jìn)行fun()函數(shù)后的運(yùn)算,輸出結(jié)果為m=4,k=4。將k值輸出后自行增加1,k=5,此時(shí)全局變量k的值變?yōu)?。主函數(shù)中調(diào)用fun()函數(shù)后,i再自行增加1,i=5,所以主函數(shù)輸出的結(jié)果為“i=5k=5”。
24.SQRT(x2+y2)/(a+b)
25.16111611解析:題目中第1條要替換的語句i=f(1+1);展開后是i=((1+1)*M);繼續(xù)展開為i((1+1*8),結(jié)果使i=16。而第2條語句j=f2(1+1)”;展開后為j=(1+1*N);繼續(xù)展開為j=(1+1*10),結(jié)果使j=11。故程序運(yùn)行的結(jié)果是輸出1611。
26.99解析:本題考查宏定義與三目運(yùn)算符的綜合用法,宏定義是原樣替換,本題中,如果a>b成立,則a+1的值為整個(gè)表達(dá)式的值,否則為b+1的值為整個(gè)表達(dá)式的值,(應(yīng)注意后面的加1)。
27.軟件工具軟件工具
28.自頂而下自頂而下
29.'\0''\\0'解析:本題涉及字符數(shù)組和指針的兩個(gè)知識(shí)點(diǎn):①在C語言中,字符型數(shù)組在存放字符串時(shí)會(huì)自動(dòng)在末尾加上字符串結(jié)束標(biāo)識(shí)符'\\0'所以題中數(shù)組str有6個(gè)元素。②ptr指向數(shù)組str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。
30.a=a+ba=a+b解析:a+=b與a=a+b等價(jià),作用是把變量a的值加b后再賦給變量a。
31.ACBDFEHGPACBDFEHGP解析:中序遍歷方法的遞歸定義;當(dāng)二叉樹的根不為空時(shí),依次執(zhí)行如下3個(gè)操作:①按中序遍歷左子樹。②訪問根結(jié)點(diǎn)。③技中序遍歷右子樹。根據(jù)遍歷規(guī)則來遍歷本題中的二叉樹。首先遍歷F的左子樹,同樣按中序遍歷。先遍歷C的左子樹,即結(jié)點(diǎn)A,然后訪問C,接著訪問C的右子樹,同樣按中序遍歷C的右子樹,先訪問結(jié)點(diǎn)B,然后訪問結(jié)點(diǎn)D,因?yàn)榻Y(jié)點(diǎn)D沒有右子樹,因此遍歷完C的右子樹,以上就遍歷完根結(jié)點(diǎn)F的左子樹。然后訪問根結(jié)點(diǎn)F,接下來遍歷F的右子樹,同樣按中序遍歷。首先訪問E的左子樹,E的左子樹為空,則訪問結(jié)點(diǎn)E,然后訪問結(jié)點(diǎn)E的右子樹,同樣按中序遍歷。首先訪問G的左子樹,即H,然后訪問結(jié)點(diǎn)G,最后訪問G的右子樹P。以上就把整個(gè)二叉樹遍歷一遍,中序遍歷的結(jié)果為ACBDFEHGP。因此,劃線處應(yīng)填入“ACBDFEHGP”。
32.d1.dat"rb"d1.dat,'rb'解析:打開文件的函數(shù)為fopen('文件名','mode'),其中'mode'表示文件的打開方式。如果打開的是二進(jìn)制文件,其mode字符串可以是:'rb'、'wb'、'ab'、'rb+'、'wb+'、'ab+'。'r'表示以只讀方式打開。'w'表示以寫方式打開,如果已存在該文件名的文件,文件中的內(nèi)容將被清空。若文件名不存在,則將創(chuàng)建該文件。'a'為追加方式打開。若文件存在時(shí),將打開這個(gè)文件并且在文件的末尾進(jìn)行追加。當(dāng)文件不存在,將創(chuàng)建新文件。'r+'打開一個(gè)已存在文件用于更新(可讀可寫)。\'w+'創(chuàng)建一個(gè)新文件用于更新,如果文件存在,文件被重寫(可讀可寫)。'a+'打開用于追加,當(dāng)文件不存在時(shí),創(chuàng)建新文件,并在文件末尾進(jìn)行追加(可讀可寫)。根據(jù)題意,應(yīng)該填'd1.dat','rb'。
33.邏輯獨(dú)立性邏輯獨(dú)立性解析:數(shù)據(jù)的獨(dú)立性一般可分為物理獨(dú)立性和邏輯獨(dú)立性。
34.132132解析:在程序中,i從9開始循環(huán),當(dāng)i=9時(shí),執(zhí)行case0后的語句m++;n++;此時(shí)m=1,n=1,然后執(zhí)行break,跳出循環(huán);當(dāng)i=10時(shí),執(zhí)行detault后的語句k++;n++;此時(shí)k=1,n=2;當(dāng)i=11時(shí),再執(zhí)行default后的語句,k=2,n=3。此時(shí),m=1,n=3,k=2。輸出結(jié)果為132。
35.m<10n%4!=0
36.66解析:strlen()函數(shù)的作用是計(jì)算字符串的長度并作為函數(shù)的返回值,這里的長度不包括串尾的結(jié)束標(biāo)志\'\\0\'。
\'\\t\'f是轉(zhuǎn)義字符,代表橫向跳若干格:'\\'是轉(zhuǎn)義字符,代表雙引號(hào);\'\\023\'只代表一個(gè)字符,而不管轉(zhuǎn)義字符后面有幾個(gè)字符;’僅AB,是以兩位十六進(jìn)制數(shù)AB表示的ASCII碼字符,只代表一個(gè)字符;\'\\n\'是轉(zhuǎn)義字符,代表回車換行。
5個(gè)字符常量各代表一個(gè)字符,再加上字母C,所以返回的長度是6。
37.11解析:首先計(jì)算if語句后面的表達(dá)式,根據(jù)運(yùn)算符的優(yōu)先級(jí)可知,先算“a!=o”,該值為1,再把1賦值給p,結(jié)果為1(真),執(zhí)行其后的printf語句,輸出的值為1。
38.p=(structaa*)malloc(sizeof(structaa));p=(structaa*)malloc(sizeof(structaa));解析:ANSIC標(biāo)準(zhǔn)規(guī)定malloc函數(shù)的返回值類型為void*,函數(shù)的調(diào)用形式為:malloc(size)要求size的類型為unsignedint。由于返回類型為void*,所以在調(diào)用函數(shù)時(shí),必須利用強(qiáng)制轉(zhuǎn)換將其轉(zhuǎn)換為所需要的類型。
39.*(str+i)或str[i]*(str+i)或str[i]解析:str是指針變量,它指向字符型數(shù)據(jù),在循環(huán)過程中,可以用*(str+i)來訪問字符串中的第i個(gè)元素,判斷是否是結(jié)束標(biāo)志,如果不是,i=i+1,繼續(xù)取下一個(gè)元素進(jìn)行判斷,直到*(str+i)的值為'\\0'為止,也可以用下標(biāo)的方式引用字符,如*(str+i)相當(dāng)于str[i]。
40.調(diào)試調(diào)試
41.A解析:題目中要求將q和r所指結(jié)點(diǎn)的先后位置交換,即要求p所指結(jié)點(diǎn)的指針域指向r所指向的結(jié)點(diǎn),r所指向的結(jié)點(diǎn)的指針域指向q所指向的結(jié)點(diǎn),q所指向的結(jié)點(diǎn)的指針域指向r所指向的結(jié)點(diǎn)。選項(xiàng)A首先讓r所指向的指針的指針域指向q所指向的結(jié)點(diǎn),這樣就將r所指向的結(jié)點(diǎn)的指針域指向的結(jié)點(diǎn)丟失了。選項(xiàng)B首先q所指向的結(jié)點(diǎn)的指針域指向r所指向的結(jié)點(diǎn)的指針域所指向的結(jié)點(diǎn),然后,讓p所指向結(jié)點(diǎn)的指針域指向r所指向的結(jié)點(diǎn),最后讓r所指向的結(jié)點(diǎn)的指針域指向q所指向的結(jié)點(diǎn),滿足要求。選項(xiàng)C首先讓p所指向結(jié)點(diǎn)的指針域指向r所指向的結(jié)點(diǎn),然后讓q所指向的結(jié)點(diǎn)的指針域指向r所指向的結(jié)點(diǎn)的指針域所指向的結(jié)點(diǎn),最后讓r所指向的結(jié)點(diǎn)的指針域指向q所指向的結(jié)點(diǎn),滿足要求。選項(xiàng)D首先讓q所指向的結(jié)點(diǎn)的指針域指向r所指向的結(jié)點(diǎn)的指針域所指向的結(jié)點(diǎn),然后,讓r所指向的結(jié)點(diǎn)的指針域指向q所指向的結(jié)點(diǎn),最后讓P所指向結(jié)點(diǎn)的指針域指向r所指向的結(jié)點(diǎn),滿足要求。
42.B解析:字符串輸入函數(shù)fgets()的調(diào)用形式為:fgets(s,n,fp)。fgets函數(shù)參數(shù)說明:“s”可以是一個(gè)字符數(shù)組名,也可以是指向字符串的指針;“n”為要讀取的最多的字符個(gè)數(shù);“fp”是指向該文件的文件型指針。fgets函數(shù)的功能是:從fp所指向的文件中讀取長度不超過n-1個(gè)字符的字符串,并將該字符串放到字符數(shù)組s中;讀入字符串后會(huì)自動(dòng)在字符串末尾加入“'\\0'”結(jié)束符,表示字符串結(jié)束。
43.B解析:編譯時(shí),編譯系統(tǒng)不為局部變量分配內(nèi)存單元,而是在程序運(yùn)行中,當(dāng)局部變量所在的函數(shù)被調(diào)用時(shí),編譯系統(tǒng)根據(jù)需要要臨時(shí)分配內(nèi)存,調(diào)用結(jié)束空間釋放;全局變量一經(jīng)定義,編譯系統(tǒng)為其分配固定的內(nèi)存單元,在程序運(yùn)行的自始至終都占用固定的單元.在內(nèi)存不確定的情況下,最好使用全局變量。
44.B遍歷是按照一定規(guī)則對(duì)樹中全部結(jié)點(diǎn)逐一訪問的方法。二叉樹可由根結(jié)點(diǎn)、左子樹和右子樹三個(gè)部分組成。根據(jù)對(duì)根結(jié)點(diǎn)訪問的先后順序,可將遍歷方法分為先序遍歷、中序遍歷和后序遍歷三種。先序遍歷首先訪問根結(jié)點(diǎn),再先序遍歷左子樹,最后先序遍歷右子樹,可見遍歷是一個(gè)遞歸的過程。求樹的遍歷這種問題的關(guān)鍵在于認(rèn)清每棵子樹的根結(jié)點(diǎn)的訪問順序。題目給出了一棵樹的先序遍歷和中序遍歷的結(jié)點(diǎn)順序,先序遍歷的第一個(gè)結(jié)點(diǎn)為整棵樹的根結(jié)點(diǎn),即根結(jié)點(diǎn)為A,而在中序遍歷的順序中,結(jié)點(diǎn)A的前面還有DBGE四個(gè)結(jié)點(diǎn),表示這四個(gè)結(jié)點(diǎn)構(gòu)成以A為結(jié)點(diǎn)的二叉樹的左子樹,同理,中序遍歷中A結(jié)點(diǎn)后面的CHF三個(gè)結(jié)點(diǎn)構(gòu)成以A為結(jié)點(diǎn)的二叉樹的右子樹。于是原來的對(duì)一棵二叉樹的分析變?yōu)閷?duì)該二叉樹的左右子樹的分析。以左子樹為例,左子樹結(jié)點(diǎn)的先序遍歷為BDEG,中序遍歷為DBGE,該子樹的根結(jié)點(diǎn)為B,B結(jié)點(diǎn)的左子樹為一個(gè)結(jié)點(diǎn)D,右子樹為以E為根結(jié)點(diǎn),結(jié)點(diǎn)G是E的左孩子。同理,可對(duì)CHF三個(gè)結(jié)點(diǎn)進(jìn)行分析。
最后得到整棵樹的結(jié)構(gòu)后,按照后序遍歷寫出所有結(jié)點(diǎn)的順序:DGEBHFCA。
45.D解析:本題考查switch語句,首先,x=1符合條件case1,執(zhí)行switch(y)語句。y=0符合case0語句,執(zhí)行a抖并跳出switch(y)語句,此時(shí)a=1。因?yàn)閏ase1語句后面沒有break語句,所以向后執(zhí)行case2語句,執(zhí)行a++,b++,然后跳出switch(x),得a=2,b=1。
46.B解析:scanf是標(biāo)準(zhǔn)輸入函數(shù),在輸入字符串a(chǎn)aa時(shí),實(shí)際的內(nèi)容為“aaa\\0”,“\\0”是由系統(tǒng)自動(dòng)加入的:gets的功能是從終端讀入一行字符,即一直讀到換行符為止,并由系統(tǒng)自動(dòng)以“/0”代替換行符。
47.A解析:本題考查的是三目運(yùn)算符的用法,三目運(yùn)算符的形式為(表達(dá)式1)?(表達(dá)式2):(表達(dá)式3)。當(dāng)(表達(dá)式1)的值為真時(shí),求(表達(dá)式2)的值為整個(gè)表達(dá)式的值;如果(表達(dá)式1)的值為假,則求(表達(dá)式3)的值為整個(gè)表達(dá)式的值。題中,表達(dá)式x>12的結(jié)果為假,所以執(zhí)行的語句是x-12,最終y的值應(yīng)該是0。
48.B解析:本題考查ifelse語句。程序中首先使用函數(shù)scanf()通過鍵盤讀入a的值,并通過第1個(gè)if語句,先判斷條件,取a的值2和3比較,然后將a的值加1,發(fā)現(xiàn)條件成立,執(zhí)行下列的printf語句,輸出a的值3。
49.A
50.C解析:本題中,最主要的是掌握幾個(gè)有關(guān)文件的函數(shù)的應(yīng)用。
函數(shù)名:fopen
功能:打開一個(gè)文件
調(diào)用方式FILE*fp;fp=fopen(文件名,使用文件方式);
函數(shù)名:feof
功能:檢查文件是否結(jié)束
調(diào)用方式:feof(FILE*fp);
函數(shù)名:fputc
功能:把一個(gè)字符寫到磁盤文件上去
調(diào)用方式:fputc(ch,fp)(ch是要輸出的字符,fp是從指定的文件讀入一個(gè)字符,該文件必須是以讀或讀寫方式打開的調(diào)用方式:ch=fgetc(fp)(ch是字符變量,fp是文件指針變量);
函數(shù)名:fclose
功能:關(guān)閉一個(gè)文件
調(diào)用方式:fclose(文件指針)。
51.D解析:該程序的執(zhí)行過程是:首先聲明整型指針變量P和整型變量i,字符型指針變量q和字符型變量ch,將i的地址賦給指針變量p,將ch的地址賦給指針變量q,將40賦給*p,此時(shí),q已經(jīng)指向了一個(gè)具體的存儲(chǔ)單元,但ch的值不確定,即*p沒有確定的值,所以不能執(zhí)行*p=*q語句。
52.C解析:C語言是一個(gè)函數(shù)語言,C語言的主體就是一個(gè)主函數(shù),然后有庫函數(shù)和用戶自定義的函數(shù)來配合主函數(shù)完成一系列的任務(wù),所以說,C語言的基本單位是函數(shù)。
53.B解析:指針是—種用來存放變量地址的特殊變量。本題中指針變量p用于存放整型變量i的地址,改變*p的值即為改變i的值。又因?yàn)椤?”和“*”兩個(gè)運(yùn)算符的優(yōu)先級(jí)相同,按自右而左的方向結(jié)合,所以*&j運(yùn)算選進(jìn)行&j運(yùn)算,得j的地址,再進(jìn)行*運(yùn)算,取所得地址里面的值,故*&j與j等價(jià)。
54.D結(jié)構(gòu)化程序設(shè)計(jì)以模塊化設(shè)計(jì)為中心,采用自頂向下、逐步求精的程序設(shè)計(jì)方法。任何算法功能都可以通過由程序模塊組成的三種基本程序結(jié)構(gòu)的組合:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)來實(shí)現(xiàn)。
55.C解析:軟件生命周期由軟件定義、軟件開發(fā)和軟件維護(hù)三個(gè)時(shí)期組成,每個(gè)時(shí)期又進(jìn)一步劃分為若干個(gè)階段。軟件定義時(shí)期的基本任務(wù)是確定軟件系統(tǒng)的工程需求。軟件定義可分為軟件系統(tǒng)的可行性研究和需求分析兩個(gè)階段。軟件開發(fā)時(shí)期是具體設(shè)計(jì)和實(shí)現(xiàn)在前一時(shí)期定義的軟件,它通常由下面五個(gè)階段組成:概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編寫代碼、組裝測試和確認(rèn)測試。軟件維護(hù)時(shí)期的主要任務(wù)是使軟件持久地滿足用戶的需要。即當(dāng)軟件在使用過程中發(fā)現(xiàn)錯(cuò)誤時(shí)應(yīng)加以改正;當(dāng)環(huán)境改變時(shí)應(yīng)該修改軟件,以適應(yīng)新的環(huán)境;當(dāng)用戶有新要求時(shí)應(yīng)該及時(shí)改進(jìn)軟件,以滿足用戶的新要求。根據(jù)上述對(duì)軟件生命周期的介紹,可知選項(xiàng)C中的軟件維護(hù)不是軟件生命周期開發(fā)階段的任務(wù)。因此,本題的正確答案是C。
56.D解析:本題考查了軟件工程的基本概念。軟件工程包括3個(gè)要素,即方法、工具和過程。方法是完成軟件工程項(xiàng)目的技術(shù)手段;工具支持軟件的開發(fā)、管理和文檔生成;過程支持軟件開發(fā)的各個(gè)環(huán)節(jié)的控制和管理。
57.A解析:C語言規(guī)定,標(biāo)識(shí)符是由字母、數(shù)字或下劃線組成,并且它的第一個(gè)字符必須是字母或者下劃線。另外C語言規(guī)定了一些專用的標(biāo)識(shí)符,它們有著固定的含義,不能更改。int就是表達(dá)變量類型的標(biāo)識(shí)符,它不能再用做變量名和函數(shù)名,所以選項(xiàng)B)不正確。do是C語言的一個(gè)關(guān)鍵字,也不能再用做變量名和函數(shù)名,所以選項(xiàng)C)不正確。
58.B解析:先計(jì)算關(guān)系表達(dá)式a<b=2<3為真(表達(dá)式為真時(shí),如果變量為int型變量則真用1表示,假用0表示),即a=1。
59.B解析:在函數(shù)中首先把整型數(shù)組a[10]中的每個(gè)元素寫入文件d1.dat中,然后再次打開這個(gè)文件,把文件d1.dat中的內(nèi)容讀入到整型變量n中,最后輸出變量n的值。
60.C
61.Aa<<2的值為20,2011結(jié)果為21,所以答案選擇A)。
62.A一個(gè)函數(shù)可以有多個(gè)return語句,所以選擇A)。
63.D
64.C十六進(jìn)制是以“0x、0X”開頭的字符串,字符串中只能含有0~9這l0個(gè)數(shù)字和a、b、C、d、e、f這6個(gè)字母。
65.A解析:在E-R圖中,用三種圖框分別表示實(shí)體、屬性和實(shí)體之間的聯(lián)系,其規(guī)定如下:用矩形框表示實(shí)體,框內(nèi)標(biāo)明實(shí)體名;用橢圓狀框表示實(shí)體的屬性,框內(nèi)標(biāo)明屬性名;用菱形框表示實(shí)體間的聯(lián)系,框內(nèi)標(biāo)明聯(lián)系名。所以,選項(xiàng)A正確。
66.D
\n本題程序首先用函數(shù)fopen以“wb”的方式開打文件“d2.dat”,然后調(diào)用兩次fwrite函數(shù)將數(shù)組a的5個(gè)元
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 技術(shù)創(chuàng)新在情緒管理中的應(yīng)用
- 科技團(tuán)隊(duì)的創(chuàng)新力培養(yǎng)與策略分析
- 二零二五年度高新技術(shù)產(chǎn)業(yè)園區(qū)場地使用權(quán)轉(zhuǎn)讓合同3篇
- 湘西2025年湖南湘西州保靖縣事業(yè)單位引進(jìn)急需緊缺人才16人筆試歷年參考題庫附帶答案詳解
- 湖北2025年湖北省水利水電科學(xué)研究院招聘14人筆試歷年參考題庫附帶答案詳解
- 2025年度頁巖磚綠色建筑材料采購與供應(yīng)鏈管理合同4篇
- 二零二五年度成立體育產(chǎn)業(yè)公司出資合同標(biāo)準(zhǔn)4篇
- 【語文】《鄧稼先》課件++2024-2025學(xué)年統(tǒng)編版語文七年級(jí)下冊(cè)
- 2025年牛津譯林版九年級(jí)地理下冊(cè)月考試卷
- 2025合同模板建筑安裝工程拆遷房屋合同范本
- 2024-2025學(xué)年北京石景山區(qū)九年級(jí)初三(上)期末語文試卷(含答案)
- 第一章 整式的乘除 單元測試(含答案) 2024-2025學(xué)年北師大版數(shù)學(xué)七年級(jí)下冊(cè)
- 春節(jié)聯(lián)歡晚會(huì)節(jié)目單課件模板
- 中國高血壓防治指南(2024年修訂版)
- 糖尿病眼病患者血糖管理
- 抖音音樂推廣代運(yùn)營合同樣本
- 《春酒》琦君完整版
- 教育促進(jìn)會(huì)會(huì)長總結(jié)發(fā)言稿
- 北師大版(2024新版)七年級(jí)上冊(cè)數(shù)學(xué)第四章《基本平面圖形》測試卷(含答案解析)
- 心理調(diào)適教案調(diào)整心態(tài)積極應(yīng)對(duì)挑戰(zhàn)
- 小學(xué)數(shù)學(xué)6年級(jí)應(yīng)用題100道附答案(完整版)
評(píng)論
0/150
提交評(píng)論