东北大学机械学院C语言考试题库及答案 联系客服

发布时间 : 星期二 文章东北大学机械学院C语言考试题库及答案更新完毕开始阅读

} }

69题目:从键盘输入任意的字符,按下列规则进行分类计数。 第一类 { '0','1','2','3','4','5','6','7','8','9'}; 第二类 {'+','-','*','/','%','='}; 第三类 {其它字符};

当输入字符'\\'时先计数,然后停止接收输入,输出计数的结果。

#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(\; }

70题目:对从键盘上输入的行、单词和字符进行计数,当输入[CTRL+D]时表示文件输入结束,停止计数(提示:单词的定义进为单词是不包含空格、制表符(\\t)及换行符的字符序列。例如:\,认为是1个单词,它由5个字符组成。又如:\abc\,为2个单词,6个字符。一般用[CTRL+D]作为文件结束标记,其字符码值为-1)。 #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(\; /* 输出结果 */ }

71题目:编写程序计算当x=0.5时下述级数和的近似值,使其误差小于某一指定的值epsilon(例如:epsilon=0.000001):

#define E 0.000001 #include \#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(\; }

72题目:计算并输出下列多项式的结果值。

要求最后一项小于0.001时、或者当

N=20时尚未达到精度要求,则停止计算。 #include 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(\; }

73题目:已知求正弦sin(x)的近似值的多项式公式为:

#include #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(\输出计算的近似值 */ }

从键盘输入x和ε,计算sin(x)的近似值,要求计算的误差小于给定的ε。

74题目: 利用循环语句实现输入一个正整数,要求以相反的顺序输出该数(例如输入12345,输出位54321)。 #include main() {int n;

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

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

75题目:求解爱因斯坦数学题)有一条长阶梯,若每步跨2阶,则最后剩余1阶,若每步跨3阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶,若每步跨7阶,最后才正好一阶不剩。计算并输出这条阶梯共有多少阶。 #include main()

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

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

76题目:采用割圆法求出π的值,要求精确到小数点之后的第十位(提示:中国古代科学家祖冲之采用正多边形逼近的割圆法求出了π的值。即做圆的内接4边形,从圆心和4边形顶点连接形成4个三角形,可以求出每个三角形的面积(r2/2)现在我们知道三角形的面积和两个边长(均为半径a=r、b=r),可以用公式:S=s(s-a)(s-b)(s-c)求出第三边c。我们将内接4边形换为内接8边形,原来的三角形被一分为二,故c/2就是每个三角形的高,面积又是可以求出的。再将三角形一分为二,……。当三角形的面积求出时,内接多边形的面积就可求出)。 #include main()

{int n=4;

double r=10,s,cr,c,p; s=r*r/2; do

{cr=n*s;

p=16*r*r*r*r-64*s*s; c=(4*r*r-sqrt(p))/2; c=sqrt(c); s=c*r/4;