版權(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.針對(duì)簡(jiǎn)單程序設(shè)計(jì),以下敘述的實(shí)施步驟順序正確的是()。
A.確定算法和數(shù)據(jù)結(jié)構(gòu)、編碼、調(diào)試、整理文檔
B.編碼、確定算法和數(shù)據(jù)結(jié)構(gòu)、調(diào)試、整理文檔
C.整理文檔、確定算法和數(shù)據(jù)結(jié)構(gòu)、編碼、調(diào)試
D.確定算法和數(shù)據(jù)結(jié)構(gòu)、調(diào)試、編碼、整理文檔
2.有以下程序:#include<stdio.h>main(){inta=0,b=0,c=0;c=(a=a=5);(a=b,b+=4);printf("%d,%d,%d\n",a,bc);}程序運(yùn)行后的輸出結(jié)果是()。A.0,4,5B.4,4,5C.4,4,4D.0,0,0
3.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。
A.654321
B.65432
C.65453452
D.654534521
4.設(shè)線(xiàn)性鏈表中結(jié)點(diǎn)的結(jié)構(gòu)為(data,next)。若想刪除結(jié)點(diǎn)p的直接后繼,則應(yīng)執(zhí)行下列()操作。
A.p->next=p->next->next;
B.p=p->nextp->next=p->next->next;
C.p->next=p->next;
D.p=p->next->next;
5.有以下程序main(){intp[7]={11,13,14,15,16,17,18},i=0,k=0;while(i<7&&p[i]%2){k=k+p[i];i++;}printf("%d\n",k);}執(zhí)行后輸出結(jié)果是
A.58B.56C.45D.24
6.下列程序的運(yùn)行結(jié)果為()。#include<stdio.h>main{structdate{intyear,month,day;}today;printf("%d\n",sizeof(structdate));}A.8B.6C.10D.12
7.若要說(shuō)明一個(gè)類(lèi)型名STP,使得定義語(yǔ)句STPs;等價(jià)于Char*s;,以下選項(xiàng)中正確的是()。
A.typedefChar*s;
B.typedefChar*STP;
C.typedefSTP*Char;
D.typedef*CharSTP;
8.以下敘述中錯(cuò)誤的是()
A.在C程序中,APH和aph是兩個(gè)不同的變量
B.C程序中的變量,代表內(nèi)存中的一個(gè)存儲(chǔ)單元,它的值可以根據(jù)需要隨時(shí)修改
C.在C程序中,無(wú)論是整數(shù)還是實(shí)數(shù),都能準(zhǔn)確無(wú)誤地表示
D.在C程序中,一個(gè)正整數(shù)可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制的形式來(lái)表示
9.帶頭結(jié)點(diǎn)的雙向循環(huán)鏈表L為空的條件是()。
A.L==NULLB.L->next==NULLC.L->prior==NULLD.L->next==L
10.下列程序的輸出結(jié)果是()。main{inti=1,j=2,k=3;if(i++==1&&(++j==3==||k++==3))printf("%d%d%d\n",i,j,k);}A.123B.234C.223D.233
11.有以下程序:程序運(yùn)行后的輸出結(jié)果是()。A.20B.13C.10D.31
12.下列選項(xiàng)中非法的字符常量是()。
A.'\t'B.'\039'C.','D.'\n'
13.以下選項(xiàng)中,非法的字符常量是______。
A.'\t'B.'\17'C.\nD.'\xaa'
14.下面程序的輸出結(jié)果是______。#include<stdio.h>main(){char*p[]={"BOOL","OPK","H","SP"};inti:for(i=3;i>=0;i-,i-)printf("%c",*p[i]);printf("\n");}
A.SOB.SPC.SPOPKD.SHOB
15.下列敘述中,不正確的是
A.數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)共享的問(wèn)題
B.數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致
C.數(shù)據(jù)庫(kù)設(shè)計(jì)是指設(shè)計(jì)一個(gè)能滿(mǎn)足用戶(hù)要求,性能良好的數(shù)據(jù)庫(kù)
D.數(shù)據(jù)庫(kù)系統(tǒng)是一個(gè)獨(dú)立的系統(tǒng),但是需要操作系統(tǒng)的支持
16.下述關(guān)于數(shù)據(jù)庫(kù)系統(tǒng)的敘述中,正確的是()。
A.數(shù)據(jù)庫(kù)系統(tǒng)減少了數(shù)據(jù)冗余
B.數(shù)據(jù)庫(kù)系統(tǒng)避免了一切冗余
C.數(shù)據(jù)庫(kù)系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類(lèi)型一致
D.數(shù)據(jù)庫(kù)系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)
17.
18.設(shè)x是一個(gè)int型的,y的值為10,則表達(dá)式x&&y的值為()。
A.1B.0C.與x值相同D.與x值相反
19.
20.在軟件設(shè)計(jì)中,不屬于過(guò)程設(shè)計(jì)工具的是()。
A.PDLB.DFD圖C.PAD圖D.N—S圖
二、2.填空題(20題)21.在軟件開(kāi)發(fā)中,結(jié)構(gòu)化方法包括結(jié)構(gòu)化分析方法、結(jié)構(gòu)化設(shè)計(jì)方法和結(jié)構(gòu)化程序設(shè)計(jì)方法??尚行匝芯侩A段采用的是【】。
22.排序是計(jì)算機(jī)程序設(shè)計(jì)中的一種重要操作,常見(jiàn)的排序方法有插入排序、【】和選擇排序等。
23.設(shè)有下列程序:
#include<stdio.h>
#include<string.h>
main()
{inti;
chars[10],t[10];
gets(t);
for(i=0;i<2;i++)
{gets(s);
if(strcmp(t,s)<0)strcpy(t,s);
}
printf("%s\n",t);
}
程序運(yùn)行后,從鍵盤(pán)上輸入(<CR>代表回車(chē)符):CDEF<CR>BADEF<CR>QTHRG<CR>,則程序的輸出結(jié)果是______。
24.以下程序運(yùn)行后的輸出結(jié)果是【】。
#include<stdio.h>
fun(intx)
{if(x/2>0)fun(x/2);
printf("%d",x);
}
main()
{fun(6);}
25.在數(shù)據(jù)結(jié)構(gòu)中,順序存儲(chǔ)結(jié)構(gòu)的數(shù)據(jù)元素所占的存儲(chǔ)空間是______的。
26.與表達(dá)式a+=b等價(jià)的另一書(shū)寫(xiě)形式是______。
27.排序是計(jì)算機(jī)程序設(shè)計(jì)中的一種重要操作,常見(jiàn)的排序方法有插入排序、______和選擇排序。
28.在面向?qū)ο蠓椒ㄖ?,信息隱蔽是通過(guò)對(duì)象的______性來(lái)實(shí)現(xiàn)的。
29.數(shù)據(jù)庫(kù)系統(tǒng)其內(nèi)部分為三級(jí)模式,即概念模式、內(nèi)模式和外模式。其中,______是用戶(hù)的數(shù)據(jù)視圖,也就是用戶(hù)所見(jiàn)到的數(shù)據(jù)模式。
30.下列程序的輸出結(jié)果是______。
#include<stdio.h>
main()
{intx=3,y=2,z=1;
if(x<y)
if(y<0)z=0;
elsez+=1;
printf("%d\n",z);
}
31.Jackson方法是一種面向【】的結(jié)構(gòu)化方法。
32.在最壞情況下,冒泡排序的時(shí)間復(fù)雜度為【】。
33.下面程序段的輸出結(jié)果是【】。
inti=0,sum=1;
do
{sum+=i++;}
while(i<6);
print("%d\n",sum);
34.下列的for語(yǔ)句的循環(huán)次數(shù)為_(kāi)_____。
for(x=1,y=0;(y!=19)&&(x<7);x++);
35.以下程序運(yùn)行后的輸出結(jié)果是【】。
#include<stdio.h>
#include<string.h>
char*ss(char*s)
char*p,t;
p=s+1:t=*s:
whilet*p){*(,p-1)=*p;p++;}
*(p-1)=t;
returns:}
main()
{char*p,str[10]="abedefgh";
p=ss(str);printf("%s\n".p):}
36.下面程序?qū)⒍S數(shù)a的行和列元素互換后存放另一個(gè)二維數(shù)組b中。請(qǐng)?zhí)羁铡?/p>
main()
{inta[2][3]={{1,2,3},{4,5,6}};
intb[3][2],i,j;
printf("arraya"\n");
for(i=0;i<=1;i++)
{for(j=0;【】;j++)
{printf("%5d",a[i][j]);
【】;}
printf("\n");}
printf("arrayb:\n");
for(i=0;【】;i++)
{for(j=0;j<=1;j++)
printf("%5d",b[i][j]);
printf("\n");}}
37.與結(jié)構(gòu)化需求分析方法相對(duì)應(yīng)的是【】方法。
38.數(shù)據(jù)模型按不同的應(yīng)用層次分為三種類(lèi)型,它們是______數(shù)據(jù)模型、邏輯數(shù)據(jù)模型和物理數(shù)據(jù)模型。
39.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。
40.以下sstrcpy()函數(shù)實(shí)現(xiàn)字符串復(fù)制,即將t所指字符串復(fù)制到s所指向內(nèi)存空間中,形成一個(gè)新的字符串s。清填空。
voidsstrcpy(char*s,char*t)
{while(*s++=【】);}
main()
{charstr1[100],str2[]="abcdefgh";
strcpy(str1,str2);
printf('%s\n",str1);
}
三、1.選擇題(20題)41.在調(diào)用函數(shù)時(shí),如果實(shí)參是簡(jiǎn)單變量,它與對(duì)應(yīng)形參之間的數(shù)據(jù)傳遞方式是______。
A.地址傳遞B.單向值傳遞C.由實(shí)參傳給形參。再由形參傳同實(shí)參D.傳遞方式由用戶(hù)指定
42.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){inta=4printf("%d\n",(a+=a-=a*A));}
A.-8B.14C.0D.-24
43.設(shè)有如下程序:#include"string.h"main(){staticchars1[20],s2[20];scanf("%s",s1);scanf("%s",s2);if(strcmp(s1,s2))printf("@");elseprintf("$");printf("%d\n",strlen(strcat(s1,s2)));}如果從鍵盤(pán)上輸入name<回車(chē)>name1<回車(chē)>,則程序運(yùn)行后的輸出結(jié)果是()
A.$8B.@10C.$9D.@9
44.以下敘述中正確的是()。
A.構(gòu)成C程序的基本單位是函數(shù)
B.可以在一個(gè)函數(shù)中定義另一個(gè)函數(shù)
C.main函數(shù)必須放在其他函數(shù)之前
D.C函數(shù)定義的格式是K&R格式
45.下列選項(xiàng)中不是字符常量的是()。
A.'\v'B.'\x2a'C.'a'D."\0"
46.下列描述中正確的是()。
A.軟件工程只是解決軟件項(xiàng)目的管理問(wèn)題
B.軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問(wèn)題
C.軟件工程的主要思想是強(qiáng)調(diào)在軟件開(kāi)發(fā)過(guò)程中需要應(yīng)用工程化原則
D.軟件工程只是解決軟件開(kāi)發(fā)過(guò)程中的技術(shù)問(wèn)題
47.在軟件設(shè)計(jì)中,不屬于過(guò)程設(shè)計(jì)工具的是()。
A.PDL(過(guò)程設(shè)計(jì)語(yǔ)言)B.PAD圖C.N-S圖D.DFD圖
48.以下敘述中錯(cuò)誤的是A.計(jì)算機(jī)不能直接執(zhí)行用C語(yǔ)言編寫(xiě)的源程序
B.C程序經(jīng)C編譯程序編譯后,生成后綴為.obj的文件是一個(gè)二進(jìn)制文件
C.后綴為.obj的文件,經(jīng)連接程序生成后綴為.exe的文件是一個(gè)二進(jìn)制文件
D.后綴為.obj和.exe的二進(jìn)制文件都可以直接運(yùn)行
49.下面不屬于軟件設(shè)計(jì)原則的是
A.抽象B.模塊化C.自底向上D.信息隱藏
50.下列描述中正確的是()。
A.程序就是軟件
B.軟件開(kāi)發(fā)不受計(jì)算機(jī)系統(tǒng)的限制
C.軟件既是邏輯實(shí)體,又是物理實(shí)體
D.軟件是程序、數(shù)據(jù)與相關(guān)文檔的集合
51.已知inta=1,b=3則ab的值為
A.3B.1C.2D.4
52.若有如下程序:main(){inta,b,C,m,n,k;m=n=k=0;a=-1;b=2;C=3;if(c>0)m=a+b;if(a<=0){if(b>0)if(c<=0)n=a=b;}elseif(c>0)n=a-b;elsek/=c;printf("%d,%d,%d,",m,n,k);}則程序運(yùn)行后的輸出結(jié)果是()。
A.1,0,0B.2,-3,3C.1,-3,3D.1,0,3
53.請(qǐng)讀程序:#include<stdio.h>main(){inta;floatb,c;scanf("%2d%3f%4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f\n",a,b,c)}若運(yùn)行時(shí)從鍵盤(pán)上輸入987643210則上面程序的輸出結(jié)果是______。
A.a=98,b=75,c=4321
B.a=10,b=432,c=8765
C.a=98,b=765.000000c=4321.000000
D.a=98,b=765.0,c=4321.000000
54.有以下程序main(intargc,char*argv[]){intn,i=0;while(argv[1][i]!='\0'){n=fun();i++;}printf("%d\n",n*argc);}intfun(){staticints=0;s=-1;returns;}假設(shè)程序經(jīng)編譯、連接后生成可執(zhí)行文件exam.exe,若鍵入以下命令行cxam123<回車(chē)>則運(yùn)行結(jié)果為
A.6B.8C.3D.4
55.下列選項(xiàng)中不會(huì)引起二義性的宏定義是()。
A.#defineS(x)x*x
B.#defineS(x)(x)*(x)
C.#defineS(x)(x*x)
D.#defineS(x)((x)*(x))
56.軟件需求分析一般應(yīng)確定的是用戶(hù)對(duì)軟件的______。
A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求
57.對(duì)象實(shí)現(xiàn)了數(shù)據(jù)和操作的結(jié)合,是指對(duì)數(shù)據(jù)和數(shù)據(jù)的操作進(jìn)行______。A.A.結(jié)合B.隱藏C.封裝D.抽象
58.下列不合法的main函數(shù)命令行參數(shù)的表示形式是______。
A.main(inta,char*c[]);
B.main(ac,av)intarc;char**av;
C.main(c,v)intc;char*v[];
D.main(argc,argv)intargc;charargv[];
59.在C語(yǔ)言中,如果下面的變量都是血類(lèi)型,則輸出的結(jié)果是______。sum=pad=5;pAd=sum++,pad++,++pAd;printf("%d\n",pad);
A.7B.6C.5D.4
60.設(shè)有以下語(yǔ)句:chara=3,b=6,c;c=ab<<2;則c的二進(jìn)制值是()。
A.11011B.10100C.11100D.11000
四、選擇題(20題)61.若有說(shuō)明“chars1[30]="abc",s2[]="defghi";",則在使用函數(shù)stoat(s1,s2)后,結(jié)果是()。
A.s1的內(nèi)容更新為abcdefghi
B.s1的內(nèi)容更新為defghi\0
C.s1的內(nèi)容更新勾defghiabc\0
D.s1的內(nèi)容更新為abcdefghi\0
62.
63.
下列程序的輸出結(jié)果是()。
#include<stdio.h>
main()
{inta=2,b=3,P;
p=f(a,b);
printf(”%d”,p);
}
intf(a,b)
{intc;
if(a>b)c=1;
elseif(a==b)c=0;
elsec=-l;
return(c);
}
A.-lB.0C.1D.2
64.下列關(guān)系運(yùn)算中,能使經(jīng)運(yùn)算后得到的新關(guān)系中屬性個(gè)數(shù)多于原來(lái)關(guān)系中屬性個(gè)數(shù)的是()。
A.選擇B.連接C.投影D.并
65.
66.有以下程序:
從第一列開(kāi)始輸入以下數(shù)據(jù)(<CR>代表一個(gè)回車(chē)符.:
2743<CR>
程序的輸出結(jié)果是()。
A.66877B.668966C.6677877D.6688766
67.下面不屬于軟件工程三個(gè)要素的是()。
A.工具B.過(guò)程C.方法D.環(huán)境
68.
69.
70.
71.
72.數(shù)據(jù)流圖中帶有箭頭的線(xiàn)段表示的是()。
A.控制流B.事件驅(qū)動(dòng)C.模塊調(diào)用D.數(shù)據(jù)流
73.
74.
75.當(dāng)用戶(hù)要求輸入的字符串中含有空格時(shí),應(yīng)使用的輸入函數(shù)是()。
A.scanfB.getcharC.getsD.getc
76.(62)棧底至棧頂依次存放元素A、B、C、D,在第五個(gè)元素E入棧前,棧中元素可以出棧,則出棧序列可能是()
A.ABCED
B.DBCEA
C.CDABE
D.DCBEA
77.
78.下列敘述中錯(cuò)誤的是()。
A.一個(gè)C語(yǔ)言程序只能實(shí)現(xiàn)一種算法
B.c程序可以由多個(gè)程序文件組成
C.C程序可以由一個(gè)或多個(gè)函數(shù)組成
D.一個(gè)C函數(shù)可以單獨(dú)作為一個(gè)C稃序文件存存
79.
80.已知inti=1;執(zhí)行語(yǔ)句while(i++<4);后,變量i的值為()。
A.3B.4C.5D.6
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc的功能是:首先把b所指字符串中的字符按逆序存放,然后將str1所指字符串中的字符和Str2所指字符串中的字符,按排列的順序交叉合并到str所指數(shù)組中,過(guò)長(zhǎng)的剩余字符接在str所指數(shù)組的尾部。例如,當(dāng)str1所指字符串中的內(nèi)容為ABCDEFG,str2所指字符串中的內(nèi)容為1234時(shí),str所指數(shù)組中的內(nèi)容應(yīng)該為A483C2D1EFG;而當(dāng)str1所指字符串中的內(nèi)容為1234,str2所指字符串中的內(nèi)容為ABCEDFG時(shí),str所指數(shù)組中的內(nèi)容應(yīng)該為1G2F31:4DCBA。
請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio。h>
#include<string.h>
voidproc(char*strl,char*str2,char*str){
inti,j;charch;
i=0;j=strleu(str2)-1;
//****found****
while(i>j)
{
ch=str2[i];str2[i]=str2[j];str2[j]=ch;
i++;j--;
}
while(*str1||*str2)
{
if(*str1){*str=*str1;str++;str1++;)
if(*str2){*str=*str2;str++;str2++;)
}
//****found****
*str=0:
}
voidmain
{
chars1[100],s2[100],t[200];
system("CLS");
printf("\nEnters1string:");
scanf("%s",sl);
printf("\nEnters2string:");
scanf("%s",s2);
proc(s1,s2,t);
printf("\nTheresultis:%s\n",t);
}
六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫(xiě)函數(shù)proc,該函數(shù)的功能是:將放在字符串?dāng)?shù)組中的M個(gè)字符串(每串的長(zhǎng)度
不超過(guò)N),按順序合并組成一個(gè)新的字符串。
例如,若字符串?dāng)?shù)組中的M個(gè)字符串為:
ABCD
BCDEFG
CDEFGHI
則合并后的字符串內(nèi)容應(yīng)該是ABCDBCDEFGCDEFGHl。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。
試題程序:
#include<stdio.h>
#include<conio.h>
#defineM3
#defineN20
voidproc(chararr[M][N],char*b)
{
}
voidmain
{
charstr[M][N]={"ABCD","BCDEFG","CDEFGHl"),i;
chararr[100]={"##################"};
printf(”Thestrin9:kn”);
for(i=0;i<M;i++)
puts(str[i]);
printf("\n");
proc(str,arr);
printf("TheAstring:\n");
printf("%S",arr);
printf("\n\n");
}
參考答案
1.A\nC語(yǔ)言中程序中的步驟實(shí)現(xiàn)為:先確定程序中的算法和數(shù)據(jù)結(jié)構(gòu),然后進(jìn)行程序的編碼,再進(jìn)行對(duì)程序的調(diào)試,最后進(jìn)行文檔的整理和記錄。使用這種步驟可以方便程序的編寫(xiě)以及在完成后提高代碼的重用性。
\n
2.A本題考查簡(jiǎn)單的賦值運(yùn)算,在程序中c=(a-=am5),先算括號(hào)中的a-=a-5=5,所以c=5,再計(jì)算(a=b,b+=4);,a=b=0,b+=4=0+4=4,所以b=4,所以a=0,b=4,c=5,答案選擇A。
3.C程序首先定義整型變量a和b,a的初值為123456。接著通過(guò)while循環(huán),判斷a的值是否為0,若不為0,則執(zhí)行循環(huán)體。每次循環(huán)將a當(dāng)前值的個(gè)位數(shù)字(a%10)賦給b,a自身除以10。再通過(guò)switch語(yǔ)句判斷b的值執(zhí)行對(duì)應(yīng)分支語(yǔ)句。所以對(duì)應(yīng)a的每個(gè)個(gè)位數(shù),b的取值為6,5,4,3,2,1。當(dāng)b取值為6時(shí),執(zhí)行default,輸出6,接著繼續(xù)執(zhí)行case1,通過(guò)break退出switch。執(zhí)行下一次循環(huán),當(dāng)b取值為5時(shí),執(zhí)行case5輸出5。執(zhí)行下一次循環(huán),當(dāng)b取值為4時(shí),執(zhí)行case4輸出4,繼續(xù)執(zhí)行case5輸出5。接著執(zhí)行下一次循環(huán),當(dāng)b取值為3時(shí),執(zhí)行case3輸出3,執(zhí)行case4輸出4,執(zhí)行case5輸出5;當(dāng)b取值為2時(shí),執(zhí)行case2輸出2,通過(guò)break退出switch;當(dāng)b取值為1時(shí),執(zhí)行break,此時(shí)a的取值為0,循環(huán)終止。綜上,程序輸出結(jié)果為:65453452。本題答案為C選項(xiàng)。
4.A
5.D解析:在主函數(shù)中首先定義了一個(gè)數(shù)組p并初始化,在while后面括號(hào)里的表達(dá)式中,i初值為0,當(dāng)p[i]為偶數(shù)時(shí),P[i]%2等于0,根據(jù)“&&”運(yùn)算符的規(guī)則,其表達(dá)式為假退出循環(huán),顯然當(dāng)i=2時(shí),p[i]=14為偶數(shù),此時(shí)while后面括號(hào)里的表達(dá)式的值為假,退出循環(huán),此時(shí)k=p[0]+p[1],即k=11+13。所以最后輸出k為24。
6.Bstructdate中包含year、month、day這3個(gè)整型變量,一個(gè)整型變量占2個(gè)字節(jié);sizeof是求所占字節(jié)數(shù)的運(yùn)算符。
7.B用關(guān)鍵字typedef聲明一種新的類(lèi)型的形式為typedef類(lèi)型名標(biāo)識(shí)符。本題中的類(lèi)型為char*。
8.C
9.D
10.D本題考?jí)糇栽鲞\(yùn)算符“++”、邏輯與運(yùn)算符“&&”和邏輯或運(yùn)算符“||”。自增運(yùn)算符“++”出現(xiàn)在變量之前,表示先使用變量的值加l,再使用變量的值進(jìn)行運(yùn)算;出現(xiàn)在變量之后,表示先使用變量的值進(jìn)行運(yùn)算,再使用變量的值加l。當(dāng)邏輯與運(yùn)算符“&&’’兩邊的運(yùn)算對(duì)象都為真時(shí),邏輯表達(dá)式的值才為真;當(dāng)邏輯或運(yùn)算符“||”只要一個(gè)值為1,值就為1。根據(jù)運(yùn)算符的優(yōu)先級(jí),題中應(yīng)先計(jì)算內(nèi)層括號(hào)中的值。++j是先自加后運(yùn)算,因此運(yùn)算時(shí)j的值等于3,所以表達(dá)式++j=3成立,即表達(dá)式的值為1;1與任何數(shù)都為進(jìn)行或(||)運(yùn)算,結(jié)果都為1,因此k=3的表達(dá)式i++是先運(yùn)算后自加,因此運(yùn)算時(shí)i為1,所以i++=1成立,自加1后i=2。if語(yǔ)句的條件為真即“1”,所以輸出i、j、k的值分別是2,3,3。
11.D程序首先定義整型變量s和i,s的初值為0。for循環(huán)中i的取值為1,2,3,4,另外在switch語(yǔ)句中,執(zhí)行各個(gè)分支后,若沒(méi)有break語(yǔ)句,會(huì)繼續(xù)執(zhí)行后續(xù)分支。當(dāng)i=1時(shí),switch語(yǔ)句執(zhí)行case1、case2和default,將s自增3后再自增5,此時(shí)s的值為8;當(dāng)i=2時(shí),switch語(yǔ)句執(zhí)行case2、default,將s自增3后再自增5,此時(shí)s的值為16;當(dāng)i=3時(shí),switch語(yǔ)句執(zhí)行case3、case1、case2、default,將s逐步自增2,自增3,自增5,此時(shí)s的值為26;當(dāng)i=4時(shí),switch語(yǔ)句執(zhí)行default語(yǔ)句,將s自增5,此時(shí)s的值為31。本題答案為D選項(xiàng)。
12.B水平制表符中,'\t'表示的是橫向跳若干格;選項(xiàng)B中,'\039'錯(cuò)誤,'\039'是八進(jìn)制形式表的字符,最大數(shù)為7,但其中出現(xiàn)'9',','是字符逗號(hào);選項(xiàng)D中,'\n'表示的是換行。
13.C解析:C語(yǔ)言中字符常量是以單引號(hào)括起來(lái)的單個(gè)字符,或?yàn)橐浴癨\”與三位八進(jìn)制數(shù)值或兩位十六進(jìn)制數(shù)值代替單個(gè)字符。
14.A解析:p[0]存放的是“BOOL\\0”的首地址:p[1]存放的是“OPK\\0”的首址等。在printf語(yǔ)句中輸出的*p[i]表示p[i]字符串的第—個(gè)字符。在for循環(huán)中,i的初值為3,那么輸出的第—個(gè)字符為“S”,接著兩次i--,則輸出的值為*p[1],即字符“O”,所以本題的輸出為SO。
15.B解析:B選項(xiàng)錯(cuò)誤,原因是,數(shù)據(jù)庫(kù)應(yīng)該具有物理獨(dú)立性和邏輯獨(dú)立性,改變其一而不影響另一個(gè)。
16.A解析:數(shù)據(jù)庫(kù)是一個(gè)通用化的、綜合性的數(shù)據(jù)集合,它可以為各種用戶(hù)所共享,具有最小的冗余度和較高的數(shù)據(jù)與程序的獨(dú)立性,而且能并發(fā)地為多個(gè)應(yīng)用服務(wù),同時(shí)具有安全性和完整性。即數(shù)據(jù)庫(kù)系統(tǒng)減少了數(shù)據(jù)冗余,但不能避免一切冗余。所以選項(xiàng)A正確,選項(xiàng)B錯(cuò)誤。在數(shù)據(jù)庫(kù)管理階段中,數(shù)據(jù)是結(jié)構(gòu)化的,面向系統(tǒng),數(shù)據(jù)冗余度小,從而節(jié)省了數(shù)據(jù)的存儲(chǔ)空間,也減少了對(duì)數(shù)據(jù)的存取時(shí)間,提高了訪(fǎng)問(wèn)效率,避免了數(shù)據(jù)的不一致性。數(shù)據(jù)的不一致性,是指對(duì)數(shù)據(jù)的存取方式,選項(xiàng)C錯(cuò)誤。數(shù)據(jù)庫(kù)系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù),并非是數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn),選項(xiàng)D錯(cuò)誤。本題正確答案是A。
17.D
18.C
19.D
20.B常見(jiàn)的過(guò)程設(shè)計(jì)工具有圖形土具(程序流程圖、N—S圖、PAD圖、HIP0圖)、表格工具(判定表)和語(yǔ)言工具(PDL)。DFD是數(shù)據(jù)流圖,是描述數(shù)據(jù)處理過(guò)程的工具。
21.結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析方法解析:結(jié)構(gòu)化分析方法主要用于系統(tǒng)分析階段;結(jié)構(gòu)化設(shè)計(jì)方法主要用于系統(tǒng)設(shè)計(jì)階段;結(jié)構(gòu)化程序設(shè)計(jì)方法主要用于編碼階段??尚行匝芯繉儆谙到y(tǒng)分析階段,因此,可行性研究階段采用的是結(jié)構(gòu)化分析方法。
22.交換排序交換排序解析:常見(jiàn)的排序方法有插入排序(包括簡(jiǎn)單插入排序法和希爾排序法等)、交換排序(包括冒泡排序和快速排序法等)和選擇排序(包括簡(jiǎn)單選擇排序和堆排序等)。注意:常見(jiàn)的排序方法及其作用機(jī)制和區(qū)別。
23.QTHRGQTHRG解析:strcmp(t,s)函數(shù)用來(lái)比較t和s所指字符串的大小,若t>s,則函數(shù)值大于0;若t=s,則函數(shù)值等于0:若t<s,則函數(shù)值小于0。strcpy(t,s)函數(shù)的功能是把字符數(shù)組s所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指的存儲(chǔ)空間中。本題中,t[10]='CDEF'。第一次循環(huán),s[10]='BADEF',if語(yǔ)句的控制條件strcmp(t,s)<0不成立,接著執(zhí)行第二次循環(huán).s='QTHRG',if語(yǔ)句的控制條件strcmp(t,s)<0成立,執(zhí)行下列的語(yǔ)句,將字符數(shù)組s所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指的存儲(chǔ)空間中,然后輸出字符數(shù)組t。
24.136136解析:程序中定義了一個(gè)遞歸調(diào)用函數(shù)fun。程序運(yùn)行時(shí),先把實(shí)參6傳給形參。if語(yǔ)句中6/2>0成立,執(zhí)行fun(x/2),即fun(3),同時(shí)輸出x的值6;再判斷if條件,3/2>0成立,再執(zhí)行fun(x/2),即fun(1),同時(shí)輸出x的值3;此時(shí)1/2>0不再成立,輸出1。而遞歸調(diào)用的輸出順序是相反的,故輸出結(jié)果為136。
25.連續(xù)連續(xù)解析:順序存儲(chǔ)結(jié)構(gòu)具有兩個(gè)特點(diǎn):1)數(shù)據(jù)元素所占空間是連續(xù)的;2)數(shù)據(jù)元素在存儲(chǔ)空間中是按邏輯順序依次存放的。
26.a=a+ba=a+b解析:a+=b與a=a+b等價(jià),作用是把變量a的值加b后再賦給變量a。
27.交換排序交換排序解析:所謂排序是指將一個(gè)無(wú)序序列整理成按值非遞減順序排列成的有序序列,常用的排序方法有:交換排序、插入排序和選擇排序。其中交換排序包括冒泡排序和快速排序,插入排序包括簡(jiǎn)單插入排序和希爾排序,選擇排序包括直接選擇排序和堆排序。
28.封裝封裝
29.外模式外模式解析:數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式分別是內(nèi)模式、概念模式和外模式。其中,物理模式給出了數(shù)據(jù)庫(kù)的物理存儲(chǔ)結(jié)構(gòu)和存取方法;概念模式是數(shù)據(jù)庫(kù)系統(tǒng)中全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)的描述;外模式是用戶(hù)的數(shù)據(jù)視圖,也就是用戶(hù)所見(jiàn)到的數(shù)據(jù)模式。
30.11解析:ifelse語(yǔ)句的功能是:若表達(dá)式的值為真,執(zhí)行語(yǔ)句1,并跳過(guò)其他語(yǔ)句,執(zhí)行ifelse語(yǔ)句的下一條語(yǔ)句,若表達(dá)式的值為假,跳過(guò)語(yǔ)句1,執(zhí)行語(yǔ)句2,依次往下判斷。題中,x=3,y=2,第一個(gè)if語(yǔ)句的控制條件x<y就不滿(mǎn)足,又沒(méi)有與之配對(duì)的else語(yǔ)句,所以直接執(zhí)行printf語(yǔ)句,在整個(gè)過(guò)程中變量z的值都沒(méi)發(fā)生變化。
31.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)解析:Jackson方法是—‘種面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化方法。
32.
解析:冒泡排序法是通過(guò)相鄰數(shù)據(jù)元素的交換逐步將線(xiàn)性表變成有序。假設(shè)線(xiàn)性表的長(zhǎng)度為n,則在最壞的情況下,冒泡排序需要經(jīng)過(guò)遍的從前往后的掃描和遍的從后往前的掃描,需要的比較次數(shù)為。
33.16
34.66解析:分析程序可知,每循環(huán)一次,x的值加1,然后檢測(cè)循環(huán)控制條件(y!=19)&&(x<7),因y的值不變,故滿(mǎn)足x<7時(shí)循環(huán)6次。
35.bedefghabedefgha解析:函數(shù)9,的作用是將指針變量。指向的字符串的首字符移到最后一個(gè)位置,其他字符依次前移。其方法是:首先將指針變量p指向字符串s的第2個(gè)字符b,然后將首字符保存在字符變量t中;從字符串的第2個(gè)字符開(kāi)始,通過(guò)語(yǔ)句*(P-1)=*p;依次前移,直到字符串結(jié)束符;最后通過(guò)語(yǔ)句*(P-1)=t;將保存在t中的字符放到移動(dòng)后的字符串末尾,返回main函數(shù)并輸出,輸出結(jié)果為bedefsh。
36.j<2b[j][i]=a[i][j]i<=2j<2\r\nb[j][i]=a[i][j]\r\ni<=2解析:本題考查了二維數(shù)組元素的引用。a[i][j]表示的是二維數(shù)組a的第i+1,第j+1列的元素。
37.結(jié)構(gòu)化設(shè)計(jì)結(jié)構(gòu)化設(shè)計(jì)解析:與結(jié)構(gòu)化需求分析方法相對(duì)應(yīng)的是結(jié)構(gòu)化設(shè)計(jì)方法。結(jié)構(gòu)化設(shè)計(jì)就是采用最佳的可能方法設(shè)計(jì)系統(tǒng)的各個(gè)組成部分以及各個(gè)成分之間的內(nèi)部聯(lián)系的技術(shù)。
38.概念概念
39.軟件開(kāi)發(fā)
40.*t++或*(t++)*t++或*(t++)解析:主函數(shù)中定義了兩個(gè)字符型數(shù)組str1和str2,并且給str2賦初值“abcdefgh”,接著調(diào)用函數(shù)strcpy(str1,str2),將字符串str2的值賦給str1。在函數(shù)sstrcpy(*s,*t)中,用了一個(gè)while循環(huán),每循環(huán)一次將形參指針t所指的字符賦給形參指針s所指向的存儲(chǔ)空間,然后將指針s和t都移到下一個(gè)元素。所以空白處應(yīng)該填*t++或*(t++)。
41.B解析:本題考查函數(shù)調(diào)用時(shí)的數(shù)據(jù)流向問(wèn)題。簡(jiǎn)單變量只能實(shí)現(xiàn)單向的值傳遞。在調(diào)用函數(shù)時(shí),通常在主調(diào)函數(shù)和被調(diào)函數(shù)之間有數(shù)據(jù)傳遞關(guān)系。在定義函數(shù)時(shí),函數(shù)名后面括號(hào)中的變量名稱(chēng)為“形參”;在調(diào)用函數(shù)時(shí),函數(shù)名后面括號(hào)中的變量名稱(chēng)為“實(shí)參”。有關(guān)實(shí)參和形參的說(shuō)明如下:(1)形參在函數(shù)未被調(diào)用時(shí),不占用存儲(chǔ)單元,只有在發(fā)生函數(shù)調(diào)用時(shí)形參才被分配內(nèi)存空間,函數(shù)調(diào)用結(jié)束后,釋放形參所占的內(nèi)存空間。(2)在被定義的函數(shù)中,必須指定形參的類(lèi)型。(3)實(shí)參可以是常量、變量或表達(dá)式。(4)宴參與形參的類(lèi)型應(yīng)一致。(5)如果形參是簡(jiǎn)單變量,實(shí)參對(duì)形參的數(shù)據(jù)傳遞是按值傳遞,即單向傳遞,只能由實(shí)參傳給形參,不能由形參傳回來(lái)給實(shí)參。如果形參是地址變量,實(shí)參對(duì)形參的數(shù)據(jù)傳遞是按地址傳遞,可以實(shí)現(xiàn)雙向傳遞,既能由實(shí)參傳給形參,又能由形參傳回來(lái)給實(shí)參。
42.D解析:表達(dá)式a+=a-=a*a看起來(lái)復(fù)雜,其實(shí)將它分成兩個(gè)表達(dá)式來(lái)計(jì)算就簡(jiǎn)單了:①第一個(gè)表達(dá)式(a-=a*a)=(a=a-a*a=-12);②第二個(gè)表達(dá)式(a+=a-=a*a)=(a=a+a=-24)。
43.D
44.A解析:本題考查C語(yǔ)言的綜合基礎(chǔ)知識(shí)。構(gòu)成C程序的基本單位是函數(shù),一個(gè)C程序總是從main函數(shù)開(kāi)始執(zhí)行,而不論main函數(shù)在整個(gè)程序中的位置如何。C語(yǔ)言的函數(shù)定義都是互相平行、獨(dú)立的,在定義函數(shù)時(shí),一個(gè)函數(shù)內(nèi)不能定義另一個(gè)函數(shù)。C函數(shù)定義的一般格式有兩種:傳統(tǒng)格式和現(xiàn)代格式。傳統(tǒng)格式也稱(chēng)K&R格式,是早期編譯系統(tǒng)使用的格式;現(xiàn)代格式又稱(chēng)ANSI格式,是現(xiàn)代編譯系統(tǒng)使用的格式。
45.Dc語(yǔ)言規(guī)定,一個(gè)字符常量代表ASCII碼字符集里的一個(gè)字符,在群序中用單引號(hào)括起來(lái),以便區(qū)分。'\v'表示的是豎向跳格:'kx2a'表示的是兩位十六迸制數(shù);'a'表示的是字符a對(duì)應(yīng)的ASCII碼值。"\0"用雙引號(hào)故不正確。
46.CC。【解析】軟件工程是指將工程化的思想應(yīng)用于軟件的開(kāi)發(fā)、應(yīng)用和維護(hù)的過(guò)程,包括軟件開(kāi)發(fā)技術(shù)和軟件工程管理。
47.D解析:PDL一種設(shè)計(jì)性語(yǔ)言,用于書(shū)寫(xiě)軟件設(shè)計(jì)規(guī)約。它是軟件設(shè)計(jì)中廣泛使用的語(yǔ)言之一。N-S圖是無(wú)線(xiàn)的流程圖,是算法描述工具;PAD圖是問(wèn)題分析圖,它用二維樹(shù)狀結(jié)構(gòu)的圖表示程序的控制流,將這種圖轉(zhuǎn)換為程序代碼比較容易。此3類(lèi)均是過(guò)程設(shè)計(jì)工具,數(shù)據(jù)流圖(DataFunctionDiagram):又名數(shù)據(jù)功能圖表,簡(jiǎn)稱(chēng)DFD,是采用圖形方式來(lái)表達(dá)系統(tǒng)的邏輯功能、數(shù)據(jù)在系統(tǒng)內(nèi)部的邏輯流向和邏輯變換過(guò)程,是結(jié)構(gòu)化系統(tǒng)分析方法的主要表達(dá)工具及用于表示軟件模型的一種圖示方法。
48.D解析:一個(gè)C語(yǔ)言的源程序(后綴名為.c)在經(jīng)過(guò)編譯器編譯后,先生成一個(gè)匯編語(yǔ)言程序,然后由編譯程序再將匯編語(yǔ)言程序翻譯成機(jī)器指令程序,即目標(biāo)程序(后綴名為.obj),目標(biāo)程序不可以直接運(yùn)行,它要和庫(kù)函數(shù)或其它目標(biāo)程序連接成可執(zhí)行文件(后綴名為.exe)后方可運(yùn)行。故本題答案為D)。
49.C解析:軟件設(shè)計(jì)的原則包括:抽象、模塊化,信息隱蔽和模塊獨(dú)立性。所以自底向上不是軟件設(shè)計(jì)原則。答案為C。
50.D\r\n軟件是與計(jì)算機(jī)操作相關(guān)的計(jì)算機(jī)程序、規(guī)程、規(guī)則,以及可能有的文件、文檔及數(shù)據(jù);軟件開(kāi)發(fā)要受到計(jì)算機(jī)系統(tǒng)的限制;軟件是一個(gè)邏輯實(shí)體,不是物理實(shí)體,軟件具有抽象性。因此選項(xiàng)D正確。
51.C解析:^是按位異式運(yùn)算,如果對(duì)應(yīng)位不同則結(jié)果為1,相同則為0。
52.A解析:本題首先聲明了6個(gè)int型變量,然后分別讓m、n、k為0,a為-1,b為2,c為3。接下來(lái)因?yàn)閏>O為真,故執(zhí)行子句“m=a=b;”,結(jié)果使m的值變?yōu)?;然后判斷a是否<=0,結(jié)果也為真,進(jìn)入大括號(hào)里面;由于b>O為真,再判斷c<=0,為假。所以子句“n=a=b;”沒(méi)有執(zhí)行,跳出大括號(hào)。而后面的elseif語(yǔ)句和else語(yǔ)句因?yàn)榇罄ㄌ?hào)的原因,使其對(duì)應(yīng)第二個(gè)if語(yǔ)句,而第二個(gè)if語(yǔ)句的條件已滿(mǎn)足(進(jìn)入大括號(hào)之前),所以這兩條else語(yǔ)句的子句不被執(zhí)行,故最后輸出結(jié)果為1,0,0,所以應(yīng)該選擇A。
53.C解析:scanf()把用戶(hù)從鍵盤(pán)錄入的數(shù)字的第1、2位存入整型變量a;把第3、4、5位存入單精度實(shí)型變量b,把第6、7、8、9位存入單精度實(shí)型變量c,用戶(hù)錄入的第10位被scanf()遺棄。這時(shí)變量a、b、c的值分別為:98、765.000000、4321.000000。
54.A解析:主函數(shù)的第一個(gè)參數(shù)argc為整型參數(shù),記下從命令行輸入的參數(shù)的個(gè)數(shù):第二個(gè)參數(shù)argv是一個(gè)字符型的指針數(shù)組,它的每一個(gè)元素指向命令行輸入的參數(shù)字符數(shù)。在本例中argc的值為2,argv[0]指向字符串“exam”,argv[1]指向參數(shù)字符串“123”。在main()函數(shù)中,while循環(huán)執(zhí)行了3次,調(diào)用了3次fun()函數(shù):第一次調(diào)用fun()函數(shù)時(shí),定義了一個(gè)靜態(tài)變量s并賦初值0,加1后作為函數(shù)值返回,n偽值為1;第二次調(diào)用fun()函數(shù)時(shí),靜態(tài)變量s的值將保留上一次退出時(shí)的值1,再加1為2,作為函數(shù)值返回,n的值為2;同理第三次調(diào)用返回后,n的值為3。輸出n*argc的值為6。
55.D本題考查參數(shù)的宏替換。為避免二義性有些參數(shù)表達(dá)式必須加括號(hào),否則在實(shí)參表達(dá)式替換時(shí),會(huì)出現(xiàn)錯(cuò)誤。例如x為(m+n)時(shí)替換A:m+n*m+n,所以選項(xiàng)D最符合條件。
56.DD?!窘馕觥寇浖枨蠓治鲋行枰獦?gòu)造一個(gè)完全的系統(tǒng)邏輯模型,理解用戶(hù)提出的每一功能與性能要求,使用戶(hù)明確自己的任務(wù)。因此,需求分析應(yīng)確定用戶(hù)對(duì)軟件的功能需求和非功能需求。
57.C解析:對(duì)象是由數(shù)據(jù)及可以對(duì)這些數(shù)據(jù)施加的操作組成的統(tǒng)一體。對(duì)象的內(nèi)部,即處理能力的實(shí)行和內(nèi)部狀態(tài),對(duì)外是看不見(jiàn)的,這一特性稱(chēng)做對(duì)象的封裝。
58.D解析:main函數(shù)的參數(shù)通常有兩個(gè),前者為整型,后者為字符型指針數(shù)組。參數(shù)的名字可以是任意合法的標(biāo)識(shí)符。而且,形如**av與*av[]等價(jià),所以選項(xiàng)A、B、C均正確,選項(xiàng)D是錯(cuò)誤的。
59.C
60.A解析:“<<”是C語(yǔ)言中規(guī)定的左移運(yùn)算符,例如,a=a<<2,是將a的二進(jìn)制數(shù)左移兩位,左移一位相當(dāng)于該數(shù)乘以2,左移兩位相當(dāng)于該數(shù)乘以2的2次方;“^”是異或運(yùn)算符,所以,c的二進(jìn)制值應(yīng)為00011011。
61.Dstrcat(s1,s2)函數(shù)的功能是把s2字符串連接到s1字符串的末尾,要保證s1有足夠的空間容納下連接后的字符串。
62.D
63.A
\n本題考查if-else語(yǔ)句。if為真則執(zhí)行C=1,if為假則執(zhí)行else中的條件,不符合繼續(xù)執(zhí)行else。
\n
64.B選擇,連接,投影是專(zhuān)門(mén)的關(guān)系運(yùn)算,選擇是選擇滿(mǎn)足條件的元組,而投影是選擇滿(mǎn)足條件的屬性或者說(shuō)列。并是傳統(tǒng)的關(guān)系運(yùn)算,是將兩個(gè)關(guān)系中的元組合并在一起再去掉重復(fù)的部分。選擇,投影,并三個(gè)運(yùn)算得到的結(jié)果屬性數(shù)并沒(méi)有改變或者說(shuō)還有減少,而連接時(shí)將兩個(gè)關(guān)系進(jìn)行笛卡爾積運(yùn)算,在挑選滿(mǎn)足條件的項(xiàng)。其屬性個(gè)數(shù)一般會(huì)多于原來(lái)關(guān)系中的屬性數(shù)。
65.B
66.A本題主要考查了字符輸入輸出函數(shù)get—char和putchar的使用。getchar函數(shù)用來(lái)從標(biāo)準(zhǔn)輸入設(shè)備上讀人一個(gè)字符,putchar(C)函數(shù)是將字符變量c中的字符輸出到標(biāo)準(zhǔn)輸出設(shè)備上,并且字符可以看作整數(shù)參與運(yùn)算。
67.D軟件工程包括三個(gè)要素:方法、工具和過(guò)程。
軟件工程方法指明了軟件開(kāi)發(fā)如何做。它包括多方面的任務(wù),如項(xiàng)目計(jì)劃與估算、軟件系統(tǒng)需求分析、數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)總體結(jié)構(gòu)的設(shè)計(jì)、算法過(guò)程的設(shè)計(jì)、編碼、測(cè)試以及維護(hù)等。
軟件工具為軟件工程方法提供了自動(dòng)的或半自動(dòng)的軟件支撐環(huán)境。目前,已經(jīng)推出了許多軟件工具,這些軟件工具集成起來(lái),建立起稱(chēng)為計(jì)算機(jī)輔助軟件工程(CASE)的軟件開(kāi)發(fā)支撐系統(tǒng)。CASE是幫助開(kāi)發(fā)人員進(jìn)行應(yīng)用程序開(kāi)發(fā)的軟件,包括系統(tǒng)分析、設(shè)計(jì)和代碼生成等階段。CASE工具為系統(tǒng)設(shè)計(jì)、文件編制、傳統(tǒng)結(jié)構(gòu)編程技術(shù)提供了自動(dòng)的方法,可以在軟件開(kāi)發(fā)生命周期中的各個(gè)階段起輔助作用。
軟件工程的過(guò)程則是將軟件工程的方法和工具綜合起來(lái)以達(dá)到合理、及時(shí)地進(jìn)行計(jì)算機(jī)軟件開(kāi)發(fā)的目的。過(guò)程定義了方法使用的順序、要求交付的文檔資料、為保證質(zhì)量和協(xié)調(diào)變化所需要的管理和軟件開(kāi)發(fā)各個(gè)階段完成的標(biāo)志。
68.A
69.C
70.B
71.A
72.D解析:數(shù)據(jù)流圖是描述數(shù)據(jù)處理過(guò)程的工具,是需求理解的邏輯模型的圖形表示,它直接支持系統(tǒng)的功能建模。數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,來(lái)刻畫(huà)數(shù)據(jù)流從輸入到輸出的移動(dòng)變換過(guò)程。數(shù)據(jù)流圖中的主要的圖形元素與說(shuō)明如下:
加工(轉(zhuǎn)換):輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出。
數(shù)據(jù)流:沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標(biāo)注數(shù)據(jù)流名。
存儲(chǔ)文件(數(shù)據(jù)源):表示處理過(guò)程中存放各種數(shù)據(jù)的文件。
源,潭:表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實(shí)體。
73.C
74.B
75.C解析:C語(yǔ)言提供了許多輸入函數(shù),其中有:getchar(輸入字符)、scanf(格式輸入)和gets\u3000(輸入字符串)等。題目要求輸入的是字符串,所以可以排除getchar,而且要求輸入的字符串中包含空格,而scanf函數(shù)默認(rèn)將輸入的空格字符作為分割符,所以空格不會(huì)被輸入,故可排除scanf。getc的作用是從文件中輸入一個(gè)字符,故也不可取。gets函數(shù)可以輸入一整行作為一個(gè)字符串,其中也包括空格字符,故應(yīng)該選擇C。
76.D
77.A
78.A一個(gè)C語(yǔ)言程序能實(shí)現(xiàn)多種算法,所以A)錯(cuò)誤。
79.D
80.C循環(huán)語(yǔ)句;i=1,執(zhí)行i++<4;滿(mǎn)足條件,執(zhí)行循環(huán)體,然后i++<4……,當(dāng)i=3時(shí),先執(zhí)行i<4,成立,然后i++,循環(huán),i=4,判斷i<4不成立,i++,變成5.
81.\n\t(1)錯(cuò)誤:while(i>j)
\n正確:while(i<j)
\n(2)錯(cuò)誤:*str=0;
\n正確:*str=\0;
\n【解析】由函數(shù)proc可知,變量i和j分別存放的是字符串str前面和后面第i個(gè)字符的位置,當(dāng)i<j時(shí),兩個(gè)位置的字符交換。因此,“while(i>j)”應(yīng)改為“while(i<j)”;交叉合并完成后,要為新的字符串添加結(jié)束符,因此,“*str=0;”應(yīng)改為“*str=\0;”,\n
82.voidproc(chararr[M][N],char*b)
\n{
\ninti,j,k=0;
\nfor(i=0;i<M;i++)//i表示其行下標(biāo)
\nfor(j=0;arr[i][j]!=\0;j++)//由于每行的個(gè)數(shù)不等,因此用a[i][j]!=\0來(lái)作為循環(huán)結(jié)束
\n的條件
\nb[k++]=arr[i][j];//把二維數(shù)組中的元素放到b的一維數(shù)組中,
\nb[k]=\0;//最后把b賦\0作為字符串結(jié)束的標(biāo)志
\n)
\n【解析】字符串?dāng)?shù)組中每一行都是一個(gè)一個(gè)完整的字符串,其結(jié)束標(biāo)志為\0。因此通過(guò)字符串的結(jié)束標(biāo)志來(lái)判斷每一個(gè)字符串是否結(jié)束,將字符串?dāng)?shù)組中的所有字符串均賦值新的一維數(shù)組b來(lái)完成字符串的合并。
\n2021年山東省淄博市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.針對(duì)簡(jiǎn)單程序設(shè)計(jì),以下敘述的實(shí)施步驟順序正確的是()。
A.確定算法和數(shù)據(jù)結(jié)構(gòu)、編碼、調(diào)試、整理文檔
B.編碼、確定算法和數(shù)據(jù)結(jié)構(gòu)、調(diào)試、整理文檔
C.整理文檔、確定算法和數(shù)據(jù)結(jié)構(gòu)、編碼、調(diào)試
D.確定算法和數(shù)據(jù)結(jié)構(gòu)、調(diào)試、編碼、整理文檔
2.有以下程序:#include<stdio.h>main(){inta=0,b=0,c=0;c=(a=a=5);(a=b,b+=4);printf("%d,%d,%d\n",a,bc);}程序運(yùn)行后的輸出結(jié)果是()。A.0,4,5B.4,4,5C.4,4,4D.0,0,0
3.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。
A.654321
B.65432
C.65453452
D.654534521
4.設(shè)線(xiàn)性鏈表中結(jié)點(diǎn)的結(jié)構(gòu)為(data,next)。若想刪除結(jié)點(diǎn)p的直接后繼,則應(yīng)執(zhí)行下列()操作。
A.p->next=p->next->next;
B.p=p->nextp->next=p->next->next;
C.p->next=p->next;
D.p=p->next->next;
5.有以下程序main(){intp[7]={11,13,14,15,16,17,18},i=0,k=0;while(i<7&&p[i]%2){k=k+p[i];i++;}printf("%d\n",k);}執(zhí)行后輸出結(jié)果是
A.58B.56C.45D.24
6.下列程序的運(yùn)行結(jié)果為()。#include<stdio.h>main{structdate{intyear,month,day;}today;printf("%d\n",sizeof(structdate));}A.8B.6C.10D.12
7.若要說(shuō)明一個(gè)類(lèi)型名STP,使得定義語(yǔ)句STPs;等價(jià)于Char*s;,以下選項(xiàng)中正確的是()。
A.typedefChar*s;
B.typedefChar*STP;
C.typedefSTP*Char;
D.typedef*CharSTP;
8.以下敘述中錯(cuò)誤的是()
A.在C程序中,APH和aph是兩個(gè)不同的變量
B.C程序中的變量,代表內(nèi)存中的一個(gè)存儲(chǔ)單元,它的值可以根據(jù)需要隨時(shí)修改
C.在C程序中,無(wú)論是整數(shù)還是實(shí)數(shù),都能準(zhǔn)確無(wú)誤地表示
D.在C程序中,一個(gè)正整數(shù)可以用十進(jìn)制、八進(jìn)制和十六進(jìn)制的形式來(lái)表示
9.帶頭結(jié)點(diǎn)的雙向循環(huán)鏈表L為空的條件是()。
A.L==NULLB.L->next==NULLC.L->prior==NULLD.L->next==L
10.下列程序的輸出結(jié)果是()。main{inti=1,j=2,k=3;if(i++==1&&(++j==3==||k++==3))printf("%d%d%d\n",i,j,k);}A.123B.234C.223D.233
11.有以下程序:程序運(yùn)行后的輸出結(jié)果是()。A.20B.13C.10D.31
12.下列選項(xiàng)中非法的字符常量是()。
A.'\t'B.'\039'C.','D.'\n'
13.以下選項(xiàng)中,非法的字符常量是______。
A.'\t'B.'\17'C.\nD.'\xaa'
14.下面程序的輸出結(jié)果是______。#include<stdio.h>main(){char*p[]={"BOOL","OPK","H","SP"};inti:for(i=3;i>=0;i-,i-)printf("%c",*p[i]);printf("\n");}
A.SOB.SPC.SPOPKD.SHOB
15.下列敘述中,不正確的是
A.數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)共享的問(wèn)題
B.數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致
C.數(shù)據(jù)庫(kù)設(shè)計(jì)是指設(shè)計(jì)一個(gè)能滿(mǎn)足用戶(hù)要求,性能良好的數(shù)據(jù)庫(kù)
D.數(shù)據(jù)庫(kù)系統(tǒng)是一個(gè)獨(dú)立的系統(tǒng),但是需要操作系統(tǒng)的支持
16.下述關(guān)于數(shù)據(jù)庫(kù)系統(tǒng)的敘述中,正確的是()。
A.數(shù)據(jù)庫(kù)系統(tǒng)減少了數(shù)據(jù)冗余
B.數(shù)據(jù)庫(kù)系統(tǒng)避免了一切冗余
C.數(shù)據(jù)庫(kù)系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類(lèi)型一致
D.數(shù)據(jù)庫(kù)系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)
17.
18.設(shè)x是一個(gè)int型的,y的值為10,則表達(dá)式x&&y的值為()。
A.1B.0C.與x值相同D.與x值相反
19.
20.在軟件設(shè)計(jì)中,不屬于過(guò)程設(shè)計(jì)工具的是()。
A.PDLB.DFD圖C.PAD圖D.N—S圖
二、2.填空題(20題)21.在軟件開(kāi)發(fā)中,結(jié)構(gòu)化方法包括結(jié)構(gòu)化分析方法、結(jié)構(gòu)化設(shè)計(jì)方法和結(jié)構(gòu)化程序設(shè)計(jì)方法。可行性研究階段采用的是【】。
22.排序是計(jì)算機(jī)程序設(shè)計(jì)中的一種重要操作,常見(jiàn)的排序方法有插入排序、【】和選擇排序等。
23.設(shè)有下列程序:
#include<stdio.h>
#include<string.h>
main()
{inti;
chars[10],t[10];
gets(t);
for(i=0;i<2;i++)
{gets(s);
if(strcmp(t,s)<0)strcpy(t,s);
}
printf("%s\n",t);
}
程序運(yùn)行后,從鍵盤(pán)上輸入(<CR>代表回車(chē)符):CDEF<CR>BADEF<CR>QTHRG<CR>,則程序的輸出結(jié)果是______。
24.以下程序運(yùn)行后的輸出結(jié)果是【】。
#include<stdio.h>
fun(intx)
{if(x/2>0)fun(x/2);
printf("%d",x);
}
main()
{fun(6);}
25.在數(shù)據(jù)結(jié)構(gòu)中,順序存儲(chǔ)結(jié)構(gòu)的數(shù)據(jù)元素所占的存儲(chǔ)空間是______的。
26.與表達(dá)式a+=b等價(jià)的另一書(shū)寫(xiě)形式是______。
27.排序是計(jì)算機(jī)程序設(shè)計(jì)中的一種重要操作,常見(jiàn)的排序方法有插入排序、______和選擇排序。
28.在面向?qū)ο蠓椒ㄖ校畔㈦[蔽是通過(guò)對(duì)象的______性來(lái)實(shí)現(xiàn)的。
29.數(shù)據(jù)庫(kù)系統(tǒng)其內(nèi)部分為三級(jí)模式,即概念模式、內(nèi)模式和外模式。其中,______是用戶(hù)的數(shù)據(jù)視圖,也就是用戶(hù)所見(jiàn)到的數(shù)據(jù)模式。
30.下列程序的輸出結(jié)果是______。
#include<stdio.h>
main()
{intx=3,y=2,z=1;
if(x<y)
if(y<0)z=0;
elsez+=1;
printf("%d\n",z);
}
31.Jackson方法是一種面向【】的結(jié)構(gòu)化方法。
32.在最壞情況下,冒泡排序的時(shí)間復(fù)雜度為【】。
33.下面程序段的輸出結(jié)果是【】。
inti=0,sum=1;
do
{sum+=i++;}
while(i<6);
print("%d\n",sum);
34.下列的for語(yǔ)句的循環(huán)次數(shù)為_(kāi)_____。
for(x=1,y=0;(y!=19)&&(x<7);x++);
35.以下程序運(yùn)行后的輸出結(jié)果是【】。
#include<stdio.h>
#include<string.h>
char*ss(char*s)
char*p,t;
p=s+1:t=*s:
whilet*p){*(,p-1)=*p;p++;}
*(p-1)=t;
returns:}
main()
{char*p,str[10]="abedefgh";
p=ss(str);printf("%s\n".p):}
36.下面程序?qū)⒍S數(shù)a的行和列元素互換后存放另一個(gè)二維數(shù)組b中。請(qǐng)?zhí)羁铡?/p>
main()
{inta[2][3]={{1,2,3},{4,5,6}};
intb[3][2],i,j;
printf("arraya"\n");
for(i=0;i<=1;i++)
{for(j=0;【】;j++)
{printf("%5d",a[i][j]);
【】;}
printf("\n");}
printf("arrayb:\n");
for(i=0;【】;i++)
{for(j=0;j<=1;j++)
printf("%5d",b[i][j]);
printf("\n");}}
37.與結(jié)構(gòu)化需求分析方法相對(duì)應(yīng)的是【】方法。
38.數(shù)據(jù)模型按不同的應(yīng)用層次分為三種類(lèi)型,它們是______數(shù)據(jù)模型、邏輯數(shù)據(jù)模型和物理數(shù)據(jù)模型。
39.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。
40.以下sstrcpy()函數(shù)實(shí)現(xiàn)字符串復(fù)制,即將t所指字符串復(fù)制到s所指向內(nèi)存空間中,形成一個(gè)新的字符串s。清填空。
voidsstrcpy(char*s,char*t)
{while(*s++=【】);}
main()
{charstr1[100],str2[]="abcdefgh";
strcpy(str1,str2);
printf('%s\n",str1);
}
三、1.選擇題(20題)41.在調(diào)用函數(shù)時(shí),如果實(shí)參是簡(jiǎn)單變量,它與對(duì)應(yīng)形參之間的數(shù)據(jù)傳遞方式是______。
A.地址傳遞B.單向值傳遞C.由實(shí)參傳給形參。再由形參傳同實(shí)參D.傳遞方式由用戶(hù)指定
42.下列程序的輸出結(jié)果是()。#include<stdio.h>main(){inta=4printf("%d\n",(a+=a-=a*A));}
A.-8B.14C.0D.-24
43.設(shè)有如下程序:#include"string.h"main(){staticchars1[20],s2[20];scanf("%s",s1);scanf("%s",s2);if(strcmp(s1,s2))printf("@");elseprintf("$");printf("%d\n",strlen(strcat(s1,s2)));}如果從鍵盤(pán)上輸入name<回車(chē)>name1<回車(chē)>,則程序運(yùn)行后的輸出結(jié)果是()
A.$8B.@10C.$9D.@9
44.以下敘述中正確的是()。
A.構(gòu)成C程序的基本單位是函數(shù)
B.可以在一個(gè)函數(shù)中定義另一個(gè)函數(shù)
C.main函數(shù)必須放在其他函數(shù)之前
D.C函數(shù)定義的格式是K&R格式
45.下列選項(xiàng)中不是字符常量的是()。
A.'\v'B.'\x2a'C.'a'D."\0"
46.下列描述中正確的是()。
A.軟件工程只是解決軟件項(xiàng)目的管理問(wèn)題
B.軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問(wèn)題
C.軟件工程的主要思想是強(qiáng)調(diào)在軟件開(kāi)發(fā)過(guò)程中需要應(yīng)用工程化原則
D.軟件工程只是解決軟件開(kāi)發(fā)過(guò)程中的技術(shù)問(wèn)題
47.在軟件設(shè)計(jì)中,不屬于過(guò)程設(shè)計(jì)工具的是()。
A.PDL(過(guò)程設(shè)計(jì)語(yǔ)言)B.PAD圖C.N-S圖D.DFD圖
48.以下敘述中錯(cuò)誤的是A.計(jì)算機(jī)不能直接執(zhí)行用C語(yǔ)言編寫(xiě)的源程序
B.C程序經(jīng)C編譯程序編譯后,生成后綴為.obj的文件是一個(gè)二進(jìn)制文件
C.后綴為.obj的文件,經(jīng)連接程序生成后綴為.exe的文件是一個(gè)二進(jìn)制文件
D.后綴為.obj和.exe的二進(jìn)制文件都可以直接運(yùn)行
49.下面不屬于軟件設(shè)計(jì)原則的是
A.抽象B.模塊化C.自底向上D.信息隱藏
50.下列描述中正確的是()。
A.程序就是軟件
B.軟件開(kāi)發(fā)不受計(jì)算機(jī)系統(tǒng)的限制
C.軟件既是邏輯實(shí)體,又是物理實(shí)體
D.軟件是程序、數(shù)據(jù)與相關(guān)文檔的集合
51.已知inta=1,b=3則ab的值為
A.3B.1C.2D.4
52.若有如下程序:main(){inta,b,C,m,n,k;m=n=k=0;a=-1;b=2;C=3;if(c>0)m=a+b;if(a<=0){if(b>0)if(c<=0)n=a=b;}elseif(c>0)n=a-b;elsek/=c;printf("%d,%d,%d,",m,n,k);}則程序運(yùn)行后的輸出結(jié)果是()。
A.1,0,0B.2,-3,3C.1,-3,3D.1,0,3
53.請(qǐng)讀程序:#include<stdio.h>main(){inta;floatb,c;scanf("%2d%3f%4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f\n",a,b,c)}若運(yùn)行時(shí)從鍵盤(pán)上輸入987643210則上面程序的輸出結(jié)果是______。
A.a=98,b=75,c=4321
B.a=10,b=432,c=8765
C.a=98,b=765.000000c=4321.000000
D.a=98,b=765.0,c=4321.000000
54.有以下程序main(intargc,char*argv[]){intn,i=0;while(argv[1][i]!='\0'){n=fun();i++;}printf("%d\n",n*argc);}intfun(){staticints=0;s=-1;returns;}假設(shè)程序經(jīng)編譯、連接后生成可執(zhí)行文件exam.exe,若鍵入以下命令行cxam123<回車(chē)>則運(yùn)行結(jié)果為
A.6B.8C.3D.4
55.下列選項(xiàng)中不會(huì)引起二義性的宏定義是()。
A.#defineS(x)x*x
B.#defineS(x)(x)*(x)
C.#defineS(x)(x*x)
D.#defineS(x)((x)*(x))
56.軟件需求分析一般應(yīng)確定的是用戶(hù)對(duì)軟件的______。
A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求
57.對(duì)象實(shí)現(xiàn)了數(shù)據(jù)和操作的結(jié)合,是指對(duì)數(shù)據(jù)和數(shù)據(jù)的操作進(jìn)行______。A.A.結(jié)合B.隱藏C.封裝D.抽象
58.下列不合法的main函數(shù)命令行參數(shù)的表示形式是______。
A.main(inta,char*c[]);
B.main(ac,av)intarc;char**av;
C.main(c,v)intc;char*v[];
D.main(argc,argv)intargc;charargv[];
59.在C語(yǔ)言中,如果下面的變量都是血類(lèi)型,則輸出的結(jié)果是______。sum=pad=5;pAd=sum++,pad++,++pAd;printf("%d\n",pad);
A.7B.6C.5D.4
60.設(shè)有以下語(yǔ)句:chara=3,b=6,c;c=ab<<2;則c的二進(jìn)制值是()。
A.11011B.10100C.11100D.11000
四、選擇題(20題)61.若有說(shuō)明“chars1[30]="abc",s2[]="defghi";",則在使用函數(shù)stoat(s1,s2)后,結(jié)果是()。
A.s1的內(nèi)容更新為abcdefghi
B.s1的內(nèi)容更新為defghi\0
C.s1的內(nèi)容更新勾defghiabc\0
D.s1的內(nèi)容更新為abcdefghi\0
62.
63.
下列程序的輸出結(jié)果是()。
#include<stdio.h>
main()
{inta=2,b=3,P;
p=f(a,b);
printf(”%d”,p);
}
intf(a,b)
{intc;
if(a>b)c=1;
elseif(a==b)c=0;
elsec=-l;
return(c);
}
A.-lB.0C.1D.2
64.下列關(guān)系運(yùn)算中,能使經(jīng)運(yùn)算后得到的新關(guān)系中屬性個(gè)數(shù)多于原來(lái)關(guān)系中屬性個(gè)數(shù)的是()。
A.選擇B.連接C.投影D.并
65.
66.有以下程序:
從第一列開(kāi)始輸入以下數(shù)據(jù)(<CR>代表一個(gè)回車(chē)符.:
2743<CR>
程序的輸出結(jié)果是()。
A.66877B.668966C.6677877D.6688766
67.下面不屬于軟件工程三個(gè)要素的是()。
A.工具B.過(guò)程C.方法D.環(huán)境
68.
69.
70.
71.
72.數(shù)據(jù)流圖中帶有箭頭的線(xiàn)段表示的是()。
A.控制流B.事件驅(qū)動(dòng)C.模塊調(diào)用D.數(shù)據(jù)流
73.
74.
75.當(dāng)用戶(hù)要求輸入的字符串中含有空格時(shí),應(yīng)使用的輸入函數(shù)是()。
A.scanfB.getcharC.getsD.getc
76.(62)棧底至棧頂依次存放元素A、B、C、D,在第五個(gè)元素E入棧前,棧中元素可以出棧,則出棧序列可能是()
A.ABCED
B.DBCEA
C.CDABE
D.DCBEA
77.
78.下列敘述中錯(cuò)誤的是()。
A.一個(gè)C語(yǔ)言程序只能實(shí)現(xiàn)一種算法
B.c程序可以由多個(gè)程序文件組成
C.C程序可以由一個(gè)或多個(gè)函數(shù)組成
D.一個(gè)C函數(shù)可以單獨(dú)作為一個(gè)C稃序文件存存
79.
80.已知inti=1;執(zhí)行語(yǔ)句while(i++<4);后,變量i的值為()。
A.3B.4C.5D.6
五、程序改錯(cuò)題(1題)81.下列給定程序中,函數(shù)proc的功能是:首先把b所指字符串中的字符按逆序存放,然后將str1所指字符串中的字符和Str2所指字符串中的字符,按排列的順序交叉合并到str所指數(shù)組中,過(guò)長(zhǎng)的剩余字符接在str所指數(shù)組的尾部。例如,當(dāng)str1所指字符串中的內(nèi)容為ABCDEFG,str2所指字符串中的內(nèi)容為1234時(shí),str所指數(shù)組中的內(nèi)容應(yīng)該為A483C2D1EFG;而當(dāng)str1所指字符串中的內(nèi)容為1234,str2所指字符串中的內(nèi)容為ABCEDFG時(shí),str所指數(shù)組中的內(nèi)容應(yīng)該為1G2F31:4DCBA。
請(qǐng)修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio。h>
#include<string.h>
voidproc(char*strl,char*str2,char*str){
inti,j;charch;
i=0;j=strleu(str2)-1;
//****found****
while(i>j)
{
ch=str2[i];str2[i]=str2[j];str2[j]=ch;
i++;j--;
}
while(*str1||*str2)
{
if(*str1){*str=*str1;str++;str1++;)
if(*str2){*str=*str2;str++;str2++;)
}
//****found****
*str=0:
}
voidmain
{
chars1[100],s2[100],t[200];
system("CLS");
printf("\nEnters1string:");
scanf("%s",sl);
printf("\nEnters2string:");
scanf("%s",s2);
proc(s1,s2,t);
printf("\nTheresultis:%s\n",t);
}
六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫(xiě)函數(shù)proc,該函數(shù)的功能是:將放在字符串?dāng)?shù)組中的M個(gè)字符串(每串的長(zhǎng)度
不超過(guò)N),按順序合并組成一個(gè)新的字符串。
例如,若字符串?dāng)?shù)組中的M個(gè)字符串為:
ABCD
BCDEFG
CDEFGHI
則合并后的字符串內(nèi)容應(yīng)該是ABCDBCDEFGCDEFGHl。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。
試題程序:
#include<stdio.h>
#include<conio.h>
#defineM3
#defineN20
voidproc(chararr[M][N],char*b)
{
}
voidmain
{
charstr[M][N]={"ABCD","BCDEFG","CDEFGHl"),i;
chararr[100]={"##################"};
printf(”Thestrin9:kn”);
for(i=0;i<M;i++)
puts(str[i]);
printf("\n");
proc(str,arr);
printf("TheAstring:\n");
printf("%S",arr);
printf("\n\n");
}
參考答案
1.A\nC語(yǔ)言中程序中的步驟實(shí)現(xiàn)為:先確定程序中的算法和數(shù)據(jù)結(jié)構(gòu),然后進(jìn)行程序的編碼,再進(jìn)行對(duì)程序的調(diào)試,最后進(jìn)行文檔的整理和記錄。使用這種步驟可以方便程序的編寫(xiě)以及在完成后提高代碼的重用性。
\n
2.A本題考查簡(jiǎn)單的賦值運(yùn)算,在程序中c=(a-=am5),先算括號(hào)中的a-=a-5=5,所以c=5,再計(jì)算(a=b,b+=4);,a=b=0,b+=4=0+4=4,所以b=4,所以a=0,b=4,c=5,答案選
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年湘教新版第二冊(cè)生物下冊(cè)月考試卷
- 2025年外研版三年級(jí)起點(diǎn)選擇性必修3歷史上冊(cè)階段測(cè)試試卷
- 2025年粵教新版七年級(jí)生物下冊(cè)月考試卷
- 2025年度農(nóng)貿(mào)場(chǎng)農(nóng)產(chǎn)品質(zhì)量檢測(cè)中心建設(shè)合同4篇
- 2025年金融衍生品交易總合同2篇
- 2025年度牛只運(yùn)輸車(chē)輛GPS定位與實(shí)時(shí)監(jiān)控服務(wù)合同4篇
- 2025版人工智能語(yǔ)音助手定制開(kāi)發(fā)合同4篇
- 房屋出租委托代理合同(2篇)
- 2025年度學(xué)校教室窗簾更換項(xiàng)目承包合同4篇
- 二零二五版人工智能教育平臺(tái)合作合并合同2篇
- 2024版塑料購(gòu)銷(xiāo)合同范本買(mǎi)賣(mài)
- 2024-2025學(xué)年人教新版高二(上)英語(yǔ)寒假作業(yè)(五)
- JJF 2184-2025電子計(jì)價(jià)秤型式評(píng)價(jià)大綱(試行)
- GB/T 44890-2024行政許可工作規(guī)范
- 2024年安徽省中考數(shù)學(xué)試卷含答案
- 2025屆山東省德州市物理高三第一學(xué)期期末調(diào)研模擬試題含解析
- 2024年滬教版一年級(jí)上學(xué)期語(yǔ)文期末復(fù)習(xí)習(xí)題
- 兩人退股協(xié)議書(shū)范文合伙人簽字
- 2024版【人教精通版】小學(xué)英語(yǔ)六年級(jí)下冊(cè)全冊(cè)教案
- 汽車(chē)噴漆勞務(wù)外包合同范本
- 微項(xiàng)目 探討如何利用工業(yè)廢氣中的二氧化碳合成甲醇-2025年高考化學(xué)選擇性必修第一冊(cè)(魯科版)
評(píng)論
0/150
提交評(píng)論