版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
2022年吉林省吉林市全國計算機等級考試C語言程序設計預測試題(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.下面敘述正確的是______。A.算法的執(zhí)行效率與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)
B.算法的空間復雜度是指算法程序中指令(或語句)的條數(shù)
C.算法的有窮性是指算法必須能在執(zhí)行有限個步驟之后終止
D.以上三種描述都不對
2.按照標識符的要求,()符號不能組成標識符。A.連接符B.下劃線C.大小寫字母D.數(shù)字字符
3.若有定義intx,y;并已正確給變量賦值,則以下選項中與表達式(x一y)(x++):(y++)中的條件表達式(x-y)等價的是()A.(x-y<0|x-y>0)B.x-y<0).C.(x-y>0)D.(x-y==)
4.若有定義“inta,b,c;”,想通過語句“scanf(“%d,%d%d”,&a,&b,&c);”把1、2、3分別賦給變量a、b、c,則正確的鍵盤輸入是()。
A.1,2,3<Enter>
B.1,2<tab>3<Enter>
C.1<Enter><tab>2<tab>3
D.1<Enter>2<Enter>3
5.設二叉樹的中序序列為BCDA,前序序列為ABCD,則后序序列為()。
A.CBDAB.DCBAC.BCDAD.ACDB
6.第
11
題
若有定義:char*st="howareyou";下列程序段中正確的是
A.chara[11],*p;strcpy(p=a+1,&st[4]);
B.chara[11];strcpy(++a,st);
C.chara[11];strcpy(a,st);
D.chara[],*p;strcpy(p=&a[1],st+2);
7.以下數(shù)據(jù)結(jié)構(gòu)中,()是線性結(jié)構(gòu)。
A.有向圖B.棧C.線索二叉樹D.B樹
8.不帶頭結(jié)點的單鏈表head為空的判定條件是()。
A.head=NULLB.head->next=NULLC.head->next=headD.head!=NULL
9.軟件按功能可以分為應用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應用軟件的是()。
A.學生成績管理系統(tǒng)B.C語言編譯程序C.UNIX操作系統(tǒng)D.數(shù)據(jù)庫管理系統(tǒng)
10.有下列程序:
程序執(zhí)行后的輸出結(jié)果是()。A.3,7,3,7B.7,3,7,3C.3,7,7,3D.7,3,3,7
11.為了隱藏在文本框中輸入的信息,用占位符代替顯示用戶輸入的字符,需要設置的屬性是()。
A.ValueB.ControlSoureeC.InputMaskD.PasswordChar
12.在以下給出的表達式中,與“while(E)”中的“(E)”不等價的表達式是()。
A.(E>0||E<0)B.(E==0)C.(!E==0)D.(E!=0)
13.有以下程序:#include<stdio.h>intfun(intx,inty){if(x!=y)return((x+y)/2);elsereturn(x);}main(){inta=4,b=5,c=6;printf(“%d\n”,fun(2*a,fun(b,c)));}程序的運行結(jié)果是()。
A.6B.3C.8D.12
14.下列關(guān)于return語句的敘述中正確的是()。
A.—個自定義函數(shù)中必須有一條return語句
B.—個自定義函數(shù)中可以根據(jù)不同情況設置多條return語句
C.定義成void類型的函數(shù)中可以有帶返回值的return語句
D.沒有return語句的自定義函數(shù)在執(zhí)行結(jié)束時不能返回到調(diào)用處
15.有以下程序:#include<stdio.h>#include<math.h>main(){ints;floatn,t,pai;t=1,pai=0,n=1.0,s=1;while(fabs(t)>1.0e-6){pai+=t;n+=2;s=-s;t=s/n;}printf(“total=%f\n”,pai);}程序運行所計算的是()。
A.1-1/2!+1/3!-1/5!+1/7!-…
B.1+1/3+1/5+1/7+1/9-…
C.1+1/2+1/3+1/4+1/5-…
D.1-1/3+1/5-1/7+1/9-…
16.有以下函數(shù)定義:
voidfun(intn,doublex){……}
若以下選項中的變量都已正確定義并賦值,則對函數(shù)fun的正確調(diào)用語句是A.fun(inty,doublem);
B.k=fun(10,12.5);
C.fun(x,n);
D.voidfun(n,x);
17.面向?qū)ο蟮脑O計方法與傳統(tǒng)的面向過程的方法有本質(zhì)不同,它的基本原理是()。
A.模擬現(xiàn)實世界中不同事物之間的聯(lián)系
B.強調(diào)模擬現(xiàn)實世界中的算法而不強調(diào)概念
C.使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題
D.不強調(diào)模擬現(xiàn)實世界中的算法而強調(diào)概念
18.從未排序序列中依次取出元素與已排序序列中的元素作比較,將取出的元素放入已排序序列中的正確位置上,此方法稱為______。
A.歸并排序B.選擇排序C.交換排序D.插入排序
19.以下程序的功能是()。#include<stdio.h>main(){FILE*fPl;*fp2;fp1:fopen("file1","r");fp2:fopen("file2","w");while(!Feof(fP1))fputc(fgetc(fP1),fp2);fclose(fP1);fclose(fp2);}
A.將磁盤文件的內(nèi)容顯示在屏幕上
B.將兩個磁盤文件合為一個
C.將一個磁盤文件復制到另一個磁盤文件中
D.將兩個磁盤文件合并后送屏幕
20.對長度為n的線性表進行順序查找,在最壞情況下需要比較的次數(shù)為()。
A.125B.n/2C.nD.n+1
二、2.填空題(20題)21.買來一張新盤后,在存入文件前,必須進行【】處理。
22.以下程序的輸出結(jié)果是()。#include<stdio.h>intfun(intx){staticintt=0;return(t+=x);}main(){ints,i;for(i=1;i<=5;i++)s=fun(i);printf("%d\11",s);}
23.樹中度為零的結(jié)點稱為______。
24.下面程序的輸出走【】。
main()
{enumem{em1=3,em2=1,em3};
char*aa[]={"AA","BB","CC","DD"};
printf("%s%s%s\n",aa[em1],aa[em2],aa[em3]);
}
25.按“先進后出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是[]。
26.在軟件維護時,對測試階段未發(fā)現(xiàn)的錯誤進行測試、診斷、定位、糾錯直至回歸測試的過程稱為【】。
27.以下程序的運行結(jié)果是:【】。
#include<stdio.h>
#include<string.h>
char*ss(char*s)
{returns+strlen(s)/2;}
main()
{char*p,*str="abcdefgh";
p=ss(str);printf("%s\n",p);
28.以下程序運行后的輸出結(jié)果是【】。
#include<stdio,h>
main()
{inta=3,b=4,c=5,t=99;
if(b<a&&a<c)t=a;a=c;c=t;
if(a<e&&b<c)t=b;b=a;a=t;
printf("%d%d%d\n",a,b,e);
}
29.以下程序的輸出結(jié)果是【】。
#include<stdio.h>
voidfun()
{staticinta=0;
a+=2;printf("%d",a);
}
main()
{intcc;
for(cc=1;cc<4;cc++)fun();
printf("\n");
}
30.()是指用戶的應用程序與數(shù)據(jù)庫的邏輯結(jié)構(gòu)是相互獨立的,也就是說,數(shù)據(jù)的邏輯結(jié)構(gòu)改變了,用戶程序也可以不變。
31.以下程序運行后的輸出結(jié)果是【】。
#include<stdio.h>
main()
{inta,b,c;
a=25;b=025;e=0x25;
prinff("%d%d%d\n",a,h,c);
}
32.以下程序的輸出結(jié)果是【】。
main()
{
intarr[]={30,25,20,15,10,5},*p=arr;
p++;
printf("%d\n",*(p+3));
}
33.若有以下程序
main()
{inta=4,b=3,c=5,t=0;
if(a<b)t=a;a=b;b=t;
if(a<c)t=a;a=c;c=t;
printf("%d%d%dln",a,b,c);
}
執(zhí)行后輸出結(jié)果為______。
34.若a的值為1,則表達式!a‖++a的值是______。
35.常用的軟件結(jié)構(gòu)設計工具是結(jié)構(gòu)圖(SC),也稱程序結(jié)構(gòu)圖。其中,用矩形表示______,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。
36.有下列程序;
#include<stdio.h>
main()
{charc;
while((c=getchar())!=',')putchar(++C);
}
程序運行時,如果從鍵盤輸入:A,B,<CR>,則輸出結(jié)果為______。
37.在鏈表的運算過程中,能夠使空表與非空表的運算統(tǒng)一的結(jié)構(gòu)是______。
38.以下程序運行后的輸出結(jié)果是()。
#include
char*ss(char*s)
{char*p,t;
P=s+1;t=*s;
while(*p){*(P-1)=*P;P++;}
*(P-1)=t;
returns;
}
main()
{char*p,str[10]="abcdefgh";
p=ss(str);
printf("%s\n",p);
}
39.下列表達式用于判斷y是否為閏年。閏年的判斷條件是:年號能被4整除但不能被100整除或年號能被400整除,請?zhí)羁誣_____。
40.單元測試又稱模塊測試,一般采用【】測試。
三、1.選擇題(20題)41.對線性表進行二分法查找,其前提條件是()
A.線性表以順序方式存儲,并已按關(guān)鍵碼值排好序
B.線性表以順序方式存儲,并已按關(guān)鍵碼值的查找頻率排好序
C.線性表以鏈接方式存儲,并已按關(guān)鍵碼值排好序
D.線性表以鏈接方式存儲,并已按關(guān)鍵碼值的查找頻率排好序
42.在一棵二叉樹上第5層的結(jié)點數(shù)最多是______。
A.8B.16C.32D.15
43.有以下程序
intadd(inta,intb){return(a+b);}
main()
{intk,(*f)(),a=5,b=10;
f=add;
…
}
則以下函數(shù)調(diào)用語句錯誤的是A.k=(*f)(a,b);B.k=add(a,b);C.k=*f(a,b);D.k=f(a,b);
44.若有以下結(jié)構(gòu)體,則正確的定義或引用是()。structTest{intx;inty;}v1;
A.Test.x=10;
B.Testv2;v2.x=10;
C.structTestv2;v2.x=10;
D.structTest.v2=10;
45.若有說明語句:charch='\x41';,則ch中______。
A.包含4個字符B.包含2個字符C.包含1個字符D.字符個數(shù)不確定,說明不正確
46.讀取二進制文件的函數(shù)調(diào)用形式為:fread(buffer,size,count,pf);,其中buffer代表的是()。
A.一個文件指針,指向待讀取的文件
B.一個整型變量,代表待讀取的數(shù)據(jù)的字節(jié)數(shù)
C.一個內(nèi)存塊的首地址,代表讀入數(shù)據(jù)存放的地址
D.一個內(nèi)存塊的字節(jié)數(shù)
47.以下程序執(zhí)行后x的值是main(){intx,y=252,i=386,*m=&y,*z=&i;x=(z==y);printf("%d",x);}
A.252B.1C.0D.運行時出錯,x無定值
48.下面程序的輸出結(jié)果是______。unsignedfun(unsignednum){unsignedk=1;do{k*=num%10;num/=10;}while(num);return(k);}main(){unsignedn=26;printf("%d\n",fun(n));}
A.0B.4C.12D.無限次循環(huán)
49.執(zhí)行下列程序時輸入:123<空格>456<空格>789<回車>輸出結(jié)果是main(){chars[100];intc,i;scanf("%c",&c);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%s\n",c,i,s);}
A.123,456,789B.1,456,789C.1,23,456,789D.1,23,456
50.請讀程序:#include<stdio.h>inta[]={2,4,6,8,};main(){inti;int*p=a;for(i=0;i<4;i++)a[i]=*p++;priatf("%d\n",a[2]);}上面程序的輸出結(jié)果是()。
A.6B.8C.4D.2
51.設有如下程序:#include"string.h"main(){staticchars1[20],s2[20];scanf("%s",s1);scanf("%s",s2);if(strcmp(s1,s2))printf("@");elseprintf("$");printf("%d\n",strlen(strcat(s1,s2)));}如果從鍵盤上輸入name<回車>name1<回車>,則程序運行后的輸出結(jié)果是()
A.$8B.@10C.$9D.@9
52.以下程序的輸出結(jié)果是______。main(){inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],[3][0]);}
A.650B.1470C.5430D.輸出值不定
53.函數(shù)fseek的正確調(diào)用形式是()。
A.fseek(位移量,起始點,文件類型指針);
B.fseek(文件類型指針,位移量,起始點);
C.fseek(文件類型指針,起始點,位移量);
D.fseek(起始點,位移量,文件類型指針);
54.下列關(guān)于棧的敘述正確的是()。
A.在棧中只能插入數(shù)據(jù)B.在棧中只能刪除數(shù)據(jù)C.棧是先進先出的線性表D.棧是先進后出的線性表
55.判斷char型變量c1是否為小寫字母的正確表達式為()
A.'a'<=c1<='z'
B.(c1>=a)||(c1<=z)
C.('a'=>c1||('z'<=c1)
D.(c1>='a')&&(c1<='z')
56.按照“先進先出”組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是()。
A.隊列B.棧C.雙向鏈表D.二叉樹
57.若有說明語句:double*p,a;則能通過scanf語句正確給輸入項讀入數(shù)據(jù)的程序段是()。
A.*p=&a;sCanf("%1f",p);
B.*p=&a;scanf("%f",p);
C.p=&a;scanf("%1f",*p);
D.p=&a;scanf("%1f",p);
58.算法的空間復雜度是指()。
A.算法程序的長度B.算法程序中的指令條數(shù)C.算法程序所占的存儲空間D.執(zhí)行算法需要的內(nèi)存空間
59.數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標識的圖符不屬于數(shù)據(jù)流圖合法圖符的是()
A.控制流B.加工C.數(shù)據(jù)存儲D.源和潭
60.設有下列語句inta=1,b=2,c;c=a^(b《2);執(zhí)行后,C的值為()。
A.6B.7C.8D.9
四、選擇題(20題)61.有以下程序程序運行后的輸出結(jié)果是()。
A.3,3,3B.2,2,3C.1,2,3D.1,1,3
62.
63.下列程序的輸出結(jié)果是()。
#include<stdio.h>
main
{inti;
for(i=1;i<=10,i++)
{if((i*i>=20)&&(i*i<=100))
break;
}
printf("%d\n",i*i;
}A.A.49B.36C.25D.64
64.下列關(guān)于單目運算符++、--的敘述中正確的是A.它們的運算對象可以是任何變量和常量
B.它們的運算對象可以是char型變量和int型變量,但不能是float型變量
C.它們的運算對象可以是int型變量,但不能是double型變量和float型變量
D.它們的運算對象可以是char型變量、int型變量和float型變量
65.已知函數(shù)fread的調(diào)用形式為“fread(buffer,size,count,fp);”,其中buffer代表的是()。
A.存放讀入數(shù)據(jù)項的存儲區(qū)
B.一個指向所讀文件的文件指針
C.一個指針,是指向輸入數(shù)據(jù)存放在內(nèi)存中的起始地址
D.一個整型變量,代表要讀入的數(shù)據(jù)項總數(shù)
66.若a為int類型,且其值為3,則執(zhí)行完表達式a+=a-=a*a后,a的值是()。A.A.-3B.9C.-12D.6
67.下列關(guān)于棧的敘述中正確的是()。
A.在棧中只能插入數(shù)據(jù),不能刪除數(shù)據(jù)
B.在棧中只能刪除數(shù)據(jù),不能插入數(shù)據(jù)
C.棧是先進后出(FILO.的線性表
D.棧是先進先出(FIFO.的線性表
68.用鏈表表示線性表的優(yōu)點是()。A.A.便于隨機存取B.花費的存儲空間較順序存儲少
C.便于捅入和刪除操作
D.數(shù)據(jù)元素的物理順序與邏輯順序相同
69.有以下程序:
程序運行后的輸出結(jié)果是()。
A.3B.4C.5D.6
70.
71.以下敘述中錯誤的是(
)。A.預處理命令行必須位于源文件的開頭B.宏替換可以出現(xiàn)在任何一行的開始部位C.宏替換的作用一直持續(xù)到源文件結(jié)尾D.宏替換不占有程序的運行時間
72.有如下程序段:inta=14,b=15,x;charc=A;x=(a&&b)&&(c<B):執(zhí)行該程序后,x的值為()。A.trueB.falseC.0D.1
73.下面程序段的運行結(jié)果是()。
A.8B.12C.4D.7
74.有以下程序
main()
{intm=14,n=24;
printf("%d,%d",m++,++n);
printf("%d,%d\n",n++,++m);
}
程序運行后的輸出結(jié)果是
A.15252616B.14252515
C.14252516D.14252615
75.C語言中最簡單的數(shù)據(jù)類型包括()。
A.整型、實型、邏輯型B.整型、實型、字符型C.整型、字符型、邏輯型D.字符型、實型、邏輯型
76.
77.下列程序的輸出結(jié)果是()。
char*p1="abcd",*p2="ABCD",str[50]="xyz";
strcpy(str+2,strcat(p1+2,p2+1));
printf("%s",str);
A.xyabcABB.abcABzC.ABabczD.xycdBCD
78.
79.以下程序運行后的輸出結(jié)果是()。
A.2011B.99C.209D.1111
80.
五、程序改錯題(1題)81.在主函數(shù)中從鍵盤輸入若干個數(shù)放人數(shù)組中,用0結(jié)束輸入并放在最后一個元素中。下列給定程序中,函數(shù)proc()的功能是計算數(shù)組元素中值為負數(shù)的平均值(不包括0)。例如,數(shù)組中元素的值為78、-65、-15、35、-45、0,則程序的運行結(jié)果為-41.666667。請修改程序中的錯誤,使它能得到正確結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、程序設計題(1題)82.請編寫函數(shù)proc(),其功能是:將str所指字符串中下標為偶數(shù)的字符刪除,串中剩余字符形成的新串放在t所指數(shù)組中。例如,當str所指字符串中的內(nèi)容為ABCDEFGHIJK(輸入完成以空格、Tab或者Enter鍵加任意非空格、Tab或者Enter鍵的一個字符作為輸入結(jié)束標志),則在t所指數(shù)組中的內(nèi)容應是BDFHJ。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.C解析:算法的執(zhí)行效率與數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)都有很緊密的關(guān)系。算法的空間復雜度是指執(zhí)行該算法需要的內(nèi)存空間,并非算法程序中指令的條數(shù)。算法一般應該具有以下4個特征:可行性、確定性、有窮性和擁有足夠情報。其中,有窮性是指算法必須能在執(zhí)行有限個步驟之后終止,否則可能失去實際意義。
2.A
3.A條件表達式:x=表達式1,表達式2:表達式3的含義是:先求解表達式1,若為非0(真),則求解表達式2,將表達式2的值賦給x。若表達式1的值為0(假),則求解表達式3,將表達式3的值賦給x。在本題中與表達式1:(x-y等價的是(x-y>0)。
4.B題干中,格式輸入函數(shù)scanf的格式控制字符串中,第1個%d與第2個%d之間有一個逗號。所以輸入的第1個整數(shù)和第2個整數(shù)之間必須要有一個逗號,選項C、D錯誤;輸入的第2個整數(shù)和第3個整數(shù)之間需要間隔符,可以使用<Tab>鍵、<Enter>鍵、空格符。故本題答案為B選項。
5.B二叉樹的前序序列為ABCD,由于前序遍歷首先訪問根節(jié)點,可以確定該二叉樹的根節(jié)點是A。再由中序序列為BCDA,可知以A為根節(jié)點的該二叉樹只存在左子樹,不存在右子樹,故后序序列為DCBA。本題答案為B選項。
6.A本題綜合考查字符數(shù)組的賦值和strcpy函數(shù)的用法。C語言不允許用賦值表達式對字符數(shù)組賦值,如下面的語句就是非法的:str1='China',如果想把“China”這5個字符放到數(shù)組str1中,除了逐個輸入外,還能使用strcpy函數(shù),該函數(shù)的功能是將一個字符串復制到一字符數(shù)組中。例如,strcpy(str1,'China');或strcpy(str1,str2);注意,不能企圖用以下語句來實行賦值(將str2的值傳給str1):str1=str2;不能用賦值語句將一個字符串常量或字符數(shù)組直接給一個字符數(shù)組。
strcpy函數(shù)的結(jié)構(gòu)是:strcpy(字符數(shù)組1,字符串2)
其中,需要注意的是,字符數(shù)組1的長度不應小于字符串2的長度,“字符數(shù)組1”必須寫成數(shù)組名形式,如(str1),“字符串2”可以是字符數(shù)組名,也可以是字符串常量,不能用賦值語句將一個字符串常量或字符數(shù)組直接給一個字符數(shù)組。
7.B
8.A
9.A
10.C程序定義兩個整型變量i、j,初值為3,7。另外,定義兩個整型指針變量p、q,其中p指向i,q指向j。將i、j的地址傳給swap函數(shù)。在swap函數(shù)中,a指向i,b指向j。通過臨時變量t交換a和b指向的值,此時a指向的實參i、b指向的實參j的值發(fā)生了交換。即a指向i的值為7,b指向j的值為3;再通過臨時變量tp交換a和b的指針值,使得a指向j,b指向i。所以swap中輸出a指向的值為3(j),b指向的值為7(i);swap函數(shù)調(diào)用結(jié)束后,輸出p和q指向的值,即i、j的值為7、3。所以程序輸出:3,7,7,3。本題答案為C選項。
11.DD?!窘馕觥勘究虻腜asswordChar屬性用來指定文本框是顯示用戶輸入的字符還是顯示占位符,指定用做占位符的字符。
12.Bwhile語句中條件表達式E的值不為0即真,認為滿足條件。這與B選項中表達式的含義正好相反。故本題答案為B選項。
13.A本題中,fun函數(shù)第1次調(diào)用為fun(8,fun(5,6))。因為fun(5,6)的返回值為5,所以第2次調(diào)用為fun(8,5),即返回值為6。故本題答案為A選項。
14.B在函數(shù)中允許有多個return語句,但每次調(diào)用只能有一個return語句被執(zhí)行,因此只能返回一個函數(shù)值,A選項描述錯誤。定義成void類型的函數(shù),不允許從該函數(shù)取得返回值,也不允許使用return語句,C選項描述錯誤。沒有return語句的函數(shù)在執(zhí)行到函數(shù)的最后一條語句后會自動返回到調(diào)用處,D選項描述錯誤。故本題答案為B選項。
15.Dmain函數(shù)首先定義整型變量S,初值為1;定義float類型的n、t、Pai,其中n初值為1.0,t初值為1,pai初值為0。while循環(huán)判斷t的絕對值(fabs為求float類型值的絕對值的函數(shù))是否大于1.0×10-6,若t的絕對值大于1.0×10-6,那么,執(zhí)行語句“pai+=t;n+=2;s=-s;t=s/n;”,所以每輪循環(huán)pai累加“s/n”(其中s是上一輪s的相反數(shù),n是上一輪n累加2的值)。第1輪循環(huán)時,pai被賦值為1,s是正數(shù),所以最終pai的計算結(jié)果是:1-1/3+1/5-1/7+1/9-…。故本題答案為D選項。
16.C解析:選項A中應將y和m前面的函數(shù)的類型說明符去掉,故選項A不正確;選項B中函數(shù)傳了2個參數(shù),其中一個為整型一個為浮點型,而fun()函數(shù)在定義時聲明的2個參數(shù),一個為整型一個為雙精度型,其參數(shù)類型不一致,故選項B不正確;選項D在調(diào)用函數(shù)時,不應該再聲明其返回類型,故迭項D不正確.所以,4個選項中選項C符合題意。
17.C\n面向?qū)ο蟮脑O計方法的基本原理是:使用現(xiàn)實世界的概念抽象地思考問題從而自然地解決問題。它雖強調(diào)模擬現(xiàn)實世界中的概念而不強調(diào)算法,但是它鼓勵開發(fā)者在軟件開發(fā)的過程中從應用領域的概念角度去思考。
\n
18.D
19.C解析:程序首先定義了兩個文件類型的指針fp1、fp2。為讀打開文件filel,并讓指針fp1指向該文件;為寫打開文件file2,并讓指針fp2指向該文件。循環(huán)執(zhí)行從文件file1中讀取一個字符,輸出到文件file2中,直到文件file1結(jié)束。因此程序的功能是將文件file1中的內(nèi)容復制到文件file2中。
20.CC?!窘馕觥繉€性表進行順序查找時,從表中的第一個元素開始,將給定的值與表中逐個元素的關(guān)鍵字進行比較,直到兩者相符,查找到所要找的元素為止。在最壞情況下,要查找的元素是表的最后一個元素或查找失敗,這兩種情況都需要將這個元素與表中的所有元素進行比較,因此比較次數(shù)為n。
21.格式化(或初始化、FORMAT)格式化(或初始化、FORMAT)
22.1515解析:在函數(shù)fun(intx)中定義了局部靜態(tài)整形變量t,并初始化為0。這個函數(shù)的返回值為t+x。所以在主函數(shù)的for循環(huán)中,5次連續(xù)調(diào)用fun(i),實現(xiàn)了從1到5連續(xù)數(shù)字的相加運算。因而最后結(jié)果等于15。
23.葉子結(jié)點葉子結(jié)點解析:樹中度為零的結(jié)點,也就是沒有后件的結(jié)點,稱為葉子結(jié)點。
24.DDBBCCDDBBCC解析:C語言對枚舉的定義規(guī)定:在枚舉中聲明的各個枚舉元素,如果沒有明確指出某個枚舉元素的值,它的上一個元素存在并有明確值的情況下,這個枚舉元素的值為其上一個元素的值+1。在本題中,沒有明確說明枚舉元素em3的值,則em3=em2+1=1+1=2,進而可知,在printf()打印函數(shù)中,要打印的數(shù)組元素是aa[3]、aa[1]、aa[2],因此最后的打印結(jié)果應當為“DDBBCC”。
25.棧棧解析:棧和隊列都是—種特殊的操作受限的線性表,只允許在端點處進行插入和刪除。二者的區(qū)別是:棧只允許在表的—端進行插入或刪除操作,是—種“先進后出”的線性表;而隊列只允許在表的—端進行插入操作,在另—端進行刪除操作,是—種“先進先出”的線性表。
26.校正性維護校正性維護
27.efghefgh解析:函數(shù)*ss的作用是使字符串指針往后移strlen(s)/2個位置。形參指針a指向字符串'abcdefeh',調(diào)用函數(shù)*ss后,指針指向e,所以輸出為efgh。
28.45994599解析:要注意每條證語句后面是三條語句,而不是一條語句。執(zhí)行第一條if語句時,條件表達式不成立,執(zhí)行a=c;c=t;,此時a=5,c=99;執(zhí)行第二條if語句時,條件表達式成立,執(zhí)行t=b;b=a;a=t;交換a,b的值,輸出結(jié)果為4,5和99。
29.246246解析:本題考查靜態(tài)(static)局部變量的使用。fun函數(shù)中的靜態(tài)局部變量a所占用的存儲單元在程序運行過程中始終不釋放,即當下一次調(diào)用該函數(shù)時,該變量仍然保留上一次函數(shù)調(diào)用結(jié)束時已有的值,3次調(diào)用fun函數(shù)分別得到2,4,6。
30.邏輯獨立性邏輯獨立性解析:數(shù)據(jù)獨立性包括數(shù)據(jù)的物理獨立性和邏輯獨立性。物理獨立性是指用戶的應用程序與存儲在磁盤上的數(shù)據(jù)庫中數(shù)據(jù)是相互獨立的。數(shù)據(jù)在磁盤上的數(shù)據(jù)庫中怎樣存儲是由DBMS管理的,用戶程序不需要了解,應用程序要處理的只是數(shù)據(jù)的邏輯結(jié)構(gòu),這樣當數(shù)據(jù)的物理存儲改變時。應用程序不用改變。邏輯獨立性是指用戶的應用程序與數(shù)據(jù)庫的邏輯結(jié)構(gòu)是相互獨立的,也就是說,數(shù)據(jù)的邏輯結(jié)構(gòu)改變了,用戶程序也可以不變。
31.252137252137解析:程序中變量a、b、c分別為十進制、八進制、十六進制的數(shù)25,按%d格式輸出,a的輸出值為25;b=025轉(zhuǎn)換為十進制數(shù)(b=2*8+5=16+5=21)輸出;c=0x25轉(zhuǎn)換為十進制數(shù)(c=2*16+5=32+5=37)輸出。輸出結(jié)果為252137。
32.1010解析:整型指針最初被賦的值是數(shù)組arr的頭指針,即指向數(shù)組的第一個元素30,p++后,指針指向數(shù)組的下一個元素,即*p=arr[1]=25,在執(zhí)行*(p+3)時,則相當于a[1+3],即10。因此,輸出應為100。
33.503503解析:此處需注意的是:如果if后面的條件為真,只執(zhí)行其后的一條語句或一條復合語句,如果if后面的條件為假,只執(zhí)行else后面的一條語句或一條復合語句。先判斷表達式“a<b”為假,不執(zhí)行“t=a”,但執(zhí)行“a=b;b=t;”,s的值為3,b的值為0。在判斷表達式“a<c”,值為真,所以執(zhí)行后面的3條語句“t=a;a=c;c=t”,結(jié)果a的值為5,c的值為3,所以最后輸出的結(jié)果為5、0和3。
34.11解析:邏輯運算中,非1即0,非0即1,!a=0,++a為邏輯1,所以0和1相或結(jié)果為1。
35.模塊模塊解析:矩形表示的是模塊,箭頭表示的是模塊間的調(diào)用關(guān)系。用帶實心圓的箭頭表示傳遞的是控制信息,用帶空心圓的箭頭表示傳遞的是數(shù)據(jù)。
36.BB解析:因為c是字符類型變量,它只能接收一個字符,所以c=A,字符型變量在參與算術(shù)運算的時候是用其相應的ASCII碼參與運算的,這樣++c得到字母B的ASCII碼,用putchar函數(shù)輸出是輸出其相應的字符,所以是B。
37.循環(huán)鏈表循環(huán)鏈表解析:在循環(huán)鏈表中,由于設置了一個頭結(jié)點,因此在任何情況下,循環(huán)鏈表中至少有一個結(jié)點存在,從而使空表與非空表的運算統(tǒng)一。
38.bcdefgha
39.(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),兩者是與的關(guān)系,年號能被400整除即y%400==0,與前兩項是或的關(guān)系。
40.白盒法白盒法
41.A解析:二分法查找是一種線性表查找方法,其基本方法是:首先要用要查找的關(guān)鍵碼與線性表中間位置結(jié)點的關(guān)鍵碼值進行比較,這個中間結(jié)點把線性表分為兩個子表,比較相等則查找完畢,不等則根據(jù)查找結(jié)果確定下一步的查找應該在哪一個子表中進行,如此下去,直到找到滿足條件的結(jié)點,或者確定表中沒有這樣的結(jié)點。二分查找法應用的前提是順序存儲并且已經(jīng)排好序,這是由該法的實現(xiàn)思想決定的。
42.B[答案]B
[考點]數(shù)據(jù)結(jié)構(gòu)與算法
[評析]依次從上到下,可得出:
第1層結(jié)點數(shù)為1;
第2層結(jié)點數(shù)為2*1=2;
第3層結(jié)點數(shù)為2*2=4;
第n層結(jié)點數(shù)為2的n-1次冪
43.C答案C
解析:在語句“k=*f(a,b)”中,由于“()”的優(yōu)先級高于“*”,所以“*f(a,b);”表示其返回類型為指針的帶有兩個整型參數(shù)的函數(shù)。
44.C解析:定義結(jié)構(gòu)體類型的變量的方式有:①緊跟在結(jié)構(gòu)體類型說明之后進行定義,如題目中給出的;②在說明對結(jié)構(gòu)成員的引用形式為
結(jié)構(gòu)體變量名.成員名
選項A對結(jié)構(gòu)成員的引用的形式是錯誤的,Test是結(jié)構(gòu)體名,不能用來引用結(jié)構(gòu)成員。選項B中定義結(jié)構(gòu)體類型的變量的形式是錯誤的,Test是結(jié)構(gòu)體名,不能用宋定義結(jié)構(gòu)體類型的變量。選項D中對結(jié)構(gòu)成員的引用的形式是錯誤的,對結(jié)構(gòu)成員的引用的形式為:結(jié)構(gòu)體變量名.成員名。4個選項中只有選項C是正確的定義或引用。
45.C解析:'\\x41'是轉(zhuǎn)義字符,x表示41是十六進制數(shù),41是字母a的ASCII碼值。
46.C解析:本題考查的重點是對fread函數(shù)的理解。fread函數(shù)中,buffer是接收讀入數(shù)據(jù)的內(nèi)存區(qū)域的指針,因此選項C是正確的。
47.C解析:指針變量m和z分別指向整型變量y和i,所以這兩個指針變量中存儲的地址是不同的。變量x接受的是一個關(guān)系運算的結(jié)果,因為兩個地址是不同的,所以“z=y”的判斷結(jié)果為0。注意:C語言中,邏輯值的表示方法。
48.C解析:本題定義了一個fun函數(shù),用于num求和,具體執(zhí)行過程如下:
num=26:k=k*(num%10)=1*(26%10),所以k=6,num=num/10=2;
num=2:k=k*(num%10)=6*(2%10),所以k=12,num=num/10=0);
num=O:while條件不成立,所以返回k的值12。
49.D解析:根據(jù)給定的數(shù)據(jù)輸入格式:123<空格>456<空格>789<回車>,第一個scanf語句中,格式字符為“%c”,只能得到一個字符\'1\',第二個scanf語句中格式字符為“%d”,變量i得到的數(shù)值為23,第三個scanf語句中格式字符為“%s”,遇到空格就自動結(jié)束,因此字符數(shù)組s得到的是'456\\0”。因而正確答案為選項D。
50.A解析:本題考查通過指針引用數(shù)組元素。程序通過a[i]=*p++;語句,循環(huán)地將2賦給a[0],4賦給a[1],6賦給a[2],8賦給a[3],所以輸出結(jié)果為6。
51.D
52.A解析:對未給出初始值的整數(shù)數(shù)組元素,被默認初始化為零。
53.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”表示文件的末尾。
54.D解析:棧是一種特殊的線性表,其插入與刪除運算都只性表的一端進行。在這種線性表的結(jié)構(gòu)中,一端封閉,不允許插入與刪除元素;另一端開口,允許插入與刪除元素。在棧中不僅能插入數(shù)據(jù),也能刪除數(shù)據(jù),選項A與選項B都錯。棧是后進先出的線性表,而不是先進先出的線性表,選項C的說法錯誤,選項D正確。
55.D解析:C語言規(guī)定,字符常量在程序中要用單引號括起來。判斷c1是否為小寫字母的充要條件c1>='a',和c1<='z',用邏輯與(&&)來表示。A選項的這種形式在C語言中沒有,所以選項D)正確。
56.A隊列是一種特殊的線性表,只允許在表的一端插八元素,在表的另一端刪除元素,插入元素的一端叫“隊尾”,刪除元素的一端叫“隊頭”。先插入的元素先被刪除,是按“先進先出”的原則組織數(shù)據(jù)的。
【知識拓展】“隊列”和“?!倍际且环N特殊的線性表。之所以稱之為“隊列”,其形式如“排隊”。要講究“先來后到”,先進先出,后進后出。
57.D解析:double*p,a;語句表示定義了一個指向雙精度型的指針變量p和雙精度型變量a,而語句p=&a表示將變量a的地址賦給指針變量p;scanf'('%1f',p)表示用鍵盤輸入的數(shù)賦給指針變量p所指向的地址單元中。scanf()函數(shù)要求在輸入double型數(shù)據(jù),格式控制符必須用%1f(或%1e)。否則,數(shù)據(jù)不能正確輸入。所以選項D)為正確答案。
58.D解析:算法的復雜度主要包括算法的時間復雜度和算法的空間復雜度。所謂算法的時間復雜度是指執(zhí)行算法所需要的計算工作量;算法的空間復雜度一般是指執(zhí)行這個算法所需要的內(nèi)存空間。
59.A解析:數(shù)據(jù)流圖包括4個方面,即加工(轉(zhuǎn)換)(輸入數(shù)據(jù)經(jīng)加工變換產(chǎn)生輸出)、數(shù)據(jù)流(沿箭頭方向傳送數(shù)據(jù)的通道,一般在旁邊標注數(shù)據(jù)流名)、存儲文件(數(shù)據(jù)源)(表示處理過程中存放各種數(shù)據(jù)的文件)、源和潭(表示系統(tǒng)和環(huán)境的接口,屬系統(tǒng)之外的實體)。不包括選項中的控制流。
60.D解析:變量b的初值等于2,所以表達式b<<2表示b的值二進制左移兩位,即擴大4倍,所以變量b的等于8。然后與a的值1進行異或運算,得9。
61.Amalloc函數(shù)動態(tài)分配一個整型的內(nèi)存空間,然后把函數(shù)返回的地址用(ints)強制類型轉(zhuǎn)換為整型指針,再把它賦給a,b,c,即讓指針變量a,h,’c都指向剛申請的內(nèi)存空間。因此只有最后一個賦值語句*c=3的值保留在了該空間內(nèi),因為a,b,c
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年分享與成長我的職務述職
- 2026年施工安全與質(zhì)量控制的成功案例
- 2025年美術(shù)專業(yè)化筆試及答案
- 2025年潮南區(qū)教師招聘筆試真題及答案
- 2025年棗莊礦務局醫(yī)院筆試題及答案
- 2025年事業(yè)單位交通委考試題及答案
- 2025年岱山人事考試及答案
- 2025年溫江人事考試及答案
- 2026年房地產(chǎn)市場的信任構(gòu)建與維護策略
- 2026年河北水利發(fā)展集團有限公司公開招聘工作人員1名筆試備考試題及答案解析
- 破產(chǎn)管理人業(yè)務培訓制度
- 2026中國電信四川公用信息產(chǎn)業(yè)有限責任公司社會成熟人才招聘備考題庫完整答案詳解
- 環(huán)境應急培訓課件
- 2026年大連雙D高科產(chǎn)業(yè)發(fā)展有限公司公開選聘備考題庫及答案詳解(奪冠系列)
- 2026河南鄭州信息工程職業(yè)學院招聘67人參考題庫含答案
- 團隊建設與協(xié)作能力提升工作坊指南
- 客房清掃流程培訓課件
- 醫(yī)療機構(gòu)藥品配送服務評價體系
- 醫(yī)療資源合理分配
- 婦科微創(chuàng)術(shù)后護理新進展
- 幼兒園大蝦課件
評論
0/150
提交評論