版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2022年安徽省淮北市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.有以下程序:#includeMain(){intb[3][3]={0.1,2.0,1,},i,j,t=1;for(i=0;i<3;i++)for(j=i;j<=i;j++)t+=b[i][b[j][i]];printf(“%d\n”,t);程序運行后的輸出結(jié)果是()。A.3B.4C.1D.9
2.設(shè)有遞歸算法如下試問計算x(x(8))時需要計算()次x函數(shù)。A.8B.9C.16D.18
3.
4.在供應(yīng)關(guān)系中,實體供應(yīng)商和實體零件之間的聯(lián)系是()。
A.多對多B.一對一C.多對一D.一對多
5.若要求定義具有10個int型元素的一維數(shù)組a,則以下定義語句中錯誤的是A.#defineN10inta[N];B.#definen5inta[2*n];C.inta[5+5];
D.intn=10,a[n];
6.下列程序的輸出結(jié)果是______。#include<stdio.h>main(){inti,j,k,a=3,b=2;i=(--a==b++)?--a;++b;j=a++;k=b;printf("i=%d,j=%d,k=%d\n",i,j,k);}
A.i=2,j=1,k=3B.i=1,j=1,k=2C.i=4,j=2,k=4D.i=1,j=1,k=3
7.以下敘述中錯誤的是()。
A.線性結(jié)構(gòu)也能采用鏈式存儲結(jié)構(gòu)
B.線性結(jié)構(gòu)一定能采用順序存儲結(jié)構(gòu)
C.有的非線性結(jié)構(gòu)也能采用順序存儲結(jié)構(gòu)
D.非線性結(jié)構(gòu)一定不能采用順序存儲結(jié)構(gòu)
8.有以下程序:#include<stdio.h>#include<string.h>main(){printf(“%d\n”,strlen(“0\t\n\0C011\1”));}程序運行后的輸出結(jié)果是()。
A.3B.13C.1D.0
9.設(shè)已包含頭文件<string.h>,下列程序段的運行結(jié)果是()。chars1[]={"ACDEF"};chars2[]="ABC";strcpy(s1,s2);printf("%d",strlen(s1));
A.3B.4C.6D.5
10.直接選擇排序的時間復(fù)雜度為()。(n為元素個數(shù))
A.O(n)B.O(log2n)C.O(nlog2n)D.O(n2)
11.計算機算法必須具備輸入、輸出和()等5個特性。
A.可行性、可移植性和可擴充性B.可行性、確定性和有窮性C.確定性、有窮性和穩(wěn)定性D.易讀性、穩(wěn)定性和安全性
12.若有以下程序
則程序的輸出結(jié)果是
A.3B.7C.6D.10
13.視圖設(shè)計一般有3種設(shè)計次序,下列不屬于視圖設(shè)計次序的是()。
A.自頂而下B.由內(nèi)向外C.由外向內(nèi)D.自底向上
14.設(shè)一組初始記錄關(guān)鍵字序列為(Q,H,C,Y,P,A,M,S,R,D,F,X),則按字母升序的第一趟冒泡排序結(jié)束后的結(jié)果是()
A.F,H,C,D,P,A,M,Q,R,S,Y,X
B.P,A,C,S,Q,D,F,X,R,H,M,Y
C.A,D,C,R,F,Q,M,S,Y,P,H,X
D.H,C,Q,P,A,M,S,R,D,F,X,Y
15.在C語言中,退格符是
A.\nB.\tC.\fD.\b
16.以下選項中能用作數(shù)據(jù)常量的是()。
A.115LB.0118C.1.5e1.5D.o115
17.判斷一個循環(huán)隊列cq(最多元素為m)為滿的條件是()。
A.cq->rear-cq-front=m;
B.(cq->rear+1)%m=cq->front;
C.cq->front=cq->rear;
D.cq->rear=m-1;
18.若變量x、y已正確定義并賦值,以下符合C語言語法的表達式是()。
A.X+1=yB.++X.Y=X一一C.X=X+10=X+YD.double(X)/10
19.
20.若有定義“chars1[100]=“name”,s2[50]=“address”,s3[80]=“person”;”,要將它們連接成新串“personnameaddress”,正確的函數(shù)調(diào)用語句是()。
A.strcat(strcat(s1,s2),s3);
B.strcat(s3,strcat(s1,s2);
C.strcat(s3,strcat(s2,s1);
D.strcat(strcat(s2,s1),s3);
二、2.填空題(20題)21.診斷和改正程序中錯誤的工作通常稱為【】。
22.衡量軟件的模塊獨立性使用耦合性和內(nèi)聚性兩個定性的度量標準,其中()是度量一個模塊功能強度的一個相對指標。
23.下面程序的功能是【】。
doublesub(doublex,inty)
{intn;doublez;
for(n=1,z=x;n<y;n++)z=z*x;
returnz;}
main()
{doublea=2.0,b=4.0,c;
c=sub(a,b);printf("%f",c);}
24.下面的程序可對指定字符串中的字符串進行從大到小排序,請將程序完整。(注:程序采用了冒泡排序算法)
#include<stdio.h>
#include<string.h>
main()
{char*str="ABCDabcd",temp;
intn,i;
n=strlen(str);
while(n->1)
for(i=0;i<n;i++)
if(str[i]<str[i+1])
{temp=【】;
str[i]=str[i+1];
【】=temp;
}
printf(【】);
}
25.在面向?qū)ο蟪绦蛟O(shè)計中,從外面看只能看到對象有外部特征,而不知道也無須知道數(shù)據(jù)的具體結(jié)構(gòu)以及實現(xiàn)操作的算法,這稱為對象的______。
26.以下程序運行后的輸出結(jié)果是【】。
main()
{inta=1,b=3,c=5;
if(c=a+b)printf("yes\n");
elseprintf("no\n");
}
27.下列軟件系統(tǒng)結(jié)構(gòu)圖的寬度為[]。
28.下列表達式用于判斷y是否為閏年。閏年的判斷條件是:年號能被4整除但不能被100整除或年號能被400整除,請?zhí)羁誣_____。
29.在算法的4個特性中,算法必須能在執(zhí)行有限個步驟之后終止指的是算法的______特性。
30.下面函數(shù)的功能是:找出一維數(shù)組元素中最大的值和它所在的下標,最大的值和它所在的下標通過形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個數(shù),max存放最大值,index存放最大值所在元素的下標。請?zhí)羁铡?/p>
#include<stdlib.h>
#include<stdio.h>
voidfun(inta[],intn,int*max,int*d)
{intI;
*max=a[0];
*d=0;
for(I=0;【】;I++)
if(*max<【】)
{*max=a[I];*d=i;}}
main()
{inti,x[20],max,index,n=10;
randomize();
for(i=0;i<n;i++)
{x[i]=rand()%50;printf("%4d",x[i]);}
printf("\n");
fun(x,n,&max,&index);
printf("Max=%5d,Index=%4d\n",max,index);}
31.若a是int型變量,則下列表達式的值為______。
(a=2*3,a*2),a+4
32.函數(shù)fun的功能是:根據(jù)以下公式求p的值,結(jié)果由函數(shù)值返回。m與n為兩個正數(shù),且要求m>n。
例如:m=12,n=8時,運行結(jié)果應(yīng)該是495.000000。請在題目的空白處填寫適當?shù)某绦蛘Z句,將該程序補充完整。
#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));
}
33.已有定義如下:
structnode
{intdata;
structnode*next;
}*p;
以下語句調(diào)用malloc函數(shù),使指針p指向一個具有structnode類型的動態(tài)存儲空間。請?zhí)羁铡?/p>
p=(structnode*)malloc(【】);
34.以下程序的輸出結(jié)果是______。
voidfun()
{staticinta=0;
a+=2;printf("%d",a);
}
main()
{intcc;
for(cc=1;cc<4;cc++)fun();
printf("\n");
}
35.由25人圍坐成圓圈,先由任意一人開始順時針沿用1~25依次編號,然后從1號開始順時針報數(shù)(1、2、3…),凡報5的倍數(shù)者出圈,剩下者繼續(xù)報數(shù),求出最后出圈者的編號。
#include
main()
{inta[26],j,n,count;
for(j=1;j<=25;j++)a[j]=j;
j=1;count=0;n=【】;
do
{
if(a[j]!=0)
{n++;
if(n%5==0)
{【】;
if(count==24)printf("%d\n",,j);
count++;
}
}
j++;
if(j>25)j=1;
}
while(【】);
}
36.設(shè)有下列的程序段;
charstr[]="Hello";
char*ptr;
ptr=str;
執(zhí)行上面的程序段后,*(ptr+5)的值為______。
37.實現(xiàn)算法所需的存儲單元多少和算法的工作量大小分別稱為算法的【】。
38.對二叉排序樹進行查找的方法是:用待查的值與根結(jié)點的值相比,若比根小,則繼續(xù)在【】子樹中找。
39.以下程序中給指針p分配3個double型動態(tài)內(nèi)存單元,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{double*p;
p=(double*)malloc((【】);
p[0]=1.5;p[1]=2.5;p[2]=3.5;
printf("%f%f%f\n",p[0],p[1],p[2]);
}
40.下列程序的運行結(jié)果是【】。
#include<stdio.h>
main()
{unionEXAMPLE
{struct
{intx;inty;}in;
inta;
intb;
}e;
e.a=1;e.b=2;
e.in.x=e.a*e.b;
e.in.y=e.a+e.b;
printf("%d,%d\n",e.in.x,e.in.y);
}
三、1.選擇題(20題)41.兩次運行下列的程序,如果從鍵盤上分別輸入3和1,則輸出結(jié)果是()。main(){intx;scanf("%d",&x);if(x++>2)printf("%d",x);elseprintf("%d\n",x-);}
A.4和2B.4和1C.4和0D.3和1
42.MIPS常用來描述計算機的運算速度,其含義是()。A.A.每秒鐘處理百萬個字符
B.每分鐘處理百萬個字符
C.每秒鐘執(zhí)行百萬條指令
D.每分鐘執(zhí)行百萬條指令
43.下列關(guān)鍵字中,不屬于C語言變量存儲類別的是______。
A.registerB.autoC.externD.public
44.以下數(shù)據(jù)結(jié)構(gòu)中不屬于線性數(shù)據(jù)結(jié)構(gòu)的是______。
A.隊列B.線性表C.二叉樹D.棧
45.對下述程序,正確的判斷是()main(){inta,b,seanf("%d,%d",&a,&b);if(a>b)a=b;b=a;elsea++;b++printf("%d,%d",a,b);}
A.有語法錯誤不能通過編譯B.若輸入4,5則輸出5,6C.若輸入5,4則輸出4,5D.若輸入5,4則輸出5,5
46.以下敘述中錯誤的是()。
A.C語句必須以分號結(jié)束
B.復(fù)合語句在語法上被看作一條語句
C.空語句出現(xiàn)在任何位置都不會影響程序運行
D.賦值表達式末尾加分號就構(gòu)成賦值語句
47.有以下程序:#include<stdio.h>voidss(char*s,chart){while(*s){if(*s==t)*s=t-'a'+'A';s++;}}main(){charstrl[20]="abcddfefdbd",c='d';ss(strl,c);Printf("%s\n",strl);}程序運行后的輸出結(jié)果是()。
A.ABCDDEFEDBDB.abcDDfefDbDC.abcAAfefAbAD.Abcddfefdbd
48.以下程序段的輸出結(jié)果是()。inta=1234;floatb=123.456;doublec=12345.54321;printf("%2d,%2.1f,%2.1f",a,b,c);
A.無輸出
B.12,123.5,12345.5
C.1234,123.5,12345.5
D.1234,123.4,1234.5
49.用樹形結(jié)構(gòu)來表示實體之間聯(lián)系的模型稱為()。
A.關(guān)系模型B.層次模型C.網(wǎng)狀模型D.數(shù)據(jù)模型
50.下列各數(shù)據(jù)類型不屬于構(gòu)造類型的是()。
A.枚舉型B.共用型C.結(jié)構(gòu)型D.數(shù)組型
51.假定int類型變量占用兩個字節(jié),若有定義:intx[10]{0,2,4};,則數(shù)組x在內(nèi)存中所占字節(jié)數(shù)是______。
A.3B.6C.10D.20
52.下列工具中,屬于需求分析常用工具的是()。
A.PFDB.PADC.N-SD.DFD
53.有以下程序#include<stdlib.h>main(){char*p,*q;p=(char*)malloc(sizeof(char)*20);q=p;scanf("%s%s",p,q);printf("%s%s\n",p,q);}若從鍵盤輸入:abcdef<回車>,則輸出結(jié)果是
A.defdefB.abcdelC.abcdD.dd
54.結(jié)構(gòu)化程序設(shè)計主要強調(diào)的是()。
A.程序的規(guī)模B.程序的效率C.程序設(shè)計語言的先進性D.程序的易讀性
55.若有語句:char*line[5];,以下敘述中正確的是
A.定義line是一個數(shù)組,每個數(shù)組元素是一個基類型為char的指針變量
B.定義line是一個指針變量,該變量可以指向一個長度為5的字符型數(shù)組
C.定義line是一個指針數(shù)組,語句中的。號稱為間址運算符
D.定義line是一個指向字符型函數(shù)的指針
56.在軟件開發(fā)中,下面的任務(wù)不屬于設(shè)計階段的是()。
A.數(shù)據(jù)結(jié)構(gòu)設(shè)計B.給出系統(tǒng)模塊結(jié)構(gòu)C.定義模塊算法D.定義需求并建立系統(tǒng)模塊
57.下面程序段的運行結(jié)果是charstr[]="ABC",*p=str;printf("%d\n",*(p+3));
A.67B.0C.字符'C'的地址D.字符'C'
58.設(shè)有以下語句
typedefstructS
{intg;charh;}T;
則下面敘述中正確的是()A.可用S定義結(jié)構(gòu)體變量B.可以用T定義結(jié)構(gòu)體變量C.S是struct類型的變量D.T是structS類型的變量
59.有以下程序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
60.關(guān)系數(shù)據(jù)庫管理系統(tǒng)能實現(xiàn)的專門關(guān)系運算包括()。
A.排序、索引、統(tǒng)計B.選擇、投影、連接C.關(guān)聯(lián)、更新、排序D.顯示、打印、制表
四、選擇題(20題)61.有以下程序段以下關(guān)于程序段執(zhí)行情況的敘述,正確的是()。
A.當產(chǎn)生的隨機數(shù)n為0時結(jié)束程序運行
B.當產(chǎn)生的隨機數(shù)n為4時結(jié)束循環(huán)操作
C.當產(chǎn)生的隨機數(shù)n為1和2時不做任何操作
D.for循環(huán)語句固定執(zhí)行8次
62.
63.
64.
65.有以下程序
main()
{
inta[]={1,2,3,4,5,6,7,8,9,0},*p;
for(p=a;p<a+10;p++)
printf("%d,",*p);
}
程序運行后的輸出結(jié)果是
A.1,2,3,4,5,6,7,8,9,0,B.2,3,4,5,6,7,8,9,10,1,
C.0,1,2,3,4,5,6,7,8,9,D.1,1,1,1,1,1,1,1,1,1,
66.在下列選項中,哪個不是一個算法一般應(yīng)該具有的基本特征()。
A.無窮性B.可行性C.確定性D.有窮性
67.
68.
69.
70.
71.在計算機中,算法是指()
A.加工方法B.解題方案的準確而完整的描述C.排序方法D.查詢方法
72.
有以下程序
#include<stdio.h>
#include<string.h>
typedefstrlIct{charname[9];charsex;floatscore[2];}STU;
STUf(STUa)
{STUb={"Zhao",m,85.0,90.0);inti;
strcpy(aname,b.name);
sex:b.sex;
for(i=0;i<2;i++)a.score[i]=b.score[i];
returna;
}
main
{STUc="Qian",f,95.0,92.0},d;
d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);
}
程序的運行結(jié)果是()。
A.Qian,f,95,92
B.Qian,m,85,90
C.Zhao,m,85,90
D.Zhao,f,95,92
73.設(shè)pl和p2是指向一個int型一維數(shù)組的指針變量,k為int型變量,則不能正確執(zhí)行的語句是()。
A.k=*pl+*p2B.p2=k;C.pl=p2;D.k=*pl*(*p2.;
74.以下程序中函數(shù)f的功能是:當na9為1時,進行由小到大排序;當fla9為oN。進行由大到小排序。程序運行后的輸出結(jié)果是()
75.設(shè)有以下語句:inta=1,b=2,c;c=a^(b<<2);執(zhí)行后,c的值為()。A.6B.7C.8D.9
76.有下列二叉樹.對此二叉樹前序遍歷的結(jié)果為()。
A.ACFXDBEYZB.ABEFXYZCDC.ABCDEFXY7D.ABDYECFXZ
77.閱讀下列程序,當運行函數(shù)時,輸入abcdefgzl0,則輸出為()。
A.abcB.zl0C.abcdefgzl0abcdefgzl0D.abcdefgzl0
78.如圖所示,兩個關(guān)系R1和R2:
則由關(guān)系R1和R2得到關(guān)系R3的操作是()。
A.笛卡爾積B.連接C.交D.除
79.
80.若執(zhí)行下面的程序時,從鍵盤輸入6和2,則輸出結(jié)果是()。
A.5B.3C.2D.0
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:根據(jù)輸入的:個邊長(整型值),判斷能否構(gòu)成三角形:若能構(gòu)成等邊三角形,則返回3;若是等腰三角形,則返回2;若能構(gòu)成三角形則返回l;若不能,則返回0。
例如,輸入3個邊長為3,4,5,實際輸入時,數(shù)與數(shù)之間以Enter鍵分隔而不是逗號。
請修改程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdio.h>
#include<math.h>
intproc(inta,intb,intc)
{
if(a+b>c&&b-c>a&&a+c>b)
{
if(a==b&&b==c)
//****found****
return1;
elseif(a==b||b==C||a==c)
return2;
//****found****
elsereturn3;
}
elsereturn0;
}
voidmain
{
inta,b,c,shape;
printf("\nInputa,b,c:");
scanf("%d%d%d",&a,&b,&c);
printf("\na=%d.b=%d,c=%d\n",a,b,c);
shape=proc(a,b.c):
printf("\n\nTheshape:%d\n",shape);
}
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),該函數(shù)的功能是統(tǒng)計一行字符串中單詞的個數(shù),并將其作為函數(shù)值返回。字符串在主函數(shù)中輸入,規(guī)定所有單詞由小寫字母組成,單詞之間由若干個空格隔開,一行的開始沒有空格。注意:部分源程序在文件prog1.c中。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:1#include<string.h>2#include<stdio.h>3#defineN804intfun(char*s)5{67}8voidmain()9{10FILE*wf;11charline[N];12intnum=0;13printf("Enterastring:\n");14gets(line);15num=fun(line);16printf("Thenumberofwordsis:%d\n\n",num);17/*********found*********/18wf=fopen("out.dat","w");19fprintf(wf,"%d",fun("abigcar"));20fclose(wf);21/*********found*********/22}
參考答案
1.B
2.D
3.D
4.A一家供應(yīng)商可提供多種零件,一種零件也可被多家供應(yīng)商提供。所以實體供應(yīng)商和實體零件之間的聯(lián)系是多對多。本題答案為A選項。
5.D答案D
解析:在選項D中,n是一個整型的變量。C語言規(guī)定,在一維數(shù)組的定義中,其下標只能是常量表達式,不能包含變量。
6.D
7.D滿二叉樹與完全二叉樹均為非線性結(jié)構(gòu),但可以按照層次進行順序存儲。本題答案為D選項。
8.AC語言中的轉(zhuǎn)義字符也是一個字符。字符串“0\\t\\n\\0C011\\1”,共有字符‘0’、‘\\t’、‘\\n’3個字符。strlen遇到‘\\0’字符計數(shù)結(jié)束,因此計數(shù)為3。故本題答案為A選項。
9.A解析:頭文件<string.h>是字符串處理函數(shù)對應(yīng)的頭文件,要想調(diào)用C語言的庫函數(shù)時,都要在程序中嵌入該函數(shù)對應(yīng)的頭文件,否則無法使用庫函數(shù)。
strcpy(s1,s2)把s2中的字符串復(fù)制到s1中,所以結(jié)果就為s2的長度。
10.D
11.B
12.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。
13.C視圖設(shè)計的設(shè)計次序分3種:自頂向下、自底向上和由內(nèi)向外。它們?yōu)橐晥D設(shè)計提供了具體的操作方法,設(shè)計者可根據(jù)實際情況靈活掌握。
14.D
15.D解析:在C++語言中退格符表示為\\b退格。注意:其他轉(zhuǎn)義字符的意義:\\n表示回車換行,\\t表示橫向跳到下一制表位置,\\v表示豎向跳格,\\r表示回車,\\f表示走紙換頁,\\\\表示反斜線符,\\a表示鳴鈴,\\ddd1~3位表示八進制數(shù)所代表的字符,\\xhh1~2位表示十六進制數(shù)所代表的字符。
16.AA選項中“115L”表示長整型數(shù)據(jù)。B選項是八進制常量的表示方法,但是在八進制中不能含有數(shù)字8,所以B選項錯誤。C選項中e后面應(yīng)該是整數(shù),而不能是小數(shù)1.5,所以C選項錯誤。D選項中八進制常量應(yīng)該是以數(shù)字“0”開始,而不是以字母“o”開始。故本題答案為A選項。
17.B
18.BA選項中不能將變量Y賦給表達式,c選項中錯誤與A選項一樣,D選項中強制類型轉(zhuǎn)換表達式應(yīng)寫成(doub1e)x/10。
19.A
20.Bstrcat函數(shù)是字符串連接函數(shù),調(diào)用形式為strcat(s1,s2)。其功能是將s2指向的字符串的內(nèi)容連接到s1指向的存儲空間中,并返回s1的地址。由題意可知,新串首地址為s3,所以s3應(yīng)該是第一參數(shù),選項A、D錯誤。同理,新串中除了S3所指的字符串,剩下的字符串為“nameaddress”,即首地址為s1,所以調(diào)用strcat函數(shù),s1是第一參數(shù)。所以正確的函數(shù)調(diào)用語句為“strcat(s3,strcat(s1,s2))”。故本題答案為B選項。
21.程序調(diào)試程序調(diào)試解析:程序調(diào)試的任務(wù)是診斷和改正程序中的錯誤。程序調(diào)試與軟件測試不同,軟件測試是盡可能多地發(fā)現(xiàn)軟件中的錯誤。先要發(fā)現(xiàn)軟件的錯誤,然后借助于調(diào)試工具找出軟件錯誤的具體位置。軟件測試貫穿整個軟件生命期,而調(diào)試主要在開發(fā)階段。
22.內(nèi)聚性內(nèi)聚性解析:模塊的獨立程度是評價設(shè)計好壞的重要度量標準。衡量軟件的模塊獨立性使用耦合性和內(nèi)聚性兩個定性的度量標準。內(nèi)聚性是度量一個模塊功能強度的一個相對指標,耦合性則用來度量模塊之間的相互聯(lián)系程度。
23.本程序的功能是求a的b次方本程序的功能是求a的b次方
24.str[i]str[i+1]"%s"strstr[i]\r\nstr[i+1]\r\n'%s',str解析:本題要求將字符串str中的字符用冒泡排序算法從大到小排列,其實現(xiàn)過程是將相鄰兩個字符進行比較,如果當前字符小于下一個字符;則通過中間變量temp將字符兩兩交換,所以第一空應(yīng)填:str[i],第二空應(yīng)填:str[i+1]。最終打印輸出得到的字符串str,所以第三空應(yīng)填;'%s',str。
25.封裝性封裝性解析:對象具有下列5個基本特點:①標識惟一性;②分類性:③多態(tài)性;④封裝性;⑤模塊獨立性好。其中,封裝性是指從外面看只能看到對象的外部特征,對象的內(nèi)部特征即處理能力的實行和內(nèi)部狀態(tài),對外是不可見的,對象的內(nèi)部狀態(tài)只能由其自身改變。
26.yesyes解析:if語句的條件語句為c=a+b=1+3=4,即條件為真,執(zhí)行語句printf('yes\\n');,輸出結(jié)果為yes。
27.33解析:軟件系統(tǒng)結(jié)構(gòu)圖的寬度:整體控制跨度(最大模塊數(shù)的層)的表示。
28.(y%4==0)&&(y%100!=0)||(y%400==0)(y%4==0)&&(y%100!=0)||(y%400==0)解析:考查邏輯表達。年號能被4整除(y%4==0)但不能被100整除(y%100!=0),兩者是與的關(guān)系,年號能被400整除即y%400==0,與前兩項是或的關(guān)系。
29.有窮性有窮性解析:算法的4個基本特性包括:可靠性、確定性、有窮性和擁有足夠的情報,其中,算法的有窮性指的是算法必須在有限的時間內(nèi)完成,即算法必須在執(zhí)行有限個步驟之后終止。
30.I<na[I]I<n,a[I]解析:該程序直接使用形參max和d,由于它們都是指針變量,所以要引用它們所指向的變量時,要對它們進行指針運算,即*號運算。
31.1010解析:此題考查逗號表達式。逗號表達式的值是最后一個表達式的值,所以本題的返回值是a+4。前面已經(jīng)給a賦值6,所以追回值a+4=6+4=10。
32.p=p*ip=p/ip=p*ip=p/i解析:本題中,欲求p的值,需要先求m!,n!,(m-n)!,可分別用循環(huán)語句實現(xiàn)。
33.sizeof(structnode)或4sizeof(structnode)或4解析:malloc(sizeof(struetnode))的作用是開辟一個長度為sizeof(struetnode)的內(nèi)存區(qū)。(structnode*)的作用是使malloc返回的指針轉(zhuǎn)換為指向structnode類型數(shù)據(jù)的指針。
34.246
35.0a[j]=0count<25
36.'\0''\\0'解析:本題涉及字符數(shù)組和指針的兩個知識點:①在C語言中,字符型數(shù)組在存放字符串時會自動在末尾加上字符串結(jié)束標識符'\\0'所以題中數(shù)組str有6個元素。②ptr指向數(shù)組str的首地址,ptr+5是指向str[5],*(ptr+5)是引用str[5]的值,即'\\0'。
37.空間復(fù)雜度和時間復(fù)雜度算法的復(fù)雜性是指對一個在有限步驟內(nèi)終止算法和所需存儲空間大小的估計。算法所需存儲空間大小是算法的空間復(fù)雜性,算法的計算量是算法的時間復(fù)雜性。
38.左左解析:對二叉排序樹進行查找,若待查的值與根結(jié)點的值相比,若比根小,則繼續(xù)在左子樹中找;若比根大,則在右子樹中找。
39.3*sizeof(double)或size(double)*3或24或3*8或8*33*sizeof(double)或size(double)*3或24或3*8或8*3解析:該函數(shù)的調(diào)用格式是malloc(n),作用是申請n個字符的存儲單元,并返回該存儲區(qū)的首地址,實際調(diào)用的時候可在前面加上“(類型說明符*)”,以轉(zhuǎn)換成需要的類型的地址。所以在此空白處應(yīng)該填寫3*sizeof(double)或size(double)*3或其他等價的表達式。
40.484,8解析:C語言規(guī)定,共用體中各個成員變量在內(nèi)存中占用同一段內(nèi)存單元,即e.in.x、e.a、e.b占用同一段內(nèi)存單元。執(zhí)行語句e.b=2;后,e.in.x=e.a=e.b=2;執(zhí)行語句e.in.x=e.a*e.b;時,e.a的值為2,e.b的值為2,所以運算得出e.in.x的值為4;執(zhí)行語句e.in.y=e.a+e.b時,由于e.in.x和e.a、e.b占用的是同一段內(nèi)存單元,所以此時的e.a、e.b的值為4,因此運算得出e.in.y的值為4+4=8。程序最后的輸出結(jié)果為4,8。
41.A解析:本題考查ifelse語句。首先scanf函數(shù)通過鍵盤讀入x的值.當x=3時,第一個if語句,先判斷條件,取x的值3和2比較,然后將x的值加1,發(fā)現(xiàn)條件成立,執(zhí)行下列的printf語句,輸出x的值4。當x=1時,第一個if語句,先判斷條件,取x的值1和2比較,然后將x的值加1(x的值變?yōu)?),發(fā)現(xiàn)條件不成立,執(zhí)行下列的else語句,先輸出x的值2,再將x的值減1。
42.C解析:計算機的性能在很大程度上是由CPU決定的,CPU的性能主要體現(xiàn)在它的運算速度,通常使用計算機每秒鐘能夠執(zhí)行的指令條數(shù)來描述速度高低,可以用單字長定點指令的平均執(zhí)行時間表示,單位是MIPS,它是Million\u3000of\u3000Instructions\u3000Per\u3000Second的縮寫,意思是“每秒百萬條指令”,也可以用單字長浮點指令的平均執(zhí)行時間表示,單位是\u3000MFLOPS(Million\u3000Floating\u3000instructions\u3000Per\u3000Second)。
43.D解析:變量的存儲類別具體包含四種:自動的(auto),靜態(tài)的(static),寄存器的(register),外部的(extern)。
44.C解析:線性表、棧和隊列所表達和處理的數(shù)據(jù)以線性結(jié)構(gòu)為組織形式。棧是一種特殊的線性表,它只能在固定的一端進行插入和刪除操作,又稱后進先出表(LastInFirstOut);隊列是插入在一端進行,刪除在另一端進行的線性表,又稱先進先出表(FirstInFirstOut)。
45.A
46.C解析:C語句必須以分號結(jié)束,選項A是正確的。復(fù)合語句在語法上被看作一條語句,選項B也是正確的??照Z句也算是一條語句,因此如果空語句出現(xiàn)在條件或者循環(huán)語句中,一樣會被當作條件子句或者循環(huán)體來看待,所以選項c是錯誤的。賦值表達式末尾加分號就構(gòu)成賦值語句,選項D正確。故本題應(yīng)該選擇C。
47.B解析:對字符數(shù)據(jù)進行算術(shù)運算相當于對它們的ASCII碼進行算術(shù)運算。程序中的t-'a'+'A'是將字符變量t中的字符轉(zhuǎn)換為相對應(yīng)的大寫字母。語句if(*s==t)*s=t-'a'+'A';首先判斷s所指元素是否與t中的字符('d')相同,若相同則轉(zhuǎn)換為相對應(yīng)的大寫字母,否則s++,s指向數(shù)組中的下一個元素。
48.C解析:以%mf或%mlf格式輸出浮點數(shù)時,如果指定寬度大于實際數(shù)據(jù)寬度,則按指定寬度輸出,且多余數(shù)補以空格;如果指定寬度小于實際數(shù)據(jù)寬度,浮點數(shù)的整數(shù)部分將以實際位數(shù)輸出,小數(shù)部分按指定位數(shù)輸出,且對數(shù)據(jù)做四舍五入處理。而輸出整型數(shù)時,沒有寬度限制的整數(shù)按原數(shù)輸出;在寬度限制小于數(shù)的實際位數(shù)時,寬度說明無效,按數(shù)的實際位數(shù)輸出。
49.B解析:在數(shù)據(jù)庫系統(tǒng)中,由于采用的數(shù)據(jù)模型不同,相應(yīng)的數(shù)據(jù)庫管理系統(tǒng)(DBMS)也不同。目前常用的數(shù)據(jù)模型有3種:層次模型、網(wǎng)狀模型和關(guān)系模型。在層次模型中,實體之間的聯(lián)系是用樹結(jié)構(gòu)來表示的,其中實體集(記錄型)是樹中的結(jié)點,而樹中各結(jié)點之間的連線表示它們之間的關(guān)系。所以,本題的正確答案是B。
50.A本題考查高級語言的數(shù)據(jù)類型。其中屬于構(gòu)造類型的主要有結(jié)構(gòu)體類型、聯(lián)合體類型,即共用體類型和數(shù)組類型。
51.D解析:當數(shù)組定義后,系統(tǒng)就為其分配內(nèi)存空間,而不論其中有沒有內(nèi)容。因此,本題中數(shù)組x[10]不論是否為其元素初始化,它所分配的存儲空間仍為2*10=20個字節(jié)。
52.D解析:在需求分析階段,根據(jù)可行性研究階段提交的文檔,特別是從數(shù)據(jù)流圖(DFD)出發(fā),對目標系統(tǒng)提出清晰、準確和具體的要求,即要明確系統(tǒng)必須做什么的問題。這個階段中常用的工具是數(shù)據(jù)流圖(DFD)。
53.A解析:本題考查的知識點是字符型指針變量、malloc()函數(shù)的使用。本題首先定義兩個字符型指針變量p和q,通過malloc()函數(shù)申請20個字符的存儲空間,并把它的首地址賦給p,在把p的值賦給q,p和q指向同一個存儲區(qū)。在scanf()語句中讀取字符串到p和q指向的字符串,先把“abc”讀取到p指向的存儲區(qū)中,第一個空格是結(jié)束標記,第二個空格是分隔符,再把“def”存放到q指向的存儲區(qū),把原先的內(nèi)容覆蓋。所以p和q指向的存儲區(qū)中內(nèi)容是“def”,所以最后輸出的def,clef.所以4個選項中A正確。
54.D解析:程序不僅是編寫完就結(jié)束了,為了測試和維護程序,往往還有其他人閱讀和跟蹤程序,因此程序設(shè)計的風格應(yīng)該強調(diào)簡單和清晰,即程序的易讀性,“清晰第一,效率第二”。
55.A解析:C語言中[]比*優(yōu)先級高,因此line先與[5]結(jié)合,形成line[5]形式,這是數(shù)組形式,它有5個元素,然后再與line前面的“*”結(jié)合,表示此數(shù)組是一個指針數(shù)組,每個數(shù)組元素都是一個基類型為char的指針變量。
56.D解析:軟件設(shè)計一般分為總體設(shè)計和詳細設(shè)計兩個階段??傮w設(shè)計的任務(wù)是確定軟件的總體結(jié)構(gòu)、子系統(tǒng)和模塊的劃分,確定模塊間的接口和評價模塊劃分質(zhì)量,并進行數(shù)據(jù)分析;詳細設(shè)計的任務(wù)是確定每一模塊實現(xiàn)的定義,包括數(shù)據(jù)結(jié)構(gòu)、算法和接口。
57.B解析:考查指向字符串的指針變量。在該題中,指針變量p指向的應(yīng)該是該字符串中的首地址,p+3指向的是字符串結(jié)束標志'\\0'的地址,因而。(p+3)的值為0。
58.B解析:結(jié)構(gòu)體類型的定義格式為:
strcut結(jié)構(gòu)體名
{成員說明列表};
結(jié)構(gòu)體變量的定義有3種形式:第一種:定義結(jié)構(gòu)體型的同時定義結(jié)構(gòu)體變量如:strcut結(jié)構(gòu)體名{成員說明列表}變量;第二種先定義一個結(jié)構(gòu)體類型,然后使用該類型來定義結(jié)構(gòu)體變量,如:strcutstudent{成員說明列表):student變量;第三種:定義一個無名稱的結(jié)構(gòu)體類型的同時定義結(jié)構(gòu)體變量,如:Strctstudent{成員說明列表}變量。和上面三種情況比較我們不難得知只有選項B是正確的。所以,4個選項中選項B符合題意。
59.D解析:本題考核的知識點是while循環(huán)語句的程序分析。在主函數(shù)中首先定義了一個數(shù)組p并初始化,在while后面括號里的表達式中,i初值為0,當p[i]為偶數(shù)時,p[i]%2等于0,根據(jù)“&&”運算符的規(guī)則,其表達式為假退出循環(huán),顯然當i=2時,p[i]=14為偶數(shù),此時while后面括號里的毒達式的值為假,退出循環(huán),此時K=p[0]+p[1],即k=11+13。所以最后輸出k為24。所以,D選項為所選。
60.B解析:此題為數(shù)據(jù)庫的基本概念,可以對照辦工軟件的電子表格進行如下理解:選擇:我們根據(jù)某條件選擇出一行或多行元組(一個元組即為二維表中的一行)。投影:按字段(也稱屬性,比如學生關(guān)系(學號,姓名,出生年月,性別),學號、姓名…都是屬性)選取一列或多列(一個二維表中所有元組在某一列或幾列上截取出來)。連接:2個或2個以上的表連接組成一張新的表,通常有條件連接。比如學生關(guān)系(學號,姓名,系號),又有一張系表(系號,系名,主任),2張表可以合并為一張這樣的表(學號,姓名,系號,系名,主任)。
61.An為。時執(zhí)行exit(0);函數(shù)結(jié)束,所以產(chǎn)生的隨機數(shù)為0時,函數(shù)結(jié)束。答案選擇A)。
62.B
63.A
64.B
65.A在本題中,程序首先定義了一個一維數(shù)組a,并賦了初值,數(shù)組a中元素的個數(shù)為10個,另外,程序定義了一個同類型的指針變量p。然后用一個for循環(huán)用指針變量p對數(shù)組進行操作。在循環(huán)開始前,將指針變量指向數(shù)組的開始位置,即指向數(shù)組的第一個元素。
第一次循環(huán)時,指針變量p指向的是數(shù)組第一個元素,輸出該元素應(yīng)該為1;然后指針變量自加1,即將指針變量后移一位,使其指向數(shù)組的第二個元素,開始第二次循環(huán),此時,指針變量指向數(shù)組第二個元素,輸出該元素為2,然后指針變量自加1。同樣,利用指針變量p可以輸出數(shù)組中后面的元素,直到輸出最后一個元素。因此,最后的輸出結(jié)果是1,2,3,4,5,6,7,8,9,0,。
66.A作為一個算法,一般應(yīng)具有以下幾個基本特征:可行性、確定性、有窮性、擁有足夠的情報。本題答案為A)。
67.C
68.A
69.A
70.A\r\n
71.B在計算機中,算法被定義為對一個問題求解步驟的一種描述,是求解問題的方法,它是指令的有限序列,其中每條指令表示一個或者多個操作。算法具有有窮性、確定性、可行性、輸入和輸出五大特點。
在本題中,選項A、C、D的說法明顯偏離了算法的定義,因此正確答案選B。
72.Cf函數(shù)的功能是對形參a的各個成員用結(jié)構(gòu)體變量b的各個成員進行賦值后,然后返回變量a。
73.B本題主要考查了一維數(shù)組指針的賦值和用指針引用數(shù)組元素進行運算。選項B)中p2為指向int型變量的指針,而k為int型變量,不能將int型變量直接賦值給指向int型變量的指針,所以選項B)錯誤,應(yīng)該為p2=&k。
74.Aflag為ld,時從小到大排序,flag為0時從大到小排序,這道題要注意排序的起始,和排序的個數(shù),答案選擇A)。
75.D本題考查兩個知識點,按位異或左移把b左移2位化成二進制c=a(b<<2)=a^(000010<<2)=a^001000=0000001^O01000=9,故選擇D。
76.D
\n所謂二叉樹的前序遍歷是指先訪問根結(jié)點,訪問左子樹,最后訪問右子樹,本題中序為DYBEAFCZX,后序為YDEBFZXCA。
\n
77.C本題題意要求刪除所有空格,即除了空格以外的其他所有字符都要留下。由于c語言中沒有直接刪除字符的操作,所以對于刪除字符的操作可以采用”留下”字符的算法,以前的題目亦是如此。用str[i]從串頭到串尾逐一走動,每走到一個字符都判斷其是否為空格,若不是空格(注意在if的單引號之間有一個空格),則將其保存str[j]中。
78.B連接運算也稱0連接,是對兩個關(guān)系進行運算,其意義是從兩個關(guān)系的笛卡爾積中選擇滿足給定屬性間一定條件的那些元組。本題關(guān)系R3為關(guān)系R1中B屬性和關(guān)系R2中D屬性相等連接而成。
79.A
80.C本題考查簡單的if…else語句。先執(zhí)行條件if(a<b),顯然不成立,然后執(zhí)行else語句。
81.\n\t(1)錯誤:return1;
\n正確:return3;
\n(2)錯誤:return3;
\n正確:return1;
\n【解析】三條邊都相等的三角形為等邊三角形,按題目中要求,等邊三角形返回3,若不是等邊三角形也不是等腰三角形則返回1,因此,“return1;”應(yīng)改為“return3;”;“return3;”應(yīng)改為“return1;”。\n
82.Intfun(char*s){Inti,j=0;for(i=0;s[i]!=’\\o’/i++)if(s[i]!=’'&&(s[i+i]==’’||s[i+1]=='\\0'))/*如果一個字母的下一個字符為空格或者結(jié)束標記,則表示一個單詞結(jié)束*/J++;_returnj;/*返回單詞個數(shù)*/}要判斷單詞的個數(shù),首先考慮怎樣識別一個單詞。如果一個字母的下一個字符為空格或者字符串結(jié)束標志,則表示一個單詞結(jié)束。因此程序使用for循環(huán)語句遍歷整個字符串,用if條件語句判斷當前字符是否表示一個單詞的結(jié)束。如果當前字符表示一個單詞結(jié)束,則存放單詞個數(shù)的變量加1,最后返回單詞的個數(shù)。2022年安徽省淮北市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.有以下程序:#includeMain(){intb[3][3]={0.1,2.0,1,},i,j,t=1;for(i=0;i<3;i++)for(j=i;j<=i;j++)t+=b[i][b[j][i]];printf(“%d\n”,t);程序運行后的輸出結(jié)果是()。A.3B.4C.1D.9
2.設(shè)有遞歸算法如下試問計算x(x(8))時需要計算()次x函數(shù)。A.8B.9C.16D.18
3.
4.在供應(yīng)關(guān)系中,實體供應(yīng)商和實體零件之間的聯(lián)系是()。
A.多對多B.一對一C.多對一D.一對多
5.若要求定義具有10個int型元素的一維數(shù)組a,則以下定義語句中錯誤的是A.#defineN10inta[N];B.#definen5inta[2*n];C.inta[5+5];
D.intn=10,a[n];
6.下列程序的輸出結(jié)果是______。#include<stdio.h>main(){inti,j,k,a=3,b=2;i=(--a==b++)?--a;++b;j=a++;k=b;printf("i=%d,j=%d,k=%d\n",i,j,k);}
A.i=2,j=1,k=3B.i=1,j=1,k=2C.i=4,j=2,k=4D.i=1,j=1,k=3
7.以下敘述中錯誤的是()。
A.線性結(jié)構(gòu)也能采用鏈式存儲結(jié)構(gòu)
B.線性結(jié)構(gòu)一定能采用順序存儲結(jié)構(gòu)
C.有的非線性結(jié)構(gòu)也能采用順序存儲結(jié)構(gòu)
D.非線性結(jié)構(gòu)一定不能采用順序存儲結(jié)構(gòu)
8.有以下程序:#include<stdio.h>#include<string.h>main(){printf(“%d\n”,strlen(“0\t\n\0C011\1”));}程序運行后的輸出結(jié)果是()。
A.3B.13C.1D.0
9.設(shè)已包含頭文件<string.h>,下列程序段的運行結(jié)果是()。chars1[]={"ACDEF"};chars2[]="ABC";strcpy(s1,s2);printf("%d",strlen(s1));
A.3B.4C.6D.5
10.直接選擇排序的時間復(fù)雜度為()。(n為元素個數(shù))
A.O(n)B.O(log2n)C.O(nlog2n)D.O(n2)
11.計算機算法必須具備輸入、輸出和()等5個特性。
A.可行性、可移植性和可擴充性B.可行性、確定性和有窮性C.確定性、有窮性和穩(wěn)定性D.易讀性、穩(wěn)定性和安全性
12.若有以下程序
則程序的輸出結(jié)果是
A.3B.7C.6D.10
13.視圖設(shè)計一般有3種設(shè)計次序,下列不屬于視圖設(shè)計次序的是()。
A.自頂而下B.由內(nèi)向外C.由外向內(nèi)D.自底向上
14.設(shè)一組初始記錄關(guān)鍵字序列為(Q,H,C,Y,P,A,M,S,R,D,F,X),則按字母升序的第一趟冒泡排序結(jié)束后的結(jié)果是()
A.F,H,C,D,P,A,M,Q,R,S,Y,X
B.P,A,C,S,Q,D,F,X,R,H,M,Y
C.A,D,C,R,F,Q,M,S,Y,P,H,X
D.H,C,Q,P,A,M,S,R,D,F,X,Y
15.在C語言中,退格符是
A.\nB.\tC.\fD.\b
16.以下選項中能用作數(shù)據(jù)常量的是()。
A.115LB.0118C.1.5e1.5D.o115
17.判斷一個循環(huán)隊列cq(最多元素為m)為滿的條件是()。
A.cq->rear-cq-front=m;
B.(cq->rear+1)%m=cq->front;
C.cq->front=cq->rear;
D.cq->rear=m-1;
18.若變量x、y已正確定義并賦值,以下符合C語言語法的表達式是()。
A.X+1=yB.++X.Y=X一一C.X=X+10=X+YD.double(X)/10
19.
20.若有定義“chars1[100]=“name”,s2[50]=“address”,s3[80]=“person”;”,要將它們連接成新串“personnameaddress”,正確的函數(shù)調(diào)用語句是()。
A.strcat(strcat(s1,s2),s3);
B.strcat(s3,strcat(s1,s2);
C.strcat(s3,strcat(s2,s1);
D.strcat(strcat(s2,s1),s3);
二、2.填空題(20題)21.診斷和改正程序中錯誤的工作通常稱為【】。
22.衡量軟件的模塊獨立性使用耦合性和內(nèi)聚性兩個定性的度量標準,其中()是度量一個模塊功能強度的一個相對指標。
23.下面程序的功能是【】。
doublesub(doublex,inty)
{intn;doublez;
for(n=1,z=x;n<y;n++)z=z*x;
returnz;}
main()
{doublea=2.0,b=4.0,c;
c=sub(a,b);printf("%f",c);}
24.下面的程序可對指定字符串中的字符串進行從大到小排序,請將程序完整。(注:程序采用了冒泡排序算法)
#include<stdio.h>
#include<string.h>
main()
{char*str="ABCDabcd",temp;
intn,i;
n=strlen(str);
while(n->1)
for(i=0;i<n;i++)
if(str[i]<str[i+1])
{temp=【】;
str[i]=str[i+1];
【】=temp;
}
printf(【】);
}
25.在面向?qū)ο蟪绦蛟O(shè)計中,從外面看只能看到對象有外部特征,而不知道也無須知道數(shù)據(jù)的具體結(jié)構(gòu)以及實現(xiàn)操作的算法,這稱為對象的______。
26.以下程序運行后的輸出結(jié)果是【】。
main()
{inta=1,b=3,c=5;
if(c=a+b)printf("yes\n");
elseprintf("no\n");
}
27.下列軟件系統(tǒng)結(jié)構(gòu)圖的寬度為[]。
28.下列表達式用于判斷y是否為閏年。閏年的判斷條件是:年號能被4整除但不能被100整除或年號能被400整除,請?zhí)羁誣_____。
29.在算法的4個特性中,算法必須能在執(zhí)行有限個步驟之后終止指的是算法的______特性。
30.下面函數(shù)的功能是:找出一維數(shù)組元素中最大的值和它所在的下標,最大的值和它所在的下標通過形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個數(shù),max存放最大值,index存放最大值所在元素的下標。請?zhí)羁铡?/p>
#include<stdlib.h>
#include<stdio.h>
voidfun(inta[],intn,int*max,int*d)
{intI;
*max=a[0];
*d=0;
for(I=0;【】;I++)
if(*max<【】)
{*max=a[I];*d=i;}}
main()
{inti,x[20],max,index,n=10;
randomize();
for(i=0;i<n;i++)
{x[i]=rand()%50;printf("%4d",x[i]);}
printf("\n");
fun(x,n,&max,&index);
printf("Max=%5d,Index=%4d\n",max,index);}
31.若a是int型變量,則下列表達式的值為______。
(a=2*3,a*2),a+4
32.函數(shù)fun的功能是:根據(jù)以下公式求p的值,結(jié)果由函數(shù)值返回。m與n為兩個正數(shù),且要求m>n。
例如:m=12,n=8時,運行結(jié)果應(yīng)該是495.000000。請在題目的空白處填寫適當?shù)某绦蛘Z句,將該程序補充完整。
#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));
}
33.已有定義如下:
structnode
{intdata;
structnode*next;
}*p;
以下語句調(diào)用malloc函數(shù),使指針p指向一個具有structnode類型的動態(tài)存儲空間。請?zhí)羁铡?/p>
p=(structnode*)malloc(【】);
34.以下程序的輸出結(jié)果是______。
voidfun()
{staticinta=0;
a+=2;printf("%d",a);
}
main()
{intcc;
for(cc=1;cc<4;cc++)fun();
printf("\n");
}
35.由25人圍坐成圓圈,先由任意一人開始順時針沿用1~25依次編號,然后從1號開始順時針報數(shù)(1、2、3…),凡報5的倍數(shù)者出圈,剩下者繼續(xù)報數(shù),求出最后出圈者的編號。
#include
main()
{inta[26],j,n,count;
for(j=1;j<=25;j++)a[j]=j;
j=1;count=0;n=【】;
do
{
if(a[j]!=0)
{n++;
if(n%5==0)
{【】;
if(count==24)printf("%d\n",,j);
count++;
}
}
j++;
if(j>25)j=1;
}
while(【】);
}
36.設(shè)有下列的程序段;
charstr[]="Hello";
char*ptr;
ptr=str;
執(zhí)行上面的程序段后,*(ptr+5)的值為______。
37.實現(xiàn)算法所需的存儲單元多少和算法的工作量大小分別稱為算法的【】。
38.對二叉排序樹進行查找的方法是:用待查的值與根結(jié)點的值相比,若比根小,則繼續(xù)在【】子樹中找。
39.以下程序中給指針p分配3個double型動態(tài)內(nèi)存單元,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{double*p;
p=(double*)malloc((【】);
p[0]=1.5;p[1]=2.5;p[2]=3.5;
printf("%f%f%f\n",p[0],p[1],p[2]);
}
40.下列程序的運行結(jié)果是【】。
#include<stdio.h>
main()
{unionEXAMPLE
{struct
{intx;inty;}in;
inta;
intb;
}e;
e.a=1;e.b=2;
e.in.x=e.a*e.b;
e.in.y=e.a+e.b;
printf("%d,%d\n",e.in.x,e.in.y);
}
三、1.選擇題(20題)41.兩次運行下列的程序,如果從鍵盤上分別輸入3和1,則輸出結(jié)果是()。main(){intx;scanf("%d",&x);if(x++>2)printf("%d",x);elseprintf("%d\n",x-);}
A.4和2B.4和1C.4和0D.3和1
42.MIPS常用來描述計算機的運算速度,其含義是()。A.A.每秒鐘處理百萬個字符
B.每分鐘處理百萬個字符
C.每秒鐘執(zhí)行百萬條指令
D.每分鐘執(zhí)行百萬條指令
43.下列關(guān)鍵字中,不屬于C語言變量存儲類別的是______。
A.registerB.autoC.externD.public
44.以下數(shù)據(jù)結(jié)構(gòu)中不屬于線性數(shù)據(jù)結(jié)構(gòu)的是______。
A.隊列B.線性表C.二叉樹D.棧
45.對下述程序,正確的判斷是()main(){inta,b,seanf("%d,%d",&a,&b);if(a>b)a=b;b=a;elsea++;b++printf("%d,%d",a,b);}
A.有語法錯誤不能通過編譯B.若輸入4,5則輸出5,6C.若輸入5,4則輸出4,5D.若輸入5,4則輸出5,5
46.以下敘述中錯誤的是()。
A.C語句必須以分號結(jié)束
B.復(fù)合語句在語法上被看作一條語句
C.空語句出現(xiàn)在任何位置都不會影響程序運行
D.賦值表達式末尾加分號就構(gòu)成賦值語句
47.有以下程序:#include<stdio.h>voidss(char*s,chart){while(*s){if(*s==t)*s=t-'a'+'A';s++;}}main(){charstrl[20]="abcddfefdbd",c='d';ss(strl,c);Printf("%s\n",strl);}程序運行后的輸出結(jié)果是()。
A.ABCDDEFEDBDB.abcDDfefDbDC.abcAAfefAbAD.Abcddfefdbd
48.以下程序段的輸出結(jié)果是()。inta=1234;floatb=123.456;doublec=12345.54321;printf("%2d,%2.1f,%2.1f",a,b,c);
A.無輸出
B.12,123.5,12345.5
C.1234,123.5,12345.5
D.1234,123.4,1234.5
49.用樹形結(jié)構(gòu)來表示實體之間聯(lián)系的模型稱為()。
A.關(guān)系模型B.層次模型C.網(wǎng)狀模型D.數(shù)據(jù)模型
50.下列各數(shù)據(jù)類型不屬于構(gòu)造類型的是()。
A.枚舉型B.共用型C.結(jié)構(gòu)型D.數(shù)組型
51.假定int類型變量占用兩個字節(jié),若有定義:intx[10]{0,2,4};,則數(shù)組x在內(nèi)存中所占字節(jié)數(shù)是______。
A.3B.6C.10D.20
52.下列工具中,屬于需求分析常用工具的是()。
A.PFDB.PADC.N-SD.DFD
53.有以下程序#include<stdlib.h>main(){char*p,*q;p=(char*)malloc(sizeof(char)*20);q=p;scanf("%s%s",p,q);printf("%s%s\n",p,q);}若從鍵盤輸入:abcdef<回車>,則輸出結(jié)果是
A.defdefB.abcdelC.abcdD.dd
54.結(jié)構(gòu)化程序設(shè)計主要強調(diào)的是()。
A.程序的規(guī)模B.程序的效率C.程序設(shè)計語言的先進性D.程序的易讀性
55.若有語句:char*line[5];,以下敘述中正確的是
A.定義line是一個數(shù)組,每個數(shù)組元素是一個基類型為char的指針變量
B.定義line是一個指針變量,該變量可以指向一個長度為5的字符型數(shù)組
C.定義line是一個指針數(shù)組,語句中的。號稱為間址運算符
D.定義line是一個指向字符型函數(shù)的指針
56.在軟件開發(fā)中,下面的任務(wù)不屬于設(shè)計階段的是()。
A.數(shù)據(jù)結(jié)構(gòu)設(shè)計B.給出系統(tǒng)模塊結(jié)構(gòu)C.定義模塊算法D.定義需求并建立系統(tǒng)模塊
57.下面程序段的運行結(jié)果是charstr[]="ABC",*p=str;printf("%d\n",*(p+3));
A.67B.0C.字符'C'的地址D.字符'C'
58.設(shè)有以下語句
typedefstructS
{intg;charh;}T;
則下面敘述中正確的是()A.可用S定義結(jié)構(gòu)體變量B.可以用T定義結(jié)構(gòu)體變量C.S是struct類型的變量D.T是structS類型的變量
59.有以下程序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
60.關(guān)系數(shù)據(jù)庫管理系統(tǒng)能實現(xiàn)的專門關(guān)系運算包括()。
A.排序、索引、統(tǒng)計B.選擇、投影、連接C.關(guān)聯(lián)、更新、排序D.顯示、打印、制表
四、選擇題(20題)61.有以下程序段以下關(guān)于程序段執(zhí)行情況的敘述,正確的是()。
A.當產(chǎn)生的隨機數(shù)n為0時結(jié)束程序運行
B.當產(chǎn)生的隨機數(shù)n為4時結(jié)束循環(huán)操作
C.當產(chǎn)生的隨機數(shù)n為1和2時不做任何操作
D.for循環(huán)語句固定執(zhí)行8次
62.
63.
64.
65.有以下程序
main()
{
inta[]={1,2,3,4,5,6,7,8,9,0},*p;
for(p=a;p<a+10;p++)
printf("%d,",*p);
}
程序運行后的輸出結(jié)果是
A.1,2,3,4,5,6,7,8,9,0,B.2,3,4,5,6,7,8,9,10,1,
C.0,1,2,3,4,5,6,7,8,9,D.1,1,1,1,1,1,1,1,1,1,
66.在下列選項中,哪個不是一個算法一般應(yīng)該具有的基本特征()。
A.無窮性B.可行性C.確定性D.有窮性
67.
68.
69.
70.
71.在計算機中,算法是指()
A.加工方法B.解題方案的準確而完整的描述C.排序方法D.查詢方法
72.
有以下程序
#include<stdio.h>
#include<string.h>
typedefstrlIct{charname[9];charsex;floatscore[2];}STU;
STUf(STUa)
{STUb={"Zhao",m,85.0,90.0);inti;
strcpy(aname,b.name);
sex:b.sex;
for(i=0;i<2;i++)a.score[i]=b.score[i];
returna;
}
main
{STUc="Qian",f,95.0,92.0},d;
d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);
}
程序的運行結(jié)果是()。
A.Qian,f,95,92
B.Qian,m,85,90
C.Zhao,m,85,90
D.Zhao,f,95,92
73.設(shè)pl和p2是指向一個int型一維數(shù)組的指針變量,k為int型變量,則不能正確執(zhí)行的語句是()。
A.k=*pl+*p2B.p2=k;C.pl=p2;D.k=*pl*(*p2.;
74.以下程序中函數(shù)f的功能是:當na9為1時,進行由小到大排序;當fla9為oN。進行由大到小排序。程序運行后的輸出結(jié)果是()
75.設(shè)有以下語句:inta=1,b=2,c;c=a^(b<<2);執(zhí)行后,c的值為()。A.6B.7C.8D.9
76.有下列二叉樹.對此二叉樹前序遍歷的結(jié)果為()。
A.ACFXDBEYZB.ABEFXYZCDC.ABCDEFXY7D.ABDYECFXZ
77.閱讀下列程序,當運行函數(shù)時,輸入abcdefgzl0,則輸出為()。
A.abcB.zl0C.abcdefgzl0abcdefgzl0D.abcdefgzl0
78.如圖所示,兩個關(guān)系R1和R2:
則由關(guān)系R1和R2得到關(guān)系R3的操作是()。
A.笛卡爾積B.連接C.交D.除
79.
80.若執(zhí)行下面的程序時,從鍵盤輸入6和2,則輸出結(jié)果是()。
A.5B.3C.2D.0
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc的功能是:根據(jù)輸入的:個邊長(整型值),判斷能否構(gòu)成三角形:若能構(gòu)成等邊三角形,則返回3;若是等腰三角形,則返回2;若能構(gòu)成三角形則返回l;若不能,則返回0。
例如,輸入3個邊長為3,4,5,實際輸入時,數(shù)與數(shù)之間以Enter鍵分隔而不是逗號。
請修改程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdio.h>
#include<math.h>
intproc(inta,intb,intc)
{
if(a+b>c&&b-c>a&&a+c>b)
{
if(a==b&&b==c)
//****found****
return1;
elseif(a==b||b==C||a==c)
return2;
//****found****
elsereturn3;
}
elsereturn0;
}
voidma
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二四年度小型建筑安裝工程信息化管理合同3篇
- 2025年度電商企業(yè)普通貨物運輸合同定制版
- 2025年度櫥柜個性化定制與裝配式建筑合作合同4篇
- 2025年度專業(yè)廚房承包服務(wù)合同范本(含廚師培訓)4篇
- 二零二五年度農(nóng)業(yè)現(xiàn)代化項目農(nóng)產(chǎn)品采購合同3篇
- 二零二五年度牛奶產(chǎn)品市場調(diào)研與分析合同
- 二零二五年度民間借貸合同糾紛調(diào)解中心合作協(xié)議范本
- 2025年度茶樓與文化創(chuàng)意市集合作經(jīng)營合同書4篇
- 2025年度網(wǎng)絡(luò)安全防護系統(tǒng)建設(shè)合同4篇
- 二零二四年度藥品流通企業(yè)供應(yīng)鏈金融合作合同3篇
- 圖像識別領(lǐng)域自適應(yīng)技術(shù)-洞察分析
- 個體戶店鋪租賃合同
- 禮盒業(yè)務(wù)銷售方案
- 術(shù)后肺炎預(yù)防和控制專家共識解讀課件
- 二十屆三中全會精神學習試題及答案(100題)
- 中石化高級職稱英語考試
- 小學五年級英語閱讀理解(帶答案)
- 2024二十屆三中全會知識競賽題庫及答案
- 仁愛版初中英語單詞(按字母順序排版)
- (正式版)YS∕T 5040-2024 有色金屬礦山工程項目可行性研究報告編制標準
- 小學一年級拼音天天練
評論
0/150
提交評論