




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2021年河北省承德市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.一個n條邊的連通無向圖,其頂點的個數(shù)至多為()。
A.n-1B.nC.n+1D.nlogn
2.若ch為char型變量,k為int型變量(已知字符a的ASCII碼是97),則執(zhí)行下列語句后輸出的結(jié)果為()。
cb='b';
k=10;
printf("%X,%o,”,ch,ch,k);
printf("k=%%d\n",k);A.A.因變量類型與格式描述符的類型不匹配,輸出無定值
B.輸出項與格式描述符個數(shù)不符,輸出為0值或不定值
C.62,142,k=%d
D.62,142,k=%10
3.向一個棧頂指針為H的鏈棧中執(zhí)行出棧運算時,需執(zhí)行()。
A.p=H;H=H->link;free(p);
B.H=H->link;free(H);
C.p=H;H->link=H->link->link;free(p);
D.p=H;H=H->link;
4.以下程序的輸出結(jié)果是______。
A.54321
B.12345
C.12345
D.543210main(){intw=5;fun(w);printf("\n");}fun(intk){if(k>0)fun(k-1);printf("%d"",k);}
5.有以下程序:intfun(intx){intp;if(x==0||x==1)return(3);p=x-fun(x-2);returnp;}main{printf("%d\n",fun(7));}執(zhí)行后的結(jié)果是()。A.7B.3C.2D.0
6.以下敘述正確的是
A.continue語句的作用是結(jié)束整個循環(huán)的執(zhí)行
B.只能在循環(huán)體內(nèi)和swish語句體內(nèi)使用break語句
C.在循環(huán)體內(nèi)使用break語句或continue語句的作用相同
D.從多層循環(huán)嵌套中退出時,只能使用goto語句
7.以下敘述中錯誤的是()。
A.c語言是一種結(jié)構(gòu)化程序設(shè)計語言
B.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題
C.結(jié)構(gòu)化程序設(shè)計提倡模塊化的設(shè)計方法
D.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成
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.假定X和Y為double型,則表達式x=2,y=x+3/2的值是()。
A.3.500000B.3C.2.000000D.3.000000
10.在C語言中,退格符是
A.\nB.\tC.\fD.\b
11.數(shù)據(jù)的存儲結(jié)構(gòu)是指()。
A.存儲在外存中的數(shù)據(jù)B.數(shù)據(jù)所占的存儲空間量C.數(shù)據(jù)在計算機中的順序存儲方式D.數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的表示
12.下列描述中正確的是______。A.軟件工程只是解決軟件項目的管理問題
B.軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問題
C.軟件工程的主要思想是強調(diào)在軟件開發(fā)過程中需要應用工程化原則
D.軟件工程只是解決軟件開發(fā)中的技術(shù)問題
13.下列語句中,說法正確的是______。
A.C程序書寫格式嚴格,每行只能寫一個語句
B.C程序書寫格式嚴格,每行必須有行號
C.C程序書寫格式自由,每行可以寫多條語句,但之間必須用逗號隔開
D.C程序書寫格式自由,一個語句可以分寫在多行
14.設(shè)有定義“intk=3,i=2;”,以下選項中,變量k的值與其他3個不同的是()。
A.k-=i;B.k=--i;C.k=i-1;D.k=i--;
15.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。
A.15,12,9,B.15,13,11,C.15,11,7,D.15,15,15,
16.以下敘述中正確的是()。
A.構(gòu)成C程序的基本單位是函數(shù)
B.可以在一個函數(shù)中定義另一個函數(shù)
C.main函數(shù)必須放在其他函數(shù)之前
D.C函數(shù)定義的格式是K&R格式
17.以下敘述中正確的是()。
A.算法的時間復雜度是指算法在執(zhí)行過程中基本運算的次數(shù)
B.算法的時間復雜度是指算法執(zhí)行所需要的時間
C.算法的時間復雜度是指算法執(zhí)行的速度
D.算法的復雜度是指算法控制結(jié)構(gòu)的復雜程度
18.以下說法中正確的是()。
A.C程序總是從第一個定義的函數(shù)開始執(zhí)行
B.C程序總是從main函數(shù)開始執(zhí)行
C.C函數(shù)必須有返回值,否則不能使用函數(shù)
D.C程序中有調(diào)用關(guān)系的所有函數(shù)必須放在同一個程序文件中
19.在以下的敘述中,正確的是()。
A.線性表的順序存儲結(jié)構(gòu)優(yōu)于鏈表存儲結(jié)構(gòu)
B.二維數(shù)組是其數(shù)據(jù)元素為線性表的線性表
C.棧的操作方式是先進先出
D.隊列的操作方式是先進后出
20.以下有關(guān)宏的描述不正確的是()。
A.宏定義不做語法檢查B.雙引號中出現(xiàn)的宏名不進行替換C.宏名無類型D.宏名必須用大寫字母表示
二、2.填空題(20題)21.某二叉樹中度為2的結(jié)點有18個,則該二叉樹中有【】個葉子結(jié)點。
22.問題處理方案的正確而完整的描述稱為______。
23.以下程序運行后的輸出結(jié)果是______。
fun(inta)
{intb=0;staticintc=3;
b++;c++;
return(a+b+c);
}
main()
{inti,a=5;
for(i=0;i<3;i++)printf("%d%d",i,fun(a));
printf("\n");
}
24.樹中度為零的結(jié)點稱為______。
25.以下定義的結(jié)構(gòu)體類型擬包含兩個成員,其中成員變量info用來存入整形數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針,請將定義補充完整。
structnode
{intinfo;
【】link;};
26.若有以下程序:
main()
{chara;
a='H'-'A'+'0';
printf("%c\n",a);
}
執(zhí)行后的輸出結(jié)果是【】。
27.按“先進后出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是[]。
28.關(guān)系模型的完整性規(guī)則是對關(guān)系的某種約束條件,包括實體完整性、______和自定義完整性。
29."printf("%d\n",strlen("\t\"'\023\xABC\n"));"語句的輸出結(jié)果是______。
30.下列程序的運行結(jié)果為【】。
main()
{inti;
chara[]="Ilovechina!",b[20],*p1,*p2;
p1=a;
p2=b;
while(*p1)
{*p2=*p1;
p1++;
p2++;
}
*p2='\0';
printf("stringbis:%s\n",b);
}
31.已有文本文件test.txt,其中的內(nèi)容為:Hello,everyone!。以下程序中,文件test.txt已正確為“讀”而打開,由此文件指針fr指向該文件,則程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{FILE*fr;charstr[40];
…
fgets(str,5,fr);
printf("%s\n",str);
felose(fr);
}
32.以下程序運行后的輸出結(jié)果是【】。
#include<stdio,h>
#include<string,h>
main()
{charch[]="abc".,x[3][4]:inti:
for(i=0;i<3:i++)strcpy(x[i],ch):
for(i=0;i<3:i++)printf("%s",&x[i][i]);
printf("\n")
}
33.目前實際存在和使用的廣域網(wǎng)基本上都是采用______拓撲結(jié)構(gòu)類型。
有以下程序:
#include<string.h>
structSTU
{intnum;
floatTotalScore;};
voidf(structSTUp)
{structSTUs[2]={{20041,703},{20045,537}};
p.num=s[1].num;p.TotalScore=s[1].TotalScore;
}
main()
{structSTUs[2]={{20041,703},{20042,580}};
f(s[0]);
printf("%d%3.0f\n",s[0].num,s[0],TotalScore);
}
程序運行后的輸出結(jié)果是【】。
34.在scanf()函數(shù)調(diào)用語句中,可以在格式字符和%號之間加上一個星號,它的作用是跳過對應的輸入數(shù)據(jù);當輸入以下數(shù)據(jù)時,100200300400500<回車>,下面語句的執(zhí)行結(jié)果為【】。
main()
{inta,b,C;
scanf("%d%*d%d%d",&a,&b,&c);
printf("%d%d%d",a,b,c);}
35.若有以下定義語句,則不移動指針p,并且通過指針p引用值為98的數(shù)組元素的表達式是【】。
intw[10]={23,54,10,33,47,98,72,80,61},*p=w;
36.下列程序段中循環(huán)體的執(zhí)行次數(shù)是______。
a=15;
b=0;
do{b+=2;a-=2+b;}while(a>=0);
37.度為10的線性表進行冒泡排序,最壞情況下需要比較的次數(shù)為______。
38.下列語句的輸出結(jié)果是______。
chars[20]="aaaa",*sp=s;
puts(strcat(sp,"AAAAA"));
39.已知字母A的ASCII碼為65。以下程序運行后的輸出結(jié)果是______。
main()
{chara,b;
a='A'+'5'-'3';b=a+'6'-'2';
printf("%d%c\n",a,B);
}
40.下列執(zhí)行后輸出的結(jié)果是【】。
main()
{intarr[10],i,k=0
for(i=0;i<10;i++)atr[i]=i
for(i=1,i<4;i++)k+=arr[i]+i;
printf("%d\n",k);
}
三、1.選擇題(20題)41.請選出正確的程序段
A.int*p;scanf("%d",p);…
B.int*s,k;*s=100;…
C.int*s,k;char*p,c;s=&k;p=&c;*p='a';…
D.int*s,k;char*p,e;s=&k;p=&c;s=p;*s=1;…
42.以下敘述中正確的是()。
A.局部變量說明為static存儲類,其生存期將得到延長
B.全局變量說明為static存儲類,其作用域?qū)⒈粩U大
C.任何存儲類的變量在未賦初值時,其值都是不確定的
D.形參可以使用的存儲類說明符與局部變量完全相同
43.下列關(guān)于單目運算符++、--的敘述中正確的是A.它們的運算對象可以是任何變量和常量
B.它們的運算對象可以是char型變量和int型變量,但不能是float型變量
C.它們的運算對象可以是int型變量,但不能是double型變量和float型變量
D.它們的運算對象可以是char型變量、int型變量和float型變量
44.判斷字符串s1是否大于字符串s2,應該使用()。
A.if(strcmp(s1,s2)<0)
B.if(s1>s2)
C.if(strcmp(s2,s1)<0)
D.if(strcmp(s1,s2))
45.若i、j已定義為int型,則以下程序段中內(nèi)循環(huán)的總的執(zhí)行次數(shù)是()for(i=5;i>0;i--)for(j=0;j<4;j++){…}
A.20B.24C.25D.30
46.以下關(guān)于long、int和short類型數(shù)據(jù)占用內(nèi)存大小的敘述中正確的是(),
A.均占4個字節(jié)B.根據(jù)數(shù)據(jù)的大小來決定所占內(nèi)存的字節(jié)數(shù)C.由用戶自己定義D.由C語言編譯系統(tǒng)決定
47.有以下程序:int*f(int*x,int*y){if(*<*y)returnx;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}程序運行后輸出結(jié)果是______。
A.7,8,8B.7,8,7C.8,7,7D.8,7,8
48.若已定義:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,則對a數(shù)組元素不正確的引用是______。
A.a[p-a]B.*(&a[i])C.p[i]D.a[10]
49.有以下程序
main()
{intk=5,n=0;
do
{switch(k)
{case1:case3:n+=1;k--;break;
default:n=0;k--;
case2:case4:n+=2;k--;break;
}
printf("%d",n);
}while(k>0&&n<5);
}
程序運行后的輸出結(jié)果是
A.235B.0235C.02356D.2356
50.函數(shù)fseek的正確調(diào)用形式是()。
A.fseek(位移量,起始點,文件類型指針);
B.fseek(文件類型指針,位移量,起始點);
C.fseek(文件類型指針,起始點,位移量);
D.fseek(起始點,位移量,文件類型指針);
51.在數(shù)據(jù)庫的兩級映射中,從概念模式到內(nèi)模式的映射一般由______實現(xiàn)。
A.數(shù)據(jù)庫系統(tǒng)B.數(shù)據(jù)庫管理系統(tǒng)C.數(shù)據(jù)庫管理員D.數(shù)據(jù)庫操作系統(tǒng)
52.下列敘述中正確的是_______。
A.線性表是線性結(jié)構(gòu)B.棧與隊列是非線性結(jié)構(gòu)C.線性鍵表是非線性結(jié)構(gòu)D.二叉樹是線性結(jié)構(gòu)
53.以下敘述中不正確的是
A.在不同的函數(shù)中可以使用相同的名字的變量
B.函數(shù)中的形式參數(shù)是局部變量
C.在一個函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效
D.在一個函數(shù)內(nèi)的復合語句中定義的變量在本函數(shù)范圍內(nèi)有效
54.若變量已正確定義,要求程序段完成求5!的計算,不能完成此操作的程序段是()。
A.for(i=1,p=1;i<=5;i++)p*=i;
B.for(i=1;i<=5;i++){p=1;p*=i;}
C.i=1;p=1;while(i<=5){p*=i;i++;}
D.i=1;p=1;do{p*=i;i++;}while(1<=5)
55.電子郵件是()
A.網(wǎng)絡信息檢索服務
B.通過Web網(wǎng)頁發(fā)布的公告信息
C.通過網(wǎng)絡實時交互的信息傳遞方式
D.一種利用網(wǎng)絡交換信息的非交互式服務
56.下面程序的輸出是________。main(){intx=3,y=6,a=0;while(x++!=(y=|)){a+=1;if(y<x)break;}printf("x=%d,y=%d,a=%d\n",x,y,A);}
A.x=4,y=4,a=1B.x=5,y=5,a=1C.x=5,y=4,a=3D.x=5,y=4,a=1
57.閱讀下面程序段,則執(zhí)行后的結(jié)果為#include"stdio.h"main(){intm=4,n=2,k;k=fun(m,n);printf("%d\n",k);}fun(intm,intn){return(m*m*m-n*n*n);}
A.64B.8C.56D.0
58.下面程序main(){inty=9;for(;y>0;y--){if(y%3=0){printf("%d",--y);continue;}}}的輸出是_______。
A.741B.852C.963D.875421
59.以下選項中可作為C語言合法常量的是
A.-80B.-080C.-8e1.0D.-80.0e
60.若一個外部變量的定義形式為staticintx;,那么,其中static的作用應該是______。
A.將變量存儲在靜態(tài)存儲區(qū)B.使變量x可以由系統(tǒng)自動初始化C.使x只能在本文件內(nèi)引用D.使x的值可以永久保留
四、選擇題(20題)61.數(shù)據(jù)庫系統(tǒng)的核心是()。
A.數(shù)據(jù)模型B.數(shù)據(jù)庫管理系統(tǒng)C.數(shù)據(jù)庫D.數(shù)據(jù)庫管理員
62.閱讀下列程序,則運行結(jié)果為()。
A.3B.4C.5D.6
63.(56)下列不屬于軟件調(diào)試技術(shù)的是()
A.強行排錯法
B.集成測試法
C.回溯法
D.原因排除法
64.
65.
66.下列敘述中錯誤的是()。
A.數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的核心
B.數(shù)據(jù)庫系統(tǒng)由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫管理員三部分組成
C.數(shù)據(jù)共享最好的是數(shù)據(jù)庫系統(tǒng)階段
D.數(shù)據(jù)庫中的數(shù)據(jù)獨立于應用程序而不依賴于應用程序
67.
68.
69.運行下列程序,若從鍵盤輸入字符“a”,則輸出結(jié)果是()。
charc;
c=getchar;
if(c>=a&&c<=g)c=c+4:
elseif(c>=9&&c<=2)c=c-21:
elseprintf("inputerror!\n");
putchar(c);
A.fB.tC.eD.d
70.一個教師可講授多門課程,一門課程可由多個教師講授。則實體教師和課程間的聯(lián)系是()。
A.1:1聯(lián)系B.1:m聯(lián)系C.m:1聯(lián)系D.m:n聯(lián)系
71.以下敘述中錯誤的是()。
A.可以通過typedef增加新的類型
B.可以用typedef將已存在的類型用一個新的名字來代表
C.用typedef定義新的類型名后,原有類型名仍有效
D.用typedef可以為各種類型起別名,但不能為變量起別名
72.
73.
有以下程序:
#include<stdio.1l>
voidWriteStr(char*fn.char*str)
{FILE*fp;
fp=fopen(fn,"w");fputs(str,fp);fclose(fp);}
main
{WriteStr("tl.dat","start");
WriteStr("t1.dat","end");)
程序運行后,文件t1.dat中的內(nèi)容是()。
A.startB.endC.startendD.endrt
74.
75.數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標識的圖符不屬于數(shù)據(jù)流圖合法圖符的是()。
A.加工B.控制流C.數(shù)據(jù)存儲D.數(shù)據(jù)流
76.有以下程序程序運行后的輸出結(jié)果是()。
A.6,4,3,2B.6,2,l,l,C.1,1,2,6,D.2,3,1,6,
77.若有定義:intX=0,*P=&x;,則語句printf(”%d\n”,*P.的輸出結(jié)果是()。
A.隨機值B.0C.X的地址D.P的地址
78.
79.有下列程序
voidfunc1(inti);
voidfunc2(inti);
charst[]="hello,friend!";
voidfunc1(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;func1(i);
printf("\n");
}
執(zhí)行后的輸出結(jié)果是
A.helloB.hel
C.hloD.hlm
80.
五、程序改錯題(1題)81.下列給定程序中,函數(shù)fun()的功能是:將str所指字符串中的字母轉(zhuǎn)換為按字母序列的后續(xù)字母(Z轉(zhuǎn)換A,z轉(zhuǎn)換a),其他字符不變。
請修改函數(shù)fun()中的錯誤,得出正確的結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,請編寫函數(shù)fun(),該函數(shù)的功能是判斷字符串是否為回文,若是,則函數(shù)返回1,在主函數(shù)中輸出“YES”,否則返回0,在主函數(shù)中輸出“NO”?;匚淖址侵疙樧x和倒讀都一樣的字符串。例如,字符串LEVEL是回文,而字符串123312就不是回文。注意:部分源程序在文件prog1.c中。第3部分無紙化考武題庠請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:1#include2#defineN803intfun(char*str)4{56}7main()8{9chars[n];10FILE*out;11char*test[]={"1234321","123421","123321","abcdCBA"};12inti;13printf("Enterastring:");14gets(s);15printf("\n\n");16puts(s);17if(fun(s))18printf("YES\n");19else20printf("NO\n");21/******************/22out=fopen("out.dat","w");23for(i=0;i<4/i++)24if(fun(test[i]))25fprintf(out,"YES\n");26else27fprintf(out,"NO\n");28fclose(out);29/******************/30}
參考答案
1.C
2.C第1個printf函數(shù),格式說明的個數(shù)是2,而輸出項的個數(shù)是3,所以對于多余的輸出項k不予輸出;第2個printf函數(shù),有兩個%說明,第1個%后面的字符要原樣輸出。本題考查printf函數(shù)的格式。①“%x”和“%0”分別表示以十六進制和八進制無符合型輸出整型數(shù)據(jù)(不帶前導ox或0);②printf函數(shù)中格式說明符之前插入的任何字符都原樣輸出;③格式說明與輸出項的個數(shù),也要相等,如果格式說明的個數(shù)少于輸出項的個數(shù),則對于多余的輸出項不予輸出。
3.A
4.B
5.C調(diào)用函數(shù)fun(7)時,由于x的值為7,執(zhí)行語句“p=x-fun(x-2);”,相當于執(zhí)行p=7-fun(5);\r\n調(diào)用函數(shù)fun(5)時,由于x的值為5,執(zhí)行語句“p=x-fun(x-2);”,相當于執(zhí)行p=7-fun(3);\r\n調(diào)用函數(shù)fun(3)時,由于x的值為3,執(zhí)行語句“p=x-fun(x-2);”,相當于執(zhí)行p=7-fun(1);\r\n調(diào)用函數(shù)fun(1)時,由于X的值為1,執(zhí)行語句“return(3);”,函數(shù)的返回值為3。\r\n因此函數(shù)調(diào)用fun(7)等價于7-(5-fun(3)),即7-(5-(3-fun(1))),即7-(5-(3-3)),所以函數(shù)fun(7)的返回值為2。答案為C。
6.B
7.BC語言是一種結(jié)構(gòu)化程序設(shè)計語言。結(jié)構(gòu)化程序設(shè)計是以模塊化設(shè)計為中心的,有三種基本結(jié)構(gòu):順序、選擇和循環(huán)結(jié)構(gòu)。各模塊相互獨立,因而可將原來較為復雜的問題化簡為一系列簡單模塊并充分利用現(xiàn)有模塊搭建新系統(tǒng),提高程序的重用性和可維護性。
8.B
\n本題中要求輸出右上半角的數(shù),對角線上的數(shù)的下標相同,所以j=i。
\n
9.D本題考查C語言中變量類型的轉(zhuǎn)換。
C語言中若參與運算的變量的數(shù)據(jù)類型不同,則先轉(zhuǎn)換成同一類型,然后進行運算。轉(zhuǎn)換數(shù)據(jù)始終往長度增加的方向進行,以確保精確度,如int和long運算,則將int轉(zhuǎn)換為long再運算,所有的浮點運算都是以雙精度(double)進行的。
題目中x、y都為double型數(shù)據(jù),而表達式3/2為兩個整型變量之間的計算,計算結(jié)果只保留整數(shù)部分,小數(shù)部分省略掉。3/2的結(jié)果為1。后面變?yōu)橛嬎銀=x+1,這時都需要變?yōu)閐ouble型數(shù)據(jù),結(jié)果為3.000000。
10.D解析:在C++語言中退格符表示為\\b退格。注意:其他轉(zhuǎn)義字符的意義:\\n表示回車換行,\\t表示橫向跳到下一制表位置,\\v表示豎向跳格,\\r表示回車,\\f表示走紙換頁,\\\\表示反斜線符,\\a表示鳴鈴,\\ddd1~3位表示八進制數(shù)所代表的字符,\\xhh1~2位表示十六進制數(shù)所代表的字符。
11.D數(shù)據(jù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)元素之間的邏輯關(guān)系的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)的存儲結(jié)構(gòu)則是數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的物理實現(xiàn),有時也稱作數(shù)據(jù)的物理結(jié)構(gòu)。兩者的區(qū)別是數(shù)據(jù)的邏輯結(jié)構(gòu)只涉及到數(shù)據(jù)之間抽象的數(shù)學關(guān)系。存儲結(jié)構(gòu)則涉及到如何在計算機中通過對數(shù)據(jù)的物理存儲進行組織來表達數(shù)據(jù)元素之間的邏輯關(guān)系。比如在線性表的順序存儲中是利用物理存儲空間上的連續(xù)性來表達線性表中數(shù)據(jù)的前后件關(guān)系;在線性表的鏈式存儲中是通過指針域構(gòu)成的邏輯鏈條來表達數(shù)據(jù)的前后件關(guān)系。一般的,一種數(shù)據(jù)的邏輯結(jié)構(gòu)對應的物理實現(xiàn),即數(shù)據(jù)的存儲結(jié)構(gòu)不止一種。因此選項D正確。
12.C\r\n軟件工程是試圖用工程、科學和數(shù)學的原理與方法研制、維護計算機軟件的有關(guān)技術(shù)及管理方法。軟件工程的主要思想是強調(diào)在軟件開發(fā)工程中需要應用工程化的原則。軟件工程用來解決以下問題:軟件需求的增長得不到滿足、軟件開發(fā)成本和進度無法控制、軟件質(zhì)量難以保證、軟件不可維護或維護程度低、軟件得成本不斷提高、軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和應用需求的增長。軟件項目的管理、軟件產(chǎn)品的生產(chǎn)率、軟件開發(fā)中的技術(shù)都是軟件工程需要解決的部分問題。因此選項C正確。
13.D
14.D選項A是復合的賦值運算符,等價于“k=k-i”,所以k的值為1;選項B中前綴自減運算符首先將i的值自減1,然后將自減后的值賦給k,所以k和i的值都是1;選項C中k的值為1;選項D中后綴自減運算符將i的值先賦給k,然后i自減1,所以k的值為2。故本題答案為D選項。
15.A程序定義整型的全局變量a,初值為5,main函數(shù)定義整型局部變量a,初值為4。所以在main函數(shù)中,局部變量a屏蔽全局變量a。func函數(shù)中定義局部變量b,初值為5,定義靜態(tài)變量c,初值為5,并且在func函數(shù)中變量a引用的是全局變量a。綜上,我們使用a_a代表全局變量a,使用m_a代表main函數(shù)中局部變量a。main函數(shù)中,當k=0時,a_a=5,m_a=4,調(diào)用函數(shù)func(4),函數(shù)func中d的值為4,b的值為5,c的值為5,執(zhí)行表達式“a_a--;b--;--c;--d;”后,a_a的值為4,b的值為4,c的值為4,d的值為3,a+b+c+d的值為15,程序輸出15。當k=1時,a_a=4,m_a=3,調(diào)用函數(shù)func(3),函數(shù)func中d的值為3,b的值為5,c的值為4(靜態(tài)變量使用上一次調(diào)用結(jié)束時的值),執(zhí)行表達式“a_a--;b--;--c;--d;”后,a_a的值為3,b的值為4,c的值為3,d的值為2,a+b+c+d的值為12,程序輸出12。當k=2時,a_a=3,m_a=2,調(diào)用函數(shù)func(2),函數(shù)func中cl的值為2,b的值為5,c的值為3,執(zhí)行表達式“a_a--;b--;--c;--d;”后,a_a的值為2,b的值為4,c的值為2,d的值為1,a+b+c+d的值為9,程序輸出9。本題答案為A選項。
16.A解析:本題考查C語言的綜合基礎(chǔ)知識。構(gòu)成C程序的基本單位是函數(shù),一個C程序總是從main函數(shù)開始執(zhí)行,而不論main函數(shù)在整個程序中的位置如何。C語言的函數(shù)定義都是互相平行、獨立的,在定義函數(shù)時,一個函數(shù)內(nèi)不能定義另一個函數(shù)。C函數(shù)定義的一般格式有兩種:傳統(tǒng)格式和現(xiàn)代格式。傳統(tǒng)格式也稱K&R格式,是早期編譯系統(tǒng)使用的格式;現(xiàn)代格式又稱ANSI格式,是現(xiàn)代編譯系統(tǒng)使用的格式。
17.A算法的時間復雜度是指執(zhí)行算法所需要的計算工作量,其計算工作量是用算法所執(zhí)行的基本運算次數(shù)來度量的。本題答案為A選項。
18.B解析:C++程序總是從main函數(shù)開始執(zhí)行。
19.B
20.D解析:本題考查宏的使用規(guī)則:①字符替換格式:#define標識符字符串.標識符稱為宏名,無類型;②雙引號中出現(xiàn)的宏名不替換;③宏名的定義通常用大寫字母,但不是必須用大寫;④宏定義不是賦值語句,不做語法檢查。
21.1919解析:根據(jù)二叉樹的性質(zhì):在任意一棵二叉樹中,度為。的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個。本題中度為2的結(jié)點數(shù)為18,故葉子結(jié)點數(shù)為18+1=19個。
22.算法或程序或流程圖算法或程序或流程圖解析:算法是問題處理方案正確而完整的描述。
23.010111212010111212解析:本題考查的是靜態(tài)局部變量的運用。靜態(tài)局部變量的作用域與普通局部變量一樣,但它的生存期將延長到程序運行結(jié)束。本題的主函數(shù)中使用一個for循環(huán)輸出循環(huán)變量i和fun(a)的值,由于a的值一直沒被修改過,所以三次調(diào)用的都是fun(5)。第1次調(diào)用,b=0,c=3,所以返回值為5+1+4=10;第2次調(diào)用,因為c是靜態(tài)局部變量,它仍然保存著上次調(diào)用結(jié)束時的值4,而b重新被創(chuàng)建和初始化為0,所以返回值為5+1+5=11;同理,第3次調(diào)用返回的是12。所以,程序最終輸出為:010111212。
24.葉子結(jié)點葉子結(jié)點解析:樹中度為零的結(jié)點,也就是沒有后件的結(jié)點,稱為葉子結(jié)點。
25.structnode*structnode*解析:本題中的結(jié)構(gòu)類型名為structnode,所以空白處應填:structnode*。即定義一個指向自身的結(jié)構(gòu)體指針。
26.77解析:本題考查英文字母ASCII碼值的概念。字符參與運算的值是其對應的ASCII碼,字符H的ASCII碼為72,A的ASCII碼為65,0的ASCII碼為48,所以a=72-65+48=55,ASCII碼值為55的字符是7。
27.棧棧解析:棧和隊列都是—種特殊的操作受限的線性表,只允許在端點處進行插入和刪除。二者的區(qū)別是:棧只允許在表的—端進行插入或刪除操作,是—種“先進后出”的線性表;而隊列只允許在表的—端進行插入操作,在另—端進行刪除操作,是—種“先進先出”的線性表。
28.參照完整性參照完整性
29.66解析:strlen()函數(shù)的作用是計算字符串的長度并作為函數(shù)的返回值,這里的長度不包括串尾的結(jié)束標志\'\\0\'。
\'\\t\'是轉(zhuǎn)義字符,代表橫向跳若干格:\'\\\''是轉(zhuǎn)義字符,代表雙引號:\'\\023\'只代表一個字符,而不管轉(zhuǎn)義字符后面有幾個字符;\'\\xAB\'是以兩位十六進制數(shù)AB表示的ASCII碼字符,只代表一個字符;\'\\n\'是轉(zhuǎn)義字符,代表回車換行。
5個字符常量各代表一個字符,再加上字母C,所以返回的長度是6。
30.stringbis:Ilovechina!
31.HellHell解析:文件的字符串讀寫函數(shù)fgets()有3個參數(shù),第三個參數(shù)是文件指針指向要讀取數(shù)據(jù)的文件,第二個參數(shù)是一個整數(shù)(假設(shè)為n),表示從文件中讀取n-1個字符并在其后加一個'0',第一個參數(shù)為存放讀取的字符串的內(nèi)存區(qū)的起始地址,讀取得數(shù)據(jù)保存在其中。可見本題的輸出結(jié)果為:Hell。
32.abcbccabcbcc解析:for循環(huán)用strcpy函數(shù)將字符數(shù)組ch的值'abc',分別復制給二維數(shù)組x的每一行,然后通過for循環(huán)先后打印出以x[0][0],x[1][1],x[2][2]開頭的字符串'abe','bc','c',所以輸出結(jié)果為:abcbcc。
33.2004170320041703解析:由于參數(shù)傳遞只是將實參的值復制到形參中,形參與實參擁有各自的存儲空間,因此形參的改變并不影響實參,所以并不改變s的情況。
34.100300400100300400解析:scanf的格式控制字符串中,“*”表示跳過對應的輸入數(shù)據(jù),所以第二個輸入數(shù)200被跳過去了,只有100,300,400三個數(shù)被從鍵盤輸入了進來。
35.*(p+5)
36.33解析:本題考查do…while語句形式:
do循環(huán)體
while表達式
首先執(zhí)行循環(huán)體語句,然后檢測循環(huán)控制條件表達式的值,若為真,則重復執(zhí)行循環(huán)體語句,否則退出循環(huán)。第1次循環(huán):b+=2,b=2,a-=2+b,a=11;第2次循環(huán):b=4,a=5;第3次循環(huán):b=6,a=-3,此時再判斷循環(huán)條件不滿足,退出循環(huán)。
37.4545解析:對于長度為N的線性表,在最壞情況下(即線性表中元素現(xiàn)在的順序與目標順序正好相反),冒泡排序需要經(jīng)過N/2遍的從前往后的掃描和N/2遍的從后往前的掃描,需要的比較次數(shù)為N(N-1)/2。
38.aaaaAAAAAaaaaAAAAA解析:函數(shù)strcat(sp,'AAAAA')的作用是將字符中“AAAAA”連接到字符串sp的末尾,并自動覆蓋字符數(shù)組sp末尾的\'\\0\'。
39.67G67G解析:字符型變量中保存的是某個字符的ASCII碼值,是一個整數(shù),因此字符型變量的算術(shù)運算和整型變量并無區(qū)別。所以。a='A'+'5'-'3'='A'+('5'='3')='A'+2=65+2=67:b=a+'6'='2'='C'+('6'-'2')='C'+4='G'。最后分別按十進制整數(shù)和字符形式輸出a和b的值為:67G。
40.1212解析:本題的第—個for循環(huán)用于始數(shù)組arr賦初值,第二個for循環(huán)用于求和運算。由于第二個for循環(huán)初始值為1,而循環(huán)條件為i<4,所以求的是arr[1]到arr[3]及i的和,所以輸出結(jié)果為12。
41.C解析:本題的選項A)和B)犯了同樣的錯誤,即指針變量在定義后并沒有指向具體的變量。也就是說,指針變量中沒有確定的地址值,它的值是不可預見的,所指的單元也是不可預見的,因此不能進行賦值操作。另外,在選項D)中,s是血型指針變量,p是char型指針變量,所指向的內(nèi)存單元所占用的字節(jié)數(shù)是不同的,因而不能將字符指針變量p的值賦給整型指針變量s。
42.A解析:局部變量在執(zhí)行到它所在的程序塊時產(chǎn)生,執(zhí)行完時被摧毀,而靜態(tài)局部變量的生存期將一直延長到程序運行結(jié)束,故選項A正確;全局變量的只有一種靜態(tài)存儲類別,故全局變量說明為static存儲類,和沒有說明為static存儲類其生存期都是一直延長到程序運行結(jié)束,故選項B不正確:未賦初值的局部變量的初值是隨機的,故選項C不正確;形參只能是一般局部變量,不能使用任何存儲類說明符,故選項D不正確。所以,4個選項中選項A符合題意。
43.D本題主要考查自加與自減運算符。在C語言中,自加與自減運算符具有以下性質(zhì):
(1)自加運算符“++”和自減運算符“--”的運算本身是一種賦值運算,其結(jié)果是使運算對象的值增1或減1。
(2)++、--運算符是單目運算符,運算對象可以是整型變量或字符型變量,也可以是實型變量,但不能是常量和表達式。
(3)自加、自減運算符無論是作為前綴還是后綴運算符,對于變量而言,其效果相同,但作為表達式來說,其值不同。
(4)++和--運算符的結(jié)合方向是“自右向左”。
(5)不要在一個表達式中對同一個變量進行多次自增或自減運算。可以知道本題正確的答案是D。
44.C解析:本題考查字符串比較函數(shù)strcmp()。調(diào)用形式:strcmp(s1,s2),其中s1、s2分別是字符串存儲區(qū)的首地址。函數(shù)功能:比較字符串str1和str2,當str1<str2時,返回值為負數(shù);當str1=str2時,返回0;當str1>str2,返回值為正數(shù)(注意:不能使用關(guān)系運算符比較兩個字符串的大小)。
45.A
46.D解析:在C語言的標準中,short占2個字節(jié)、long占4個字節(jié),但int的大小和編譯系統(tǒng)相關(guān)。例如在Turbo\u3000C\u30002.0中,int占2個字節(jié),但在VisualC++6.0(VC6可以用做C語言編譯器)中占4個字節(jié)。故本題應該選擇D。
47.B解析:f函數(shù)的功能是返回地址為x,y的兩個數(shù)中值較的數(shù)的地址,本題輸出結(jié)果是7,8,7。
48.D解析:通常,引用一個數(shù)組元素可以用下標法,如a[P-a]形式,或指針法,如*(&a[i])的形式。本題中a[9]=9,a[10]顯然超出了數(shù)組范圍,注意,數(shù)組的下標是從0開始的。
49.A解析:因為變量的初始值分別為'k=5,n=0',所以程序第一次進入循環(huán)時,執(zhí)行default語句,這時k=4,執(zhí)行'case4:'這個分支,結(jié)果是'n=2,k=3',打印出2;程序然后進行第二次循環(huán),這時'n=2,k=3',執(zhí)行'case3:'這個分支,結(jié)果是'n=3,k=2',打印出3;程序進行第三次循環(huán),這時'n=3,k=2',執(zhí)行'case2:case4:'這兩個分支,結(jié)果是\ue008'n=5,k=1'\ue009,打印出5,這時因為n=5不滿足n<5的循環(huán)條件,因此退出循環(huán),程序運行結(jié)束,故輸出結(jié)果為235。
50.B解析:改變文件位置的指針函數(shù)fseek()的調(diào)用形式為:fseek(fp,offset,position);。fseek函數(shù)參數(shù)說明:“fp”是指向該文件的文件型指針;“offset'’為位移量,指從起始點position.到要確定的新位置的字節(jié)數(shù)。也就是以起點為基準,向前移動的字節(jié)數(shù)。ANSIC要求該參數(shù)為長整型量;“position”為起始點,指出以文件的什么位置為基準進行移動,position的值用整型常數(shù)表示,“0”表示文件的開頭,“1”表示文件的當前位置,“2”表示文件的末尾。
51.B解析:從概念模式到內(nèi)模式的映射一般由數(shù)據(jù)庫管理系統(tǒng)(DBMS)實現(xiàn)。
52.A解析:一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。線性表、棧與隊列、線性鏈表都是線性結(jié)構(gòu),而二叉樹是非線性結(jié)構(gòu)。
53.D解析:C語言在函數(shù)中說明的變量為局部變量,只在函數(shù)內(nèi)起作用但不會影響到其他函數(shù)。所以在不同的函數(shù)中使用相同的函數(shù)名不代表是同一函數(shù),A)項正確。在函數(shù)定義時聲明的參數(shù)只在函數(shù)內(nèi)部起作用,是函數(shù)的局部變量,B)正確。在一個函數(shù)中定義的變量是這個函數(shù)的局部變量,所以只在這個函數(shù)內(nèi)起作用,C)正確。復合語句中定義的變量其作用域是這個復合語句,不會擴大到整個函數(shù),所以D)項錯誤。注意:函數(shù)的書寫風格。
54.B解析:選項B中for循環(huán)了5次,而每次循環(huán)的時候,都將p的值重新賦值為1后,再乘以當前數(shù)字i,最后的結(jié)果為5,顯然不是5!的值,同樣的分析可知選項A、選項C和選項D計算的都是5!。所以,4個選項中選項B符合題意。
55.D解析:電子郵件是利用Internet網(wǎng)傳送信件,不是檢索服務,由于信件只發(fā)給收信人,所以不是公告信息,并不是一發(fā)信就必須要收信人立即接收,而是信件存放在郵箱中,收信人在需要的時候再取出。
56.D解析:注意的是X++中x值的引用時,這里應當是先引用,后自加,具體執(zhí)行過程如下:
第一次while循環(huán):條件為真,執(zhí)行a=a+1=1此時,x的值已為4,判斷y<x不成立,繼續(xù)執(zhí)行循環(huán);第二次while循環(huán):條件為假,此時x的值已為5,退出while循環(huán),執(zhí)行printf。
57.C解析:如果沒有指明函數(shù)值類型,則默認函數(shù)返回值的類型為int型。注意:順序程序結(jié)構(gòu)的執(zhí)行過程。
58.B解析:“%”是求余運算符,所以if判斷語句中實際是指出只有當y可以被3整除時方可以繼續(xù);-y是先進行y的自減運算,再使用y值。所以,最后的打印結(jié)果應當為“852”。
59.A解析:C語言的常量分為整型常量、實型常量和字符型常量。本題中包含整型常量和實型常量。選項B)以0打頭,應該屬于八進制整數(shù),而八進制整數(shù)只能用數(shù)字0~7表示,所以選項B)不合法;選項C)和D)從形式上看屬于實型常量,但對于指數(shù)形式的實型常量,e(或E)之前必須有數(shù)字,且e后面的指數(shù)必須為整數(shù),所以選項C)和D)都不合法;選項A)屬于實型常量中正確的十進制小數(shù)形式。
60.C解析:事實上,無論有無static修飾,外部變量都具有A、B和C三種特性。作為一種修飾,static僅是限制此類型外部變量韻引用范圍:只能在定義它的文件范圍內(nèi)使用。
61.B解析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心,是負責數(shù)據(jù)庫的建立、使用和維護的軟件。數(shù)據(jù)庫管理系統(tǒng)建立在操作系統(tǒng)之上,實施對數(shù)據(jù)庫的統(tǒng)一管理和控制。用戶使用的各種數(shù)據(jù)庫命令以及應用程序的執(zhí)行,最終都必須通過數(shù)據(jù)庫管理系統(tǒng)。另外,數(shù)據(jù)庫管理系統(tǒng)還承擔著數(shù)據(jù)庫的安全保護工作,按照數(shù)據(jù)庫管理員所規(guī)定的要求,保證數(shù)據(jù)庫的完整性和安全性。
62.D在整個程序運行期間,靜態(tài)局部變量在內(nèi)存的靜態(tài)存儲區(qū)中占據(jù)著永久的存儲單元,即使退出函數(shù)以后,下次再進入該函數(shù)時,靜態(tài)局部變量仍使用原來的存儲單元,靜態(tài)局部變量的初值是在編譯的時候賦予的,在程序執(zhí)行期間不再賦予初值。本題由于連續(xù)三次調(diào)用函數(shù)fun,三次對靜態(tài)變量x進行操作,x的值應依次為4,5,6。
63.B
64.A
65.A
66.B\n數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心,它位于用戶和操作系統(tǒng)之間,屬于系統(tǒng)軟件。數(shù)據(jù)庫系統(tǒng)由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫管理員、硬件平臺和軟件平臺五部分組成。數(shù)據(jù)庫技術(shù)的發(fā)展經(jīng)歷了3個階段,人工管理、文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng),數(shù)據(jù)共享最好的是數(shù)據(jù)庫系統(tǒng)階段,數(shù)據(jù)庫中的數(shù)據(jù)獨立于應用程序而不依賴于應用程序。
\n
67.D
68.A
69.C
\ngetchar函數(shù)是讀取鍵盤的輸入函數(shù),本題中輸入字母“a”,則c=a,判斷if條件,發(fā)現(xiàn)a>=a&&a<=g成立,則執(zhí)行下列語句:C=C+4,C得到的字符的ASCII碼值,退出if語句,通過putchar函數(shù)輸出字符。
70.D多對多聯(lián)系:多對多的聯(lián)系表現(xiàn)為一個表中的多個記錄在相關(guān)表中同樣有多個記錄與其匹配。
一個教師可講授多門課程,一門課程可由多個教師講授,所以實體教師和課程間的聯(lián)系是多對多的聯(lián)系。
71.A解析:typedef用來聲明新的類型名來代替已有的類型名,typedef只是對已經(jīng)存在的類型增加了一個類型名,原有類型名仍有效。typedef不能用來定義變量。
72.D
73.B
\n用'w'方式打開文件,意思是如果文件名相同則覆蓋原來的文件,所以當再次輸入時覆蓋了第一次的內(nèi)容,B選項正確。\n
74.D
75.B\n數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。數(shù)據(jù)流圖中的主要圖形元素有:加工(轉(zhuǎn)換)、數(shù)據(jù)流、存儲文件(數(shù)據(jù)源)等。本題答案為B)。
\n
76.A第一個嵌套的for循環(huán)功能將對角線上的數(shù)據(jù)從大到小排序,其他數(shù)據(jù)不變,排序完成后,a[0][0]值為6,輸出第一行為6432,答案選擇A)
77.B題中定義的語句等價于以下語句。
故本題定義一個整型變量x和一個指向整型的指針P,并把變量X的地址賦值給P,即P為指向整型變量x的指針,則*P表示P所指向的整型變量x的數(shù)值。
78.D
79.C根據(jù)變量作用域與其定義語句在程序中出現(xiàn)位置之間的關(guān)系,可把變量分為局部變量和全局變量兩種。其中,在函數(shù)外部定義的變量叫做全局變量,又稱為外部變量;在函數(shù)體內(nèi)定義的變量是局部變量,又稱為內(nèi)部變量。全局變量的作用域是整個程序,而局部變量的作用域是定義它的函數(shù)或者程序段。
在本題中,程序首先聲明兩個無返回值函數(shù)func1和func2,然后定義一個全局數(shù)組st。做這類除主函數(shù)外,有其他函數(shù)的試題時,首先需要分析其他函數(shù)來得知函數(shù)的作用,然后再看主函數(shù)。
func1函數(shù)帶有一個整型變量的形參,在函數(shù)體中,首先輸出以形參作為下標的數(shù)組元素值,然后執(zhí)行if條件判斷語句,其條件為形參變量i<3。如果結(jié)果為真,則將變量i加2后保存,然后調(diào)用func2函數(shù);如果條件結(jié)果為假,則結(jié)束該函數(shù)。
從程序中不難看出,func2函數(shù)與func1函數(shù)基本類似,只是最后它對函數(shù)func1進行調(diào)用,與前者不同,兩個函數(shù)是互相調(diào)用的。
在主函數(shù)中定義一個變量i并賦值為0,然后調(diào)用函數(shù)func1,根據(jù)我們對函數(shù)func1的分析可知,輸出st[0]即字符‘h’,而此時if語句的結(jié)果為真,執(zhí)行i加2并調(diào)用func2函數(shù)操作。此時變量i的值為2,因此,輸出st[2]即字符‘l’,此時函數(shù)func2中的if條件語句結(jié)果為真,同樣執(zhí)行i加2,并調(diào)用func1函數(shù)操作,然后通過func1函數(shù)輸出st[4]即字符‘o’,此時由于變量i的值等于4,是大于3的,函數(shù)結(jié)束。程序運行到出口,最后輸出換行。因此,本程序最終的輸出結(jié)果是hlo。
80.B81.(1)錯誤:while(*str!=ˊ@ˊ)
正確:while(*str)或while(*str!=ˊ\0ˊ)或while(*str!=0)
(2)錯誤:(*str++);
正確:str++
【解析】首先判斷字母是否為小寫字母,如果是小寫字母則進行轉(zhuǎn)換。
第一個標識下“while(*str!=ˊ@ˊ)”語句原意是str不指向字符串尾就進入下面的循環(huán),所以對于指針判斷不為結(jié)束符的語句應該是循環(huán)為真,所以應為“while(*str)”或“while(*str!=ˊ\Oˊ)”或“while(*str!=0)”。
第二個標識下“(*str)++;”是對字符內(nèi)容加1,而原題是對字符位置加1,所以將其改為“str++;”。
82.1intfun(char*str)2{3inti,n=0,fg=1;4char*p=str;5while(*p)/*將指針p指向字符串末尾,并統(tǒng)計字符數(shù)*/6{7n++8P++;10}10for(i=0;i2021年河北省承德市全國計算機等級考試C語言程序設(shè)計模擬考試(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.一個n條邊的連通無向圖,其頂點的個數(shù)至多為()。
A.n-1B.nC.n+1D.nlogn
2.若ch為char型變量,k為int型變量(已知字符a的ASCII碼是97),則執(zhí)行下列語句后輸出的結(jié)果為()。
cb='b';
k=10;
printf("%X,%o,”,ch,ch,k);
printf("k=%%d\n",k);A.A.因變量類型與格式描述符的類型不匹配,輸出無定值
B.輸出項與格式描述符個數(shù)不符,輸出為0值或不定值
C.62,142,k=%d
D.62,142,k=%10
3.向一個棧頂指針為H的鏈棧中執(zhí)行出棧運算時,需執(zhí)行()。
A.p=H;H=H->link;free(p);
B.H=H->link;free(H);
C.p=H;H->link=H->link->link;free(p);
D.p=H;H=H->link;
4.以下程序的輸出結(jié)果是______。
A.54321
B.12345
C.12345
D.543210main(){intw=5;fun(w);printf("\n");}fun(intk){if(k>0)fun(k-1);printf("%d"",k);}
5.有以下程序:intfun(intx){intp;if(x==0||x==1)return(3);p=x-fun(x-2);returnp;}main{printf("%d\n",fun(7));}執(zhí)行后的結(jié)果是()。A.7B.3C.2D.0
6.以下敘述正確的是
A.continue語句的作用是結(jié)束整個循環(huán)的執(zhí)行
B.只能在循環(huán)體內(nèi)和swish語句體內(nèi)使用break語句
C.在循環(huán)體內(nèi)使用break語句或continue語句的作用相同
D.從多層循環(huán)嵌套中退出時,只能使用goto語句
7.以下敘述中錯誤的是()。
A.c語言是一種結(jié)構(gòu)化程序設(shè)計語言
B.使用三種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡單問題
C.結(jié)構(gòu)化程序設(shè)計提倡模塊化的設(shè)計方法
D.結(jié)構(gòu)化程序由順序、分支、循環(huán)三種基本結(jié)構(gòu)組成
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.假定X和Y為double型,則表達式x=2,y=x+3/2的值是()。
A.3.500000B.3C.2.000000D.3.000000
10.在C語言中,退格符是
A.\nB.\tC.\fD.\b
11.數(shù)據(jù)的存儲結(jié)構(gòu)是指()。
A.存儲在外存中的數(shù)據(jù)B.數(shù)據(jù)所占的存儲空間量C.數(shù)據(jù)在計算機中的順序存儲方式D.數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的表示
12.下列描述中正確的是______。A.軟件工程只是解決軟件項目的管理問題
B.軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問題
C.軟件工程的主要思想是強調(diào)在軟件開發(fā)過程中需要應用工程化原則
D.軟件工程只是解決軟件開發(fā)中的技術(shù)問題
13.下列語句中,說法正確的是______。
A.C程序書寫格式嚴格,每行只能寫一個語句
B.C程序書寫格式嚴格,每行必須有行號
C.C程序書寫格式自由,每行可以寫多條語句,但之間必須用逗號隔開
D.C程序書寫格式自由,一個語句可以分寫在多行
14.設(shè)有定義“intk=3,i=2;”,以下選項中,變量k的值與其他3個不同的是()。
A.k-=i;B.k=--i;C.k=i-1;D.k=i--;
15.有下列程序:程序執(zhí)行后的輸出結(jié)果是()。
A.15,12,9,B.15,13,11,C.15,11,7,D.15,15,15,
16.以下敘述中正確的是()。
A.構(gòu)成C程序的基本單位是函數(shù)
B.可以在一個函數(shù)中定義另一個函數(shù)
C.main函數(shù)必須放在其他函數(shù)之前
D.C函數(shù)定義的格式是K&R格式
17.以下敘述中正確的是()。
A.算法的時間復雜度是指算法在執(zhí)行過程中基本運算的次數(shù)
B.算法的時間復雜度是指算法執(zhí)行所需要的時間
C.算法的時間復雜度是指算法執(zhí)行的速度
D.算法的復雜度是指算法控制結(jié)構(gòu)的復雜程度
18.以下說法中正確的是()。
A.C程序總是從第一個定義的函數(shù)開始執(zhí)行
B.C程序總是從main函數(shù)開始執(zhí)行
C.C函數(shù)必須有返回值,否則不能使用函數(shù)
D.C程序中有調(diào)用關(guān)系的所有函數(shù)必須放在同一個程序文件中
19.在以下的敘述中,正確的是()。
A.線性表的順序存儲結(jié)構(gòu)優(yōu)于鏈表存儲結(jié)構(gòu)
B.二維數(shù)組是其數(shù)據(jù)元素為線性表的線性表
C.棧的操作方式是先進先出
D.隊列的操作方式是先進后出
20.以下有關(guān)宏的描述不正確的是()。
A.宏定義不做語法檢查B.雙引號中出現(xiàn)的宏名不進行替換C.宏名無類型D.宏名必須用大寫字母表示
二、2.填空題(20題)21.某二叉樹中度為2的結(jié)點有18個,則該二叉樹中有【】個葉子結(jié)點。
22.問題處理方案的正確而完整的描述稱為______。
23.以下程序運行后的輸出結(jié)果是______。
fun(inta)
{intb=0;staticintc=3;
b++;c++;
return(a+b+c);
}
main()
{inti,a=5;
for(i=0;i<3;i++)printf("%d%d",i,fun(a));
printf("\n");
}
24.樹中度為零的結(jié)點稱為______。
25.以下定義的結(jié)構(gòu)體類型擬包含兩個成員,其中成員變量info用來存入整形數(shù)據(jù);成員變量link是指向自身結(jié)構(gòu)體的指針,請將定義補充完整。
structnode
{intinfo;
【】link;};
26.若有以下程序:
main()
{chara;
a='H'-'A'+'0';
printf("%c\n",a);
}
執(zhí)行后的輸出結(jié)果是【】。
27.按“先進后出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是[]。
28.關(guān)系模型的完整性規(guī)則是對關(guān)系的某種約束條件,包括實體完整性、______和自定義完整性。
29."printf("%d\n",strlen("\t\"'\023\xABC\n"));"語句的輸出結(jié)果是______。
30.下列程序的運行結(jié)果為【】。
main()
{inti;
chara[]="Ilovechina!",b[20],*p1,*p2;
p1=a;
p2=b;
while(*p1)
{*p2=*p1;
p1++;
p2++;
}
*p2='\0';
printf("stringbis:%s\n",b);
}
31.已有文本文件test.txt,其中的內(nèi)容為:Hello,everyone!。以下程序中,文件test.txt已正確為“讀”而打開,由此文件指針fr指向該文件,則程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{FILE*fr;charstr[40];
…
fgets(str,5,fr);
printf("%s\n",str);
felose(fr);
}
32.以下程序運行后的輸出結(jié)果是【】。
#include<stdio,h>
#include<string,h>
main()
{charch[]="abc".,x[3][4]:inti:
for(i=0;i<3:i++)strcpy(x[i],ch):
for(i=0;i<3:i++)printf("%s",&x[i][i]);
printf("\n")
}
33.目前實際存在和使用的廣域網(wǎng)基本上都是采用______拓撲結(jié)構(gòu)類型。
有以下程序:
#include<string.h>
structSTU
{intnum;
floatTotalScore;};
voidf(structSTUp)
{structSTUs[2]={{20041,703},{20045,537}};
p.num=s[1].num;p.TotalScore=s[1].TotalScore;
}
main()
{structSTUs[2]={{20041,703},{20042,580}};
f(s[0]);
printf("%d%3.0f\n",s[0].num,s[0],TotalScore);
}
程序運行后的輸出結(jié)果是【】。
34.在scanf()函數(shù)調(diào)用語句中,可以在格式字符和%號之間加上一個星號,它的作用是跳過對應的輸入數(shù)據(jù);當輸入以下數(shù)據(jù)時,100200300400500<回車>,下面語句的執(zhí)行結(jié)果為【】。
main()
{inta,b,C;
scanf("%d%*d%d%d",&a,&b,&c);
printf("%d%d%d",a,b,c);}
35.若有以下定義語句,則不移動指針p,并且通過指針p引用值為98的數(shù)組元素的表達式是【】。
intw[10]={23,54,10,33,47,98,72,80,61},*p=w;
36.下列程序段中循環(huán)體的執(zhí)行次數(shù)是______。
a=15;
b=0;
do{b+=2;a-=2+b;}while(a>=0);
37.度為10的線性表進行冒泡排序,最壞情況下需要比較的次數(shù)為______。
38.下列語句的輸出結(jié)果是______。
chars[20]="aaaa",*sp=s;
puts(strcat(sp,"AAAAA"));
39.已知字母A的ASCII碼為65。以下程序運行后的輸出結(jié)果是______。
main()
{chara,b;
a='A'+'5'-'3';b=a+'6'-'2';
printf("%d%c\n",a,B);
}
40.下列執(zhí)行后輸出的結(jié)果是【】。
main()
{intarr[10],i,k=0
for(i=0;i<10;i++)atr[i]=i
for(i=1,i<4;i++)k+=arr[i]+i;
printf("%d\n",k);
}
三、1.選擇題(20題)41.請選出正確的程序段
A.int*p;scanf("%d",p);…
B.int*s,k;*s=100;…
C.int*s,k;char*p,c;s=&k;p=&c;*p='a';…
D.int*s,k;char*p,e;s=&k;p=&c;s=p;*s=1;…
42.以下敘述中正確的是()。
A.局部變量說明為static存儲類,其生存期將得到延長
B.全局變量說明為static存儲類,其作用域?qū)⒈粩U大
C.任何存儲類的變量在未賦初值時,其值都是不確定的
D.形參可以使用的存儲類說明符與局部變量完全相同
43.下列關(guān)于單目運算符++、--的敘述中正確的是A.它們的運算對象可以是任何變量和常量
B.它們的運算對象可以是char型變量和int型變量,但不能是float型變量
C.它們的運算對象可以是int型變量,但不能是double型變量和float型變量
D.它們的運算對象可以是char型變量、int型變量和float型變量
44.判斷字符串s1是否大于字符串s2,應該使用()。
A.if(strcmp(s1,s2)<0)
B.if(s1>s2)
C.if(strcmp(s2,s1)<0)
D.if(strcmp(s1,s2))
45.若i、j已定義為int型,則以下程序段中內(nèi)循環(huán)的總的執(zhí)行次數(shù)是()for(i=5;i>0;i--)for(j=0;j<4;j++){…}
A.20B.24C.25D.30
46.以下關(guān)于long、int和short類型數(shù)據(jù)占用內(nèi)存大小的敘述中正確的是(),
A.均占4個字節(jié)B.根據(jù)數(shù)據(jù)的大小來決定所占內(nèi)存的字節(jié)數(shù)C.由用戶自己定義D.由C語言編譯系統(tǒng)決定
47.有以下程序:int*f(int*x,int*y){if(*<*y)returnx;elsereturny;}main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=f(p,q);printf("%d,%d,%d\n",*p,*q,*r);}程序運行后輸出結(jié)果是______。
A.7,8,8B.7,8,7C.8,7,7D.8,7,8
48.若已定義:inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,則對a數(shù)組元素不正確的引用是______。
A.a[p-a]B.*(&a[i])C.p[i]D.a[10]
49.有以下程序
main()
{intk=5,n=0;
do
{switch(k)
{case1:case3:n+=1;k--;break;
default:n=0;k--;
case2:case4:n+=2;k--;break;
}
printf("%d",n);
}while(k>0&&n<5);
}
程序運行后的輸出結(jié)果是
A.235B.0235C.02356D.2356
50.函數(shù)fseek的正確調(diào)用形式是()。
A.fseek(位移量,起始點,文件類型指針);
B.fseek(文件類型指針,位移量,起始點);
C.fseek(文件類型指針,起始點,位移量);
D.fseek(起始點,位移量,文件類型指針);
51.在數(shù)據(jù)庫的兩級映射中,從概念模式到內(nèi)模式的映射一般由______實現(xiàn)。
A.數(shù)據(jù)庫系統(tǒng)B.數(shù)據(jù)庫管理系統(tǒng)C.數(shù)據(jù)庫管理員D.數(shù)據(jù)庫操作系統(tǒng)
52.下列敘述中正確的是_______。
A.線性表是線性結(jié)構(gòu)B.棧與隊列是非線性結(jié)構(gòu)C.線性鍵表是非線性結(jié)構(gòu)D.二叉樹是線性結(jié)構(gòu)
53.以下敘述中不正確的是
A.在不同的函數(shù)中可以使用相同的名字的變量
B.函數(shù)中的形式參數(shù)是局部變量
C.在一個函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效
D.在一個函數(shù)內(nèi)的復合語句中定義的變量在本函數(shù)范圍內(nèi)有效
54.若變量已正確定義,要求程序段完成求5!的計算,不能完成此操作的程序段是()。
A.for(i=1,p=1;i<=5;i++)p*=i;
B.for(i=1;i<=5;i++){p=1;p*=i;}
C.i=1;p=1;while(i<=5){p*=i;i++;}
D.i=1;p=1;do{p*=i;i++;}while(1<=5)
55.電子郵件是()
A.網(wǎng)絡信息檢索服務
B.通過Web網(wǎng)頁發(fā)布的公告信息
C.通過網(wǎng)絡實時交互的信息傳遞方式
D.一種利用網(wǎng)絡交換信息的非交互式服務
56.下面程序的輸出是________。main(){intx=3,y=6,a=0;while(x++!=(y=|)){a+=1;if(y<x)break;}printf("x=%d,y=%d,a=%d\n",x,y,A);}
A.x=4,y=4,a=1B.x=5,y=5,a=1C.x=5,y=4,a=3D.x=5,y=4,a=1
57.閱讀下面程序段,則執(zhí)行后的結(jié)果為#include"stdio.h"main(){intm=4,n=2,k;k=fun(m,n);printf("%d\n",k);}fun(intm,intn){return(m*m*m-n*n*n);}
A.64B.8C.56D.0
58.下面程序main(){inty=9;for(;y>0;y--){if(y%3=0){printf("%d",--y);continue;}}}的輸出是_______。
A.741B.852C.963D.875421
59.以下選項中可作為C語言合法常量的是
A.-80B.-080C.-8e1.0D.-80.0e
60.若一個外部變量的定義形式為staticintx;,那么,其中static的作用應該是______。
A.將變量存儲在靜態(tài)存儲區(qū)B.使變量x可以由系統(tǒng)自動初始化C.使x只能在本文件內(nèi)引用D.使x的值可以永久保留
四、選擇題(20題)61.數(shù)據(jù)庫系統(tǒng)的核心是()。
A.數(shù)據(jù)模型B.數(shù)據(jù)庫管理系統(tǒng)C.數(shù)據(jù)庫D.數(shù)據(jù)庫管理員
62.閱讀下列程序,則運行結(jié)果為()。
A.3B.4C.5D.6
63.(56)下列不屬于軟件調(diào)試技術(shù)的是()
A.強行排錯法
B.集成測試法
C.回溯法
D.原因排除法
64.
65.
66.下列敘述中錯誤的是(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 開荒承包林地合同范本
- 貸款單位裝修合同范本
- 水稻雇傭合同范本
- 委托租船合同范本
- 2025-2030年中國煉焦行業(yè)發(fā)展?jié)摿盃I銷策略研究報告
- 2025-2030年中國火鍋店連鎖行業(yè)運行態(tài)勢及投資戰(zhàn)略研究報告
- 電視廣播中的音頻處理技術(shù)探討
- 2025-2030年中國安檢設(shè)備市場運營狀況及發(fā)展趨勢預測報告
- 包裝生產(chǎn)合同范本
- 中暑-紅十字應急救護培訓課件
- 中國農(nóng)業(yè)銀行筆試真題
- (5.5)-雜草圖片農(nóng)田雜草及防除學
- 生理學人體生理功能的調(diào)節(jié)
- 大學英語精讀1-6冊課文
- 口腔護理技術(shù)
- 西師版四年級下冊100道口算題大全(全冊齊全)
- TFCC損傷的診斷及治療
- 《西藏度亡經(jīng)》及中陰解脫竅決(收藏)
- 2022年醫(yī)學專題-健康危險因素干預
- 小老鼠找朋友 演示文稿
評論
0/150
提交評論