2023年浙江省二级C语言程序编写题库_第1页
2023年浙江省二级C语言程序编写题库_第2页
2023年浙江省二级C语言程序编写题库_第3页
2023年浙江省二级C语言程序编写题库_第4页
2023年浙江省二级C语言程序编写题库_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、程序填空

(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",变成“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子文献夹下的新建文献Designl.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,...1O,求函数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)运用公式B/4-1T/3+1/5-1/7+……公式计算n的近似值,直到某一项的绝对值小于le-6为止。(n/4的

结果不包含此项)将计算结果以格式”%.6「写入到考生文献夹中Paper子文献夹下的新建文献Design1.dat。

(14)计算表达式1+2!+3!+…+12!的值,并将计算结果以格式“%Id”写入考生文献夹中Paper子文献夹下的新建文

献Design2.dat。

(15)计算数列1,-1/3!,1/5!,-1/7!,1/9!.........的和至某项的绝对值小于1e-5时为止(该项不累加),将求和

的结果以格式"%.6f”写入到考生文献夹中Paper子文献夹下的新建文献Designl.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项的和。将计算结果以格式"%⑹"写入到

考生文献夹中Paper子文献夹下的新建文献Designl.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,mA2=121,mA3=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子文献夹下的新建文献Designl.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子文献夹下的新建文献

Designl.dat.

(27)已知公鸡每只5元、母鸡每只3元、小鸡1元3只。求出用100元买100只鸡的解。将得到的解按公鸡、

母鸡和小鸡的只数以格式"%d,%d,%d"写入到考生文献夹中Paper子文献夹下的新建文献Designl.dat。

(28)记录满足条件x*x+y*y+z*z==2023的所有解的个数,(注意:若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区间内素数的个数ent和素数和sum。请编写函数JSValue。实现程序的规定。最后把ent

和sum的值写入到考生文献夹中Paper子文献夹下的新建文献Design2.dat。

(31)将满足条件pow(1.05,n)v1e6vpow(1.05,n+1)的n及其相应pow(1.05,n)值以格式”%4%.0f‘写入到考生文

献夹中Paper子文献夹下的新建文献Design2.dat。

(1)找Armstrong(水仙花)数:371=3*3*3+7*7*7+1*1*1

#include<stdio.h>

#include<math.h>

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<stdio.h>

voidmain()

{intn,k=0;

scanf("%d'',&n);

while(_____1){//n!=0

k++;

2;//n=n/10

}

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

)

(3)求输入的整数各位数字之和,如输入234则输出9,输入612则输出60

#include<stdio.h>

#include<math.h>

voidmain()

(

intn,s=0;

scanf(M%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,贝U输出54321;若程序输入-34567,则输出-76543c

include<stdio.h>

#include<math.h>

longf(longn)

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

while(m!=0){

y=y*10+m%10;

____1____//m=m/10:

)

if(n>=0)returny;

else2//return-y;

)

voidmain()

(

printf(H%ld\C,f(12345));printf("%ld\n0,f(-34567));

)

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

#include<stdio.h>

#include<string.h>

include<ctype.h>

voidf(char*s)

{inti=0;

while(s[i]!=\0'){

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

2i++;}//else

)

voidmain()

{charstr[80];

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

)

(6)调用find函数在输入的字符串中查找是否出现"the”这个单词。假如查到返回出现的次数,假如未找到返回0。

#include<stdio.h>

intfind(char*str)

{char*fstr="the";

inti=O,j,n=O;

while(str[i]!=Y)')

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”变成十,变成"b"。

include<stdio.h>

voidmain()

{charc;

c=getchar();

if(1)//c>=目&&c<;U

c=c+5;

else

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

2//c=(c->a'+5)%26+'a,;

putchar(c);

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

#include<stdio.h>

voidmain()

{chars[80];

inti,j;

gets(s);

for(i=j=0;1;i++)//s[i]!=>\0'

if(s[i]!='c')

{sD]=s[i];

2//j++;

)

sO]='\0';

puts(s);

)

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

include<stdio.h>

#include<math.h>

#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<stdio.h>

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

{/*互换两个数的位置7

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<stdio.h>//数组元素的删除

voidf(int*a,int*m)

{inti.j;

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

if(a[i]<0){

for(j=i-;j<*m-1;j++)a0]=a0+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<n;i++)printf("%5d",x[i]);

printfCn");

)

(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<stdio.h>

floatf(float,float*,int);

voidmain()

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

',

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

)

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

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

for(i=1;i<n;i++){t=t*x;y=y+a[i]*t;}

2//returny;

)

<13)分别记录字符串中英文字母、数字、和其他字符出现的次数。

#include<stdio.h>

#include<ctype.h>

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])v='z')/"记录字母个数7

n[0]++;

elseif(2)/*记录数字个数*/〃a[i]>='0'&&a[i]<=,9,

n[1]++;

else

n[2]++;

)

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

)

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

输出卜六进制4f。)

#include<stdio.h>

#include<string.h>

chartrans(intx)

(

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

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

)

intDtoH(intn.char*str)

(

inti=0;

while(n!=0)

(

2Hstr[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<stdio.h>

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(M%d",&n);

Dec2Bin(n);

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

#include<stdio.h>

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<stdio.h>

structSTUDENT

{charname[16];

intmath;

intenglish;

intcomputer;

intaverage;

);

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

{intsum=0;

sum=1;//pst->math+pst->engtish+pst->computer

pst->average=sum/3;

)

voidmain()

{inti;

structSTUDENTst[4]={{,,Jessica",98,95,90},{,,Mike",80,80,90},

「Linda”,87,76,70},{"Peter”,90,100,99}};

for(i=0;i<4;i++)

{GetAveraae(2)://st+i

)

printf(MName\tMath\tEnglish\tCompu\tAverage\n");

for(i=0;i<4;i++)

{printf("%s\t%d\t%d\t%d\t%d\n",st[i].name,st[i].math,st[i].english,

st[i].computer,st[i].average);

)

)

(18)输入m、n(规定输入数均大于0)。输出它们的最大公约数。

#include<stdio.h>

voidmain()

{intm,n,k;

while(scanf("%d%dM,&m,&n),1);//m<=0||n<=0

for(2;n%k!=0||m%k!=0;k-);//k=m>n?n:m

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

)

(19)求出a中各相邻两个元素的和,并将这些和存放在数组b中,按每行3个元素的形式输出。例如:b[1]=a⑼+或1]........,b[9]=a[8]+a[9]o

#include<stdio.h>

voidmain()

{inta[10],b[10],i;

printf('Anlnput10numbers:");

for(i=0;i<10;i++)P数组输入7

scanf("%d,t,&a(i]);

for(i=1;i<10;i++)

b[i]=1;/*计算b数组中的元素7//a[i-1]+a[i]

for(i=1;i<10;i++)

{printf("%3d",b[i]);

if(2)printf("\nM);/*每行打印3个数据7//i%3==0

)

)

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

include<stdio.h>

voidmain()

{intm=0,t=1,n;

while(1);IIscanf(,,%d,,,&n),n<=0II逗号表达式

while(!(t<=n&&t*2>=n)){

2//t=t*2;

m++;

)

printf(u%d\n,,,m);

)

二、程序改错

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

#include<stdio.h>

#include<string.h>

voidmain()

{charstr[256];

inti,j,k=O,n;

gets(str);

n=strlen(str);

for(i=0;i<n;i++)

/********1********/

if(tolower(str[i])<'a'||tolower(str[i])>'z*)//if(tolower(str[i])>='a,&&tolower(str[i])<=z')

(

/********2********I

str[n]=str[i];n++;//str[k]=str[i];k++;

)

str[k]=,\O,;

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

)

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

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

#include<stdio.h>

include<string.h>

voidfun(char*s,char*t)

{inti,sl;

sl=strlen(s);

for(i=0;i<sl;i++)

t[i]=s[i];

for(i=0;i<sl;i++)

/♦*******i********/

t[sl+i]=s[sl-i];//t[sl+i]=s[sl-1-i];

y********2********/

t[sl]="\O°;//t[sl+i]=*\0';

)

voidmain()

{chars[1OO],t[1OOJ;

scanf("%s",s);

fun(s,t);

printf("%sM,t);

)

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

include<stdio.h>

voidmain()

{floatx,max,min;inti;

/********〔****♦**/

for(i=0;i<=10;i++){//for(i=1;i<=10;i++){

scanf("%f",&x);

if(i=1){max=x;min=x;}//if(i==1){max=x;min=x;}

if(x>max)max=x;

if(x<min)min=x;

)

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

)

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

include<stdio.h>

#defineN10

voidmain()

{inti,j,min,temp;

inta[N]={5,4,3,2,1,9,8,7,6,0};

printf("\nThearrayis:\n");r输出数组元素*/

for(i=0;i<N;i++)printf("%5d",a[i]);

for(i=0;i<N-1;i++)/*排序操作•/

{min=i;

for(j=i+1;j<N;j++)

/******〔******J

if(a[min]<=a[j])min=j;//if(a[min]>a[j])min=j;

/******2m]

temp=a[min];a[min]=aO];a[j]=temp;/*数据互换7

//改成temp=a[min];a[min]=a[i];a[i]=temp;

)

printf("\nThesortednumbers:\n");/*输出排序结果7

for(i=0;i<N;i++)printf("%5d",a[i]);

printf(AnM);

)

(5)输入x和正数eps,计算多项式1-x+x*x/2-x*x*x/3!+……的和直到末项的绝对值小于eps为止。

#include<stdio.h>

#include<math.h>

voidmain()

{floatx,eps,s=1,t=1,i=1;

scanf(',%f%f,,,&x,&eps);

do{

t=-t*x/++i;//t=-t*x/i++;

s+=t;

/*****2*****I

}while(fabs(t)<eps);//}while(fabs(t)>=eps);

printfC'%f\n",s);

)

(6)运营时若输入a、n分别为3、6,则输出下列表达式的值:3+33+333+3333+33333+333333。

#include<stdio.h>

voidmain()

{inti,a,n;longt=0;

s=0;//longs=0;

scanf(n%d%d",&a,&n);

for(i=1;i<=n;i++){

『******2******I

t=t*1O+i;//t=t*1O+1;

s=s+t;

)

s=s*a;

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

)

(7)用递归法将一个六位整数n转换称字符串。例如:输入123456,应输出字符串"123456"。

#include<stdio.h>

voiditoa(longi.char*s)

{if(i==0)

return;

/******〔******/

*s=,1'+i%10;//*s=i%10+'0';

itoa(i/10,s-1);

)

voidmain()

{longn;

charstr[7]=m,;

scanf(M%ld",&n);

/******2******J

itoa(n,str+6);Hitoa(n,str+5);

printf("%s",str);

)

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

include<stdio.h>

#include<math.h>

#include<stdlib.h>

voidmain()

{inti,n;

/*****1*****I

structaxy{floatx,y;}a;//structaxy{floatx,y;}*a;

scanf("%d",&n);

a=(float,)malloc(n*2*sizeof{float));

for(i=0;i<n;i++)

scanf(M%f%fM,a[i].x,a[i].y);//scanf(,,%f%f',&a[i].x,&a[i].y);

for(i=0;i<n;i++)

if(sqrt(a[i].x*a[i].x+a[i].y*a[i].y)<=5)

printf("%f,%f\n",a[i].x,a[i].y);

)

(9)运营时输入n,则输出n的所有质数因子。例如:n=13860,则输出2、2、3、3、5、7、11。

include<stdio.h>

voidmain()

{intn,i;

scanf(M%d",&n);

/******〔******J

i=1;//i=2;

while(n>1)

if(n%i==O){

printf("%d\t"j);

n/=i;

)

else

2*******1

n++;//i++;

)

三、编写程序

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

献夹下的新建文献Design1.dat中。

#include<stdio.h>

#include<math.h>

voidmain()

/*考生在这里添加代码7

FILE*p;inti;

p=fopen("Design1.dat","w");

for(i=1;;i++)

if(i%3==1&&i%5==3&&i%7==5&&i%9==7)break;

fprintf(p,'1%€1",i);

fclose(p);

)

(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。

#include<stdio.h>

voidmain()

{FILE*p;intatb,c,k;

p=fopen(''design.datM,"w");

/*考生在这里添加代码*/

for(k=6;k<=5000;k++)

{b=0;c=0;

for(a=1;a<k;a++)

if(k%a==0)b+=a;

for(a=1;a<b;a++)

if(b%a==0)c+=a;

if(k==c&&k!=b)fprintf(p,,'%6d,%d\nM,k,b);

)

fclose(p);

)

(3)设计程序:计算字符串S中每个字符的权重值,所谓权重值就是字符在字符串中的位置值与该字符的ASCII码值的乘积。位置值从

1开始依此递增。将每个字符的权重值,以格式"%d"写入到源程序目录中Paper子目录下的新建文献design.dat中。

#include<stdio.h>

#include<math.h>

voidmain()

{FILE*p;inti,w;

char*s="we45,&y3r#$r,;

广考生在这里添加代码7

p=fopen("design.dat","w");

for(i=0;s昨到i++)

{w=(i+1)*s[i];

fprintf(p,"%d",w);

)

fclose(p);

)

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

#include<stdio.h>

include<math.h>

voidmain()

{floata[3][3]={{1.3,2.7,3.6},{234.7},{3,4,1.27}};

FILE*p;floatx;inti,j;

/*考生在这里添加代码7

for(i=0;i<3;i++)

{x=a[i][0];

for(j=1;j<3;j++)

if(a[i]U]>x)x=a[i][j];

for(j=0;j<3;j++)a[i]0]/=x;

)

尸*添加代码结束

p=fopen(',de

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论