版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2021年湖南省衡陽(yáng)市全國(guó)計(jì)算機(jī)等級(jí)考試C語(yǔ)言程序設(shè)計(jì)真題(含答案)學(xué)校:________班級(jí):________姓名:________考號(hào):________
一、2.填空題(10題)1.在最壞情況下,冒泡排序的時(shí)間復(fù)雜度為【】。
2.問(wèn)題處理方案的正確而完整的描述稱為_(kāi)_____。
3.下列程序的輸出結(jié)果是______。
#include<stdio.h>
main()
{intx=10,y=10,i;
for(i=0;x>8;y=++)
printf("%d%d",X--,y);
}
4.數(shù)據(jù)庫(kù)保護(hù)分為:安全性控制、______、并發(fā)性控制和數(shù)據(jù)的恢復(fù)。
5.以下程序運(yùn)行時(shí),若從鍵盤(pán)輸入:102030<回車(chē)>,輸出的結(jié)果是【】。
#include<stdio.h>
main()
{inti=0,j=0,k=0;
scanf("%d%*d%d",&i,&j,&k);
prinff("%d%d%d\n",i,j,k);
}
6.在一個(gè)容量為25的循環(huán)隊(duì)列中,若頭指針front=16,尾指針rear=9,則該循環(huán)隊(duì)列中共有【】個(gè)元素。
7.以下程序的輸出結(jié)果是()。#include<stdio.h>voidmain(){intf,f1,f2,i;f1=0;f2=1;printf("%d%d",f1,f2);for(i=3;i<=5;i++){f=-f1+f2,printf("%d",f);f2=f1;f1=f;}printf("\n");}
8.下列程序能將字符串s1中的所有與字符串str1相同的子串替換成字符串sb2,并將替換后的新串存于字符數(shù)組s2中。
#include<stdio.h>
voidreplace(s1,s2,str1,str2)
char*s1,*s2,*str1,*str2;
{char*t0,*t1,*t2,*x,*y;
x=s1;y=s2;
while(【】)
{
for(t0=s1,t1=str1;((*t1!='\O'&&【】;t0++,t1++);
if(*t1!='\0')*s2++=【】;
else
{for(t1=str2;*t1!='\0';)*s2++=【】;
【】;
}
}
*s2='\0';
}
main()
{staticchars1[]="abcdefababcdabab.",s2125];
replace(s1,s2,"abc","XYZ");
printf("%s\n",s2);
}
9.若變量n中的值為24,則prnt函數(shù)共輸出【】行。
voidprnt(intn,intaa[])
{inti;
for(i=1;i<=n;i++)
{printf("%6d",aa[i]);
if!(i%5))printf("\n");
}
printf("\n");
}
10.軟件工程研究的內(nèi)容主要包括:【】技術(shù)和軟件工程管理。
二、單選題(10題)11.在下列排序算法中,在待排序的數(shù)據(jù)表已經(jīng)為有序時(shí),花費(fèi)時(shí)間反而最多的是()
A.希爾排序B.堆排序C.冒泡排序D.快速排序
12.
13.插入和刪除只能在一端進(jìn)行線性表,稱為()。
A.隊(duì)列B.循環(huán)隊(duì)列C.棧D.循環(huán)棧
14.
15.設(shè)有定義“struct{charmark[12];intnum1;doublenum2;}t1,t2;”,若變量均已正確賦初值,則下列語(yǔ)句中錯(cuò)誤的是()。
A.t1=t2;
B.t2.num1=t1.num1;
C.t2.mark=t1.mark;
D.t2.num2=t1.num2;
16.
17.有以下程序
#include<stdio.h>
#include<string.h>
typedefstrlIct{charname[9];charsex;floatscore[2];}STU;
STUf(STUa)
{STUb={"Zhao",'m',85.0,90.0);inti;
strcpy(aname,b.name);
sex:b.sex;
for(i=0;i<2;i++)a.score[i]=b.score[i];
returna;
}
main
{STUc="Qian",'f',95.0,92.0},d;
d=f(c).printf("%s,%c,%2.0f,%2.0f",d.Name,d.sex,d.score[0],d.score[1]);
}
程序的運(yùn)行結(jié)果是()。A.A.Qian,f,95,92
B.Qian,m,85,90
C.Zhao,m,85,90
D.Zhao,f,95,92
18.下列選項(xiàng)中非法的字符常量是()。
A.'\t'B.'\039'C.','D.'\n'
19.設(shè)x=011050,則x=x&01252的值是()。A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
20.有以下程序:#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");}如果從鍵盤(pán)上輸入:ab<回車(chē)>c<回車(chē)>def<回車(chē)>則輸出結(jié)果為_(kāi)_____。
A.abcdefB.abcdC.abcdD.abcdef
三、程序設(shè)計(jì)題(10題)21.請(qǐng)編寫(xiě)函數(shù)proc(),該函數(shù)的功能是:將M行N列的二維數(shù)組中的數(shù)據(jù),按行的順序依次放到一維數(shù)組中,一維數(shù)組中數(shù)據(jù)的個(gè)數(shù)存放在形參n所指的存儲(chǔ)單元中。例如,若二維數(shù)組中的數(shù)據(jù)為:132333431424344415253545則一維數(shù)組中的內(nèi)容應(yīng)該是132333431424344415253545。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:
22.請(qǐng)編寫(xiě)函數(shù)proc(),該函數(shù)的功能是:計(jì)算n門(mén)課程的平均分,計(jì)算結(jié)果作為函數(shù)值返回。例如,有6門(mén)課程的成績(jī)是90.5,72,80,61.5,55,60,則函數(shù)的值為69.83。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:
23.使用VC++2010打開(kāi)考生文件析下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編寫(xiě)函數(shù)fun(),tt指向一個(gè)M行N列的二維數(shù)組,求出二維數(shù)組每列中值最大的元素,并依次放入pp所指的一維數(shù)組中。二維數(shù)組中的元素已在主函數(shù)中給出。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。試題程序:#include<stdlib.h>#include<conio.h>#include<stdio.h>#defineM3#defineN4voidfun(inttt[M][N],intpp[N]){}voidmain(){ intt[M][N]={{68,32,54,12},{14,24,88,58},{42,22,44,56}}; intp[N],i,j,k; ystem(“CLS”); printf(“Theoriginaldatais:\n”); for(i=0;i<=""p=""> { for(j=0;j<=""p=""> printf(“%6d”,t[i][j]); printf(“\n”n); } fun(t,p); printf(“\nTheresultis:\n”); for(k=0;k<n;k++)<p=""></n;k++)<> printf(“%4d”,p[k]); printf(“\n”);}
24.請(qǐng)編寫(xiě)函數(shù)proc(),其功能是:計(jì)算并輸出下列多項(xiàng)式值。S=(1+1/2)+(1/3+1/4)+…+(1/(2n-1)+1/2n)例如,若輸入10,則輸出為S=3.597740。n的值要求大于1但不大于100。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:
25.規(guī)定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫(xiě)函數(shù)fun,其功能是:除了字符串前導(dǎo)的。號(hào)之外,將串中其他*號(hào)全部刪除。在編寫(xiě)函數(shù)時(shí).不得使用C語(yǔ)言提供的字符串函數(shù).
26.使用VC++2010打開(kāi)考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編寫(xiě)一個(gè)函數(shù)fun(),該函數(shù)的功能是將大于整數(shù)m且緊靠m的k個(gè)素?cái)?shù)存入所指的數(shù)組中。例如,若輸入17、5,則應(yīng)輸出19、23、29、31、37。注意:部分源程序在文件prog1.c中。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。試題程序:
27.使用VC++2010打開(kāi)考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,規(guī)定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫(xiě)函數(shù)其功能是使字符串的前導(dǎo)*號(hào)不得多于n個(gè),若多于n個(gè),則刪除多余的*號(hào);若少于或等于n個(gè),則不做處理。字符串中間和尾部的*號(hào)不刪除。例如,字符串中的內(nèi)容為“*******A*BC*DEF*G****”,若n的值為4,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是“****A*BC*DEF*G****”;若n的值為8,則字符串中的內(nèi)容仍為“*******A*BC*DEF*G****”。n的值在主函數(shù)中輸入。在編寫(xiě)函數(shù)時(shí),不得使用C語(yǔ)言提供的字符串函數(shù)。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。試題程序:#include<stdio.h>#include<conio.h>voidfun(char*a,intn){}voidmain(){ chars[81];intn; printf(“Enterastring:\n”); gets(s); printf(“Entern:”); scanf(“%d”,&n); fun(s,n); printf(“Thestringafterdeleted:\n”); puts(s);}
28.請(qǐng)編寫(xiě)函數(shù)proc(),它的功能是計(jì)算:s=(1n(1)4-1n(2)+In(3)4-…+1n(m))0.5在C語(yǔ)言中可調(diào)用log(n)函數(shù)求1n(n)。例如,若n1的值為30,則proc()函數(shù)值為8.640500。注意:部分源程序給出如下。請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。試題程序:
29.使用VC++2010打開(kāi)考生文件夾下prog1中的解決方案。此解決方案的項(xiàng)目中包含一個(gè)源程序文件prog1.c。在此程序中,請(qǐng)編寫(xiě)函數(shù)fun(),它的功能是求出能整除x且不是偶數(shù)的整數(shù),并將這些整數(shù)按從小到大的順序放在PP所指的數(shù)組中,總個(gè)數(shù)通過(guò)形參n返回。如x中的值為30,則有4個(gè)數(shù)符合要求,它們是1、3、5、15。注意:部分源程序在文件prog1.c中。請(qǐng)勿改動(dòng)主函數(shù)main()和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun()的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。試題程序:30.請(qǐng)編寫(xiě)函數(shù)proc(),其功能是:利用以下所示的簡(jiǎn)單迭代方法求方程cos(x)-x=0的一個(gè)實(shí)根。
xn+1=COS(xn)
迭代步驟如下:
(1)取x1初始值為0.0;
(2)x0=x1,把?X1的值賦給x0;
(3)x1=cos(xO),求出一個(gè)新的x1;
(4)若x0-x1的絕對(duì)值小于0.000001,則執(zhí)行步驟
(5),否則執(zhí)行步驟(2);
(5)所求x1就是方程cos(x)-x=0的一個(gè)實(shí)根,作為函數(shù)值返回。
程序?qū)⑤敵鼋Y(jié)果root=0.739085。
注意:部分源程序給出如下。
請(qǐng)勿改動(dòng)main()函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc()的花括號(hào)中填入所編寫(xiě)的若干語(yǔ)句。
試題程序:
四、2.程序修改題(10題)31.給定程序MODll.C中函數(shù)fun的功能是:比較兩個(gè)字符串,將長(zhǎng)的那個(gè)字符串的首地址作為函數(shù)值返回。
請(qǐng)改正函數(shù)fun中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
32.給定程序MODll.C中函數(shù)fun的功能是:統(tǒng)計(jì)一個(gè)無(wú)符號(hào)整數(shù)中各位數(shù)字值為零的個(gè)數(shù),通過(guò)形參傳回主函數(shù);并把該整數(shù)中各位上最大的數(shù)字值作為函數(shù)值返回。例如,若輸入無(wú)符號(hào)整數(shù)30800,則數(shù)字值為零的個(gè)數(shù)為3,各位上數(shù)字值最大的是8。
請(qǐng)改正函數(shù)fun中指定部位的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
33.給定程序MODll.C中函數(shù)fun的功能是;從低位開(kāi)始取出長(zhǎng)整型變量s中偶數(shù)位上的數(shù),依次構(gòu)成一個(gè)新數(shù)放在t中。高位仍在高位,低位仍在低位。
例如,當(dāng)s中的數(shù)為:7654321時(shí),t中的數(shù)為:642。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
34.下列給定程序中,函數(shù)fun()的功能是計(jì)算并輸出high以內(nèi)的素?cái)?shù)之和。high由主函數(shù)傳給fun()函數(shù)。
例如:若high的值為100,則函數(shù)的返回值為1060。
請(qǐng)改正程序中的錯(cuò)誤,使它能得到正確結(jié)果。
[注意]不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
[試題源程序]
#include<conio.h>
#include<stdio.h>
#include<math.h>
intfun(inthigh)
{
intsum=0,n=0,j,yes;
while(high>=2)
{
yes=1;
for(j=2;j<=high/2;j++)
**********************found**********************/
ifhigh%j==0
{
yes=0;
break;
}
/**********************found**********************/
if(yes==0)
{
sum+=high;
n++;
}
high--;
}
returnsum;
}
main()
{
clrscr();
printf("%d\n",fun(100));
}
35.下列給定程序中,函數(shù)fun()的功能是:計(jì)算s所指字符串中含有t所指字符串的數(shù)目,并作為函數(shù)值返回。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<conio.h>
#include<string.h>
#include<stdio.h>
#defineN80
intfun(char*s,char*t)
{intn;
char*p,*r;
n=0;
while(*s)
{p=s;
/**************found***************/
r=p;
while(*r)
if{*r==*p){r++;p++;}
elsebreak;
/**************found***************/
if(*r==0)
n++;
s++;
}
returnn;
}
main()
{chara[N],b[N];intm;
clrscr();
printf("\nPleaseenterstringa:");
gets(a);
printf("\nPleaseentersubstringb:");
gets(b);
m=fun{a,b);
printf("\nTheresultis:m=%d\n",m);
}
36.給定程序MODll.C中函數(shù)fun的功能是:根據(jù)整型形參m,計(jì)算如下公式的值。
例如,若m=2000,則應(yīng)輸出:0.000160。
請(qǐng)改正程序中的語(yǔ)法錯(cuò)誤,使它能計(jì)算出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
37.給定程序MODll.C中函數(shù)fun的功能是:將p所指字符串中的所有字符復(fù)制到b中,要求每復(fù)制三個(gè)字符之后插入一個(gè)空格。
例如,在調(diào)用fun函數(shù)之前給a輸入字符串:ABCDEFGHIJK,調(diào)用函數(shù)之后,字符數(shù)組b中的內(nèi)容則為:ABCDEFGHIJK。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
38.給定程序MODll.C中函數(shù)fun的功能是:將s所指字符串的正序和反序進(jìn)行連接,形成一個(gè)新串放在t所指的數(shù)組中。
例如,當(dāng)s所指字符串為:“ABCD”時(shí),則t所指字符串中的內(nèi)容應(yīng)為:“ABCDDCBA”。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
39.下列給定程序中,函數(shù)fun()的功能是:傳入一個(gè)整數(shù)m,計(jì)算如下公式的值。
t=1/2-1/3-…-1/m
例如,若輸入5,則應(yīng)輸出-0.283333。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)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));
}
40.下列給定程序中,函數(shù)fun()的功能是;計(jì)算函數(shù)F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x和y不相等,z和y不等。例如,當(dāng)x的值為9,y的值為11,2的值為15時(shí),函數(shù)值為-3.50。
請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include<stdio.h>
#include<math.h>
/**************found******************/
#defineFU(m,n)(m/n)
floatfun(floata,floatb,floatc)
{floatvalue;
value=FU(a+b,a-b)+FU(c+b,c-b);
/*************found******************/
return(Value);
}
main()
{floatx,y,z,sum;
printf("Inputxyz::");
scanf("%f%f%f",&x,&y,&z);
printf("x=%f,y=%f,z=%f\n",x,y,z);
if(x==y||y==z){printf("Dataerror!\n");
exit(0);}
sum=fun(x,y,z);
printf("Theresultis:%5.2f\n",sum);
}
五、程序改錯(cuò)題(2題)41.下列給定程序中,函數(shù)fun的功能是:求兩個(gè)非零正整數(shù)的最大公約數(shù),并作為函數(shù)值返回。例如,若nmnl和num2分別為49和21,則輸出的最大公約數(shù)為7;若num1和num2分別為27和81,則輸也的最大公約數(shù)為27。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或硼行,也不得更改程序的結(jié)構(gòu)!試題程序:
42.下列給定程序中,函數(shù)fun()的功能是:將str所指字符串中的字母轉(zhuǎn)換為按字母序列的后續(xù)字母(Z轉(zhuǎn)換A,z轉(zhuǎn)換a),其他字符不變。
請(qǐng)修改函數(shù)fun()中的錯(cuò)誤,得出正確的結(jié)果。
注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
六、操作題(2題)43.以下程序運(yùn)行后的輸出結(jié)果是【】。
#include<string.h>
voidfun(char*s,intP,intk)
{inti;
for(i=p;i<k-1;i++)s[i]=s[i+2];
main()
{chars[]="abcdefg";
fun(s,3,strlen(s));puts(s)
}
44.給定程序中,函數(shù)fun的功能是:調(diào)用隨機(jī)函數(shù)產(chǎn)生20個(gè)互不相同的整數(shù)放在形參a所指數(shù)組中(此數(shù)組在主函數(shù)中已置0)。
請(qǐng)?jiān)诔绦虻南聞澗€處填入正確的內(nèi)容并把下劃線刪除,使程序得出正確的結(jié)果。
注意:源程序存放在考生文件夾下的BLANKl.C中。
不得增行或刪行,也不得更改程序的結(jié)構(gòu)!
參考答案
1.
解析:冒泡排序法是通過(guò)相鄰數(shù)據(jù)元素的交換逐步將線性表變成有序。假設(shè)線性表的長(zhǎng)度為n,則在最壞的情況下,冒泡排序需要經(jīng)過(guò)遍的從前往后的掃描和遍的從后往前的掃描,需要的比較次數(shù)為。
2.算法或程序或流程圖算法或程序或流程圖解析:算法是問(wèn)題處理方案正確而完整的描述。
3.101091101091解析:for(表達(dá)式1;表達(dá)式2;表達(dá)式3)語(yǔ)句的功能是:首先計(jì)算表達(dá)式1的值,然后檢測(cè)表達(dá)式2的值,若其值為真,則執(zhí)行循環(huán)體語(yǔ)句,執(zhí)行完畢后,再計(jì)算表達(dá)式3的值。然后再檢測(cè)表達(dá)式2的值是否為真,若為真,繼續(xù)執(zhí)行循環(huán)體語(yǔ)句,若為假,則退出循環(huán);第1次循環(huán)x>8成立,輸出x=10,y=10后,x的值減1,i=1,執(zhí)行y=++i操作,y的值變?yōu)?;判斷條件還成立,輸出x=9,y=1,然后x的值減1,循環(huán)條件不成立,則退出循環(huán)。
4.完整性控制完整性控制
5.1030010300解析:在scanf格式控制符中有一個(gè)“*”附加說(shuō)明符,表示跳過(guò)它指定的列數(shù)。程序中'%d%*d%d'表示首先將10賦給i,然后遇%。d讀入整數(shù)但不賦給任何變量,最后將讀人的整數(shù)30賦給變量j,變量k并沒(méi)有重新賦值,仍為初始值0。所以輸出的結(jié)果為10300。
6.1818解析:設(shè)循環(huán)隊(duì)列的容量為n。若rear>front,則循環(huán)隊(duì)列中的元素個(gè)數(shù)為rear-front;若rear<front,則循環(huán)隊(duì)列中的元素個(gè)數(shù)為n+(rear-front)。題中,front=16,rear=9,即rear<front,所以,循環(huán)隊(duì)列中的元素個(gè)數(shù)為m+(rear-front)=25+(9-16)=18。
7.0111201112解析:在主函數(shù)中定義了整型變量f1和f2,并把其值賦為0和1,在屏幕上輸出。然后在第一次運(yùn)行for循環(huán)語(yǔ)句時(shí),變量f的值等于1,把其值輸出,把變量f1的值0賦給變量f2,變量f的值1賦給n,在執(zhí)行第二次for循環(huán)語(yǔ)句時(shí),變量f的值等于1,把此值輸出。然后再把變量f1的值1賦給變量f2,變量f的值1賦給f1,在執(zhí)行第三次for循環(huán)語(yǔ)句時(shí),變量f的值等于2,把此值輸出。所以程序運(yùn)行后的結(jié)果為01112。
8.*s1!='\0'或*s1*t0=*t1*s1++*t1++s1=t0或s1=s1+strlen(str1)*s1!='\\0'或*s1\r\n*t0=*t1\r\n*s1++\r\n*t1++\r\ns1=t0或s1=s1+strlen(str1)
9.55解析:本題的關(guān)鍵在于if(!(i%5))printf('\\n),這句,即如果i可被5整除時(shí),則換行。i值為24,可以被5整除4次,并余4,因此,prnt函數(shù)共輸出5行,最后一行有4個(gè)數(shù)。
10.軟件開(kāi)發(fā)
11.D
12.B
13.C
14.A
15.Cmark為結(jié)構(gòu)體中的數(shù)組,不能直接賦值,所以C選項(xiàng)錯(cuò)誤。故本題答案為C選項(xiàng)。
16.D
17.Cf函數(shù)的功能是對(duì)形參a的各個(gè)成員用結(jié)構(gòu)體變量b的各個(gè)成員進(jìn)行賦值后,然后返回變量a。
18.B水平制表符中,'\t'表示的是橫向跳若干格;選項(xiàng)B中,'\039'錯(cuò)誤,'\039'是八進(jìn)制形式表的字符,最大數(shù)為7,但其中出現(xiàn)'9',','是字符逗號(hào);選項(xiàng)D中,'\n'表示的是換行。
19.A本題考查按位與運(yùn)算,按位與就是相同為1,不同為0,把x=011050化成二進(jìn)制為0001001000101000,把01252化成二進(jìn)制為0000001010101010,兩者相與得0000001000101000。
20.C解析:1.getchar():此函數(shù)的作用是從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入一個(gè)字符。
2.putchar():此函數(shù)的作用是向終端輸出一個(gè)字符,也可以輸出控制字符。本題在輸入字符時(shí),ab和c后面的回車(chē)符分別賦給了c[2]和c[4],所以,正確答案為C。
21.
【解析】要將M行N列的二維數(shù)組中的數(shù)據(jù),按行的順序依次放到一維數(shù)組中,可以首先通過(guò)行循環(huán),然后列循環(huán)取出二維數(shù)組中的每一個(gè)元素,并將其放入一維數(shù)組中,最后將一維數(shù)組的長(zhǎng)度通過(guò)形參返回到主函數(shù)當(dāng)中。
22.
【解析】要計(jì)算n門(mén)課程的平均分,首先可以求得n門(mén)課程的總分,然后除以n得到其平均分,最后將其平均分返回到主函數(shù)中。
23.voidfun(inttt[M][N],intpp[N]){ inti,j,max; for(j=0;j<=""p=""> { max=tt[0][j]; /*假設(shè)各列中的第1個(gè)元素值最大*/ for(i=0;i<=""p=""> if(tt[i][1]>max)/*如果各列中的其他元素值比最大值大,則將這個(gè)值更大的元素看作當(dāng)前該列中值最大的元素*/ max=tt[i][j]; pp[j]=max; /*將各列的最大值依次放入pp數(shù)組中*/ }}本題函數(shù)fun()的功能是求出二維數(shù)組中每列值最大的元素。首先,假設(shè)各列中的第1個(gè)元素值最大,然后利用行下標(biāo)的移動(dòng)來(lái)依次取得各列中其他元素的值,并與假設(shè)的最大值進(jìn)行比較,如果遇到更大的,則把這個(gè)值更大的元素看作當(dāng)前該列中值最大的元素,繼續(xù)與該列中的其他元素進(jìn)行比較。
24.
【解析】首先定義一個(gè)變量來(lái)存放表達(dá)式的和,根據(jù)題目中提供的多項(xiàng)式,通過(guò)n次循環(huán)來(lái)求出n項(xiàng)的和。最后把所求得的和返回到主函數(shù)當(dāng)中。
25.
程序設(shè)計(jì)題解析:
【考點(diǎn)分析】
本題考查:指針型變最定義;wh丑e循環(huán)語(yǔ)句;語(yǔ)句條件
表達(dá)式;字符串結(jié)束標(biāo)識(shí)‘\0’。
【解題思路】
函數(shù)fun的功能:除了字符串前導(dǎo)的*號(hào)之外,將串中其他+號(hào)全部刪除。
【解答本題】
(1)定義一個(gè)臨時(shí)指針P,初始指向原串首地址;(2)利用循環(huán)語(yǔ)句把字符串前導(dǎo)*號(hào)拷貝到原串;(3)繼續(xù)移動(dòng)指針,把串中和串尾的非*號(hào)字符拷貝到原串;(4)為修改后的字符串賦結(jié)束字符‘、O’。
【解題寶典】
要?jiǎng)h除字符串中的指定字符,我們通常采用保留非指定字符的方法。可以將非指定字符保留在原串,即將需要保留的字符從原串的起始位置重新賦值;也可以保留到新串,即新建一個(gè)字符串,存放要保留的字符。26.1voidfun(intm,intk,intxx[])2{3inti,j,n;4for(i=m+1,n=0;n<k;i++)p*<>找大于m的素?cái)?shù),循環(huán)k次,即找出緊靠m的k個(gè)素?cái)?shù)*/5{for(j=2;j<i;j++)p*#]斷一<>個(gè)M否為素?cái)?shù),如果不是,跳出此循環(huán),判斷下一個(gè)數(shù)*/6if(i%j==0)break;7if(j>=i)/*如果是素?cái)?shù),存入數(shù)組XX中*/8xx[n++]=i;9}10}本題主要考查素?cái)?shù)的判定方法。如果一個(gè)數(shù)不能被除了1和其自身以外的數(shù)整除,則這個(gè)數(shù)為素?cái)?shù)。本程序使用循環(huán)語(yǔ)句控制需要判斷的數(shù),在循環(huán)體中判斷該數(shù)是否為素?cái)?shù),若是則存入數(shù)組XX中。當(dāng)數(shù)組XX的素?cái)?shù)個(gè)數(shù)為k個(gè)時(shí),退出循環(huán)。</i;j++)p*#]斷一<></k;i++)p*<>27.voidfun(char*a,intn){ inti=0,k=0; char*p,*t; p=t=a; /*開(kāi)始時(shí),p與t同時(shí)指向數(shù)組的首地址*/ while(*t==‘*’) /*用k來(lái)統(tǒng)計(jì)前導(dǎo)星號(hào)的個(gè)數(shù)*/ {k++;t++;} if(k>n) /*如果k大于n,則使p的前導(dǎo)保留n個(gè)星號(hào),其后的字符依次存入數(shù)組a中*/ { while(*p) { a[i]=*(p+k-n); i++; p++; } a[i]=‘\0’; /*在字符串最后加上字符串結(jié)束標(biāo)志*/ }}字符串中前導(dǎo)*號(hào)不能多于n個(gè),多余的應(yīng)刪除。首先需要通過(guò)while循環(huán)統(tǒng)計(jì)字符串前導(dǎo)*號(hào)的個(gè)數(shù),然后通過(guò)if條件語(yǔ)句完成前導(dǎo)*號(hào)的個(gè)數(shù)和n的比較,如果前導(dǎo)*號(hào)多于n個(gè),則需要把n個(gè)*號(hào)和其余字符重新保留。
28.
【解析】由題目中所給表達(dá)式可知,表達(dá)式的值為m項(xiàng)表達(dá)式的和然后開(kāi)平方??梢允紫韧ㄟ^(guò)m次循環(huán)求得m項(xiàng)表達(dá)式的和,然后將其和開(kāi)平方并返回到主函數(shù)當(dāng)中。
29.1voidfun(intx,intpp[],int*n)2{3inti,j=0;4for(i=l;i<=x;i=i+2)/*i的初值為1,步長(zhǎng)為2,確保i為奇數(shù)*/5if(x%i==0)/*將能整除x的數(shù)存入數(shù)組pp中*/6pp[j++]=i;7*n=j;/*傳回滿足條件的數(shù)的個(gè)數(shù)*/8}本題考查:偶數(shù)的判定方法;整除的實(shí)現(xiàn)。本題題干信息:能整除X且不是偶數(shù)的所有整數(shù)。循環(huán)語(yǔ)句中變量i從1開(kāi)始且每次遞增2,所以i始終是奇數(shù)。將能整除x的i值存放到數(shù)組PP中,整除采用求余運(yùn)算符“%”,即“x%i==0”。最后將數(shù)據(jù)元素個(gè)數(shù)j保存到n中。
30.
【解析】本題比較簡(jiǎn)單,因?yàn)轭}目中已經(jīng)給出了算法,只要把題目中的說(shuō)法轉(zhuǎn)換成C語(yǔ)言表達(dá)式基本上就出來(lái)了,本題最好用do-while循環(huán)來(lái)做,但要注意循環(huán)終止的條件。
31.(1)char*fun(char*schar*t)(2)ss++;(3)tt++;(1)char*fun(char*s,char*t)(2)ss++;(3)tt++;解析:本題中函數(shù)的功能是比較兩個(gè)字符串,將長(zhǎng)的那個(gè)字符串的首地址作為函數(shù)值返回。解題思路是對(duì)調(diào)試過(guò)程中產(chǎn)生的錯(cuò)誤提示進(jìn)行跟蹤,也就是題干中給出的錯(cuò)誤標(biāo)識(shí)符號(hào)下的語(yǔ)句。
32.(1)if(t==0)(2)*zero=count;(1)if(t==0)(2)*zero=count;解析:本題中函數(shù)的功能是統(tǒng)計(jì)一個(gè)無(wú)符號(hào)整數(shù)中各位數(shù)字值為0的個(gè)數(shù)。對(duì)無(wú)符號(hào)數(shù)進(jìn)行截取,然后對(duì)每個(gè)數(shù)字進(jìn)行判斷并統(tǒng)計(jì)。
33.(1)voidfun(10ngslong*t)(2)while(s>0)(1)voidfun(10ngs,long*t)(2)while(s>0)解析:該題中函數(shù)功能是取出長(zhǎng)整型變量s中偶數(shù)位上的數(shù),組成新數(shù)。從已給定源程序的main主函數(shù)開(kāi)始入手,“fun(s,&t);”語(yǔ)句調(diào)用函數(shù)fun來(lái)實(shí)現(xiàn)題目要求。
34.(1)錯(cuò)誤:ifhigh%j==0正確:if(high%j==0)(2)錯(cuò)誤:if(yes==0)正確:if(yes)(1)錯(cuò)誤:ifhigh%j==0\r\n正確:if(high%j==0)\r\n(2)錯(cuò)誤:if(yes==0)\r\n正確:if(yes)解析:fun函數(shù)的功能是:用while循環(huán)查找high以內(nèi)的素?cái)?shù);用for循環(huán)判斷一個(gè)數(shù)是否為素?cái)?shù);用變量n記錄找到的素?cái)?shù)的個(gè)數(shù):用return返回素?cái)?shù)之和sum。
錯(cuò)誤1:這個(gè)錯(cuò)誤比較明顯,if語(yǔ)句的兩側(cè)要加括號(hào)。
錯(cuò)誤2:yes為1時(shí),說(shuō)明被判斷的數(shù)是素?cái)?shù),要累加到sum。
35.(1)錯(cuò)誤:r=p;正確;r=t;(2)錯(cuò)誤:if(*r=0)正確:if(*r=='\0')(1)錯(cuò)誤:r=p;正確;r=t;\r\n(2)錯(cuò)誤:if(*r=0)正確:if(*r=='\\0')解析:從字符串s中找出子字符串的方法是:從第1個(gè)字符開(kāi)始,對(duì)字符串進(jìn)行遍歷;若s串的當(dāng)前字符等于t串的第1個(gè)字符,兩字符串的指針自動(dòng)加1,繼續(xù)比較下一個(gè)字符:若比較至字符串的結(jié)尾,則跳出循環(huán):若s串的字符和t串的字符不對(duì)應(yīng)相同,則繼續(xù)對(duì)s串的下一個(gè)字符進(jìn)行處理。
36.(1)doublefun(intm)(2)for(i=100;i<=m;i+=100)(1)doublefun(intm)(2)for(i=100;i<=m;i+=100)解析:本題中函數(shù)的功能是計(jì)算公式的值。關(guān)于題干公式的求解過(guò)程,首先根據(jù)題干中給出的公式推出每一項(xiàng)之間的關(guān)系,求出每一項(xiàng)的表達(dá)式,然后求得數(shù)列的值。
37.(1)b[k]=*p;(2)b[k++]=’’;(1)b[k]=*p;(2)b[k++]=’’;解析:本題中函數(shù)的功能是將字符串p中的所有字符復(fù)制到字符串b中,要求每復(fù)制三個(gè)字符之后插入一個(gè)空格。本題可以利用一個(gè)計(jì)算數(shù)器統(tǒng)計(jì)復(fù)制字符的個(gè)數(shù),根據(jù)計(jì)數(shù)器的值決定什么時(shí)候輸入空格。
38.(1)v
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ìng)選班委應(yīng)聘報(bào)告范文
- 2025屆高考政治一輪復(fù)習(xí)課時(shí)作業(yè)32哲學(xué)基本思想馬克思主義哲學(xué)含解析
- 業(yè)務(wù)員實(shí)習(xí)報(bào)告范文
- 高中結(jié)題報(bào)告范文
- 2025中餐店商品采購(gòu)合同
- 2025進(jìn)口食品采購(gòu)合同協(xié)議書(shū)
- 2025年寧德年貨運(yùn)從業(yè)資格證
- 中國(guó)金屬臺(tái)燈項(xiàng)目投資可行性研究報(bào)告
- 中國(guó)單效收膏裝置項(xiàng)目投資可行性研究報(bào)告
- 2025標(biāo)準(zhǔn)房屋買(mǎi)賣(mài)合同范本
- 歌唱語(yǔ)音智慧樹(shù)知到期末考試答案章節(jié)答案2024年齊魯師范學(xué)院
- 山西省晉城市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會(huì)明細(xì)
- 中國(guó)石油集團(tuán)公司井噴事故案例匯編
- 最全面浙美版六年級(jí)上冊(cè)美術(shù)復(fù)習(xí)資料
- 中國(guó)低齡孤獨(dú)癥譜系障礙患兒家庭干預(yù)專(zhuān)家共識(shí)
- 醫(yī)院特殊使用級(jí)抗菌藥物使用管理流程
- 中國(guó)現(xiàn)當(dāng)代文學(xué)整本書(shū)課件完整版電子教案全套課件最全教學(xué)教程ppt(最新)
- 檢驗(yàn)科[全套]SOP文件-供參考
- 設(shè)備故障報(bào)修維修記錄單
- 一般行業(yè)建設(shè)項(xiàng)目安全條件和設(shè)施綜合分析報(bào)告
- 四年級(jí)體育與健康上冊(cè)復(fù)習(xí)題與答案
評(píng)論
0/150
提交評(píng)論