2011年计算机二级C语言编写程序题及答案解析精选(7)

2019-08-03 12:37

} 【4.33】参考答案: #include main( ) { int j; long n; /* 使用长整型变量,以免超出整数的表示范围 */ printf(\; scanf(\; for(j=999;j>=100;j--)/* 可能取值范围在999到100之间,j从大到小 */ if(n%j == 0 ) /* 若能够整除j,则j是约数,输出结果 */ { printf(\; break; /* 控制退出循环 */ } } 【4.34】参考答案: #define E 0.000001 main() { float x,y=1,s=0; printf(\; scanf(\; while(1/y>E) { s=s+1/y; y=y*x; } printf(\; } 【4.35】参考答案: #include main( ) { int class1, class2, class3; char ch; class1=class2=class3=0; /* 初始化分类计数器 */ do { ch=getch( ); switch(ch) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': class1++; break; /* 对分类1计数 */ case '+': case '-': case '*': case '/': case '%': case '=': class2++; break; /* 对分类2计数 */ default: class3++; break; /* 对分类3计数 */ } }while (ch!= '\\\\'); /* 字符'\\'在C程序中要使用转义符'\\\\' */ printf(\; } 【4.36】分析:程序的关键是怎样判断一个单词。由单词的定义已知它是用空格、制表符或换行符分隔开的,两个字符之间没有空格、制表符或换行符,则认为是一个单词中的两个字符。 参考答案: #define EOF -1 #define YES 1 #define NO 0

#include main( ) /* 对输入的行、字符和单词进行计数统计 */ { int c, nl, nc, nw, inword;

inword=NO; /* inword=NO 已处理的最后一个字符是空格、\\t或\\n */ /* inword=YES 已处理的最后一个字符不是空格、\\t或\\n */ nl=nc=nw=0; /* 行、字符、字计数器置0 */ while((c=getchar())!= EOF) { ++nc; /* 进行字符计数 */ if(c=='\\n' )

++nl; /* 进行行计数 */ if(c=='\\t'||c=='\\n'||c==' ')

inword=NO;/* 如果读入的字符是空格、\\t或\\n,则置inword为NO */ else /* 读入的字符不是空格、\\t或\\n */

if(inword==NO) /* 如果前一个字符是空格、\\t或\\n */ { inword=YES; /* 则读入的字符为一个单词的第一个字符*/ ++nw; /*置inword为YES,进行单词计数 */ } }

printf(\; /* 输出结果 */ }

【4.37】参考答案: #define E 0.000001 #include \main() { int i,k=1;

float x,y,t=1,s,r=1; printf(\;

scanf(\;

for(s=x,y=x,i=2;fabs(r)>E;i++) { t=t*(i-1); y=y*x*x; k=k*(-1); r=k*y/t/(2*i-1); s=s+r; }

printf(\; }

【4.38】参考答案: main() { int i; float s=0;

for(i=1;i<=100;i++) s=s+i;

for(i=1;i<=50;i++) s=s+i*i;

for(i=1;i<=10;i++) s=s+1.0/i;

printf(\; }

【4.39】参考答案: main() { int i; float s=1;

for(i=1;i<=20 && 1.0/i/(i+1)>0.001;i++) s=s+1.0/i/(i+1);

printf(\; }

【4.40】参考答案: #include main()

{ float x,eps,s,y=0,y0,t; int n,j;

printf(\; scanf(\; n=t=j=1; s=x;

do { y0=y;

if(n%2==0) y=y-s/t; else y=y+s/t;

s *= x*x; /* 求x的乘方 */ t *= (j+1)*(j+2); /* 求n! */ j += 2; n++;

}while( fabs(y0-y) > eps ); /* 控制误差 */

printf(\; /* 输出标准sin(x)的值 */ printf(\; /* 输出计算的近似值 */ }

【4.41】参考答案: main( )

{ int i,j,num,a[10]; for(i=0;i<10;i++)

{ printf(\; scanf(\;

for(j=i-1;j>=0&&a[j]>num;j--) a[j+1]=a[j]; a[j+1]=num; }

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

printf (\; }

【4.42】参考答案: main() { int n;

printf(\; scanf(\; while(n>0)

{ printf(\; n=n/10; } }

【4.43】参考答案: main() { int i,n;

long s1=0,s2=0;

printf(\; scanf(\; if(n>=0)

for(i=n;i<=2*n;i++) s1=s1+i; else

for(i=n;i>=2*n;i--) s1=s1+i; i=n; if(i>=0) while(i<=2*n) s2=s2+i++; else

while(i>=2*n) s2=s2+i--;

printf(\; }

【4.44】分析:据题意,阶梯数满足下面一组同余式: x≡1 (mod2) x≡2 (mod3) x≡4 (mod5) x≡5 (mod6) x≡0 (mod7) 参考答案: #include main()

{ int i=1; /* i为所设的阶梯数 */

while( !((i%2==1)&&(i%3==2)&&(i%5==4)&&(i%6==5)&&(i%7==0)) ) ++i; /* 满足一组同余式的判别 */ printf(\; }

【4.45】参考答案: main( ) { int i,n,a; for(i=0; ;i++) { if(i%8==1) { n=i/8; if(n%8==1)


2011年计算机二级C语言编写程序题及答案解析精选(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:棱柱、棱锥、棱台

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

马上注册会员

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