版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2022-2023年山東省菏澤市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.
2.下列敘述中不正確的是()。
A.在C語言中調用函數時,只能把實參的值傳送給形參,形參的值不能傳送給實參
B.在C的函數中,最好使用全局變量
C.外部變量可以在函數之間傳遞數據
D.自動變量實質上是一個函數內部的局部變量
3.有以下程序:#include<stdio.h>intfun(intx){intp;if(x==0||x==1)return(3);p=x-fun(x-2);returnp;}main(){printf(“%d\n”,fun(7));}程序的運行結果是()。A.2B.3C.7D.0
4.視圖設計一般有3種設計次序,下列不屬于視圖設計的是______。
A.自頂向下B.由外向內C.由內向外D.自底向上
5.有以下程序:#include<stdio.h>main(){inta=2,b=2,C=2;print{("%d\n",a/b&c);}程序運行后的輸出結果是()。A.0B.1C.2D.3
6.下列敘述中錯誤的是()。
A.C程序可以由多個程序文件組成
B.—個C語言程序只能實現一種算法
C.C程序可以由一個或多個函數組成
D.—個C語言函數可以單獨作為一個C語言程序文件存在
7.以下合法的字符型常量是A.B.C.D.
8.下面哪個不是用來解決哈希表沖突的開放地址法()
A.線性探測法B.線性補償探測法C.拉鏈探測法D.隨機探測法
9.若在線性表中采用折半查找法查找元素,該線性表應該()。
A.元素按值有序B.采用順序存儲結構C.元素按值有序,且采用鏈式存儲結構D.元素按值有序,且采用順序存儲結構
10.若有定義“doublea;floatb;shortc;”,若想把1.2賦給變量a,3.4賦給變量b,5678賦給變量c,程序運行時鍵盤輸入:1.23.45678<回車>則以下正確的讀入語句是()。A.scanf("%If%If%d",&a,&b,&c);
B.scanf("%If%If%hd",&a,&b,&c);
C.scanf("%If%f%hd",&a,&b,&c);
D.scanf("%f%f%d",&a,&b,&c);
11.下面程序段的運行結果是char*p="abcdefgh";p+=3;printf("%d\n",strlen(strcpy(p,"ABCD")));
A.8B.12C.4D.7
12.下列程序的輸出結果是
#include"stdio.h"
#defineN3
#defineM3
voidfun(inta[M][N])
{printf("%d\n",*(a[1]+2));}
main()
{inta[M][N];
inti,j;
for(i=0;i<M;i++)
for(j=0;j<N;j++)
a[i][j]=i+j-(i-j);
fun(a);}
A.3B.4C.5D.6
13.某二叉樹的前序和后序序列正好相反,則該二叉樹一定是_____的二叉樹
A.空或者只有一個結點B.高度等于其結點數C.任一結點無左孩子D.任一結點無右孩子
14.算法的時間復雜度取決于()
A.問題的規模B.待處理數據的初態C.A和B
15.設有一個棧,元素依次進棧的順序為A、B、C、D、E。下列()是不可能的出棧序列。
A.A,B,C,D,EB.B,C,D,E,AC.E,A,B,C,DD.E,D,C,B,A
16.
17.若有定義floata[15],*p=a;,且數組a的首地址為300H,則p+13所指向的數組元素的地址為()。
A.334HB.30DHC.352HD.31AH
18.第
27
題
有一堆零件(100到200之間),如果分成4個零件一組的若干組,則多2個零件;若分成7個零件一組,則多3個零件;若分成9個零件一組,則多5個零件。下面程序是求這堆零件總數,請選擇填空。
#include<stdio.h>
main()
{inti;
for(i=100;i<200;i++)
if((i-2)%4==0)
if(!((i-3)%7))
if(_______)
printf("%d",i);
}
A.i%9=5B.i%9!=5C.(i-5)%9!=0D.(i-5)%9==0
19.以下不正確的定義語句是A.A.doublex[5]={2.0,4.0,6.0,8.0,10.0};
B.inty[5.3]={0,1,3,5,7,9};
C.charc1[]={′1′,′2′,′3′,′4′,′5′};
D.charc2[]={′\x10′,′\xa′,′\x8′};
20.一個遞歸算法必須包括()。
A.遞歸部分B.終止條件和遞歸部分C.迭代部分D.終止條件和迭代部分
二、2.填空題(20題)21.若運行時給變量x輸入12,則以下程序的運行結果是【】;
main(){
intx,y;
scanf(""%d"",&x);
y=x>12?x+10:x-12;
printf(""%d\n"",y);
}
22.下列程序執行后輸出的結果是【】。
structs
{intx,y;}data[2]={10,100,20,200};
main()
{
structs*p=data;
printf("%d\n",++(p->x));
}
23.執行下面程序段時輸出suet,請填空。
main()
{staticchara[]="student";
char*p;
for(p=a;p<【】;p+=2)
putchar(*p);
}
24.下面程序的功能是用來統計文件中字符個數。請填空。
#include"stdio.h"
main()
{longcount=OL;
FILE*fp=【】("text.dat","r");
if(fp==0)
{printf("Openerror\n");
exit(0);
}
while(【】)
{
fgetc(fp);
count++;
}
fclise(fp);
printf("%1d\n",count);
}
25.某二義樹中度為2的結點有18個,則該二叉樹中有______個葉子結點。
26.數據結構分為邏輯結構與存儲結構,線性鏈表屬于【】。
27.十六進制數100轉換成十進制數為【】。
28.以下程序中函數f的功能是在數組x的n個數(假定n個數互不相同)中找出最大最小數,將其中最小的數與第一個數對換,把最大的數與最后一個數對換。請填空。
#include<stdio.h>
voidf(intx[],intn)
{intp0,p1,i,j,t,m;
i=j=x[0];p0=p1=0;
for(m=0;m<n;m++)
{if(x[m]>i){i=x[m];p0=m;}
elseif(x[m]<j){j=x[m];p1=m;}
}
t=x[p0];x[p0]=x[n-1];x[n-1]=t;
t=x[p1];x[p1]=【】;【】=t;
}
main()
{inta[10],u;
for(u=0;u<10;u++)scanf("%d",&a[u]);
f(a,10);
for(u=0;u<10;u++)printf("%d",a[u]);
printf("\n");
}
29.下列程序運行后的輸出的結果是______。
#include<stdio.h>
main()
{chars[20];
scanf("%s",s);
printf("%s",s);
}
運行程序,輸入HOWAREYOU。
30.以下程序是求矩陣a,b的和,結果存入矩陣c中,并按矩陣形式輸出,請填空。
#include<stdio.h>
main()
{inta[3][4]={13,-2,7,5},{1,0,4,-3},{6,8,0,2}};
intb[3][4]={{-2,0,1,4},{5,-1,7,6},{6,8,0,2}};
inti,j,c[3][4];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
c[i][j]=【】;
for(i=0;i<3;i++)
{for(j=0;j<4;j++)
printf("%3d",c[i][j]);
printf("\n");}}
31.數據庫系統的主要特點為數據集成性、數據的高______和低冗余性、數據獨立性和數據統一管理和控制。
32.以下程序的功能是:對輸入的一行字符串的數字字符按它們的字面值累加,輸出此累加和。例如,輸入一行字符是:ab34dh8u,輸出值應當是15。請填空。
#include<stdio.h>
#include<ctype.h>
main()
{charch;inta,s;
【】;
while((ch=getchar())【】)
if(isdigit(ch))
{a=【】;s+=a;}
printf("s=%d\n\n",s);}
33.以下程序的功能是根據輸入的"y"("Y")與"n"("N"),在屏幕上分別顯示出"ThisisYES."與"ThisisNO."。空白處需要填入的內容是
#include<stdio.h>
voidYesNo(charch)
{switch(ch)
{case′y′:
case′Y′:printf("\nThisisYES.\n");
case′n′:
case′N′:printf("\nThisisNO.\n");}
main()
{charch;
printf("\nEnterachary,Yorn,N:");
ch=【】;
printf("ch;%c",ch);
YesNo(ch);}
34.下面的程序通過函數average計算數組中各元素的平均值,請填空。
floatavetage(int*pa,intn)
{inti;
floatavg=0.0;
for(i=0;i<n;i++);
avg=avg+【】;avg=【】;
returnavg;
}
main()
{inti,a[5]={2,4,6,8,10,};
floatmean;
prinf("%mean=%f\n",mean);
}
35.以下程序的輸出結果是【】。
#include<stdio.h>
main()
{ints[]={1,2,3,4},i;
intx=0;
for(i=0;i<4;i++)
{x=sb(s,x);
printf("%d",x);}
printf("\n");}
sb(s1,y)
int*s1,y;
{staticinti1=3;
y=s1[i1];
i1--;
return(y);}
36.下列程序段中循環體的執行次數是______。
a=15;
b=0;
do{b+=2;a-=2+b;}while(a>=0);
37.下列程序的運行結果為【】。
main()
{intx=2,y,z;
x*=3+1;
printf("%d,",x++);
x+=y=z=5;
printf("%d,",x);
K=y==Z;
printf{"%d\n",x);
}
38.【】是從二維表列的方向進行的運算。
39.下面程序的輸出結果是【】。
unsignedfun6(unsignednum)
{unsignedk=1;
do{k*=hum%10;
num/=10;}while(num);
return(k);}
main()
{unsignedn=26;
printf("%d\n",fun6(n));}
40.以下程序的輸出結果是【】。
main()
{char*p[]={"BOOL","OPK","H","SP"};
inti;
for(i=3;i>0;i--,i--)printf("%c",*p[i]);
printf("\n");}
三、1.選擇題(20題)41.以下不屬于對象的基本特點的是()
A.分類性B.多態性C.繼承性D.封裝性
42.索引屬于()。
A.模式B.內模式C.外模式D.概念模式
43.進行二分法查找,則線形表______。
A.必須以順序方式存儲
B.必須以鏈接方式存儲,且數據元素已按值排好序
C.必須以鏈接方式存儲
D.必須以順序方式存儲,且數據元素已按值排好序
44.若有以下說明和語句intc[4][5],(*p)[5];p=c;能夠正確引用c數組元素的是
A.p+1B.*(p+3)C.*(p+1)+3D.*(P[0]+2)
45.以下程序運行時若要正確輸出函數的入口地址和輸入數的絕對值,應在程序空缺處填入的正確選項是()。abs(intx){if(x>=0)returnx:elsereturn-x;}main(){inty,z,(*p)(intx)=abs;scanf("%d",&y);z=(*p)(y);______;}
A.printf("%d%d\n",&p,z)
B.printf("%d%d\n",p,z)
C.printf("%d%d\n",*p,z)
D.Printf("%d%d\n",p,*z)
46.對于下述程序,在方式串分別采用"wt"和"wb"運行時,兩次生成的文件TEST的長度分別是
#include<stdio.h>
voidmain()
{FILE*fp=fopen("TEST",);
fputc(′A′,fp);fputc(′\n′,fp);
fputc(′B′,fp);fputc(′\n′,fp);
fputc(′C′,fp);
fclose(fp);}
A.7字節、7字節B.7字節、5字節C.5字節、7字節D.5字節、5字節
47.下列程序輸出的結果是()。main(){inta;a=-4+4*5-6;printf(“%d”,a);a=4+4%5-6;printf(“%d”,a);a=-3+4%6/5;printf(“%d”,a);a=(7+6)%5/2;printf(“%d”,a);}
A.102-31B.10-221C.11-221D.10221
48.下面各選項中,均是C語言合法標識符的選項組是
A.33weautoB._23me_3ewC._433e_elseD.ER-DF32
49.下面對對象概念描述,不正確的是
A.任何對象都必須有繼承性B.對象是屬性和方法的封裝體C.對象間的通訊靠消息傳遞D.操作是對象的動態屬性
50.程序中若有如下說明和定義語句
charfun(char*);
main()
{
char*s="one",a[5]={0},(*f1)()=fun,ch;
……
}
以下選項中對函數fun的正確調用語句是
A.(*f1)(A);B.*f1(*s);C.fun(&A);D.ch=*f1(s);
51.在執行以下程序時,為了使輸出結果為t=4,給a和b輸入的值應該滿足的條件是_______。main(){ints,t,a,b;scanf("%d%d",&a,&B);s=1;t=1;if(a>0)s=s+1;if(a>B)t=s+t;elseif(a==B)t=5;elset=2*s;printf("t=%d\n",t);}
A.a>bB.a<b<0C.0<a<bD.0>a>b
52.定義結構體數組structstu{intnum;charname[20];}x[5]={1,"ZHAO",2,"QIAN",3,"SUN",4,"LEE",5,"ZHOU"};for(i=1;i<5;i++)printf("%d%c",x[i].num,x[i].name[2]);程序執行后的輸出結果是()。
A.2A3N4E5OB.1H2I3U4EC.1A2N3E4OD.1A2N3E4O
53.有下列二叉樹,對此二叉樹中序遍歷的結果為()。
A.BDYEACFXZB.DYBEAFCZXC.ABCDEFXYZD.ABDYECFXZ
54.以下程序的輸出結果是main(){intc=35;printf("%d\n",c&c);}
A.0B.70C.35D.1
55.下列能正確定義一維數組的選項是()。
A.inta[5]={0,1,2,3,4,5);
B.chara[]={0,1,2,3,4,5};
C.chara={'A','B','C'};
D.inta[5]="0123";
56.已定義ch為字符型變量,以下賦值語句中錯誤的是
A.ch='\';B.ch=62+3;C.ch=NULL;D.ch='\xaa';
57.當把4個表達式用做if語句的控制表達式時,有一個選項與其他3個選項含義不同,這個選項是()。
A.k%2B.k%2==1C.(k%2)!=0D.!k%2==1
58.以下選項中,與k==n++完全等價的表達式是()。
A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+1
59.下列敘述中不正確的是()。
A.在C語言中調用函數時,只能把實參的值傳送給形參,形參的值不能傳送給實參
B.在C的函數中,最好使用全局變量
C.外部變量可以在函數之間傳遞數據
D.自動變量實質上是一個函數內部的局部變量
60.下列程序中函數reverse()的功能是將a所指數組中的內容進行逆置。
#include<stdio.h>
voidreverse(inta[],ihtn)
{inti,t;
for(i=0;i<n/2;i++)
{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}
}
main()
{intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;
reverse(b,10);
for(i=0;i<3;i++)s+=b[i];
printf("%d\n",s);
}
程序運行后的輸出結果是()。
A.27B.6C.25D.30
四、選擇題(20題)61.
62.下面描述中,不屬于軟件危機表現的是()A.軟件過程不規范B.軟件開發生產率低C.軟件質量難以控制D.軟件成本不斷提高
63.
64.有以下程序:
程序運行后的輸出結果是()。
A.10,One*Dream!B.9,One*Dream!C.9,One*WorldD.10,One*World
65.在滿足實體完整性約束的條件下()。
A.一個關系中應該有一個或多個候選關鍵字
B.一個關系中只能有一個候選關鍵字
C.一個關系中必須有多個候選關鍵字
D.一個關系中可以沒有候選關鍵字
66.
有以下程序:
main
{intk=5;
while(--k)printf("%d",k-=3);
printf("\n");
}
執行后的輸出結果是()。
A.1B.2C.4D.死循環
67.
有以下計算公式
若程序前面已在命令中包含math.h文件,不能夠正確
計算上述公式的程序段是()。
A.if(x>=0)y=sqrt(x);elsey=sqrt(-x);
B.y=sqrt(x)if(x<0)y=sqrt(0x);
C.if(x>=O)y=sqrt(x);If(x<O)y=sqrt(0x);
D.y=sqrt(x>=0?x:0x);
68.
69.有以下程序:
程序運行后的輸出結果是()。
A.1,2,3,0,0,0,0,0,0,0,
B.1,2,3,1,2,3,0,0,0,0,
C.123,0,0,0,0,123,0,0,0,0,
D.1,2,3,0,0,1,2,3,0,0,
70.下述程序執行的輸出結果是()。
#include<stdio.h>
main()
{chara[2][4];,
strcpy(a。"are");strcpy(a[1],"you");
a[o][3]=&;
printf("%s\n",a);
}
A.are&you
B.you
C.are
D.&
71.下列敘述中正確的是()。
A.軟件交付使用后還需要進行維護
B.軟件一旦交付使用就不需要再進行維護
C.軟件交付使用后其生命周期就結束
D.軟件維護是指修復程序中被破壞的指令
72.層次型、網狀型和關系型數據庫的劃分原則是()。
A.記錄長度B.文件的大小C.聯系的復雜程度D.數據之間的聯系方式
73.
74.若有以下語句:typedefstructS{int9;charh;}T;以下敘述中正確的是()。
A.可用s定義結構體變量B.可用T定義結構體變量C.S是struct類型的變量D.T是structS類型的變量
75.有以下程序:
#include<stdio.h>
main()
{chara[5][10]={"one","tw0","three","four","five"};
inti,j;
chart:、
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(a[i][O]>a[j][0])
{t=a[i][O];a[i][O]=a[j][O];a[j][O]=t;)
puts(a[1]);
}
程序運行后的輸出結果是()。
A.fwo
B.fix
C.two
D.owo
76.
則下面對m數組元素的引用中錯誤的是()。
A.
B.
C.
D.
77.
78.
79.軟件詳細設計生產的圖如右圖:該圖是()。
A.N—S圖B.PAD圖C.程序流程圖D.E—R圖
80.URI的全稱是()。A.標準資源描述符B.標準資源標識符C.通用資源描述符D.統一資源標識符
五、程序改錯題(1題)81.下列給定程序中,函數fun()的功能是:計算函數F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x和y的值不相等,2和Y的值不相等。例如,當x的值為1,y的值為2,z的值為3時,函數值為2.O0。注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。試題程序:
六、程序設計題(1題)82.三個整數a、b、c,由鍵盤輸入,輸出其中最大的一個數。
參考答案
1.B
2.B解析:編譯時,編譯系統不為局部變量分配內存單元,而是在程序運行中,當局部變量所在的函數被調用時,編譯系統根據需要要臨時分配內存,調用結束空間釋放;全局變量一經定義,編譯系統為其分配固定的內存單元,在程序運行的自始至終都占用固定的單元。在考慮內存不定的情況下,最好使用全局變量。
3.A因為fun(intx)是一個遞歸函數。在主函數中fun(7)經過3次遞歸調用。其過程可以描述為fun(7)=7-fun(5)=7-(5*fun(3))=7*(5*(3*fun(1)))=7-(5-(3-3))=7-5=2。最后的輸出結果為2。故本題答案為A選項。
4.B解析:視圖設汁一般有3種設計次序,它們分別是自頂向下、自底向上和由內
向外,它們又為視圖設計提供了具體的操作方法,設計者可根據實際情況靈活掌握,可以
單獨使用也可混合使用。
注意:數據庫概念設計的過程:首先選擇局部應用,再進行局部視圖設計,最后
對局部視圖進行集成得到概念模式。
5.A根據C語言運算符的優先級與結合性,先計算a/b,結果為l,再將a/b的結果與C做按位與運算,即l與2做按位與運算,其結果為0。
6.B在一個C語言程序中可以實現多種算法,所以B選項錯誤。故本題答案為B選項。
7.A解析:C語言的字符常量是用單引號(即撇號)括起來的一個字符。除此之外,在C語言中還允許用以一個“\\”開頭的字符序列來表示字符常量。其中,形式“\\ddd”表示1到3位8進制數所代表的字符;形式“\\xhh”表示1到2位16進制數所代表的字符。在本題中‘\\x13’表示回車符,是一個字符常量;‘\\081’用\u30008進制數所代表的字符,但形式不正確,因為8進制數所表示的字符中不會出現數字“8”;‘65’不是一個字符,而是一個+進制數字;“\\n”是用雙引號括起來的一個字符,表示一個字符串,而不是字符常量。
8.C
9.D
10.Cscanf函數用于輸入數據。第1個參數表示輸入格式控制。本題變量a是double類型,使用格式控制符%If;變量b是float類型,使用%If;變量c是short類型,使用%hd,選項C正確。本題答案為C選項。
11.C在本題中,程序段首先定義了字符型指針變量p,并使其指向一個字符串,然后將指針變量p加3,即使其指向字符串的第四個元素。然后執行輸出語句,通過輸出語句的輸出格式我們可以知道,最后輸出的是一個十進制數的整型數值,其輸出列表為strlen(strcpy(P,″ABCD″))。這就要求我們了解strlen函數和strcpy函數的作用。
strcpy的調用格式是:strcpy(目的地址,源地址),其功能是把源地址的字符串復制到目的地址中,這種復制將覆蓋原來的字符串。strcat函數的功能是將源地址的字符串復制到目的地址字符串的后面。
strlen的調用格式是:strlen(字符串地址),其功能是返回字符串中字符的個數。
那么程序中執行strcpy(P,″ABCD″)后指針變量p所指向的字符串為“ABCD”,該字符串中字符的個數為4,那么執行strlen后,程序最終輸出的結果是4。因此本題正確的答案是C。
12.B解析:若有以下定義:inta[3][4],i,j;且當0<=i<3,0<=j<4,則可以有以下幾種方式來引用數組中的第i行,第j列的元素:a[i][j],*(a[i]+j),*(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j)。
13.B
14.C
15.C
16.A
17.C解析:解答本題,首先要明白在對指針進行加、減運算的時候,數字“1”不是十進制的數“1”,而是指'1'個存儲單元長度,而1個存儲單元長度占多少存儲空間,應該視具體情況而定。如果基本類型是int型,移動1個存儲單元的長度就是位移2個字節,如果基本類型是float型,移動1個存儲單元的長度就是位移4個字節。所以p+13所指向的數組元素的地址:300H+(13*上標)4)H=352H。
18.D
19.B
20.B
21.00解析:三目運算符的形式為(表達式1)?(表達式2):(表達式3)。當(表達式1)值為真時,返回(表達式2)的值;為假時,返回(表達式3)的值。題中因為x>12為假,所以結果為x-12,即為0。
22.1111解析:程序中結構體數組data首地址(即&data[0])賦值給結構體指針變量p,++(P->x)表示先將p所指向的結構體變量的成員x值加1,然后將此x(即data[0].x)輸出。
23.a+strlen(a)或strlen(a)+aa+strlen(a)或strlen(a)+a解析:要輸出suet就要將指針從字符串開始移動到字符串結尾,表達式p=a使p指向字符串的首地址;表達式p+=2使每次循環p值加2,是向前移動指針;空白處應判斷是否到達字符串結尾,因此應填字符串的首地址加字符串長度,strlen(a)的返回值為字符串a所含的字符個數。
24.fopen!feof(fp)fopen\r\n!feof(fp)解析:第一空從右邊的括號中可以看出,這里應該填入一個fopen,整條語句用來打開一個名為text.dat的文件。第二空是一個while循環的循環條件表達式,循環體每次讀取一個字符,并讓count增1,所以循環條件應該是“如果文件還沒結束”,故應該填!feof(fp)。
25.1919解析:二叉樹具有如下性質:在任意一棵二叉樹中,度為。的結點(即葉子結點)總是比度為2的結點多一個。根據題意,度為2的節點為18個,那么,葉子結點就應當是19個。
26.存儲結構
27.256
28.x[0]x[0]x[0],x[0]解析:函數f()通過for循環逐個比較數組x中的元素,循環結束后,p0和p1分別表示最大值和最小值在數組中的下標位置,然后按照題意將最大值x[p0]和數組的最后一個元素x[n-1]交換位置,再將最小值x[p1]和第一個元素(x[0])進行交換,所以空白處應該填入x[0]。
29.HOWHOW解析:在scanf()函數中,使用空格作為分隔符,如果輸入含有空格的字符串,則不能使用scanf()函數,所以本題中輸入空格就返回了'\\0',s數組也就確定了,后面的輸入就不再讀入數組s中。
30.a[i][j]+b[i][j]a[i][j]+b[i][j]解析:此題是雙重for循環結構應用在了二維數組中。外層for循環用來控制二維數組的行,內層for循環控制二維數組的列。
31.共享性共享性解析:數據庫系統中的數據能被不同的應用程序使用,實現了數據的高度共享,從而降低了數據的冗余,這也是數據庫的主要目的。32.s=0\r\n!='\\n'\r\nch-'0's=0\r\n!='\\n'\r\nch-'0'解析:按照題目的要求,s用于保存累加結果;while語句用于得到一個字符串,并以'\\n'結束;if語句用于判斷一個字符是否為數值型,如果是就將其累加至s中。
33.getchargetchar解析:考查了字符可以作為整型變量來對待,參與操作。題中要求根據輸入的字符調用函數YesNo來判斷輸入的字符是y(Y)還是n(N),字符的輸入可用字符輸入函數getchar。函數YesNo用來判斷一個字符是y(Y)還是n(N),主要用了一個switch多分支結構來比較輸入字符與字符\ue008'y',\ue009'Y'、,'n','N'是否相等來實現的。
34.pa[i]avg/n
35.43214321解析:靜態存儲類的局部變量其生存期為整個程序的運行期間,作用域卻只是定義它的函數或局部范圍。注意:局部變量和全局變量的作用域。
36.33解析:本題考查do…while語句形式:
do循環體
while表達式
首先執行循環體語句,然后檢測循環控制條件表達式的值,若為真,則重復執行循環體語句,否則退出循環。第1次循環:b+=2,b=2,a-=2+b,a=11;第2次循環:b=4,a=5;第3次循環:b=6,a=-3,此時再判斷循環條件不滿足,退出循環。
37.8141
38.投影投影解析:在關系模型的數據語言中,一般除了運用常規的集合運算,(并、交,差、笛卡爾積等)外,還定義了一些專門的關系運算,如投影、選擇、連接等。投影是從二維表的列方向上進行的運算。
39.1212解析:do…while循環的一個比較顯著的特點是:先執行一次循環體然后再判斷循環的條件是否滿足,若滿足則接著進入下一次循環,否則就退出循環。注意:3種循環結構的比較。
40.SOSO解析:考查用指針引用字符串數組中元素的方法。題中需要注意兩個問題:一是for循環的修正表達式共執行兩次'i--'操作;二是*p[i]是對某個字符的引用。
41.C解析:對象的基本特點包括;標識惟一性、分類性、多態性、封裝性和獨立性等。繼承性不屬于對象的基本特點。
42.B解析:內模式(InternalSchemA)又稱物理模式(PhysicalSchemA),它給出了數據庫物理存儲結構與物理存取方法,如數據存儲的文件結構、索引、集簇及hash等存取方式與存取路徑。數據庫系統的數據具有高共享性和低冗余性,但不能完全避免數據冗余;數據的一致性是指在系統中同一數據的不同出現應保持相同的值。
43.D
44.D解析:本題中定義了一個二維數組c和一個指針數組p并初始化讓它指向c,顯然此時p中的各元素為地址,選項A中p+1,此時其中的1代表的長度是整個;維數組c的長度,故p+1將讓p指向c數組后面的元素,故不能引用c數組中的成員,故選項A錯誤;同理選項B和選項C都不正確,選項D中p[0]指的是指針數組中的第一個元素的地址即c的首地址,此時的1的長度代表的是數組c中一行的長度,故p[0]+2代表的是第三行的首地址,而*(p[0]+2)將代表第三行的第一個元素的地址,所以,4個選項中選項D符合題意。
45.B解析:可以使用函數指針來調用函數。調用形式為:(*指針變量)(實參表列)。注意:調用函數和被調用函數之間的數據傳遞。
46.B解析:以'wt'方式寫入的是字符文件,轉義字符\'\\n\'被看作兩個字符來處理。而'wb'方式寫入的是二進制文件,轉義字符\'\\n\'是一個字符。
47.A解析:本題考查%和/運算符的使用。如果兩個數不能整除,只取結果的整數部分,小數部分全部舍去。運算符“%”要求兩個運算對象都為整型,其結果是整數除法的余數。表達式:a=-4+4*5-6=4+20-6=10:表達式:a=4+4%5-6=4+4-6=2;表達式:a=-3+4%6/5=-3+0=-3:表達式:a=(7+6)%5/2=13%5/2=1。
48.B解析:合法的標識符是由字母、數字和下劃線組成,并且第一個字符必須為字母或下劃線,用戶定義的標識符不能與關鍵字相同。選項A),數字不能為第一個字母,auto為關鍵字;選項C)中,也是數字不能為第一個字母,else為關鍵字;選項D)中負號不合法。
49.A解析:有時為了保護某些特有的對象,可以通過定義其為私有屬性達到不被繼承的目的。
50.A解析:函數fun()的參數為指針類型,返回值為字符型,而選項B、C的參數不是指針類型,所以不正確,選項D中,*fl(s)表示返回值為指針的函數,所以也不正確。
51.C解析:要使輸出結果為t=4,必須要執行elset=2*s;和if(a>b)t=s+t;語句。如果執行if(a>b)t=s+t;語句,則條件為a>b,要求s=3,在該語句前面的語句中沒有條件可以滿足s=3;如果孰行elset=2*s;語句,則條件為a<b,要求s=2,需要執行if(a>0)s=s+1;語句,所以應滿足條件0<a<b。
52.A
53.B對二叉樹的中序遍歷是指:首先遍歷左子樹,然后訪問根結點,最后遍歷右子樹。在遍歷左、右子樹時,注意依舊按照“左子樹一根結點一右子樹”的順序。本題的遍歷順序是這樣的:①首先訪問左予樹:BDEY;②在左子樹BDEY中,也按中序遍歷,先訪問左子樹DY;在左子樹DY中,也按中序遍歷,先訪問左子樹,左子樹沒有,則訪問根結點D,然后訪問右子樹Y;③接著訪問根B,再訪問右子樹E;④訪問左子樹BDEY后,接著訪問根結點A,接著訪問右子樹CFXZ;⑤右子樹CFXZ的訪問順序同理可得:FCZX。
54.C解析:本題考查按位與“&”。因為1&1=1,0&0=0,所以任何數與自身按位與,結果仍為此數,不發生變化。
55.B解析:在定義數組時,如果賦給的初始值個數大于數值的長度,這樣就會越界,因此選項A)錯誤;選項C)中定義的是一個字符變量C:選項D)中整型數組a中只能存儲整型數據,而不能存儲字符串常量“0123”。
56.A解析:字符型變量用來存放字符常量,且只能存放一個字符。賦值反斜杠線“\\”,必須用轉義字符實現,即ch='\\\\',所以選項A)錯誤;字符型變量可以賦0~255之間的ASCII碼值,整型數據和字符型數據有時可以通用,所以選項B)正確;可以將NULL賦給一個字符型變量,NULL代表一個空字符,相當于0,選項C)正確;'\\xaa'表示的是1~2位16進制數所代表的字符,所以選項D)正確。
57.A整數k對2求余數的兩個結果只能是0和1,所以選項A)表示k除以2的余數,其結果是0或1。在選項B)、c)和D)中包括算術求余運算符“%”,關系等于運算符“-”和關系不等于運算符“!=”以及邏輯非運算符“!”。而邏輯運算符與賦值運算符、算術運算符、關系運算符之間從高到低的運算優先次序是:!(邏輯“非”)、算術運算符、關系運算符、(邏輯“與”)、?(邏輯“或”)、賦值運算符。選項B)含義是判斷表達式k%2的結果是否等于1、選項C)的含義是判斷表達式k%2的結果是否不等于0,選項D)含義是判斷表達式!k%2的結果是否等于1,所以選項B)、C)和D)的禽義相同。
58.A解析:在本題中k=n++,為后綴運算。根據其運算規則,首先n先加一,但n++表達式的值依然為n原來的值,即k的值變為n加1之前的值。選項A中先給k賦值為n,然后n再加1,k值沒有變化,所以這個表達式和本題中表達式等價;選項B中先n加1,然后將n加1后的值賦給k,所以這個表達式和本題中表達式不等價:選項C中先計算表達式++n的值,執行++n后,k變為n加1后的值,所以這個表達式和題目中的表達式不等價;選項D中表達式展開為k=k=(n+1),k被累加,所以這個表達式和題目中的表達式不等價。所以4個選項中A正確。
59.B解析:編譯時,編譯系統不為局部變量分配內存單元,而是在程序運行中,當局部變量所在的函數被調用時,編譯系統根據需要要臨時分配內存,調用結束空間釋放;全局變量一經定義,編譯系統為其分配固定的內存單元,在程序運行的自始至終都占用固定的單元。在考慮內存不定的情況下,最好使用全局變量。
60.A解析:本題考查函數調用時的參數傳遞。函數reverse將數組b進行了逆置,此時的b[10]={10,9,8,7,6,5,4,3,2,1},后面for語句的功能是將b中的前3個數累加,將結果放在s中,最后將s輸出,結果s=10+9+8=27。
61.D
62.A軟件危機主要表現在:軟件需求的增長得不到滿足;軟件開發成本和進度無法控制;軟件質量難以保證;軟件不可維護或維護程度非常低;軟件的成本不斷提高;軟件開發生產率的提高趕不上硬件的發展和應用需求的增長。所以選擇A。
63.A
64.AP是指向二維字符數組第二行One+Dream!的數組指針,所以長度是10,打印輸出的也是該字符串。
65.A【答案】:A
【知識點】:實體完整性與候選關鍵字
【解析】:在滿足數據完整性約束的條件下,一個關系可以有一個或多個候選關鍵字,但至少有一個候選關鍵字,故選A。
66.A解析:因為在while循環的循環條件中,一運算符是前綴形式,所以表達式—k的值是k自減之后的值。程序開始時,將k的值初始化為5,然后進入while循環,因為—k的值為4(非零),所以執行循環體輸出k-=3的值1,此時k的值也變為1。第2次執行循環條件,—k的值為0,所以循環結束。因此最后輸出的結果是1,故應該選擇A。
67.B
\n選項A、C、D分別用一個ifelse語句、兩個if語句和條件表達式表達了計算公式的含義。
\n
68.A
69.D本題考查文件操作函數,兩次fwrite后,幣文件中已經寫入l,2,3,O,0,l,2,3,0,0然后將文件幣中的內容重新寫人數組a中,最后輸出a為1。2,3,0,0,1,2,3,0,0,所以選項D正確。
70.A\nstrcpy實現的功能是復制,該操作把are復制到a中,aE03E33一’&’,且strcpy(aEl],'you')把you復制到a[l]中,故輸出a為“are&you”。
\n
71.A解析:維護是軟件生命周期的最后一個階段,也是持續時間最長、付出代價最大的階段。軟件工程學的目的就在于提高軟件的可維護性,同時也要設法降低維護的代價。
軟件維護通常有以下四類;
①為糾正使用中出現的錯誤而進行的改正性維護;
②為適應環境變化而進行的適應性維護;
③為改進原有軟件而進行的完善性維護;
④為將來的可維護和可靠而進行的預防性維護。
軟件維護不僅包括程序代碼的維護,還包括文檔的維護。文檔可以分為用戶文檔和系統文檔兩類。但無論是哪類文檔,都必須與程序代碼同時維護。只有與程序代碼完全一致的文檔才有意義和價值。由此可知,本題中選項B、C、D中的說法都是錯誤的。
72.D層次模型的基本結構是樹形結構,網狀模型是一個不加任何條件限制的無向圖,關系模型采用二維表來表示,因此三種數據庫的劃分原則是數據之間的聯系方式,選項D)正確。
73.D
74.B本題考查typledef重新聲明一種結構體類型,那么T為結構體類型,而不是結構體變量,所以B選項正確。
75.A\nFor循環完成的功能是把二維數組a的第一列的字母按從小到大排序,其他列的字母不變。
\n
76.C數組m下標從0到4計算,共5個元素,選項c)中m[0]=5,則m[m[0]]為m[5],超出了數組m的下標范圍。因此正確答案為C)。
77.D
78.D
79.CN—s圖提出了用方框圖來代替傳統的程序流程圖,所以A不對。PAD圖是問題分析圖,它是繼承程序流程圖和方框圖之后提出的又一種主要用于描述軟件詳細設計的圖形表示工具,所以8不對。E—R圖是數據庫中的用于表示E—R模型的圖示工具,所以D不對。根據圖中所示表示方法是進行軟件詳細設計時使用的程序流程圖。
80.D
81.(1)錯誤:#defineF(m,n)(m/n)
正確:#defineF(m,n)(m)/(n)
(2)錯誤:Return(s);
正確:return(s);
【解析】程序中函數的功能是計算題目中給出的公式值,第一個標識:fun()函數兩次調用宏F來計算“s=F((a+b),(a-
82.\n\tmain
\n{inta,b,c;
\nprintf(“請輸入三個整數:”);
\nscanf(“%d,%d,%d”,&a,&b,&c);
\nif(aif(belseprintf(“max=%d\\n”,b);
\nelseif(aelseprintf(“max=%d\\n”,a);}
\n2022-2023年山東省菏澤市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.
2.下列敘述中不正確的是()。
A.在C語言中調用函數時,只能把實參的值傳送給形參,形參的值不能傳送給實參
B.在C的函數中,最好使用全局變量
C.外部變量可以在函數之間傳遞數據
D.自動變量實質上是一個函數內部的局部變量
3.有以下程序:#include<stdio.h>intfun(intx){intp;if(x==0||x==1)return(3);p=x-fun(x-2);returnp;}main(){printf(“%d\n”,fun(7));}程序的運行結果是()。A.2B.3C.7D.0
4.視圖設計一般有3種設計次序,下列不屬于視圖設計的是______。
A.自頂向下B.由外向內C.由內向外D.自底向上
5.有以下程序:#include<stdio.h>main(){inta=2,b=2,C=2;print{("%d\n",a/b&c);}程序運行后的輸出結果是()。A.0B.1C.2D.3
6.下列敘述中錯誤的是()。
A.C程序可以由多個程序文件組成
B.—個C語言程序只能實現一種算法
C.C程序可以由一個或多個函數組成
D.—個C語言函數可以單獨作為一個C語言程序文件存在
7.以下合法的字符型常量是A.B.C.D.
8.下面哪個不是用來解決哈希表沖突的開放地址法()
A.線性探測法B.線性補償探測法C.拉鏈探測法D.隨機探測法
9.若在線性表中采用折半查找法查找元素,該線性表應該()。
A.元素按值有序B.采用順序存儲結構C.元素按值有序,且采用鏈式存儲結構D.元素按值有序,且采用順序存儲結構
10.若有定義“doublea;floatb;shortc;”,若想把1.2賦給變量a,3.4賦給變量b,5678賦給變量c,程序運行時鍵盤輸入:1.23.45678<回車>則以下正確的讀入語句是()。A.scanf("%If%If%d",&a,&b,&c);
B.scanf("%If%If%hd",&a,&b,&c);
C.scanf("%If%f%hd",&a,&b,&c);
D.scanf("%f%f%d",&a,&b,&c);
11.下面程序段的運行結果是char*p="abcdefgh";p+=3;printf("%d\n",strlen(strcpy(p,"ABCD")));
A.8B.12C.4D.7
12.下列程序的輸出結果是
#include"stdio.h"
#defineN3
#defineM3
voidfun(inta[M][N])
{printf("%d\n",*(a[1]+2));}
main()
{inta[M][N];
inti,j;
for(i=0;i<M;i++)
for(j=0;j<N;j++)
a[i][j]=i+j-(i-j);
fun(a);}
A.3B.4C.5D.6
13.某二叉樹的前序和后序序列正好相反,則該二叉樹一定是_____的二叉樹
A.空或者只有一個結點B.高度等于其結點數C.任一結點無左孩子D.任一結點無右孩子
14.算法的時間復雜度取決于()
A.問題的規模B.待處理數據的初態C.A和B
15.設有一個棧,元素依次進棧的順序為A、B、C、D、E。下列()是不可能的出棧序列。
A.A,B,C,D,EB.B,C,D,E,AC.E,A,B,C,DD.E,D,C,B,A
16.
17.若有定義floata[15],*p=a;,且數組a的首地址為300H,則p+13所指向的數組元素的地址為()。
A.334HB.30DHC.352HD.31AH
18.第
27
題
有一堆零件(100到200之間),如果分成4個零件一組的若干組,則多2個零件;若分成7個零件一組,則多3個零件;若分成9個零件一組,則多5個零件。下面程序是求這堆零件總數,請選擇填空。
#include<stdio.h>
main()
{inti;
for(i=100;i<200;i++)
if((i-2)%4==0)
if(!((i-3)%7))
if(_______)
printf("%d",i);
}
A.i%9=5B.i%9!=5C.(i-5)%9!=0D.(i-5)%9==0
19.以下不正確的定義語句是A.A.doublex[5]={2.0,4.0,6.0,8.0,10.0};
B.inty[5.3]={0,1,3,5,7,9};
C.charc1[]={′1′,′2′,′3′,′4′,′5′};
D.charc2[]={′\x10′,′\xa′,′\x8′};
20.一個遞歸算法必須包括()。
A.遞歸部分B.終止條件和遞歸部分C.迭代部分D.終止條件和迭代部分
二、2.填空題(20題)21.若運行時給變量x輸入12,則以下程序的運行結果是【】;
main(){
intx,y;
scanf(""%d"",&x);
y=x>12?x+10:x-12;
printf(""%d\n"",y);
}
22.下列程序執行后輸出的結果是【】。
structs
{intx,y;}data[2]={10,100,20,200};
main()
{
structs*p=data;
printf("%d\n",++(p->x));
}
23.執行下面程序段時輸出suet,請填空。
main()
{staticchara[]="student";
char*p;
for(p=a;p<【】;p+=2)
putchar(*p);
}
24.下面程序的功能是用來統計文件中字符個數。請填空。
#include"stdio.h"
main()
{longcount=OL;
FILE*fp=【】("text.dat","r");
if(fp==0)
{printf("Openerror\n");
exit(0);
}
while(【】)
{
fgetc(fp);
count++;
}
fclise(fp);
printf("%1d\n",count);
}
25.某二義樹中度為2的結點有18個,則該二叉樹中有______個葉子結點。
26.數據結構分為邏輯結構與存儲結構,線性鏈表屬于【】。
27.十六進制數100轉換成十進制數為【】。
28.以下程序中函數f的功能是在數組x的n個數(假定n個數互不相同)中找出最大最小數,將其中最小的數與第一個數對換,把最大的數與最后一個數對換。請填空。
#include<stdio.h>
voidf(intx[],intn)
{intp0,p1,i,j,t,m;
i=j=x[0];p0=p1=0;
for(m=0;m<n;m++)
{if(x[m]>i){i=x[m];p0=m;}
elseif(x[m]<j){j=x[m];p1=m;}
}
t=x[p0];x[p0]=x[n-1];x[n-1]=t;
t=x[p1];x[p1]=【】;【】=t;
}
main()
{inta[10],u;
for(u=0;u<10;u++)scanf("%d",&a[u]);
f(a,10);
for(u=0;u<10;u++)printf("%d",a[u]);
printf("\n");
}
29.下列程序運行后的輸出的結果是______。
#include<stdio.h>
main()
{chars[20];
scanf("%s",s);
printf("%s",s);
}
運行程序,輸入HOWAREYOU。
30.以下程序是求矩陣a,b的和,結果存入矩陣c中,并按矩陣形式輸出,請填空。
#include<stdio.h>
main()
{inta[3][4]={13,-2,7,5},{1,0,4,-3},{6,8,0,2}};
intb[3][4]={{-2,0,1,4},{5,-1,7,6},{6,8,0,2}};
inti,j,c[3][4];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
c[i][j]=【】;
for(i=0;i<3;i++)
{for(j=0;j<4;j++)
printf("%3d",c[i][j]);
printf("\n");}}
31.數據庫系統的主要特點為數據集成性、數據的高______和低冗余性、數據獨立性和數據統一管理和控制。
32.以下程序的功能是:對輸入的一行字符串的數字字符按它們的字面值累加,輸出此累加和。例如,輸入一行字符是:ab34dh8u,輸出值應當是15。請填空。
#include<stdio.h>
#include<ctype.h>
main()
{charch;inta,s;
【】;
while((ch=getchar())【】)
if(isdigit(ch))
{a=【】;s+=a;}
printf("s=%d\n\n",s);}
33.以下程序的功能是根據輸入的"y"("Y")與"n"("N"),在屏幕上分別顯示出"ThisisYES."與"ThisisNO."。空白處需要填入的內容是
#include<stdio.h>
voidYesNo(charch)
{switch(ch)
{case′y′:
case′Y′:printf("\nThisisYES.\n");
case′n′:
case′N′:printf("\nThisisNO.\n");}
main()
{charch;
printf("\nEnterachary,Yorn,N:");
ch=【】;
printf("ch;%c",ch);
YesNo(ch);}
34.下面的程序通過函數average計算數組中各元素的平均值,請填空。
floatavetage(int*pa,intn)
{inti;
floatavg=0.0;
for(i=0;i<n;i++);
avg=avg+【】;avg=【】;
returnavg;
}
main()
{inti,a[5]={2,4,6,8,10,};
floatmean;
prinf("%mean=%f\n",mean);
}
35.以下程序的輸出結果是【】。
#include<stdio.h>
main()
{ints[]={1,2,3,4},i;
intx=0;
for(i=0;i<4;i++)
{x=sb(s,x);
printf("%d",x);}
printf("\n");}
sb(s1,y)
int*s1,y;
{staticinti1=3;
y=s1[i1];
i1--;
return(y);}
36.下列程序段中循環體的執行次數是______。
a=15;
b=0;
do{b+=2;a-=2+b;}while(a>=0);
37.下列程序的運行結果為【】。
main()
{intx=2,y,z;
x*=3+1;
printf("%d,",x++);
x+=y=z=5;
printf("%d,",x);
K=y==Z;
printf{"%d\n",x);
}
38.【】是從二維表列的方向進行的運算。
39.下面程序的輸出結果是【】。
unsignedfun6(unsignednum)
{unsignedk=1;
do{k*=hum%10;
num/=10;}while(num);
return(k);}
main()
{unsignedn=26;
printf("%d\n",fun6(n));}
40.以下程序的輸出結果是【】。
main()
{char*p[]={"BOOL","OPK","H","SP"};
inti;
for(i=3;i>0;i--,i--)printf("%c",*p[i]);
printf("\n");}
三、1.選擇題(20題)41.以下不屬于對象的基本特點的是()
A.分類性B.多態性C.繼承性D.封裝性
42.索引屬于()。
A.模式B.內模式C.外模式D.概念模式
43.進行二分法查找,則線形表______。
A.必須以順序方式存儲
B.必須以鏈接方式存儲,且數據元素已按值排好序
C.必須以鏈接方式存儲
D.必須以順序方式存儲,且數據元素已按值排好序
44.若有以下說明和語句intc[4][5],(*p)[5];p=c;能夠正確引用c數組元素的是
A.p+1B.*(p+3)C.*(p+1)+3D.*(P[0]+2)
45.以下程序運行時若要正確輸出函數的入口地址和輸入數的絕對值,應在程序空缺處填入的正確選項是()。abs(intx){if(x>=0)returnx:elsereturn-x;}main(){inty,z,(*p)(intx)=abs;scanf("%d",&y);z=(*p)(y);______;}
A.printf("%d%d\n",&p,z)
B.printf("%d%d\n",p,z)
C.printf("%d%d\n",*p,z)
D.Printf("%d%d\n",p,*z)
46.對于下述程序,在方式串分別采用"wt"和"wb"運行時,兩次生成的文件TEST的長度分別是
#include<stdio.h>
voidmain()
{FILE*fp=fopen("TEST",);
fputc(′A′,fp);fputc(′\n′,fp);
fputc(′B′,fp);fputc(′\n′,fp);
fputc(′C′,fp);
fclose(fp);}
A.7字節、7字節B.7字節、5字節C.5字節、7字節D.5字節、5字節
47.下列程序輸出的結果是()。main(){inta;a=-4+4*5-6;printf(“%d”,a);a=4+4%5-6;printf(“%d”,a);a=-3+4%6/5;printf(“%d”,a);a=(7+6)%5/2;printf(“%d”,a);}
A.102-31B.10-221C.11-221D.10221
48.下面各選項中,均是C語言合法標識符的選項組是
A.33weautoB._23me_3ewC._433e_elseD.ER-DF32
49.下面對對象概念描述,不正確的是
A.任何對象都必須有繼承性B.對象是屬性和方法的封裝體C.對象間的通訊靠消息傳遞D.操作是對象的動態屬性
50.程序中若有如下說明和定義語句
charfun(char*);
main()
{
char*s="one",a[5]={0},(*f1)()=fun,ch;
……
}
以下選項中對函數fun的正確調用語句是
A.(*f1)(A);B.*f1(*s);C.fun(&A);D.ch=*f1(s);
51.在執行以下程序時,為了使輸出結果為t=4,給a和b輸入的值應該滿足的條件是_______。main(){ints,t,a,b;scanf("%d%d",&a,&B);s=1;t=1;if(a>0)s=s+1;if(a>B)t=s+t;elseif(a==B)t=5;elset=2*s;printf("t=%d\n",t);}
A.a>bB.a<b<0C.0<a<bD.0>a>b
52.定義結構體數組structstu{intnum;charname[20];}x[5]={1,"ZHAO",2,"QIAN",3,"SUN",4,"LEE",5,"ZHOU"};for(i=1;i<5;i++)printf("%d%c",x[i].num,x[i].name[2]);程序執行后的輸出結果是()。
A.2A3N4E5OB.1H2I3U4EC.1A2N3E4OD.1A2N3E4O
53.有下列二叉樹,對此二叉樹中序遍歷的結果為()。
A.BDYEACFXZB.DYBEAFCZXC.ABCDEFXYZD.ABDYECFXZ
54.以下程序的輸出結果是main(){intc=35;printf("%d\n",c&c);}
A.0B.70C.35D.1
55.下列能正確定義一維數組的選項是()。
A.inta[5]={0,1,2,3,4,5);
B.chara[]={0,1,2,3,4,5};
C.chara={'A','B','C'};
D.inta[5]="0123";
56.已定義ch為字符型變量,以下賦值語句中錯誤的是
A.ch='\';B.ch=62+3;C.ch=NULL;D.ch='\xaa';
57.當把4個表達式用做if語句的控制表達式時,有一個選項與其他3個選項含義不同,這個選項是()。
A.k%2B.k%2==1C.(k%2)!=0D.!k%2==1
58.以下選項中,與k==n++完全等價的表達式是()。
A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+1
59.下列敘述中不正確的是()。
A.在C語言中調用函數時,只能把實參的值傳送給形參,形參的值不能傳送給實參
B.在C的函數中,最好使用全局變量
C.外部變量可以在函數之間傳遞數據
D.自動變量實質上是一個函數內部的局部變量
60.下列程序中函數reverse()的功能是將a所指數組中的內容進行逆置。
#include<stdio.h>
voidreverse(inta[],ihtn)
{inti,t;
for(i=0;i<n/2;i++)
{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}
}
main()
{intb[10]={1,2,3,4,5,6,7,8,9,10};inti,s=0;
reverse(b,10);
for(i=0;i<3;i++)s+=b[i];
printf("%d\n",s);
}
程序運行后的輸出結果是()。
A.27B.6C.25D.30
四、選擇題(20題)61.
62.下面描述中,不屬于軟件危機表現的是()A.軟件過程不規范B.軟件開發生產率低C.軟件質量難以控制D.軟件成本不斷提高
63.
64.有以下程序:
程序運行后的輸出結果是()。
A.10,One*Dream!B.9,One*Dream!C.9,One*WorldD.10,One*World
65.在滿足實體完整性約束的條件下()。
A.一個關系中應該有一個或多個候選關鍵字
B.一個關系中只能有一個候選關鍵字
C.一個關系中必須有多個候選關鍵字
D.一個關系中可以沒有候選關鍵字
66.
有以下程序:
main
{intk=5;
while(--k)printf("%d",k-=3);
printf("\n");
}
執行后的輸出結果是()。
A.1B.2C.4D.死循環
67.
有以下計算公式
若程序前面已在命令中包含math.h文件,不能夠正確
計算上述公式的程序段是()。
A.if(x>=0)y=sqrt(x);elsey=sqrt(-x);
B.y=sqrt(x)if(x<0)y=sqrt(0x);
C.if(x>=O)y=sqrt(x);If(x<O)y=sqrt(0x);
D.y=sqrt(x>=0?x:0x);
68.
69.有以下程序:
程序運行后的輸出結果是()。
A.1,2,3,0,0,0,0,0,0,0,
B.1,2,3,1,2,3,0,0,0,0,
C.123,0,0,0,0,123,0,0,0,0,
D.1,2,3,0,0,1,2,3,0,0,
70.下述程序執行的輸出結果是()。
#include<stdio.h>
main()
{chara[2][4];,
strcpy(a。"are");strcpy(a[1],"you");
a[o][3]=&;
printf("%s\n",a);
}
A.are&you
B.you
C.are
D.&
71.下列敘述中正確的是()。
A.軟件交付使用后還需要進行維護
B.軟件一旦交付使用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- KPI指標的建立和分解
- DEVLON戴維龍產品資料
- GRB的突發伽瑪射線暴來自共振逆康普頓散射機制
- C語言第5章循環結構程序設計
- CAD圖形標注方法簡介
- ECNIS多焦點人工晶體ZMA
- 吸痰法操作常見并發癥
- 2026年汽車設計師《汽車規劃》真題試卷
- 心理病房環境安全檢查
- 2026年財管《戰略分析》模擬卷
- 2025江西撫州市城市建設集團有限公司擬聘用人員(人才引培)筆試歷年難易錯考點試卷帶答案解析
- 兒童肺炎支原體肺炎診療指南(2025年版)
- MTT 146-2025 樹脂錨桿標準
- 舒馬普坦萘普生鈉片-臨床藥品應用解讀
- 文書模板-申請網上通緝申請書
- 展館安全總結講解
- 宮外孕超聲診斷
- 贈予林地協議書模板
- 國際胰腺病學會急性胰腺炎修訂指南(2025年)解讀課件
- 銷售領導力培訓課件
- 家用空氣凈化器除異味寵物適配推廣方案
評論
0/150
提交評論