浙江省二级C语言程序编写题库.docx

上传人:b****6 文档编号:4330622 上传时间:2022-11-29 格式:DOCX 页数:38 大小:30.84KB
下载 相关 举报
浙江省二级C语言程序编写题库.docx_第1页
第1页 / 共38页
浙江省二级C语言程序编写题库.docx_第2页
第2页 / 共38页
浙江省二级C语言程序编写题库.docx_第3页
第3页 / 共38页
浙江省二级C语言程序编写题库.docx_第4页
第4页 / 共38页
浙江省二级C语言程序编写题库.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

浙江省二级C语言程序编写题库.docx

《浙江省二级C语言程序编写题库.docx》由会员分享,可在线阅读,更多相关《浙江省二级C语言程序编写题库.docx(38页珍藏版)》请在冰豆网上搜索。

浙江省二级C语言程序编写题库.docx

浙江省二级C语言程序编写题库

一、程序填空

(1)找Armstrong(水仙花)数:

371=3*3*3+7*7*7+1*1*1

(2)输入1个整数后,输出该数的位数。

(例:

输入3214则输出4,输入-23156则输出5)。

(3)求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。

(4)调用函数f,将一个整数首尾倒置。

例如:

若程序输入12345,则输出54321;若程序输入-34567,则输出-76543。

(5)调用函数f,从字符串中删除所有的数字字符。

(6)调用find函数在输入的字符串中查找是否出现"the"这个单词。

如果查到返回出现的次数,如果未找到返回0。

(7)输入的一个小写字母,将字母循环后移5个位置后输出。

例如:

"a"变成"f","w"变成"b"。

(8)将字符串s中所有的字符'c'删除。

(9)对x=1,2,……,10,求f(x)=x*x-5*x+sin(x)的最大值。

(10)输入三个整数,按由小到大的顺序输出这三个数。

(11)调用函数f,去除数组中的负数,输入数组x[7],输出结果为:

1346

(12)调用函数f计算代数多项式1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5*x*x*x*x当x=1.7时的值。

(13)分别统计字符串中英文字母、数字、和其他字符出现的次数。

(14)将输入的十进制整数n通过函数DtoH函数转换为十六进制数,并将转换结果以字符串形式输出。

(15)将输入的十进制正整数n通过函数Dec2Bin转换为二进制数,并将转换结果输出。

(16)数列的第1、2项均为1,此后各项值均为该项前二项之和。

计算数列第30项的值。

(17)该程序计算四位学生的平均成绩,保存在结构中,然后列表输出这些学生的信息。

(18)输入m、n(要求输入数均大于0)。

输出它们的最大公约数。

(19)求出a中各相邻两个元素的和,并将这些和存放在数组b中,按每行3个元素的形式输出。

例如:

b[1]=a[0]+a[1],……,b[9]=a[8]+a[9]。

(20)输入整数n(n>0),求m使得2的m次方小于或等于n,2的m+1次方大于或等于n。

二、程序改错

(1)输入一个字符串,将组成字符串的所有非英文字母的字符删除后输出。

(2)输入一个字符串,将组成字符串的所有字符先按顺序存放到字符串t中,再将字符串中的字符按逆序连接到字符串t后面。

例如:

输入"ABCD",则字符串t为"ABCDDCBA"。

(3)运行时输入10个数,然后分别输出其中的最大值、最小值。

(4)用选择法对10个整数按升序排序。

(5)输入x和正数eps,计算多项式1-x+x*x/2-x*x*x/3!

+……的和直到末项的绝对值小于eps为止。

(6)运行时若输入a、n分别为3、6,则输出下列表达式的值:

3+33+333+3333+33333+333333。

(7)用递归法将一个六位整数n转换称字符串。

例如:

输入123456,应输出字符串"123456"。

(8)输入n,再输入n个点的平面坐标,然后输出那些距离坐标原点不超过5的点的坐标值。

(9)运行时输入n,则输出n的所有质数因子。

例如:

n=13860,则输出2、2、3、3、5、7、11。

三、编写程序

(1)在正整数中找出1个最小的、被3、5、7、9除余数分别为1、3、5、7的数,将该数以格式"%d"写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat中。

(2)若a、b为1对亲密数,则a的因子和等于b、b的因子和等于a、且a不等于b。

如:

220、284是1对亲密数,284、220也是1对亲密数。

在6~5000内找出所有的亲密数对,并将每对亲密数用语句fprintf(p,"%6d,%6d\n",a,b)写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat。

(3)设计程序:

计算字符串s中每个字符的权重值,所谓权重值就是字符在字符串中的位置值与该字符的ASCII码值的乘积。

位置值从1开始依此递增。

将每个字符的权重值,以格式"%d"写入到源程序目录中Paper子目录下的新建文件design.dat中。

(4)将数组a的每一行均除以该行上绝对值最大的元素,然后将a数组写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat。

(5)z=f(x,y)=(3.14*x-y)/(x+y),若x、y取值为区间[1,6]的整数,找出使z取最小值的x1、y1,并将x1、y1以格式"%d,%d"写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat。

(6)z=f(x,y)=10*cos(x-4)+5*sin(y-2),若x、y取值为区间[0,10]的整数,找出使z取最小值的x1、y1,并将x1、y1以格式"%d,%d"写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat。

(7)设计程序:

数组元素x[i]、y[i]表示平面上某点坐标,统计所有各点间最短距离,并将其值以格式"%f"写到源程序目录中Paper子目录下的新建文件design.dat中。

(8)设计程序:

在数组x的10个数中求平均值v,找出与v相差最小的数组元素并将其以格式"%.5f"写到考生目录中Paper子目录下的新建文件design.dat中。

(9)对x=1,2,…10,求函数f(x)=x-10*cos(x)-5*sin(x)的最大值,并将该数以格式".3f"写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat。

(10)将字符串s中的所有字符按ASCII值从小到大重新排序后,将排序后的字符串写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat。

(11)在整数数组a中找出偶数放到b数组中,对b数组按从小到大的顺序进行排序后以格式"%3d"每行3个数写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat。

(12)计算多项式a0+a1*x+a2*x*x+a3*x*x*x+…+a9*x*x*x*x*x*x*x*x*x的值,并将其值以格式"%f"写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat。

(13)利用公式π/4≈1-1/3+1/5-1/7+……公式计算π的近似值,直到某一项的绝对值小于1e-6为止。

(π/4的结果不包含此项)将计算结果以格式"%.6f"写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat。

(14)计算表达式1+2!

+3!

+…+12!

的值,并将计算结果以格式"%ld"写入考生文件夹中Paper子文件夹下的新建文件Design2.dat。

(15)计算数列1,-1/3!

,1/5!

,-1/7!

,1/9!

,……的和至某项的绝对值小于1e-5时为止(该项不累加),将求和的结果以格式"%.6f"写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat中。

(16)计算多项式a0+a1*sin(x)+a2*sin(x*x)+a3*sin(x*x*x)+…..+a9*sin(x*x*x*x*x*x*x*x*x)的值,并将结果以格式"%.6f"写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat中。

(17)有数列:

2/1,3/2,5/3,8/5,13/8,21/13,......求出数列的前40项的和。

将计算结果以格式"%.6f"写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat中。

(18)累加a字符串各个字符的ASCII码值,然后将累加和以格式"%d"写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat中。

(19)计算2的平方根、3的平方根、……、10的平方根之和,要求计算结果具有小数点后10位有效位数,并以格式"%.10f\n"写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat中。

(20)x[i],y[i]分别表示平面上的一个点的坐标,求下列10个点与点(1.0,1.0)的距离的总和,并将结果以格式"%.6f"写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat。

(21)在正整数中找出1个最小的、被3、5、7、9除余数分别为1、3、5、7的数,将该数以格式"%d"写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat中。

(22)寻找并输出11至999之间的数m,它满足m、m*m、m*m*m均为回文数。

说明:

所谓回文数是指各位数字左右对称,例如121、676、94249等。

满足上述条件的数如m=11,m^2=121,m^3=1331皆为回文数。

请编制函数intJSValue(longm)实现此功能,如果是回文数,则函数返回1,反之则返回0。

最后把结果写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat。

(23)数组元素x[i]、y[i]表示平面上某点坐标,统计10个点中处在圆(方程为:

(x-1)*(x-1)+(y+0.5)*(y+0.5)=25)内的点数k,并将变量k的值以格式"%d"写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat。

(24)某公司1999年年产量11.5万件,生产能力每年提高9.8%,求出产量能超过x万件的年份,结果由函数Year返回。

分别计算当x=20和x=30时的结果,将计算结果写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat。

(25)求斐波那契(Fibonacci)数列中其前40项之和,(斐波那契数列的定义为后一项为前两项之和),并将求和的结果以格式"%d"写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat。

(26)求斐波那契(Fabonacci)数列中大于t的最小的一个数,结果由函数JSValue返回,其中斐波那契数列F(n)的定义为:

F(0)=0,F

(1)=1

F(n)=F(n-1)+F(n-2)

分别计算当t=1000和t=3000时的结果,将计算结果写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat。

(27)已知公鸡每只5元、母鸡每只3元、小鸡1元3只。

求出用100元买100只鸡的解。

将得到的解按公鸡、母鸡和小鸡的只数以格式"%d,%d,%d"写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat。

(28)统计满足条件x*x+y*y+z*z==2000的所有解的个数,(注意:

若a、b、c是一个解,则a、c、b也是一个解,等等)。

并将统计结果以格式"%d"写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat。

(29)将数组a的每1行均除以该行上的主对角线元素(第1行除以a[0][0],第2行除以a[1][1],……),然后将a数组写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat。

(30)计算500~800区间内素数的个数cnt和素数和sum。

请编写函数JSValue()实现程序的要求。

最后把cnt和sum的值写入到考生文件夹中Paper子文件夹下的新建文件Design2.dat。

(31)将满足条件pow(1.05,n)<1e6

(1)找Armstrong(水仙花)数:

371=3*3*3+7*7*7+1*1*1

#include

#include

voidmain()

{inti,a,b,c;

for(i=100;i<=999;i++)

{a=i/100;

_______1_______//b=i%100/10;

c=i%10;

if(________2________)//a*a*a+b*b*b+c*c*c==i

printf("%disaArmstrongnumber!

\n",i);

}

}

(2)输入1个整数后,输出该数的位数。

(例:

输入3214则输出4,输入-23156则输出5)。

#include

voidmain()

{intn,k=0;

scanf("%d",&n);

while(_____1_____){//n!

=0

k++;

_____2_____;//n=n/10

}

printf("%d\n",k);

}

(3)求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。

#include

#include

voidmain()

{

intn,s=0;

scanf("%d",&n);

______1______//if(n<0)n=-n;

while(n!

=0){

______2______//s+=n%10;

n=n/10;

}

printf("%d\n",s);

}

(4)调用函数f,将一个整数首尾倒置。

例如:

若程序输入12345,则输出54321;若程序输入-34567,则输出-76543。

#include

#include

longf(longn)

{longm,y=0;m=fabs(n);

while(m!

=0){

y=y*10+m%10;

____1____//m=m/10;

}

if(n>=0)returny;

else_____2_____//return-y;

}

voidmain()

{

printf("%ld\t",f(12345));printf("%ld\n",f(-34567));

}

(5)调用函数f,从字符串中删除所有的数字字符。

#include

#include

#include

voidf(char*s)

{inti=0;

while(s[i]!

='\0'){

if(isdigit(s[i]))____1____(s+i,s+i+1);//strcpy

___2___i++;}//else

}

voidmain()

{charstr[80];

gets(str);f(str);puts(str);

}

(6)调用find函数在输入的字符串中查找是否出现"the"这个单词。

如果查到返回出现的次数,如果未找到返回0。

#include

intfind(char*str)

{char*fstr="the";

inti=0,j,n=0;

while(str[i]!

='\0')

{

for(______1______)//j=0;j<3;j++

if(str[j+i]!

=fstr[j])break;

if(______2______)n++;//j>=3

i++;

}

returnn;

}

voidmain()

{chara[80];

gets(a);

printf("%d",find(a));

}

(7)输入的一个小写字母,将字母循环后移5个位置后输出。

例如:

"a"变成"f","w"变成"b"。

#include

voidmain()

{charc;

c=getchar();

if(______1______)//c>='a'&&c<='u'

c=c+5;

else

if(c>='v'&&c<='z')

______2______//c=(c-'a'+5)%26+'a';

putchar(c);

}

(8)将字符串s中所有的字符'c'删除。

#include

voidmain()

{chars[80];

inti,j;

gets(s);

for(i=j=0;______1______;i++)//s[i]!

='\0'

if(s[i]!

='c')

{s[j]=s[i];

______2______//j++;

}

s[j]='\0';

puts(s);

}

(9)对x=1,2,……,10,求f(x)=x*x-5*x+sin(x)的最大值。

#include

#include

#definef(x)x*x-5*x+sin(x)

voidmain()

{intx;floatmax;

______1______//max=f

(1);

for(x=2;x<=10;x++)

______2______//if(f(x)>max)max=f(x);

printf("%f\n",max);

}

(10)输入三个整数,按由小到大的顺序输出这三个数。

#include

voidswap(______1______)//int*pa,int*pb

{/*交换两个数的位置*/

inttemp;

temp=*pa;

*pa=*pb;

*pb=temp;

}

voidmain()

{inta,b,c,temp;

scanf("%d%d%d",&a,&b,&c);

if(a>b)

swap(&a,&b);

if(b>c)

swap(&b,&c);

if(______2______)//if(a>b)

swap(&a,&b);

printf("%d,%d,%d",a,b,c);

}

(11)调用函数f,去除数组中的负数,输入数组x[7],输出结果为:

1346

#include//数组元素的删除

voidf(int*a,int*m)

{inti,j;

for(i=0;i<*m;i++)

if(a[i]<0){

for(j=i--;j<*m-1;j++)a[j]=a[j+1];

_____1_____;//*m=*m-1;

}

}

voidmain()

{inti,n=7,x[7]={1,-2,3,4,-5,6,-7};

_______2_______;//f(x,&n);

for(i=0;i

printf("\n");

}

(12)调用函数f计算代数多项式1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5*x*x*x*x当x=1.7时的值。

#include

floatf(float,float*,int);

voidmain()

{floatb[5]={1.1,2.2,3.3,4.4,5.5};

printf("%f\n",f(1.7,b,5));

}

floatf(_______1________)//floatx,float*a,intn

{floaty=a[0],t=1;inti;

for(i=1;i

_____2_____//returny;

}

(13)分别统计字符串中英文字母、数字、和其他字符出现的次数。

#include

#include

voidmain()

{chara[80];intn[3]={0},i;gets(a);

________1________//for(i=0;a[i]!

='\0';i++)

{if(tolower(a[i])>='a'&&tolower(a[i])<='z')/*统计字母个数*/

n[0]++;

elseif(________2________)/*统计数字个数*///a[i]>='0'&&a[i]<='9'

n[1]++;

else

n[2]++;

}

for(i=0;i<3;i++)printf("%d\n",n[i]);

}

(14)将输入的十进制整数n通过函数DtoH函数转换为十六进制数,并将转换结果以字符串形式输出。

(例如:

输入十进制数79,将输出十六进制4f。

#include

#include

chartrans(intx)

{

if(x<10)return'0'+x;

else_______1________//return'a'+x-10;

}

intDtoH(intn,char*str)

{

inti=0;

while(n!

=0)

{

________2________//str[i]=trans(n%16);

n/=16;i++;}

returni-1;

}

voidmain()

{

inti,k,n;

char*str;

scanf("%d",&n);

k=DtoH(n,str);

for(i=0;i<=k;i++)printf("%c",str[k-i]);

}

(15)将输入的十进制正整数n通过函数Dec2Bin转换为二进制数,并将转换结果输出。

#include

voidDec2Bin(intm)

{

intbin[32],j;

for(j=0;m!

=0;j++)

{

bin[j]=______1______;//m%2

m=m/2;

}

for(;j!

=0;j--)

printf("%d",______2______);//bin[j-1]

}

voidmain()

{

intn;

scanf("%d",&n);

Dec2Bin(n);

}

(16)数列的第1、2项均为1,此后各项值均为该项前二项之和。

计算数列第30项的值。

#include

_______1______//longf(intn);或者longf(int);

voidmain()

{printf("%ld\n",f(30));

}

longf(intn)

{if(______2______)//n==1||n==2

return1;

else

returnf(n-1)+f(n-2);

}

(17)该程序计算四位学生的平均成绩,保存在结构中,然后列表输出这些学生的信息。

#include

structSTUDENT

{charname[16];

intmath;

intenglish;

intcomputer;

intaverage;

};

voidGetAverage(structSTUDENT*pst)/*计算平均成绩*/

{intsum=0;

sum=______1______;//

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1