版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
2021年湖南省常德市全國計算機等級考試C語言程序設計真題二卷(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.
2.
3.由權值分別為3,8,6,2,5的葉子結點生成一棵哈夫曼樹,它的帶權路徑長度為________。
A.24B.48C.72D.53
4.a、b、c、d變量均為float類型且已正確賦值,下列選項中與數(shù)學式子“2ab/(5cd)”等價的C語言表達式是()。
A.2/5*a/c*d/b
B.a/(5*c*d)*(2*b)
C.2*a*b/5*c*d
D.2/5*a*d*(1/c*d)
5.sizeof(float)是()。A.一個雙精度型表達式B.一個整型表達式C.一種函數(shù)調(diào)用D.一個不合法的表達式
6.以下程序的輸出結果是()。main(){charst[20]="hell0\O\t\\\”;printf("%d%d\n",strlen(st),sizeof(st));}A.99B.520C.1320D.2020
7.使用下列二維圖形變換矩陣A=a*T,,其中,a是行向量(xy1),是齊次坐標形式的二維點。給定的變換矩陣T如下所示,則將產(chǎn)生的變換結果為()A.圖形放大2倍
B.圖形放大2倍,同時沿X、Y坐標軸方向各移動一個單位
C.沿X坐標軸方向各移動2個單位
D.沿X坐標軸放大2倍,同時沿X、Y坐標軸方向各移動一個單位
8.設變量P是指針變量,語句P=NULL;是給指針變量賦NULL值,它等價于()。A.A.p="";
B.p="0";
C.p=0;
D.p="";
9.下列代碼的復雜度是多少?如果多于1個答案正確,選擇最小的那個。()A.O(n*m*m)B.O(n*log(m)*m)C.O(n+m+m)D.O(n*m)
10.設有定義:floata=2,b=4,h=3;以下c語言表達式中與代數(shù)式(a+B)h計算結果不相符的是()。A.(a+B)*h/2B.(1/2)*(a+B)*hC.(a+B)*h*1/2D.h/2*(a+B)
11.若以“a+”方式打開一個已存在的文件,以下敘述正確的是()。
A.文件打開時,原有文件內(nèi)容不被刪除,可以進行添加和讀操作
B.文件打開時,原有文件內(nèi)容不被刪除,位置指針移到文件開頭,可以進行重寫和讀操作
C.文件打開時,原有文件內(nèi)容不被刪除,位置指針移到文件中間,可以進行重寫和讀操作
D.文件打開時,原有文件內(nèi)容被刪除,只可進行寫操作
12.有以下定義
#include<stdio.h>
chara[10],*b=a;
不能給a數(shù)組輸入字符串的語句是
A.gets(A)B.gets(a[0]);C.gets(&a[0]);D.gets(B);
13.設a、b和、c都是int型變量,且a=3、b=4、c=5,則下面的表達式中,值為0的表達式為()
A.'a'&&'b'
B.a<=b
C.a‖b+c&&b-c
D.!(a-b)&&(!c‖1)
14.有以下程序:#include<stdio.h>voidswap(int*a,int*b){intt,*tp;t=*a;*a=*b;*b=t;tp=a;a=b;b=tp;printf(“%d,%d,”,*a,*b);}main(){inti=3,j=7,*p=&i,*q=&j;swap(p,q);printf(“%d,%d,%d,%d”,i,j,*p,*q);}程序運行后的輸出結果是()。
A.3,7,3,7,3,7B.7,3,7,3,7,3C.3,7,3,7,7,3D.3,7,7,3,7,3
15.若某表最常用的操作是在最后一個結點之后插入一個結點或刪除最后一個結點,則采用()存儲方式最節(jié)省運算時間。
A.單鏈表B.給出表頭指針的單循環(huán)鏈表C.雙鏈表D.帶頭結點的雙循環(huán)鏈表
16.有以下程序:#include<stdio.h>main(){inta;scanf("%d",&a);if(a++<9)printf("%d\n",a);clscprintf("%d\n",a--);}程序運行時從鍵盤輸入9<回車>,則輸出結果是()。A.10B.11C.9D.8
17.
18.在C語言中,函數(shù)隱含的類型是()
A.autoB.staticC.intD.void
19.已知shortint類型變量占用兩個字節(jié),若有定義:shortintx[10]={0,2,4};,則數(shù)組x在內(nèi)存中所占字節(jié)數(shù)是()。
A.3B.6C.10D.20
20.設散列表長m=14,散列函數(shù)H(K)=K%11,已知表中已有4個結點:r(15)=4;r(38)=5;r(61)=6;r(84)=7,其他地址為空,如用二次探測再散列處理沖突,關鍵字為49的結點地址是_____。
A.8B.3C.5D.9
二、2.填空題(20題)21.下面程序的運行結果是【】。
main()
{unsigneda=0112,x;
x=a>>3;
printf("x=%o",x);
}
22.以下程序的輸出結果是()。
#include<stdio.h>
main()
{intx=27;
while(x>20&&x<30)
{x++;
if(x/3){x++;break;}
else
continue;
}
printf("%d\n",x);
}
23.以下程序運行后的輸出結果是【】。
main()
{
charc1,c2;
for(c1='0',c2='9';c1<c2;c1++,c2--)
printf("%c%c",c1,c2);
printf("\n");
}
24.用高級語言編寫的程序稱為【】程序,它可以通過解釋程序翻譯一句執(zhí)行一句的方式執(zhí)行,也可以通過編譯程序一次翻譯產(chǎn)生目標程序,然后執(zhí)行。
25.在計算機軟件系統(tǒng)的體系結構中,數(shù)據(jù)庫管理系統(tǒng)位于用戶和【】之間。
26.下列程序段的輸出結果是【】。
intn='c';
switch(n++)
{default:printf("error");break;
case'a':
case'A':
case'b':
case'B':printf("good");break;
case'c':case'C':printf("pass");
case'd':case'D':printf("warn");
}
27.下列程序的運行結果是______。
#defineP(A)printf("%d",A)
main()
{intj,a[]={1,2,3,4,5,6,7),i=5;
for(j=3;j>1;j--)
{switch(j)
{case1:
case2:P(a[i++]);break;
case3:P(a[--i]);
}
}
}
28.下列程序的輸出結果是______。
longfun5(intn)
{longs;
if((n==1)‖(n==2))
s=2;
else
s=n+fun5(n-1);
return(s);
}
main()
{longx;
x=fun5(4);
printff"%1d\n",x);}
29.測試的目的是暴露錯誤,評價程序的可靠性;而______的目的是發(fā)現(xiàn)錯誤的位置并改正錯誤。
30.下面程序的運行結果是【】。
#include<stdio.h>
fun(intt[],intn)
{inti,m;
if(n==1)returnt[0];
else
if(n>=2)|m:fun(t,n-1);returnm;}
}
main()
{inta[]={11,4,6,3,8,2,3,5,9,2};
printf("%d\n",fun(a,10));
31.下面程序的功能是求整數(shù)m、n的最大公約數(shù),請?zhí)羁铡?/p>
main()
{intm,n,r;
scanf("%d,%d",&m,&n);
if(【】){r=m;m=n;n=r;)
while(【】)
{r=m%n;m=n;n=r;}
printf("%d",m);
}
32.以下程序中,函數(shù)fun的功能是計算x2-2x+6,主函數(shù)中將調(diào)用fun函數(shù)計算:
y1=(x+8)2-2(x+8)+6
y2=sin2(x)-2sin(x)+6
請?zhí)羁铡?/p>
ginclude"math.h"
doublefun(doublex){return(x*x-2*x+6);}
main()
{doublex,y1,y2;
pfintf("Enterx:");scanf("%lf"&x);
y1=fun([10]);y2=fun([11]);
pin
33.若a是int型變量,則下列表達式的值為______。
(a=2*3,a*2),a+4
34.若a是int型變量,且a的初值為4,則計算a+=a-=a*a表達式后a的值為______。
35.以下程序運行后的輸出結果是______。
main()
{
inti,m=0,n=0,k=0;
for(i=9;i<=11;i++)
switch(i/10)
{
case0:m++;n++;break;
case10:n++;;break;
default:k++;n++;
}
printf("%d%d%d\n",m,n,k);
}
36.執(zhí)行以下程序后,輸出‘#’號的個數(shù)是______。
#include<stdio.h>
main()
{
inti,j;
for(i=1;i<5;i++)
for(j=2;j<=i;j++)
putchar('#');
}
37.有如下圖所示的雙鏈表結構,請根據(jù)圖示完成結構體的定義:
structaa
{intdata;
【】}node;
38.下列程序的運行結果是______。
#include<stdio.h>
func(a,B)
{staticintm=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
main0
{intk=5,m=3,p;
p=func(k,m);
printf("%d",p);
p=func(k,m);
printf("%d\n",p);
}
39.以下程序的輸出結果是【】。
main()
{inty=9;
for(;y>0;y--)
if(y%3==0)
{printf("%d",--y);continue;}}
40.通常將軟件產(chǎn)品從提出、實現(xiàn)、使用維護到不再使用的過程稱為【】。
三、1.選擇題(20題)41.棧通常采用的兩種存儲結構是()。
A.順序存儲結構和鏈式存儲結構B.散列方式和索引方式C.鏈表存儲結構和數(shù)組D.線性存儲結構和非線性存儲結構
42.若要求定義具有10個int型元素的一維數(shù)組a,則以下定義語句中錯誤的是A.#defineN10inta[N];B.#definen5inta[2*n];C.inta[5+5];
D.intn=10,a[n];
43.有語句定義共用體類型變量:union{inti;charch;floatf;}a,bc;上面定義的共用體變量a、b、c各占()字節(jié)。
A.4B.2C.7D.1
44.下列選項中不是字符常量的是()。
A.'\v'B.'\x2a'C.'a'D."\0"
45.設有以下說明語句structex{intX;floaty;charz;}example;則下面的敘述中不正確的是
A.struct結構體類型的關鍵字
B.example是結構體類型名
C.x,y,z都是結構體成員名
D.structex是結構體類型名
46.需求分析階段的任務是確定()
A.軟件開發(fā)方法B.軟件開發(fā)工具C.軟件開發(fā)費用D.軟件系統(tǒng)功能
47.有以下程序:main(){chars[]="Yes\n/No",*ps=s;puts(ps+4);*(ps+4)=0;puts(s);}程序運行后的輸出結果是(選項D中的第一行是空行)______。
A.n/NoYes/NoB./NoYesYesC.n/No/NoD.Yes/No
48.在軟件生存周期中,能準確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是()。
A.概要設計B.詳細設計C.可行性分析D.需求分析
49.若有定義:iht*p[3];,則以下敘述中正確的是
A.定義了一個基類型為int的指針變量p,該變量具有三個指針
B.定義了一個指針數(shù)組p,該數(shù)組含有三個元素,每個元素都是基類型為int的指針
C.定義了一個名為*p的整型數(shù)組,該數(shù)組含有三個int類型元素
D.定義了一個可指向一維數(shù)組的指針變量p,所指一維數(shù)組應具有三個int類型元素
50.以下敘述中正確的是()。
A.局部變量說明為static存儲類,其生存期將得到延長
B.全局變量說明為static存儲類,其作用域將被擴大
C.任何存儲類的變量在未賦初值時,其值都是不確定的
D.形參可以使用的存儲類說明符與局部變量完全相同
51.在軟件測試設計中,軟件測試的主要目的是()
A.實驗性運行軟件B.證明軟件正確C.找出軟件中全部錯誤D.發(fā)現(xiàn)軟件錯誤而執(zhí)行程序
52.有以下程序:voidf(inty,int*x){y=y+*x;*x;=*x+y;}main(){intx=2,y=4;f(y,&x);-printf("%d%d\n",x,y);}執(zhí)行后的輸出結果是______。
A.84B.88C.48D.42
53.模塊化程序設計主要強調(diào)的是()。
A.程序的規(guī)模要大B.對程序進行分解C.程序的執(zhí)行效率D.程序的可移植性
54.設x=011050,則x=x&01252的值是()。
A.1000101000
B.1111110100011000
C.1011100010
D.1100000000101000
55.以下敘述中正確的是()。
A.構成C程序的基本單位是函數(shù)
B.可以在一個函數(shù)中定義另一個函數(shù)
C.main函數(shù)必須放在其他函數(shù)之前
D.C函數(shù)定義的格式是K&R格式
56.若程序中已包含頭文件stdio.h,以下選項中,正確運用指針變量的程序段是______。
A.int*i=NULL;scanf("%d",i);
B.float*f=NULL*f=19.5;
C.chart='m',*c=&t;*c=&t;
D.long*L;L='\0';
57.下列敘述中正確的是()。
A.線性鏈表的各元素在存儲空間中的位置必須是連續(xù)的
B.線性鏈表的頭元素一定存儲在其他元素的前面
C.線性鏈表中的各元素在存儲空間中的位置不一定是連續(xù)的,但表頭元素一定存儲在其他元素的前面
D.線性鏈表中的各元素在存儲空間中的位置不一定是連續(xù)的,且各元素的存儲順序也是任意的
58.若有如下程序:voidsub(){inta,b;a=lO;b=20;printf("%d,%d\n",b,a);}main(){inta=1O,b=20;sub();printf("%d,%d\n"'a'b);}則程序運行后的輸出結果是()。
A.10,20B.20,1020,10C.20,10D.10,2010,2020,10
59.下面程序的輸出結果是()maint(){char*s="121";intk=0,a=0,b=0;do{k++;if(k%2==0){a=a+s[k]-'0';continue;}b=b+s[k]-'0';a=a+s[k]-'0'}wnile(s[k+1]);printf("k=%da=%db=%d\n",k,a,b);}
A.k=3a=2b=3B.k=3a=3b=2C.k=2a=3b=3D.k=2a=2b=3
60.
下列程序的運行結果是()。
inty=5,x=14;
y=((x=3*Y,x+1),x-1);
printf("x=%d,y=%d",x,y);
A.x=27,y=27B.x=12,y=13C.x=15,y=14D.x=y=27
四、選擇題(20題)61.以下敘述中正確的是
A.C語言比其他語言高級
B.C語言可以不用編譯就能被計算機識別執(zhí)行
C.C語言以接近英語國家的自然語言和數(shù)學語言作為語言的表達形式
D.C語言出現(xiàn)得最晚,具有其他語言的一切優(yōu)點
62.有以下程序:
程序運行后的輸出結果是()。
A.1B.2C.3D.4
63.設有如下定義:int(*ptr);則以下敘述中正確的是()。
A.ptr是指向一維組數(shù)的指針變量
B.ptr是指向int型數(shù)據(jù)的指針變量
C.ptr是指向函數(shù)的指針,該函數(shù)返回一個int型數(shù)據(jù)
D.ptr是一個函數(shù)名,該函數(shù)的返回值是指int型數(shù)據(jù)的指針
64.下列敘述中正確的是()。A.線性表的鏈式存儲結構與順序存儲結構所需要的存儲空間是相同的
B.線性表的鏈式存儲結構所需要的存儲空間一般要多于順序存儲結構
C.線性表的鏈式存儲結構所需要的存儲空間一般要少于順序存儲結構
D.線性表的鏈式存儲結構與順序存儲結構在存儲空間的需求上沒有可比性
65.
下列程序執(zhí)行后的輸出結果是()。
main
{intx=f;printf("%c\n",A+(x-a+1));}
A.GB.HC.ID.J
66.以下敘述中錯誤的是()。A.可以通過typedef增加新的類型
B.可以用typedef已存在的類型用一個新的名字來代表
C.用pypedef義新的類型名后,原有類型名仍有效
D.用pypedef以為各種類型起別名,但不能為變量起別名
67.以下說法錯誤的是A.A.高級語言都是用接近人們習慣的自然語言和數(shù)學語言作為語言的表達形式
B.計算機只能處理由0和1的代碼構成的二進制指令或數(shù)據(jù)
C.C語言源程序經(jīng)過C語言編譯程序編譯之后生成一個后綴為.EXE的二進制文件
D.每一種高級語言都有它對應的編譯程序
68.C語言中的標識符分為關鍵字、預定義標識符和用戶標識符,以下敘述正確的是()。
A.預定義標識符(如庫函數(shù)中的函數(shù)名)可用做用戶標識符,但失去原有含義
B.用戶標識符可以由字母和數(shù)字任意順序組成
C.在標識符中大寫字母和小寫字母被認為是相同的字符
D.關鍵字可用做用戶標識符,但失去原有含義
69.有以下程序:
程序運行后的輸出結果是()。
A.7.5B.31.5C.程序有錯無輸出結果D.14.0
70.設變量X和y均已正確定義并賦值。以下if語句中,在編譯時將產(chǎn)生錯誤信息的是()。A.if(x++);
B.if(x>y&&y!=0);
C.if(x>y)x--elsey++;
D.if(y<0){;}elsex++;
71.
72.
有下列程序段:
intn,t=1,S=0;
scanf("%d",&n);
do{s=s+t;t=t-2;while(t!=n);
為使此程序段不陷入循環(huán),從鍵盤輸入的數(shù)據(jù)應該是()。
A.任意正奇數(shù)B.任意負偶數(shù)C.任意正偶數(shù)D.任意負奇數(shù)
73.
則以下選項中錯誤的表達式是()。
A.
B.
C.
D.
74.
75.寫出下列程序段的輸出結果()。
main()
{intx=5;inty=10;
printf("%d\n",x++);
printf("%d\n",++y);}
A.5B.6C.6D.5
10101111
76.若二維數(shù)組a有m列,則在a[i][j]前的元素個數(shù)為()。
A.i*m+j-1B.i*m+jC.J*m+iD.i*m+j+1
77.設文件指針fp已定義,執(zhí)行語句fp=fopen(”61e”,”W”);后,以下針對文本文件file操作敘述的選項中正確的是()。
A.只能寫不能讀B.寫操作結束后可以從頭開始讀C.可以在原有內(nèi)容后追加寫D.可以隨意讀和寫
78.已定義c為字符型常量,則下列語句中正確的是()。
A)c=′97′B)c="97"
C)c=97D)c="a"
79.有三個關系R、S和T如下:
則由關系R和S得到關系T的操作是()。
A.自然連接B.交C.除D.并
80.下面程序由兩個源程序文件t4.h和t4.c組成,程序編譯運行的結果是()。
t4.h的源程序為:
A.920B.1611C.911D.1610
五、程序改錯題(1題)81.下列給定程序中,函數(shù)proc()的功能是:輸出M行M列整數(shù)方陣,然后求兩條對角線上的各元素之和并將其返回。請修改程序中的錯誤,使它能得出正確的結果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結構。試題程序:
六、程序設計題(1題)82.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)proc,它的功能是:將字符串中的前導*號全部刪除,中間和后面的*號不刪除。例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容則應當是a*bc*def*g****。注意:部分源程序給出如下。請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。試題程序:#include<stdio.h=:{>#include<conio.h>woidproc(char*str){}voidmaincharstr[81];printf("Enterastring:\n");gets(str);proc(str):printf("Thestringafterdeleted:\n");puts(str);}
參考答案
1.D
2.C
3.D
4.B解析:選項A和選項D中首先計算2/5,因為兩個計算分量都是整型,所以結果為2,與實際運算不符;選項B中因為乘除法滿足交換律,所以2*b放前面和放后面都是一樣的,所以滿足題目要求;選項C中的表達式等價于2abcd/5,所以不滿足題目要求。故應該選擇B。
5.B該函數(shù)用于數(shù)據(jù)類型和變量。注意:sizeof操作符不能用于函數(shù)、不完全類型或位字段。不完全類型指具有未知存儲大小的數(shù)據(jù)類型,如未知存儲大小的數(shù)組類型、void類型等。
6.B從題目中可知,\O、\t、\\分別為一個字符,而sizeof是求字節(jié)個數(shù)的函數(shù),其中包括\O占的字節(jié),strlen函數(shù)是求數(shù)組長度的函數(shù);其以\0結束,因此strlen的值為5,sizeof的值為20。
7.D
8.C在C語言中null等價于數(shù)字0。
9.D
10.B解析:選項B中由于1和2都是整型,其1/2的運算結果為0,故整個表達式的值為0,所以它的結果和題目中要求的代數(shù)式的討算結果不相符,所以,4個選項中選項B符合題意。
11.AC語言中,文件打開方式“a+”表示打開一個文本文件,從文件開始位置讀,在文件尾部添加數(shù)據(jù),如果指定的文件不存在,系統(tǒng)將使用調(diào)用fopen時指定的文件名創(chuàng)建一個新的文件;如果指定的文件存在,那么文件原有內(nèi)容將被保存,新的數(shù)據(jù)追加到原有文件之后。故本題答案為A選項。
12.B解析:函數(shù)gets()的調(diào)用形式為gets(str_adr);str_adr是存放字符串的起始地址??梢允亲址麛?shù)組名、字符指針或字符數(shù)組元素的地址。gets函數(shù)用來從終端鍵盤讀入字符串(包括空格符),直到讀入一個換行符為止。換行符讀入后,不作為字符串的內(nèi)容。本題中定義一個長度為10的字符數(shù)組,和一個指針變量b,并且通過賦值讓它指向數(shù)組a。gets函數(shù)的參數(shù)a[0]不能表示數(shù)組a的首地址。
13.D
14.Dmain函數(shù)中,首先定義兩個整型變量i和j,初值為3和7,并將i的地址賦給p,j的地址賦給q,傳給swap函數(shù)。swap函數(shù)接收兩個整型指針變量a、b,然后使用整型變量t交換a、b所指向的值并輸出。通過指針變量的交換改變了實參i、j的值,使得i=7,j=3。指針變量tp交換a和b的值,由于a、b的值是p、q值的復制,因此這次交換只改變了形參a、b的值,對實參p、q的值沒有改變,此時指針變量a指向j,指針變量b指向i。函數(shù)最后輸出*a和*b,所以輸出3,7。由于swap函數(shù)改變了p和q指向的值,因此main函數(shù)輸出i的值為7,j的值為3,*P的值為i,*q的值為j。最終程序輸出:3,7,7,3,7,3。故本題答案為D選項。
15.D
16.A本題考查簡單的運算符操作.當輸入9時,(a++<9)為假,所以執(zhí)行else語句中的printf("%d\n",a--),在執(zhí)行時此時a經(jīng)過a++操作a=10,所以答案為A。
17.A
18.C
19.D
20.D
21.x=11x=11解析:在對無符號數(shù)的右移是高位補0。
22.2929解析:本題考查while循環(huán)和++運算,x=27符合循環(huán)條件,執(zhí)行循環(huán)體中x++后,x=28,if條件也成立,執(zhí)行x++后退出,x的值增1,結果x=29。
23.09182736450918273645解析:題目中為for循環(huán)定義了兩個字符型循環(huán)變量c1和c2,循環(huán)開始時分別初始化為字符‘0’和‘9’,然后每次循環(huán)結束給c1增1、c2減l,循環(huán)條件為c1<c2,即讓c1的值依次為‘0’、‘1’、‘2’…,c2的值依次為‘9’、‘8’、‘7’…,直到兩個數(shù)相遇時結束循環(huán)。又因為該循環(huán)的循環(huán)體每次按字符形式輸出c1和c2的值。所以最終的輸出結果為:0918273645。
24.源程序源程序解析:用高級語言編寫的程序稱為源程序。源程序不能在計算機上直接運行,運行源程序有兩種方式:一種是通過解釋程序,對源程序逐句解釋執(zhí)行;另一種是先讓編譯程序將源程序一次翻譯產(chǎn)生目標程序(目標程序是計算機可直接執(zhí)行的機器語言程序,是一種二進制代碼程序),然后執(zhí)行目標程序。
25.操作系統(tǒng)或OS操作系統(tǒng)或OS解析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫的機構,它是一種系統(tǒng)軟件,負責數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護、控制及保護和數(shù)據(jù)服務。位于用戶和操作系統(tǒng)之間。
26.passwarnpasswarn解析:n++是在執(zhí)行完其所在的語句后再加1,因此,在執(zhí)行case的時候,n的值依然為'c',執(zhí)行case'c'后面的語句,先打印出“pass”;在執(zhí)行完case'c'后,未遇到break跳出switch,便接著執(zhí)行下面的語句,又打印出warn。所以此題輸出結果是passwarn。
27.5555解析:分析程序執(zhí)行過程,第一次循環(huán)時,j=3,i=5。因為switch(3),所以執(zhí)行case3,調(diào)用P(a[--i])=P(a[4])=P(5),輸出5;第二次循環(huán)時,j=2,i=4,因為switch(2),所以執(zhí)行case2,調(diào)用P(a[i++])-P(a[4])=P(5),輸出5,之后i自加等于5。
28.99解析:考查ifelse語句,n==4不滿足條件,所以fun5(4)=4+fun5(3),n==3也不滿足條件,fun5(3)=3+funS(2),n==2滿足條件fun5(2)=2,故x=4+3+2=9。
29.調(diào)試調(diào)試
30.1111解析:main函數(shù)調(diào)用fun函數(shù)時,將10賦給n,形參數(shù)組t與實參數(shù)組a共用一段內(nèi)存空間。執(zhí)行if-else語句時,n=10,所以執(zhí)行else子句。由于n>=2成立,執(zhí)行m=fun(t[0],9),遞歸調(diào)用fun函數(shù),m=fun(t[0],8),m=fun(t[0],7),…,m=fun(t[0],2),m=fun(t[0],1),當n=1時滿足if(n=1)的條件,執(zhí)行return語句,返回數(shù)組首地址指向的值t[0],所以答案為11。
31.m<n或n>mr或r!=0m<n或n>m\r\nr或r!=0解析:本題使用的是“輾轉相除”法求兩個數(shù)的最大公約數(shù),即以兩個數(shù)中較大的除以較小的,如果余數(shù)不為0,則將較小的數(shù)和余數(shù)做同樣處理,直到被除斷為止,此時較小的數(shù)就是兩個數(shù)的最大公約數(shù)。本題第一空要求填寫一個if語句的判斷條件,如果滿足此條件則交換m和n的值,再看后面while循環(huán)的循環(huán)體,使用m%n求余,則此if語句的作用應該是保證m是兩個數(shù)中較大的那個,故第一空填m<n或n>m。接下來的while循環(huán)實現(xiàn)整個輾轉相除的過程,其結束條件應該是余數(shù)r為0,所以while的循環(huán)條件應該填r或r!=0。
32.用x+8代替函數(shù)fun(doublex)中形式參數(shù)x。用sin(x)代替函數(shù)fun(doublex)中形式參數(shù)x。
33.1010解析:此題考查逗號表達式。逗號表達式的值是最后一個表達式的值,所以本題的返回值是a+4。前面已經(jīng)給a賦值6,所以追回值a+4=6+4=10。
34.-24-24解析:本題考查賦值運算符a+=b等價于a=a+b;a-=a*a等價于a=a-a*a=4-4*4=-12;a+=a,即a=a+a=-24。
35.132132解析:本題考核的知識點是for循環(huán)與switch語句的綜合運用。主函數(shù)中用了一個for循環(huán),for循環(huán)里嵌套了一個switch語句,for循環(huán)了三次,當i=9時,i/10=0,執(zhí)行switch語句中case0分支,m和n的值各加1,變?yōu)?和1,然后遇到breake語句,退出switch語句;當i=10,i/10=1,執(zhí)行switch語句中default分支,使k和n的值各加1,變?yōu)?和1,退出switch語句:當i=11時,i/10=1,執(zhí)行switch語句中default分支,k和n的值各加1變,為2和3,退出switch語句,循環(huán)結束。故該空格處應該填132。
36.66解析:本題中,i,j分別為外循環(huán)和內(nèi)循環(huán)的循環(huán)控制變量,外層循環(huán)共執(zhí)行了四次.當i=1時,由于內(nèi)層循環(huán)判斷條件(2<=1)為假不執(zhí)行內(nèi)層循環(huán).當i=2時,執(zhí)行內(nèi)層循環(huán),輸出一個#當i=3時,內(nèi)層循環(huán)循環(huán)兩次,輸出兩個#,當i=4時,內(nèi)層循環(huán)循環(huán)三次,輸出三#。當i=5時,循環(huán)判斷條件不成立,退出外層循環(huán)。所以一共輸出6個#。
37.structaa*lhead*rchild;structaa*lhead,*rchild;解析:結構體對鏈表的定義。
38.11231123解析:在主函數(shù)中第一次調(diào)用func子函數(shù)時,m=0,i=2,i=i+m+1=3,m=i+a+b=3+5+3=11。因為在子函數(shù)中將m和i定義成了static類型,所以在子函數(shù)中對m和i進行的改變,在下一次調(diào)用子函數(shù)時能進行保存,所以第二次調(diào)用子函數(shù)時,m=11,i==3,則i=i+m+1=15,m=i+a+b=15+5+3=23。
39.852852解析:循環(huán)前,變量y的值為9,其中,循環(huán)語句在y大于0情況下循環(huán),每次循環(huán)后y的值都減1。循環(huán)體是當y能被3整除時輸出表達式--y,輸出的是減1后的y值。這樣,第一次循環(huán)因y為9,能被3整除,輸出8,y也變成8。又經(jīng)兩次循環(huán),y的值變?yōu)?,又讓y減1變成5,并輸出5;又經(jīng)兩次循環(huán),y的值變成3,讓y減1變成2,輸出2;再經(jīng)兩次循環(huán)后,y的值變成0,結束循環(huán),所以程序輸出852。
40.軟件生命周期軟件生命周期解析:軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不再使用為止的整個時期都屬于軟件生命周期,一般包括可行性研究與需求分析、設計、實現(xiàn)、測試、交付使用以及維護等。
41.A解析:和線性表類似,棧也有兩種存儲方法,一是順序棧,二是鏈式棧。棧的順序存儲結構是利用一組地址連續(xù)的存儲單元一次存儲自棧底到棧頂?shù)臄?shù)據(jù)元素,同時附設指針top指示棧頂元素的位置,由于棧的操作是線性表操作的特例,相對而言,鏈式棧的操作更易于實現(xiàn)。注意:這3種運算方法在各種存儲結構中的應用。
42.D答案D
解析:在選項D中,n是一個整型的變量。C語言規(guī)定,在一維數(shù)組的定義中,其下標只能是常量表達式,不能包含變量。
43.A
44.Dc語言規(guī)定,一個字符常量代表ASCII碼字符集里的一個字符,在群序中用單引號括起來,以便區(qū)分。'\v'表示的是豎向跳格:'kx2a'表示的是兩位十六迸制數(shù);'a'表示的是字符a對應的ASCII碼值。"\0"用雙引號故不正確。
45.B解析:本題中,structex是結構體類型名,ex-ample是結構體變量名。
46.D解析:結構化分析方法,數(shù)據(jù)流圖,數(shù)據(jù)字典,軟件需求規(guī)格說明書
評析,需求分析是軟件定義時期的最后一個階段,它的基本任務就是詳細調(diào)查現(xiàn)實世界要處理的對象(組織,部門、企業(yè)等),充分了解原系統(tǒng)的工作概況,明確用戶的各種需求,然后在此基礎上確定新系統(tǒng)的功能.選項A)軟件開發(fā)方法是在總體設計階段完成的任務;選項B)軟件開發(fā)工具是在實現(xiàn)階段需完成的任務:選項C)軟件開發(fā)費用是在可行性研究階段需完成的任務。
47.B解析:本題中ps指向符號串'Ye\\n/No',ps+4表示“/”的地址,故puts(ps+4)輸出符號串/No,執(zhí)行語句*(ps+4)=0后,字符數(shù)組s中的符號串為'Yes\\n\\0No',\'\\0\'是字符串的結束標志,故puts(s)輸出Yes。
48.D解析:在需求分析階段中,根據(jù)可行性研究階段所提交的文檔,特別是從數(shù)據(jù)流圖出發(fā),對目標系統(tǒng)提出清晰、準確和具體的要求,即要明確系統(tǒng)必須做什么的問題。本題的正確答案為D。
49.B解析:指針數(shù)組也是一種數(shù)組,所有有關的概念都適用于它。但它與普通的數(shù)組又有區(qū)別,它的數(shù)組元素是指針類型,只能用來存放地址。其格式為:存儲類型數(shù)據(jù)類型*指針數(shù)組名[長度1],其含義為:定義了一個長度1的數(shù)組,其中數(shù)組元素為相應存儲類型的指針。
50.A解析:局部變量在執(zhí)行到它所在的程序塊時產(chǎn)生,執(zhí)行完時被摧毀,而靜態(tài)局部變量的生存期將一直延長到程序運行結束,故選項A正確;全局變量的只有一種靜態(tài)存儲類別,故全局變量說明為static存儲類,和沒有說明為static存儲類其生存期都是一直延長到程序運行結束,故選項B不正確:未賦初值的局部變量的初值是隨機的,故選項C不正確;形參只能是一般局部變量,不能使用任何存儲類說明符,故選項D不正確。所以,4個選項中選項A符合題意。
51.D解析:使用人工或自動手段來運行或測定某個系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或是弄清預期結果與實際結果之間的差別。軟件測試的目的是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。測試要以查找錯誤為中心,而不是為了演示軟件的正確功能。
52.A解析:函數(shù){的形參Y是簡單變量,x是地址變量,故Y=4,x=2+4+2=8
53.B解析:模塊化設計是指把一個大程序按人們能理解的大小規(guī)模進行分解。
54.A解析:本題主要考查按位與運算,x=011050的二進制形式為000100100010t000,01252的二進制形式為0000001010101010,兩者相與得0000001000101000。
55.A解析:本題考查C語言的綜合基礎知識。構成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)使用的格式。
56.A解析:選項C中語句'*C=&t;'錯誤;選項D中指針'L=\'\\0\''不正確,L應指向確定的地址單元,而不是特定的值;選項B中語句'float*f=NULL'錯誤,缺少語句結束符“;”。
57.DD.【解析】在線性鏈表中,各元素在存儲空間中的位置是任意的,各元素的順序也是任意的,依靠指針來實現(xiàn)數(shù)據(jù)元素的前后件關系。
58.C解析:程序首先調(diào)用sub()子函數(shù),在子函數(shù)中輸出子函數(shù)自己的變量b和a(20,10),然后主函數(shù)再輸出主函數(shù)中的變量a和b(10,20)。故應該選擇C。
59.C
60.C解析:逗號表達式的求解步驟是先求解表達式1,然后依次求解表達式2,直到表達式N的值。整個逗號表達式的值就是最后一個表達式N的值。
表達式(x=3*y,x+1)中,第一個表達式x=3*y=3*5=15;第二個表達式x+1=16,但沒有給x或y賦值,所以x還是等于15;第3個表達式x-1=15-1=14,所以y的值為14。
61.C本題主要考查我們對C語言一些基礎知識的掌握情況。下面分別分析本題的四個選項。
對于選項A,C語言是一種高級語言,但還存在很多其他的高級語言,并不能說C語言就比其他高級語言更高級。
對于選項B,C語言并不是機器語言或匯編語言,它需要通過編譯程序對其進行編譯后才能被計算機識別執(zhí)行。
對于選項C,C語言以接近英語國家的自然語言和數(shù)學語言作為語言的表達形式的說法是正確的。
對于選項D,C語言并不是最晚出現(xiàn)的語言,而且C語言也不具備其他語言的一切優(yōu)點。C語言是一種面向過程的設計語言,它不具備面向對象的優(yōu)點。
62.A在函數(shù)point函數(shù)調(diào)用時,系統(tǒng)自動為函數(shù)的形參P分配內(nèi)存空間,并賦值為實參P的值。當執(zhí)行語句P+=3;時,系統(tǒng)操作的是形參P的內(nèi)存空間,更改形參P的內(nèi)容,而實參指針變量P的值未受影響,即指針變量作為函數(shù)參
63.C本題中int(*ptr)的含義是指向函數(shù)的指針變量,其為指向函數(shù)的指針變量,該函數(shù)返回一個int型數(shù)據(jù),故選擇C選項。
64.B線性鏈式存儲結構中每個結點都由數(shù)據(jù)域與指針域兩部分組成,增加了存儲空間,所以一般要多于順序存儲結構。
65.D
\n因為x=f,所以寫成A+(x-a+1)=A+(f-a+1)=A+6=J,故選擇D選項。
\n
66.A
67.C本題主要考查我們對C語言一些基礎知識的掌握情況。下面分別分析本題的四個選項。
由于高級程序設計語
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 北京化工大學實驗室安全教育與在線考試題庫A卷
- 小學數(shù)學二年級整十整百整千數(shù)加減法口算練習990道
- 《如何玩轉轉介營銷》課件
- 《抽樣檢驗相關知識》課件
- 金融行業(yè)采購標書撰寫技巧
- 旅游行業(yè)服務員培訓感悟
- 運輸行業(yè)安全生產(chǎn)工作總結
- 制造業(yè)人才培養(yǎng)策略
- 內(nèi)科部門全面工作總結
- 網(wǎng)絡科技企業(yè)保安工作總結
- 墊底辣妹教育學思考(3篇模板)
- 框架結構設計國內(nèi)外研究現(xiàn)狀
- 基因檢測銷售基礎知識培訓手冊
- 創(chuàng)新人才認證(解決方案)考試題庫(附答案)
- 新質生產(chǎn)力-講解課件
- 湖北省隨州市曾都區(qū)2023-2024學年九年級上學期期末考試英語試題
- 2023-2024學年人教版七年級下冊地理知識清單
- 20以內(nèi)最大最小能填幾專項練習126+129題
- 成人高考JAVA程序設計(考試復習資料)
- 物流園區(qū)運營管理承包合同樣本
- 項目實施的保障和支持措施
評論
0/150
提交評論