![2021年四川省自貢市全國計算機(jī)等級考試C語言程序設(shè)計測試卷一(含答案)_第1頁](http://file4.renrendoc.com/view/e1492129b542d39f3f5f3807e6b784ff/e1492129b542d39f3f5f3807e6b784ff1.gif)
![2021年四川省自貢市全國計算機(jī)等級考試C語言程序設(shè)計測試卷一(含答案)_第2頁](http://file4.renrendoc.com/view/e1492129b542d39f3f5f3807e6b784ff/e1492129b542d39f3f5f3807e6b784ff2.gif)
![2021年四川省自貢市全國計算機(jī)等級考試C語言程序設(shè)計測試卷一(含答案)_第3頁](http://file4.renrendoc.com/view/e1492129b542d39f3f5f3807e6b784ff/e1492129b542d39f3f5f3807e6b784ff3.gif)
![2021年四川省自貢市全國計算機(jī)等級考試C語言程序設(shè)計測試卷一(含答案)_第4頁](http://file4.renrendoc.com/view/e1492129b542d39f3f5f3807e6b784ff/e1492129b542d39f3f5f3807e6b784ff4.gif)
![2021年四川省自貢市全國計算機(jī)等級考試C語言程序設(shè)計測試卷一(含答案)_第5頁](http://file4.renrendoc.com/view/e1492129b542d39f3f5f3807e6b784ff/e1492129b542d39f3f5f3807e6b784ff5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021年四川省自貢市全國計算機(jī)等級考試C語言程序設(shè)計測試卷一(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.已知一算術(shù)表達(dá)式的中綴表達(dá)式為a-(b+c/d)*e,其后綴形式為()
A.-a+b*c/dB.-a+b*cd/eC.-+*abc/deD.abcd/+e*-
2.有如下嵌套的if語句:if(a<b)if(a<c)k=a;elsek=C:elseif(b<c)k=b;elsek=C;以下選項(xiàng)中與上述if語句等價的語句是()。A.k=(a<b)?a:b;k=(b<c)?b:C;
B.k=(a<b)?((b<c)?a:b):((b>c)?b:c);
C.k=(a<b)?((a<c)?a:c):((b<c)?b:c);
D.k=(a<b)?a:b;k=(a<c)?a:c;
3.
4.有以下定義和語句:structworkers{intnum;charname[20];charc;struct{intday;intmonth;intyear;}s;};structworkersw,*pw;pw=&w;能給w中year成員賦1980的語句是()。
A.pw->year=1980;
B.w.year=1980;
C.w.s.year=1980;
D.*pw.year=1980;
5.以下敘述中錯誤的是()。
A.形參可以是常量、變量或表達(dá)式
B.實(shí)參可以是常量、變量或表達(dá)式
C.實(shí)參的類型應(yīng)與形參的類型賦值兼容
D.實(shí)參的個數(shù)應(yīng)與形參的個數(shù)一致
6.下列條件語句中,功能與其他語句不同的是()。
A.if(a)printf("%d\n",x);elseprintf("%d\n",y);
B.if(a==O)printf("%d\n",y);elseprintf("%d\n",x);
C.if(a!=0)printf("%d\n",x);elseprintf("%d\n",y);
D.if(a==0)printf("%d\n",x);elseprintf("%d\n",y);
7.對于靜態(tài)表的順序查找法,若在表頭設(shè)置監(jiān)視哨,則正確的查找方式為()A.從第0個元素往后查找該數(shù)據(jù)元素
B.從第1個元素往后查找該數(shù)據(jù)元素
C.從第n個元素往開始前查找該數(shù)據(jù)元素
D.與查找順序無關(guān)
8.
9.若有定義“intx[10],*pt=x;”,則對x數(shù)組元素的引用正確的是()。
A.pt+3B.*&x[10]C.*(pt+10)D.*(x+3)
10.有以下程序(說明:字母A的ASCIl碼值是65):#include<stdio.h>voidfun(char*s){while(*s){if(*s%2)printf("%C",*s);s++;}}main(){chara[]="BYTE";Fun(a);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A.BYB.BTC.YTD.YE
11.若x,i,j和k都是int型變量,則執(zhí)行下面表達(dá)式后x的值為()。x=(i=4,j=16,k=32)
A.4B.16C.32D.52
12.設(shè)變量已正確定義并賦值,以下正確的表達(dá)式是()。A.x=y+z+5.++yB.int(15.8%5)C.x=y*5=x+zD.x=25%5.0
13.下列敘述中正確的是()。
A.算法的執(zhí)行效率與數(shù)據(jù)存儲結(jié)構(gòu)無關(guān)
B.算法的空間復(fù)雜度是指算法程序中指令(或語句)的條數(shù)
C.算法的有窮性是指算法必須能在執(zhí)行有限個步驟之后終止
D.以上3種描述都不對
14.
15.
16.有以下程序:#include<stdio.h>main(){chara=H;a=(a>=Aa<=2)?(a-A+a):a;printf("%c\n",a);}程序運(yùn)行后的輸出結(jié)果是()。A.AB.aC.HD.h
17.有以下程序
include<stdio.h>
main()
{chara[30],b[30];
scanf(“%s”,a);
gets(b);
printf(“%s\n%s\n”,a,b);
}
程序運(yùn)行時若輸入:
howareyou?Iamfine<回車>
則輸出結(jié)果是A.howareyou?Iamfine
B.howareyou?1amfine
C.howareyou?Iamfine
D.howareyou?
18.
讀取二進(jìn)制文件的函數(shù)調(diào)用形式為:fread(buffersize,count,fp);,其中buffer代表的是()。
A.一個文件指針,指向待讀取的文件
B.一個整型變量,代表待讀取的數(shù)據(jù)的字節(jié)數(shù)
C.一個內(nèi)存塊的首地址,代表讀人數(shù)據(jù)存放的地址
D.一個內(nèi)存塊的字節(jié)數(shù)
19.以三級模式為框架形成的3種數(shù)據(jù)庫中,真實(shí)存在于計算機(jī)外存的數(shù)據(jù)庫是()。
A.概念數(shù)據(jù)庫B.用戶數(shù)據(jù)庫C.物理數(shù)據(jù)庫D.邏輯數(shù)據(jù)庫
20.下列敘述中正確的是A.程序設(shè)計就是編制程序
B.程序的測試必須由程序員自己去完成
C.程序經(jīng)調(diào)試改錯后還應(yīng)進(jìn)行再測試
D.程序經(jīng)調(diào)試改錯后不必進(jìn)行再測試
二、2.填空題(20題)21.軟件維護(hù)活動包括以下幾類:改正性維護(hù)、適應(yīng)性維護(hù)、【】維護(hù)和預(yù)防性維護(hù)。
22.下面程序的運(yùn)行結(jié)果是:【】。
voidswap(int*a,int*b)
{int*t;
t=a;a=b;b=t;
}
main()
{intx=3,y=5,*p=&x,*q=&y;
swap(p,q);
printf(“%d%d\n”,*p,*q);
}
23.下列程序執(zhí)行輸出的結(jié)果是【】。
#include<stdio.h>
f(inta)
{intb=0;
staticc=3;
a=c++,b++;
return(a);}
main()
{inta=2,i,k;
for(i=0;i<2;i++)
k=f(a++);
printf("%d\n",k);}
24.表示“整數(shù)x的絕對值大于5”時值為“假”的C語言表達(dá)式是______。
25.E-mail地址由用戶名和域名兩部分組成,這兩部分的分隔符為【】。
26.以下程序運(yùn)行后的輸出結(jié)果是()。
main()
{charc;intn=100;
loatf=10;doublex;
x=f*=n/=(c=50);
printf("%d%f\n",n,x);
}
27.寫出下列程序的執(zhí)行結(jié)果。swap(p1,p2)int*p1,*p2;{intp;p=*p1;*p1=*p2;*p2=p;}main(){inta,b,*p1,*p2;scanf("%d%d",&a,&B);p1=&a;p2=&b;if(a<B)swap(p1,p2);printf("\na=%d,b=%d\n",a,B);}若a=7,b=8,則程序的運(yùn)行結(jié)果為()。
28.在面向?qū)ο蠓椒ㄖ?,類之間共享屬性和方法的機(jī)制稱為______。
29.棧中允許進(jìn)行插入和刪除的一端叫做______。
30.函數(shù)sub的功能是根據(jù)下面近似分式求π的值。
(π*π)/6=1+1/(2*2)+1/(3*3)+…+1/(n*n)
現(xiàn)在請?jiān)谙旅娴暮瘮?shù)中填空,完成求π值的功能。
#include"math.h"
doublesub(longm)
{doublesum=0.0,t;longn;
for(n=1;n<=m;n++)sum+=【】;
t=sqrt(6*sum);
return(t);
}
31.程序測試分為靜態(tài)測試和動態(tài)測試。其中()是指不執(zhí)行程序,而只是對程序文本進(jìn)行檢查,通過閱讀和討論,分析和發(fā)現(xiàn)程序中的錯誤。
32.若下面程序的輸出結(jié)果是4,請?zhí)羁铡?/p>
main()
{inti,j,k;
k=0;i=j=【】;
k+=-(i+j);printf("%d\n",k);
}
33.以下程序中函數(shù)huiwen的功能是檢查一個字符串是否是回文,當(dāng)字符串是回文時,函數(shù)數(shù)返回字符串:yes!否則函數(shù)返回這符串:no!并在主函數(shù)中輸出。所謂回文即正向與反向的拼寫都一樣,例如:adgda。請?zhí)羁?/p>
#include<string.h>
char*huiwen(char*str)
{char*p1,*p2;inti,t=0;
pl=str;p2=______;
for(i=0;i<=strlen(str)/2;i+*)
if(*p1++!=*p2--){t=1;break;}
if(______)return("yes!");
elsereturn(*no!");
}
main()
{charstr[50];
printf("Input:");scanf("%s",str);
printf("%s\n",______);
}
34.以下程序的運(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);
}
35.派生類對基類繼承控制訪問有三種。派生類可以定義其基類中不具備的【】。
36.數(shù)據(jù)庫系統(tǒng)的主要特點(diǎn)為數(shù)據(jù)集成性、數(shù)據(jù)的高_(dá)_____和低冗余性、數(shù)據(jù)獨(dú)立性和數(shù)據(jù)統(tǒng)一管理和控制。
37.以下程序的輸出結(jié)果是【】。
main()
{
intarr[]={30,25,20,15,10,5},*p=arr;
p++;
printf("%d\n",*(p+3));
}
38.軟件生命周期包括8個階段。為了使各時期的任務(wù)更明確,又可分為3個時期:軟件定義期、軟件開發(fā)期、軟件維護(hù)期。編碼和測試屬于【】期。
39.注釋說明了程序的功能,它分為【】注釋和功能性注釋。
40.下程序的輸出結(jié)果是【】。
#include<stdio.h>
#defineMAX_COUNT4
voidfun()
main()
{intcount;
for(count=1;count<=MAX_COUNT;coun++)fun();
}
voidfun()
{staicinti;
i+=2;
printf(”%d,i);
}
三、1.選擇題(20題)41.函數(shù)rewind的作用是
A.使文件位置指針重新返回文件的開始位置
B.將文件位置指針指向文件中所要求的特定位置
C.使文件位置指針指向文件的末尾
D.使文件位置指針自動移至下一個字符位置
42.下列程序的輸出結(jié)果是______。main(){charch[2][5]={"6937","8254"},*p[2];inti,j,s=0;for(i=0;i<2;i++)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);}
A.69825B.63825C.6385D.693825
43.有以下程序
voidf(int*q)
{inti=0;
for(;i<5;i++)(*q)++;
}
main()
{inta[5]={1,2,3,4,5},i;
f(a);
for(i=0;i<5;i++)printf("%d,",a[i]);
}
程序運(yùn)行后的輸出結(jié)果是
A.2,2,3,4,5,B.6,2,3,4,5,C.1,2,3,4,5,D.2,3,4,5,6,
44.請讀程序:#include<stdio.h>main(){inta,b;for(a=1,b=1;a<=100;a++){if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}printf("%d\n",a);}上面程序的輸出結(jié)果是()。
A.7B.8C.9D.10
45.以下對結(jié)構(gòu)體類型變量td的定義中,錯誤的是______。
A.typedefstructaa{intn;floatm;}AA;AAtd;
B.structaa{intn;floatm;}td;structaatd;
C.struct{intn;floatm;}aa;
D.struct{intn;floatm;}td;structaatd;
46.以下關(guān)于typedef的敘述錯誤的是()。
A.用typedef可以增加新類型
B.typedef只是將已存在的類型用一個新的名字來代表
C.用typedef可以為各種類型說明一個新名,但不能用來為變量說明一個新名
D.用typedef為類型說明一個新名,通??梢栽黾映绦虻目勺x性
47.下列4項(xiàng)說法中,不正確的是______。
A.數(shù)據(jù)庫減少了數(shù)據(jù)冗余B.數(shù)據(jù)庫中的數(shù)據(jù)可以共享C.數(shù)據(jù)庫避免了一切數(shù)據(jù)的重復(fù)D.數(shù)據(jù)庫具有較高的數(shù)據(jù)獨(dú)立性
48.下列敘述中正確的是()。
A.軟件交付使用后還需要進(jìn)行維護(hù)
B.軟件一旦交付使用就不需要再進(jìn)行維護(hù)
C.軟件交付使用后其生命周期就結(jié)束
D.軟件維護(hù)是指修復(fù)程序中被破壞的指令
49.下列敘述中錯誤的是()。
A.線性表是由n個元素組成的一個有限序列
B.線性表是一種線性結(jié)構(gòu)
C.線性表的所有結(jié)點(diǎn)有且僅有一個前件和后件
D.線性表可以是空表
50.在C語言中,函數(shù)的隱含存儲類別是______。
A.autoB.staticC.externD.無存儲類別
51.若a為int類型,且其值為3,則執(zhí)行完表達(dá)式a+=a-=a*a后,a的值是()。
A.-3B.9C.-12D.6
52.下列程序的輸出結(jié)果是()。#include<stdio.h>#include<string.h>main(){chara[]="\n123\\";printf("%d,%d\n",strlen(a),sizeof(a));}
A.5,6B.5,5C.6,6D.6,5
53.下列選項(xiàng)中,不是一個算法的基本特征的是()。
A.完整性B.可行性C.有窮性D.擁有足夠的情報
54.若變量c為char類型,能正確判斷出c為小寫字母的表達(dá)式是______。
A.'a'<=c<='z'
B.(c>='a')||(c<='z')
C.('a'<=c)and('z'>=c)
D.(c>='a')&&(c<='z')
55.有以下程序inta=2;intf(intn){staticinta=3;intt=0;if(n%2){staticinta=4;t+=a++;}else{staticinta=5;t+=a++;}returnt+a++;}main(){ints=a,i;for(i=0;i<3;i++)s+=f(i)printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是
A.26B.28C.29D.24
56.在下列敘述中,錯誤的一條是______。
A.有下列語句組,則c=(*p)(a,b)與c=max(a,b)等價intmax();int(*p)();intc;p=max;
B.執(zhí)行下列語句后,則*p的值為1inta=1,*p;*p=&a;
C.已知指針變量p1指向數(shù)組元素a[1],p2指向數(shù)組元素a[4],則p2-p1=4-1=3
D.2個指針變量指向同一數(shù)組時可以進(jìn)行比較,其值為1或0
57.在c語言中,變量的隱含存儲類別是()。
A.autoB.staticC.externD.無存儲類別
58.若有以下定義的語句
structstudent
{intage;
intnum;};
structstudentstu[3]={{1001,20},{1002,19},{1003,21}};
main()
{structstudent*p;
p=stu;
…}
則以下不正確的引用是
A.(p++)->numB.p++C.(*p).numD.P=&stu.age.
59.以下不是網(wǎng)絡(luò)操作系統(tǒng)的是()
A.Windows3.1B.WindowsNTC.NetWareD.UNIX
60.在C語言中,合法的字符常量是______。
A.'\081B.'\x43'C.'ab'D.\0
四、選擇題(20題)61.若變量x,y已正確定義并賦值,以下符號C語言語法的表達(dá)式是()。
A)++x,y=x--B)x+1=y
C)x=x+10=x+yD)double(x)/10
62.有以下程序
63.有以下程序
64.有如下程序
voidf(int*x,int*y)
{intt;
t=*x;*x=*y;*y=t;
}
main()
{inta[6]={1,2,4,6,8,10},i,*p,*q;
p=a;q=&a[5];
while(p<q)
{f(p,q);p++;q--;}
for(i=0;i<6;i++)
printf("%d,",a[i]);
}
該程序的輸出結(jié)果是
A.1,2,4,6,8,10B.10,8,4,6,2,1
C.10,8,6,4,2,1D.10,2,4,6,8,1
65.有以下程序,程序中庫函數(shù)islower(ch)用以判斷ch中的字母是否為小寫字母:
程序運(yùn)行后的輸出結(jié)果是()。
A.abcdEFg!B.AbCdEFg!C.abcdEFG!D.aBcDEFG!
66.下列敘述中正確的是()。
A.數(shù)據(jù)庫系統(tǒng)是一個獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持
B.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題
C.數(shù)據(jù)庫管理系統(tǒng)就是數(shù)據(jù)庫系統(tǒng)
D.以上三種說法都不對
67.有以下程序:
程序的運(yùn)行結(jié)果是()。
A.*****a*bB.a*bC.a*b****D.ab
68.用樹形結(jié)構(gòu)來表示實(shí)體之間聯(lián)系的模型稱為
A.層次模型B.關(guān)系模型C.網(wǎng)狀模型D.?dāng)?shù)據(jù)模型
69.若要說明一個類型名STP,使得定義語句STPs;等價于Char*s;,以下選項(xiàng)中正確的是()。
A.typedefChar*s;
B.typedefChar*STP;
C.typedefSTP*Char;
D.typedef*CharSTP;
70.
71.下列敘述中錯誤的是()。
A.一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲結(jié)構(gòu)
B.數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)的處理效率無關(guān)
C.數(shù)據(jù)的存儲結(jié)構(gòu)與數(shù)據(jù)的處理效率密切相關(guān)
D.數(shù)據(jù)的存儲結(jié)構(gòu)在計算機(jī)中所占的空間不一定是連續(xù)的
72.以下敘述中正確的是()。A.在c語言中,預(yù)處理命令行都以‘‘#”開頭
B.預(yù)處理命令必須位于c源程序的起始位置
C.#include必須放在c程序的開頭
D.C語言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能
73.
74.以下敘述中錯誤的是()。
A.可以給指針變量賦一個整數(shù)作為地址值
B.函數(shù)可以返回地址值
C.改變函數(shù)形參的值,不會改變對應(yīng)實(shí)參的值
D.當(dāng)在程序的開頭包含頭文件stdi0.h時,可以給指針變量賦NULL、、、
75.
76.層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫的劃分原則是()
A.數(shù)據(jù)之間的聯(lián)系方式B.記錄長度C.聯(lián)系的復(fù)雜程度D.文件的大小
77.
78.有三個關(guān)系R、S和T如下:
由關(guān)系R和S通過運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為()。
A.笛卡爾積B.交C.并D.自然連接
79.設(shè)有圖書(圖書編號,書名,第一作者,出版社.、讀者(借書證號,姓名,單位,職稱.和借閱(借書證號,圖書編號,借書日期,還書日期.三張表,則表借閱的關(guān)鍵字(鍵或碼.為()。
A.借書證號,圖書編號
B.圖書編號,借書日期
C.借書日期,還書日期
D.借書證號,借書日期
80.
下列程序的輸出的結(jié)果是()。
main
{doubled=3.2;intx,Y;
x=1.2;v=(x+3.8)/5.0;
printf("%d\n",d*y);
}
A.3B.3.2C.0D.3.07
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:依次取出字符串中所有的字母字符,形成新的字符串,并取代原字符串。例如,若輸入的字符串是:“ab232bd34bkw”,則輸出結(jié)果是:“abbdbkw”。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)proc,它的功能是:將字符串中的前導(dǎo)*號全部刪除,中間和后面的*號不刪除。 例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是a*bc*def*g****。 注意:部分源程序給出如下。 請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。 試題程序: #include<stdio.h=:{> #include<conio.h> woidproc(char*str) { } voidmaincharstr[81];printf("Enterastring:\n");gets(str);proc(str):printf("Thestringafterdeleted:\n");puts(str);}
參考答案
1.D
2.C條件運(yùn)算符(?:)是C語言中唯一的一個三目運(yùn)算符,它是對第一個表達(dá)式做真/假檢測,然后根據(jù)結(jié)果返回兩個表達(dá)式中的一個作為運(yùn)算的結(jié)果。<表達(dá)式1>?<表達(dá)式2>:<表達(dá)式3>。在運(yùn)算中,首先對第一個表達(dá)式進(jìn)行檢驗(yàn),如果為真,則返回表達(dá)式2的值;如果為假,則返回表達(dá)式3的值。
3.B
4.C題目中定義了一個結(jié)構(gòu)體,結(jié)構(gòu)體中成員又是一個結(jié)構(gòu)體,w為結(jié)構(gòu)體workers的變量。如果給內(nèi)層結(jié)構(gòu)體成員賦值,先要得到內(nèi)層結(jié)構(gòu)體變量,即“w.s”。若要給year賦值,表示為“w.s.year”即可。故本題答案為C選項(xiàng)。
5.A函數(shù)中,形參必須是變量,實(shí)參可以是常量、變量或表達(dá)式,選項(xiàng)A錯誤,選項(xiàng)B正確;實(shí)參的個數(shù)和類型要與形參一致,選項(xiàng)C、D正確。本題答案為A選項(xiàng)。
6.D解析:選項(xiàng)A、選項(xiàng)B和選項(xiàng)C都是在a的值為0的時候輸出y,a不為0的時候輸出x,而選項(xiàng)D是在a為0的時候輸出x,a不為0的時候輸出y。所以,4個選項(xiàng)中選項(xiàng)D符合題意。
7.C
8.D
9.D選項(xiàng)A中,“pt+3”使指針變量Pt移動3個單元,指向第4個元素,不能正確引用。運(yùn)算符“*”與“&”放在一起,其作用相互抵消,且下標(biāo)10超出了數(shù)組下標(biāo)范圍,所以B選項(xiàng)錯誤?!?(pt+i)”表示引用指針pt所指元素后的第i個元素,引用數(shù)組第11個元素,C選項(xiàng)錯誤。故本題答案為D選項(xiàng)。
10.Dfun函數(shù)的意思是當(dāng)*s%2==0的時候就輸出并且s自加l次,然后判斷。所以可知只有第2和第4個位置上的才符合要求,所以答案為D。
11.C
12.A[解析]B)與D)選項(xiàng)中取模運(yùn)算符%的左右兩個操作數(shù)均應(yīng)為整數(shù),所以B)、D)錯誤。C)選項(xiàng)中不能將x+z的值賦給表達(dá)式y(tǒng)*5.所以C)錯誤。
13.C在程序設(shè)計中,算法執(zhí)行效率與數(shù)據(jù)的存儲結(jié)構(gòu)密切相關(guān)。算法的空間復(fù)雜度是指算法執(zhí)行過程中所需存儲空間。
14.D
15.B
16.D多元運(yùn)算符問號前面表達(dá)式為真,所以(a-A+a)賦值給a,括號里的運(yùn)算是把大寫字母變成小寫字母,所以答案應(yīng)為選項(xiàng)D。
17.B
18.Cfread函數(shù)中的參數(shù)buffer是內(nèi)存塊的首地址,輸入的數(shù)據(jù)存入此內(nèi)存塊中。
19.B
\n①以內(nèi)模式為框架所組成的數(shù)據(jù)庫,1物理數(shù)據(jù)庫;②以概念模式為框架所組成的數(shù)據(jù)庫叫概念數(shù)據(jù)庫;③以外模式為框架所組成的數(shù)據(jù)庫叫用戶數(shù)據(jù)庫。它是真實(shí)存在于計算機(jī)外存中的數(shù)據(jù)庫。
\n
20.C解析:軟件設(shè)計的基本目標(biāo)是用比較抽象概括的方式確定目標(biāo)系統(tǒng)如何完成預(yù)定的任務(wù),軟件沒計是確定系統(tǒng)的物理模型。軟件測試即使用人工或自動手段來運(yùn)行或測定某個系統(tǒng)的過程,其日的在于檢驗(yàn)它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。軟件調(diào)試后要進(jìn)行回歸測試,防止引進(jìn)新的錯誤。
21.完善性軟件維護(hù)活動包括以下幾類:改正性維護(hù),適應(yīng)性維護(hù)、完善性維護(hù)和預(yù)防性維護(hù),完善性維護(hù)是指為了滿足用戶對軟件提出的新功能與性能要求,需要修改或再開發(fā)軟件,以擴(kuò)充軟件功能、增強(qiáng)軟件性能、改進(jìn)加工效率、提高軟件的可維護(hù)性。
22.3535解析:在主函數(shù)中通過定義和賦初值使p和q分別指向了x和y,執(zhí)行函數(shù)調(diào)用“swap(p,q)”,把p和q中的地址值傳給了形參指針變量a和b,a和b分別指向了實(shí)參x和y。在函數(shù)swap()中交換了指針變量a和b的值,并沒有交換a和b指向的實(shí)參的值,所以函數(shù)調(diào)用返回后x和y依然是原來的值。
23.44解析:本題考查了靜態(tài)存儲類別的局部變量的特點(diǎn)。靜態(tài)存儲類別的局部變量在程序的整個生存周期內(nèi)都存在,但作用域卻只局限于定義它的函數(shù)或局部范圍。當(dāng)i=0時執(zhí)行第一次for循環(huán),k=f(2),a=c++,b++;因?yàn)橘x值運(yùn)算符的優(yōu)先級高于逗號運(yùn)算符,所以a=3,c=4;當(dāng)i=1時執(zhí)行第二次for循環(huán),k=f(3),a=c++,b++;因?yàn)閏為靜態(tài)局部變量所以保留著這一次執(zhí)行的結(jié)果值4,所以a=4,c=5,所以函數(shù)f()返回a的值為4。
24.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本題考查基本邏輯表達(dá),“整數(shù)x的絕對值大于5”時值為“假”,即整數(shù)x的絕對值小于等于5,也就是整數(shù)x要大于等于-5且要小于等于5。這里“且”用“與(&&)”表示,所以C語言表達(dá)式為:(x>-5)&&(x<5)。
25.@
26.0
27.a=8b=7
28.繼承繼承解析:在面向?qū)ο蟮某绦蛟O(shè)計方法中,某些屬性和方法是可以共享的,由于類從父類中繼承而來,這樣提高了軟件的可重用性。
29.棧頂棧頂解析:棧是限定在表的一端進(jìn)行插入和刪除操作的線性表。在表中,允許插入和刪除的一端叫做“棧頂”,不允許插入和刪除的一端叫做“棧底”。
30.1.0/(n*n)1.0/(n*n)解析:sam中累加的值是1+1/(2*2)+1/(3*3)+…+1//(n*n),如果寫為1/(n*n),則會因?yàn)?和n都為整型,結(jié)果則為實(shí)型,將1變?yōu)?.0,結(jié)果則為實(shí)型。
31.靜態(tài)測試靜態(tài)測試
32.-2-2解析:題目中定義并初始化了變量k為0,最后輸出k的值,要求為4,而在此期間只有k+=-(i+j);這條語句改變了k的值,即要求表達(dá)式-(i+j)的值為4。所以,答案應(yīng)該為-2,因?yàn)橹挥衖=j=-2時,表達(dá)式-(i+j)的值才為4。
33.str+strlen(p1)-1或str+strlen(str)-1殘str-1+strlen(str)或3tr-1+strlen(p1)t==0或!t或t=='\0'huiwen(str)str+strlen(p1)-1或str+strlen(str)-1殘str-1+strlen(str)或3tr-1+strlen(p1)\r\nt==0或!t或t=='\\0'\r\nhuiwen(str)解析:判斷回文教一般使用兩個指針或下標(biāo)變量分別從檢查串的第1個字符和最后一個字符開始相向移動,并比較兩者內(nèi)容是否相同,直到中間相遇一直相同則是回文數(shù),否則不是。函數(shù)huiwen中開始定義了兩個字符指針p1和p2,并讓p1指向str的開始位置,所以p2應(yīng)該指向str的尾部,即&str[strlen(sir)-1]或?qū)懗蓅tr+strlen(str)-1或者其他等價形式。然后使用一個循環(huán),循環(huán)str的長度的一半次數(shù),比較p1和p2的內(nèi)容,并分別遞增和遞減這兩個指針。若有不同,則讓標(biāo)志t為1,并跳出循環(huán)。所以最后一個if語句應(yīng)該為判斷標(biāo)志t是否為1,即應(yīng)該填t==0或者其他等價形式。在主函數(shù)中,應(yīng)該輸出huiwen()函數(shù)的返回結(jié)果,印最后一空應(yīng)該填huiwen(str)。
34.a=2b=1a=2,b=1解析:本題考查了switch結(jié)構(gòu)的內(nèi)容。C語言中,程序執(zhí)行完一個case標(biāo)號的內(nèi)容后,如果沒有break語句,控制結(jié)構(gòu)會轉(zhuǎn)移到下一個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。
35.數(shù)據(jù)和操作數(shù)據(jù)和操作
36.共享性共享性解析:數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)能被不同的應(yīng)用程序使用,實(shí)現(xiàn)了數(shù)據(jù)的高度共享,從而降低了數(shù)據(jù)的冗余,這也是數(shù)據(jù)庫的主要目的。
37.1010解析:整型指針最初被賦的值是數(shù)組arr的頭指針,即指向數(shù)組的第一個元素30,p++后,指針指向數(shù)組的下一個元素,即*p=arr[1]=25,在執(zhí)行*(p+3)時,則相當(dāng)于a[1+3],即10。因此,輸出應(yīng)為100。
38.軟件開發(fā)軟件開發(fā)解析:軟件生命周期可以分為3個時期:軟件定義期,包括問題定義、可行性研究和需求分析3個階段;軟件開發(fā)期,包括系統(tǒng)設(shè)計、詳細(xì)設(shè)計、編碼和測試4個階段;軟件維護(hù)期,即運(yùn)行維護(hù)階段。編碼和測試屬于軟件開發(fā)階段。
39.序言性序言性解析:注釋一般分為序言性注釋和功能性注釋。
40.2468(若字符間有空格扣1分)2468(若字符間有空格扣1分)
41.A解析:函數(shù)rewind的功能是將文件指針重新指向一個流的開頭。用法如下:
intrewind(FILE*stream);并且無返值。
42.C
43.B解析:調(diào)用函數(shù)f()時,將數(shù)組a的地址傳遞給了指針q,此時q指向的就是數(shù)組a的第一個元素a[0]。在5次循環(huán)過程中,q始終指向a[0],因此a[0]的值增加了5。最后的輸出結(jié)果為'6,2,3,4,5'。
44.B解析:本題考查break語句和continue語句。程序要輸出循環(huán)結(jié)束時循環(huán)變量a的值,執(zhí)行第一次循環(huán)時,條件(b%3==1)為真,b=4,繼續(xù)下一次循環(huán),如此反復(fù),當(dāng)b=22時,條件(b>=20)為真,跳出循環(huán),此時共循環(huán)8次,即a=8。
45.C解析:本題的考點(diǎn)是C語言結(jié)構(gòu)體的定義和自定義類型typedef。對于選項(xiàng)A,首先用typedef將結(jié)構(gòu)體自定義為AA,再用AA定義結(jié)構(gòu)體變量td是正確的。對于選項(xiàng)B首先定義結(jié)構(gòu)體類型aa,再用structaa定義結(jié)構(gòu)體變量td也是正確的。選項(xiàng)D直接用無名結(jié)構(gòu)體定義結(jié)構(gòu)體變量td也是正確的。而選項(xiàng)C中,首先用無名結(jié)構(gòu)體定義了結(jié)構(gòu)體變量aa,再用結(jié)構(gòu)體變量aa去定義結(jié)構(gòu)體變量td是完全錯誤的。因此正確選項(xiàng)是C。
46.A解析:本題考查的重點(diǎn)是typedef的理解運(yùn)用。C語言允許通過typedef為數(shù)據(jù)類型定義新名字,但是,它并非是生成新的數(shù)據(jù)類型,因此選項(xiàng)A是錯誤的。
47.C解析:數(shù)據(jù)庫系統(tǒng)具有以下4個特點(diǎn):數(shù)據(jù)的集成性、數(shù)據(jù)的高共享性與低冗余性、數(shù)據(jù)的獨(dú)立性、數(shù)據(jù)統(tǒng)一管理與控制。
48.A解析:維護(hù)是軟件生命周期的最后一個階段,也是持續(xù)時間最長、付出代價最大的階段。軟件工程學(xué)的目的就在于提高軟件的可維護(hù)性,同時也要設(shè)法降低維護(hù)的代價。
軟件維護(hù)通常有以下四類;
①為糾正使用中出現(xiàn)的錯誤而進(jìn)行的改正性維護(hù);
②為適應(yīng)環(huán)境變化而進(jìn)行的適應(yīng)性維護(hù);
③為改進(jìn)原有軟件而進(jìn)行的完善性維護(hù);
④為將來的可維護(hù)和可靠而進(jìn)行的預(yù)防性維護(hù)。
軟件維護(hù)不僅包括程序代碼的維護(hù),還包括文檔的維護(hù)。文檔可以分為用戶文檔和系統(tǒng)文檔兩類。但無論是哪類文檔,都必須與程序代碼同時維護(hù)。只有與程序代碼完全一致的文檔才有意義和價值。由此可知,本題中選項(xiàng)B、C、D中的說法都是錯誤的。
49.CC.【解析】線性表是一種線性結(jié)構(gòu),由n(n≥0)個元素組成,所以線性表可以是空表。但是在線性表中,第一個結(jié)點(diǎn)沒有前件,最后一個結(jié)點(diǎn)沒有后件,其他結(jié)點(diǎn)有且只有一個前件和后件,所以選項(xiàng)C.是錯誤的。
50.C解析:C語言規(guī)定,只要在定義函數(shù)時不進(jìn)行存儲類型的顯式說明,函數(shù)的存儲類型就隱含為外部類型,即extern型,外部類型允許其他文件中的函數(shù)調(diào)用。
51.C解析:本題中首先定義一個整型變量a并給它賦初值為3,在表達(dá)式中,從右開始執(zhí)行,即先執(zhí)行“a-=a*a;”等價于a=a-a*a即a=3-3*3=-6,此時a的值為-6,接著執(zhí)行“a+=a-;”相當(dāng)于執(zhí)行a=a+a即a=-6+(-6)=-12,此時a的值為-12。所以,4個選項(xiàng)中選項(xiàng)C符合題意。
52.A解析:轉(zhuǎn)義字符'\\n'表示換行,'\\\\'表示反斜杠,函數(shù)strlen()是計算字符串的長度,不包括文件結(jié)束標(biāo)志('\\0'),函數(shù)sizeof()統(tǒng)計字符串所占的字節(jié)數(shù)。
53.A解析:作為一個算法,一般應(yīng)該具有下列4個特征:(1)可行性,即考慮到實(shí)際的條件能夠達(dá)到一個滿意的結(jié)果;(2)確定性,算法中的每一個步驟都必須是有明確定義的,(3)有窮性,一個算法必須在有限的時間內(nèi)做完;(4)擁有足夠的情報。
54.D解析:字符型數(shù)據(jù)在計算機(jī)內(nèi)部是以ASCII碼存儲的,英文大寫字母和小寫字母在ASCII碼表中都是連續(xù)的,大寫字母A到Z是從65到90,小寫字母a到z是97到122,所以只要變量c大于a并且小于z就能保證其為小寫字母。
55.C解析:全局變量的生存期是整個程序的運(yùn)行期間,作用域是從變量定義的位置開始,到整個源文件結(jié)束止。但是,若全局變量和某一函數(shù)或語句塊中的局部變量同名,則在該函數(shù)或語句塊中,此全局變量被屏蔽,即在該函數(shù)或語句塊內(nèi),訪問的是局部變量,與同名的全局變量不發(fā)生任何關(guān)系。靜態(tài)局部變量的生存期與全局變量相同,作用域和局部變量一樣都是整個函數(shù)成語旬塊內(nèi)有效。程序第一行定義了一個全局變量a,在f()函數(shù)開頭也定義了一個靜態(tài)局部變量a,而且在后面if語句的兩個子句中都定義了靜態(tài)局部變量a。這4個變量a雖然名字一樣,但卻是4個獨(dú)立的變量,而且在整個程序運(yùn)行期都存在。在主函數(shù)中,在定義變量s時將s初始化為全局變量a的值2,然后使用一個for循環(huán)分別調(diào)用了3次f(0)、f(1)、f(2),并將得到的值累加到變量s中。第1次調(diào)用n=0為偶數(shù),執(zhí)行else子句,此時t累加的是else子句中的變量a,所以執(zhí)行后else子句中的a變?yōu)?,t變?yōu)?,然后return語句中的a是函數(shù)f()開頭定義的a,執(zhí)行后函數(shù)開頭的a變?yōu)?,所以返回值是5+3=8。第2次調(diào)用n為1是奇數(shù),執(zhí)行if子句,所以t變?yōu)?,if子句中的a變?yōu)?,然后返回時函數(shù)開頭的a變?yōu)?,返回值是4+4=8。第3次調(diào)用n為2是偶數(shù),又執(zhí)行else子句,else子句中的a現(xiàn)在還是上次執(zhí)行后的值6,所以t=6,然后返回時加上函數(shù)開頭的a的當(dāng)前值5,最后返回11。所以s最終的值是2+8+8+11=29。故應(yīng)該選擇C。
56.B
57.A解析:auto變量:無static聲明的局部變量。用auto作存儲類別的聲明時,可以不寫auto,存儲類別隱含確定為auto(自動存儲類別),是動態(tài)存儲方式。大多數(shù)變量是自動變量。用static聲明的局部變量是靜態(tài)局部變量。函數(shù)調(diào)用結(jié)束后靜態(tài)局部變量占據(jù)的內(nèi)存存儲單元空間不釋放,局部變量保留原值,下次調(diào)用時可以繼續(xù)使用該值。用extern聲明外部變量,外部變量即全局變量,可以用extern聲明來改變?nèi)肿兞康淖饔糜?實(shí)際上,關(guān)鍵字'auto'可以省略,auto不寫則隱含確定為'自動存儲類別',屬于動態(tài)存儲方式。
58.D解析:考查對結(jié)構(gòu)體成員的引用方法。結(jié)構(gòu)體成員的引用可以用'結(jié)構(gòu)體變量名.成員名'或者'結(jié)構(gòu)體變量指針->成員名'兩種方式來引用。
59.A
60.B解析:選項(xiàng)A錯在表示轉(zhuǎn)義字符的三位八進(jìn)制數(shù)中不能出現(xiàn)8,選項(xiàng)C錯在字符串要用雙引號括起,選項(xiàng)D錯在單個字符應(yīng)用單引號括起。選項(xiàng)B表示用兩位16進(jìn)制數(shù)代表轉(zhuǎn)義字符。
61.A賦值號的左邊不能為常量或表達(dá)式,所以B,C錯誤,D項(xiàng)不能進(jìn)行這樣的操作。
62.A第一次循環(huán)返回5+5為l0,第二次循環(huán)返回l4+14為28,所以選擇A)。
63.Aa<<2的值為20,2011結(jié)果為21,所以答案選擇A)。
64.C題目中給出的程序分為兩個部分:主函數(shù)main和函數(shù)f。在主函數(shù)中初始化定義了一個整型數(shù)組a,大小為6,并定義了兩個數(shù)組指針p,q。指針p指向數(shù)組第一個元素的地址,指針q指向數(shù)組最后一個元素的地址。主函數(shù)包含一個while語句,循環(huán)條件為p<q,while語句內(nèi)部先調(diào)用了f函數(shù),p、q指針為該函數(shù)的實(shí)參,隨后進(jìn)行了p++操作和q--,即使p指針指向下一個元素的地址,q指針指向前一個元素的地址。由于是數(shù)組存儲,必然存在初始時,有p<q,當(dāng)p>=q時,while語句結(jié)束。while語句后面是for語句,該語句的作用是輸出數(shù)組a[]中所有的數(shù)據(jù)。
f函數(shù)的形參為整型指針,函數(shù)的功能是使得輸入的指針變量所指向的數(shù)據(jù)進(jìn)行交換,由于使用的是指針變量,故在f函數(shù)中對指針的操作結(jié)果會影響調(diào)用函數(shù)中(main)實(shí)參所指數(shù)據(jù)的改變,題目中f函數(shù)的調(diào)用實(shí)質(zhì)是將main函數(shù)中的p、q指針?biāo)傅臄?shù)據(jù)進(jìn)行交換,也將導(dǎo)致數(shù)組a中相應(yīng)的數(shù)據(jù)進(jìn)行交換。結(jié)合while語句,也就是將數(shù)組a中的第1個數(shù)據(jù)與第6個數(shù)據(jù)進(jìn)行交換,第2個數(shù)據(jù)與第5個數(shù)據(jù)進(jìn)行交換,以此類推,得到結(jié)果10,8,6,4,2,1。
65.D調(diào)用缸函數(shù)后,實(shí)參數(shù)組名sl傳給形參指針P,P也指向數(shù)組sl。m函數(shù)的功能是遍歷字符數(shù)組中的所有字符,如果某一個字符是空格并且前一個字符是小寫字母的話,就把前一個字符轉(zhuǎn)換為大寫。程序中語句P[i一1
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- NX-1607-GMP-Cbl-b-IN-3-GMP-生命科學(xué)試劑-MCE-7412
- Isoorotidine-生命科學(xué)試劑-MCE-5873
- 3-Methoxy-prostaglandin-F1α-生命科學(xué)試劑-MCE-1002
- 二零二五年度紅木家具品牌授權(quán)合同及清單
- 二零二五年度父母無償贈與子女房產(chǎn)并約定維修責(zé)任協(xié)議
- 二零二五年度新能源儲能技術(shù)融資合同
- 施工現(xiàn)場施工防突發(fā)公共衛(wèi)生事件制度
- 施工單位關(guān)于協(xié)調(diào)配合的聯(lián)絡(luò)函
- 雨雪天氣的應(yīng)急預(yù)案
- 《運(yùn)營管理 第7版》課件-chapt.05-選址與設(shè)施布置
- 招標(biāo)采購基礎(chǔ)知識培訓(xùn)
- 2024年廣東省公務(wù)員錄用考試《行測》試題及答案解析
- 2024年法律職業(yè)資格考試(試卷二)客觀題試題及解答參考
- 電力系統(tǒng)分布式模型預(yù)測控制方法綜述與展望
- 2024年注冊建筑師-二級注冊建筑師考試近5年真題附答案
- 2024年貴州省中考理科綜合試卷(含答案)
- 無人機(jī)技術(shù)與遙感
- 燃煤電廠超低排放煙氣治理工程技術(shù)規(guī)范(HJ 2053-2018)
- TSG-T7001-2023電梯監(jiān)督檢驗(yàn)和定期檢驗(yàn)規(guī)則宣貫解讀
- 冠脈介入進(jìn)修匯報
- 護(hù)理病例討論制度課件
評論
0/150
提交評論