版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2022-2023年湖北省荊州市全國計算機等級考試C語言程序設(shè)計真題(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列字符串是標識符的是()。
A.aaB.a-classC.intD.LINE1
2.
3.若x,i,j和k都是int型變量,則執(zhí)行下面表達式后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)));}程序運行后的輸出結(jié)果是______。A.3B.6C.8D.12
5.設(shè)s1="Good",s2="",s3="Bye",則s1、s2和s3連接后的結(jié)果是()。
A.GoodB.GoodByeC.GoodByeD.Bye
6.按照“先進先出”組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是()。
A.隊列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);}程序運行后的輸出結(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.下列表達式中,可以正確表示的關(guān)系是()。
A.(x>=1)10(x<=0)B.x>1‖x=0C.x>=1ORx<=0D.X>=1&&x<=0
10.以下選項中,算術(shù)表達式的值與其他3個不同的是()。
A.3/5.B.3./5C.3/5D.3.0/5.0
11.若已知一個棧的進棧序列是1,2,3…n,其輸出序列是P1,P2,P3,…PN,若P1=n,則Pi(1<i<p)為()。
A.IB.n-iC.n-i+1D.不確定
12.以下描述中,不是線性表順序存儲結(jié)構(gòu)特征的是()。
A.可隨機訪問B.需要連續(xù)的存儲空間C.不便于插入和刪除D.邏輯相鄰的數(shù)據(jù)物理位置上不相鄰
13.
14.算法的效率的分析主要包括兩個方面()。
A.時間復雜度和空間復雜度B.正確性和簡單性C.可讀性和文檔性D.數(shù)據(jù)復雜性和程序復雜性
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);
}
}
運行時,若輸入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后一對圓括號中表示a不等于0的關(guān)系,則能正確表示這一關(guān)系的表達式為()
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的拓撲序列中,若頂點Vi在頂點Vj之前,則下列情形不可能出現(xiàn)的是()。
A.G中有弧
B.G中有一條從Vi到Vj的路徑
C.G中沒有弧
D.G中有一條從Vj到Vi的路徑
二、2.填空題(20題)21.下面程序是計算100以內(nèi)能被4整除且個位數(shù)為4的所有整數(shù),請?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列元素和主對角線元素均為1。
②其余元素為其左上方和正上方元素之和。
③數(shù)據(jù)的個數(shù)每行遞增1。
請將程序補充完整。
#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.以下程序的功能是:利用指針指向三個整型變量,并通過指針運算找出三個數(shù)中的最大值,輸出到屏幕上。請?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.軟件危機出現(xiàn)于60年代末,為了解決軟件危機,人們提出了【】的原理來設(shè)計軟件,這就是軟件工程誕生的基礎(chǔ)。
26.以下程序中,fun函數(shù)的功能是求3行4列二維數(shù)組每行元素中的最大值,請?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.以下程序運行的結(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);;
}
程序運行時輸入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.如果有以下定義,則不移動指針p,且通過指針p引用值為98的數(shù)組元素的表達式是【】。
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.以下程序運行后的輸出結(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類型,請寫出fun函數(shù)的首部【】。要求形參名為b。
main()
{doubles[10][22];
intn;
┆
fun(s);
┆
}
36.若有如下結(jié)構(gòu)體說明:
structSTRU
{inta,b;charc:doubled;
structSTRU*p1,*p2;
};
請?zhí)羁?,以完成對t數(shù)組的定義,t數(shù)組的每個元素為該結(jié)構(gòu)體類型。
【】t[20]
37.常用的黑箱測試有等價類劃分法、【】和錯誤推測法3種。
38.設(shè)C語言中,一個int型數(shù)據(jù)在內(nèi)存中占兩個字節(jié),則int型數(shù)據(jù)的取值范圍為【】。
39.一棵二叉樹第六層(根結(jié)點為第一層)的結(jié)點數(shù)最多為______個。
40.以下程序運行后的輸出結(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è)計的四個階段是:需求分析、概念設(shè)計、邏輯設(shè)計和______。A.編碼設(shè)計B.測試階段C.運行階段D.物理設(shè)計
44.若有定義inta[2][3];,則對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ù)時,必須要有輸出項
B.使用putchar()函數(shù)時,必須在之前包含頭文件stdio.h
C.在C語言中,整數(shù)可以以二進制、八進制或十六進制的形式輸出
D.調(diào)節(jié)getchar()函數(shù)讀入字符時,可以從鍵盤上輸入字符所對應(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.有語法錯誤不能通過編譯B.輸出****C.可以通過編譯,但是不能通過連接,因而不能運行D.輸出####
48.以下程序段給數(shù)組所有的元素輸入數(shù)據(jù),請選擇正確答案填入。#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);}程序運行后的輸出結(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");}程序的運行結(jié)果是
A.1234B.2344C.4332D.1123
57.在軟件測試設(shè)計中,軟件測試的主要目的是()。
A.實驗性運行軟件B.證明軟件正確C.找出軟件中全部錯誤D.為發(fā)現(xiàn)軟件錯誤而執(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]);}程序運行后的輸出結(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ù)定義中,會出現(xiàn)編譯錯誤的是()。
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.算法的空間復雜度是指
A.算法程序的長度B.算法程序中的指令條數(shù)C.執(zhí)行算法程序所占的存儲空間D.算法執(zhí)行過程中所需要的存儲空間
四、選擇題(20題)61.若有以下語句:typedefstructS{int9;charh;}T;以下敘述中正確的是()。
A.可用s定義結(jié)構(gòu)體變量B.可用T定義結(jié)構(gòu)體變量C.S是struct類型的變量D.T是structS類型的變量
62.在以下選項中,能正確調(diào)用對象屬性的語句是()。
A.對象名(屬性名)B.對象名一>屬性名C.對象名屬性名D.對象名.屬性名
63.以下關(guān)于結(jié)構(gòu)化程序設(shè)計的敘述中正確的是()。
A.一個結(jié)構(gòu)化程序必須同時由順序、分支、循環(huán)三種結(jié)構(gòu)組成
B.結(jié)構(gòu)化程序使用goto語句會很便捷
C.在C語言中,程序的模塊化是利用函數(shù)實現(xiàn)的
D.由三種基本結(jié)構(gòu)構(gòu)成的程序只能解決小規(guī)模的問題
64.若變量已正確定義并賦值,下面符合C語言要求的表達式是
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.軟件生命周期中的活動不包括()
A.軟件維護B.市場調(diào)研C.軟件測試D.需求分析
70.
71.有以下程序程序運行后的輸出結(jié)果是()。
A.143B.197C.33D.28
72.有以下程序程序運行后的輸出結(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.有三個關(guān)系R、S和T如下:
則由關(guān)系R和s得到關(guān)系T的操作是()。
A.自然連接B.并C.交D.差
78.以下選項中,當x為大于1的奇數(shù)時,值為0的表達式是()。
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<回車>
則程序的運行結(jié)果是
A.6B.8C.3D.4
五、程序改錯題(1題)81.假如整數(shù)數(shù)列中的數(shù)不重復,并存放在數(shù)組中。下列給定的程序中,函數(shù)proc()的功能是:刪除數(shù)列中值為x的元素。n中存放的是數(shù)列中元素的個數(shù)。請修改程序中的錯誤,使它能夠得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.請編寫函數(shù)proc,其功能是:計算并輸出下列多項式值。
S=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-1/2n)
例如,若主函數(shù)從鍵盤給n輸入20后,則輸出為S=0.680803。
注意:部分源程序給出如下。
請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。
試題程序:
#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ī)定,標識符是由字母、數(shù)字或下劃線組成,并且它的第一個字符必須是字母或者下劃線。int就是表達整型變量類型的標識符,它不能用做變量名和函數(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語句,返回表達式(x+y)/2的值,即:(5+6)/2,因為參數(shù)的類型都為int型,所以結(jié)果也為整型:5,第二次調(diào)用時8和5也不相等,所以返回值為6,因此,選項B是正確的。
5.C
6.A隊列是一種特殊的線性表,只允許在表的一端插八元素,在表的另一端刪除元素,插入元素的一端叫“隊尾”,刪除元素的一端叫“隊頭”。先插入的元素先被刪除,是按“先進先出”的原則組織數(shù)據(jù)的。
【知識拓展】“隊列”和“棧”都是一種特殊的線性表。之所以稱之為“隊列”,其形式如“排隊”。要講究“先來后到”,先進先出,后進后出。
7.A本題中,首先創(chuàng)建一個動態(tài)內(nèi)存,然后將地址分別存入指針a、b、c中,即a、b、c都指向相同.的變量。分別給a、b、c所指的變量賦值,最終a、b、c所指的變量中的值為3,最后打印a、b、c所指的變量
8.C解析:解答本題,首先要明白在對指針進行加、減運算的時候,數(shù)字“1”不是十進制的數(shù)“1”,而是指'1'個存儲單元長度,而1個存儲單元長度占多少存儲空間,應(yīng)該視具體情況而定。如果基本類型是int型,移動1個存儲單元的長度就是位移2個字節(jié),如果基本類型是float型,移動1個存儲單元的長度就是位移4個字節(jié)。所以p+13所指向的數(shù)組元素的地址:300H+(13*上標)4)H=352H。
9.A解析:題中要求x的取值是小于等于0或者大于等于1,這說明表達式是或的關(guān)系,所以在寫成C語言表達式應(yīng)是邏輯或的關(guān)系,邏輯或運算符是'‖'。
10.CC語言中除法運算有兩個運算數(shù),兩個整數(shù)的除法運算會舍去小數(shù)部分,結(jié)果為整數(shù);由于C語言中浮點數(shù)的小數(shù)形式必須要有小數(shù)點,所以選項A(5.)、B(3.)、D(3.0和5.0)都是浮點數(shù)。選項A、B運算時自動將另一個整數(shù)轉(zhuǎn)換成浮點數(shù),然后再運算,選項D中兩個都是浮點數(shù),浮點數(shù)的除法運算結(jié)果還是浮點數(shù)。所以本題中選項A、B、D運算結(jié)果是浮點數(shù),選項C運算結(jié)果是整數(shù)。故本題答案為C選項。
11.C
12.DD)【解析】線性表的順序存儲是用一片連續(xù)的空間來存放數(shù)據(jù)元素,其特點是邏輯上相鄰的元素在物理位置上也相鄰。數(shù)據(jù)元素之間邏輯上的先后關(guān)系自動隱含在物理位置的相鄰元素之中,因此不需要另外開辟空間來保存元素之間的關(guān)系。
13.B
14.D
15.A
16.A\n根據(jù)題意,當s=1時,輸出65;當s=2時,輸出6;當S=3時,則輸出64;當S=4時,輸出5;當s=5時,輸出6;當s=0時,程序直接退出。所以最后答案為6566456,A選項正確。
\n
17.D本題主要考查文件的操作。在本題的程序中,首先定義了一個無返回值的函數(shù)fun,該函數(shù)帶有兩個指針類型的形參,其中第一個形參指向需要被操作文件的文件名,而第二個形參指向被操作的字符串。在函數(shù)體中,首先定義一個文件指針,然后以只寫的方式打開第一個形參所指向的文件,接著執(zhí)行for循環(huán),循環(huán)結(jié)束的條件是循環(huán)變量小于被操作字符串的長度,循環(huán)體中的程序fputc(st[i],myf);的功能是將字符串中的當前字符輸入到文件中。由這些分析我們可以知道,函數(shù)fun的作用是將字符串的內(nèi)容寫入到文件中。
在主函數(shù)中,兩次調(diào)用函數(shù)fun,當?shù)谝淮握{(diào)用時,寫入文件的內(nèi)容為newworld,然后第二次調(diào)用函數(shù),此時打開文件,文件的指針重新回到開始,然后往文件中寫內(nèi)容“hello,”,由于此時文件中已經(jīng)有內(nèi)容“newworld”,則需要覆蓋前面一部分的內(nèi)容,因此,程序的最終輸出結(jié)果是hello,rld,本題的正確答案選D。
18.D
19.C
20.D若G中有一條從Vj到Vi的路徑,則圖的拓撲序列中頂點Vj在頂點Vi之前。設(shè)G(V,E)是一個具有n個頂點的有向圖,V中頂點的序列v1,v2,…,vn稱為一個拓撲序列,當且僅當該頂點滿足下列條件:若在有向圖G中,從頂點vi在vj有一條路徑,則在拓撲序列中頂點vi必須排在頂點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,對角線上的元素賦值為1顯然在第一個空中應(yīng)該填入對角線上的元素即x[i][i],在第2重循環(huán)中給每行其他元素賦值,而在每行中除了第0列和對角線的元素外其他元素為其對應(yīng)的上一行中同列和同列的前一列的元素相加,所以在第二個空中應(yīng)該填入x[i-1][j-1]+x[i-1][j]。
23.*pmax=*px*pmax=*px解析:首先將變量x的值放到max中,然后依次和變量y、z進行比較。若有比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)體是當y能被3整除時輸出表達式--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.軟件工程學軟件工程學
26.br[i]br[i]解析:函數(shù)fun的功能是求出二維數(shù)組每行元素中的最大值。對于3行4列的二維數(shù)組將有3個最大值存放到數(shù)組br[]中。x存放的是每行的最大值,當求出每行的最大值x后,應(yīng)該將x賦值給br[]。因此此處填空應(yīng)該是br[i]。
27.77解析:解答本題的關(guān)鍵是要讀懂程序,要找出能被7或11整除的所有整數(shù),注意數(shù)學中的“或”和C語言中的“或”的區(qū)別,但在此處,if條件語句中用了“‖”運算符,若要找能同時被7和11整除的所有整數(shù)則在if的條件中應(yīng)使用“&&”運算符。
當然,如果m的值輸入50,即表達式fun(10,aa,&n);為fun(50,aa,&n);時輸入結(jié)果為:711142122283335424449。
28.1212解析:字符類型的數(shù)據(jù)在內(nèi)存中以相應(yīng)的ASCII碼存放,在C語言中,字符數(shù)據(jù)可以等價為與其相應(yīng)的ASCII碼的整數(shù),還可以作為整數(shù)參加運算。在本題中,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ù)返回值的類型一致。本題實現(xiàn)的是在字符'A'的ASCII碼值上加上一個常數(shù),使之變成另一個ASCII碼值,從而輸出字符。
30.12341234解析:在%與格式符之間插入一個整形數(shù)來指這輸出寬度,并不影響數(shù)據(jù)的完整性,當插入的寬度小于實際的寬度時,則實際的寬度輸出。
31.
32.*(p+5)*(p+5)解析:p+5指向了數(shù)組w的第6個元素,再取指針運算。
33.00解析:二維數(shù)組可以看成是按矩陣形式排列的,題目中給二維數(shù)組賦初值是按行分段賦值的,a[4][4]可以分解為4個一維數(shù)組,其數(shù)組名分別為a[0]、a[1]、a[2]、a[3],這4個一維數(shù)組都有4個元素,a[0]的元素為a[0][0]、a[0][1]、a[0][2]、a[0][3]。
34.2121解析:本題考核的知識點是switch語句的嵌套應(yīng)用。外層switch語句后面括號里的x的值為1,所以執(zhí)行從case1:后面的語句開始執(zhí)行,而case1:后面語句也為switch語句,這個switch語句后面括號里的y的值為0,所以從該switch語句里的case():開始執(zhí)行即執(zhí)行a++,這時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ù)帶回任何值。當二維數(shù)組作為形參時,二維數(shù)組的第一維可以省略。
36.strudctSTRUstrudctSTRU解析:結(jié)構(gòu)件類型是構(gòu)造數(shù)據(jù)類型,是用戶自己定義的一種類型。
結(jié)構(gòu)體類型的定義:
struct結(jié)構(gòu)體類型名
{
成員項表;
};
定義結(jié)構(gòu)體變量的的形式為:
struct結(jié)構(gòu)體類型名變量1,變量2,...?
其中變量包括;一般變量、指針變量、數(shù)組變量等。
37.邊界值分析法邊界值分析法解析:黑箱測試方法完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導出測試用例。常用的黑箱測試有等價類劃分、邊界值分析法和錯誤推測法3種。
38.-32768~32767
39.3232解析:二叉樹的一個性質(zhì)是,在二叉樹的第k層上,最多有2k-1(k≥1)個結(jié)點。由此,26-1=32.所以答案為32。
40.gaegae解析:主函數(shù)中定義了字符數(shù)組a和b,其初值分別為Language和Programe,然后定義了兩個指針變量p1和p2,并讓它們指向a和b。通過分析可知下面的for循環(huán)中,每循環(huán)一次就將p1+k和p2+k所指向的字符進行比較,如果相等,輸出該字符,循環(huán)共執(zhí)行8次,顯然Language和Programe中只有字符gae相等,所以最后轄出為gae。
41.B解析:本題用循環(huán)的方法考查對數(shù)組概念的掌握。首先,當i=0時,數(shù)組中的位置是a[2][0]=7,當然,如果用排除法的話,就不用考慮后面的循環(huán)了,因為在4個選項中,第1個數(shù)為了的選項只有B)。本題執(zhí)行第2次循環(huán)時,i的值為1,則printf函數(shù)中的數(shù)組指向為a[1][1]=5,依次循環(huán),可求出答案。
42.A
43.DD)【解析】數(shù)據(jù)庫設(shè)計目前一段采用生命周期法.即將整個數(shù)據(jù)庫應(yīng)用系統(tǒng)的開分解成目標獨立的若干階段,它們是:需要分析階段、概念設(shè)計階段、邏輯設(shè)計階段、物理設(shè)計階段、編碼階段、測試階段、運行階段、進一步修改階段。在數(shù)據(jù)庫設(shè)計中采用上面幾個階段中的前四個階段,并且重點以數(shù)據(jù)結(jié)構(gòu)和模型設(shè)計為主線。
44.A解析:本題考查了二維數(shù)組元素的引用方法。選項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ù)fun,在函數(shù)fun中雖然改變了這三個變量的值,但兩個函數(shù)中的x,y,z只是同名的局部變量,互不影響,所以調(diào)用函數(shù)fun后,主函數(shù)中x,y,z的值并未改變,即變量作形參時,其值的改變不能影響實參的值。
47.D解析:對于printf()函數(shù),若有格式控制字符,則在格式控制字符的位置輸出變量i的值;否則,直接輸出雙引號內(nèi)的內(nèi)容。
48.A解析:a就是數(shù)組a的首地址,而a+x是數(shù)組中第x個元素的地址,所以在四個選項中,選項B和C只能輸入一個數(shù)據(jù),選項D不能給a[0]輸入數(shù)據(jù),只有A可以完成給數(shù)組所有的元素輸入數(shù)據(jù)的任務(wù)。
49.A解析:在switch語句中break語句的作用是退出分支語句,若沒有break語句則一直向下執(zhí)行。本題中首先計算switch后面括號里的表達式a%3,即15%3為0:執(zhí)行case0:后面的語句“m++;”,m自加1,即m為1;遇到break語句;然后跳出switch語句,所以最后輸出的m值為1。所以選項A正確。
50.D解析:本題是計算50之內(nèi)的自然數(shù)相加之和,題中if語句括號中的條件表達式!(i%5)&&!(i%3)表明只有能同時被5和3整除的數(shù)才符合相加的條件,1~49之間滿足這個條件的只有3個數(shù),15,30,45,因為s的初始值為1,所以s=1+15+30+45=91。故正確答案為D)。
51.D解析:注意的是x++中x值的引用時,這里應(yīng)當是先引用,后自加,具體執(zhí)行過程如下:
第一次while循環(huán):條件為真,執(zhí)行a=a+1=1;此時,x的值已為4,判斷y<x不成立,繼續(xù)執(zhí)行循環(huán);
第二次while循環(huán);條件為假,此時x的值已為5,退出while循環(huán),執(zhí)行printf。
52.B解析:本題中的答案A與D都缺少“;”,而答案C中,表達式是不能獨立成為語句的,答案B使用了C語言的自減運算符它就相當于D=D-1,所以答案B為一賦值語句。
53.D解析:本題考查自減(--)運算符的使用。“x--”是先引用x的值然后將x的值減1,所以輸出的x值為8;“--y”是先將y的值減1然后再引用y的值,所以輸出的y值為7。
54.D解析:函數(shù)scanf()的調(diào)用形式是:scanf(格式字符串,輸入項地址表)。其中,“格式字符串”是要輸入的變量的格式符;“輸入項地址表”是要輸入的變量的地址。本題中定義變量a為雙精度型變量,雙精度變量的格式符為“1e”;變量的地址用取地址符“&”加變量名表示,如變量a的地址為“&a”。
55.B解析:表達式n=(k%m,k/m)實際上是將k/m的結(jié)果賦值給了n。逗號表達式中最后一個表達式的值是該逗號表達式的值,所以輸出結(jié)果為k/m。
56.C解析:在for(i=0;i<12;i++)c[s[i]]++中,數(shù)組元素s[i]的值作為數(shù)組c的下標,當退出循環(huán)時,數(shù)組c的4個元素的值分別為4、3、3、2。
57.D解析:使用人工或自動手段來運行或測試某個系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或是弄清預(yù)期結(jié)果與實際結(jié)果之間的差別。軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。測試要以查找錯誤為中心,而不是為了演示軟件的正確功能。
58.D解析:在C語言中,函數(shù)參數(shù)的默認傳遞方式是傳值,即函數(shù)內(nèi)部的形參只是調(diào)用時的實參的一個拷貝,改變形參,實參不會被改變.如果想要實現(xiàn)傳址調(diào)用只能使用傳遞指針的方式來實現(xiàn).利用指針作函數(shù)的參數(shù)時,無論形參指針還是實參指針所指的都是同一個內(nèi)存地址,所以形參如果改變了這個地址中的內(nèi)容,也就是改變了實參所指的地址內(nèi)容.本題程序開頭定義了一個函數(shù)f(),在函數(shù)中用一個臨時變量t交換了兩個指針參數(shù)所指的地址內(nèi)容,所以該函數(shù)的作用就是交換兩個參數(shù)所指的內(nèi)容。在主函數(shù)中,首先定義了一個int型數(shù)組a,并定義了兩個int型指針p、q分別指向數(shù)組a的第一個元素和最后一個元素。然后使用一個while循環(huán)調(diào)用函數(shù)f()不斷交換兩個指針所指的內(nèi)容,每次交換后p往后移動一個元素,q往前移動一個元素,直到q不再大于p,即直到兩個指針在數(shù)組a的中間相遇為止。所以,程序最終運行的結(jié)果是數(shù)組a中的所有元素全被反序排列一次。故應(yīng)該選擇選項D。
59.B解析:本題考核的知識點是函數(shù)的定義方法。選項B中在說明形參時,省略了第二個參數(shù)的類型,故選項B編譯不能通過。
60.D解析:算法的空間復雜度一般是指這個算法執(zhí)行時所需要的內(nèi)存空間,其中包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲空間以及算法執(zhí)行旱災(zāi)程中所需要的額外空間,其中額外空間還包括算法程序執(zhí)行過程的工作單元以及某種數(shù)據(jù)結(jié)構(gòu)所需要的附加存儲空間。
61.B本題考查typledef重新聲明一種結(jié)構(gòu)體類型,那么T為結(jié)構(gòu)體類型,而不是結(jié)構(gòu)體變量,所以B選項正確。
62.D
63.C解析:結(jié)構(gòu)化程序設(shè)計是指將待開發(fā)的軟件系統(tǒng)劃分為若干個相互獨立的模塊,與具體的語句結(jié)構(gòu)無關(guān)。Goto語句的濫用會導致程序的可讀性降低。三種基本結(jié)構(gòu)構(gòu)成的程序依然可以解決大規(guī)模的問題,只是不利于復用。
64.B本題考查C語言表達式的語法。A選項中“:=”不是C語言中的運算符。C選項中int是定義一個整型變量,后面不能夠跟算術(shù)表達式。D選項錯誤地使用了賦值運算符“=”,賦
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2031年中國磁性筆頭行業(yè)投資前景及策略咨詢研究報告
- 2025年度耐候砂石購銷合同協(xié)議書(特制版)3篇
- 個人教育培訓機構(gòu)轉(zhuǎn)讓合同(2024版)2篇
- 2025-2030年中國高純石英砂行業(yè)運營狀況及發(fā)展前景預(yù)測分析報告
- 2025-2030年中國香蘭素行業(yè)市場前景規(guī)模及發(fā)展趨勢分析報告
- 二零二五版房屋買賣合同范本(爭議解決與仲裁)3篇
- 五金批發(fā)商轉(zhuǎn)型升級路徑與實踐考核試卷
- 塑料片材生產(chǎn)線的智能維護系統(tǒng)設(shè)計方法考核試卷
- 實驗室設(shè)備租賃考核試卷
- 開展課外讀物負面清單管理的具體實施舉措方案
- 中國骨關(guān)節(jié)炎診療指南(2024版)解讀
- 2025年內(nèi)蒙古包鋼集團公司招聘筆試參考題庫含答案解析
- 企業(yè)內(nèi)訓師培訓師理論知識考試題庫500題(含各題型)
- 2025年云南中煙工業(yè)限責任公司招聘420人高頻重點提升(共500題)附帶答案詳解
- 2024年山西省晉中市公開招聘警務(wù)輔助人員(輔警)筆試專項訓練題試卷(2)含答案
- 2023九年級歷史上冊 第二單元 5《羅馬城邦和羅馬帝國》教學實錄 新人教版
- 北京市房屋租賃合同自行成交版北京市房屋租賃合同自行成交版
- 《AM聚丙烯酰胺》課件
- 教育綜合體項目策劃書
- 軟件開發(fā)項目服務(wù)方案
評論
0/150
提交評論