版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2023年寧夏回族自治區(qū)銀川市全國計算機等級考試C語言程序設(shè)計測試卷(含答案)學(xué)校:________班級:________姓名:________考號:________
一、2.填空題(10題)1.存儲300個16×16點陣的漢字信息需要【】字節(jié)。
2.下列語句的輸出結(jié)果是______。
chars[20]="aaaa",*sp=s;
puts(strcat(sp,"AAAAA"));
3.當執(zhí)行以下程序時,輸入1234567890<回車>,則其中while循環(huán)體將執(zhí)行()次。
#include<stdio.h>
main()
{charch;
while((ch=getchar())=='0')printf("#");
}
4.以下程序的功能是:利用指針向三個整型變量,并通過指針運算找出三個數(shù)中最大值,輸出到屏幕上。請?zhí)羁?/p>
main()
{intx,y,z,max,*px,*py,*pz,*pmax;
scanf("%d%d%d",&x,&y,&z);
px=&x;py=&y;pz=&z;pmax=&max;
if(*pmax<*py)*pmax=*py;
if(*pmax<*pz)*pmax二*pz;
printf("max=%d\n",max);}
5.在程序設(shè)計階段應(yīng)該采取【】和逐步求精的方法,把一個模塊的功能逐步分解,細化為一系列具體的步驟,進而用某種程序設(shè)計語言寫成程序。
6.按"先進后出"原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是【】。
7.若a的值為1,則表達式!a‖++a的值是______。
8.設(shè)x、y、z均為int型變量,請寫出描述“x或y中至少有一個小于z”的表達式______。
9.若有下列定義:inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;,則值為3的表達式為:______。
10.在長度為n的線性表中查找一個表中不存在的元素,需要的比較次數(shù)為【】。
二、單選題(10題)11.有以下程序:#include<stdio.h>intchange(int*data){*data=*data%2;return(*data)+1;}main(){intdata=12;change(&data);printf(“%d,”,data);data=change(&data);printf(“%d,”,data);}程序運行后的輸出結(jié)果是()。
A.0,0,B.1,2,C.12,13,D.0,1,
12.數(shù)據(jù)庫系統(tǒng)的核心是()。
A.數(shù)據(jù)模型B.數(shù)據(jù)庫管理系統(tǒng)C.數(shù)據(jù)庫D.數(shù)據(jù)庫管理員
13.直接選擇排序的時間復(fù)雜度為()。(n為元素個數(shù))
A.O(n)B.O(log2n)C.O(nlog2n)D.O(n2)
14.以下四個選項,不能看作一條語句的是()。
A.{;}B.a=0,b=0,c=0;C.if(a>0);D.if(b==0)m=1;n=2;
15.當一個函數(shù)無返回值時,定義它的函數(shù)類型應(yīng)是()。
A.voidB.intC.任意D.無
16.數(shù)字字符“2”的ASCII碼為十進制數(shù)50,數(shù)字字符“5”的ASCII碼為十進制數(shù)()
A.52B.55C.54D.53
17.有以下程序:#include<stdio.h>intf(intx);main(){intn=1,m;m=f(f(f(n)));printf(“%d\n”,m);}intf(intx){returnx*2;}程序的運行結(jié)果是()。
A.8B.2C.4D.1
18.有下列程序:
程序執(zhí)行后的輸出結(jié)果是()。
A.30B.35C.40D.32
19.關(guān)于數(shù)組和指針,以下說法錯誤的是()。
A.數(shù)組名本身就是一個指針,指向數(shù)組內(nèi)存的起始位置
B.既可以讀入數(shù)據(jù)到數(shù)組中,也可以讀入數(shù)據(jù)到未賦初值的指針中
C.可以將指針指向一個同類型的數(shù)組
D.指針可以指向同類型的數(shù)組中的任意一個元素
20.鏈表不具有的特點是A.A.不必事先估計存儲空間
B.可隨機訪問任一元素
C.插入和刪除不需要移動元素
D.所需空間與線性表長度成正比
三、程序設(shè)計題(10題)21.請編寫函數(shù)proc,其功能是:將str所指字符串中除下標為偶數(shù)、同時ASCIl碼值為奇數(shù)的字符外,其余的字符都刪除,串中剩余字符所形成的一個新串放在t所指的數(shù)組中。例如,若str所指字符串中的內(nèi)容為ABCDEFGl2345,其中字符B的ASCIl碼值為偶數(shù),所在元素的下標為奇數(shù),因此必須刪除;而字符A的ASCIl碼值為奇數(shù),所在數(shù)組中的下標為偶數(shù),因此不應(yīng)當刪除。依此類推,最后t所指的數(shù)組中的內(nèi)容應(yīng)是ACEG。
注意:部分源程序給出如下。
請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填人所寫的若干語句。
試題程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
voidproc(char*str,chart[])
{
}
voidmain
{
charstr[100],t[100];
system("CLS");
printf("\nPleaseenterstringstr:");
scanf("%S",str);
proc(str,t);
printf("\nTheresultiS:%s\n",t);
22.假定輸入的字符串只包含字母和“#”號,請編寫函數(shù)fun(),它的功能是:刪除字符串中所有的“#”號。在編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。例如,若字符串中的內(nèi)容為“##w#e1##come###”,刪除后,字符串中的內(nèi)容則應(yīng)當是“welcome”。請勿改動main()函數(shù)與其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入所編寫的若干語句。試題程序:
23.請編寫函數(shù)proc,其功能是:計算并輸出下列多項式值。
S=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-1/2n)
例如,若主函數(shù)從鍵盤給n輸入20后,則輸出為S=0.680803。
注意:部分源程序給出如下。
請勿改動main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號中填入所編寫的若干語句。
試題程序:
#includet:stdio.h>
doubleproc(intn)
{
}
voidmain
{
intn;
doubleslim;
printf("\nInputn:");
scanf("%d",&n);
sum=proc(n)。
printf("\ns=%f\n",sum);
}
24.M名學(xué)生的成績已在主函數(shù)中放入一個帶頭結(jié)點的鏈表結(jié)構(gòu)中,h指向鏈表的帶頭結(jié)點。請編寫函數(shù)proc(),它的功能是:找出學(xué)生的最高分,由函數(shù)值返回。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:
25.假定輸入的字符串中只包含字母和*號。請編寫函數(shù)proc(),它的功能是:將字符串中的前導(dǎo)*號全部刪除,中間和后面的*號不刪除。例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容則應(yīng)當是a*bc*def*g****。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。試題程序:
26.請編寫函數(shù)fun,其功能是:找出一維整型數(shù)組元素中最大的值所在的下標,并通過形參傳回。數(shù)組元素中的值已在主函數(shù)中賦予。
主函數(shù)中x是數(shù)組名,n是x中的數(shù)據(jù)個數(shù),max存放最大值。index存放最大值所在元素的下標。
注意:部分源程序給出如下。
請勿改動主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號中填入你編寫的若干語句。
試題程序:
27.請編一個函數(shù)intfun(inta),它的功能是:判斷a是否是素數(shù),若a是素數(shù),返回1;若不是素數(shù),返回0。A的值由主函數(shù)從鍵盤讀入。
28.請編寫一個函數(shù)proc(),它的功能是將一個數(shù)字字符串轉(zhuǎn)換為一個整數(shù)(不得調(diào)用C語言提供的將字符串轉(zhuǎn)為整數(shù)的函數(shù))。
例如,若輸入字符串“1234”,則函數(shù)把它轉(zhuǎn)換為整數(shù)值1234。
注意:部分源程序給出如下。
請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號中填入所編寫的若干語句。
試題程序:
29.使用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”); }}
30.有一個一維數(shù)組,內(nèi)放10個學(xué)生成績,寫一個函數(shù),求出平均分。
四、2.程序修改題(10題)31.給定程序中函數(shù)fun的功能是:將一個由八進制數(shù)字字符組成的字符串轉(zhuǎn)換為與其值相等的十進制整數(shù)。規(guī)定輸入的字符串最多只能包含5位八進制數(shù)字字符。
例如,若輸入:77777,則輸出將是:32767。
請改正程序中的錯誤,使它能得到正確結(jié)果。
[注意]不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
[試題源程序]
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
intfun(char*p)
{
intn;
/**********found**********/
n=*p-'o';
p++;
while(*p!=0){
/**********found**********/
n=n*8+*p-'o';
p++;
}
returnn;
}
main()
{
chars[6];inti;intn;
printf("Enterastring(Ocataldigits):");
gets(s);
if(strlen(s)>5)
{
printf("Error:Stringtoolonger!\n\n");
exit(0);
}
for(i=0;s[i];i++)
if(s[i]<'0'||s[i]>'7')
{
printf("Error:%cnotisocataldigits!\n\n",s[i]);
exit(0);
}
printf("Theoriginalstring:");
puts(s);
n=fun(s);
printf("\n%siSconveredtointegernumber:%d\n\n",s,n);
}
32.給定程序MODll.C中函數(shù)fun的功能是:從整數(shù)1到55之間,選出能被3整除、且有一位上的數(shù)是5的那些數(shù),并把這些數(shù)放在b所指的數(shù)組中,這些數(shù)的個數(shù)作為函數(shù)值返回。規(guī)定,函數(shù)中a1放個位數(shù),a2放十位數(shù)。
請改正程序中的錯誤,使它能得出正確結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
33.下列給定程序中,函數(shù)fun()的功能是:給定n個實數(shù),輸出平均值,并統(tǒng)計平均值以上(含平均值)的實數(shù)個數(shù)。例如,n=8時,輸入193.199,195.673,195.757,196.051,196.092,196.596,196.579,196.763,所得平均值為195.838745,在平均值以上的實數(shù)個數(shù)應(yīng)為5。
請改正程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<conio.h>
#include<stdio.h>
intfun(floatx[],intn)
/***************found*******************/
ihtj,c=0;floatxa=0.0;
for(j=0;j<n;.j++)
xa+=x[j]/n;
printf("ave=%f\n",xa);
for(j=0;j<n;j++)
if(x[j]>=xa)
c++;
returnc;
}
main()
{floatx[l00]={193.199,195.673,195.757,
196.051,196.092,196.596,
196.579,196.763};
clrscr();
printf("%d\n",fun(x,8));
}
34.已知一個數(shù)列從第0項開始的前三項分別為0,0,1,以后的各項都是其相鄰的前三項之和。給定程序MODll.C中函數(shù)fun的功能是:計算并輸出該數(shù)列前n項的平方根之和。n的值通過形參傳入。
例如,當n=10時,程序的輸出結(jié)果應(yīng)為:23.197745。
請改正程序中的錯誤,使程序能輸出正確的結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
35.給定程序MODll.C中函數(shù)fun的功能是:用下面的公式求π的近似值,直到最后一項的絕對值小于指定的數(shù)(參數(shù)num)為止:
例如,程序運行后,輸入0.0001,則程序輸出3.1414。
請改正程序中的錯誤,使它能輸出正確的結(jié)果。
注意:不要改動smain函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
36.給定程序MODII.C中函數(shù)fun的功能是:把主函數(shù)中輸入的3個數(shù),最大的放在a中,最小的放在c中,中間的放在b中。
例如,輸入的數(shù)為:551234,輸出結(jié)果應(yīng)當是:a=55.0,b=34.0,c=12.0。
請改正程序中的錯誤,使它能得出正確結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
37.下列給定程序中,函數(shù)fun()的功能是:傳入一個整數(shù)m,計算如下公式的值。
t=1/2-1/3-…-1/m
例如,若輸入5,則應(yīng)輸出-0.283333。
請改正程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<conio.h>
#include<stdio.h>
doublefun(intm)
{
doublet=l.0;
inti;
for(i=2;i<=m;i++)
/*************found**************/
t=l.0-1/i;
/*************found**************/
}
main()
{intm;
clrscr();
printf("\nPleaseenter1integernumbers
:In");
scanf("%d",&m);
printf("\n\nTheresultis%lfln",
fun(m));
}
38.下列給定程序中,函數(shù)fun()的功能是:對N名學(xué)生的學(xué)習(xí)成績,按從高到低的順序找出前叫m≤10)名學(xué)生來,并將這些學(xué)生數(shù)據(jù)存放在一個動態(tài)分配的連續(xù)存儲區(qū)中,此存儲區(qū)的首地址作為函數(shù)值返回。
請改正程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu).
試題程序:
#include<conio.h>
#include<string.h>
#include<stdio.h>
#include<alloc.h>
#defineN10
typedefstructss
{charnum[10];
ints;
}STU;
STU*fun{STUa[],intm)
{STUb[N],*t;
inti,j,k;
/*************found**************/
*t=calloc(m,slzeof(STU));
for(i=0;i<N;i++)b[i]=a[i];
for(k=0;k<m;k++)
{for(i=j=0;i<N;i++)
if(b[i].s>b[j].s)j=i;
/*************found**************/
t[k].num=b[j].num;
t[k].s=b[j]s;
b[j].s=0;
}
returnt;
}
outresult(STUa[],FILE*pf)
{inti;
for(i=0;i<N;i++)
fprintf(pf,"No=%sMark-%d\n",
a[i].num,a[i].s);
fprintf(pf,"\n\n");
}
main()
{STUa[N]={{"A01",81},{"A02",89},
{"A03",66},{"A04",87},{"A05",77},
{"A06",90},{"A07",79},{"A08",61},
{"A09",80},{"Al0",71}};
STU*pOrder;
inti,m;
clrscr();
printf("*****THERESULT*****\n");
outresult(a,stdout);
printf("\nGivethenumberofthestudents
whohavebetterscore:");
scanf("%d",&m);
while(m>10)
{printf("lnGivethenumberofthe
studentswhohavebetterscore:");
scanf("%d",%m);
pOrder=fun(a,m);
printf("*****THERESULT*****kn");
printf("Thetop:\n");
for(i=0;i<m;i++)
printf("%s%d\n",pOrder[i].num,
p0rder[i].s);
free(pOrder);
}
39.給定程序MODll.C的功能是:讀入一個英文文本行,將其中每個單詞的第一個字母改成大寫,然后輸出此文本行(這里的“單詞”是指由空格隔開的字符串)。
例如,若輸入:Iamastudenttotaketheexamination.,則應(yīng)輸出:IAmAStudentToTakeTheExamination.。
請改正程序中的錯誤,使程序能得出正確的結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
40.給定程序MODll.C中函數(shù)fun的功能是:求出以下分數(shù)序列的前n項之和。和值通過函數(shù)值返回到main函數(shù)。
例如,若n=5,則應(yīng)輸出:8.391667。
請改正程序中的錯誤,使它能計算出正確的結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
五、程序改錯題(2題)41.下列給定程序中,函數(shù)proc()的功能是逐個比較str1,str2兩個字符串對應(yīng)位置中的字符,把比ASCⅡ值大或相等的字符依次存放到str數(shù)組中,形成一個新的字符串。
例如,str1中的字符串為fshADfg,str2中的字符串為sdAEdi,則str中的字符串應(yīng)為sshEdig。
請修改程序中的錯誤,使它能得到正確結(jié)果。
注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
42.下列給定的程序中,函數(shù)proc的功能是:判斷字符ch是,與str所指字符串中的某個字符相同;若相同,則什么也不做,若不同,則將其插在串的最后。請修改程序中的錯誤,使它能得出正確的結(jié)果。
注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
//****found****
voidproc(charstr,charch)
{
while(*str&&*str!=ch)str++;
//****found****
if(*str==ch)
{str[0]=ch;
//****found****
str[1]=0:
}
}
voidmain
{
charstr[81],ch;
system("CLS");
printf("\nPleaseenterastring:");
gets(str);
printf("\nPleaseenterthecharacterto
search:");
ch=getchar;
proc(str,ch);
printf("\nTheresultis%s\n",str);
}六、操作題(2題)43.使用VC++打開考生文件夾下modi1中的解決方案。此解決方案的項目中包含一個源程序文件modi1.c。在此程序中,函數(shù)fun()的功能是求出s所指字符串中最后一次出現(xiàn)的t所指字符串的地址,并將此地址通過函數(shù)值返回,在主函數(shù)中輸出從此地址開始的字符串;若未找到,則函數(shù)值為NULL。例如,當字符串中的內(nèi)容為“abcdabfabcdx”,t中內(nèi)容為“ab”時,輸出結(jié)果應(yīng)是“abcdx”。當字符串中的內(nèi)容為“abcdabfabcdx”,t中內(nèi)容為“abd”時,則程序輸出未找到信息“Notfound!”。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>#include<string.h>char*fun(char*s,char*t){ char*p,*r,*a;/*********found*********/ a=Null; while(*s) { p=s;r=t; while(*r)/*********found*********/ if(r==p) {r++;p++;} elsebreak; if(*r=='\0')a=s; s++;} returna;}voidmain(){ chars[l00],t[100],*p; system(“CLS”); printf(“\nPleaseenterstrings:”); scanf(“%s”,s); printf(“\nPleaseentersubstringt:”); scanf(“%s”,t); p=fun(s,t); if(p) printf(“\nTheresultis:%s\n”,p); else printf(“\nNotfound!\n”);}
44.請補充main()函數(shù),該函數(shù)的功能是:從鍵盤輸入一個長整數(shù),如果這個數(shù)是負數(shù),則取它的絕對值,并顯示出來。例如,輸入:-123456,結(jié)果為:123456。注意:部分源程序給出如下。請勿改動main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在橫線上填入所編寫的若干表達式或語句。試題程序:
參考答案
1.800800解析:一個16x16點陣的字形碼需要16x16/8=32字節(jié)的存儲空間,所以300個漢字信息需要9600個字節(jié)。
2.aaaaAAAAAaaaaAAAAA解析:函數(shù)strcat(sp,'AAAAA')的作用是將字符中“AAAAA”連接到字符串sp的末尾,并自動覆蓋字符數(shù)組sp末尾的\'\\0\'。
3.00解析:“ch=getchat()”的功能是從終端讀入一個字符賦給變量ch,由于getchar()只能接收一個字符,所以輸入的字符1被賦給ch,即“'1'!='0'”,循環(huán)體不執(zhí)行,直接退出while循環(huán),所以循環(huán)體執(zhí)行的次數(shù)為0。
4.
5.自頂而下自頂而下
6.棧棧解析:考查考生對棧和隊列概念的掌握。按'先進后出'原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是棧;按'先進先出'原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是隊列。
7.11解析:邏輯運算中,非1即0,非0即1,!a=0,++a為邏輯1,所以0和1相或結(jié)果為1。
8.x<z‖y<zx<z‖y<z解析:本題考查邏輯運算符和邏輯表達式。x或y中至少有一個小于z,即x<z或y<z,是“或”的關(guān)系。
9.p+=2*(p++)p+=2,*(p++)解析:由題可知a[2]=3,因此只要使指針p指向a[3],然后再引用指針的值就可以了。
10.nn解析:在長度為n的線性表中查找一個表中不存在的元素,需要的比較次數(shù)為n。
11.Dchange函數(shù)接收一個整型指針data,然后將data指向的數(shù)對2求余,求余后的值重新賦給data指向的變量,最后將data指向的變量值加1后返回。注意,此處data指向的數(shù)對2求余會改變實參指針指向的值,但返回值并不影響data指向的值。程序第1次調(diào)用change函數(shù),傳入實參data的地址,將data的值修改為0(12%2=0),此時輸出data的值是0;再次調(diào)用change傳入data的地址,將data的值修改為0(0%2=0),然后將返回值1重新賦給主函數(shù)變量data,所以此時輸出data的值是1。綜上,程序輸出0,1,。故本題答案為D選項。
12.B解析:數(shù)據(jù)庫管理系統(tǒng)是數(shù)據(jù)庫系統(tǒng)的核心,是負責(zé)數(shù)據(jù)庫的建立、使用和維護的軟件。數(shù)據(jù)庫管理系統(tǒng)建立在操作系統(tǒng)之上,實施對數(shù)據(jù)庫的統(tǒng)一管理和控制。用戶使用的各種數(shù)據(jù)庫命令以及應(yīng)用程序的執(zhí)行,最終都必須通過數(shù)據(jù)庫管理系統(tǒng)。另外,數(shù)據(jù)庫管理系統(tǒng)還承擔(dān)著數(shù)據(jù)庫的安全保護工作,按照數(shù)據(jù)庫管理員所規(guī)定的要求,保證數(shù)據(jù)庫的完整性和安全性。
13.D
14.D解析:在if后面只能有一條語句,或一條復(fù)合語句,即用花括號將多條語句括起來。選項D)中沒有將兩條語句括起來,不能看成一條語句。
15.A
16.D
17.A第1次調(diào)用為m=f(f(f(1))),第2次調(diào)用為m=f(f(2)),第3次調(diào)用為m=f(4),即返回值為8。故本題答案為A選項。
18.A程序定義一個整型變量y和整型二維數(shù)組x,并對x賦初值。接著調(diào)用函數(shù)fun,在函數(shù)fun中,第1個for循環(huán)將數(shù)組a的第0列和第N-1列的所有元素累加到y(tǒng)中;第2個for循環(huán)將數(shù)組a的第0行的2、3和第N-1行的3、2累加到y(tǒng)中,再將y返回。所以fun函數(shù)的功能是將數(shù)組a的行列下標為0、N-1的所有元素累加起來,即將1,2,3,4,2,3,3,2,4,3,2,1累加,輸出30。本題答案為A選項。
19.BC語言中,數(shù)組名本身就是一個指針,指向數(shù)組內(nèi)存的起始位置,選項A正確;已經(jīng)定義的數(shù)組被分配了內(nèi)存空間,所以可以讀入數(shù)據(jù)到數(shù)組中,未賦初值的指針沒有分配內(nèi)存空間,不可以讀入數(shù)據(jù),選項B錯誤;可以將指針指向一個同類型的數(shù)組,選項C正確;指針指向一個數(shù)組后,可以通過移動指針,指向該數(shù)組中的任意一個元素,選項D正確。故本題答案為B選項。
20.B鏈表是一種特殊的線性表,鏈表的存儲結(jié)構(gòu)與順序存儲結(jié)構(gòu)不同,它的存儲區(qū)域可以是任意的存儲單元,對存儲系統(tǒng)中零碎的存儲部分具有更好的應(yīng)用,在給其分配存儲單元時,不必事先估計整個存儲單元的空間大小;由于鏈表的元素是通過指針域的指針相連的,用鏈表存儲數(shù)據(jù)時,對其進行插入和刪除操作時,不需要移動其他元素,只需改變其直接前驅(qū)指針域,使其指向該結(jié)點,并將該結(jié)點的指針域修改為指向其直接后繼結(jié)點即可。當然,不管是鏈表還是順序存儲,所需空間與線性表長度都成正比。在鏈式存儲的鏈表結(jié)構(gòu)中,由于后一結(jié)點數(shù)據(jù)被存儲在哪里,只有通過前一結(jié)點的指針域才知道,因此,訪問時只能是逐個訪問,而不能實現(xiàn)隨機訪問。
21.voidproc(char*str。chart[3])
\n{
\ninti,j=0;
\nfor(i=0;str[i]!=\\O;i++)//從數(shù)組的第一個元素開始,到其最后一個
\n{if(i%2==0str[i]%21=o)//下標為偶數(shù)、同時ASCIl碼值為奇數(shù)的字符
\nt[j++]=str[i];}//如果成立,則把它放到t數(shù)組中
\nt[i]=\\o;//字符串結(jié)束標志為\\0
\n}
\n【解析】題目中要求將字符串str中下標為偶數(shù),同時ASCIl碼值為奇數(shù)的字符放在數(shù)組t中。首先,需要檢查字符串str中下標為偶數(shù)的字符其ASCIl碼值是否為奇數(shù),將符合要求的字符放在數(shù)組t中。最后,為新的字符串數(shù)組添加結(jié)束符。
\n
22.
【解析】在while循環(huán)中,利用if判斷表達式中每一個字符是否為“#”,如果不是,將其復(fù)制到字符串,否則跳過,這就實現(xiàn)了函數(shù)的功能。
(1)首先利用工作指針指向字符串,當指針不指向串尾時,就對字符串進行循環(huán)判斷。
(2)在循環(huán)中利用if判斷表達式字符是否為“#”,如果不是,將其復(fù)制到字符串,否則跳過。
(3)所有字符處理完后,記得在新串s的末尾加上結(jié)束符“ˊ\0ˊ”。
23.\n\tdoubleproc(intn)
\n{
\ninti;
\ndoubles=0.0;//s為其和的變量
\nfor(i=1;i<=n;i+十)
\nS=s+(1.0/(2*i-1)-1.O/(2*i));//計算s
\n=(1-1/z)+(1/3-1/4)+…+(1/(2n-1)-1/
\n2n)
\nreturns;//最后把所得到的和返回到主函數(shù)中
\n}
\n【解析】由題目中所給表達式可知,多項式的值為n項表達式的和??梢岳胣次循環(huán)求出n項表達式的值,求和放在變量s中。最后將多項式的值返回到主函數(shù)當中。\n
24.
【解析】要得到學(xué)生的最高分,需要將每一個學(xué)生的成績進行比較。學(xué)生的成績存儲在鏈表中,其結(jié)束標志為最后一個結(jié)點的next指針即NULL。比較每一個學(xué)生的成績,將最高分返回給主函數(shù)。
25.
【解析】題目中要求將字符串中的前導(dǎo)*號全部刪除,首先將指針p移動到第一個不是*的字符,將指針p之后的字符放入原來的字符串中,并為新的字符串添加結(jié)束符。
26.
【解析】本題考查的是for循環(huán)和指針變量。通過for循環(huán)實現(xiàn)對數(shù)組的遍歷,形參iilax和d都是指針型變量,所以引用它們指向的變量時要進行指針運算。先有*max=a[0],在遍歷中如果遇到比max大的元素,則將a[i]賦值給max,下標i賦值給*d。循環(huán)語句用來遍歷數(shù)組元素,然后通過條件語句比較數(shù)組元素找到最大值。
27.\n#include”stdio.h”
\nintfun(inta)
\n{intI;
\nif(a==2)return1;I=2;
\nwhile((a%I)!=0I<=sqrt((float)a))
\nI++;
\nif(a%I==0)
\n{printf(“%disnotaprime!”,a);
\nreturn0;}
\nprintf(“%disaprime!”,a);
\nreturn1;}
\nmain
\n{intx;
\nprintf(“\\npleaseenteranumber:”);
\nscanf(“%d”,&x);
\nprintf(“%d\\n”,fun(x));}
\n
28.
【解析】要將數(shù)字字符串轉(zhuǎn)換為一個整數(shù),首先判斷該字符串的正負號。然后將數(shù)字字符轉(zhuǎn)換為相應(yīng)的數(shù)字,將各個數(shù)字合并為整數(shù)。最后將得到的整數(shù)乘以字符串中的符號。將最后的結(jié)果返回到主函數(shù)中。
29.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)控制矩陣的行下標,內(nèi)層循環(huán)控制矩陣的列下標。
30.\nfloataverage(floatarray[],intn)
\n{intI;
\nfloataver,sum=array[0];
\nfor(I=1;Isum=sum+array[I];
\naver=sum/n;
\nreturn(aver);}
\nmain
\n{floatave,score[10];
\nintI;
\nfor(I=0;I<10;I++)
\nscanf('%f',&score[I]);
\nave=average(score,10);
\nprintf('%f\\n',ave);}
\n
31.(1)錯誤:*p正確:*p(2)錯誤:'o';正確:'o';(1)錯誤:*p\r\n正確:*p\r\n(2)錯誤:'o';\r\n正確:'o';
32.(1)a2=k/10;(2)returni;(1)a2=k/10;(2)returni;解析:本題中函數(shù)的功能是從整數(shù)1到55之間,選出能被3整除且有一位上的數(shù)是5的數(shù)。其中,涉及整數(shù)個位的截取,以及判斷某范圍內(nèi)能被3整除的判斷條件表達式、循環(huán)。
33.錯誤:缺{正確:加{錯誤:缺{正確:加{解析:本題我們可以拆分成兩個簡單的c語言試題:
(1)求出n個數(shù)的平均值。
(2)將大于平均值的數(shù)字個數(shù)計算出來。可利用循環(huán)和條件選擇語句,對x數(shù)組進行遍歷,若某個值大于平均成績,則將該元素累加計入c中。我們先來摘清楚一個簡單的求10個整數(shù)平均值的例子。
#include'stdio.h'
voidmain()
{
inti,a[10],s=0;
floataver=0.0;
for(i=0;i<10;i++)
{
scanf('%d',&a[i]);
s=s+i;
}
aver=s/10.0;
printf('這十整數(shù)中的平均值為:%f',aver);
}
其實,n個整數(shù)求和也就是10個整數(shù)的拓展,沒什么難的!
34.(1)doublefun(intn)(2)returnsum;(1)doublefun(intn)(2)returnsum;解析:本題中函數(shù)的功能是計算并輸出該數(shù)列前n項的平方根之和sum。解題思路首先根據(jù)題干求得每一項的值,然后再計算數(shù)列前n項的平方根之和。
35.(1)while(fabs(t)>=num)(2)t=s/n;(1)while(fabs(t)>=num)(2)t=s/n;解析:本題中函數(shù)的功能是利用公式計算π的近似值,直到最后一項的絕對值小于指定的數(shù)。本題解題過程參照一般公式題型的求解過程。
36.(1)f1oatk;(2)if(*a<*c)(1)f1oatk;(2)if(*a<*c)解析:本題中函數(shù)的功能是把主函數(shù)中輸入的3個數(shù),最大的放在a中,最小的放在c中。對三個數(shù)進行兩兩比較,實現(xiàn)函數(shù)功能。
37.(1)錯誤:t=1.0-1/i;正確:t-=1.0/i;(2)錯誤:;正確:returnt;(1)錯誤:t=1.0-1/i;正確:t-=1.0/i;\r\n(2)錯誤:;正確:returnt;解析:解答類似題目的思路是我們依然先從數(shù)學(xué)思路著手,即理解數(shù)學(xué)上的規(guī)律,再分析C語言的流程,本題中分母依等差數(shù)列遞增,最好用循環(huán)語句解決。我們先從第1句1/2的表達式來看起:當i從2(必須從2開始)開始循環(huán)的時候,雖然t=1.0-1/i;和t-=1.0/i;的第1個值都是相同的,但隨著循環(huán)的累加,我們就能發(fā)現(xiàn)問題所在了!
38.(1)錯誤:*t=calloc(msizcof(STU));正確:t=calloc(msizeof(STU));(2)錯誤:t[k].n
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版第四編合同法合同擔(dān)保業(yè)務(wù)風(fēng)險防范與法律解讀3篇
- 2025年度緊急口譯響應(yīng)及協(xié)調(diào)服務(wù)合同3篇
- 噪音污染紅線管理辦法
- 采銅礦工程文明施工合同
- 石油天然氣行業(yè)人員信息管理規(guī)章
- 實驗室危險品使用與儲存規(guī)定
- 連鎖店管理錦囊員工培訓(xùn)
- 咖啡公司稅務(wù)管理要點
- 配送責(zé)任協(xié)議
- 辦公室緊急疏散援助計劃
- 特色農(nóng)產(chǎn)品超市方案
- 2024國有企業(yè)與民營企業(yè)之間的混合所有制改革合同
- 二次函數(shù)的幾何性質(zhì)(于特)(1)名師公開課獲獎?wù)n件百校聯(lián)賽一等獎?wù)n件
- GB/T 30595-2024建筑保溫用擠塑聚苯板(XPS)系統(tǒng)材料
- 2024年人教版八年級地理上冊期末考試卷(附答案)
- 醫(yī)學(xué)免疫學(xué)-醫(yī)學(xué)檢驗專業(yè)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 《稻草人》閱讀題及答案
- 獨立基礎(chǔ)土方開挖施工方案
- (建筑工程管理)常熟市建設(shè)工程施工圖審查工作
- 國家職業(yè)技術(shù)技能標準 X2-10-07-17 陶瓷產(chǎn)品設(shè)計師(試行)勞社廳發(fā)200633號
- 瑜伽基礎(chǔ)知識題庫單選題100道及答案解析
評論
0/150
提交評論