




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2022-2023年河南省鶴壁市全國計(jì)算機(jī)等級考試C語言程序設(shè)計(jì)預(yù)測試題(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.若有定義“intw[3][5];”,則以下不能正確表示該數(shù)組元素的表達(dá)式是()。
A.*(&w[0][0]+1)B.*(*w+3)C.*(*(w+1))D.*(w+1)[4]
2.對于下述說明,不能使變量p->b的值增1的表達(dá)式是______。structexm{inta;intb;floatc}*p;
A.++p->bB.++(p++)->bC.p->b++D.(++p)->b++
3.設(shè)有如下定義:structsk{inta;floatb;}data;int*p;若要使p指向data中的a域,正確的賦值語句是()
A.p=&a;B.p=data.a;C.p=&data.a,D.*p=data.a;
4.
5.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.4321098765B.5678901234C.0987654321D.0987651234
6.在說明語句:int*f();中,標(biāo)識符f代表的是
A.一個用于指向整型數(shù)據(jù)的指針變量
B.一個用于指向一維數(shù)組的行指針
C.一個用于指向函數(shù)的指針變量
D.一個返回值為指針型的函數(shù)名
7.
有以下程序:
main
{intx=102,y=012;
printf("%2d,%2d\n",x,y);
}
執(zhí)行后輸出結(jié)果是()。
A.10,01B.02,12C.102,10D.02,10
8.若i、j已定義成mt型,則下列程序段中內(nèi)循環(huán)體的總執(zhí)行次數(shù)是()。for(i=6;i>0;i--)for(j=0;j<4;j++){…}A.20B.24C.25D.30
9.執(zhí)行下面程序中的輸出語句后,輸出結(jié)果是()。A.65B.20C.15D.10
10.若串S=,software,其子串的數(shù)目是()。
A.8B.37C.36D.9
11.若有說明“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
12.字符(char)型數(shù)據(jù)在微內(nèi)存中的存儲形式是______。
A.反碼B.補(bǔ)碼C.EBCDIC碼D.ASCII碼
13.以下敘述中正確的是()。
A.在C語言中,預(yù)處理命令行都以“#”開頭
B.預(yù)處理命令行必須位于c源程序的起始位置
C.#include<stdi0.h>必須放在C程序的開頭
D.C語言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能
14.為了使模塊盡可能獨(dú)立,要求_____。A.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量強(qiáng)
B.模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱
C.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量弱
D.模塊的內(nèi)聚程度要盡量低,且各模塊間的耦合程度要盡量強(qiáng)
15.需求分析的主要任務(wù)是()。
A.確定軟件系統(tǒng)的功能B.確定軟件開發(fā)方法C.確定軟件開發(fā)工具D.確定軟件開發(fā)入員
16.下列程序的輸出結(jié)果是()。main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);}
A.22B.76C.72D.62
17.有以下程序:#include<stdio.h>voidfun(char*a,charB){while(*(a++)!=‘0’);while(*(a-1)<B)*(a--)=*(a-1);*(a--)=b;}main(){chars[8]=“pmfc”,r,c;c=getchar();fun(s,c);puts(s);}程序運(yùn)行時輸入k并按<Enter>鍵,則輸出結(jié)果為()。
A.pmfkcB.pmfckC.kpmfcD.pmkfc
18.下列定義數(shù)組的語句中,正確的是()。A.#defineN10;intx[N];
B.intN=10;intx[N];
C.int:x[0.10];
D.intx[];.
19.下列關(guān)于C語言數(shù)據(jù)文件的敘述中正確的是A.文件由ASCII碼字符序列組成,C語言只能讀寫文本文件
B.文件由二進(jìn)制數(shù)據(jù)序列組成,C語言只能讀寫二進(jìn)制文件
C.文件由記錄序列組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件
D.文件由數(shù)據(jù)流形式組成,可按數(shù)據(jù)的存放形式分為二進(jìn)制文件和文本文件
20.設(shè)線性鏈表中結(jié)點(diǎn)的結(jié)構(gòu)為(data,next)。已知指針q所指結(jié)點(diǎn)是指針結(jié)點(diǎn)p的直接前驅(qū),若在*q與*p之間插入結(jié)點(diǎn)*s,則應(yīng)執(zhí)行下列()操作。
A.s->next=p->next;p->next=s;
B.q->next=s;s->next=p;
C.p->next=s->next;s->next=p;
D.p->next=s;s->next=q;
二、2.填空題(20題)21.按照“先進(jìn)先出”的原則組織數(shù)據(jù)的結(jié)構(gòu)是______。
22.mystrlen函數(shù)的功能是計(jì)算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁铡?/p>
intmystrlen(char*str)
{inti;
for(i=0;【】!='\0';i++);
return(【】);
}
23.以下程序運(yùn)行后的輸出結(jié)果是______。
main()
inta.b,c;
a=10;b=20;c=(a%b<)||{a/b>1);
printf("%d%d%dn",a,b,c);
}
24.若有以下定義和語句:
intw[10]={23,54,10,33,47,98,72,80,61},*p;
p=w;
則通過指針p引用值為98的數(shù)組元素的表達(dá)式是【】。
25.以下函數(shù)用以求x的y次方。補(bǔ)足所缺語句。
Doublefun(doublex,inty)
{inti;doublez=1;
for(i=1;i【】;i++)
z=【】;
returnz;
}
26.為了列出當(dāng)前盤當(dāng)前目錄中所有第三個字符為C的文件名的有關(guān)信息,應(yīng)該使用命令【】。
27.在先左后右的原則下,根據(jù)訪問根結(jié)點(diǎn)的次序,二叉樹的遍歷可以分為三種;前序遍歷、【】遍歷和后序遍歷。
28.數(shù)據(jù)模型是用來描述數(shù)據(jù)庫的結(jié)構(gòu)和語義的,數(shù)據(jù)模型有概念數(shù)據(jù)模型和結(jié)構(gòu)數(shù)據(jù)模型兩類,E-R模型是【】
29.下列程序的輸出結(jié)果是______。
main()
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)break;
elsei--;}
i+=11;
a+=i;
}
printf("%d\n",A);
}
30.結(jié)構(gòu)化程序設(shè)計(jì)的3種基本結(jié)構(gòu)分別是順序、選擇和______。
31.函數(shù)fun的功能是:根據(jù)以下公式求p的值,結(jié)果由函數(shù)值返回。m與n為兩個正數(shù),且要求m>n。
例如:m=12,n=8時,運(yùn)行結(jié)果應(yīng)該是495.000000。請?jiān)陬}目的空白處填寫適當(dāng)?shù)某绦蛘Z句,將該程序補(bǔ)充完整。
#include<stdio.h>
floatfun(intm,intn)
{inti;
doublep=1.0;
for(i=1;i<=m;i++)【】;
for(i=1;i<=n;i++)【】;
for(i=1;i<=m-n;i++)p=p/i;
returnp;
}
main()
{printf("p=%f\n",fun(12,8));
}
32.fseek函數(shù)的正確調(diào)用形式是【】。
33.軟件定義時期主要包括______和需求分析兩個階段。
34.常用的黑箱測試有等價分類法、【】、因果圖法和錯誤推測法4種。
35.將以下程序段寫成三目運(yùn)算表達(dá)式:【】。
if(a>b)max=a;
elsemax=b;
36.以下程序運(yùn)行后的輸出結(jié)果是【】。
main()
{chars[]="9876",*p;
for(p=s;p<s+2;p++)printf("%s\n",p);
}
37.若有定義:inta[4][4]={{1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},則初始化后,a[2][2]得到的初值是______。
38.mystrlen函數(shù)的功能是計(jì)算str所指字符串的長度,并作為函數(shù)值返回。請?zhí)羁铡?/p>
intmystden(char*str)
{inti;
fo,(i=0;【】!='\0';i++);
return(i);
39.軟件測試中路徑覆蓋測試是整個測試的基礎(chǔ),它是對軟件【】進(jìn)行測試。
40.以下程序的作用是:從名為filea.dat的文本文件中逐個讀入字符并顯示在屏幕上。請?zhí)羁铡?/p>
#include<stdio.h>
main()
{FILE*fp;charch;
fp=fopen(【】);
ch=fgetc(fp);
while(!feof(fp)){putchar(ch);ch=fgetc(fp);}
putchar('\n');fclose(fp);
}
三、1.選擇題(20題)41.若x是整型變量,pb是基本類型為整型的指針變量,則正確的賦值語句是()
A.pb=&x;B.pb=x;C.*pb=&x;D.*pb=*x;
42.設(shè)有定義:floata=2,B=4,h=3;,以下C語言表達(dá)式中與代數(shù)式計(jì)算結(jié)果不相符的是______。
A.(a十B)*h/2B.(1/2)*(a+B)*hC.(a+B)*h*1/2D.h/2*(a+B)
43.以下程序(程序左邊的數(shù)字為符加的行號)。1#include<str.h>2#include<stdio.h>3main()4{chars[]="string";5puts(s);6strcpy(s,"hello");7printf("%3s\n",s);}
A.沒有錯B.第1行有錯C.第6行有錯D.第7行有錯
44.下列程序的輸出結(jié)果是()。#include<stdio.h>intf(inta,intb);main(){inti=2,p,j,k;j=i;k=++i;p=f(j,k);printf("%d",p);}intf(inta,intb){intc;if(a>b)c=1;elseif(a==b)c=0;elsec=-1;return(c);}
A.-1B.1C.2D.編譯出錯,無法運(yùn)行
45.有定義語句:"inta=1,b=2,c=3,x;",則以下選項(xiàng)中各程序段執(zhí)行后,x的值不為3
A.if(c<a)x=1;elseif(b<a)x=2:elsex=3;
B.if(a<3)x=3:elseif(a<2)x=2;elsex=1;
C.if(a<3)x=3;if(a<2)x=2;if(a<l)x=1;
D.if(a<b)x=b;if(b<c)x=cif(c<a)x=a;
46.數(shù)據(jù)存儲和數(shù)據(jù)流都是______,僅僅是所處的狀態(tài)不同。
A.分析結(jié)果B.事件C.動作D.數(shù)據(jù)
47.在結(jié)構(gòu)化方法中,用數(shù)據(jù)流程圖(DFD)作為描述工具的軟件開發(fā)階段是______。
A.可行性分析B.需求分析C.詳細(xì)設(shè)計(jì)D.程序編碼
48.程序設(shè)計(jì)方法要求在程序設(shè)計(jì)過程中()。
A.先編制出程序,經(jīng)調(diào)試使程序運(yùn)行結(jié)果正確后再畫出程序的流程圖
B.先編制出程序,經(jīng)調(diào)試使程序運(yùn)行結(jié)果正確后再在程序中的適當(dāng)位置處加注釋
C.先畫出流程圖,再根據(jù)流程圖編制出程序,最后經(jīng)調(diào)試使程序運(yùn)行結(jié)果正確后再在程序中的適當(dāng)位置處加注釋
D.以上三種說法都不對
49.下列程序的輸出結(jié)果是______。main(){inti;for(i=1;i+1;i++){if(i>4){printf("%d",i++);break;}}printf("%d",i++);}
A.55B.56C.程序錯誤,沒有輸出D.循環(huán)條件永遠(yuǎn)為真,死循環(huán)
50.有以下程序:#include<stdio.h>main(){charcl='1',c2='2';cl=getchar();c2=getchar();putchar(c1);putchar(c2);}當(dāng)運(yùn)行時輸入:a<回車>后,以下敘述正確的是()。
A.變量c1被賦予字符a,c2被賦予回車符
B.程序?qū)⒌却脩糨斎氲?個字符
C.變量c1被賦予字符a,c2中仍是原有字符2
D.變量c1被賦予字符a,c2中將無確定值
51.以下程序段中,不能正確賦字符串(編譯時系統(tǒng)會提示錯誤)的是()。
A.chars[10]="abcdefg";
B.chart[]="abcdefg",*s=t;
C.chars[10];s="abcdefg";
D.chars[10];strcpy(s,"abcdefg");
52.請讀程序:#include<stdio.h>#include<string.j>main(){char*s1="AbCdEf",*s2="aB";s1++;s2++;printf("%d\n",strcmp(s1,s2));}上面程序的輸出結(jié)果是______。
A.正數(shù)B.負(fù)數(shù)C.零D.不確定的值
53.有以下程序point(char*p){p+=3;}main(){charb[4]={'a','b','c','d'},*p=b;point(p);printf("%c\n",*p);}程序運(yùn)行后的輸出結(jié)果是______。
A.aB.bC.cD.d
54.線性表L=(a1,a2,a3,…ai,…an),下列說法正確的是()
A.每個元素都有一個直接前件和直接后件
B.線性表中至少要有一個元素
C.表中諸元素的排列順序必須是由小到大或由大到小
D.除第一個元素和最后一個元素外,其余每個元素都有一個且只有一個直接前件和直接后件
55.若要用函數(shù)fopen打開一個新的二進(jìn)制文件,該文件要既能讀也能寫,則應(yīng)以哪種方式打開文件()。
A.wbB.wb+C.rb+D.rb
56.下列選項(xiàng)中不符合良好程序設(shè)計(jì)風(fēng)格的是A.源程序要文檔化B.數(shù)據(jù)說明的次序要規(guī)范化C.避免濫用goto語句D.模塊設(shè)計(jì)要保證高耦合、高內(nèi)聚
57.有以下程序:#include<stdioh>intfun(intx,inty){if(x!=y)return(y);elsereturn((x+y)/2);}main(){inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,C)));}程序運(yùn)行后的輸出結(jié)果是()。
A.3B.6C.8D.12
58.變量a已被定義為整型,下列表達(dá)式有錯的是
A.a='A'+20B.a-='a'C.a=c+dD.a='c'+'d'
59.在下列字符序列中,不可用做C語言標(biāo)識符的是()
A.student___numB.classC.#88D.month___12
60.下列敘述中正確的是()。
A.在模塊化程序設(shè)計(jì)中,一個模塊應(yīng)該盡量多的包括與其他模塊聯(lián)系的信息
B.在自頂向下、逐步細(xì)化的設(shè)計(jì)過程中,首先應(yīng)設(shè)計(jì)解決問題的第一個細(xì)節(jié)
C.在模塊化程序設(shè)計(jì)中,一個模塊內(nèi)部的控制結(jié)構(gòu)也要符合結(jié)構(gòu)化原則
D.在程序設(shè)計(jì)過程中,不能同時采用結(jié)構(gòu)化程序設(shè)計(jì)方法與模塊化程序設(shè)計(jì)方法
四、選擇題(20題)61.執(zhí)行下面的程序后,a的值為()。main{inta,b;for(a=1,b=1;a<=10;a++){if(b%3==l){b+=3;continue;}b-=5;}}A.7B.8C.9D.10
62.
63.以下關(guān)于return語句的敘述中正確的是()。
A.一個自定義函數(shù)中必須有一條return語句
B.一個白定義函數(shù)中可以根據(jù)不同情況設(shè)置多條return語句
C.定義成void類型的函數(shù)中可以有帶返回值的return語句
D.沒有return語句的自定義函數(shù)在執(zhí)行結(jié)束時不能返回到調(diào)用處
64.
65.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
66.設(shè)有二元關(guān)系R和三元關(guān)系s,下列運(yùn)算合法的是()。
A.R∩SB.R∪SC.R-SD.R×S
67.
68.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.-3,-1,1,3,B.-12,-3,0,0,C.0,1,2,3,D.-3,-3,-3,-3,
69.
70.以下有4組用戶標(biāo)識符,其中合法的一組是()。
A.FOr-subCase
B.4dDOSize
C.f2_G3IFabc
D.WORDvoiddefine
71.(62)棧底至棧頂依次存放元素A、B、C、D,在第五個元素E入棧前,棧中元素可以出棧,則出棧序列可能是()
A.ABCED
B.DBCEA
C.CDABE
D.DCBEA
72.有以下結(jié)構(gòu)體說明、變量定義和賦值語句:
則以下scanf函數(shù)調(diào)用語句有錯誤的是()。
A.scanf(”%s”,s[0].name);
B.scanf(”%d”,&s[0].a(chǎn)ge);
C.scanf(”%c”,&(ps一>sex));
D.scanf(”%d”,ps一>age):
73.
74.若有說明“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
75.有以下程序:
#include<stdio.h>
voidmain()
{fILE*fp;inti,a[4]={1,2,3,4},b;
fp=fopen("data.dat","wb");
for(i=0;i<4;i++)fwrite(&a[i],sizeof(int),1,fp);
fclose(fp)
fp=fopen("data.dat","rb");
fseek(fp,-2L*sizeof(int),1,fp);/*文件中讀取sizeof(int)字節(jié)的數(shù)據(jù)到變量b中*/
fclose(fp);
printf("%d\n",b);
}
程序中fseek(fp,-2L*sizeof(int),SEEK_END);語句的作用是()。
A.使位置指針從文件末尾向前移2*sizeof(int)字節(jié)
B.使位置指針從文件末尾向前移2字節(jié)
C.使位置指針向文件末尾向前移懂2*sizeof(int)字節(jié)
D.使位置指針向文件末尾移動2字節(jié)
76.以下正確的字符串常量是()。
A."\\\"B.abcC.OlympicGamesD.""
77.
78.
79.下面描述中,符合結(jié)構(gòu)化程序設(shè)計(jì)風(fēng)格的是()。
A.使用順序、選擇和重復(fù)(循環(huán).三種基本控制結(jié)構(gòu)表示程序的控制邏輯
B.模塊只有一個入口,可以有多個出口
C.注重提高程序的執(zhí)行效率
D.不使用goto語句
80.有以下程序:
程序運(yùn)行后的輸出結(jié)果是()。
A.2,1,1,2B.1,2,1,2C.2,1,2,1D.1,2,2,1
五、程序改錯題(1題)81.下列給定的程序中,函數(shù)proc()的功能是:判斷字符ch是否與sir所指字符串中的某個字符相同;若相同,則什么也不做,若不同,則將其插在串的最后。請修改程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.請編寫一個函數(shù)proc,它的功能是:求出1~m(含m)能被7或11整除的所有整數(shù)放在數(shù)組a中,通過n返回這些數(shù)的個數(shù)。
例如,若傳給m的值為70,則程序輸出:
7111421222833354244495556636670
注意:部分源程序給出如下。
請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填人所編寫的若干語句。
試題程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#defineN100
voidproc(intm,int*a,int*n)
{}
voidmain
{
intarr[N],n,k;
system("CLS");
proc(70,arr,&n);
for(k=0;k<n;k++)
if((k+1)%20==0)//每行輸出20個數(shù)
{printf("%4d",arr[k]);
printf("\n");
}
else
printf("%4d",arr[k]);
printf("\n");
}
參考答案
1.DA選項(xiàng)中,“*(&w[0][0]+1)”表示“w[0][1]”;B選項(xiàng)中,“*(*w+3)”表示“w[0][3]”;C選項(xiàng)中,“*(*(w+1))”表示“w[1][0]”;D選項(xiàng)中,“*(w+1)[4]”的正確寫法是“(*(w+1))[4]”,表示“w[1][4]”。故本題答案為D選項(xiàng)。
2.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。
3.C解析:data是—結(jié)構(gòu)體變量,a是它的成員,因此引用a域的正確方法是:data.a,取它的地址賦值給指針變量p的語句應(yīng)該是:p=&data.a。選項(xiàng)A,將a的地址直接賦給了p,而忽略了a為結(jié)構(gòu)體內(nèi)部的一個成員,而不是一單獨(dú)的變量,故選項(xiàng)A不正確;選項(xiàng)B在p=data.a表達(dá)式中右邊為一個結(jié)構(gòu)體變量的成員不是地址,而左邊為一指針應(yīng)該將一地址賦給它,故選項(xiàng)B不正確;選項(xiàng)D表達(dá)式*p=data.a是將結(jié)構(gòu)體變量中的成員a的值賦給指針p所指向的變量值,而不是使指針p指向data中的a域,故選項(xiàng)D不正確:4個選項(xiàng)中只有C正確。
4.B本題考查標(biāo)準(zhǔn)輸入輸出函數(shù)和循環(huán)語句。gets(s)函數(shù)的作用是將輸入的字符讀入字符串s,直到遇到回車。而scanf函數(shù)接收字符串時的結(jié)束標(biāo)志為回車或者空格。因此選項(xiàng)B)不能,選項(xiàng)C)和選項(xiàng)D)中按字符逐個讀入字符串s中,直到讀入的字符是換行符為止,因此B正確。
5.B該程序首先給一維數(shù)組賦值,然后三次調(diào)用fun函數(shù),其中fun(a,0,3);功能是將一維數(shù)組中第1個元素和第4個元素互換,第2個元素和第3個元素互換;其中fun(a,4,9);功能是將一維數(shù)組中第5個元素和第10個元素互換,第6個和第9個元素互換,第7個元素和第8個元素互換;其中fun(a.O,9);功能是將將一維數(shù)組中第l個元素和第10個元素互換,第2個元素和第9個元素互換……依此類推。因此B選項(xiàng)正確。
6.D解析:帶回指針值的函數(shù),其一般定義形式為:
類型標(biāo)識符*函數(shù)名(參數(shù)表);
例如;int*f(x,y);
其中,f是函數(shù)名,調(diào)用它以后能得到一個指向整型數(shù)據(jù)的指針(地址),x,y是函數(shù)f的形參。在f的兩側(cè)分別為*運(yùn)算符和()運(yùn)算符,而()優(yōu)先級高于*,因此f先與()結(jié)合,顯然是函數(shù)形式。這個函數(shù)前面有一個*,表示此函數(shù)是指針型函數(shù)(函數(shù)值是指針)。前面的int表示返回的指針指向整型變量。
7.C解析:本題中,“printf('%2d,%2d\\n',x,y)”表示以逗號隔開輸出兩個十進(jìn)制整數(shù),每個整數(shù)域?qū)捠?。而在C語言中規(guī)定:當(dāng)域?qū)捫∮趯?shí)際寬度時域?qū)挷黄鹱饔?,按?shí)際寬度輸出,因此最后的輸出值為102和10(y的初值012表示八進(jìn)制整數(shù)12,等于十進(jìn)制的10)。所以,4個選項(xiàng)中選項(xiàng)C符合題意。
8.B本題考查for循環(huán)的使用。對于第1個for循環(huán),任何一個i,內(nèi)層j的循環(huán)都要使j~0到3,j=4時不符合,所以退出j循環(huán);然后i減1,J仍然要從0~3,j=4時退出J循環(huán)直到i變成0,退出i循環(huán)。第一條for語句執(zhí)行6次,第二條for語句執(zhí)行4次,所以內(nèi)循環(huán)體執(zhí)行6*4=24次。
9.B
10.B
11.Dstrcat(s1,s2)函數(shù)的功能是把s2字符串連接到s1字符串的末尾,要保證s1有足夠的空間容納下連接后的字符串。
12.D解析:將一個字符常量放到一個字符變量中,實(shí)際上并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的ASCII碼值放到存儲單元中。
13.A預(yù)處理命令是以“#”號開頭的命令,它們不是C語言的可執(zhí)行命令,這些命令應(yīng)該在函數(shù)之外書寫,一般在源文件的最前面書寫,但不是必須在起始位置書寫,所以B、c錯誤。C語言的預(yù)處理能夠?qū)崿F(xiàn)宏定義和條件編譯等功能,所以D錯誤。
14.B解析:模塊獨(dú)立性是指每個模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。耦合性與內(nèi)聚性是模塊獨(dú)立性的兩個定性標(biāo)準(zhǔn),耦合與內(nèi)聚是相互關(guān)聯(lián)的。在程序結(jié)構(gòu)中,各模塊的內(nèi)聚性越強(qiáng),則耦合性越弱。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性。本題答案為B。
15.A需求分析是軟件開發(fā)之前必須要做的準(zhǔn)備工作之一。需求是指用戶對目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計(jì)約束等方面的期望。故需求分析的主要任務(wù)是確定軟件系統(tǒng)的功能。本題答案為A選項(xiàng)。
16.C解析:函數(shù)slzeof(a)的功能是求出字符串a(chǎn)中的字符占用存儲空間的大小,由于字符數(shù)組a有長度為7,所以i=7;函數(shù)strlen(a)的功能是:求出字符串a(chǎn)的長度。而每個字符串都以'\\0'為字符串的結(jié)束標(biāo)記,所以j的值等于2。
17.Dmain函數(shù)定義一個字符數(shù)組s,使用字符串“pmfc”初始化;然后通過getchar讀取一個字符k到字符變量c;再將字符串s和字符c傳入fun函數(shù)。函數(shù)fun首先通過while循環(huán)遍歷字符串s,直到指針a指向字符串結(jié)束標(biāo)識‘\\0’后的一個字符,如下圖所示。接著通過while循環(huán)逆序遍歷字符串s,首先a-1的字符位‘\\0’,它的ASCII值為0,小于b(字符‘k’)的ASCII值107,那么將‘\\0’賦給下標(biāo)為5的元素位置。接著繼續(xù)向前遍歷,同理,將‘c’(ASCII值為99)賦給下標(biāo)為4的元素位置,將‘f’(ASCII值為102)賦給下標(biāo)為3的元素位置。由于‘m’(ASCII值為109)大于b,因此循環(huán)結(jié)束,將b(字符‘k’)賦給下標(biāo)為2的元素位置,此時str字符串如下。故本題答案為D選項(xiàng)。
18.A[解析]數(shù)組說明的一般形式為:類型說明符數(shù)組名[常量表達(dá)式]。B)中N是變量,不能用變量定義數(shù)組長度。C)選項(xiàng)中數(shù)組長度是非法的一串?dāng)?shù)字。定義數(shù)組時必須為其指明長度,D)選項(xiàng)中數(shù)組長度為空,所以非法。\u3000\u3000
19.D解析:C語言把文件看成是一個字符(字節(jié))的序列,即由一個一個字符(字節(jié))的數(shù)據(jù)順序組成。根據(jù)數(shù)據(jù)的組織形式,可分為ASCII文件和二進(jìn)制文件。ASCII文件又稱文本文件,它的每一個字節(jié)放一個ASCII代碼,代表一個字符。二進(jìn)制文件是把內(nèi)存中的數(shù)據(jù)按其在內(nèi)存中的存儲形式原樣輸出到磁盤上存放。
20.B
21.隊(duì)列隊(duì)列解析:隊(duì)列是一種特殊的線性表,只允許在表的一端插入元素,在表的另一端刪除元素,插入元素的一端叫做“隊(duì)尾”,刪除元素的一端叫做“隊(duì)頭”,先插入的元素先被刪除,是按先進(jìn)先出的原則組織數(shù)據(jù)的。
22.str[i]或str+iistr[i]或str+i\r\ni
23.1020010200解析:本題的關(guān)鍵在于求表達(dá)式(a%b<1)‖a/b>1)的值。已知a=10,b=20,所以a%b=10,因此(a%b<1)為“假”。而a/b=0,因此(a/b>1)亦為“假”。,D運(yùn)算的兩邊同時為“假”,所以整個表達(dá)式的值為。“假”,即c等于0。所以,本題最終輸出為:10200。
24.*(p+5)
25.<y+1z*x
26.DIR??C*.*
27.中序中序解析:在先左后右的原則下,根據(jù)訪問根結(jié)點(diǎn)的次序,二叉樹的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷.前序遍歷是指在訪問根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹;并且遍歷左、右子樹時,仍然先訪問根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹。中序遍歷指在訪問根結(jié)點(diǎn)、遍歷左了樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹:并且遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹。后序遍歷指在訪問根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先遍歷右子樹,然后訪問根結(jié)點(diǎn),最后遍歷左子樹;并且遍歷左、右子樹時,仍然光遍歷右子樹,然后訪問根結(jié)點(diǎn),最后遍歷左子樹。
28.概念數(shù)據(jù)模型概念數(shù)據(jù)模型
29.3232解析:while(表達(dá)式)的功能是:首先計(jì)算表達(dá)式的值,若為真,則執(zhí)行循環(huán)體語句,執(zhí)行完畢,再計(jì)算表達(dá)式的值,若仍為真,則重復(fù)執(zhí)行循環(huán)體語句,直到表達(dá)式的值為假時,結(jié)束while語句的執(zhí)行,繼續(xù)執(zhí)行while語句后面的語句:i=0時滿足循環(huán)條件,也滿足if的條件,執(zhí)行語句得i=11,a=11,第2次循環(huán)不滿足if的條件,執(zhí)行i--,i=10,執(zhí)行i+=11;a+=i后,得i=21,a=32,不滿足i<20,循環(huán)結(jié)束。
30.重復(fù)(循環(huán))重復(fù)(循環(huán))解析:結(jié)構(gòu)化程序設(shè)計(jì)包括3種基本的結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和重復(fù)結(jié)構(gòu)(循環(huán)結(jié)構(gòu)),利用這3種結(jié)構(gòu)就足以表達(dá)出各種其他形式結(jié)構(gòu)的程序設(shè)計(jì)方法。其中利用循環(huán)結(jié)構(gòu),可以簡化大量的程序執(zhí)行。
31.p=p*ip=p/ip=p*ip=p/i解析:本題中,欲求p的值,需要先求m!,n!,(m-n)!,可分別用循環(huán)語句實(shí)現(xiàn)。
32.fseek(文件指針位移量起始點(diǎn))fseek(文件指針,位移量,起始點(diǎn))解析:本題考查函數(shù)fseek的用法。fseek函數(shù)的調(diào)用形式為:
fseek(文件指針,位移量,起始點(diǎn))
“起始點(diǎn)”用0,1或2代替,其中,0代表“文件開始”;1為“當(dāng)前位置”;2為“文件末尾”?!拔灰屏俊敝敢浴捌鹗键c(diǎn)”為基點(diǎn),向前移動的字節(jié)數(shù)。ANSIC和大多數(shù)C版本要求位移量是long型數(shù)據(jù),這樣當(dāng)文件的長度大于64k時不致出現(xiàn)問題。ANSIC標(biāo)準(zhǔn)規(guī)定在數(shù)字的末尾加一個字母L,就表示long型。
33.可行性研究可行性研究解析:軟件生命周期一般包括可行性研究與需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測試、交付使用及維護(hù)等,還可以將軟件生命周期分為三個階段:①軟件定義階段:可行性研究和需求分析;②軟件開發(fā)階段:設(shè)計(jì)、實(shí)現(xiàn)和測試;③軟件運(yùn)行維護(hù)階段:交付使用和維護(hù)。
34.邊值分析法邊值分析法解析:本題考查了黑箱測試的方法。黑箱測試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測試用例。常用的黑箱測試有等價分類法、邊值分析法、因果圖法和錯誤推測法。
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.98768769876\r\n876解析:指針是一種數(shù)據(jù)類型,這種數(shù)據(jù)類型的變量用來存放內(nèi)存中分配的存儲單元的首地址。指針的定義:
類型說明符*指針變量名;
37.88解析:二維數(shù)組可以看成是按矩陣形式排列的,題目中給二維數(shù)組賦初值是按行分段賦值的,a[4][4]可以分解為4個一維數(shù)組,其數(shù)組名分別為a[0]、a[1]、a[2]、a[3],這4個一維數(shù)組都有4個元素,a[0]的元素為ap[0][0]、a[0][1]、a[0][2]、a[0][3]。
38.*(str+i)或str[i]*(str+i)或str[i]解析:str是指針變量,它指向字符型數(shù)據(jù),在循環(huán)過程中,用*(str+i)或str[i]來訪問字符串的第i個元素,判斷是否是結(jié)束標(biāo)志,如果不是,i=i+1,繼續(xù)取下一個元素進(jìn)行判斷,直到*(str+i)的值為'\\0'為止。
39.結(jié)構(gòu)結(jié)構(gòu)解析:路徑測試是白盒測試方法中的—種,它要求對程序中的每條路徑最少檢查一次,目的是對軟件的結(jié)構(gòu)進(jìn)行測試。
40.“filea.dat”“r”“filea.dat”,“r”解析:fopen函數(shù)的調(diào)用方式通常為fopen(文件名,使用文件方式)。本題中要求程序可以打開filea.dat文件,并且是要讀取文件中的內(nèi)容,所以空白處應(yīng)當(dāng)填入'filea.dat','r'。
41.A
42.B解析:選項(xiàng)B錯誤,不符合題意。
43.B解析:字符串復(fù)制函數(shù)strcpy包含在頭文件string.h中,因此,程序中的第1行文件包含命令是錯誤的。
44.A解析:函數(shù)調(diào)用相當(dāng)于f(2,3),程序運(yùn)算結(jié)果為-1。
45.C解析:本題考核的知識點(diǎn)是if-else語句的程序分析。
選項(xiàng)A首先判斷if語句條件中表達(dá)式的值“3<1”為假,然后執(zhí)行最近的else后面的語句,該else后面又為if-else語句,在這個if-else語句中首先判斷該if語句條件中表達(dá)式的值“2<1”為假,程序執(zhí)行其最近的else后面的語句,將3賦值給x。
選項(xiàng)B中首先判斷if語句條件中表達(dá)式的值“1<3”為真,然后執(zhí)行最近的else后面的語句“x=3”,后面的else不再執(zhí)行,最后x的值為3。
選項(xiàng)C中,首先選執(zhí)行第一條if,由于“1<3”為真,執(zhí)行此if后面的語句“x=3”,接著執(zhí)行第二條if語句,由于“1<2”為真,執(zhí)行此if后面的語句“x=2”,接著執(zhí)行第三條語句,由于“1<1”為假,后面的語句不執(zhí)行,所以最后的x值為2不為3。
選項(xiàng)D中,首先選執(zhí)行第一條if語句,由于“a<b”為真,執(zhí)行此if后面的語句“x=b”;接著執(zhí)行第二條if語句,由于“b<c”,為真,執(zhí)行此if后面的語句“x=c”,接著執(zhí)行第三條if語句,由于“c<a”為假,后面的語句不執(zhí)行,所以最后的x值為c即為3.所以,4個選項(xiàng)中選項(xiàng)c符合題意。
46.D解析:數(shù)據(jù)流圖有4種成分:源點(diǎn)或終點(diǎn)、處理、數(shù)據(jù)存儲和哦數(shù)據(jù)流。數(shù)據(jù)存儲是處于靜止?fàn)顟B(tài)的數(shù)據(jù),數(shù)據(jù)流是處于運(yùn)動中的數(shù)據(jù)。
47.B[答案]B
[考點(diǎn)]軟件工程基礎(chǔ)
[評析]
分析員對用戶的要求作出分析,并畫出數(shù)據(jù)流程圖,該圖通俗易懂,不涉及到如何在計(jì)算機(jī)上實(shí)現(xiàn),這是需求分析階段。
軟件工程中的瀑布模型:
問題定義,可行性研究,需求分析,概要設(shè)計(jì),詳細(xì)設(shè)計(jì),編碼,測試,運(yùn)行和維護(hù)
相關(guān)鏈點(diǎn):
層次圖和HIPO圖是概要設(shè)計(jì)中的工具圖;程序流程圖、N-S圖、問題分析PAD圖、設(shè)計(jì)程序語言PDL是詳細(xì)設(shè)計(jì)中的工具圖
48.D解析:在程序設(shè)計(jì)過程中,一個很重要的環(huán)節(jié)是首先確定實(shí)現(xiàn)各種功能的算法,并且用某種工具將它精確地表達(dá)出來。流程圖是其中的工具之一。因此,程序設(shè)計(jì)的過程應(yīng)是先畫出流程圖,然后根據(jù)流程圖編制出程序。因此,選項(xiàng)A中的說法是錯誤的。程序中的注釋是為了提高程序的可讀性,使程序易于理解、易于維護(hù),注釋必須在編制程序的同時加入。因此,選項(xiàng)B和C中的說法也都是錯誤的。
49.B解析:本程序中有個for循環(huán),但注意到for循環(huán)的條件是“i+1”,也就是只要i+1的值為真(非零值均為真),就執(zhí)行循環(huán)。當(dāng)i=1的時候,i+1的值為真,判斷if條件不成立,執(zhí)行i++,輸出i的值為5。
50.A解析:函數(shù)getchar()的作用是從終端(或系統(tǒng)隱含的輸入沒備)輸入一個字符,且只能接收一個字符(回車符也算一個字符)。所以本題中c1被賦值字符a,c2被賦予回車符。
51.C解析:選項(xiàng)A中定義了一個字符型數(shù)組并賦初值,故選項(xiàng)A正確;選項(xiàng)B定義了一個字符型數(shù)組t并初始化,然后定義了一個指針變量s并讓它指向t,故選項(xiàng)B正確;選項(xiàng)C先定義?一個長度為10的字符型數(shù)組,然后在給它賦值,這時應(yīng)該分別給數(shù)組中的每個元素賦值,故選項(xiàng)C不正確;選項(xiàng)D中先定義了一個長度為10的字符型數(shù)組s,然后通過字符串拷貝函數(shù)將字符串“abedefs”賦值給它,選項(xiàng)D正確。所以,4個選項(xiàng)中選項(xiàng)C符合題意。
52.A解析:函數(shù)strcmp的功能是比較字符串s1和s2,如果s1>s2,則返回個正數(shù):如果s1<s2,則返回負(fù)數(shù),否則返回零。由于本題中小寫字母b的ASCII碼值大于大寫字母B,故s1>s2,所以函數(shù)的值為正數(shù)。
53.A解析:本題是一個陷阱,看似考查函數(shù)的傳址調(diào)用,其實(shí)考的是傳值調(diào)用。在C語言中,不管你給函數(shù)傳遞的參數(shù)是什么,指針也好數(shù)組名也罷,系統(tǒng)都是嚴(yán)格的將實(shí)參的值復(fù)制了一份作為函數(shù)的形參,即傳值調(diào)用。在函數(shù)中,對形參中的值怎么改變都不會影響到實(shí)參。那傳址調(diào)用又是怎么實(shí)現(xiàn)的呢?那是因?yàn)樵诤瘮?shù)中改變的不是形參指針變量中的值,而是形參指針變量所指內(nèi)存中的值。其實(shí)骨子里還是將實(shí)參指針的值復(fù)制?一份給形參指針變量,它們是兩個獨(dú)立的互不相干的變量,只不過指向的內(nèi)存地址值一模一樣罷了。本題的函數(shù)只是改變了形參指針變量p的值,這對程序沒有任何影響,主函數(shù)中p一開始就是指向b[0],最后輸出時還是b[0]的值'a'。所以應(yīng)該選擇A。
54.D解析:線性表可以為空表,排除選項(xiàng)B。第一個元素沒有直接前件,最后一個元素沒有直接后件,故排除選項(xiàng)A。線性表的定義中,元素的排列沒有規(guī)定大小順序,故選項(xiàng)C也有誤,只有D項(xiàng)是正確的。
55.B解析:本題考查文件使用方式標(biāo)識符。方式“wb”為輸出打開一個二進(jìn)制文件;方式“wb+”為讀寫建立一個新的二進(jìn)制文件;方式“rb+”為讀寫打開一個二進(jìn)制文件:方式“rb”為輸入打開一個二進(jìn)制文件。
56.D解析:編程風(fēng)格是在不影響性能的前提下,有效地編排和組織程序,以提高可讀性和可維護(hù)性。更直接地說,風(fēng)格就是意味著要按照規(guī)則進(jìn)行編程。這些規(guī)則包括:(1)程序文檔化。就是程序文檔包含恰當(dāng)?shù)臉?biāo)識符、適當(dāng)?shù)淖⒔夂统绦虻囊曈X組織等。(2)數(shù)據(jù)說明。出于閱讀理解和維護(hù)的需要,最好使模塊前的說明語句次序規(guī)范化。此外,為方便查找,在每個說明語句的說明符后,數(shù)據(jù)名應(yīng)按照字典順序排列。(3)功能模塊化。即把源程序代碼按照功能劃分為低耦合、高內(nèi)聚的模塊。(4)注意goto語句的使用。合理使用goto語句可以提高代碼的運(yùn)行效率,但goto語句的使用會破壞程序的結(jié)構(gòu)特性。因此,除非確實(shí)需要,否則最好不使用goto語句。因此,本題的正確答案是D。
57.B
58.C
59.C
60.CC。【解析】在模塊化程序設(shè)計(jì)中,模塊之間的聯(lián)系可以通過程序的控制結(jié)構(gòu)來實(shí)現(xiàn),在自頂向下、逐步細(xì)化的設(shè)計(jì)過程中,首先要考慮全局目標(biāo),而不是細(xì)節(jié)。在程序設(shè)計(jì)中模塊化和結(jié)構(gòu)化可以同時使用,一個模塊的內(nèi)部結(jié)構(gòu)也要符合結(jié)構(gòu)化設(shè)計(jì)原則。
61.D本題考查continue的用法,continue語句的作用是結(jié)束本次循環(huán),直接進(jìn)行下次循環(huán)。所以在程序中,只有當(dāng)a=10時,才退出循環(huán),故選擇D選項(xiàng)。
62.A
63.Breturn語句又稱為返回語句。該語句的格式如下:“return;”和“return(<表達(dá)式>);”。其中,return是關(guān)鍵字。該語句有兩種格式:不帶返回值格式和帶返回值格式。該語句用在被調(diào)用函數(shù)中,在被調(diào)用函數(shù)中執(zhí)行到該語句時,將結(jié)束對被調(diào)用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國水泥耐火材料數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025年甘肅省白銀市單招職業(yè)適應(yīng)性測試題庫完美版
- 2025至2030年中國氣泡擦洗逆流凈水器數(shù)據(jù)監(jiān)測研究報(bào)告
- 2024中鋁(雄安)礦業(yè)有限責(zé)任公司實(shí)習(xí)生招聘4人筆試參考題庫附帶答案詳解
- 2025至2030年中國桃殼濾料數(shù)據(jù)監(jiān)測研究報(bào)告
- Module11 Unit2(教學(xué)設(shè)計(jì))-2024-2025學(xué)年外研版英語八年級上冊
- 榮縣城關(guān)初級中學(xué)校農(nóng)村初中校舍改造工程施工組織設(shè)計(jì)方案
- 黑龍江省龍東地區(qū)部分學(xué)校2024-2025學(xué)年高一上學(xué)期階段測試地理試題(三)(解析版)
- 2025年幼兒園大班科學(xué)《圓形的妙用》標(biāo)準(zhǔn)教案最終版
- 2025至2030年中國報(bào)刊雜志塑料袋數(shù)據(jù)監(jiān)測研究報(bào)告
- 風(fēng)電場運(yùn)行維護(hù)招標(biāo)文件
- 證據(jù)目錄模板
- 維保收費(fèi)標(biāo)準(zhǔn)清單(房屋維修物業(yè)用表)
- 幼兒園小班科學(xué)教案《蝸牛爬爬》含PPT課件含反思
- 繼發(fā)性甲狀旁腺功能亢進(jìn)癥的治療
- 2023年北京市中學(xué)生數(shù)學(xué)競賽高中一年級初賽試題解答
- GB/T 3452.5-2022液壓氣動用O形橡膠密封圈第5部分:彈性體材料規(guī)范
- HY/T 0349-2022海洋碳匯核算方法
- HY/T 083-2005海草床生態(tài)監(jiān)測技術(shù)規(guī)程
- 2023年遼寧裝備制造職業(yè)技術(shù)學(xué)院高職單招(數(shù)學(xué))試題庫含答案解析
- 馬工程教材《公共財(cái)政概論》PPT-第三章 財(cái)政支出總論
評論
0/150
提交評論