首页网站c语言在线题库网站 c++编程题库及答案

c语言在线题库网站 c++编程题库及答案

编程之家2026-05-17902次浏览

大家好,今天小编来为大家解答c语言在线题库网站这个问题,c++编程题库及答案很多人还不知道,现在让我们一起来看看吧!

c语言在线题库网站 c++编程题库及答案

新手学习C语言常去的8个网站!

以下是新手学习C语言常去的8个网站:

C Programming:

网址:特点:提供专门针对初学者的教程,包含教程、示例代码和练习题,是快速入门的理想起点。LearnC.org:

网址:特点:提供免费且互动式的C语言教程,覆盖基础知识,从数据类型和语法开始,逐步深入到指针等高级主题。Codecademy:

网址:特点:在线平台,提供交互式的C语言课程和实践项目,适合巩固语言基础和实践应用。Tutorialspoint:

网址:特点:提供丰富的教程和实践题,覆盖C语言全知识,无论是基础还是高级特性都有所涉及。GeeksforGeeks:

c语言在线题库网站 c++编程题库及答案

网址:特点:为新手和开发者提供C语言教程和大量实践题,涵盖知识点全面,是学习和练习的好去处。C语言中文网:

网址:特点:专注于国内学习者,提供简洁易懂的教程和实例,涵盖从基础到高级的内容,适合中文学习者。菜鸟教程:

网址:特点:以通俗易懂的C语言教程和实践题而知名,教程内容详尽,适合初学者轻松上手。牛客网:

网址:特点:不仅提供丰富的C语言题库,还是应届生刷面经的好去处,对面试准备特别有帮助,可以锻炼编程能力和解决问题的能力。这些网站都是学习C语言的优秀资源,涵盖了从入门到进阶的各个方面,适合不同阶段的学习者。

C语言题库,求发一份

单选题

1.以下叙述中正确的是(1)。

c语言在线题库网站 c++编程题库及答案

A.若e1、e2为变量,e为表达式,则

e1=e2=e使得e1、e2都具有表达式e的值。

B.程序中不能定义与库函数名同名的变量。

C.一个C源程序可放在多个文件中,但

一个函数不能跨放在两个不同的文件中。

D.C语言编译系统以函数为单位编译源程序。

2.若a,b,c都是实型变量,则下列语句中除(2)之外,都可能得不到正确的计算结果。

A.if(b*b-4*a*c==0) x1=x2=-b/(2*a);

else x1=(-b+sqrt(b*b-4*a*c))/(2*a), x2=(-b-sqrt(b*b-4*a*c))/(2*a);

B.b=2.0e38+1.0-2.0e38;

C.a=456*768/2;

D.double define=1.0;

3.以下正确的常量是(3)。

A.‘077’ B.‘\0x89’ C.3.14u D.‘\012’

4.若已有声明“float x=-1234.5678; int m,n=4;”则执行“m=printf(“\n%8.3f\n”,x)/n;”语句后,

变量m的值是(4)。

A. 2 B. 3 C. 4 D. 5

5.若已有声明“int x1; float x2; long x3; char x4;”,且以下选项均出现在switch语句中,其中正确

的是(5)。

A. case 1.1: scanf("%d",&x1);break;

B. case 1+2: scanf("%f",&x2); break;

C. case'x':

case'y'-1: scanf("%ld",&x3); break;

D. case x4: scanf("%c",&x4); break;

6. 33.以下表达式中,能够作为“if(e)语句”中判断条件表达式e的是(6)。

A. x==++(x+1) B. x+=++x||x++ C. x+1=z D. x%2.0!=0

7.以下局部变量声明中,正确的是(7)。

A.int x=0, void=1; B.int x=1,y=2x;

C.int x=2,y=sqrt(x); D.int x=sqrt(y),y=4;

8.在以下语句中,正确的是(8)。

A.if(a>b)m=a;n=b;else m=b;n=a;

B.if(a>b){m=a;n=b;else m=b;n=a;}

C.if(a>b)m=a,n=b;else m=b,n=a;

D.if(a>b){m=a;n=b;}else(a<=b){m=b;n=a;}

9.24.已知有声明:“char c=‘1’; int x=300; float t=35000; double d=3.1234567e10;”,则以下表达式

求值时除(9)外,其结果都可能是不准确的。

A.x=t/c B.t=d/x C.t=d/1e5f D. t=x+c

10.若有声明“int i,k=1; unsigned j;”,则下列语句执行时会出现无限循环的语句

是(10)。

A.for(j=15;j>0;j-=2) k++;

B.for(j=0;j<15;j+=2) k++;

C.for(i=0;i<15;i+=2) k++;

D.for(i=15;i>0;i-=2) k++;

11.已有声明“int x=2,y=1,z=0;”,以下表达式的值不为0的是(11)。

A. x==(x=0,y=1,z=2)

B. z>y>x

C. x>y==1

D. x>(y=2)

12.若e1、e2和e3是表达式,以下选项中与语句while(e1){e2,e3;}功能等价的语句是(12)。

A. for(;e1;e3)e2; B. for(;e1;e2)e3; C. for(e1;e2;e3); D. for(e1; e2, e3;);

13.已有声明“int x=3;”,以下选项中与“x+=x=x+1”功能不等价的表达式是(13)。

A.x=x+(x=xx+1) B.x=x+(x=x(x+1)) C.x=x+(x=xx1) D.x=x(x+1), x=x+x

14.若已有声明“int a=2;”,则执行语句“printf("%d", a, a+1);”后的输出结果是(14)。

A.语法错 B. 2,3 C. 2 D. 3

15.语句“if(!n) n++;”中的“!n”等价于如下(15)条件的判定。

A.n==0 B.n!=0 C.n>0 D.n<0

16.若已有声明“int a=1;”,则以下表达式中错误的是(16)。

A.-a++ B.+a-- C.--a D.++-a

17.下列(17) C语言表达式能正确表达数学计算式1÷× 2xy。

A. 1/sqrt(2*3.14)*2*pow(x,y) B.1.0/sqrt(2)*2*x**y

C. 1.0/sqrt(6.28)*2x^y D.1/6.28^0.5*2*pow(x,y)

18.已有声明“int a=3,b=3,c=2;”,以下表达式中值为0的是(18)。

A.!a&&!b&&c B.!a||!b|| c C. a==b&&b>=c D. a>=b&&b>c

19.

36.若有: int w=1, x=2, y=3, z=4;则表达式 w>x?x--:y<z?y--:++z的值为(19)。

A. 4 B. 3 C. 2 D. 1

20.已知某程序中有以下片断:

#define p 2.5

main()

{ float x=p;

}

则main函数中标识符p代表一个(20)。

A. float型变量 B. double型变量 C. float型常量D.double型常量

20.

填空题

1.21.设有如下程序段:

int a=2, b, c=5;

scanf(“%d”,&b);

b= c--|| scanf(“%d”,&c)&& a++;

执行该程序段时,若从键盘上输入的数据是 4ƀ3(ƀ代表空格键),则变量c的值为(21)。

2. signed和unsigned只能用于声明int型变量和(22)型变量。

3.代数式“||”的C语言表达式是(23)。

4.已有声明“int a=-13,n=7;”,表达式“a%=n%=4”求值后变量a的值为(24)。

5.已有声明“unsigned int a=30;”,那么–a的值为___(25)____。

6.

如下程序执行后的输出是____(26)____。

#include<stdio.h>

main()

{

int i=1,m=0;

switch( i)

{

case 1:

case 2: m++;

case 3: m++;

}

printf(“%d”,m);

}

7.C语言的三个逻辑运算符(!、&&、||)中,优先级高于算术运算符的是

(27)。

8.已知sizeof(int)的值为2,执行如下程序后输出结果为(28)。

main()

{ int a,b;

a=65536;

b=32767+1;

printf("%d%d\n",a,b);

}

9.若有声明“int a=3,b=0,c=5;”,则表达式!a+b+c-1&&b+c/2的值是(29)。

10.若有声明“int x=1,y=2;”,则表达式++x, x+y++的值是(30)。

三、阅读程序题

1.在PC机的TC中执行以下程序后的输出是:(31)。

main()

{

unsigned x=0x7f39;

int y;

char c;

c=x;

x+=0307;

y=x;

printf(“%d,%x,%c”,x,y,c);

}

2.以下程序运行后的输出结果是(32)。

#include<stdio.h>

main()

{ int x=30, y=45;

while(x!=y)

if(x>y)x-=y;

else y-=x;

printf("%d", x);

}

3.

以下程序运行后输出结果的第一行是(33),第二行是(34)。

#include<stdio.h>

#include<math.h>

void main()

{ int a=0x65,b,c,count=0;

b=a;

while(b>0)

{ b=b/8;

count++;

}

printf("%d\n",count);

while(count>0)

{ c=pow(8,count-1);

printf("%d",a/c);

a=a%c;

count--;

}

}

4.以下程序运行时输出结果是(35)。

#include<stdio.h>

main()

{

int i,x=3,y=5;

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

switch(y%x)

{

case 0: printf("%d",y);

case 1: printf("%d",y--);break;

case 2: printf("%d",--y);break;

}

}

5.以下程序执行后,输出结果的第一行是(36),第二行是 _(37)______。

#define N 100

main()

{ int i=0,sum=0;

do

{ if(i==(i/2)*2)

continue;

sum++;

if(sum>3)

break;

}while(++i<N);

printf("%d\n%d", sum,i);

}

四、完善程序题

1.下列程序的功能是按从键盘上输入的整数m,判断2m-1是否为素数,若为素数再求2m-1的反序数。例如:m为17,217–1(131071)是素数,其反序数是170131。

#include<stdio.h>

(38)

main()

{

int m,j;

long q,k1,k2=0,k3;

scanf("%d",&m);

k3=k1=pow(2,m)-1;

q=sqrt(k1);

for(j=2;j<=q;j++)

if((39)) break;

if(j>q)

{ while(k3>0)

{ k2=k2*10+(40);

k3/=10;

}

printf("m=%d\npow(2,m)-1=%ld is a prime.\nreverse order%ld\n",m,k1,k2);

}

else

printf("m=%d isn't a prime.\n",m);

}

2.以下程序找到并输出所有满足给定条件的四位十进制表示的正整数:该数是某个数的平方、该数的后二位是25、组成该整数的各位数字中有两位是2。例如:1225是满足所给条件的四位正整数(352=1225)。

#include<stdio.h>

#include<math.h>

main()

{ long i,j,s,d=0;

for(i=1000;i<10000;i++)

{(41);

j=(42);

if(i==j*j&& i%100==25)

{ s=i;

while(s>0)

{ if((43))d++;

s=s/10;

}

if(d==2) printf("\n%d",i);

}

}

}

3..下列程序计算下列数学函数展开式的近似值,累加运算在最后一项的绝对值小于10-6时停止。

程序运行时从键盘上分别三个实数-1.0、0.5、1.0,作为x的值。

#include<stdio.h>

#include<math.h>

#define EPS 1.0e-6

main()

{ double x,n,tn,ft,sn,xn;

int i;

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

{(44);

ft=1.0;

scanf("%lf",&x);

sn=xn=x;

do{

xn=xn*x*x;

ft=ft*(2*n-3)/(2*n-2);

tn=ft*xn/(45);

sn=sn+tn;

n=n+1;

}while((46));

printf("f(%lf)=%0.6lf\n",x,sn);

}

}

《C语言程序设计》试卷答题纸

(本试卷满分100分)

系科_____________学号_____________姓名_____________成绩____________

单项选择题得分填空题得分阅读程序题得分完善程序题得分总分

一、单项选择题

(1)(2)(3)(4)(5)

(6)(7)(8)(9)(10)

(11)(12)(13)(14)(15)

(16)(17)(18)(19)(20)

二、填空题

(21)(22)

(23)(24)

(25)(26)

(27)(28)

(29)(30)

三、阅读程序题

(31)(32)

(33)(34)

(35)(36)

(37

四、完善程序题

(38)(39)

(40)(41)

(42)(43)

(44)(45)

(46)

《C语言程序设计》试卷参考答案

(本试卷满分100分)

一、单项选择题

(1)C(2)D(3)D(4)A(5) B

(6)B(7)C(8)C(9)D(10)A

(11)C(12)A(13)A(14)C(15)A

(16)D(17)A(18)A(19)B(20)D

二、填空题

(21) 4(22) char

(23) fabs(exp(sqrt(1+sin(x))))(24)-1

(25) 65506(26) 2

(27)!(28) 0-32768

(29) 1(30) 4

三、阅读程序题

(31)-32768, 8000, 9(32) 15

(33) 3(34) 145

(35) 4433(36) 4

(37) 7

四、完善程序题

(38)#include<math.h>(39) k1%j==0

(40) k3%10(41) d=0

(42) sqrt(i)(43) s%10==2

(44) n=2.0(45)(2*n-1)

(46) fabs(tn)>EPS

2010南开c语言100上机题库

计算机二级C语言上机南开100题--1

1:第1题 m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。

答案:

int fun(int score[],int m,int below[])

{

int i,k=0,aver=0;

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

aver+=score[i];

aver/=m;

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

if(score[i]<aver)

{

below[k]=score[i];

k++;

}

return k;

}

2:第2题请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。

答案:

void fun(int*a, int*n)

{

int i,j=0;

for(i=2;i<1000;i++)

if((i%7==0|| i%11==0)&& i%77!=0)

a[j++]=i;

*n=j;

}

3:第3题请编写函数void fun(int x,int pp[],int*n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。

答案:

void fun(int x, int pp[ ], int*n)

{

int i=1,j=0;k=0,*t=pp;

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

if(i%2!=0)

{

t[j]=I;

j++;

}

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

if(x%t[i]==0)

{

pp[k]=t[i];

k++;

}

*n=k;

}

4:第4题请编写一个函数void fun(char*tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在pp所指的数组中。

答案:

void fun(char*tt, int pp[])

{

int i;

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

pp[i]=0;

while(*tt)

{

switch(*tt)

{

case‘a’: pp[0]++;break;

case‘b’: pp[1]++;break;

case‘c’: pp[2]++;break;

case‘d’: pp[3]++;break;

case‘e’: pp[4]++;break;

case‘f’: pp[5]++;break;

case‘g’: pp[6]++;break;

case‘h’: pp[7]++;break;

case‘i’: pp[8]++;break;

case‘j’: pp[9]++;break;

case‘k’: pp[10]++;break;

case‘l’: pp[11]++;break;

case‘m’: pp[12]++;break;

case‘n’: pp[12]++;break;

case‘o’: pp[14]++;break;

case‘p’: pp[15]++;break;

case‘q’: pp[16]++;break;

case‘r’: pp[17]++;break;

case‘s’: pp[18]++;break;

case‘t’: pp[19]++;break;

case‘u’: pp[20]++;break;

case‘v’: pp[21]++;break;

case‘w’: pp[22]++;break;

case‘x’: pp[23]++;break;

case‘y’: pp[24]++;break;

case‘z’: pp[25]++;break;

}

tt++;

}

}

5:第5题请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k各素数存入xx所指的数组中。

答案:

void fun(int m, int k, int xx[])

{

int g=0,I,j,flag=1;

for(i=m+1;i<m*m;i++)

{

for(j=0;j<I;j++)

{

if(i%j!=0)

flag=1;

else

{

flag=0;

break;

}

}

if(flag==1&& j>=i)

{

if(k>=0)

{

xx[g++]=i;

k--;

}

else

break;

}

}

}

6:第6题请编写一个函数void fun(char a[],char[],int n),其功能是:删除以各字符串中指定下标的字符。其中,a指向原字符串,删除后的字符串存放在b所指的数组中,n中存放指定的下标。

答案:

void fun(char a[],char b[], int n)

{

int I,j=0;

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

if(i!=n)

{

b[j]=a[i];

j++;

}

b[j]=‘\0’;

}

7:第7题请编写一个函数int fun(int*s,int t,int*k),用来求除数组的最大元素在数组中的下标并存放在k所指的储存单元中。

答案:

void fun(int*s, int t, int*k)

{

int I, max;

max=s[0];

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

if(s[i]>max)

{

max=s[i];

*k=I;

}

}

8:第8题编写函数fun,功能是:根据以下攻势计算s,计算结果作为函数值返回;n通过形参传入。S=1+1/(1+2)+1/(1+2+3)+…….+1/(1+2+3+4+……+n)

答案:

float fun(int n)

{

int i;

float s=1.0, t=1.0;

for(i=2;i<=n;i++)

{

t=t+i;

s=s+1/t;

}

return s;

}

9:第9题编写一个函数fun,它的功能是:根据以下公式求p的值,结果由函数值带回。M与n为两个正整数,且要求m>n。 p=m!/n!(m-n)!

答案:

float fun(int m, int n)

{

float p,t=1.0;

int I;

for(i=1;i<=m;i++)

t=t*I;

p=t;

for(t=1.0,i=1;i<=n;i++)

t=t*I;

p=p/t;

for(t=1.0,i=1;i<=m-n;i++)

t=t*I;

p=p/t;

return p;

}

10:第10题编写函数fun,它的功能是:利用以下的简单迭代方法求方程cos(x)-x=0的一个实根。

迭代步骤如下:(1)取x1初值为0.0;(2)x0=x1,把x1的值赋各x0;

(3)x1=cos(x0),求出一个新的x1;

(4)若x0-x1的绝对值小于0.000001,则执行步骤(5),否则执行步骤(2);

(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。

程序将输出root=0.739085。

答案:

float fun()

{

float x1=0.0,x0;

do

{

x0=x1;

x1=cos(x0);

}

while(fabs(x0-x1)>1e-6);

return x1;

}

11:第11题下列程序定义了n×n的二维数组,并在主函数中自动赋值。请编写函数 fun(int a[][n]),该函数的功能是:使数组左下半三角元素中的值全部置成0。

答案:

int fun(int a[][N])

{

int I,j;

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

for(j=0;j<=I;j++)

a[i][j]=0;

}

12:第12题下列程序定义了n×n的二维数组,并在主函数中赋值。请编写函数fun,函数的功能使求出数组周边元素的平均值并作为函数值返回给主函数中的s。

答案:

double fun(int w[][N])

{

int I,j,k=0;

double s=0.0;

for(j=0;j<N;j++)

{

s+=w[0][j];

k++;

}

for(j=0;j<N;j++)

{

s+=w[N-1][j];

k++;

}

for(i=1;i<=N-2;i++)

{

s+=w[i][0];

k++;

}

for(i=1;i<=N-2;i++)

{

s+=w[i][N-1];

k++;

}

return s/=k;

}

13:第13题请编写一个函数void fun(int tt[m][n],int pp[n]),tt指向一个m行n列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中。二维数组中的数已在主函数中赋予。

答案:

void fun(int tt[M][N], int pp[N])

{

int I,j,min;

for(j=0;j<N;j++)

{

min=tt[0][j];

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

{

if(tt[i][j]<min)

min=tt[i][j];

}

pp[j]=min;

}

}

14:第14题请别写函数fun,函数的功能使求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。

答案:

int fun(int a[M][N])

{

int I,j,s=0;

for(j=0;j<N;j++)

{

s+=a[0][j];

s+=a[M-1][j];

}

for(i=1;i<=M-2;i++)

{

s+=a[i][0];

s+=a[i][N-1];

}

return s;

}

15:第15题请编写一个函数unsigned fun(unsigned w),w使一个大于10的无符号整数,若w使n(n≥2)位的整数,则函数求出w后n-1位的数作为函数值返回。

答案:

unsigned fun(unsigned w)

{

unsigned t,s=0,s1=1,p=0;

t=w;

while(t>10)

{

if(t/10)

p=t%10;

s=s+p*s1;

s1=s1*10;

t=t/10;

}

return s;

}

16:第16题请编写一个函数float fun(double h),函数的功能使对变量h中的值保留2位小树,并对第三位进行四舍五入(规定h中的值位正数)。

答案:

float fun(float h)

{

long t;

float s;

h=h*1000;

t=(h+5)/10;

s=(float)t/100.0;

return s;

}

17:第17题请编写一个函数fun(char*s),该函数的功能使把字符串中的内容拟置。

答案:

void fun(char*s)

{

char ch;

int I,m,n;

i=0;

m=n=strlen(s)-1;

while(i<(n+1)/2)

{

ch=s[i];

s[i]=s[m];

s[m]=ch;

i++;

m--;

}

}

18:第18题编写程序,实现矩阵(3行3列)的转置(即行列互换)。

答案:

void fun(int array[3][3])

{

int I,j,temp;

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

for(j=0;j<I,j++)

{

temp=array[i][j];

array[i][j]=array[j][i];

array[j][i]=temp;

}

}

19:第19题编写函数fun,该函数的功能是:从字符中删除指定的字符,同一字母的大、小写按不同字符处理。

答案:

void fun(char s[],int c)

{

int i=0;

char*p;

p=s;

while(*p)

{

if(*p!=c)

{

s[i]=*p;

i++;

}

p++;

}

s[i]=‘\0’;

}

20:第20题编写函数int fun(int lim,int aa[max]),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求的素数的个数。

答案:

int fun(int lim, int aa[MAX])

{

int k=0,I,j;

for(i=lim;i>1;i--)

{

for(j=2;j<i;j++)

if(i%j==0)

break;

else

continue;

if(j>=i)

{

aa[k]=i;

k++;

}

}

return k++;

}

21:第21题请编写函数fun,对长度位7个字符的字符串,除首尾字符外,将其余5个字符按ascii码降序排列。

答案:

void fun(char*s,int num)

{

char t;

int I,j;

for(i=1;i<num-2;i++)

for(j=i+1;j<num-1;j++)

if(s[i]<s[j])

{

t=s[i];

s[i]=s[j];

s[j]=t;

}

}

22:第22题 n名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:找出学生的最高分,由函数值返回。

答案:

double fun(STREC*h)

{

double max;

STREC*q=h;

max=h->s;

do

{

if(q->s>max)

max=q->s;

q=q->next;

}

while(q!=0);

return max;

}

23:第23题请编写函数fun,该函数的功能是:判断字符串是否为回文?若是则函数返回1,主函数中输出yes,否则返回0,主函数中输出no。回文是指顺读和倒读都是一样的字符串。

答案:

int fun(char*str)

{

int I,n=0;fg=1;

char*p=str;

while(*p)

{

n++;

p++;

}

for(i=0;i<n/2;i++)

if(str[i]==str[n-1-i]);

else

{

fg=0;

break;

}

return fg;

}

24:第24题请编写一个函数fun,它的功能是:将一个字符串转换为一个整数(不得调用c语言提供的将字符串转换为整数的函数)。

答案:

long fun(char*p)

{

long s=0,t;

int i=0,j,n=strlen(p),k,s1;

if(p[0]==‘-’)

i++;

for(j=I;j<=n-1;j++)

{

t=p[j]-‘0’;

s1=10;

for(k=j;k<n-1;k++)

t*=s1;

s+=t;

}

if(p[0]==‘-’)

return–s;

else

return s;

}

25:第25题请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用c语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。

答案:

char*fun(char*s,char*t)

{

char*p,*t1=t,*s1=s;

int n=0;m=0;

while(*s1)

{

n++;

s1++;

}

while(*t1)

{

m++;

t1++;

}

if(n>=m)

p=s;

else

p=t;

return p;

}

26:第26题请编写一个函数fun,它的功能是:根据以下公式求x的值(要求满足精度0.0005,即某项小于0.0005时停止迭代):

x/2=1+1/3+1×2/3×5+1×2×3/3×5×7+1×2×3×4/3×5×7×9+…+1×2×3×…×n/3×5×7×(2n+1)

程序运行后,如果输入精度0.0005,则程序输出为3.14…。

答案:

double fun(double eps)

{

double s;

float n,t,pi;

t=1;pi=0;n=1.0;s=1.0;

while((fabs(s))>=eps)

{

pi+=s;

t=n/(2*n+1);

s*=t;

n++;

}

pi=pi*2;

return pi;

}

27:第27题请编写一个函数fun,它的功能是:求除1到m之内(含m)能北7或11整除的所有整数放在数组a中,通过n返回这些数的个数。

答案:

void fun(int m, int*a, int*n)

{

int I,j=0;*n=0;

for(i=1;i<=m;i++)

if(i%7==0|| i%11==0)

{

a[j]=I;

j++;

}

*n=j;

}

28:第28题请编写一个函数fun,它的功能是:找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。

答案:

void fun(int a[],int n, int*max, int*d)

{

int I;

*max=a[0];

*d=0;

for(i=0;I<n;i++)

if(a[i]>*max)

{

*max=a[i];

*d=I;

}

}

29:第29题请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。

答案:

void fun(char*ss)

{

int I,n;

n=strlen(ss);

for(i=1;i<n;i+=2)

if(ss[i]>=‘a’&& ss[i]<=‘z’)

ss[i]=ss[i]-32;

}

30:第30题请编写一个函数fun,它的功能是:求除一个2×m整型二维数组中最大元素的值,并将此值返回调用函数。

答案:

int fun(int a[][M])

{

int I,j,max;

max=a[0][0];

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

for(j=0;j<M;j++)

if(a[i][j]>max)

max=a[i][j];

return max;

}

31:第31题请编写函数fun,其功能是:将s所指字符串中除了下标为偶数、同时ascii值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的一个数组中。

答案:

void fun(char*s,char t[])

{

int I,j=0,n;

n=strlen(s);

for(i=0;I,n;i++)

if(i%2==0&&s[i]%2==0)

{

t[j]=s[i];

j++;

}

t[j]=‘\0’;

}

32:第32题请编写函数fun,其功能是:将s所指字符串中除了下标为奇数、同时ascii值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的一个数组中。

答案:

void fun(char*s,char t[])

{

int I,j=0,n;

n=strlen(s);

for(i=0;I,n;i++)

if(i%2!=0&&s[i]%2!=0)

{

t[j]=s[i];

j++;

}

t[j]=‘\0’;

}

33:第33题假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串中尾部的*号不得多于n个;若多于n个,则删除多于的*号;若少于或等于n个,则什么也不做,字符串中间和前面的*号不删除。

答案:

void fun(char*a,int n)

{

int i=0;k=0;

char*p,*t;

p=t=a;

while(*t)

t++;

t--;

while(*t==‘*’)

{

k++;

t--;

}

t++;

if(k>n)

{

while(*p&&p<t+n)

{

a[i]=*p;

i++;

p++;

}

a[i]=‘\0’;

}

}

34:第34题学生的记录由学号和成绩组成,n名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能使:把分数最高的学生数据放在h所指的数组中,注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。

答案:

int fun(STREC*a, STREC*b)

{

int I,j=0,n=0, max;

max=a[0].s;

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

if(a[i].s>max)

max=a[i].s;

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

if(a[i].s==max)

{

*(b+j)=a[i];

j++;

n++;

}

return n;

}

35:第35题请编写一个函数,用来删除字符串中的所有空格。

答案:

void fun(char*str)

{

int i=0;

char*p=str;

while(*p)

{

if(*p!=‘’)

{

str[i]=*p;

i++;

}

p++;

}

str[i]=‘\0’;

}

36:第36题假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导*号全部移到字符串的尾部。

答案:

void fun(char*a)

{

int i=0,n=0;

char*p;

p=a;

while(*p==‘*’)

{

n++;

p++;

}

while(*p)

{

a[i]=*p;

i++;

p++;

}

while(n!=0)

{

a[i]=‘*’;

i++;

n--;

}

a[i]=‘\0’;

}

37:第37题某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出。请编写函数fun,它的功能是:求出该学生的平均分放在记录的ave成员中。请自己定义正确的形参。

答案:

void fun(STREC*p)

{

double av=0.0;

int i:

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

av+=p->s[i];

av/=N;

p->ave=av;

}

38:第38题请编写函数fun,它的功能是:求出ss所指字符串中指定字符的个数,并返回此值。

答案:

int fun(char*ss, char c)

{

int n=0;

while(*ss)

{

if(*ss==c)

n++;

ss++;

}

return n;

}

39:第39题请编写函数fun,该函数的功能是:移动一维数组中的内容,若数组中由n个整数,要求把下标从0到p(p小于等于n-1)的数组元素平移到数组的最后。

答案:

void fun(int*w, int p, int n)

{

int b[N], i, j=0;

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

{

b[i]=w[i];

j++;

}

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

{

w[j]=b[i];

j++;

}

}

40:第40题请编写函数fun,该函数的功能是移动字符串中内容,移动的规则如下:把第1到第m个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。

答案:

void fun(char*w,int m)

{

char b[N];

int I,j=0;

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

{

b[j]=w[i];

j++;

}

for(i=0;i<strlen(w)-m;i++)

w[i]=w[i+m];

for(j=0;j<m;j++)

{

w[i]=b[j];

i++;

}

w[i]=‘\0’;

}

41:第41题请编写函数fun,该函数的功能是:将m行n列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。

答案:

void fun(char(*s)[n],char*b)

{int i,j,k=0;

for(j=0;j<n;j++)

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

{b[k]=*(*(s+i)+j)

k++;}

b[k]=‘\0’;}

42:第42题下列程序定义了n×n的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][n],int n),该函数的功能是:将数组右上半三角元素中的值乘以m。

答案:

void fun(int a[][n],int m)

{int i,j;

for(j=0;j<n;j++)

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

a[j]=a[j]*m;}

43:第43题编写一个函数,从传入的num个字符串中找出一个最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。

答案:

char*fun(char(*a)[81],int num)

{int i;

char*max;

max=a[0];

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

if(strlen(max)<strlen(a))

max=a;

return max;}

44:第44题编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。

答案:

int fun(char*str,char*substr)

{int n;

char*p,*r;

n=0;

while(*str)

{p=str;

r=substr;

while(*r)

if(*r==*p)

{r++;

p++;}

else

break;

if(*r==‘\0’)

n++;

str++;}

return n;}

45:第45题假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。形参n给出了字符串的长度,形参h给出了字符串中前导*号的个数,形参e给出了字符串中最后的*个数。在编写时不得使用c语言给提供得字符串函数。

答案:

void fun(char*a,int n,int h,int e)

{int i=0;

char*p;

for(p=a+h;p<a+n-e;p++)

{*(a+i)=*p;

i++;}

*(a+i)=‘\0’;}

46:第46题学生得记录由学号和成绩组称个,n名大学生得数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能时:按分数的高低排列学生的记录,高分在前。

答案:

void fun(strec a[])

{int i,j;

strec t;

for(i=0;i<n-1;i++)

for(j=i;s<n;j++)

if(a.s<a[j].s)

{t=a;

a=a[j];

a[j]=t;}}

47:第47题请编写一个函数void fun(char*ss),其功能时:将字符串ss中所有下标为奇数位置上的字母转换为大写(若位置上不是字母,则不转换)。

答案:

void fun(char*ss)

{int i,n=0;

char*p=ss;

while(*p)

{n++;

p++;}

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

if((ss=‘a’&ss<=‘z’)&i%2!=0)

ss=ss-32;

ss=‘\0’;}

48:第48题请编写函数fun,其功能是:将两个两位数的正整数a,b合并成一个整数放在c中。合并的方式是:将a数的十位和个位依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。

答案:

void fun(int a,int b,long*c)

{*c=(a/10)*1000+(b/10)*100+(a%10)*10+b%10;}

49:第49题请编写函数fun,其功能是:将s所指字符串中下标位偶数同时ascii值为奇数的字符删除,s中剩余的字符形成的新串放在t所指的数组中。

答案:

void fun(char*s,char t[])

{int i,j=0,n=strlen(s);

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

if(i%2==0&s%2!=0)

else

{f[j]=s;

j++;}

t[j]=‘\0’;}

50:第50题已知学生的记录是由学号和学习成绩构成,n名学生的数据已存入a机构体数组中。请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。

答案:

void fun(stu a[],stu*s)

{int i,max;

max=a[0].s;

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

if(a.s>max)

{max=a.s;

*s=a;}}

好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!

javascript数组从小到大排序?javascript 数组排序网站源码建站(网站代码生成器)