浙江省C++上机考试程序设计题Word文档格式.docx

上传人:b****8 文档编号:22727152 上传时间:2023-02-05 格式:DOCX 页数:33 大小:24.64KB
下载 相关 举报
浙江省C++上机考试程序设计题Word文档格式.docx_第1页
第1页 / 共33页
浙江省C++上机考试程序设计题Word文档格式.docx_第2页
第2页 / 共33页
浙江省C++上机考试程序设计题Word文档格式.docx_第3页
第3页 / 共33页
浙江省C++上机考试程序设计题Word文档格式.docx_第4页
第4页 / 共33页
浙江省C++上机考试程序设计题Word文档格式.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

浙江省C++上机考试程序设计题Word文档格式.docx

《浙江省C++上机考试程序设计题Word文档格式.docx》由会员分享,可在线阅读,更多相关《浙江省C++上机考试程序设计题Word文档格式.docx(33页珍藏版)》请在冰豆网上搜索。

浙江省C++上机考试程序设计题Word文档格式.docx

longf(longn)

{longm,y=0;

m=fabs(n);

while(m!

=0){

y=y*10+m%10;

____1____

if(n>

=0)returny;

else_____2_____

printf("

%ld\t"

f(12345));

%ld\n"

f(-34567));

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

string.h>

ctype.h>

voidf(char*s)

{inti=0;

while(s[i]!

='

\0'

){

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

___2___i++;

}

{charstr[80];

gets(str);

f(str);

puts(str);

(6)调用find函数在输入的字符串中查找是否出现"

the"

这个单词。

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

intfind(char*str)

{char*fstr="

;

inti=0,j,n=0;

while(str[i]!

{

for(______1______)

if(str[j+i]!

=fstr[j])break;

if(______2______)n++;

i++;

}

returnn;

{chara[80];

gets(a);

find(a));

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

"

a"

变成"

f"

,"

w"

b"

{charc;

c=getchar();

if(______1______)

c=c+5;

else

if(c>

v'

&

&

c<

z'

______2______

putchar(c);

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

c'

删除。

{chars[80];

inti,j;

gets(s);

for(i=j=0;

______1______;

i++)

if(s[i]!

='

{s[j]=s[i];

s[j]='

puts(s);

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

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

{intx;

floatmax;

______1______

for(x=2;

x<

=10;

x++)

%f\n"

max);

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

voidswap(______1______)

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

inttemp;

temp=*pa;

*pa=*pb;

*pb=temp;

{inta,b,c,temp;

%d%d%d"

a,&

b,&

c);

if(a>

b)

swap(&

b);

if(b>

c)

if(______2______)

%d,%d,%d"

a,b,c);

(11)调用函数f,去除数组中的负数,输入数组x[7]={1,-2,3,4,-5,6,-7},输出结果为:

1346

//数组元素的删除

voidf(int*a,int*m)

{inti,j;

for(i=0;

*m;

if(a[i]<

0){

for(j=i--;

j<

*m-1;

j++)a[j]=a[j+1];

_____1_____;

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

_______2_______;

for(i=0;

n;

i++)printf("

%5d"

x[i]);

);

(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时的值。

floatf(float,float*,int);

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

f(1.7,b,5));

floatf(_______1________)

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

inti;

for(i=1;

i<

i++){t=t*x;

y=y+a[i]*t;

_____2_____

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

intn[3]={0},i;

gets(a);

________1________

{if(tolower(a[i])>

a'

tolower(a[i])<

)/*统计字母个数*/

n[0]++;

elseif(________2________)/*统计数字个数*/

n[1]++;

n[2]++;

3;

n[i]);

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

(例如:

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

#include<

chartrans(intx)

if(x<

10)return'

0'

+x;

else_______1________

intDtoH(intn,char*str)

inti=0;

while(n!

=0)

________2________

n/=16;

i++;

}

returni-1;

inti,k,n;

char*str;

//注意:

题目有错!

str是悬挂指针。

应改为:

charstr[80];

scanf("

k=DtoH(n,str);

for(i=0;

=k;

%c"

str[k-i]);

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

voidDec2Bin(intm)

intbin[32],j;

for(j=0;

m!

=0;

j++)

{

bin[j]=______1______;

m=m/2;

for(;

j!

j--)

______2______);

intn;

Dec2Bin(n);

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

计算数列第30项的值。

_______1______

{printf("

f(30));

longf(intn)

{if(______2______)

return1;

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

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

structSTUDENT

{charname[16];

intmath;

intenglish;

intcomputer;

intaverage;

};

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

{intsum=0;

sum=______1______;

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

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

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

输出它们的最大公约数。

{intm,n,k;

while(scanf("

%d%d"

&

m,&

n),______1______);

for(___2___;

n%k!

=0||m%k!

=0;

k--);

k);

(19)求出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;

i++)

b[i]=______1______;

/*计算b数组中的元素*/

%3d"

b[i]);

if(______2______)printf("

/*每行打印3个数据*/

(20)输入整数n(n>

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

{intm=0,t=1,n;

while(_____1________);

while(!

(t<

=n&

t*2>

=n)){

_____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])>

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

str[n]=str[i];

n++;

str[k]='

%s\n"

str);

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

输入"

ABCD"

,则字符串t为"

ABCDDCBA"

voidfun(char*s,char*t)

{inti,sl;

sl=strlen(s);

for(i=0;

sl;

i++)

t[i]=s[i];

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

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

t[sl]="

\0"

{chars[100],t[100];

scanf("

%s"

fun(s,t);

printf("

t);

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

{floatx,max,min;

inti;

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

i++){

%f"

x);

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

if(i=1){max=x;

min=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<

j++)

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

if(a[min]<

=a[j])min=j;

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

temp=a[min];

a[min]=a[j];

a[j]=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;

s+=t;

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

}while(fabs(t)<

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

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

{inti,a,n;

longt=0;

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

s=0;

=n;

i++){

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

t=t*10+i;

s=s+t;

s=s*a;

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

输入123456,应输出字符串"

123456"

voiditoa(longi,char*s)

{if(i==0)

return;

*s='

1'

+i%10;

itoa(i/10,s-1);

{longn;

charstr[7]="

%ld"

itoa(n,str+6);

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

stdlib.h>

{inti,n;

structaxy{floatx,y;

}a;

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

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;

while(n>

1)

if(n%i==0){

%d\t"

n/=i;

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

n++;

三、编写程序

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

写入到考生文件夹中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。

{FILE*p;

inta,b,c,k;

p=fopen("

design.dat"

"

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

(3)设计程序:

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

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

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

%d"

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

inti,w;

char*s="

we45*&

y3r#$1"

//。

注意这里不要忘了添加}

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

{floata[3][3]={{1.3,2.7,3.6},{2,3,4

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

当前位置:首页 > 初中教育 > 科学

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

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