




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2021-2022年河北省張家口市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.數(shù)據(jù)庫管理系統(tǒng)DBMS中用來定義模式、內模式和外模式的語言為()。
A.CB.BasicC.DDLD.DML
2.對于函數(shù)聲明“voidfun(intarray[4],int*ptr);”,以下敘述中正確的是()。
A.array、ptr都是指針變量
B.調用fun函數(shù)時,實參的值將逐一復制給array
C.調用fun函數(shù)時,array按值傳送,ptr按地址傳送
D.array是數(shù)組,ptr是指針,它們的性質不同
3.若在以下定義和賦值語句,則才s數(shù)組的第i行第j列(假設i,j已正確說明并賦值)元素地址的合法引用為ints[2][3]={0},(*p)[3];p=s;
A.*(*(p+i)+j)B.*(p[i]+j)C.(p+i)+jD.(*(p+i))[j]
4.在結構化方法中,軟件功能分解屬于下列軟件開發(fā)中的階段是______。
A.詳細設計B.需求分析C.總體設計D.編程調試
5.以下敘述中錯誤的是()。
A.c語言是一種結構化程序設計語言
B.使用三種基本結構構成的程序只能解決簡單問題
C.結構化程序設計提倡模塊化的設計方法
D.結構化程序由順序、分支、循環(huán)三種基本結構組成
6.設有以下語句,其中不是對a數(shù)組元素的正確引用的是:_____(其中0≤i<10)inta[10]={0,1,3,4,5,6,7,8,9,},*p=a;
A.a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i))
7.有以下程序段當執(zhí)行上述程序段,從鍵盤上輸A,555667777123后,y的值為()。
A.566.0B.55566.0C.7777.0D.566777.0
8.
有以下程序:
main
{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,
12,},{13,14,15,16}},i,j;
for(i=0;i<4;i++)
{for(j=0;j<i;j++)printf("%4c",);
for(j=________;J<4;j++)printf("%4d",num
[i][j]);
printf("\n");}}
若要按以下形式輸出數(shù)組右上半三角
1234
678
1112
16
則在程序下劃線處應填入的是()。
A.i-1B.iC.i+1D.4一i
9.以下敘述中錯誤的是()。
A.改變函數(shù)形參的值,不會改變對應實參的值
B.函數(shù)可以返回地址值
C.可以給指針變量賦一個整數(shù)作為地址值
D.當在程序的開頭包含文件stdi0.h時,可以給指針變量賦NULL
10.
11.對于靜態(tài)表的順序查找法,若在表頭設置監(jiān)視哨,則正確的查找方式為()A.從第0個元素往后查找該數(shù)據(jù)元素
B.從第1個元素往后查找該數(shù)據(jù)元素
C.從第n個元素往開始前查找該數(shù)據(jù)元素
D.與查找順序無關
12.若有如下程序:main(){inta=0,t=0;while(!a!=0)t+=a++;printf("%d,%d\n",t,A);}則程序運行后的輸出結果是()
A.0,1B.1,0C.0,0D.1,1
13.設計軟件結構是在軟件生命周期的()。
A.軟件定義期B.軟件開發(fā)期C.軟件維護期D.以上3個都不是
14.在16位IBM-PC機上使用C語言,若有如下定義structdata{inti;charch;doublef;}b;則結構變量b占用內存的字節(jié)數(shù)是
A.1B.2C.7D.11
15.有以下程序(strcat函數(shù)用于連接兩個字符串):#include<stdio.h>#include<string.h>main(){chara[20]=“ABCD\0EFG\0”,b[]=“UK”;strcat(a,b);printf(“%s\n”,a);}程序的運行結果是()。
A.UKB.ABCDE\0FG\0UKC.ABCDUKD.EFGUK
16.有以下程序
#include<stdio.h>
main()
{structnode{intn;structnode*next;}*p;
structnodex[3]={{2,x+1},{4,x+2},{6,NULL}};
p=x:
printf("%d,",p->n);
printf("%d\n",P->next->n);
}
程序運行后的輸出結果是A.A.2,3B.2,4C.3,4D.4,6
17.下列敘述中正確的是A.為了建立一個關系,首先要構造數(shù)據(jù)的邏輯關系
B.表示關系的二維表中各元組的每一個分量還可以分成若干數(shù)據(jù)項
C.一個關系的屬性名表稱為關系模式
D.一個關系可以包括多個二維表
18.若在線性表中采用折半查找法查找元素,該線性表應該()A.元素按值有序B.構采用順序存儲結C.元素按值有序且采用順序存儲結構D.元素按值有序且采用鏈式存儲結構
19.有以下程序:#include<stdio.h>#defineN4voidfun(inta[][N],intb[]){inti;for(i=0;i<N;i++)b[i]=a[i][i]-a[i][N-1-i];}main(){intx[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N],i;fun(x,y);for(i=0;i<N;i++)printf(“%d”,y[i]);printf(“\n”);}程序的運行結果是()。
A.-3,-1,1,3,B.-12,-3,0,0,C.0,1,2,3,D.-3,-3,-3,-3,
20.一個序列中有10000個元素,若只想得到其中前10個最小元素,最好采用_______方法
A.快速排序B.堆排序C.插入排序D.二路歸并排序
二、2.填空題(20題)21.已定義charch="$";inti=1,j;執(zhí)行j=!ch&&i++以后,i的值為()。
22.以下程序運行后的輸出結果是【】。
#defineS(x)4*x*x+1
main()
{inti=6,j=8;
printf("%d\n",S(i+j));
}
23.以下程序運行后的輸出結果是【】。
main()
{inti,j,a[][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)a[j][i]=0;
for(i=0;i<3;i++)
{for(j=0;j<3;j++)printf("%d",a[i][j]);
printf("\n");
}
}
24.隊列是限定在表的一端進行插入和在另一端進行刪除操作的線性表。允許插入的一端稱作______。
25.以下程序運行后的輸出結果是______。
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);
}
26.關系模型的完整性規(guī)則是對關系的某種約束條件,包括實體完整性、______和自定義完整性。
27.結構化分析方法是面向______進行分析的方法。
28.以上程序運行后的輸出結果是【】。
main()
{inti=10,j=0;
do
{j=j+i;i-;}
while(i>2);
printf("%d\n",j);
}
29.有以下程序
#include<stdio.h>
main()
{charch1,ch2;intn1,n2;
ch1=getchar();ch2=getchar();
n1=ch1-'()';n2=n1*10+(ch2-'()');
printf("%d\n",n2);
}
程序運行時輸入:12<回車>,執(zhí)行后輸出結果是【】。
30.算法的復雜度主要包括時間復雜度和______復雜度。
31.下列程序執(zhí)行后輸出的結果是【】。
main()
{intarr[10],i,k=0);
fot(i=0;i<10;i++)art[i]=i;
for(i=1:i<4;i++)k+=arr[i]+i;
printf("%d\n",k);
}
32.下列程序的功能是:求出ss所指字符串中指定字符的個數(shù),并返回此值。例如,若輸入字符串123412132,輸入字符1,則輸出3,請?zhí)羁铡?include<conio.h>#include<stdio.h>#defineM81intfun(char*ss,charC){inti=0;for(;();ss++)if(*ss==C)i++;returni;}main(){chara[M],ch;printf("\nPleaseenterastring:");gets(A);printf("\nPleaseenterachar:");ch=getchar();printf("\nThenumberofthecharis:%d\n",fun(a,ch));}
33.在兩種基本測試方法中,【】測試的原則之一是保證所測模塊中每一個獨立路徑至少要執(zhí)行一次。
34.數(shù)據(jù)結構分為邏輯結構和存儲結構,循環(huán)隊列屬于______結構。
35.以下程序運行后的輸出結果是______。
main()
{
inta[4]]4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};
inti=0.j=0,s=0;
while(i++<4}
if(i==2||i==4)continue;
j=0;
do
{
s+=a[i][j]:
j++;
}while(j<4);
}
printf("%d\n",s);
}
voidfun(intx,inty)
}
36.若a是int型變量,則下列表達式的值為______。
(a=2*3,a*2),a+4
37.實現(xiàn)程序可將磁盤中的一個文件復制到另一個文件中,兩個文件的文件名在可執(zhí)行命令的命令行中(相當于copy命令),假定文件在當前目錄下。請補全程序。
#include<stdio.h>
voidmain(intargc,char*argv[])
{FILE*f1,*f2;
if(argc<【】)
{printf("parametererror!\n");exit(0);}
f1=fopen(argv[1],"r");
f2=fopen(argv[2],"w");
while(【】)fputc(fgetc(f1),f2);
fclose(f1);
fclose(f2);
}
38.以下程序運行后輸出結果是【】。
#include<stdio,h>
main()
{inta,b,c;
a=10;b:20;c=(a%b<1)‖(a/b>1);
printf("%d%d%d\n",a,b,c);
}
39.在長度為n的有序線性表中進行二分查找。最壞的情況下,需要的比較次數(shù)為【】。
40.下面程序的運行結果是______。
#include<stdio.h>
main()
{inty,a;
y=2,a=1;
while(y--!=-1)
{do{a*=y;a++;}while(y--);}
printf("%d,%d",a,y);}
三、1.選擇題(20題)41.以下四個選項中,不能看作一條語句的是()。
A.;B.a=5,b=2.5,c=3.6;C.if(a<5);D.if(b!=5)x=2;y=6;
42.運行下面的程序,其輸出結果為______。main(){printf("%d,%d",5%-3,-5%3);}
A.2,-2B.-2,2C.-2,-2D.2,2
43.以下敘述中正確的是()。
A.周部變量說明為static存儲類,其生存期將礙到延長
B.全局變量說明為static存儲類,其作用域將被擴大
C.任何存儲類的變量在未賦初值時,其值都是不確定的
D.形參可以使用的存儲類說明符與局部變量完全相同
44.在軟件測試設計中,軟件測試的主要目的是()
A.實驗性運行軟件B.證明軟件正確C.找出軟件中全部錯誤D.發(fā)現(xiàn)軟件錯誤而執(zhí)行程序
45.有以下程序main(){inti;for(i=0;i<3;i++)switch(i){case1:printf("%d",i);case2:printf("%d",i);default:printf("%d",i);}執(zhí)行扣輸出的結果是
A.11122B.12C.12020D.120
46.棧通常采用的兩種存儲結構是()。
A.順序存儲結構和鏈式存儲結構B.散列方式和索引方式C.鏈表存儲結構和數(shù)組D.線性存儲結構和非線性存儲結構
47.下列說法正確的是()。
A.在C程序中,main()函數(shù)必須位于程序的最前面
B.在C程序中,一條語句只能寫一行而不能寫多行
C.C程序是以行為基本單位的
D.C語言本身沒有輸入輸出語句
48.以下敘述中錯誤的是()。
A.對于double類型數(shù)組,不可以直接用數(shù)組名對數(shù)組進行整體輸入或輸出
B.數(shù)組名代表的是數(shù)組所占存儲區(qū)的首地址,其值不可改變
C.當程序執(zhí)行中,數(shù)組元素的下標超出所定義的下標范圍時,系統(tǒng)將給出“下標越界”的出錯信息
D.可以通過賦初值的方式確定數(shù)組元素的個數(shù)
49.若有下列定義(設int類型變量占2個字節(jié)):inti=8,j=9;則下列語句:printf("i=%u,j=%x\n",i,j);輸出的結果是()。
A.i=8,j=9B.8.9C.89D.i=8,j=8
50.有以下程序main(){inti=0,s=0;for(;;){if(i==3‖i==5)continue;if(i==6)break;i++;s+=i};printf("%d\n",s)}程序運行后的輸出結果是
A.10B.13C.21D.程序進入死循環(huán)
51.有以下程序:voidswap(char*x,char*y){chart;t=*x,*x=*y;*y=t;}main(){char*s1="abc",*s2="123";swap(s1,s2);printf("%s,%s\n",s1,s2);}程序執(zhí)行后的輸出結果是()。
A.123,abcB.abc,123C.1bc,a23D.321,cba
52.以下對C語言中共用體類型數(shù)據(jù)的正確敘述是______。
A.可以對共用體變量名直接賦值
B.一個共用體變量中可以同時存放其所有成員
C.一個共用體變量中不能同時存放其所有成員
D.共用體類型定義中不能出現(xiàn)結構體類型的成員
53.有以下程序:#include<stdio.h>main(){eharc1,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&c1,&c2,&c3,&c4);c5=getehar();c6=getchar();putehar(c1);putehar(c2);printf("%c%c\n",c5,c6);}23<回車>45678<回車>
A.1267B.1256C.1278D.1245
54.已知一個有序線性表為(13,18,24,35,47,50,62,83,90,115,134),當用二分法查找值為90的元素時,查找成功的比較次數(shù)為()。
A.1B.2C.3D.9
55.有以下程序
voidss(char*s,chart)
{while(*s)
{if(*s==t)*s=t-′a′+′A′;
s++;}}
main()
{charstr1[100]="abcddfefdbd",c=′d′;
ss(str1,c);printf("%s\n",str1);}
程序運行后的輸出結果是
A.ABCDDEFEDBDB.abcDDfefDbDC.abcAAfefAbAD.Abcddfefdbd
56.下列敘述中止確的是()。
A.數(shù)據(jù)的邏輯結構與存儲結構必定一一對應
B.由于汁算機存儲空間是向量式的存儲結構,因此,數(shù)據(jù)的存儲結構一定是線性結構
C.程序設計語言中的數(shù)組一般是順序存儲結構,因此,利用數(shù)組只能處理線性結構
D.以上三種說法都不對
57.以下合法的十六進制數(shù)是()。
A.0xB.0x4deC.0x1hD.oX77
58.有以下程序,程序運行后的輸出結果是_______。intf(intb[][4]){inti,j,s=0;for(j=0;j<4;j++){i=j;if(i>2)i=3-j;s+=b[i][j];}returns;}main(){inta[4][4]={{1,2,3,4},{0,2,4,6},{3,6,9,12},{3,2,1,0}};printf("%d\n"f(A));}
A.22B.11C.18D.16
59.若有下面的說明和定義,則sizeof(structaA)的值是()struetaa{intr1;doubler2floatr3;unionuu{charu1[5];longu2[2];}ua;}mya;
A.30B.29C.24D.22
60.設有定義:intk=1,m=2;floatf=7;則以下選項中錯誤的表達式是()。
A.k=k>=kB.-k++C.k%int(f)D.k>=f>=m
四、選擇題(20題)61.有以下程序程序運行后的輸出結果是()。
A.1,2B.1,1C.2,1D.2,2
62.
63.
64.
65.以下敘述中錯誤的是()。
A.C語言的可執(zhí)行程序是由一系列機器指令構成的
B.用C語言編寫的源程序不能直接在計算機上運行
C.通過編譯得到的二進制目標程序需要連接才可以運行
D.在沒有安裝C語言集成開發(fā)環(huán)境的機器上不能運行C源程序生成的.exe文件
66.有以下程序:main{intx,i;for(i=l;i<=50;i++){x=i:if(x%2=0)if(x%3=0)if(X%7=0)printf(”%d,i)”;}}輸出結果是()。A.28B.27C.42D.4l
67.為了使模塊盡可能獨立,要求()。A.模塊的內聚程度要盡量高,且各模塊間的耦合程度要盡量強
B.模塊的內聚程度要盡量高,且各模塊間的耦合程度要盡量弱
C.模塊的內聚程度要盡量低,且各模塊間的偶合程度要盡量弱
D.模塊的內聚程度要盡量低,且各模塊間的耦合程度要盡量強
68.有以下程序:
程序運行后的輸出結果是()。
A.b,B"b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B
69.若有定義語句:doublex,y,*px,+py;,執(zhí)行Tpx=&x;py=&y之后,正確的輸入語句是()。
70.
下列程序的輸出結果是()。
#include<stdio.h>
voidp(int*x)
{printf("%d¨,++*x);
}
voidmain()
{inty=3;
p(&y);
}
A.3B.4C.2D.5
71.有以下程序:
#include<stdio.h>
voidexch(intt[])
{t[0]=t[s];}
main()
{intx[10]={1,2,3,4,5,6,7,8,9,10},i=0;
while(i<=4){exch(&x[i]);i++;}
for(i=0;i<5;i++)printf("%dl"x[i]);
printf("\n");
}
程序運行后輸出的結果是()。
A.246810
B.13579
C.12345
D.678910
72.
73.下列關于二叉樹的敘述中,正確的是()。
A.葉子結點總是比度為2的結點少一個
B.葉子結點總是比度為2的結點多一個
C.葉子結點數(shù)是度為2的結點數(shù)的兩倍
D.度為2的結點數(shù)是度為1的結點數(shù)的兩倍
74.若變量a、i已正確定義,且i已正確賦值,合法的語句是()。A.A.a==1B.++iC.a=a++=5D.a=int(i)
75.以下選項中,能用做用戶標識符的是()。
A.voidB.8_8C._0_D.unsigned
76.
77.對如下二叉樹進行后序遍歷的結果為()。
A.A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA
78.
79.以下程序的輸出結果是
#include<stdio.h>
main()
{
inta,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b);
}
A.6,1B.6,0
C.2,1D.2,0
80.有以下程序在VC6平臺上編譯運行。程序運行后的輸出結果是(
)。
A.4,8B.4,4C.2,4D.10,6
五、程序改錯題(1題)81.下列給定程序中函數(shù)fun的功能是:逐個比較P.q所指兩個字符串對應位置上的字符,并把ASCIl值大或相等的字符依次存放到C所指的數(shù)組中,形成一個新的字符串。
例如,若主函數(shù)中a字符串為“aBCDeFgH”,b字符串為“Abed”,則C中的字符串應為“aBcdeFgH”。請改正程序中的錯誤,使它能得出正確的結果。
注意:部分源程序在文件MODll.C中,不得增行或刪行,也不得更改程序的結構!
六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),其功能是將形參s所指字符串放入形參a所指的字符數(shù)組中,使a中存放同樣的字符串。說明:不得使用系統(tǒng)提供的字符串函數(shù)。注意:部分源程序存放在文件prog1.c中,請勿改動主函數(shù)main()和其他函數(shù)中的任何內容,僅在函數(shù)fun()指定的部位填入所編寫的若干語句。試題程序:
參考答案
1.C解析:選項A)、選項B)顯然不合題意。數(shù)據(jù)定義語言(DataDefinitionLanguage,簡稱DDL)負責數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構建;數(shù)據(jù)操縱語言(DataManipulationLanguage,簡稱DML)負責數(shù)據(jù)的操縱,包括查詢及增、刪、改等操作。
2.A聲明函數(shù)fun“voidfun(intarray[4],int*ptr);”,第1個參數(shù)雖然是數(shù)組類型,但是會退化為指針,并且形參數(shù)組的個數(shù)沒有用;第2個參數(shù)是指針。兩個形參都是指針,傳遞的都是地址,可知選項B、C、D錯誤。故本題答案為A選項。
3.A解析:p+i是數(shù)組s的第i+1行的首地址,而*(p+i)則是數(shù)組第i+1行第1列的元素的地址,*(p+i)+j則是第i+1行的第j+1列的地址,*(*(p+i)+j)引用的是數(shù)組元素s[i][j]的值。注意:通過建立一個指針數(shù)組來引用二維數(shù)組元素。
4.C解析:軟件系統(tǒng)結構的總體設計包括:基于功能層次結構建立系統(tǒng)、按功能劃分成模塊的層次結構、確定每個模塊的功能、建立與已確定的軟件需求的對應關系、確定模塊間的調用關系和模塊間的接口、評估模塊劃分的質量等方面。詳細設計的任務是:在使用程序設計語言編制程序以前,對所采用算法的邏輯關系進行分析,設計出全部必要的過程細節(jié),并給予清晰的表達。需求分析是指用戶對目標軟件系統(tǒng)在功能、行為、性能、設計約束等方面的期望。需求分析的任務是發(fā)現(xiàn)需求、求精、建模和定義需求,通常包括:功能需求、性能需求、環(huán)境需求、可靠性需求、安全保密要求、用戶界面需求、資源使用需求、成本消耗需求、開發(fā)進度需求等。編程調試的任務是診斷和改正程序中潛在的錯誤。綜上所述。軟件功能分解只能發(fā)生在總體設計階段。
5.BC語言是一種結構化程序設計語言。結構化程序設計是以模塊化設計為中心的,有三種基本結構:順序、選擇和循環(huán)結構。各模塊相互獨立,因而可將原來較為復雜的問題化簡為一系列簡單模塊并充分利用現(xiàn)有模塊搭建新系統(tǒng),提高程序的重用性和可維護性。
6.D解析:觀察程序可知,a實際上就是數(shù)組a的首地址,所以“*(a+i)”表示的就是數(shù)組a中的第i個元素的值,進而,我們可以知道*(*(a+i))必然不是對a數(shù)組元素的正確引用。
7.A本題考查的是格式輸)ki$i數(shù),即按用戶指定的格式從鍵盤上把數(shù)據(jù)輸入到指定的變量之中,其中的格式命令可以說明最大域寬。在百分號(%)與格式碼之間的整數(shù)用于限制從對應域讀入的最大字符數(shù)。因此j的值為55,y的值為566.0,字符數(shù)組nanle的值為7777123。故本題答案為A)。
8.B
\n本題中要求輸出右上半角的數(shù),對角線上的數(shù)的下標相同,所以j=i。
\n
9.C指針變量的值只能是存儲單元地址,而不能是一個整數(shù),故選項C錯誤。
10.C
11.C
12.A
13.BB?!窘馕觥吭O計軟件結構,是在軟件概要設計階段進行的,而概要設計屬于軟件開發(fā)期。
14.D解析:結構體變量所占用內存的字節(jié)數(shù)是其所有成員所占用內存字節(jié)數(shù)之和。本題中整型變量i所占用的內存是2字節(jié),字符型變量ch所占用的內存是1字節(jié),雙精度型變量f所占用的內存是8字節(jié),三者相加即可。
15.C字符數(shù)組a中包含兩個‘\\0’。遇到第1個‘\\0’時就表示字符串a結束。字符串處理函數(shù)strcat(字符數(shù)組a,字符數(shù)組b),功能是連接兩個字符串,把字符串b連接到字符串a的后面,結果放在字符數(shù)組a中。連接時將字符串a后的‘\\0’取消,只在新串最后保留一個‘\\0’。本題相當于將“ABCD”和“IJK”連接。故本題答案為C選項。
16.B解析:p指向x的第一個元素,所以p->n的值為2,p->next指向x+1,即指向x的第二個元素,所以p->next->n為4。
17.C解析:在格式化模型中,要事先根據(jù)應用的需要,確定數(shù)據(jù)之間的邏輯關系,即先對數(shù)據(jù)進行結構化。在關系模型中,不需要事先構造數(shù)據(jù)的邏輯關系,只要將數(shù)據(jù)按照一定的關系存入計算機,也就是建立關系。所以選項A錯誤。對于一個表示關系的二維表,其最基本的要求是表中元組的每一個分量必須是不可分的數(shù)據(jù)項,即不允許表中再有表。所以,選項B、D說法是錯誤的。一個關系的屬性名表稱為關系模式,也就是二維表的表框架,相當于記錄型。因此,選項C說法正確。
18.C
19.A本題由fun函數(shù)可知,執(zhí)行for循環(huán),當i=0時,b[0]=a[0][0]-a[0][3]=1-4=-3;當i=1時,b[1]=a[1][1]-a[1][2]=6-7=-1;當i=2時,b[2]=a[2][2]-a[2][1]=11-10=1;當i=3時,b[3]=a[3][3]-a[3][0]=16-13=3。主函數(shù)中輸出y數(shù)組元素的值為:-3,-1,1,3。故本題答案為A選項。
20.B
21.11解析:用“&&”連接兩個表達式時,若第1個表達式的值為“假”,則運算結果與第2個表達式無關,此時第2個表達式將不再進行計算。本題中第1個表達式“j=!ch”值為0,所以第2個表達式i++將不再進行計算,i的值為1。
22.8181解析:將S(i+j)展開來有:S(i+j)=S(6+8)=4×6+8×6+8+1=81。
23.123056009123\r\n056\r\n009解析:數(shù)組a中元素的初值為:a[0][0]=1、a[0][1]=2、a[0][2]=3、a[1][0]=4、a[1][1]=5、a[1][2]=6、a[12][0]=7、a[2][1]=8、a[2][2]=9。執(zhí)行第1個for循環(huán)后a[1][0]=0、a[2][0]=0、a[2][1)=0;第2個for循環(huán)的功能是將數(shù)組元素按照3行3列的格式輸出。
24.隊尾隊尾解析:在隊列中,允許插入的一端叫做“隊尾”,允許刪除的一端叫做“隊頭”。
25.21
26.參照完整性參照完整性
27.數(shù)據(jù)流數(shù)據(jù)流解析:結構化分析方法的實質是著眼于數(shù)據(jù)流,自頂向下,逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。
28.5252解析:do...while語句的形式為:
do
{
語句;
}while(條件表達式)
當條件表達式為非零時,繼續(xù)執(zhí)行循環(huán)體,直到條件表達式為零時退出循環(huán)。
29.1212解析:字符類型的數(shù)據(jù)在內存中以相應的ASCII碼存放,在C語言中,字符數(shù)據(jù)可以等價為與其相應的ASCII碼的整數(shù),還可以作為整數(shù)參加運算。在本題中,n1=h1-0'=1-0=49-48=1,n2=n1*10+(ch2-'0')=1*10+(2-0)=10+2=12。
30.空間空間解析:算法的復雜度主要包括時間復雜度和空間復雜度。所謂算法的時間復雜度,是指執(zhí)行算法所需要的計算工作量。一個算法的空間復雜度,一般是指執(zhí)行這個算法所需要的內存空間。
31.1212解析:本題的第一個for循環(huán)用于給數(shù)組arr賦初值,第二個for循環(huán)用于求和運算。由于第二個for循環(huán)初始值為1,而循環(huán)條件為i<4,所以求的是arr[1]到arr[3]及i的和,所以輸出結果為12。
32.*ss!='\0'*ss!='\\0'解析:本題考查的是指針的應用。題目要求求出字符串ss中指定字符的個數(shù)。分析整個程序,空缺處是檢驗指針ss是否指向了字符串的末尾,如沒有,即執(zhí)行下面語句,判斷指針ss指向的字符是否字符c,若是,i自加1;所以空缺處填入*ss!='\\0',作為循環(huán)終止的條件。
33.白盒或白箱或白盒子或WhiteBox白盒或白箱或白盒子或WhiteBox解析:本題考查軟件工程的測試。測試一般有兩種方法:黑盒測試和白盒測試。黑盒測試不考慮程序的內部邏輯結構和處理過程,只著眼于程序的外部特性。用黑盒測試來發(fā)現(xiàn)程序中的錯誤,必須用所有可能的輸入數(shù)據(jù)來檢查程序能否都能產生正確的輸出。白盒測試是在了解程序內部結構和處理過程的基礎上,對程序的所有路徑進行測試,檢查路徑是否都能按預定要求正確工作。因此,劃線處應填入“白盒(箱)”或“WhiteBox”。
34.存儲或物理或存儲結構或物理結構存儲或物理或存儲結構或物理結構解析:數(shù)據(jù)的邏輯結構在計算機存儲空間中的存放形式稱為數(shù)據(jù)的存儲結構(也稱數(shù)據(jù)的物理結構)。所謂循環(huán)隊列,就是將隊列存儲空間的最后一個位置繞到第一個位置,形成邏輯上的環(huán)狀空間。供隊列循環(huán)使用。可知,循環(huán)隊列應當是物理結構。
35.9292解析:本主函數(shù)中首先定義了一個4行4列的二維數(shù)組,然后執(zhí)行一個while循環(huán),該循環(huán)中又嵌套了一個do-while循環(huán)。現(xiàn)看while循環(huán),該循環(huán)通過i++的值來判斷是否結束循環(huán)當i++的值為4的時候結束循環(huán),當i=0時,執(zhí)行while的循環(huán)體,顯然if語句條件不滿足不執(zhí)行,接著讓j=4,然后執(zhí)行do-while循環(huán)體,我們不難看出do-while循環(huán)的功能是將笫i+1行的所有元素加起來,所以這時s的值為s=a[1][0]+a[1][1]+a[1][2]+a[1][3]26,當i=1時,i+1=2,if后面括號里的表達式的值為真執(zhí)行后面的continue語句,結束該次循環(huán);當i=2時,i加1變?yōu)?,把笫3+1行的所有元素的加到s上,此時s=s+a[2][0]+a[2][1]a[2][2]+a[2][3]=92,當i=3時,3+1=4,if后面括號里的表達式的值為真執(zhí)行后面的continue語句,結束該次循環(huán),當i=3時,if后面括號里的表達式的值為真執(zhí)行后面的confulue語句,結束該次循環(huán)當i=4時while循環(huán)結束,所以最后輸出的s的值為92。
36.1010解析:此題考查逗號表達式。逗號表達式的值是最后一個表達式的值,所以本題的返回值是a+4。前面已經(jīng)給a賦值6,所以追回值a+4=6+4=10。
37.3!feof(f1)3\r\n!feof(f1)解析:要實現(xiàn)文件復制,需要指定源文件及目的文件,因此在命令行下執(zhí)行程序時至少要指定兩個參數(shù),加上程序名本身,故argc的值至少為3,因此第一空應填3。while循環(huán)中語句fputc(fgetc(f1),f2);的目的是將f1中的字符依次讀出并寫入到f2對應的文件中去,直至文件f1結束為止,因此第二空為!feof(f1)。
38.1020010200解析:程序中(a%b<1)||(a/b>1)的運算順序為先算括號→算術運算符→關系運算符→邏輯運算符。首先計算a%b=10,a/b=0,因為a%b<1為假(0),a/b>1也為假(0),所以整個表達式的結果為假(0),最后輸出a,b,c的值為10200。
39.log2n
40.
41.D解析:選項D)為兩條語句,每條語句以分號結束。
42.A解析:在C中,參與%運算的兩個參數(shù)都必須為整型,在大多數(shù)C編譯器下(包括TurboC)都采用了“向0靠近”的原則,即當兩個運算量有一個為負數(shù)時,余數(shù)的符號由被除數(shù)的符號決定。故本題答案為A。
43.A解析:靜態(tài)局部變量的生存期將一直延長到程序運行結束。故選項A正確;而全局變量的只有一種靜態(tài)存儲類別,故全局變量說明為static存儲類,和沒有說明為static存儲類其生存期都是一直延長到程序運行結束,故選項B不正確;未賦初值的auto型變量的初值是隨機的,未賦初值的static型變量的初值是0(故選項C和選項D不正確)。所以,4個選項中選項A符合題意。
44.D解析:使用人工或自動手段來運行或測定某個系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或是弄清預期結果與實際結果之間的差別。軟件測試的目的是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。測試要以查找錯誤為中心,而不是為了演示軟件的正確功能。
45.A解析:本題考核的知識點是for循環(huán)和switch語句的綜合運用。for循環(huán)執(zhí)行了3次,第一次時i的值為0,執(zhí)行其后的switch語句,沒有匹配的case,執(zhí)行default語句后的pdntf語句,輸出為0;第二次循環(huán)時i的值為1,執(zhí)行其后的switch語句,與第一個case分支匹配,執(zhí)行其后的printf語句,輸出1,由于沒有遇到break語句,所以一直向下執(zhí)行,又輸出了兩個1,第三次循環(huán)時i值為2,執(zhí)行其后的switch語句,同理輸出兩個2。所以,A選項為所選。
46.A解析:和線性表類似,棧也有兩種存儲方法,一是順序棧,二是鏈式棧。棧的順序存儲結構是利用一組地址連續(xù)的存儲單元一次存儲自棧底到棧頂?shù)臄?shù)據(jù)元素,同時附設指針top指示棧頂元素的位置,由于棧的操作是線性表操作的特例,相對而言,鏈式棧的操作更易于實現(xiàn)。注意:這3種運算方法在各種存儲結構中的應用。
47.D解析:本題涉及C語言最基本的4個知識點:①C語言程序是由函數(shù)構成的,C程序的基本單位是函數(shù);②每個C程序有且只有一個主函數(shù)main(),且程序必須從main()函數(shù)開始執(zhí)行,但是main()函數(shù)可以放在程序中的任意位置;③C語言的書寫格式是自由的,一行可以寫多條語句,一條語句也可以寫在不同的行上;④C語言本身不提供輸入輸出語句,可以通過函數(shù)來實現(xiàn)輸入和輸出操作。
48.C解析:在C語言中,除字符數(shù)組外,一個數(shù)組不能通過數(shù)組名對數(shù)姐進行整體引用,因此選項A是對的。數(shù)組名中存放的是一個地址常量,它代表整個數(shù)組的首地址,因此選項B是對的。C語言程序在運行過程中,系統(tǒng)不自動檢驗數(shù)組元素的下標是否越界,因此選項C是錯誤的。C語官規(guī)定可以通過賦初值來定義數(shù)組的大小,這時數(shù)組說明符的一對方括號中可以不指定數(shù)組的大小,因此選項D也是正確的。所以,4個選項中選項C符合題意。
49.A解析:本題考查函數(shù)printf()的格式。“%x”表示以十六進制輸出整型數(shù)據(jù);“%u”表示以十進制無符號型輸出整型數(shù)據(jù)。printf函數(shù)中格式說明符之前插入的任何字符都原樣輸出。
50.D解析:本題考核的知識點是for循環(huán),continue語句和break語句的運用。程序中for循環(huán)中省略了判斷退出循環(huán)的表達式,for循環(huán)將由里面的break語句控制是否結束循環(huán),第一次循環(huán),第一條if語句后面括號里的表達式的值為假,所以該if語句不被執(zhí)行,執(zhí)行下面的第二條語句,此時該if語句表達式的值為假,所以該if語句也不執(zhí)行,執(zhí)行下面的語句,i++、s+=i,執(zhí)行完畢后i的值為1,s的值為1,如此循環(huán),直到第三次之后i,s的值都為3,繼續(xù)第四次循環(huán),顯然這時滿足第一條if語句的,執(zhí)行后面的continue;該次循環(huán)結束從頭開始下次循環(huán),而i的值為3一直沒有改變,所以第一條語句始終要執(zhí)行,因此for循環(huán)將一直循環(huán)下去,所以,4個選項中選項D符合題意。
51.C解析:首先看swap()函數(shù),函數(shù)中定義了一個臨時字符變量t,然后將形參指針x所指內容存入t,再將形參指針y所指內容存入到x所指內容中,最后將臨時變量t的內容存入到y(tǒng)所指內容中。所以該函數(shù)實現(xiàn)的是:交換兩個字符指針所指向的內容。在主函數(shù)中,首先定義了兩個字符指針s1和s2,同時用字符串'abc'和'123”來初始化它們,此時它們指向的是兩個字符串的第1個字符。所以,在調用完swap()函數(shù)后,彼此交換了兩個字符串的第1個字符,最后輸出結果為1bc,a23。故應該選擇C。
52.C解析:共用體變量中的所有成員共享一段公共存儲區(qū),并非同時存放于共用體變量中,如共用體變量中有兩個成員,int型成員占兩個字節(jié),float型成員占4個字節(jié),則該共用體變量占4個字節(jié),并非2+4=6個字節(jié)。
53.D解析:getchar函數(shù)只能接收一個字符,即使輸入多個字符也只能將第一個字符讀入。當輸入123<回車>時:seanf函數(shù)分別讀人字符'1'、'2'、'3'、'<回車>';再輸入45678<回車>,則getehar讀人字符'4'賦值給c5,字符'5'賦值給c6,所以輸出結果為1245。
54.BB?!窘馕觥扛鶕?jù)二分法查找法需要兩次:(1)首先將90與表中間的元素50進行比較,由于90大于50,所以性表的后半部分查找。(2)第二次比較的元素是后半部分的中間元素,即90,這時兩者相等,即查找成功。
55.B解析:在內存中,字符數(shù)據(jù)以ASCII碼存儲,它的存儲形式與整數(shù)的存儲形式類似。C語言中,字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用,也可以對字符型數(shù)據(jù)進行算術運算,此時相當于對它們的ASCII碼進行算術運算,在本題中,s++相當于s=s+1,即讓s指向數(shù)組中的下一個元素。
56.D解析:一種數(shù)據(jù)的邏輯結構根據(jù)需要可以表示成多種存儲結構,因此,數(shù)據(jù)的邏輯結構與存儲結構不一定是一一對應的,選項A錯誤。計算機的存儲空間是向量式的存儲結構,但一種數(shù)據(jù)的邏輯結構根據(jù)需要可以表示成多種存儲結構,如線性鏈表是線性表的鏈式存儲結構,數(shù)據(jù)的存儲結構不一定是線性結構,因此選項B錯誤。數(shù)組一般是順序存儲結構,但利用數(shù)組也能處理非線性結構,選項C錯誤。由此可知,只有選項D的說法正確。
57.B解析:考查十六進制數(shù)的表示方法。十六進制數(shù)以0x開頭,后面跟著若干位1f的數(shù),所以正確答案為B)。整形常量、實型常量和字符型常量的合法性判斷。
58.D解析:本題通過函數(shù)調用對數(shù)組a[0][0]、a[1][1]、a[2][2]、a[0][3]進行求和,然后用return語句返回s的值。
59.D
60.C解析:A、D選項是關系運算表達式,在C語言中,只要關系運算符兩邊是合法的表達式就可以了。C選項中,%只能對整型進行運算,其中對f進行了強制類型轉換,但是轉換的表達式錯了,應為:(int)(f)。
61.Afun(++n)返回值為l,fun(n++)因為fun函數(shù)內n為static類型,仍保持原值1,函數(shù)返回值為2,所以答案選擇A)。
62.D
63.C
64.D\r\n
65.Dc語言的可執(zhí)行程序是由一系列機器指令組成的。用C語言編寫的源程序必須經(jīng)過編譯生成二進制目標代碼,再經(jīng)過連接才能運行,并且可以脫離c語言集成開發(fā)環(huán)境。故答案為D)。
66.C只有當3個if條件同時成立,即能夠同時被2、3、7整除時,才輸出i的值,而從0到50能夠同時被2、3、7整除的數(shù)只有42,故選擇C選項。
67.B解析:系統(tǒng)設計的質量主要反映在模塊的獨立性上。評價模塊獨立性的主要標準有兩個:一是模塊之間的耦合,它表明兩個模塊之間互相獨立的程度;二是模塊內部之間的關系是否緊密,稱為內聚。一般來說,要求模塊之間的耦合盡可能地弱,即模塊盡可能獨立,而要求模塊的內聚程度盡量地高。綜上所述,選項B的答案正確。
68.A本題重點考察函數(shù)的調用,首先要了解字母對應的ASCIl碼。例如A為65,a為97。即字母+1劂可得到下一個字母。-其次是函數(shù)形參和實參的問題,運行過程如下:在fun(&b,a)中,}c=.a-,d=65。}c+l=V,d+1=66,prinff(”%c,%c,”,}C,d);輸出b,B,因為指針c指向地址的值為b,此時b=}C=.b.;豳數(shù)返回執(zhí)行ptud(。%C,%c、n”,b,8);輸出b,A,因此A選項正確。
69.A因為x,y都是double型數(shù)據(jù),所以輸入時的格式字符應為%If,所以B)與c)錯誤。D)選項中“scanf(”%If%IP’’x,y);”應為“scanf(”%If%lf'’,&x,&y);”。故本題答案為A)。
70.B
\n本題考查函數(shù)調用時的參數(shù)傳遞。在函數(shù)調用時,形參是指向實參的指針變量,則printf的執(zhí)行結果為++x;x=3,則3+1=4。
\n
71.D本題中exch函數(shù)是用數(shù)組中的第6個元素對第1個元素進行賦值,所以數(shù)組的值應該為678910。
72.A
73.B根據(jù)二叉樹的基本性質3:在任意一棵二叉樹中,度為0的葉子結點總是比度為2的結點多一個。所以選擇8。
74.B本題主要考查C語言合法語句的定義。
在選項A中,a==1不是一個合法的語句,因為它沒有語句結束標識符“;”,不能說是一條語句,如果作為一個表達式,它是正確的。
在選項B中,由于變量i已被正確定義并有初值,“++i;”是正確的語句。
在選項C中,由于正確的賦值語句中,賦值符號的左邊不能為常量或表達式,而右邊不能為變量或表達式,很明顯,“a=a++=5;”違背了賦值語句的原則。
在選項D中,“a=int(i);”語句是不正確的,在C語言中沒有這種表示形式,如果是想將變量i強制轉換為整型的操作,應該為“a=(int)i;”。
75.C標識符由字母、數(shù)字和下劃線組成。開頭必須是字母或下劃線且區(qū)分大小寫。在C語言中,預先定義了一些標識符,以作專門用途,稱為關鍵字,標識符不能與關鍵字相同。選項A和D是關鍵字,選項B是數(shù)字開頭的,所以都不正確。
76.D
77.D所謂的后序遍歷是指,首先遍歷左子樹,然后遍歷右子樹,最后訪問根結點,并且在遍歷左、右樹時,仍然先遍歷左子樹,然后遍歷右子樹,最后訪問根點。因此,后序遍歷二叉樹的過程也是一個遞歸過程。
78.A
79.C第一個表達式中,運算的方向是從左至右,所以a的值為2;第二個表達式中,等式右邊是一個邏輯表達式,由于結果為真,所以表達式的值為1,即b為1。
80.Ac語言中利用sizeof()函數(shù)判斷數(shù)據(jù)類型長度,在VC6平臺中,整型數(shù)據(jù)int占4個字節(jié),double型數(shù)據(jù)占8個字節(jié)。因此本題答案為A)。
81.
(1)intk=0;
(2)whffe(+pll+q)
【考點分析】
本題考查:變量初始化,需根據(jù)題意確定變量含義,然后對其進行初始化操作;while循環(huán)語句。
【解題思路】
(1)變量k存放數(shù)組c的下標,因此應初始化為0。
(2)while循環(huán)語句的循環(huán)條件是判斷兩個字符串是否到達結尾。
82.1voidfun(char*a,char*s)2{while(*s!:'。1)3{*a=*s;4a++;5s++;}7*a='\\0';}要將指針變量s所指的字符串存入指針變量a所指的字符串中,程序要求不能使用系統(tǒng)提供的字符串函數(shù)。本題可以使用循環(huán)語句,依次取出a所指字符串中的元素,將其存入s所指的字符串中,最后為s所指的字符串添加字符串結束標志'\\0'。2021-2022年河北省張家口市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.數(shù)據(jù)庫管理系統(tǒng)DBMS中用來定義模式、內模式和外模式的語言為()。
A.CB.BasicC.DDLD.DML
2.對于函數(shù)聲明“voidfun(intarray[4],int*ptr);”,以下敘述中正確的是()。
A.array、ptr都是指針變量
B.調用fun函數(shù)時,實參的值將逐一復制給array
C.調用fun函數(shù)時,array按值傳送,ptr按地址傳送
D.array是數(shù)組,ptr是指針,它們的性質不同
3.若在以下定義和賦值語句,則才s數(shù)組的第i行第j列(假設i,j已正確說明并賦值)元素地址的合法引用為ints[2][3]={0},(*p)[3];p=s;
A.*(*(p+i)+j)B.*(p[i]+j)C.(p+i)+jD.(*(p+i))[j]
4.在結構化方法中,軟件功能分解屬于下列軟件開發(fā)中的階段是______。
A.詳細設計B.需求分析C.總體設計D.編程調試
5.以下敘述中錯誤的是()。
A.c語言是一種結構化程序設計語言
B.使用三種基本結構構成的程序只能解決簡單問題
C.結構化程序設計提倡模塊化的設計方法
D.結構化程序由順序、分支、循環(huán)三種基本結構組成
6.設有以下語句,其中不是對a數(shù)組元素的正確引用的是:_____(其中0≤i<10)inta[10]={0,1,3,4,5,6,7,8,9,},*p=a;
A.a[p-a]B.*(&a[i])C.p[i]D.*(*(a+i))
7.有以下程序段當執(zhí)行上述程序段,從鍵盤上輸A,555667777123后,y的值為()。
A.566.0B.55566.0C.7777.0D.566777.0
8.
有以下程序:
main
{intnum[4][4]={1,2,3,4},{5,6,7,8},{9,10,11,
12,},{13,14,15,16}},i,j;
for(i=0;i<4;i++)
{for(j=0;j<i;j++)printf("%4c",);
for(j=________;J<4;j++)printf("%4d",num
[i][j]);
printf("\n");}}
若要按以下形式輸出數(shù)組右上半三角
1234
678
1112
16
則在程序下劃線處應填入的是()。
A.i-1B.iC.i+1D.4一i
9.以下敘述中錯誤的是()。
A.改變函數(shù)形參的值,不會改變對應實參的值
B.函數(shù)可以返回地址值
C.可以給指針變量賦一個整數(shù)作為地址值
D.當在程序的開頭包含文件stdi0.h時,可以給指針變量賦NULL
10.
11.對于靜態(tài)表的順序查找法,若在表頭設置監(jiān)視哨,則正確的查找方式為()A.從第0個元素往后查找該數(shù)據(jù)元素
B.從第1個元素往后查找該數(shù)據(jù)元素
C.從第n個元素往開始前查找該數(shù)據(jù)元素
D.與查找順序無關
12.若有如下程序:main(){inta=0,t=0;while(!a!=0)t+=a++;printf("%d,%d\n",t,A);}則程序運行后的輸出結果是()
A.0,1B.1,0C.0,0D.1,1
13.設計軟件結構是在軟件生命周期的()。
A.軟件定義期B.軟件開發(fā)期C.軟件維護期D.以上3個都不是
14.在16位IBM-PC機上使用C語言,若有如下定義structdata{inti;charch;doublef;}b;則結構變量b占用內存的字節(jié)數(shù)是
A.1B.2C.7D.11
15.有以下程序(strcat函數(shù)用于連接兩個字符串):#include<stdio.h>#include<string.h>main(){chara[20]=“ABCD\0EFG\0”,b[]=“UK”;strcat(a,b);printf(“%s\n”,a);}程序的運行結果是()。
A.UKB.ABCDE\0FG\0UKC.ABCDUKD.EFGUK
16.有以下程序
#include<stdio.h>
main()
{structnode{intn;structnode*next;}*p;
structnodex[3]={{2,x+1},{4,x+2},{6,NULL}};
p=x:
printf("%d,",p->n);
printf("%d\n",P->next->n);
}
程序運行后的輸出結果是A.A.2,3B.2,4C.3,4D.4,6
17.下列敘述中正確的是A.為了建立一個關系,首先要構造數(shù)據(jù)的邏輯關系
B.表示關系的二維表中各元組的每一個分量還可以分成若干數(shù)據(jù)項
C.一個關系的屬性名表稱為關系模式
D.一個關系可以包括多個二維表
18.若在線性表中采用折半查找法查找元素,該線性表應該()A.元素按值有序B.構采用順序存儲結C.元素按值有序且采用順序存儲結構D.元素按值有序且采用鏈式存儲結構
19.有以下程序:#include<stdio.h>#defineN4voidfun(inta[][N],intb[]){inti;for(i=0;i<N;i++)b[i]=a[i][i]-a[i][N-1-i];}main(){intx[N][N]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},y[N],i;fun(x,y);for(i=0;i<N;i++)printf(“%d”,y[i]);printf(“\n”);}程序的運行結果是()。
A.-3,-1,1,3,B.-12,-3,0,0,C.0,1,2,3,D.-3,-3,-3,-3,
20.一個序列中有10000個元素,若只想得到其中前10個最小元素,最好采用_______方法
A.快速排序B.堆排序C.插入排序D.二路歸并排序
二、2.填空題(20題)21.已定義charch="$";inti=1,j;執(zhí)行j=!ch&&i++以后,i的值為()。
22.以下程序運行后的輸出結果是【】。
#defineS(x)4*x*x+1
main()
{inti=6,j=8;
printf("%d\n",S(i+j));
}
23.以下程序運行后的輸出結果是【】。
main()
{inti,j,a[][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)a[j][i]=0;
for(i=0;i<3;i++)
{for(j=0;j<3;j++)printf("%d",a[i][j]);
printf("\n");
}
}
24.隊列是限定在表的一端進行插入和在另一端進行刪除操作的線性表。允許插入的一端稱作______。
25.以下程序運行后的輸出結果是______。
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);
}
26.關系模型的完整性規(guī)則是對關系的某種約束條件,包括實體完整性、______和自定義完整性。
27.結構化分析方法是面向______進行分析的方法。
28.以上程序運行后的輸出結果是【】。
main()
{inti=10,j=0;
do
{j=j+i;i-;}
while(i>2);
printf("%d\n",j);
}
29.有以下程序
#include<stdio.h>
main()
{charch1,ch2;intn1,n2;
ch1=getchar();ch2=getchar();
n1=ch1-'()';n2=n1*10+(ch2-'()');
printf("%d\n",n2);
}
程序運行時輸入:12<回車>,執(zhí)行后輸出結果是【】。
30.算法的復雜度主要包括時間復雜度和______復雜度。
31.下列程序執(zhí)行后輸出的結果是【】。
main()
{intarr[10],i,k=0);
fot(i=0;i<10;i++)art[i]=i;
for(i=1:i<4;i++)k+=arr[i]+i;
printf("%d\n",k);
}
32.下列程序的功能是:求出ss所指字符串中指定字符的個數(shù),并返回此值。例如,若輸入字符串123412132,輸入字符1,則輸出3,請?zhí)羁铡?include<conio.h>#include<stdio.h>#defineM81intfun(char*ss,charC){inti=0;for(;();ss++)if(*ss==C)i++;returni;}main(){chara[M],ch;printf("\nPleaseenterastring:");gets(A);printf("\nPleaseenterachar:");ch=getchar();printf("\nThenumberofthecharis:%d\n",fun(a,ch));}
33.在兩種基本測試方法中,【】測試的原則之一是保證所測模塊中每一個獨立路徑至少要執(zhí)行一次。
34.數(shù)據(jù)結構分為邏輯結構和存儲結構,循環(huán)隊列屬于______結構。
35.以下程序運行后的輸出結果是______。
main()
{
inta[4]]4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};
inti=0.j=0,s=0;
while(i++<4}
if(i==2||i==4)continue;
j=0;
do
{
s+=a[i][j]:
j++;
}while(j<4);
}
printf("%d\n",s);
}
voidfun(intx,inty)
}
36.若a是int型變量,則下列表達式的值為______。
(a=2*3,a*2),a+4
37.實現(xiàn)程序可將磁盤中的一個文件復制到另一個文件中,兩個文件的文件名在可執(zhí)行命令的命令行中(相當于copy命令),假定文件在當前目錄下。請補全程序。
#include<stdio.h>
voidmain(intargc,char*argv[])
{FILE*f1,*f2;
if(argc<【】)
{printf("parametererror!\n");exit(0);}
f1=fopen(argv[1],"r");
f2=fopen(argv[2],"w");
while(【】)fputc(fgetc(f1),f2);
fclose(f1);
fclose(f2);
}
38.以下程序運行后輸出結果是【】。
#include<stdio,h>
main()
{inta,b,c;
a=10;b:20;c=(a%b<1)‖(a/b>1);
printf("%d%d%d\n",a,b,c);
}
39.在長度為n的有序線性表中進行二分查找。最壞的情況下,需要的比較次數(shù)為【】。
40.下面程序的運行結果是______。
#include<stdio.h>
main()
{inty,a;
y=2,a=1;
while(y--!=-1)
{do{a*=y;a++;}while(y--);}
printf("%d,%d",a,y);}
三、1.選擇題(20題)41.以下四個選項中,不能看作一條語句的是()。
A.;B.a=5,b=2.5,c=3.6;C.if(a<5);D.if(b!=5)x=2;y=6;
42.運行下面的程序,其輸出結果為______。main(){printf("%d,%d",5%-3,-5%3);}
A.2,-2B.-2,2C.-2,-2D.2,2
43.以下敘述中正確的是()。
A.周部變量說明為static存儲類,其生存期將礙到延長
B.全局變量說明為static存儲類,其作用域將被擴大
C.任何存儲類的變量在未賦初值時,其值都是不確定的
D.形參可以使用的存儲類說明符與局部變量完全相同
44.在軟件測試設計中,軟件測試的主要目的是()
A.實驗性運行軟件B.證明軟件正確C.找出軟件中全部錯誤D.發(fā)現(xiàn)軟件錯誤而執(zhí)行程序
45.有以下程序main(){inti;for(i=0;i<3;i++)switch(i){case1:printf("%d",i);case2:printf("%d",i);default:printf("%d",i);}執(zhí)行扣輸出的結果是
A.11122B.12C.12020D.120
46.棧通常采用的兩種存儲結構是()。
A.順序存儲結構和鏈式存儲結構B.散列方式和索引方式C.鏈表存儲結構和數(shù)組D.線性存儲結構和非線性存儲結構
47.下列說法正確的是()。
A.在C程序中,main()函數(shù)必須位于程序的最前面
B.在C程序中,一條語句只能寫一行而不能寫多行
C.C程序是以行為基本單位的
D.C語言本身沒有輸入輸出語句
48.以下敘述中錯誤的是()。
A.對于double類型數(shù)組,不可以直接用數(shù)組名對數(shù)組進行整體輸入或輸出
B.數(shù)組名代表的是數(shù)組所占存儲區(qū)的首地址,其值不可改變
C.當程序執(zhí)行中,數(shù)組元素的下標超出所定義的下標范圍時,系統(tǒng)將給出“下標越界”的出錯信息
D.可以通過賦初值的方式確定數(shù)組元素的個數(shù)
49.若有下列定義(設int類型變量占2個字節(jié)):inti=8,j=9;則下列語句:printf("i=%u,j=%x\n",i,j);輸出的結果是()。
A.i=8,j=9B.8.9C.89D.i=8,j=8
50.有以下程序main(){inti=0,s=0;for(;;){if(i==3‖i==5)continue;if(i==6)break;i++;s+=i};printf("%d\n",s)}程序運行后的輸出結果是
A.10B.13C.21D.程序進入死循環(huán)
51.有以下程序:voidswap(char*x,char*y){chart;t=*x,*x=*y;*y=t;}main(){char*s1="abc",*s2="123";swap(s1,s2);printf("%s,%s\n",s1,s2);}程序執(zhí)行后的輸出結果是()。
A.123,abcB.abc,123C.1bc,a23D.321,cba
52.以下對C語言中共用體類型數(shù)據(jù)的正確敘述是______。
A.可以對共用體變量名直接賦值
B.一個共用體變量中可以同時存放其所有成員
C.一個共用體變量中不能同時存放其所有成員
D.共用體類型定義中不能出現(xiàn)結構體類型的成員
53.有以下程序:#include<stdio.h>main(){eharc1,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&c1,&c2,&c3,&c4);c5=getehar();c6=getchar();putehar(c1);putehar(c2);printf("%c%c\n",c5,c6);}23<回車>45678<回車>
A.1267B.1256C.1278D.1245
54.已知一個有序線性表為(13,18,24,35,47,50,62,83,90,115,134),當用二分法查找值為90的元素時,查找成功的比較次數(shù)為()。
A.1B.2C.3D.9
55.有以下程序
voidss(char*s,chart)
{while(*s)
{if(*s==t)*s=t-′a′+′A′;
s++;}}
main()
{charstr1[100]="abcddfefdbd",c=′d′;
ss(str1,c);printf("%s\n",str1);}
程序運行后的輸出結果是
A.ABCDDEFEDBDB.abcDDfefDbDC.abcAAfefAbAD.Abcddfefdbd
56.下列敘述中止確的是()。
A.數(shù)據(jù)的邏輯結構與存儲結構必定一一對應
B.由于汁算機存儲空間是向量式的存儲結構,因此,數(shù)據(jù)的存儲結構一定是線性結構
C.程序設計語言中的數(shù)組一般是順序存儲結構,因此,利用數(shù)組只能處理線性結構
D.以上三種說法都不對
57.以下合法的十六進制數(shù)是()。
A.0xB.0x4deC.0x1hD.oX77
58.有以下程序,程序運行后的輸出結果是_______。intf(intb[][4]){inti,j,s=0;for(j=0;j<4;j++){i=j;if(i>2)i=3-j;s+=b[i][j];}returns;}main(){inta[4][4]={{1,2,3,4},{0,2,4,6},{3,6,9,12},{3,2,1,0}};printf("%d\n"f(A));}
A.22B.11C.18D.16
59.若有下面的說明和定義,則sizeof(structaA)的值是()struetaa{intr1;doubler2floatr3;unionuu{charu1[5];longu2[2];}ua;}mya;
A.30B.29C.24D.22
60.設有定義:intk=1,m=2;floatf=7;則以下選項中錯誤的表達式是()。
A.k=k>=kB.-k++C.k%int(f)D.k>=f>=m
四、選擇題(20題)61.有以下程序程序運行后的輸出結果是()。
A.1,2B.1,1C.2,1D.2,2
62.
63.
64.
65.以下敘述中錯誤的是()。
A.C語言的可執(zhí)行程序是由一系列機器指令構成的
B.用C語言
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 南大版一年級心理健康第6課《來客人啦》課件
- 2024-2025學年陜西省漢中市西鄉(xiāng)縣小升初全真數(shù)學模擬預測卷含解析
- 2025湖南邵陽市市直事業(yè)單位和市屬國有企業(yè)人才引進37人筆試參考題庫附帶答案詳解
- 貴州食品工程職業(yè)學院《食品工藝學實驗》2023-2024學年第二學期期末試卷
- 堆龍德慶縣2024-2025學年三下數(shù)學期末質量跟蹤監(jiān)視模擬試題含解析
- 四川省樂山市井研縣2025屆數(shù)學五下期末聯(lián)考試題含答案
- 廣東潮州衛(wèi)生健康職業(yè)學院《ERP原理與應用》2023-2024學年第二學期期末試卷
- 2025年江西省九江市武寧縣四下數(shù)學期末復習檢測試題含解析
- 2025年陜西省商洛市山陽縣五下數(shù)學期末學業(yè)水平測試模擬試題含答案
- 2025屆山西省晉源區(qū)第七小學小升初總復習數(shù)學測試題含解析
- 加油站合作經(jīng)營協(xié)議書范本
- 人工智能對輿情管理的價值
- 地理-河南省部分重點高中九師聯(lián)盟2024-2025學年高三下學期2月開學考試試題和答案
- 老年護理相關法律法規(guī)
- 《陶瓷工藝技術》課件
- 變更強制措施的申請書
- 供電所安全演講
- 供應鏈韌性提升與風險防范-深度研究
- 化工原理完整(天大版)課件
- 《淞滬會戰(zhàn)》課件
- 《智能制造技術基礎》課件-第4章 加工過程的智能監(jiān)測與控制
評論
0/150
提交評論