版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2021年四川省巴中市全國計算機等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.以下程序運行時若要正確輸出函數(shù)的入口地址和輸入數(shù)的絕對值,應(yīng)在程序空缺處填入的正確選項是
abs(intx)
{if(x>=0)returnx;
elsereturn-x;}
main()
{inty,z,(*p)(intx)=abs;
scanf("%d",&y);
z=(*p)(y);
;}
A.printf("%d%d\n",&p,z)
B.printf("%d%d\n",p,z)
C.printf("%d%d\n",*p,z)
D.printf("%d%d\n",p,*z)
2.以下說法錯誤的是()。
A.C語言中的常量是指在程序運行過程中經(jīng)常被用到的變量
B.C語言中的常量是指在程序運行過程中其值不能被改變的量
C.C語言中的常量可以用一個符號名來代表
D.C語言中的常量可以用宏來定義
3.能正確表示“當(dāng)x的取值在[1,10]和[100,110]范圍內(nèi)為真,否則為假”的表達式是()。
A.(x>=1)&&(x<=10)&&(x>=100)&&(x<=110)
B.(x>=1)‖(x<=10)‖(x>=100)‖(x<=110)
C.(x>=1)&&(x<=10)‖(x>=100)&&(x<=110)
D.(x>=1)‖(x<=10)&&(x>=100)‖(x<=110)
4.運算符________的優(yōu)先級最高。
A.[]B.+=C.?:D.++
5.對于關(guān)鍵字值序列(12,13,11,18,60,15,7,18,25,100)
A.100B.12C.60D.15
6.給定數(shù)列(541,132,984,746,518,181,946,314,205,827)按照從小到大的順序排列,采用直接選擇大值開始排序時,第一趟掃描結(jié)果是()
A.(541,132,827,746,518,181,946,314,205,984)
B.(205,132,314,181,518,746,946,984,541,827)
C.(132,541,746,984,181,518,314,946,205,827)
D.(132,541,746,518,181,946,314,205,827,984)
7.
8.一個算法的語句執(zhí)行次數(shù)為(2n2+2nlog2n+4n-7),則其時間復(fù)雜度為()。
A.O(n2)B.O(nlog2n)C.O(n)D.O(2n2)
9.以下程序中函數(shù)sort的功能是對數(shù)組a中的數(shù)據(jù)進行由大到小的排序:#include<stdio.h>voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[]={1,2,3,4,5,6,7,8,9,10},i;son(&aa[3],5);for(i=0;i<10;i++)printf("%d,",aa[i]);printf("\n");}程序運行后的輸出結(jié)果是()。
A.1,2,3,4,5,6,7,8,9,10,
B.10,9,8,7,6,5,4,3,2,1,
C.1,2,3;8,7,6,5,4,9,10,
D.1,2,10,9,8,7,6,5,4,3,
10.有定義語句intb;charc[10];,則正確的輸入語句是______。A.scallf("%d%s",&b,&c);
B.scallf("%d%s",&b,c);
C.scanf("%d%s",b,c)
D.scanf("%d%s",b,&c);
11.[0,2,1,4,3,9,5,8,6,7]是以數(shù)組形式存儲的最小堆,刪除堆頂元素0后的結(jié)果是()
A.[2,1,4,3,9,5,8,6,7]
B.[1,2,5,4,3,9,8,6,7]
C.[2,3,1,4,7,9,5,8,6]
D.[1,2,5,4,3,9,7,8,6]
12.以下選項中合法的C語言常量是()。
A.‘C-STR’B.2014.1C.”\1.0D.2EK
13.
14.下列描述中正確的是()。
A.軟件工程只是解決軟件項目的管理問題
B.軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問題
C.軟件工程的主要思想是強調(diào)在軟件開發(fā)過程中需要應(yīng)用工程化原則
D.軟件工程只是解決軟件開發(fā)過程中的技術(shù)問題
15.有三個關(guān)系R,S和T如下:
其中關(guān)系T由關(guān)系R和S通過某種操作得到,該操作為()。A.選擇B.投影C.交D.并
16.以下敘述中錯誤的是______。A.C程序必須由—個或—個以上的函數(shù)組成
B.函數(shù)調(diào)用可以作為—個獨立的語句存在
C.若函數(shù)有返回值,必須通過return語句返回
D.函數(shù)形參的值也可以傳回給對應(yīng)的實參
17.
18.在銀行業(yè)務(wù)中,實體客戶和實體銀行之間的聯(lián)系是()。
A.—對一B.—對多C.多對一D.多對多
19.下列程序的運行結(jié)果是()。#include<stdio.h>#defineADD(x)x+xmain(){intm=1,n=2,k=3;ints=ADD(m+n)*k;printf("s=%d",s);}
A.sum=18B.sum=10C.sum=9D.sum=25
20.以下選項中,合法的一組C語苦數(shù)值常量是()。
A.28.5e-3-0xf
B.12OXa234.5
C.1774c1.5Oabc
D.0x8A10,0003.e5
二、2.填空題(20題)21.有以下程序:
#include<stdio.h>
main()
{charch1,ch2;intn1,n2
ch1=getchar();ch2=getchar();
n1=ch1-'0';n2=n1*10+(ch2-'0');
printf("%d\n",n2);
}
程序運行時輸入:12<回車>,執(zhí)行后的輸出結(jié)果是【】。
22.以下程序運行后的輸出結(jié)果是______。
main()
{inta=3,b=4,c=5,t=99;
i[(b<a&&a<C)t=a;a=c;c=t;
if(a<c&&b<C)t=b;b=a;a=t;
printf("%d%d%d\n",a,b,c);
}
23.下列程序的功能是計算1~100的整數(shù)的累加和。
main()
{inti,sum=【】;
i=1;
for(【】)
{sum+=i;
i++;
}
printf("sum=%d\n",【】);
}
24.x、y、x均為int型變量,描述“x、y和z中至少有兩個為正數(shù)”的表達式是______。
25.下面程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{staticchara[]="language",b[]="program";
char*ptr1=a,*ptr2=b;
intk;
for(k=0;k<7;k++)
if(*(ptr1+k)==*(ptr2+k))
printf("%c",*(ptr1+k));}
26.用高級語言編寫的程序稱為【】程序,它可以通過解釋程序翻譯一句執(zhí)行一句的方式執(zhí)行,也可以通過編譯程序一次翻譯產(chǎn)生目標(biāo)程序,然后執(zhí)行。
27.Fibonacci數(shù)列中的頭兩個數(shù)是1和1,從第3個數(shù)開始,每個數(shù)等于前兩個數(shù)之和。下述程序計算此數(shù)列的前20個數(shù),且每行輸出5個數(shù),請?zhí)羁铡?/p>
#include<stdio.h>
main()
{intf,f1=1,f2=1;
inti;
printf("%6d%6d",f1,f2);
for(i=3;i<=20;i++)
{f=【】;
printf("%6d",f);
if(【】)
printf("\n");
f1=f2;
【】;
}
}
28.在面向?qū)ο蟪绦蛟O(shè)計中,從外面看只能看到對象有外部特征,而不知道也無須知道數(shù)據(jù)的具體結(jié)構(gòu)以及實現(xiàn)操作的算法,這稱為對象的______。
29.以下程序段打開文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用ftell函數(shù)返回當(dāng)前文件位置指針的具體位置,從而確定文件長度。請?zhí)羁铡?/p>
FILE*myf;longf1;
myf=【】("test.t","rb");
fseek(myf,0,SEEKEND);
f1=ftell(myf);
fclose(myf);
printf("%d\n",f1)
30.已有定義:charc=′′;inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&&a;后b的值為【】。
31.若有如下程序:
main()
{intx=4;y=3,Z=2,t;
t=x<y<z;
printf("%d\n",t);
}
則程序運行后的輸出結(jié)果是【】。
32.以下程序中,for循環(huán)體執(zhí)行的次數(shù)是【】。
#defineN2
#defineMN+1
#defineKM+1*M/2
main()
{inti;
for(i=1;i<K;i++){......}
33.以下程序運行后的輸出結(jié)果是______。
inta=5;
fun(intB)
{staticinta=10;
a+=b++;
printf("%d",A);
}
main()
{intc=20;
fun(C),
a+=C++;
printf("%d\n",A);
}
34.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和存儲結(jié)構(gòu),循環(huán)隊列屬于______結(jié)構(gòu)。
35.在結(jié)構(gòu)化設(shè)計方法中,數(shù)據(jù)流圖表達了問題中的數(shù)據(jù)流與加工間的關(guān)系,并且每一個______實際上對應(yīng)一個處理模塊。
36.以下程序段用以統(tǒng)計鏈表中元素的個數(shù)。其中first指向鏈表第一個結(jié)點,count用來統(tǒng)計結(jié)點個數(shù)。請?zhí)羁铡?/p>
structlink
{chardata;
structlink*next;
}
structlink*p,*first;
|
intcount=0;
p=first;
while(【】)
{
【】;
p=【】;
}
37.下面程序的運行結(jié)果是()。##include<stdio.h>main(){inta,s,n,m;a=2;s=0;n=1;m=1;while(m<=4){n=n*a;s=s+n;++m;}printf("s=%d",s);}
38.設(shè)有以下定義:
structss
{intinfo;structss*link;}x,y,z;
且已建立如下圖所示鏈表結(jié)構(gòu),
請寫出刪除點y的賦值語句【】。
39.用以下語句調(diào)用庫函數(shù)malloc,使字符指針st指向具有11個字節(jié)的動態(tài)存儲空間,請?zhí)羁?。st=(char*)【】;
40.下列程序的運行結(jié)果為【】。
main()
{inta[3]C4}={{1,3,5,7},{2,4,6,8},{15,17,34,12}};
printf("maxvalueis%d\n",maxvalue(3,4,a));
}
maxvalue(m,n,array)
intm,n,array[][4];
{inti,j,max;
max=array[0][0];
for(i=0;i<m;i++)
for(i=0;i<n;j++)
if(max<array[i][j])max=array[i][j];
return(max);
}
三、1.選擇題(20題)41.若要顯示或打印漢字將用到漢字編碼中的()
A.輸入碼B.字型碼C.機內(nèi)碼D.交換碼
42.若有以下定義和語句,且0<=I<10,則對數(shù)組元素的錯誤引用是()
inta[]={1,2,3,4,5,6,7,8,9,0};
int*p,I
p=a;
A.*(a+I)B.a[p-a]C.p+ID.*(&a[I])
43.設(shè)有定義語句:charc1=92,c2=92;,則以下表達式中值為零的是
A.c1c2
B.c1&c2C.c1~c2D.c1|c2
44.以下4個選項中,不能看作一條語句的是
A.{;}B.a=0,b=0,c=0;C.if(a>0);D.if(b==0)m=1;n=2;
45.在以下術(shù)語中,與數(shù)據(jù)的邏輯結(jié)構(gòu)無關(guān)的是______。
A.線性結(jié)構(gòu)B.鏈式結(jié)構(gòu)C.樹型結(jié)構(gòu)D.網(wǎng)狀結(jié)構(gòu)
46.有下列二叉樹,對此二叉樹前序遍歷的結(jié)果為()。
A.ACBEDGFHB.ABDGCEHFC.HGFEDCBAD.ABCDEFGH
47.有以下程序main(){inti,s=1;for(i=1;<50;i++)if(!(i%5)&&!(i%3))s=+i;printf("%d\n",s);}程序的輸出結(jié)果是
A.409B.277C.1D.91
48.若在定義語句:inta,b,c,*p=&c;之后,接著執(zhí)行以下選項中的語句,則能正確執(zhí)行的語句是()。
A.scanf("%d",a,b,c);
B.scanf("%d%d%d",a,b,c):
C.scanf("%d",p);
D.scanf("%d",&p);
49.在數(shù)據(jù)庫設(shè)計的4個階段;為關(guān)系模式選擇存取方法應(yīng)該在
A.需求分析階段B.概念設(shè)計階段C.邏輯設(shè)計階段D.物理設(shè)計階段
50.軟件生命周期中花費時間最多的階段是()
A.詳細設(shè)計B.軟件編碼C.軟件測試D.軟件維護
51.有以下程序:intfa(intx){returnx*x;}intfb(intx){returnx*x*x;}intf(int(*f1)(),int(*f2)(),intx){return(*f2)(x)-(*f1)(x);}main(){inti;i=f(fa,fb,2);printf("%d\n",i);}程序運行后的輸出結(jié)果是()
A.-4B.1C.4D.8
52.以下與函數(shù)fseek(fp,0L,SEEK_SE乃有相同作用的是()。
A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)
53.在長度為64的有序線性表中進行順序查找,最壞情況下需要比較的次數(shù)為A.63B.64C.6D.7
54.下面的關(guān)鍵字中,不能夠從循環(huán)體中跳到循環(huán)體外的是______。
A.gotoB.breakC.returnD.continue
55.下列表達式中,可以正確表示x≤0或x)1的關(guān)系是()。
A.(x>=1)||(x<=0)
B.x>l||x=0
C.x>=1ORx<=0
D.x>=1&&x<=0
56.有以下程序:#include<stdio.h>main(){printf("%d\n",NULL);}程序運行后的輸出結(jié)果是()。
A.0B.1C.-1D.NULL沒定義,出錯
57.若有如下程序:main(){inta=1,b=1;for(;a<=10;a++){if(b>=9)break;if(b%3==1){b+=3;continue;}b++;}printf("%d,%d",b,a);}則程序運行后的輸出結(jié)果是()。
A.10,4B.7,3C.10,3D.11,3
58.以下敘述中錯誤的是
A.在程序中凡是以“#”開始的語句行都是預(yù)處理命令行
B.預(yù)處理命令行的最后不能以分號表示結(jié)束
C.#defineMAX是合法的宏定義命令行
D.C程序?qū)︻A(yù)處理命令行的處理是在程序執(zhí)行的過程中進行的
59.下列屬于C語言語句的是______。
A.printf("%d\n",a)
B.#include<stdio.h>
C.a=b;b=c;c=a;
D./*thisisaprogram*/
60.運行以下程序后,如果從鍵盤上輸入china#<回車>,貝愉出結(jié)果為_______。#include<stdio.h>main(){intv1=0,v2=O;charch;while((ch=getchar())!='#')switch(ch){case'a':case'h':default:v1++;case'O':v2++;}printf("%d,%d\n",v1,v2);}
A.2,0B.5,0C.5,5D.2,5
四、選擇題(20題)61.在下列模式中,能夠給出數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法的是()。
A.外模式B.內(nèi)模式C.概念模式D.邏輯模式
62.
63.有以下程序:main{intx,i;for(i=l;i<=50;i++){x=i:if(x%2=0)if(x%3=0)if(X%7=0)printf(”%d,i)”;}}輸出結(jié)果是()。A.28B.27C.42D.4l
64.
65.
對兩個數(shù)組a和b進行下列初始化:
charm[]1="l234567":
charn[]={1,2,3,4,5,6,7);
則下列敘述正確的是()。
A.數(shù)組m與數(shù)組n完全相同
B.數(shù)組m與數(shù)組n長度相同
C.數(shù)組m比數(shù)組n長1
D.數(shù)組m與數(shù)組n中都存放字符串
66.下列語句組中,正確的是()。
A.char*s;s=”O(jiān)lympic”;
B.chars[7];s=”O(jiān)lympic”;
C.char*s;s={¨Olympic”};
D.chars[7];s={"Olympic”};
67.
68.設(shè)有定義:
69.
70.
71.下面描述中,不屬于軟件危機表現(xiàn)的是()A.軟件過程不規(guī)范B.軟件開發(fā)生產(chǎn)率低C.軟件質(zhì)量難以控制D.軟件成本不斷提高
72.有以下程序:
程序運行后的輸出結(jié)果是()。
A.b,B"b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B
73.若有定義語句:doublea,*P=&a;以下敘述中錯誤的是()。
A.定義語句中的*號是-個間址運算符
B.定義語句中的木號是-個說明符
C.定義語句中的P只能存放double類型變量的地址
D.定義語句中,P=&a把變量a的地址作為初值賦給指針變量P
74.
有以下計算公式
若程序前面已在命令中包含math.h文件,不能夠正確
計算上述公式的程序段是()。
A.if(x>=0)y=sqrt(x);elsey=sqrt(-x);
B.y=sqrt(x)if(x<0)y=sqrt(0x);
C.if(x>=O)y=sqrt(x);If(x<O)y=sqrt(0x);
D.y=sqrt(x>=0?x:0x);
75.下列描述錯誤的是()。
A.繼承分為多重繼承和單繼承
B.對象之問的通信靠傳遞消息來實現(xiàn)
C.在外面看不到對象的內(nèi)部特征是基于對象的“模塊獨立性好”這個特征
D.類是具有共同屬性、共同方法的對象的集合
76.在C語言程序中可用做用戶標(biāo)識符的是()。
A.void123BBNB.aa_abccasC.as+b3-123IfD.6fDoSIG
77.程序中已構(gòu)成如下圖所示的不帶頭結(jié)點的單向鏈表結(jié)構(gòu),指針變量s、p、q均已正確定義,并用于指向鏈表結(jié)點,指針變量s總是作為指針指向鏈表的第一個結(jié)點。
若有以下程序段:
該程序段實現(xiàn)的功能是()。
A.刪除尾結(jié)點B.尾結(jié)點成為首結(jié)點C.刪除首結(jié)點D.首結(jié)點成為尾結(jié)點
78.作為信息處理熱點技術(shù)之一的“多媒體技術(shù)”中的媒體,強調(diào)的是()。
A.存儲媒體B.表現(xiàn)媒體C.傳輸媒體D.感覺媒體
79.
80.
五、程序改錯題(1題)81.下列給定程序、中,函數(shù)proc()的功能是:先將字符串s中的字符按順序存放到t中,然后把s中的字符按正序連接到t的后面。例如,當(dāng)s中的字符串為WXYZ時,則t中的字符串應(yīng)為WXYZWXYZ。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是實現(xiàn)B=A+AT,即將矩陣A加上A的轉(zhuǎn)置,結(jié)果存放在矩陣B中。計算結(jié)果在main()函數(shù)中輸出。舉例如下。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>voidfun(inta[3][3],intb[3][3]){}voidmain(){ inta[3][3]={{1,2,3},{4,5,6},{7,8,9}},t[3][3]; inti,j; system(“CLS”); fun(a,t); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf(“%7d”,t[i][j]); printf(“\n”); }}
參考答案
1.B解析:考查函數(shù)指針的使用方法??梢允褂煤瘮?shù)指針來調(diào)用函數(shù)。調(diào)用形式為:(*指針變量)(實參表列)。
2.AC語言中的常量是指在程序運行過程中其值不能被改變的量,它可以用宏來定義,用一個符號名來代表。選項A錯誤,選項B、C、D正確。本題答案為A選項。
3.C本題考查邏輯與(&&)和邏輯或(||)運算符的使用。x值在[1,10]之間,C語言中可以寫成x值在[100,11O]之間,C語言表達式應(yīng)寫成“(x>=100)&&(x>=110)”;[1,1O]和[100,110]滿足任意條件就可以,所以是邏輯或的關(guān)系,因此只要將前兩個表達式用邏輯或運算符連接起來即可,所以最后的表達式:(x>=1)&&(x<=10)&&(x<=110)。
4.A
5.C
6.A
7.C
8.A
9.C解析:在main函數(shù)中調(diào)用sort函數(shù)時,實參&aa[3]把數(shù)組元素aa[3]的首地址傳給形參數(shù)組a,使aa[3]與a[0]相對應(yīng)。sort函數(shù)將從aa[3]開始的連續(xù)5個數(shù)進行了從大到小的排序,其他數(shù)組元素不變。
10.B解析:scanf函數(shù)中的“格式控制”后面應(yīng)當(dāng)是地址,而不是變量名。對于變量,通過地址運算符“&”求出內(nèi)存中的地址;對于數(shù)組c[10],數(shù)組名c即為數(shù)組在內(nèi)存中的地址。
11.D
12.B所謂常量,是指在程序運行的過程中,其值不能被改變的量。在C語言中,有整型常量、實型常量、字符常量和字符串常量等類型。選項A是字符串,需要使用雙引號;選項C不是合法的常量形式;選項D為實型常量中的指數(shù)形式,但指數(shù)形式e(E)之前必須是數(shù)字,之后必須為整數(shù)。故本題答案為B選項。
13.C
14.CC?!窘馕觥寇浖こ淌侵笇⒐こ袒乃枷霊?yīng)用于軟件的開發(fā)、應(yīng)用和維護的過程,包括軟件開發(fā)技術(shù)和軟件工程管理。
15.D
16.D解析:在調(diào)用函數(shù)時,給形參分配存儲單元,并將實參對應(yīng)的值傳遞紿形參,調(diào)用結(jié)束后,形參單元彼釋放,實參單元仍保留并維持原值。因此,在執(zhí)行—個被調(diào)用函數(shù)時,形參的值如果發(fā)生改變,并不會改變主調(diào)函數(shù)的實參的值,也就是說形參的值是不傳回紿對應(yīng)的實參的。
17.C
18.D一個客戶可以在多家銀行辦理業(yè)務(wù),一家銀行也有多個客戶辦理業(yè)務(wù),因此,實體客戶和實體銀行之間的聯(lián)系是多對多。本題選擇D選項。
19.B解析:本題考查帶參數(shù)的宏的定義及相關(guān)運算:S=m+n+m+n*k=1+2+1+2*3=10。
20.B
21.1212解析:本題中n1='1'-'0'=1,n2=1×10+('2'-'0')=10+2=12。
22.45994599解析:本題是一個陷阱題,以書寫格式來考查考生對if語句的理解.if語句只對緊跟其后的一條語句或語句塊產(chǎn)生作用。因此,題目中兩條if語句只有t=a;和t=b是if的子句。第1條if語句中b<a為假,所以跳過語句t=a;,執(zhí)行a=c;c=t;后,a=5、b=4、c=99。第2條if語句的判斷條件a<c&&b<c為真,所以后面三條語句都被執(zhí)行,這三條語句構(gòu)成一次a和b的內(nèi)容交換。所以最后輸出的結(jié)果是:4599。
23.0;sum<=100;sum
24.((x>0)&&<y>0))‖(x>0)&&(z>0)‖y>0)&&(z>0))((x>0)&&<y>0))‖(x>0)&&(z>0)‖y>0)&&(z>0))解析:題目要求“x、y和z中至少有兩個為正數(shù)”,即x、y和x這3個數(shù)中必須有兩個是正數(shù),且這3個數(shù)中的哪兩個數(shù)都有可能是正數(shù),所以它們之間是或的關(guān)系。
25.gaga解析:考查了用字符指針處理字符串的方法。用字符指針處理字符串,首先要使指針指向這個字符串,即題中的ptr1=a和ptr2=b,然后就是通過指針的移動可以引用到字符串中的每一個字符。題中的*(ptr1+k)是使指針ptr1向后移動k個位置,然后取出指向的字符。
26.源程序源程序解析:用高級語言編寫的程序稱為源程序。源程序不能在計算機上直接運行,運行源程序有兩種方式:一種是通過解釋程序,對源程序逐句解釋執(zhí)行;另一種是先讓編譯程序?qū)⒃闯绦蛞淮畏g產(chǎn)生目標(biāo)程序(目標(biāo)程序是計算機可直接執(zhí)行的機器語言程序,是一種二進制代碼程序),然后執(zhí)行目標(biāo)程序。
27.f1+f2i%5==0f2=ff1+f2\r\ni%5==0\r\nf2=f解析:f用來保存前兩個數(shù)之和,并作為第三個數(shù),計算后把第二個數(shù)(f2)賦給f1,第三個數(shù)(f)賦給f2,再執(zhí)行for循環(huán)。
28.封裝性封裝性解析:對象具有下列5個基本特點:①標(biāo)識惟一性;②分類性:③多態(tài)性;④封裝性;⑤模塊獨立性好。其中,封裝性是指從外面看只能看到對象的外部特征,對象的內(nèi)部特征即處理能力的實行和內(nèi)部狀態(tài),對外是不可見的,對象的內(nèi)部狀態(tài)只能由其自身改變。
29.fopenfopen解析:函數(shù)fopen的原型為FILE*fopen(char*filename,char*mode),功能為以mode指定的方式打開名為filename的文件;函數(shù)fseek的原型為intfseek(FILE*fp,longoffset,intbase),功能為將fp所指向的文件的位置指針移到以base所指出的位置為基準,offset為位移量的位置;函數(shù)ftell的原型為longftell(FILE*fp),功能為返回fp所指向的文件中當(dāng)前的讀寫位置;函數(shù)fclose的原型為intfclose(FILE*fp),功能為關(guān)閉fp所指的文件,釋放文件緩沖區(qū)。
30.11解析:字符空格的ASCII碼不為0,所以本題中表達式\ue008!c\ue009的值為0,b=0&&1的結(jié)果顯然為0。
31.11解析:因為x=4,y=3,所以表達式x<y的值為假(0),又因為z=2,所以0<z的值為真(1),故最終輸出的結(jié)果為1。
32.44解析:本題考查宏定義。預(yù)編譯時,首先將M的宏定義帶入K,得到N+1+1*N+1/2;再將N的宏定義帶人,得到2+1+1*2+1/2=3+2+0=5,所以循環(huán)4次。
33.30253025解析:本題考核的知識點是變量的存儲屬性和算術(shù)運算的應(yīng)用。本題涉及了自動變量、靜態(tài)變量和外部變量。外部變量是定義在所有函數(shù)之外的變量,本題中inta=5定義了一個外部變量a,它是一個全局變量,即作用域是從定義的位置開始到本文件的結(jié)束;靜態(tài)變量的存儲空間在程序的整個運行期間是固定的(static),本題函數(shù)fun()中staticinta=10定義個一個靜態(tài)變量a,此靜態(tài)變量a是個靜態(tài)的局部變量,即它的值只能在本函數(shù)中使用;自動變量是C程序中使用最多的一種變量,它的建立和撤消都是由系統(tǒng)在程序執(zhí)行過程中自動進行的,auto是自動變量的存儲類別標(biāo)識符,如果省略auto,系統(tǒng)隱含認為此變量為auto,本題中main()中intc=20定義了一個自動變量c,此自動變量c是個靜態(tài)的局部變量.算術(shù)運算中a+=b++相當(dāng)于a=a+b,b=b+1.所以,在第一個ptine('%d',a)中a=a+b=10+20=30,第二個printf('%d',a)中a=a+c=5+20=25,即輸出3025。
34.存儲或物理或存儲結(jié)構(gòu)或物理結(jié)構(gòu)存儲或物理或存儲結(jié)構(gòu)或物理結(jié)構(gòu)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機存儲空間中的存放形式稱為數(shù)據(jù)的存儲結(jié)構(gòu)(也稱數(shù)據(jù)的物理結(jié)構(gòu))。所謂循環(huán)隊列,就是將隊列存儲空間的最后一個位置繞到第一個位置,形成邏輯上的環(huán)狀空間。供隊列循環(huán)使用??芍?,循環(huán)隊列應(yīng)當(dāng)是物理結(jié)構(gòu)。
35.加工加工解析:數(shù)據(jù)流圖是從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。其中的每一個加工對應(yīng)一個處理模塊。
36.p!=NULLcount++(*p).next
37.s=30s=30解析:分析循環(huán)條件“m=1,m<=4”,所以循環(huán)4次。第1次:n=n*a=2,s=s+n=2;m=2。第2次:n=n*a=4,s=s+n=6;m=3。第3次:n=n*a=8,s=s+n=14;m=4。第4次:n=n*a=16,s=s+n=30。
38.x.link=&z;或x.link=y.link;或x.link=x.link->link;或x.link=*(x.link).link;x.link=&z;或x.link=y.link;或x.link=x.link->link;或x.link=*(x.link).link;解析:要刪除結(jié)點y,只需讓結(jié)點x的指針域指向y結(jié)點的指針域所指向的后續(xù)結(jié)點就可,因此把結(jié)點z的地址賦給x的指針域就可以了,即讓結(jié)點x的指針域指向結(jié)點z。而結(jié)點z的地址保存在結(jié)點y的指針域中,因此只需把結(jié)點y的指針域賦值給結(jié)點x的指針域即可。
39.malloc(11)malloc函數(shù)的格式是void*(或char*)malloc(size),size表示應(yīng)分配的存儲區(qū),此題要分配11字節(jié)的單元,把11代入即可。
40.maxvalueis34
41.B
42.C
43.A解析:選項A為異或運算符,如果參加運算的兩個位相同,結(jié)果為0,否則為1。顯然選項A中參加運算c1和c2相同,故其值位0;選項B為位與運算,如果參加運算的兩位都為1,則結(jié)果為1,否則結(jié)果為0,選項B中參加運算的c1和c2都為真,所以結(jié)果為1;選項C為取反運算,用來對一個二進制取反,顯然c2取反后不為0,選項D為異或運算,參加運算的兩位只要有一個為1,那么運算結(jié)果為1,顯然參加運算的c1和c2都不為0,故運算結(jié)果不為0。
44.D解析:C語言的語句都用“;”結(jié)束。如果只有一個分號,稱為“空語句”。用一對花括號把若干語句括起來構(gòu)成一個語句組,稱為“復(fù)合語句”,在語法上視為一條語句。因此選項A是一條語句。選項B是逗號表達式加分號構(gòu)成的語句。選項C是一條if語句,該語句的if子句是一條空語句。選項D中“if(b==0)m=1;n=2;”是兩個表達式語句。所以,4個選項中選項D符合題意。
45.B
46.B解析:對二叉樹的前序遍歷是指:先訪問根結(jié)點,然后訪問左子樹,最后訪問右子樹,并且,在訪問左、右子樹時,先訪問根結(jié)點,再依次訪問其左,右子樹。
47.D解析:本題是計算50之內(nèi)的自然數(shù)相加之和,題中if語句括號中的條件表達式!(i%5)&&!(i%3)表明只有能同時被5和3整除的數(shù)才符合相加的條件,1~49之間滿足這個條件的只有,15、30和45,因為s的初始值為1,所以s=1+15+30+45=91。
48.C
\n題中整型指針變量P存放的是變量C的地址。所以本題答案為C。
\n
49.D解析:需求分析階段是分析用戶的需求,顯然不屬于這個階段,由此可以排除選項A。概念設(shè)計是將需求分析得到的用戶需求抽象為信息結(jié)構(gòu)及概念模型的過程,涉及不到數(shù)據(jù)的存取。邏輯設(shè)計是在概念設(shè)計的基礎(chǔ)上將E—R圖轉(zhuǎn)換成數(shù)據(jù)庫管理系統(tǒng)的邏輯數(shù)據(jù)模型表示的邏輯模式,也不涉及存取問題。
50.D解析:軟件生命周期分為軟件定義、軟件開發(fā)及軟件運行維護3個所段。本題中,詳細設(shè)計、軟什編碼和軟件測試都屬于軟件開發(fā)階段;維護是軟件生命周期的最后一個階段,也是持續(xù)時間最長,花費代價最大的一個階段,軟件工程學(xué)的一個目的就是提高軟件的可維護性.降低維護的代價。
51.C
52.D解析:題目中fseek(fp,0L,SEEK_SET)的作用將文件指針定位到文件開始。feof(fp)的作用是判斷文件指針是否已到文件結(jié)尾,因此選項A不對。ftell(fp)的作用是獲取當(dāng)前文件指針的位置,因此選項B不對。fgetc(fp)的作用是從文件中讀取一個字節(jié),因此選項C不對。rewind(fp)的作用是將文件指針重定位到文件開頭,所以應(yīng)該選擇D。
53.B解析:在長度為64的有序線性表中,其中的64個數(shù)據(jù)元素是按照從大到小或從小到大的順序排列有序的。在這樣的線性表中進行順序查找,最壞的情況就是查找的數(shù)據(jù)元素不性表中或位于線性表的最后。按照線性表的順序查找算法,首先用被查找的數(shù)據(jù)和線性表的第一個數(shù)據(jù)元素進行比較,若相等,則查找成功,否則,繼續(xù)進行比較,即和線性表的第二個數(shù)據(jù)元素進行比較。同樣,若相等,則查找成功,否則,繼續(xù)進行比較。依次類推,直到性表中查找到該數(shù)據(jù)或查找到線性表的最后一個元素,算法才結(jié)束。因此,在長度為64的有序線性表十進行順序查找,最壞的情況下需要比較64次。因此,本題的正確答案為選項B。
54.B解析:在C語言中,可以用break語句和continue語句跳出本層循環(huán)和結(jié)束本次循環(huán)。goto語句可跳出多層循環(huán),如果在函數(shù)的循環(huán)體內(nèi)使用return語句,就會直接結(jié)束循環(huán)返回函數(shù)值。
55.A解析:題中要求x的取值是小于等于0或者大于等于1,這說明表達式是或的關(guān)系,所以在寫成C語言表達式應(yīng)是邏輯或的關(guān)系,邏輯或運算符是“||”。
56.A解析:在C語言中NULL的ASCII碼值為0,而輸出函數(shù)要求以整形格式輸出,故最后的輸出數(shù)為0。所以,4個選項中選項A符合愿意。
57.A解析:本題中for循環(huán)循環(huán)10次。如果b>=9結(jié)束循環(huán)。如果b能被3整除結(jié)束本次循壞。都不成立b加1。for循環(huán)執(zhí)行過程為:當(dāng)a=1,b=1時,b%3=1,b=b+3=1+3=4,進入下一次循環(huán):當(dāng)a=2,b=4時,b%3=1,b=b+3=4+3=7,進入下一次循環(huán);當(dāng)a=3,b=7時,b%3=1,b=b+3=7+3=10,進入下一次循環(huán);當(dāng)a=4,b=10時,因b>=9成立,執(zhí)行“break;”退出循環(huán)。
58.D解析:在C語言中,凡是以“#”開頭的行都稱為編譯預(yù)處理命令行,如#include、#define、#if等,每行的末尾不得用“;”結(jié)束,以區(qū)別于C語句、定義和說明語句。選項C中的宏定義為不帶參數(shù)的宏命令行,宏名之后可以有替換文本,也可以沒有。編譯預(yù)處理是在編譯程序?qū)源程序進行編譯前執(zhí)行的.當(dāng)然也在程序執(zhí)行之前執(zhí)行,因此選項D是錯誤的。
59.C解析:在C語言中,一個完整的C語句必須在語句末尾出現(xiàn)分號,分號是C語句的必要組成部分。本題答案為C。
60.C解析:執(zhí)行完一個case后面的語句后,流程控制移到下一個case繼續(xù)執(zhí)行?!癱ase常量表達式”只是起語句標(biāo)號作用,并不是在該處進行條件判斷。在執(zhí)行switch語句時,根據(jù)switch后面表達式的值找到匹配的入口標(biāo)號,就從此標(biāo)號開始執(zhí)行下去,不再進行判斷。
61.B數(shù)據(jù)庫有三層模式結(jié)構(gòu),邏輯模式是數(shù)據(jù)的全局邏輯結(jié)構(gòu)的描述,外模式也稱為子模式,是局部數(shù)據(jù)的邏輯結(jié)構(gòu)描述,而內(nèi)模式也稱為存儲模式,是數(shù)據(jù)庫物理存儲結(jié)構(gòu)和存取方法的描述。
62.A
63.C只有當(dāng)3個if條件同時成立,即能夠同時被2、3、7整除時,才輸出i的值,而從0到50能夠同時被2、3、7整除的數(shù)只有42,故選擇C選項。
64.C
65.C
\n在m數(shù)組中賦值的是字符串,其長度為7,末尾有結(jié)束符\0,故字節(jié)數(shù)為8,而n數(shù)組中賦的是字符,其長度為7,故C選項正確。
\n
66.A字符型指針變量可以用選項A的賦值方法:char$s;s=”O(jiān)lympic”,選項C的寫法:char$s。s={¨Olympic”};是錯誤的。字符數(shù)組可以在定義的時候初始化:chars[]={¨Olympic”};?或者chars[]=”O(jiān)lympic”,都是正確的。但是不可以在定義字符數(shù)組后,對數(shù)組名賦值。(數(shù)組名是常量,代表數(shù)組首地址)所以選項8和選項D都是錯誤的。對于本例,選項B、D中字符數(shù)組s的大小至少為8,才能存放下字符串。(字符串的末尾都有結(jié)束標(biāo)識‘、0’)。
67.D
68.A選項B)、D)中if語句后都是一條復(fù)合語句,選項c)中if語句后都是一條語句。選項A)之后有3條語句,所以答案選擇A)。
69.C
70.B
71.A軟件危機主要表現(xiàn)在:軟件需求的增長得不到滿足;軟件開發(fā)成本和進度無法控制;軟件質(zhì)量難以保證;軟件不可維護或維護程度非常低;軟件的成本不斷提高;軟件開發(fā)生產(chǎn)率的提高趕不上硬件的發(fā)展和應(yīng)用需求的增長。所以選擇A。
72.A本題重點考察函數(shù)的調(diào)用,首先要了解字母對應(yīng)的ASCIl碼。例如A為65,a為97。即字母+1劂可得到下一個字母。-其次是函數(shù)形參和實參的問題,運行過程如下:在fun(&b,a)中,}c=.a(chǎn)-,d=65。}c+l=V,d+1=66,prinff(”%c,%c,”,}C,d);輸出b,B,因為指針c指向地址的值為b,此時b=}C=.b.;豳數(shù)返回執(zhí)行ptud(。%C,%c、n”,b,8);輸出b,A,因此A選項正確。
73.A在變量定義doublea,*P:&a;中,}號是一個指針運算符,而非間址運算符,所以A錯誤。
74.B
\n選項A、C、D分別用一個ifelse語句、兩個if語句和條件表達式表達了計算公式的含義。
\n
75.C對象的封裝性是指從外面看只能看到對象的外部特性,而對象的內(nèi)部,其處理能力的實行和內(nèi)部狀態(tài)對外是不可見的,是隱蔽的。
76.Bc語言規(guī)定,標(biāo)識符是由字母、數(shù)字或下劃線組成,并且它的第一個字符必須是字母或者下劃線,不能使用關(guān)鍵字和數(shù)字,A中void,C中if,D中D0,都屬于關(guān)鍵字。
77.D本題考查鏈表的操作,本題中首先是s指向了它的下個結(jié)點,題目中說明了s總是指向鏈表的第一個結(jié)點,然后while循環(huán)找到鏈表的最后一個元素,然后最后一個元素指向了之前鏈表的頭結(jié)點,之前頭結(jié)點指向了空結(jié)點,所以本題實現(xiàn)的功能是使首結(jié)點成為尾結(jié)點。選項D正確。
78.D媒體分為感覺媒體、表示媒體、存儲媒體、傳輸媒體和表現(xiàn)媒體五種,“多媒體技術(shù)”中的媒體強調(diào)的是感覺媒體。
79.C
80.C
81.錯誤:t[i]=s[s1];
正確:t[i]=s[i];
【解析】函數(shù)proc()首先要實現(xiàn)將數(shù)組s中的元素順序放在數(shù)組t中,即數(shù)組t中下標(biāo)為i的元素在數(shù)組S中下標(biāo)也為i,因此“t[i]=s[s1];”應(yīng)改為“t[i]=s[i];”。
82.voidfun(inta[3][3],intb[3][3]){ inti,j; for(i=0;i<3;i++) for(j=0;j<3;j++) b[i][j]=a[i][j]+a[j][i];/*把矩陣a加上a的轉(zhuǎn)置,存放在矩陣b中*/}行列數(shù)相等的二維數(shù)組的轉(zhuǎn)置就是行列互換。即轉(zhuǎn)置后的第i行第j列正好對應(yīng)原矩陣的第j行第i列。本題使用兩層循環(huán)實現(xiàn)矩陣的轉(zhuǎn)置,并將計算結(jié)果存入矩陣b中,外層循環(huán)控制矩陣的行下標(biāo),內(nèi)層循環(huán)控制矩陣的列下標(biāo)。2021年四川省巴中市全國計算機等級考試C語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________
一、單選題(20題)1.以下程序運行時若要正確輸出函數(shù)的入口地址和輸入數(shù)的絕對值,應(yīng)在程序空缺處填入的正確選項是
abs(intx)
{if(x>=0)returnx;
elsereturn-x;}
main()
{inty,z,(*p)(intx)=abs;
scanf("%d",&y);
z=(*p)(y);
;}
A.printf("%d%d\n",&p,z)
B.printf("%d%d\n",p,z)
C.printf("%d%d\n",*p,z)
D.printf("%d%d\n",p,*z)
2.以下說法錯誤的是()。
A.C語言中的常量是指在程序運行過程中經(jīng)常被用到的變量
B.C語言中的常量是指在程序運行過程中其值不能被改變的量
C.C語言中的常量可以用一個符號名來代表
D.C語言中的常量可以用宏來定義
3.能正確表示“當(dāng)x的取值在[1,10]和[100,110]范圍內(nèi)為真,否則為假”的表達式是()。
A.(x>=1)&&(x<=10)&&(x>=100)&&(x<=110)
B.(x>=1)‖(x<=10)‖(x>=100)‖(x<=110)
C.(x>=1)&&(x<=10)‖(x>=100)&&(x<=110)
D.(x>=1)‖(x<=10)&&(x>=100)‖(x<=110)
4.運算符________的優(yōu)先級最高。
A.[]B.+=C.?:D.++
5.對于關(guān)鍵字值序列(12,13,11,18,60,15,7,18,25,100)
A.100B.12C.60D.15
6.給定數(shù)列(541,132,984,746,518,181,946,314,205,827)按照從小到大的順序排列,采用直接選擇大值開始排序時,第一趟掃描結(jié)果是()
A.(541,132,827,746,518,181,946,314,205,984)
B.(205,132,314,181,518,746,946,984,541,827)
C.(132,541,746,984,181,518,314,946,205,827)
D.(132,541,746,518,181,946,314,205,827,984)
7.
8.一個算法的語句執(zhí)行次數(shù)為(2n2+2nlog2n+4n-7),則其時間復(fù)雜度為()。
A.O(n2)B.O(nlog2n)C.O(n)D.O(2n2)
9.以下程序中函數(shù)sort的功能是對數(shù)組a中的數(shù)據(jù)進行由大到小的排序:#include<stdio.h>voidsort(inta[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}}main(){intaa[]={1,2,3,4,5,6,7,8,9,10},i;son(&aa[3],5);for(i=0;i<10;i++)printf("%d,",aa[i]);printf("\n");}程序運行后的輸出結(jié)果是()。
A.1,2,3,4,5,6,7,8,9,10,
B.10,9,8,7,6,5,4,3,2,1,
C.1,2,3;8,7,6,5,4,9,10,
D.1,2,10,9,8,7,6,5,4,3,
10.有定義語句intb;charc[10];,則正確的輸入語句是______。A.scallf("%d%s",&b,&c);
B.scallf("%d%s",&b,c);
C.scanf("%d%s",b,c)
D.scanf("%d%s",b,&c);
11.[0,2,1,4,3,9,5,8,6,7]是以數(shù)組形式存儲的最小堆,刪除堆頂元素0后的結(jié)果是()
A.[2,1,4,3,9,5,8,6,7]
B.[1,2,5,4,3,9,8,6,7]
C.[2,3,1,4,7,9,5,8,6]
D.[1,2,5,4,3,9,7,8,6]
12.以下選項中合法的C語言常量是()。
A.‘C-STR’B.2014.1C.”\1.0D.2EK
13.
14.下列描述中正確的是()。
A.軟件工程只是解決軟件項目的管理問題
B.軟件工程主要解決軟件產(chǎn)品的生產(chǎn)率問題
C.軟件工程的主要思想是強調(diào)在軟件開發(fā)過程中需要應(yīng)用工程化原則
D.軟件工程只是解決軟件開發(fā)過程中的技術(shù)問題
15.有三個關(guān)系R,S和T如下:
其中關(guān)系T由關(guān)系R和S通過某種操作得到,該操作為()。A.選擇B.投影C.交D.并
16.以下敘述中錯誤的是______。A.C程序必須由—個或—個以上的函數(shù)組成
B.函數(shù)調(diào)用可以作為—個獨立的語句存在
C.若函數(shù)有返回值,必須通過return語句返回
D.函數(shù)形參的值也可以傳回給對應(yīng)的實參
17.
18.在銀行業(yè)務(wù)中,實體客戶和實體銀行之間的聯(lián)系是()。
A.—對一B.—對多C.多對一D.多對多
19.下列程序的運行結(jié)果是()。#include<stdio.h>#defineADD(x)x+xmain(){intm=1,n=2,k=3;ints=ADD(m+n)*k;printf("s=%d",s);}
A.sum=18B.sum=10C.sum=9D.sum=25
20.以下選項中,合法的一組C語苦數(shù)值常量是()。
A.28.5e-3-0xf
B.12OXa234.5
C.1774c1.5Oabc
D.0x8A10,0003.e5
二、2.填空題(20題)21.有以下程序:
#include<stdio.h>
main()
{charch1,ch2;intn1,n2
ch1=getchar();ch2=getchar();
n1=ch1-'0';n2=n1*10+(ch2-'0');
printf("%d\n",n2);
}
程序運行時輸入:12<回車>,執(zhí)行后的輸出結(jié)果是【】。
22.以下程序運行后的輸出結(jié)果是______。
main()
{inta=3,b=4,c=5,t=99;
i[(b<a&&a<C)t=a;a=c;c=t;
if(a<c&&b<C)t=b;b=a;a=t;
printf("%d%d%d\n",a,b,c);
}
23.下列程序的功能是計算1~100的整數(shù)的累加和。
main()
{inti,sum=【】;
i=1;
for(【】)
{sum+=i;
i++;
}
printf("sum=%d\n",【】);
}
24.x、y、x均為int型變量,描述“x、y和z中至少有兩個為正數(shù)”的表達式是______。
25.下面程序的輸出結(jié)果是【】。
#include<stdio.h>
main()
{staticchara[]="language",b[]="program";
char*ptr1=a,*ptr2=b;
intk;
for(k=0;k<7;k++)
if(*(ptr1+k)==*(ptr2+k))
printf("%c",*(ptr1+k));}
26.用高級語言編寫的程序稱為【】程序,它可以通過解釋程序翻譯一句執(zhí)行一句的方式執(zhí)行,也可以通過編譯程序一次翻譯產(chǎn)生目標(biāo)程序,然后執(zhí)行。
27.Fibonacci數(shù)列中的頭兩個數(shù)是1和1,從第3個數(shù)開始,每個數(shù)等于前兩個數(shù)之和。下述程序計算此數(shù)列的前20個數(shù),且每行輸出5個數(shù),請?zhí)羁铡?/p>
#include<stdio.h>
main()
{intf,f1=1,f2=1;
inti;
printf("%6d%6d",f1,f2);
for(i=3;i<=20;i++)
{f=【】;
printf("%6d",f);
if(【】)
printf("\n");
f1=f2;
【】;
}
}
28.在面向?qū)ο蟪绦蛟O(shè)計中,從外面看只能看到對象有外部特征,而不知道也無須知道數(shù)據(jù)的具體結(jié)構(gòu)以及實現(xiàn)操作的算法,這稱為對象的______。
29.以下程序段打開文件后,先利用fseek函數(shù)將文件位置指針定位在文件末尾,然后調(diào)用ftell函數(shù)返回當(dāng)前文件位置指針的具體位置,從而確定文件長度。請?zhí)羁铡?/p>
FILE*myf;longf1;
myf=【】("test.t","rb");
fseek(myf,0,SEEKEND);
f1=ftell(myf);
fclose(myf);
printf("%d\n",f1)
30.已有定義:charc=′′;inta=1,b;(此處c的初值為空格字符),執(zhí)行b=!c&&a;后b的值為【】。
31.若有如下程序:
main()
{intx=4;y=3,Z=2,t;
t=x<y<z;
printf("%d\n",t);
}
則程序運行后的輸出結(jié)果是【】。
32.以下程序中,for循環(huán)體執(zhí)行的次數(shù)是【】。
#defineN2
#defineMN+1
#defineKM+1*M/2
main()
{inti;
for(i=1;i<K;i++){......}
33.以下程序運行后的輸出結(jié)果是______。
inta=5;
fun(intB)
{staticinta=10;
a+=b++;
printf("%d",A);
}
main()
{intc=20;
fun(C),
a+=C++;
printf("%d\n",A);
}
34.數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和存儲結(jié)構(gòu),循環(huán)隊列屬于______結(jié)構(gòu)。
35.在結(jié)構(gòu)化設(shè)計方法中,數(shù)據(jù)流圖表達了問題中的數(shù)據(jù)流與加工間的關(guān)系,并且每一個______實際上對應(yīng)一個處理模塊。
36.以下程序段用以統(tǒng)計鏈表中元素的個數(shù)。其中first指向鏈表第一個結(jié)點,count用來統(tǒng)計結(jié)點個數(shù)。請?zhí)羁铡?/p>
structlink
{chardata;
structlink*next;
}
structlink*p,*first;
|
intcount=0;
p=first;
while(【】)
{
【】;
p=【】;
}
37.下面程序的運行結(jié)果是()。##include<stdio.h>main(){inta,s,n,m;a=2;s=0;n=1;m=1;while(m<=4){n=n*a;s=s+n;++m;}printf("s=%d",s);}
38.設(shè)有以下定義:
structss
{intinfo;structss*link;}x,y,z;
且已建立如下圖所示鏈表結(jié)構(gòu),
請寫出刪除點y的賦值語句【】。
39.用以下語句調(diào)用庫函數(shù)malloc,使字符指針st指向具有11個字節(jié)的動態(tài)存儲空間,請?zhí)羁?。st=(char*)【】;
40.下列程序的運行結(jié)果為【】。
main()
{inta[3]C4}={{1,3,5,7},{2,4,6,8},{15,17,34,12}};
printf("maxvalueis%d\n",maxvalue(3,4,a));
}
maxvalue(m,n,array)
intm,n,array[][4];
{inti,j,max;
max=array[0][0];
for(i=0;i<m;i++)
for(i=0;i<n;j++)
if(max<array[i][j])max=array[i][j];
return(max);
}
三、1.選擇題(20題)41.若要顯示或打印漢字將用到漢字編碼中的()
A.輸入碼B.字型碼C.機內(nèi)碼D.交換碼
42.若有以下定義和語句,且0<=I<10,則對數(shù)組元素的錯誤引用是()
inta[]={1,2,3,4,5,6,7,8,9,0};
int*p,I
p=a;
A.*(a+I)B.a[p-a]C.p+ID.*(&a[I])
43.設(shè)有定義語句:charc1=92,c2=92;,則以下表達式中值為零的是
A.c1c2
B.c1&c2C.c1~c2D.c1|c2
44.以下4個選項中,不能看作一條語句的是
A.{;}B.a=0,b=0,c=0;C.if(a>0);D.if(b==0)m=1;n=2;
45.在以下術(shù)語中,與數(shù)據(jù)的邏輯結(jié)構(gòu)無關(guān)的是______。
A.線性結(jié)構(gòu)B.鏈式結(jié)構(gòu)C.樹型結(jié)構(gòu)D.網(wǎng)狀結(jié)構(gòu)
46.有下列二叉樹,對此二叉樹前序遍歷的結(jié)果為()。
A.ACBEDGFHB.ABDGCEHFC.HGFEDCBAD.ABCDEFGH
47.有以下程序main(){inti,s=1;for(i=1;<50;i++)if(!(i%5)&&!(i%3))s=+i;printf("%d\n",s);}程序的輸出結(jié)果是
A.409B.277C.1D.91
48.若在定義語句:inta,b,c,*p=&c;之后,接著執(zhí)行以下選項中的語句,則能正確執(zhí)行的語句是()。
A.scanf("%d",a,b,c);
B.scanf("%d%d%d",a,b,c):
C.scanf("%d",p);
D.scanf("%d",&p);
49.在數(shù)據(jù)庫設(shè)計的4個階段;為關(guān)系模式選擇存取方法應(yīng)該在
A.需求分析階段B.概念設(shè)計階段C.邏輯設(shè)計階段D.物理設(shè)計階段
50.軟件生命周期中花費時間最多的階段是()
A.詳細設(shè)計B.軟件編碼C.軟件測試D.軟件維護
51.有以下程序:intfa(intx){returnx*x;}intfb(intx){returnx*x*x;}intf(int(*f1)(),int(*f2)(),intx){return(*f2)(x)-(*f1)(x);}main(){inti;i=f(fa,fb,2);printf("%d\n",i);}程序運行后的輸出結(jié)果是()
A.-4B.1C.4D.8
52.以下與函數(shù)fseek(fp,0L,SEEK_SE乃有相同作用的是()。
A.feof(fp)B.ftell(fp)C.fgetc(fp)D.rewind(fp)
53.在長度為64的有序線性表中進行順序查找,最壞情況下需要比較的次數(shù)為A.63B.64C.6D.7
54.下面的關(guān)鍵字中,不能夠從循環(huán)體中跳到循環(huán)體外的是______。
A.gotoB.breakC.returnD.continue
55.下列表達式中,可以正確表示x≤0或x)1的關(guān)系是()。
A.(x>=1)||(x<=0)
B.x>l||x=0
C.x>=1ORx<=0
D.x>=1&&x<=0
56.有以下程序:#include<stdio.h>main(){printf("%d\n",NULL);}程序運行后的輸出結(jié)果是()。
A.0B.1C.-1D.NULL沒定義,出錯
57.若有如下程序:main(){inta=1,b=1;for(;a<=10;a++){if(b>=9)break;if(b%3==1){b+=3;continue;}b++;}printf("%d,%d",b,a);}則程序運行后的輸出結(jié)果是()。
A.10,4B.7,3C.10,3D.11,3
58.以下敘述中錯誤的是
A.在程序中凡是以“#”開始的語句行都是預(yù)處理命令行
B.預(yù)處理命令行的最后不能以分號表示結(jié)束
C.#defineMAX是合法的宏定義命令行
D.C程序?qū)︻A(yù)處理命令行的處理是在程序執(zhí)行的過程中進行的
59.下列屬于C語言語句的是______。
A.printf("%d\n",a)
B.#include<stdio.h>
C.a=b;b=c;c=a;
D./*thisisaprogram*/
60.運行以下程序后,如果從鍵盤上輸入china#<回車>,貝愉出結(jié)果為_______。#include<stdio.h>main(){intv1=0,v2=O;charch;while((ch=getchar())!='#')switch(ch){case'a':case'h':default:v1++;case'O':v2++;}printf("%d,%d\n",v1,v2);}
A.2,0B.5,0C.5,5D.2,5
四、選擇題(20題)61.在下列模式中,能夠給出數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法的是()。
A.外模式B.內(nèi)模式C.概念模式D.邏輯模式
62.
63.有以下程序:main{intx,i;for(i=l;i<=50;i++){x=i:if(x%2=0)if(x%3=0)if(X%7=0)printf(”%d,i)”;}}輸出結(jié)果是()。A.28B.27C.42D.4l
64.
65.
對兩個數(shù)組a和b進行下列初始化:
charm[]1="l234567":
charn[]={1,2,3,4,5,6,7);
則下列敘述正確的是()。
A.數(shù)組m與數(shù)組n完全相同
B.數(shù)組m與數(shù)組n長度相同
C.數(shù)組m比數(shù)組n長1
D.數(shù)組m與數(shù)組n中都存放字符串
66.下列語句組中,正確的是()。
A.char*s;s=”O(jiān)lympic”;
B.chars[7];s=”O(jiān)lympic”;
C.char*s;s={¨Olympic”};
D.chars[7];s={"Olympic”};
67.
68.設(shè)有定義:
69.
70.
71.下面描述中,不屬于軟件危機表現(xiàn)的是()A.軟件過程不規(guī)范B.軟件開發(fā)生產(chǎn)率低C.軟件質(zhì)量難以控制D.軟件成本不斷提高
72.有以下程序:
程序運行后的輸出結(jié)果是()。
A.b,B"b,AB.b,B,B,AC.a,B,B,aD.a,B,a,B
73.若有定義語句:doublea,*P=&a;以下敘述中錯誤的是()。
A.定義語句中的*號是-個間址運算符
B.定義語句中的木號是-個說明符
C.定義語句中的P只能存放double類型變量的地址
D.定義語句中,P=&a把變量a的地址作為初值賦給指針變量P
74.
有以下計算公式
若程序前面已在命令中包含math.h文件,不能夠正確
計算上述公式的程序段是()。
A.if(x>=0)y=sqrt(x);elsey=sqrt(-x);
B.y=sqrt(x)if(x<0)y=sqrt(0x);
C.if(x>=O)y=sqrt(x);If(x<O)y=sqrt(0x);
D.y=sqrt(x>=0?x:0x);
75.下列描述錯誤的是()。
A.繼承分為多重繼承和單繼承
B.對象之問的通信靠傳遞消息來實現(xiàn)
C.在外面看不到對象的內(nèi)部特征是基于對象的“模塊獨立性好”這個特征
D.類是具有共同屬性、共同方法的對象的集合
76.在C語言程序中可用做用戶標(biāo)識符的是()。
A.void123BBNB.aa_abccasC.as+b3-123IfD.6fDoSIG
77.程序中已構(gòu)成如下圖所示的不帶頭結(jié)點的單向鏈表結(jié)構(gòu),指針變量s、p、q均已正確定義,并用于指向鏈表結(jié)點,指針變量s總是作為指針指向鏈表的第一個結(jié)點。
若有以下程序段:
該程序段實現(xiàn)的功能是()。
A.刪除尾結(jié)點B.尾結(jié)點成為首結(jié)點C.刪除首結(jié)點D.首結(jié)點成為尾結(jié)點
78.作為信息處理熱點技術(shù)之一的“多媒體技術(shù)”中的媒體,強調(diào)的是()。
A.存儲媒體B.表現(xiàn)媒體C.傳輸媒體D.感覺媒體
79.
80.
五、程序改錯題(1題)81.下列給定程序、中,函數(shù)proc()的功能是:先將字符串s中的字符按順序存放到t中,然后把s中的字符按正序連接到t的后面。例如,當(dāng)s中的字符串為WXYZ時,則t中的字符串應(yīng)為WXYZWXYZ。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設(shè)計題(1題)82.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項目中包含一個源程序文件prog1.c。在此程序中,編寫函數(shù)fun(),其功能是實現(xiàn)B=A+AT,即將矩陣A加上A的轉(zhuǎn)置,結(jié)果存放在矩陣B中。計算結(jié)果在main()函數(shù)中輸出。舉例如下。注意:部分源程序給出如下。請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。試題程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>voidfun(inta[3][3],intb[3][3]){}voidmain(){ inta[3][3]={{1,2,3},{4,5,6},{7,8,9}},t[3][3]; inti,j; system(“CLS”); fun(a,t); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf(“%7d”,t[i][j]); printf(“\n”); }}
參考答案
1.B解析:考查函數(shù)指針的使用方法??梢允褂煤瘮?shù)指針來調(diào)用函數(shù)。調(diào)用形式為:(*指針變量)(實參表列)。
2.AC語言中的常量是指在程序運行過程中其值不能被改變的量,它可以用宏來定義,用一個符號名來代表。選項A錯誤,選項B、C、D正確。本題答案為A選項。
3.C本題考查邏輯與(&&)和邏輯或(||)運算符的使用。x值在[1,10]之間,C語言中可以寫成x值在[100,11O]之間,C語言表達式應(yīng)寫成“(x>=100)&&(x>=110)”;[1,1O]和[100,110]滿足任意條件就可以,所以是邏輯或的關(guān)系,因此只要將前兩個表達式用邏輯或運算符連接起來即可,所以最后的表達式:(x>=1)&&(x<=10)&&(x<=110)。
4.A
5.C
6.A
7.C
8.A
9.C解析:在main函數(shù)中調(diào)用sort函數(shù)時,實參&aa[3]把數(shù)組元素aa[3]的首地址傳給形參數(shù)組a,使aa[3]與a[0]相對應(yīng)。sort函數(shù)將從aa[3]開始的連續(xù)5個數(shù)進行了從大到小的排序,其他數(shù)組元素不變。
10.B解析:scanf函數(shù)中的“格式控制”后面應(yīng)當(dāng)是地址,而不是變量名。對于變量,通過地址運算符“&”求出內(nèi)存中的地址;對于數(shù)組c[10],數(shù)組名c即為數(shù)組在內(nèi)存中的地址。
11.D
12.B所謂常量,是指在程序運行的過程中,其值不能被改變的量。在C語言中,有整型常量、實型常量、字符常量和字符串常量等類型。選項A是字符串,需要使用雙引號;選項C不是合法的常量形式;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版消防工程協(xié)議外施工補充協(xié)議書版B版
- 2025年度企業(yè)HSE內(nèi)部審計與改進合同3篇
- 2024版短期架橋機租賃協(xié)議
- 二零二五年度高端品牌服裝企業(yè)集中采購合作協(xié)議3篇
- 二零二五年度高科技園區(qū)土地承包經(jīng)營合同2篇
- 2024年礦山巖石開采作業(yè)與施工責(zé)任協(xié)議版B版
- 二零二五版婚姻財產(chǎn)協(xié)議書明確夫妻財產(chǎn)分配細則3篇
- 二零二五年度智慧農(nóng)業(yè)項目設(shè)備采購與農(nóng)技支持合同3篇
- 632項目2024年度技術(shù)服務(wù)協(xié)議版B版
- 專用汽車貸款協(xié)議模板2024版版B版
- 《電力電纜試驗》課件
- JJF 2122-2024 機動車測速儀現(xiàn)場測速標(biāo)準裝置校準規(guī)范
- 充電樁四方協(xié)議書范本
- 2024年南京鐵道職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫及答案解析
- 2023年信息處理技術(shù)員教程
- 稽核管理培訓(xùn)
- 電梯曳引機生銹處理方案
- 電力電纜故障分析報告
- 中國電信網(wǎng)絡(luò)資源管理系統(tǒng)介紹
- 2024年浙江首考高考選考技術(shù)試卷試題真題(答案詳解)
- 《品牌形象設(shè)計》課件
評論
0/150
提交評論