




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2021-2022年山東省濱州市全國計算機(jī)等級考試C語言程序設(shè)計模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.以下能正確定義字符串的語句是()。
A.charstr=“\x43”;
B.charstr[]=“\0”;
C.charstr=”;
D.charstr[]={‘\064’};
2.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。
A.15,12,9,B.15,13,11,C.15,11,7,D.15,15,15,
3.下列有關(guān)數(shù)據(jù)庫的描述,正確的是______。
A.數(shù)據(jù)庫是一個DBF文件B.數(shù)據(jù)庫是一個關(guān)系C.數(shù)據(jù)庫是一個結(jié)構(gòu)化的數(shù)據(jù)集合D.數(shù)據(jù)庫是一組文件
4.以下定義數(shù)組的語句錯誤的是()。
A.intnum[]={1,2,3,4,5,6};
B.intnum[][3]={{1,2},3,4,5,6};
C.intnum[2][4]={{1,2},{3,4},{5,6}};
D.intnum[][4]={1,2,3,4,5,6};
5.有以下程序:#include<stdio.h>typedefstruct{intnum;charname[10];intscore;}PER;voidfun(PERx[]){intt;if(x[0].score>x[1].score){t=x[0].score;x[0].score=x[1].score;x[1].score=t;}}main(){PERs[2]={{1001,“zhang”,621},{1002,“wang”,585}};inti;fun(s);for(i=0;i<2;i++)printf(“%d,%s,%d,”,s[i].num,s[i].name,s[i].score);}程序的運(yùn)行結(jié)果是()。A.1001,zhang,585,1002,wang,621,
B.1001,zhang,621,1002,wang,585,
C.1002,wang,585,1001,zhang,621,
D.1002,wang,621,1001,zhang,585,
6.以下選項中,合法的一組C語言數(shù)值常量是()。
A.12.0Xa234.5e0
B.028.5e-3-0xf
C..1774e1.50abc
D.0x8A10,0003.e5
7.若有以下程序
則程序的輸出結(jié)果是
A.3B.7C.6D.10
8.
9.下列變量聲明合法的是()。A.shorta=1.4e-1;
B.doubleb=1+3e2.8;
C.longdo=0xfdaL;
D.float2aaa=1e-3;
10.下列程序的輸出結(jié)果是()。char*point(char*pt):main{charb[4]={a,c,s,f),*pt=b;pt=point(pt);printf("%c\n",*pt);}point(char*p){p+=3;returnp;}A.sB.cC.fD.a
11.若變量已正確定義,則語句“s=32;s^=32;printf(“%d”,s);”的輸出結(jié)果是()。
A.-1B.0C.1D.32
12.若有以下程序:inta=1,b=2;a=a^b;b=b^a;則執(zhí)行以上語句后a和b的值分別是()。A.a=1,b=2B.a=3,b=lC.a=3,b=2D.a=2,b=l
13.以下關(guān)于C語言的敘述中正確的是()。
A.C語言中的注釋不可以夾在變量名或關(guān)鍵字的中間
B.C語言中的變量可以在使用之前的任何位置進(jìn)行定義
C.在C語言算術(shù)表達(dá)式的書寫中,運(yùn)算符兩側(cè)的運(yùn)算數(shù)類型必須一致
D.C語言的數(shù)值常量中夾帶空格不影響常量值的正確表示
14.設(shè)有定義:int?x=2,以下表達(dá)式中,值不為6的是()。
A.2*<.x+=2B.x++.2*xC.x=x*(1+x)D.x*=x+1
15.有以下程序:#include<stdio.h>main(){intx=1,y=0,a=0,b=0;switch(x){ case1: switch(y) { case0:a++;break; case1:b++;break; } case2:a++;b++;break; case3:a++;b++;}printf(“a=%d,b=%d\n”,a,b);}程序的運(yùn)行結(jié)果是()。
A.a=2,b=2B.a=2,b=1C.a=1,b=1D.a=1,b=0
16.若有定義:“inta=4,b=5;floatx=3.4,y=2.1;”,則下列表達(dá)式的值為()。(float)(a+b)/2+(int)x%(int)y;
A.5.5B.55C.5.500000D.55.00000
17.
18.有以下程序:
程序的運(yùn)行結(jié)果是()。
A.y=0B.y=1C.y=2D.y=3
19.軟件工程的出現(xiàn)是由于()。A.A.程序設(shè)計方法學(xué)的影響B(tài).軟件產(chǎn)業(yè)化的需要C.軟件危機(jī)的出現(xiàn)D.計算機(jī)的發(fā)展
20.數(shù)據(jù)的不可分割的基本單位是()。
A.元素B.結(jié)點C.數(shù)據(jù)類型D.數(shù)據(jù)項
二、2.填空題(20題)21.以下程序調(diào)用函數(shù)swap_p將指針s和t所指單元(a和b)中的內(nèi)容交換,請?zhí)羁铡?/p>
main()
{inta=10,b=20,*s,*t;
s=&a;t=&b;
swap_p(【】);
printf("%d%d,a,b");}
swap_p(int**ss,int**tt)
{intterm;
term=**ss;
**ss=**tt;
**tt=term;}
22.下面程序的運(yùn)行結(jié)果是______。
voidswap(int*a,int*B)
{
int*t;
t=a;a=b;b=t;
}
main()
{
intx=3,y=5,*p=&x,*q=&y;
swap(p,q);
printf("%d%d\n",*p,*q);
}
23.下面程序中函數(shù)fun的功能是:找出一維數(shù)組元素中的最大值和它所在的下標(biāo),并將最大值和其下標(biāo)通過形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個數(shù),max存放最大值,index存放最大值所在元素的下標(biāo)。請?zhí)羁铡?/p>
#include<stdlib.h>
#include<sldio.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);
}
24.最簡單的交換排序方法是______。
25.測試用例包括輸入值集和【】值集。
26.Jackson方法是一種面向【】的結(jié)構(gòu)化方法。
27.在進(jìn)行模塊測試時,要為每個被測試的模塊另外設(shè)計兩類模塊:驅(qū)動模塊和承接模塊(樁模塊),其中【】的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結(jié)果。
28.函數(shù)delete(s,i,n)的作用是從字符串s中刪除從第i個字符開始的n個字符,請?zhí)羁铡?/p>
voiddelete(chars[],inti,intn)
{intj,k,length=0;
whiles(length])
【】;
-i;
j=i;
}
if(【】)
{k=i+n;
if(i+n<=length)
while(k<length)
s[j++]=s[k++];
s[j]='\0';
}
29.函數(shù)sstrcmp()的功能是對兩個字符串進(jìn)行比較。當(dāng)s所指字符串和t所指字符串相等時,返回值為0;當(dāng)s所指字符串大于t所指字符串時,返回值大于0;當(dāng)s所指字符串小于t所指字符串時,返回值小于0(功能等同于庫函數(shù)strcmp())。請?zhí)羁铡?/p>
#include<stdio.h>
intsstrcmp(char*s,char*t)
{
while(*s&&*t&&*s==【】)
{s++;t++;}
rerurn【】;
}
30.數(shù)據(jù)流圖的類型有【】和事務(wù)型。
31.一個項目具有一個項目主管,一個項目主管可管理多個項目,則實體“項目主管”與實體“項目”的聯(lián)系屬于______的聯(lián)系。
32.單獨測試一個模塊時,有時需要一個【】程序驅(qū)動被測試的模塊。
33.下面程序的運(yùn)行結(jié)果是【】。
voidswap(int*a,int*b)
{int*t;
t=a;a=b;b=t;
}
main()
{intx==3,y=5,*p=&x,*q=&y;
swap(p,q);
printf("%d%d\n",*p,*q);
}
34.在面向?qū)ο蠓椒ㄖ校尽棵枋龅氖蔷哂邢嗨茖傩耘c操作的一組對象。
35.以下函數(shù)的功能是計算s=1+1/2!+1/3!+…+1/n!,請?zhí)羁铡?/p>
doublerun(intn)
{doubles=0.0,fac=1.0;
inti,k=1;
for(i=1;i<=n;i++)
{【】;
fac=fac/k;
s=s+fac;
}
}
36.本程序用冒泡法對數(shù)組a[]的元素從大到小排序,請在程序空白處填空。voidbubble(inta[],intn){inti,j,max,temp;max=n-1;do{j=0;for(i=0;i<max;i++)if(a[i]<a[i+1]){temp=a[i];a[i]=a[i+1];a[i+1]=temp;j=i;}max=j;}while(());}
37.在數(shù)據(jù)結(jié)構(gòu)中,順序存儲結(jié)構(gòu)的數(shù)據(jù)元素所占的存儲空間是______的。
38.結(jié)構(gòu)化程序設(shè)計方法的主要原則可以概括為自頂向下、逐步求精、______和限制使用goto語句。
39.若有說明chars1[]="Thatgirl",s2[]="isbeautiful";則使用函數(shù)strcmp(s1,s2)后,結(jié)果是______。
40.數(shù)據(jù)庫系統(tǒng)中實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件是______。
三、1.選擇題(20題)41.軟件開發(fā)模型包括Ⅰ、瀑布模型Ⅱ、扇形模型Ⅲ、快速原型法模型Ⅳ、螺旋模型
A.Ⅰ、Ⅱ、ⅢB.Ⅰ、Ⅱ、ⅣC.Ⅰ、Ⅲ、ⅣD.Ⅱ、Ⅲ、Ⅳ
42.下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()
A.便于用戶,開發(fā)人員進(jìn)行理解和交流
B.反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)
C.作為確認(rèn)測試和驗收的依據(jù)
D.便于開發(fā)人員進(jìn)行需求分析
43.下列程序的輸出結(jié)果是()。#include<stdio.h>intfun(intx){inta;if(x==0‖x==1)return3;elsea=x-fun(x-2);returna;}voidmain(){printf("%d",fun(7));}
A.2B.8C.9D.5
44.運(yùn)行下面程序時,從鍵盤輸入字母H,則輸出結(jié)果是
#include<stdio.h>
main()
{charch;
ch=getchar();
switch(ch)
{case′H′:printf("Hello!\n");
case′G′:printf("Goodmorning!\n");
default:printf("Bye_Bye!\n");
}
}
A.Hello!
B.Hello!GoodMoring!
C.Hello!Goodmorning!Bye_Bye!
D.Hello!Bye_Bye!
45.下列不屬于軟件工程的3個要素的是______。
A.工具B.過程C.方法D.環(huán)境
46.若有說明語句:double*p,a;則能通過scanf語句正確給輸入項讀入數(shù)據(jù)的程序段是()。
A.*p=&a;sCanf("%1f",p);
B.*p=&a;scanf("%f",p);
C.p=&a;scanf("%1f",*p);
D.p=&a;scanf("%1f",p);
47.以下程序的運(yùn)行結(jié)果是
intk=0;
voidfun(intm)
{m+=k;k+=m;printf("m=%dk=%d",m,k++);}
main()
{inti=4;
fun(i++);
printf("i=%dk=%d\n",i,k);
}
A.m=4k=5i=5k=5
B.m=4k=4i=5k=5
C.m=4k=4i=4k=5
D.m=4k=5i=4k=5
48.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是()
A.數(shù)據(jù)存儲B.數(shù)據(jù)共享C.數(shù)據(jù)查詢D.數(shù)據(jù)管理
49.不能把字符串"Hello!"賦給數(shù)組b的語句是______。
A.charb[10]={'H','e','l','l','o','!'};
B.charb[10]={'h','e','l','l','o','!'};
C.charb[10];strcpy(b,"Hello!");
D.charb[10]="Hello!";
50.若有以下函數(shù)首部intfun(doublex[10],int*n)則下面針對此函數(shù)的函數(shù)聲明語句中正確的是______。A.intfun(doublex,int*n);
B.intfun(double,int);
C.intfun(double*x,intn);
D.intfun(double*,int*);
51.以下程序的輸出結(jié)果是______。intf(){staticinti=0;ints=1;s+=i;i++;returns;}main(){inti,a=0;for(i=0;i<5;i++)a+=f():printf("%d\n",a);}
A.20B.24C.25D.15
52.按照C語言規(guī)定的用戶標(biāo)識符命名規(guī)則,不能出現(xiàn)在標(biāo)識符中的是()。
A.大寫字母B.連接符C.數(shù)字字符D.下劃線
53.有以下程序main(){inti=1,j=1,k=2;if((j++‖k++)&&i++)printf("%d,%d,%d\n",i,j,k);}執(zhí)行后輸出結(jié)果是
A.1,1,2B.2,2,1C.2,2,2D.2,2,3
54.有以下程序:mare(){inti,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf("%d\n",s);}程序執(zhí)行后的輸出結(jié)果是()。
A.45B.20C.25D.36
55.以下不合法的字符常量是()。
A.'\018'B.'\"'C.'\\'D.'\xcc'
56.有以下程序main(){inta=i,b;for(b=1;b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a-=3;}printf("%d\n",B);}程序運(yùn)行后的輸出結(jié)果是
A.3B.4C.5D.6
57.若已包括頭文件<string.h>且已有定義chars1[18],s2={"ABCDE"}和inti,現(xiàn)要將字符串"ABCDE"賦給s1,下列語句錯誤的是()。
A.strcpy(s1,s2)
B.strcpy(s1,"ABCDE");
C.s1="ABCDE";
D.for(i=0;i<6;i++)s1[i]=s2[i];
58.設(shè)有如下關(guān)系表:
則下列操作正確的是()。
A.T=R/SB.T=R×SC.T=R∩SD.T=R∪S
59.C語言中,文件組成的基本單位為()。
A.記錄B.數(shù)據(jù)行C.數(shù)據(jù)塊D.字符序列
60.有以下程序:main(){char*p[10]={"abc","aabdfg","dcdbe","abbd","cd"};printf("%d\n",strten(p[4]));}執(zhí)行后輸出結(jié)果是
A.2B.3C.4D.5
四、選擇題(20題)61.以下敘述中錯誤的是()。。
A.C程序必須由一個或一個以上的函數(shù)組成
B.函數(shù)調(diào)用可以作為一個獨立的語句存在
C.NN數(shù)NNN值,必須通過return語句返回
D.函數(shù)形參的值也可以傳回給對應(yīng)的實參
62.
63.34.有以下程序
#include<stdio.h>
unionpw
{inti;
charch[2];
}a;
main()
{a.ch[0]=13;a.ch[1]=0;
printf("%d\n",a.i);
}
程序的輸出結(jié)果是
A.13B.14
C.0D.20
64.設(shè)有如下說明:
以下說法正確的是()。
A.NEW是一個結(jié)構(gòu)體變量
B.NEW是一個結(jié)構(gòu)體類型
C.ST是一個結(jié)構(gòu)體類型
D.以上說明形式非法
65.下列程序執(zhí)行后的輸出結(jié)果是()#defineMA(x)x*(x-1)main(){inta=1,b=2;printf("%d\n",MA(1+a+B));}
A.5B.6C.7D.8
66.在軟件生命周期中,能準(zhǔn)確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()。A.概要設(shè)計B.詳細(xì)設(shè)計C.可行性分析D.需求分析
67.
68.
69.負(fù)責(zé)數(shù)據(jù)庫中查詢操作的數(shù)據(jù)庫語言是()。
A.數(shù)據(jù)定義語言B.數(shù)據(jù)管理語言C.數(shù)據(jù)操縱語言D.數(shù)據(jù)控制語言
70.
71.以下選項中,能用作數(shù)據(jù)常量的是()。
A.115LB.0118C.1.5el.5D.0115
72.數(shù)據(jù)流圖中帶有箭頭的線段表示的是()。
A.控制流B.事件驅(qū)動C.模塊調(diào)用D.數(shù)據(jù)流
73.表達(dá)式:的值是()。
A.3B.0C.4D.5
74.在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。
A.軟件需求規(guī)格說明書B.數(shù)據(jù)庫說明書C.集成測試計劃D.概要設(shè)計說明書
75.下列程序的輸出結(jié)果是()。#include<stdio.h>main{inta[2][3]={{1,2,3),{4,5,6)),(*p)[3],i;p=a;for(i=0;i<3;i++){if(i<2)p[1][i]=p[1][i]-1;elsep[1][i]=1;}printf("%d\n",a[o][1]+a[1][1]+a[1][2]);}A.8B.7C.12D.9
76.沒有以下語句
則Z的二進(jìn)制值是()。
A.00010100B.00011011C.00011100D.00011000
77.
78.讀取二進(jìn)制文件的函數(shù)調(diào)用形式為:fread(buffer,size,count,fp);,其中buffer代表的是()。
A.一個內(nèi)存塊的字節(jié)數(shù)
B.一個整型變量,代表待讀取的數(shù)據(jù)的字節(jié)數(shù)
C.一個文件指針,指向待讀取的文件
D.一個內(nèi)存塊的首地址,代表讀人數(shù)據(jù)存放的地址
79.下列選項中不合法的十六進(jìn)制數(shù)是()。A."0"xff
B."0"X11
C."0"x1g
D."0"Xabc
80.
五、程序改錯題(1題)81.給定程序中,函數(shù)proc()的功能是:使數(shù)組中的元素的值增加10倍。修改其中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.請編寫一個函數(shù)proc(),它的功能是:根據(jù)以下公式求7c的值(要求滿足精度0.0005,即某項小于0.005時停止迭代)。程序運(yùn)行后,如果輸入精度0.0005,則程序輸出3.140578。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.BC語言中,字符串是用一對雙引號標(biāo)識的字符序列,并用字符型數(shù)組來存放。C選項和D選項不屬于字符串,A選項定義的是一個字符變量str,但賦值字符串,顯然也不正確。故本題答案為B選項。
2.A程序定義整型的全局變量a,初值為5,main函數(shù)定義整型局部變量a,初值為4。所以在main函數(shù)中,局部變量a屏蔽全局變量a。func函數(shù)中定義局部變量b,初值為5,定義靜態(tài)變量c,初值為5,并且在func函數(shù)中變量a引用的是全局變量a。綜上,我們使用a_a代表全局變量a,使用m_a代表main函數(shù)中局部變量a。main函數(shù)中,當(dāng)k=0時,a_a=5,m_a=4,調(diào)用函數(shù)func(4),函數(shù)func中d的值為4,b的值為5,c的值為5,執(zhí)行表達(dá)式“a_a--;b--;--c;--d;”后,a_a的值為4,b的值為4,c的值為4,d的值為3,a+b+c+d的值為15,程序輸出15。當(dāng)k=1時,a_a=4,m_a=3,調(diào)用函數(shù)func(3),函數(shù)func中d的值為3,b的值為5,c的值為4(靜態(tài)變量使用上一次調(diào)用結(jié)束時的值),執(zhí)行表達(dá)式“a_a--;b--;--c;--d;”后,a_a的值為3,b的值為4,c的值為3,d的值為2,a+b+c+d的值為12,程序輸出12。當(dāng)k=2時,a_a=3,m_a=2,調(diào)用函數(shù)func(2),函數(shù)func中cl的值為2,b的值為5,c的值為3,執(zhí)行表達(dá)式“a_a--;b--;--c;--d;”后,a_a的值為2,b的值為4,c的值為2,d的值為1,a+b+c+d的值為9,程序輸出9。本題答案為A選項。
3.C解析:數(shù)據(jù)庫(Database,簡稱DB)是數(shù)據(jù)的集合,它具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲介質(zhì)內(nèi),是多種應(yīng)用數(shù)據(jù)的集成,并可被各個應(yīng)用程序所共享。數(shù)據(jù)庫中的數(shù)據(jù)具有“集成”、“共事”之特點。
4.B二維數(shù)組的定義有3種形式,第一種是分行為兩位數(shù)組賦值,即intnum[]={{12},{3,4},{5,6}},第二種是按照數(shù)組排列順序進(jìn)行賦值,即intnum[]={1,2,3,4,5,6},第三種為對部分元素賦初值,即intnum[]={{1,2}{},{3,4},{5,6}},所以錯誤的為B。
5.A程序首先使用typedef定義一種新的類型名PER,它包含3種數(shù)據(jù)成員:整數(shù)num,字符數(shù)組name,整數(shù)score。main函數(shù)使用PER定義結(jié)構(gòu)體數(shù)組s,s包含兩個PER類型的元素。然后調(diào)用函數(shù)fun將數(shù)組s傳入。fun函數(shù)的功能是比較形參數(shù)組x的兩個元素的score值的大小。若第1個元素的score值大于第2個元素的score值,就使用臨時變量t將兩個元素的score值交換。由于621大于585且x等價于實參s的指針,因此實參s的兩個元素的score也會進(jìn)行交換,執(zhí)行完fun函數(shù)之后,for循環(huán)將兩個元素輸出。故本題答案為A選項。
6.AC語言中,八進(jìn)制整型常量以0開頭,十六進(jìn)制整型常量以0x或0X開頭。C語言中的實型常量有兩種表示形式:小數(shù)形式和指數(shù)形式。小數(shù)形式,表示的實型常量必須要有小數(shù)點;指數(shù)形式,在e或E后加一個整數(shù)來表示以10為底數(shù)的冪數(shù),且規(guī)定字母e或E之前必須要有數(shù)字,且e或E后面的指數(shù)必須為整數(shù)。B選項中“028”不合法,八進(jìn)制中沒有數(shù)字8。C選項中,e后面的指數(shù)不是整數(shù)。D選項中“10,000”數(shù)字之間不能有逗號。故本題答案為A選項。
7.D第—個if語句a!=1條件為假,所以執(zhí)行dse后的語句r=1。第二個if語句b==2條件成立,執(zhí)行r+=2,r的值變?yōu)?,第三個if語句c!=3條件為假,所以不做任何操作。執(zhí)行下面的r+=3操作,r的值變?yōu)?。判斷第四個訌條件,d==4條件成立,執(zhí)行r+=4操作,結(jié)果為10。
8.A
9.A本題需了解3個知識點:①標(biāo)識符是由字母、數(shù)字或下劃線組成,并且它的第一個字符必須是字母或者下劃線;②do是C語言的一個關(guān)鍵字,不能再用做變量名和函數(shù)名;③c語言規(guī)定指數(shù)形式的實型數(shù)量e或E后面的指數(shù)必須是整數(shù)。
10.C本題考查函數(shù)的調(diào)用及參數(shù)傳遞,當(dāng)執(zhí)行函數(shù)point時,剛開始指針P指向“a”,經(jīng)過+3,指針p指向“f”,所以最后的輸出結(jié)果是f。
11.B異或運(yùn)算只有在兩個比較的位不同時其結(jié)果為1,否則結(jié)果為0。題目中兩個值相同,所以結(jié)果為0。故本題答案為B選項。
12.B本題考查按位異或的用法。按位異或運(yùn)算的規(guī)則是:兩個運(yùn)算數(shù)的相應(yīng)二進(jìn)制位相同,則結(jié)果為0,相異則結(jié)果為1。b=2的二進(jìn)制為00000010,a=1的二進(jìn)制為00000001,a=a^b一00000011,轉(zhuǎn)化為十進(jìn)制后為3,b=b^a=00000010^00000011=00000001,即1。
13.B解析:C語言中注釋可以放在任何位置,選項A錯誤;C語言中的變量只要在使用之前定義即可,位置可以是使用前的任何位置,故選項B正確;C語言中兩側(cè)數(shù)據(jù)類型可以不一致,系統(tǒng)可進(jìn)行強(qiáng)制類型轉(zhuǎn)換,選項C錯誤;C語言數(shù)值常量中不允許存在空格,選項D錯誤。
14.A?A)選項中逗號表達(dá)式先計算第一表達(dá)式2*x,然后計算表達(dá)式x+=2的值,即x=x+2即4,整個逗號表達(dá)式為第二個表達(dá)式的值4,所以選A)。B)選項中首先計算逗號表達(dá)式中第一一個表達(dá)式x++,此時x為3,再執(zhí)行第二個表達(dá)式2*x=2*3=6,所以逗號表達(dá)式為第二個表達(dá)式的值6。C)選項的賦值表達(dá)式可以表示為x=x*(1+x)=2*(1+2)=6。D)選項中的表達(dá)式可以表示為x=x*(x+1)=2*3=6。
15.Bcase常量表達(dá)式只是起語句標(biāo)號作用,并不進(jìn)行條件判斷。在執(zhí)行switch語句時,根據(jù)switch的表達(dá)式,找到與之匹配的case語句,就從此case子句執(zhí)行下去,不再進(jìn)行判斷,直到碰到break或函數(shù)結(jié)束為止。所以執(zhí)行內(nèi)層“switch(y)”時只執(zhí)行了“a++;”,此時a的值為1,然后執(zhí)行外層case2語句的“a++;b++;”,a值為2,b值為1。故本題答案為B選項。
16.C在計算(float)(a4-b)/2時,由于通過強(qiáng)制類型轉(zhuǎn)換將(a+b)轉(zhuǎn)換成了float型,所以應(yīng)先將2轉(zhuǎn)換成float型,再進(jìn)行計算,得4.500000。在計算(int)x%(int)y時,先將x和y通過強(qiáng)制類型轉(zhuǎn)換成int型,再進(jìn)行求余運(yùn)算,結(jié)果為1。又因為4.500000是float型,所以將1和它相加時,先將1換成float型,再計算,得到5.500000。類型轉(zhuǎn)換的一般規(guī)則是:低級類型從高級類型,并進(jìn)行相應(yīng)的轉(zhuǎn)換。數(shù)據(jù)類型的級別由低到高的排序表示為:char→int→unsigned→log→float→double。
17.C
18.D在程序中指針變量P初始指向a[3],執(zhí)行P減1后,P指向a[2],語句y=*P的作用是把a(bǔ)[2]的值賦給變量y,所以輸出為y=3。
19.C解析:軟件工程的基本概念。軟件工程概念的出現(xiàn)源自于軟件危機(jī)。為了消除軟件危機(jī),通過認(rèn)真研究解決軟件危機(jī)的方法,認(rèn)識到軟件工程是使計算機(jī)軟件走向工程科學(xué)的途徑,逐步形成了軟件工程的概念。
20.D
21.&s&t&s,&t解析:指針做函數(shù)參數(shù)時,形參和實參指向同一個數(shù)據(jù),所以函數(shù)中對形參所指向的數(shù)據(jù)的改變也能影響到實參。本題中函數(shù)swap_p的形參為指向指針的指針,即雙重指針,原理跟普通的指針是一樣的。注意:通過指針來引用一個存儲單元。
22.3535解析:在主函數(shù)中通過定義和賦初值使p和q分別指向了x和y,執(zhí)行函數(shù)調(diào)用“swap(p,q)”,把p和q中的地址值傳給了形參指針變量a和b,a和b分別指向7實參x和y。在函數(shù)swap()中交換了指針變量a和b的值,并沒有交換a和b指向的實參的值,所以函數(shù)調(diào)用返回后x和y依舊是原來的值。
23.i<na[i]i<na[i]解析:在main函數(shù)中,randomize是為了生成隨機(jī)種子,以便在使用rand函數(shù)時產(chǎn)生不同的數(shù)。通過循環(huán)用rand函數(shù)產(chǎn)生10個隨機(jī)數(shù)。在fun函數(shù)中,要在n個數(shù)中找最大值,所以第一處填寫i<n,每次將當(dāng)前最大值與數(shù)組中的某元素比較,第二處填寫a[i]。
24.冒泡排序冒泡排序解析:交換排序是指借助數(shù)據(jù)元素之間的互相交換進(jìn)行排序的一種方法。冒泡排序是一種最簡單的交換排序方法,它是通過相鄰元素之間的相互交換逐步將線性表變成有序。
25.輸出輸出解析:測試用例曲測試輸入數(shù)據(jù)(輸入值集)和與之對應(yīng)的預(yù)期輸出結(jié)果(輸出值集)兩部分組成。
26.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)解析:Jackson方法是—‘種面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化方法。
27.驅(qū)動模塊驅(qū)動模塊解析:在進(jìn)行模塊測試時,要為每個被測試的模塊另外設(shè)計兩類模塊:驅(qū)動模塊和承接模塊(樁模塊)。其中,驅(qū)動模塊相當(dāng)于被測試模塊的主程序,它接收測試數(shù)據(jù),并傳給被測試模塊,輸出實際測試結(jié)果。承接模塊通常用于代替被測試模塊調(diào)用的其他模塊,其作用僅做少量的數(shù)據(jù)操作,是一個模擬子程序,不必將子模塊的所有功能帶入。
28.length++i<lengthlength++\r\ni<length解析:第—個循環(huán)極有可能是計算串的長度,在i<=length時字符才被刪除,被刪除的是從第i個到笫i+n或最后—個間的所有字符。刪除前,應(yīng)判斷i<=length。由于已經(jīng)進(jìn)行了-i運(yùn)算,故實際應(yīng)填入i<length。
29.*t或t[0]*s-*t或*s-t[0]或s[0]-*t或s[0]-t[0]*t或t[0]\r\n*s-*t或*s-t[0]或s[0]-*t或s[0]-t[0]解析:比較兩個字符串的大小方法是:從第一個字符開始依次向后比較,若對應(yīng)的字符相等則接著比較下一個字符,一直到兩個字符串中對應(yīng)字符不等,或者有一個為“\\0”,此對應(yīng)字符的ASCII碼大的字符串就大。故循環(huán)條件是*s和*t不為“\\0”,且*s和*t相同,第一處應(yīng)填“*t”或其他等價形式。根據(jù)題意可知第二處應(yīng)填“*s-*t”或其等價形式。
30.變換型典型的數(shù)據(jù)流類型有兩種:變換型和事務(wù)型。變換型是指信息沿輸入通路進(jìn)入系統(tǒng),同時由外部形式變換成內(nèi)部形式,進(jìn)入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng);在很多軟件應(yīng)用中,存在某種作業(yè)數(shù)據(jù)流,它可以引發(fā)一個或多個處理,這些處理能夠完成該作業(yè)要求的功能,這種數(shù)據(jù)流就叫做事務(wù)。
31.1對多(或1:N)1對多(或1:N)
32.驅(qū)動驅(qū)動
33.3535解析:主函數(shù)中通過定義和賦初值使p和q分別指向了x和y,執(zhí)行函數(shù)調(diào)用swap(p,q),把p和q中的地址值傳給了形參指針變量a和b,此時a和b分別指向了主函數(shù)中的變量x和y。在函數(shù)swap()中交換了指針變量a和b的值,但并沒有改變a和b所指向的內(nèi)容,所以函數(shù)調(diào)用返回后x和y依舊是原來的值。故運(yùn)行結(jié)果為35。
34.類類解析:在面向?qū)ο蠓椒ㄖ校惷枋龅氖蔷哂邢嗨茖傩耘c操作的一組對象。
35.k=k*ik=k*i解析:本題小通過for循環(huán)求s表達(dá)式中每一項的和,表達(dá)式“fac=fac/k;”求的是每一項的值,所以k的值應(yīng)為n!,在求n!的時候,可以用上次循環(huán)階乘的值乘i,就可以直接得此次n!,故木題填k=k*i。
36.max>0max>0解析:本題是典型的冒泡排序題,每一次for循環(huán)將從數(shù)組a中找出剩下數(shù)中的最大的值放在這些數(shù)的最前端,若數(shù)組a中有n個數(shù),則完成數(shù)組排序共需n-1次循環(huán)。令max=n-1,每次循環(huán)后i值增1,i<max條件不足,即n-1次循環(huán)后,此時i=j=max=0,循環(huán)結(jié)束。
37.連續(xù)連續(xù)解析:順序存儲結(jié)構(gòu)具有兩個特點:1)數(shù)據(jù)元素所占空間是連續(xù)的;2)數(shù)據(jù)元素在存儲空間中是按邏輯順序依次存放的。
38.模塊化模塊化
39.-1-1解析:strcmp(s1,s2)函數(shù)的作用是:對字符數(shù)組s2和字符數(shù)組s1進(jìn)行比較。如果s1<s2,則返回負(fù)數(shù);如果s1==s2,則返回0;如果s1>s2,則返回正數(shù)。
40.數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)解析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的管理機(jī)構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等。
41.C解析:軟件開發(fā)模型包括瀑布模型、快速原型法模型和螺旋模型。
42.D解析:軟件需求規(guī)格說明書SRS,SoftwareRequirementSpecification)是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一。它有以下幾個方面的作用,①便于用戶、開發(fā)人員進(jìn)行理解和交流;②反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù);③作為確認(rèn)測試和驗收的依據(jù)。
43.A解析:本題考查函數(shù)的遞歸調(diào)用。
在函數(shù)遞歸調(diào)用時,fun(7):a=7-fun(5)→fun(5):a=5-fun(3)→fun3:a=3-fun(1)→fun(1):a=3,反推回去fun(3):a=3-3=0→fun(5):a=5-0=5→fun(7):a=7-5=2,最后的計算結(jié)果為2。
44.C解析:本題主要對switch語句進(jìn)行了考查。switch語句的執(zhí)行過程為:進(jìn)入switch結(jié)構(gòu)后,對條件表達(dá)式進(jìn)行運(yùn)算,然后從上至下去找與條件表達(dá)式值相匹配的case,以此作為入口,執(zhí)行switch結(jié)構(gòu)中后面的各語句,直到遇到break語句,則跳出switch語句,如果各case都不匹配時,則執(zhí)行default后面的語句。本題中ch為字符'H',所以case'H'條件中的語句將被執(zhí)行,由于沒有break語句,所以case'G'后的語句也被執(zhí)行,由于同樣的缺少break語句,所以default后的語句也被執(zhí)行了。
45.D解析:本題考查了軟件工程的基本概念。軟件工程包括3個要素,即方法、工具和過程。方法是完成軟件工程項目的技術(shù)手段;工具支持軟件的開發(fā)、管理和文檔生成;過程支持軟件開發(fā)的各個環(huán)節(jié)的控制和管理。
46.D解析:double*p,a;語句表示定義了一個指向雙精度型的指針變量p和雙精度型變量a,而語句p=&a表示將變量a的地址賦給指針變量p;scanf'('%1f',p)表示用鍵盤輸入的數(shù)賦給指針變量p所指向的地址單元中。scanf()函數(shù)要求在輸入double型數(shù)據(jù),格式控制符必須用%1f(或%1e)。否則,數(shù)據(jù)不能正確輸入。所以選項D)為正確答案。
47.B解析:由于在main()函數(shù)中,變量i=4,所以就調(diào)用fun(4),則輸出“m=4k=4”。然后變量k增1等于5,變量i增1等于5,所以main()函數(shù)的“printf('i=%dk=%d\\n',i,k);”語句輸出“i=5k=5”。
48.BB)【解析】數(shù)據(jù)庫是長期儲存在計算機(jī)內(nèi)、有組織
的、可共享的大量數(shù)據(jù)的集合,它具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲介質(zhì)內(nèi),是多種應(yīng)用數(shù)據(jù)的集成,并可被各個應(yīng)用程序所共享,所以數(shù)據(jù)庫技術(shù)的根本日標(biāo)是解決數(shù)據(jù)共享問題。
49.B解析:在C語言中,大寫字母和小寫字母被認(rèn)為是兩個不同的字符,因此,“hello!”和“Hello!”是兩個不同的字符串。
50.D解析:函數(shù)聲明可以照寫已定義的函數(shù)的首部,再加一個號就成為了對函數(shù)的聲明,在函數(shù)聲明中也可以不寫形參名,而只寫形參的類型,但要保證與函數(shù)首部寫法上的—致,即函數(shù)類型、函數(shù)名、參數(shù)個數(shù)、參數(shù)類型和參數(shù)順序相同。字符數(shù)組可用指針來表示,所以選頂D正確。
51.D解析:函數(shù)f中變量i為靜態(tài)變量,函數(shù)f調(diào)用結(jié)束后變量i所占據(jù)的存儲單元不會釋放,而在主函數(shù)中f被調(diào)用5次,具體過程如下。
第1次調(diào)用f:s=s+i=1+0=1,i=i+1=1,主函數(shù)中a=a+f()=O+1=1
第2次調(diào)用f:s=s+1=1+1=2,i=i+1=2,豐函數(shù)中a=a+f()=1+2=3
第3次調(diào)用f:s=s+1=1+2=3,i=i+1=3,主函數(shù)中a=a+f()=3+3=6
第4次調(diào)用f:s=s+i=1+3=4,i=i+1=4,主函數(shù)中a=a+r()=6+4=10
第5次調(diào)用f:s=s+i=1+4=5,i=i+4=5,主函數(shù)中a=a+f()=10+5=15
所以printf語句的輸出結(jié)果為15。
52.B解析:在C語言中,用戶標(biāo)識符命令規(guī)則規(guī)定:變量名只能由字母、數(shù)字或下劃線3種字符組成,且第一個字符必須為字母或下劃線。在C語言中,大寫字母和小寫字母被認(rèn)為是兩個不同的字符。據(jù)此規(guī)定A)、D)、C)三個選項是正確的,而B)選項是連字符,不在C語言規(guī)定的命名變量標(biāo)識符的范圍內(nèi)。
53.C解析:該題目的關(guān)鍵是要搞清楚“&&”和“‖”兩個邏輯運(yùn)算符的運(yùn)算功能。運(yùn)算符“&&”和“‖”是雙目運(yùn)算符,要求有兩個運(yùn)算量。且規(guī)定邏輯與運(yùn)算中,只有前面運(yùn)算量的值為真時,才需要判別后面的值。只要前面為假,就不必判別后面的值。而邏輯或則為只要前為真,就不必判別后面的值;只有前為假,才判別后。本題中j++值為真,不進(jìn)行k++的運(yùn)算,所以k的值保持不變。
54.C解析:要獲得數(shù)組t的第i個元素的內(nèi)容,既可以使用常規(guī)的t[i]表達(dá)式,也可以將數(shù)組名t看作一個指針常量,使用表達(dá)式*(t+i)來獲取數(shù)組t的第i個元素的內(nèi)容。在本題中,for循環(huán)會循環(huán)5次,循環(huán)變量i從。開始,每次加2。所以,循環(huán)結(jié)束后,s中的值為t[0]+t[2]+t[4]+t[6]+t[6]+t[8]=1+3+5+7+9=25。故應(yīng)該選擇C。
55.A解析:C語言的字符常量是用單引號括起來的一個字符,如'a','A','?','S'等都是字符常量。除此之外,還允許用一個“\\”開頭的字符序列,如'\\ddd'表示1到3位八進(jìn)制數(shù)所代表的字符,而八進(jìn)制是由0~7這幾個數(shù)字組成的,所以選項A)是不合法的字符常量。
56.B解析:在一個循環(huán)體中,若執(zhí)行到break則跳出循環(huán)體,執(zhí)行循環(huán)體后面第一條語句;若執(zhí)行到continue則開始下一次循環(huán)體的執(zhí)行。本題中a的初始值為1,在循環(huán)體中首先判斷a,如果>=8就用break跳出循環(huán),接下來的判斷語句a%2==1,是判斷a除以2的余數(shù)是否為1,即a是否為奇數(shù),是的話給a累加一個5,然后用continue開始下一次循環(huán).若兩個條件都不滿足就讓a自減一個3.因此第1次循環(huán)開始a為1不大于8,且是奇數(shù),所以a被累加5開始下一次循環(huán);第2次循環(huán)開始a為6不大于8,不是奇數(shù),所以a被減去3;第3次循環(huán)開始a為3不大于8,是奇數(shù),所以a被加上一個5;第4次開始a為8,滿足第一個條件跳出循環(huán)。b在第1次循環(huán)時等于1,以后每次累加1,所以最后輸出為4,選項B正確.
57.C解析:數(shù)組名s1是代表s1數(shù)組首地址的地址常量,而不是變量,因為“=”左邊不能出現(xiàn)常量,因此sl='ABCDE'的方法是錯誤的。
58.C解析:T就是關(guān)系R中有的,同時S中也有的有序組(1、2、3),即交運(yùn)算(∩)。
59.D解析:C語言處理文件的方法是將文件以數(shù)據(jù)流的形式處理,不是將文件作為一個結(jié)構(gòu)集合來處理,所以,C語言中文件的組織方式是無結(jié)構(gòu)的字符序列方式。
60.A解析:本題考核的知識點是指針數(shù)組的定義和strlen()函數(shù)的應(yīng)用。本題中首先定義了一個長度為10的指針數(shù)組,并賦初值,因此執(zhí)行strlen(p[4]后的返回值為字符串“cd”的長度為2。所以,4個選項中選項A符合題意。
61.D形參是函數(shù)定義時由用戶定義的形式上的變量,實參是函數(shù)調(diào)用時,主調(diào)函數(shù)為被調(diào)函數(shù)提供的原始數(shù)據(jù)。在C語言中,實參向形參傳送數(shù)據(jù)的方式是“值傳遞”。因此D選項正確。
62.D
63.A本題主要考查聯(lián)合體的內(nèi)容。關(guān)于聯(lián)合體,我們需要注意以下幾個特點。
(1)聯(lián)合體不允許做初始化賦值,賦值只能在程序中進(jìn)行。
(2)由于聯(lián)合體成員共享存儲空間的原因,導(dǎo)致一個聯(lián)合體變量每次只能給一個成員變量賦值,而且聯(lián)合體中所有成員的首地址相同,即都是變量的地址。
(3)聯(lián)合體的存儲空間與其成員變量中所需空間最大的變量保持一致,即聯(lián)合變量的長度等于各成員中最長的長度。
在本題中,程序首先定義了一個聯(lián)合體和一個該聯(lián)合體的聯(lián)合體變量a,在主函數(shù)中,分別用兩條語句給聯(lián)合體成員賦值,由于ch是一個數(shù)組,它的元素仍按普通數(shù)組一樣排列。程序要求的輸出結(jié)果是a.i,由于聯(lián)合體中所有成員的首地址相同,即a.i與a.ch的首地址相同,而在ch中第一個元素為13,因此,輸出a.i的結(jié)果就為13。本題正確的答案是A。
64.B以上形式定義NEW表示sT的結(jié)構(gòu)類型,然后可以用NEW來說明結(jié)構(gòu)體變量。因此選項B)正確。
65.D解析:本題中的宏調(diào)用MA(1+a+b)展開后的結(jié)果是1+a+b*(1+a+b-1)=1+1+2*(1+1+2-1)=2+2*3=8。所以輸出的結(jié)果是8,選項D正確。
66.D通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。也就是說:軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個時期都屬于軟件生命周期。
軟件生命周期的主要活動階段為:
①可行性研究和計劃制定。確定待開發(fā)軟件系統(tǒng)的開發(fā)目標(biāo)和總的要求,給出它的功能、性能、可靠性以及接口等方面的可行方案,制定完成開發(fā)任務(wù)的實施計劃。
②需求分析。對待開發(fā)軟件提出的需求進(jìn)行分析并給出詳細(xì)定義,即準(zhǔn)確地確定軟件系統(tǒng)的功能。編寫軟件,規(guī)格說明書及初步的用戶手冊,提交評審。
③軟件設(shè)計。系統(tǒng)設(shè)計人員和程序設(shè)計人員應(yīng)該在反復(fù)理解軟件需求的基礎(chǔ)上,給出軟件的結(jié)構(gòu)、模塊的劃分、功能的分配以及處理流程。
④軟件實現(xiàn)。把軟件設(shè)計轉(zhuǎn)換成計算機(jī)可以接受的程序代碼。即完成源程序的編碼,編寫用戶手冊、操作手冊等面向用戶的文檔,編寫單元測試計劃。
⑤軟件測試。在設(shè)計測試用例的基礎(chǔ)上,檢驗軟件的各個組成部分。編寫測試分析報告。
⑥運(yùn)行和維護(hù)。將已交付的軟件投入運(yùn)行,并在運(yùn)行使用中不斷地維護(hù),根據(jù)新提出的需求進(jìn)行必要而且可能的擴(kuò)充和刪改。
67.D
68.D
69.C數(shù)據(jù)定義語言:負(fù)責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建;數(shù)據(jù)操縱語言:負(fù)責(zé)數(shù)據(jù)的操縱,包括查詢及增加、刪除、修改等操作;數(shù)據(jù)控制語言:負(fù)責(zé)數(shù)據(jù)完整性、安全性的定義與檢查以及并發(fā)控制、故障恢復(fù)等功能。因此本題答案為C)。
70.B
71.AA選項中l(wèi)15L表示ll5是長整型數(shù)據(jù),合法。B選項是八進(jìn)制常量的表示方法,但是在八進(jìn)制中不能含有數(shù)字8,所以B錯誤。c選項中e后面應(yīng)該是整數(shù)不能是小數(shù)l.5,所以c錯誤。D選項中八進(jìn)制常量應(yīng)該是數(shù)字…0開始,而不是字母…O開始。
72.D解析:數(shù)據(jù)流圖是描述數(shù)據(jù)處理過程的工具,是需求理解的邏輯模型的圖形表示,它直接支持系統(tǒng)的功能建模。數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。數(shù)據(jù)流圖中的主要的圖形元素與說明如下:
加工(轉(zhuǎn)換):輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出。
數(shù)據(jù)流:沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標(biāo)注數(shù)據(jù)流名。
存儲文件(數(shù)據(jù)源):表示處理過程中存放各種數(shù)據(jù)的文件。
源,潭:表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實體。
73.Aint)((double)9/2)值為4,9%2值為l,相減值為3。
74.A軟件需求規(guī)格說明書是需求分析階段最后的成果,它是作為需求分析的一部分而制定的可交付文檔。概要設(shè)計說明書、數(shù)據(jù)庫說明書、集成測試計劃都是概要設(shè)計階段需要編寫的文檔。
75.B本題考查for循環(huán)及if…else語句嵌套,第1次執(zhí)行for循環(huán),p[1][0]=p[1][0]=p[1][0]-1=3;第2次執(zhí)行for循環(huán),p[1][1]=p[1][1]-1=4;第3次執(zhí)行for循環(huán),p[1][2]=l,最后輸出的是a[0][1]+a[1][1]+a[1][2]=2+4+1=7。
76.B本題考查兩個位運(yùn)算符。按位異或運(yùn)算
77.D
78.Dfread(void}buffer,size—tsize,size—tcount,F(xiàn)ILE}stream);功能是從一個文件流中讀數(shù)據(jù),讀取count個元素。每個元素size字節(jié),如果調(diào)用成功返回count。buffer:用于接收數(shù)據(jù)的內(nèi)存地址,大小至少是size*count字節(jié);size:單個元素的大小,單位是字節(jié);count:元素的個數(shù),每個元素是size字節(jié);Stream:輸人流。
79.C十六進(jìn)制是以“0x、0X”開頭的字符串,字符串中只能含有0~9這l0個數(shù)字和a、b、C、d、e、f這6個字母。
80.D
81.錯誤:printf(”%3d”,mEj]*10);
正確:printf(”%3d”,m[j]=mLi]*10);
【解析】按照題目中要求,數(shù)組中的元素值增加10倍,應(yīng)該讓數(shù)組中的每一個元素乘以10放入原來的位置。因此,“printf(”%3d”。m[i]*10);”應(yīng)改為“printf(”%3d”,m[j]=m[j]*10);”。
82.
【解析】我們應(yīng)定義一個變量表示其和,一個變量表示其分?jǐn)?shù),由題目中可知循環(huán)結(jié)束的標(biāo)志為分?jǐn)?shù)小于eps,因此其為循環(huán)結(jié)束的條件,根據(jù)公式的變化規(guī)律,可求得s,最后把2*s返回到主函數(shù)中。
2021-2022年山東省濱州市全國計算機(jī)等級考試C語言程序設(shè)計模擬考試(含答案)學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.以下能正確定義字符串的語句是()。
A.charstr=“\x43”;
B.charstr[]=“\0”;
C.charstr=”;
D.charstr[]={‘\064’};
2.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。
A.15,12,9,B.15,13,11,C.15,11,7,D.15,15,15,
3.下列有關(guān)數(shù)據(jù)庫的描述,正確的是______。
A.數(shù)據(jù)庫是一個DBF文件B.數(shù)據(jù)庫是一個關(guān)系C.數(shù)據(jù)庫是一個結(jié)構(gòu)化的數(shù)據(jù)集合D.數(shù)據(jù)庫是一組文件
4.以下定義數(shù)組的語句錯誤的是()。
A.intnum[]={1,2,3,4,5,6};
B.intnum[][3]={{1,2},3,4,5,6};
C.intnum[2][4]={{1,2},{3,4},{5,6}};
D.intnum[][4]={1,2,3,4,5,6};
5.有以下程序:#include<stdio.h>typedefstruct{intnum;charname[10];intscore;}PER;voidfun(PERx[]){intt;if(x[0].score>x[1].score){t=x[0].score;x[0].score=x[1].score;x[1].score=t;}}main(){PERs[2]={{1001,“zhang”,621},{1002,“wang”,585}};inti;fun(s);for(i=0;i<2;i++)printf(“%d,%s,%d,”,s[i].num,s[i].name,s[i].score);}程序的運(yùn)行結(jié)果是()。A.1001,zhang,585,1002,wang,621,
B.1001,zhang,621,1002,wang,585,
C.1002,wang,585,1001,zhang,621,
D.1002,wang,621,1001,zhang,585,
6.以下選項中,合法的一組C語言數(shù)值常量是()。
A.12.0Xa234.5e0
B.028.5e-3-0xf
C..1774e1.50abc
D.0x8A10,0003.e5
7.若有以下程序
則程序的輸出結(jié)果是
A.3B.7C.6D.10
8.
9.下列變量聲明合法的是()。A.shorta=1.4e-1;
B.doubleb=1+3e2.8;
C.longdo=0xfdaL;
D.float2aaa=1e-3;
10.下列程序的輸出結(jié)果是()。char*point(char*pt):main{charb[4]={a,c,s,f),*pt=b;pt=point(pt);printf("%c\n",*pt);}point(char*p){p+=3;returnp;}A.sB.cC.fD.a
11.若變量已正確定義,則語句“s=32;s^=32;printf(“%d”,s);”的輸出結(jié)果是()。
A.-1B.0C.1D.32
12.若有以下程序:inta=1,b=2;a=a^b;b=b^a;則執(zhí)行以上語句后a和b的值分別是()。A.a=1,b=2B.a=3,b=lC.a=3,b=2D.a=2,b=l
13.以下關(guān)于C語言的敘述中正確的是()。
A.C語言中的注釋不可以夾在變量名或關(guān)鍵字的中間
B.C語言中的變量可以在使用之前的任何位置進(jìn)行定義
C.在C語言算術(shù)表達(dá)式的書寫中,運(yùn)算符兩側(cè)的運(yùn)算數(shù)類型必須一致
D.C語言的數(shù)值常量中夾帶空格不影響常量值的正確表示
14.設(shè)有定義:int?x=2,以下表達(dá)式中,值不為6的是()。
A.2*<.x+=2B.x++.2*xC.x=x*(1+x)D.x*=x+1
15.有以下程序:#include<stdio.h>main(){intx=1,y=0,a=0,b=0;switch(x){ case1: switch(y) { case0:a++;break; case1:b++;break; } case2:a++;b++;break; case3:a++;b++;}printf(“a=%d,b=%d\n”,a,b);}程序的運(yùn)行結(jié)果是()。
A.a=2,b=2B.a=2,b=1C.a=1,b=1D.a=1,b=0
16.若有定義:“inta=4,b=5;floatx=3.4,y=2.1;”,則下列表達(dá)式的值為()。(float)(a+b)/2+(int)x%(int)y;
A.5.5B.55C.5.500000D.55.00000
17.
18.有以下程序:
程序的運(yùn)行結(jié)果是()。
A.y=0B.y=1C.y=2D.y=3
19.軟件工程的出現(xiàn)是由于()。A.A.程序設(shè)計方法學(xué)的影響B(tài).軟件產(chǎn)業(yè)化的需要C.軟件危機(jī)的出現(xiàn)D.計算機(jī)的發(fā)展
20.數(shù)據(jù)的不可分割的基本單位是()。
A.元素B.結(jié)點C.數(shù)據(jù)類型D.數(shù)據(jù)項
二、2.填空題(20題)21.以下程序調(diào)用函數(shù)swap_p將指針s和t所指單元(a和b)中的內(nèi)容交換,請?zhí)羁铡?/p>
main()
{inta=10,b=20,*s,*t;
s=&a;t=&b;
swap_p(【】);
printf("%d%d,a,b");}
swap_p(int**ss,int**tt)
{intterm;
term=**ss;
**ss=**tt;
**tt=term;}
22.下面程序的運(yùn)行結(jié)果是______。
voidswap(int*a,int*B)
{
int*t;
t=a;a=b;b=t;
}
main()
{
intx=3,y=5,*p=&x,*q=&y;
swap(p,q);
printf("%d%d\n",*p,*q);
}
23.下面程序中函數(shù)fun的功能是:找出一維數(shù)組元素中的最大值和它所在的下標(biāo),并將最大值和其下標(biāo)通過形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個數(shù),max存放最大值,index存放最大值所在元素的下標(biāo)。請?zhí)羁铡?/p>
#include<stdlib.h>
#include<sldio.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);
}
24.最簡單的交換排序方法是______。
25.測試用例包括輸入值集和【】值集。
26.Jackson方法是一種面向【】的結(jié)構(gòu)化方法。
27.在進(jìn)行模塊測試時,要為每個被測試的模塊另外設(shè)計兩類模塊:驅(qū)動模塊和承接模塊(樁模塊),其中【】的作用是將測試數(shù)據(jù)傳送給被測試的模塊,并顯示被測試模塊所產(chǎn)生的結(jié)果。
28.函數(shù)delete(s,i,n)的作用是從字符串s中刪除從第i個字符開始的n個字符,請?zhí)羁铡?/p>
voiddelete(chars[],inti,intn)
{intj,k,length=0;
whiles(length])
【】;
-i;
j=i;
}
if(【】)
{k=i+n;
if(i+n<=length)
while(k<length)
s[j++]=s[k++];
s[j]='\0';
}
29.函數(shù)sstrcmp()的功能是對兩個字符串進(jìn)行比較。當(dāng)s所指字符串和t所指字符串相等時,返回值為0;當(dāng)s所指字符串大于t所指字符串時,返回值大于0;當(dāng)s所指字符串小于t所指字符串時,返回值小于0(功能等同于庫函數(shù)strcmp())。請?zhí)羁铡?/p>
#include<stdio.h>
intsstrcmp(char*s,char*t)
{
while(*s&&*t&&*s==【】)
{s++;t++;}
rerurn【】;
}
30.數(shù)據(jù)流圖的類型有【】和事務(wù)型。
31.一個項目具有一個項目主管,一個項目主管可管理多個項目,則實體“項目主管”與實體“項目”的聯(lián)系屬于______的聯(lián)系。
32.單獨測試一個模塊時,有時需要一個【】程序驅(qū)動被測試的模塊。
33.下面程序的運(yùn)行結(jié)果是【】。
voidswap(int*a,int*b)
{int*t;
t=a;a=b;b=t;
}
main()
{intx==3,y=5,*p=&x,*q=&y;
swap(p,q);
printf("%d%d\n",*p,*q);
}
34.在面向?qū)ο蠓椒ㄖ?,【】描述的是具有相似屬性與操作的一組對象。
35.以下函數(shù)的功能是計算s=1+1/2!+1/3!+…+1/n!,請?zhí)羁铡?/p>
doublerun(intn)
{doubles=0.0,fac=1.0;
inti,k=1;
for(i=1;i<=n;i++)
{【】;
fac=fac/k;
s=s+fac;
}
}
36.本程序用冒泡法對數(shù)組a[]的元素從大到小排序,請在程序空白處填空。voidbubble(inta[],intn){inti,j,max,temp;max=n-1;do{j=0;for(i=0;i<max;i++)if(a[i]<a[i+1]){temp=a[i];a[i]=a[i+1];a[i+1]=temp;j=i;}max=j;}while(());}
37.在數(shù)據(jù)結(jié)構(gòu)中,順序存儲結(jié)構(gòu)的數(shù)據(jù)元素所占的存儲空間是______的。
38.結(jié)構(gòu)化程序設(shè)計方法的主要原則可以概括為自頂向下、逐步求精、______和限制使用goto語句。
39.若有說明chars1[]="Thatgirl",s2[]="isbeautiful";則使用函數(shù)strcmp(s1,s2)后,結(jié)果是______。
40.數(shù)據(jù)庫系統(tǒng)中實現(xiàn)各種數(shù)據(jù)管理功能的核心軟件是______。
三、1.選擇題(20題)41.軟件開發(fā)模型包括Ⅰ、瀑布模型Ⅱ、扇形模型Ⅲ、快速原型法模型Ⅳ、螺旋模型
A.Ⅰ、Ⅱ、ⅢB.Ⅰ、Ⅱ、ⅣC.Ⅰ、Ⅲ、ⅣD.Ⅱ、Ⅲ、Ⅳ
42.下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()
A.便于用戶,開發(fā)人員進(jìn)行理解和交流
B.反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)
C.作為確認(rèn)測試和驗收的依據(jù)
D.便于開發(fā)人員進(jìn)行需求分析
43.下列程序的輸出結(jié)果是()。#include<stdio.h>intfun(intx){inta;if(x==0‖x==1)return3;elsea=x-fun(x-2);returna;}voidmain(){printf("%d",fun(7));}
A.2B.8C.9D.5
44.運(yùn)行下面程序時,從鍵盤輸入字母H,則輸出結(jié)果是
#include<stdio.h>
main()
{charch;
ch=getchar();
switch(ch)
{case′H′:printf("Hello!\n");
case′G′:printf("Goodmorning!\n");
default:printf("Bye_Bye!\n");
}
}
A.Hello!
B.Hello!GoodMoring!
C.Hello!Goodmorning!Bye_Bye!
D.Hello!Bye_Bye!
45.下列不屬于軟件工程的3個要素的是______。
A.工具B.過程C.方法D.環(huán)境
46.若有說明語句:double*p,a;則能通過scanf語句正確給輸入項讀入數(shù)據(jù)的程序段是()。
A.*p=&a;sCanf("%1f",p);
B.*p=&a;scanf("%f",p);
C.p=&a;scanf("%1f",*p);
D.p=&a;scanf("%1f",p);
47.以下程序的運(yùn)行結(jié)果是
intk=0;
voidfun(intm)
{m+=k;k+=m;printf("m=%dk=%d",m,k++);}
main()
{inti=4;
fun(i++);
printf("i=%dk=%d\n",i,k);
}
A.m=4k=5i=5k=5
B.m=4k=4i=5k=5
C.m=4k=4i=4k=5
D.m=4k=5i=4k=5
48.數(shù)據(jù)庫技術(shù)的根本目標(biāo)是()
A.數(shù)據(jù)存儲B.數(shù)據(jù)共享C.數(shù)據(jù)查詢D.數(shù)據(jù)管理
49.不能把字符串"Hello!"賦給數(shù)組b的語句是______。
A.charb[10]={'H','e','l','l','o','!'};
B.charb[10]={'h','e','l','l','o','!'};
C.charb[10];strcpy(b,"Hello!");
D.charb[10]="Hello!";
50.若有以下函數(shù)首部intfun(doublex[10],int*n)則下面針對此函數(shù)的函數(shù)聲明語句中正確的是______。A.intfun(doublex,int*n);
B.intfun(double,int);
C.intfun(double*x,intn);
D.intfun(double*,int*);
51.以下程序的輸出結(jié)果是______。intf(){staticinti=0;ints=1;s+=i;i++;returns;}main(){inti,a=0;for(i=0;i<5;i++)a+=f():printf("%d\n",a);}
A.20B.24C.25D.15
52.按照C語言規(guī)定的用戶標(biāo)識符命名規(guī)則,不能出現(xiàn)在標(biāo)識符中的是()。
A.大寫字母B.連接符C.數(shù)字字符D.下劃線
53.有以下程序main(){inti=1,j=1,k=2;if((j++‖k++)&&i++)printf("%d,%d,%d\n",i,j,k);}執(zhí)行后輸出結(jié)果是
A.1,1,2B.2,2,1C.2,2,2D.2,2,3
54.有以下程序:mare(){inti,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf("%d\n",s);}程序執(zhí)行后的輸出結(jié)果是()。
A.45B.20C.25D.36
55.以下不合法的字符常量是()。
A.'\018'B.'\"'C.'\\'D.'\xcc'
56.有以下程序main(){inta=i,b;for(b=1;b<=10;b++){if(a>=8)break;if(a%2==1){a+=5;continue;}a-=3;}printf("%d\n",B);}程序運(yùn)行后的輸出結(jié)果是
A.3B.4C.5D.6
57.若已包括頭文件<string.h>且已有定義chars1[18],s2={"ABCDE"}和inti,現(xiàn)要將字符串"ABCDE"賦給s1,下列語句錯誤的是()。
A.strcpy(s1,s2)
B.strcpy(s1,"ABCDE");
C.s1="ABCDE";
D.for(i=0;i<6;i++)s1[i]=s2[i];
58.設(shè)有如下關(guān)系表:
則下列操作正確的是()。
A.T=R/SB.T=R×SC.T=R∩SD.T=R∪S
59.C語言中,文件組成的基本單位為()。
A.記錄B.數(shù)據(jù)行C.數(shù)據(jù)塊D.字符序列
60.有以下程序:main(){char*p[10]={"abc","aabdfg","dcdbe","abbd","cd"};printf("%d\n",strten(p[4]));}執(zhí)行后輸出結(jié)果是
A.2B.3C.4D.5
四、選擇題(20題)61.以下敘述中錯誤的是()。。
A.C程序必須由一個或一個以上的函數(shù)組成
B.函數(shù)調(diào)用可以作為一個獨立的語句存在
C.NN數(shù)NNN值,必須通過return語句返回
D.函數(shù)形參的值也可以傳回給對應(yīng)的實參
62.
63.34.有以下程序
#include<stdio.h>
unionpw
{inti;
charch[2];
}a;
main()
{a.ch[0]=13;a.ch[1]=0;
printf("%d\n",a.i);
}
程序的輸出結(jié)果是
A.13B.14
C.0D.20
64.設(shè)有如下說明:
以下說法正確的是()。
A.NEW是一個結(jié)構(gòu)體變量
B.NEW是一個結(jié)構(gòu)體類型
C.ST是一個結(jié)構(gòu)體類型
D.以上說明形式非法
65.下列程序執(zhí)行后的輸出結(jié)果是()#defineMA(x
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 手術(shù)室收費(fèi)管理措施
- 應(yīng)屆生的工作年終總結(jié)
- 寫文學(xué)評論課件
- 建設(shè)工程項目管理
- 2025年盾構(gòu)機(jī)職業(yè)技能考試題庫及答案(完整版)
- 企業(yè)安全生產(chǎn)手段
- 全科小講課規(guī)范
- 福建省莆田市2025屆高三下學(xué)期二模物理試卷(含解析)
- 2024-2025學(xué)年人教版化學(xué)九年級上冊第三單元檢測卷(含答案)
- 急性硬膜下血腫的護(hù)理
- 保潔員巡查簽到表
- 2024年山東省濰坊市昌邑市中考一模數(shù)學(xué)試題
- 2024年4月自考10132電腦印刷設(shè)計試題
- GB/T 6346.1-2024電子設(shè)備用固定電容器第1部分:總規(guī)范
- 2024高考英語必背詞匯3500詞
- 中班音樂春天多美好
- 首字母填空解題方法大全
- 醫(yī)院培訓(xùn)課件:《醫(yī)療廢物分類》
- 職業(yè)病健康培訓(xùn)課件
- 熱能與動力工程專業(yè)基礎(chǔ)課件
- 《徐工銷售技巧培訓(xùn)》課件
評論
0/150
提交評論