




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2022年甘肅省慶陽市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列關(guān)于字符串的說法中錯(cuò)誤的是
A.在C語言中,字符串是借助于字符型一維數(shù)組來存放的,并規(guī)定以字符'\0'作為字符串結(jié)束標(biāo)志
B.'\0'作為標(biāo)志占用存儲空間,計(jì)入串的實(shí)際長度
C.在表示字符串常量的時(shí)候不需要人為在其末尾加入'\0'
D.在C語言中,字符串常量隱含處理成以'\0'結(jié)尾
2.在定義inta[3][2]以后,對a的引用正確的是()
A.a[0,0]B.a[3][0]C.a[2][2]D.a[0][0]
3.在一個(gè)元素個(gè)數(shù)為N的數(shù)組里,找到升序排在N/5位置的元素的最優(yōu)算法時(shí)間復(fù)雜度是()A.O(n)B.O(nlogn)C.O(n(logn)2)D.O(n3/2)
4.設(shè)有定義:floata=2,b=4,h=3;,以下C語言表達(dá)式與代數(shù)式計(jì)算結(jié)果不相符的是()。
A.(a+b)*h/2B.(1/2)*(a+b)*hC.(a+b)*h*1/2D.h/2*(a+b)
5.已知廣義表:A=(a,b),B=(A,A),C=(a,(b,A),B),tail(head(tail(C)))的運(yùn)算結(jié)果是()。
A.(a)B.AC.aD.(A)
6.以下關(guān)于C語言數(shù)據(jù)類型使用的敘述中錯(cuò)誤的是A.若要準(zhǔn)確無誤差的表示自然數(shù),應(yīng)使用整數(shù)類型
B.若要保存帶有多位小數(shù)的數(shù)據(jù),應(yīng)使用雙精度類型
C.若要處理如“人員信息”等含有不同類型的相關(guān)數(shù)據(jù),應(yīng)自定義結(jié)構(gòu)體類型
D.若只處理“真”和“假”兩種邏輯值,應(yīng)使用邏輯類型
7.數(shù)據(jù)流圖用于抽象地描述一個(gè)軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識的圖符不屬于數(shù)據(jù)流圖合法圖符的是()。
A.控制流B.加工C.數(shù)據(jù)存儲D.源和潭
8.下列敘述中正確的是:()A.C語言程序總是從第一個(gè)定義的函數(shù)開始執(zhí)行
B.C語言程序中,函數(shù)類型必須進(jìn)行顯式聲明
C.C語言程序中,return語句必須放在函數(shù)的最后
D.C語言程序中,return語句中表達(dá)式的類型應(yīng)該與函數(shù)的類型一致
9.結(jié)構(gòu)化程序設(shè)計(jì)方法的3種基本控制結(jié)構(gòu)中不包括
A.循環(huán)結(jié)構(gòu)B.遞歸結(jié)構(gòu)C.順序結(jié)構(gòu)D.選擇結(jié)構(gòu)
10.假設(shè)以行序?yàn)橹餍虼鎯ΧS數(shù)組array[100][100],設(shè)每個(gè)數(shù)據(jù)元素占2個(gè)存儲單元,基地址為10,下標(biāo)從0開始,則元素array[5][5]的地址為()。
A.808B.818C.1010D.1020
11.
12.設(shè)有定義“doublea[10],*s=a;”,以下能夠代表數(shù)組元素a[3]的是()。
A.(*s)[3]B.*(s+3)C.*s[3]D.*s+3
13.任何一個(gè)無向圖的最小生成樹()。
A.只有一棵B.有一棵或多棵C.一定有多棵D.可能不存在
14.有如下說明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達(dá)式是()
A.*p+9B.*(p+8)C.*p+=9D.p+8
15.
16.以下是if語句的基本形式:
if(表達(dá)式.語句
其中“表達(dá)式”()。
A.必須是邏輯表達(dá)式B.必須是關(guān)系表達(dá)式C.必須是邏輯表達(dá)式或關(guān)系表達(dá)式D.可以是任意合法的表達(dá)式
17.軟件按功能可以分為應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的是()。
A.學(xué)生成績管理系統(tǒng)B.C語言編譯程序C.UNIX操作系統(tǒng)D.數(shù)據(jù)庫管理系統(tǒng)
18.表達(dá)式a*(-b+c)的逆波蘭式是()
A.ab-+c*B.abc-+*C.a*b-c+D.ab-c+*
19.在一個(gè)雙向鏈表中,q的前一個(gè)節(jié)點(diǎn)為p,q的后一個(gè)節(jié)點(diǎn)為n,刪除q所指向節(jié)點(diǎn),則執(zhí)行()
A.deleteq;
B.q->prev->next=q->prev;q->next->prev=q->next;deleteq;
C.q->prev=p->next;p->next=p->prev;deleteq;
D.q->next=q->prev->next;q->prev=q->next->prev;deleteq;
E.q->prev->next=q->next;q->next->prev=q->prev;deleteq;
F.p->prev->next=p->next;p->next->prev=p->prev;deleteq->next;
20.若要求定義具有10個(gè)int型元素的一維數(shù)組a,則以下定義語句中錯(cuò)誤的是A.#defineN10inta[N];B.#definen5inta[2*n];C.inta[5+5];
D.intn=10,a[n];
二、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.在面向?qū)ο蠓椒ㄖ校瑢傩耘c操作相似的一組對象稱為【】。
23.以下程序中,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(j=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];
______=x;
}
}
24.若x為int類型,請寫出與!x等價(jià)的C語言表達(dá)式______。
25.若有以下定義,則使指針p指向值為35的數(shù)組元素的語句是______。
inta[10]={14,27,47,29,35,21,49,71},*p;
26.數(shù)據(jù)庫的邏輯模型設(shè)計(jì)階段的任務(wù)是將______轉(zhuǎn)換成關(guān)系模式。
27.某二叉樹中度為2的結(jié)點(diǎn)有18個(gè),則該二叉樹中有【】個(gè)葉子結(jié)點(diǎn)。
28.下列程序的功能是將字符串s中所有的字符c刪除。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{chars[80];
inti,j;
gets(s);
for(i=j=0;s[i]!='\0';i++)
if(s[i]!='c')
s[j]='\0';
puts(s);
}
29.線性表的存儲結(jié)構(gòu)主要分為順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)。隊(duì)列是一種特殊的線性表,循環(huán)隊(duì)列是隊(duì)列的【】存儲結(jié)構(gòu)。
30.在循環(huán)中,continue語句與break語句的區(qū)別是:______語句只是結(jié)束本次循環(huán),然后進(jìn)行循環(huán)的條件判定。
31.以下程序的運(yùn)行結(jié)果是【】。
#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);
}
32.數(shù)據(jù)庫管理系統(tǒng)常見的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和【】3種。
33.以下程序的功能是【】。
main()
{intnum[10]={10,1,-20,-203,-21,2,-2,-2,11,-21};
intsum=0,i;
for(i=0;i<10;i++)
if(num[i]>0)
sum=num[i]+sum;
printf("sum=%6d",sum);
}
34.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{inti;
for(i='a';i<'f';i++,i++)printf("%c",i-'a'+'A');
printf("\n");
}
35.若有下列定義和語句:
char*s1="12345",*s2="1234";
printf("%d\n",strlen(strcpy(s1,s2)));
則輸出結(jié)果為______。
36.當(dāng)所有結(jié)點(diǎn)的權(quán)值都相等時(shí),用這些結(jié)點(diǎn)構(gòu)造的二叉排序樹是【】。
37.設(shè)i,j,k均是int型變量,則執(zhí)行以下for循環(huán)后,k的值為【】。
for(i=0,j=10;i<=j;i++,j--)
k=i+j;
38.軟件生命周期分為軟件定義期、軟件開發(fā)期和軟件維護(hù)期,詳細(xì)設(shè)計(jì)屬于______中的一個(gè)階段。
39.以下程序用來統(tǒng)計(jì)文件中字符的個(gè)數(shù)。請?zhí)羁铡?/p>
#include“stadio.h”
main()
{FILE*fp;longnum=0L;
if((fp=fopen(“fname.dat”,“r”))==NULL);
{printf(“0penerror\n”);exit(0);}
while(【】)
{fsetc(fp);num++;}
printf(“num=%1d\n”,num-1);
fclose(fp);
}
40.若輸入字符串:abcde,則以下while循環(huán)體將執(zhí)行【】次。
while((ch=getchar())=='e')printf("*");
三、1.選擇題(20題)41.以下程序中函數(shù)sort的功能是對a所指數(shù)組中的數(shù)據(jù)進(jìn)行由大到小的排序;voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1,j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(&aa[3],5);for(i=0;i<10;i++)print("%d,",aa[i]);printf('\n");}程序運(yùn)行后的輸出結(jié)果是()。
A.1,2,3,4,5,6,7,8,9,10
B.10,9,8,7,6,5,4,3,2,1,
C.1,2,3,8,7,6,5,4,9,10
D.1,2,10,9,8,7,6,5,4,3,
42.有以下程序main(){char*s[]={"one","two","three"},*P;p=s[1];printf("%c,%s\n",*(p+1),s[0]);}執(zhí)行后輸出結(jié)果是
A.n,twoB.t,oneC.w,oneD.o,two
43.判斷char型變量c1是否為大寫字母的正確表達(dá)式是
A.'A'<=c1<='Z'
B.(c1>=A)&&(c1<=Z)
C.('A'>=c1)||('Z'<=c1)
D.(c1>='A')&&(c1<='Z')
44.已有定義:chara[]="xyzt",b[]={'x','y','z'};,下列敘述中正確的是()。
A.數(shù)組a和b的長度相同B.a數(shù)組長度小于b數(shù)組長度C.a數(shù)組長度大于b數(shù)組長度D.上述說法都不對
45.已定義c為字符型變量,則下列語句中正確的是()。
A.c='97'B.c="97"C.c=97D.c="a"
46.執(zhí)行以下程序段時(shí),輸出結(jié)果為()。doublea;a=333.721568;printf("%-62e\n",a);
A.輸出格式描述符的域?qū)挷粔颍荒茌敵鯞.33.721568e+01C.3.3e+02D.-3.33e2
47.若以“a+”方式打開一個(gè)已存在的文件,則下列敘述正確的是()。
A.文件打開時(shí),原有文件內(nèi)容不被刪除,位置指針移到文件末尾,可以進(jìn)行添加或讀操作
B.文件打開時(shí),原有文件內(nèi)容不被刪除,只能進(jìn)行讀操作
C.文件打開時(shí),原有文件內(nèi)容被刪除,只能進(jìn)行寫操作
D.以上三種說法都不正確
48.以下4個(gè)選項(xiàng),不能看作一條語句的是()。
A.{;}B.intx=0,y=1,z=0;C.if(!A);D.if(b==0)m=1;n=2;
49.在以下一組運(yùn)算中,優(yōu)先級最高的運(yùn)符算是()
A.<=B.=C.%D.&&
50.有以下程序;main(){inty=3,x=3,z=1;printf("%d%d\n",(++x,y++),z+2);}執(zhí)行后的輸出結(jié)果是()
A.34B.42C.43D.33
51.有以下程序:#include<stdio.h>#include"string.h"voidfun(char*s[],intn){char*t;inti,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strlen(s[i])>strlen(s[j])){t=s[i];s[i]=s[j];s[j]=t;}}main(){char*ss[]={"bee","bbcc","xy","aaaacc","aabcc"};fun(ss,5);printf("%s,%s\n",ss[0],ss[4]);}程序的運(yùn)行結(jié)果是()。
A.xy,aaaaccB.aaaacc,xyC.bcc,aabccD.aabcc,bcc
52.下列程序段的運(yùn)行結(jié)果是()。#include<stdio.h>voidmain(){charstr[]="ABC",*p=str;printf("%d\n",*(p+3));}
A.67B.0C.字符'C'的地址D.字符'C'
53.若有以下定義和語句#include<stdio.h>inta=4,b=3,*p,*q,*w;p=&a;q=&b;w=q;q=NULL;則以下選項(xiàng)中錯(cuò)誤的語句是
A.*q=0;B.w=p;C.*p=a;D.*p=*w;
54.以下不能正確計(jì)算代數(shù)式sin2()值的C語言表達(dá)式是()。
A.1/3*sin(1/2)*sin(1/2)
B.sin(0.5)*sin(0.5)/3
C.pow(sin(0.5),2)/3
D.1/3.0*pow(sin(1.0/2),2)
55.下列程序的運(yùn)行結(jié)果為______。main(){inta,*p;p=&a;a=100;printf("a=%d*p=%d*&a=%d&*p=%u",a,*p,*&a,&*p);a++;printf("a++=%d",a);(*p)++;printf("(*p)++=%d",*p);*p++;printf("*p++=%d\n",*p);}
A.a=100*p=100*&a=100&*p=65498a++=101(*p)++=102*p++=-24
B.a=100*p=100*&a=100&*p=65498a++=101(*p)++=102*p++=-102
C.a=100*p=100*&a=65498&*p=65498a++=101(*p)++=102*p++=-24
D.a=100*p=100*&a=100&*p=65498a++=101(*p)++=101*p++=-24
56.執(zhí)行下面程序的正確結(jié)果是()。main(){floata=1.9;switch(a){case0:printf("0000");case1:printf("1111");case2:printf("3333");}printf("%f",a);}
A.1.9B.111133331.9C.33331.9D.1111233331.9
57.若已包括頭文件<stdio.h>和<string.h>,運(yùn)行下列程序段時(shí)輸出結(jié)果是()。inti=0;chars1[10]="ABCD",s2[10]="EFG";strcat(s1,s2);while(s2[i++]!='\0')s2[i]=s1[i];puts(s2);
A.ABCB.ABCDEFC.EBCDEFGD.CBD
58.設(shè)x為int型變量,執(zhí)行以下語句,x=10;x+=x-=x-x;x的值為______。
A.10B.20C.30D.40
59.簡單的交換排序方法是()。
A.快速排序B.選擇排序C.堆排序D.冒泡排序
60.有以下程序voidf(int*x,int*y){intt;t=*X;*X=*y;*y=t;}main(){inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;p=a;q=&a[7);while(p>q){f(p,q);p++;q--;}for(i=0;i<8;i++)printf("%d,",a[i]);}程序運(yùn)行后的輸出結(jié)果是
A.8,2,3,4,5,6,7,1,
B.5,6,7,8,1,2,3,4,
C.1,2,3,4,5,6,7,8,
D.8,7,6,5,4,3,2,1,
四、選擇題(20題)61.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.1,2,3,4,5,6,7,8,9,0,
B.2,1,4,3,6,5,8,7,0,9,
C.0,9,8,7,6,5,4,3,2,1,
D.0,1,2,3,4,5,6,7,8,9,
62.下列關(guān)于Internet和Web的說法中,正確的是()。
A.Web就是Internet的別稱
B.Web是基于Internet之上的一個(gè)應(yīng)用服務(wù)
C.Internet是基于Web之上的一個(gè)信息系統(tǒng)
D.Internet與Web沒有任何關(guān)系
63.假設(shè)a和b為int型變量,則執(zhí)行以下語句后b的值為()。a=1;b=10;do{b-=a;a++;}while(b--<0);A.9B.-2C.-lD.8
64.一些重要的程序設(shè)計(jì)語言(inC語言和Pascal語言)允許過程的遞歸調(diào)用,而實(shí)現(xiàn)遞歸調(diào)用中的存儲分配通常用()。
A.棧B.堆C.數(shù)組D.鏈表
65.若二維數(shù)組a有m列,則在a[i][j]前的元素個(gè)數(shù)為()。
A.i*m+j-1B.i*m+jC.J*m+iD.i*m+j+1
66.軟件生命周期是指()。A.軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程
B.軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測試完成的過程
C.軟件的開發(fā)過程
D.軟件的運(yùn)行維護(hù)過程
67.
有以下程序
#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,
68.數(shù)據(jù)庫系統(tǒng)的核心是()。
A.數(shù)據(jù)模型B.數(shù)據(jù)庫管理系統(tǒng)C.數(shù)據(jù)庫D.數(shù)據(jù)庫管理員
69.
70.
71.
72.若變量已正確定義為int型,要通過語句:scanf(”%d,%d,%d”,&;a,&;b,&C.;給a賦值l、給b賦值2、給C賦值3,以下輸入形式中錯(cuò)誤的是()。(注:口代表一個(gè)空格符)
73.在以下選項(xiàng)中,能IE確聲明數(shù)組并進(jìn)行初始化的語句是()。
A.str=newDimension(1,2,3);
B.str=newdimension(1,2,3);
C.str:newArray(1,2,3);
D.str=newarray(1,2,3);
74.第
42
題
若有說明語句
chara[]="Itismine";
char*p="Itismine";
則以下不正確的敘述是
A.a+1表示的是字符t的地址
B.p指向另外的字符串時(shí),字符串的長度不受限制
C.p變量中存放的地址值可以改變
D.a中只能存放10個(gè)字符
75.有以下程序執(zhí)行后的輸出結(jié)果是()。
A.3B.2C.1D.4
76.若有定義語句:"inta[4][10],*P,*q[4];"且0≤i<4,則錯(cuò)誤的賦值是()。
A.D=aB.q[i]=a[i]C.p=a[l]D.P=&a[2][1]
77.
78.數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)之間的關(guān)系是()。
A.數(shù)據(jù)庫包括數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)
B.數(shù)據(jù)庫系統(tǒng)包括數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)
C.數(shù)據(jù)庫管理系統(tǒng)包括數(shù)據(jù)庫和數(shù)據(jù)庫系統(tǒng)
D.三者沒有明顯的包含關(guān)系
79.以下關(guān)于C語言的敘述中正確的是()。
A.C語言的數(shù)值常量中夾帶空格不影響常量值的正確表示
B.C語言中的變量可以在使用之前的任何位置進(jìn)行定義
C.在C語言算術(shù)表達(dá)式的書寫中,運(yùn)算符兩側(cè)的運(yùn)算數(shù)類型必須一致\
D.C語言中的注釋不可以夾在變量名或關(guān)鍵字的中間
80.負(fù)責(zé)數(shù)據(jù)庫中查詢操作的數(shù)據(jù)庫語言是()。
A.數(shù)據(jù)定義語言B.數(shù)據(jù)管理語言C.數(shù)據(jù)操縱語言D.數(shù)據(jù)控制語言
五、程序改錯(cuò)題(1題)81.下列給定程序中函數(shù)fun的功能是:用遞歸算法計(jì)算斐波拉契數(shù)列中第n項(xiàng)的值。從第l項(xiàng)起,斐波拉契數(shù)列為:1,1,2,3,5,8,13,21,…例如,若給n輸入7,則該項(xiàng)的斐波拉契數(shù)值為l3。請改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>longfun(intg){//****found****switch(g);{case0:return0;//****found****casel:case2:return1;}return(fun(g-1)+fun(g-2));}voidmain{longfib;intn;printf("Inputn:");scanf("%d",&n);printf("n=%d\n",n);fib=fun(n);printf("fib=%d\n\n",fib);}
六、程序設(shè)計(jì)題(1題)82.從鍵盤上輸入9個(gè)數(shù),按3行3列的格式輸出。
參考答案
1.B解析:'\\0'作為標(biāo)志占用存儲空間,但是不計(jì)入串的實(shí)際長度。當(dāng)給一個(gè)字符型指針賦值時(shí),賦給這個(gè)指針的是這個(gè)字符串的地址。
2.D
3.A
4.B
5.D
6.D解析:C語言中沒有邏輯類型,若只處理"真"或"假"兩種邏輯值,可以使用整型數(shù)"1"或"0"表示,故選D。
7.A解析:數(shù)據(jù)流圖包括四個(gè)方面,即加工(輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出)、數(shù)據(jù)流(沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標(biāo)注數(shù)據(jù)流名)、存儲文件(數(shù)據(jù)源)(表示處理過程中存放各種數(shù)據(jù)的文件)、源和潭(表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實(shí)體),不包括選項(xiàng)中的控制流。
8.DC程序程序總是從main函數(shù)開始執(zhí)行。C程序中如果沒有對函數(shù)類型進(jìn)行說明,則該函數(shù)默認(rèn)為int類型。return語句可以放在函數(shù)任意位置,但是return之后的語句不會被執(zhí)行。
9.B解析:本題考查了程序的基本結(jié)構(gòu)。程序由一些基本結(jié)構(gòu)組成。任何一個(gè)大型的程序都由3種基本結(jié)構(gòu)組成,由這些基本結(jié)構(gòu)順序的構(gòu)成了一個(gè)結(jié)構(gòu)化的程序。這3種基本結(jié)構(gòu)為:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。
10.C
11.D
12.B題中,首先定義了double型的數(shù)組a,并將數(shù)組首地址賦給指針s。“(*s)”表示“a[1]”,“s[3]”不是指針變量,不能使用間址運(yùn)算符“*”,故選項(xiàng)A、C不能表示“a[3]”;選項(xiàng)D的“*s+3”等于“a[0]+3”。故本題答案為B選項(xiàng)。
13.B
14.B解析:在C語言的數(shù)組元素的引用方法,我們在前面已經(jīng)講過了,比如數(shù)組元素a[0],可以用表達(dá)式*(p+0),即*p來引用,對于數(shù)組元素a[1],可以用表達(dá)式*(p+1)來引用,在這里,p+1的值就是數(shù)組元素a[1]的地址,對此地址使用“間接訪問運(yùn)算符”:*(p+1)就代表存儲單元a[1],注意:一對圓括號不可少。同樣,對于數(shù)組元素a[2],則可以用表達(dá)式。(p+2)來引用…,對于數(shù)組元素a[9],可以用表達(dá)式,(p+9)來引用。因此,當(dāng)指針變量p指向a數(shù)組的起始地址時(shí),若0≤i<10,則數(shù)組元素a[i]可以用*(p+i)來表示。
15.B
16.D解析:本題主要考查關(guān)于if語句的說明,if后面圓括號中的表達(dá)式,可是任意合法的C語言表達(dá)式(如:邏輯表達(dá)式、關(guān)系表達(dá)式、算術(shù)表達(dá)式、賦值表達(dá)式等),也可以是任意類型的數(shù)據(jù)(如:整型、實(shí)型、字符型、指針型等。)
17.A
18.D
19.E
20.D答案D
解析:在選項(xiàng)D中,n是一個(gè)整型的變量。C語言規(guī)定,在一維數(shù)組的定義中,其下標(biāo)只能是常量表達(dá)式,不能包含變量。
21.30x30x解析:本題的參數(shù)傳遞屬于值傳遞,所以被調(diào)用函數(shù)內(nèi)不能改變調(diào)用函數(shù)中的數(shù)據(jù)。
22.類類解析:在面向?qū)ο蠓椒ㄖ校惷枋龅氖蔷哂邢嗨菩再|(zhì)的一組對象。所以,屬性與操作相似的一組對象稱為類。
23.br[i]
24.x==0x==0解析:!x的邏輯意思就是x為非,即x==0。
25.p=a+4或p=&a[4]。p=a+4或p=&a[4]。解析:可以直接將數(shù)組元素a[4]的地址(即&a[4])賦給指針變量p,也可以用數(shù)組名加偏移量的形式(即a+4)表示數(shù)組元素a[4]的地址,并賦給指針變量p。
26.E-R圖E-R圖解析:數(shù)據(jù)庫邏輯設(shè)計(jì)的任務(wù)是將概念模型進(jìn)一步轉(zhuǎn)化成相應(yīng)的數(shù)據(jù)模型。而E-R圖是主要的概念模型,因此數(shù)據(jù)庫的邏輯設(shè)計(jì)的主要工作是將E-R圖轉(zhuǎn)換成關(guān)系模式。
27.1919解析:根據(jù)二叉樹的性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。本題中度為2的結(jié)點(diǎn)數(shù)為18,故葉子結(jié)點(diǎn)數(shù)為18+1=19個(gè)。
28.S[j++]=s[i]S[j++]=s[i]解析:循環(huán)開始后如果數(shù)組s中儲存值與字符c相同,則i++直接跳過當(dāng)前值;如果不相同,則將當(dāng)前值賦予數(shù)組指定位置,并通過j++將下標(biāo)加1,指向下一元素要存儲的位置。
29.順序順序解析:線性表的存儲結(jié)構(gòu)主要分為順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)。當(dāng)隊(duì)列用鏈?zhǔn)酱鎯Y(jié)構(gòu)實(shí)現(xiàn)時(shí),就稱為鏈隊(duì)列;當(dāng)隊(duì)列用順序存儲結(jié)構(gòu)實(shí)現(xiàn)時(shí),就稱為循環(huán)表。因此,本題劃線處應(yīng)填入“順序”。
30.continuecontinue解析:continue語句只是結(jié)束本次循環(huán),然后進(jìn)行循環(huán)的條件判定。break語句是終止整個(gè)循環(huán)的執(zhí)行,不再進(jìn)行條件判定。
31.a=2b=1a=2,b=1解析:本題考查了switch結(jié)構(gòu)的內(nèi)容。C語言中,程序執(zhí)行完一個(gè)case標(biāo)號的內(nèi)容后,如果沒有break語句,控制結(jié)構(gòu)會轉(zhuǎn)移到下一個(gè)case繼續(xù)執(zhí)行,因?yàn)閏ase常量表達(dá)式只是起語句標(biāo)號作用,并不是在該處進(jìn)行條件判斷。本題程序在執(zhí)行完內(nèi)部switch結(jié)構(gòu)后,繼續(xù)執(zhí)行了外部switch結(jié)構(gòu)的case2分支,最后a和b的值分別為2和1。
32.關(guān)系模型關(guān)系模型解析:數(shù)據(jù)庫管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層系統(tǒng)管理軟件,是一種系統(tǒng)軟件,是用戶與數(shù)據(jù)庫之間的一個(gè)標(biāo)準(zhǔn)接口。其總是基于某種數(shù)據(jù)模型,可以分為層次模型、網(wǎng)狀模型和關(guān)系模型。
33.計(jì)算數(shù)組num中大于零的數(shù)據(jù)之和計(jì)算數(shù)組num中大于零的數(shù)據(jù)之和
34.ACEACE解析:在本題中,for循環(huán)體每執(zhí)行完一次,變量i的值自加兩次。i的初值為“a”,執(zhí)行一次循環(huán)后變?yōu)椤癱”,之后再變成“e”,當(dāng)其變?yōu)椤癵”時(shí),循環(huán)條件若不滿足,循環(huán)終止,故本題共輸出3個(gè)字符。表達(dá)式“i-'a'+'A'”即表示輸出i對應(yīng)的大寫字母,結(jié)果為ACE。
35.44解析:strcpy(s1,s2)函數(shù)的作用是將字符串s2中的內(nèi)容拷貝到字符串s1中的內(nèi)容覆蓋。strlen()函數(shù)是求字符串的長度。本題實(shí)際上是要求s2字符串的長度,即是4。
36.右子樹(單支樹)右子樹(單支樹)解析:二叉排序樹對于任意新結(jié)點(diǎn),若大于等于根結(jié)點(diǎn),則在右子樹上建立。
37.10
38.軟件開發(fā)軟件開發(fā)解析:軟件生命周期分為3個(gè)時(shí)期共8個(gè)階段:軟件定義期(問題定義、可行性研究和需求分析)、軟件開發(fā)期(系統(tǒng)設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測試)、軟件維護(hù)期(即運(yùn)行維護(hù)階段)。
39.!feof(fP)!feof(fP)解析:統(tǒng)計(jì)文件中字符個(gè)數(shù)的算法可描述如下:首先判斷文件位置指針是否指向了文件尾,如果不是則讀出一個(gè)字符,同時(shí)字符的個(gè)數(shù)加1,再判斷文件位置指針是否位于文件尾,如此循環(huán),直到文件位置指針位于文件尾為止。本題首先以讀文件的方式打開了文件“fname.dar”,如果打開成功則把返回的文件型指針賦值給fp,然后通過循環(huán)求文件中的字符數(shù)。首先判斷文件位置指針是否位于文件尾,如果不是則循環(huán)讀取字符,每次字符數(shù)加1。所以下劃處應(yīng)填循環(huán)條件,文件位置指針不是指向文件尾,即“!feof(fp)”。
40.00解析:函數(shù)getchar()是從鍵盤得用戶輸入的一個(gè)字符。用戶輸入的第1個(gè)字符a,不管后面輸入的是什么ch的值都是'a',因此條件(ch=getchar())=='e'為假,這個(gè)循環(huán)不會被執(zhí)行。
41.C解析:本題中首先定義一個(gè)長度為10的一個(gè)整型數(shù)組,并初始化為“1,2,3,4,5,6,7,8,9,10”,然后調(diào)用排序函數(shù)sort(),通過分析不難看出,sort()函數(shù)是對具有n個(gè)元素的a數(shù)組進(jìn)行從大到小排序。由于函數(shù)的第一個(gè)參數(shù)是數(shù)組名,其對應(yīng)的實(shí)參可以是函數(shù)名或地址。本題在調(diào)用該函數(shù)時(shí),實(shí)參是&aa[3]的地址,即把a(bǔ)a[3]的地址傳給了行參數(shù)組名a,函數(shù)也就是對aa[3]開始的5個(gè)元素進(jìn)行從大到小的摔序,aa[0]、aa[1]、aa[2]、aa[8]、aa[9]并沒有變化。Sort()執(zhí)行完畢后,接著執(zhí)行后面的for語句輸出數(shù)組aa中各個(gè)元素的值,由于函數(shù)sort()只是對aa[3]開始的5個(gè)元素進(jìn)行從大到小的排序,aa[0]、aa[1]、aa[2]、aa[8]、aa[9]并沒有變化,所以輸出為“1,2,3,8,7,6,5,4,9,10”。所以4個(gè)選項(xiàng)中C正確。
42.C解析:本題考核的知識點(diǎn)是指針數(shù)組。本崽首先定義了一個(gè)有3個(gè)元素的指針數(shù)組s,并遭過賦值使s[0]指向字符串“one”s[1]指向字符串“two”,s[2]指向字符串“three”,然后通過賦值語句“p=s[1]”,使p指向了字符串“two”,故”(p+1)”就是字符“w”。所以,C選項(xiàng)為所選。
43.D解析:字符型數(shù)據(jù)在計(jì)算機(jī)內(nèi)部是以ASCII碼存儲的,英文大寫字母和小寫字母在ASCII碼表中都是連續(xù)的。大寫字母A到Z是從65到90,所以只要變量c1大于A并且小于Z就能保證其為大寫字母。注意:邏輯運(yùn)算符的功能與作用。
44.A解析:字符數(shù)組a[]中用字符串常量“xyz”進(jìn)行初始化,字符數(shù)組a[]的長度為字符的個(gè)數(shù),所以其值為3,并不包括字符串結(jié)束標(biāo)記'\\0\\;字符串?dāng)?shù)組b[]用3個(gè)字符'x'、'y'、'z'來初始化,所以其字符串的長度等于3。
45.C解析:本題考核的知識點(diǎn)是字符型變量的基本概念。用單引號括起來的一個(gè)字符稱為字符常量,而選項(xiàng)B和選項(xiàng)D中用的是雙引號,而用雙引號括起來的字符為字符串常量,故選項(xiàng)B和選項(xiàng)D不正確。因?yàn)樵贑語言中,字符常量在存儲時(shí),并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的相應(yīng)的ASCII代碼放到存儲單元中,所以C語言使字符型數(shù)據(jù)和整形數(shù)據(jù)之間可以通用,選項(xiàng)C正確.而選項(xiàng)A中,給字符型變量賦值時(shí)只能賦一個(gè)字符,而9,7作為字符時(shí)為兩個(gè)字符且必須分別為單引號括起來,故選項(xiàng)A不正確,所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。
46.C解析:格式輸出符為e,數(shù)據(jù)將按科學(xué)計(jì)數(shù)形式輸出。-控制數(shù)據(jù)左對齊。所以,選項(xiàng)C正確。
47.A解析:本題考查文件使用方式標(biāo)識符,以“a+”方式打開一個(gè)已存在的文件,則表示保留文件中原有的數(shù)據(jù),文件的位置指針在文件末尾,此時(shí),可以進(jìn)行追加或讀操作。
48.D語句是用來判定所給的條件是否滿足,根據(jù)判定的結(jié)果(真或假)決定執(zhí)行給出的兩種操作之一。在if和else后面可以只含一個(gè)內(nèi)嵌的操作語句,也可以有多個(gè)操作語句,此時(shí)用花括號“{}”將幾個(gè)語句括起來成為一個(gè)復(fù)合語句。選項(xiàng)D)中沒有將兩個(gè)操作語句括起來,不能看作一條語句。
49.C
50.D
51.A
52.B解析:先定義了一個(gè)指向字符型數(shù)組str的指針p,指針p旨向數(shù)組str的首地址,p+3將指針指向str[3],又因?yàn)樽址蛿?shù)組在存放字符串時(shí)會自動(dòng)在末尾加上'\\0',所以*(p+3)=0。
53.A解析:本題中定義了3個(gè)指向整型的指針變量p、q、w,并讓P指向a,讓q指向b,通過將q的值賦給w,使w也指向b,最后將NULL賦值給q。由整型變量指針的定義可知,可以給整型指針指向的變量賦一個(gè)常數(shù)值(表達(dá)式);可以給指針變量賦一個(gè)同種類型的指針變量(或地址值);選項(xiàng)A因?yàn)閝不指向任何變量,給一個(gè)空指針指向的單元賦值是錯(cuò)誤的。
54.A解析:A中sin(1/2)是0,因?yàn)?和2都是整數(shù),“/”在這里是整除。
55.A
56.B解析:switch語句只接受int型變量,如果不是則隱式轉(zhuǎn)換為int,由于C語言中float到int的轉(zhuǎn)換是截尾取整,故在switch中從case1:標(biāo)號處開始執(zhí)行,首先輸出4個(gè)1。此時(shí)又因?yàn)閏ase2:之前并沒有break;之類的跳轉(zhuǎn)語句,所以case2:標(biāo)號處的語句也被執(zhí)行,輸出4個(gè)3。最后以默認(rèn)的浮點(diǎn)數(shù)格式輸出變量a,變量a在switch語句中并未被改變,故最后輸出為1.900000,所以應(yīng)該選擇B。
57.C解析:strcat(s1,s2)把s2連接到s1的后面,s1=ABCDEFG,執(zhí)行while(s2[i++]!='\\0')后i的值變?yōu)?,往后執(zhí)行s2[i]=s1[i]時(shí)是從把s1的第二位給s2的第二位開始,把s1賦給s2。
58.B解析:本題x=10,表達(dá)式“x+=x-=x-x;”的求解步驟如下:先進(jìn)行x-=x-x的運(yùn)算,相當(dāng)于)x=x-(x-x)=x=10;再進(jìn)行x+=x的運(yùn)算,即x=x+x=20。
59.D解析:所謂的交換類排序方法是指借助數(shù)據(jù)元素之間的互相交換進(jìn)行排序的一種方法,包括冒泡排序和快速排序,冒泡排序是一種最簡單的交換排序方法,它通過相鄰元素的交換,逐步將線性表變成有序。
60.D解析:在C語言中,函數(shù)參數(shù)的默認(rèn)傳遞方式是傳值,即函數(shù)內(nèi)部的形參只是調(diào)用時(shí)的實(shí)參的一個(gè)拷貝,改變形參,實(shí)參不會被改變.如果想要實(shí)現(xiàn)傳址調(diào)用只能使用傳遞指針的方式來實(shí)現(xiàn).利用指針作函數(shù)的參數(shù)時(shí),無論形參指針還是實(shí)參指針?biāo)傅亩际峭粋€(gè)內(nèi)存地址,所以形參如果改變了這個(gè)地址中的內(nèi)容,也就是改變了實(shí)參所指的地址內(nèi)容.本題程序開頭定義了一個(gè)函數(shù)f(),在函數(shù)中用一個(gè)臨時(shí)變量t交換了兩個(gè)指針參數(shù)所指的地址內(nèi)容,所以該函數(shù)的作用就是交換兩個(gè)參數(shù)所指的內(nèi)容。在主函數(shù)中,首先定義了一個(gè)int型數(shù)組a,并定義了兩個(gè)int型指針p、q分別指向數(shù)組a的第一個(gè)元素和最后一個(gè)元素。然后使用一個(gè)while循環(huán)調(diào)用函數(shù)f()不斷交換兩個(gè)指針?biāo)傅膬?nèi)容,每次交換后p往后移動(dòng)一個(gè)元素,q往前移動(dòng)一個(gè)元素,直到q不再大于p,即直到兩個(gè)指針在數(shù)組a的中間相遇為止。所以,程序最終運(yùn)行的結(jié)果是數(shù)組a中的所有元素全被反序排列一次。故應(yīng)該選擇選項(xiàng)D。
61.A函數(shù)調(diào)用中發(fā)生的數(shù)據(jù)傳送是單向的。即只能把實(shí)參的值傳送給形參,而不能把形參的值反向地傳送給實(shí)參。因此在函數(shù)調(diào)用過程中,形參的值發(fā)生改變,而實(shí)參中的值不會變化,所以數(shù)組c中的元素的值并沒有變化,選擇A。
62.B
63.D當(dāng)b為10時(shí),執(zhí)行b-=a,此時(shí)b為9,接著b--表達(dá)式值為9,b的值為8,大于0,while不成立,退出循環(huán),故選擇D選項(xiàng)。
64.A在允許過程的遞歸調(diào)用的程序設(shè)計(jì)語言中,由于C語言中棧的特性為先進(jìn)后出,因此用棧來實(shí)現(xiàn)遞歸調(diào)用中的存儲分配。
65.B解析:二維數(shù)組的元素可以看成是按矩陣形式存放的,總是先存放第一行的元素,再存放第二行的元素。數(shù)組第一維的下標(biāo)是i,說明它前面還有i行,有i*m個(gè)元素,數(shù)組第二維的下標(biāo)是j,說明它前面還有j列,有j個(gè)元素,所以共有i*m+j個(gè)元素。
66.A通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。
67.D
\n本題程序首先用函數(shù)fopen以“wb”的方式開打文件“d2.dat”,然后調(diào)用兩次fwrite函數(shù)將數(shù)組a的5個(gè)元素,依次輸出到文件fp中,共10個(gè)字節(jié),關(guān)閉文件。再次打開文件,使用文件指針指向文件的開頭,調(diào)用head函數(shù)從文件印中讀取這10個(gè)字節(jié)的數(shù)據(jù)到數(shù)組a中。型數(shù)組bb中,因此,【2】處填“str[i]-0”;由函數(shù)proc可知,變量n中存放整型數(shù)組bb中的元素個(gè)數(shù),最后要返回到主函數(shù)當(dāng)中,因此,【3
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025人教版(2024)小學(xué)美術(shù)一年級下冊教學(xué)計(jì)劃、教學(xué)設(shè)計(jì)及教學(xué)反思(附目錄)
- 2023槽式太陽能集熱器技術(shù)條件
- 小產(chǎn)權(quán)購房協(xié)議書
- 旅游業(yè)數(shù)字化轉(zhuǎn)型服務(wù)流程管理辦法
- 亮化工程廠家供貨合同
- 合伙合作工程協(xié)議書
- 商標(biāo)權(quán)轉(zhuǎn)讓合同書8篇
- 房屋遺產(chǎn)分配協(xié)議書
- 建筑器材購銷合同范本
- 水環(huán)真空泵市場分析及競爭策略分析報(bào)告
- 《走近世界民間美術(shù)》 課件 2024-2025學(xué)年人美版(2024)初中美術(shù)七年級下冊
- 河北單招考試三類職業(yè)適應(yīng)性測試考試題與答案
- 英語七年級下冊u1-u8 2b翻譯
- 《大學(xué)英語教學(xué)大綱詞匯表》(1~4級,5~6級)
- 2022年在戲劇家協(xié)會會員大會上的講話
- DB11-T1630-2019城市綜合管廊工程施工及質(zhì)量驗(yàn)收規(guī)范
- 茂名市2008-2016年土地增值稅工程造價(jià)核定扣除標(biāo)準(zhǔn)
- 部編版語文九年級下冊《棗兒》公開課一等獎(jiǎng)教案
- L阿拉伯糖與排毒課件
- 《現(xiàn)代交換原理》期末考試試習(xí)題和答案(免費(fèi))
- 手機(jī)開發(fā)流程圖
評論
0/150
提交評論