c上机试卷01

更新时间:2023-12-15 04:43:01 阅读量: 教育文库 文档下载

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

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

18. 设n0是一个给定的正整数。对于i=0,1,2,…,定义:若ni是偶数,则ni+1=ni/2;若ni是奇数,则ni+1=3ni+1;若ni是1,则序列结束。用这种方法产生的数称为冰雹数。请编写一个函数void hailstones(int n),其功能是显示由n产生的所要求的序列,按每行8个数输出该数列中的所有数。编写main函数,在main函数中定义一个整型变量n,从键盘上输入值77赋给n,用n作为实参调用函数hailstones。

测试数据:77↙ 输出结果:

Hailstones generated by 77:

77 232 116 58 29 88 44 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 Number of hailstones generated:23

void hailstones(int n) {int t=1;

printf(\ while(n!=1) {t++;

if(n%2)n=3*n+1; else n=n/2;

printf(\ if(t%6==0) printf(\ }

printf(\ } main() { int n;

printf(\ scanf(\ hailstones(n); getch(); }

19、请按下列要求编写程序:

(1) 请设计函数nx(int a[])实现将n个数按输入顺序的逆序排列。

(2) 编写main函数,定义一个数组a,通过键盘输入n个数给数组a,用a作为实在参数调用函数nx,输出结果。

20、用公式:

?2?2244662n2n??????...??1335572n?12n?1 6

求π的近似值。要求:先求出前2n项的π值,再求出2n+2项的π值,直至二者之差小

于105为止。

#include

void main()

{ float a=0,b=1,n=1,pi; do{a=b;

b=a*(2*n/(2*n-1))*(2*n/(2*n+1)); n=n+1; }

while(b-a>=1e-5);

printf(\ getch(); }

21、编写函数int prime(int n),判定n是否是素数,若是素数返回1,否则返回0 编写main函数,从键盘输入查找素数的范围,调用prime函数, 将此范围内的所有素数按从大到小的顺序排序。

22、函数viod get(int a[],int n)的功能是: 将长度为n的数组a中所有满足 “(千位上的数-百位上的数+十位上的数)*个位上的数等于4”条件的数输出 例: 7612, (7-6+1)*2等于4,则该数满足条件。 测试数据:

1031, 4587, 8712, 8684, 5671, 6541, 6212, 5040, 4512, 4581

23、函数long fun(long s)的功能是:将长整型数中的每一位上为偶数的数 依次取出组成一个新数,并将此数通过函数返回

例,当s中的数为876241时,返回的数为8624.

7

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

Top