版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021年遼寧省丹東市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.以下敘述中正確的是()。
A.在C語(yǔ)言中,預(yù)處理命令行都以“#”開(kāi)頭
B.預(yù)處理命令行必須位于c源程序的起始位置
C.#include<stdi0.h>必須放在C程序的開(kāi)頭
D.C語(yǔ)言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能
2.在面向?qū)ο笤O(shè)計(jì)中,對(duì)象有很多基本特點(diǎn),其中“從外面看只能看到對(duì)象的外部特性,而對(duì)象的內(nèi)部對(duì)外是不可見(jiàn)的。”這一性質(zhì)指的是對(duì)象的
A.分類(lèi)性B.標(biāo)識(shí)惟一性C.多態(tài)性D.封裝性
3.有以下程序:#include<stdio.h>intfun(int*a,int*b,intn){inti=0,j=0,sum=0;for(;i<n;i++){sum+=a[i];if((i+1)%2==0){b[j++]=sum;sum=0;}}returnj;}main(){inta[8]={1,0,2,3,5,4,2,1},b[8],k,i;k=fun(a,b,8);for(i=0;i<k;i++)printf(“%d”,b[i]);}程序的運(yùn)行結(jié)果是()。
A.0242B.1593C.1351D.286
4.有以下程序:#include<stdio.h>main{shortC=124;C=C_;printf("%d\n",c);}若要使程序的運(yùn)行結(jié)果為248,應(yīng)在下劃線處填入的是()。A.>>2B.|248C.&0248D.<<1
5.若串S1="ABCDEFG",S2="9898",S3="###",S4="012345",執(zhí)行其結(jié)果為()。A.ABC###G0123B.ABCD###2345C.ABC###G1234D.ABCD###1234
6.if語(yǔ)句的基本形式是“if(表達(dá)式)語(yǔ)句”,以下關(guān)于“表達(dá)式”值的敘述中正確的是()。
A.必須是邏輯值B.必須是整數(shù)值C.必須是正數(shù)D.可以是任意合法的數(shù)值
7.以下敘述中錯(cuò)誤的是
A.在函數(shù)外部定義的變量在所有函數(shù)中都有效
B.在函數(shù)內(nèi)部定義的變量只能在本函數(shù)范圍內(nèi)使用
C.函數(shù)中的形參屬于局部變量
D.在不同的函數(shù)中可以使用相同名字的變量
8.以下選項(xiàng)中關(guān)于C語(yǔ)言常量的敘述錯(cuò)誤的是()。
A.所謂常量,是指在程序運(yùn)行過(guò)程中,其值不能被改變的量
B.常量分為整型常量、實(shí)型常量、字符常量和字符串常量
C.常量可分為數(shù)值型常量和非數(shù)值常量
D.經(jīng)常被使用的變量可以定義成常量
9.有以下程序:#include<stdio.h>main(){inta=7;while(a--);print[("%d\n",a);}程序運(yùn)行后的輸出結(jié)果是()。A.-1B.0C.1D.7
10.以下選項(xiàng)中與“(!a==0)”的邏輯值不等價(jià)的表達(dá)式是()。
A.(a==!0)B.aC.(a>0||a<0)D.(a!=0)
11.有以下程序:#include<stdio.h>main(){intx=10,y=11,z=12;if(y<z)x=y;y=z;z=x;printf(“x=%dy=%dz=%d\n”,x,y,z);}程序運(yùn)行后的輸出結(jié)果是()。
A.x=11y=12z=11
B.x=10y=10z=10
C.x=11y=11z=10
D.x=10y=10z=12
12.在一個(gè)被調(diào)用函數(shù)中,關(guān)于return語(yǔ)句使用的描述,()是錯(cuò)誤的。
A.被調(diào)用函數(shù)中可以不用return語(yǔ)句
B.被調(diào)用函數(shù)中可以使用多個(gè)return語(yǔ)句
C.被調(diào)用函數(shù)中,如果有返回值,就一定要有return語(yǔ)句
D.被調(diào)用函數(shù)中,一個(gè)return語(yǔ)句可以返回多個(gè)值給調(diào)用函數(shù)
13.下述程序的輸出結(jié)果是()。#include<stdio.h>main(){inti;for(i=1;i<=10;i++){if(i*i>=20)(i*i<=lOO))break;}printf("%d\n",i*i);}A.49B.36C.25D.64
14.有三個(gè)關(guān)系R、s和T如下:
由關(guān)系R和s通過(guò)運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為()。
A.并B.自然連接C.笛卡爾積D.交
15.采用鄰接表存儲(chǔ)的圖的深度優(yōu)先遍歷算法類(lèi)似于二叉樹(shù)的()。
A.先序遍歷B.中序遍歷C.后序遍歷D.按層遍歷
16.以下程序的輸出結(jié)果是()。main{inta[3][3]=“l(fā),2),{3,4),{5,6)},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf(”%d\n”,s);}A.18B.19C.20D.21
17.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.efg,h,z,q,bcd
B.efg,d,zyz,wbbcd
C.efgabcdsnopqhijkIxyz,h,z,q,bcd
D.efgabcdsnopqhijkIxyz,d,zyz,w,bbcd
18.有以下程序:#includemain(){inty=9;for(;y>0;y--)If?y%3==0)printf("%d",---y);}程序的運(yùn)行結(jié)果是()。A.852B.963C.741D.875421
19.若有以下的定義:‘intt[3][2];”,能正確表示t數(shù)組元素地址的表達(dá)式是()。
A.&t[3][2]B.t[3]C.t[l]D.t[2][2]
20.已知10個(gè)元素(54,28,16,34,,73,62,95,60,26,43),按照依次插入的方法生成一棵二叉排序樹(shù),查找值為62的結(jié)點(diǎn)所需比較次數(shù)為()
A.4B.3C.2D.5
二、2.填空題(20題)21.由25人圍坐成圓圈,先從任意一人出發(fā)用1到25順時(shí)針依次編號(hào),然后從1號(hào)開(kāi)始順時(shí)針報(bào)數(shù)(1、2、3…),凡報(bào)5的倍數(shù)者出圈,剩下者繼續(xù)報(bào)數(shù),求出最后出圈者的編號(hào)。
#include<stdio.h>
【】
{inta[26],j,n,count;
for(j=1;j<=25;j++)a[j]=j(luò);
j=1;count=0;n=【】;
do
{if(a[j]!=0)
{n++;
if(n%5==0)
{【】;
if(count==24)printf("%d\n",j);
count++;
}
}
j++;
if(j>25)j=1;
}
while(【】);
}
22.軟件維護(hù)活動(dòng)包括以下幾類(lèi):改正性維護(hù)、適應(yīng)性維護(hù)、【】維護(hù)和預(yù)防性維護(hù)。
23.設(shè)有定義:floatx=123.4567;,則執(zhí)行以下語(yǔ)句后的輸出結(jié)果是()。printf("%f\n",(int)(x*100+0.5)/100.0);
24.數(shù)據(jù)模型分為格式化模型與非格式化模型,層次模型與網(wǎng)狀模型屬于【】。
25.對(duì)于長(zhǎng)度為n的順序存儲(chǔ)的線性表,當(dāng)隨機(jī)插入和刪除—個(gè)元素時(shí),需平均移動(dòng)元素的個(gè)數(shù)為【】。
26.以下程序運(yùn)行后的輸出結(jié)果是【】。
voidswap(intx,inty)
{intt;
t=x;x=Y;Y=t;printf("%d%d",x,y);
}
main()
{inta=3,b=4;
swap(a,b);printf("%d%d",a,b);
}
27.以下程序的輸出結(jié)果是【】。
main()
{inta=177;
printf(“%o\n”,A);
}
28.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為_(kāi)_____。
29.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。
30.下列程序的輸出結(jié)果是【】。
main()
{inta=1,b=2;
a=a+b;b=a-b,a=a-b;
printf("%d,%d\n",a,b);
}
31.下面程序執(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);
}
32.有以下程序:
fun(inta,intb)
{if(a>b)return(a);
elsereturn(b);
}
main()
{intx=3,y=8,z=6,r;
r=fun(fun(x,y),2*z);
printf("%\d\n",r);
}
程序運(yùn)行后的輸出的結(jié)果是【】。
33.以下程序的輸出結(jié)果是【】。
main()
{charc='z';
printf("%c",c-25);}
34.在程序設(shè)計(jì)階段應(yīng)該采取【】和逐步求精的方法,把一個(gè)模塊的功能逐步分解,細(xì)化為一系列具體的步驟,進(jìn)而用某種程序設(shè)計(jì)語(yǔ)言寫(xiě)成程序。
35.以下程序的功能是計(jì)算:s=1+12+123+1234+12345。請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
main()
intt=0.s=0,i:
for(i=1;i<=5;i++){t=i+【】;s=s+t;}
prinff("s=%d\n".s);}
36.下列程序的輸出結(jié)果是______。
#include<stdio.h>
intfun(intx)
{intp;
if(x==0‖x==1)
return3;
else
p=x-fun(x-2);
returnp;
}
voidmain()
{printf("\n%d",fun(11));
37.測(cè)試用例包括輸入值集和【】值集。
38.下面函數(shù)的功能是:找出一維數(shù)組元素中最大的值和它所在的下標(biāo),最大的值和它所在的下標(biāo)通過(guò)形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個(gè)數(shù),max存放最大值,index存放最大值所在元素的下標(biāo)。請(qǐng)?zhí)羁铡?/p>
#include<stdlib.h>
#include<stdio.h>
voidfun(inta[],intn,int*max,int*d)
{intI;
*max=a[0];
*d=0;
for(I=0;【】;I++)
if(*max<【】)
{*max=a[I];*d=i;}}
main()
{inti,x[20],max,index,n=10;
randomize();
for(i=0;i<n;i++)
{x[i]=rand()%50;printf("%4d",x[i]);}
printf("\n");
fun(x,n,&max,&index);
printf("Max=%5d,Index=%4d\n",max,index);}
39.若有以下程序:
main()
{
inta=4,b=3,c==5,t=0;
if(a<b)t=a;a=b;b=t;
if(a<c)t=a;a=c;c=t;
printf("%d%d%d\n",a,b,C);
}
執(zhí)行后輸出結(jié)果是【】。
40.有下列程序;
#include<stdio.h>
main()
{charc;
while((c=getchar())!=',')putchar(++C);
}
程序運(yùn)行時(shí),如果從鍵盤(pán)輸入:A,B,<CR>,則輸出結(jié)果為_(kāi)_____。
三、1.選擇題(20題)41.有如下程序#defineN2#defineMN+1#defineNUM2*M+1main(){inti;for(i=1;i<=NUM;i++)printf("%d\n"i)}該程序中的for循環(huán)執(zhí)行的次數(shù)是______。
A.5B.6C.7D.8
42.有下列二叉樹(shù),
對(duì)此二叉樹(shù)前序遍歷的結(jié)果為()。
A.ACFHIBEDGB.ABCDEFGHIC.ABDEGCFHID.ABCDEFHGI
43.以下程序的輸出結(jié)果是()。main(){inta=5,b=4,c=6,d;printf("%d\n",d=a>b?(a>c?a:C):(B));}
A.5B.4C.6D.不確定
44.以下程序運(yùn)行后的輸出結(jié)果是______。main(){inty=18,i=0,j,a[8];do{a[i]=y%2;i++;y=y/2;}while(y>=1);for(j=i-1;j>=0;j--)printf("%d",a[j]);printf("\n");}
A.1000B.10010C.110D.10100
45.下列程序的輸出結(jié)果是()。#inelude<stdio.h>main(){inta[5]={2,4,6,8,10},*p,**k;p=a;k=&p;printf("%d",*(p++));printf("%d\n",**k);}
A.4B.22C.24D.46
46.以下程序的輸出結(jié)果是typedefunion{longx[2]inty[4];charz[8];}MYTYPE;MYTYPEthem;main(){printf("%d\n",sizeof(them));}
A.32B.16C.8D.24
47.有以下程序#include<stdio.h>voidWriteStr(char*fn,char*str){FILE*fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}main(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");}程序運(yùn)行后,文件t1.dat中的內(nèi)容是
A.startB.endC.startendD.endrt
48.以下程序的輸出結(jié)果是main(){intc=35;printf("%d\n",c&c);}
A.0B.70C.35D.1
49.有以下程序main(){inta=1,b=2,m=0,n=0,k;k=(n=b>a)‖(m=a<b);printf("%d,%d\n",k,m);}程序運(yùn)行后的輸出結(jié)果是
A.0,0B.0,1C.1,0D.1,1
50.若在fopen函數(shù)中使用文件的方式是"wb+",該方式的含義是()
A.為讀/寫(xiě)打開(kāi)一個(gè)文本文件
B.為輸出打開(kāi)一個(gè)文本文件
C.為讀/寫(xiě)建立一個(gè)新的文本文件
D.為讀/寫(xiě)建立一個(gè)新的二進(jìn)制文件
51.利用fseek函數(shù)可實(shí)現(xiàn)的操作是()。
A.實(shí)現(xiàn)文件的順序讀寫(xiě)B(tài).改變文件的位置指針C.實(shí)現(xiàn)文件的隨機(jī)讀寫(xiě)D.以上答案均正確
52.以下程序的結(jié)果是()
main()
{unsignedinta=3,b=10;
printf("%d\n",a<<2|b>>1);
}
A.1B.5C.12D.13
53.以下程序的輸出結(jié)果是______。longfum(intn){longs;if(n==||n==2)s=2;elses=n-fun(n-1);returns;}main(){printf("%ld\n",fun(3));}
A.1B.2C.3D.4
54.設(shè)計(jì)數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)屬于()。
A.需求分析B.概念設(shè)計(jì)C.邏輯設(shè)計(jì)D.物理設(shè)計(jì)
55.函數(shù)rewind的作用是
A.使文件位置指針重新返回文件的開(kāi)始位置
B.將文件位置指針指向文件中所要求的特定位置
C.使文件位置指針指向文件的末尾
D.使文件位置指針自動(dòng)移至下一個(gè)字符位置
56.對(duì)關(guān)系S和R進(jìn)行集合運(yùn)算,結(jié)果中既包含S中的所有元組也包含R中的所有元組,這樣的集合運(yùn)算稱(chēng)為()
A.并運(yùn)算B.交運(yùn)算C.差運(yùn)算D.積運(yùn)算
57.下列程序的輸出結(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
58.以下程序(程序左邊的數(shù)字為附加的行號(hào))______。1#include<str.h>2#include<stdio.h>3main()4{chars[]="string";5puts(s);6strcpy(s,"hello");7printf("%3s\n",s);}
A.沒(méi)有錯(cuò)B.第1行有錯(cuò)C.第6行有錯(cuò)D.第7行有錯(cuò)
59.若x是整型變量,pb是基類(lèi)型為整型的指針變量,則正確的賦值表達(dá)式是______。
A.pb=&x;B.pb=x;C.*pb=&x;D.*pb=*x
60.設(shè)有定義:intn=0,*p=&n,**q=&p;則下列選項(xiàng)中正確的賦值語(yǔ)句是()。
A.p=1;B.*q=2;C.q=p;D.*p=5;
四、選擇題(20題)61.
設(shè)有以下定義和語(yǔ)句:
charstr[2O]="Program",*P:
p=str:
則以下敘述中正確的是()。
A.*p與stf[0]的值相等
B.str與P的類(lèi)型完全相同
C.str數(shù)組長(zhǎng)度和P所指向的字符串長(zhǎng)度相等
D.數(shù)組str中存放的內(nèi)容和指針變量P中存放的內(nèi)容相同
62.執(zhí)行下述程序后,輸出的結(jié)果是()。#include<stdio.h>#defineS(X)X*Xvoidmain{inta=9,k=3,m=2;a/=S(k+m)/s(k+m);printf("%d",a);}A.1B.4C.9D.0
63.
64.
65.
66.(VC++)若有以下定義,則對(duì)b數(shù)組元素正確的引用是
intb[2][3]={1,2,3,4,5,6};A.b[1]B.b[0][3]C.b[2][2]D.b[1][1]
67.若已建立如下圖所示的單向鏈表結(jié)構(gòu):在該鏈表結(jié)構(gòu)中,指針p、s分別指向圖中所示結(jié)點(diǎn),則不能將s所指的結(jié)點(diǎn)插入到鏈表末尾仍構(gòu)成單向鏈表的語(yǔ)句組是A.p=p->next;s->next=p;p->next=s;
B.p=p->next;s->next=p->next;p->next=s;
C.s->next=NULL;p=p->next;p->next=s;
D.p=(*p).next;(*s).next=(*p).next;(*p).next=s;
68.軟件生命周期是指()。A.軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程
B.軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測(cè)試完成的過(guò)程
C.軟件的開(kāi)發(fā)過(guò)程
D.軟件的運(yùn)行維護(hù)過(guò)程
69.
70.
71.
72.當(dāng)變量c的值不為2、4、6時(shí),值也為”真”的表達(dá)式是()。
A.
B.
C.
D.
73.對(duì)長(zhǎng)度為n的線性表進(jìn)行順序查找,在最壞情況下需要比較的次數(shù)為()。
A.125B.n/2C.nD.n+1
74.
有下列程序:
#include<stdio.h>
main
{inta=6,b=7,m=1;
switch(a%2)
{case0:m++;break;
case1:m++;
switch(b%2)
{default:m++;
case0:m++;break;
}
}
printf("%d\n",m);
}
程序的運(yùn)行結(jié)果是()。
A.3B.2C.4D.1
75.已知大寫(xiě):字母A的ASCIl碼是65,小寫(xiě)字母a的ASCIl碼是97。以下不能將變量c中的大寫(xiě)字母轉(zhuǎn)換為對(duì)應(yīng)小寫(xiě)字母的語(yǔ)句是()。
76.
77.源程序的文檔不包括()。
A.符合號(hào)名的命名要有實(shí)際意義B.正確的文檔形式C.良好的視覺(jué)組織D.正確的程序注釋
78.“商品”與“顧客”兩個(gè)實(shí)體集之間的聯(lián)系一般是()。
A.一對(duì)一B.多對(duì)一C.一對(duì)多D.多對(duì)多
79.
80.耦合性和內(nèi)聚性是對(duì)模塊獨(dú)立性度量的兩個(gè)標(biāo)準(zhǔn)。下列敘述中正確的是()。
A.提高耦合性降低內(nèi)聚性有利于提高模塊的獨(dú)立性
B.降低耦合性提高內(nèi)聚性有利于提高模塊的獨(dú)立性
C.耦合性是指-個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度
D.內(nèi)聚性是指模塊間互相連接的緊密程度
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc的功能是:從字符串str中,刪除所有大寫(xiě)字母F。
請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdio.h>
voidproc(char*str)
{
inti,j;
//****found****
for(i=j=0;str[i]一0;i++)
if(str[i]!=F)
//****found****
str[i]=str[i];
str[j]=\0;
}
voidmain
{
charstr[80];
printf("\nEnterastring:");
gets(str);
printf("Theoriginalstring:");
puts(str);
proc(str);
printf("Thestringafterdeleted:");
puts(str);
printf("\n\n");}
六、程序設(shè)計(jì)題(1題)82.某學(xué)生的記錄由學(xué)號(hào)、8門(mén)課成績(jī)和平均分組成,學(xué)號(hào)和8門(mén)課的成績(jī)已在主函數(shù)中給出。請(qǐng)編寫(xiě)proc()函數(shù),它的功能是:求出該學(xué)生的平均分并放在記錄的ave成員中。請(qǐng)自己定義正確的形參。例如,若學(xué)生的成績(jī)是65.5,75,88,90,90.5,66,64.5,89.5,則他的平均分應(yīng)當(dāng)是78.625。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:
參考答案
1.A預(yù)處理命令是以“#”號(hào)開(kāi)頭的命令,它們不是C語(yǔ)言的可執(zhí)行命令,這些命令應(yīng)該在函數(shù)之外書(shū)寫(xiě),一般在源文件的最前面書(shū)寫(xiě),但不是必須在起始位置書(shū)寫(xiě),所以B、c錯(cuò)誤。C語(yǔ)言的預(yù)處理能夠?qū)崿F(xiàn)宏定義和條件編譯等功能,所以D錯(cuò)誤。
2.D解析:從外面看只能看到對(duì)象的外部特性,而對(duì)象的內(nèi)部,即處理能力的實(shí)行和內(nèi)部狀態(tài),指的是對(duì)象的封裝性。
3.B程序中,fun函數(shù)的功能是接收兩個(gè)數(shù)組a、b,以及數(shù)組a的元素個(gè)數(shù)n,然后通過(guò)for循環(huán)將數(shù)組a中下標(biāo)為偶數(shù)的元素與后面相鄰的下標(biāo)為奇數(shù)的元素兩兩相加,賦給數(shù)組b中下標(biāo)為j的元素,最后返回?cái)?shù)組b的個(gè)數(shù)。所以main函數(shù)中,通過(guò)調(diào)用fun函數(shù),將數(shù)組a的元素兩兩相加,得到數(shù)組b的各個(gè)元素,再通過(guò)for循環(huán)輸出,結(jié)果為:1593。故本題答案為B選項(xiàng)。
4.D124的2進(jìn)制值為1111100,要輸出為248即124*2,則2進(jìn)制值為11111000,即右移l位,所以選D。
5.D
6.Dif語(yǔ)句中的表達(dá)式可以是任意合法的數(shù)值,如常量、變量表達(dá)式。故本題答案為D選項(xiàng)。
7.A全局變量有效范圍是從定義的位置開(kāi)始到所在源文件的結(jié)束,在這區(qū)域內(nèi)的函數(shù)才可以調(diào)用,如果在定義函數(shù)之后,定義的變量,該變量不能被之前的函數(shù)訪問(wèn)所以A選項(xiàng)說(shuō)法錯(cuò)誤,答案為A選項(xiàng)。
8.D此題考查的是常量和變量的定義,常量不是經(jīng)常使用的變量,而是一個(gè)確定的數(shù)值,所以答案選擇D。
9.A此題考查a--和--a之間的區(qū)別,當(dāng)while(a--)為真循環(huán)執(zhí)行,a--是執(zhí)行再減1,所以答案選擇A。
10.A運(yùn)算符邏輯非“!”和“==”,邏輯非“!”的優(yōu)先級(jí)高于“==”,選項(xiàng)A等價(jià)于“(!a)==0”。如果a不等于0,則表達(dá)式為真,否則表達(dá)式為假。故本題答案為A選項(xiàng)。
11.Aif條件為真,執(zhí)行“x=y;”,此時(shí)x=11,y=11,z=12;再執(zhí)行“y=z;z=x;”,此時(shí)y=12,z=11,即x=11,y=12,z=11。故本題答案為A選項(xiàng)。
12.D
13.C當(dāng)if執(zhí)行到第一個(gè)滿(mǎn)足(i*i>=20)(i*i<=100)這個(gè)條件的i出現(xiàn)時(shí),通過(guò)break語(yǔ)句跳出循環(huán),執(zhí)行下面的prinlf語(yǔ)句。
14.D關(guān)系R與s經(jīng)交運(yùn)算后所得到的關(guān)系是由那些既在R內(nèi)又在S內(nèi)的共有元組組成的,記為RnS。
15.A
16.A循環(huán)的作用是求行下標(biāo)從1到2列下標(biāo)從0到i的元素之和,即s=a[1][0]+a[1][1]+a[2][0]+a[2][1]+a[2][2]=3+4+5+6+0=18。
17.A程序定義一個(gè)二維字符數(shù)組v,使用5個(gè)字符串對(duì)其初始化。對(duì)于表達(dá)式“*v”等價(jià)于“*(v+0)”,輸出的是數(shù)組v的第1個(gè)元素efg;“**(v+3)”等價(jià)于“*(*(v+3)+0)”,輸出的是數(shù)組v的第4個(gè)元素的第1個(gè)字符h;“v[4]”表示數(shù)組v的第5個(gè)元素,“v[4]+2”表示輸出從下標(biāo)2開(kāi)始的所有字符,即z;“v[2]”表示數(shù)組v的第3個(gè)元素,“*(v[2]+4)”表示數(shù)組v的第3個(gè)元素的下標(biāo)為4的字符q;“v[1]+1”表示數(shù)組v的第2個(gè)元素從下標(biāo)1開(kāi)始的子字符串,即bcd。所以程序輸出:efg,h,z,q,bcd。本題答案為A選項(xiàng)。
18.A答疑:[解析]第一次for循環(huán),y的值為9.y%3的值為0.滿(mǎn)足條件打印-y,即先減一-后打印,所以打印8;第二次for循環(huán),y的值為7.y%3的值為1.不執(zhí)行打印語(yǔ)句;第三次for循環(huán),y的值為6.y%3的值為0.滿(mǎn)足條件打印--y,即先減-后打印,所以打印5;第四次for循環(huán),y的值為4.不滿(mǎn)足條件,不執(zhí)行打印語(yǔ)句;第五次for循環(huán),y的值為3.滿(mǎn)足條件,打印輸出2;第六次for循環(huán),y的值為1.不滿(mǎn)足條件,不執(zhí)行打印語(yǔ)句。
19.C數(shù)組的下標(biāo)是從0開(kāi)始的,A中越界,行下標(biāo)和列下標(biāo)都不能越界;B中,雖然是個(gè)地址,但是也同樣越界了;選項(xiàng)C中表示的是第一個(gè)的首地址;選項(xiàng)D表示的為其元素的值,并不是地址。
20.B
21.main()0a[j]=0count<25
22.完善性軟件維護(hù)活動(dòng)包括以下幾類(lèi):改正性維護(hù),適應(yīng)性維護(hù)、完善性維護(hù)和預(yù)防性維護(hù),完善性維護(hù)是指為了滿(mǎn)足用戶(hù)對(duì)軟件提出的新功能與性能要求,需要修改或再開(kāi)發(fā)軟件,以擴(kuò)充軟件功能、增強(qiáng)軟件性能、改進(jìn)加工效率、提高軟件的可維護(hù)性。
23.460000
24.格式化模型格式化模型解析:層次模型與網(wǎng)狀模型屬于格式化模型。
25.n/2n/2解析:刪除—個(gè)元素,平均移動(dòng)的元素個(gè)數(shù)為(n-1+n-2+…+0)/n=(n-1)/2;插入一個(gè)元素,平均移動(dòng)元素個(gè)數(shù)為(n+n-1+n-2+…+1)/n=(n+1)/2:所以總體平均移動(dòng)元素個(gè)數(shù)為n/2。
26.43344334解析:函數(shù)的參數(shù)傳遞形參的改變不會(huì)影響實(shí)參的值。調(diào)用函數(shù)swap(x,y)時(shí),將x,y進(jìn)行交換再輸出,輸出為43,但主函數(shù)中的a、b值并沒(méi)有改變,最后輸出a、b的值,為34。
27.261261解析:在控制格式符中“o”代表的是將數(shù)據(jù)按八進(jìn)制數(shù)輸出,十進(jìn)制數(shù)的177代表的八進(jìn)制數(shù)是261。
28.從定義到本源文件結(jié)束從定義到本源文件結(jié)束解析:C語(yǔ)言規(guī)定,宏名的有效范圍為從定義宏到本源程序結(jié)束。
29.軟件開(kāi)發(fā)
30.21
31.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。
32.1212解析:函數(shù)fun的功能是求兩個(gè)數(shù)當(dāng)中的最大值。語(yǔ)句r=fun(fun(x,y),2*z)的執(zhí)行過(guò)程為:首先計(jì)算fun(x,y),因x=3、y=8,所以結(jié)果為8;然后計(jì)算fun(8,2,*z),即計(jì)算fun(8,12),所以r=12。
33.aa解析:“z”的ASCII碼值為122,經(jīng)過(guò)c-25運(yùn)算后得97,以字符形式輸出是a。
34.自頂而下自頂而下
35.t*10t*10解析:程序中變量,用于存放表達(dá)式1+12+123+1234+12345之和,變量t用于存放其表達(dá)式的各項(xiàng)。當(dāng)i=1時(shí),要使t=1;i=2時(shí),t=12;i=3時(shí),t=123;依此類(lèi)推。每一次的t值是用上一次的t乘以10再加上此次的i的值,所以本題答案為t*10。
36.44解析:本題考查函數(shù)的遞歸調(diào)用。在主函數(shù)中第1次調(diào)用子函數(shù)是調(diào)用的fun(11),返回11-fun(9):第2次調(diào)用子函數(shù)是調(diào)用的fun(9),返回9-tim(7);第3次調(diào)用子函數(shù)是調(diào)用的fun(7),返回7-fun(5);第4次調(diào)用子函數(shù)是調(diào)用的fun(5),返回5-fun(3);第5次調(diào)用子函數(shù)是調(diào)用的fun(3),返回3-fun(1);第6次調(diào)用子函數(shù)是調(diào)用的fun(1),返回3??偟姆祷刂凳牵?1-(9-(7-(5-(3-3))))=4。
37.輸出輸出解析:測(cè)試用例曲測(cè)試輸入數(shù)據(jù)(輸入值集)和與之對(duì)應(yīng)的預(yù)期輸出結(jié)果(輸出值集)兩部分組成。
38.I<na[I]I<n,a[I]解析:該程序直接使用形參max和d,由于它們都是指針變量,所以要引用它們所指向的變量時(shí),要對(duì)它們進(jìn)行指針運(yùn)算,即*號(hào)運(yùn)算。
39.503503解析:先判斷表達(dá)式a<b為假,不執(zhí)行t=a,但執(zhí)行“a=b;b=t;”,a的值為3,b的值為0。再判斷表達(dá)式a<C,值為真,所以執(zhí)行后面的3條語(yǔ)句“t=a;a=c;c=t”,結(jié)果a的值為5,c的值為3,所以最后輸出的結(jié)果為5、0和3。
40.BB解析:因?yàn)閏是字符類(lèi)型變量,它只能接收一個(gè)字符,所以c=A,字符型變量在參與算術(shù)運(yùn)算的時(shí)候是用其相應(yīng)的ASCII碼參與運(yùn)算的,這樣++c得到字母B的ASCII碼,用putchar函數(shù)輸出是輸出其相應(yīng)的字符,所以是B。
41.B解析:該題目測(cè)試考生對(duì)宏替換的理解。這是一種簡(jiǎn)單的情況:不帶參數(shù)的宏。關(guān)鍵要注意在對(duì)2*M+1進(jìn)行宏替換時(shí),要將宏名M原封不動(dòng)地代進(jìn)去,得到NUM的形式為2*N+1+1(千萬(wàn)不要隨意給N+1加上小括號(hào),使NUM變?yōu)?。(N+1)+1,這就是宏名和變量名之間的區(qū)別),在將N代進(jìn)去,得到NUM的值為6。
42.C解析:對(duì)二叉樹(shù)的前序遍歷是指先訪問(wèn)根結(jié)點(diǎn),然后訪問(wèn)左子樹(shù),最后訪問(wèn)右子樹(shù),并且,在訪問(wèn)左、右子樹(shù)時(shí),先訪問(wèn)根結(jié)點(diǎn),再依次訪問(wèn)其左、右子樹(shù)。
43.C解析:本題考核的知識(shí)點(diǎn)是條件表達(dá)式的使用.在C語(yǔ)言中問(wèn)號(hào)表達(dá)式(如:a>c?a:c;)的計(jì)算規(guī)則為:如果a>c為真,那么表達(dá)式的值為a的值;否則表達(dá)式的值為C的值。本題中的printf()函數(shù)中的輸出表達(dá)式,首先計(jì)算括號(hào)內(nèi)的條件表達(dá)式,它的值為6(a>c?a:c中a>c即5>6為假故該表達(dá)式的值為c的值即為6),然后再計(jì)算外面表達(dá)式(等價(jià)于a>b?6:b)的值,同理可得該表達(dá)式的值為6,將值6賦值給d,因此最后輸出該表達(dá)式的值為6,所以,4個(gè)選項(xiàng)中C為所選。
44.B
45.C解析:指針變量p指向數(shù)組a的首地址,并把指針變量p的地址賦給指向指針的指針變量k。第一個(gè)printf函數(shù)輸出2,第二個(gè)printf函數(shù)輸出4。
46.C解析:共用體所占存儲(chǔ)空間的大小是所有成員所占存儲(chǔ)單元的和;共用體變量所占存儲(chǔ)單元的大小是所有成員中占據(jù)存儲(chǔ)空間最大的成員所占存儲(chǔ)空間的大小。本題中字符數(shù)組成員z占8個(gè)字節(jié)的長(zhǎng)度,長(zhǎng)度最長(zhǎng),所以共用體變量them用sizeof計(jì)算長(zhǎng)度為8。
47.B解析:本題主要考查的是打開(kāi)文件函數(shù)fopen().題目開(kāi)始定義了一個(gè)函數(shù),該函數(shù)有兩個(gè)字符指針型參數(shù),其作用分別用來(lái)傳入文件名和文件內(nèi)容。函數(shù)首先定義一個(gè)文件指針印,然后使用fopen()函數(shù)打開(kāi)參數(shù)fn所指定的文件。本題的關(guān)鍵就在于fopen()函數(shù)的第2個(gè)參數(shù),這個(gè)參數(shù)指定了文件打開(kāi)的方式。'w'表示為寫(xiě)而打開(kāi)一個(gè)文本文件,如果文件不存在,則新建一個(gè)文件,否則將清空原有文件。接下來(lái)函數(shù)使用fputs()函數(shù)將參數(shù)str中的內(nèi)容寫(xiě)入文件,最后調(diào)用fclose()函數(shù)關(guān)閉文件。在主函數(shù)中兩次調(diào)用該函數(shù),但寫(xiě)入的是同一個(gè)文件,故只有最后一次寫(xiě)入有效。所以應(yīng)該選擇B。
48.C解析:本題考查按位與“&”。因?yàn)?&1=1,0&0=0,所以任何數(shù)與自身按位與,結(jié)果仍為此數(shù),不發(fā)生變化。
49.C解析:在“||”運(yùn)算中當(dāng)其左邊的表達(dá)式為真,右邊的表達(dá)式將不再執(zhí)行。主函數(shù)中,“||”左邊的表達(dá)式k=(n=b>A),“2>1”為真,所以n被賦值為1,接著k被賦值1,即“||”運(yùn)算符左邊表達(dá)式為真,此時(shí)不再計(jì)算“||”右邊的表達(dá)式,因此m的值沒(méi)有被改變?nèi)詾?,最后的輸出結(jié)果1,0。
50.D
51.D解析:改變文件位置指針函數(shù)fseek()的功能:①改變文件的位置指針;②輔助實(shí)現(xiàn)文件的順序讀寫(xiě);③輔助實(shí)現(xiàn)文件的隨機(jī)讀寫(xiě)。
52.D
53.A解析:這是一個(gè)遞歸函數(shù)。遞歸的結(jié)束條件是,n=1或者n=2。按照程序順序,即可得出本題結(jié)果為1。
54.DD?!窘馕觥课锢碓O(shè)計(jì)階段主要解決選擇文件存儲(chǔ)結(jié)構(gòu)和確定文件存取方法的問(wèn)題。物理設(shè)計(jì)階段包括:選擇存儲(chǔ)結(jié)構(gòu)、確定存取方法、選擇存取路徑、確定數(shù)據(jù)的存放位置。
55.A解析:函數(shù)rewind的功能是將文件指針重新指向一個(gè)流的開(kāi)頭。用法如下:
intrewind(FILE*stream);并且無(wú)返值。
56.AA)【解析】關(guān)系的并運(yùn)算是指由結(jié)構(gòu)相同的兩個(gè)關(guān)系合并,形成一個(gè)新的關(guān)系,新關(guān)系中包含兩個(gè)關(guān)系中的所有元組。
57.C解析:本題中char*p=a+5;即相當(dāng)于p=&a[5],而--p,是先要減1,則printf語(yǔ)句要輸出的值就是a[4]。
58.B解析:字符串復(fù)制函數(shù)strcpy包含在頭文件string.h中,因此,程序中的第1行文件包含命令是錯(cuò)誤的。
59.A解析:選項(xiàng)A將變量x的地址賦紿指針變量pb,使pb指向x‘選項(xiàng)B是烙x的值當(dāng)作地址賦給指針pb,pb指向一個(gè)地址等于x值的內(nèi)存單元;選項(xiàng)c將x的地址賦給指針pb指向的地址等于x的內(nèi)存單元。
60.D解析:選項(xiàng)A),B),C)的指針賦值表達(dá)方式都不正確,*p=5表達(dá)整數(shù)5放到指針p所指向的存儲(chǔ)單元中。注意:通過(guò)指針引用一個(gè)存儲(chǔ)單。
61.A
\n本題中的str為一個(gè)字符型數(shù)組,P為字符型指針變量,其指向str的首地址,*P的值為strE03中的字符,其類(lèi)型、長(zhǎng)度不同,但字符第一個(gè)相同,故答案選擇A。
\n
62.D本題j=要是考查帶參數(shù)的宏的定義,過(guò)程如下:inta=a/S(k+m)/S(k+m)=a/(k+m*k+m/k+m)=9/(3十2*3十2/3十2*3十2)=0。
63.A
64.B
65.B
66.D這是二維數(shù)組,所以A錯(cuò)\r\n數(shù)組是從0開(kāi)始,所以第一個(gè)不能有2,第二個(gè)不能有3.所以B,C錯(cuò)。
67.A在選項(xiàng)A中,s的確已插到了鏈表的末尾,但它的next并沒(méi)有為NULL,而是指向了它的直接前趨p,這樣它就不是一個(gè)單向鏈表(單向鏈表最后一個(gè)結(jié)點(diǎn)的next指針一定是一個(gè)NULL)。
68.A通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程稱(chēng)為軟件生命周期。也就是說(shuō),軟件產(chǎn)品從考慮其概念開(kāi)始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。
69.D
70.A
71.C
72.B滿(mǎn)足表達(dá)式,(C>=2&&c<=6)的整型變量C的值是2,3,4,5,6。當(dāng)變量C的值不為2,4,6時(shí),其值只能為3或5,所以表達(dá)式C!=3和C!=5中至少有一個(gè)為真,即不論C為何值,表達(dá)式B)都為”真”。
73.CC?!窘馕觥繉?duì)線性表進(jìn)行順序查找時(shí),從表中的第一個(gè)元素開(kāi)始,將給定的值與表中逐個(gè)元素的關(guān)鍵字進(jìn)行比較,直到兩者相符,查找到所要找的元素為止。在最壞情況下,要查找的元素是表的最后一個(gè)元素或查找失敗,這兩種情況都需要將這個(gè)元素與表中的所有元素進(jìn)行比較,因此比較次數(shù)為n。
74.B
\n本題考查switch語(yǔ)句及break的用法。第一個(gè)switch語(yǔ)句,因?yàn)閍=6.a(chǎn)%2=0,所以執(zhí)行“case0,m++;”,將m加1,遇到break語(yǔ)句跳出switch語(yǔ)句,結(jié)束循環(huán)。不執(zhí)行下面的switch。
\n
75.A大寫(xiě)字母轉(zhuǎn)換為對(duì)應(yīng)小寫(xiě)字母,即加上32,A)選項(xiàng)不是累加32,所以選擇A)
76.D
77.B本題主要考查源程序的定義:①符號(hào)名應(yīng)具有一定實(shí)際的含義;②正確的程序注釋?zhuān)虎哿己玫囊曈X(jué)組織。
78.D商品與顧客兩個(gè)實(shí)體集之間的買(mǎi)與被買(mǎi)聯(lián)系是多對(duì)多的,因?yàn)橐环N商品可以被多個(gè)顧客購(gòu)買(mǎi),而一個(gè)顧客也可以買(mǎi)多個(gè)商品。
79.B
80.B模塊獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡(jiǎn)單。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性,所以A錯(cuò)誤,B正確。耦合性是模塊間互相連接的緊密程度的度量而內(nèi)聚性是指一個(gè)模塊內(nèi)部各個(gè)元素問(wèn)彼此結(jié)合
的緊密程度,所以c與D錯(cuò)誤。
81.(1)錯(cuò)誤:for(i=j=0;str[i]!=0;i++)
\n正確:for(i=j=0;str[i]!=\0;i++)
\n(2)錯(cuò)誤:str[j]=str[i];
\n正確:str[i++]=str[i];
\n【解析】根據(jù)題目中的要求,從字符串str中刪除所有大寫(xiě)字母F,需要檢查字符串str中的每一個(gè)字符,直到字符串結(jié)束,因此,“for(i=j=0;str[i]!=0;i++)”應(yīng)改為“for(i=J=0;str[i]!=0;i++)”;將每一個(gè)不是F的字符放入原來(lái)的字符串中,形成新的字符串,因此,“str[j]=str[i];”應(yīng)改為“str[j++]=str[i];”。
\n
82.
【解析】要求該學(xué)生的平均成績(jī),首先要求出其各科成績(jī)之和,然后求出其平均成績(jī)并放在成員變量ave中。
2021年遼寧省丹東市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.以下敘述中正確的是()。
A.在C語(yǔ)言中,預(yù)處理命令行都以“#”開(kāi)頭
B.預(yù)處理命令行必須位于c源程序的起始位置
C.#include<stdi0.h>必須放在C程序的開(kāi)頭
D.C語(yǔ)言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能
2.在面向?qū)ο笤O(shè)計(jì)中,對(duì)象有很多基本特點(diǎn),其中“從外面看只能看到對(duì)象的外部特性,而對(duì)象的內(nèi)部對(duì)外是不可見(jiàn)的?!边@一性質(zhì)指的是對(duì)象的
A.分類(lèi)性B.標(biāo)識(shí)惟一性C.多態(tài)性D.封裝性
3.有以下程序:#include<stdio.h>intfun(int*a,int*b,intn){inti=0,j=0,sum=0;for(;i<n;i++){sum+=a[i];if((i+1)%2==0){b[j++]=sum;sum=0;}}returnj;}main(){inta[8]={1,0,2,3,5,4,2,1},b[8],k,i;k=fun(a,b,8);for(i=0;i<k;i++)printf(“%d”,b[i]);}程序的運(yùn)行結(jié)果是()。
A.0242B.1593C.1351D.286
4.有以下程序:#include<stdio.h>main{shortC=124;C=C_;printf("%d\n",c);}若要使程序的運(yùn)行結(jié)果為248,應(yīng)在下劃線處填入的是()。A.>>2B.|248C.&0248D.<<1
5.若串S1="ABCDEFG",S2="9898",S3="###",S4="012345",執(zhí)行其結(jié)果為()。A.ABC###G0123B.ABCD###2345C.ABC###G1234D.ABCD###1234
6.if語(yǔ)句的基本形式是“if(表達(dá)式)語(yǔ)句”,以下關(guān)于“表達(dá)式”值的敘述中正確的是()。
A.必須是邏輯值B.必須是整數(shù)值C.必須是正數(shù)D.可以是任意合法的數(shù)值
7.以下敘述中錯(cuò)誤的是
A.在函數(shù)外部定義的變量在所有函數(shù)中都有效
B.在函數(shù)內(nèi)部定義的變量只能在本函數(shù)范圍內(nèi)使用
C.函數(shù)中的形參屬于局部變量
D.在不同的函數(shù)中可以使用相同名字的變量
8.以下選項(xiàng)中關(guān)于C語(yǔ)言常量的敘述錯(cuò)誤的是()。
A.所謂常量,是指在程序運(yùn)行過(guò)程中,其值不能被改變的量
B.常量分為整型常量、實(shí)型常量、字符常量和字符串常量
C.常量可分為數(shù)值型常量和非數(shù)值常量
D.經(jīng)常被使用的變量可以定義成常量
9.有以下程序:#include<stdio.h>main(){inta=7;while(a--);print[("%d\n",a);}程序運(yùn)行后的輸出結(jié)果是()。A.-1B.0C.1D.7
10.以下選項(xiàng)中與“(!a==0)”的邏輯值不等價(jià)的表達(dá)式是()。
A.(a==!0)B.aC.(a>0||a<0)D.(a!=0)
11.有以下程序:#include<stdio.h>main(){intx=10,y=11,z=12;if(y<z)x=y;y=z;z=x;printf(“x=%dy=%dz=%d\n”,x,y,z);}程序運(yùn)行后的輸出結(jié)果是()。
A.x=11y=12z=11
B.x=10y=10z=10
C.x=11y=11z=10
D.x=10y=10z=12
12.在一個(gè)被調(diào)用函數(shù)中,關(guān)于return語(yǔ)句使用的描述,()是錯(cuò)誤的。
A.被調(diào)用函數(shù)中可以不用return語(yǔ)句
B.被調(diào)用函數(shù)中可以使用多個(gè)return語(yǔ)句
C.被調(diào)用函數(shù)中,如果有返回值,就一定要有return語(yǔ)句
D.被調(diào)用函數(shù)中,一個(gè)return語(yǔ)句可以返回多個(gè)值給調(diào)用函數(shù)
13.下述程序的輸出結(jié)果是()。#include<stdio.h>main(){inti;for(i=1;i<=10;i++){if(i*i>=20)(i*i<=lOO))break;}printf("%d\n",i*i);}A.49B.36C.25D.64
14.有三個(gè)關(guān)系R、s和T如下:
由關(guān)系R和s通過(guò)運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為()。
A.并B.自然連接C.笛卡爾積D.交
15.采用鄰接表存儲(chǔ)的圖的深度優(yōu)先遍歷算法類(lèi)似于二叉樹(shù)的()。
A.先序遍歷B.中序遍歷C.后序遍歷D.按層遍歷
16.以下程序的輸出結(jié)果是()。main{inta[3][3]=“l(fā),2),{3,4),{5,6)},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf(”%d\n”,s);}A.18B.19C.20D.21
17.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。A.efg,h,z,q,bcd
B.efg,d,zyz,wbbcd
C.efgabcdsnopqhijkIxyz,h,z,q,bcd
D.efgabcdsnopqhijkIxyz,d,zyz,w,bbcd
18.有以下程序:#includemain(){inty=9;for(;y>0;y--)If?y%3==0)printf("%d",---y);}程序的運(yùn)行結(jié)果是()。A.852B.963C.741D.875421
19.若有以下的定義:‘intt[3][2];”,能正確表示t數(shù)組元素地址的表達(dá)式是()。
A.&t[3][2]B.t[3]C.t[l]D.t[2][2]
20.已知10個(gè)元素(54,28,16,34,,73,62,95,60,26,43),按照依次插入的方法生成一棵二叉排序樹(shù),查找值為62的結(jié)點(diǎn)所需比較次數(shù)為()
A.4B.3C.2D.5
二、2.填空題(20題)21.由25人圍坐成圓圈,先從任意一人出發(fā)用1到25順時(shí)針依次編號(hào),然后從1號(hào)開(kāi)始順時(shí)針報(bào)數(shù)(1、2、3…),凡報(bào)5的倍數(shù)者出圈,剩下者繼續(xù)報(bào)數(shù),求出最后出圈者的編號(hào)。
#include<stdio.h>
【】
{inta[26],j,n,count;
for(j=1;j<=25;j++)a[j]=j(luò);
j=1;count=0;n=【】;
do
{if(a[j]!=0)
{n++;
if(n%5==0)
{【】;
if(count==24)printf("%d\n",j);
count++;
}
}
j++;
if(j>25)j=1;
}
while(【】);
}
22.軟件維護(hù)活動(dòng)包括以下幾類(lèi):改正性維護(hù)、適應(yīng)性維護(hù)、【】維護(hù)和預(yù)防性維護(hù)。
23.設(shè)有定義:floatx=123.4567;,則執(zhí)行以下語(yǔ)句后的輸出結(jié)果是()。printf("%f\n",(int)(x*100+0.5)/100.0);
24.數(shù)據(jù)模型分為格式化模型與非格式化模型,層次模型與網(wǎng)狀模型屬于【】。
25.對(duì)于長(zhǎng)度為n的順序存儲(chǔ)的線性表,當(dāng)隨機(jī)插入和刪除—個(gè)元素時(shí),需平均移動(dòng)元素的個(gè)數(shù)為【】。
26.以下程序運(yùn)行后的輸出結(jié)果是【】。
voidswap(intx,inty)
{intt;
t=x;x=Y;Y=t;printf("%d%d",x,y);
}
main()
{inta=3,b=4;
swap(a,b);printf("%d%d",a,b);
}
27.以下程序的輸出結(jié)果是【】。
main()
{inta=177;
printf(“%o\n”,A);
}
28.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為_(kāi)_____。
29.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。
30.下列程序的輸出結(jié)果是【】。
main()
{inta=1,b=2;
a=a+b;b=a-b,a=a-b;
printf("%d,%d\n",a,b);
}
31.下面程序執(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);
}
32.有以下程序:
fun(inta,intb)
{if(a>b)return(a);
elsereturn(b);
}
main()
{intx=3,y=8,z=6,r;
r=fun(fun(x,y),2*z);
printf("%\d\n",r);
}
程序運(yùn)行后的輸出的結(jié)果是【】。
33.以下程序的輸出結(jié)果是【】。
main()
{charc='z';
printf("%c",c-25);}
34.在程序設(shè)計(jì)階段應(yīng)該采取【】和逐步求精的方法,把一個(gè)模塊的功能逐步分解,細(xì)化為一系列具體的步驟,進(jìn)而用某種程序設(shè)計(jì)語(yǔ)言寫(xiě)成程序。
35.以下程序的功能是計(jì)算:s=1+12+123+1234+12345。請(qǐng)?zhí)羁铡?/p>
#include<stdio.h>
main()
intt=0.s=0,i:
for(i=1;i<=5;i++){t=i+【】;s=s+t;}
prinff("s=%d\n".s);}
36.下列程序的輸出結(jié)果是______。
#include<stdio.h>
intfun(intx)
{intp;
if(x==0‖x==1)
return3;
else
p=x-fun(x-2);
returnp;
}
voidmain()
{printf("\n%d",fun(11));
37.測(cè)試用例包括輸入值集和【】值集。
38.下面函數(shù)的功能是:找出一維數(shù)組元素中最大的值和它所在的下標(biāo),最大的值和它所在的下標(biāo)通過(guò)形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個(gè)數(shù),max存放最大值,index存放最大值所在元素的下標(biāo)。請(qǐng)?zhí)羁铡?/p>
#include<stdlib.h>
#include<stdio.h>
voidfun(inta[],intn,int*max,int*d)
{intI;
*max=a[0];
*d=0;
for(I=0;【】;I++)
if(*max<【】)
{*max=a[I];*d=i;}}
main()
{inti,x[20],max,index,n=10;
randomize();
for(i=0;i<n;i++)
{x[i]=rand()%50;printf("%4d",x[i]);}
printf("\n");
fun(x,n,&max,&index);
printf("Max=%5d,Index=%4d\n",max,index);}
39.若有以下程序:
main()
{
inta=4,b=3,c==5,t=0;
if(a<b)t=a;a=b;b=t;
if(a<c)t=a;a=c;c=t;
printf("%d%d%d\n",a,b,C);
}
執(zhí)行后輸出結(jié)果是【】。
40.有下列程序;
#include<stdio.h>
main()
{charc;
while((c=getchar())!=',')putchar(++C);
}
程序運(yùn)行時(shí),如果從鍵盤(pán)輸入:A,B,<CR>,則輸出結(jié)果為_(kāi)_____。
三、1.選擇題(20題)41.有如下程序#defineN2#defineMN+1#defineNUM2*M+1main(){inti;for(i=1;i<=NUM;i++)printf("%d\n"i)}該程序中的for循環(huán)執(zhí)行的次數(shù)是______。
A.5B.6C.7D.8
42.有下列二叉樹(shù),
對(duì)此二叉樹(shù)前序遍歷的結(jié)果為()。
A.ACFHIBEDGB.ABCDEFGHIC.ABDEGCFHID.ABCDEFHGI
43.以下程序的輸出結(jié)果是()。main(){inta=5,b=4,c=6,d;printf("%d\n",d=a>b?(a>c?a:C):(B));}
A.5B.4C.6D.不確定
44.以下程序運(yùn)行后的輸出結(jié)果是______。main(){inty=18,i=0,j,a[8];do{a[i]=y%2;i++;y=y/2;}while(y>=1);for(j=i-1;j>=0;j--)printf("%d",a[j]);printf("\n");}
A.1000B.10010C.110D.10100
45.下列程序的輸出結(jié)果是()。#inelude<stdio.h>main(){inta[5]={2,4,6,8,10},*p,**k;p=a;k=&p;printf("%d",*(p++));printf("%d\n",**k);}
A.4B.22C.24D.46
46.以下程序的輸出結(jié)果是typedefunion{longx[2]inty[4];charz[8];}MYTYPE;MYTYPEthem;main(){printf("%d\n",sizeof(them));}
A.32B.16C.8D.24
47.有以下程序#include<stdio.h>voidWriteStr(char*fn,char*str){FILE*fp;fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}main(){WriteStr("t1.dat","start");WriteStr("t1.dat","end");}程序運(yùn)行后,文件t1.dat中的內(nèi)容是
A.startB.endC.startendD.endrt
48.以下程序的輸出結(jié)果是main(){intc=35;printf("%d\n",c&c);}
A.0B.70C.35D.1
49.有以下程序main(){inta=1,b=2,m=0,n=0,k;k=(n=b>a)‖(m=a<b);printf("%d,%d\n",k,m);}程序運(yùn)行后的輸出結(jié)果是
A.0,0B.0,1C.1,0D.1,1
50.若在fopen函數(shù)中使用文件的方式是"wb+",該方式的含義是()
A.為讀/寫(xiě)打開(kāi)一個(gè)文本文件
B.為輸出打開(kāi)一個(gè)文本文件
C.為讀/寫(xiě)建立一個(gè)新的文本文件
D.為讀/寫(xiě)建立一個(gè)新的二進(jìn)制文件
51.利用fseek函數(shù)可實(shí)現(xiàn)的操作是()。
A.實(shí)現(xiàn)文件的順序讀寫(xiě)B(tài).改變文件的位置指針C.實(shí)現(xiàn)文件的隨機(jī)讀寫(xiě)D.以上答案均正確
52.以下程序的結(jié)果是()
main()
{unsignedinta=3,b=10;
printf("%d\n",a<<2|b>>1);
}
A.1B.5C.12D.13
53.以下程序的輸出結(jié)果是______。longfum(intn){longs;if(n==||n==2)s=2;elses=n-fun(n-1);returns;}main(){printf("%ld\n",fun(3));}
A.1B.2C.3D.4
54.設(shè)計(jì)數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)屬于()。
A.需求分析B.概念設(shè)計(jì)C.邏輯設(shè)計(jì)D.物理設(shè)計(jì)
55.函數(shù)rewind的作用是
A.使文件位置指針重新返回文件的開(kāi)始位置
B.將文件位置指針指向文件中所要求的特定位置
C.使文件位置指針指向文件的末尾
D.使文件位置指針自動(dòng)移至下一個(gè)字符位置
56.對(duì)關(guān)系S和R進(jìn)行集合運(yùn)算,結(jié)果中既包含S中的所有元組也包含R中的所有元組,這樣的集合運(yùn)算稱(chēng)為()
A.并運(yùn)算B.交運(yùn)算C.差運(yùn)算D.積運(yùn)算
57.下列程序的輸出結(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
58.以下程序(程序左邊的數(shù)字為附加的行號(hào))______。1#include<str.h>2#include<stdio.h>3main()4{chars[]="string";5puts(s);6strcpy(s,"hello");7printf("%3s\n",s);}
A.沒(méi)有錯(cuò)B.第1行有錯(cuò)C.第6行有錯(cuò)D.第7行有錯(cuò)
59.若x是整型變量,pb是基類(lèi)型為整型的指針變量,則正確的賦值表達(dá)式是______。
A.pb=&x;B.pb=x;C.*pb=&x;D.*pb=*x
60.設(shè)有定義:intn=0,*p=&n,**q=&p;則下列選項(xiàng)中正確的賦值語(yǔ)句是()。
A.p=1;B.*q=2;C.q=p;D.*p=5;
四、選擇題(20題)61.
設(shè)有以下定義和語(yǔ)句:
charstr[2O]="Program",*P:
p=str:
則以下敘述中正確的是()。
A.*p與stf[0]的值相等
B.str與P的類(lèi)型完全相同
C.str數(shù)組長(zhǎng)度和P所指向的字符串長(zhǎng)度相等
D.數(shù)組str中存放的內(nèi)容和指針變量P中存放的內(nèi)容相同
62.執(zhí)行下述程序后,輸出的結(jié)果是()。#include<stdio.h>#defineS(X)X*Xvoidmain{inta=9,k=3,m=2;a/=S(k+m)/s(k+m);printf("%d",a);}A.1B.4C.9D.0
63.
64.
65.
66.(VC++)若有以下定義,則對(duì)b數(shù)組元素正確的引用是
intb[2][3]={1,2,3,4,5,6};A.b[1]B.b[0][3]C.b[2][2]D.b[1][1]
67.若已建立如下圖所示的單向鏈表結(jié)構(gòu):在該鏈表結(jié)構(gòu)中,指針p、s分別指向圖中所示結(jié)點(diǎn),則不能將s所指的結(jié)點(diǎn)插入到鏈表末尾仍構(gòu)成單向鏈表的語(yǔ)句組是A.p=p->next;s->next=p;p->next=s;
B.p=p->next;s->next=p->next;p->next=s;
C.s->next=NULL;p=p->next;p->next=s;
D.p=(*p).next;(*s).next=(*p).next;(*p).next=s;
68.軟件生命周期是指()。A.軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程
B.軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測(cè)試完成的過(guò)程
C.軟件的開(kāi)發(fā)過(guò)程
D.軟件的運(yùn)行維護(hù)過(guò)程
69.
70.
71.
72.當(dāng)變量c的值不為2、4、6時(shí),值也為”真”的表達(dá)式是()。
A.
B.
C.
D.
73.對(duì)長(zhǎng)度為n的線性表進(jìn)行順序查找,在最壞情況下需要比較的次數(shù)為()。
A.125B.n/2C.nD.n+1
74.
有下列程序:
#include<stdio.h>
main
{inta=6,b=7,m=1;
switch(a%2)
{case0:m++;break;
case1:m++;
switch(b%2)
{default:m++;
case0:m++;break;
}
}
printf("%d\n",m);
}
程序的運(yùn)行結(jié)果是()。
A.3B.2C.4D.1
75.已知大寫(xiě):字母A的ASCIl碼是65,小寫(xiě)字母a的ASCIl碼是97。以下不能將變量c中的大寫(xiě)字母轉(zhuǎn)換為對(duì)應(yīng)小寫(xiě)字母的語(yǔ)句是()。
76.
77.源程序的文檔不包括()。
A.符合號(hào)名的命名要有實(shí)際意義B.正確的文檔形式C.良好的視覺(jué)組織D.正確的程序注釋
78.“商品”與“顧客”兩個(gè)實(shí)體集之間的聯(lián)系一般是()。
A.一對(duì)一B.多對(duì)一C.一對(duì)多D.多對(duì)多
79.
80.耦合性和內(nèi)聚性是對(duì)模塊獨(dú)立性度量的兩個(gè)標(biāo)準(zhǔn)。下列敘述中正確的是()。
A.提高耦合性降低內(nèi)聚性有利于提高模塊的獨(dú)立性
B.降低耦合性提高內(nèi)聚性有利于提高模塊的獨(dú)立性
C.耦合性是指-個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度
D.內(nèi)聚性是指模塊間互相連接的緊密程度
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc的功能是:從字符串str中,刪除所有大寫(xiě)字母F。
請(qǐng)修改程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdio.h>
voidproc(char*str)
{
inti,j;
//****found****
for(i=j=0;str[i]一0;i++)
if(str[i]!=F)
//****found****
str[i]=str[i];
str[j]=\0;
}
voidmain
{
charstr[80];
printf("\nEnterastring:");
gets(str);
printf("Theoriginalstring:");
puts(str);
proc(str);
printf("Thestringafterdeleted:");
puts(str);
printf("\n\n");}
六、程序設(shè)計(jì)題(1題)82.某學(xué)生的記錄由學(xué)號(hào)、8門(mén)課成績(jī)和平均分組成,學(xué)號(hào)和8門(mén)課的成績(jī)已在主函數(shù)中給出。請(qǐng)編寫(xiě)proc()函數(shù),它的功能是:求出該學(xué)生的平均分并放在記錄的ave成員中。請(qǐng)自己定義正確的形參。例如,若學(xué)生的成績(jī)是65.5,75,88,90,90.5,66,64.5,89.5,則他的平均分應(yīng)當(dāng)是78.625。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:
參考答案
1.A預(yù)處理命令是以“#”號(hào)開(kāi)頭的命令,它們不是C語(yǔ)言的可執(zhí)行命令,這些命令應(yīng)該在函數(shù)之外書(shū)寫(xiě),一般在源文件的最前面書(shū)寫(xiě),但不是必須在起始位置書(shū)寫(xiě),所以B、c錯(cuò)誤。C語(yǔ)言的預(yù)處理能夠?qū)崿F(xiàn)宏定義和條件編譯等功能,所以D錯(cuò)誤。
2.D解析:從外面看只能看到對(duì)象的外部特性,而對(duì)象的內(nèi)部,即處理能力的實(shí)行和內(nèi)部狀態(tài),指的是對(duì)象的封裝性。
3.B程序中,fun函數(shù)的功能是接收兩個(gè)數(shù)組a、b,以及數(shù)組a的元素個(gè)數(shù)n,然后通過(guò)for循環(huán)將數(shù)組a中下標(biāo)為偶數(shù)的元素與后面相鄰的下標(biāo)為奇數(shù)的元素兩兩相加,賦給數(shù)組b中下標(biāo)為j的元素,最后返回?cái)?shù)組b的個(gè)數(shù)。所以main函數(shù)中,通過(guò)調(diào)用fun函數(shù),將數(shù)組a的元素兩兩相加,得到數(shù)組b的各個(gè)元素,再通過(guò)for循環(huán)輸出,結(jié)果為:1593。故本題答案為B選項(xiàng)。
4.D124的2進(jìn)制值為1111100,要輸出為248即124*2,則2進(jìn)制值為11111000,即右移l位,所以選D。
5.D
6.Dif語(yǔ)句中的表達(dá)式可以是任意合法的數(shù)值,如常量、變量表達(dá)式。故本題答案為D選項(xiàng)。
7.A全局變量有效范圍是從定義的位置開(kāi)始到所在源文件的結(jié)束,在這區(qū)域內(nèi)的函數(shù)才可以調(diào)用,如果在定義函數(shù)之后,定義的變量,該變量不能被之前的函數(shù)訪問(wèn)所以A選項(xiàng)說(shuō)法錯(cuò)誤,答案為A選項(xiàng)。
8.D此題考查的是常量和變量的定義,常量不是經(jīng)常使用的變量,而是一個(gè)確定的數(shù)值,所以答案選擇D。
9.A此題考查a--和--a之間的區(qū)別,當(dāng)while(a--)為真循環(huán)執(zhí)行,a--是執(zhí)行再減1,所以答案選擇A。
10.A運(yùn)算符邏輯非“!”和“==”,邏輯非“!”的優(yōu)先級(jí)高于“==”,選項(xiàng)A等價(jià)于“(!a)==0”。如果a不等于0,則表達(dá)式為真,否則表達(dá)式為假。故本題答案為A選項(xiàng)。
11.Aif條件為真,執(zhí)行“x=y;”,此時(shí)x=11,y=11,z=12;再執(zhí)行“y=z;z=x;”,此時(shí)y=12,z=11,即x=11,y=12,z=11。故本題答案為A選項(xiàng)。
12.D
13.C當(dāng)if執(zhí)行到第一個(gè)滿(mǎn)足(i*i>=20)(i*i<=100)這個(gè)條件的i出現(xiàn)時(shí),通過(guò)break語(yǔ)句跳出循環(huán),執(zhí)行下面的prinlf語(yǔ)句。
14.D關(guān)系R與s經(jīng)交運(yùn)算后所得到的關(guān)系是由那些既在R內(nèi)又在S內(nèi)的共有元組組成的,記為RnS。
15.A
16.A循環(huán)的作用是求行下標(biāo)從1到2列下標(biāo)從0到i的元素之和,即s=a[1][0]+a[1][1]+a[2][0]+a[2][1]+a[2][2]=3+4+5+6+0=18。
17.A程序定義一個(gè)二維字符數(shù)組v,使用5個(gè)字符串對(duì)其初始化。對(duì)于表達(dá)式“*v”等價(jià)于“*(v+0)”,輸出的是數(shù)組v的第1個(gè)元素efg;“**(v+3)”等價(jià)于“*(*(v+3)+0)”,輸出的是數(shù)組v的第4個(gè)元素的第1個(gè)字符h;“v[4]”表示數(shù)組v的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 新疆維吾爾自治區(qū)普通高考適應(yīng)性檢測(cè)分學(xué)科第二次模擬檢測(cè)語(yǔ)文試題【含答案詳解】
- 2026年劇本殺運(yùn)營(yíng)公司企業(yè)發(fā)展戰(zhàn)略規(guī)劃管理制度
- (一模)揚(yáng)州市2026屆高三模擬調(diào)研測(cè)試政治試卷(含答案解析)
- 北京市昌平區(qū)2025-2026學(xué)年高一上學(xué)期期末語(yǔ)文試卷(含答案)
- 2025 小學(xué)五年級(jí)道德與法治法律知識(shí)生活化應(yīng)用課件
- 2026年及未來(lái)5年中國(guó)海岸帶修復(fù)行業(yè)市場(chǎng)深度研究及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 企業(yè)服務(wù)類(lèi)采購(gòu)制度
- 機(jī)器人關(guān)節(jié)伺服驅(qū)動(dòng)技術(shù)
- 兩票三制獎(jiǎng)罰制度
- 中國(guó)司法大數(shù)據(jù)研究院2026年招聘?jìng)淇碱}庫(kù)及1套參考答案詳解
- 2026年教育平臺(tái)資源輸出協(xié)議
- 【《四旋翼飛行器坐標(biāo)系及相互轉(zhuǎn)換關(guān)系分析綜述》1000字】
- 廣東深圳市鹽田高級(jí)中學(xué)2024~2025學(xué)年高一上冊(cè)1月期末考試化學(xué)試題 附答案
- 人力資源部2025年度工作總結(jié)與2026年度戰(zhàn)略規(guī)劃
- 2025年安徽理工大學(xué)馬克思主義基本原理概論期末考試參考題庫(kù)
- 機(jī)械工程師職稱(chēng)評(píng)定技術(shù)報(bào)告模板
- 檔案移交數(shù)字化建設(shè)規(guī)劃
- 孤獨(dú)癥個(gè)案護(hù)理
- 建筑施工風(fēng)險(xiǎn)辨識(shí)與防范措施
- 高職汽車(chē)維修專(zhuān)業(yè)培訓(xùn)教材
- 2026年中級(jí)注冊(cè)安全工程師之安全生產(chǎn)法及相關(guān)法律知識(shí)考試題庫(kù)500道含答案ab卷
評(píng)論
0/150
提交評(píng)論