版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2022-2023年湖南省邵陽市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)重點(diǎn)匯總測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.有以下程序:main(){intX,i;for(i=1;i<=50;i++){x=i;if(X%2=O)if(x%3=O)if(X%7=0)printf("%d,i)";}}輸出結(jié)果是()。A.28B.27C.42D.41
2.表達(dá)式9!=10的值為()。
A.非零值B.trueC.0D.1
3.若二維數(shù)組a有m列,則在a[i][j]前的元素個(gè)數(shù)為()。
A.i*m+j-1B.i*m+jC.J*m+iD.i*m+j+1
4.設(shè)有定義“char*c;”,以下選項(xiàng)中能夠使c正確指向一個(gè)字符串的是()。
A.charstr[]=“string”;c=str;
B.scanf(“%s”,c);
C.c=getchar();
D.*c=“string”;
5.
6.C語言中char類型數(shù)據(jù)占字節(jié)數(shù)為()。
A.3B.4C.1D.2
7.鏈表不具備的特點(diǎn)是()
A.所需空間與其長度成正比B.不必事先估計(jì)存儲(chǔ)空間C.插入刪除不需要移動(dòng)元素D.可隨機(jī)訪問任一節(jié)點(diǎn)
8.軟件生命周期是指()。A.軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程
B.軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測試完成的過程
C.軟件的開發(fā)過程
D.軟件的運(yùn)行維護(hù)過程
9.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.0B.一1C.1D.7
10.
11.已知數(shù)據(jù)表A中每個(gè)元素距其最終位置不遠(yuǎn),為節(jié)省時(shí)間,應(yīng)該采用的算法是()
A.直接選擇排序B.堆排序C.快速排序D.直接插入排序
12.在定義inta[3][2]以后,對a的引用正確的是()
A.a[0,0]B.a[3][0]C.a[2][2]D.a[0][0]
13.若有定義:inta,b;,通過語句scanf("%d;%d",&a,&b);,能把整數(shù)3賦給變量a,5賦給變量b的輸入數(shù)據(jù)是A.A.35B.3,5C.3;5D.35
14.面向?qū)ο蠓椒ㄖ校^承是指()。
A.一組對象所具有的相似性質(zhì)B.一個(gè)對象具有另一個(gè)對象的性質(zhì)C.各對象之間的共同性質(zhì)D.類之間共享屬性和操作的機(jī)制
15.下列能正確定義且賦初值的語句是()。
A.intn1=n2=1;
B.charC=99;
C.floatf=f+1;
D.doublex=1.2E5.6;
16.下列程序的輸出結(jié)果是()。#include<stdio.h>main{structst{inty,x,z;};union{longi;intj;chark;}un;printf("%d,%d\n",sizeof(structst),sizeof(un))}A.6,2B.6,4C.8,4D.8,6
17.下列定義數(shù)組的語句中錯(cuò)誤的是()。
A.intx[2][3]={1,2,3,4,5,6};
B.intx[][3]={0};
C.intx[][3]={{1,2,3},{4,5,6}};
D.intx[2][3]={{1,2},{3,4},{5,6}};
18.以下關(guān)于C語言的敘述中正確的是()。
A.C語言的數(shù)值常量中夾帶空格不影響常量值的正確表示
B.C語言中的變量可以在使用之前的任何位置進(jìn)行定義
C.在C語言算術(shù)表達(dá)式的書寫中,運(yùn)算符兩側(cè)的運(yùn)算數(shù)據(jù)類型必須一致
D.C語言中的注釋不可以夾在變量名或關(guān)鍵字的中間
19.以下敘述中正確的是()。
A.結(jié)構(gòu)體變量中的成員可以是簡單變量、數(shù)組或指針變量
B.不同結(jié)構(gòu)體的成員名不能相同
C.結(jié)構(gòu)體定義時(shí),其成員的數(shù)據(jù)類型可以是本結(jié)構(gòu)體類型
D.結(jié)構(gòu)體定義時(shí),類型不同的成員項(xiàng)之間可以用逗號隔開
20.對于哈希函數(shù)H(key)=key%13,被稱為同義詞的關(guān)鍵字是_______
A.35和41B.23和39C.15和44D.25和51
二、2.填空題(20題)21.閱讀下列程序,則程序的輸出結(jié)果為【】。
#include"stdio.h"
structty
{intdata;
charc;};
main()
{structtya={30,'x'};
fun(a);
printf("%d%c",a.data,a.c);}
fun(structtyb)
{b.data=20;
b.c='y';}
22.以下程序從終端讀入數(shù)據(jù)到數(shù)組中,統(tǒng)計(jì)其中正數(shù)的個(gè)數(shù),并計(jì)算它們之和。請?zhí)羁铡?/p>
main()
{inti,a[20],sum,count;
sum=count=0;
for(i=0;i<20;i++)scanf("%d",【】);
for(i=0;i<20;i++)
{if(a[i]>0)
{count++;
sum+=a[i];
}
}
printf("sum=%d,count=%d\n",sum,count);
}
23.一個(gè)項(xiàng)目具有一個(gè)項(xiàng)目主管,一個(gè)項(xiàng)目主管可管理多個(gè)項(xiàng)目,則實(shí)體“項(xiàng)目主管”與實(shí)體“項(xiàng)目”的聯(lián)系屬于______的聯(lián)系。
24.在程序設(shè)計(jì)階段應(yīng)該采取______和逐步求精的方法,把一個(gè)模塊的功能逐步分解,細(xì)化為一系列具體的步驟,繼而用某種程序設(shè)計(jì)語言寫成程序。
25.按"先進(jìn)后出"原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是【】。
26.以下程序運(yùn)行后的輸出結(jié)果是______。
main()
{intp[7]={11,13,14,15,16,17,18};
inti=0,j=0;
while(i<7&&p[i]%2==1)j+=p[i++];
printf("%d\n",j);
}
27.程序如下:
main()
{inti=4;
printf("%d",-++i);
}
該程序執(zhí)行后的輸出結(jié)果以及i的值分別是______、_______。
28.以下程序的輸出結(jié)果是()。#include<stdio.h>fun(){staticinta=0;a+=3;printf("%d",A);}main(){intcc;for(cc=1;cc<5;cc++)fun();printf("\n");}
29.在一棵二叉樹中,度為0的結(jié)點(diǎn)的個(gè)數(shù)為n0,度為2的結(jié)點(diǎn)的個(gè)數(shù)為n2,則有n0=【】。
30.實(shí)現(xiàn)程序可將磁盤中的一個(gè)文件復(fù)制到另一個(gè)文件中,兩個(gè)文件的文件名在可執(zhí)行命令的命令行中(相當(dāng)于copy命令),假定文件在當(dāng)前目錄下。請補(bǔ)全程序。
#include<stdio.h>
voidmain(intargc,char*argv[])
{FILE*f1,*f2;
if(argc<【】)
{printf("parametererror!\n");exit(0);}
f1=fopen(argv[1],"r");
f2=fopen(argv[2],"w");
while(【】)fputc(fgetc(f1),f2);
fclose(f1);
fclose(f2);
}
31.在面向?qū)ο蠓椒ㄖ?,屬性與操作相似的一組對象稱為【】。
32.下列程序段的運(yùn)行結(jié)果是______。
intx=0,y=0;
while(x<15)y++,x+=++y;
printf("%d,%d",y,x);
33.下列程序執(zhí)行后輸出的結(jié)果是【】。
main()
{intarr[10],i,k=0;
for(i=O;i<10;i++)arr[i]=i;
for(i=1;i<4;i++)k+=arr[i]+i;
printf("%d\n",k);
}
34.數(shù)據(jù)庫管理系統(tǒng)是位于用戶與______之間的軟件系統(tǒng)。
35.下面程序由兩個(gè)源程序文件:t4.h和t4.c組成,程序編譯運(yùn)行結(jié)果是()。t4.h的源程序?yàn)椋?/p>
#defineN10
#definef2(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);
}
36.有以下定義和語句,則sizeof(a)的值是【】,而sizeof(a.share)的值是【】。
structdatc
{intday;
intmouth;
intyear:
union{intshare1;
floatshare2:
}share;
}a;
37.設(shè)有定義“struct{inta;floatb;charc;}abc,*p_abc=&abc;”,則對結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc【】a。
38.若有下列定義和語句:
char*s1="12345",*s2="1234";
printf("%d\n",strlen(strcpy(s1,s2)));
則輸出結(jié)果為______。
39.C語言中用______表示邏輯值為“真”,用數(shù)字“0”表示邏輯值為“假”。
40.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{intn=12345,d;
while(n!=0){d=n%10;printf("%d",D);n/=10;}
}
三、1.選擇題(20題)41.若某二叉樹的前序遍歷訪問順序是abdgcefh,中序遍歷訪問順序是dgbaechf,則其后序遍歷的結(jié)點(diǎn)訪問順序是()。
A.bdgcefhaB.gdbecfhaC.bdgaechfD.gdbehfca
42.有以下程序main(){inta=1,b;for(b=1;b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a-=3;}printf("%d\n",b);}程序運(yùn)行后的輸出結(jié)果是______。
A.3B.4C.5D.6
43.下面的程序段運(yùn)行后,輸出結(jié)果是inti,j,x=0;staticinta[8][8];for(i=0;<3;++)for(j=0;<3;j++)a[i][j]=2*i+j;for(i=0;<8;++)x+=a[i][j];printf("%d",x);
A.9B.不確定值C.0D.18
44.下列程序的輸出結(jié)果是()。#include<stdio.h>#defineF(x)2.84+x#definew(y)printf("%d",(int)(y))#defineP(y)w(y)putchar('\n')main(){intx=2;P(F(5)*x);}
A.12B.13C.14D.16
45.若執(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
46.以下程序的輸出結(jié)果是______。#include<stdio.h>#include<string.h>fun(char*w,intn){chart,*s1,*s2;s1=w;s2=w+n-1;while(s1<s2){t=*s1++;*s1=*s2-;*s2=t;}}main(){char*p;p="1234567";fun(p,strlen(p));puts(p);}
A.1234567B.7654321C.1711717D.7177171
47.若有定義:floatx=1.5;inta=1,b=3,c=2;則正確的switch語句是()。A.switch(x)
B.switch((int)x);{case1.0:printf("*\n");{case1:printf("*\n");case2.0:printf("**\n");}case2:printf("**\n");}
C.switch(a+B)
D.switch(a+B){case1;printf("*\n");{case1:printf("*\n");case2+1:printf("**\n");}casec:printf("**\n");)
48.已知函數(shù)定義如下,函數(shù)abed的功能是()。abcd(char*s1,char*s2){while(*s2++=*s1++);}
A.串復(fù)制B.求串長C.串比較D.串反向
49.視圖設(shè)計(jì)一般有3種設(shè)計(jì)次序,下列不屬于視圖設(shè)計(jì)的是______。
A.自頂向下B.由外向內(nèi)C.由內(nèi)向外D.自底向上
50.下列關(guān)于字符串的說法中錯(cuò)誤的是
A.在C語言中,字符串是借助于字符型一維數(shù)組來存放的,并規(guī)定以字符'\0'作為字符串結(jié)束標(biāo)志
B.'\0'作為標(biāo)志占用存儲(chǔ)空間,計(jì)入串的實(shí)際長度
C.在表示字符串常量的時(shí)候不需要人為在其末尾加入'\0'
D.在C語言中,字符串常量隱含處理成以'\0'結(jié)尾
51.將E-R圖轉(zhuǎn)換到關(guān)系模式時(shí),實(shí)體與聯(lián)系都可以表示成________。
A.屬性B.關(guān)系C.鍵D.域
52.下列程序的運(yùn)行結(jié)果是()。#include<stdio.h>main(){inta=0,b=4,c=0,d=10,x;if(a)d=d-10;elseif(!b)if(!c)x=15;elsex=25;printf("%d\n",d);}
A.5B.3C.20D.10
53.已知chara;intb;floate;doubled;則表達(dá)式a-b+c-d結(jié)果為()型。
A.doubleB.floatC.intD.char
54.假定下列程序的可執(zhí)行文件名為filel.exe,在該程序的子目錄下輸入命令行:file1ChinaBejing<回車>main(intargc,char*argv[]){while(argc-->1)printf("%s\n",*++argv);}則程序運(yùn)行后的輸出結(jié)果是()。
A.filelChinaBejingB.ChinaBejingC.ChinaD.Bejing
55.有以下程序:matin(){char*s[]={"one","two","three"},*p;p=s[1];printf("%c,%s\n",*(p+1),s[o]);}執(zhí)行后的輸出結(jié)果是______。
A.n,twoB.t,oneC.w,oneD.o,two
56.下面程序的運(yùn)行結(jié)果是()。y=5;x=14;y=((x=3*y,x+6),x-1);printf("x=%d,y=%d”,x,y);
A.x=27,y=27B.x=12,y=13C.x=15,y=14D.x=y=27
57.以下程序的運(yùn)行結(jié)果是
#defineMAX(A,B)(A)>(B)?(A):(B)
#definePRINT(Y)printf("Y=%d\t",Y)
main()
{inta=1,b=2,c=3,d=4,t;
t=MAX(a+b,c+d);
PRINT(t);}
A.Y=3B.存在語法錯(cuò)誤C.Y=7D.Y=0
58.下面程序段中c的二進(jìn)制值是______。chara=3,b=6,c;c=ab<<1;
A.1011B.1111C.11110D.11100
59.若有定義:floatx=1.5;inta=1,b=3,c=2;則正確的switch語句是()。
A.switch(x){case1.0:printf("*\n");case2.0:printf("**\n");}
B.switch((int)x);{case1:printf("*\n");case2:printf("**\n");}
C.switch(a+b){case1:printf("*\n");case2+1:printf("**\n");}
D.switch(a+b){case1:printf("*\n");casec:printf("**\n");}
60.在16位C編譯系統(tǒng)上,若定義longa;,則能給a賦40000的正確語句是
A.a=20000+20000;B.a=4000*10;C.a=30000+10000;D.a=4000L*1OL;
四、選擇題(20題)61.
62.有下列程序段:intn,t=1,S=0;scanf("%d",&n);do{s=s+t;t=t-2;while(t!=n);為使此程序段不陷入循環(huán),從鍵盤輸入的數(shù)據(jù)應(yīng)該是()。A.任意正奇數(shù)B.任意負(fù)偶數(shù)C.任意正偶數(shù)D.任意負(fù)奇數(shù)
63.
64.下列關(guān)于隊(duì)列的敘述中正確的是______。A.在隊(duì)列中只能插入數(shù)據(jù)B.在隊(duì)列中只能刪除數(shù)據(jù)C.隊(duì)列是先進(jìn)先出的線性表D.隊(duì)列是先進(jìn)后出的線性表
65.x,y,z被定義為int型變量,若從鍵盤給x,y,z輸入數(shù)據(jù),正確的輸入語句是()。
A.INPUTx,y、z;
B.scanf(”%d%d%d”,&x,&y,&z.);
C.sCanf(”%d%d%d”,x,y,z.);
D.read(”%d%d%d”,&x,&y,&z.);
66.(62)棧底至棧頂依次存放元素A、B、C、D,在第五個(gè)元素E入棧前,棧中元素可以出棧,則出棧序列可能是()
A.ABCED
B.DBCEA
C.CDABE
D.DCBEA
67.有以下程序:
#include<<stdio.h>
structstu
{intnum;
charname[10]:
intage;}
voidfun(structstu*p)
{printf("%s\n",(*p).name);}
themain
{
structstustudents[3]={{9801,"Zhang".20},
{9802,"Wang",19},{9803,"Zhao",18}}
fun(students+2);
}
輸出的結(jié)果是()。
A.ZhangB.ZhaoC.WangD.18
68.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.1B.11C.6D.21
69.有以下程序:
voidmain()
{intk=0,n=0;
while(k<5)
{switch(k)
{default:break;
case1:n+=k;
case2:
case3:n+=k;
}
k++;
}
printf("%d\n",n);
}
程序運(yùn)行后的輸出結(jié)果是()。
A)0B)4
C)6D)7
70.
71.有如下程序
main()
{
chars[]="ABCD",*p;
for(p=s+1;p<s+4;p++)
printf("%s\n",p);
}
該程序的輸出結(jié)果是
72.
73.有以下程序:
程序的運(yùn)行結(jié)果是()。
A.Qian,f,95,92
B.Qian,m,85,90
C.Zhao,f,95,92
D.Zhao,m,85,90
74.若有定義“floata=25,b,*p=&b;”,則下列對賦值語句“*p=a;”和“p=&a;”的正確解釋為()。
A.兩個(gè)語句都是將變量a的值賦予變量P
B.*p=a是使P指向變量a,而p=&a是將變量的值賦予變量指針P
C.*p=a是將變量a的值賦予變量b,而&a是使P指向變量a
D.兩個(gè)語句都是使P指向變量a
75.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。
A.可行性分析報(bào)告B.軟件需求規(guī)格說明書C.概要設(shè)計(jì)說明書D.集成測試計(jì)劃
76.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.0B.9C.6D.8
77.定義無符號整數(shù)類為UInt,下面可以作為類UInt實(shí)例化值的是()。
A.-369B.369C.0.369D.整數(shù)集合11,2,3,4,51
78.
79.下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是()。
A.順序存儲(chǔ)的有序線性表B.線性鏈表C.二叉鏈表D.有序線性鏈表
80.
五、程序改錯(cuò)題(1題)81.下列給定程序中函數(shù)fun的功能是:逐個(gè)比較P.q所指兩個(gè)字符串對應(yīng)位置上的字符,并把ASCIl值大或相等的字符依次存放到C所指的數(shù)組中,形成一個(gè)新的字符串。
例如,若主函數(shù)中a字符串為“aBCDeFgH”,b字符串為“Abed”,則C中的字符串應(yīng)為“aBcdeFgH”。請改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:部分源程序在文件MODll.C中,不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
六、程序設(shè)計(jì)題(1題)82.規(guī)定輸入的字符串中只包含字母和奉號。編寫函數(shù)fun,其功能是:刪除字符串中所有的。號。編寫函數(shù)時(shí),不得使用c語言提供的字符串函數(shù)。例如,字符串中的內(nèi)容為,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是“ABCDEFG”。注意:部分源程序給出如下。請勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)缸的花括號中填入你編寫的若干語句。試題程序:
參考答案
1.C只有當(dāng)3個(gè)if條件同時(shí)成立,即能夠同時(shí)被2、3、7整除時(shí),才輸出i的值,而從0到50能夠同時(shí)被2、3、7整除的數(shù)只有42,故選擇c選鞏。
2.D
3.B解析:二維數(shù)組的元素可以看成是按矩陣形式存放的,總是先存放第一行的元素,再存放第二行的元素。數(shù)組第一維的下標(biāo)是i,說明它前面還有i行,有i*m個(gè)元素,數(shù)組第二維的下標(biāo)是j,說明它前面還有j列,有j個(gè)元素,所以共有i*m+j個(gè)元素。
4.A選項(xiàng)A為正確用法,先將字符串存于字符數(shù)組中,然后將數(shù)組名賦給字符指針(數(shù)組名代表數(shù)組首地址,定義數(shù)組時(shí)為其分配確定的地址)。C選項(xiàng)錯(cuò)誤,getchar函數(shù)輸入一個(gè)字符給字符型變量,而不是字符指針。B選項(xiàng)和D選項(xiàng)有類似的錯(cuò)誤,兩個(gè)選項(xiàng)并無語法錯(cuò)誤,但運(yùn)行時(shí)可能會(huì)出現(xiàn)問題。因?yàn)樵贐選項(xiàng)和D選項(xiàng)中,字符指針沒有被賦值,是一個(gè)不確定的值,指向一個(gè)不確定的內(nèi)存區(qū)域,這個(gè)區(qū)域可能存放有用的指令或數(shù)據(jù)。在這個(gè)不確定的區(qū)域重新存放字符串,可能會(huì)發(fā)生無法預(yù)知的錯(cuò)誤。故本題答案為A選項(xiàng)。
5.D
6.CChar類型數(shù)據(jù)占1個(gè)字節(jié)。
7.D
8.A通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。
9.Ba一一的含義是先用后減l,所以當(dāng)a的值為0時(shí),跳出循環(huán),但是仍要執(zhí)行a一一,g的值變?yōu)橐?。
10.B
11.D
12.D
13.C解析:在C語言中scanf函數(shù)中輸入數(shù)據(jù)時(shí)要嚴(yán)格按照所規(guī)定的樣式輸入。
14.D繼承是面向?qū)ο蟮姆椒ǖ囊粋€(gè)主要特征,是使用已有的類的定義作為基礎(chǔ)建立新類的定義技術(shù)。廣義的說,繼承是指能夠直接獲得已有的性質(zhì)和特征,而不必重復(fù)定義它們,所以說繼承是指類之間共享屬性和操作的機(jī)制。
15.B在c語言規(guī)定中,可以在定義變量的同時(shí)給變量賦初值,選項(xiàng)A中n2沒有定義;選項(xiàng)C中不能在賦值表達(dá)式的右邊出現(xiàn)變量本身,選項(xiàng)D中字母E后面的數(shù)應(yīng)該為整數(shù),所以不對。
16.B本題主要考查結(jié)構(gòu)和聯(lián)合內(nèi)存使用的一些區(qū)別:結(jié)構(gòu)中每個(gè)成員相互獨(dú)立,一個(gè)結(jié)構(gòu)所占內(nèi)存空間的大小是結(jié)構(gòu)中每個(gè)成員所占內(nèi)存空間大小的總和;聯(lián)合所占用內(nèi)存空間是指最長的成員占用的空間。
17.DD選項(xiàng)中“x[2][3]”定義的是一個(gè)2行3列的二維數(shù)組,而在給數(shù)組元素賦值時(shí)卻賦成了3行,所以錯(cuò)誤。故本題答案為D選項(xiàng)。
18.DC語言的數(shù)值常量中不能夾帶空格,所以A選項(xiàng)錯(cuò)誤。C語言中的變量都必須先定義再使用,變量的定義通常放在函數(shù)體的前部,也可以放在函數(shù)外部或復(fù)合語句的開頭,不能隨便放置,所以B選項(xiàng)錯(cuò)誤。在C語言中,運(yùn)算符兩側(cè)的運(yùn)算數(shù)據(jù)類型可以不一致,且結(jié)果與精度較高的數(shù)據(jù)類型保持一致,所以C選項(xiàng)錯(cuò)誤。故本題答案為D選項(xiàng)。
19.A結(jié)構(gòu)體變量中的成員可以是簡單變量、數(shù)組、指針變量或者結(jié)構(gòu)體變量,選項(xiàng)A正確;不同結(jié)構(gòu)體成員名可以相同,選項(xiàng)B錯(cuò)誤;結(jié)構(gòu)體定義時(shí),其成員的數(shù)據(jù)類型不能是本結(jié)構(gòu)體類型,選項(xiàng)C錯(cuò)誤;結(jié)構(gòu)體定義時(shí),類型不同的成員項(xiàng)之間使用分號隔開,選項(xiàng)D錯(cuò)誤。本題答案為A選項(xiàng)。
20.D
21.30x30x解析:本題的參數(shù)傳遞屬于值傳遞,所以函數(shù)內(nèi)不能改變調(diào)用函數(shù)中的數(shù)據(jù)。
22.&a[i]&a[i]解析:主要考查函數(shù)scanf的用法.應(yīng)填數(shù)組a的元素的地址。
23.1對多(或1:N)1對多(或1:N)
24.自頂向下自頂向下解析:在程序設(shè)計(jì)時(shí),應(yīng)先考慮總體,后考慮細(xì)節(jié),逐步使問題具體化,對復(fù)雜的問題,應(yīng)該設(shè)計(jì)一些子目標(biāo)作為過渡,上述方法概括為:自頂向下,逐步細(xì)化。
25.棧棧解析:考查考生對棧和隊(duì)列概念的掌握。按'先進(jìn)后出'原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是棧;按'先進(jìn)先出'原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是隊(duì)列。
26.24
27.-55。
28.3691236912解析:本題考查最基本的for循環(huán)。for(cc=1;cc<5;cc++)規(guī)定循環(huán)次數(shù)為4次,每次a+=3,即每次a的值增加3,但因?yàn)閒un函數(shù)中變量a為static類型,所以每次調(diào)用完子函數(shù)之后,變量a所做的改變都要保存。
29.n2+1
30.3!feof(f1)3\r\n!feof(f1)解析:要實(shí)現(xiàn)文件復(fù)制,需要指定源文件及目的文件,因此在命令行下執(zhí)行程序時(shí)至少要指定兩個(gè)參數(shù),加上程序名本身,故argc的值至少為3,因此第一空應(yīng)填3。while循環(huán)中語句fputc(fgetc(f1),f2);的目的是將f1中的字符依次讀出并寫入到f2對應(yīng)的文件中去,直至文件f1結(jié)束為止,因此第二空為!feof(f1)。
31.類類解析:在面向?qū)ο蠓椒ㄖ?,類描述的是具有相似性質(zhì)的一組對象。所以,屬性與操作相似的一組對象稱為類。
32.8208,20解析:本題考查while循環(huán)和++運(yùn)算符的運(yùn)用。x=0符合條件x<15,則執(zhí)行y++,x+=++y后,y=1,x=0+2=2后y=2,符合條件繼續(xù)循環(huán),y=3,x=x+4=6后y=4,再循環(huán)y=5,x=x+6=6+6=12后,y=6,繼續(xù)循環(huán)y=7,x=x+8=12+8-20,此時(shí)y=8。
33.1212解析:本題的第一個(gè)for循環(huán)用于給數(shù)組arr賦初值,第二個(gè)for循環(huán)用于求和運(yùn)算。由于第二個(gè)for循環(huán)初始值為1,而循環(huán)條件為i<4,所以求的是arr[1]到arr[3]及i的和,所以輸出結(jié)果為12。
34.操作系統(tǒng)操作系統(tǒng)解析:數(shù)據(jù)庫管理系統(tǒng)是幫助用戶創(chuàng)建和管理數(shù)據(jù)庫的應(yīng)用程序的集合。因此,數(shù)據(jù)庫管理系統(tǒng)需要操作系統(tǒng)的支持,為用戶提供服務(wù)。
35.16111611解析:本題主要考查宏定義的兩種形式,不帶參數(shù)的宏定義:“#define宏名替換文本”;帶參數(shù)的宏定義:“#define宏名(形參表)替換文本”。故i=((1+1)*8)=16,j=(1+1*10)=11。
36.10410\r\n4解析:結(jié)構(gòu)體變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和。每個(gè)成員分別占有其自己的內(nèi)存單元。int占2個(gè)字節(jié),float占4個(gè)字節(jié),共用體變量所占的內(nèi)存長度等于最長的成員的長度。所以,sizeof(a.share)的值是4,sizeof(A)的值是2+2+2+4=10。
37.->->解析:若結(jié)構(gòu)體變量abc有成員a,并有指針p_abc指向結(jié)構(gòu)變量abc,則引用變量abc成員a的標(biāo)記形式有abc.a和p_abc->a。
38.44解析:strcpy(s1,s2)函數(shù)的作用是將字符串s2中的內(nèi)容拷貝到字符串s1中的內(nèi)容覆蓋。strlen()函數(shù)是求字符串的長度。本題實(shí)際上是要求s2字符串的長度,即是4。
39.非0非0解析:邏輯運(yùn)算中,非0表示邏輯“真”,用。表示邏輯“假”。
40.5432154321解析:在while循環(huán)中,d=n%10;語句每次求得的結(jié)果是n個(gè)位上的數(shù)值,例如12345÷10所得的余數(shù)就是個(gè)位上的5。接下來輸出得到的個(gè)位數(shù)字d,然后執(zhí)行n/=10;語句,該語句等價(jià)于n=n/10;。在C語言中,如果/運(yùn)算的兩個(gè)運(yùn)算分量都是整數(shù),那所得的結(jié)果也截尾取整,所以12345/10=1234,即n-=n/10;語句的作用是讓n截去個(gè)位上的數(shù)字。由此可知,隨著while循環(huán)的繼續(xù),n依次為12345、1234、123、12、1,而每次輸出n的個(gè)位數(shù)字將為5、4、3、2、1。故本題應(yīng)填543210。
41.D解析:中序遍歷的遞歸算法定義:①遍歷左子樹;②訪問根結(jié)點(diǎn);③遍歷右子樹。前序遍歷的遞歸算法定義:①訪問根結(jié)點(diǎn);②遍歷左子樹;③遍歷右子樹。后序遍歷的遞歸算法定義:①遍歷左子樹;②遍歷右子樹;③訪問根結(jié)點(diǎn)。根據(jù)前序遍歷的結(jié)果可知,a是根結(jié)點(diǎn)。由中序遍歷的結(jié)果dgbaechf可知,d、g、b是左子樹的結(jié)點(diǎn),e、c、h、f是右子樹的結(jié)點(diǎn)。再由前序遍歷的結(jié)果bdg可知,b是a左邊子樹的根,由cefh可知,c是a右邊子樹的根。再由中序遍歷的結(jié)果dgb可知,d、g是b左邊子樹的結(jié)點(diǎn),b右邊子樹無結(jié)點(diǎn)。再由前序遍歷結(jié)果dg可知,d為b左子樹的根,g是以d為根的子樹的右結(jié)點(diǎn)。至此,a的左子樹已完全弄清楚了。同樣的道理,可以弄清楚以c為根的子樹的結(jié)點(diǎn)位置。所以可知后序遍歷的結(jié)果是D。
42.B解析:本題是考查手工模擬執(zhí)行程序的能力。a初值是1,循環(huán)開始時(shí)b值為1,由于a>=8為假,不執(zhí)行break,但a%2==1為真,執(zhí)行a+=5,a值變?yōu)?,再執(zhí)行continue跳過不執(zhí)行a-=3語句,而立即開始下一次循環(huán)。這時(shí)b值為2,由于a值為6,a>=8仍為假,不執(zhí)行break,但a%2==1為假,不執(zhí)行復(fù)合語句“{a+=5;continue;}”而執(zhí)行a-=3,a值變?yōu)?。再開始下一次循環(huán),這時(shí)b值為3。由于a值為3,a>=8仍為假,不執(zhí)行break,但a%2==1為真,執(zhí)行a+=5,a值變?yōu)?,再執(zhí)行continue跳過不執(zhí)行a-=3語句,而立即開始下一次循環(huán)。這時(shí)b值為4。由于a值為8,a>=8為真,執(zhí)行break,停止for循環(huán)。此時(shí)輸出的b值應(yīng)為4。
43.C解析:本題主要考查的是用二維數(shù)組首地址和下標(biāo)來引用二維數(shù)組元素的方法。通過分析可知,程序中的雙重循環(huán)定義了一個(gè)如下的二維數(shù)組:[*]
由于數(shù)組的下標(biāo)是從0開始的,所以二維數(shù)組元素a[i][j]表示的是二維數(shù)組a的第i+1行、第j+1列對應(yīng)位置的元素。
44.A解析:本題考查帶參數(shù)的宏的定義及相關(guān)運(yùn)算。P(P(5)*x)=P(2.84+5*2)=P(12.84),調(diào)用w(12.84),輸出(int)(12.84)=12。
45.B解析:本題考查ifelse語句。程序中首先使用函數(shù)scanf()通過鍵盤讀入a的值,并通過第1個(gè)if語句,先判斷條件,取a的值2和3比較,然后將a的值加1,發(fā)現(xiàn)條件成立,執(zhí)行下列的printf語句,輸出a的值3。
46.C解析:在子函數(shù)fun中,s1為字符串w的起始地址,s2為字符串的結(jié)束地址(字符\'\\0\'除外),當(dāng)執(zhí)行循環(huán)結(jié)束循環(huán),w='1711717'。
47.C
48.A解析:函數(shù)abcd()中只有一個(gè)沒有循環(huán)體的while循環(huán),其循環(huán)條件是*s2++=*s1++,即只要s1所指內(nèi)容不為0循環(huán)就會(huì)繼續(xù),并且每次執(zhí)行循環(huán)條件時(shí)將s1所指內(nèi)容賦給s2所指地址,然后兩者同時(shí)增1,故該函數(shù)完成的是將s1所指字符串復(fù)制到s2所指地址中。應(yīng)該選擇A。
49.B解析:視圖設(shè)汁一般有3種設(shè)計(jì)次序,它們分別是自頂向下、自底向上和由內(nèi)
向外,它們又為視圖設(shè)計(jì)提供了具體的操作方法,設(shè)計(jì)者可根據(jù)實(shí)際情況靈活掌握,可以
單獨(dú)使用也可混合使用。
注意:數(shù)據(jù)庫概念設(shè)計(jì)的過程:首先選擇局部應(yīng)用,再進(jìn)行局部視圖設(shè)計(jì),最后
對局部視圖進(jìn)行集成得到概念模式。
50.B解析:'\\0'作為標(biāo)志占用存儲(chǔ)空間,但是不計(jì)入串的實(shí)際長度。當(dāng)給一個(gè)字符型指針賦值時(shí),賦給這個(gè)指針的是這個(gè)字符串的地址。
51.B解析:關(guān)系數(shù)據(jù)庫邏輯設(shè)計(jì)的主要工作是將\ue008E-R\ue009圖轉(zhuǎn)換成指定RDBMS中的關(guān)系模式。首先,從E-R圖到關(guān)系模式的轉(zhuǎn)換是比較直接的,實(shí)體與聯(lián)系都可以表示成關(guān)系,E-R圖中屬性也可以轉(zhuǎn)換成關(guān)系的屬性,實(shí)體集也可以轉(zhuǎn)換成關(guān)系。
52.D解析:本題考查ifelse語句。第1個(gè)if語句,先判斷條件,發(fā)現(xiàn)a=0條件不成立,則執(zhí)行與其配對的else語句;第2個(gè)if語句,先判斷條件,發(fā)現(xiàn)b=4,則!b條件不成立,又沒有與其配對的else語句,所以執(zhí)行printf語句,輸出d。
53.A解析:C語言中允許進(jìn)行不同數(shù)據(jù)類型的混合運(yùn)算,但在實(shí)際運(yùn)算時(shí),要先將不同類型的數(shù)據(jù)轉(zhuǎn)化成同一類型再進(jìn)行運(yùn)算。類型轉(zhuǎn)換的一般規(guī)則是:①運(yùn)算中將所有char型轉(zhuǎn)換成int型,float型轉(zhuǎn)換成double型;②低級類型服從高級類型,并進(jìn)行相應(yīng)的轉(zhuǎn)換,數(shù)據(jù)類型由低到高的順序?yàn)椋?char->int->unsigned->long->float->double;③賦值運(yùn)算中最終結(jié)果的類型,以賦值運(yùn)算符左邊變量的類型為準(zhǔn),即賦值運(yùn)算符右端值的類型向左邊變量的類型看齊,并進(jìn)行相應(yīng)轉(zhuǎn)換。
54.B解析:主函數(shù)的第一個(gè)參數(shù)argc為整形參數(shù),記下從命令行輸入的參數(shù)的個(gè)數(shù);第二個(gè)參數(shù)argv是一個(gè)字符型的指針數(shù)組,它的每一個(gè)指針指向命令行輸入的參數(shù)字符數(shù)。在本例中argc的值為3,argv[0]指向字符串.“filel”,argv[l]指向參數(shù)字符串“China”,argv[2]指向字符串“Bejing”。在main()函數(shù)中,while循環(huán)執(zhí)行了2次。第1次循環(huán),argc=3,3>1為真,argc-1=3-1=2,執(zhí)行循環(huán)體輸出*++argv,argv為字符型的指針數(shù)組的數(shù)組名,代表數(shù)組的首地址,同時(shí)也是數(shù)組第1個(gè)元素的地址,++argv指向數(shù)組的第2個(gè)元素,第2個(gè)元素是一個(gè)指針,它指向字符串“China”。第2次循環(huán),argc=2,2>1為真,argc-1=2-1=1,執(zhí)行循環(huán)體輸出*++argv,這次循環(huán)畔++argv指向數(shù)組的第3個(gè)元素,第3個(gè)元素是一個(gè)指針,它指向字符串“Bejing”。argc=1時(shí),1>1為假,退出循環(huán)。所以,4個(gè)選項(xiàng)中選項(xiàng)B符合題意。
55.C解析:程序定義了一個(gè)指針數(shù)組s和一個(gè)字符型指針變量p。s有3個(gè)元素,其中s[0]指向字符串'one,s[1]指向字符串'two',s[2]指向字符串'three',執(zhí)行p=s[1]后p指向字符串'two',所以*(p+1)=w。
56.C解析:本題考查的是逗號表達(dá)式。逗號表達(dá)式的求解步驟是先求解表達(dá)式1,然后依次求解表達(dá)式2,直到表達(dá)式N的值。整個(gè)逗號表達(dá)式的值就是最后一個(gè)表達(dá)式N的值。表達(dá)式(x=3*y,x+6)中,x=15。表達(dá)式y(tǒng)=x-1=14。
57.C解析:考查帶參數(shù)的宏替換。宏替換不像函數(shù)調(diào)用要進(jìn)行參數(shù)值的計(jì)算、傳遞等,而只是簡單按照原格式進(jìn)行字符串的替換。
58.B解析:C語言提供六種位運(yùn)算符,按優(yōu)先級由高到低的順序分別為:取反(~)、左移(<<)和右移(>>)、按位與(&)、按位異或(∧)、按位或(|)。所以表達(dá)式c=ab<<1先運(yùn)算b<<1得二進(jìn)制值為00001100,再運(yùn)算a∧00001100,最后得二進(jìn)制值00001111。
59.C解析:switch后的括號中只能是整型或字符型表達(dá)式,選項(xiàng)A中使用的是浮點(diǎn)型變量x,故不正確。選項(xiàng)B在switch的括號后面多了一個(gè)分號,故也不正確。switch的case標(biāo)號后只能是常量或常量表達(dá)式,而不能是變量,所以選項(xiàng)D也不正確。故應(yīng)該選擇C。
60.D解析:由于20000+20000、4000*10及30000+10000都是整型表達(dá)式,故運(yùn)算的結(jié)果仍然是整型,表達(dá)式運(yùn)算的結(jié)果超出了整型數(shù)據(jù)的范圍,不正確.而D是長整型運(yùn)算,不會(huì)超出長整型的范圍。所以,4個(gè)選項(xiàng)中D為所選.
61.D
62.D本題主要考查do—while循環(huán),因?yàn)樽兞縯的初始值等于1,經(jīng)過第一次do-while循環(huán)后,執(zhí)行t=t-1這條語句一次,所以變量t的值為-1,判斷關(guān)系表達(dá)式t!=n是否成立,如果關(guān)系表達(dá)式成立,則執(zhí)行第二次循環(huán)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度綠色環(huán)保型社區(qū)門衛(wèi)管理服務(wù)協(xié)議4篇
- 風(fēng)機(jī)安裝施工方案
- 強(qiáng)夯土方施工方案
- 速度課程設(shè)計(jì)講解
- 2025年度新能源項(xiàng)目公司成立合作協(xié)議書規(guī)范文本4篇
- 2025年銷售人員保密與反不正當(dāng)競爭協(xié)議維護(hù)企業(yè)合法權(quán)益2篇
- 2025年度個(gè)人向公司借款用于房屋維修貸款合同范本3篇
- 2025年度智能房屋租賃管理服務(wù)承包合同書4篇
- 2025年教育機(jī)構(gòu)廚師團(tuán)隊(duì)聘用及餐飲服務(wù)質(zhì)量標(biāo)準(zhǔn)合同2篇
- 二零二五版民房建筑施工安全生產(chǎn)責(zé)任合同4篇
- 河南省鄭州市2023-2024學(xué)年高二上學(xué)期期末考試 數(shù)學(xué) 含答案
- 2024年資格考試-WSET二級認(rèn)證考試近5年真題集錦(頻考類試題)帶答案
- 試卷中國電子學(xué)會(huì)青少年軟件編程等級考試標(biāo)準(zhǔn)python三級練習(xí)
- 公益慈善機(jī)構(gòu)數(shù)字化轉(zhuǎn)型行業(yè)三年發(fā)展洞察報(bào)告
- 飼料廠現(xiàn)場管理類隱患排查治理清單
- 2024年公需科目培訓(xùn)考試題及答案
- 【名著閱讀】《紅巖》30題(附答案解析)
- Starter Unit 2 同步練習(xí)人教版2024七年級英語上冊
- 分?jǐn)?shù)的加法、減法、乘法和除法運(yùn)算規(guī)律
- 2024年江蘇鑫財(cái)國有資產(chǎn)運(yùn)營有限公司招聘筆試沖刺題(帶答案解析)
- 2024年遼寧石化職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫含答案
評論
0/150
提交評論