浙江省C++上机考试程序设计题(2)

2019-04-22 20:21

上机程序调试及程序设计练习

{

________2________ n/=16;i++; } return i-1;

}

void main() {

int i,k,n;

char *str; // 注意:题目有错!str是悬挂指针。应改为: char str[80]; scanf(\k=DtoH(n,str);

for (i=0;i<=k;i++) printf(\}

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

#include void Dec2Bin(int m) {

int bin[32],j;

for(j=0;m!=0;j++) {

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

for( ; j!=0; j-- )

printf(\______2______ ); }

void main() {

int n;

scanf(\ Dec2Bin(n); }

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

_______1______ void main()

{ printf(\}

long f(int n)

{ if( ______2______ ) return 1; else

6 of 21 4/1/2013

上机程序调试及程序设计练习

return f(n-1)+f(n-2); }

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

#include struct STUDENT { char name[16]; int math; int english; int computer; int average; };

void GetAverage(struct STUDENT *pst) /* 计算平均成绩 */ { int sum=0;

sum = ______1______; pst->average = sum/3; }

void main() { int i;

struct STUDENT st[4]={{\ {\ for(i=0;i<4;i++)

{ GetAverage(______2______); }

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

{ printf(\ st[i].computer,st[i].average); } }

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

#include void main()

{ int m, n, k;

while ( scanf(\______1______ ); for (___2___ ; n%k!=0 || m%k!=0 ; k--) ; printf(\}

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

b[1]=a[0]+a[1],……,b[9]=a[8]+a[9]。 #include void main()

7 of 21 4/1/2013

上机程序调试及程序设计练习

{ int a[10],b[10],i;

printf(\ \

for (i=0; i<10;i++) /* 数组输入 */ scanf(\ for (i=1; i<10; i++)

b[i]=______1______; /* 计算b数组中的元素 */ for (i=1; i<10; i++) { printf(\

if (______2______) printf(\ /* 每行打印3个数据 */ } }

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

{ int m=0,t=1,n;

while( _____ 1 ________); while(!(t<=n&&t*2>=n)){

_____ 2 _____ m++; }

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

二、程序改错

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

#include

#include // 注意:题目有错!应增加一行:#include void main()

{ char str[256]; int i,j,k=0,n; gets(str); n=strlen(str); for(i=0;i

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

if (tolower(str[i])<'a' || tolower(str[i])>'z') {

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

str[n]=str[i]; n++; }

str[k]='\\0';

printf(\}

8 of 21 4/1/2013

上机程序调试及程序设计练习

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

逆序连接到字符串t后面。例如:输入\,则字符串t为\。 #include #include

void fun(char *s,char *t) { int i,sl;

sl=strlen(s);

for(i=0;i

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

t[sl+i]=s[sl-i]; /********2********/

t[sl]=\ }

void main()

{ char s[100],t[100]; scanf(\ fun(s,t);

printf(\}

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

#include void main()

{ float x,max,min; int i; /******** 1 *******/

for(i=0;i<=10;i++) { scanf(\

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

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

printf(\}

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

#include #define N 10 void main()

{ int i, j, min, temp ;

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

9 of 21 4/1/2013

上机程序调试及程序设计练习

printf(\ /* 输出数组元素 */ for (i=0;i

for (i=0;i

for (j=i+1; j

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

temp=a[min]; a[min]=a[j]; a[j]=temp; /*数据交换*/

}

printf(\ /* 输出排序结果 */ for (i=0;i

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

#include #include void main()

{ float x,eps,s=1,t=1,i=1; scanf(\ do {

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

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

} while(fabs(t)

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

#include void main()

{ int i,a,n; long t=0;

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

s=0; scanf(\ for(i=1;i<=n;i++) { /******* 2 ******/

t=t*10+i; s=s+t; }

s=s*a;

10 of 21 4/1/2013


浙江省C++上机考试程序设计题(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:首批中职重点扶持薄弱学校骨干教师培训交流结对关系

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: