C程序设计试题及答案Word格式文档下载.docx

上传人:b****3 文档编号:7160714 上传时间:2023-05-08 格式:DOCX 页数:11 大小:19.39KB
下载 相关 举报
C程序设计试题及答案Word格式文档下载.docx_第1页
第1页 / 共11页
C程序设计试题及答案Word格式文档下载.docx_第2页
第2页 / 共11页
C程序设计试题及答案Word格式文档下载.docx_第3页
第3页 / 共11页
C程序设计试题及答案Word格式文档下载.docx_第4页
第4页 / 共11页
C程序设计试题及答案Word格式文档下载.docx_第5页
第5页 / 共11页
C程序设计试题及答案Word格式文档下载.docx_第6页
第6页 / 共11页
C程序设计试题及答案Word格式文档下载.docx_第7页
第7页 / 共11页
C程序设计试题及答案Word格式文档下载.docx_第8页
第8页 / 共11页
C程序设计试题及答案Word格式文档下载.docx_第9页
第9页 / 共11页
C程序设计试题及答案Word格式文档下载.docx_第10页
第10页 / 共11页
C程序设计试题及答案Word格式文档下载.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C程序设计试题及答案Word格式文档下载.docx

《C程序设计试题及答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C程序设计试题及答案Word格式文档下载.docx(11页珍藏版)》请在冰点文库上搜索。

C程序设计试题及答案Word格式文档下载.docx

6.{floats;

7.s=2*PI*r;

8.returns;

9.}

10.voidMain()

11.{inta[5],b[5],i;

12.i=2;

13for(inti;

i<

5;

i++)

14.{printf(“\n输入半径r:

”);

15.scanf(“%f”,&

r);

16.b[i]=perimeter();

17.a[i]=r;

18.}

19.printf(“%f”,area(a[i])-area(a[i+1]));

20.}

21.floatarea(floatr)

22.{

23.returnPI*r*r;

24.}

(答题格式:

第x行说明的变量x是(全局/局部)变量,作用域为:

y1-y2,y3-y4,...。

其中y1、y2、y3、y4是语句行号)

3.举例说明给变量一个值的4类方法。

二、(20分)阅读下列程序,指出程序的输出。

1.下列程序计算数组c的各元素之值

#include<

intbelong(intx,int*p,intn);

voidmain()

{inta[10],b[10],c[10];

inti,k,n,m;

FILE*fp;

if(fp=fopen(“”,“rt”))

{printf(“\n不能打开此文件,按任意键退出!

getch();

exit

(1);

}

fscanf(fp,“%d”,&

n);

for(i=0;

n;

i++)fscanf(fp,“%d”,&

a[i]);

m);

m;

b[i]);

fclose(fp);

k=0;

if(belong(a[i],b,m))

{c[k]=a[i];

k++;

printf(“\n数组c的元素为:

\n”);

for(i=0,i<

k;

i++)printf(“%d\t”,c[i]);

intbelong(inte,int*p,intn)

{intj,flag=0;

for(j=0;

j<

j++)

if(e==*(p+j)){flag=1;

break;

returnflag;

文件data.txt的内容为:

6510481223

875234248912

2.下列程序产生并输出一个整数序列

voidfib(intn,int*p)

{

if(n==1){*p=1;

return;

if(n==2){*(p-1)=1;

*p=1;

fib(n-1,p-1);

*p=*(p-1)+*(p-2);

return;

{inta[12],n,i,temp,*p;

printf(“请输入序列中元素个数(至少1个,最多12个):

scanf(“%d”,&

printf(“\n”);

p=&

a[n-1];

fib(n,p);

for(i=0;

=n/2;

{temp=a[i];

a[i]=a[n-i-1];

a[n-i-1]=temp;

for(i=0;

printf(“%d”,a[i]);

运行时与用户的交互为:

请输入序列中元素个数(至少1个,最多12个):

5

三、(10分)下列程序递归求解阶乘函数n!

找出其中的错误,并改正之。

intmain()

printf("

=%ld"

fun(4));

longfun(intn)

{n=1;

longlRet;

if(n=0)

printf("

1"

);

lRet=1;

};

else

%d*"

n);

lRet=n*fun(n-1);

returnlRet;

四、(10分)用流程图或N-S图描述求解下列问题的算法:

输入n个整数,输出其中的最小者。

五、(30分)编程题

1.任输入三个浮点数,判断它们是否构成三角形的边。

若构成三角形的边,则输出三角形的面积,否则输出错误信息。

(三角形面积的计算机公式为

,其中a、b、c分别为三条边的长度,s=(a+b+c)/2)。

2.给定结构体类型说明语句如下:

structemployerInfo

{charnam[10];

charsex;

intage;

假设在main()中定义了结构体数组employer,并给它输入了值,其中name输入的是汉字:

structemployerInfoemployer[20];

1)编写一个函数,输出所有李姓雇员的信息。

要求该函数的原型为:

voidLi-employer(structemployerInfo*p);

即,函数的形参是结构体指针。

2)编写另一个函数,按照年龄(age)从大到小对employer数组排序。

voidsorted(structemployerInfop[]);

即,其形参是结构体数组。

 

答案

一、

1、将字符串s2连接到字符串s1后面,形成新的字符串s1。

2、

第3行中的r是局部变量,作用域是3

第4行中的r是全局变量,作用域是4-21(挖掉22-25)

第6行中的s是局部变量,作用域是6-9

第11行中的a,b数组是局部变量,作用域是11-21

第12行中的i是局部变量,作用域是12-21

第12行中的k是局部变量,作用域是12-13,20-21(挖掉14-19)

第14行中的k是局部变量,作用域是14-19

第22行中的r是局部变量,作用域是22-25

3、初始化。

如,intk=0;

赋值操作(包括赋值表达式、赋值语句、自增、自减)。

如,s=0;

输入语句。

如,scanf(“%d”,&

x);

形参和实参结合,intf(intx){returnx*x;

voidmain(){floaty=5.1234587;

printf(“%f”,f(y));

二、

1、

数组c的元素为:

5481223

53211

三、

(1)函数没有声明;

第一行后加longfun(intn);

(2)longfun(intn)函数中多了n=1;

语句,删除之;

(3)longfun(intn)函数中if(n=0)改为if(n==0);

(4)longfun(intn)函数中else前有分号,删除之;

(5)主函数没有返回值,加上语句return0;

四、(可根据此程序转换成图)

voidmain(void)

intn,i,d,k;

请输入一个整数n:

"

scanf("

%d"

&

请输入一个整数:

d);

k=d;

for(i=1;

i<

n;

{

if(k>

d)

最小的数是:

%d\n"

k);

五、

math.h>

floata,b,c;

doubles,area;

请输入三个实数:

%f%f%f"

a,&

b,&

c);

if((a+b>

c)&

&

(a+c>

b)&

(b+c>

a)&

a>

0&

b>

c>

0)

s=(a+b+c)/2;

area=sqrt(s*(s-a)*(s-b)*(s-c));

面积等于:

%lf\n"

area);

else{

您输入的三个实数不是三角形的边长!

\n"

exit(0);

(1)

(2)

voidLi_employer(structemployerInfo*p);

voidsorted(structemployerInfop[]);

structemployerInfoemployer[20],*p=employer;

inti;

for(i=0;

=19;

\n请输入一个员工的记录:

%s%c%d"

employer[i].nam,&

employer[i].sex,&

employer[i].age);

Li_employer(p);

sorted(p);

voidLi_employer(structemployerInfo*p)

charn[3]="

李"

;

i<

i++)

if((p+i)->

nam[0]==n[0]&

(p+i)->

nam[1]==n[1])

%s%c%d\n"

(p+i)->

nam,(p+i)->

sex,(p+i)->

age);

voidsorted(structemployerInfop[])

inti,j;

structemployerInfok;

=18;

for(j=i+1;

j<

if(p[i].age<

p[j].age)

{

k=p[i];

p[i]=p[j];

p[j]=k;

}

p[i].nam,p[i].sex,p[i].age);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2