




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2022年湖北省孝感市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列特征中不是面向對象方法的主要特征的是()。
A.多態(tài)性B.繼承C.封裝性D.模塊化
2.C語言常量的類型從字面形式上可區(qū)分,以下判斷中正確的是()。
A.2E3——整型B.2.0E3——實型C.‘\025’——字符串D.“a”——字符型
3.以下符合C語言語法的賦值表達式是()。
A.d=9+e+f=d+9B.d=9+e,f=d+9C.d=9十e,e++,d十9D.d=9十e++=d十7
4.在一個C程序中
A.main函數(shù)必須出現(xiàn)在所有函數(shù)之前
B.main函數(shù)可以在任何地方出現(xiàn)
C.main函數(shù)必須出現(xiàn)在所有函數(shù)之后
D.main函數(shù)必須出現(xiàn)在固定位置
5.程序運行后的輸出結果是()。A.0304.B.2050C.3344D.3040
6.若有宏定義“#defineA_RECT(W,H)W*H”和以下程序段:intx=5,y=6,area1,area2;area1=A_RECT((x-1),(y+1));area2=A_RECT(x+3,y-1);執(zhí)行上述程序段后,變量area1和area2的值分別是()。
A.022B.2840C.2822D.040
7.
8.有以下程序:#includeintadd(inta,intb){return(a+b);}Main(){Intk,(*f)(),a=5,b=10;f=add;...}則以下函數(shù)調用語句錯誤的是()。A.k=f(a,b);B.k=add(a,b);C.k=(*f)(a,b);D.k=*f(a,b);
9.有以下程序:#include<stdio.h>voidmain(){char*s=“\ta\018bc”;for(;*s!=‘\0’;s++)printf(“*”);printf(“\n”);}程序運行后的輸出結果是()。
A.******B.*********C.*****D.*******
10.讀取二進制文件的函數(shù)調用形式為:fread(buffersize,count,fp);,其中buffer代表的是()。
A.一個文件指針,指向待讀取的文件
B.一個整型變量,代表待讀取的數(shù)據(jù)的字節(jié)數(shù)
C.一個內存塊的首地址,代表讀人數(shù)據(jù)存放的地址
D.一個內存塊的字節(jié)數(shù)
11.有以下程序:#include<stdio.h>main(){inta=7;while(a--);print[("%d\n",a);}程序運行后的輸出結果是()。A.-1B.0C.1D.7
12.有以下程序:
執(zhí)行后輸出結果是()。
A.n,tuesdayB.d,mondayC.U,mondayD.0,wednesday
13.以下敘述正確的是()。
A.“charc1,*c2,*c3[10];”是合法的變量定義語句
B.數(shù)組說明符的方括號中不能使用表達式
C.數(shù)組元素下標可以是非整數(shù)
D.若有定義“chararray[4];”,則語句“printf(“%c”,array[“3”]);”是合法的
14.有三個關系R、s和T如下:
由關系R和s通過運算得到關系T,則所使用的運算為()。
A.并B.自然連接C.笛卡爾積D.交
15.有嵌套的if語句:if(a<b) if(a<c)k=a; elsek=c;elseif(b<c)k=b;elsek=c;以下選項中與上述if語句等價的語句是()。
A.k=(a<b)?((b<c)?a:b):((b>c)?b:c);
B.k=(a<b)?((a<c)?a:c):((b<c)?b:c);
C.k=(a<b)?a:b;k=(b<c)?b:c;
D.k=(a<b)?a:b;k=(a<c)?a:c;
16.如果對線性表的操作只有兩種,即刪除第一個元素,在最后一個元素的后面插入新元素,則最好使用()。
A.只有表頭指針沒有表尾指針的循環(huán)單鏈表B.只有表尾指針沒有表頭指針的循環(huán)單鏈表C.非循環(huán)雙鏈表D.循環(huán)雙鏈表
17.設循環(huán)隊列的存儲空間為Q(1:35),初始狀態(tài)為front=rear=35?,F(xiàn)經過一系列入隊與退隊運算后,front=15,rear=15,則循環(huán)隊列中的元素個數(shù)為()。
A.20B.0或35C.15D.16
18.若有以下程序段
intm=0xabc,n=0xabc;
m-=n;
printf("%x\n",m);
執(zhí)行后的輸出結果是A.A.0X0
B.0x0
C.0
D.0xABC
19.C語言中運算對象必須是整型的運算符是()。
A.%=B./C.=D.<=
20.若有定義和語句:int**pp),*P,a=20,b=10;pp=&p;p=&a;p=&b;printf("%d,%d\n",*P,*PP);則輸出結果是()。A.20,10B.20,20C.10,20D.10,10
二、2.填空題(20題)21.在結構化設計方法中,數(shù)據(jù)流圖表達了問題中的數(shù)據(jù)流與加工間的關系,并且每一個______實際上對應一個處理模塊。
22.設變量已正確定義為整型,則表達式n=i=2,++i,i++的值為【】。
23.在深度為7的滿二叉樹中,度為2的結點個數(shù)為【】。
24.數(shù)據(jù)庫管理系統(tǒng)常見的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和【】3種。
25.以下程序可以把從鍵盤上輸入十進制數(shù)(10ng型)以二到十六進制數(shù)的形式輸出,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{charb[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','
E','F'};
intc[64],d,i=0,base;
longn;
printf("Enteranumber:\n");scanf("%1d",&n);
printf("Enternewbase:\n");scanf("%1d",&base);
do
{c[i]=【】;
i++;
n=n/base;
}while(n!=0);
printf("Theresultis:\n");
for(--i;i>=0;--i)
{d=c[i];
printf("%c",b【】);
}
}
26.以下程序的輸出結果是【】。
floatfun(intx,inty)
{return(x+y);}
main()
{inta=2,b=5,c=8;
printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}
27.在軟件維護時,對測試階段未發(fā)現(xiàn)的錯誤進行測試、診斷、定位、糾錯直至回歸測試的過程稱為【】。
28.函數(shù)pi的功能是根據(jù)以下公式近似求得的:
pi*pi/6=1+1/(2*2)+1/(3.3)+...+1/(n*n)
請在下面的函數(shù)中天空,完成求pi的功能。
#include<math.h>
doublepi(longn)
{doubles=0.0,longi;
for(i=1;i<<=n;i++)s=s+【】;
return(sqrt(6*s));
}
29.若有如下定義:
int[]={11,24,56,19,29,39),*t=s;
則不移動指針t,且通過指針t引用數(shù)組中值為29的元素的表達式是【】。
30.下列表達式用于判斷y是否為閏年。閏年的判斷條件是:年號能被4整除但不能被100整除或年號能被400整除,請?zhí)羁誣_____。
31.設有如下宏定義
#defineMYSWAP(z,x,y)
{z=x;x=y;y=z;}
以下程序段通過宏調用實現(xiàn)變量a,b內容交換,請?zhí)羁铡?/p>
floata=5,b=16,c;
MYSWAP(【】a,b);
32.若i、j為int類型,則以下程序段內循環(huán)體的總執(zhí)行次數(shù)是【】。
for(i=5;i;i--)
for(j=0;j<3;j++)
{
}
33.有以下程序:
main()
{intt=1,i=5;
for(;i>=0;i--)t*=i;
printf("%d\n",t);
}
執(zhí)行后的輸出結果是【】。
34.若有以下程序:
main()
{int,p,a=5;
if(P=a!=0)
printf("%d\n",p);
else
printf("%d\n",p+2);
}
執(zhí)行后輸出結果是【】。
35.設有以下結構類型說明和變量定義,則變量a在內存所占字節(jié)數(shù)是【】。
structstud
{charnum[6];
mts[4];
doubleave;
}a,*p;
36.以下程序的定義語句中,x[1]的初值是(),程序運行后輸出的內容是()。#include<stdio.h>main(){intx[]={1,2,3,4,5,6,7,8,9,10,1l,12,13,14,15,16},*p[4],i;for(i=0;i<4;i++){p[i]=&x[2*i+1],printf("q%d”,p[i][0]);}printf("\n");}
37.在關系模型中,二維表的行稱為______。
38.fseek函數(shù)的正確調用形式是【】。
39.在算法的4個特性中,算法必須能在執(zhí)行有限個步驟之后終止指的是算法的______特性。
40.表示""整數(shù)x的絕對值大于5""時值為""真""的C語言表達式是【】。
三、1.選擇題(20題)41.下列敘述中正確的是()。
A.軟件測試應該由程序開發(fā)者來完成
B.程序經調試后一般不需要再測試
C.軟件維護只包括對程序代碼的維護
D.以上三種說法都不對
42.下列選項中,值為1的表達式是()。
A.1-'0'B.1-'\0'C.'1'-0D.'\0','0'
43.下列程序的輸出結果是()。main(){inta=4,b=5,c;if(a<B){c=a*b;printf("%d,%d,%d\n",b,a,C);}else{c=b/a;printf("%d,%d,%d\n",b,a,C);}}
A.4,5,12B.20C.5,4,20D.12
44.下面不屬于軟件工程的3個要素的是______。
A.工具B.過程C.方法D.環(huán)境
45.C語言庫函數(shù)fgets(str,n,fp)的功能是______。
A.從fp指向的文件中讀取長度n的字符串存入str指向的內存
B.從fp指向的文件中讀取長度不超過n-1的字符串存入str指向的內存
C.從fp指向的文件中讀取n個字符串存入str指向的內存
D.從str讀取至多n個字符到文件fp
46.下列程序執(zhí)行的輸出結果是()。#include<stdio.h>main(){chara[2][4];strcpy(a,"are");strcpy(a[1],"you");a[0][3]='&';printf("%s\n",a);}
A.are&youB.youC.areD.&
47.對于下述程序,在方式串分別采用"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字節(jié)、7字節(jié)B.7字節(jié)、5字節(jié)C.5字節(jié)、7字節(jié)D.5字節(jié)、5字節(jié)
48.若有下列說明和語句,已知int型數(shù)據(jù)占2個字節(jié),則下列語句的輸出結果是()。structst{chara[15];intb;doublec;};printf("%d",sizcof(structst));
A.15B.8C.25D.2
49.以下選項中,與k=n++完全等價的表達式是A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+1
50.下列敘述中正確的是A.線性表是線性結構B.棧與隊列是非線性結構C.線性鏈表是非線性結構D.二叉樹是線性結構
51.下列運算符中,不屬于關系運算符的是______。
A.+=B.!=C.<=D.==
52.在函數(shù)scanf的格式控制中,格式說明的類型與輸入項的類型應該對應匹配。如果類型不匹配,系統(tǒng)將()。
A.不予接收B.并不給出出錯信息,但不能得到正確的數(shù)據(jù)C.能接收到正確輸入D.給出出錯信息,不予接收輸入
53.在函數(shù)調用過程中,如果函數(shù)funA調用了函數(shù)funB,函數(shù)funB又調用了函數(shù)funA,則()。
A.稱為函數(shù)的直接遞歸調用B.稱為函數(shù)的間接遞歸調用C.稱為函數(shù)的循環(huán)調用D.C語言中不允許這樣的遞歸調用
54.對表達式for(表達式1;;表達式3)可理解為()。
A.for(表達式1;0;表達式3)
B.for(表達式1;1;表達式3)
C.for(表達式1;表達式1;表達式3)
D.for(表達式1;表達式3;表達式3)
55.若有以下程序段intm=0xabc,n=0xubc;m-=n;printf("%X\n",m);執(zhí)行后輸出結果是
A.0X0B.0x0C.0D.0XABC
56.有以下程序;intf1(doubleA){returna*a;}intf2(doublex,doubley){doublea,b;a=n(x);b=f1(y);returna+b;}main(){doublew;w=f2(1.1,2.0);┇}變量w中的值是()
A.5.21B.5C.5D.0
57.若有說明語句:double*p,a;則能通過scanf語句正確給輸入項讀入數(shù)據(jù)的程序段是()。
A.6357B.6135C.1357D.691357
58.有以下程序
#inGlude<stdlib.h>
structNODE{
intnum;
structNODE*next;
}
main()
{structNODE*p,*q,*r;
intsum=0;
p=(structNODE*)malloc(sizeof(structNODE));
q=(structNODE*)malloc(sizeof(structNODE));
r=(stnlctNODE*)malloc(sizeof(structNODE));
p->num=1;q->num=2;r->num=3;
p->next=q;q->next;r;r->next=NULL;
sum+=q->next->Num,sum+=p->num;
printf("%d\n",sum);
}
執(zhí)行后輸出結果是
A.3B.4C.5D.6
59.已有定義inta=3;和輸出語句printf("%8x",A);以下正確的敘述是()。
A.整型變量的輸出格式符只有%d一種
B.%x是格式符的一種,它可以適用于任何一種類犁的數(shù)據(jù)
C.%x是格式符的一種,其變量的值按十六進制數(shù)輸出,但%08x是錯誤的
D.%8x是正確的格式符,其中數(shù)字8規(guī)定了輸出字段的寬度
60.下列程序的運行結果是______。main(){inta[6],i;for(i=2;i<6;i++){a[i]=4*(i-2*(i>3))%5;printf("%2d",a[i]);}}
A.2323B.1212C.3232D.2222
四、選擇題(20題)61.
62.下面程序的輸出結果是()。
A.xyzabcABCB.zabcABCC.xyabcABCD.yzabcABC
63.有以下程序:
64.
65.
66.有以下程序:
程序輸出結果是()。
A.0,1,2,0B.0,0,0,3C.1,1,2,0D.編譯有錯
67.相對于數(shù)據(jù)庫系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)關聯(lián)差、數(shù)據(jù)不一致性和()。
A.可重用性差B.安全性差C.非持久性D.冗余性
68.設有如下關系表:
則下列操作中,正確的是()。
A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S
69.以下選項中,能用作用戶標識符的是()。A._0_B.8—8C.voidD.unsigned
70.
71.(28)在數(shù)據(jù)管理技術的發(fā)展過程中,經歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中數(shù)據(jù)獨立性最高的階段是()
A.數(shù)據(jù)庫系統(tǒng)
B.文件系統(tǒng)
C.人工管理
D.數(shù)據(jù)項管理
72.
73.有以下程序:
執(zhí)行時輸入:aBeDefG##<;回車>;,則輸出結果是()。
A.AbCdEFgB.ABCDEFGC.BCDEFGHD.bedefgh
74.
75.有以下程序:
程序的運行結果是()。
A.Qian,f,95,92
B.Qian,m,85,90
C.Zhao,f,95,92
D.Zhao,m,85,90
76.軟件生命周期是指()。A.軟件產品從提出、實現(xiàn)、使用維護到停止使用退役的過程
B.軟件從需求分析、設計、實現(xiàn)到測試完成的過程
C.軟件的開發(fā)過程
D.軟件的運行維護過程
77.執(zhí)行語句printf(“%u\n”,+12345)的輸出結果是()。
A.12345B.0C.-1D.非定值
78.有如下程序段
#include"stdio.h"
main()
{intk[10];
intj;
for(j=0;j<10;j++)
scanf("%d",&k[j]);
for(j=9;j>=0;j--)
printf("%d",k[j]);}
則程序段實現(xiàn)的功能是
A.輸入10個數(shù)據(jù)的順序輸入并輸出
B.輸入10個數(shù)據(jù)的逆序存放
C.輸入10個數(shù)據(jù)的逆序輸出
D.以上敘述均錯誤
79.若有定義語句:doublea,*p=&a;,以下敘述中錯誤的是()。A.定義語句中的*號是一個間址運算符
B.定義語句中的*號是一個說明符
C.定義語句中的p只能存放double類型變量的地址
D.定義語句中,*p=&a把變量a的地址作為初值賦給指針變量P
80.下列說法不正確的是
A.數(shù)據(jù)庫減少了數(shù)據(jù)冗余B.數(shù)據(jù)庫實現(xiàn)了數(shù)據(jù)的共享
C.數(shù)據(jù)庫避免了一切數(shù)據(jù)的重復D.數(shù)據(jù)庫具有較高的數(shù)據(jù)獨立性
五、程序改錯題(1題)81.下列給定程序中函數(shù)fun的功能是:用遞歸算法計算斐波拉契數(shù)列中第n項的值。從第l項起,斐波拉契數(shù)列為:1,1,2,3,5,8,13,21,…
例如,若給n輸入7,則該項的斐波拉契數(shù)值為l3。
請改正程序中的錯誤,使它能得出正確結果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結構!
試題程序:
#include<stdio.h>
longfun(intg)
{
//****found****
switch(g);
{
case0:return0;
//****found****
casel:case2:return1;
}
return(fun(g-1)+fun(g-2));
}
voidmain
{
longfib;intn;
printf("Inputn:");
scanf("%d",&n);
printf("n=%d\n",n);
fib=fun(n);
printf("fib=%d\n\n",fib);
}
六、程序設計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),該函數(shù)的功能是將M行N列的二維數(shù)組中的數(shù)據(jù),按行的順序依次放到一維數(shù)組中,一維數(shù)組中數(shù)據(jù)的個數(shù)存放在形參n所指的存儲單元中。例如,若二維數(shù)組中的數(shù)據(jù)為333333334444444455555555則一維數(shù)組中的內容應該為333333334444444455555555。注意:部分源程序在文件prog1.c中。請勿改動main()函數(shù)和其他函數(shù)中的任何內容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:
參考答案
1.DD?!窘馕觥棵嫦驅ο笤O計方法與面向過程設計方法有本質的不同,其基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。其特點包括:分類性、多態(tài)性、封裝性、模塊獨立性、繼承和多態(tài)性等。模塊化是結構化程序設計的特點。
2.B2E3是實型常量的指數(shù)形式,選項A錯誤;2.0E3是實型常量的指數(shù)形式,選項B正確;‘\\025’是八進制表示的轉義字符,選項C錯誤;“a”是雙引號標注的字符串常量,選項D錯誤。故本題答案為B選項。
3.B
4.B解析:一個完整的C語言程序有且僅有一個主函數(shù)(main()函數(shù))。程序總從main()函數(shù)的第一條語句開始執(zhí)行,到main()函數(shù)的最后一條語句結束,其他函數(shù)都是在執(zhí)行main()函數(shù)時,通過函數(shù)調用或嵌套調用而得以執(zhí)行的。C語言規(guī)定,main()函數(shù)在程序中的位置是任意的,故選項A、選項C和選項D均不正確。所以,B選項為所選。
5.D[解析]第一次循環(huán)溈0.i%2為0.執(zhí)行switch(a[0]%62)中的case0語句后內容即a[0]++,a[0]的值變成3;第二次循環(huán)的值為1.i%62為1.執(zhí)行case1:a[]=0;所以a[1]的值變成0;第三次循環(huán)的值為2.i%62為0.執(zhí)行switch([2]%62)中的case1語句后的內容a[2]--,a[2]的值變成4;第四次循環(huán)的值為3.i%2為1.執(zhí)行case1:ai]=0;所以a[3]的值變成0.
6.C帶參數(shù)的宏定義的替換過程是:用宏調用提供的實參字符串,直接置換宏定義命令行中相應的形參字符串,非形參字符串保持不變。題干中,“area1=A_RECT((x-1),(y+1));”宏替換后為“area1=(x-1)*(y+1);”,“area2=A_RECT(x+3,y-1);”宏替換后為“area2=x+3*y-1;”。所以area1=4*7=28,area2=5+3*6-1=22。故本題答案為C選項。
7.C
8.DD)選項中*f(a,b)表示調用后返回一個指向整型數(shù)據(jù)的地址指針,即該函數(shù)的返回值為指針類型,所以不能將其賦值給整形變量k。
9.Amain函數(shù)中定義一個字符指針s,指向字符串“\\ta\\018bc”。for循環(huán)遍歷s指向的字符串中的字符,然后輸出根據(jù)題意可以理解為:s指向的字符串中有多少個字符,就輸出多少個s指向的字符串中字符分別是\\t(轉義字符)、a、\\01(轉義字符)、8、b、c,總共6個。其中因為8不屬于八進制中的數(shù)字,所以“\\018”不是一個轉義字符,而“\\01”是轉義字符。故本題答案為A選項。
10.Cfread函數(shù)中的參數(shù)buffer是內存塊的首地址,輸入的數(shù)據(jù)存入此內存塊中。
11.A此題考查a--和--a之間的區(qū)別,當while(a--)為真循環(huán)執(zhí)行,a--是執(zhí)行再減1,所以答案選擇A。
12.CP指向字符串”tuesday”,因此*(P+1)的值為n。s[0]=”monday”。
13.AC語言規(guī)定定義數(shù)組時,數(shù)組的長度必須是整型常量,數(shù)組說明符的方括號中表達式只要是常量即合法,因此選項B錯誤。C語言規(guī)定,數(shù)組元素下標必須是非負整數(shù),因此選項C錯誤。選項D中,“chararray[4]”數(shù)組的長度為4,“army[“3”]”中“3”是常量字符串,與C語言規(guī)定數(shù)組的下標必須是非負整數(shù)不符。故本題答案為A選項。
14.D關系R與s經交運算后所得到的關系是由那些既在R內又在S內的共有元組組成的,記為RnS。
15.B題目中嵌套語句的含義是當“a<b”且“a<c”成立時,將a的值賦給k。如果“a<b”成立而“a<c”不成立,則將c的值賦給k。如果“a<b”不成立而“b<c”成立,則將b的值賦給k。如果“a<b”不成立且“b<c”也不成立,則將c的值賦給k。判斷條件表達式,只有B選項可以表示這個含義。故本題答案為B選項。
16.B
17.BQ(1:35)則隊列的存儲空間為35;對空條件:front=rear(初始化時:front=rear),隊滿時:(rear+1)%n==front,n為隊列長度(所用數(shù)組大小),因此當執(zhí)行一系列的出隊與入隊操作,front=rear.則隊列要么為空,要么為滿。
18.C本題考查C語言中的數(shù)據(jù)輸出格式。
題目中定義了兩個整型變量m、n,對這兩個變量賦值,輸入的數(shù)值為十六進制整數(shù),并且有m=n。進行m-n運算后,將減法所得到的值賦給m,并將m值輸出。其中printf的格式字符選用的格式字符為x,即以十六進制形式輸出整數(shù)。注意,0x是表示該數(shù)為十六進制的標志,輸出數(shù)據(jù)時,數(shù)據(jù)前面不會自動加上進制的標志。
19.A解析:C++語言規(guī)定:取余運算符的運算對象必須是整型,復合運算符“%=”中包含%運算,它的運算對象也必須是整型。
20.D本題考查指針變量的賦值。**PP是定義一個指針變量,語句pp=&p是將pp指向指針P,*P和**PP都是指針P所指的內存空間的內容,即b的值。
21.加工加工解析:數(shù)據(jù)流圖是從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。其中的每一個加工對應一個處理模塊。
22.33解析:本題考查的是C語言逗號表達式的相關知識。程序在計算逗號表達式時,從左到右計算由逗號分隔各表達式的值,整個逗號表達式的值等于其中最后一個表達式的值。本題中,首先i被賦值為2,再自加1,最后i++的值計算為3。
23.63或26-163或26-1解析:在滿二叉樹中,每層結點都是滿的,即每層結點都具有最大結點數(shù)。深度為k的滿二叉樹,一共有2k-1個結點,其中包括度為2的結點和葉子結點。因此,深度為7的滿二叉樹,一共有27-1個結點,即127個結點。根據(jù)二叉樹的另一條性質,對任意一棵二叉樹,若終端結點(即葉子結點)數(shù)為n0,而其度數(shù)為2的結點數(shù)為n2,則n0=n2+1。設深度為7的滿二叉樹中,度為2的結點個數(shù)為x,則改樹中葉子結點的個數(shù)為x+1。則應滿足x+(x+1)=127,解該方程得到,x的值為63。結果上述分析可知,在深度為7的滿二叉樹中,度為2的結點個數(shù)為63。
24.關系模型關系模型解析:數(shù)據(jù)庫管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層系統(tǒng)管理軟件,是一種系統(tǒng)軟件,是用戶與數(shù)據(jù)庫之間的一個標準接口。其總是基于某種數(shù)據(jù)模型,可以分為層次模型、網(wǎng)狀模型和關系模型。
25.n%base[d]
26.99解析:本題考查函數(shù)的綜合知識。首先,我們可以利用強制轉換類型轉換運算符,將一個表達式轉換成所需類型。如:(double)a是將a轉換成double類型;(int)(x+y)是將x+y的值轉換成整型。
本題可按部就班地逐步運算:
fun((int)fun(a+c,b),a-c)
fun((int)fun(10,5),2-8)
fun((int)15.000000,-6)
fun(15,-6)
9
27.校正性維護校正性維護
28.1.0/i/i或1.0/(i*i)1.0/i/i或1.0/(i*i)解析:由題面中提供的計算pi的公式可知:在第i項其值為1/(i*i),考慮到運算結果為浮點數(shù),故必須要將1轉化為浮點數(shù)或采用1.0/(i*i)的形式。故本題應填1.0/(i*i)或其等效形式。
29.*(t+4)*(t+4)解析:本題定義了指針變量t,并用數(shù)組s的首地址給它賦初值。t+4代表數(shù)組第6個元素的地址,*(t+4)是取得該地址中的值即29,而此時并沒有移動指針t。
30.(y%4==0)&&(y%100!=0)||(y%400==0)(y%4==0)&&(y%100!=0)||(y%400==0)解析:考查邏輯表達。年號能被4整除(y%4==0)但不能被100整除(y%100!=0),兩者是與的關系,年號能被400整除即y%400==0,與前兩項是或的關系。
31.cc解析:該題考查以下兩個知識點:
(1)用一個指定的標識符(即名字)來代表一個字符串,它的一般形式為#define標識符字符串
(2)在MYSWAP宏定義中,利用中間變量z來交換x和y的值,所以要實現(xiàn)a和b的交換,只需通過中間變量即可,所以,此處應填c。
32.1515解析:執(zhí)行二重循環(huán)時,外循環(huán)每執(zhí)行一次,內循環(huán)將循環(huán)一遍。本題的程序段中外循環(huán)執(zhí)行了5次,內循環(huán)執(zhí)行了3次,所以程序段內循環(huán)體的總執(zhí)行次數(shù)是15。
33.00解析:for循環(huán)執(zhí)行完成后t=5×4×3×2×1×0=0。
34.11解析:首先計算if語句后面的表達式,根據(jù)運算符的優(yōu)先級可知,先算“a!=0”,該值為1,再把1賦值給p,結果為1(真),執(zhí)行其后的printf語句,輸出的值為1。
35.2222解析:C語言里char類型占1個字節(jié),int類型占2個字節(jié),float類型占4個字節(jié),double類型占8個字節(jié),因此變量a在內存中所占字節(jié)數(shù)=1*6+4*2+1*8=6+8+8=22。
36.2246822468解析:p為指向數(shù)組的指針變量,數(shù)組x[1]為數(shù)組x[]的第二個元素,值為2;進入for循環(huán)i=0時,p[0]=&x[1]…直到循環(huán)完畢,指針分別指向數(shù)組x[]中的第2、4、6、8個元素,所以第二個空白處應填2468。
37.元組元組解析:在關系型數(shù)據(jù)庫中,用二維表來表示關系,二維表的表名即關系名,二維表的行稱為關系的元組,二維表的列,稱為關系的屬性。
38.fseek(文件指針位移量起始點)fseek(文件指針,位移量,起始點)解析:本題考查函數(shù)fseek的用法。fseek函數(shù)的調用形式為:
fseek(文件指針,位移量,起始點)
“起始點”用0,1或2代替,其中,0代表“文件開始”;1為“當前位置”;2為“文件末尾”。“位移量”指以“起始點”為基點,向前移動的字節(jié)數(shù)。ANSIC和大多數(shù)C版本要求位移量是long型數(shù)據(jù),這樣當文件的長度大于64k時不致出現(xiàn)問題。ANSIC標準規(guī)定在數(shù)字的末尾加一個字母L,就表示long型。
39.有窮性有窮性解析:算法的4個基本特性包括:可靠性、確定性、有窮性和擁有足夠的情報,其中,算法的有窮性指的是算法必須在有限的時間內完成,即算法必須在執(zhí)行有限個步驟之后終止。
40.x>5||x<-5x<-5或x<-5||x>5x>5||x<-5,x<-5或x<-5||x>5解析:要使整數(shù)x的絕對值大于5,則x大于5或x小于5,用C語言表示即為:x>5||x<-5或者x<-5||x>5。故本題答案為;x>5||x<-5或者x<-5||x>5。
41.D解析:本題考核軟件測試、軟件調試和軟件維護的概念。軟件測試的目標是在精心控制的環(huán)境下執(zhí)行程序,以發(fā)現(xiàn)程序中的錯誤,給出程序可靠性的鑒定。軟件測試具有挑剔性,測試不是為了證明程序是正確的,而是在設想程序有錯誤的前提下進行的,其目的是設法暴露程序中的錯誤和缺陷,就是說,測試是程序執(zhí)行的過程,目的在于發(fā)現(xiàn)錯誤;一個好的測試在于能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤;一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤。由于測試的這一特征,一般應當避免由開發(fā)者測試自己的程序。所以,選項A的說法錯誤。
調試也稱排錯,目的是發(fā)現(xiàn)錯誤的位置,并改正錯誤,經測試發(fā)現(xiàn)錯誤后,可以立即進行調試并改正錯誤;經過調試后的程序還需進行回歸測試,以檢查調試的效果,同時也可防止在調試過程中引進新的錯誤。所以,選項B的說法錯誤。
軟件維護通常有4類:為糾正使用中出現(xiàn)的錯誤而進行的改正性維護;為適應環(huán)境變化而進行的適應性維護;為改進原有軟件而進行的完善性維護;為將來的可維護和可靠而進行的預防性維護。軟件維護不僅包括程序代碼的維護,還包括文檔的維護。文檔可以分為用戶文檔和系統(tǒng)文檔兩類。但無論是哪類文檔,都必須與程序代碼同時維護。只有與程序代碼完全一致的文檔才有意義和價值。所以,選項C的說法錯誤。
綜上所述,選項A、B、C的說法都錯誤,所以,選項D為正確答案。
42.B解析:在C程序中,字符量可參與任何整數(shù)運算。字符參與運算時,首先要將字符轉換為對應的ASCII碼值再參與整數(shù)運算。字符'1'對應的ASCII碼值是49,字符'0'對應的ASCII碼值是48,字符'\\0'是字符串結束標識符NULL,其對應的ASCII碼值是0。
43.C解析:本題考查ifelse語句。第一個if語句,先判斷條件,發(fā)現(xiàn)a<b成立,執(zhí)行下列的復合語句,得c=a*b=20,b、a的值不變。
44.D解析:軟件工程包括3個要素,即方法、工具和過程。方法是完成軟件工程項目的技術手段;工具支持軟件的開發(fā)、管理、文檔生成;過程支持軟件開發(fā)的各個環(huán)節(jié)的控制和管理。
45.B解析:fgets函數(shù)的作用是從指定的文件讀入一個字符串。fgets(str,n,fp);中的n為要求得到的字符的個數(shù),但只從fp指向的文件輸入n-1個字符,然后在最后加—個'\\0'字符,因此得到的字符串共有n個字符。
46.A解析:strcpy(a,'are')中數(shù)組名a代表數(shù)組首地址的地址常量,該操作把are復制到a中,a[0][3]=\'&\',且strcpy(a[1],'you')把you復制到a[1]中,故輸出a為“are&you”。
47.B解析:以'wt'方式寫入的是字符文件,轉義字符\'\\n\'被看作兩個字符來處理。而'wb'方式寫入的是二進制文件,轉義字符\'\\n\'是一個字符。
48.C解析:本題主要考查結構體的內存使用:對結構體而言,結構中不同的成員分別使用不同的內存空間,一個結構所占內存空間的大小是結構中每個成員所占內存空間大小的總和,結構中每個成員相互獨立。題中intb占2個字節(jié),chara[15]占15個字節(jié),doublec占8個字節(jié),所以共25個字節(jié)。
49.A解析:在本題中k=n++,為后綴運算。根據(jù)其運算規(guī)則,首先n先加一,但n++表達式的值依然n原來的值,即k的值沒有改變。選項A中先給k賦值為n,然后n再加1,k值沒有變化,所以這個表達式和本題中表達式等價:選項B中先n加1,然后將n加1后的值賦給k,k變化了比原來的值大1,所以這個表達式和本題中表達式不等價:選項C中先計算表達式左邊的表達式++=N的值,執(zhí)行++n后,左邊的表達式的值為n的值加1,然后將n+1后的值賦給k,所以這個表達式和本題中的表達式不等價;選項D中表達式展開為k=k+(n+1),k的值發(fā)生了變化,所以這個表達式和本題中的表達式不等價。所以4個選項中A正確。
50.A根據(jù)數(shù)據(jù)結構中各數(shù)據(jù)元素之間前后件關系的復雜程度,一般將數(shù)據(jù)結構分為兩大類型:線性結構與非線性結構。如果一個非空的數(shù)據(jù)結構滿足下列兩個條件:1,有且只有一根節(jié)結點,2,每一個結點最多有一個前件,也最多有一個后件,則稱該數(shù)據(jù)結構為線性結構,又稱線性表。所以線性表、棧與隊列、線性鏈表都是線性結構,而二叉樹是非線性結構。
51.A解析:+=是算術賦值運算符。
52.B解析:在scanf函數(shù)的格式控制中,格式說明的類型與輸入項的類型必須一一對應匹配,如不匹配將導致數(shù)據(jù)輸入出現(xiàn)錯誤,但是系統(tǒng)并不報錯。
53.B解析:在C語言中所謂函數(shù)的遞歸是指在調用一個函數(shù)的過程中,又出現(xiàn)了直接或間接調用該函數(shù)本身,直接調用該函數(shù)本身的稱為函數(shù)遞歸,而間接調用該函數(shù)稱為函數(shù)的間接遞歸調用。顯然題目中所說得函數(shù)調用為函數(shù)的間接遞歸調用。所以,4個選項中選項B符合題意。
54.B在本題中,for循環(huán)結構缺省了表達式2,而表達式2的作用是用來判斷循環(huán)是否結束,在缺省該語句的情況下,循環(huán)將無法結束,從題目給出的四個循環(huán)結構我們可以看出,能構成死循環(huán)的是選項B,該選項中for結構的表達式2一直為1,即真,這樣循環(huán)就無法結束。因此,本題正確的答案選B。
55.C解析:C語言中的自反賦值運算符?!癿-=n”相當于“m=m-n”,兩個相等的數(shù)相減,其值為0。
56.C
57.C解析:本題先將指針p指向二維數(shù)組ch[2][5],相當于p[0]='1234',p[1]='5678',通過雙重for循環(huán),是要將p中的字符隔一個輸出一個,通過s=p[i][j]-\'0\'這條語句是將所要輸出的字符轉換成相應的十進制數(shù)。
58.B解析:本題中定義了一個結點structNODE,在主函數(shù)中定義了三個結點變量指針p、q和r,接著通過malloc函數(shù)分配了三個結點并讓p、q和r分別指向他們,再接著給p、q和r所指向的結點的num域賦值為1、2、3,然后讓結點p指向q,讓q指向r,r指向NULL。顯然q->next->num的值為指針r所指向結點的num域的值為3,p->hum的值為指針P所指向結點的num域的值為1,故最后輸出s的值為3+1=4。
59.D解析:本題考查printf函數(shù)的格式。“%8x”表示以十六進制無符號形式輸出整掣數(shù)據(jù)。“8”表示指定輸出數(shù)據(jù)的寬度為8位。
60.C解析:本題程序的功能是對數(shù)組元素賦值,難點是對表達式4*(i-2*(i>3))%5的分析。
61.B
62.C本題考查的重點是拷貝字符串一一使用strepy函數(shù),該函數(shù)的調用方式是:strcpy(字符數(shù)組,字符串),其中”字符串”可以是字符串常量,也可以是字符數(shù)組。函數(shù)的功能是:將”字符串”完整地復制到”字符數(shù)組”中,字符數(shù)組中原有的內容被覆蓋。
使用該函數(shù)時注意:①字符數(shù)組必須定義得足夠大,以便容納復制過來的字符串。復制時,連同結束標志\0一起復制;②不能用賦值運算符”=”將一個字符串直接賦值給一個字符數(shù)組,只能用strcpy函數(shù)處理。
另外,本題還考查連接字符串的strcat函數(shù),其調用方式是:strcat(字符數(shù)組,字符串)。功能是把”字符串”連接到”字符數(shù)組”中的字符串尾端,
63.A#include<stdio.h>
intmain()
所以輸出為*#*#*#$和一個換行符*/,因此正確答案為A。
64.B
65.D
66.Dif中的語句組包含兩條語句,但是沒有花括號,所以編譯有錯。如果這個時候沒有else,就理解成語句組只有一條語句,編譯將是正確的。
67.D解析:文件系統(tǒng)所管理的數(shù)據(jù)文件基本上是分散的、相互獨立的,因此相對于數(shù)據(jù)庫系統(tǒng),以此為基礎的數(shù)據(jù)處理存在3個缺點,數(shù)據(jù)冗余大、數(shù)據(jù)的不一致性、程序與數(shù)據(jù)的相互依賴(簡稱為數(shù)據(jù)依賴)。注意:文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)各自的特點,人工管理階段及數(shù)據(jù)庫系統(tǒng)三代的特點。
68.B解析:T是R∪S的結果,關系T由屬于關系R的或者屬于關系S的元組組成。
69.Ac語言中標識符由字母、下劃線或數(shù)字組成,且開頭必須是字母或下劃線。另外,關鍵字不能作為標識符。B)選項中以數(shù)字8開頭,所以錯誤。c)與D)中用的是關鍵字void與unsigned,因此錯誤。故本題答案為A)。
70.C\r\n
71.A
72.C
73.C循環(huán)的作用是將輸入的字符串轉化為大寫,9etchar()每次讀入一個字符,putchar()每次輸出一個字符,當遇到#字符結束。putchar(++C),表示將字符變量C加1后輸出。因此,輸入aBcDefG##,得到的結果是BCDEFGH。故答案為c選項。
74.C
75.A本題考查的是函數(shù)調用時的參數(shù)傳遞以及結構體變量的引用的問題。程序在調用函數(shù)f時,傳給函數(shù)f的參數(shù)只是結構變量c在棧中的一個拷貝,函數(shù)f的所有操作只是針對這個數(shù)據(jù)拷貝進行的修改,這些都不會影響變量c的值。
76.A通常,將軟件產品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產品從考慮其概念開始,到該軟件產品不能使用為止的整個時期都屬于軟件生命周期。
77.A"%u"表示輸出無符號的整數(shù)(如果輸出值前有符號,將自動轉化為相應的無符號數(shù)輸出)。
78.C在本題中,從給出的選項可以知道,本題程序的作用是對數(shù)組的十個元素按照一個規(guī)則進行輸出。
在程序中,首先定義了一個大小為10的數(shù)字用來存放需要處理的十個數(shù),然后通過循環(huán)從鍵盤輸入需要被處理的十個數(shù),又通過一個循環(huán)完成對數(shù)組元素的輸出。在該循環(huán)中,當循環(huán)變量j=9時,輸出的是a[9],即數(shù)組中的最后一個元素,當j=8時,輸出的是a[8],即數(shù)組中的倒數(shù)第二個元素,以此類推,當j=0時,輸出的是a[0],即數(shù)組的第一個元素。由此我們可以看出,最后是將數(shù)組逆序輸出。與選項C完全一致,因此,本題的正確答案是C。
79.A在變量定義doublea,*p:&a;中,*號是一個指針運算符,而非間址運算符,因此A)錯誤。
80.C數(shù)據(jù)庫是存儲在一起的相關數(shù)據(jù)的集合,具有以下特點。
(1)實現(xiàn)數(shù)據(jù)共享。數(shù)據(jù)共享包含所有的用戶可同時存取數(shù)據(jù)庫中的數(shù)據(jù),也包括用戶可以用各種方式通過接口使用數(shù)據(jù)庫,并提供數(shù)據(jù)共享。
(2)減少數(shù)據(jù)的冗余度。同文件系統(tǒng)相比,由于數(shù)據(jù)庫實現(xiàn)了數(shù)據(jù)共享,從而避免了用戶各自建立應用文件,減少了大量重復的數(shù)據(jù)和數(shù)據(jù)冗余,維護了數(shù)據(jù)的一致性。
(3)數(shù)據(jù)的獨立性。數(shù)據(jù)的獨立性包括數(shù)據(jù)庫的邏輯結構和應用程序相互獨立,也包括數(shù)據(jù)物理結構的變化不影響數(shù)據(jù)的邏輯結構。
(4)數(shù)據(jù)實現(xiàn)集中控制。在文件管理方式中,數(shù)據(jù)處于一種分散的狀態(tài),不同的用戶或同一用戶在不同的處理中,其文件之間毫無關系。利用數(shù)據(jù)庫可對數(shù)據(jù)進行集中控制和管理,并通過數(shù)據(jù)模型表示各種數(shù)據(jù)的組織以及數(shù)據(jù)間的聯(lián)系。
(5)數(shù)據(jù)一致性和可維護性,以確保數(shù)據(jù)的安全性和可靠性。主要包括:①安全性控制。以防止數(shù)據(jù)丟失、錯誤更新和越權使用。②完整性控制。保證數(shù)據(jù)的正確性、有效性和相容性。③并發(fā)控制。使在同一時間周期內,允許對數(shù)據(jù)實現(xiàn)多路存取,又能防止用戶之間的不正常交互作用。④故障的發(fā)現(xiàn)和恢復。由數(shù)據(jù)庫管理系統(tǒng)提供一套方法,可及時發(fā)現(xiàn)故障和修復故障,從而防止數(shù)據(jù)被破壞。
(6)故障恢復。由數(shù)據(jù)庫管理系統(tǒng)提供一套方法,可及時發(fā)現(xiàn)故障和修復故障,從而防止數(shù)據(jù)被破壞。數(shù)據(jù)庫系統(tǒng)能盡快恢復數(shù)據(jù)庫系統(tǒng)運行時出現(xiàn)的故障,可能是物理上或是邏輯上的錯誤。比如對系統(tǒng)的誤操作造成的數(shù)據(jù)錯誤等。
數(shù)據(jù)庫是不可能避免一切數(shù)據(jù)都沒有重復的,并且有些情況下需要有重復的數(shù)據(jù),比如數(shù)據(jù)庫恢復技術需要一定的數(shù)據(jù)冗余度。
81.(1)錯誤:switch(g);
\n正確:switch(g)
\n(2)錯誤:casel:case2:returnl;
\n正確:casel;case2:returnl;
\n【解析】此題考查C語言的語法規(guī)則,switch(表達式)后不應該帶有“;”,case語句常量后應該是“:”。
\nswitch語句的一般形式如下:
\nswitch(表達式){
\ncase常量表達式1:語句1;
\ncase常量表達式2:語句2;
\ncase常量表達式n:語句i;
\ndefault:語句n+1;
\n}
\n
82.1voidfun(int(*s)[10],intint*n,intmm,intnn)2{3inti,j,k=0;4for(i=0;i<mm;i++)/*將二維數(shù)組s中的數(shù)據(jù)按行的順序依次存放到一維數(shù)組b中*/5for(j=0;j<nn;j++)6b[k++]=s[i][j];7*n=k;/*通過指針返回元素個數(shù)*/8}本題可以用兩個循環(huán)來處理。由于是按行的順序取出,因此第1個for循環(huán)用于控制行下標,第2個循環(huán)用于控制列下標。若改成按列的順序取出,則循環(huán)應改成:for(i=0;i<mm;jp)b[k++]=s[j][i];要注意s[j][i]的下標,不能用s[i][j]。若按行取出則列下標變化較快,若按列取出則行下標變化較快,即循環(huán)嵌套時,越在內層的循環(huán),其循環(huán)變量變化就越快。<mm;jp)2022年湖北省孝感市全國計算機等級考試C語言程序設計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列特征中不是面向對象方法的主要特征的是()。
A.多態(tài)性B.繼承C.封裝性D.模塊化
2.C語言常量的類型從字面形式上可區(qū)分,以下判斷中正確的是()。
A.2E3——整型B.2.0E3——實型C.‘\025’——字符串D.“a”——字符型
3.以下符合C語言語法的賦值表達式是()。
A.d=9+e+f=d+9B.d=9+e,f=d+9C.d=9十e,e++,d十9D.d=9十e++=d十7
4.在一個C程序中
A.main函數(shù)必須出現(xiàn)在所有函數(shù)之前
B.main函數(shù)可以在任何地方出現(xiàn)
C.main函數(shù)必須出現(xiàn)在所有函數(shù)之后
D.main函數(shù)必須出現(xiàn)在固定位置
5.程序運行后的輸出結果是()。A.0304.B.2050C.3344D.3040
6.若有宏定義“#defineA_RECT(W,H)W*H”和以下程序段:intx=5,y=6,area1,area2;area1=A_RECT((x-1),(y+1));area2=A_RECT(x+3,y-1);執(zhí)行上述程序段后,變量area1和area2的值分別是()。
A.022B.2840C.2822D.040
7.
8.有以下程序:#includeintadd(inta,intb){return(a+b);}Main(){Intk,(*f)(),a=5,b=10;f=add;...}則以下函數(shù)調用語句錯誤的是()。A.k=f(a,b);B.k=add(a,b);C.k=(*f)(a,b);D.k=*f(a,b);
9.有以下程序:#include<stdio.h>voidmain(){char*s=“\ta\018bc”;for(;*s!=‘\0’;s++)printf(“*”);printf(“\n”);}程序運行后的輸出結果是()。
A.******B.*********C.*****D.*******
10.讀取二進制文件的函數(shù)調用形式為:fread(buffersize,count,fp);,其中buffer代表的是()。
A.一個文件指針,指向待讀取的文件
B.一個整型變量,代表待讀取的數(shù)據(jù)的字節(jié)數(shù)
C.一個內存塊的首地址,代表讀人數(shù)據(jù)存放的地址
D.一個內存塊的字節(jié)數(shù)
11.有以下程序:#include<stdio.h>main(){inta=7;while(a--);print[("%d\n",a);}程序運行后的輸出結果是()。A.-1B.0C.1D.7
12.有以下程序:
執(zhí)行后輸出結果是()。
A.n,tuesdayB.d,mondayC.U,mondayD.0,wednesday
13.以下敘述正確的是()。
A.“charc1,*c2,*c3[10];”是合法的變量定義語句
B.數(shù)組說明符的方括號中不能使用表達式
C.數(shù)組元素下標可以是非整數(shù)
D.若有定義“chararray[4];”,則語句“printf(“%c”,array[“3”]);”是合法的
14.有三個關系R、s和T如下:
由關系R和s通過運算得到關系T,則所使用的運算為()。
A.并B.自然連接C.笛卡爾積D.交
15.有嵌套的if語句:if(a<b) if(a<c)k=a; elsek=c;elseif(b<c)k=b;elsek=c;以下選項中與上述if語句等價的語句是()。
A.k=(a<b)?((b<c)?a:b):((b>c)?b:c);
B.k=(a<b)?((a<c)?a:c):((b<c)?b:c);
C.k=(a<b)?a:b;k=(b<c)?b:c;
D.k=(a<b)?a:b;k=(a<c)?a:c;
16.如果對線性表的操作只有兩種,即刪除第一個元素,在最后一個元素的后面插入新元素,則最好使用()。
A.只有表頭指針沒有表尾指針的循環(huán)單鏈表B.只有表尾指針沒有表頭指針的循環(huán)單鏈表C.非循環(huán)雙鏈表D.循環(huán)雙鏈表
17.設循環(huán)隊列的存儲空間為Q(1:35),初始狀態(tài)為front=rear=35。現(xiàn)經過一系列入隊與退隊運算后,front=15,rear=15,則循環(huán)隊列中的元素個數(shù)為()。
A.20B.0或35C.15D.16
18.若有以下程序段
intm=0xabc,n=0xabc;
m-=n;
printf("%x\n",m);
執(zhí)行后的輸出結果是A.A.0X0
B.0x0
C.0
D.0xABC
19.C語言中運算對象必須是整型的運算符是()。
A.%=B./C.=D.<=
20.若有定義和語句:int**pp),*P,a=20,b=10;pp=&p;p=&a;p=&b;printf("%d,%d\n",*P,*PP);則輸出結果是()。A.20,10B.20,20C.10,20D.10,10
二、2.填空題(20題)21.在結構化設計方法中,數(shù)據(jù)流圖表達了問題中的數(shù)據(jù)流與加工間的關系,并且每一個______實際上對應一個處理模塊。
22.設變量已正確定義為整型,則表達式n=i=2,++i,i++的值為【】。
23.在深度為7的滿二叉樹中,度為2的結點個數(shù)為【】。
24.數(shù)據(jù)庫管理系統(tǒng)常見的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和【】3種。
25.以下程序可以把從鍵盤上輸入十進制數(shù)(10ng型)以二到十六進制數(shù)的形式輸出,請?zhí)羁铡?/p>
#include<stdio.h>
main()
{charb[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','
E','F'};
intc[64],d,i=0,base;
longn;
printf("Enteranumber:\n");scanf("%1d",&n);
printf("Enternewbase:\n");scanf("%1d",&base);
do
{c[i]=【】;
i++;
n=n/base;
}while(n!=0);
printf("Theresultis:\n");
for(--i;i>=0;--i)
{d=c[i];
printf("%c",b【】);
}
}
26.以下程序的輸出結果是【】。
floatfun(intx,inty)
{return(x+y);}
main()
{inta=2,b=5,c=8;
printf("%3.0f\n",fun((int)fun(a+c,b),a-c));}
27.在軟件維護時,對測試階段未發(fā)現(xiàn)的錯誤進行測試、診斷、定位、糾錯直至回歸測試的過程稱為【】。
28.函數(shù)pi的功能是根據(jù)以下公式近似求得的:
pi*pi/6=1+1/(2*2)+1/(3.3)+...+1/(n*n)
請在下面的函數(shù)中天空,完成求pi的功能。
#include<math.h>
doublepi(longn)
{doubles=0.0,longi;
for(i=1;i<<=n;i++)s=s+【】;
return(sqrt(6*s));
}
29.若有如下定義:
int[]={11,24,56,19,29,39),*t=s;
則不移動指針t,且通過指針t引用數(shù)組中值為29的元素的表達式是【】。
30.下列表達式用于判斷y是否為閏年。閏年的判斷條件是:年號能被4整除但不能被100整除或年號能被400整除,請?zhí)羁誣_____。
31.設有如下宏定義
#defineMYSWAP(z,x,y)
{z=x;x=y;y=z;}
以下程序段通過宏調用實現(xiàn)變量a,b內容交換,請?zhí)羁铡?/p>
floata=5,b=16,c;
MYSWAP(【】a,b);
32.若i、j為int類型,則以下程序段內循環(huán)體的總執(zhí)行次數(shù)是【】。
for(i=5;i;i--)
for(j=0;j<3;j++)
{
}
33.有以下程序:
main()
{intt=1,i=5;
for(;i>=0;i--)t*=i;
printf("%d\n",t);
}
執(zhí)行后的輸出結果是【】。
34.若有以下程序:
main()
{int,p,a=5;
if(P=a!=0)
printf("%d\n",p);
else
printf("%d\n",p+2);
}
執(zhí)行后輸出結果是【】。
35.設有以下結構類型說明和變量定義,則變量a在內存所占字節(jié)數(shù)是【】。
structstud
{charnum[6];
mts[4];
doubleave;
}a,*p;
36.以下程序的定義語句中,x[1]的初值是(),程序運行后輸出的內容是()。#include<stdio.h>main(){intx[]={1,2,3,4,5,6,7,8,9,10,1l,12,13,14,15,16},*p[4],i;for(i=0;i<4;i++){p[i]=&x[2*i+1],printf("q%d”,p[i][0]);}printf("\n");}
37.在關系模型中,二維表的行稱為______。
38.fseek函數(shù)的正確調用形式是【】。
39.在算法的4個特性中,算法必須能在執(zhí)行有限個步驟之后終止指的是算法的______特性。
40.表示""整數(shù)x的絕對值大于5""時值為""真""的C語言表達式是【】。
三、1.選擇題(20題)41.下列敘述中正確的是()。
A.軟件測試應該由程序開發(fā)者來完成
B.程序經調試后一般不需要再測試
C.軟件維護只包括對程序代碼的維護
D.以上三種說法都不對
42.下列選項中,值為1的表達式是()。
A.1-'0'B.1-'\0'C.'1'-0D.'\0','0'
43.下列程序的輸出結果是()。main(){inta=4,b=5,c;if(a<B){c=a*b;printf("%d,%d,%d\n",b,a,C);}else{c=b/a;printf("%d,%d,%d\n",b,a,C);}}
A.4,5,12B.20C.5,4,20D.12
44.下面不屬于軟件工程的3個要素的是______。
A.工具B.過程C.方法D.環(huán)境
45.C語言庫函數(shù)fgets(str,n,fp)的功能是______。
A.從fp指向的文件中讀取長度n的字符串存入str指向的內存
B.從fp指向的文件中讀取長度不超過n-1的字符串存入str指向的內存
C.從fp指向的文件中讀取n個字符串存入str指向的內存
D.從str讀取至多n個字符到文件fp
46.下列程序執(zhí)行的輸出結果是()。#include<stdio.h>main(){chara[2][4];strcpy(a,"are");strcpy(a[1],"you");a[0][3]='&';printf("%s\n",a);}
A.are&youB.youC.areD.&
47.對于下述程序,在方式串分別采用"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字節(jié)、7字節(jié)B.7字節(jié)、5字節(jié)C.5字節(jié)、7字節(jié)D.5字節(jié)、5字節(jié)
48.若有下列說明和語句,已知int型數(shù)據(jù)占2個字節(jié),則下列語句的輸出結果是()。structst{chara[15];intb;doublec;};printf("%d",sizcof(structst));
A.15B.8C.25D.2
49.以下選項中,與k=n++完全等價的表達式是A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+1
50.下列敘述中正確的是A.線性表是線性結構B.棧與隊列是非線性結構C.線性鏈表是非線性結構D.二叉樹是線性結構
51.下列運算符中,不屬于關系運算符的是______。
A.+=B.!=C.<=D.==
52.在函數(shù)scanf的格式控制中,格式說明的類型與輸入項的類型應該對應匹配。如果類型不匹配,系統(tǒng)將()。
A.不予接收B.并不給出出錯信息,但不能得到正確的數(shù)據(jù)C.能接收到正確輸入D.給出出錯信息,不予接收輸入
53.在函數(shù)調用過程中,如果函數(shù)funA調用了函數(shù)funB,函數(shù)funB又調用了函數(shù)funA,則()。
A.稱為函數(shù)的直接遞歸調用B.稱為函數(shù)的間接遞歸調用C.稱為函數(shù)的循環(huán)調用D.C語言中不允許這樣的遞歸調用
54.對表達式for(表達式1;;表達式3)可理解為()。
A.for(表達式1;0;表達式3)
B.for(表達式1;1;表達式3)
C.for(表達式1;表達式1;表達式3)
D.for(表達式1;表達式3;表達式3)
55.若有以下程序段intm=0xabc,n=0xubc;m-=n;printf("%X\n",m);執(zhí)行后輸出結果是
A.0X0B.0x0C.0D.0XABC
56.有以下程序;intf1(doubleA){returna*a;}intf2(doublex,doubley){doublea,b;a=n(x);b=f1(y);returna+b;}main(){doublew;w=f2(1.1,2.0);┇}變量w中的值是()
A.5.21B.5C.5D.0
57.若有說明語句:double*p,a;則能通過scanf語句正確給輸入項讀入數(shù)據(jù)的程序段是()。
A.6357B.6135C.1357D.691357
58.有以下程序
#inGlude<stdlib.h>
structNODE{
intnum;
structNODE*next;
}
main()
{structNODE*p,*q,*r;
intsum=0;
p=(structNODE*)malloc(sizeof(structNODE));
q=(structNODE*)malloc(sizeof(structNODE));
r=(stnlctNODE*)malloc(sizeof(structNODE));
p->num=1;q->num=2;r->num=3;
p->next=q;q->next;r;r->next=NULL;
sum+=q->next->Num,sum+=p->num;
printf("%d\n",sum);
}
執(zhí)行后輸出結果是
A.3B.4C.5D.6
59.已有定義inta=3;和輸出語句printf("%8x",A);以下正確的敘述是()。
A.整型變量的輸出格式符只有%d一種
B.%x是格式符的一種,它可以適用于任何一種類犁的數(shù)據(jù)
C.%x是格式符的一種,其變量的值按十六進制數(shù)輸出,但%08x是錯誤的
D.%8x是正確的格式符,其中數(shù)字8規(guī)定了輸出字段的寬度
60.下列程序的運行結果是______。main(){inta[6],i;for(i=2;i<6;i++){a[i]=4*(i-2*(i>3))%5;printf("%2d",a[i]);}}
A.2323B.1212C.3232D.2222
四、選擇題(20題)61.
62.下面程序的輸出結果是()。
A.xyzabcABCB.zabcABCC.xyabcABCD.yzabcABC
63.有以下程序:
64.
65.
66.有以下程序:
程序輸出結果是()。
A.0,1,2,0B.0,0,0,3C.1,1,2,0D.編譯有錯
67.相對于數(shù)據(jù)庫系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)關聯(lián)差、數(shù)據(jù)不一致性和()。
A.可重用性差B.安全性差C.非持久性D.冗余性
68.設有如下關系表:
則下列操作中,正確的是()。
A.T=R∩SB.T=R∪SC.T=R×SD.T=R/S
69.以下選項中,能用作用戶標識符的是()。A._0_B.8—8C.voidD.unsigned
70.
71.(28)在數(shù)據(jù)管理技術的發(fā)展過程中,經歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中數(shù)據(jù)獨立性最高的階段是()
A.數(shù)據(jù)庫系統(tǒng)
B.文件系統(tǒng)
C.人工管理
D.數(shù)據(jù)項管理
72.
73.有以下程序:
執(zhí)行時輸入:aBeDefG##<;回車>;,則輸出結果是()。
A.AbCdEFgB.ABCDEFGC.BCDEFGHD.bedefgh
74.
75.有以下程序:
程序的運行結果是()。
A.Qian,f,95,92
B.Qian,m,85,90
C.Zhao,f,95,92
D.Zhao,m,85,90
76.軟件生命周期是指()。A.軟件產品從提出、實現(xiàn)、使用維護到停止使用退役的過程
B.軟件從需求分析、設計、實現(xiàn)到測試完成的過程
C.軟件的開發(fā)過程
D.軟件的運行維護過程
77.執(zhí)行語句printf(“%u\n”,+12345)的輸出結果是()。
A.12345B.0C.-1D.非定值
78.有如下程序段
#include"stdio.h"
main()
{intk[10];
intj;
for(j=0;j<10;j++)
scanf("%d",&k[j]);
for(j=9;j>=0;j--)
printf("%d",k[j]);}
則程序段實現(xiàn)的功能是
A.輸入10個數(shù)據(jù)的順序輸入并輸出
B.輸入10個數(shù)據(jù)的逆序存放
C.輸入10個數(shù)據(jù)的逆序輸出
D.以上敘述均錯誤
79.若有定義語句:doublea,*p=&a;,以下敘述中錯誤的是()。A.定義語句中的*號是一個間址運算符
B.定義語句中的*號是一個說明符
C.定義語句中的p只能存放double類型變量的地址
D.定義語句中,*p=&a把變量a的地址作為初值賦給指針變量P
80.下列說法不正確的是
A.數(shù)據(jù)庫減少了數(shù)據(jù)冗余B.數(shù)據(jù)庫實現(xiàn)了數(shù)據(jù)的共享
C.數(shù)據(jù)庫避免了一切數(shù)據(jù)的重復D.數(shù)據(jù)庫具有較高的數(shù)據(jù)獨立性
五、程序改錯題(1題)81.下列給定程序中函數(shù)fun的功能是:用遞歸算法計算斐波拉契數(shù)列中第n項的值。從第l項起,斐波拉契數(shù)列為:1,1,2,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 河南2025年01月2025年河南新鄉(xiāng)市市直機關遴選公務員12人國家公務員考試消息筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 足療店日常清潔與消毒工作指南
- 跨界創(chuàng)新與未來職業(yè)發(fā)展探索
- 5.1走向世界大舞臺課件- -2024-2025學年統(tǒng)編版道德與法治九年級下冊
- 內蒙古大學《嵌入式控制系統(tǒng)及應用》2023-2024學年第二學期期末試卷
- 清苑縣2025年三年級數(shù)學第二學期期末質量跟蹤監(jiān)視模擬試題含解析
- 昆明城市學院《建筑環(huán)境與能源系統(tǒng)測試技術》2023-2024學年第二學期期末試卷
- 遼寧鐵道職業(yè)技術學院《法律英語寫作與翻譯》2023-2024學年第二學期期末試卷
- 足療店內容營銷策略與創(chuàng)作方法
- 系統(tǒng)日志記錄與分析規(guī)范
- 工程分包計劃(完整版)
- Q∕GDW 12068-2020 輸電線路通道智能監(jiān)拍裝置技術規(guī)范
- CIR操作指南(20110513)
- 領導力培訓領導力提升培訓領導力培訓
- 制藥工程 專業(yè)英語 Unit 1(課堂PPT)
- 俞敏洪四級詞匯詞根聯(lián)想記憶法亂序wordlist
- 第四次工業(yè)革命ppt課件
- 公路工程試驗常規(guī)檢測項目、檢測標準、檢測頻率、取樣方法(標準版)
- 圖解調音臺使用說明(共14頁)
- 員工人事檔案登記表(最終版)
- 服裝測量方法及圖示
評論
0/150
提交評論