admin管理员组

文章数量:1530842

2023年12月26日发(作者:)

参考答案

习题二 (P33)

一.单选题

1.C 2.B 3.D 4.C 5.A 6.D 7.D 8.B 9.B 10.D 11.D 12.C 13.C . 15. A

14题最后一句应为printf("%fn",d*y);结果为2.2

二.填空题

1. 18 2. int float double 3. 10 11 4. 八 十六 十 5. %

三.阅读程序题

1.10,10,9,10

2.j=1,i=2

k=3,i=3

j=3,i=2

k=1,i=1

习题三 (P52)

一.单选题

1.D 2.C 3.D 4.B 5.A 6.B 7.C 8.A 9.C

二.填空题

5. L 6. -1

三.阅读程序题

1. 6 6 6.00 6.00

2. x=127,x= 127,x=177,x=7f

Y=123.4567 , y= 123.46 , y=123.45670

3. 2,1

4. 1234

5. 4,3

6. -6,-6

四.程序设计题

1.

#include "stdio.h"

#include "math.h"

main()

{

float a,b,c,d,x1,x2;

a=2;b=-3;c=-5;

d=b*b-4*a*c;

x1=(-b+sqrt(d))/(2*a);

x2=(-b-sqrt(d))/(2*a);

printf("x1=%.2f,x2=%.2fn",x1,x2);

}

2.

#include

main()

10.B 11. -1,37777777777,4294967295

{ float a,v,s;

scanf("%f",&a);

v=a*a*a;s=6*a*a;

printf("v=%.2f,s=%.2fn",v,s);

}

3.

#include

main()

{ int a,b,c,t;

scanf("%d%d%d",&a,&b,&c);

printf("a=%d,b=%d,c=%dn",a,b,c);

t=c;c=b;b=a;a=t;

printf("a=%d,b=%d,c=%dn",a,b,c);

}

4.

#include

main()

{ char s1,s2;

s1=getchar();

s2=s1-32;

printf("%cn",s2);

}

习题四 (P70)

一.单选题

1.C 2.D 3.D 4.B 5.A 6.D 7.D 8.B 9.C

14.C 15. C 16.B 17. B 18. C

二.填空题

1. 非0 0 2. k==0 3. n%7==0 && n%8==0

三.阅读程序题

1. a=1,b=0 2. c=1

四.程序设计题

1.

#include

main()

{ int a,b;

char c;

printf("INPUT A+(-*/)Bn");

scanf("%d%c%d",&a,&c,&b);

switch(c)

{

case'+':printf("%d+%d=%dn",a,b,a+b);break;

case'-':printf("%d-%d=%dn",a,b,a-b);break;

case'*':printf("%d*%d=%dn",a,b,a*b);break;

10.A 11.B

else

rnerror . 12.D

case'/':printf("%d/%d=%dn",a,b,a/b);break;

default:printf("INPUT ERROR!");

}

}

2.

#include

main()

{ float x,y;

scanf("%f",&x);

if(x==0||x==2)y=0;

else if(x>0) y=(x+1)/(x-2);

else y=(x-1)/(x-2);

printf("y=%fn",y);

}

3.

#include

main()

{ int g;

printf("请输入学生成绩:");

scanf("%d",&g);

printf("g=%d:",g);

switch(g/10)

{

case 10:printf("An");break;

case 9:printf("Bn");break;

case 8:printf("Cn");break;

case 7:printf("Dn");break;

case 6:printf("En");break;

default:printf("Fn");

}

}

4.

#include

main()

{ int x,n=0;

scanf("%d",&x);

if(x<=0||x>=10000)

printf("Data Error!n");

else

{if(x<10)n=1;

else if(x<100)n=2;

else if(x<1000)n=3;

else n=4;

}

printf("n=%dn",n);

}

习题五 (P87)

一.单选题

1.B 2.D 3.C 4.C 5.B 6.C 7.D 8.C 9.A 10.D 11.B 12.B 13.B 14.D 15. C

二.填空题

1. for语句 while语句 do-while语句

2. a=14,y=26

3. k=14,n= -1

4. 39

5. s=19

6. 22222

7. 10

8. 7

9. 8

10. 5,5

三.改错题

应改为for(i=0;i<5;i++)j++;

应改为int j=0;while(j<10){j++;i=j;} 注while(j<10)后不应有分号

应改为while(j<10); 注while(j<10)后分号不能少

s*=i;i++;应改为{s*=i;i++;}

continue 应改为 break

四.程序设计题

1.

#include

main()

{ int i,j,s=0;

for(i=1,j=1;i<=100;i++,j=j*(-1))

s=s+i*j;

printf("s=%dn",s);

}

1.(另一做法)

#include

main()

{

int i,s;

for(i=1,s=0;i<=100;i++)

if(i%2==0)s=s-i;

else s=s+i;

printf ("%dn",s);

}

2.

#include

main()

{ int i,j,s1=0,s2=0;

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

{scanf("%d",&j);

if(j>0)s1=s1+j;

else s2=s2+j;

}

printf("s1=%d,s2=%dn",s1,s2);

}

3.

#include

main()

{

int i,s;

for(i=6,s=0;i<=96;i=i+1)

if(i%10==6||i/10==6)

s=s+i;

printf ("%dn",s);

}

4.

#include

main()

{

int i,a,b,c;

for(i=100;i<=999;i++)

{a=(i%10);b=(i/10%10);c=(i/100);

if(i==a*a*a+b*b*b+c*c*c)

printf ("%dn",i);}

}

5.

#include

main( )

{

int i,j,k=0;

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

{

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

{k++;printf("%d",k%10);}

printf("n");

}

}

6.

#include

main( )

{

int i,j,k=0;

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

{if(i<0)k=-i;else k=i;

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

printf(" ");

for(j=1;j<=7-2*k;j++)

printf("*");

printf("n");}

}

习题六 (P111)

一.单选题

1.D 2.B 3.C 4.C 5.C 6.D 7.A 8.B

二.填空题

1. 20 0 19

2. 数组名

3. 越界

4. 6

5. j==k a[j][k]=1; a[j][k]=0;

三.阅读程序题

1. 6 5 4

3 2 1

2. aaa

bbb

ccc ddd

3. 2,2,1

四.程序设计题

1.

#include

main()

{ int a[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};

int i,j,s=0;

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

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

if(i==j||i+j==3)s+=a[i][j];

printf("%d",s);

}

2.

#include

main()

{ char a[80];

int i,j=5; /*假设删除位置为5*/

gets(a);

for(i=j-1;a[i]!='0';i++)

a[i]=a[i+1];

a[i]='0';

puts(a);

}

3.

#include

#include

main()

{ char a[80];

int i,j=5; /*假设插入位置为5*/

char s='t'; /*假设插入字符为t*/

gets(a);

for(i=strlen(a);i>j;i--)

a[i+1]=a[i];

a[j]='t';

puts(a);

}

4.

#include

main()

{ int a[3][5]={1,3,5,7,9,2,4,6,8,10,3,5,8,7,6};

int i,j,s1[3]={0},s2[5]={0};

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

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

s1[i]+=a[i][ j];

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

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

s2[i]+=a[ j][i];

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

{for(j=0;j<5;j++)

printf("%6d",a[i][j]);

printf (" |%6dn",s1[i]);}

for(i=0;i<33;i++) printf("-");

printf("n");

for(i=0;i<5;i++) printf("%6d",s2[i]);

printf("n");

}

5.

#include

main()

{ char s[3][80];

int a=0,b=0,c=0,d=0,e=0,i,j;

for(i=0;i<3;i++) gets(s[i]);

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

for(j=0;s[i][j]!='0';j++)

if(s[i][j]>='A'&&s[i][j]<='Z')a++;

else if(s[i][j]>='a'&&s[i][j]<='z')b++;

else if(s[i][j]>='0'&&s[i][j]<='9')c++;

else if(s[i][j]==32)d++;

else e++;

printf("%3d%3d%3d%3d%3d",a,b,c,d,e);

}

习题七 (P145)

一.单选题

1.A 2.B 3.C 4.A 5.C 6.D 7.C 8.B

二.填空题

1. 该函数内 局部

2. 整型

3. k<=b

return y;

4. x[i]

return (ave);

fun(a,20)

5. 1;

add(n-1);

add(n);

6. n*f(n-1)

0;

f(i)

三.阅读程序,写出运行结果

1. 10,20,30

2. 64

3. 8

4. hlo

5. sum=55

四.程序设计题

1.

#include

main()

{float add(float, float), sub(float, float);

float aver(float, float),a,b;

9.B 10.C 11.D

scanf("%f,%f",&a,&b);

printf("add=%f, sub=%fn ", add(a,b), sub(a,b));

printf("aver =%f", aver(a,b));

}

float add(float x, float y) {return(x+y);}

float sub(float x, float y) {return(x-y);}

float aver(float x, float y) {return((x+y)/2);}

2.

#include

main()

{ int a,b,c,abmax(int,int);

scanf("%d%d%d",&a,&b,&c);

printf("max=%dn",abmax(abmax(a,b),c));

}

int abmax(int a,int b)

{if(a>b)return a;

else return b;

}

3.

#include

main()

{float x,fun(float, int);

int n;

scanf("%f%d",&x,&n);

printf("%fn", fun(x,n));

}

float fun(float x, int n)

{float y;

if(n==0)y=1;

else y=x*fun(x,n-1);

return y;

}

4.

#include

main()

{long f(int);

int n,k;

scanf("%d",&n);

for(k=1;k<=n;k++)printf("%ld,",f(k));

printf("n");

}

long f(int n)

{long y;

if(n<=2)y=1;

else y=f(n-1)+f(n-2);

return y;

}

5.

#include

#include

main()

{char a[50];

int n;

void fun(char x[ ],int n);

gets(a);n=strlen(a);

fun(a,n);

puts(a);

}

void fun(char a[ ],int n)

{int k,s;

for(k=0;k

{s=a[k];

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

a[n-k-1]=s;}

}

5. (另一做法)

#include

#include

main()

{char a[50];

int n;

void fun(char x[ ],int n);

gets(a);n=strlen(a);

fun(a,n);

puts(a);

}

void fun(char a[ ],int n)

{int k;

char b[50];

for(k=0;k

b[n-1-k]=a[k];

b[k]=a[k];

strcpy(a,b);

}

6.

#include

#define KK 100

main()

{char a[KK];

long sjz(char a[]);

int i=0,f1=0;

printf("input a data:");

gets(a);

for(i=0;a[i]!='0';i++)

{if(a[i]>='0'&&a[i]<='9'||a[i]>='A'&&a[i]<='F'||a[i]>='a'&&a[i]<='f')

continue;

else {f1=1;break;}

}

a[i]='0';

if(f1==1)printf("Data Error!n");

else printf("result is :%dn",sjz(a));

}

long sjz(char a[])

{long n=0,i;;

for(i=0;a[i]!='0';i++)

{if(a[i]>='0'&&a[i]<='9')n=n*16+a[i]-'0';

if(a[i]>='A'&&a[i]<='F')n=n*16+a[i]-'A'+10;

if(a[i]>='a'&&a[i]<='f')n=n*16+a[i]-'a'+10;

}

return n;

}

6.(另一做法)

#include

#define KK 100

main()

{char str[KK],c;

long sjz(char a[]);

int i=0,f1=0;

printf("input a data:");

while((c=getchar())!='n'&&i

{if(c>='0'&&c<='9'||c>='A'&&c<='F'||c>='a'&&c<='f')

str[i++]=c;

else f1=1;

}

str[i]='0';

if(f1==1)printf("Data Error!n");

else printf("result is :%dn",sjz(str));

}

long sjz(char a[])

{long n=0,i;;

for(i=0;a[i]!='0';i++)

{if(a[i]>='0'&&a[i]<='9')n=n*16+a[i]-'0';

if(a[i]>='A'&&a[i]<='F')n=n*16+a[i]-'A'+10;

if(a[i]>='a'&&a[i]<='f')n=n*16+a[i]-'a'+10;

}

return n;

}

习题八 (P181) (注:无答案的题不在本课程讲授范围内)

一.单选题

1.D 2.A 3.C 4.D 5.C 6.B 7.C 8.C 9.C 13.D 14.B 15.A 16.C 17.A

二.填空题

1. 指向 取地址

2. 2 +2

3. 28

6. *(p+5)

7. ABCD A

三.阅读程序题

1. 10

2. 10

3. 0

4. 3,6

5. 1 2 3 4

四.程序填空题

1.a,b,c或者&x,&y,&z max=*b或者max=y

2. ++ =*q ++ ++

4. int *a,int *b b[j]=a[i] b[i++]

5. *str+=3 *str>’z’&&*str<’a’||*str>’z’ a

6. else 0 t[2*j+1]

五.程序设计题

1.

#include

main()

{int a[10],*p,*q,t;

p=a;

for(q=a;q

for(q=a;q

printf("n");

q--;

for(;p

for(p=a;p

printf("n");

}

2.

#include

max=*c或者max=z

#include

void main( )

{ char a[50],*p1,*p2,t,n;

gets(a);n=strlen(a);

p1=a; p2=a+n-1;

for(; p1

{t=*p1; *p1=*p2; *p2=t;}

puts(a);

}

另一做法

#include

main()

{char str[20],*p=str;

gets(str);

while(*p)p++;

p--;

while(p>=str)

{printf("%c",*p);

p--;

}

printf("n");

}

3.

#include

main()

{int a[10],*p,*max,*min,t;

for(p=a;p

for(p=a;p

printf("n");

max=min=a;

for(p=a+1;p

{if(*p>*max)max=p;

if(*p<*min)min=p;}

t=a[0];a[0]=*min;*min=t;

t=a[9];a[9]=*max;*max=t;

for(p=a;p

printf("n");

}

5.

#include

int length(char *s)

{int n=0;

while(*s){n++;s++;}

return n;

}

main()

{char str[20];

int n;

gets(str);

n=length(str);

printf("The string length is %dn",n);

}

6.

#include

main()

{char str[81],*p=str,*q,t;

gets(str);

printf("The origenal string:n");

puts(str);

for(p=str;*(p+1);p++)

for(q=p+1;*q;q++)

if(*q<*p){t=*p;*p=*q;*q=t;}

printf("The result string:n");

puts(str);

}

习题九 (P222) (注:无答案的题不在本课程讲授范围内)

一.单选题

1.D 2.A 3.B 4.D 8.B 9.B 10.C

二.填空题

1. 结构体成员 结构体指针指向

2. 34

3. 22

4. ex

三.阅读程序题

1. 9

2. 10,x

3. 13

4. 46 40 41

5. 0

6. 3839

本文标签: 假设结构插入位置阅读程序