上机程序调试及程序设计练习 2Word文件下载.docx

上传人:b****6 文档编号:18270887 上传时间:2022-12-14 格式:DOCX 页数:32 大小:26.38KB
下载 相关 举报
上机程序调试及程序设计练习 2Word文件下载.docx_第1页
第1页 / 共32页
上机程序调试及程序设计练习 2Word文件下载.docx_第2页
第2页 / 共32页
上机程序调试及程序设计练习 2Word文件下载.docx_第3页
第3页 / 共32页
上机程序调试及程序设计练习 2Word文件下载.docx_第4页
第4页 / 共32页
上机程序调试及程序设计练习 2Word文件下载.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

上机程序调试及程序设计练习 2Word文件下载.docx

《上机程序调试及程序设计练习 2Word文件下载.docx》由会员分享,可在线阅读,更多相关《上机程序调试及程序设计练习 2Word文件下载.docx(32页珍藏版)》请在冰豆网上搜索。

上机程序调试及程序设计练习 2Word文件下载.docx

例如:

"

a"

变成"

f"

,"

w"

b"

{charc;

c=getchar();

if(______1______)//c>

a'

&

c<

u'

c=c+5;

else

if(c>

v'

&

c<

z'

______2______//c=(c-'

+5)%26+'

putchar(c);

(4)将字符串s中所有的字符'

c'

删除。

{chars[80];

inti,j;

gets(s);

for(i=j=0;

______1______;

i++)//s[i]!

='

if(s[i]!

{s[j]=s[i];

______2______//j++;

s[j]='

puts(s);

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

math.h>

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

{intx;

floatmax;

______1______//max=f

(1);

for(x=2;

x<

=10;

x++)

______2______//if(f(x)>

max)max=f(x);

%f\n"

max);

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

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

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

inttemp;

temp=*pa;

*pa=*pb;

*pb=temp;

{inta,b,c,temp;

scanf("

%d%d%d"

&

a,&

b,&

c);

if(a>

b)

swap(&

b);

if(b>

c)

if(______2______)//if(a>

b)

%d,%d,%d"

a,b,c);

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

1346

//数组元素的删除

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;

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

_______2_______;

//f(x,&

n);

n;

i++)printf("

%5d"

x[i]);

\n"

);

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

floatf(float,float*,int);

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

f(1.7,b,5));

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

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

inti;

for(i=1;

i<

i++){t=t*x;

y=y+a[i]*t;

_____2_____//returny;

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

intn[3]={0},i;

gets(a);

________1________//for(i=0;

a[i]!

i++)

{if(tolower(a[i])>

tolower(a[i])<

)/*统计字母个数*/

n[0]++;

elseif(________2________)/*统计数字个数*///a[i]>

0'

a[i]<

9'

n[1]++;

n[2]++;

%d\n"

n[i]);

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

(例如:

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

#include<

chartrans(intx)

{

if(x<

10)return'

+x;

else_______1________//return'

+x-10;

intDtoH(intn,char*str)

inti=0;

while(n!

=0)

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

n/=16;

i++;

}

returni-1;

inti,k,n;

char*str;

scanf("

n);

k=DtoH(n,str);

for(i=0;

=k;

%c"

str[k-i]);

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

voidDec2Bin(intm)

intbin[32],j;

for(j=0;

m!

=0;

j++)

bin[j]=______1______;

//m%2

m=m/2;

for(;

j!

j--)

______2______);

//bin[j-1]

intn;

Dec2Bin(n);

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

计算数列第30项的值。

_______1______//longf(intn);

或者longf(int);

{printf("

%ld\n"

f(30));

longf(intn)

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

return1;

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

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

structSTUDENT

{charname[16];

intmath;

intenglish;

intcomputer;

intaverage;

};

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

{intsum=0;

sum=______1______;

//pst->

math+pst->

english+pst->

computer

pst->

average=sum/3;

{inti;

structSTUDENTst[4]={{"

Jessica"

98,95,90},{"

Mike"

80,80,90},

{"

Linda"

87,76,70},{"

Peter"

90,100,99}};

4;

{GetAverage(______2______);

//st+i

Name\tMath\tEnglish\tCompu\tAverage\n"

{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);

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

输出它们的最大公约数。

#include<

{intm,n,k;

while(scanf("

%d%d"

&

m,&

n),______1______);

//m<

=0||n<

=0

for(___2___;

n%k!

=0||m%k!

=0;

k--);

//k=m>

n?

n:

m

k);

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

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

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

\nInput10numbers:

"

for(i=0;

10;

i++)/*数组输入*/

a[i]);

for(i=1;

b[i]=______1______;

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

%3d"

b[i]);

if(______2______)printf("

/*每行打印3个数据*///i%3==0

(16)输入整数n(n>

0),求m使得2的m次方小于或等于n,2的m+1次方大于或等于n。

{intm=0,t=1,n;

while(_____1________);

//scanf(“%d”,&

n),n<

=0//逗号表达式

while(!

(t<

=n&

t*2>

=n)){

_____2_____//t=t*2;

m++;

printf(“%d\n”,m);

二、程序改错

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

{charstr[256];

inti,j,k=0,n;

n=strlen(str);

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

if(tolower(str[i])<

'

||tolower(str[i])>

)//if(tolower(str[i])>

tolower(str[i])<

/********2********/

str[n]=str[i];

n++;

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

k++;

str[k]='

%s\n"

str);

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

输入"

ABCD"

,则字符串t为"

ABCDDCBA"

voidfun(char*s,char*t)

{inti,sl;

sl=strlen(s);

sl;

i++)

t[i]=s[i];

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

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

t[sl]="

\0"

//t[sl+i]='

{chars[100],t[100];

%s"

s);

fun(s,t);

t);

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

{floatx,max,min;

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

for(i=0;

i++){//for(i=1;

i++){

%f"

x);

/*******2********/

if(i=1){max=x;

min=x;

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

if(x>

max)max=x;

if(x<

min)min=x;

%f,%f\n"

max,min);

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

#defineN10

{inti,j,min,temp;

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

\nThearrayis:

/*输出数组元素*/

N;

a[i]);

N-1;

i++)/*排序操作*/

{min=i;

for(j=i+1;

j++)

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

if(a[min]<

=a[j])min=j;

//if(a[min]>

a[j])min=j;

/******2******/

temp=a[min];

a[min]=a[j];

a[j]=temp;

/*数据交换*/

//改成temp=a[min];

a[min]=a[i];

a[i]=temp;

\nThesortednumbers:

\n"

/*输出排序结果*/

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

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

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

%f%f"

x,&

eps);

do{

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

t=-t*x/++i;

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

s+=t;

/*****2*****/

}while(fabs(t)<

//}while(fabs(t)>

=eps);

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

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

{inti,a,n;

longt=0;

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

s=0;

//longs=0;

=n;

i++){

/*******2******/

t=t*10+i;

//t=t*10+1;

s=s+t;

s=s*a;

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

输入123456,应输出字符串"

123456"

voiditoa(longi,char*s)

{if(i==0)

return;

*s='

1'

+i%10;

//*s=i%10+'

itoa(i/10,s-1);

{longn;

charstr[7]="

%ld"

itoa(n,str+6);

//itoa(n,str+5);

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

stdlib.h>

{inti,n;

structaxy{floatx,y;

}a;

//structaxy{floatx,y;

}*a;

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

a[i].x,a[i].y);

//scanf("

a[i].x,&

a[i].y);

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

=5)

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

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

{intn,i;

i=1;

//i=2;

while(n>

1)

if(n%i==0){

%d\t"

i);

n/=i;

/********2*******/

n++;

//i++;

三、编写程序

(1)在正整数中找出1个最小的、被3、5、7、9除余数分别为1、3、5、7的数,将该数以格式"

写入到考生文件夹中Paper子文件夹下的新建文件Design1.dat中。

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

FILE*p;

p=fopen("

Design1.dat"

"

for(i=1;

;

if(i%3==1&

i%5==3&

i%7==5&

i%9==7)break;

fprintf(p,"

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。

{FILE*p;

inta,b,c,k;

design.dat"

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

for(k=6;

k<

=5000;

k++)

{b=0;

c=0;

for(a=1;

a<

k;

a++)

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

b;

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

if(k==c&

k!

=b)fprintf(p,"

%6d,%d\n"

k,b);

(3)设计程序:

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

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

将每个字符的权重值,以格式"

%d"

写入到源程序目录中Paper子目录下的新建文件design.dat中。

inti,w;

char*s="

we45*&

y3r

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

当前位置:首页 > 高等教育 > 院校资料

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

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