




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2022-2023年河南省洛陽市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列排序算法中,其時間復雜度和記錄的初始排列無關的是()
A.插入排序B.堆排序C.快速排序D.冒泡排序
2.有以下程序:#include<stdio.h>voidfun(char*t,char*s){while(*t!=0)t++;while((*t++=*s++)!=0);}main(){charss[10]=“acc”,aa[10]=“bbxxyy”;fun(ss,aa);printf(“%s,%s\n”,ss,aa);}程序的運行結果是()。
A.acc,bbxxyy
B.accbbxxyy,bbxxyy
C.accxxyy,bbxxyy
D.accxyy,bbxxyy
3.下面敘述中錯誤的是()。
A.軟件測試的目的是發(fā)現(xiàn)錯誤并改正錯誤
B.對被調試的程序進行“錯誤定位”是程序調試的必要步驟
C.程序調試通常也稱為Debug
D.軟件測試應嚴格執(zhí)行測試計劃,排除測試的隨意性
4.有如下程序段
#include"stdio.h"
#include"string.h"
#defineN10
#defineM10
char*find(char(*a)[M],intn)
{char*q;inti;
q=a[0];
for(i=0;i<n;i++)
if(strcmp(a[i],q)<0)q=a[i];
returnq;}
main()
{chars[N][M]={"tomeetme","you","and","he","china"};
char*p;
intn=5;
p=find(s,n);
puts(p);}
則執(zhí)行后輸出的結果為A.A.heB.andC.youD.tomeetme
5.數據流圖用于抽象描述一個軟件的邏輯模型,數據流圖由一特定的圖符構成。下列圖符名標識的圖符不屬于數據流圖合法圖符的是______。
A.控制流B.加工C.數據存儲D.源和潭
6.若已知一個棧的進棧序列是1,2,3…n,其輸出序列是P1,P2,P3,…PN,若P1=n,則Pi(1<i<p)為()。
A.IB.n-iC.n-i+1D.不確定
7.若有定義inta=5,b=7;,則表達式a%=(b%2)運算后,a的值為()。
A.0B.1C.11D.3
8.哈希表的平均查找長度與處理沖突的方法無關()
A.對B.錯
9.在位運算中,操作數左移一位,其結果相當于A.A.操作數乘以2
B.操作數除以2
C.操作數除以4
D.操作數乘以4
10.有下列程序:
intfun(intn)
{if(n==1))returnl;
else
return(n+fun(n-1)):
}
main()
{intx;
seanf("%d",&x);x=fun(x);printf("%d\n",x);
}
執(zhí)行程序時,給變量x輸入l0,程序的輸出結果是()。
A.55
B.54
C.65
D.45
11.選出任何情況下都不引起二義性的宏定義()。
A.#definePOWER(x)x*x
B.#definePOWER(x)((x)*(x))
C.#definePOWER(x)(x*x)
D.#definePOWER(x)(x)*(x)
12.若ch為char型變量,k為int型變量(已知字符a的ASCII碼是97),則執(zhí)行下列語句后輸出的結果為()。
cb='b';
k=10;
printf("%X,%o,”,ch,ch,k);
printf("k=%%d\n",k);A.A.因變量類型與格式描述符的類型不匹配,輸出無定值
B.輸出項與格式描述符個數不符,輸出為0值或不定值
C.62,142,k=%d
D.62,142,k=%10
13.若長度為n的線性表采用順序存儲結構,在其第i個位置插入一個新元素的算法的時間復雜度為()。
A.O(0)B.O(1)C.O(n)D.O(n2)
14.
15.有以下程序(函數fun只對下標為偶數的元素進行操作):#include<stdio.h>voidfun(int*a。intn){inti,j,k,t;for(i=0;i<n-1;i+=2){k=i;for(j=i;j<n;j+=2)if(a[j]>a[k])k=j;t[a[i];a[i]=a[k];a[k]=t;}}main{intaa[lO]=[1,2,3,4,5,6,7],a;fun(aa,7);for(i=0;i<7;i++)printf("%d,",aa[i]);printf("n");}程序運行后的輸出結果是()。A.7,2,5,4,3,6,1,
B.1,6,3,4,5,2,7,
C.7,6,5,4,3,2,1,
D.1,7,3,5,6,2,1,
16.
有以下程序
#include<stdio.h>
#include<string.h>
typedefstrlIct{charname[9];charsex;floatscore[2];}STU;
STUf(STUa)
{STUb={"Zhao",m,85.0,90.0);inti;
strcpy(aname,b.name);
sex:b.sex;
for(i=0;i<2;i++)a.score[i]=b.score[i];
returna;
}
main
{STUc="Qian",f,95.0,92.0},d;
d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);
}
程序的運行結果是()。
A.Qian,f,95,92
B.Qian,m,85,90
C.Zhao,m,85,90
D.Zhao,f,95,92
17.有以下程序:
程序運行后的輸出結果是()。A.AaB.AbC.abD.Ba
18.下面C程序段中count++語句執(zhí)行的次數為()A.15B.16C.31D.32
19.以下程序段運行后x的值為()。inti,j,x=0;for(i=3;i>=1;i--)for(j=1;j<=i;j++)x=x+2A.8B.14C.10D.12
20.若執(zhí)行下面的程序時,從鍵盤上輸入5和2,則輸出結果是______。main(){inta,b,k;scanf("%d,%d",&a,&b);k=a;if(a<b)k=a%b;elsek=b%a;printf("%d\n",k);}
A.5B.3C.2D.0
二、2.填空題(20題)21.關系模型的完整性規(guī)則是對關系的某種約束條件,包括實體完整性、______和自定義完整性。
22.當循環(huán)隊列非空且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿,不能進行入隊運算。這種情況稱為【】。
23.當運行以下程序時,輸入abcd,程序的輸出結果是:()。
insert(charstr[])
{inti;
i=strlen(str);
while(i>0)
{str[2*i]=str[i];str[2*i-1]='*';i--;}
printf("%s\n",str);
}
main()
{charstr[40];
scanf("%s",str);insert(str);
}
24.若有下列定義:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;,則值為3的表達式為:______。
25.下面程序的輸出結果是【】。
main()
{inti=3,j=2;
char*a="DCBA";
printf("%c%c\n",a[i],a[j])
}
26.下列程序段是從鍵盤輸入的字符中統(tǒng)計小寫字母的個數,用換行符結束循環(huán)。請?zhí)羁铡?/p>
intn=0,c;
c=getchar();
while(c!='\n')
{if(______)
n++;
}
27.以下程序段打開文件后,先利用fseek函數將文件位置指針定位在文件末尾,然后調用ftell函數返回當前文件位置指針的具體位置,從而確定文件長度,請?zhí)羁铡?/p>
FILE*myf;longf1;
myf=【】("test.t","rb");
fscek(myf,(),SEEK_END);f1+ftell(myf);
fclose(myf);
printf("%1d\n",f1);
28.以下程序運行后的輸出結果是【】。
#include<stdio.h>
fun(intx)
{if(x/2>0)fun(x/2);
printf("%d",x);
}
main()
{fun(6);}
29.棧和隊列通常采用的存儲結構是【】。
30.最簡單的交換排序方法是______。
31.在一個容量為25的循環(huán)隊列中,若頭指針front=16,尾指針rear=9,則該循環(huán)隊列中共有上【】個元素。
32.某二叉樹中度為2的結點有18個,則該二叉樹中有【】個葉子結點。
33.若有程序
main()
{inti,j;
scanf("i=%d,j=%d",&i,&j);
printf("i=%d,j-%d\n",i,j);
}
要求給i賦10,給j賦20,則應該從鍵盤輸入______。
34.一個模塊直接調用的其他模塊的模塊個數稱為______。
35.二分法查找僅限于這樣的表:表中的數據元素必須有序,其存儲結構必須是______。
36.瀑布模型將軟件生存周期劃分為【】、開發(fā)和運行3個階段。
37.數據模型按不同應用層次分成3種類型,它們是概念數據模型、【】和物理數據模型。
38.以下程序的功能是對從鍵盤上輸入的兩個字符串進行比較,然后輸出兩個字符串中第一個不相同字符的ASCII碼值之差。請?zhí)羁铡?/p>
#include"stdio.h"
main()
{chara1[20],a2[20];intn=0,t;
scanf("%st",a1);scanf("%s",a2);
while(a1[n]!=a2[n]&&(a1[n]!=【】))
{t=【】;
printf("%d\n",t);n++;}}
39.有以下結構體說明和變量的定義,且指針p指向變量a,指針q指向變量b,則不能把結點b連接到結點a之后的語句是【】。
structnode
{chardata;
structnode*next;}a,b
40.以下函數用于求出一個2×4矩陣中的最大元素值。
max_value(arr)
intarr[][4];
{
inti,j,max;
max=arr[O][0];
for(i=0;i<2;i++)
for(j=0;【】;j++)
if(【】>max)max=【】;
return(max);
}
三、1.選擇題(20題)41.以下敘述中錯誤的是()。
A.C程序必須由一個或一個以上的函數組成
B.函數調用可以作為一個獨立的語句存在
C.若函數有返回值,必須通過咖語句返回
D.函數形參的值也可以傳回給對應的實參
42.下列敘述中正確的是()。A.用E-R圖能夠表示實體集之間一對一的聯(lián)系、一對多的聯(lián)系、多對多的聯(lián)系
B.用E-R圖只能表示實體集之間一對一的聯(lián)系
C.用E-R圖只能表示實體集之間一對多的聯(lián)系
D.用E-R圖表示的概念數據模型只能轉換為關系數據模型
43.下面的敘述正確的是()。
A.程序設計就是編制程序
B.程序的測試必須由程序員自己去完成
C.程序經份試改錯后還應進行再測試
D.程序經調試改錯后不必進行再測試
44.在數據庫設計中,將E-R圖轉換成關系數據模型的過程屬于()。A.需求分析階段B.概念設計階段C.邏輯設計階段D.物理設計階段
45.以下4個選項中,不能看成一條語句的是
A.;B.a=5,b=2.5,c=3.6;C.if(a<5);D.if(b!=5)x=2;y=6;
46.有以下程序#include〈string.h〉main(){charp[]={'a','b,'c'},q[10]={'a','b','c'};printf("%d%d\n",strlen(p),strlen(q));}以下敘述中正確的是
A.在給p和q數組置初值時,系統(tǒng)會自動添加字符串結束符,故輸出的長度都為3
B.由于p數組中沒有字符申結束符,長度不能確定;但q數組中字符串長度為3
C.由于q數組中沒有字符串結束符,長度不能確定:但p數組中字符串長度為3
D.由于p和q數組中都沒有字符串結束符,故長度都不能確定
47.運行下面的程序,其輸出結果為______。main(){printf("%d,%d",5%-3,-5%3);}
A.2,-2B.-2,2C.-2,-2D.2,2
48.常采用的兩種存儲結構是()。
A.順序存儲結構和鏈式存儲結構B.散列方法和索引方式C.鏈表存儲結構和數組D.線性存儲結構和非線性存儲結構
49.有以下程序main(){intx,y,z;x=y=1;z=X++,y++,++y;printf("%d,%d,%d\n",x,y,z);}程序運行后的輸出結果是
A.2,3,3B.2,3,2C.2,3,1D.2,2,1
50.下列關于隊列的敘述中正確的是______。A.在隊列中只能插入數據B.在隊列中只能刪除數據C.隊列是先進先出的線性表D.隊列是先進后出的線性表
51.以下說法中正確的是_______。
A.C語言程序總是從第一個函數開始執(zhí)行
B.在C語言程序中,要調用函數必須在main()函數中定義
C.C語言程序總是從main()函數開始執(zhí)行
D.C語言程序中的main()函數必須放在程序的開始部分
52.下列程序的輸出結果是______。main(){inti;for(i=0;i<2;i++)add();}add(){intx=0;staticinty=0;printf("%d,%d\n",x,y);x++;y=y+2;}
A.0,00,0B.0,00,2C.0,01,0D.0,01,2
53.以下程序的輸出結果是______。main(){inti,a[10];for(i=9;i>=0;i--)a[i]=1O-i;printf("%d%d%d",a[2],a[5],a[8]);}
A.258B.741C.852D.369
54.以下選項中可作為C語言合法常量的是______。
A.-80B.-80C.-8e1.0D.-80.0e
55.在深度為5的滿二叉樹中,葉子結點的個數為A.32B.31C.16D.15
56.下列程序的輸出結果是
#include"stdio.h"
main()
{inti,a=0,b=0;
for(i=1;i<10;i++)
{if(i%2==0)
{a++;
continue;}
b++;}
printf("a=%d,b=%d",a,b);}
A.a=4,b=4B.a=4,b=5C.a=5,b=4D.a=5,b=5
57.下列程序執(zhí)行后的輸出結果是()。voidfuncl(inti);voidfunc2(inti);charst[]="hello,friend!";voidfuncl(inti){printf("%C",st[i]);if(i<3){i+=2;func2(i);)}voidfunc2(inti){printf("%c",st[i]);if(i<3){i+=2;func1(i);}}main(){inti=0;funcl(i);printf("\n");)
A.hlmB.hloC.helloD.he1
58.下列選項中不屬于結構化程序設計方法的是()。
A.自頂向下B.逐步求精C.模塊化D.可復用
59.請閱讀以下程序:#include<stdio.h>#include<string.h>voidfun(intb[]){staticinti=0;do{b[i]+=b[i+1];}while(++i<2);}main(){intk,a[5]={1,3,5,4,9};fun(A);for(k=0;k<5;k++)printf("%d",a[k]);}上面程序的輸出是()。
A.13579B.48579C.48549D.48999
60.當變量c的值不為2、4、6時,值也為“真”的表達式是
A.(c==2)||(c==4)||(c==6)
B.(c>=2&&c<=6)||(c!=3)||(c!=5)
C.(c>=2&&c<=6)&&!(c%2)
D.(c>=2&&c<=6)&&(c%2!=1)
四、選擇題(20題)61.下面結構體的定義語句中,錯誤的是()。
A.structord{intx;intY;intz;}structorda;
B.structord{intx;imY;imz;};structorda;
C.structord{intx;intY;intZ;}a;
D.struct{intx;intY;intz;}a;
62.下列敘述中正確的是()。
A.為了建立一個關系,首先要構造數據的邏輯關系
B.表示關系的二維表中各元組的每一個分量還可以分成若干數據項
C.一個關系的屬性名表稱為關系模式
D.一個關系可以包括多個二維表
63.設有程序段:intk=12:while(k=1)k=k一1;則下列描述中正確的是()。A.while循環(huán)執(zhí)行10次B.循環(huán)是無限循環(huán)C.循環(huán)體語句一次也不執(zhí)行D.循環(huán)體語句執(zhí)行一次
64.設有定義:
65.(70)需求分析階段的任務是確定()
A.軟件開發(fā)方法
B.軟件開發(fā)工具
C.軟件開發(fā)費用
D.軟件系統(tǒng)功能
66.對于存儲同樣的一組數據元素而言().
A.順序結構比鏈接結構易于擴充空間
B.順序結構與鏈接結構相比,更有利于對元素進行插入、刪除運算
C.順序結構占用整塊空間,而鏈接結構不要求整塊空間
D.順序結構比鏈接結構多占存儲空間
67.下列敘述中正確的是()。
A.一個邏輯數據結構只能有一種存儲結構
B.邏輯結構屬于線性結構,存儲結構屬于非線性結構
C.一個邏輯數據結構可以有多種存儲結構,且各種存諸結構不影響數據處理的效率
D.一個邏輯數據結構可以有多種存儲結構,且各種存諸結構影響數據處理的效率
68.在E—R圖中,用來表示實體聯(lián)系的圖形是()。
A.橢圓形B.矩形C.菱形D.三角形
69.
70.軟件按功能可以分為應用軟件、系統(tǒng)軟件和支撐軟件(工具軟件)。下面屬于應用軟件的是().
A.學生成績管理系統(tǒng)B.C語言編譯程序C.UNIX操作系統(tǒng)D.數據庫管理系統(tǒng)
71.
72.下列關于單目運算符++,——的敘述中正確的是()。
A.它們的運算對象可以是任何變量和常量
B.它們的運算對象可以是char型變量和int型變量,但不能是float型變量
C.它們的運算對象可以是int型變量,但不能是double型變量和float型變量
D.它們的運算對象可以是char型變量、int型變量和float型變量
73.有以下程序:
程序運行后的輸出結果是()。
A.b,B"b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B
74.
75.有以下程序:
程序運行后的輸出結果是()。
A.LoB.30C.0D.64
76.
77.在下列模式中,能夠給出數據庫物理存儲結構與物理存取方法的是()。
A.外模式B.內模式C.概念模式D.邏輯模式
78.以下與存儲類別有關的四組說明符中,全部屬于靜態(tài)類的一組是()。
A.extem和static
B.auto和static
C.register和static
D.register和ex[erll
79.以下程序中函數sCmp的功能是返回形參指針sl和s2所指字符串中較小字符串的首地址。
若運行時依次輸入:abCd、abba和abC三個字符串,則輸出結果是()。
A.abCdB.abbaC.abCD.abCa
80.
五、程序改錯題(1題)81.下列給定程序是建立一個帶頭結點的單向鏈表,并用隨機函數為各結點數據域賦值。函數proc()的作用是求出單向鏈表結點(不包括頭結點)數據域中的最大值,并且作為函數值返回。請修改程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。試題程序:
六、程序設計題(1題)82.M名學生的成績已在主函數中放入一個帶頭結點的鏈表結構中,h指向鏈表的帶頭結點。請編寫函數proc(),它的功能是:找出學生的最高分,由函數值返回。注意:部分源程序給出如下。請勿改動main()函數和其他函數中的任何內容,僅在函數proc()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.B
2.B在函數fun中,前一個while循環(huán)的作用是,如果形參指針t所指內容不為0,則讓t增1,直到它指向0;后一個while循環(huán)的作用是,將s所指內容賦給t所指地址,然后兩者同時增1,直到賦給t的內容為0。由此可見,函數fun的作用就是將形參s所指字符串連接到形參t所指字符串末尾,相當于庫函數strcat。主函數中使用fun將數組aa中的字符串連接到數組ss中原有字符串之后,所以執(zhí)行完后,ss中的字符串為“accbbxxyy”。程序最后輸出的結果是accbbxxyy,bbxxyy。故本題答案為B選項。
3.A軟件測試的目的是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程,并不涉及改正錯誤,所以選項A錯誤。程序調試的基本步驟有:錯誤定位、修改設計和代碼,以排除錯誤、進行回歸測試,防止引進新的錯誤。程序調試通常稱為Debug,即排錯。軟件測試的基本準則有:所有測試都應追溯到需求、嚴格執(zhí)行測試計劃,排除測試的隨意性、充分注意測試中的群集現(xiàn)象、程序員應避免檢查自己的程序、窮舉測試不可能、妥善保存測試計劃等文件。故答案為A選項。
4.B在本題中,首先定義了兩個宏N和M,大小都為10,然后定義了一個返回指針的函數find,該函數帶有兩個形參,第一個為字符型的指針數組,第二個為整型變量,在函數體中,首先定義了一個指針變量q,并將形參中指針數組的第一個元素賦值給q,然后執(zhí)行for循環(huán),在循環(huán)體中,首先執(zhí)行條件判斷語句,其條件為strcmp(a[i],q)<0(strcmp函數的作用是比較兩字符串的大小,如果相等,則返回0值,如果參數中的第一個字符串大,則返回正值,否則返回負值),如果結果為真,說明指針數組當前元素所指向的字符串比q所指向的字符串小,此時,程序執(zhí)行將當前指針數組元素賦值給p,最后返回p,通過上面的分析我們可以看出,find函數的作用是找出指針數組中各元素所指向字符串的最小字符串。
在主函數中,定義了一個二維數組s,并賦了初值,然后定義一個指針變量p,用來存放函數find的返回值。調用函數find的參數分別為s和5,結合形參看find函數,不難知道調用find函數就是找出二維數組s中各字符串中最小的字符串,那么應該為and。此時,指針變量p指向字符串“and”的首地址,然后執(zhí)行puts(p),完成該字符串的輸出。因此,本題正確的答案是B。
5.A解析:數據流圖從數據傳遞和加工的角度,來刻畫數據流從輸入到輸出的移動變換過程。數據流圖中的主要圖形元素有:加工(轉換)、數據流、存儲文件(數據源)、源和潭。
6.C
7.A解析:本題考查'%'運算符的使用。運算符'%'要求兩個運算對象都為整型,其結果是整數除法的余數。本題中表達式ao%=(b%2)等價于a=a%o(b%2)=5%(7%2)=5%1=0。
8.B
9.A左移運算符“<<”是雙目運算符,其功能是把“<<”左邊的運算數的各二進位全部左移若干位,由“<<”右邊的數指定移動的位數,高位丟棄,低位補0。例如,a<<4是把a的各二進位向左移動4位。如a=00000011(十進制3),左移4位后為00110000(十進制48)。
10.A\n本題在函數intfun(intn)的定義中又出現(xiàn)了對函數fun的調用,所以函數fun是遞歸函數。因而在主函數中調用x=fun(x)時,當輸入10賦給變量X時,遞歸調用的過程為
\nfun(10)=l0+fun(9)=10+9+fun(8)=10+9+8+fun(7)
\n=10+9++8+7+fun(6)=10+9++8+7+6+fun(6)
\n=10+9++8+7+6+5+fun(4)
\n=10+9++8+7+6+5+4+fun(3)
\n=10+9++8+7+6+5+4+3+fun(2)
\n=10+9++8+7+6+5+4+3+2+fun(1)
\n=10+9++8+7+6+5+4+3+2=55
\n
11.B解析:引起帶參數宏的二義性主要有兩個方面:一是,參數之間因運算符優(yōu)先級不確定而帶來的二義性。例如本題的選項A),若程序中使用POWER(a+b),會展開為a+b*a+b,這樣就會先計算b*a的值,然后再加一個a和一個b,產生二義性。杜絕這種二義性的方法是在宏定義的每個參數外加上圓括號以保證總是先計算每個參數的值,就好像本題的選項D)那樣。另一個是,整個宏所代表的表達式因運算符優(yōu)先級不確定而帶來的二義性。例如本題的選項D),若程序中使用a/POWER(b),會展開為a/(b)*(b),這樣就會先計算a/b的值,然后再乘以b,產生二義性。杜絕這種二義性的方法是對整個宏定義加一個圓括號,就好像本題的選項B)那樣。故選項B)在任何情況下都不會引起二義性,應該選B。
12.C第1個printf函數,格式說明的個數是2,而輸出項的個數是3,所以對于多余的輸出項k不予輸出;第2個printf函數,有兩個%說明,第1個%后面的字符要原樣輸出。本題考查printf函數的格式。①“%x”和“%0”分別表示以十六進制和八進制無符合型輸出整型數據(不帶前導ox或0);②printf函數中格式說明符之前插入的任何字符都原樣輸出;③格式說明與輸出項的個數,也要相等,如果格式說明的個數少于輸出項的個數,則對于多余的輸出項不予輸出。
13.C
14.C
15.A對下標為偶數的元素進行降序排序,下標為奇數元素保持不變。
16.Cf函數的功能是對形參a的各個成員用結構體變量b的各個成員進行賦值后,然后返回變量a。
17.B函數fun將形參b賦給形參a,使得a和b都指向原b所指向的地址,然后對該地址的值執(zhí)行自增1;main函數中p1指向ch1,p2指向ch2。通過fun函數的調用,將ch2的值完成自增1,字符’a’自增1后變成字符’b’,所以程序輸出:Ab。本題答案為B選項。
18.A
19.D
20.C解析:本題考查簡單的if...else語句。先執(zhí)行條件if(a<b),顯然不成立,則執(zhí)行else語句。
21.參照完整性參照完整性
22.上溢上溢解析:入隊運算是指在循環(huán)隊列的隊尾加入一個新元素。這個運算有兩個基本操作:首先將隊尾指針進一(即rear=rear+1),并當rear=m+1時置rear=1;然后將新元素插入隊尾指針指向的位置。當循環(huán)隊列非空(s=1)時且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿,不能進行入隊運算,這種情況稱為“上溢”。
23.a*b*c*d*a*b*c*d*解析:字符處理函數strlen()測試字符串常量的長度,不包括‘\\0’在內。因此,函數insert()實現(xiàn)了將字符數組中每個非‘\\0’的字符后插入字符‘*’的功能。故輸出結果是a*b*c*d*。
24.p+=2*(p++)p+=2,*(p++)解析:由題可知a[2]=3,因此只要使指針p指向a[3],然后再引用指針的值就可以了。
25.AB
26.c>='a'&&c<='z'c>='a'&&c<='z'解析:小寫字母在內存中以ASCII的形式存入,且從a到z依次遞增,所以可以直接用c>='a'&&c<='z'判斷是不是小寫字母;c!='\\n'判斷是用換行符結束循環(huán)。
27.fopenfopen解析:C語言中的文件分為:ASCII文件與二進制j文件。文件在使用前打開,使用后要關閉。打開文件的函數為:fopen(),調用形式為:fp=fopen('文件名','使用文件方式:);
關閉文件的函數為:fclose(),調用形式為:fclose(fp);其中fp為文件指針。
28.136136解析:程序中定義了一個遞歸調用函數fun。程序運行時,先把實參6傳給形參。if語句中6/2>0成立,執(zhí)行fun(x/2),即fun(3),同時輸出x的值6;再判斷if條件,3/2>0成立,再執(zhí)行fun(x/2),即fun(1),同時輸出x的值3;此時1/2>0不再成立,輸出1。而遞歸調用的輸出順序是相反的,故輸出結果為136。
29.鏈式存儲和順序存儲鏈式存儲和順序存儲
30.冒泡排序冒泡排序解析:交換排序是指借助數據元素之間的互相交換進行排序的一種方法。冒泡排序是一種最簡單的交換排序方法,它是通過相鄰元素之間的相互交換逐步將線性表變成有序。
31.1818解析:設循環(huán)隊列的容量為n。若rear>front,則循環(huán)隊列中的元素個數為rear-front;若rear<front,則循環(huán)隊列中的元素個數為n+(rear-from)。題中,front=16,rear=9,即rear>front,所以,循環(huán)隊列中的元素個數為m+(rear-front)=25+(9-16)=18。
32.1919解析:根據二叉樹的性質:在任意一棵二叉樹中,度為。的結點(即葉子結點)總是比度為2的結點多一個。本題中度為2的結點數為18,故葉子結點數為18+1=19個。
33.i=0j=20i=0j=20解析:本題考核的知識點是scanf()數的使用.該函數的第一個參數是格式字符串,主要由兩類字符組成,一類是非格式符要求原樣輸入,一類是格式符對應要輸入的變量,所以說本題中應該原樣輸入i=j=,后面分別給變量0和20,所以說空格處應該填入i=0,j=20。
34.扇出扇出解析:在結構圖中,調用一個給定模塊的模塊個數稱為扇入,一個模塊直接調用的其他模塊個數稱為扇出。
35.順序存儲(順序方式存儲)順序存儲(順序方式存儲)解析:二分法查找對表的要求是有序的順序表,即第一要求是數據元素有序,第二要求是按順序方式存儲。
36.計劃計劃解析:瀑布模型是B.W.Boehm于1976年提出的。它將軟件生存周期劃分為計劃、開發(fā)、運行3個時期,每個時期又分為若干個階段。
37.邏輯數據模型邏輯數據模型解析:數據是現(xiàn)實世界符號的抽象,而數據模型(datamodel)則是數據特征的抽象,它從抽象層次上描述了系統(tǒng)的靜態(tài)特征、動態(tài)行為和約束行為,為數據庫系統(tǒng)的信息表示與操作提供一個抽象的框架。數據模型按不同的應用層次分成3種類型,它們是概念數據模型(conceptualdatamodel)、邏輯數據模型(logicdatamodel)、物理數據模型(physicaldatamodel)。
38.\0'al[n]-a2[n]或s2[n]-al[n]\\0'\r\nal[n]-a2[n]或s2[n]-al[n]
39.a.next=aba.next=ab解析:選項A)中,指針變量q保存的就是變量b的地址,選項B)中的p是指針變量,應該是p->next=&b;在選項D)中,用*運算符取出結構體變量,并且保存的就是b的地址。
40.j<4arr[i][j]arr[i][j]j<4\r\narr[i][j]\r\narr[i][j]解析:2*4矩陣實際上就是一個二維數組,結合本題應為arr[2][4],所以在第一個循環(huán)中應當填寫“4”;第二個橫線處是要判斷當前的數組元素值是否大于max,所以應填寫arr[i][j];第三個橫線處是要將當前大于max的數組元素的值賦給變量max,所以應當填寫“arr[i][j]”。
41.D解析:本題主要考查函數的概念。C語言規(guī)定,實參變量對形參變量的數據傳遞是“值傳遞”,即單向傳遞,只由實參傳給形參,而不能由形參傳回來給實參。由此可知選項D不正確,故應該選擇D。
42.A解析:用E-R圖可以簡單明了地描述實體及其相互之間的聯(lián)系,用E-R圖還可以方便地描述多個實體集之間的聯(lián)系和一個實體集內部實體之間的聯(lián)系。因此,選項A中的說法是正確的,而選項B與C中的說法都是錯誤的。
為了建立用戶所要求的數據庫.必須把概念結構(用E-R圖表示的概念數據模型)轉換為某個具體的數據庫管理系統(tǒng)所支持的數據模型,這就是邏輯結構設計所要完成的任務。
在已給定數據庫管理系統(tǒng)的情況下,數據庫的邏輯設計可以分兩步來進行:
①將概念模型轉換成一般的數據模型;
②將一般的數據模型轉換為特定的數據庫管理系統(tǒng)所支持的數據模型。
由此可知,用E-R圖表示的概念數據模型不僅能轉換為關系數據模型,還可以轉換為其他數據模型,如網狀模型和層次模型等。因此,選項D中的說法也是錯誤的。
43.C解析:程序調試的任務是診斷和改正程序中的錯誤,改正以后還需要再測試。
44.CE-R圖轉換成關系模型數據則是把圖形分析出來的聯(lián)系反映到數據庫中,即設計出表,所以屬于邏輯設計階段。
45.D解析:選項D)為兩條語句。
46.B解析:本題考查了對字符數組賦初值.使用初始化列表對字符數組賦初值,系統(tǒng)不會自動為其添加字符串結束符,使用字符串初始化時才會自動添加,所以選項A是錯的。數組長度在未指定的情況下由初始化列表項中數據的個數決定,若已指定且初始化項數不足時,多出部分會自動初始化為0,0等價于字符串結束符'\\0'。所以選項B是正確的,C和D都是錯誤的。本題應該選B。
47.A解析:在C中,參與%運算的兩個參數都必須為整型,在大多數C編譯器下(包括TurboC)都采用了“向0靠近”的原則,即當兩個運算量有一個為負數時,余數的符號由被除數的符號決定。故本題答案為A。
48.AA?!窘馕觥烤€性表的存儲通常分為兩種存儲結構:順序存儲結構和鏈式存儲結構。
\n
49.C解析:整型變量x、y的初值都為1,“x++,y++,++y”是一個逗號表達式,程序執(zhí)行“z=x++,y++,++y”后,x的值為2,y的值為3,z取豆號表達式中第二個表達式的值,為1。
50.C隊列是指允許在一端進行插入、而在另一端進行刪除的線性表,選項A和選項B錯誤。允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭。在隊列中,最先插入的元素將最先能夠被刪除,反之,最后插入的元素將最后才能被刪除。所以,隊列又稱為“先進先出”或“后進后出”的線性表,它體現(xiàn)了“先來先服務”的原則,選項C正確,選項D錯誤。
51.C解析:C語言的程序是由主函數main()開始運行,由主函數來調用其他函數,函數必須是并列的,定義后使用,不能在一個函數中定義其他函數,main()函數不一定要放在程序的開始部分,故選C。
52.B
53.C解析:在本題運行時主要注意的是當i=9時,a[i]=l0-9=1;a[i]=8時,a[i]=10-8=2;i=7時,a[i]=10-7=3;……依此類推,直到i=O時,a[i]=10-0=10;此時,i的值已變?yōu)?1,判斷for的循環(huán)條件,不成立,然后輸出a[2],a[5],a[8]分別為8,5,2。
54.A解析:選項B中,以0開頭表示是一個八進制數,而八進制數的取值范圍是0~7,所以-080是不合法的;選項C和D中,e后面的指數必須是整數,所以也不合法。
55.C2(n-1)
=2(5-1)=16
56.B解析:continue語句的作用是跳過本次循環(huán)體中余下尚未執(zhí)行的語句,接著再一次進行循環(huán)條件的判定。當能被2整除時,a就會增1,之后執(zhí)行continue語句,直接執(zhí)行到for循環(huán)體的結尾,進行i++,判斷循環(huán)條件。
57.B解析:本題定義了兩個很相似的子函數互相調用,子函數首先輸出st[i],然后判斷i是否小于3,是的話就讓i增2后調用另一個子函數。在主函數中只調用了一次funcl(0),funcl()輸出st[0],然后調用func2(2),func2()輸出st[2],又調用func1(4),此時i不小于3,所以funcl()只輸出st[4]就返回了。故最終輸結果為h1o,正確答案為B。
58.D解析:20世紀70年代以來,提出了許多軟件設計方法,主要有①逐步求精:對復雜的問題,應設計一些子目標作過渡,逐步細化;②自頂向下:程序設計時應先考慮總體,后考慮細節(jié);先考慮全局目標,后考慮局部目標。不要一開始就過多追求眾多的細節(jié),先從最上層總目標開始設計,逐步使問題具體化;⑧模塊化:一個復雜問題,肯定是由若干稍簡單的問題構成。模塊化是把程序要解決的總目標分解為分目標,再進一步分解為具體的小目標,把每個小目標稱為一個模塊,而可復用是面向對象程序設計的一個優(yōu)點。
59.C
60.B解析:滿足表達式(c>=2&&c<=6)的整型變量c的值是2,3,4,5,6。當變量c的值不為2,4,6時,其值只能為3或5,所以表達式c!=3和c!=5中至少有一個為真,即不論c為何值,選項B中的表達式都為“真”。
61.AA選項stnletonl{intx;inty;int2;struetoraa;錯誤,不能在定義結構體的同時,又用結構體類型名定義變量。應該寫成B選項或者D選項的格式。
62.C解析:在格式化模型中,要事先根據應用的需要,確定數據之間的邏輯關系,即先對數據進行結構化。在關系模型中,不需要事先構造數據的邏輯關系,只要將數據按照一定的關系存入計算機,也就是建立關系。所以選項A錯誤。對于一個表示關系的二維表,其最基本的要求是表中元組的每一個分量必須是不可分的數據項,即不允許表中再有表。所以,選項B、D說法是錯誤的。一個關系的屬性名表稱為關系模式,也就是二維表的表框架,相當于記錄型。因此,選項C說法正確。
63.C本題考查while,while循環(huán)表達式k=1是個賦值表達式而不是邏輯表達式,k的初值為12不符合循環(huán)條件,所以循環(huán)體一次也不執(zhí)行。
64.A選項中可以在聲明變量的同時為data2賦值,但是“data2=(2,6);”應寫作
“d2={2,61;’',因此選擇A)。
65.D
66.C\n頃序結構中,元素之間的關系通過存儲單元的鄰接關系來表示,其存儲空間必須占用整塊空間;鏈接結構中,結點之間的關系通過指針來表示,不要求整塊空間。
\n
67.D數據的存儲結構是指數據的邏輯結構在計算機存儲空間中的存放形式,一種數據結構可以根據需要采用不同的存儲結構,用的存儲結構有順序和鏈式結構。用不同的存儲結構,其處理的效率是不同的。
68.CC?!窘馕觥縀—R圖也即實體~聯(lián)系圖(EntityRelationshipDiagram),提供了表示實體型、屬性和聯(lián)系的方法,用來描述現(xiàn)實世界的概念模型,構成E—R圖的基本要素是實體型、屬性和聯(lián)系,其表示方法為:實體型(Entity):用矩形表示,矩形框內寫明實體名;屬性(Attribute):用橢圓形表示,并用無向邊將其與相應的實體連接起來;聯(lián)系(Relationship):用菱形表示,菱形框內寫明聯(lián)系名,并用無向邊分別與有關實體連接起來,同時在無向邊旁標上聯(lián)系的類型(1:1,1:n或m:n)。
69.D
70.A軟件按功能可以分為:應用軟件、系統(tǒng)軟件、支撐軟件。操作系統(tǒng)、編譯程序、匯編程序、網絡軟件、數據庫管理系統(tǒng)都屬于系統(tǒng)軟件,因此B)、C)、D)都是系統(tǒng)軟件,只有A)是應用軟件。
71.B
72.D++(或——)的運算結果是使運算對象增1(或減1);運算對象可以是整型變量、實型變量,也可以是字符型變量,但不能是常量或表達式。++(或——)的結合方向是”自右向左”。
73.A本題重點考察函數的調用,首先要了解字母對應的ASCIl碼。例如A為65,a為97。即字母+1劂可得到下一個字母。-其次是函數形參和實參的問題,運行過程如下:在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.;豳數返回執(zhí)行ptud(。%C,%c、n”,b,8);輸出b,A,因此A選項正確。
74.A
75.D本題目中靜態(tài)局部變量x,在靜態(tài)存儲區(qū)內分配存儲單元。在程序整個運行期間都不釋放。所以第一次循環(huán)s的值為2,第二次循環(huán)中,返回的x的值為4,所以s的值為8,第三次循環(huán),返回的x的值為8,所以S的值為64.
76.C
77.B數據庫有三層模式結構,邏輯模式是數據的全局邏輯結構的描述,外模式也稱為子模式,是局部數據的邏輯結構描述,而內模式也稱為存儲模式,是數據庫物理存儲結構和存取方法的描述。
78.Aauto用于聲明變量的生存期為自動,即將不在任何類、結構、枚舉、聯(lián)合和函數中定義的變量視為全局變量,而在函數中定義的變量視為局部變量。這個關鍵字通常會被省,因為所有的變量默認就是aut0的。register定義的變量告訴編譯器盡可能的將變量存在CPU內部寄存器中而不是通過內存尋址訪問以提高效率。static變量會被放在程序的全局存儲區(qū)中,這樣可以在下一次調用的時候還可以保持原來的賦值。這一點是它與堆棧變量和堆變量的區(qū)別。變量用static告知編譯器,自己僅僅在變量的作用范圍內可見。這一點是它與全局變量的區(qū)別。當static用來修飾全局變量時,它就改變了全局變量的作用域。extern限制在了當前文件里,但是沒有改變其存放位置,還是在全局靜態(tài)儲存區(qū)。extem外部聲明,該變量在其他地方有被定義過。因此,答案為A選項。
79.Bmain函數將輸入的三個字符串存在二維數組str中,并通過兩次streW函數調用,將最小的一個字符串復制到string中。abcd、abba、abc中最小的字符串為abba。
80.D
81.(1)錯誤:proc(NODE*h)
正確:intproc(NODE*h)
(2)錯誤:P=h->next;
正確:P=p->next;
【解析】根據題意,將數據域中的最大值作為函數值返回,可知函數proc()有一個整型的返回值,因此“proc(NODE*h)”應改為“intproe(NODE*h)”;每執(zhí)行完一次循環(huán),指針P指向其本身結點的下一個結點,因此,“P=h->next”應改為“P=P->next”。
82.
【解析】要得到學生的最高分,需要將每一個學生的成績進行比較。學生的成績存儲在鏈表中,其結束標志為最后一個結點的next指針即NULL。比較每一個學生的成績,將最高分返回給主函數。
</i<p)為()。2022-2023年河南省洛陽市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列排序算法中,其時間復雜度和記錄的初始排列無關的是()
A.插入排序B.堆排序C.快速排序D.冒泡排序
2.有以下程序:#include<stdio.h>voidfun(char*t,char*s){while(*t!=0)t++;while((*t++=*s++)!=0);}main(){charss[10]=“acc”,aa[10]=“bbxxyy”;fun(ss,aa);printf(“%s,%s\n”,ss,aa);}程序的運行結果是()。
A.acc,bbxxyy
B.accbbxxyy,bbxxyy
C.accxxyy,bbxxyy
D.accxyy,bbxxyy
3.下面敘述中錯誤的是()。
A.軟件測試的目的是發(fā)現(xiàn)錯誤并改正錯誤
B.對被調試的程序進行“錯誤定位”是程序調試的必要步驟
C.程序調試通常也稱為Debug
D.軟件測試應嚴格執(zhí)行測試計劃,排除測試的隨意性
4.有如下程序段
#include"stdio.h"
#include"string.h"
#defineN10
#defineM10
char*find(char(*a)[M],intn)
{char*q;inti;
q=a[0];
for(i=0;i<n;i++)
if(strcmp(a[i],q)<0)q=a[i];
returnq;}
main()
{chars[N][M]={"tomeetme","you","and","he","china"};
char*p;
intn=5;
p=find(s,n);
puts(p);}
則執(zhí)行后輸出的結果為A.A.heB.andC.youD.tomeetme
5.數據流圖用于抽象描述一個軟件的邏輯模型,數據流圖由一特定的圖符構成。下列圖符名標識的圖符不屬于數據流圖合法圖符的是______。
A.控制流B.加工C.數據存儲D.源和潭
6.若已知一個棧的進棧序列是1,2,3…n,其輸出序列是P1,P2,P3,…PN,若P1=n,則Pi(1<i<p)為()。
A.IB.n-iC.n-i+1D.不確定
7.若有定義inta=5,b=7;,則表達式a%=(b%2)運算后,a的值為()。
A.0B.1C.11D.3
8.哈希表的平均查找長度與處理沖突的方法無關()
A.對B.錯
9.在位運算中,操作數左移一位,其結果相當于A.A.操作數乘以2
B.操作數除以2
C.操作數除以4
D.操作數乘以4
10.有下列程序:
intfun(intn)
{if(n==1))returnl;
else
return(n+fun(n-1)):
}
main()
{intx;
seanf("%d",&x);x=fun(x);printf("%d\n",x);
}
執(zhí)行程序時,給變量x輸入l0,程序的輸出結果是()。
A.55
B.54
C.65
D.45
11.選出任何情況下都不引起二義性的宏定義()。
A.#definePOWER(x)x*x
B.#definePOWER(x)((x)*(x))
C.#definePOWER(x)(x*x)
D.#definePOWER(x)(x)*(x)
12.若ch為char型變量,k為int型變量(已知字符a的ASCII碼是97),則執(zhí)行下列語句后輸出的結果為()。
cb='b';
k=10;
printf("%X,%o,”,ch,ch,k);
printf("k=%%d\n",k);A.A.因變量類型與格式描述符的類型不匹配,輸出無定值
B.輸出項與格式描述符個數不符,輸出為0值或不定值
C.62,142,k=%d
D.62,142,k=%10
13.若長度為n的線性表采用順序存儲結構,在其第i個位置插入一個新元素的算法的時間復雜度為()。
A.O(0)B.O(1)C.O(n)D.O(n2)
14.
15.有以下程序(函數fun只對下標為偶數的元素進行操作):#include<stdio.h>voidfun(int*a。intn){inti,j,k,t;for(i=0;i<n-1;i+=2){k=i;for(j=i;j<n;j+=2)if(a[j]>a[k])k=j;t[a[i];a[i]=a[k];a[k]=t;}}main{intaa[lO]=[1,2,3,4,5,6,7],a;fun(aa,7);for(i=0;i<7;i++)printf("%d,",aa[i]);printf("n");}程序運行后的輸出結果是()。A.7,2,5,4,3,6,1,
B.1,6,3,4,5,2,7,
C.7,6,5,4,3,2,1,
D.1,7,3,5,6,2,1,
16.
有以下程序
#include<stdio.h>
#include<string.h>
typedefstrlIct{charname[9];charsex;floatscore[2];}STU;
STUf(STUa)
{STUb={"Zhao",m,85.0,90.0);inti;
strcpy(aname,b.name);
sex:b.sex;
for(i=0;i<2;i++)a.score[i]=b.score[i];
returna;
}
main
{STUc="Qian",f,95.0,92.0},d;
d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);
}
程序的運行結果是()。
A.Qian,f,95,92
B.Qian,m,85,90
C.Zhao,m,85,90
D.Zhao,f,95,92
17.有以下程序:
程序運行后的輸出結果是()。A.AaB.AbC.abD.Ba
18.下面C程序段中count++語句執(zhí)行的次數為()A.15B.16C.31D.32
19.以下程序段運行后x的值為()。inti,j,x=0;for(i=3;i>=1;i--)for(j=1;j<=i;j++)x=x+2A.8B.14C.10D.12
20.若執(zhí)行下面的程序時,從鍵盤上輸入5和2,則輸出結果是______。main(){inta,b,k;scanf("%d,%d",&a,&b);k=a;if(a<b)k=a%b;elsek=b%a;printf("%d\n",k);}
A.5B.3C.2D.0
二、2.填空題(20題)21.關系模型的完整性規(guī)則是對關系的某種約束條件,包括實體完整性、______和自定義完整性。
22.當循環(huán)隊列非空且隊尾指針等于隊頭指針時,說明循環(huán)隊列已滿,不能進行入隊運算。這種情況稱為【】。
23.當運行以下程序時,輸入abcd,程序的輸出結果是:()。
insert(charstr[])
{inti;
i=strlen(str);
while(i>0)
{str[2*i]=str[i];str[2*i-1]='*';i--;}
printf("%s\n",str);
}
main()
{charstr[40];
scanf("%s",str);insert(str);
}
24.若有下列定義:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;,則值為3的表達式為:______。
25.下面程序的輸出結果是【】。
main()
{inti=3,j=2;
char*a="DCBA";
printf("%c%c\n",a[i],a[j])
}
26.下列程序段是從鍵盤輸入的字符中統(tǒng)計小寫字母的個數,用換行符結束循環(huán)。請?zhí)羁铡?/p>
intn=0,c;
c=getchar();
while(c!='\n')
{if(______)
n++;
}
27.以下程序段打開文件后,先利用fseek函數將文件位置指針定位在文件末尾,然后調用ftell函數返回當前文件位置指針的具體位置,從而確定文件長度,請?zhí)羁铡?/p>
FILE*myf;longf1;
myf=【】("test.t","rb");
fscek(myf,(),SEEK_END);f1+ftell(myf);
fclose(myf);
printf("%1d\n",f1);
28.以下程序運行后的輸出結果是【】。
#include<stdio.h>
fun(intx)
{if(x/2>0)fun(x/2);
printf("%d",x);
}
main()
{fun(6);}
29.棧和隊列通常采用的存儲結構是【】。
30.最簡單的交換排序方法是______。
31.在一個容量為25的循環(huán)隊列中,若頭指針front=16,尾指針rear=9,則該循環(huán)隊列中共有上【】個元素。
32.某二叉樹中度為2的結點有18個,則該二叉樹中有【】個葉子結點。
33.若有程序
main()
{inti,j;
scanf("i=%d,j=%d",&i,&j);
printf("i=%d,j-%d\n",i,j);
}
要求給i賦10,給j賦20,則應該從鍵盤輸入______。
34.一個模塊直接調用的其他模塊的模塊個數稱為______。
35.二分法查找僅限于這樣的表:表中的數據元素必須有序,其存儲結構必須是______。
36.瀑布模型將軟件生存周期劃分為【】、開發(fā)和運行3個階段。
37.數據模型按不同應用層次分成3種類型,它們是概念數據模型、【】和物理數據模型。
38.以下程序的功能是對從鍵盤上輸入的兩個字符串進行比較,然后輸出兩個字符串中第一個不相同字符的ASCII碼值之差。請?zhí)羁铡?/p>
#include"stdio.h"
main()
{chara1[20],a2[20];intn=0,t;
scanf("%st",a1);scanf("%s",a2);
while(a1[n]!=a2[n]&&(a1[n]!=【】))
{t=【】;
printf("%d\n",t);n++;}}
39.有以下結構體說明和變量的定義,且指針p指向變量a,指針q指向變量b,則不能把結點b連接到結點a之后的語句是【】。
structnode
{chardata;
structnode*next;}a,b
40.以下函數用于求出一個2×4矩陣中的最大元素值。
max_value(arr)
intarr[][4];
{
inti,j,max;
max=arr[O][0];
for(i=0;i<2;i++)
for(j=0;【】;j++)
if(【】>max)max=【】;
return(max);
}
三、1.選擇題(20題)41.以下敘述中錯誤的是()。
A.C程序必須由一個或一個以上的函數組成
B.函數調用可以作為一個獨立的語句存在
C.若函數有返回值,必須通過咖語句返回
D.函數形參的值也可以傳回給對應的實參
42.下列敘述中正確的是()。A.用E-R圖能夠表示實體集之間一對一的聯(lián)系、一對多的聯(lián)系、多對多的聯(lián)系
B.用E-R圖只能表示實體集之間一對一的聯(lián)系
C.用E-R圖只能表示實體集之間一對多的聯(lián)系
D.用E-R圖表示的概念數據模型只能轉換為關系數據模型
43.下面的敘述正確的是()。
A.程序設計就是編制程序
B.程序的測試必須由程序員自己去完成
C.程序經份試改錯后還應進行再測試
D.程序經調試改錯后不必進行再測試
44.在數據庫設計中,將E-R圖轉換成關系數據模型的過程屬于()。A.需求分析階段B.概念設計階段C.邏輯設計階段D.物理設計階段
45.以下4個選項中,不能看成一條語句的是
A.;B.a=5,b=2.5,c=3.6;C.if(a<5);D.if(b!=5)x=2;y=6;
46.有以下程序#include〈string.h〉main(){charp[]={'a','b,'c'},q[10]={'a','b','c'};printf("%d%d\n",strlen(p),strlen(q));}以下敘述中正確的是
A.在給p和q數組置初值時,系統(tǒng)會自動添加字符串結束符,故輸出的長度都為3
B.由于p數組中沒有字符申結束符,長度不能確定;但q數組中字符串長度為3
C.由于q數組中沒有字符串結束符,長度不能確定:但p數組中字符串長度為3
D.由于p和q數組中都沒有字符串結束符,故長度都不能確定
47.運行下面的程序,其輸出結果為______。main(){printf("%d,%d",5%-3,-5%3);}
A.2,-2B.-2,2C.-2,-2D.2,2
48.常采用的兩種存儲結構是()。
A.順序存儲結構和鏈式存儲結構B.散列方法和索引方式C.鏈表存儲結構和數組D.線性存儲結構和非線性存儲結構
49.有以下程序main(){intx,y,z;x=y=1;z=X++,y++,++y;printf("%d,%d,%d\n",x,y,z);}程序運行后的輸出結果是
A.2,3,3B.2,3,2C.2,3,1D.2,2,1
50.下列關于隊列的敘述中正確的是______。A.在隊列中只能插入數據B.在隊列中只能刪除數據C.隊列是先進先出的線性表D.隊列是先進后出的線性表
51.以下說法中正確的是_______。
A.C語言程序總是從第一個函數開始執(zhí)行
B.在C語言程序中,要調用函數必須在main()函數中定義
C.C語言程序總是從main()函數開始執(zhí)行
D.C語言程序中的main()函數必須放在程序的開始部分
52.下列程序的輸出結果是______。main(){inti;for(i=0;i<2;i++)add();}add(){intx=0;staticinty=0;printf("%d,%d\n",x,y);x++;y=y+2;}
A.0,00,0B.0,00,2C.0,01,0D.0,01,2
53.以下程序的輸出結果是______。main(){inti,a[10];for(i=9;i>=0;i--)a[i]=1O-i;printf("%d%d%d",a[2],a[5],a[8]);}
A.258B.741C.852D.369
54.以下選項中可作為C語言合法常量的是______。
A.-80B.-80C.-8e1.0D.-80.0e
55.在深度為5的滿二叉樹中,葉子結點的個數為A.32B.31C.16D.15
56.下列程序的輸出結果是
#include"stdio.h"
main()
{inti,a=0,b=0;
for(i=1;i<10;i++)
{if(i%2==0)
{a++;
continue;}
b++;}
printf("a=%d,b=%d",a,b);}
A.a=4,b=4B.a=4,b=5C.a=5,b=4D.a=5,b=5
57.下列程序執(zhí)行后的輸出結果是()。voidfuncl(inti);voidfunc2(inti);charst[]="hello,friend!";voidfuncl(inti){printf("%C",st[i]);if(i<3){i+=2;func2(i);)}voidfunc2(inti){printf("%c",st[i]);if(i<3){i+=2;func1(i);}}main(){inti=0;funcl(i);printf("\n");)
A.hlmB.hloC.helloD.he1
58.下列選項中不屬于結構化程序設計方法的是()。
A.自頂向下B.逐步求精C.模塊化D.可復用
59.請閱讀以下程序:#include<stdio.h>#include<string.h>voidfun(intb[]){staticinti=0;do{b[i]+=b[i+1];}while(++i<2);}main(){intk,a[5]={1,3,5,4,9};fun(A);for(k=0;k<5;k++)printf("%d",a[k]);}上面程序的輸出是()。
A.13579B.48579C.48549D.48999
60.當變量c的值不為2、4、6時,值也為“真”的表達式是
A.(c==2)||(c==4)||(c==6)
B.(c>=2&&c<=6)||(c!=3)||(c!=5)
C.(c>=2&&c<=6)&&!(c%2)
D.(c>=2&&c<=6)&&(c%2!=1)
四、選擇題(20題)61.下面結構體的定義語句中,錯誤的是()。
A.structord{intx;intY;intz;}structorda;
B.structord{intx;imY;imz;};structorda;
C.structord{intx;intY;intZ;}a;
D.struct{intx;intY;intz;}a;
62.下列敘述中正確的是()。
A.為了建立一個關系,首先要構造數據的邏輯關系
B.表示關系的二維表中各元組的每一個分量還可以分成若干數據項
C.一個關系的屬性名表稱為關系模式
D.一個關系可以包括多個二維表
63.設有程序段:intk=12:while(k=1)k=k一1;則下列描述中正確的是()。A.while循環(huán)執(zhí)行10次B.循環(huán)是無限循環(huán)C.循環(huán)體語句一次也不執(zhí)行D.循環(huán)體語句執(zhí)行一次
64.設有定義:
65.(70)需求分析階段的任務是確定()
A.軟件開發(fā)方法
B.軟件開發(fā)工具
C.軟件開發(fā)費用
D.軟件系統(tǒng)功能
66.對于存儲同樣的一組數據元素而言().
A.順序結構比鏈接結構易于擴充空間
B.順序結構與鏈接結構相比,更有利于對元素進行插入、刪除運算
C.順序結構占用整塊空間,而鏈接結構不要求整塊空間
D.順序結構比鏈接結構多占存儲空間
67.下列敘述中正確的是()。
A.一個邏輯數據結構只能有一種存儲結構
B.邏輯結構屬于線性結構,存儲結構屬于非線性結構
C.一個邏輯數據結構可以有多種存儲結構,且各種存諸結構不影響數據處理的效率
D.一個邏輯數據結構可以有多種存儲結構,且各種存諸結構影響數據處理的效率
68.在E—R圖中,用來表示實體聯(lián)系的圖形是()。
A.橢圓形B.矩形C.菱形D.三角形
69.
70.軟件按功能可以分為應用軟件、系統(tǒng)軟件和支撐軟件(工具軟件)。下面屬于應用軟件的是().
A.學生成績管理系統(tǒng)B.C語言編譯程序C.UNIX操作系統(tǒng)D.數據庫管理系統(tǒng)
71.
72.下列關于單目運算符++,——的敘述中正確的是()。
A.它們的運算對象可以是任何變量和常量
B.它們的運算對象可以是char型變量和int型變量,但不能是float型變量
C.它們的運算對象可以是int型變量,但不能是double型變量和float型變量
D.它們的運算對象可以是char型變量、int型變量和float型變量
73.有以下程序:
程序運行后的輸出結果是()。
A.b,B"b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B
74.
75.有以下程序:
程序運行后的輸出結果是()。
A.LoB.30C.0D.64
76.
77.在下列模式中,能夠給出數據庫物理存儲結構與物理存取方法的是()。
A.外模式B.內模式C.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權】 ISO 13317-5:2025 EN Determination of particle size distribution by gravitational liquid sedimentation methods - Part 5: Photosedimentation techniques
- 2025年度人工智能產業(yè)擔保合作協(xié)議書
- 2025年度餐飲企業(yè)代理記賬與食品安全管理合同
- 2025年度電信設備采購與維護服務合同范本
- 2025年度廠房租賃合同履約監(jiān)督管理服務合同
- 2025年度二手房無證房產買賣合同風險防范條款
- 2025年度工業(yè)用地場地租賃及設備安裝合同
- 2025年服裝、鞋帽加工機械項目合作計劃書
- 2025年電能表標準校驗裝置項目建議書
- 幼兒園學期計劃五彩斑斕燦爛生活
- 鑄造廠總降壓變電所及廠區(qū)配電系統(tǒng)設計
- 航拍中國優(yōu)秀課件
- 《做自己的心理醫(yī)生 現(xiàn)代人的心理困惑和自我療愈策略》讀書筆記思維導圖PPT模板下載
- 2022-2023學年上海市楊浦區(qū)上海同濟大附屬存志學校七年級數學第二學期期中綜合測試模擬試題含解析
- 小學音樂組集體備課計劃
- XX學校服采購工作方案(含一封信、備案表、反饋表)
- 血液透析安全注射臨床實踐專家共識解讀
- GB/T 41873-2022塑料聚醚醚酮(PEEK)樹脂
- SB/T 10940-2012商用制冰機
- GB/T 33107-2016工業(yè)用碳酸二甲酯
- GB/T 25945-2010鋁土礦取樣程序
評論
0/150
提交評論