c上机试卷01

2020-02-21 21:22

1、编写子函数sjx(int n )打印下列图案:图案的行数在main()中通过键盘输入。 *

*** ***** ******* ********* *********** 。。。。。。

2、程序功能:顺序查找法。设计要求:

(1) 编写函数int search(int a[],int n,int x),其功能是在长度为n的数组中查找整数x是否存在,若存在函数返回x在数组中的下标位置,否则返回0值。

(2) 编写函数main,定义并初始化一个数组a,接受从键盘上输入的整数x,调用函数search若找到,输出x所在的下标,否则输出“Not found!”。

3、程序功能:冒泡排序法。设计要求:

(1) 编写函数int sort(float b[],int n),其功能是将长度为n的数组按由小到大进行排列。

(2) 编写函数main,定义一个数组a,从键盘上输入10个数给数组,调用函数sort对b数组排序,并输出排序后的数组。

4、程序功能:选择排序法。设计要求:

(1) 编写函数int sort(int a[],int n),其功能是将长度为n的数组按由大到小进行排列。

(2) 编写函数main,定义一个数组a,从键盘上输入10个数给数组,调用函数sort对a数组排序,并输出排序后的数组。

5、已知正弦值的近似的多项式计算公式为:

sin(x)=x-x3/3!+x5/5!-x7/7!+? +(-1)nx2*n+1/(2*n+1)!+?

输入x和ε,编写按上述公式计算sin(x)近似值且误差小于ε的程序 设:x=1.57 ε=0.00001

1

6、通过键盘输入一个十进制整数,并转换成二进制数,所得二进制数的每一位放在一维数组中,输出此二进制数。要求:(1)编写函数dtob(int a[],n)完成十进制整数转换成二进制数, 二进制数的最低位放在数组的第一个元素中。(2)在主函数中通过键盘输入一个十进制数。

7、用二分法求方程3x3-3x2+x-1=0在x0=2附近的实根。精确到|f(x)|<0.0001为止。要求:

(1)用函数float eff(float x)求方程在x附近的根;

(2)在主函数中输入x0,调用函数求得方程的近似根,并输出结果。

8.用牛顿迭代法求方程3x3-3x2+x-1=0在x0=2附近的实根。要求: (1)用函数float newtoon(float x)求方程在x附近的根;

(2)用函数float F(float x)求x处的函数值,用函数float F1(float x)求f(x)在x处的导数; (3)在主函数中输入x0,调用函数求得方程的近似根(精度要求为10-5),并输出结果。

#include #include float F(float x) {

return 3*x*x*x-3*x*x+x-1; }

float F1(float x) {

return 9*x*x-6*x+1; }

float newtoon(float x) {

float f,f1,x0; do{x0=x; f=F(x0); f1=F1(x0); x=x0-f/f1;

}while(fabs(x-x0)>=1e-5); return x; }

2

void main() {

float x0;

scanf(\

printf(\getch(); }

9.请设计程序,用牛顿迭代法求f(x)=cos(x)-x的近似根,要求精确到10-6。 (1)用函数float newtoon(float x)求方程在x附近的根;

(2)用函数float F(float x)求x处的函数值,用函数float F1(float x)求f(x)在x处的导数; (3)在主函数中输入x0,调用函数求得方程的近似根(精度要求为10-5),并输出结果。

#include float f(float x) {return cos(x)-x;} float f1(float x) {return -sin(x)-1;} main()

{float x,x0;

scanf(\

do{x=x0;x0=x-f(x)/f1(x);} while(fabs(x-x0)>=1e-6);

printf(\getch(); }

10.已知f(x)=lnx+x2在(1/e, 1)内有唯一的一个实根。请设计程序,用二分法求该近似实根。精确到|f(x)|<0.0001为止。

(1)用函数float eff(float x)求方程在x附近的根;

(2)在主函数中输入x,调用函数求得方程的近似根,并输出结果。

#include #define e 2.7182818 float f(float x)

{return log(x)+x*x;} void main()

{ float m=1/e,n=1,r; r=(m+n)/2.0; while(1)

{ if(fabs(f(r))<1e-4) break; if(f(m)*f(r)<0) n=r; else m=r;

r=(m+n)/2.0;}

printf(\getch(); }

3

11、编写子函数yhsj( int a[][] ,int n )打印杨辉三角形:要求通过键盘在main()中输入打印的行数。

1

1 1

1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 。。。。。。。。。。。。。

12.请按下列要求编写程序:

(1)编写函数void conj(int a[],int na,int b[],int nb, int c[]),其功能是实现将a和b指向的两个已按升序排列的数组中的元素合并成一个升序序列并保存到c指向的数组中。

(2)编写main函数,声明3个整型数组a,b,c,用给出的测试数据初始化a和b,将a,b,c作为实参调用函数conj,实现数组a和数组b的合并,合并的结果存入数组c中,最后依次输出c数组中的元素。

测试数据:

a数组:1 2 5 8 9 10 b数组:1 3 4 8 12 18

13.请设计程序,将一字符串做压缩处理。编程要求如下:

(1) 编写一个函数int compress(char s[]),将s中连续出现的多个相同字符压缩为一个字符,统计被删除的字符个数,返回被删除的字符个数;

(2) 编写函数main,从键盘读入一行字符数据存入一个字符型数组中,调用compress函数对该字符数组中存储的字符做压缩处理,输出压缩后的字符串。

测试数据:

@@@@@@ I wwillll succesful &&&&&& and you too !!!!!!########## 运行结果:

@ I wil sucesful & and you to !# 30

实验九,4

14、编写子函数f,判断两个字符串是否相等,若相等则返回1,否则返回0。编写主函数main,功能是输入两个字符串,调用f子函数,输出结果。(不可以使用strcmp函数)

4

15.请按下列要求编写程序:

(1) 编写函数void fun(char x[]),其功能是在x指向的字符串中的所有数字字符之前分别插入1个字符'$';

(2) 编写main函数,定义一个字符数组a,用测试数据中的数据初始化字符数组a,用a作为实在参数调用函数fun,输出结果字符串。

测试数据:a1b34cdef5 运行结果:a$1b$3$4cdef$5

实验九,5

16、编写子函数f,把a字符串复制到b字符串中。编写主函数main,功能是输入两个字符串,调用f子函数,输出b串。(不可以使用strcpy函数,)

17、请编写程序,找出满足如下条件的整数m:(1)该数在[11,999]之内;(2) m、m2、m3均为回文数。例如m=11,m2=121,m3=1331,11、121、1331皆为回文数,故m=11是满足条件的一个数。请设计函数int value(long m),其功能是判断m是否是回文数,如是,该函数返回值1,否则返回值0。编写main函数,求出[11,999]内满足条件的所有整数。

#include #include int value(long m) { int x,y; y=0; x=m; while(x)

{y=y*10+x; x=x/10;} if(y!=m) return(0); else

return(1); }

void main() { int m;

for(m=11;m<1000;m++)

if(value(m)&&value(m*m)&&value(m*m*m))

printf(\getch(); }

5


c上机试卷01.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2007年宁波市第22届程序设计竞赛初中组试题

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

马上注册会员

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