版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2022年安徽省阜陽市全國計算機等級考試C語言程序設計測試卷一(含答案)學校:________班級:________姓名:________考號:________
一、單選題(20題)1.下列標識符不是關鍵字的是()。
A.breakB.charC.SwithchD.return
2.有以下程序:#include<stdio.h>int*f(int*s){s[1]+=6;*s=7;s+=2;returns;}main(){inta[5]={1,2,3,4,5},*p=a;P=f(P);printf(“%d,%d,%d\n”,a[0],a[1],*p);}程序運行后的輸出結果是()。
A.9,8,9B.7,8,7C.7,8,3D.1,2,1
3.已知有結構體:structsk{inta;floatb;}data,*p;若有p=&data,則對data的成員a的正確引用是()。
A.struct是結構體類型的關鍵字
B.st是結構體類型名
C.x、y、z都是結構體成員名
D.structstr是結構體類型名
4.一個優(yōu)化的程序可以生成n個元素集合的所有子集,那么該程序的時間復雜度是()
A.O(n!)B.O(nlogn)C.O(n^2)D.O(2^n)
5.以下敘述中正確的是()。
A.構成C程序的基本單位是函數
B.可以在一個函數中定義另一個函數
C.main函數必須放在其他函數之前
D.C函數定義的格式是K&R格式
6.有以下程序:#include<stdio.h>#include<stdio.h>main(){charc[6];inti=0;for(;j<6;c[i]=getchar(),i++);for(i=0;i<6;i++)putchar(c[i]);printf("\n");}如果從鍵盤上輸入:ab<回車>c<回車>def<回車>則輸出結果為______。
A.abcdefB.abcdC.abcdD.abcdef
7.已有定義:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判斷c中的字符是否為大寫字堪的表達式是()。
A.isupper(c)B.A<=c<=ZC.A<=c&&c<=ZD.c<=(z-32)&&(a-32)<=c
8.以下關于C語言文件系統(tǒng)的敘述中正確的是()。
A.fprintf與fwrite函數功能相同
B.文件以“r”方式打開后,可以存儲文本類型的數據
C.fscanf與fread函數功能相同
D.以“w”或“wb”方式打開的文件,不可以從中讀取數據
9.
10.有以下程序:fun(intx){intp;if(x=0||x==1)return(3);p=x-fun(x-2);returnp;}main(){printf("%d\n",fun(7));}執(zhí)行后的輸出結果是()。
A.7B.3C.2D.0
11.允許對隊列進行的操作有()。
A.對隊列中的元素排序B.取出最近進隊的元素C.在隊頭元素之前插入元素D.刪除隊頭元素
12.有以下程序:
程序執(zhí)行后的輸出結果是()。
A.357B.753C.369D.751
13.以下敘述中錯誤的是
A.在程序中凡是以“#”開始的語句行都是預處理命令行
B.預處理命令行的最后不能以分號表示結束
C.#defineMAX是合法的宏定義命令行
D.C程序對預處理命令行的處理是在程序執(zhí)行的過程中進行的
14.若有說明chars1[30]="abc",s2[]="defghi";,則在使用函數strcat(s1,s2)后,結果是()。
A.s1的內容更新為abcdefghi
B.s1的內容更新為defghi\0
C.s1的內容更新為defghiabc\0
D.s1的內容更新為abcdefghi\0
15.以下選項中關于C語言算術表達式的敘述中錯誤的是()。
A.可以通過使用圓括號來改變算術表達式中某些算術運算符的計算優(yōu)先級
B.C語言采用的是人們熟悉的四則運算規(guī)則,即先乘除后加減
C.算術表達式中,運算符兩側類型不同時,將進行類型之間的轉換
D.C語言僅提供了“+”“-”“*”“/”這4個基本算術運算符
16.有以下程序
main()
{inti;
for(i=1;i<=40;i++)
{if(i++%5==0)
if(++i%8==0)printf("%d",i);
}
printf("\n");
}
執(zhí)行后的輸出結果是
A.5B.24C.32D.40
17.有下列函數定義:fun(floath){printf("%f,%f\n",h,h*h);)該函數的類型是()。A.int類型B.float類型C.void類型D.函數無類型說明,定義有錯
18.若已包括頭文件且已有定義charsl[18],s2={"ABCDE")和inti,現要將字符串”ABCDE”賦給sl,下列語句錯誤的是()。
A.strcpy(s1,s2)
B.strcpy(s1,"ABCDE");
C.sl="ABCDE";
D.for(i=0;i<6;i++)sl[i]=s2[i]
19.將線性表中的結點信息組織成平衡的二叉樹,其優(yōu)點之一是總能保證任意檢索長度均為log2n量級(n為線性表中的結點數目)()
A.對B.錯
20.下列敘述中正確的是()。
A.棧是一種先進先出的線性表B.隊列是一種后進先出的線性表C.棧與隊列都是非線性結構D.以上三種說法都不對
二、2.填空題(20題)21.若有以下程序
intf(intx,inty)
{return(y-x)*x;}
main()
{inta=3,b=4,c=5,d;
d=f(f(3,4),f(3,5));
printf("%d\n",d);
}
執(zhí)行后輸出結果是【】。
22.在結構化設計方法中,數據流圖表達了問題中的數據流與加工間的關系,并且每一個______實際上對應一個處理模塊。
23.數據庫管理系統(tǒng)是位于用戶與______之間的軟件系統(tǒng)。
24.以下程序段中,錯誤的行號是【】。①#include<stdio.h>②main()③{charstr[14];str[]={"IloveChina!"};④printf("%s",str);⑤}
25.深度為5的滿二叉樹有()個葉子節(jié)點。
26.若a=10,b=20,則表達式!(a<b)的值是【】。
27.下面程序的功能是:將字符數組a中下標值為偶數的元素從小到大排列,其他元素不變。
#include<stdio.h>
#include<string.h>
main()
{chara[]="clanguage",t;
inti,j,k;
k=strlen(a);
for(i=0;i<=k-2;i+=2)
for(j=i+2;j<=k;【】)
if(【】)
{t=a[i];a[i]=a[j];a[j]=t;}
puts(a);
printf("\n");
}
28.以下程序的功能是:輸出100以內(不含100)能被3整除且個位數為6的所有整數,請?zhí)羁铡?/p>
main()
(inti,j;
for(i=0;i<i0;i++)
{j=i*10+6;
if(())continue;
printf("%d",j);
}
}
29.以下程序運行后的輸出結果是【】。
#include<stdio.h>
structNODE
{intnum;structNODE*next;
main()
{struetNODEs[3]={{.'\0'},{2,'\0'},{3,'\O'}},*p,*q,*r;
intsum=0;
s[0].next=s+1;s[1].next=s+2;s[2].next=s;
p=s;q=p->next;r=q->next:
sum+=q->next->num;sum+=r->next->next->num;
prinff("%d\n",sum);
}
30.有以下語句段
intnl=10,n2=20;
printf("______",n1,n2);
要求按以下格式輸出n1和n2的值,每個輸出行從第一列開始,請?zhí)羁铡?/p>
n1=10
n2=20
31.在算法的4個特性中,算法必須能在執(zhí)行有限個步驟之后終止指的是算法的______特性。
32.已知字符'A'的ASCII碼值為65,以下語句的輸出結果是【】。
charch='B';
printf("%c%d\n",ch,ch);
33.以下程序運行后的輸出結果是【】。
main()
{
inti,n[]={0,0,0,0,0};
for(i=1;i<=4;i++)
{
n[i]=n[i-1]*2+1;
printfi["%d",n[i]);
}
}
34.下面程序的輸出結果是()。#include<stdio.h>main(){staticchara[]="china";char*ptr=a;while(*ptr){printf("%c",*ptr-32);ptr++;}}
35.下面程序的功能是輸出數組中最大的數,由a指針指向該元素。請?zhí)羁铡?/p>
main()
{ints[]={6,7,2,13,9,1,12,10,5,8,4,3,11),*a,*b;
for(【】)
if(*a<*b)a=b;
printf("%d",*a);
}
36.以下程序的輸出結果是______。
#defineMCRA(m)2*m
#defineMCRB(n,m)2*MCRA(n)+m
main()
{inti-2,j=3;
printf("%d\n",MCRB(j,MCRA(i)));
}
37.以下程序運行后輸入:3,abcde<回車>,則輸出結果是【】。
#include<string.h>
move(char*str,intn)
{chartempinti;
temp=str[n-1);
for(i=n-1;i>0;i--)str[i]=str[i-1];
str[0]=temp
}
main()
{chars[50];ihtn,i,z;
scanf("%d,%s",&n,s);
z=strlen(s);
for(i=1;i<=n;i++)move(s,z);
printf("%s\n",s);
}
38.下列程序執(zhí)行后輸出的結果是【】。
main()
{intarr[10],i,k=0;
for(i=0;i<10;i++)arr[i]=i;
for(i=1;i<4;i++)k+=arr[i]+i;
printf("%d\n",k);
}
39.x、y、x均為int型變量,描述“x、y和z中至少有兩個為正數”的表達式是______。
40.下列程序的運行結果是______。
#include<stdio.h>
main()
{inta,b,c;
a=3;b=4;c=5;
if(a>b)
if(a>c)
printf("%d",a);
elseprintf("%d",b);
printf("%d\n",c);
}
三、1.選擇題(20題)41.有以下程序
#include<stdio.h>
intf(intx)
{inty;
if(x==0||x==1)return(3);
y=x*x-f(x-2);
returny;
}
main()
{intz;
z=f(3);printf("%d\n",z);
}
程序的運行結果是
A.0B.9C.6D.8
42.有以下程序;main(){inty=3,x=3,z=1;printf("%d%d\n",(++x,y++),z+2);}執(zhí)行后的輸出結果是()
A.34B.42C.43D.33
43.以下不能正確計算代數式
值的C語言表達式是()。
A.1/3*sin(1/2)*sin(1/2)
B.sin(0.5)*sin(0.5)/3
C.pow(sin(0.5),2)/3
D.40546.0*pow(sin(1.0/2),2)
44.有下列函數定義:intfun(doublea,doubleb){returna*b;}若下列選項中所用變量都已正確定義并賦值,錯誤的函數調用是()。
A.if(fun(x,y)){……}
B.z=fun(fun(x,y),fun(x,y));
C.z=fun(fun(x,y)x,y);
D.fun(x,y);
45.數據處理的最小單位是()。
A.數據B.數據元素C.數據項D.數據結構
46.下列描述中,正確的是()
A.線性鏈表是線性表的鏈式存儲結構B.棧與隊列是非線性結構C.雙向鏈表是非線性結構D.只有根結點的二叉樹是線性結構
47.以下程序的輸出結果是typedefunion{longx[2]inty[4];charz[8];}MYTYPE;MYTYPEthem;main(){printf("%d\n",sizeof(them));}
A.32B.16C.8D.24
48.下面程序段中c的二進制值是______。chara=3,b=6,c;c=ab<<1;
A.1011B.1111C.11110D.11100
49.應用數據庫的主要目的是為了()
A.解決數據的保密問題B.解決數據的共享問題C.解決數據量大的問題D.解決數據的完整性問題
50.下列數據中,不合法的C語言實型數據的是()。
A.0.123B.123e3C.2.1e3.5D.789.0
51.當說明一個結構體變量時系統(tǒng)分配給它的內存是()。
A.各成員所需要內存量的總和
B.結構中第一個成員所需的內存量
C.成員中占內存最大者所需的容量
D.結構中最后一個成員所需要的內存量
52.在長度為64的有序線性表中進行順序查找,最壞情況下需要比較的次數為A.63B.64C.6D.7
53.有以下程序#include<stdio.h>#definePT5.5#defineS(x)PT*x*xmain(){inta=1,b=2;printf("%4.1f\n",S(a+b));}程序運行后的輸出結果是()
A.49.5B.9.5C.22D.45
54.數據庫系統(tǒng)的核心是()。
A.數據模型B.數據庫管理系統(tǒng)C.數據庫D.數據庫管理員
55.有以下程序main(){inti,n=0;for(i=2;i<5;i++){do{if(i%3)continue;n++;}while(!i);n++;}printf("n=%d\n",n);}程序執(zhí)行后的輸出結果是
A.n=5B.n=2C.n=3D.n=4
56.下列標識符不是關鍵字的是()。
A.breakB.charC.SwitchD.retum
57.軟件生命周期中花費時間最多的階段是()
A.詳細設計B.軟件編碼C.軟件測試D.軟件維護
58.以下敘述中正確的是()。
A.C程序中注釋部分可以出現在程序中任意合適的地方
B.C程序的書寫格式是固定的,每行只能寫一條語句
C.構成C程序的基本單位是函數,所有函數名都可以由用戶命名
D.在對C語言程序進行編譯時,可以發(fā)現注釋行中的拼寫錯誤
59.下列選項中,不屬于數據庫管理的是()
A.數據庫的建立B.數據庫的調整C.數據庫的監(jiān)控D.數據庫的校對
60.設有如下說明typedefstructST{longa;intb;charc[2];}NEW;則下面敘述中正確的是______。A.以上的說明形式非法B.ST是一個結構體類型C.NEW是一個結構體類型D.NEW是一個結構體變量
四、選擇題(20題)61.
62.在數據管理技術的發(fā)展過程中,經歷了人工管理階段、文件系統(tǒng)階段和數據庫系統(tǒng)階段。其中數據獨立性最高的階段是()。
A.數據庫系統(tǒng)B.文件系統(tǒng)C.人工管理D.數據項管理
63.有以下程序:
程序運行后的輸出結果是()。
A.500B.401C.503D.1404
64.
65.
66.
67.
68.
69.在一個C語言源程序文件中所定義的全局變量,其作用域為()。
A.所在文件的全部范圍B.所在程序的全部范圍C.所在函數的全部范圍D.由具體定義位置和extern說明來決定范圍
70.設已有定義:floatx;則以下對指針變量p進行定義且賦初值的語句中正確的是()。A.float*p=&x;B.int*p-(float)x;C.floatp=&x;D.float*p=1024;
71.兩個或兩個以上模塊之間關聯(lián)的緊密程度稱為()。
A.耦合度B.內聚度C.復雜度D.數據傳輸特性
72.
下列程序的輸出結果是()。
intfl(intx,inty){returnx>y?x:y;)
intf2(intx,inty){returnx>y?y:x;}
main
{inta=4,b=3,c=5,d=2,e,f,g;
e=f2(f1(a,b),f1(c,d));
f=f1(f2(a,b),f2(c,d));
g=a+b+c+d-e-f;
printf("%d,%d,%d\n",e,f,g);}
A.4,3,7B.3,4,7C.5,2,7D.2,5,7
73.下面不屬于需求分析階段任務的是()。
A.確定軟件系統(tǒng)的功能需求B.確定軟件系統(tǒng)的性能需求C.需求規(guī)格說明書評審D.制定軟件集成測試計劃
74.
若輸入“abcdef”“abdef”,下述程序的輸出結果為()。
#include<stdio.h>
#include<string.h>
main
{intn;
chars1[20],s2[20],*p1,*p2;
scanf("%s",s1);
scanf("%S",s2);
p1=s1;
p2=s2;
n=strcmp(p1,p2);
printf("Vood\n",n);
}
A.-1B.0C."abcdef"D."abdef"
75.
76.以下能正確定義一維數組的選項是()。
A.inta[5]=(0,1,2,3,4,5);
B.chara[]={0,1,2,3,4,5);
C.chara={'A','B','C'};
D.inta[5]="0123";
77.為了避免在嵌套的條件語句ifelse中產生二義性,C語言規(guī)定,else子句總是與()配對。
A.縮排位置相同ifB.其前面最近的ifC.其后面最近的ifD.同一行上的if
78.在下列選項中,哪個不是一個算法一般應該具有的基本特征()。
A.無窮性B.可行性C.確定性D.有窮性
79.下列4個關于C語言的結論中錯誤的是()。
A.可以用do—while語句實現的循環(huán)一定可以用while語句實現
B.可以用for語句實現的循環(huán)一定可以用while語句實現
C.可以用while語句實現的循環(huán)一定可以用for語句實現
D.do-while語句與while語句的區(qū)別僅是關鍵字“while”出現的位置不同
80.
五、程序改錯題(1題)81.下列給定程序中,函數proc()的作用是:將字符串str中的大寫字母都改為對應的小寫字母,其他字符不變。例如,若輸入“abD,dFAD”,則輸出“abd,dfad”。請修改函數proc()中的錯誤,使它能得出正確的結果。注意:不要改動main()函數,不得增行或刪行,也不得更改程序的結構。試題程序:
六、程序設計題(1題)82.學生的記錄由學號和成績組成,M名學生的數據已在主函數中放入結構體數組stu中,請編寫函數proc(),它的功能是:把分數最低的學生數據放在h所指的數組中。注意:分數低的學生可能不止一個。注意:部分源程序給出如下。請勿改動main()函數和其他函數中的任何內容,僅在函數proc()的花括號中填入所編寫的若干語句。試題程序:
參考答案
1.C在C語言中,字母區(qū)分大小,所以break、char、return、switch都是C語言中的關鍵字,而Swithch不是。
2.C在main函數中調用了f函數使形參s指向數組a。執(zhí)行“S[1]+=6”;語句,則“a[1]=8;”執(zhí)行“*s=7;”語句,則“a[0]=7”;執(zhí)行“s+=2;”語句,則s指向數組的第3個元素并返回s。調用后,函數返回值賦給指針P,則*P=3,因此輸出的結果為7,8,3。故本題答案為C選項。
3.B解析:本題主要考查結構類型的定義:struct是結構體類型的關鍵字;structstr是結構體類型名;x、y、z都是結構體成員名;st是結構變量名。
4.D
5.A解析:本題考查C語言的綜合基礎知識。構成C程序的基本單位是函數,一個C程序總是從main函數開始執(zhí)行,而不論main函數在整個程序中的位置如何。C語言的函數定義都是互相平行、獨立的,在定義函數時,一個函數內不能定義另一個函數。C函數定義的一般格式有兩種:傳統(tǒng)格式和現代格式。傳統(tǒng)格式也稱K&R格式,是早期編譯系統(tǒng)使用的格式;現代格式又稱ANSI格式,是現代編譯系統(tǒng)使用的格式。
6.C解析:1.getchar():此函數的作用是從終端(或系統(tǒng)隱含指定的輸入設備)輸入一個字符。
2.putchar():此函數的作用是向終端輸出一個字符,也可以輸出控制字符。本題在輸入字符時,ab和c后面的回車符分別賦給了c[2]和c[4],所以,正確答案為C。
7.B選項B先計算關系表達式“A<=c”的值是0還是l,再比較該值與字符z之間的大小關系,不能實現題目所要求的功能。
8.Dfprintf函數和fscanf函數都可以讀寫文本文件,而fwrite和fread函數可以讀寫二進制文件,選項A、C錯誤;文件以“r”方式打開后,只可以讀取文本數據,選項B錯誤。故本題答案為D選項。
9.C
10.C解析:x=7,通過遞歸調用fun函數后得到結果。
11.D
12.A本題考查的是for循環(huán)與二維數組的定義和引用。當定義二維數組的初始化列表只使用一重花括號時,其中的每個值依次代表從第l行的第1個元素起,直到第l行滿,接著代表第2行、第3行……的每一個元素。程序中的循環(huán)將循環(huán)3次,循環(huán)變量i的值分別是0、1、2,所以3次循環(huán)中輸出的數分別是:t[2一O][D]、t[2-1][1]、t[2~2]121,即t[2][0]、t[1][l]、t[0][2],所以最后輸出的結果為357。故應該選擇A)。
13.D解析:在C語言中,凡是以“#”開頭的行都稱為編譯預處理命令行,如#include、#define、#if等,每行的末尾不得用“;”結束,以區(qū)別于C語句、定義和說明語句。選項C中的宏定義為不帶參數的宏命令行,宏名之后可以有替換文本,也可以沒有。編譯預處理是在編譯程序對C源程序進行編譯前執(zhí)行的.當然也在程序執(zhí)行之前執(zhí)行,因此選項D是錯誤的。
14.D解析:strcat(s1,s2)是把s2字符串連接到s1字符串的末尾,要保證s1能容納下連接后的字符串。
15.DC語言的算術運算符是有優(yōu)先級的。圓括號可以改變算術表達式中某些算術運算符的優(yōu)先級,選項A正確;算術運算符中,乘除運算符的優(yōu)先級比加減運算符的優(yōu)先級高,C語言采用的是四則運算規(guī)則,選項B正確;算術表達式中,運算符兩側運算對象的數據類型不同時,將進行隱式類型轉換,選項C正確;C語言中基本的算術運算符除了“+”“-”“*”“/”之外,還有“%”,即求余運算符,選項D錯誤。故本題答案為D選項。
16.C解析:當for循環(huán)執(zhí)行到第30次時,i的值為30能被5整除,然后繼續(xù)執(zhí)行兩次if語句,i經過兩次自加1運算,值變?yōu)?2,能被8整除,故此時第一次執(zhí)行'printf('%d',i);'語句,即輸出32。
17.A本題考查函數值的類型,在函數定義時,由于函數沒有說明其類型,系統(tǒng)默認一律自動按整型(int)處理。
18.C數組名sl是代表sl數組首地址的地址常量,因為“=”左邊不能出現常量,所以s1="ABCDE"的方法是錯誤的。
19.A
20.D【答案】:D
【知識點】:棧和隊列
【解析】:棧和隊列都是線性結構,所以選項C錯誤;棧是一種先進后出的線性表,故選項A錯誤;隊列是一種先進先出的線性表,故選項B錯誤,所以選D。
21.99解析:函數的嵌套調用是在主函數中函數f(f(3,4),f(3,5))的返回值賦給d。函數的第一個參數為f(3,4)的返回值,函數f(3,4)返回值為(4-3)*3=3,f(3,5)返回值為(5-3)*3=6,那么函數f(f(3,4),f(3,5))等價于函數f(3,6)其返回值為(6-3)*3=9。因此d被賦值為9,所以輸出9。
22.加工加工解析:數據流圖是從數據傳遞和加工的角度,來刻畫數據流從輸入到輸出的移動變換過程。其中的每一個加工對應一個處理模塊。
23.操作系統(tǒng)操作系統(tǒng)解析:數據庫管理系統(tǒng)是幫助用戶創(chuàng)建和管理數據庫的應用程序的集合。因此,數據庫管理系統(tǒng)需要操作系統(tǒng)的支持,為用戶提供服務。
24.③數組可以在定義時整體賦初值,但不能在賦值語句中整體賦初值。因此,可將第三行改為charstr[14]={"IloveChina!"};
25.1616解析:在滿二叉樹中,每一層上的節(jié)點數都達到最大值,在第k層上有2[k-1]個節(jié)點,且深度為m的滿二叉樹有2[m]-1個節(jié)點,深度為5的滿二叉樹葉子節(jié)點數為2[5-1]=16。
26.00解析:已知a=10,b=20,所以邏輯表達式a<b的值為true,即為1,在這個表達式前面有一個邏輯運算符!,表示反操作,所以整個語句的值應當為false,即為0。
27.j=j+2或j+=2a[j]<a[i]或a[i]>a[j]j=j+2或j+=2\r\na[j]<a[i]或a[i]>a[j]
28.j%3!=0j%3!=0解析:for循環(huán)語句中表達式“j=i*10+6;”可以給出100以內個位數為6的所有整數,因此if語句只需判斷該數能否被3整除即可,可應用取余運算表達式“j%3!=0”判斷。
29.55解析:程序通過語句s[0].next=s+1;s[1].next=s+2;s[2].next=s;將結構體變量s中各結點連接成了一個循環(huán)鏈表,即最后一個結點的指針域指向了頭結點(s[2].next=s),整個鏈表形成一個環(huán),并通過語句p=s;q=p->next;r=q->next;將結構體指針變量p,q,r指向了各結點,具體結構如下圖:
故本題輸出的sum為3+2=5。
30.n1=%d\nn2=%d\n或n1=%d\nn2=%d或n1=%2d\nn2=%2d\n或n1=%2d×nn2=%2dn1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2d\\n或n1=%2d×nn2=%2d解析:printf函數有兩種參數:格式控制參數和輸出項參數,其中格式控制參數由兩種成分組成;格式說明和普通字符,普通字符將被簡單地復制顯示,格式說明項將引起一個輸出參數項的轉換與顯示,它是由“%”引出并以一個類型描述符結束的字符串。本題中,n1=和n2=就是普通字符,可以直接顯示,又因為n1,n2為整數,所以格式說明項為%d,也可以在%與d之間加上域寬,另外還要在每行輸出結束時加轉義字符\\n進行換行。所以,應填寫n1=%d\\nn2=%d\\n,n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2d\\n或n1=%2d\\nn2=%2d。
31.有窮性有窮性解析:算法的4個基本特性包括:可靠性、確定性、有窮性和擁有足夠的情報,其中,算法的有窮性指的是算法必須在有限的時間內完成,即算法必須在執(zhí)行有限個步驟之后終止。
32.B66B66解析:字符B的ASCII碼值為66,因此,按%c形式輸出B,按%d形式輸出66,輸出結果為:B66。
33.1371513715解析:本題中,定義了個整型數組n并初始化,在for循環(huán)語句中,再對數組中各元素重新賦值。循環(huán)執(zhí)行第一次時,n[1]=n[0]*2+1=0+1=1,printf函數輸出1,然后i的值加1,比較i<=4成立,繼續(xù)執(zhí)行循環(huán)體語句,相應輸出3、7、15,直至i<=4不成立,退出循環(huán)。所以最后輸出為1、3、7、15。
34.CHINA
35.a=sb=s+1;b-s<sizeof(s)/sizeof(s[0]);b++a=s,b=s+1;b-s<sizeof(s)/sizeof(s[0]);b++解析:題目要求輸出數組中最大的數,所以要遍歷整個數組,而指針a用來指向最大數,所以循環(huán)變量只有使用指針b。for初始化時,應該先讓a指向第1個數,然后讓b指向第2個數,故循環(huán)初始化語句應該為a=s,b=s+1或其他等價表達式。因為要使b遍歷整個數組,故循環(huán)條件應該為b-s<sizeof(s)/sizeof(s[0])或其他等價表達式。最后每次循環(huán)應該讓b往后移動一位,故for的第3條語句應該是++b、b++或其他等價形勢。所以本題應填a=s,b=s+1;b-s<sizeof(s)/sizeof(s[0]);b++或其他等價語句。
36.1616解析:首先將程序中宏替換掉,先把“MCRA(i)”替換成“2*i”,然后把“MCRA(j,2*i)”替換成“2*2*j+2*i”,經計算該表達式的值為16,所以最后輸出為16。
37.cdeabcdeab解析:本題中函數move的實參到形參是按地址傳遞,故形參的改變會影響實參。根據題目可知在main函數中,n=3、s[0]=\'a\'、s[1]=\'b\'、s[2]=\'c\'、s[3]=\'d\'、s[4]=\'e\',數組元素s[5]~s[49]全部為\'\\0\',故z=strlen(s)=5。
第1次調用函數move時,形參str='abcd'、n=5,執(zhí)行完函數move后str[4]=str[3]=\'d\'、str[3]=str[2]=\'c\'、str[2]=str[1]=\'b\'、str[1]=str[0]=\'a\'、str[0]=str[4]=\'e\'。即s[0]=\'e\'、s[1]=\'a\'s[2]、s[2]=\'b\'、s[3]=\'c\'、s[4]=\'d\'。
第2次調用函數move時,形參str='eabcd、n=5,執(zhí)行完函數move后str[4]=str[3]=\'c\'、str[3]=str[2]=\'b\'、str[2]=str[1]=\'a\'、str[1]=str[0]=\'e\'、str[0]=str[4]=\'d\'。即s[0]=\'d\'、s[1]c\'e\'、s[2]=\'a\'、s[3]=\'b\'、s[4]=\'c\'。
第3次調用函數move時,形參str='deabc'、n=5,執(zhí)行完函數move后str[4]=str[3]=\'b\'、str[3]=str[2]=\'a\'、str[2]=str[1]=\'e\'、str[1]=str[0]=\'d\'、str[0]=str[4]=\'c\'。即s[0]=\'c\'、s[1]=\'d\'、s[2]=\'e\'、s[3]=\'a\'、s[4]=\'b\'。
所以printf函數的輸出結果為:cdeab。
38.1212解析:本題的第—個for循環(huán)用于紿數組arr賦初值,第二個for循環(huán)用于求和運算。由于第二個for循環(huán)初始值為1,而循環(huán)條件為i<4,所以求的是arr[1]到arr[3]及i的和,所以輸出結果為12。
39.((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中至少有兩個為正數”,即x、y和x這3個數中必須有兩個是正數,且這3個數中的哪兩個數都有可能是正數,所以它們之間是或的關系。
40.55解析:分析程序,當a=3;b=4;c=5時,判斷語句a>b不成立,所以不執(zhí)行后面的語句,直接執(zhí)行“printf('%d\\n',c);”語句,輸出c的值,輸出結果為5。
41.C解析:函數intf(intx)是一個遞歸函數調用,當x的值等于0或1時,函數值等于3,其他情況下y=x2-f(x-2),所以在主函數中執(zhí)行語句z=f(3)時,y=3*3-f(3-2)=9-f(1)=9-3=6。
42.D
43.A
44.C解析:本題考查函數調用時的參數傳遞。選項C)中第一個參數的表達式不正確,因此不能得到正確的結果。
45.C解析:數據處理的最小單位是數據項;由若干數據項組成數據元素;而數據是指能夠被計算機識別、存儲和加工處理的信息載體;數據結構是指數據之間的相互關系和數據運算。故正確答案為選項C)。
46.AA)【解析】根據數據結構中各數據元素之間前后關系的復雜程度,一般將數據結構分為兩大類型:線性結構與非線性結構。如果一個非空的數據結構滿足下列兩個條件:①有且只有一個根結點;②每個結點最多有一個前件,也最多有一個后件。則稱該數據結構為線性結構,又稱線性表。所以線性表、棧與隊列、線性鏈表都是線性結構,而二:叉樹是非線性結構。
47.C解析:共用體所占存儲空間的大小是所有成員所占存儲單元的和;共用體變量所占存儲單元的大小是所有成員中占據存儲空間最大的成員所占存儲空間的大小。本題中字符數組成員z占8個字節(jié)的長度,長度最長,所以共用體變量them用sizeof計算長度為8。
48.B解析:C語言提供六種位運算符,按優(yōu)先級由高到低的順序分別為:取反(~)、左移(<<)和右移(>>)、按位與(&)、按位異或(∧)、按位或(|)。所以表達式c=ab<<1先運算b<<1得二進制值為00001100,再運算a∧00001100,最后得二進制值00001111。
49.D
50.C解析:在C語言中,實數有兩種表示形式。即十進制數形式和指數形式,在指數形式中,字母e的前面必須有數字,且e的后面必須是整數。e3,2.1e3.5,e3,e等都是不合法的指數形式,而123e3或123E3都代表123乘以10的3次方。
51.A解析:本題主要考查結構體的內存使用:對結構體而言,結構中不同的成員分別使用不同的內存空間,一個結構所占內存空間的大小是結構中每個成員所占內存空間大小的總和,結構中每個成員相互獨立。
52.B解析:在長度為64的有序線性表中,其中的64個數據元素是按照從大到小或從小到大的順序排列有序的。在這樣的線性表中進行順序查找,最壞的情況就是查找的數據元素不性表中或位于線性表的最后。按照線性表的順序查找算法,首先用被查找的數據和線性表的第一個數據元素進行比較,若相等,則查找成功,否則,繼續(xù)進行比較,即和線性表的第二個數據元素進行比較。同樣,若相等,則查找成功,否則,繼續(xù)進行比較。依次類推,直到性表中查找到該數據或查找到線性表的最后一個元素,算法才結束。因此,在長度為64的有序線性表十進行順序查找,最壞的情況下需要比較64次。因此,本題的正確答案為選項B。
53.B
54.B解析:數據庫管理系統(tǒng)是數據庫系統(tǒng)的核心,是負責數據庫的建立、使用和維護的軟件。數據庫管理系統(tǒng)建立在操作系統(tǒng)之上,實施對數據庫的統(tǒng)一管理和控制。用戶使用的各種數據庫命令以及應用程序的執(zhí)行,最終都必須通過數據庫管理系統(tǒng)。另外,數據庫管理系統(tǒng)還承擔著數據庫的安全保護工作,按照數據庫管理員所規(guī)定的要求,保證數據庫的完整性和安全性。
55.D解析:本題考核的知識點是do…while結構和算術運算符%的應用。do…while的結構形式為:do循環(huán)體while(條件表達式),當程序執(zhí)行到do后,先執(zhí)行循環(huán)體一次,然后才對條件表達式進行計算、判斷。若條件表達式的值為真,則重復執(zhí)行一次循環(huán)體;否則退出,與while結構相比,do…while結構至少要執(zhí)行一次循環(huán)體;運算符%是求模運算,即求兩個數相除的余數。continue語句的作用時結束本次循環(huán),即跳過本次循環(huán)中余下尚未執(zhí)行的語句,接著再一次進行循環(huán)的條件判定。本題中,當i=2時,執(zhí)行如循環(huán)。由于if表達式的條件為真,執(zhí)行continue語句,結束本次循環(huán),判斷while循環(huán)條件為假,故退出while循環(huán),執(zhí)行n++,此時n的值為1,當i=3時,執(zhí)行do循環(huán).由于if(3%3)為假,執(zhí)行下面的n++語句,此時n的值為2,結束本次循環(huán),繼續(xù)判斷while循環(huán)條件為假,故退出while循環(huán),執(zhí)行n++語句,此時n的值為3;當i=4時,執(zhí)行如循環(huán)。由于if(4%3)為真,執(zhí)行continue語句,結束本次循環(huán),繼續(xù)判斷while循環(huán)條件為假,故退出while循環(huán),執(zhí)行n++,此時n的值為4;當i=5時,退出for循環(huán),因此最后輸出的n的值為4,所以,4個選項中選項D符合題意。
56.C解析:break,char、return、switch都是C語言中的關鍵字,Switch不是。因為C語言區(qū)分字母的大小寫。
57.D解析:軟件生命周期分為軟件定義、軟件開發(fā)及軟件運行維護3個所段。本題中,詳細設計、軟什編碼和軟件測試都屬于軟件開發(fā)階段;維護是軟件生命周期的最后一個階段,也是持續(xù)時間最長,花費代價最大的一個階段,軟件工程學的一個目的就是提高軟件的可維護性.降低維護的代價。
58.A本題考查的是C語言程序設計的初步知識。選項A),程序中/*......*/表示注釋部分,注釋只是給人看的,對程序的編譯和運行不起作用,司以在程序中的任何位置:選項B),C語言的書寫格式自由,一行可以寫多條語句,一條語句也可以寫在不同行上:選項C),一個C程序中必須有且只能有一個由“main”命名的主函數,其他函數由用戶自行命名;選項D),程序的注釋僅僅是提供閱讀之用,并不參與程序的編譯,所以編譯也就不會發(fā)現注釋行中的錯誤。
59.DD)【解析】數據庫管理一般包括:數據庫的建立、數據庫的調整、數據庫的重組、數據庫的安全性控制與完整性控制、數據庫的故障恢復和數據庫的監(jiān)控。
60.C解析:將題目中的定義語句去掉前面的typedef和后面的NEW(分號保留),
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于區(qū)塊鏈技術的2025年物流追蹤系統(tǒng)開發(fā)合同3篇
- 2025年度漁船買賣合同(含漁民福利保障)4篇
- 2025年度個人與金融機構客戶信息保密及合規(guī)管理協(xié)議4篇
- 二零二五版林業(yè)資源保護與木材采購合作協(xié)議4篇
- 二零二五年度出差人員差旅費用結算與報銷合同4篇
- WPS格式2024年度建筑工程施工合作合同一
- 退房時2025年度物業(yè)管理費結算協(xié)議3篇
- 二零二五年度充電樁充電接口標準制定合同3篇
- 2025年度無人機配送司機合作協(xié)議范本
- 二零二五年度嬰幼兒專用衛(wèi)生紙銷售協(xié)議2篇
- 2025-2030年中國草莓市場競爭格局及發(fā)展趨勢分析報告
- 華為智慧園區(qū)解決方案介紹
- 奕成玻璃基板先進封裝中試線項目環(huán)評報告表
- 廣西壯族自治區(qū)房屋建筑和市政基礎設施全過程工程咨詢服務招標文件范本(2020年版)修訂版
- 人教版八年級英語上冊期末專項復習-完形填空和閱讀理解(含答案)
- 2024新版有限空間作業(yè)安全大培訓
- GB/T 44304-2024精細陶瓷室溫斷裂阻力試驗方法壓痕(IF)法
- 年度董事會工作計劃
- 《退休不褪色余熱亦生輝》學校退休教師歡送會
- 02R112拱頂油罐圖集
- 2021年新教材重慶生物高考真題(含答案解析)
評論
0/150
提交評論