版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021年四川省成都市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.為了使模塊盡可能獨(dú)立,要求_____。A.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強(qiáng)
B.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱
C.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱
D.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強(qiáng)
2.若變量已正確定義,有下列程序段:inta=3,b=5,c=7;if(a>B)a=b;c=a;if(c!=A)c=b;printf("%d,%d,%d\n",a,b,C);其輸出結(jié)果是()。A.程序段有語法錯(cuò)B.3,5,3C.3,5,5D.3,5,7
3.下面判斷正確的是
A.char*a="china";等價(jià)于char*a;*a="china";
B.charstr[5]={"china"};等價(jià)于charstr[]={"china"};
C.char*s="china";等價(jià)于char*s;s="china";
D.charc[4]="abc",d[4]="abc";等價(jià)于charc[4]=d[4]="abc";
4.以下選項(xiàng)中關(guān)于C語言常量的敘述錯(cuò)誤的是()。
A.所謂常量,是指在程序運(yùn)行過程中,其值不能被改變的量
B.常量分為整型常量、實(shí)型常量、字符常量和字符串常量
C.常量可分為數(shù)值型常量和非數(shù)值常量
D.經(jīng)常被使用的變量可以定義成常量
5.以下程序的輸出結(jié)果是()main(){staticchara[10]={"Chinese"};printf("%d",strlen(a));}
A.7B.2C.9D.10
6.
7.設(shè)有以下程序段:要求輸入字符串給結(jié)構(gòu)體變量rec的title成員,錯(cuò)誤的輸入語句是()A.seanf(”%s”Ptrtitle);
B.scanf(”%s”,rec.title);
C.scanf(’’%s”,(*pu).title);
D.scanf(”%s”,ptr->title);
8.假設(shè)整型數(shù)i的地址為0x12345678,指針ip地址為0x21850043,則執(zhí)行以下后,k的值為()。A.0x12345678B.0x21850043C.100D.不確定
9.設(shè)有以下函數(shù):voidfun(intn,char*s){…}則下面對(duì)函數(shù)指針的定義和賦值均正確的是()。
A.void(*pf)();pf=fun;
B.void*pf();pf=fun
C.void*pf();*pf=fun;
D.void(*pf)(int,char);pf=&fun;
10.設(shè)變量a是int型,f是float型,i是double型,則表達(dá)式10+′a′+i*f值的數(shù)據(jù)類型為
A.intB.floatC.doubleD.不確定
11.以下不能將s所指字符串正確復(fù)制到t所指存儲(chǔ)空間的是()A.do{*t++=*s++;}while(*s);
B.for(=0;t[的]=s@];i++);
C.while(*t=*s){t++;s++}
D.for(i=0.j=0;t[i++]=sj++];);.
12.以下選項(xiàng)中,當(dāng)x為大于l的奇數(shù)時(shí),值為0的表達(dá)式是
A.x%2==1B.x/2C.x%2!=0D.x%2==0
13.以下有4組用戶標(biāo)識(shí)符,其中合法的一組是()。
A.FOr-subCase
B.4dDOSize
C.f2_G3IFabc
D.WORDvoiddefine
14.有如下程序main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s=10*s+p[i][j]-'0';printf("%d\n",s);}該程序的輸出結(jié)果是
A.69825B.63825C.6385D.693825
15.
16.數(shù)據(jù)的邏輯關(guān)系是指數(shù)據(jù)元素的()。
A.關(guān)聯(lián)B.結(jié)構(gòu)C.數(shù)據(jù)項(xiàng)D.存儲(chǔ)方式
17.有以下程序:#include<stdio.h>main(){char*s=“01234”;while(*(++s)!=‘\0’){switch(*s-‘0’){case0:case1:putchar(*s+1);break;case2:putchar(*s+1);break;case3:putchar(*s+1);default:putchar(*s+1);break;}}}程序運(yùn)行后的輸出結(jié)果是()。
A.22345B.2345C.12345D.23445
18.請(qǐng)問對(duì)一個(gè)排好序的數(shù)組進(jìn)行查找,時(shí)間復(fù)雜度為()
A.O(n)B.O(lgn)C.O(nlgn)D.O(1)
19.對(duì)于關(guān)鍵字值序列(12,13,11,18,60,15,7,18,25,100)
A.100B.12C.60D.15
20.下列敘述中錯(cuò)誤的是()。
A.C語言函數(shù)中定義的自動(dòng)變量,系統(tǒng)不自動(dòng)賦確定的初值
B.在C語言的同一函數(shù)中,各復(fù)合語句內(nèi)可以定義變量,其作用域僅限于本復(fù)合語句內(nèi)
C.C語言函數(shù)中定義的賦有初值的靜態(tài)變量,每調(diào)用一次函數(shù)為其賦一次初值
D.C語言函數(shù)的形參不可以說明為static型變量
二、2.填空題(20題)21.存儲(chǔ)300個(gè)16×16點(diǎn)陣的漢字信息需要【】字節(jié)。
22.設(shè)有如下變量說明,則a+(int)((int)b+c)>>(int)(b-c)的值為【】。
inta=5;floatb=7.2,c=3.6;
23.有以下程序:
intf(intn)
{if(n==1)return1;
elsereturnf(n-1)+1;}
main()
{inti,j=0;
for(i=1;i<3;i++)j+t(i);
printf("%d\n",j);
}
程序運(yùn)行后的輸出結(jié)果是【】。
24.以下程序運(yùn)行時(shí),若從鍵盤輸入:102030<回車>,輸出的結(jié)果是【】。
#include<stdio.h>
main()
{inti=0,j=0,k=0;
scanf("%d%*d%d",&i,&j,&k);
printf("%d%d%d\n",i,j,k);
}
25.有以下定義和語句,則sizeof(a)的值是【】,而sizeof(a.share)的值是【】。
structdate
{intday;
intmouth;
intyear;
union{intshare1;
floatshare2;
}share;
}a;
26.數(shù)據(jù)獨(dú)立性分為邏輯獨(dú)立性與物理獨(dú)立性。當(dāng)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)改變時(shí),其邏輯結(jié)構(gòu)可以不變,所以,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改,稱為【】。
27.棧的3種基本運(yùn)算是:入棧、退棧和______。
28.下面程序的運(yùn)行結(jié)果是:【】。
typedefunionstudent
{charname[10];
longsno;
charsex;
floatscore[4];
}STU;
main()
{STUa[5];
Printf(“%d\n”,sizeof(a));
}
29.以下程序的輸出結(jié)果是【】。
#defineMCNA(m)2*m
#defineMCNB(n,m)2*MCRA(n)+m
#definef(x)(x*x)
main()
{inti=2,j=3;
printf("%d\n",MCRB(j,MCRA(i)));
}
30.下列程序段是從鍵盤輸入的字符中統(tǒng)計(jì)小寫字母的個(gè)數(shù),用換行符結(jié)束循環(huán)。請(qǐng)?zhí)羁铡?/p>
intn=0,c;
c=getchar();
while(c!='\n')
{if(______)
n++;
}
31.下面程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{char*p={"BOOL""OPK","H","SP"};
inti;
for(i=3,i>=0;i--,i--)printf("%",*p[i]);
printf("\n");
}
32.若輸入字符串:abcde<回車>,則以下while循環(huán)體將執(zhí)行【】次。
while((ch=getchar())=='e')printf("*");
33.以下程序運(yùn)行后的輸出結(jié)果是______。
main()
{
charc1,c2;
for{c1='0',c2='9';c1<c2;c1++,C2--)
printf("%c%c",c1,c2);
printf("\n");
}
34.面向?qū)ο蟮哪P椭?,最基本概念是?duì)象和【】。
35.軟件定義時(shí)期主要包括______和需求分析兩個(gè)階段。
36.若有定義doublea[5];,則a數(shù)組元素下標(biāo)的上限為______。
37.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{inti;
for(i-'a';i<'f';i++,i++)printf("%c",i-'a'+'A');
printf("\n");
}
38.下面程序執(zhí)行后輸出的結(jié)果是【】。
intm=13;
intfun(intx,inty)
{intm=3;
return(x*y-m);
}
main()
{inta=7,b=5;
printf("%d\n",fun(a,b)/m);
}
39.有以下程序:
#include<stdio.h>
main()
{inta[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+5,*q=NULL;
*q=*(p+5);
printf("%d%d\n",*p,*q);
}
程序運(yùn)行后的輸出結(jié)果是【】。
40.下面程序的運(yùn)行結(jié)果是【】。
#defineN10
#defines(x)x*x
#definef(x)(x*x)
main()
{inti1,i2;
i1=1000/s(N);i2=1000/f(N);
printf("%d%d\n",i1,i2);
}
三、1.選擇題(20題)41.設(shè)有如下的變量定義,以下符合C語言語法的表達(dá)式是______。inti=8,k,a,b;unsignedlongw=5;doublex=1,42,y=5.2;
A.a+=a-=(b=4)*(a=3);B.x%(-3);C.a=a*3=2;D.y=float(i);
42.下列程序的輸出結(jié)果是______。main(){chara[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;printf("%d",*--p);}
A.非法B.a[4]的地址C.5D.3
43.在軟件測(cè)試設(shè)計(jì)中,軟件測(cè)試的主要目的是
A.實(shí)驗(yàn)性運(yùn)行軟件B.證明軟件正確C.找出軟件中全部錯(cuò)誤D.盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤
44.有以下程序:#include<stdio.h>inta=2;intf(int*a){return(*a)++;}main(){ints=0;{inta=5;s+=f(&a);}s+=f(&a);printf("%d\n",s)}執(zhí)行后的輸出結(jié)果是()。
A.10B.9C.7D.8
45.有以下程序floatfun(intx,inty){return(x+y);}main(){inta=2,b=5,c=8;printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}程序運(yùn)行后的輸出結(jié)果是
A.編譯出錯(cuò)B.9C.21D.9
46.數(shù)據(jù)庫設(shè)計(jì)的根本目標(biāo)是要解決()。
A.數(shù)據(jù)共享問題B.數(shù)據(jù)安全問題C.大量數(shù)據(jù)存儲(chǔ)問題D.簡(jiǎn)化數(shù)據(jù)維護(hù)
47.相對(duì)于數(shù)據(jù)庫系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)關(guān)聯(lián)差、數(shù)據(jù)不一致性和()。
A.可重用性差B.安全性差C.非持久性D.冗余性
48.若有以下定義:
structlink
{intdata;
structlink*next;
}a,b,c,*p,*q;
且變量a和b之間已有如下圖所示的鏈表結(jié)構(gòu):
指針p指向變量a,q指向變量c。則能夠把c插入到a和b之間并形成新的鏈表的語句組是:
A.a.next=c;c.next=b;
B.p.next=q;q.next=p.next;
C.p->next=&c;q->next=p->next;
D.(*p).next=q;(*q).next=&b;
49.在調(diào)用函數(shù)時(shí),如果實(shí)參是簡(jiǎn)單變量,它與對(duì)應(yīng)形參之間的數(shù)據(jù)傳遞方式是______。
A.地址傳遞B.單向值傳遞C.由實(shí)參傳遞給形參,再由形參傳遞給實(shí)參D.傳遞方式由用戶指定
50.下列正確的實(shí)型常量是()。
A.E3.4B.-12345C.2.2eO.8D.4
51.設(shè)棧S的初始狀態(tài)為空,棧的容量為5,若入棧元素的順序是e1、e2、e3、e4、e5,則出棧元素的順序不可能是______。
A.e1、e2、e3、e4、e5
B.e5、e4、e3、e2、e1
C.e2、e4、e3、e5、e1
D.e3、e4、e1、e2、e5
52.下列敘述中不正確的是()。
A.在C語言中調(diào)用函數(shù)時(shí),只能把實(shí)參的值傳送給形參,形參的值不能傳送給實(shí)參
B.在C的函數(shù)中,最好使用全局變量
C.外部變量可以在函數(shù)之間傳遞數(shù)據(jù)
D.自動(dòng)變量實(shí)質(zhì)上是一個(gè)函數(shù)內(nèi)部的局部變量
53.有以下程序:int*f(int*x,int*y){if(*x<*y)returnx;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}執(zhí)行后輸出結(jié)果是()。
A.7,8,8B.7,8,7C.8,7,7D.8,7,8
54.有以下程序intfun(intn){if(n==1)return1;elsererurn(n+fun(n+1));}main(){intx;scanf("%d",&x);x=fun(x);printf("%d\n",x);}執(zhí)行程序時(shí),給變量x輸入10,程序的輸出結(jié)果是
A.55B.54C.65D.45
55.若已定義以下語句,其中0≤i≤9,則對(duì)a數(shù)組元素不正確的引用為______。inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;
A.a[p-a]B.*(&a[i])C.p[i]D.a[10]
56.有以下程序#include<stdio.h>main(){inta[]={1,2,3,4,5,6,7,8,9,10,11,12},*p=a+5,*q=NULL;*q=*(p+5);printf("%d%d\n",*p,*q);}程序運(yùn)行后的輸出結(jié)果是______。
A.運(yùn)行后報(bào)錯(cuò)B.66C.611D.510
57.以下程序的功能是:建立一個(gè)帶有頭結(jié)點(diǎn)的單向鏈表,并將存儲(chǔ)在數(shù)組中的字符依次轉(zhuǎn)存到鏈表的各個(gè)結(jié)點(diǎn)中,請(qǐng)從與下劃線處號(hào)碼對(duì)應(yīng)的一組選項(xiàng)中選擇出正確的選項(xiàng)。
#include<stdlib.h>
structnode
{chardata;structnode*next;};
(48)CreatList(char*s)
{structnode*h,*p,*q;
h=(structnode*)malloc(sizeof(Structnode));
p=q=h;
while(*s!=‘\0’)
{p=(structnode*)malloc(sizeof(structnode));
p->data=(49);
q->next=p;
q=(50);
s++;
}
p->next=0;
returnh;
}
main()
{charstr[]="linklist";
structnode*head;
head=CreatList(str);
}
A.char*B.stmctnodeC.strumnode*D.char
58.以下程序的輸出結(jié)果是______。main(){chara[]="programming",b[]="language";char*p1,*p2;inti;p1=a;p2=b;for(i=0;i<7;i++)if(*(p1+i)==*(p2+i))printf("%c",*(p1+i));}
A.gmB.rgC.orD.ga
59.十進(jìn)制數(shù)555的十六進(jìn)制數(shù)表示形式為______。
A.220B.22AC.22BD.22C
60.在結(jié)構(gòu)化程序設(shè)計(jì)思想提出之前,在程序設(shè)計(jì)中曾強(qiáng)調(diào)程序的效率。與程序的效率相比,人們更重視程序的
A.安全性B.一致性C.可理解性D.合理性
四、選擇題(20題)61.
62.有以下函數(shù)該函數(shù)的功能是()。
A.計(jì)算s所指字符串占用內(nèi)存字節(jié)的個(gè)數(shù)
B.比較兩個(gè)字符串的大小
C.計(jì)算s所指字符串的長(zhǎng)度
D.將s所指字符串復(fù)制到字符串t中
63.
64.若有定義:“inta[2][3];”,則對(duì)a數(shù)組的第i行第j列元素的正確引用為()。
A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j
65.已知大寫:字母A的ASCIl碼是65,小寫字母a的ASCIl碼是97。以下不能將變量c中的大寫字母轉(zhuǎn)換為對(duì)應(yīng)小寫字母的語句是()。
66.在下列語句中,其含義為“q是一個(gè)函數(shù)指針,該指針指向整型數(shù)據(jù)”的定義語句是()。
A.int**q;B.int(*q);C.int*q;D.int*q;
67.
68.以下程序運(yùn)行后的輸出結(jié)果是()。
A.220.000000B.10020.000000C.240.000000D.10040.000000
69.數(shù)據(jù)庫設(shè)計(jì)包括兩個(gè)方面的設(shè)計(jì)內(nèi)容,它們是()
A.概念設(shè)計(jì)和邏輯設(shè)計(jì)B.模式設(shè)計(jì)和內(nèi)模式設(shè)計(jì)C.內(nèi)模式設(shè)計(jì)和物理設(shè)計(jì)D.結(jié)構(gòu)特性設(shè)計(jì)和行為特性設(shè)計(jì)
70.
設(shè)變量均已正確定義,
值10和20,為變量cl和c2賦字符X和Y。以下所示的輸入形式中正確的是(注:口代表空格字符.()。
A.
B.
C.
D.
71.
72.下面程序的輸出結(jié)果是()。
#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()
{staticcharp[]="1234567";
fun(p,strlen(p));
printf("%s",p);
}
A.7654321B.1717171
C.7171717D.1711717
73.設(shè)有定義:“char*c;”,以下選項(xiàng)中能夠使字符型指針c正確指向一個(gè)字符串的()。
A.charstr[]="string";c=str;
B.scanf(%s,c):
C.c=getchar();
D.*c="strin9";
74.已知inta,b;doublec;,則以下語句中錯(cuò)誤的函數(shù)調(diào)用是
A.scanf("%d,%x,%lf",&a,&b,&c);B.scanf("%d,%d,%le",&a,&b,&c);
C.scanf("%o,%x,%o",&a,&b,&c);D.scanf("%d,%o,%e",&a,&b,&c);
75.有以下函數(shù):
函數(shù)的功能是()。
A.將Y所指字符串賦給x所指存儲(chǔ)空間
B.查找x和y所指字符串中是否有
C.統(tǒng)計(jì)x和y所指字符串中最前面連續(xù)相同的字符個(gè)數(shù)
D.統(tǒng)計(jì)x和Y所指字符串中相同的字符個(gè)數(shù)
76.有以下程序:
程序的運(yùn)行結(jié)果是()。
A.xy,aaaaCeB.aaaaCC,xyC.bCC,aabCCD.aabCC,bCC
77.
78.
79.
80.
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc()的功能是:根據(jù)整型參數(shù)m,計(jì)算如下公式的值:y=1/(100100)+1/(200200)+1/(300300)+…+1/(mm)例如,若m=4000,則應(yīng)輸出0.000162。請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.輸出1—100之間不能被12整除的數(shù)。
參考答案
1.B解析:模塊獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡(jiǎ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。
2.B解析:本題考查的是程序結(jié)構(gòu)設(shè)計(jì)中if語句的應(yīng)用,當(dāng)if判斷條件成立時(shí)就執(zhí)行其后的相關(guān)語句,否則不執(zhí)行,本題中第一個(gè)if條件不成立,故不執(zhí)行“a=b”,接著執(zhí)行“c=a”,此時(shí)第二個(gè)if條件也不成立,故不執(zhí)行其后語句,最終c的值為3。
3.C解析:選項(xiàng)A)char*a;*a=“china”應(yīng)改為a=china;,選項(xiàng)B)應(yīng)該是charstr[6];D)項(xiàng)表述方法有錯(cuò)誤。
4.D此題考查的是常量和變量的定義,常量不是經(jīng)常使用的變量,而是一個(gè)確定的數(shù)值,所以答案選擇D。
5.A
6.A
7.A符號(hào)“_>”是指針特用的,符號(hào)“.”用于指定元素的成員。ptr是指針,只能用符號(hào)“一>”,因此選項(xiàng)A錯(cuò)誤。+P是指定元素(Fee)可以使用“.”運(yùn)算,因此選項(xiàng)D正確。選項(xiàng)B,F(xiàn)ee.title代表數(shù)組title,同理選項(xiàng)C正確。答案為A選項(xiàng)。
8.C
9.A函數(shù)指針的定義格式為函數(shù)類型(*指針變量名)(形參列表);函數(shù)名和數(shù)組名一樣代表了函數(shù)代碼的首地址,因此在賦值時(shí),直接將函數(shù)指針指向函數(shù)名就行了。所以選項(xiàng)A正確。
10.C解析:根據(jù)混合運(yùn)算規(guī)則,如果有一個(gè)數(shù)據(jù)是float型或double型,則其他數(shù)據(jù)類型先轉(zhuǎn)化為double型,運(yùn)算的結(jié)果最終也是double型。
11.A[解析]do{*t++=*s++;}while(*s);不能因?yàn)楫?dāng)*s=^0'時(shí),while(*s)跳出循環(huán),這樣字符串結(jié)束標(biāo)志“0沒有復(fù)制給*t,造成*t不完整。\u3000\u3000注意,*t++=*s++是先執(zhí)行t=*s,然后才進(jìn)行t=t+1.s=s+1.B),C),D)三項(xiàng)都能將“0復(fù)制過去。
12.D解析:因?yàn)閤的值為大于1的奇數(shù),所以x除以2的余數(shù)等于1,因此,選項(xiàng)A)、C)中表達(dá)式的結(jié)果為真,不為0;對(duì)于選項(xiàng)B)來說,x除以2的商不會(huì)等于0;選項(xiàng)D)中表達(dá)式的結(jié)果為假,即等于0。
13.C解析:選項(xiàng)A中for和case為C語言中的保留字,不能作為用戶標(biāo)志符,故A錯(cuò)誤。選項(xiàng)B中的4d其開頭的第一個(gè)為數(shù)字,而在C語言中規(guī)定,第一個(gè)字符必須為字母或者下劃線,故B錯(cuò)誤;選項(xiàng)D中void為C語言中的保留字,不能作為用戶標(biāo)志符,故D錯(cuò)誤。所以,4個(gè)選項(xiàng)中選項(xiàng)C符合題意。
14.C解析:該題稍微難一點(diǎn)。主要要搞清楚以下幾點(diǎn):①定義了一個(gè)指針數(shù)組char*p[2]后,程序中第一個(gè)循環(huán)for(i=0;i<2;i++)p[i]=ch[i];的作用,是使指針數(shù)組的p[0]元素(它本身是一個(gè)指針)指向了二維數(shù)組ch的第一行字符串,并使指針數(shù)組的p[1]元素指向二維數(shù)組ch的第二行字符串,這樣,就使指針數(shù)組p和二維數(shù)組ch建立起了一種對(duì)應(yīng)關(guān)系,以后對(duì)二維數(shù)組ch的某個(gè)元素的引用就有兩種等價(jià)的形式:ch[i][j]或p[i][j]。②對(duì)二維數(shù)組ch的初始化,使其第一行ch[0]中存入了字符串“693
15.B
16.A
17.D程序首先定義一個(gè)字符指針s,指向一個(gè)常量字符串“01234”;接著while循環(huán)的循環(huán)條件每次將s指向下一個(gè)字符,然后判斷s指向的字符是否為空字符“\\0”,若不是,則執(zhí)行循環(huán)體,將當(dāng)前字符與‘0’”的ASCII差值作為switch語句的常量表達(dá)式,執(zhí)行對(duì)應(yīng)的case語句。指針s指向空字符“\\0”時(shí),則終止循環(huán),程序結(jié)束。從常量字符串“01234”可知,循環(huán)過程中s指向的各個(gè)字符分別是1、2、3、4。當(dāng)*s是字符“1”時(shí),*s-‘0’的值為1,執(zhí)行case1語句,輸出*s+1,即字符“2”;當(dāng)*s是字符“2”時(shí),*s-‘0’的值為2,執(zhí)行case2語句,輸出*s+1,即字符“3”;當(dāng)*s是字符“3”時(shí),*s-‘0’的值為3,執(zhí)行case3和default語句,兩次輸出*s+1,即字符“4”;當(dāng)*s是字符“4”時(shí),*s-‘0’的值為4,執(zhí)行default語句,輸出*s+1,即字符“5”。綜上,程序輸出結(jié)果為23445。故本題答案為D選項(xiàng)。
18.B
19.C
20.CA選項(xiàng)描述正確,自動(dòng)變量未被賦初值,為隨機(jī)值;B選項(xiàng)描述正確,除在函數(shù)開始位置定義變量外,在復(fù)合語句內(nèi)也可以定義變量;C選項(xiàng)描述錯(cuò)誤,函數(shù)內(nèi)的靜態(tài)變量只在第1次調(diào)用時(shí)賦值,以后調(diào)用保留上次的值;D選項(xiàng)描述正確,形參屬于局部變量,占用動(dòng)態(tài)存儲(chǔ)區(qū),而static型變量占用靜態(tài)存儲(chǔ)區(qū)。故本題答案為C選項(xiàng)。
21.800800解析:一個(gè)16x16點(diǎn)陣的字形碼需要16x16/8=32字節(jié)的存儲(chǔ)空間,所以300個(gè)漢字信息需要9600個(gè)字節(jié)。
22.11解析:在表達(dá)式a+(int)((int)b+c)>>(int)(b-c)中圓括號(hào)最優(yōu)先,其次為類型轉(zhuǎn)換(int)、加法+、減法-、右移運(yùn)算>>。所以先看兩個(gè)圓括號(hào)((int)b+c)和(b-c),前者b先被轉(zhuǎn)換為int型7,然后與c相加得10.6,后者結(jié)果是3.6,現(xiàn)在表達(dá)式為a+(iot)10.6>>(int)3.6。C語言中,float型轉(zhuǎn)換為int型是截尾取整,所以表達(dá)式進(jìn)一步簡(jiǎn)化為5+10>>3=>15>>3。由于15的二進(jìn)制為000011112(下標(biāo)),所以15>>3的結(jié)栗是000000012(下標(biāo)),即1。
23.33解析:i=1時(shí),f(1)=1,j=j+f(1)=0+1=1;i=2時(shí),f(2)=f(1)+1=1+1=2:j=j+f(2)=1+3=3;此時(shí)循環(huán)結(jié)束,程序運(yùn)行后的輸出結(jié)果是3。
24.1030010300解析:輸入語句使i=10,j=30,k沒有被重新賦值,仍為初值0。
25.10410\r\n4解析:結(jié)構(gòu)體變量所占內(nèi)存長(zhǎng)度是各成員占的內(nèi)存長(zhǎng)度之和。每個(gè)成員分別占有其自己的內(nèi)存單元。int占2個(gè)字節(jié),float占4個(gè)字節(jié),共用體變量所占的內(nèi)存長(zhǎng)度等于最長(zhǎng)的成員的長(zhǎng)度。所以,sizeof(a.share)的值是4,sizeof(a)的值是2+2+2+4=10。
26.物理獨(dú)立性物理獨(dú)立性解析:邏輯獨(dú)立性是指,由于數(shù)據(jù)的局部邏輯結(jié)構(gòu)與總體邏輯結(jié)構(gòu)之間也由系統(tǒng)提供映像,使得當(dāng)總體邏輯結(jié)構(gòu)改變時(shí),其局部邏輯結(jié)構(gòu)叮以不變,從而根據(jù)局部邏輯結(jié)構(gòu)編寫的應(yīng)用程序也可以不必修改。物理獨(dú)立性是指,由于數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與邏輯結(jié)構(gòu)之間山系統(tǒng)提供映像,使得當(dāng)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)改變時(shí),其邏輯結(jié)構(gòu)可以不變,所以,基于邏輯結(jié)構(gòu)的應(yīng)用程序不必修改。
27.讀棧頂元素讀棧頂元素解析:棧的基本運(yùn)算有3種:入棧、退棧和讀取棧頂元素。其中,入棧是指在棧頂插入一個(gè)新的元素;退棧是指取出棧頂元素并賦值給一個(gè)變量;讀棧頂元素是將棧頂元素賦值給一個(gè)指定的變量,不刪除棧頂元素。
28.8080解析:數(shù)組a是共用體變量,共用體類型變量所占的內(nèi)存長(zhǎng)度為最大成員的長(zhǎng)度,即單精度數(shù)組的長(zhǎng)度,為4×4=16,因此,數(shù)組a所占的內(nèi)存長(zhǎng)度為5×16=80,所以最后輸出的s的值為80。
29.1616解析:本題定義了兩個(gè)宏MCRA(m)和MCRB(n,m),展開宏MCRB(n,m),得到:MCRB(j,MCRA(i)=2*MCRA(j)+MCRA(i)=2×2×j+2×i=4×3+2×2=12+4=16,因此printf函數(shù)的輸出結(jié)果為16。
30.c>='a'&&c<='z'c>='a'&&c<='z'解析:小寫字母在內(nèi)存中以ASCII的形式存入,且從a到z依次遞增,所以可以直接用c>='a'&&c<='z'判斷是不是小寫字母;c!='\\n'判斷是用換行符結(jié)束循環(huán)。
31.SO
32.0
33.918273645918273645解析:題目中為for循環(huán)定義了兩個(gè)字符型循環(huán)變量c1和c2,循環(huán)開始時(shí)分別初始化為字符'0'和'9',然后每次循環(huán)結(jié)束給c1增1、c2減1,循環(huán)條件為c1<c2,即讓c1的值依次為'0'、'1'、'2'…,c2的值依次為'9'、'8'、'7'…,直到兩個(gè)數(shù)相遇時(shí)結(jié)束循環(huán)。又因?yàn)樵撗h(huán)的循環(huán)體每次按字符形式輸出c1和c2的值.所以最終的輸出結(jié)果為:0918273645。
34.類類解析:面向?qū)ο竽P椭?,最基本的概念是?duì)象和類。對(duì)象是現(xiàn)實(shí)世界中實(shí)體的模型化:將屬性集和方法集相同的所有對(duì)象組合在一起,可以構(gòu)成一個(gè)類。
35.可行性研究可行性研究解析:軟件生命周期一般包括可行性研究與需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、交付使用及維護(hù)等,還可以將軟件生命周期分為三個(gè)階段:①軟件定義階段:可行性研究和需求分析;②軟件開發(fā)階段:設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試;③軟件運(yùn)行維護(hù)階段:交付使用和維護(hù)。
36.44解析:一維數(shù)組元素的定義形式為:數(shù)組名[N],則該數(shù)組中元素的下限是0,上限是N-1。
37.ACEACE解析:題目中for循環(huán)的循環(huán)變量i從字符'a'變到字符'e',但由于每次循環(huán)后都連續(xù)執(zhí)行了兩次i++,所以for循環(huán)將執(zhí)行3次,循環(huán)變量i的值依次為'a'、'c'、'e'。循環(huán)體中是一條輸出語句,按字符輸出表達(dá)式i-'a'+'A'。因?yàn)榇笮懽帜傅腁SCII碼是連續(xù)的,例如'b'+1='c'、'W'-1='V',而且小寫字母的ASCII碼比大寫字母的大。所以,同一個(gè)字母的大小寫字符之差是一個(gè)固定值。由此可見,將一個(gè)字符從小寫轉(zhuǎn)換為大寫,只需將其減去這個(gè)固定值,而將大寫轉(zhuǎn)為小寫可以加上這個(gè)固定值。固定值可以通過任一字符的小寫減去大寫來得到。所以本題的i-'a'+'A'=i-('a'-'A'),即讓i減去了此固定值,從而使整個(gè)表達(dá)式的值為i所代表的小寫字母的大寫形式。故本題的輸出結(jié)果是ACE。
38.22解析:本題變量m既是外部變量(值是13),又是fun函數(shù)的局部變量(值為3)。函數(shù)fun(x*y-m)的值為7*5-3=32,在main函數(shù)中,fun(a,b)/m中的m應(yīng)取外部變量的值13,因此輸出2。
39.運(yùn)行后報(bào)錯(cuò)運(yùn)行后報(bào)錯(cuò)解析:指針q沒有指向確定的存儲(chǔ)單元,故不能賦值。
40.100010100010解析:先將程序中的宏替換掉,兩處的宏替換后分別為i1=1000/10*10和i2=1000/(10*10),即i1=1000,i2=10,所以最后輸出的i1和i2的值分別為1000和10。
41.A
42.C解析:本題中char*p=a+5;即相當(dāng)于p=&a[5],而--p,是先要減1,則printf語句要輸出的值就是a[4]。
43.D解析:使用人工或自動(dòng)手段來運(yùn)行或測(cè)定某個(gè)系統(tǒng)的過程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程。測(cè)試要以查找錯(cuò)誤為中心,而不是為了演示軟件的正確功能。
44.C解析:在一個(gè)函數(shù)內(nèi)部定義的變量是內(nèi)部變量,它只在本函數(shù)范圍內(nèi)有效,也就是說只有在本函數(shù)內(nèi)才能使用這些變量。對(duì)于main函數(shù)中的{inta=5;s+=f(&a);},a只在花括號(hào)內(nèi)有效。在函數(shù)之外定義的變量稱為外部變量,外部變量是全局變量,它的有效范圍是從定義該變量的位置開始到本源文件結(jié)束。程序開頭的定義inta=2;使a成為全局變量,main函數(shù)中第二個(gè)s+=f(&a);語句中的a就是這個(gè)全局變量。
45.B解析:本題考查函數(shù)的綜合知識(shí)。首先,我們可以利用強(qiáng)制轉(zhuǎn)換類型轉(zhuǎn)換運(yùn)算符將一個(gè)表達(dá)式轉(zhuǎn)換成所需類型。如:(double)a是將a轉(zhuǎn)換成double類型;(int)(x+y)是將x+y的值轉(zhuǎn)換成整型。
本題可按部就班地逐步運(yùn)算:
fun((int)fun(a+c,b),a-c)
fun((int)fun(10,5),2-8)
fun((int)15.000000,-6)
fun(15,-6)
9
46.A解析:由于數(shù)據(jù)的集成性使得數(shù)據(jù)可為多個(gè)應(yīng)用所共享,特別是在網(wǎng)絡(luò)發(fā)達(dá)的今天,數(shù)據(jù)庫與網(wǎng)絡(luò)的結(jié)合擴(kuò)大了數(shù)據(jù)關(guān)系的應(yīng)用范圍。數(shù)據(jù)的共享本身又可極大地減少數(shù)據(jù)冗余性,不僅減少了不必要的存儲(chǔ)空間,更為重要的是可以避免數(shù)據(jù)的不一致性。因此,數(shù)據(jù)庫設(shè)計(jì)的根本目標(biāo)是要解決數(shù)據(jù)共享問題。
47.D解析:文件系統(tǒng)所管理的數(shù)據(jù)文件基本上是分散的、相互獨(dú)立的,因此相對(duì)于數(shù)據(jù)庫系統(tǒng),以此為基礎(chǔ)的數(shù)據(jù)處理存在3個(gè)缺點(diǎn),數(shù)據(jù)冗余大、數(shù)據(jù)的不一致性、程序與數(shù)據(jù)的相互依賴(簡(jiǎn)稱為數(shù)據(jù)依賴)。注意:文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)各自的特點(diǎn),人工管理階段及數(shù)據(jù)庫系統(tǒng)三代的特點(diǎn)。
48.D解析:本題考查鏈表的數(shù)據(jù)結(jié)構(gòu),必須利用指針變量才能實(shí)現(xiàn),即一個(gè)結(jié)點(diǎn)中應(yīng)包含一個(gè)指針變量,用它存放下一結(jié)點(diǎn)的地址。
49.B解析:C語言以定,實(shí)參變量對(duì)形參變量的數(shù)據(jù)傳遞是“單向值傳遞”,只由實(shí)參傳紿形參。在內(nèi)存中,實(shí)參單元與形參單元是不同的單元。調(diào)用結(jié)束后,實(shí)參單元仍保留并維持原值。
50.B解析:實(shí)型常量有兩種書寫形式:①小數(shù)形式,它由符號(hào)、整數(shù)部分、小數(shù)點(diǎn)及小數(shù)部分組成;②指數(shù)形式,由十進(jìn)制小數(shù)形式加上指數(shù)部分組成,其形式為十進(jìn)制小數(shù)e指數(shù)或十進(jìn)制小數(shù)E指數(shù)。注:e或E后面的指數(shù)必須是整數(shù),并且在e或E的前面必須有數(shù)字。本題中,選項(xiàng)A)中E的前面沒有數(shù)字,因此錯(cuò)誤。選項(xiàng)C)中0.8不是整數(shù),因此錯(cuò)誤。選項(xiàng)D)中4是整型常量而不是實(shí)型常量。
51.D解析:棧是僅在表頭和表尾進(jìn)行插入和刪除元素操作的線性表,其特點(diǎn)是“先進(jìn)后出”。本題中,進(jìn)棧的過程中可以出棧。選項(xiàng)D中,如果第一個(gè)出棧的元素為e3,由于入棧順序是e1、e2、e3,那么e3出棧后,棧中元素必定有e1和e2,因?yàn)閑1先入棧,故e1應(yīng)在e2后出棧,所以選項(xiàng)D是不可能的出棧順序。
52.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)存不定的情況下,最好使用全局變量。
53.B解析:本題定義了一個(gè)返回值為指針的函數(shù)f(),此函數(shù)有兩個(gè)指針型的形參x和y,該函數(shù)的功能,是返回x和y指向的變量中值較小的那個(gè)指針變量。主函數(shù)中定義了兩個(gè)指針變量p和q,并讓它們指向變量a和b,調(diào)用函數(shù)f(),返回指向的變量值較小的指針變量,r的值為指針變量p的值(變量a的地址),因此最后輸出的*p、*q和*r的值是7,8和7。所以,B選項(xiàng)為所選。
54.A解析:本程序考查的是函數(shù)的遞歸調(diào)用,在調(diào)用一個(gè)函數(shù)的過程中又出現(xiàn)直接或間接地調(diào)用該函數(shù)本身,稱為函數(shù)的遞歸調(diào)用,執(zhí)行結(jié)果為1+2+3+4+5+6+7+8+9+10=55。
55.D
56.A解析:本題考核的知識(shí)點(diǎn)是通過指針引用數(shù)組的元素的方法.本題中首先定義了一個(gè)一維數(shù)組a并初始化,由于定義該數(shù)組的時(shí)候省略了長(zhǎng)度,因此該數(shù)組的長(zhǎng)度為初始化時(shí)候賦初值的個(gè)數(shù)即為12。數(shù)組名a代表數(shù)組的首地址,所以*p=a+5語句使得p指向數(shù)組的第6個(gè)元素,而在程序中定義了一個(gè)指針q并讓它指向空,實(shí)際上程序并沒有在內(nèi)存中為指針q開辟存儲(chǔ)空間,這樣給q賦值不允許的,故該程序運(yùn)行后報(bào)錯(cuò)。所以,4個(gè)選項(xiàng)中選項(xiàng)A符合題意。
57.C
58.D
59.C解析:本題考查不同進(jìn)制數(shù)間的轉(zhuǎn)換,(555)10=(1000101011)2=(22B)16。
60.C解析:結(jié)構(gòu)化程序設(shè)計(jì)方法設(shè)計(jì)出的程序具有明顯的優(yōu)點(diǎn)。其一,程序易于理解、使用和維護(hù);其二,提交了編程工作的效率,降低了軟件開發(fā)成本。其中,人們更重視前者。
61.B
62.C首先char*s接受一個(gè)字符型數(shù)組的首地址并將這個(gè)首地址賦給另一個(gè)字符型指針char*t,while(*t++)不斷循環(huán),直到*t為‘\\o’,再將t一1,這時(shí)字符指針t指向字符串的最后一個(gè)字符,又因?yàn)閟指向字符數(shù)組的首地址即字符串的首地址,所以return(t--s)便是返回字符數(shù)組中字符串的長(zhǎng)度。故本題答案為C)。
63.C
64.A解析:本題考查如何通過地址來引用數(shù)組元素。通過地址來引用數(shù)組元素的方法有下列5種:
①a[i][j];②*(a[i]+j);③*(*(a+i)+j);④*(a[i])[j];⑤*(&a[0][0]+3*i+j)。
65.A大寫字母轉(zhuǎn)換為對(duì)應(yīng)小寫字母,即加上32,A)選項(xiàng)不是累加32,所以選擇A)
66.B本題考查指針函數(shù)。其定義的基本格式為:
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年海南省建筑安全員考試題庫
- 2025年海南建筑安全員知識(shí)題庫及答案
- 中國(guó)傳統(tǒng)文化主題:對(duì)聯(lián)
- 長(zhǎng)度與時(shí)間的測(cè)量課件
- 《電路中的能量轉(zhuǎn)化》課件
- 石油加工原油組成教學(xué)課件
- 病理生理學(xué)課件凝血和抗凝血平衡紊亂
- 一年級(jí)語文下冊(cè)《語文園地六》課件
- 《心血管急癥》課件
- 固定收益點(diǎn)評(píng)報(bào)告:把握跨年后的信用配置窗口
- 2023-2024學(xué)年安徽省安慶市高一上學(xué)期期末聯(lián)考生物試題(解析版)
- 促醒中醫(yī)治療
- 廣東省廣州市海珠區(qū)2023-2024學(xué)年九年級(jí)上學(xué)期期末物理試題(含答案)
- GB/T 45083-2024再生資源分揀中心建設(shè)和管理規(guī)范
- 胃鏡超聲內(nèi)鏡護(hù)理配合
- 精神科護(hù)理工作計(jì)劃例文
- 2024山地買賣合同模板
- 河北省承德市2023-2024學(xué)年高一上學(xué)期期末物理試卷(含答案)
- 【初中化學(xué)】二氧化碳的實(shí)驗(yàn)室制取教學(xué)課件-2024-2025學(xué)年九年級(jí)化學(xué)人教版上冊(cè)
- 相互批評(píng)意見500條【5篇】
- 江蘇徐州歷年中考語文現(xiàn)代文閱讀之非連續(xù)性文本閱讀5篇(含答案)(2003-2023)
評(píng)論
0/150
提交評(píng)論