![2021年山東省萊蕪市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)_第1頁](http://file4.renrendoc.com/view/a532d3a049eb0bafbb580dbb6cf3e39b/a532d3a049eb0bafbb580dbb6cf3e39b1.gif)
![2021年山東省萊蕪市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)_第2頁](http://file4.renrendoc.com/view/a532d3a049eb0bafbb580dbb6cf3e39b/a532d3a049eb0bafbb580dbb6cf3e39b2.gif)
![2021年山東省萊蕪市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)_第3頁](http://file4.renrendoc.com/view/a532d3a049eb0bafbb580dbb6cf3e39b/a532d3a049eb0bafbb580dbb6cf3e39b3.gif)
![2021年山東省萊蕪市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)_第4頁](http://file4.renrendoc.com/view/a532d3a049eb0bafbb580dbb6cf3e39b/a532d3a049eb0bafbb580dbb6cf3e39b4.gif)
![2021年山東省萊蕪市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)_第5頁](http://file4.renrendoc.com/view/a532d3a049eb0bafbb580dbb6cf3e39b/a532d3a049eb0bafbb580dbb6cf3e39b5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2021年山東省萊蕪市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)測試卷一(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列敘述中,不符合良好程序設(shè)計(jì)風(fēng)格的是()。
A.程序的效率第一,清晰第二B.程序的可讀性好C.程序中有必要的注釋D.輸人數(shù)據(jù)前要有提示信息
2.若有定義“intx=10;”,則表達(dá)式“x-=x+x”的值為()。
A.0B.-20C.-10D.10
3.隊(duì)列的“先進(jìn)先出”特性是指()。
A.最早插入隊(duì)列中的元素總是最后被刪除
B.當(dāng)同時(shí)進(jìn)行插入、刪除操作時(shí),總是插入操作優(yōu)先
C.每當(dāng)有刪除操作時(shí),總是要先做一次插入操作
D.每次從隊(duì)列中刪除的總是最早插入的元素
4.若在以下定義和賦值語句,則才s數(shù)組的第i行第j列(假設(shè)i,j已正確說明并賦值)元素地址的合法引用為ints[2][3]={0},(*p)[3];p=s;
A.*(*(p+i)+j)B.*(p[i]+j)C.(p+i)+jD.(*(p+i))[j]
5.用樹形結(jié)構(gòu)表示實(shí)體之間聯(lián)系的模型的是
A.關(guān)系模型B.網(wǎng)狀模型C.層次模型D.以上三個都是
6.下列敘述中正確的是()。
A.在賦值表達(dá)式中,賦值號的左邊既可以是變量,也可以是任意表達(dá)式
B.實(shí)型變量中允許存放整型數(shù)
C.若a和b類型相同,在執(zhí)行賦值a=b后,b中的值將放入a中,但b中的值不變
D.在C程序中,求余算符“%”兩邊的類型相同時(shí)才能進(jìn)行運(yùn)算
7.
若輸入“abcdef”“abdef”,下述程序的輸出結(jié)果為()。
#include<stdio.h>
#include<string.h>
main
{intn;
chars1[20],s2[20],*p1,*p2;
scanf("%s",s1);
scanf("%S",s2);
p1=s1;
p2=s2;
n=strcmp(p1,p2);
printf("Vood\n",n);
}
A.-1B.0C."abcdef"D."abdef"
8.下列敘述中正確的是()。
A.當(dāng)對文件的讀(寫)操作完成之后,必須將它關(guān)閉,否則可能導(dǎo)致數(shù)據(jù)丟失
B.打開一個已存在的文件并進(jìn)行寫操作后,原有文件中的全部數(shù)據(jù)必定被覆蓋
C.在一個程序中對文件進(jìn)行寫操作后,必須先關(guān)閉該文件然后再打開才能讀到第1個數(shù)據(jù)
D.C語言中的文件是流式文件,因此只能順序存取數(shù)據(jù)
9.有以下程序:#include<stdio.h>voidfun(char*C,intd){*c=*c+1,d=d+1;printf(%"c%,c",*c,d);}main(){charb=aa=A;fun(&b,a);printf(%"c,%c\n",b,a);)程序運(yùn)行后的輸出結(jié)果是()。A.b,B,b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B
10.若變量已正確定義并賦初值,以下合法的賦值語句是()。
A.k=(m==n);B.k=-m-nC.k=int(m+n);D.k=m*n=1;
11.若在線性表中采用折半查找法查找元素,該線性表應(yīng)該()A.元素按值有序B.構(gòu)采用順序存儲結(jié)C.元素按值有序且采用順序存儲結(jié)構(gòu)D.元素按值有序且采用鏈?zhǔn)酱鎯Y(jié)構(gòu)
12.有以下程序:main{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,12,},{13,14,15,16}},i,j;for(i=0;i<4;i++){for(j=0;j<i;j++)printf("%4c",);for(j=________;J<4;j++)printf("%4d",num[i][j]);printf("\n");}}若要按以下形式輸出數(shù)組右上半三角1234678111216則在程序下劃線處應(yīng)填入的是()。A.i-1B.iC.i+1D.4一i
13.有以下程序:
程序執(zhí)行后的輸出結(jié)果是()。
A.45B.50C.60D.55
14.有以下程序函數(shù)fun只對下標(biāo)為偶數(shù)的元素進(jìn)行操作.:
程序運(yùn)行后的輸出結(jié)果是()。A.A.7,2,5,4,3,6,1,
B.1,6,3,4,5,2,7,
C.7,6,5,4,3,2,1,
D.1,7,3,5,6,2,1,
15.順序查找法適合于存儲結(jié)構(gòu)為()的線性表。
A.散列存儲B.順序存儲或鏈?zhǔn)酱鎯.壓縮存儲D.索引存儲
16.設(shè)有兩個串p和q,求q在p中首次出現(xiàn)的位置的運(yùn)算稱為()。
A.連接B.模式匹配C.求子串D.求串長
17.
18.用二分法查找長度為10的、排好序的線性表,查找不成功時(shí),最多需要比較多少次?()
A.3B.4C.5D.6
19.以下函數(shù)的功能是()intfun(char*A){char*b=a;while(*B)b++;{returnb-a;}}
A.比較兩個字符串的大小B.字符串的復(fù)制C.計(jì)算字符串的長度D.字符串的連接
20.在軟件設(shè)計(jì)中不使用的工具是()。
A.系統(tǒng)結(jié)構(gòu)圖B.程序流程圖C.PAD圖D.數(shù)據(jù)流圖(DFD圖)
二、2.填空題(20題)21.若給fun函數(shù)的形參s傳送字符串“∪∪6354'abc"(其中∪表示空格字符),則函數(shù)的返回值是【】。
longfun(chars[])
{longn;intsign;
for(;isspace(*s);s++);
sign=(*s=='-')?-1:1;
if(*s=='+'||*s=='-')s++;
for(n=0;isdigit(*s);s++)
n=10*n+(*s-'0');
returnsign*n;
}
22.下列程序的輸出結(jié)果是______。
#defineP(A)printf("%d,",(int)(A))
#definePRINT(A)P(A);printf("theend")
main()
{inti,a=0;
for(i=1;i<5.i++)
PRINT(a+i);
printf("\n");
}
23.在長度為n的有序線性表中進(jìn)行二分查找。最壞的情況下,需要的比較次數(shù)為【】。
24.以下程序的輸出結(jié)果是()。#definePR(ar)printf("ar=%d”,ar)main(){intj,a[]={1,8,3,7,6,13,17,15},*p=a+5;for(j=3;j;j--)switch(j){case1:case2:PR(*p++);break;case3:PR(*(--p));}}
25.設(shè)有下面的程序段:chars[]="china";char*p;p=S;則下列敘述正確的是
26.【】是一種信息隱蔽技術(shù),目的在于將對象的使用者和對象的設(shè)計(jì)者分開。
27.常用的黑箱測試有等價(jià)類劃分法、【】和錯誤推測法3種。
28.某二叉樹中度為2的結(jié)點(diǎn)有n個,則該二叉樹中有【】個葉子結(jié)點(diǎn)。
29.下列程序的運(yùn)行結(jié)果是______。
#definePOWER(x)((x)*(x))
main()
{inti=1;
printf("%d,%d",POWER(i++),i);
}
30.當(dāng)先后輸入1、3、4、12、23時(shí),屏幕上出現(xiàn)【】;再輸入12時(shí),則屏幕上出現(xiàn)【】。
#include<stdio.h>
#defineN5
main()
{inti,j,number,top,bott,min,loca,a[N],flag;
charc;
printf("Pleaseinput5numbers(a[i]>a[i-1])\n");
scanf("%d",&a[0]);
i=1;
while(i<N)
{scanf("%d",&a[i]);
if(a[i]>=a[i-1))i++;
}
printf("\n");
for(i=0;i<N;i++)printf("%d",a[i]);
printf("\n");
flag=1;
while(flag)
{scanf("%d",&number);
loca=0;
top=0;
bott=N-1;
if((number<a[0])||(number>a[N-1]))loca=-1;
while((loca==0)&&(top<=bott))
{min=(bott+top)/2;
if(number==a[min])
{loca=min;
printf("%disthe%dthnumber\n",number,loca+1);
}
elseif(number<a[min])bott=min-1;
elsetop=min+1;
}
if(loca==0||loca==-1)printf("%disnotinthelist.\n",number);
c=getchar();
if(c=='N'||c=='n')flag=0;
}
}
31.以下程序的運(yùn)行結(jié)果是______。
#include<stdio.h>
longfib(intg)
{switch(g)
{case0:return0;
case1:
case2:return1;}
return(fib(g-1)+fib(g-2));}
main()
{longk;
k=fib(5);
printf("k=%51d\n",k);}
32.下列語句能循環(huán)______次。
ints=12;
while(s);
--s;
33.數(shù)據(jù)元素之間______的整體稱為邏輯結(jié)構(gòu)。
34.數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的【】以及對數(shù)據(jù)的操作運(yùn)算。
35.將以下程序段寫成三目運(yùn)算表達(dá)式:【】。
if(a>b)max=a;
elsemax=b;
36.以下程序?qū)蓚€數(shù)從小到大輸出。請?zhí)羁铡?/p>
{floata,b,【】;
scanf(,【】&a,&b);
if(a>b)
{t=a;
【】;
b=t;
printf("%5.2f%5.2f\n",a,b);
}
37.以下程序的輸出結(jié)果是【】。
#include<stdlib.h>
main()
{char*s1,*s2,m;
s1=s2=(char*)malloc(sizeof(char));
*s1=15;*s2=20;m=*s1+*s2;
printf("%d\n",m);
}
38.數(shù)據(jù)模型按不同應(yīng)用層次分成3種類型,它們是概念數(shù)據(jù)模型、【】和物理數(shù)據(jù)模型。
39.若有下列定義和語句:
char*s1="12345",*s2="1234";
printf("%d\n",strlen(strcpy(s1,s2)));
則輸出結(jié)果為______。
40.函數(shù)my_cmp()的功能是比較字符串s和t的大小,當(dāng)s等于t時(shí)返回0,否則返回s和t的第一個不同字符的ASCII碼差值,即s>t時(shí)返回正值,s<t時(shí)返回負(fù)值。請?zhí)羁铡?/p>
My_cmp(char*s,char*t)
{while(*s==*t)
{if(*s==′\0)return0;
++s;++t;
}return【】;
}
三、1.選擇題(20題)41.對于下述說明,不能使變量p->b的值增1的表達(dá)式是______。structexm{inta;intb;floatc}*p;
A.++p->bB.++(p++)->bC.p->b++D.(++p)->b++
42.有如下程序main(){inti,sum;for(i=1;i<=3;sum++)sum+=i;printf("%d\n",sum);}該程序的執(zhí)行結(jié)果是______。
A.6B.3C.死循環(huán)D.0
43.有以下程序:inta=4;intf(intn){intt=0;staticinta=5;if(n%2){inta=6;t+=a++;}else{inta;7;t+=a++;}returnt+a++;}main(){ints=a,i=0;for(;i<2;i++)s+=f(i);printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是______。
A.24B.28C.32D.36
44.下列工具中為需求分析常用工具的是()。
A.PADB.PFDC.N—SD.DFD
45.有以下程序:#include<stdio.h>#include<string.h>main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}程序運(yùn)行后的輸出結(jié)果是()。
A.22B.76C.72D.62
46.以下程序的輸出結(jié)果是______。main(){inti,a[10];for(i=9;i>=0;i-)a[i]=10-i;printf("%d%d%d",a[a],a[5],a[8]);}
A.258B.741C.852D.369
47.下列不屬于軟件工程的3個要素的是______。
A.工具B.過程C.方法D.環(huán)境
48.下列程序的輸出結(jié)果是______。main(){intx=0,a=0,b=2;if(x=a+b)printf("****\n");elseprintf("####\n");}
A.有語法錯,不能通過編譯B.通過編譯,但不能連接C.****D.####
49.下列程序的輸出結(jié)果為main(){unionu{char*name;intage;intincome;}="WANGLIONG";s.age=28;s.income=1000;printf("%d\n",s.age);}
A.28B.1000C.0D.不確定
50.若變量已正確定義,有以下程序段:i=0;doprintf("%d,",i);while(i++);printf("%d\n",i);其輸出結(jié)果是()。
A.0,0B.0,1C.1,1D.程序進(jìn)入無限循環(huán)
51.設(shè)p1和p2是指向同一個int型一維數(shù)組的指針變量,k為int型變量,則不能正確執(zhí)行的語句是______。
A.k=*p1+*p2;B.p2=k;C.p1=p2;D.k=*p1*(*p2);
52.以下程序的輸出結(jié)果是______。main(){chara[10]={'1','2','3','4','5','6','7','8','9'},*p;inti;i=8;p=a+i;printf("%s\n",p-2);}
A.6B.789C.'6'D.6789
53.以下四個選項(xiàng),不能看作一條語句的是()。
A.{;}B.a=0,b=0,c=0;C.if(a>0);D.if(b==0)m=1;n=2;
54.下面程序段的輸出結(jié)果是______。char*s="abcde";s+=2;printf("%d",s);
A.cdeB.字符'c'C.字符'c'的地址D.無確定的輸出結(jié)果
55.下列敘述中,正確的是
A.用E-R圖能夠表示實(shí)體集間一對一的聯(lián)系、一對多的聯(lián)系和多對多的聯(lián)系
B.用E-R圖只能表示實(shí)體集之間一對一的聯(lián)系
C.用E-R圖只能表示實(shí)體集之間一對多的聯(lián)系
D.用E-R圖表示的概念數(shù)據(jù)模型只能轉(zhuǎn)換為關(guān)系數(shù)據(jù)模型
56.已知數(shù)據(jù)表A中每個元素距其最終位置不遠(yuǎn),為節(jié)省時(shí)間,應(yīng)采用的算法是A.A.堆排序B.直接插入排序C.快速排序D.B和C
57.已定義c為字符型變量,則下列語句中正確是______。
A.c='97';B.c="97";C.c=97;D.c="a";
58.若有定義:intx=0,*p=&x;則語句printf("%d\n",*p);的輸出結(jié)果是()。
A.隨機(jī)值B.0C.x的地址D.p的地址
59.以下有4組用戶標(biāo)識符,其中合法的一組是______。
A.FOR
B.4d
C.f2G3
D.WORD-subDOIFvoidCaseSizeabcdefine
60.下列描述中正確的是()。
A.軟件工程只是解決軟件項(xiàng)目的管理問題
B.軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問題
C.軟件工程的主要思想是強(qiáng)調(diào)在軟件開發(fā)過程中需要應(yīng)用工程化原則
D.軟件工程只是解決軟件開發(fā)中的技術(shù)問題
四、選擇題(20題)61.以下關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)的敘述中正確的是()。
A.一個結(jié)構(gòu)化程序必須同時(shí)由順序、分支、循環(huán)三種結(jié)構(gòu)組成
B.結(jié)構(gòu)化程序使用goto語句會很便捷
C.在C語言中,程序的模塊化是利用函數(shù)實(shí)現(xiàn)的
D.由三種基本結(jié)構(gòu)構(gòu)成的程序只能解決小規(guī)模的問題
62.下面敘述正確的是_______。
A.算法的執(zhí)行效率與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)
B.算法的空間復(fù)雜度是指算法程序中指令(或語句)的條數(shù)
C.算法的有窮性是指算法必須能在執(zhí)行有限個步驟之后終止
D.算法的時(shí)間復(fù)雜度是指執(zhí)行算法程序所需要的時(shí)間
63.以下程序中函數(shù)sCmp的功能是返回形參指針sl和s2所指字符串中較小字符串的首地址。
若運(yùn)行時(shí)依次輸入:abCd、abba和abC三個字符串,則輸出結(jié)果是()。
A.abCdB.abbaC.abCD.abCa
64.有以下程序
#include<stdio.h>
intfun(int(*s)[4],intn,intk)
{intm,i;
m=s[0][k];
for(i=l;i<n;i++)
if(s[i][k]>m)m=s[i][k];
returnm;
}
main()
{inta[4][4]={{1,2,3,4},{11,12,13,14},{2l,22,23,24},{31,32,33,34}};
printf("%d\n",fun(a,4,0));
}
程序的運(yùn)行結(jié)果是
A.4B.34
C.31D.32
65.已知字符‘A’的ASCII代碼值是65,字符變量cl的值是‘A’,c2的值是‘D’。則執(zhí)行語句printf(”%d,%d”,cl,c2—2);的輸出結(jié)果是()。
A.65,68B.A,68C.A,BD.65,66
66.人員基本信息一般包括:身份證號,姓名,性別,年齡等。其中可以作為主關(guān)鍵字的是()。
A.身份證號B.姓名C.性別D.年齡
67.以下敘述中正確的是______。A.預(yù)處理命令行必須位于源文件的開頭
B.在源文件的一行上可以有多條預(yù)處理命令
C.宏名必須用大寫字母表示
D.宏替換不占用程序的運(yùn)行時(shí)間
68.
69.
70.有以下程序:
程序的運(yùn)行結(jié)果是()。
A.1B.2C.3D.4
71.有以下程序:
#include<stdio.h>
inta=1,b=2:
voidfunl(inta,intb)
{printf("%d%d",a,b);}
voidfun2()
{a=3;b=4;}
main()
{funl(5,6);fun2();
printf("%d%d\n",a,b);
}
程序運(yùn)行后的輸出結(jié)果是()。
A.1256
B.5634
C.5612
D.3456
72.若intk=8;則執(zhí)行下列程序后,變量k的正確結(jié)果是
main()
{intk=8;
switch(k)
{case9:k+=1;
case10:k+=1;
default:k+=1;
case11:k+=1;break;
}
printf("%d\n",k);
}
A.12B.1
C.10D.9
73.算法的空間復(fù)雜度是指()。
A.算法程序的長度B.算法程序中的指令條數(shù)C.算法程序所占的存儲空間D.算法執(zhí)行過程中所需要的存儲空間
74.已知大寫字母A的ASCII碼是65,小寫字母a的ACSII碼是97。下列能將變量C中的大寫字母轉(zhuǎn)換為對應(yīng)小寫字母的語句是()。
A.c=(c-'A')%26+'A'B.c=c+32C.c=c-'A'+'A'D.c=('A'+C)%26-'a'
75.設(shè)有如圖所示二叉樹,對此二叉樹后序遍歷的結(jié)果為()。
A.ZBTYCPXAB.ATBZXCYPC.TZBACYXPD.ATBZXCPY
76.
77.交換兩個變量的值,不允許用臨時(shí)變量,應(yīng)該使用下列()位運(yùn)算符。A.A.&B.^C.||D.~
78.有下列程序:intfun(intx[],intn){staticintsum=0,i;for(i=0;i<n;i++)sum+=x[i]:returnsum;}main(){inta[3]={1,2,3,4,5),b[3]={6,7,8,9),s=0;s=fun(a,5)+fun(b,4);printf(“%d\n”,s);}程序執(zhí)行后的輸出結(jié)果是()。A.45B.50C.60D.55
79.結(jié)構(gòu)化程序設(shè)計(jì)的主要特征是()。
A)封裝和數(shù)據(jù)隱藏B)集成和重用
C)數(shù)據(jù)和處理數(shù)據(jù)的過程分離D)把數(shù)據(jù)和處理數(shù)據(jù)的過程看成一個整體
80.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.4B.10C.14D.6
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:讀入一個字符串(長度<20),將該字符串中的所有字符按ASCII碼升序排序后輸出。例如,輸入opdye,則應(yīng)輸出deopy。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:#include<string.h>#include<stdlib.h>#include<conio.h>#include<stdio.h>//****found****intproc(charstr[]){charc;unsignedi,j;for(i=0;i<strlen(str)-1;i++)for(j=i+1;j<strlen(str);j++)if(str[i]>str[j]){c=str[j]://****found****str[j]=str[i++];str[i]=c;}}voidmain{charstr[81];system("CLS");printf("\nPleaseenteracharacterstring:");gets(str);printf("\n\nBeforesorting:\n%s",str);proc(str);printf("\nAftersortingdecendingly:\n%s",str);}
六、程序設(shè)計(jì)題(1題)82.編寫函數(shù)fun,其功能是:實(shí)現(xiàn)兩個字符串的連接(不要使用庫函數(shù)strcat),即把p2所指的字符串連接到pl所指的字符串的后面。
例如,分別輸人下面兩個字符串:FirstString——SecondString
程序運(yùn)行后的輸出結(jié)果是:FirstString————SecondString
注意:部分源程序在文件PROGl.C中。
請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。
參考答案
1.A一般來講,程序設(shè)計(jì)風(fēng)格首先應(yīng)該簡單和清晰,其次程序必須是可以理解的,可以概括為“清晰第一,效率第二”。
2.C算術(shù)運(yùn)算符“+”的優(yōu)先級高于,且“-=”的結(jié)合方向?yàn)樽杂蚁蜃蟆K员磉_(dá)式“x-=x+x”可以表示成“x=x-(x+x)=10-(10+10)=-10”。故本題答案為C選項(xiàng)。
3.D
4.A解析:p+i是數(shù)組s的第i+1行的首地址,而*(p+i)則是數(shù)組第i+1行第1列的元素的地址,*(p+i)+j則是第i+1行的第j+1列的地址,*(*(p+i)+j)引用的是數(shù)組元素s[i][j]的值。注意:通過建立一個指針數(shù)組來引用二維數(shù)組元素。
5.C解析:在數(shù)據(jù)庫系統(tǒng)中,由于采用的數(shù)據(jù)模型不同,相應(yīng)的數(shù)據(jù)庫管理系統(tǒng)(DBMS)也不同。目前常用的數(shù)據(jù)模型有三種:層次模型、網(wǎng)狀模型和關(guān)系模型。在層次模型中,實(shí)體之間的聯(lián)系是用樹結(jié)構(gòu)來表示的,其中實(shí)體集(記錄型)是樹中的結(jié)點(diǎn),而樹中各結(jié)點(diǎn)之間的連線表示它們之間的關(guān)系。因此,本題的正確答案是C。
6.D選項(xiàng)A,在賦值表達(dá)式中,賦值號的左邊只能是變量或者是代表某個存儲單元的表達(dá)式,不能是任意表達(dá)式,右邊也不得出現(xiàn)表達(dá)式;選項(xiàng)8中,整型變量中只能存放整型數(shù),但實(shí)型變量中能存放實(shí)型數(shù),也能存放整型數(shù);選項(xiàng)C,表達(dá)式a=b的意思是把變量b的值賦給變量a,從而覆蓋a中原來值;選項(xiàng)D,要求取余運(yùn)算符"%"兩邊的類型均為整型。
7.D
\n本題考查字符串比較函數(shù)strcmp(s1,s2),若s1>s2,則返回1;若s1=s2,則返回0;若s1<s2,則返回-1。字符串依次比較的是它們字符的ASCIl碼值。
\n
8.AB選項(xiàng)中,打開一個已存在的文件并進(jìn)行寫操作后,原有文件中的全部數(shù)據(jù)不一定被覆蓋,也可以對源文件進(jìn)行追加操作等。C選項(xiàng)中,在一個程序中對文件進(jìn)行寫操作后,不是先關(guān)閉該文件然后再打開才能讀到第1個數(shù)據(jù),用fseek函數(shù)進(jìn)行重新定位即可。D選項(xiàng)中,C語言中的文件可以進(jìn)行隨機(jī)讀寫。故本題答案為A選項(xiàng)。
9.A本題考查了函數(shù)的調(diào)用。首先主函數(shù)定義了兩個字符型數(shù)據(jù)b和a,給b賦值為字母a.a(chǎn)賦值為字母A,調(diào)用fun(&.b,a)函數(shù),*C=*c十1,a的ASCIl碼值加1后為b,A的ASCIl碼值加1后為B。輸出第一組值,排除C、D選項(xiàng)。B選項(xiàng)的值此時(shí)為小b,排除B選項(xiàng),所以本題答案為A。
10.A變量m、n的數(shù)據(jù)類型未知,但題目中已定義并賦初值。選項(xiàng)B的語句缺少分號結(jié)尾。選項(xiàng)C,強(qiáng)制轉(zhuǎn)化使用錯誤。選項(xiàng)D的“m*n”只能用作表達(dá)式的右值,不能作為左值。故本題答案為A選項(xiàng)。
11.C
12.B本題中要求輸出右上半角的數(shù),對角線上的數(shù)的下標(biāo)相同,所以j=i。
13.C內(nèi)部靜態(tài)變量是始終存在的,當(dāng)函數(shù)被調(diào)用退出后,內(nèi)部靜態(tài)變量會保存數(shù)據(jù),再次調(diào)用該函數(shù)時(shí),以前調(diào)用時(shí)的數(shù)值仍然保留著。Fun(a,5)的值是l5,再次調(diào)用后slim=15,所以Fun(b,4)=45,s=45+15=60。
14.A由函數(shù)fun(int*a,intn)中語句if(a[j]>a[k])k=j;可知當(dāng)前k是記錄數(shù)組中較大數(shù)據(jù)值所在位置的下標(biāo)變量,所以該函數(shù)的作用是對數(shù)組a中的下標(biāo)為偶數(shù)位置的數(shù)據(jù)進(jìn)行從大到小的排序,即對a[0],a[2],a[4],a[6]中的數(shù)據(jù)1,3,5,7進(jìn)行從大到小的排序,其他位置的數(shù)據(jù)不變,所以答案為A)。
15.B
16.B
17.A
18.B
19.C
20.D【答案】:D
【知識點(diǎn)】:軟件設(shè)計(jì)中使用的工具
【解析】:數(shù)據(jù)流圖是結(jié)構(gòu)化分析方法中使用的工具,它以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動和處理的過程,由于它只反映系統(tǒng)必須完成的邏輯功能,所以它是一種功能模型,是在可行性研究階段用到的。PAD圖是問題分析圖(ProblemAnalysisDiagram)的英文縮寫,是在詳細(xì)設(shè)計(jì)階段用到的。系統(tǒng)結(jié)構(gòu)圖是對軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計(jì)的圖形顯示,是在概要設(shè)計(jì)階段用到的。程序流程圖是對程序流程的圖形表示,故選D。
21.63546354解析:函數(shù)fun的第一個for循環(huán)跳過字符串的前導(dǎo)空白符,接著判斷第一個非空白符是否是負(fù)號,若是,則置變量sign為-1;否則,置變量sign為1。接著的if語句在第一個非空白字符是負(fù)號或正號時(shí),跳過該字符。以后的for循環(huán)將后面的數(shù)字符當(dāng)作十進(jìn)制數(shù)的各位數(shù)字轉(zhuǎn)換為一個長整數(shù)n,當(dāng)遇字符a時(shí),結(jié)束循環(huán)。最后,函數(shù)返回sign與n的乘積。所以若調(diào)用函數(shù)時(shí)提供的實(shí)參是“∪∪6354abc”,則函數(shù)的返回值是6354。
22.1234theend1,2,3,4,theend解析:本題考查帶參數(shù)的宏的定義。第1次循環(huán),i=1時(shí),調(diào)用PRINT(1),P(1)輸出1;第2次循環(huán),i=2時(shí),調(diào)用PRINT(2),P(2)輸出2:第3次循環(huán),i=3時(shí),調(diào)用PRINT(3),P(3)輸出3:第4次循環(huán),i=4時(shí),調(diào)用PRINT(4),P(4)輸出4,theend。
23.log2n
24.ar=6ar=6ar=13ar=6ar=6ar=13解析:通過*p=a+5將指針P指向a[5],第1次循環(huán),i=3時(shí),switch(3),執(zhí)行case3,*(-p)-a[4]=6,所以輸出ar=6;第2次循環(huán),j=2時(shí),switch(2),執(zhí)行case2,(*p++)是先引用a[4]的值6,輸出ar=6,再將指針P移位指向a[5];第3次循環(huán),j=1時(shí),switch(1),執(zhí)行case1,case1后沒有break語句,接著執(zhí)行case2,(*p++)是先引用a[5]的值13,輸出ar=13,再將指針P移位指向a[6]。
25.D
26.封裝封裝解析:面向?qū)ο蠹夹g(shù)中包括以下幾個基本概念,即對象、類、方法、消息、繼承和封裝,其中封裝是一種信息隱蔽技術(shù),目的在于將對象的使用者對象的和設(shè)計(jì)者分開。
27.邊界值分析法邊界值分析法解析:黑箱測試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測試用例。常用的黑箱測試有等價(jià)類劃分、邊界值分析法和錯誤推測法3種。
28.n+1n+1解析:在任意一棵二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為0的結(jié)點(diǎn)多一個。
29.111,1解析:POWER(i++)中先引用i的值1,再將i的值加1,POWER(i++)=1*1=1。
30.134122312isthe4thnumber.
31.k=5k=5解析:本題主要考查了函數(shù)的遞歸調(diào)用方法。g=0或g=1或g=2是遞歸的終止條件,然后用回代的方法從一個已知值推出下一個值,直到計(jì)算出最終結(jié)果。
32.無限無限解析:分析程序“while(s)”語句后面有一個“;”不能執(zhí)行后面的語句,只是執(zhí)行空語句,所以s=12保持不變,因此,沒有條件限制的能循環(huán)無限次(即死循環(huán))。
33.邏輯關(guān)系邏輯關(guān)系
34.存儲結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)包括3個方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的存儲結(jié)構(gòu)及對數(shù)據(jù)的操作運(yùn)算。
35.max=(a>b)?a:bmax=(a>b)?a:b解析:本題考查三目運(yùn)算符的用法,條件表達(dá)式的一般形式為:
表達(dá)式1?表達(dá)式2:表達(dá)式3
所以,本題可以寫成(a>b)?a:b,它是一個條件表達(dá)式,執(zhí)行順序是:如果條件(a>b)為真,則條件表達(dá)式取值a,否則取值b。
36.t"%f%f"a=b
37.4040解析:本題中指針s1和s2都指向同一個內(nèi)存中的地址。因此語句“*s2=20;”執(zhí)行后,*\u3000s1=*s2=20。所以m最后的值為40。
38.邏輯數(shù)據(jù)模型邏輯數(shù)據(jù)模型解析:數(shù)據(jù)是現(xiàn)實(shí)世界符號的抽象,而數(shù)據(jù)模型(datamodel)則是數(shù)據(jù)特征的抽象,它從抽象層次上描述了系統(tǒng)的靜態(tài)特征、動態(tài)行為和約束行為,為數(shù)據(jù)庫系統(tǒng)的信息表示與操作提供一個抽象的框架。數(shù)據(jù)模型按不同的應(yīng)用層次分成3種類型,它們是概念數(shù)據(jù)模型(conceptualdatamodel)、邏輯數(shù)據(jù)模型(logicdatamodel)、物理數(shù)據(jù)模型(physicaldatamodel)。
39.44解析:strcpy(s1,s2)函數(shù)的作用是將字符串s2中的內(nèi)容拷貝到字符串s1中的內(nèi)容覆蓋。strlen()函數(shù)是求字符串的長度。本題實(shí)際上是要求s2字符串的長度,即是4。
40.*s-*t*s-*t解析:兩字符串大小比較必須從它們的首字符開始,在對應(yīng)字符相等情況下循環(huán),直至不相等結(jié)束。相等時(shí),若字符串已到了字符串的結(jié)束標(biāo)記符,則兩字符串相同,函數(shù)返回0值;如還有后繼字符,則準(zhǔn)備比較下一對字符。對應(yīng)字符不相同,循環(huán)結(jié)束。循環(huán)結(jié)束時(shí),就以兩個當(dāng)前字符的差返回,所以在空框處應(yīng)填入*s-*t,保證在s>t時(shí),返回正值,當(dāng)s<t時(shí),返回負(fù)值。
41.D解析:p->b應(yīng)作為一個整體看待,++p->b和p->b++都使變量b增1,++(p++)->b先使b增1,再使p后移,D中表達(dá)式的含義是使p+1所指結(jié)構(gòu)體變量中的成員b的值增1。
42.C解析:在循環(huán)過程中,i的值一直沒有被改變,所以這是一個死循環(huán)。
43.B解析:在主函數(shù)main()中定義了兩個變量s和i,同時(shí)給s賦初值a=4,i賦初值0。當(dāng)i=0時(shí)。執(zhí)行“s+=f(i);”語句,調(diào)用f()并將i的初值0傳遞給形參n。首先執(zhí)行if語句中內(nèi)條件:n%2,若條件為假。則執(zhí)行else下的語句,a=7,t=7+0=7,使用return返回t,t=7+(a++)=7+5=12,此時(shí)a運(yùn)算完后自增1,變?yōu)?;返回主函數(shù)中,s=4+12=16。當(dāng)i=1時(shí),執(zhí)行“s+=f(i);”語句,調(diào)用f()并將i的初值1傳遞給形參n。首先執(zhí)行if語句中的條件:n%2,條件為真,執(zhí)行if
44.DD.【解析】需求分析常用的工具有數(shù)據(jù)流圖(DFD.、數(shù)據(jù)字典(DD.、判定樹和判定表。PAD(問題分析圖)、PFD(程序流程圖)、N—S(盒式圖)都是詳細(xì)設(shè)計(jì)的常用工具,不是需求分析的工具。
45.C解析:C語言.中以,'\\0'作為字符串的結(jié)束符,且strlen函數(shù)計(jì)算的是,'\\0',字符前的所有字符的個數(shù),故本題中strlen(a)應(yīng)為2。數(shù)組定義以后系統(tǒng)就為其分配相應(yīng)大小的內(nèi)存空間,而不論其中有沒有內(nèi)容。sizeof運(yùn)算符是計(jì)算變量或數(shù)組所分配到的內(nèi)存空間的大小,所以本題的sizeof(a)為7。
46.C解析:在本題運(yùn)行時(shí)主要注意的是當(dāng)i=9時(shí),a[i]=10-9=1;i=8時(shí),a[i]=10-8=2;i=7時(shí),a[i]=10-7=3;……依此類推,直到i=0時(shí),a[i]=10-0=10;此時(shí),i的值已變?yōu)?1,判斷for的循環(huán)條件,不成立,然后輸出a[2],a[5],a[8]分別為8,5,2。
47.D解析:本題考查了軟件工程的基本概念。軟件工程包括3個要素,即方法、工具和過程。方法是完成軟件工程項(xiàng)目的技術(shù)手段;工具支持軟件的開發(fā)、管理和文檔生成;過程支持軟件開發(fā)的各個環(huán)節(jié)的控制和管理。
48.C解析:if語句中的條件表達(dá)式是賦值表達(dá)式,a+b值為2,賦給x,x值非0,輸出****。
49.B解析:本題對共用體的使用進(jìn)行了考查。由于共用體所有成員共同占據(jù)一段存儲空間,所以對成員變量的賦值,后面的賦值會覆蓋掉前面的賦值,因?yàn)閟.income=1000;是最后一次成員變量賦值,變量age與變量income共同占據(jù)一段存儲空間,所以age的值也為1000。
50.B解析:對于do…while循環(huán),程序先執(zhí)行一次循環(huán)體,再判斷循環(huán)是否繼續(xù)。本題先輸出一次i的值“0,”,再接著判斷表達(dá)式i++的值,其值為0,所以循環(huán)結(jié)束。此時(shí)變量i的值經(jīng)過自加已經(jīng)變?yōu)?,程序再次輸出i的值“1”。
51.B
52.B解析:p-2=a+8-2=a+5,則p指向a[6],則p指向7,所以輸出如B所示結(jié)果。
53.D解析:在if后面只能有一條語句,或一條復(fù)合語句,即用花括號將多條語句括起來。選項(xiàng)D)中沒有將兩條語句括起來,不能看成一條語句。
54.C解析:語句s+=2;使指針指向字符'c',此時(shí)s中保存的便是字符'c'的地址。
55.A解析:兩個實(shí)體之間的聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系,這種函數(shù)關(guān)系可以有下面幾種,即一對一的聯(lián)系、一對多(或多對一)的聯(lián)系和多對多的聯(lián)系;概念模型便于向各種模型轉(zhuǎn)換。由于概念模型不依賴于具體的數(shù)據(jù)庫管理系統(tǒng),因此,容易向關(guān)系模型、網(wǎng)狀模型和層次模型等各種模型轉(zhuǎn)換。
56.B解析:堆排序的比較次數(shù)為nlog2n;直接插入排序的比較次數(shù)為n(n-1)/2;快速排序的比較次數(shù)為nlog2n。當(dāng)數(shù)據(jù)表A中每個元素
57.C解析:\'97\'不是字符變量,選項(xiàng)A錯誤;'97'是字符串,選項(xiàng)B錯誤;'a'是字符串,選項(xiàng)D錯誤;正確答案是選項(xiàng)C。
58.B解析:本題考查的是指針的運(yùn)用。語句intx=O,*p=&x;定義7一個int型變量x并初始化為0,同時(shí)還定義了一個int型指針p指向變量x。語句ptintf('%d\\n',*p);是按十進(jìn)制整數(shù)格式輸出指針p所指向的內(nèi)容,即x的值0。故本題應(yīng)該選擇B。
59.C解析:C語言的標(biāo)識符的定義為:以字母或下劃線開頭的由字母、數(shù)字字符、下戈峨組成的字符串。而且標(biāo)識符不能與關(guān)鍵字相同。
60.C\r\n軟件工程是試圖用工程、科學(xué)和數(shù)學(xué)的原理與方法研制、維護(hù)計(jì)算機(jī)軟件的有關(guān)技術(shù)及管理方法。軟件工程的主要思想是強(qiáng)調(diào)在軟件開發(fā)工程中需要應(yīng)用工程化的原則。軟件工程用來解決以下問題:軟件需求的增長得不到滿足、軟件開發(fā)成本和進(jìn)度無法控制、軟件質(zhì)量難以保證、軟件不可維護(hù)或維護(hù)程度低、軟件得成本不斷提高、軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和應(yīng)用需求的增長。軟件項(xiàng)目的管理、軟件產(chǎn)品的生產(chǎn)率、軟件開發(fā)中的技術(shù)都是軟件工程需要解決的部分問題。因此選項(xiàng)C正確。
61.C解析:結(jié)構(gòu)化程序設(shè)計(jì)是指將待開發(fā)的軟件系統(tǒng)劃分為若干個相互獨(dú)立的模塊,與具體的語句結(jié)構(gòu)無關(guān)。Goto語句的濫用會導(dǎo)致程序的可讀性降低。三種基本結(jié)構(gòu)構(gòu)成的程序依然可以解決大規(guī)模的問題,只是不利于復(fù)用。
62.C解析:算法的設(shè)計(jì)可以避開具體的計(jì)算機(jī)程序設(shè)計(jì)語言,但算法的實(shí)現(xiàn)必須借助程序設(shè)計(jì)語言中,提供的數(shù)據(jù)類型及其算法。數(shù)據(jù)結(jié)構(gòu)和算法是計(jì)算機(jī)科學(xué)的兩個重要支柱。它們是一個不可分割的整體。算法在運(yùn)行過程中需輔助存儲空間的大小稱為算法的空間復(fù)雜度。算法的有窮性是指一個算法必須在執(zhí)行有限的步驟以后.結(jié)束。算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量,即算法執(zhí)行過程中所需要的基本運(yùn)算次數(shù)。
63.Bmain函數(shù)將輸入的三個字符串存在二維數(shù)組str中,并通過兩次streW函數(shù)調(diào)用,將最小的一個字符串復(fù)制到string中。abcd、abba、abc中最小的字符串為abba。
64.C本題考查的重點(diǎn)還是二維數(shù)組的操作。題目將二維數(shù)組與函數(shù)相結(jié)合,考查了函數(shù)對二維數(shù)組的調(diào)用。程序主體分為兩個部分:主函數(shù)main和函數(shù)fun。main函數(shù)結(jié)構(gòu)較簡單,功能很明確,首先初始化了一個二維數(shù)組,隨后將fun(a,4,0)作為printf函數(shù)的實(shí)參輸出。下面分析一下fun函數(shù)的作用,fun函數(shù)包括三個形參,其中一個形參為用指針定義的二維數(shù)組,另外兩個為整型常量n和k。在fun函數(shù)中,先定義了一個整型變量m=s[0][k],表示m為s中第1行第k+1列的數(shù)據(jù)。下面的for循環(huán)是題目的關(guān)鍵,該for循環(huán)的意義是令m為數(shù)組s中k+1列從第1行到第n行的數(shù)據(jù)中最大的數(shù)值。題目中m的初始值為a[0][0],即m=1,從第1行到第4行第1列上的數(shù)值分別為1,11,21,31。最大的數(shù)為31,令m=31,返回m,并將m作為結(jié)果輸出。
65.D打印時(shí)以%d整型格式打印輸出,所以字符標(biāo)量cl的值打印出來就是65,從c2—2的值打印出來就是68—2,即66。所以選擇D。
66.A\n主關(guān)鍵字是表中區(qū)別不同的記錄的標(biāo)識,在該表中只有身份證號能具有這個作用,所以用其作為主關(guān)鍵字。
\n
67.D本題主要考查宏的一些基本概念。通常,預(yù)處理命令位于源文件的開頭,但不一定必須位于開頭,也可以寫在函數(shù)與函數(shù)之間;由于預(yù)處理命令的末尾不加分號,不以分號來區(qū)分一條宏命令,所以,不能在一行上寫多條預(yù)處理命令,只能寫一條,否則,系統(tǒng)處理時(shí)就
溫馨提示
- 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年個人居間協(xié)議范文(2篇)
- 2025年個人貨運(yùn)汽車租賃合同模板(2篇)
- 2025年產(chǎn)品經(jīng)銷協(xié)議標(biāo)準(zhǔn)范文(2篇)
- 2025年五年級班主任期末個人工作總結(jié)模版(2篇)
- 2025年產(chǎn)品供貨合同格式范文(2篇)
- 智慧小鎮(zhèn)用地中介合同范本
- 辦公大樓石材運(yùn)送合同模板
- 2025年度安防設(shè)備展覽會現(xiàn)場展位安保合同
- 婚慶服務(wù)居間合同
- 教育設(shè)施改造貸款居間合同
- (完整)金正昆商務(wù)禮儀答案
- RB/T 101-2013能源管理體系電子信息企業(yè)認(rèn)證要求
- GB/T 4513.7-2017不定形耐火材料第7部分:預(yù)制件的測定
- GB/T 10205-2009磷酸一銨、磷酸二銨
- 公司財(cái)務(wù)制度及流程
- 深圳版初中英語單詞匯總
- 健康養(yǎng)生,快樂生活課件
- 《物流與供應(yīng)鏈管理-新商業(yè)、新鏈接、新物流》配套教學(xué)課件
- MDD指令附錄一 基本要求檢查表2013版
- 駱駝祥子1一24章批注
- 新部編人教版四年級下冊道德與法治全冊教案(教學(xué)設(shè)計(jì))
評論
0/150
提交評論