程序改错1

更新时间:2023-11-04 07:59:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第1题 (10.0分) 题号:421

/*-------------------------------- 【程序改错】

--------------------------------

功能:给一个不多于5位的正整数,要求: 一、求它是几位数,

第2题 (10.0分) 题号:417

/*-------------------------------- 【程序改错】

--------------------------------

功能:下题是一段有关结构体变量传递的程 二、逆序打印出各位数字。

--------------------------------*/

#include\main( ) {

/**********FOUND**********/ long a,b,c,d,e,x, scanf(\ a=x/10000;

/**********FOUND**********/ b=x/10000/1000; c=x00/100; d=x0/10; e=x;

/**********FOUND**********/ if (a==0)

printf(\

5, %ld %ld %ld %ld %ld\\n\ else if (b!=0) printf(\

4, %ld %ld %ld %ld\\n\ else if (c!=0) printf(\3,%ld %ld %ld\\n\ else if (d!=0)

printf(\are 2, %ld %ld\\n\ else if (e!=0)

printf(\ getch(); } 答案:

1). long a,b,c,d,e,x; 2). b=x000/1000; 3). if (a!=0) 或 if (!a)

序.

--------------------------------*/

#include \struct student { int x; char c; } a; main() { a.x=3;

/**********FOUND**********/ a.c='a' f(a);

/**********FOUND**********/ printf(\ getch(); }

f(struct student b) {

b.x=20;

/**********FOUND**********/ b.c=y; } 答案:

1). a.c='a';

2). printf(\ 3). b.c='y';

第1题 (10.0分) 题号:440

/*-------------------------------- 【程序改错】

--------------------------------

1

功能:输入字符序列,字符序列以特殊字符“#”结束。程序从前向后依次读入字符,并翻译出新的字符输出。翻译的规则是:如果当前读入的字符是数字符,如果该字符的面值为n,则它的后一个字符(包括数字符)需重复输出n+1次如果当前读入的字符不是数字符,则输出该字符。输出时,以上述一次翻译为一组, 答案:

1). while(ch!='#') 2). count=ch-'0'+1; 3). printf(\

不同组间输出用一个空白字符隔开。翻译直至当前读入的字符为字符‘#’,结束翻译和输出。

--------------------------------*/

#include

void main() {

char ch,nch; int count; int k;

printf(\ scanf(\

/**********FOUND**********/ while(ch='#') {

if(ch>='0'&&ch<='9') {

/**********FOUND**********/ count=ch-'0'-1; scanf(\ for(k=0;k

/**********FOUND**********/ printf(\ printf(\ scanf(\ }

printf(\}

第2题 (10.0分) 题号:411

/*-------------------------------- 【程序改错】

--------------------------------

功能:将一个正整数分解质因数。 例如:输入90,打印出90=2*3*3*5

--------------------------------*/

#include \main() {

int n,i;

printf(\ scanf(\ printf(\ for(i=2;i<=n;i++) {

/**********FOUND**********/ while(n==i) {

/**********FOUND**********/ if(n%i==1) {

printf(\

/**********FOUND**********/ n=n%i; } else break; } }

printf(\} 答案:

1). while(n!=i)

2

2). if(n%i==0) 或 if (!(n%i)) 3). n=n/i;

第1题 (10.0分) 题号:4

/*-------------------------------- 答案:

1). scanf(\ 2). for(i=N-2;i>=0;i--) 或 for(i=N-2;0<=i;i--) 【程序改错】

--------------------------------

功能:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。

--------------------------------*/

#define N 11 main() { int

i,j,t,number,a[N]={1,2,4,6,8,9,12,15,149,156};

printf(\insert in the array:\\n\ /**********FOUND**********/ scanf(\

printf(\ for(i=0;i

/**********FOUND**********/ for(i=N-1;i>=0;i--) if(number<=a[i])

/**********FOUND**********/ a[i]=a[i-1]; else {

a[i+1]=number;

/**********FOUND**********/ exit; }

if(number

3). a[ i + 1 ]=a[i]; 4). break;

第2题 (10.0分) 题号:386

/*-------------------------------- 【程序改错】

--------------------------------

功能:分别统计输入的字符串中各元音字母(即:A、E、I、O、U)的个数。 注意:字母不分大、小写。

例如:若输入:THIs is a boot,则输出应该是:1、0、2、2、0。

--------------------------------*/

#include #include

fun ( char *s, int num[5] ) {

int k, i=5;

for ( k = 0; k

i = -1;

/**********FOUND**********/ switch ( s ) {

case 'a': case 'A': { i=0; break; } case 'e': case 'E':

3

{ i=1; break; } case 'i': case 'I': { i=2; break; } case 'o': case 'O': { i=3; break; } case 'u': case 'U': { i=4; break; } }

/**********FOUND**********/ if (i < 0) num[i]++; } } main( ) {

char s1[81]; int num1[5], i; clrscr();

printf( \gets( s1 );

fun ( s1, num1 ); for ( i=0; i < 5; i++ ) printf (\ printf (\} 答案:

1). num[k]=0; 2). switch(*s) 3). if (i >= 0)

第1题 (10.0分) 题号:447

/*-------------------------------- 【程序改错】

-------------------------------- 功能:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?

--------------------------------*/

#include \ main() {

long int i; int

bonus1,bonus2,bonus4,bonus6,bonus10,bonus;

/**********FOUND**********/ scanf(\

bonus1=100000*0.1;bonus2=bonus1+100000*0.75;

bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15; /**********FOUND**********/ if(i>100000) bonus=i*0.1; else if(i<=200000)

bonus=bonus1+(i-100000)*0.075; else if(i<=400000)

bonus=bonus2+(i-200000)*0.05; else if(i<=600000)

bonus=bonus4+(i-400000)*0.03; else if(i<=1000000)

bonus=bonus6+(i-600000)*0.015;

4

else

bonus=bonus10+(i-1000000)*0.01; /**********FOUND**********/ printf(\ getch(); } 答案:

1). scanf(\ 2). if(i<=100000)

3). printf(\

第2题 (10.0分) 题号:360

/*-------------------------------- 【程序改错】

--------------------------------

功能:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。

例如:当s中的数为:87653142时,t中的数为: 7531。

--------------------------------*/

#include #include void fun (long s, long *t) { int d; long sl=1;

/**********FOUND**********/ t = 0;

while ( s > 0) {

d = s;

/**********FOUND**********/ if (d%2 == 0) {

*t = d * sl + *t; sl *= 10; }

/**********FOUND**********/ s \\= 10;

} } main() {

long s, t; clrscr();

printf(\scanf(\ fun(s, &t);

printf(\ getch(); } 答案:

1). *t = 0;

2). if(d%2) 或 if(d%2!=0) 或 if((d%2)!=0)

3). s /= 10; 或 s=s/10 第1题 (10.0分) 题号:414

/*-------------------------------- 【程序改错】

--------------------------------

功能:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

--------------------------------*/

#include\main() {

/**********FOUND**********/ float sn=100.0;hn=sn/2; int n;

/**********FOUND**********/ for(n=2;n<10;n++) {

sn=sn+2*hn;

/**********FOUND**********/ hn=hn%2; }

5

本文来源:https://www.bwwdw.com/article/xrw2.html

Top