版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2022-2023學(xué)年河南省三門峽市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)預(yù)測(cè)試題(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(12題)1.
2.若函數(shù)中有定義語句:inta;,則()。
A.系統(tǒng)將自動(dòng)給a賦初值0B.這時(shí)a中的值是和隨機(jī)數(shù)C.系統(tǒng)將自動(dòng)給a賦初值-1D.這a中無任何值
3.在多媒體計(jì)算機(jī)系統(tǒng)中,不能用以存儲(chǔ)多媒體信息的是A.光纜B.軟盤C.硬盤D.光盤
4.以下哪種操作最適合先進(jìn)行排序處理()
A.找最大、最小值B.計(jì)算算術(shù)平均值C.找中間值D.找出現(xiàn)次數(shù)最多的值
5.在決定選取何種存儲(chǔ)結(jié)構(gòu)時(shí),一般不考慮()。
A.各結(jié)點(diǎn)的值如何B.結(jié)點(diǎn)個(gè)數(shù)的多少C.對(duì)數(shù)據(jù)有哪些運(yùn)算D.所用的編程語言實(shí)現(xiàn)這種結(jié)構(gòu)是否方便
6.有如下定義:structperson{charname[9];intage;}structpersonclass[10]={"John",17,"Paul",19,"Mary",18,"Adam",16};能輸出字母M的是()
A.printf("%c\n",class[3].name);
B.printf("%c\n",class[3].name[1]);
C.printf("%c\n",class[2].name[1]);
D.printf("%c\n",class[2].name[0]);
7.二維數(shù)組A的每個(gè)元素是由6個(gè)字符組成的串,其行下標(biāo)i=0,1,…,8,列下標(biāo)j=1,2,…,10。若A按行先存儲(chǔ),元素A[8][5]的起始地址與當(dāng)A按列先存儲(chǔ)時(shí)的元素()的起始地址相同。設(shè)每個(gè)字符占一個(gè)字節(jié)。
A.A[8][5]B.A[3][10]C.A[5][8]D.A[0][9]
8.下列敘述中錯(cuò)誤的是()。
A.在C語言中,函數(shù)中的自動(dòng)變量可以賦初值,每調(diào)用一次賦一次初值
B.在C語言中,在調(diào)用函數(shù)時(shí),實(shí)參和對(duì)應(yīng)形參在類型上只需賦值兼容
C.在C語言中,外部變量的隱含類型是自動(dòng)存儲(chǔ)類別
D.在C語言中,函數(shù)形參的存儲(chǔ)類型是自動(dòng)(auto)類型的變量
9.設(shè)有定義“doublea;chard;floatb;”,若想把1.2賦給變量a、字符‘k’賦給變量d、3.4賦給變量b,程序運(yùn)行時(shí)通過鍵盤輸入1.2k3.4并按<Enter>鍵,則以下正確的讀入語句是()。A.scanf(“%lf%c%f”,&a,&d,&b);
B.scanf(“%lf%c%f”,&a,&d,&b);
C.scanf(“%f%c%f”,&a,&d,&b);
D.scanf(“%f%c%f”,&a,&d,&b);
10.有以下程序:main(){intX,i;for(i=1;i<=50;i++){x=i;if(X%2=O)if(x%3=O)if(X%7=0)printf("%d,i)";}}輸出結(jié)果是()。A.28B.27C.42D.41
11.有以下程序
include<stdio.h>
main()
{chara[30],b[30];
scanf(“%s”,a);
gets(b);
printf(“%s\n%s\n”,a,b);
}
程序運(yùn)行時(shí)若輸入:
howareyou?Iamfine<回車>
則輸出結(jié)果是A.howareyou?Iamfine
B.howareyou?1amfine
C.howareyou?Iamfine
D.howareyou?
12.有以下程序#include<stdio.h>voidfun(char**p){++p;printf("%s",*p);}main{char*a[]={"Morning","Afternoon","Evening","Night");fun(a);}程序的運(yùn)行結(jié)果是()。A.AfternoonB.fternoonC.MorningD.orning
二、2.填空題(12題)13.設(shè)Y是int型變量,請(qǐng)寫出判斷Y為奇數(shù)的關(guān)系表達(dá)式【】。
14.在數(shù)據(jù)庫的概念結(jié)構(gòu)設(shè)計(jì)中,常用的描述工具是【】。
15.下列程序的輸出結(jié)果是【】。
voidfun(int*n)
{while((*n)--);
printf("%d",++(*n));
}
main()
{inta=1000;
fun(&a);
}
16.對(duì)于圖書管理數(shù)據(jù)庫,將圖書表中"人民郵電出版社"的圖書的單價(jià)漲價(jià)5%。請(qǐng)對(duì)下面的SQL語句填空:UPDATE圖書【】WHERE出版單位="人民郵電出版社"
17.以下程序運(yùn)行后的輸出結(jié)果是______。
inta=5;
fun(intB)
{staticinta=10;
a+=b++;
printf("%d",A);
}
main()
{intc=20;
fun(C),
a+=C++;
printf("%d\n",A);
}
18.符合結(jié)構(gòu)化原則的三種基本控制結(jié)構(gòu)是順序結(jié)構(gòu)、()和循環(huán)結(jié)構(gòu)。
19.下列程序段的運(yùn)行結(jié)果是______。
charstr[]="ABCD",*p=str;
printf("%d\n",*(p+3));
20.數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的【】以及對(duì)數(shù)據(jù)的操作運(yùn)算。
21.當(dāng)數(shù)據(jù)的物理結(jié)構(gòu)(存儲(chǔ)結(jié)構(gòu))改變時(shí),不影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的變化,這是指數(shù)據(jù)的【】。
22.以下程序段的輸出結(jié)果是【】。
inti=9;
printf("%o\n",i);
23.函數(shù)delete(s,i,n)的作用是從字符串s中刪除從第i個(gè)字符開始的n個(gè)字符,請(qǐng)?zhí)羁铡?/p>
voiddelete(chars[],inti,intn)
{intj,k,length=0;
whiles(length])
【】;
-i;
j=i;
}
if(【】)
{k=i+n;
if(i+n<=length)
while(k<length)
s[j++]=s[k++];
s[j]='\0';
}
24.在先左后右的原則下,根據(jù)訪問根結(jié)點(diǎn)的次序,二叉樹的遍歷可以分為三種;前序遍歷、【】遍歷和后序遍歷。
三、3.程序設(shè)計(jì)題(10題)25.請(qǐng)編寫函數(shù)fun,函數(shù)的功能是:將大于形參m且緊靠m的k個(gè)素?cái)?shù)存入xx所指的數(shù)組中。例如,若輸入17,5,則應(yīng)輸出:19,23,29,3l,37。
注意:部分源程序在文件PROGl.C文件中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花插號(hào)中填入你編寫的若干語句。
26.假定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫函數(shù)fun(),它的功能是:除了尾部的,:號(hào)之外,將字符串中其他*號(hào)全部刪除。形參p已指向字符串中最后一個(gè)字母。在編寫函數(shù)時(shí),不得使用C語言的字符串函數(shù)。
例如,若字符串中的內(nèi)容為****A*BC*DEF*G******,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是ABCDEFG******。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
voidfun(char*a,char*p)
{
}
main()
chars[81],*t;
printf("Enterastring:\n");
gets(s);
t=s;
while(*t)
t++;
t--;/*指針t指向字符串尾部*/
while(*t=='*')
t--;/*指針t指向最后一個(gè)字母*/
fun(s,t);
printf("Thestringafterdeleted:\n");
puts(s);
}
27.下列程序定義了NXN的二維數(shù)組,并在主函數(shù)中自動(dòng)賦值。請(qǐng)編寫函數(shù)fun(inta[][N]),該函數(shù)的功能是使數(shù)組右上半三角元素中的值全部置成0。例如a數(shù)組中的值為
a=456
179
326,
則返回主程序后a數(shù)組中的值應(yīng)為
000
100
320
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#defineN5
intfun(inta[][N])
{
}
main()
{
inta[N][N],i,j;
clrscr();
printf("*****Thearray*****\n");
for(i=0;i<N;i++)
/*產(chǎn)生—個(gè)隨機(jī)的5*5矩陣*/
{for(j=0;j<N;j++)
{a[i][j]=rand()%10;
printf(“%4d”,a[i][j]);
}
printf(“\n”);
}
fun(a);
printf(“THERESULT\n”);
for(i=0;i<N;i++)
{for(j=0;i<N;j++)
printf(“%4d”,a[i][j]);
printf(“\n”);
}
}
28.請(qǐng)編寫一個(gè)函數(shù)fun(),它的功能是:將ss所指字符串中所有下標(biāo)為奇數(shù)位置的字母轉(zhuǎn)換為大寫(若該位置上不是字母,則不轉(zhuǎn)換)。
例如,若輸入abc4Efg,則應(yīng)輸出aBc4EFg。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
#include<string.h>
voidfun(char*ss)
{
}
main()
{
chartt[81];
clrscr();
printf("\nPleaseenteranstringwithin80characters:\n");
gets(tt);
printf("\n\nAfterchanging,thestring\n\%s",tt);
fun(tt);
printf("\nbecomes\n\%s\n",tt);
}
29.請(qǐng)編一個(gè)函數(shù)voidfun(inttt[M][N],intpp[N],tt指向一個(gè)M行N列的二維數(shù)組,求出二維數(shù)組每列中最大元素,并依次放入pp所指的一維數(shù)組中。二維數(shù)組中的數(shù)已在主函數(shù)中給出。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
#defineM3
#defineN4
voidfun(inttt[M][N],intpp[N])
{
}
main()
{
intt[M][N]={{68,32,54,12},{14,24,88,
58},{42,22,44,56}};
intp[N],i,j,k;
clrscr();
printf("Theriginaldatais:\n");
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
printf("%6d",t[i][j]);
printf("\n");
}
fun(t,p);
printf("\nTheresultis:\n");
for(k=0;k<N;k++)
printf("%4d",p[k]);
printf("\n");
}
30.請(qǐng)編寫函數(shù)fun(),其功能是:將s所指字符串中下標(biāo)為偶數(shù)的字符刪除,串中剩余字符形成的新串放在t所指數(shù)組中。
例如,當(dāng)s所指字符串中的內(nèi)容為ABCDEFGHIJK,則在t所指數(shù)組中的內(nèi)容應(yīng)是BDFHJ。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main口其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
#include<string.h>
voidfun(char*s,chart[])
{
}
main()
chars[l00],t[l00];
clrscr();
printf("%nPleaseenterstringS:");
scanf("%s",s);
fun(s,t);
prlntf("\nTheresultis:%s\n",t);
}
31.假定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫函數(shù)fun(),它的功能是:只刪除字符串前導(dǎo)和尾部的*號(hào),串中字母之間的*號(hào)都不刪除。形參n給出了字符串的K度,形參h給出了字符串中前導(dǎo)*號(hào)的個(gè)數(shù),形參e給出了字符山中最后*號(hào)的個(gè)數(shù)。在編寫函數(shù)時(shí),不得使用c語言提供的字符串函數(shù)。
例如,若字符串中的內(nèi)容為****A*BC*DEF*G*******,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是A*BC*DEF*G。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,儀在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。
試題程序:
#include<stdio.h>
#include<conio.h>
voidfun(char*a;intn,inth,inte)
{
}
main()
{
chars[81],*t,*f;
intm=0,tn=0,fn=0;
printf("Enterastring:\n");
gets(s);
t=f=s;
while(*t)
{t++;m++;}/*m為字符串的長度*/
t--;/*指針t指身字符串尾部*/
while(*t=='*')
{t--;tn++;}
/*指針t指向最后一個(gè)字母,tn統(tǒng)計(jì)尾部'*'的個(gè)數(shù)*/
while(*f=='*')
{f++;fn++;}
/*指針f指向第一個(gè)字母,tn統(tǒng)計(jì)導(dǎo)'*'的個(gè)數(shù)*/
fun(s,m,fn,tn);
printf("Thestringafterdeleted:\n");
puts(s);
}
32.編寫函數(shù)fun(),它的功能是;根據(jù)以下公式求p的值,結(jié)果由函數(shù)值帶回。m與n為兩個(gè)正數(shù)且要求m>n。
P=m!/n!(m-n)!),例如:m=12,n=8時(shí),運(yùn)行結(jié)果為495.000000。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。
試題程序:
#include<conio.h>
#include<stdio.h>
floatfun(intm,intn)
{
}
main()
{
clrscr();
printf("p=%f\n",fun(12,8));
}
33.m個(gè)人的成績存放在score數(shù)組中,請(qǐng)編寫函數(shù)fun,它的功能是:將低于平均分的人數(shù)作為函數(shù)值返回,將低于平均分的分?jǐn)?shù)放在below所指的數(shù)組中。
例如,當(dāng)score數(shù)組中的數(shù)據(jù)為:10、20、30、40、50、60、70、80、90時(shí),函數(shù)返回的人數(shù)應(yīng)該是4,below中的數(shù)據(jù)應(yīng)為:10、20、30、40。
注意:部分源程序在文件PROGl.C文件中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。
34.下列程序定義了NXN的二維數(shù)組,并在主函數(shù)中賦值。請(qǐng)編寫函數(shù)fun(),函數(shù)的功能是求出數(shù)組周邊元素的平方和并作為函數(shù)值返回給主函數(shù)中的S。例如:若a數(shù)組中的值為
a=01279
1112155
2216111
979102
54141
則返回主程序后s的值應(yīng)為310。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。
試題程序:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#defineN5
intfun(intw[][N])
{
}
main()
{
inta[N)[N]={0,1,2,7,9,1,1l,2l,5,5,2,21,6,11,1,9,7,9,10,2,5,4,1,4,1};
inti,j;
intS;
clrscr();
printf("*****Thearray***+*\n");
for(i=0;i<N;i++)
{for(j=0;j<N;i++)
{printf(“%4d”,a[i][j]);}
printf("\n");
}
s=fun(a);
printf(“*****THERESULT*****\n”);
printf("Thesumis:%d\n",s);
}
四、單選題(0題)35.
五、單選題(0題)36.堆的形狀是一棵_______。
A.二叉排序樹B.滿二叉樹C.完全二叉樹D.平衡二叉樹
六、單選題(0題)37.采用開放定址法處理散列表的沖突時(shí),其平均查找長度()
A.高于二分查找B.高于鏈接法處理沖突C.低于二分查找D.低于鏈接法處理沖突
參考答案
1.D
2.B本題考查變量賦值基本概念。在聲明一個(gè)變量后,如果未顯式的對(duì)其進(jìn)行賦值,則它的值是一個(gè)隨機(jī)值。
3.A解析:光纜是傳輸多媒體信息的通道,不能用以存儲(chǔ)多媒體信息。
4.C
5.A
6.D
7.A
8.C解析:外部變量在編譯時(shí)由系統(tǒng)分配永久的內(nèi)存空間,所以外部變量的類型不是自動(dòng)存儲(chǔ)類別。
9.B變量a是double類型,輸入格式符為%lf;變量d是char類型,輸入格式符為%c;變量b是float類型,輸入格式符為%f,選項(xiàng)C、D錯(cuò)誤。由于輸入的數(shù)據(jù)之間使用空格間隔,因此scanf函數(shù)中的格式控制字符串中,格式字符之間也要使用空格。故本題答案為B選項(xiàng)。
10.C只有當(dāng)3個(gè)if條件同時(shí)成立,即能夠同時(shí)被2、3、7整除時(shí),才輸出i的值,而從0到50能夠同時(shí)被2、3、7整除的數(shù)只有42,故選擇c選鞏。
11.B
12.A執(zhí)行fun(a)語句時(shí),P指向的是字符串?dāng)?shù)組a的第一個(gè)字符串“Morning”,p自加1之后,p指向字符串?dāng)?shù)組a的第2個(gè)字符串“Afternoon”。
13.Y%2=1或Y%2!=0Y%2=1或Y%2!=0解析:判斷變量是否為奇數(shù)可以用變量與2取模,判斷結(jié)果是為1或下為0。本題具體做法如下:Y%2=1或Y%2!=0。
14.E-R圖E-R圖解析:E-R圖是設(shè)計(jì)概念模型的有力工具。
15.00解析:while循環(huán)的條件為即當(dāng)*n非零時(shí)執(zhí)行循環(huán),(*n)一是先使用*n的值再對(duì)*n減1,結(jié)束while循環(huán)后*n的值為-1。++(*n)是先對(duì)*n加1再使用*n的值,-1+1=0,輸出*n的值即輸出0。
16.SET單價(jià)=單價(jià)*1.05SET單價(jià)=單價(jià)*1.05解析:更新表中元組的值,使用UPDATE命令,一次可以更新表中的一個(gè)或多個(gè)屬性值。UPDATE短語之后指定更新數(shù)據(jù)所屬的表,將新的屬性值或表達(dá)式賦值給對(duì)應(yīng)的屬性名(SET單價(jià)=單價(jià)*1.05),并置于SET短語之后。要求對(duì)人民郵電出版社的圖書漲5%,需要用WHERE短語對(duì)元組進(jìn)行限制,即對(duì)符合條件的元組進(jìn)行更新。
17.30253025解析:本題考核的知識(shí)點(diǎn)是變量的存儲(chǔ)屬性和算術(shù)運(yùn)算的應(yīng)用。本題涉及了自動(dòng)變量、靜態(tài)變量和外部變量。外部變量是定義在所有函數(shù)之外的變量,本題中inta=5定義了一個(gè)外部變量a,它是一個(gè)全局變量,即作用域是從定義的位置開始到本文件的結(jié)束;靜態(tài)變量的存儲(chǔ)空間在程序的整個(gè)運(yùn)行期間是固定的(static),本題函數(shù)fun()中staticinta=10定義個(gè)一個(gè)靜態(tài)變量a,此靜態(tài)變量a是個(gè)靜態(tài)的局部變量,即它的值只能在本函數(shù)中使用;自動(dòng)變量是C程序中使用最多的一種變量,它的建立和撤消都是由系統(tǒng)在程序執(zhí)行過程中自動(dòng)進(jìn)行的,auto是自動(dòng)變量的存儲(chǔ)類別標(biāo)識(shí)符,如果省略auto,系統(tǒng)隱含認(rèn)為此變量為auto,本題中main()中intc=20定義了一個(gè)自動(dòng)變量c,此自動(dòng)變量c是個(gè)靜態(tài)的局部變量.算術(shù)運(yùn)算中a+=b++相當(dāng)于a=a+b,b=b+1.所以,在第一個(gè)ptine('%d',a)中a=a+b=10+20=30,第二個(gè)printf('%d',a)中a=a+c=5+20=25,即輸出3025。
18.選擇結(jié)構(gòu)選擇結(jié)構(gòu)解析:程序設(shè)計(jì)語言僅僅使用順序、選擇和重復(fù)(循環(huán))三種基本控制結(jié)構(gòu)就足以表達(dá)出各種其他形式結(jié)構(gòu)的程序設(shè)計(jì)方法。遵循程序結(jié)構(gòu)化的設(shè)計(jì)原則,按結(jié)構(gòu)化程序設(shè)計(jì)方法設(shè)計(jì)出的程序易于理解、使用和維護(hù);可以提高編程工作的效率,降低軟件的開發(fā)成本。
19.6868解析:本題考查如何用指針引用數(shù)組元素。本題先定義了一個(gè)指向字符型數(shù)組str的指針p,指針p指向數(shù)組str的首地址,p+3將指針指向str[3],*(p+3)指的是字符“D”,輸出時(shí)是以“%d”格式輸出的,即輸出其相應(yīng)ASCII碼值68。
20.存儲(chǔ)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)包括3個(gè)方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)及對(duì)數(shù)據(jù)的操作運(yùn)算。
21.物理獨(dú)立性數(shù)據(jù)獨(dú)立性是數(shù)據(jù)與程序間的互不依賴性,即數(shù)據(jù)庫中數(shù)據(jù)獨(dú)立于應(yīng)用程序而不依賴于應(yīng)用程序。也就是說,數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)與存取方式的改變不會(huì)影響應(yīng)用程序。數(shù)據(jù)獨(dú)立性一般分為物理獨(dú)立性與邏輯獨(dú)立性兩級(jí)。
22.1111解析:本題考核的知識(shí)點(diǎn)是printf()函數(shù)的輸出格式。本題中定義了一個(gè)整型變量i并賦初值為9,然后要求以八進(jìn)制輸出i的值,9的八進(jìn)制數(shù)的表示為11。
23.length++i<lengthlength++\r\ni<length解析:第—個(gè)循環(huán)極有可能是計(jì)算串的長度,在i<=length時(shí)字符才被刪除,被刪除的是從第i個(gè)到笫i+n或最后—個(gè)間的所有字符。刪除前,應(yīng)判斷i<=length。由于已經(jīng)進(jìn)行了-i運(yùn)算,故實(shí)際應(yīng)填入i<length。
24.中序中序解析:在先左后右的原則下,根據(jù)訪問根結(jié)點(diǎn)的次序,二叉樹的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷.前序遍歷是指在訪問根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹;并且遍歷左、右子樹時(shí),仍然先訪問根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹。中序遍歷指在訪問根結(jié)點(diǎn)、遍歷左了樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹:并且遍歷左、右子樹時(shí),仍然先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹。后序遍歷指在訪問根結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先遍歷右子樹,然后訪問根結(jié)點(diǎn),最后遍歷左子樹;并且遍歷左、右子樹時(shí),仍然光遍歷右子樹,然后訪問根結(jié)點(diǎn),最后遍歷左子樹。
25.
解析:(1)該程序功能是取大于整數(shù)m且緊靠m的k個(gè)素?cái)?shù)。其中,素?cái)?shù)是指只能被1和自身除盡的正整數(shù)(>1),所以判別n是否為素?cái)?shù),只要用2~n-1這些數(shù)逐個(gè)去除n,判斷余數(shù)是否為0即可。只要有一次余數(shù)為0,n就不是素?cái)?shù),否則n為素?cái)?shù)。
它的解題思路,可以分解為以下幾步:判斷是否為素?cái)?shù)一判斷素?cái)?shù)個(gè)數(shù)是否滿足要求一存儲(chǔ)素?cái)?shù)到指定的數(shù)組。
(2)從已給部分源程序的main主函數(shù)開始入手,核心函數(shù)“fun(m,n,zz);”中的參數(shù)由題目可知,zz存放素?cái)?shù),n為要求的素?cái)?shù)個(gè)數(shù)。
26.voidfun(char*achar*p){char*t=a;for(;t<=p;t++)if(*t!='*')*(a++)=*t;/*將p以前所有不是*號(hào)的字符保留下來*/for(;*t!='\0';t++)*(a++)=.t;/*將p以后的所有*號(hào)保留下來*/*a='\0';/*在字符串最后加上結(jié)束標(biāo)記位*/voidfun(char*a,char*p)\r\n{\r\nchar*t=a;\r\nfor(;t<=p;t++)\r\nif(*t!='*')\r\n*(a++)=*t;/*將p以前所有不是*號(hào)的字符保留下來*/\r\nfor(;*t!='\\0';t++)\r\n*(a++)=.t;/*將p以后的所有*號(hào)保留下來*/\r\n*a='\\0';/*在字符串最后加上結(jié)束標(biāo)記位*/解析:本題曾在歷年上機(jī)考試及模擬試題中多次出現(xiàn),一般用兩個(gè)循環(huán)語句來實(shí)現(xiàn)。第1個(gè)循環(huán)的作用是將p以前所有不是*號(hào)的字符保留下來,即刪除所有的*號(hào)。第2個(gè)循環(huán)的作用是將p以后的所有*號(hào)保留下來。
27.intfun(inta[][N)){intij;for(i=0;i<N;i++)for(j=i;j<N;j++)a[i][j]=0;/*將數(shù)組右上半三角元素中的值全部置成0*/}intfun(inta[][N))\r\n{\r\ninti,j;\r\nfor(i=0;i<N;i++)\r\nfor(j=i;j<N;j++)\r\na[i][j]=0;/*將數(shù)組右上半三角元素中的值全部置成0*/\r\n}解析:本題旨在考查控制數(shù)組中右上半三角元素的算法,也就是兩個(gè)千篇一律的循環(huán)語句,希望學(xué)習(xí)者能夠掌握消化。
28.voidfun(char*ss){inti;for(i=0;ss[i]!='\0';i++)/*將ss所指字符串中所有下標(biāo)為奇數(shù)位置的字母轉(zhuǎn)換為大寫*/if(i%2==1&&ss[i]>='a'&&SS[i]<='z')ss[i]=ss[i]-32;}voidfun(char*ss)\r\n{\r\ninti;\r\nfor(i=0;ss[i]!='\\0';i++)/*將ss所指字符串中所有下標(biāo)為奇數(shù)位置的字母轉(zhuǎn)換為大寫*/\r\nif(i%2==1&&ss[i]>='a'&&SS[i]<='z')\r\nss[i]=ss[i]-32;\r\n}解析:從C語言的學(xué)習(xí)中我們知道,只要將小寫字母減去32則轉(zhuǎn)成大寫字母,將大寫字母加上32則轉(zhuǎn)成小寫字母。該程序是用if語句實(shí)現(xiàn)該功能轉(zhuǎn)化的。
29.voidfun(inttt[M][N]intpp[N]){intiimax;for(j=0;j<N;j++){max=tt[0][j];/*假設(shè)各列中的第一個(gè)元素最大*/for(i=0;i<M;i++)if(tt[i][j]>max)/*如果各列中的其他元素比最大值大則將這個(gè)更大的元素看作當(dāng)前該列中最大元素*/max=tt[i][j];pp[j]=max;/*將各列的最大值依次放入pp數(shù)組中*/}}voidfun(inttt[M][N],intpp[N])\r\n{\r\ninti,i,max;\r\nfor(j=0;j<N;j++)\r\n{\r\nmax=tt[0][j];/*假設(shè)各列中的第一個(gè)元素最大*/\r\nfor(i=0;i<M;i++)\r\nif(tt[i][j]>max)/*如果各列中的其他元素比最大值大,則將這個(gè)更大的元素看作當(dāng)前該列中最大元素*/\r\nmax=tt[i][j];\r\npp[j]=max;/*將各列的最大值依次放入pp數(shù)組中*/\r\n}\r\n}解析:本題中函數(shù)的功能是求出二維數(shù)組中每列的最大元素。首先,假設(shè)各列中的第一個(gè)元素最大,然后利用行標(biāo)值的移動(dòng)來依次取得各列中其他元素的值,并與假設(shè)的最大值進(jìn)行比較,如果遇到更大的,則把這個(gè)更大的元素看做當(dāng)前該列中最大的元素,繼續(xù)與該列中其他元素比較。
30.voidfun(char*schart[]){intij=0k=strlen(s);/*k為字符串的長度*/for(i=l;i<k;i=i+2)/*將s所指字符串中下標(biāo)為奇數(shù)的字符存入t所指字符串中*/t[j++]=s[ii;t[j]='\0';/*在字符申最后加上結(jié)束標(biāo)志*/}voidfun(char*s,chart[])\r\n{\r\ninti,j=0,k=strlen(s);/*k為字符串的長度*/\r\nfor(i=l;i<k;i=i+2)/*將s所指字符串中下標(biāo)為奇數(shù)的字符存入t所指字符串中*/\r\nt[j++]=s[ii;\r\nt[j]='\\0';/*在字符申最后加上結(jié)束標(biāo)志*/\r\n}解析:本題使用了一種泳遠(yuǎn)是奇數(shù)的循環(huán)方法,即for(i=1;i<k;i=i+2),因?yàn)殚_始時(shí)的值為1,當(dāng)i+2循環(huán)時(shí),此值永遠(yuǎn)是奇數(shù)。
31.voidfun(char*aintninthinte){intij=0for(i=h;i<n-e;i++)/*第一個(gè)字母和最后一個(gè)字母之間的字符全不刪除*/a[j++]=a[i];a[j]='\0;/*在字符串最后加上結(jié)束標(biāo)記*/}voidfun(char*a,intn,inth,inte)\r\n{\r\ninti,j=0\r\nfor(i=h;i<n-e;i++)/*第一個(gè)字母和最后一個(gè)字母之間的字符全不刪除*/\r\na[j++]=a[i];\r\na[j]='\\0;/*在字符串最后加上結(jié)束標(biāo)記*/\r\n}解析:注意循環(huán)變量i的初值(h)和終止值(n-e),由于h和e分別是a中的前導(dǎo)*和尾部*的個(gè)數(shù),n是字符串的長度,所以從a
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 法制史試題及答案
- 廠級(jí)教育培訓(xùn)試題及答案
- 義烏公務(wù)員考試題及答案
- ABB(中國)招聘面試題及答案
- 骨髓炎的中醫(yī)護(hù)理方法
- 2026飛鶴乳業(yè)(寧夏)生態(tài)牧業(yè)有限公司招聘18人參考題庫必考題
- “夢(mèng)想靠岸”招商銀行溫州分行2026校園招聘參考題庫附答案
- 中共雅安市委辦公室互聯(lián)網(wǎng)信息中心2025年公開選調(diào)事業(yè)人員的(2人)備考題庫必考題
- 樂山市公安局2025年第四批次警務(wù)輔助人員招聘(40人)參考題庫必考題
- 內(nèi)江師范學(xué)院2025年下半年公開選調(diào)工作人員(2人)備考題庫附答案
- 綜合布線辦公樓布線方案
- 鞍鋼檢驗(yàn)報(bào)告
- 河南省信陽市2023-2024學(xué)年高二上學(xué)期期末教學(xué)質(zhì)量檢測(cè)數(shù)學(xué)試題(含答案解析)
- 北師大版七年級(jí)上冊(cè)數(shù)學(xué) 期末復(fù)習(xí)講義
- 2023年初級(jí)經(jīng)濟(jì)師《初級(jí)人力資源專業(yè)知識(shí)與實(shí)務(wù)》歷年真題匯編(共270題)
- 赤峰南臺(tái)子金礦有限公司金礦2022年度礦山地質(zhì)環(huán)境治理計(jì)劃書
- 氣穴現(xiàn)象和液壓沖擊
- 公民健康素養(yǎng)知識(shí)講座課件
- 銷軸連接(-自編)
- GB/T 15623.2-2003液壓傳動(dòng)電調(diào)制液壓控制閥第2部分:三通方向流量控制閥試驗(yàn)方法
- 英語音標(biāo)拼讀練習(xí)
評(píng)論
0/150
提交評(píng)論