版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2022-2023年湖北省荊州市全國(guó)計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)真題(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(20題)1.下列字符串是標(biāo)識(shí)符的是()。
A.aaB.a-classC.intD.LINE1
2.
3.若x,i,j和k都是int型變量,則執(zhí)行下面表達(dá)式后x的值為()。x=(i=4,j=16,k=32)
A.4B.16C.32D.52
4.有以下程序#include<stdio.h>intfun(intx;inty){if(x=y(tǒng))reurn(x);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
5.設(shè)s1="Good",s2="",s3="Bye",則s1、s2和s3連接后的結(jié)果是()。
A.GoodB.GoodByeC.GoodByeD.Bye
6.按照“先進(jìn)先出”組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是()。
A.隊(duì)列B.棧C.雙向鏈表D.二叉樹
7.有以下程序:#include<stdio.h>#include<stdlib.h>main{int*a,*b,*C;a=b=c=(int*)malloc(sizeof(int));*a=1;*b=2,*c=3;a=b:printf("%d,%d,%d\n",*a,*b,*c);}程序運(yùn)行后的輸出結(jié)果是()。A.3,3,3B.2,2,3C.1,2,3D.1,1,3
8.若有定義floata[15],*p=a;,且數(shù)組a的首地址為300H,則p+13所指向的數(shù)組元素的地址為()。
A.334HB.30DHC.352HD.31AH
9.下列表達(dá)式中,可以正確表示的關(guān)系是()。
A.(x>=1)10(x<=0)B.x>1‖x=0C.x>=1ORx<=0D.X>=1&&x<=0
10.以下選項(xiàng)中,算術(shù)表達(dá)式的值與其他3個(gè)不同的是()。
A.3/5.B.3./5C.3/5D.3.0/5.0
11.若已知一個(gè)棧的進(jìn)棧序列是1,2,3…n,其輸出序列是P1,P2,P3,…PN,若P1=n,則Pi(1<i<p)為()。
A.IB.n-iC.n-i+1D.不確定
12.以下描述中,不是線性表順序存儲(chǔ)結(jié)構(gòu)特征的是()。
A.可隨機(jī)訪問B.需要連續(xù)的存儲(chǔ)空間C.不便于插入和刪除D.邏輯相鄰的數(shù)據(jù)物理位置上不相鄰
13.
14.算法的效率的分析主要包括兩個(gè)方面()。
A.時(shí)間復(fù)雜度和空間復(fù)雜度B.正確性和簡(jiǎn)單性C.可讀性和文檔性D.數(shù)據(jù)復(fù)雜性和程序復(fù)雜性
15.若f(n)=3n2+2n+1,則f(n)=()。
A.O(n2)B.O(n)C.O(2n)D.O(3n2)
16.有以下程序:
#include<stdio.h>,
main()
{intS;
scanf("%d",&s);
while(s>O)
{switch(s)
{casel:printf("%d",s+5);
case2:printf("%d",s+4);break;
case3:printf("%d",s+3);
default:("%d",s+1);break;
}
scanf("%d",&s);
}
}
運(yùn)行時(shí),若輸入123450<回車>,由輸出結(jié)果是()。
A.6566456B.66656C.66666D.6666656
17.有以下程序段
#include<stdio.h>
voidfun(char*fname,char*st)
{FILE*myf;
inti;
myf=fopen(fname,"w");
for(i=0;i<strlen(st);i++)fputc(st[i],myf);
fclose(myf);
}
main()
{fun("test.t","newworld");
fun("test.t","hello,");}
程序執(zhí)行后,文件test.t中的內(nèi)容是A.A.hello,
B.newworldhello,
C.newworld
D.hello,rld
18.若要求在if后一對(duì)圓括號(hào)中表示a不等于0的關(guān)系,則能正確表示這一關(guān)系的表達(dá)式為()
A.a<>0B.!aC.a=0D.a
19.設(shè)有序表中的元素為(13,18,24,35,47,50,62),則在其中利用二分法查找值為24的元素需要經(jīng)過()次比較容易
A.1B.2C.3D.4
20.在有向圖G的拓?fù)湫蛄兄?,若頂點(diǎn)Vi在頂點(diǎn)Vj之前,則下列情形不可能出現(xiàn)的是()。
A.G中有弧
B.G中有一條從Vi到Vj的路徑
C.G中沒有弧
D.G中有一條從Vj到Vi的路徑
二、2.填空題(20題)21.下面程序是計(jì)算100以內(nèi)能被4整除且個(gè)位數(shù)為4的所有整數(shù),請(qǐng)?zhí)羁铡?/p>
main()
{intm,n;
for(m=0;【】;m++)
{n=m*10+4;
If(【】)continue;
printf("%d\n",n);}}
22.函數(shù)YangHui的功能是把楊輝三角形的數(shù)據(jù)賦給二維數(shù)組的下半三角,形式如下:
1
11
121
1331
14641
其構(gòu)成規(guī)律是:
①第0列元素和主對(duì)角線元素均為1。
②其余元素為其左上方和正上方元素之和。
③數(shù)據(jù)的個(gè)數(shù)每行遞增1。
請(qǐng)將程序補(bǔ)充完整。
#defineN6
voidyanghui(intx[N][N])
{inti,j;
x[O][0]=1;
for(i=1;i<N;i++)
{x[i][0]=【】=1;
for(j=1;j<i;j++)
x[i][j]=【】;
}
)
23.以下程序的功能是:利用指針指向三個(gè)整型變量,并通過指針運(yùn)算找出三個(gè)數(shù)中的最大值,輸出到屏幕上。請(qǐng)?zhí)羁铡?/p>
main()
{intx,y,z,max,*px,*py,*pz,*pmax;
scanf("%d%d%d",&x,&y,&z);
px=&x;py=&y;pz=&z;pmax=&max;
【】;
if(*pmax<*py)*pmax=*py;
if(*pmax<*pz)*pmax=*pz;
printf("max=%d\n",max);}
24.以下程序的輸出結(jié)果是【】。
main()
{inty=9;
for(;y>0;y--)
if(y%3==0)
{printf("%d",--y);continue;}}
25.軟件危機(jī)出現(xiàn)于60年代末,為了解決軟件危機(jī),人們提出了【】的原理來設(shè)計(jì)軟件,這就是軟件工程誕生的基礎(chǔ)。
26.以下程序中,fun函數(shù)的功能是求3行4列二維數(shù)組每行元素中的最大值,請(qǐng)?zhí)羁眨?/p>
voidfun(int,int,int(*)[4],int*);
main()
{inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;
fun(3,4,a,B);
for(i=0;i<3;i++)printf("%4d",b[i]);
printf("\n");
}
voidfun(intm,intn,intar[][4],int*bar)
{inti,j,x;
for(i=0;i<m;i++)
{X=ar[i][0];
for(j=0;j<n;j++)if(x<ar[i][j])x=ar[i][j];()=x:
}
}
27.以下程序運(yùn)行的結(jié)果是【】。
#include<conio.h>
#include<stdio.h>
#defineM100
voidfun(intm,int*a,int*n)
{inti,j=0;
for(i=1;i<=m;i++)
if(i%7==0‖i%11==0)
a[j++]=i;
*n=j;}
main()
{intaa[M],n,k;
clrscr();
fun(10,aa,&n);
for(k=0;k<n;k++)
if((k+1)%20==0)printf("\n");
elseprintf("%4d",aa[k]);
printf("\n");}
28.有以下程序:
#include<stdio.h>
main()
{charch1,ch2;intn1,n2;
ch1=getchar();ch2=getchar();
n1=ch1-'0';n2=n1*10+(ch2-'0');
printf("%d\n",n2);;
}
程序運(yùn)行時(shí)輸入12<回車>,執(zhí)行后輸出結(jié)果是【】。
29.閱讀下面程序段,則執(zhí)行后輸出的結(jié)果是【】。
#include"stdio.h"
main()
{charfun(char,int);
chara=′A′;
intb=13;
a=fun(a,b);
putchar(a);}
charfun(chara,intb)
{chark;
k=a+b;
returnk;}
30.以下程序的輸出結(jié)果是【】。
inta=1234;
printf("%2d\n",a);
31.以下程序的輸出結(jié)果是______。
#include<stdio.h>
voidswap(int*a,int*b)
{int*t;
}
{inti=3,j=5,*p=&i,*q=&j;
swap(p,q);printf("%d%d\n",*p,*q);
32.如果有以下定義,則不移動(dòng)指針p,且通過指針p引用值為98的數(shù)組元素的表達(dá)式是【】。
intw[10]={23,54,10,33,47,98,72,80,61),*p=w;
33.若有定義inta[4][4]={{1,2,3,4},{0},{4,6,8,10},{1,3,5,7}},則初始化后,a[1][1]得到的初值是______。
34.以下程序運(yùn)行后的輸出結(jié)果是______。
main()
{
intx=1,y=0,a=0,b=0;
switch(x)
{
case1:
switch(y)
{
case0:a++;break;
case1:b++;break;
case2:a++;b++;break;
}
printf("%d%d\n",a,B);
}
35.設(shè)在主函數(shù)中有以下定義和函數(shù)調(diào)用語句,且fun函數(shù)為void類型,請(qǐng)寫出fun函數(shù)的首部【】。要求形參名為b。
main()
{doubles[10][22];
intn;
┆
fun(s);
┆
}
36.若有如下結(jié)構(gòu)體說明:
structSTRU
{inta,b;charc:doubled;
structSTRU*p1,*p2;
};
請(qǐng)?zhí)羁眨酝瓿蓪?duì)t數(shù)組的定義,t數(shù)組的每個(gè)元素為該結(jié)構(gòu)體類型。
【】t[20]
37.常用的黑箱測(cè)試有等價(jià)類劃分法、【】和錯(cuò)誤推測(cè)法3種。
38.設(shè)C語言中,一個(gè)int型數(shù)據(jù)在內(nèi)存中占兩個(gè)字節(jié),則int型數(shù)據(jù)的取值范圍為【】。
39.一棵二叉樹第六層(根結(jié)點(diǎn)為第一層)的結(jié)點(diǎn)數(shù)最多為______個(gè)。
40.以下程序運(yùn)行后的輸出結(jié)果是【】。
main()
{chara[]="Language",b[]="Pragrame";
char*p1,*p2;intk;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))
printf("%c",*(p1+k));
}
三、1.選擇題(20題)41.下面程序輸出的結(jié)果是main(){intinta[3)[3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf("%d",a[2-i][i]);}
A.159B.753C.357D.591
42.C語言程序的基本單位是()
A.函數(shù)B.過程C.字符D.語句
43.數(shù)據(jù)庫設(shè)計(jì)的四個(gè)階段是:需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和______。A.編碼設(shè)計(jì)B.測(cè)試階段C.運(yùn)行階段D.物理設(shè)計(jì)
44.若有定義inta[2][3];,則對(duì)a數(shù)組的第i行第j列(假調(diào)i,j已正確說明并賦值)元素值的正確引用為
A.*(*(a+i)+j)B.(a+i)[j]C.*(a+i+j)D.*(a+i)+j
45.下列敘述中正確的是()。
A.調(diào)用printf()函數(shù)時(shí),必須要有輸出項(xiàng)
B.使用putchar()函數(shù)時(shí),必須在之前包含頭文件stdio.h
C.在C語言中,整數(shù)可以以二進(jìn)制、八進(jìn)制或十六進(jìn)制的形式輸出
D.調(diào)節(jié)getchar()函數(shù)讀入字符時(shí),可以從鍵盤上輸入字符所對(duì)應(yīng)的ASCII碼
46.有以下程序:#include<stdio.h>voidfun(inta,intb,intc){a=456,b=567,c=678;}main(){intx=10,y=20,z=30;fun(x,y,z);printf("%d,%d,%d\n",x,y,z);}此程序的輸出結(jié)果是()。
A.30,20,10B.10,20,30C.456,567,678D.678,567,456
47.下面的程序ASCⅡ。main(){intx=3,y=0,z=0;if(x==y+z)printf("****");elseprintf("####");}
A.有語法錯(cuò)誤不能通過編譯B.輸出****C.可以通過編譯,但是不能通過連接,因而不能運(yùn)行D.輸出####
48.以下程序段給數(shù)組所有的元素輸入數(shù)據(jù),請(qǐng)選擇正確答案填入。#include<stdio.h>main(){inta[10],i=0;while(i<10)scanf("%d",______);}
A.a+(i++)B.&a[i+1]C.a+iD.&a[++i]
49.有以下程序:main(){inta=15,b=21,m=0;switch(a%3){case0:m++;break;case1:m++;switch(b%2){default:m++;case0;m++;break;}}printf("%d\n",m);}程序運(yùn)行后的輸出結(jié)果是()。
A.1B.2C.3D.4
50.有以下程序:main(){inti,s=1;for(i=1;i<50;i++)if(!(i%5)&&!(i%3))s+=i;printf("%d\n",s);}程序的輸出結(jié)果是
A.409B.277C.1D.91
51.下面程序的輸出是______。main(){intx=3,y=6,a=0;while(x++!=y-=1)){a+=1;if(y<x)break;}printf("x=%d,a=%d\n",x,y,A);}
A.x=4,y=4,a=1B.x=5,y=5,a=1C.x=5,y=4,a=3D.x=5,y=,a=1
52.以下合法的賦值語句是______。
A.X=Y=100B.D-;C.X+Y;D.C=int(A+B)
53.下列程序的輸出結(jié)果是()。main{intx=8,y=8;printf("%d%d\n",x--,--y);}
A.88B.77C.78D.87
54.若有"doublea;",則正確的輸入語句是()。
A.scanf("%1f",a);
B.scanf("%f",&a);
C.scanf("%1f",&a)
D.scanf("%1e",&a);
55.已知intk=10,m=3,n;則下列語句輸出結(jié)果是printf("%d\n",n=(k%m,k/m));
A.2B.3C.4D.5
56.有以下程序#include<stdio.h>main(){ints[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;for(i=0;i<12;i++)c[s[i]++;for(i=l;i<5;i++)printf("%d",c[i]);printf("\n");}程序的運(yùn)行結(jié)果是
A.1234B.2344C.4332D.1123
57.在軟件測(cè)試設(shè)計(jì)中,軟件測(cè)試的主要目的是()。
A.實(shí)驗(yàn)性運(yùn)行軟件B.證明軟件正確C.找出軟件中全部錯(cuò)誤D.為發(fā)現(xiàn)軟件錯(cuò)誤而執(zhí)行程序
58.有以下程序voidf(int*x,int*y){intt;t=*X;*X=*y;*y=t;}main(){inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;p=a;q=&a[7);while(p>q){f(p,q);p++;q--;}for(i=0;i<8;i++)printf("%d,",a[i]);}程序運(yùn)行后的輸出結(jié)果是
A.8,2,3,4,5,6,7,1,
B.5,6,7,8,1,2,3,4,
C.1,2,3,4,5,6,7,8,
D.8,7,6,5,4,3,2,1,
59.下列函數(shù)定義中,會(huì)出現(xiàn)編譯錯(cuò)誤的是()。
A.max(intx,inty,int*z){*z=x>y?x:y;}
B.intmax(intx,y){intz;z=x>y?x:y;returnz;}
C.max(intx,inty){intz;z=x>y?x:y;return(z);}
D.intmax(intx,inty){return(x>y?x:y);}
60.算法的空間復(fù)雜度是指
A.算法程序的長(zhǎng)度B.算法程序中的指令條數(shù)C.執(zhí)行算法程序所占的存儲(chǔ)空間D.算法執(zhí)行過程中所需要的存儲(chǔ)空間
四、選擇題(20題)61.若有以下語句:typedefstructS{int9;charh;}T;以下敘述中正確的是()。
A.可用s定義結(jié)構(gòu)體變量B.可用T定義結(jié)構(gòu)體變量C.S是struct類型的變量D.T是structS類型的變量
62.在以下選項(xiàng)中,能正確調(diào)用對(duì)象屬性的語句是()。
A.對(duì)象名(屬性名)B.對(duì)象名一>屬性名C.對(duì)象名屬性名D.對(duì)象名.屬性名
63.以下關(guān)于結(jié)構(gòu)化程序設(shè)計(jì)的敘述中正確的是()。
A.一個(gè)結(jié)構(gòu)化程序必須同時(shí)由順序、分支、循環(huán)三種結(jié)構(gòu)組成
B.結(jié)構(gòu)化程序使用goto語句會(huì)很便捷
C.在C語言中,程序的模塊化是利用函數(shù)實(shí)現(xiàn)的
D.由三種基本結(jié)構(gòu)構(gòu)成的程序只能解決小規(guī)模的問題
64.若變量已正確定義并賦值,下面符合C語言要求的表達(dá)式是
A.a(chǎn):=b+1B.a(chǎn)=b=c+2C.int18.5%3D.a(chǎn)=a+7=c+b
65.
66.有以下程序:
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.57B.39C.24D.11
67.
68.
69.軟件生命周期中的活動(dòng)不包括()
A.軟件維護(hù)B.市場(chǎng)調(diào)研C.軟件測(cè)試D.需求分析
70.
71.有以下程序程序運(yùn)行后的輸出結(jié)果是()。
A.143B.197C.33D.28
72.有以下程序程序運(yùn)行后的輸出結(jié)果是()。A.2B.0C.3D.5
73.
74.
75.以下程序段中,與語句“k—a>b?(b>c?1:O):0;”功能相同的是()。
A.if(a>b)(b>c)k=1;elsek=0;
B.if((a>b)‖(b>c))k=1;elsek=0;
C.if(a<=b)k=0;elseif(b>c)k=1;
D.if(a>b)k=1;elseif(b<=c)k=1;elsek=0:
76.現(xiàn)有如下程序段:
則程序段的輸出結(jié)果為()。
A.7,8
B.8,8
C.7,10
D.8,10
77.有三個(gè)關(guān)系R、S和T如下:
則由關(guān)系R和s得到關(guān)系T的操作是()。
A.自然連接B.并C.交D.差
78.以下選項(xiàng)中,當(dāng)x為大于1的奇數(shù)時(shí),值為0的表達(dá)式是()。
A.x%2==0B.x/2C.x%21=0D.x%2==1
79.
80.有以下程序
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,若輸入以下命令行
exam123<回車>
則程序的運(yùn)行結(jié)果是
A.6B.8C.3D.4
五、程序改錯(cuò)題(1題)81.假如整數(shù)數(shù)列中的數(shù)不重復(fù),并存放在數(shù)組中。下列給定的程序中,函數(shù)proc()的功能是:刪除數(shù)列中值為x的元素。n中存放的是數(shù)列中元素的個(gè)數(shù)。請(qǐng)修改程序中的錯(cuò)誤,使它能夠得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計(jì)題(1題)82.請(qǐng)編寫函數(shù)proc,其功能是:計(jì)算并輸出下列多項(xiàng)式值。
S=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-1/2n)
例如,若主函數(shù)從鍵盤給n輸入20后,則輸出為S=0.680803。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號(hào)中填入所編寫的若干語句。
試題程序:
#includet:stdio.h>
doubleproc(intn)
{
}
voidmain
{
intn;
doubleslim;
printf("\nInputn:");
scanf("%d",&n);
sum=proc(n)。
printf("\ns=%f\n",sum);
}
參考答案
1.A
\nC語言規(guī)定,標(biāo)識(shí)符是由字母、數(shù)字或下劃線組成,并且它的第一個(gè)字符必須是字母或者下劃線。int就是表達(dá)整型變量類型的標(biāo)識(shí)符,它不能用做變量名和函數(shù)名。
\n
2.A
3.C
4.B解析:在主函數(shù)中,第—次調(diào)用fun函數(shù),將變量b,c的值傳給形參x,y,在fun()函數(shù)中執(zhí)行if語句,判斷b和c的值是否相等,由于在主函數(shù)中賦初值b=5,c=6,所以判斷條件不滿足,執(zhí)行else語句,返回表達(dá)式(x+y)/2的值,即:(5+6)/2,因?yàn)閰?shù)的類型都為int型,所以結(jié)果也為整型:5,第二次調(diào)用時(shí)8和5也不相等,所以返回值為6,因此,選項(xiàng)B是正確的。
5.C
6.A隊(duì)列是一種特殊的線性表,只允許在表的一端插八元素,在表的另一端刪除元素,插入元素的一端叫“隊(duì)尾”,刪除元素的一端叫“隊(duì)頭”。先插入的元素先被刪除,是按“先進(jìn)先出”的原則組織數(shù)據(jù)的。
【知識(shí)拓展】“隊(duì)列”和“?!倍际且环N特殊的線性表。之所以稱之為“隊(duì)列”,其形式如“排隊(duì)”。要講究“先來后到”,先進(jìn)先出,后進(jìn)后出。
7.A本題中,首先創(chuàng)建一個(gè)動(dòng)態(tài)內(nèi)存,然后將地址分別存入指針a、b、c中,即a、b、c都指向相同.的變量。分別給a、b、c所指的變量賦值,最終a、b、c所指的變量中的值為3,最后打印a、b、c所指的變量
8.C解析:解答本題,首先要明白在對(duì)指針進(jìn)行加、減運(yùn)算的時(shí)候,數(shù)字“1”不是十進(jìn)制的數(shù)“1”,而是指'1'個(gè)存儲(chǔ)單元長(zhǎng)度,而1個(gè)存儲(chǔ)單元長(zhǎng)度占多少存儲(chǔ)空間,應(yīng)該視具體情況而定。如果基本類型是int型,移動(dòng)1個(gè)存儲(chǔ)單元的長(zhǎng)度就是位移2個(gè)字節(jié),如果基本類型是float型,移動(dòng)1個(gè)存儲(chǔ)單元的長(zhǎng)度就是位移4個(gè)字節(jié)。所以p+13所指向的數(shù)組元素的地址:300H+(13*上標(biāo))4)H=352H。
9.A解析:題中要求x的取值是小于等于0或者大于等于1,這說明表達(dá)式是或的關(guān)系,所以在寫成C語言表達(dá)式應(yīng)是邏輯或的關(guān)系,邏輯或運(yùn)算符是'‖'。
10.CC語言中除法運(yùn)算有兩個(gè)運(yùn)算數(shù),兩個(gè)整數(shù)的除法運(yùn)算會(huì)舍去小數(shù)部分,結(jié)果為整數(shù);由于C語言中浮點(diǎn)數(shù)的小數(shù)形式必須要有小數(shù)點(diǎn),所以選項(xiàng)A(5.)、B(3.)、D(3.0和5.0)都是浮點(diǎn)數(shù)。選項(xiàng)A、B運(yùn)算時(shí)自動(dòng)將另一個(gè)整數(shù)轉(zhuǎn)換成浮點(diǎn)數(shù),然后再運(yùn)算,選項(xiàng)D中兩個(gè)都是浮點(diǎn)數(shù),浮點(diǎn)數(shù)的除法運(yùn)算結(jié)果還是浮點(diǎn)數(shù)。所以本題中選項(xiàng)A、B、D運(yùn)算結(jié)果是浮點(diǎn)數(shù),選項(xiàng)C運(yùn)算結(jié)果是整數(shù)。故本題答案為C選項(xiàng)。
11.C
12.DD)【解析】線性表的順序存儲(chǔ)是用一片連續(xù)的空間來存放數(shù)據(jù)元素,其特點(diǎn)是邏輯上相鄰的元素在物理位置上也相鄰。數(shù)據(jù)元素之間邏輯上的先后關(guān)系自動(dòng)隱含在物理位置的相鄰元素之中,因此不需要另外開辟空間來保存元素之間的關(guān)系。
13.B
14.D
15.A
16.A\n根據(jù)題意,當(dāng)s=1時(shí),輸出65;當(dāng)s=2時(shí),輸出6;當(dāng)S=3時(shí),則輸出64;當(dāng)S=4時(shí),輸出5;當(dāng)s=5時(shí),輸出6;當(dāng)s=0時(shí),程序直接退出。所以最后答案為6566456,A選項(xiàng)正確。
\n
17.D本題主要考查文件的操作。在本題的程序中,首先定義了一個(gè)無返回值的函數(shù)fun,該函數(shù)帶有兩個(gè)指針類型的形參,其中第一個(gè)形參指向需要被操作文件的文件名,而第二個(gè)形參指向被操作的字符串。在函數(shù)體中,首先定義一個(gè)文件指針,然后以只寫的方式打開第一個(gè)形參所指向的文件,接著執(zhí)行for循環(huán),循環(huán)結(jié)束的條件是循環(huán)變量小于被操作字符串的長(zhǎng)度,循環(huán)體中的程序fputc(st[i],myf);的功能是將字符串中的當(dāng)前字符輸入到文件中。由這些分析我們可以知道,函數(shù)fun的作用是將字符串的內(nèi)容寫入到文件中。
在主函數(shù)中,兩次調(diào)用函數(shù)fun,當(dāng)?shù)谝淮握{(diào)用時(shí),寫入文件的內(nèi)容為newworld,然后第二次調(diào)用函數(shù),此時(shí)打開文件,文件的指針重新回到開始,然后往文件中寫內(nèi)容“hello,”,由于此時(shí)文件中已經(jīng)有內(nèi)容“newworld”,則需要覆蓋前面一部分的內(nèi)容,因此,程序的最終輸出結(jié)果是hello,rld,本題的正確答案選D。
18.D
19.C
20.D若G中有一條從Vj到Vi的路徑,則圖的拓?fù)湫蛄兄许旤c(diǎn)Vj在頂點(diǎn)Vi之前。設(shè)G(V,E)是一個(gè)具有n個(gè)頂點(diǎn)的有向圖,V中頂點(diǎn)的序列v1,v2,…,vn稱為一個(gè)拓?fù)湫蛄?,?dāng)且僅當(dāng)該頂點(diǎn)滿足下列條件:若在有向圖G中,從頂點(diǎn)vi在vj有一條路徑,則在拓?fù)湫蛄兄许旤c(diǎn)vi必須排在頂點(diǎn)vj之前。
21.m<10n%4!=0
22.x[i][i]x[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]x[i][i]\r\nx[i-1][j-1]+x[i-1][j]或x[i-1][j]+x[i-1][j-1]解析:在程序中用兩重循環(huán)。在第一層循環(huán)中將每行的第0列賦值為1,對(duì)角線上的元素賦值為1顯然在第一個(gè)空中應(yīng)該填入對(duì)角線上的元素即x[i][i],在第2重循環(huán)中給每行其他元素賦值,而在每行中除了第0列和對(duì)角線的元素外其他元素為其對(duì)應(yīng)的上一行中同列和同列的前一列的元素相加,所以在第二個(gè)空中應(yīng)該填入x[i-1][j-1]+x[i-1][j]。
23.*pmax=*px*pmax=*px解析:首先將變量x的值放到max中,然后依次和變量y、z進(jìn)行比較。若有比max大的數(shù),將該數(shù)存放到max中,這樣最后在max中的值就是x、y、z中的最大值。
24.852852解析:循環(huán)前,變量y的值為9,其中,循環(huán)語句在y大于0情況下循環(huán),每次循環(huán)后y的值都減1。循環(huán)體是當(dāng)y能被3整除時(shí)輸出表達(dá)式--y,輸出的是減1后的y值。這樣,第一次循環(huán)因y為9,能被3整除,輸出8,y也變成8。又經(jīng)兩次循環(huán),y的值變?yōu)?,又讓y減1變成5,并輸出5;又經(jīng)兩次循環(huán),y的值變成3,讓y減1變成2,輸出2;再經(jīng)兩次循環(huán)后,y的值變成0,結(jié)束循環(huán),所以程序輸出852。
25.軟件工程學(xué)軟件工程學(xué)
26.br[i]br[i]解析:函數(shù)fun的功能是求出二維數(shù)組每行元素中的最大值。對(duì)于3行4列的二維數(shù)組將有3個(gè)最大值存放到數(shù)組br[]中。x存放的是每行的最大值,當(dāng)求出每行的最大值x后,應(yīng)該將x賦值給br[]。因此此處填空應(yīng)該是br[i]。
27.77解析:解答本題的關(guān)鍵是要讀懂程序,要找出能被7或11整除的所有整數(shù),注意數(shù)學(xué)中的“或”和C語言中的“或”的區(qū)別,但在此處,if條件語句中用了“‖”運(yùn)算符,若要找能同時(shí)被7和11整除的所有整數(shù)則在if的條件中應(yīng)使用“&&”運(yùn)算符。
當(dāng)然,如果m的值輸入50,即表達(dá)式fun(10,aa,&n);為fun(50,aa,&n);時(shí)輸入結(jié)果為:711142122283335424449。
28.1212解析:字符類型的數(shù)據(jù)在內(nèi)存中以相應(yīng)的ASCII碼存放,在C語言中,字符數(shù)據(jù)可以等價(jià)為與其相應(yīng)的ASCII碼的整數(shù),還可以作為整數(shù)參加運(yùn)算。在本題中,n1=ch1-'0'='1-'0'=49-48=1,n2=n1*10+(ch2-'0')=1*10+('2'-'0')=10+2=12,所以,最后輸出為12。
29.NN解析:函數(shù)說明語句中的類型名必須與函數(shù)返回值的類型一致。本題實(shí)現(xiàn)的是在字符'A'的ASCII碼值上加上一個(gè)常數(shù),使之變成另一個(gè)ASCII碼值,從而輸出字符。
30.12341234解析:在%與格式符之間插入一個(gè)整形數(shù)來指這輸出寬度,并不影響數(shù)據(jù)的完整性,當(dāng)插入的寬度小于實(shí)際的寬度時(shí),則實(shí)際的寬度輸出。
31.
32.*(p+5)*(p+5)解析:p+5指向了數(shù)組w的第6個(gè)元素,再取指針運(yùn)算。
33.00解析:二維數(shù)組可以看成是按矩陣形式排列的,題目中給二維數(shù)組賦初值是按行分段賦值的,a[4][4]可以分解為4個(gè)一維數(shù)組,其數(shù)組名分別為a[0]、a[1]、a[2]、a[3],這4個(gè)一維數(shù)組都有4個(gè)元素,a[0]的元素為a[0][0]、a[0][1]、a[0][2]、a[0][3]。
34.2121解析:本題考核的知識(shí)點(diǎn)是switch語句的嵌套應(yīng)用。外層switch語句后面括號(hào)里的x的值為1,所以執(zhí)行從case1:后面的語句開始執(zhí)行,而case1:后面語句也為switch語句,這個(gè)switch語句后面括號(hào)里的y的值為0,所以從該switch語句里的case():開始執(zhí)行即執(zhí)行a++,這時(shí)a的值變?yōu)?,執(zhí)行完畢,遇到break語句,退出內(nèi)層switch語句,又回到外層switch語句,繼續(xù)執(zhí)行case1:下面的語句即case2:執(zhí)行完畢后,a自加1變?yōu)?,b自加1變1。所以最后輸出的a和b的值為21。
35.voidfun(doubleb[][22])voidfun(doubleb[][22])解析:程序中為了表示函數(shù)調(diào)用“不帶回值”,可以用“void”定義函數(shù)為“無類型”(或稱“空類型”),這樣系統(tǒng)就保證不使函數(shù)帶回任何值。當(dāng)二維數(shù)組作為形參時(shí),二維數(shù)組的第一維可以省略。
36.strudctSTRUstrudctSTRU解析:結(jié)構(gòu)件類型是構(gòu)造數(shù)據(jù)類型,是用戶自己定義的一種類型。
結(jié)構(gòu)體類型的定義:
struct結(jié)構(gòu)體類型名
{
成員項(xiàng)表;
};
定義結(jié)構(gòu)體變量的的形式為:
struct結(jié)構(gòu)體類型名變量1,變量2,...?
其中變量包括;一般變量、指針變量、數(shù)組變量等。
37.邊界值分析法邊界值分析法解析:黑箱測(cè)試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測(cè)試用例。常用的黑箱測(cè)試有等價(jià)類劃分、邊界值分析法和錯(cuò)誤推測(cè)法3種。
38.-32768~32767
39.3232解析:二叉樹的一個(gè)性質(zhì)是,在二叉樹的第k層上,最多有2k-1(k≥1)個(gè)結(jié)點(diǎn)。由此,26-1=32.所以答案為32。
40.gaegae解析:主函數(shù)中定義了字符數(shù)組a和b,其初值分別為L(zhǎng)anguage和Programe,然后定義了兩個(gè)指針變量p1和p2,并讓它們指向a和b。通過分析可知下面的for循環(huán)中,每循環(huán)一次就將p1+k和p2+k所指向的字符進(jìn)行比較,如果相等,輸出該字符,循環(huán)共執(zhí)行8次,顯然Language和Programe中只有字符gae相等,所以最后轄出為gae。
41.B解析:本題用循環(huán)的方法考查對(duì)數(shù)組概念的掌握。首先,當(dāng)i=0時(shí),數(shù)組中的位置是a[2][0]=7,當(dāng)然,如果用排除法的話,就不用考慮后面的循環(huán)了,因?yàn)樵?個(gè)選項(xiàng)中,第1個(gè)數(shù)為了的選項(xiàng)只有B)。本題執(zhí)行第2次循環(huán)時(shí),i的值為1,則printf函數(shù)中的數(shù)組指向?yàn)閍[1][1]=5,依次循環(huán),可求出答案。
42.A
43.DD)【解析】數(shù)據(jù)庫設(shè)計(jì)目前一段采用生命周期法.即將整個(gè)數(shù)據(jù)庫應(yīng)用系統(tǒng)的開分解成目標(biāo)獨(dú)立的若干階段,它們是:需要分析階段、概念設(shè)計(jì)階段、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、編碼階段、測(cè)試階段、運(yùn)行階段、進(jìn)一步修改階段。在數(shù)據(jù)庫設(shè)計(jì)中采用上面幾個(gè)階段中的前四個(gè)階段,并且重點(diǎn)以數(shù)據(jù)結(jié)構(gòu)和模型設(shè)計(jì)為主線。
44.A解析:本題考查了二維數(shù)組元素的引用方法。選項(xiàng)A中a+i指向了數(shù)組a的第i+1行,*(a+i)則是第i+1行第0列的地址值,*(a+i)+j指向了數(shù)組a第i+1行,j+1列,*(*(a+i)+j)取到的是數(shù)組a的a[i][j]元素。
45.B
46.B解析:本題考查函數(shù)中變量的作用范圍,在主函數(shù)中給變量x,y,z賦值,然后將其作為實(shí)參傳遞給函數(shù)fun,在函數(shù)fun中雖然改變了這三個(gè)變量的值,但兩個(gè)函數(shù)中的x,y,z只是同名的局部變量,互不影響,所以調(diào)用函數(shù)fun后,主函數(shù)中x,y,z的值并未改變,即變量作形參時(shí),其值的改變不能影響實(shí)參的值。
47.D解析:對(duì)于printf()函數(shù),若有格式控制字符,則在格式控制字符的位置輸出變量i的值;否則,直接輸出雙引號(hào)內(nèi)的內(nèi)容。
48.A解析:a就是數(shù)組a的首地址,而a+x是數(shù)組中第x個(gè)元素的地址,所以在四個(gè)選項(xiàng)中,選項(xiàng)B和C只能輸入一個(gè)數(shù)據(jù),選項(xiàng)D不能給a[0]輸入數(shù)據(jù),只有A可以完成給數(shù)組所有的元素輸入數(shù)據(jù)的任務(wù)。
49.A解析:在switch語句中break語句的作用是退出分支語句,若沒有break語句則一直向下執(zhí)行。本題中首先計(jì)算switch后面括號(hào)里的表達(dá)式a%3,即15%3為0:執(zhí)行case0:后面的語句“m++;”,m自加1,即m為1;遇到break語句;然后跳出switch語句,所以最后輸出的m值為1。所以選項(xiàng)A正確。
50.D解析:本題是計(jì)算50之內(nèi)的自然數(shù)相加之和,題中if語句括號(hào)中的條件表達(dá)式!(i%5)&&!(i%3)表明只有能同時(shí)被5和3整除的數(shù)才符合相加的條件,1~49之間滿足這個(gè)條件的只有3個(gè)數(shù),15,30,45,因?yàn)閟的初始值為1,所以s=1+15+30+45=91。故正確答案為D)。
51.D解析:注意的是x++中x值的引用時(shí),這里應(yīng)當(dāng)是先引用,后自加,具體執(zhí)行過程如下:
第一次while循環(huán):條件為真,執(zhí)行a=a+1=1;此時(shí),x的值已為4,判斷y<x不成立,繼續(xù)執(zhí)行循環(huán);
第二次while循環(huán);條件為假,此時(shí)x的值已為5,退出while循環(huán),執(zhí)行printf。
52.B解析:本題中的答案A與D都缺少“;”,而答案C中,表達(dá)式是不能獨(dú)立成為語句的,答案B使用了C語言的自減運(yùn)算符它就相當(dāng)于D=D-1,所以答案B為一賦值語句。
53.D解析:本題考查自減(--)運(yùn)算符的使用。“x--”是先引用x的值然后將x的值減1,所以輸出的x值為8;“--y”是先將y的值減1然后再引用y的值,所以輸出的y值為7。
54.D解析:函數(shù)scanf()的調(diào)用形式是:scanf(格式字符串,輸入項(xiàng)地址表)。其中,“格式字符串”是要輸入的變量的格式符;“輸入項(xiàng)地址表”是要輸入的變量的地址。本題中定義變量a為雙精度型變量,雙精度變量的格式符為“1e”;變量的地址用取地址符“&”加變量名表示,如變量a的地址為“&a”。
55.B解析:表達(dá)式n=(k%m,k/m)實(shí)際上是將k/m的結(jié)果賦值給了n。逗號(hào)表達(dá)式中最后一個(gè)表達(dá)式的值是該逗號(hào)表達(dá)式的值,所以輸出結(jié)果為k/m。
56.C解析:在for(i=0;i<12;i++)c[s[i]]++中,數(shù)組元素s[i]的值作為數(shù)組c的下標(biāo),當(dāng)退出循環(huán)時(shí),數(shù)組c的4個(gè)元素的值分別為4、3、3、2。
57.D解析:使用人工或自動(dòng)手段來運(yùn)行或測(cè)試某個(gè)系統(tǒng)的過程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程。測(cè)試要以查找錯(cuò)誤為中心,而不是為了演示軟件的正確功能。
58.D解析:在C語言中,函數(shù)參數(shù)的默認(rèn)傳遞方式是傳值,即函數(shù)內(nèi)部的形參只是調(diào)用時(shí)的實(shí)參的一個(gè)拷貝,改變形參,實(shí)參不會(huì)被改變.如果想要實(shí)現(xiàn)傳址調(diào)用只能使用傳遞指針的方式來實(shí)現(xiàn).利用指針作函數(shù)的參數(shù)時(shí),無論形參指針還是實(shí)參指針?biāo)傅亩际峭粋€(gè)內(nèi)存地址,所以形參如果改變了這個(gè)地址中的內(nèi)容,也就是改變了實(shí)參所指的地址內(nèi)容.本題程序開頭定義了一個(gè)函數(shù)f(),在函數(shù)中用一個(gè)臨時(shí)變量t交換了兩個(gè)指針參數(shù)所指的地址內(nèi)容,所以該函數(shù)的作用就是交換兩個(gè)參數(shù)所指的內(nèi)容。在主函數(shù)中,首先定義了一個(gè)int型數(shù)組a,并定義了兩個(gè)int型指針p、q分別指向數(shù)組a的第一個(gè)元素和最后一個(gè)元素。然后使用一個(gè)while循環(huán)調(diào)用函數(shù)f()不斷交換兩個(gè)指針?biāo)傅膬?nèi)容,每次交換后p往后移動(dòng)一個(gè)元素,q往前移動(dòng)一個(gè)元素,直到q不再大于p,即直到兩個(gè)指針在數(shù)組a的中間相遇為止。所以,程序最終運(yùn)行的結(jié)果是數(shù)組a中的所有元素全被反序排列一次。故應(yīng)該選擇選項(xiàng)D。
59.B解析:本題考核的知識(shí)點(diǎn)是函數(shù)的定義方法。選項(xiàng)B中在說明形參時(shí),省略了第二個(gè)參數(shù)的類型,故選項(xiàng)B編譯不能通過。
60.D解析:算法的空間復(fù)雜度一般是指這個(gè)算法執(zhí)行時(shí)所需要的內(nèi)存空間,其中包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲(chǔ)空間以及算法執(zhí)行旱災(zāi)程中所需要的額外空間,其中額外空間還包括算法程序執(zhí)行過程的工作單元以及某種數(shù)據(jù)結(jié)構(gòu)所需要的附加存儲(chǔ)空間。
61.B本題考查typledef重新聲明一種結(jié)構(gòu)體類型,那么T為結(jié)構(gòu)體類型,而不是結(jié)構(gòu)體變量,所以B選項(xiàng)正確。
62.D
63.C解析:結(jié)構(gòu)化程序設(shè)計(jì)是指將待開發(fā)的軟件系統(tǒng)劃分為若干個(gè)相互獨(dú)立的模塊,與具體的語句結(jié)構(gòu)無關(guān)。Goto語句的濫用會(huì)導(dǎo)致程序的可讀性降低。三種基本結(jié)構(gòu)構(gòu)成的程序依然可以解決大規(guī)模的問題,只是不利于復(fù)用。
64.B本題考查C語言表達(dá)式的語法。A選項(xiàng)中“:=”不是C語言中的運(yùn)算符。C選項(xiàng)中int是定義一個(gè)整型變量,后面不能夠跟算術(shù)表達(dá)式。D選項(xiàng)錯(cuò)誤地使用了賦值運(yùn)算符“=”,賦
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度草牧場(chǎng)承包經(jīng)營(yíng)權(quán)租賃與農(nóng)業(yè)保險(xiǎn)聯(lián)動(dòng)合同3篇
- 二零二五版集裝箱租賃及售后服務(wù)合同樣本3篇
- 2025年度數(shù)字經(jīng)濟(jì)產(chǎn)業(yè)園區(qū)建設(shè)合同3篇
- 2025年移動(dòng)辦公小程序定制開發(fā)與企業(yè)管理服務(wù)合同2篇
- 2024版成都市存量房屋買賣合同實(shí)施條例
- 二零二五版智能家居定制家具采購(gòu)與售后保障合同3篇
- 2025年度餐飲行業(yè)食品安全風(fēng)險(xiǎn)評(píng)估合同21篇
- 二零二五河南事業(yè)單位100人招聘合同范本解讀與使用指南3篇
- 2024起重機(jī)械進(jìn)出口貿(mào)易合同規(guī)范范本3篇
- 二零二五白酒定制酒生產(chǎn)與銷售合作合同3篇
- 春節(jié)英語介紹SpringFestival(課件)新思維小學(xué)英語5A
- 進(jìn)度控制流程圖
- 2023年江蘇省南京市中考化學(xué)真題
- 【閱讀提升】部編版語文五年級(jí)下冊(cè)第四單元閱讀要素解析 類文閱讀課外閱讀過關(guān)(含答案)
- 供電副所長(zhǎng)述職報(bào)告
- 現(xiàn)在完成時(shí)練習(xí)(短暫性動(dòng)詞與延續(xù)性動(dòng)詞的轉(zhuǎn)換)
- 產(chǎn)品質(zhì)量監(jiān)控方案
- 物業(yè)總經(jīng)理述職報(bào)告
- 新起點(diǎn),新發(fā)展心得體會(huì)
- 深圳大學(xué)學(xué)校簡(jiǎn)介課件
- 校園欺凌問題成因及對(duì)策分析研究論文
評(píng)論
0/150
提交評(píng)論