c语言试卷答案 下载本文

2006年信息学院《C语言程序设计》答案 一、1~10 × √ × × √ √ √ √ √ √ 二、1、2.0 2、1 3、11 4、10 5、35 三、1、答: #include

void swap(int *,int*); void main() {

int a,b,c;

scanf(“%d,%d,%d”,&a,&b,&c); if(a

printf(“%d\\n%d\\n%d\\n”,a,b,c); }

void swap(int *p1,int*p2) {

int temp; temp=*p1; *p1=*p2; *p2=temp; } 2、答:

#include #include #define N 5

char *process(char p[][80],int,char*); main() {

char string[N][80],*pmax,pmin[80];

char i;

for(i=0;i

scanf(“%s”,string[i]); }

pmax=process(string,N,pmin); printf(“Maxstring :=%s,Min string :=%s\\n”,pmax,pmin); }

char *process(char p[][80],int n,char*pmin) { int i;

char *pmax=p[0]; strcpy(pmin,p[0]); for(i=1;i

if(strcmp(p[i],pmax)>0) pmax=p[i]; }

for(i=1;i

if(strcmp(p[i],pmin)<0) strcpy(pmin,p[i]); }

return pmax; }

四、1 s=1,t=1,n=1,pi=0 2 fabs(t)>=1e-6 3 (-1)*s

4 1/n*s 5 4*pi

6 char *pro_str(char *);或者 # include 7 pro_str(str) 8 s

9 *s ! =‘\\0’ 10 strcpy(s,s+1) 11 temp

五、1、答:输出结果: 36 49 64

答:输出结果: 19 5

2、答:输出结果: main:n=0

func:n=0,x=1,y=0 func:n=1,x=1,y=0 main:n=0

3、答:输出结果: a=124 a=456 chr=a

4、答:输出结果: capital ndex rge ll

5、

六、1、答:方法一(if嵌套) #include“stdio.h” void main() {

int score; char grade;

printf(“\\npleaseinput a student score:”);

scanf(“%f”,&score); f(score>100||score<0) printf(“\\ninputerror! ”); else

{ if(score>=90) grade=‘A’; else

{ if(score>=80) grade=‘B’; else

{if(score>=70) grade='C'; else

{ if(score>=60) grade=‘D’; else grade=‘E’; } } }

printf(“\\nthestudent grade:%c”,grade);

} }

方法二:switch语句 #include“stdio.h” void main() {

int g,s; char ch;

printf(“\\ninputa student grade:”);scanf(“%d”,&g); s=g/10; if(s<0||s>10)

printf(\); else

{ switch (s) { case 10:

case 9:ch=‘A’; break; case 8:ch=‘B’; break; case 7:ch=‘C’; break; case 6:ch=‘D’; break; default: ch=‘E’; }

printf(“\\nthestudent scort:%c”,ch);} } 2、答:

# include

void squ(int ,int,int *,int *); void main() {

int a,b,squsum,squmar;

printf(“\\nplease input data a and b:”);

scanf(“%d,%d”,&a,&b); squ(a,b,&squsum,&squmar); printf

“squaresum=%d

squaremargin=%d\\n”,squsum,squmar); }

void squ(int a,intb,int *squ1,int *squ2) {

*squ1=a*a+b*b; *squ2=a*a-b*b; } 3、答:

#include #include

char *deletestr(char *,char*);//删除指定字符串 void main() {

char str[80],dstr[80],*p;

printf(“\\nplease input a string:”); gets(str);

printf(“\\nplease input a delete string:”); gets(dstr);

p=deletestr(str,dstr); printf

“\\nthe

string

after

deleted:”); puts(p);