




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021-2022學(xué)年安徽省淮北市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(12題)1.以下敘述中錯(cuò)誤的是()。
A.由3種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡(jiǎn)單問題
B.結(jié)構(gòu)化程序由順序、分支、循環(huán)3種基本結(jié)構(gòu)組成
C.C語(yǔ)言是一種結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言
D.結(jié)構(gòu)化程序設(shè)計(jì)提倡模塊化的設(shè)計(jì)方法
2.
3.在銀行業(yè)務(wù)中,實(shí)體客戶和實(shí)體銀行之間的聯(lián)系是()。
A.—對(duì)一B.—對(duì)多C.多對(duì)一D.多對(duì)多
4.以下敘述中正確的是()。
A.構(gòu)成C程序的基本單位是函數(shù)
B.可以在一個(gè)函數(shù)中定義另一個(gè)函數(shù)
C.main函數(shù)必須放在其他函數(shù)之前
D.C函數(shù)定義的格式是K&R格式
5.設(shè)s1="Good",s2="",s3="Bye",則s1、s2和s3連接后的結(jié)果是()。
A.GoodB.GoodByeC.GoodByeD.Bye
6.
7.以下選項(xiàng)中合法的C語(yǔ)言常量是()。
A.‘C-STR’B.2014.1C.”\1.0D.2EK
8.若有定義:“inta=4,b=5;floatx=3.4,y=2.1;”,則下列表達(dá)式的值為()。(float)(a+b)/2+(int)x%(int)y;
A.5.5B.55C.5.500000D.55.00000
9.按照標(biāo)識(shí)符的要求,()符號(hào)不能組成標(biāo)識(shí)符。A.連接符B.下劃線C.大小寫字母D.數(shù)字字符
10.下列敘述中正確的是()。
A.在switch語(yǔ)句中不一定使用break語(yǔ)句
B.在switch語(yǔ)句中必須使用default語(yǔ)句
C.break語(yǔ)句必須與switch語(yǔ)句中的case配對(duì)使用
D.break語(yǔ)句只能用于switch語(yǔ)句
11.下面程序的輸出結(jié)果是______。#inc1ude<stdio.h>main(){char*p[]={"BOOL","OPK","H","SP"};inti;for(i=3;i>=0;i-,i-)prinf("%c",*p[i]);print("\n")}
A.SOB.SPC.SPOPKD.SHOB
12.C語(yǔ)言中的變量名只能由字母,數(shù)字和下劃線三種字符組成,且第一個(gè)字符()。
A.必須為字母B.必須為下劃線C.必須為字母或下劃線D.可以是字母,數(shù)字或下劃線中的任意一種
二、2.填空題(12題)13.下面程序輸出的結(jié)果是()。intm=17;intfun(intx,inty){intm=3;return(x*y-m);}main(){inta=5,b=7;printf("%d\n”,fun(a,B)/m);}
14.表示條件;10<x<100或x<0的C語(yǔ)言表達(dá)式是【】。
15.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為______。
16.一個(gè)項(xiàng)目具有一個(gè)項(xiàng)目主管,一個(gè)項(xiàng)目主管可管理多個(gè)項(xiàng)目,則實(shí)體“項(xiàng)目主管”與實(shí)體“項(xiàng)目”的聯(lián)系屬于______的聯(lián)系。
17.以下程序段的輸出結(jié)果是【】。
main()
{inta=2,b=2,c=4;
a*=16+(b++)-(++C);
printf("%d",a);
}
18.下列程序的運(yùn)行結(jié)果是______。
#include<stdio.h>
main()
{intfun();
fun();
}
fun()
{staticinta[4]={1,2,3,4};
inti;
for(i=0;i<4;i++)a[i]+=a[i];
for(i=0;i<4;i++)printf("%d,",a[i]);
printf"\n");
}
19.在結(jié)構(gòu)化設(shè)計(jì)方法中,數(shù)據(jù)流圖表達(dá)了問題中的數(shù)據(jù)流與加工間的關(guān)系,并且每一個(gè)______實(shí)際上對(duì)應(yīng)一個(gè)處理模塊。
20.一個(gè)模塊直接調(diào)用的其他模塊的模塊個(gè)數(shù)稱為______。
21.下列程序的運(yùn)行結(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);
}
22.在數(shù)據(jù)結(jié)構(gòu)中,順序存儲(chǔ)結(jié)構(gòu)的數(shù)據(jù)元素所占的存儲(chǔ)空間是______的。
23.用以下語(yǔ)句調(diào)用庫(kù)函數(shù)malloc,使字符指針st指向具有11個(gè)字節(jié)的動(dòng)態(tài)存儲(chǔ)空間,請(qǐng)?zhí)羁?。st=(char*)【】;
24.設(shè)有定義:
struct{inta;floatb;charc;}abc;*p_abc=&abc;
則對(duì)結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc【】a。
三、3.程序設(shè)計(jì)題(10題)25.請(qǐng)編寫函數(shù)fun(),該函數(shù)的功能是:將s所指字符串中ASCII值為偶數(shù)的字符刪除,串中剩余字符形成一個(gè)新串放在t所指的數(shù)組中。
例如,若s所指字符串中的內(nèi)容為ABCDEFGl2345,其中字符B的ASCⅡ碼值為偶數(shù)、…、字符2的ASCⅡ碼值為偶數(shù)、…,都應(yīng)當(dāng)刪除,其他依次類推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是ACEGl35。
注定:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語(yǔ)句。
試題程序;
#include<stdio.h>
#include<string.h>
#include<conio.h>
voidfun(char*s,chart[])
{
}
main()
{
chars[100],t[100];
clrscr();
printf(,\nPleaseenterstringS:");
scanf("%s",s);
fun(s,t);
printf("\nTheresultis:%s\n",t);
}
26.請(qǐng)編寫一個(gè)函數(shù)fun(),它的功能是:求出一個(gè)4×M整型二維數(shù)組中最小元素的值,并將此值返回調(diào)用函數(shù)。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,儀在函數(shù)fun的花括號(hào)中填入所編寫的若干語(yǔ)句。
試題程序:
#defineM4
#include<stdio.h>
fun(inta[])[M])
{
}
main()
{
intarr[4][M]={11,3,9,35,42,-4,24,32,6,48,-32,7,23,34,12,-7);
printf(“min=%d\n”,fun(arr));
}
27.請(qǐng)編寫函數(shù)fun(),它的功能是:求出1到1000之內(nèi)能被7或11整除、但不能同時(shí)被7和11整除的所有整數(shù)并將它們放在a所指的數(shù)組中,通過n返回這些數(shù)的個(gè)數(shù)。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語(yǔ)句。
試題程序:
#include<conio.h>
#include<stdio.h>
voidfun(int*a,int*n)
{
}
main()
{
intaa[1000],n,k;
clrscr();
fun(aa,&n);
for(k=0;kif((k+1)%10==0)
{printf("%5d",aa[k]);
printf("\n");}/*一行寫9個(gè)數(shù)*/
else
printf("%5d",aa[k]);
}
28.編寫函數(shù)fun(),函數(shù)的功能是:根據(jù)以下公式計(jì)算s,計(jì)算結(jié)果作為函數(shù)值返回;n通過形參傳入。
S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n)
例如:若n的值為11時(shí),函數(shù)的值為1.833333。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語(yǔ)句。
試題程序:
#include<conio.h>
#include<stdio.h>
#include<string.h>
floatfun(intn)
{
}
main()
{
intn;
floats;
clrscr();
printf("\nPleaseenterN:");
scanf("%d",&n);
s=fun(n);
printf("Theresultis:%f\n",s);
}
29.請(qǐng)編寫一個(gè)函數(shù)fun,它的功能是:將一個(gè)數(shù)字字符串轉(zhuǎn)換為一個(gè)整數(shù)(不得調(diào)用C語(yǔ)言提供的將字符串轉(zhuǎn)換為整數(shù)的函數(shù))。例如,若輸入字符串“-1234”,則函數(shù)把它轉(zhuǎn)換為整數(shù)值-1234。
注意:部分源程序存在文件PROGl.C文件中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語(yǔ)句。
30.請(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)中填入所編寫的若干語(yǔ)句。
試題程序:
#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);
}
31.學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,請(qǐng)編寫函數(shù)fun,它的功能是:把分?jǐn)?shù)最高的學(xué)生數(shù)據(jù)放在h所指的數(shù)組中,注意:分?jǐn)?shù)最高的學(xué)生可能不止一個(gè),函數(shù)返回分?jǐn)?shù)最高的學(xué)生的人數(shù)。
注意:部分源程序在文件PROGl.C中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語(yǔ)句。
32.請(qǐng)編寫函數(shù)fun(),其功能是:將s所指字符串中除了下標(biāo)為奇數(shù)、同時(shí)ASCII值為偶數(shù)的字符外,其余的全部刪除,串中剩余字符所形成的一個(gè)新串放在t所指的數(shù)組中。
例如,若s所指字符串中的內(nèi)容為edB2A4Dsdg,其中字符A的ASCII碼值為奇數(shù),因此應(yīng)當(dāng)刪除;其中字符B的ASCII碼值為偶數(shù),但在數(shù)組中的下標(biāo)為偶數(shù),因此也應(yīng)當(dāng)刪除:而字符2的ASCII碼值為偶數(shù),所在數(shù)組中的下標(biāo)為奇數(shù),因此不應(yīng)當(dāng)刪除,其他依此類推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是d24。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語(yǔ)句。
試題程序:
#include<conio.h>
#include<stdio.h>
#include<string,h>
voidfun(char*s,chart[])
{
}
main()
{
chars[100],t[100];
clrscr();
printf("\nPleaseenterstringS:");
scanf("%s",s);
fun(s,t);
printf("\nTheresultis:%s\n",t);
}
33.已知學(xué)生的記錄由學(xué)號(hào)和學(xué)習(xí)成績(jī)構(gòu)成,N名學(xué)生的數(shù)據(jù)已存入a結(jié)構(gòu)體數(shù)組中。請(qǐng)編寫函數(shù)fun(),該函數(shù)的功能是;找出成績(jī)最高的學(xué)生記錄,通過形參返回主函數(shù)(規(guī)定只有一個(gè)最高分)。已給出函數(shù)的首部,請(qǐng)完成該函數(shù)。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語(yǔ)句。
試題程序:
#include<stdio.h>
#include<string.h>
#include<conio.h>
#defineN10
typedefstructss/*定義結(jié)構(gòu)體*/
{charnum[10];
ints;
}STU;
fun(STUa[],STU*s)
{
}
main()
{
STUa[N]={{"A01",81},{"A02",89},
{"A03",66},{"A04",87},{"A05",77},
{"A06",90},{"A07",79},{"A08",61},
{"A09",80},{"A10",71}},m;
inti;
clrscr();
printf("*****Theoriginaldata*****");
for(i=0;i<N;i++)
printf("No=%sMark=%d\n",a[i].hum,
a[i].s);
fun(a,&m);
printf("*****THERESULT*****\n");
printf("Thetop:%s,%d\n",m.num,m.s);
}
34.請(qǐng)編寫函數(shù)fun(),該函數(shù)的功能是:統(tǒng)計(jì)各年齡段的人數(shù)。N個(gè)年齡通過調(diào)用隨機(jī)函數(shù)獲得,并放在主函數(shù)的age數(shù)組中。要求函數(shù)把0至9歲年齡段的人數(shù)在d[0]中,把10至19歲年齡段的人數(shù)放在d[1]中,把20至29歲年齡段的人數(shù)放在d[2]中,依次類推,把100歲(含100)以上年齡的人數(shù)都放在d[10]中。結(jié)果在主函數(shù)中輸出。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語(yǔ)句。試題程序:#include<stdio.h>#defineN50#defineM11voidfun(int*a,int*b){}doublernd(){statict=29,c=217,m=1024,r=0;r=(r*t+c)%m;return((double)r/m);}main(){intage[N],i,d[M];for(i=0;i<N;i++)age[i]=(int)(i15*rnd());/*產(chǎn)生一個(gè)隨機(jī)的年齡數(shù)組*/printf("Theoriginaldata:\n");for(i=0;i<N;i++)printf((i+l)%10==07“%4d\n”;“%4d”,age[i]);/*每行輸出10個(gè)數(shù)*/printf(“\n\n”);fun(age,d);for(i=0;i<l0;i++)printf(“%4d---%4d:%4d\n”;,i*l0,i*10+9,d[i]);printf(“Over100;%4dkn”;,d[10]).;}
四、單選題(0題)35.
五、單選題(0題)36.有下列程序:
程序執(zhí)行后的輸出結(jié)果是()。A.3,7,3,7B.7,3,7,3C.3,7,7,3D.7,3,3,7
六、單選題(0題)37.用鄰接矩陣A表示有向圖G的存儲(chǔ)結(jié)構(gòu),則有向圖G中頂點(diǎn)i的入度為()。
A.第i行非0元素的個(gè)數(shù)之和B.第i列非0元素的個(gè)數(shù)之和C.第i行0元素的個(gè)數(shù)之和D.第i列0元素的個(gè)數(shù)之和
參考答案
1.A由順序、選擇(分支)、循環(huán)3種基本結(jié)構(gòu)構(gòu)成的程序可以解決所有問題,而不只是解決簡(jiǎn)單問題,所以A選項(xiàng)錯(cuò)誤。故本題答案為A選項(xiàng)。
2.C
3.D一個(gè)客戶可以在多家銀行辦理業(yè)務(wù),一家銀行也有多個(gè)客戶辦理業(yè)務(wù),因此,實(shí)體客戶和實(shí)體銀行之間的聯(lián)系是多對(duì)多。本題選擇D選項(xiàng)。
4.A解析:本題考查C語(yǔ)言的綜合基礎(chǔ)知識(shí)。構(gòu)成C程序的基本單位是函數(shù),一個(gè)C程序總是從main函數(shù)開始執(zhí)行,而不論main函數(shù)在整個(gè)程序中的位置如何。C語(yǔ)言的函數(shù)定義都是互相平行、獨(dú)立的,在定義函數(shù)時(shí),一個(gè)函數(shù)內(nèi)不能定義另一個(gè)函數(shù)。C函數(shù)定義的一般格式有兩種:傳統(tǒng)格式和現(xiàn)代格式。傳統(tǒng)格式也稱K&R格式,是早期編譯系統(tǒng)使用的格式;現(xiàn)代格式又稱ANSI格式,是現(xiàn)代編譯系統(tǒng)使用的格式。
5.C
6.D
7.B所謂常量,是指在程序運(yùn)行的過程中,其值不能被改變的量。在C語(yǔ)言中,有整型常量、實(shí)型常量、字符常量和字符串常量等類型。選項(xiàng)A是字符串,需要使用雙引號(hào);選項(xiàng)C不是合法的常量形式;選項(xiàng)D為實(shí)型常量中的指數(shù)形式,但指數(shù)形式e(E)之前必須是數(shù)字,之后必須為整數(shù)。故本題答案為B選項(xiàng)。
8.C在計(jì)算(float)(a4-b)/2時(shí),由于通過強(qiáng)制類型轉(zhuǎn)換將(a+b)轉(zhuǎn)換成了float型,所以應(yīng)先將2轉(zhuǎn)換成float型,再進(jìn)行計(jì)算,得4.500000。在計(jì)算(int)x%(int)y時(shí),先將x和y通過強(qiáng)制類型轉(zhuǎn)換成int型,再進(jìn)行求余運(yùn)算,結(jié)果為1。又因?yàn)?.500000是float型,所以將1和它相加時(shí),先將1換成float型,再計(jì)算,得到5.500000。類型轉(zhuǎn)換的一般規(guī)則是:低級(jí)類型從高級(jí)類型,并進(jìn)行相應(yīng)的轉(zhuǎn)換。數(shù)據(jù)類型的級(jí)別由低到高的排序表示為:char→int→unsigned→log→float→double。
9.A
10.Adefault語(yǔ)句在switch語(yǔ)句中可以省略,所以B選項(xiàng)錯(cuò)誤;switch語(yǔ)句中并非每個(gè)case后都需要使用break語(yǔ)句,所以C選項(xiàng)錯(cuò)誤;break語(yǔ)句還可以用于for等循環(huán)結(jié)構(gòu)中,所以D選項(xiàng)錯(cuò)誤。故本題答案為A選項(xiàng)。
11.A解析:p[0]存放的是“BOOL\\0”的首地址;p[1]存放的是“OPk\\0”的首址等。在printf語(yǔ)句中輸出的*p[i]表示p[i]字符串中的第一個(gè)字符。在for循環(huán)中,i的初值為3,那么輸出的第—個(gè)字符為“S”,接著兩次i--,則輸出的值為*p[1],即字符“O”,所以本題的輸出為SO。
12.C
13.11解析:本題考查局部變量和全局變量的區(qū)別:局部變量是指作甩域在函數(shù)級(jí)和塊級(jí)的變量,全局變量是指作用域在程序級(jí)和文件級(jí)的變量。
14.(x>10&&x<100)||x<0
15.從定義到本源文件結(jié)束從定義到本源文件結(jié)束解析:C語(yǔ)言規(guī)定,宏名的有效范圍為從定義宏到本源程序結(jié)束。
16.1對(duì)多(或1:N)1對(duì)多(或1:N)
17.2626解析:a*=16+(b++)-(++c)等價(jià)于a*=a*(16+(b++)-(++c))=2*(16+(2-5)=26。b++是先使用b的值參加運(yùn)算,再對(duì)b加1;++c是先c加1,再使用c的值參加運(yùn)算。
18.24682,4,6,8解析:子函數(shù)fun()的功能是將數(shù)組a中的元素都自加一遍,然后仍然將結(jié)果存在原數(shù)組中,其實(shí)就是將數(shù)組a的每個(gè)元素都變?yōu)樵瓉淼?倍,然后輸出。在主程序中首先通過intfun()定義了子函數(shù)fun(),然后再調(diào)用fun()。
19.加工加工解析:數(shù)據(jù)流圖是從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動(dòng)變換過程。其中的每一個(gè)加工對(duì)應(yīng)一個(gè)處理模塊。
20.扇出扇出解析:在結(jié)構(gòu)圖中,調(diào)用一個(gè)給定模塊的模塊個(gè)數(shù)稱為扇入,一個(gè)模塊直接調(diào)用的其他模塊個(gè)數(shù)稱為扇出。
21.maxvalueis34
22.連續(xù)連續(xù)解析:順序存儲(chǔ)結(jié)構(gòu)具有兩個(gè)特點(diǎn):1)數(shù)據(jù)元素所占空間是連續(xù)的;2)數(shù)據(jù)元素在存儲(chǔ)空間中是按邏輯順序依次存放的。
23.malloc(11)malloc函數(shù)的格式是void*(或char*)malloc(size),size表示應(yīng)分配的存儲(chǔ)區(qū),此題要分配11字節(jié)的單元,把11代入即可。
24.->->解析:結(jié)構(gòu)變量abc有成員a,并有指針pabc指向結(jié)構(gòu)變量abc,則引用變量abc成員a的形式有abc.a和p_abc->a。
25.voidfun(char*schart[]){inti=0;for(;*s!='\0';s++)/*找出ASCII值為奇數(shù)的字符依次存入數(shù)組t中*/if(*s%2==1)t[i++]=*s;t[i]='\0';/*在字符串的末尾口上串結(jié)束符*/}voidfun(char*s,chart[])\r\n{\r\ninti=0;\r\nfor(;*s!='\\0';s++)/*找出ASCII值為奇數(shù)的字符依次存入數(shù)組t中*/\r\nif(*s%2==1)\r\nt[i++]=*s;\r\nt[i]='\\0';/*在字符串的末尾口上串結(jié)束符*/\r\n}解析:要?jiǎng)h除ASCH值為偶數(shù)的字符,也就是要留下ASCH值為奇數(shù)的字符,由于最終是要求求出剩余字符(BPASCⅡ值為奇數(shù))形成的新串,所以本題程序的算法是從原字符串的頭到尾掃描并找出ASCⅡ值為奇數(shù)的字符依次存入數(shù)組沖。此外,還要注意數(shù)組t的下標(biāo)變化和下標(biāo)的初值(初值必須為0,即i=0),t[i++]州的作用是先使用t[i]然后再使自增1。任何字符串的末尾都要有串結(jié)束符。這種算法在很多題中都要用到,學(xué)習(xí)者可以舉一反三地找一些其他相關(guān)習(xí)題練習(xí)一下。
26.fun(inta[][M]){intijmin=a[0][0];for(i=0;i<4;i++)for(j=0;j<M;j++)if(min>a[i][j])min=a[i][j];/*求出二維數(shù)組的最小值*/returnmin;}fun(inta[][M])\r\n{\r\n\u3000inti,j,min=a[0][0];\r\n\u3000for(i=0;i<4;i++)\r\nfor(j=0;j<M;j++)\r\nif(min>a[i][j])\r\nmin=a[i][j];/*求出二維數(shù)組的最小值*/\r\nreturnmin;\r\n}解析:此類求最大值或最小值的C語(yǔ)言問題,我們可以采用逐個(gè)比較的方式。要求數(shù)組中的所有元素走動(dòng)一遍,并從中找出最大、最小值,要注意一開始應(yīng)使min存放數(shù)組中的第—個(gè)元素的值??砂粗鹦胁檎乙部砂粗鹆胁檎业姆绞剑绢}采用的是逐行找的方式。即行下標(biāo)在外層循環(huán),列下標(biāo)在內(nèi)層循環(huán),因?yàn)樵谘h(huán)的嵌套中越在內(nèi)層循環(huán),循環(huán)變化就越快。
27.voidfun(int*aint*n){intij=0;for(i=1;i<=1000;i++)/*求1到1000之內(nèi)能被7或11整除、但不能同時(shí)被7和11整除的所有整數(shù)并放入數(shù)組a中*/if((i%7==0||i%11==0)&&i%77!=0)a[j++]=i;*n=j;/*傳回滿足條件的數(shù)的個(gè)數(shù)*/}voidfun(int*a,int*n)\r\n{\r\ninti,j=0;\r\nfor(i=1;i<=1000;i++)/*求1到1000之內(nèi)能被7或11整除、但不能同時(shí)被7和11整除的所有整數(shù),并放入數(shù)組a中*/\r\nif((i%7==0||i%11==0)&&i%77!=0)\r\na[j++]=i;\r\n*n=j;/*傳回滿足條件的數(shù)的個(gè)數(shù)*/\r\n}解析:注意本題題目應(yīng)是找出能被7或11整除但不能同時(shí)被7和11整除的所有整數(shù)。能同時(shí)被7和11整除的整數(shù)一定能被77整除,且不能被77整除的數(shù)不一定就是能被7或11整除的數(shù)。所以可得出程序中的if()。按運(yùn)算優(yōu)先級(jí)可知(i%7==0||i%11==0),注意,兩邊必須要有小括號(hào)。
28.floatfun(intn){intis1=0;floats=0.0;for(i=1;i<=n;i++){s1=s1+i;/*求每一項(xiàng)的分母*/s=s+1.0/s1;/*求多項(xiàng)式的值*/}returns;}floatfun(intn)\r\n{\r\ninti,s1=0;\r\nfloats=0.0;\r\nfor(i=1;i<=n;i++)\r\n{s1=s1+i;/*求每一項(xiàng)的分母*/\r\ns=s+1.0/s1;/*求多項(xiàng)式的值*/\r\n}\r\nreturns;\r\n}解析:本題中用s1來表示式中每一項(xiàng)的分母,而每一項(xiàng)的分母都是其前一項(xiàng)分母加項(xiàng)數(shù)。注意由于s1定義成一個(gè)整型,所以在s=s+1.0/s1中不能把1.0寫成1。
29.
解析:該程序功能是將一個(gè)數(shù)字字符串轉(zhuǎn)換為一個(gè)整數(shù)。其中,解題思路是將每位數(shù)字字符串的ASCII碼減去48(字符“0”的ASCII碼值),變成數(shù)字0~9。然后再不斷進(jìn)行高位乘以10加低位的運(yùn)算,或者反過來從低位向高位求,即不斷進(jìn)行低位加高位乘以10的運(yùn)算。
30.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語(yǔ)言的學(xué)習(xí)中我們知道,只要將小寫字母減去32則轉(zhuǎn)成大寫字母,將大寫字母加上32則轉(zhuǎn)成小寫字母。該程序是用if語(yǔ)句實(shí)現(xiàn)該功能轉(zhuǎn)化的。
31.
解析:該程序功能是把分?jǐn)?shù)最高的學(xué)生數(shù)據(jù)放在h所指的數(shù)組中。本題是關(guān)于求解結(jié)構(gòu)體中某些成員的最大值,首先將第一個(gè)值設(shè)定為最大值,并在循環(huán)中將其他所有值與該值進(jìn)行比較,求得最大值。然后將最大值與所有值進(jìn)行比較,求得所有的最大值。
32.voidfun(char*schart[]){intij=0;for(i=0;s[i]!='\0';i++)if(i%2!=0&&s[i]%2==0)/*將s所指字符串下標(biāo)為奇數(shù)同時(shí)ASCII值為偶數(shù)的字符放入數(shù)組t中*/t[j++]=s[i];t[j]='\0';/*在字符串最后加上結(jié)束標(biāo)志位*/}voidfun(char*s,chart[])\r\n{\r\ninti,j=0;\r\nfor(i=0;s[i]!='\\0';i++)\r\nif(i%2!=0&&s[i]%2==0)/*將s所指字符串下標(biāo)為奇數(shù)同時(shí)ASCII值為偶數(shù)的字符放入數(shù)組t中*/\r\nt[j++]=s[i];\r\nt[j]='\\0';/*在字符串最后加上結(jié)束標(biāo)志位*/\r\n}解析:本題要求除了下標(biāo)為奇數(shù)同時(shí)ASCII值為偶數(shù)的字符之外,其他字符都刪除。即題目要求留下下標(biāo)為奇數(shù)同時(shí)ASCII值為偶數(shù)的字符。C語(yǔ)言中并沒有直接刪除字符的算法,請(qǐng)大家在做題的時(shí)候注意。
33.fun(STUa[]STU*s)\r\n{\r\ninti;\r\n*s=a[0];\r\nfor(i=0;i<N;i++)/*找出成績(jī)最高的學(xué)生記錄*/\r\nif(s->s<a[i].s)\r\n*s==a[i];\r\n}fun(STUa[],STU*s)\r\n{\r\ninti;\r\n*s=a[0];\r\nfor(i=0;i<N;i++)/*找出成績(jī)最高的學(xué)生記錄*/\r\nif(s->s<a[i].s)\r\n*s==a[i];\r\n}解析:本題的流程是這樣的,先使s指向第1個(gè)學(xué)生,我們的題干目的是找出分?jǐn)?shù)最高的學(xué)生,所以if語(yǔ)句的條件是s->s<a[i].s。此外,在做本題時(shí),我們應(yīng)該熟練掌握“指向運(yùn)算符”和“成員運(yùn)算符”的相關(guān)知識(shí)。題中“s->s”也可換成“(*s).s”。
34.voidfun(int*aint*b){intij;for(j=0;j<M;j++)b[j]=0;/*數(shù)組b初始化為0*/for(i=0;i<N;i++)if(a[i]>=100)b[10]++;/*如果年齡大于等于100b[10]自增1*/elseb[a[i]/10]++;/*如果年齡小于100則將其分別統(tǒng)計(jì)到b[a[i]/10]中*/}voidfun(int*aint*b){intij;for(j=0;j<M;j++)b[j]=0;/*數(shù)組b初始化為0*/for(i=0;i<N;i++)if(a[i]>=100)b[10]++;/*如果年齡大于等于100b[10]自增1*/elseb[a[i]/10]++;/*如果年齡小于100則將其分別統(tǒng)計(jì)到b[a[i]/10]中*/\r\n}voidfun(int*a,int*b){inti,j;for(j=0;j<M;j++)b[j]=0;/*數(shù)組b初始化為0*/for(i=0;i<N;i++)if(a[i]>=100)b[10]++;/*如果年齡大于等于100,b[10]自增1*/elseb[a[i]/10]++;/*如果年齡小于100,則將其分別統(tǒng)計(jì)到b[a[i]/10]中*/\r\n}
35.C
36.C程序定義兩個(gè)整型變量i、j,初值為3,7。另外,定義兩個(gè)整型指針變量p、q,其中p指向i,q指向j。將i、j的地址傳給swap函數(shù)。在swap函數(shù)中,a指向i,b指向j。通過臨時(shí)變量t交換a和b指向的值,此時(shí)a指向的實(shí)參i、b指向的實(shí)參j的值發(fā)生了交換。即a指向i的值為7,b指向j的值為3;再通過臨時(shí)變量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選項(xiàng)。
37.B2021-2022學(xué)年安徽省淮北市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、單選題(12題)1.以下敘述中錯(cuò)誤的是()。
A.由3種基本結(jié)構(gòu)構(gòu)成的程序只能解決簡(jiǎn)單問題
B.結(jié)構(gòu)化程序由順序、分支、循環(huán)3種基本結(jié)構(gòu)組成
C.C語(yǔ)言是一種結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言
D.結(jié)構(gòu)化程序設(shè)計(jì)提倡模塊化的設(shè)計(jì)方法
2.
3.在銀行業(yè)務(wù)中,實(shí)體客戶和實(shí)體銀行之間的聯(lián)系是()。
A.—對(duì)一B.—對(duì)多C.多對(duì)一D.多對(duì)多
4.以下敘述中正確的是()。
A.構(gòu)成C程序的基本單位是函數(shù)
B.可以在一個(gè)函數(shù)中定義另一個(gè)函數(shù)
C.main函數(shù)必須放在其他函數(shù)之前
D.C函數(shù)定義的格式是K&R格式
5.設(shè)s1="Good",s2="",s3="Bye",則s1、s2和s3連接后的結(jié)果是()。
A.GoodB.GoodByeC.GoodByeD.Bye
6.
7.以下選項(xiàng)中合法的C語(yǔ)言常量是()。
A.‘C-STR’B.2014.1C.”\1.0D.2EK
8.若有定義:“inta=4,b=5;floatx=3.4,y=2.1;”,則下列表達(dá)式的值為()。(float)(a+b)/2+(int)x%(int)y;
A.5.5B.55C.5.500000D.55.00000
9.按照標(biāo)識(shí)符的要求,()符號(hào)不能組成標(biāo)識(shí)符。A.連接符B.下劃線C.大小寫字母D.數(shù)字字符
10.下列敘述中正確的是()。
A.在switch語(yǔ)句中不一定使用break語(yǔ)句
B.在switch語(yǔ)句中必須使用default語(yǔ)句
C.break語(yǔ)句必須與switch語(yǔ)句中的case配對(duì)使用
D.break語(yǔ)句只能用于switch語(yǔ)句
11.下面程序的輸出結(jié)果是______。#inc1ude<stdio.h>main(){char*p[]={"BOOL","OPK","H","SP"};inti;for(i=3;i>=0;i-,i-)prinf("%c",*p[i]);print("\n")}
A.SOB.SPC.SPOPKD.SHOB
12.C語(yǔ)言中的變量名只能由字母,數(shù)字和下劃線三種字符組成,且第一個(gè)字符()。
A.必須為字母B.必須為下劃線C.必須為字母或下劃線D.可以是字母,數(shù)字或下劃線中的任意一種
二、2.填空題(12題)13.下面程序輸出的結(jié)果是()。intm=17;intfun(intx,inty){intm=3;return(x*y-m);}main(){inta=5,b=7;printf("%d\n”,fun(a,B)/m);}
14.表示條件;10<x<100或x<0的C語(yǔ)言表達(dá)式是【】。
15.#define命令出現(xiàn)在程序中函數(shù)的外面,宏名的有效范圍為______。
16.一個(gè)項(xiàng)目具有一個(gè)項(xiàng)目主管,一個(gè)項(xiàng)目主管可管理多個(gè)項(xiàng)目,則實(shí)體“項(xiàng)目主管”與實(shí)體“項(xiàng)目”的聯(lián)系屬于______的聯(lián)系。
17.以下程序段的輸出結(jié)果是【】。
main()
{inta=2,b=2,c=4;
a*=16+(b++)-(++C);
printf("%d",a);
}
18.下列程序的運(yùn)行結(jié)果是______。
#include<stdio.h>
main()
{intfun();
fun();
}
fun()
{staticinta[4]={1,2,3,4};
inti;
for(i=0;i<4;i++)a[i]+=a[i];
for(i=0;i<4;i++)printf("%d,",a[i]);
printf"\n");
}
19.在結(jié)構(gòu)化設(shè)計(jì)方法中,數(shù)據(jù)流圖表達(dá)了問題中的數(shù)據(jù)流與加工間的關(guān)系,并且每一個(gè)______實(shí)際上對(duì)應(yīng)一個(gè)處理模塊。
20.一個(gè)模塊直接調(diào)用的其他模塊的模塊個(gè)數(shù)稱為______。
21.下列程序的運(yùn)行結(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);
}
22.在數(shù)據(jù)結(jié)構(gòu)中,順序存儲(chǔ)結(jié)構(gòu)的數(shù)據(jù)元素所占的存儲(chǔ)空間是______的。
23.用以下語(yǔ)句調(diào)用庫(kù)函數(shù)malloc,使字符指針st指向具有11個(gè)字節(jié)的動(dòng)態(tài)存儲(chǔ)空間,請(qǐng)?zhí)羁铡t=(char*)【】;
24.設(shè)有定義:
struct{inta;floatb;charc;}abc;*p_abc=&abc;
則對(duì)結(jié)構(gòu)體成員a的引用方法可以是abc.a和p_abc【】a。
三、3.程序設(shè)計(jì)題(10題)25.請(qǐng)編寫函數(shù)fun(),該函數(shù)的功能是:將s所指字符串中ASCII值為偶數(shù)的字符刪除,串中剩余字符形成一個(gè)新串放在t所指的數(shù)組中。
例如,若s所指字符串中的內(nèi)容為ABCDEFGl2345,其中字符B的ASCⅡ碼值為偶數(shù)、…、字符2的ASCⅡ碼值為偶數(shù)、…,都應(yīng)當(dāng)刪除,其他依次類推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是ACEGl35。
注定:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語(yǔ)句。
試題程序;
#include<stdio.h>
#include<string.h>
#include<conio.h>
voidfun(char*s,chart[])
{
}
main()
{
chars[100],t[100];
clrscr();
printf(,\nPleaseenterstringS:");
scanf("%s",s);
fun(s,t);
printf("\nTheresultis:%s\n",t);
}
26.請(qǐng)編寫一個(gè)函數(shù)fun(),它的功能是:求出一個(gè)4×M整型二維數(shù)組中最小元素的值,并將此值返回調(diào)用函數(shù)。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,儀在函數(shù)fun的花括號(hào)中填入所編寫的若干語(yǔ)句。
試題程序:
#defineM4
#include<stdio.h>
fun(inta[])[M])
{
}
main()
{
intarr[4][M]={11,3,9,35,42,-4,24,32,6,48,-32,7,23,34,12,-7);
printf(“min=%d\n”,fun(arr));
}
27.請(qǐng)編寫函數(shù)fun(),它的功能是:求出1到1000之內(nèi)能被7或11整除、但不能同時(shí)被7和11整除的所有整數(shù)并將它們放在a所指的數(shù)組中,通過n返回這些數(shù)的個(gè)數(shù)。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語(yǔ)句。
試題程序:
#include<conio.h>
#include<stdio.h>
voidfun(int*a,int*n)
{
}
main()
{
intaa[1000],n,k;
clrscr();
fun(aa,&n);
for(k=0;kif((k+1)%10==0)
{printf("%5d",aa[k]);
printf("\n");}/*一行寫9個(gè)數(shù)*/
else
printf("%5d",aa[k]);
}
28.編寫函數(shù)fun(),函數(shù)的功能是:根據(jù)以下公式計(jì)算s,計(jì)算結(jié)果作為函數(shù)值返回;n通過形參傳入。
S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n)
例如:若n的值為11時(shí),函數(shù)的值為1.833333。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語(yǔ)句。
試題程序:
#include<conio.h>
#include<stdio.h>
#include<string.h>
floatfun(intn)
{
}
main()
{
intn;
floats;
clrscr();
printf("\nPleaseenterN:");
scanf("%d",&n);
s=fun(n);
printf("Theresultis:%f\n",s);
}
29.請(qǐng)編寫一個(gè)函數(shù)fun,它的功能是:將一個(gè)數(shù)字字符串轉(zhuǎn)換為一個(gè)整數(shù)(不得調(diào)用C語(yǔ)言提供的將字符串轉(zhuǎn)換為整數(shù)的函數(shù))。例如,若輸入字符串“-1234”,則函數(shù)把它轉(zhuǎn)換為整數(shù)值-1234。
注意:部分源程序存在文件PROGl.C文件中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語(yǔ)句。
30.請(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)中填入所編寫的若干語(yǔ)句。
試題程序:
#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);
}
31.學(xué)生的記錄由學(xué)號(hào)和成績(jī)組成,N名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組s中,請(qǐng)編寫函數(shù)fun,它的功能是:把分?jǐn)?shù)最高的學(xué)生數(shù)據(jù)放在h所指的數(shù)組中,注意:分?jǐn)?shù)最高的學(xué)生可能不止一個(gè),函數(shù)返回分?jǐn)?shù)最高的學(xué)生的人數(shù)。
注意:部分源程序在文件PROGl.C中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語(yǔ)句。
32.請(qǐng)編寫函數(shù)fun(),其功能是:將s所指字符串中除了下標(biāo)為奇數(shù)、同時(shí)ASCII值為偶數(shù)的字符外,其余的全部刪除,串中剩余字符所形成的一個(gè)新串放在t所指的數(shù)組中。
例如,若s所指字符串中的內(nèi)容為edB2A4Dsdg,其中字符A的ASCII碼值為奇數(shù),因此應(yīng)當(dāng)刪除;其中字符B的ASCII碼值為偶數(shù),但在數(shù)組中的下標(biāo)為偶數(shù),因此也應(yīng)當(dāng)刪除:而字符2的ASCII碼值為偶數(shù),所在數(shù)組中的下標(biāo)為奇數(shù),因此不應(yīng)當(dāng)刪除,其他依此類推。最后t所指的數(shù)組中的內(nèi)容應(yīng)是d24。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語(yǔ)句。
試題程序:
#include<conio.h>
#include<stdio.h>
#include<string,h>
voidfun(char*s,chart[])
{
}
main()
{
chars[100],t[100];
clrscr();
printf("\nPleaseenterstringS:");
scanf("%s",s);
fun(s,t);
printf("\nTheresultis:%s\n",t);
}
33.已知學(xué)生的記錄由學(xué)號(hào)和學(xué)習(xí)成績(jī)構(gòu)成,N名學(xué)生的數(shù)據(jù)已存入a結(jié)構(gòu)體數(shù)組中。請(qǐng)編寫函數(shù)fun(),該函數(shù)的功能是;找出成績(jī)最高的學(xué)生記錄,通過形參返回主函數(shù)(規(guī)定只有一個(gè)最高分)。已給出函數(shù)的首部,請(qǐng)完成該函數(shù)。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語(yǔ)句。
試題程序:
#include<stdio.h>
#include<string.h>
#include<conio.h>
#defineN10
typedefstructss/*定義結(jié)構(gòu)體*/
{charnum[10];
ints;
}STU;
fun(STUa[],STU*s)
{
}
main()
{
STUa[N]={{"A01",81},{"A02",89},
{"A03",66},{"A04",87},{"A05",77},
{"A06",90},{"A07",79},{"A08",61},
{"A09",80},{"A10",71}},m;
inti;
clrscr();
printf("*****Theoriginaldata*****");
for(i=0;i<N;i++)
printf("No=%sMark=%d\n",a[i].hum,
a[i].s);
fun(a,&m);
printf("*****THERESULT*****\n");
printf("Thetop:%s,%d\n",m.num,m.s);
}
34.請(qǐng)編寫函數(shù)fun(),該函數(shù)的功能是:統(tǒng)計(jì)各年齡段的人數(shù)。N個(gè)年齡通過調(diào)用隨機(jī)函數(shù)獲得,并放在主函數(shù)的age數(shù)組中。要求函數(shù)把0至9歲年齡段的人數(shù)在d[0]中,把10至19歲年齡段的人數(shù)放在d[1]中,把20至29歲年齡段的人數(shù)放在d[2]中,依次類推,把100歲(含100)以上年齡的人數(shù)都放在d[10]中。結(jié)果在主函數(shù)中輸出。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語(yǔ)句。試題程序:#include<stdio.h>#defineN50#defineM11voidfun(int*a,int*b){}doublernd(){statict=29,c=217,m=1024,r=0;r=(r*t+c)%m;return((double)r/m);}main(){intage[N],i,d[M];for(i=0;i<N;i++)age[i]=(int)(i15*rnd());/*產(chǎn)生一個(gè)隨機(jī)的年齡數(shù)組*/printf("Theoriginaldata:\n");for(i=0;i<N;i++)printf((i+l)%10==07“%4d\n”;“%4d”,age[i]);/*每行輸出10個(gè)數(shù)*/printf(“\n\n”);fun(age,d);for(i=0;i<l0;i++)printf(“%4d---%4d:%4d\n”;,i*l0,i*10+9,d[i]);printf(“Over100;%4dkn”;,d[10]).;}
四、單選題(0題)35.
五、單選題(0題)36.有下列程序:
程序執(zhí)行后的輸出結(jié)果是()。A.3,7,3,7B.7,3,7,3C.3,7,7,3D.7,3,3,7
六、單選題(0題)37.用鄰接矩陣A表示有向圖G的存儲(chǔ)結(jié)構(gòu),則有向圖G中頂點(diǎn)i的入度為()。
A.第i行非0元素的個(gè)數(shù)之和B.第i列非0元素的個(gè)數(shù)之和C.第i行0元素的個(gè)數(shù)之和D.第i列0元素的個(gè)數(shù)之和
參考答案
1.A由順序、選擇(分支)、循環(huán)3種基本結(jié)構(gòu)構(gòu)成的程序可以解決所有問題,而不只是解決簡(jiǎn)單問題,所以A選項(xiàng)錯(cuò)誤。故本題答案為A選項(xiàng)。
2.C
3.D一個(gè)客戶可以在多家銀行辦理業(yè)務(wù),一家銀行也有多個(gè)客戶辦理業(yè)務(wù),因此,實(shí)體客戶和實(shí)體銀行之間的聯(lián)系是多對(duì)多。本題選擇D選項(xiàng)。
4.A解析:本題考查C語(yǔ)言的綜合基礎(chǔ)知識(shí)。構(gòu)成C程序的基本單位是函數(shù),一個(gè)C程序總是從main函數(shù)開始執(zhí)行,而不論main函數(shù)在整個(gè)程序中的位置如何。C語(yǔ)言的函數(shù)定義都是互相平行、獨(dú)立的,在定義函數(shù)時(shí),一個(gè)函數(shù)內(nèi)不能定義另一個(gè)函數(shù)。C函數(shù)定義的一般格式有兩種:傳統(tǒng)格式和現(xiàn)代格式。傳統(tǒng)格式也稱K&R格式,是早期編譯系統(tǒng)使用的格式;現(xiàn)代格式又稱ANSI格式,是現(xiàn)代編譯系統(tǒng)使用的格式。
5.C
6.D
7.B所謂常量,是指在程序運(yùn)行的過程中,其值不能被改變的量。在C語(yǔ)言中,有整型常量、實(shí)型常量、字符常量和字符串常量等類型。選項(xiàng)A是字符串,需要使用雙引號(hào);選項(xiàng)C不是合法的常量形式;選項(xiàng)D為實(shí)型常量中的指數(shù)形式,但指數(shù)形式e(E)之前必須是數(shù)字,之后必須為整數(shù)。故本題答案為B選項(xiàng)。
8.C在計(jì)算(float)(a4-b)/2時(shí),由于通過強(qiáng)制類型轉(zhuǎn)換將(a+b)轉(zhuǎn)換成了float型,所以應(yīng)先將2轉(zhuǎn)換成float型,再進(jìn)行計(jì)算,得4.500000。在計(jì)算(int)x%(int)y時(shí),先將x和y通過強(qiáng)制類型轉(zhuǎn)換成int型,再進(jìn)行求余運(yùn)算,結(jié)果為1。又因?yàn)?.500000是float型,所以將1和它相加時(shí),先將1換成float型,再計(jì)算,得到5.500000。類型轉(zhuǎn)換的一般規(guī)則是:低級(jí)類型從高級(jí)類型,并進(jìn)行相應(yīng)的轉(zhuǎn)換。數(shù)據(jù)類型的級(jí)別由低到高的排序表示為:char→int→unsigned→log→float→double。
9.A
10.Adefault語(yǔ)句在switch語(yǔ)句中可以省略,所以B選項(xiàng)錯(cuò)誤;switch語(yǔ)句中并非每個(gè)case后都需要使用break語(yǔ)句,所以C選項(xiàng)錯(cuò)誤;break語(yǔ)句還可以用于for等循環(huán)結(jié)構(gòu)中,所以D選項(xiàng)錯(cuò)誤。故本題答案為A選項(xiàng)。
11.A解析:p[0]存放的是“BOOL\\0”的首地址;p[1]存放的是“OPk\\0”的首址等。在printf語(yǔ)句中輸出的*p[i]表示p[i]字符串中的第一個(gè)字符。在for循環(huán)中,i的初值為3,那么輸出的第—個(gè)字符為“S”,接著兩次i--,則輸出的值為*p[1],即字符“O”,所以本題的輸出為SO。
12.C
13.11解析:本題考查局部變量和全局變量的區(qū)別:局部變量是指作甩域在函數(shù)級(jí)和塊級(jí)的變量,全局變量是指作用域在程序級(jí)和文件級(jí)的變量。
14.(x>10&&x<100)||x<0
15.從定義到本源文件結(jié)束從定義到本源文件結(jié)束解析:C語(yǔ)言規(guī)定,宏名的有效范圍為從定義宏到本源程序結(jié)束。
16.1對(duì)多(或1:N)1對(duì)多(或1:N)
17.2626解析:a*=16+(b++)-(++c)等價(jià)于a*=a*(16+(b++)-(++c))=2*(16+(2-5)=26。b++是先使用b的值參加運(yùn)算,再對(duì)b加1;++c是先c加1,再使用c的值參加運(yùn)算。
18.24682,4,6,8解析:子函數(shù)fun()的功能是將數(shù)組a中的元素都自加一遍,然后仍然將結(jié)果存在原數(shù)組中,其實(shí)就是將數(shù)組a的每個(gè)元素都變?yōu)樵瓉淼?倍,然后輸出。在主程序中首先通過intfun()定義了子函數(shù)fun(),然后再調(diào)用fun()。
19.加工加工解析:數(shù)據(jù)流圖是從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動(dòng)變換過程。其中的每一個(gè)加工對(duì)應(yīng)一個(gè)處理模塊。
20.扇出扇出解析:在結(jié)構(gòu)圖中,調(diào)用一個(gè)給定模塊的模塊個(gè)數(shù)稱為扇入,一個(gè)模塊直接調(diào)用的其他模塊個(gè)數(shù)稱為扇出。
21.maxvalueis34
22.連續(xù)連續(xù)解析:順序存儲(chǔ)結(jié)構(gòu)具有兩個(gè)特點(diǎn):1)數(shù)據(jù)元素所占空間是連續(xù)的;2)數(shù)據(jù)元素在存儲(chǔ)空間中是按邏輯順序依次存放的。
23.malloc(11)malloc函數(shù)的格式是void*(或char*)malloc(size),size表示應(yīng)分配的存儲(chǔ)區(qū),此題要分配11字節(jié)的單元,把11代入即可。
24.->->解析:結(jié)構(gòu)變量abc有成員a,并有指針pabc指向結(jié)構(gòu)變量abc,則引用變量abc成員a的形式有abc.a和p_abc->a。
25.voidfun(char*schart[]){inti=0;for(;*s!='\0';s++)/*找出ASCII值為奇數(shù)的字符依次存入數(shù)組t中*/if(*s%2==1)t[i++]=*s;t[i]='\0';/*在字符串的末尾口上串結(jié)束符*/}voidfun(char*s,chart[])\r\n{\r\ninti=0;\r\nfor(;*s!='\\0';s++)/*找出ASCII值為奇數(shù)的字符依次存入數(shù)組t中*/\r\nif(*s%2==1)\r\nt[i++]=*s;\r\nt[i]='\\0';/*在字符串的末尾口上串結(jié)束符*/\r\n}解析:要?jiǎng)h除ASCH值為偶數(shù)的字符,也就是要留下ASCH值為奇數(shù)的字符,由于最終是要求求出剩余字符(BPASCⅡ值為奇數(shù))形成的新串,所以本題程序的算法是從原字符串的頭到尾掃描并找出ASCⅡ值為奇數(shù)的字符依次存入數(shù)組沖。此外,還要注意數(shù)組t的下標(biāo)變化和下標(biāo)的初值(初值必須為0,即i=0),t[i++]州的作用是先使用t[i]然后再使自增1。任何字符串的末尾都要有串結(jié)束符。這種算法在很多題中都要用到,學(xué)習(xí)者可以舉一反三地找一些其他相關(guān)習(xí)題練習(xí)一下。
26.fun(inta[][M]){intijmin=a[0][0];for(i=0;i<4;i++)for(j=0;j<M;j++)if(min>a[i][j])min=a[i][j];/*求出二維數(shù)組的最小值*/returnmin;}fun(inta[][M])\r\n{\r\n\u3000inti,j,min=a[0][0];\r\n\u3000for(i=0;i<4;i++)\r\nfor(j=0;j<M;j++)\r\nif(min>a[i][j])\r\nmin=a[i][j];/*求出二維數(shù)組的最小值*/\r\nreturnmin;\r\n}解析:此類求最大值或最小值的C語(yǔ)言問題,我們可以采用逐個(gè)比較的方式。要求數(shù)組中的所有元素走動(dòng)一遍,并從中找出最大、最小值,要注意一開始應(yīng)使min存放數(shù)組中的第—個(gè)元素的值??砂粗鹦胁檎乙部砂粗鹆胁檎业姆绞剑绢}采用的是逐行找的方式。即行下標(biāo)在外層循環(huán),列下標(biāo)在內(nèi)層循環(huán),因?yàn)樵谘h(huán)的嵌套中越在內(nèi)層循環(huán),循環(huán)變化就越快。
27.voidfun(int*aint*n){intij=0;for(i=1;i<=1000;i++)/*求1到1000之內(nèi)能被7或11整除、但不能同時(shí)被7和11整除的所有整數(shù)并放入數(shù)組a中*/if((i%7==0||i%11==0)&&i%77!=0)a[j++]=i;*n=j;/*傳回滿足條件的數(shù)的個(gè)數(shù)*/}voidfun(int*a,int*n)\r\n{\r\ninti,j=0;\r\nfor(i=1;i<=1000;i++)/*求1到1000之內(nèi)能被7或11整除、但不能同時(shí)被7和11整除的所有整數(shù),并放入數(shù)組a中*/\r\nif((i%7==0||i%11==0)&&i%77!=0)\r\na[j++]=i;\r\n*n=j;/*傳回滿足條件的數(shù)的個(gè)數(shù)*/\r\n}解析:注意本題題目應(yīng)是找出能被7或11整除但不能同時(shí)被7和11整除的所有整數(shù)。能同時(shí)被7和11整除的整數(shù)一定能被77整除,且不能被77整除的數(shù)不一定就是能被7或11整除的數(shù)。所以可得出程序中的if()。按運(yùn)算優(yōu)先級(jí)可知(i%7==0||i%11==0),注意,兩邊必須要有小括號(hào)。
28.floatfun(intn){intis1=0;floats=0.0;for(i=1;i<=n;i++){s1=s1+i;/*求每一項(xiàng)的分母*/s=s+1.0/s1;/*求多項(xiàng)式的值*/}returns;}floatfun(intn)\r\n{\r\ninti,s1=0;\
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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í)中學(xué)招聘真題
- 2024年江西中煙工業(yè)公司考試真題試卷及答案
- 2024年甘肅工業(yè)和信息化廳廳屬事業(yè)單位地質(zhì)測(cè)繪類專業(yè)招聘考試真題
- 磷流失預(yù)測(cè)模型-洞察及研究
- 記賬實(shí)操-狩獵行業(yè)的賬務(wù)處理分錄示例
- 四川省廣安華鎣市第一中學(xué)2025屆英語(yǔ)八年級(jí)第二學(xué)期期末達(dá)標(biāo)檢測(cè)試題含答案
- 2025年安徽省中考數(shù)學(xué)試題含答案
- 稅務(wù)社保費(fèi)課件
- 糖尿病與冠心病護(hù)理講課講課件
- 南師大固體廢棄物處理教案05固體廢棄物的堆肥技術(shù)
- 學(xué)前幼兒園-《快樂的小鼴鼠》教學(xué)課件設(shè)計(jì)
- 3停止間轉(zhuǎn)法教案
- 2022-2023學(xué)年重慶市合川市三下數(shù)學(xué)期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)模擬試題含解析
- 文創(chuàng)園物業(yè)管理方案
- 全過程造價(jià)咨詢服務(wù)實(shí)施方案
- 初二生地會(huì)考復(fù)習(xí)資料全
- 里氏硬度法檢測(cè)鋼材強(qiáng)度范圍記錄表、鋼材里氏硬度與抗拉強(qiáng)度范圍換算表
- 四川省宜賓市翠屏區(qū)中學(xué)2022-2023學(xué)年數(shù)學(xué)八年級(jí)第二學(xué)期期末檢測(cè)試題含解析
- 2020-2021成都石室聯(lián)合中學(xué)蜀華分校小學(xué)數(shù)學(xué)小升初模擬試卷附答案
- 某冶金機(jī)械廠供配電系統(tǒng)設(shè)計(jì)
- 《在中亞細(xì)亞草原上》賞析 課件
評(píng)論
0/150
提交評(píng)論