C程序设计上机操作题 ................................................................................................................... 2
一、数列 ................................................................................................................................... 2 二、最大公约数、最小公倍数 ............................................................................................... 6 三、排序算法 ........................................................................................................................... 7 四、数组 ................................................................................................................................... 9 五、整数数字问题 ................................................................................................................. 18 六、平面点问题 ..................................................................................................................... 21 七、数制转换 ......................................................................................................................... 27 八、字符串 ............................................................................................................................. 29 九、最值问题 ......................................................................................................................... 33 十、斐波那契(Fibonacci)数列 .............................................................................................. 39 十一、水仙花、完数、回文数与亲密数 ............................................................................. 42 十二、方程求根 ..................................................................................................................... 45 十三、因子、质因子、素数 ................................................................................................. 49 十三、位运算 ......................................................................................................................... 52 十四、递归函数 ..................................................................................................................... 53 十五、图形 ............................................................................................................................. 53 十六、结构体 ......................................................................................................................... 54 十七、密码 ............................................................................................................................. 55 十八、其他算法 ..................................................................................................................... 56
1 of 58
C程序设计上机操作题
一、数列 1、程序调试题
试题一(新)
输入x 和eps,计算多项式1?x?#include
{ double x,eps,s=1,t=1; /******* 1 ********/ float i=0;
/******* 2 **********/ scanf(\ do { i++; /***** 3 *****/ t=-t*x/i; s+=t;
/***** 4 *****/ } while(fabs(t)>=eps); printf(\}
x22!?x33!?x44!?x55!???
试题二(新)
运行时若输入a、n分别为3、6,则输出下列表达式的值: 3+33+333+3333+33333+333333 #include
{ int a,n,i; long s=0,t; /******* 1 ********/ scanf(\ /******* 2 **********/ t=0;
/******* 3 **********/ for(i=1;i<=n;i++) { t=t*10+a;
/******* 4 ********/
2 of 58
s+=t; }
printf(\}
2、程序填空题
试题一(新)
调用函数f,计算:x=1.7时多项式的值。 #include
{ float b[5]={1.1,2.2,3.3,4.4,5.5}; printf(\}
float f( float x, float *a, int n) { float y=a[0],t=1; int i;
for(i=1;i 3、程序设计题 试题一(新) 编制函数f计算下列表达式的值,函数main提供了一个测试用例。 函数原型为double f(double*,double,int) a0+a1*sin(x)+a2*sin(x*x)+a3*sin(x*x*x)+?? #include /*****考生在以下空白处编写函数f ******/ double f(doube* a, double x, int n) { int i; double result = 0; for(i=0; i!=n; ++i) result += a[i] * sin(pow(x, n-1)); return result; } /****考生在以上空白处编写函数f ******/ void main() { FILE *fp; int i; double y; double a[10]={1.2,-1.4,-4.0,1.1,2.1,-1.1,3.0,-5.3,6.5,-0.9}; y=f(a,2.345,10); printf(\ fp=fopen(\ fwrite(&y,8,1,fp); 3 of 58 fclose(fp); } 试题三(新) 编制函数f,函数原型为double f(double*,double,int),用于计算下列代数式的值。 a0?a1x?axx2?a3x3???an?1xn?1 函数main提供了一个测试用例,计算x=1.5时一元九次代数多项式的值。 #include /****考生在以下空白处编写函数f******/ double f(doube* b, doube x, int n) { double result = b[0]; int i=1; for(i=0; i result += b[i] * pow(x, i); return result; } /****考生在以上空白处写入语句 ******/ void main() { FILE *fp; double y; double b[10]={1.1,3.2,-2.5,5.67,3.42,-4.5,2.54,5.6,0.97,4.65}; y=f(b,1.5,10); printf(\ fp=fopen(\ fwrite(&y,8,1,fp); fclose(fp); } 试题四(新) 计算并显示表达式1+2!+3!+?+12!的值。 #include { FILE *fp; long i,y=1,jc=1; /****考生在以下空白处写入执行语句******/ for(i=2;i<=12;i++); {jc=jc*i; y=y+jc;} /****考生在以上空白处写入执行语句******/ printf(\ fp=fopen(\ fwrite(&y,4,1,fp); 4 of 58 fclose(fp); } 试题五(新) 计算2的平方根、3的平方根、...、10的的平方根之和。要求将结果存入变量y中,且具有小数点后10位有效位数。 #include { FILE *fp; int i; /****考生在以下空白处写入语句 ******/ Double y=0; For(i=2;i<=10;i++); Y=y+sqrt(i); /****考生在以上空白处写入语句 ******/ printf(\ fp=fopen(\ fwrite(&y,8,1,fp); fclose(fp); } 试题六(新) 数列第1项为81,此后各项均为它前1项的正平方根,统计该 数列前30项之和。 #include { FILE *fp; double sum,x; int i; /****考生在以下空白处写入执行语句******/ Sum=0;x=81; For(i=0;i<=30;i++); { Sum=sum+x; X=sqrt(x); } /****考生在以上空白处写入执行语句******/ printf(\ fp=fopen(\ fwrite(&sum,8,1,fp); fclose(fp); } 试题八(新) 计算1?111?????的和直到末项的绝对值小于10-10时为止。 3!5!7!5 of 58