版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021年安徽省淮北市全國計(jì)算機(jī)等級(jí)考試C語言程序設(shè)計(jì)模擬考試(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、2.填空題(10題)1.類是一個(gè)支持集成的抽象數(shù)據(jù)類型,而對(duì)象是類的【】。
2.以下函數(shù)用來在w數(shù)組中插入x,w數(shù)組中的數(shù)已按由小到大的順序存放,n為數(shù)組中存放的數(shù)的個(gè)數(shù)。插入后數(shù)組中的個(gè)數(shù)仍然有序。請(qǐng)?zhí)羁?,使之完整?/p>
voidfun(char*w,charx,int*n)
{inti,p;
p=0;
w[*n]=x;
whiel(x>w[p])【】;
for(i=*n;i>p;i--)w[i]=【】;
w[p]=x;
++*n;
}
3.下列程序的運(yùn)行結(jié)果是______。
#include<stdio.h>
longfunc(intx)
{longp;
if(x==0||x==1)
return(1);
p=x*func(x-1);
return(p);
}
main()
{printf("%d\n",func(4));
}
4.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。
5.在數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)中,不僅需要存儲(chǔ)各數(shù)據(jù)元素的信息,還要存放各元素之間______的信息。
6.以下程序的功能是根據(jù)輸入的“y”(“Y”)與“n”(“N”),在屏幕上分別顯示出“ThisisYES.”與“ThisisNO.”。空白處需要填入的內(nèi)容是
#include<stdio.h>
voidYesNo(charch)
{switch(ch)
{case'y':
case'Y':printf("\nThisisYES.\n");
case'n':
case'N':Printf("\nThisisNO.\n");}}
main()
{charch;
printf("\nEnte
7.\13'在內(nèi)存中占1個(gè)字節(jié),"\12"在內(nèi)存中占______個(gè)字節(jié)。
8.設(shè)有下列程序:
#include<stdio.h>
#include<string.h>
main()
{inti;
chars[10],t[10];
gets(t);
for(i=0;i<2;i++)
{gets(s);
if(strcmp(t,s)<0)strcpy(t,s);
}
printf("%s\n",t);
}
程序運(yùn)行后,從鍵盤上輸入(<CR>代表回車符):CDEF<CR>BADEF<CR>QTHRG<CR>,則程序的輸出結(jié)果是______。
9.設(shè)有以下變量定義,并已賦確定的值,
charw;intx;floaty;doubleZ;
則表達(dá)式:w*x+z-y所求得的數(shù)據(jù)類型為上【】。
10.算法的復(fù)雜度主要包括時(shí)間復(fù)雜度和______復(fù)雜度。
二、單選題(10題)11.設(shè)有定義:“inta=1,b=2,C=3;”,以下語句中執(zhí)行效果與其他三個(gè)不同的是()。
A.if(a>b)c=a,a=b,b=C;
B.if(a>b){c=a,a=b,b=C;}
C.if(a>b)c=a;a=b;b=C;
D.if(a>b){c=a;a=b.b=C;)
12.設(shè)有以下語句:charstr1[]="string"mstr2[8],*str3,*str4=="string";則______不是對(duì)庫函數(shù)的正確調(diào)用。
A.strcpy(str1,"HELLO1");
B.strcpy(str2,"HELLO2");
C.strcpy(str3,"HELLO3");
D.strcpy(str4,"HELLO4");
13.數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS、數(shù)據(jù)庫管理系統(tǒng)DBMS之間的關(guān)系是()。
A.DB包括DBS和DBMSB.DBMS包括DB和DBSC.DBS包括DB和DBMSD.沒有任何關(guān)系
14.設(shè)有如下函數(shù)定義:#include<stdio.h>intfun(intk){if(k<1)return0;elseif(k==1)return1;elsereturnfun(k-1)+1;}若執(zhí)行調(diào)用語句“n=fun(3);”,則函數(shù)fun總共被調(diào)用的次數(shù)是()。
A.2B.3C.4D.5
15.下列特征中不是面向?qū)ο蠓椒ǖ闹饕卣鞯氖?)。
A.多態(tài)性B.繼承C.封裝性D.模塊化
16.下列選項(xiàng)中,不是一個(gè)算法的基本特征的是()。
A.完整性B.可行性C.有窮性D.擁有足夠的情報(bào)
17.有以下程序:main(){intk=5,n=0;do{switch(k){case1:case3:n+=l;k--;break;defalut:n=0;k--;case2:case4:n+=2;k--;break:}printf("%d",n);}while(k>0&&n<5);}程序運(yùn)行后的輸出結(jié)果是()。A.235B.0235C.02356D.2356
18.C語言中函數(shù)返回值的類型是由()決定的。
A.return語句中的表達(dá)式類型B.調(diào)用該函數(shù)的主調(diào)函數(shù)類型C.定義函數(shù)時(shí)所指定的函數(shù)類型D.以上說法都不正確
19.C語言提供的合法關(guān)鍵字是()
A.switchB.cherC.caseD.default
20.若運(yùn)行以下程序時(shí),從鍵盤輸入ADescriptor<CR>(<CR>表示回車),則下面程序的運(yùn)行結(jié)果是
#include<stdio.h>
main()
{charc;
intv0=1,v1=0,v2=0;
do{switch(c=getchar())
{case′a′:case′A′:
case′e′:case′E′:
case′i′:case′I′:
case′o′:case′O′:
case′u′:case′U′:v1+=1;
default:v0+=1;v2+=1;}}while(c!='\n');
printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);}
A.v0=7,v1=4,v2=7
B.v0=8,v1=4,v2=8
C.v0=11,v1=4,v2=11
D.v0=13,v1=4,v2=12
三、程序設(shè)計(jì)題(10題)21.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,規(guī)定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫函數(shù)fun(),其功能是使字符串中尾部的*號(hào)不多于n個(gè),若多于n個(gè),則刪除多余的*號(hào);若少于或等于n個(gè),則不做任何操作,字符串中間和前面的*號(hào)不刪除。例如,字符串中的內(nèi)容為“****A*BC*DEF*G*******”,若n的值為4,刪除后,字符串中的內(nèi)容應(yīng)為“****A*BC*DEF*G****”;若n的值為7,則字符串中的內(nèi)容仍為“****A*BC*DEF*G*******”。n的值在主函數(shù)中輸入。編寫函數(shù)時(shí),不得使用C語言提供的字符串函數(shù)。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題程序:#include<stdio.h>voidfun(char*a,intn){}main(){ chars[81];intn; printf("Enterastring:\n”); gets(s); printf(“Entern:”); scanf(“%d”,&n); fun(s,n); printf(“Thestringafterdeleted:\n”); puts(s);}
22.編寫函數(shù)fun,其功能是:實(shí)現(xiàn)兩個(gè)字符串的連接(不要使用庫函數(shù)strcat),即把p2所指的字符串連接到
pl所指的字符串的后面。
例如,分別輸入下面兩個(gè)字符串:
程序輸出:
注意:部分源程序在文件PROGl.C中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。
23.使用VC++2010打開考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,定義了NxN的二維數(shù)組,并在主函數(shù)中自動(dòng)賦值。請(qǐng)編寫函數(shù)fun(),該函數(shù)的功能是使數(shù)組上三角元素中的值乘以m。若m的值為2,a數(shù)組中的值為197238456則返回主程序后a數(shù)組中的值應(yīng)為2181426164512注意:部分源程序在文件prog1.c中。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫的若干語句。試題程序:1#include2#include3#include4#include5#defineN56voidfun(inta[][N],intm)7{89}10main()11{12inta[N][N],m,i,j;13FILE*out;14printf("***Thearray***\n");15for(i=0;i<n;i++)16{for(j=0;j<n;i++)27{for(j=0;j38{for(j=0;j<n;j++)39fprintf(out,"%4d",a[i][j]);40fprintf(out,"\n");41}42fclose(out);43/*********found********/44}1voidfun(inta[][n],intm)2{3inti,j;4for(j=0;j<n;j++)5:for(i=0;i<=j;i++)6:a[i][j]=a[i][j]*m;/*上三角元素中的值乘以m*/
24.假定輸人的字符串中只包含字母和*號(hào)。請(qǐng)編寫函數(shù)proc,它的功能是:將字符串中
的前導(dǎo)*號(hào)全部刪除,中間和后面的*號(hào)不刪除。
例如,若字符串中的內(nèi)容為****a*bc*def*g****,刪除后,字符串中的內(nèi)容則
應(yīng)當(dāng)是a*bc*def*g****。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號(hào)中填入所編
寫的若干語句。
試題程序:
#include<stdio.h>
#include<conio.h>
voidproc(char*str)
{
}
voidmain
{
charstr[81];
printf("Enterastring:kn");
gets(str);
proc(str);
printf("Thestringafterdeleted:kn");
puts(str);}
25.n個(gè)人的成績(jī)存放在score數(shù)組中,請(qǐng)編寫函數(shù)proc(),它的功能是將低于平均分的人數(shù)作為函數(shù)值返回,將低于平均分的分?jǐn)?shù)放在down所指的數(shù)組中。例如,當(dāng)score數(shù)組中的數(shù)據(jù)為{99,80,40,56,59,84,60,76,100}時(shí),函數(shù)返回的人數(shù)應(yīng)該是4,down中的數(shù)據(jù)應(yīng)為40565960。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫的若干語句。試題程序:
26.請(qǐng)編寫函數(shù)proc,該函數(shù)的功能是:將放在字符串?dāng)?shù)組中的M個(gè)字符串(每串的長(zhǎng)度不超過N),按順序合并組成一個(gè)新的字符串。例如,若字符串?dāng)?shù)組中的M個(gè)字符串為:ABCDBCDEFGCDEFGHI則合并后的字符串內(nèi)容應(yīng)該是ABCDBCDEFGCDEFGHl。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc的花括號(hào)中填入所編寫的若干語句。試題程序:#include<stdio.h>#include<conio.h>#defineM3#defineN20voidproc(chararr[M][N],char*b){}voidmain{charstr[M][N]={"ABCD","BCDEFG","CDEFGHl"),i;chararr[100]={"##################"};printf(”Thestrin9:kn”);for(i=0;i<M;i++)puts(str[i]);printf("\n");proc(str,arr);printf("TheAstring:\n");printf("%S",arr);printf("\n\n");}27.規(guī)定輸入的字符串中只包含字母和*號(hào)。編寫函數(shù)fun,其功能是:刪除字符串中所有的*號(hào)。編寫函數(shù)時(shí),不得使用C語言提供的字符串函數(shù)。例如,字符串中的內(nèi)容為“****A*BC*DEF*G****”,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是“ABCDEFG”。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)maini)函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。試題程序:#include<conio.h>#include<stdio.h>voidfun(chara){voidmain{chars[81];print{("Enterastring:\n");gets(s):fun(S);printf("Thestringafterdeleted:\n");puts(s);}
28.請(qǐng)編寫函數(shù)proc(),其功能是:將str所指字符串中除下標(biāo)為偶數(shù)、同時(shí)ASCⅡ碼值為奇數(shù)的字符外,其余的字符都刪除,串中剩余字符所形成的一個(gè)新串放在t所指的數(shù)組中。例如,若str所指字符串中的內(nèi)容為ABCDEFG12345,其中字符8的ASCⅡ碼值為偶數(shù),所在元素的下標(biāo)為奇數(shù),因此必須刪除;而字符A的ASCⅡ碼值為奇數(shù),所在數(shù)組中的下標(biāo)為偶數(shù),因此不應(yīng)當(dāng)刪除。依次類推,最后t所指的數(shù)組中的內(nèi)容應(yīng)是ACEG。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所寫的若干語句。試題程序:
29.編寫函數(shù)fun,其功能是:根據(jù)以下公式求π的值(要求精度0.0005,即某項(xiàng)小于0.0005時(shí)停止迭代)。
程序運(yùn)行后,若輸入精度
0.0005,則程序應(yīng)輸出為3.14…
注意:部分源程序在文件PROGl.C中。
請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫的若干語句。
30.某學(xué)生的記錄由學(xué)號(hào)、8門課程成績(jī)和平均分組成,學(xué)號(hào)和8門課程的成績(jī)已在主函數(shù)中給出,請(qǐng)編寫函數(shù),其功能是:求出該學(xué)生的平均分,并放入記錄的ave成員中。
例如,學(xué)生的成績(jī)是:85.5,76,69.5,85,91,72,64.5,87.5,則他的平均分應(yīng)為78.875。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun部位中填入你編寫的若干語句。
試題程序:
#include<stdio.h>
#defineN8
typedefstruct
{
charnum[10];
doubles[N];
doubleave;
}STREC;
voldfun(STREC*a)
{
}
voidmain
STRECs={"GA005",85.5,76,69.5,85,91,72,64.5,87.5};
inti;
fun(&s);
printf("The%ssstudentdata:\n",s.num);
for(i=0;i<N;i++)
printf("%4.1fkn",s.s[i]);
printf("\nknave=%7.3fkn",s.aVe);
printf("\n");
}
四、2.程序修改題(10題)31.下列給定程序中函數(shù)fun()的功能是計(jì)算1/n!的值。
例如:給n輸入5,則輸出0.0083330
請(qǐng)改正程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdio.h>
#include<conio.h>
/******+****found*************/
intfun(intn)
{doubleresult=1.0;
if(n==0)
return1.0;
while(n>1&&n<170)
/**********found************/
result*=n++;
result=1/result;
returnresult;
}
main()
{
intn;
printf("InputN:");
scanf("%d",&n);
printf("\n1/%d!=%If\n",n,fun(n));
}
32.下列給定程序中,函數(shù)fun()的功能是:找出一個(gè)大于給定整數(shù)m且緊隨m的素?cái)?shù),并作為函數(shù)值返回。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu).
試題程序:
#include<conio.h>
#include<stdio.h>
intfun(intm)
{inti,k;
for(i=m+1;;i++)
{for(k=2;k<i;k++)
/*************found**************/
if(i%k!=0)
break;
/*************found**************/
if(k<i)
return(i);
}
}
main()
{intn;
clrscr();
printf("\nPleaseentern:");
scanf("%d",&n);
printf("%d\n",fun(n));
}
33.下列給定程序中,函數(shù)fun()的功能是:從字符串s中,刪除所有大寫字母'F'。
請(qǐng)改正程序中的錯(cuò)誤,使它能得到正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdio.h>
voidfun(char*s)
{
inti,j;
/*************found**************/
for(i=j=0;s[i]!='0';i++)
if(s[i]!='F')
/*************found**************/
s[j]=s[i];
s[j]='\0';
}
main()
{
chars[80];
printf("\nEnterastring:");
gets(s);
printf("Theoriginalstring:");
puts(s);
fun(s);
printf("Thestringafterdeleted:");
puts(s);
printf("\n\n");
}
34.給定程序MODll.C中函數(shù)fun的功能是:將字符串中的字符按逆序輸出,但不改變字符串中的內(nèi)容。
例如,若字符串為abcd,則應(yīng)輸出:dcba。
請(qǐng)改正程序中的錯(cuò)誤,使它能計(jì)算出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
35.給定程序MODll.C中函數(shù)fun的功能是:判斷一個(gè)整數(shù)是否是素?cái)?shù),若是返回1,否則返回0。
在mai()函數(shù)中,若fun返回1輸出YES,若fun返回0輸出NO!。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù)。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
36.給定程序MODll.C中函數(shù)fun的功能是:為一個(gè)偶數(shù)尋找兩個(gè)素?cái)?shù),這兩個(gè)素?cái)?shù)之和等于該偶數(shù),并將這兩個(gè)素?cái)?shù)通過形參指針傳回主函數(shù)。
請(qǐng)改正函數(shù)fun中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
37.下列給定程序中,函數(shù)fun()的功能是:計(jì)算整數(shù)n的階乘。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdio.h>
doublefun(intn)
{
doubleresult=l.0;
whil(n>l&&n<170)
/**************found********************/
result*=--n;
/**************found********************/
return;
main()
{int.n;
clrscr();
printf("Enteraninteger:");
scanf("%d",&n);
printf("\n\n%d!=%lg\n\n",n,fun(n));
}
38.下列給定程序中,函數(shù)fun()的功能是:從s所指字符串中,找出t所指字符串的個(gè)數(shù)作為函數(shù)值返回。例如,當(dāng)s所指字符串中的內(nèi)容為abcdabfab,t所指字符串的內(nèi)容為ab,則函數(shù)返回整數(shù)3。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu).
試題程序:
#include<conio.h>
#include<stdio.h>
#include<string.h>
intfun(char*s,char*t)
{intn;char*p,*r;
n=0;
while(*s)
{p=s;
r=t;
while(*r)
/**************found**************/
if(*r==*p){r++;p++}
elsebreak;
/*************found**************/
if(r=='\0')
n++;
s++;
}
returnn;
}
main()
{chars[100],t[100];intm;
clrscr();
printf("\nPleaseenterstrings:");
scanf("%s",s);
printf("\nPleaseentersubstringt:");
scanf("%s",t);
m=fun(s,t);
printf("\nTheresultis:m=%d\n",m);
}
39.下列給定程序中,函數(shù)fun()的功能是:通過某種方式實(shí)現(xiàn)兩個(gè)變量值的交換,規(guī)定不允許增加語句和表達(dá)式。例如變量a中的值原為8,b中的值原為3,程序運(yùn)行后a中的值為3,b中的值為8。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<conio.h>
#include<stdio.h>
intfun(int*x,inty)
{
intt;
/***************found***************/
t=x;x=y;
/***************found***************/
return(y);
}
main()
{inta=3,b=8;
clrscr();
printf("%d%d\n",a,b);
b=fun(&a,b);
printf("%d%d\n",a,b);
}
40.給定程序MODll.C中函數(shù)fun的功能是:統(tǒng)計(jì)substr所指子字符串在str所指字符串中出現(xiàn)的次數(shù)。
例如,若字符串為aaaslkaaas,子字符串為as,則應(yīng)輸出2。
請(qǐng)改正程序中的錯(cuò)誤,使它能計(jì)算出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
五、程序改錯(cuò)題(2題)41.下列給定程序中,函數(shù)proc()的作用是:將字符串tt中的大寫字母都改為對(duì)應(yīng)的小寫字母,其他字符不變。
例如,若輸入“I,anl,A,Student”,則輸出“i,am,a,student”。
請(qǐng)修改程序中的錯(cuò)誤。使它能得到正確結(jié)果。
注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
42.下列給定程序中,函數(shù)proc()的作用是:將字符串str中的大寫字母都改為對(duì)應(yīng)的小寫字母,其他字符不變。例如,若輸入“abD,dFAD”,則輸出“abd,dfad”。請(qǐng)修改函數(shù)proc()中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序:
六、操作題(2題)43.以下程序運(yùn)行后的輸出結(jié)果是【】。(注:如果結(jié)果中含有回車,可加一空格寫在一行,例如:
111
111
111
可以寫成:111111111。
#include<stdio.h>
mala()
{inti,j,a[][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)a[j][i]=0;
for(i=0;i<3;i++)
{for(j=0;j<3;j++)printf("%d",a[i][j]);
printf("\n");
}
}
44.以下程序運(yùn)行后的輸出結(jié)果是【】。
main()
{chara[]="Language",b[]="Pragrame";
char*p1,*p2;intk;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))
printf("%c",*(p1+k));
}
參考答案
1.實(shí)例將屬性、操作相似的對(duì)象歸為類,也就是說,類是具有共同屬性、共同方法的對(duì)象的集合。所以,類是對(duì)象的抽象,對(duì)象則是其對(duì)應(yīng)類的一個(gè)實(shí)例。
2.++pw[i-1]
3.2424解析:本題考查函數(shù)的循環(huán)調(diào)用。p=x*func(x-1),當(dāng)x=4時(shí),不滿足if語句的條件,p=4*func(3),x=3也不滿足條件,則func(3)=3*func(2),func(2)=2*func(1),x=1滿足條件return(1),則輸出結(jié)果為4*3*2*1=24。
4.軟件開發(fā)
5.前后件關(guān)系前后件關(guān)系解析:在數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)中,除了要存儲(chǔ)數(shù)據(jù),還要存儲(chǔ)數(shù)據(jù)的前后件關(guān)系,對(duì)于順序存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu),前后件之間的關(guān)系,是通過存儲(chǔ)空間的位置來實(shí)現(xiàn)的,而對(duì)于鏈?zhǔn)酱鎯?chǔ)來說,數(shù)據(jù)元素之間的前后件關(guān)系是通過指針來實(shí)現(xiàn)的。
6.
7.22解析:'\\13':表示八進(jìn)制數(shù)13表示的ASCII字符,是一個(gè)字符,占一個(gè)字節(jié);而”\\12”是個(gè)字符串,除了八進(jìn)制數(shù)12表示的ASCII字符占一個(gè)字節(jié)外,還有在字符串的末尾加上串結(jié)束標(biāo)志“'\\0'”,所以共有2個(gè)字節(jié)。
8.QTHRGQTHRG解析:strcmp(t,s)函數(shù)用來比較t和s所指字符串的大小,若t>s,則函數(shù)值大于0;若t=s,則函數(shù)值等于0:若t<s,則函數(shù)值小于0。strcpy(t,s)函數(shù)的功能是把字符數(shù)組s所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指的存儲(chǔ)空間中。本題中,t[10]='CDEF'。第一次循環(huán),s[10]='BADEF',if語句的控制條件strcmp(t,s)<0不成立,接著執(zhí)行第二次循環(huán).s='QTHRG',if語句的控制條件strcmp(t,s)<0成立,執(zhí)行下列的語句,將字符數(shù)組s所指字符串的內(nèi)容復(fù)制到字符數(shù)組t所指的存儲(chǔ)空間中,然后輸出字符數(shù)組t。
9.double型或雙精度型double型或雙精度型解析:①先進(jìn)行w*x的運(yùn)算,先將字符型w轉(zhuǎn)換成整型,運(yùn)算結(jié)果為整型;②再將w*x的結(jié)果與z相加,要先將第一步的整型轉(zhuǎn)換為double型,運(yùn)算結(jié)果為double型;③最后將w*x+z的結(jié)果與y相減,要先將float型y轉(zhuǎn)換成double型,結(jié)果為double型。
10.空間空間解析:算法的復(fù)雜度主要包括時(shí)間復(fù)雜度和空間復(fù)雜度。所謂算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量。一個(gè)算法的空間復(fù)雜度,一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。
11.C本題判斷結(jié)果。選項(xiàng)A中,如果(a>b),則執(zhí)行“c=a,a=b,b=c”這個(gè)語句(注意分號(hào)的位置,如果條件成立,將會(huì)執(zhí)行第一個(gè)分號(hào)前的語句),顯然if不成立,則a,b,C原樣輸出。選項(xiàng)B和選項(xiàng)D是同理,而選項(xiàng)C因?yàn)闂l件不成立,則不執(zhí)行第一條語句“c=a”,接著執(zhí)行“a=b”,將b的值賦給a,a的值為2;“b=C”,b的值為3,C的值原樣輸出,結(jié)果為2,3,3。
12.C解析:C語言中:strcpy(st1,st2);,其兩個(gè)參數(shù)均為字符指針或字符數(shù)組,選項(xiàng)C中的目的串指針str3沒有指向具體有效的存儲(chǔ)單元,故是錯(cuò)誤的調(diào)用。
13.CC。【解析】數(shù)據(jù)庫系統(tǒng)(DBS)由數(shù)據(jù)庫(DBS)、數(shù)據(jù)庫管理系統(tǒng)(DBMS)、數(shù)據(jù)庫管理員、硬件平臺(tái)和軟件平臺(tái)五個(gè)部分組成,可見DB和DBMS都是DBS的組成部分。
14.B執(zhí)行調(diào)用語句“n=fun(3);”,3被當(dāng)作實(shí)參傳遞進(jìn)去,進(jìn)行了一次調(diào)用。3被當(dāng)作實(shí)參傳進(jìn)去后,程序會(huì)執(zhí)行“elsereturnfun(k-1)+1;”,函數(shù)被調(diào)用了第2次,參數(shù)是3-1,也就是2。2被當(dāng)作參數(shù)傳進(jìn)去后,程序會(huì)執(zhí)行“elsereturnfun(k-1)+1;”函數(shù)被調(diào)用了第3次,參數(shù)是2-1,也就是1。1被當(dāng)作實(shí)參傳進(jìn)去后,程序會(huì)執(zhí)行“elseif(k==1)return1;”,函數(shù)不再被遞歸調(diào)用。所以最終結(jié)果為3次。故本題答案為B選項(xiàng)。
15.DD?!窘馕觥棵嫦?qū)ο笤O(shè)計(jì)方法與面向過程設(shè)計(jì)方法有本質(zhì)的不同,其基本原理是:使用現(xiàn)實(shí)世界的概念抽象地思考問題從而自然地解決問題。其特點(diǎn)包括:分類性、多態(tài)性、封裝性、模塊獨(dú)立性、繼承和多態(tài)性等。模塊化是結(jié)構(gòu)化程序設(shè)計(jì)的特點(diǎn)。
16.A解析:作為一個(gè)算法,一般應(yīng)該具有下列4個(gè)特征:(1)可行性,即考慮到實(shí)際的條件能夠達(dá)到一個(gè)滿意的結(jié)果;(2)確定性,算法中的每一個(gè)步驟都必須是有明確定義的,(3)有窮性,一個(gè)算法必須在有限的時(shí)間內(nèi)做完;(4)擁有足夠的情報(bào)。
17.B本題考查分支語句用法加個(gè)句號(hào)因?yàn)樽兞康某跏贾捣謩e為k一5、n一0,所以程序第1次進(jìn)入循環(huán)時(shí),執(zhí)行default語句,輸出0,k減1;這時(shí)n=0、k=4,程序進(jìn)行第2次循環(huán),執(zhí)行case4:這個(gè)分支,結(jié)果是n=2、k=3,打印出2;這時(shí)n=2、k=3,break跳出,程序進(jìn)行第3次循環(huán),執(zhí)行case3:這個(gè)分支,結(jié)果是n=3、k=2,打印出3;這時(shí)n一3、k2,b¨ak跳出,程序然后進(jìn)行第4次循環(huán),執(zhí)行case2:case4:這個(gè)分支,結(jié)果是n=5、k=1,打印出5,break跳出,這時(shí)因?yàn)閚=5不滿足n<5的循環(huán)條件,因此循環(huán)結(jié)束。
18.C
19.C
20.D解析:本題考查switch語句的掌握。必須撐握以下內(nèi)容:首先應(yīng)該明白switch語句的語法格式:
switch語句的語法格式為:
switch(表達(dá)式)
{
case常量表達(dá)式1:語句組1;
case常量表達(dá)式2:語句組2;
case常量表達(dá)式n:語句組n;
default:語句組n+1;
}
另外,以下幾點(diǎn)關(guān)于switch語句的重點(diǎn):
①系統(tǒng)在執(zhí)行時(shí)計(jì)算開關(guān)表達(dá)式的值;②根據(jù)所得的值在各個(gè)case標(biāo)號(hào)表達(dá)式中尋找匹配,直到發(fā)現(xiàn)與表達(dá)式匹配的標(biāo)號(hào)(本例中匹配的是case\'B\':);\ue008③找\ue009到匹配后執(zhí)行后面相應(yīng)的語句表,順序往下執(zhí)行;④如果無相匹配的標(biāo)號(hào),若存在default標(biāo)號(hào),則執(zhí)行該語句標(biāo)號(hào)后面的語句表n+1;當(dāng)不存在default標(biāo)號(hào)時(shí),不執(zhí)行switch中的任何一個(gè)語句表。
一般而言,在多分支結(jié)構(gòu)中總會(huì)出現(xiàn)'意外'的情況,這時(shí)均可歸入default程序段,作統(tǒng)一的處理。default標(biāo)號(hào)是可選性的,不必每次都有,視需要而定。switch語句中還可以包含switch語句,形成switch的嵌套。21.voidfun(char*a,intn){ inti=0,k=0; char*p,*t; p=t=a;/*將指針移動(dòng)到字符串末尾*/ while(*t) t++; t--;/*從后往前如果是*則使k自增1,找到最后一個(gè)*所在的位置,并記錄*的個(gè)數(shù)*/ while(*t==‘*’)/*指針t指向前一個(gè),同時(shí)標(biāo)量k自增1*/ {k++;t--;}/*如果最后*的個(gè)數(shù)大于允許的個(gè)數(shù)*/ if(k>n)/*循環(huán)次數(shù)不大于前面的字符與最大允許*的個(gè)數(shù)之和*/ { while(*p&&p<t+n+1)<p=""></t+n+1)<>/*把字符保存到數(shù)組a中*/ {a[i]=*p; i++;p++; } a[i]=‘\0’; }}字符串中尾部*號(hào)不能多于n個(gè),多余的要?jiǎng)h除。首先需要通過while循環(huán)統(tǒng)計(jì)字符串尾部*號(hào),然后通過if條件語句完成尾部*號(hào)數(shù)和n的比較,若尾部*號(hào)數(shù)多于n個(gè),則需要把n個(gè)*號(hào)和其余字符重新保存。22.
【考點(diǎn)分析】
【解題思路】
本題用兩個(gè)循環(huán)完成操作,第1個(gè)循環(huán)的作用是求出第1個(gè)字符串的長(zhǎng)度,即將i指到第1個(gè)字符串的末尾。第2個(gè)循環(huán)的作用是將第2個(gè)字符串的字符連到第1個(gè)字符串的末尾。
23.1voidfun(inta[][n],intm)2{3inti,j;4for(j=0;j
<="">5for(i=0;i<=j;i++)6a[i][j]=a[i][j]*m;/*上三角元素中的值乘以m*/7}本程序?qū)崿F(xiàn)的是:矩陣上三角元素的值乘以m。上三角元素下標(biāo)的特點(diǎn)是行下標(biāo)小于等于列下標(biāo),即“i<=j”使用循環(huán)語句遍歷數(shù)組元素,第1個(gè)循環(huán)用于控制列坐標(biāo),第2個(gè)循環(huán)用于控制行下標(biāo)。
24.voidproc(char*str)
\n{
\nchar*p=str;
\nwhile(*p==*)p++;//通過p的移動(dòng)來達(dá)到使p指向第一個(gè)不是*號(hào)的字符
\nfor(;*p!=\0;p++,str++)//把從第一個(gè)不是*號(hào)的字符放到a中
\n*str=*P:
\n*str=\0;//最后用\0作為字符串結(jié)束標(biāo)志
\n}
\n【解析】題目中要求將字符串中的前導(dǎo)*號(hào)全部刪除,首先將指針P移動(dòng)到第一個(gè)不是*的字符,將指針P之后的字符放入原來的字符串中,并為新的字符串添加結(jié)束符。
\n
25.
【解析】要找到所有學(xué)生中成績(jī)低于平均分?jǐn)?shù)的人數(shù),首先需要算出所有學(xué)生的平均成績(jī)。然后將所有學(xué)生的成績(jī)與平均成績(jī)相比較。將低于平均分?jǐn)?shù)學(xué)生的記錄存放在新的數(shù)組中,并將低于平均分?jǐn)?shù)的學(xué)生數(shù)返回給主函數(shù)。
26.voidproc(chararr[M][N],char*b){inti,j,k=0;for(i=0;i<M;i++)//i表示其行下標(biāo)for(j=0;arr[i][j]!=\0;j++)//由于每行的個(gè)數(shù)不等,因此用a[i][j]!=\0來作為循環(huán)結(jié)束的條件b[k++]=arr[i][j];//把二維數(shù)組中的元素放到b的一維數(shù)組中,b[k]=\0;//最后把b賦\0作為字符串結(jié)束的標(biāo)志)【解析】字符串?dāng)?shù)組中每一行都是一個(gè)一個(gè)完整的字符串,其結(jié)束標(biāo)志為\0。因此通過字符串的結(jié)束標(biāo)志來判斷每一個(gè)字符串是否結(jié)束,將字符串?dāng)?shù)組中的所有字符串均賦值新的一維數(shù)組b來完成字符串的合并。27.voidfun(char*a){inti,j=0;for(i=0;a[i]!=\0;i++)if(a[i]!=*)a[j++]=a[i];//若不是要?jiǎng)h除的字符*則保留a[j]=\0;//最后加上字符串結(jié)束符\0}【解析】此題是刪除字符串中的星號(hào)。思路是通過for循環(huán)完成對(duì)字符串的遍歷,通過if判斷,找到不是“*”的字符,將其賦值到數(shù)組a中星號(hào)前的位置,“if(a[i]!=*)”“a[i++]=a[i]”,最后返回主函數(shù)將刪除*后的字符串輸出即可。
28.
【解析】題目中要求將字符串str中下標(biāo)為偶數(shù)、同時(shí)ASCⅡ碼值為奇數(shù)的字符放在數(shù)組t中。首先,需要檢查字符串str中下標(biāo)為偶數(shù)的字符的ASCⅡ碼值是否為奇數(shù),將符合要求的字符放在數(shù)組t中。最后,為新的字符串?dāng)?shù)組添加結(jié)束符。
29.
【考點(diǎn)分析】
本題考查:迭代法求給定多項(xiàng)式的值。迭代算法:讓計(jì)算機(jī)對(duì)一組指令(或一定步驟)進(jìn)行重復(fù)執(zhí)行,在每次執(zhí)行這組指令(或這些步驟)時(shí),都從變量的原值推出它的一個(gè)新值。需要注意變量的數(shù)據(jù)類型以及賦初值操作。
【解題思路】
首先應(yīng)該定義double類型變量,并且賦初值,用來存放多項(xiàng)式的某一項(xiàng)和最后的總和。從第2項(xiàng)開始以后的每一項(xiàng)都是其前面一項(xiàng)乘以n/(2*n+1),程序中用sl來表示每一項(xiàng),s表示求和后的結(jié)果。需注意sl和S的初值都為1.0,因?yàn)檠h(huán)變量從第二項(xiàng)開始累加。
30.voidfun(STREC*a)
\n{
\ninti;
\na->ave=0.0;
\nfor(i=0;i<N;i++)
\na->ave=a->ave+a->s[i];
\n/*求各門課程成績(jī)的總和*/
\na->ave=a->ave/N;/*求平均分*/
\n}
\n【解析】本題考查的是指向結(jié)構(gòu)體類型的指針變量做參數(shù)和結(jié)構(gòu)體類型成員的運(yùn)算。fun函數(shù)中求出平均成績(jī),要帶回主函數(shù)則必須定義一個(gè)指針類型的形參STREC*a,同時(shí)引用成員使用指向運(yùn)算符,a->ave和a->s[i]。
\n
31.(1)錯(cuò)誤:intfun(intn)正確:doublefun(intn)(2)錯(cuò)誤:result*=n++;正確:result*=n--;(1)錯(cuò)誤:intfun(intn)正確:doublefun(intn)\r\n(2)錯(cuò)誤:result*=n++;正確:result*=n--;解析:錯(cuò)誤1:函數(shù)的返回值為實(shí)型數(shù)據(jù),所以函數(shù)的返回類型應(yīng)為double。錯(cuò)誤2:根據(jù)階乘的概念,從n開始,每遞減1的數(shù)相乘,直到1,因此此處n遞減,而不是遞增。
32.(1)錯(cuò)誤:if(i%k!=0)正確:if(i%k=0)(2)錯(cuò)誤:if(k<i)正確:if(k>=i)(1)錯(cuò)誤:if(i%k!=0)正確:if(i%k=0)\r\n(2)錯(cuò)誤:if(k<i)正確:if(k>=i)解析:也許剛接觸C語言的學(xué)習(xí)者對(duì)素?cái)?shù)的概念不清楚,在這里說明一下,素?cái)?shù)就是質(zhì)數(shù),本題的任務(wù)是隨便輸入一個(gè)整數(shù)m,然后在m的后面尋找緊跟m的一個(gè)質(zhì)數(shù),作為函數(shù)值返回。
for(i=m+1;;i++){
是從m后面的一位開始循環(huán),將m后面一位的值賦予i。然后;我們依次判斷m后面的一位是否為素?cái)?shù)。
for(k=2;k<i;k++)
if(i%k==0)
是一個(gè)簡(jiǎn)單的數(shù)學(xué)判斷問題,判斷i被賦予的值與k的余數(shù)是否為零。
33.(1)錯(cuò)誤:for(i=j=0;s[i]!='0';i++)正確:for(i=j=0;s[i]!'\0';i++)(2)錯(cuò)誤:s[j]=s[i]正確:s[j++]=s[i];(1)錯(cuò)誤:for(i=j=0;s[i]!='0';i++)正確:for(i=j=0;s[i]!'\\0';i++)\r\n(2)錯(cuò)誤:s[j]=s[i]正確:s[j++]=s[i];解析:錯(cuò)誤1:本題考查是否掌握字符串的最后一個(gè)字符是結(jié)束標(biāo)志符'\\0'。錯(cuò)誤2:在循環(huán)中,新字符串的下標(biāo)也要遞增,這樣最終產(chǎn)生一個(gè)新的字符串。
34.(1)voidfun(char*a)(2)printf("%c"*a)(1)voidfun(char
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東省深圳市福田區(qū)2024年中考數(shù)學(xué)二??荚囋嚲砗鸢?/a>
- 晉中信息學(xué)院《數(shù)字娛樂導(dǎo)論》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖北汽車工業(yè)學(xué)院《藝術(shù)投融資》2023-2024學(xué)年第一學(xué)期期末試卷
- 鶴崗師范高等專科學(xué)?!盾浖?xiàng)目案例分析》2023-2024學(xué)年第一學(xué)期期末試卷
- 重慶三峽醫(yī)藥高等專科學(xué)?!豆た鼐W(wǎng)絡(luò)與通信》2023-2024學(xué)年第一學(xué)期期末試卷
- 重慶財(cái)經(jīng)職業(yè)學(xué)院《美術(shù)欣賞與創(chuàng)作》2023-2024學(xué)年第一學(xué)期期末試卷
- 浙江宇翔職業(yè)技術(shù)學(xué)院《數(shù)字取證技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 多金屬選礦生產(chǎn)線和尾礦庫項(xiàng)目可行性研究報(bào)告模板-備案拿地
- 空壓機(jī)工作原理及結(jié)構(gòu)圖解析
- 中國地質(zhì)大學(xué)(武漢)《企業(yè)經(jīng)營沙盤實(shí)訓(xùn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 新概念英語第一冊(cè)Lesson103-104筆記(語法點(diǎn)+配套練習(xí)+答案)
- (正式版)JBT 3300-2024 平衡重式叉車 整機(jī)試驗(yàn)方法
- 產(chǎn)業(yè)園區(qū)活動(dòng)方案策劃
- mil-std-1916抽樣標(biāo)準(zhǔn)(中文版)
- 2024年安徽省合肥市瑤海區(qū)中考語文一模試卷
- 單位車輛變更名稱的委托書
- 粉塵外協(xié)單位清理協(xié)議書
- 2023年12月首都醫(yī)科大學(xué)附屬北京中醫(yī)醫(yī)院面向應(yīng)屆生招考聘用筆試近6年高頻考題難、易錯(cuò)點(diǎn)薈萃答案帶詳解附后
- 茶室經(jīng)營方案
- 軍隊(duì)文職崗位述職報(bào)告
- 小學(xué)數(shù)學(xué)六年級(jí)解方程練習(xí)300題及答案
評(píng)論
0/150
提交評(píng)論