当前位置:文档之家› C语言练习题z(4-5章)

C语言练习题z(4-5章)

C语言练习题z(4-5章)
C语言练习题z(4-5章)

C语言练习题(4-5章)

一、选择题

1.以下叙述正确的是

A) C语言比其他语言高级

B) C语言可以不用编译就能被计算机识别执行

C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式

D) C语言出现的最晚、具有其他语言的一切优点

2.C语言中用于结构化程序设计的三种基本结构是

A) 顺序结构、选择结构、循环结构

B) if、switch、break

C) for、while、do-while

D) if、for、continue

3.在一个C语言程序中

A) main函数必须出现在所有函数之前B) main函数可以在任何地方出现

C) main函数必须出现在所有函数之后D) main函数必须出现在固定位置

4.下列叙述中正确的是

A) C语言中既有逻辑类型也有集合类型B) C语言中没有逻辑类型但有集合类型

C) C语言中有逻辑类型但没有集合类型D) C语言中既没有逻辑类型也没有集合类型

5.下列关于C语言用户标识符的叙述中正确的是

A) 用户标识符中可以出现下划线和中划线(减号)

B) 用户标识符中不可以出现中划线,但可以出现下划线

C) 用户标识符中可以出现下划线,但不可以放在用户标识符的开头

D) 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头

6.已定义ch为字符型变量,以下赋值语句中错误的是

A)ch='\'; B)ch=62+3; C)ch=NULL; D)ch='\xaa';

7.以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是()

A)if((a>b)&&(b>c)) k=1; B) if((a>b)||(b>c)) k=1

else k=0; else k=0;

C)if(a<=b) k=0; D) if(a>b) k=1;

else if(b<=c) k=1; else if(b>c) k=1;

else k=0;

8.若有以下程序段(n所赋的是八进制数)

int m=32767,n=032767;

printf("%d,%o\n",m,n);

执行后输出结果是

A) 32767,32767B) 32767,032767 C) 32767,77777 D) 32767,077777

9.下列关于单目运算符++、--的叙述中正确的是

A) 它们的运算对象可以是任何变量和常量

B) 它们的运算对象可以是char型变量和int型变量,但不能是float型变量

C) 它们的运算对象可以是int型变量,但不能是double型变量和float型变量

D) 它们的运算对象可以是char型变量、int型变量和float型变量

10.若有以下程序段

int m=0xabc,n=0xabc;

m-=n;

printf("%Xm\n",m);

执行后输出结果是

A) 0X0 B) 0x0 C) 0 D) 0XABC

11.有以下程序段

int m=0,n=0; char c='a';

scanf("%d%c%d",&m,&c,&n);

printf("%d,%c,%d\n",m,c,n);

若从键盘上输入:10A10<回车>,则输出结果是:

A) 10,A,10 B) 10,a,10 C) 10,a,0 D) 10,A,0

12.有以下程序,执行后输出的结果是

main()

{ int i=1,j=1,k=2;

if((j++||k++)&&i++) printf("%d,%d,%d\n",i,j,k);

}

A) 1,1,2 B) 2,2,1 C) 2,2,2 D) 2,2,3

13.有以下程序,执行后输出的结果是

main()

{ int a=5,b=4,c=3,d=2;

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

else if((c-1>=d)==1) printf("%d\n",d+1);

else printf("%d\n",d+2);

}

A) 2 B) 3C) 4 D) 编译时有错,无结果

14.有以下程序,执行后输出的结果是

main()

{ int i=10,j=1;

printf("%d,%d\n",i--,++j);

}

A) 9,2 B) 10,2 C) 9,1 D) 10,1

15.有定义语句:int a=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不为3的是

A)if (c

else if(b

else x=3; else x = 1;

C)if (a<3) x=3; D)if(A

if(a<2) x = 2; if(b

if(a<1) x=1; if(c

16.假定所有变量均已正确说明,下列程序段运行后x的值是

a=b=c=0;x=35;

if(!a) x--;

else if(b);if(c) x=3;

else x=4;

A) 34 B) 4C) 35 D) 3

17.以下程序输出结果是

A)7 B)6C)5 D)4

main()

{ int m=5;

if(m++>5)printf(“%d\n”,m);

else printf(“%d\n”,m--);

}

18.当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为

A)1 B)2 C)3 D)6

if(a

if(c

else

if(a

if(b

else x=3;

else x=3;

else x=6;

19.在执行以下程序时,如果从键盘上输入:ABCdef<回车>,则输出为

A)ABCdef B)abcDEF C)abC) D)DEF

#include

main( )

{ char ch;

while((ch=getchar( ))!=’\n’)

{ if(ch>=’A’&&ch<=’Z’) ch=ch+32;

else if(ch>=’a’&&ch<’z’) ch=ch-32;

printf(“%c”,ch);

}

printf(“\n”);

}

20.在执行以下程序时,为了使输出结果为,t=4则给a和b输入的值应满足的条件是

A) a>b B) aa>b

main( )

{ int s,t,a,b;

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

s=1;t=1;

if(a<0)s=s+1;

if(a>b)t=s+1;

else if(a==b)t=5;

else t=2*s;

printf(“t=%d\n”,t);

}

21.以下程序的输出结果是

A) -1 1 B) 0 1 C) 1 0D) 0 0

main( )

{ int a=-1,b=1,k;

if((++a<0)&&!(b--<=0))

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

else

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

}

22.与y=(x>0?1:X<0?-l:0);的功能相同的if语句是

A)if(x>0)y=l;B)if(x)

else if(x<0) y=-l;if(x>0)y=l;

else y=0;else if(x<0) y=-l;

else y=0;

C) y=-l;D) y=0;

if(x) if(x>=0)

if(x>0) y= l; if(x>0) y=l;

else if(x==0)y=0; else y=-l;

else y=-l;

23.下列程序执行后的输出结果是

A)-32767 B) FFFE C)-1D)-32768

main()

{char x=0xFFFF;printf(”%d\n”,x--); }

24.语句printf("a\bre\’hi\’y\\\bou\n");的输出结果是

A)a\bre\’hi\’y\\\hou B) a\bre\’hi\’y\bou

C)re’hi’yo u D)abre’hi’y\bou

(说明:’\b’是退格符)

25.有如下程序,该程序的输出结果是

main0

{ float x=2.0,y;

if(x<0.0) y=0.0;

else if(x<10.0) y=1.0/x;

else y=1.0;

printf("%f\n",y);

}

A) 0.000000 B) 0.250000 C) 0.500000D) 1.000000

26.有如下程序,该程序的输出结果是

main0

{ int a=2,b=-1,c=2;

if(a

if(b<0) c=0;

else c++;

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

}

A) 0 B) 1 C) 2D) 3

27.若执行以下程序时从键盘上输入9,则输出结果是

A) 11 B) 10C) 9 D) 8

main()

{ int n;

scanf("%d",&n);

if(n++<10) printf("%d\n",n);

else printf("%d\n",n--);

}

28.阅读以下程序:程序运行后,如果从键盘上输人5,则输出结果是

main()

{ int x;

scanf("%d",&x);

if(x--<5) printf("%d",x);

else printf("%d",x++);

}

A) 3 B) 4C) 5 D) 6

29.假定w、x、y、z、m均为int型变量,有如下程序段:

w=1; x=2; y=3; z=4;

m=(w

则该程序运行后,m的值是

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

30.有一函数

1 x>0

y= 0 x=0

-1 x<0,

以下程序段中不能根据x的值正确计算出y的值的是____。

A) if(x>0) y=1;else if(x==0) y=0;else y=-1;

B) y=0;if(x>0) y=1;else if(x<0) y=-1;

C) y=0;if(x>=0)if(x>0) y=1;else y=-1;

D) if(x>=0) if(x>0) y=1;else y=0;else y=-1;

31.以下选项中,与k=n++完全等价的表达式是___。

A) k=n,n=n+1 B) n=n+1,k=n C) k=++n D) k+=n+1

32.若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是

for (i=5;i;i--)

for(j=0;j<=4;j++){...}

A) 20 B) 25C) 24 D) 30

33.若有以下定义:

float x; int a,b;

则正确的switch 语句是

A) switch(x) B) switch(x)

{ case .0:printf("*\n"); { case 1,2:printf("*\n");

case 2.0:printf("**\n"); case 3:printf("**\n");

} }

C)switch(a+b)D) switch(a+b);

{ case 1:printf("\n");{ case 1:printf(."*\n");

case 1+2:printf("**\n"); case 2:printf("**\n");

} }

34.运行以下程序后,如果从键盘上输入china#<回车>,则输出结果为

A)2,0 B)5,0 C) 5,5D) 2,5

#include

main( )

{ int v1=0,v2=0;

char ch;

while((ch=getchar( ))!=’#’)

switch(ch)

{ case ‘a’:;

case ‘h’:;

default: v1++;

case ‘0’: v2++;

}

printf(“%d,%d\n”,v1,v2);

}

35.有如下程序,该程序的输出结果是

main0

{ int x=1,a=0,b=0;

switch(x){

case 0: b++;

case 1: a++;

case 2: a++;b++;

}

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

}

A) a=2,b=1B) a=1,b=1 C) a=1,b=0 D) a=2,b=2

36.若a、 b、c1、c2、x、y、均是整型变量,正确的switch语句是

A) swich(a+b); B) switch(a*a+b*b)

{ case 1:y=a+b; break; {case 3:

case 0:y=a-b; break; case 1:y=a+b;break;

} case 3:y=b-a,break;

}

C) switch (a) D) switch(a-b)

{ case c1 :y=a-b; break {default:y=a*b;break;

case c2: x=a*d; break case 3:case 4:x=a+b;break;

default:x=a+b; case 10:case 11:y=a-b;break;

} }

37.有以下程序,程序运行后的输出结果是

main()

{ int a=16,b=20,m=0;

switch(a%3)

{ case 0:m++;break;

case 1:m++;

switch(b%2)

{ default:m++;

case 0:m++;break;

}

}

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

}

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

38.有以下程序,执行后输出的结果是

main()

{ int i;

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

switch(i)

{ case 1: printf("%d",i);

case 2: printf("%d",i);

default: printf("%d",i);

}

}

A) 011122B) 012 C) 012020 D) 120

39.有以下程序,程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是()

main( )

{ char k; int i;

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

{ scanf("%c",&k);

switch(k)

{ case '0': printf("another\n");

case '1': printf("number\n");

}

}

}

A) another B)another C)another D)number

number number number number another number

40.假定a和b为int型变量,则执行以下语句后b的值为

a=1; b=10;

do

{ b-=a; a++; }

while(b--<0) ;

A) 9 B) -2 C) -1 D) 8

41.设x和y均为int型变量,则执行下的循环后,y值为

for(y=1,x=1;y<=50;y++)

{ if(x>=10) break;

if (x%2==1)

{ x+=5; continue;}

x-=3;

}

A) 2 B) 4 C) 6D) 8

42.设j为int型变量,则下面for循环语句的执行结果是

for( j=10;j>3;j--)

{ if(j%3)j--;

--j; --j;

printf("%d ",j);

}

A) 6 3 B) 7 4C) 6 2 D) 7 3

43.有以下程序,输出结果是

main()

{ int i, j;

for(j=10;j<11;j++)

{for(i=9;i=j-1)printf("%d",j);

}

}

A) 11 B) 10 C) 9 D) 10 11

44.当执行以下程序段时

A)循环体将执行一次B)循环体将执行两次

C)循环体将执行无限次D)系统将提示有语法错误

x=-1;

do { x=x*x;} while(!x);

45.执行以下程序后,输出的结果是

A)-1 B)1 C)8D)0

main()

{ int y=10;

do {y--;} while(--y);

printf(“%d\n”,y--);

}

46.在下列选项中,没有构成死循环的程序段是

A) int i=100 B) for(;;);

while (1)

{i=i%100+1;

if(i>100)break;

}

C)int k=1000; D)int s=36

do{++k;} while(k>=1000); While(s);--s;

(注意:int数的范围)

47.执行语句:for(i=1;i++<4;);后变量i的值是

A) 3 B) 4 C) 5 D) 不定

48.以下程序的输出结果是

A) x=4 B) x=8C) x=6 D) x=12

main( )

{ int i,j,x=0;

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

{ x++;

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

{ if(j%2) continue;

x++;

}

x++;

}

printf(“x=%d\n”,x);

}

49.运行以下程序后,如果从键盘上输入65 14<回车>,则输出结果为

A) m=3 B) m=2 C) m=1 D) m=0

main( )

{int m,n;

printf{“Enter m,n:”}; scanf(“%d%d,&m,&n”);

while(m!=n)

{ while(m>n)m-=n;

while(n>m)n-=m;

}

printf(“m=%d\n”,m);

}

50.以下程序的输出结果是

A) 10 1 9 2 B) 9 8 7 6 C) 10 9 9 0 D) 10 10 9 1

main( )

{ int x=10,y=10,i;

for(i=0;x>8;y=++i)

printf("%d,%d",x--,y);

}

51.以下程序的输出结果是

A) 2 0 B) 3 1 C) 3 2 1 D) 2 1 0

main( )

{ int n=4;

while(n--) printf("%d ",--n);

}

52.以下程序的输出结果是

A) 编译不通过,无输出B) aceg C) acegi D) abcdefghi

main( )

{ int i;

for(i='A';i<'I';i++,i++) printf("%c",i+32);

printf("\n");

}

53.以下叙述正确的是

A)do-while语句构成的循环不能用其它语句构成的循环来代替。

B) do一while语句构成的循环只能用break语句退出。

C)用do-while语句构成的循环,在while后的表达式为非零时结束循环。

D)用do-while语句构成的循环,在while后的表达式为零时结束循环。

54.下列程序的输出结果是

A)4 B) 2 C)1 D)0

main()

{ int i,j,m=0,n=0;

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

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

if(j>=i) m=1;n++;

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

}

55.以下程序段的执行结果是

A) a=12 y=12B) a=12 y=12

a=14 y=16 a=16 y=28

a=16 y=20

C) a= 12 y= 12 D) a= 12 y= 12

a= 14 y= 26 a= 14 y= 44

int a, y;

a=10;y=0;

do

{ a+=2; y+=a;

Printf("a=%d y=%d\n”,a,y);

if(y>20) break ;

}while(a=14);

56.有如下程序,该程序的执行结果是

main0

{ int i,sum;

for(i=1;i<=3;sum++) sum+=i;

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

}

A) 6 B) 3 C) 死循环D) 0

57.有如下程序,该程序的执行结果是

main0

{ int x=23;

do

{ printf("%d",x--);}

while(!x);

}

A) 321 B) 23 C) 不输出任何内容D) 陷入死循环

58.有如下程序,该程序段的输出结果是

main0

{ int n=9;

while(n>6) {n--;printf("%d",n);}

}

A) 987 B) 876 C) 8765 D) 9876

59.有以下程序段

int k=0

while(k=1)k++;

while 循环执行的次数是

A) 无限次B) 有语法错,不能执行C) 一次也不执行D) 执行1次

60.以下程序执行后sum的值是

A) 15 B) 14 C) 不确定D)0

main()

{ int i , sum;

for(i=1;i<6;i++) sum+=i;

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

}

61.有以下程序段

int x=3;

do

{ printf("%d",x-=2); }

while (!(--x));

其输出结果是

A) 1 B) 3 0 C) 1 -2D) 死循环

62.t为int类型,进入下面的循环之前,t的值为0

while(t=l)

{……}

则以下叙述中正确的是

A) 循环控制表达式的值为0 B) 循环控制表达式的值为1

C) 循环控制表达式不合法D) 以上说法都不对

63.以下程序的输出结果是

main()

{int num= 0;

while(num<=2)

{ num++; printf("%d\n",num);}

}

A) 1 B) 1C) 1 D) l

2 2 2

3 3

4

64.以下程序的输出结果是

main()

{ int a, b;

for(a=1, b=1; a<=100; a++)

{ if(b>=10) break;

if (b%3==1)

{ b+=3; continue; }

}

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

}

A) 101 B) 6 C) 5 D) 4

65.以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输

出,程序如下:

main()

{int n,k;

float score,sum,ave;

sum=0.0;

for(n=1;n<=10;n++)

{ for(k=1;k<=4;k++)

{scanf("%f",&score); sum+=score;}

ave=sum/4.0;

printf("NO%d:%f\n",n,ave);

}

}

上述程序运行后结果不正确,调试中发现有一条语句出现在程序的位置不正确。这条语句是___。

A) sum=0.0; B) sum+=score; C) ave=sum/4.0; D) printf("NO%d:%f\n",n,ave);

66.有以下程序段

int n=0,p;

do {scanf("%d",&p);n++;} while(p!=12345&&n<3);

此处do-while循环的结束条件是____。

A) p的值不等于12345并且n的值小于3 B) p的值等于12345并且n的值大于等于3

C) p的值不等于12345或者n的值小于3 D) p的值等于12345或者n的值大于等于3

67.有以下程序,执行后输出的结果是

main()

{ int i=0,s=0;

do{

if(i%2){i++;continue;}

i++;

s+=i;

}while(i<7);

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

}

A) 16B) 12 C) 28 D) 21

68.有以下程序,若要使程序的输出值为2,则应该从键盘给n输入的值是

main()

{ int s=0,a=1,n;

scanf("%d",&n);

do

{ s+=1; a=a-2; }

while(a!=n);

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

}

A)-1 B)-3C)-5 D)0

69.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)

s=a;

for(b=1;b<=c;b++) s=s+1;

则与上述程序段功能等价的赋值语句是

A)s=a+b; B)s=a+c; C)s=s+c; D)s=b+c;

70.有以下程序, 程序运行后的输出结果是

main()

{ int k=4,n=0;

for( ; n

{ n++;

if(n%3!=0) continue;

k--;

}

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

}

A)1,1 B)2,2 C)3,3D)4,4

71.要求以下程序的功能是计算:s= 1+1/2+1/3+……+1/10

main()

{ int n; float s;

s=1.0;

for(n=10;n>1;n--)

s=s+1/n;

printf("%6.4f\n",s);

}

程序运行后输出结果错误,导致错误结果的程序行是

A)s=1.0; B)for(n=10;n>1;n--)

C)s=s+1/n; D)printf("%6.4f\n", s);

72.有以下程序,程序执行后的输出结果是()

main( )

{ int x=0,y=5,z=3;

while(z-->0&&++x<5) y=y-1;

printf("%d,%d,%d\n",x,y,z);

}

A)3,2,0 B)3,2,-1 C)4,3,-1 D)5,-2,-5

73.有以下程序,程序执行后的输出结果是()

main( )

{ int i,s=0;

for(i=1;i<10;i+=2) s+=i+1;

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

}

A)自然数1~9的累加和 B)自然数1~10的累加和

C)自然数1~9中的奇数之和D)自然数1~10中的偶数之和

74.有以下程序,程序执行后的输出结果是()

A)n=5 B)n=2 C)n=3 D) n=4

main( )

{ int i,n=0;

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

{ do

{ if(i*%3) continue;

n++;

} while(!i);

n++;

}

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

}

二、填空题

75.已知字符A的ACSII码值为65,以下语句的输出结果是【B 66】

char ch=’B’;

printf("%c %d\n",ch,ch);

76.有以下语句段

int n1=10,n2=20;

printf("【n1=%d\nn2=%d】",n1,n2);

要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。

n1=10

n2=20

77.若从键盘输入58,则以下程序输出的结果是【585858】。

main()

{ int a;

scanf("%d",&a);

if(a>50) printf("%d",a);

if(a>40) printf("%d",a);

if(a>30) printf("%d",a);

}

78.有以下程序,执行后输出结果是【-4】。

main( )

{ int n=0,m=1,x=2;

if(!n) x-=1; x=1

if(m) x-=2; x=-1

if(x) x-=3; x=-4

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

}

79.有以下程序,程序运行时输入:12<回车>,执行后输出结果是【12】。

#include

main( )

{ char ch1,ch2; int n1,n2;

ch1=getchar(); ch2=getchar();

n1=ch1-‘0’; n2=n1*10+(ch2-‘0’);

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

}

Ch1=1 ch2=2

80.下列程序段的输出结果是【passwarn】。

int n='c';

switch(n++)

{ default: printf("error");break;

case 'a':case 'A':case 'b':case 'B':printf("good");break;

case 'c':case 'C':printf("pass");

case 'd':case 'D':printf("warn");

}

81.若有语句

int i=-19,j=i%4;

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

则输出的结果是【-3】。

82.若有程序,要求给i赋10,给j赋20,则应该从键盘输入【i=10,j=20】。

main()

{ int i,j;

scanf("i=%d,j=%d",&i,&j);

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

}

83.若有以下程序,执行后输出结果是【1】。

main()

{ int p,a=5;

if(p=a!=0) p=1

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

else

printf("%d\n",p+2);

}

84.若有以下程序,执行后输出结果为【5 0 3】。

main()

{ int a=4,b=3,c=5,t=0;

if(a

t=a;

a=b; a=3

b=t; b=0

if(a

t=a; t=3

a=c; a=5

c=t; c=3

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

}

没有{},所有红色部分不属于选择结构

85.若有以下程序,执行后输出结果是【7】。

main()

{ char a;

a='H'-'A'+'0';

printf("%c\n",a);

}

72-65+48=55

86.以下程序运行后的输出结果是【3】。

main()

{ int p=30;

printf("%d\n",(p/3>0?p/10:p%3));

}

运算符的优先级

87.以下程序运行后的输出结果是【b】。

main()

{ char m;

m='B'+32; printf("%c\n",m);

}

88.以下程序运行后的输出结果是【yes】。

main()

{ int a=1,b=3,c=5;

if (c=a+b) printf("yes\n"); c=4

else printf("no\n");

}

89.下面程序的功能是输出以下形式的金字塔图案是:

***

*****

*******

main( )

{ int i,j;

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

{ for(j=1;j<=4-i;j++) printf(" ");

for(j=1;j<=【】;j++) printf("*");

printf("\n");

}

}

在【】中应填入的是()

A)i B)2*i-1 C)2*i+1 D)i+2

90.有以下程序,执行后输出结果是【0】。

main( )

{ int t=1,i=5;

for(;i>=0;i--) t*=i;

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

}

91.下面程序的功能是:计算1到10之间的奇数之和及偶数之和,请填空。

#include< Stdio.h>

main()

{ int a, b, c, i;

a=c=0;

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

{ a+=i;

【b=i+1或b=1+i】;

c+=b;

}

printf("偶数之和=%d\n”,a);

printf("奇数之和=%d\n”,c-11);

}

92.下面程序的功能是:输出 100以内能被 3整除且个位数为 6的所有整数,请填空。

#include<stdio.h>

main()

{ int i, j;

for(i=0;【i<=9或i<10或9>=i或10>i】; i++)

{ j=i *10+6;

if (【j%3!=0或j%3】) continue;

printf("%d", j);

}

93.若输入字符串:abcde<回车>,则以下while循环体将执行【0】次。

While((ch=getchar())=='e') printf("*");

94.以下程序运行后的输出结果是【52】。

main()

{ int i=10, j=0;

do

{ j=j+i; i--;

}while(i>2);

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

}

J=10 i=9

J=19 i=8

J=27 i=7

J=34 i=6

J=40 i=5

J=45 i=4

J=49 i=3

J=52 i=2

95.设有以下程序: 程序运行后,如果从键盘上输入1298;则输出结果为【8921】。

main()

{ int n1,n2;

scanf("%d",&n2);

while(n2!=0)

{ n1=n2%10;

n2=n2/10;

printf("%d",n1);

}

}

第一次 n2=1298 n1=8

第二次 n2=129 n1=9

第三次 n2=12 n1=2

第四次 n2=1 n1=1

96.以下程序的输出结果是【5】。

main()

{ int s,i;

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

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

}

I=2 s=2

I=3 s=5

97.以下程序运行后的输出结果是【1 3 2】。

main()

{ int i,m=0,n=0,k=0;

for(i=9; i<=11;i++)

switch(i/10)

{ case 0: m++;n++;break;

case 10: n++; break;

default: k++;n++;

}

printf("%d %d %d\n",m,n,k);

}

M=1 n=1

K=1 n=2

K=2 n=3

98.执行以下程序后,输出'#'号的个数是【6】。

#include

main()

{ int i,j;

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

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

putchar('#');

} 循环嵌套,i=1 0次 i=2 1次 i=3 2次 i=4 3次99.设i,j,k均为int型变量,则执行完下面的for循环后,k的值为【10】。

for(i=0,j=10;i<=j;i++,j--)

k=i+j;

每次相加都是10

c语言第五章习题答案

第一题: 1. 从键盘输入10个数,求和。 #include "stdio.h" void main( ) { int x,s=0; int i; for(i=0;i<10;i++) {scanf("%d",&x); s+=x;} printf("s=%d\n",s ); } 2. 从键盘输入10个数,求平均值。#include "stdio.h" void main( ) { int x,s=0,ave; int i; for(i=0;i<10;i++) {scanf("%d",&x); s+=x;}

ave=s/10; printf("s=%d,ave=%d\n",s ,ave ); } 3. 从键盘输入10个数,求偶数的和。 #include "stdio.h" void main( ) { int x,s=0; int i; for(i=0;i<10;i++) {scanf("%d",&x); if(x%2==0) s+=x;} printf("s=%d\n",s ); } 4. 从键盘输入10个数,求偶数的平均值。#include "stdio.h" void main( ) { int x,s=0,ave; int i; int k=0;

for(i=0;i<10;i++) {scanf("%d",&x); if(x%2==0) {s+=x;k++;} } ave=s/k; printf("s=%d,ave=%d\n",s,ave ); } 5. 从键盘输入n个数,求偶数的平均值。#include "stdio.h" void main( ) { int x,s=0,ave; int i; int k=0; int n; scanf("%d",&n); for(i=0;i

大学c语言复习题附答案

判断题 1.运算器是完成算术和逻辑操作的处理部件,通常称为CPU。× 2.通常硬盘安装在主机箱内,因此它属于主存储器。× 3.指令与数据在计算机内是以ASCII码进行存储的。× 4.操作系统是合理地组织计算机工作流程、有效地管理系统资源、方便用户使用的程序集 合。√ 5.用计算机机器语言编写的程序可以由计算机直接执行,用高级语言编写的程序必须经过 编译才能执行。√ 6.计算机的所有计算都是在内存中进行的。× 7.字长是指计算机能直接处理的二进制信息的位数。√ 8.计算机区别于其他计算工具的本质特点是能存储数据和程序。√ 9.系统软件就是市场上买来的软件,应用软件就是自己编写的软件。× 10.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、小写英文字母、大 写英文字母。× 11.多台计算机相连,就形成了一个网络系统。× 12.在Internet网上,IP地址、E-mail地址都是唯一的。√ 13.不同类型的变量在内存中占用存储空间的大小都是一样的。× 14.表示数学式3

数据结构C语言版第四章 串

第四章串 重点难点 理解"串"类型定义中各基本操作的特点,并能正确利用它们进行串的其它操作;掌握串类型的各种存储表示方法;理解串的两种匹配算法。 典型例题 1、简述下列每对术语的区别: 空串和空白串;串常量和串变量;主串和子串;静态分配的顺序串和动态分配的顺序串;【解】 (1)空串是指不包含任何字符的串,它的长度为零。 空白串是指包含一个或多个空格的串,空格也是字符。 (2)串常量是指在程序中只可引用但不可改变其值的串。 串变量是可以在运行中改变其值的。 (3)主串和子串是相对的,一个串中任意个连续字符组成的串就是这个串的子串,而包含子串的串就称为主串。 (4)静态分配的顺序串是指串的存储空间是确定的,即串值空间的大小是静态的,在编译时刻就被确定。 动态分配的顺序串是在编译时不分配串值空间,在运行过程中用malloc和free等函数根据需要动态地分配和释放字符数组的空间(这个空间长度由分配时确定,也是顺序存储空间)。 2、以HString为存储表示,写一个求子串的算法。 【解】HString 是指以动态分配顺序串为存储表示,其定义为: typedef struct { char *ch; int length; }HString; void *substr( HString *sub,HString *s,int pos,int len) {//用sub返回串s的第pos个字符起长度为len的子串。sub初始时为一空串 //pos的合法位置为0<=pos<=s->length-1 int i; if (pos<0||pos>s->length-1||len<=0) Error("parameter error!");//参数不合法,子串为空串 if (s->lengthlen=s->length-pos;//设置子串的串长 else sub->length=len; //设置子串的串长 sub->ch=(char *)malloc(len*sizeof(char));//为sub->ch申请结点空间 for(i=0;ilength;i++)//将s串中pos位置开始的共sub->length个字符复制到sub串中

c语言程序设计课后习题答案 第五章

/*练习5-3*/ #include int prime(int m) { int i; for(i=2;i<=m-1;i++) if(m%i==0) break; if(i==m) return 1; else return 2; } main() { int i,m,n,sum=0,a=0; printf("enter m and n:(1<=m<=n<=500)\n"); scanf("%d",&m); scanf("%d",&n); for(i=m;i<=n;i++) { if(prime(i)==1) sum=sum+i; a=a+1; } printf("之间的素数和为:%d\n",sum); printf("之间的素数个数为:%d\n",a); } /*习题5.1*/ #include int fn(int a,int n) { int i,sum=0,m=1,c; for(i=1;i<=n;i++) { sum=sum+m; m=m*10; } c=sum*a; return c; }

main() { int a,n,i,x,y=0; printf("enter a and n:\n"); scanf("%d",&a); scanf("%d",&n); for(i=1;i<=n;i++) { x=fn(a,i); y=y+x; } printf("y=%d\n",y); } /*习题5.2*/ #include int countdigit(int number,int digit) { int sum=0; while(number>0) { if(number%10==digit) sum=sum+1; number=number/10; } return sum; } main() { int number,y; printf("enter a number:\n"); scanf("%d",&number); y=countdigit(number,2); printf("y=%d\n",y); }

C语言预习及课后习题(参考答案1-5)

第一章C语言概述 课前预习题 1.函数 2.main()函数3.单行注释、块注释、A 参考分析:C语言总是从main函数开始,main函数结束。但是C语言中存在一个exit(0)函数,它可以使得程序在任何时候、任何位置结束程序的运行。如果不考虑exit(0)等函数的特殊作用,C则总是在main函数结束。 2.C 参考分析:C程序对main函数的位置没有任何要求;其书写格式自由,一行可以写多条语句,一条语句(多关键字语句)可以写在多行;C语言忽略注释,把注释看作是一个空格,不会对注释中的内容进行语法检查。因此,如果注释中存在错误,系统是不可能发现的。另外,C语言的I/O操作均通过函数实现,系统本身未提供相应的语句。 3.D 参考分析:C语言中,注释语句的位置是任意的,当然,它不能破坏标识符的完整性。C语言只是将一个注释看作是一个空格,因此对注释内的任何错误都不作检查。 4. C 5.B 参考分析:通常许多语言程序由主程序和子程序构成,但是C语言是函数式语言,整个程序由众多函数组成。尽管有时习惯上称main函数为主程序,显然,严格地讲还是B更为符合C语言的规则。 6.C 7.B 8.C 9.C 10.C 11.绘制NS算法流程图。 (1)输入10个数,求其中的最大值。 (2)输入3个数,将它们升序排列输出。 (3)输入2个数,求它们的最大公约数。(4)输入一元二次方程的系数a、b、c,判断其根。

第二章数据类型、运算符与表达式 课前预习题 1.变量在内存中所占的字节数、变量的表数范围、变量允许参与的运算2.1、4、8 3.float、double 4.八进制、十进制、十六进制5.1 6.26 7.12、4 8.6、4、2 9.-60 10.2 11.10、6 12.13.14.4 15.1 16.0 17.9 18.字符、数字、下划线19.'f' 20.21.int型22.m/10%10*100+m/100*10+m%10 课后习题 1.A 分析:在不同的计算机系统中,不同的C语言系统中,其各种数据类型所占据的存储空间是不同的,但是有一个总的原则,即:char<=short<=int<=long<= float<=double,只有A符合16位PC机中的具体环境。 2.C 参考分析:逗号表达式的计算结果是最后一个表达式的值。k=23是括号内最后一个表达式,因此x变量的值来自k变量的值。 3.B 参考分析:逗号表达式的计算结果是最后一个表达式的值。b++在所在表达式参与运算时的值是5,该表达式计算完成后,b进行自增运算,故a+b的值为2+6=8。 4.A 参考分析:是关键字的有:char、case、while。 5.B 参考分析:不是关键字的:include、scanf、type 6.C 参考分析:合法的有:A、P_0、la0、_A、_123、temp、INT。 7.C 参考分析:教材中只是强调首字符必须为字母,我们应当知道,在语言系统中,下划线和字母具有同等的“法律效力”。 8.A 参考分析:不合法的B2,C2,C3,D2。解释:A2:-0xffff十六进制数本身已经包含了符号位,一般不前面加符号位,但加上符号位也不错误;C3:0668在有些C系统中,八进制数中允许出现8,但是通常不允许使用8;D3:0x显然后面缺少数值,但在TC中是允许的。 9.D 参考分析:不合法的A1,B3,C1,C3,D。解释:A1:--0f1十六进制数没有0x,显然不合法,这里需要讨论的是常

C语言第四章习题带答案-2012.10.16更新

练习4-1答案 一、选择题 1.已知:char c='A'; int i=1, j;,执行语句j=!c&&i++;,则i和j的值是( B )。 A.1,1 B.1,0 C.2,1 D.2,0 2.已知:int x=1, y=2, z;,则执行z=x>y?++x:++y;,则z的值为( C )。 A.1 B.2 C.3 D.4 3.已知:int a=4, b=5, c;,则执行表达式c=a=a>b后变量a的值为( A )。 A.0 B.1 C.4 D.5 4.已知:char ch='A';,则表达式ch=(ch>='A'&&ch<='Z')?(ch+32):ch;的值是( B )。 A.'A' B.'a' C.'Z' D.'z' 5.若w=1, x=2, y=3, z=4;,则条件表达式w>x?w:y10?x+100:x-10); printf("%d",w++||z++); printf("%d",!w>z); printf("%d",w&&z); A.0111 B.1111 C.0101 D.0100 7.已知:a=b=c=1且a、b、c均为int型变量,执行以下语句:++a||++b&&++c; 则变量a值为( ①C ),b值为( ②A )。 ①A.不正确B.0 C.2 D.1 ②A.1 B.2 C.不正确D.0 8.执行下面语句后x的值为( D )。 int a=14, b=15, x; char c='A'; x=((a&b)&&(c<'a')); A.TRUE B.FALSE C.0 D.1 9.要判断char型变量m是否是数字,可以使用下列表达式( B )。 A.0<=m&&m<=9 B.'0'<=m&&m<='9' C."0"<=m&&m<="9" D.前面三个答案均是错误的 10.能正确表示“当x取值在[1..10]和[200..210]范围内为真,否则为假”的表达式是( C )。 A.(x>=1)&&(x<=10)&&(x>=200)&&(x<=210) B.(x>=1)||(x<=10)||(x>=200)||(x<=210) C.(x>=1)&&(x<=10)||(x>=200)&&(x<=210) D.(x>=1)||(x<=10)&&(x>=200)||(x<=210) 11.设x、y和z是int型变量,且x=3, y=4, z=5,则下面表达式中值为0的是( D )。 A.'x'&&'y'B.x<=y C.x||y+z&&y-z D.!((x=y&&ch<'B'&&!y的值是( C )。 A.0 B.语法错C.1 D.“假” 13.判断char型变量c1是否为小写字母的正确表达式为( D )。

C语言练习习题(带详解答案)

欢迎阅读 一、编程题 1.输入2个整数,求两数的平方和并输出。 #include int main(void) { intt a ,b,s; 2. 信息。 scanf("%lf",&r); if (r>=0) { area =PI*r*r; girth =2*PI*r ; printf("the area is %.2f\n", area);

printf("the girth is %.2f\n", girth);} else printf("Input error!\n"); return 0; } 3 4.从键盘上输入一个百分制成绩score,按下列原则输出其等级:score≥90,等级为A;80≤score<90,等级为B;70≤score<80,等级为C;60≤score<70,等级为D;score<60,等级为E。 #include void main(){ int data;

char grade; printf("Please enter the score:"); scanf("%d”, &data); switch(data/10) { case 10: } 5. float fee; printf(“please input hour:\n”); scan f(“%d”,&hour); if(hour<=10) fee=30;

else if(hour>=10&&hour<=50) fee=3*hour; else fee=hour*2.5; printf(“The total fee is %f”,fee); } 6. } 7、编程序实现求1-10之间的所有数的乘积并输出。 #include void main( ) { int i; long sum=1;

c语言程序设计课后习题答案高等教育出版社

#include<> main() { float x=,y=,z=; printf("x=%f\n",x); printf("y=%f\n",y); printf("z=%f\n",z); } (1) #include<> main() { int a=12,b=3; float x=,y=; printf("%f\n",(float)(a*b)/2); printf("%d\n",(int)x%(int)y); } (2) #include<> main() { int x=32,y=81,p,q; p=x++; q=--y; printf("%d %d\n",p,q); printf("%d %d\n",x,y); } #include<> main() { int x,b0,b1,b2,s; printf("Inputx:"); scanf("%d",&x); b2=x/100; printf("骰子出现 2 printf("骰子出现 3 printf("骰子出现 4 printf("骰子出现 5 printf("骰子出现 6

} (1) void Swap(int *x,int *y) { int *pTemp;.\n"); else if(strcmp(userInput,password)<0) printf("Invalid password!user inputpassword...\n"); return 0; } #include<> #define N 24 unsigned int CountLetter(char str[]); int main() { char a[N]; printf("Input a letter:\n"); gets(a); printf("The length of the letter is:%d\n",CountLetter(a)); return 0; } unsigned int CountLetter(char str[]) { char *p=str; int c=0,flag=0; while(*p!='\0') { if(*p!=' ') flag=1; else if(flag==1) { c++; flag=0; } p++; } return c+1; } #include<>

c语言第4章 选择结构程序设计习题答案

第4章选择结构程序设计 习题(P111) 4.2 C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”? 答:C语言中用1表示真,0表示假;系统按照“非0为真,0为假”判断一个逻辑量的真假。 4.3 写出下面各逻辑表达式的值。设a=3,b=4,c=5。 (1)a+b>c&&b==c (2)a||b+c&&b-c (3)!(a>b)&&!c||1 (4)!(x=a)&&(y=b)&&0 (5)!(a+b)+c-1&&b+c/2 解:该题在求解过程中注意: 一、优先级。逻辑运算符(&&和||)低于算术运算符和关系运算符而高于赋值运算符,在逻辑运算符中,逻辑非最高,逻辑与其次,逻辑或最低; 二、逻辑表达式的求值规则。(P94) 所以得以上表达式的值分别为:(1)0 (2)1 (3)1 (4)0 (5)1 4.4有3个整数a、b、c,由键盘输入,输出其中最大的数。 分析:这是一个规模较小的求最值的算法,习题1.6用函数的方法实现。该题不用函数调用实现,但方法是最值,再依次和第二、第三个数比较得结果。其中都要用到单分支或双分支选择结构语句。 参考程序如下: main() { int a,b,c,max; /*定义4个整型变量,其中a,b,c存原始数据,max存最值*/ printf("\ninput the value of a,b,c:"); /*提示输入*/ scanf("%d%d%d",&a,&b,&c); /*格式符之间无分隔符,输入时可以以空格、回车、跳格分隔*/ if(a>b) max=a; else max=b; if(max

C语言 选择结构程序设计练习题

第四章选择结构程序设计 一、填空 1.在C语言中,表示逻辑“真”值用_________。 2.得到整型变量a的十位数字的表达式为_________。 3.表达式:(6>5>4)+(float)(3/2)的值是_________。 4.表达式:a=3,a-1‖--a,2*a的值是_________。(a是整型变量) 5.表达式:(a=2.5-2.0)+(int)2.0/3的值是_________。(a是整型变量)6.C语言编译系统在给出逻辑运算结果时,以数值_________代表“真”,以 _________代表“假”;但在判断一个量是否为“真”时,以_________代表“假”,以_________代表真。 7.当m=2,n=1,a=1,b=2,c=3时,执行完d=(m=a!=b)&&(n=b>c)后,n的值为_________,m的值为_________。 8.若有int x,y,z;且x=3,y=-4,z=5,则表达式:!(x>y)+(y!=z)||(x+y)&&(y-z)的值为_________。 二、编程: 1.企业发放的奖金根据利润提成。利润(i)低于或等于10万元时,奖金可提10%; 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润i,求应发放奖金总数? 2.输入三个整数x,y,z,请把这三个数由小到大输出。 3.输入某年某月某日,判断这一天是这一年的第几天? 4.本程序演示从键盘输入x的值,计算并打印下列分段函数的值。 y=0(x<60) y=1(60<=x<70) y=2(70<=x<80) y=3(80<=x<90)

C语言课后练习题答案第五章

作业四:简单程序设计 1.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式(B);如果字符串长度小于5,则输出按方式(C)。(5分)(重要) A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字符串,左补空格 D) 输出错误信息 2.阅读以下程序,当输入数据的形式为:25,13,10(注:表示回车),则正确的输出结果为(D)。(5分) main() { int x,y,z; scanf(“%d%d%d”,&x,&y,&z);要和这里一样 printf(“x+y+z=%d\n”,x+y+z); } A) x+y+z=48 B) x+y+z=35 C) x+z=35 D) 不确定值 3.根据下面的程序及数据的输入和输出形式,程序中输入数据的正确形式应该为(WXY)。(5分) main() { char ch1,ch2,ch3;

scanf(“%c%c%c”,&ch1,&ch2,&ch3); printf(“%c%c%c”,ch1,ch2,ch3); } 4.以下的输出结果是(x=1,y=2*sum*=3 10 Squard is : 100)。(5分) main() { int x=1,y=2; printf(“x=%d y=%d * sum * =%d\n”,x,y,x+y); printf(“10 Squared is : %d\n”,10*10); } 5.若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2 =’b’,想得到以下的输出格式和结果,请写出程序(包括定义变量类型和设计输出)。要求输出的结果如下:(20分) a= 3 b= 4 c= 5 x=1.200000,y=2.400000,z=-3.600000 x+y= 3.6 y+z=-1.20 z+x=-2.40 u= 51274 n= 128765 c1=’a’ or 97(ascll) c2=’b’ or 98(ascll) main()

C语言基础练习题(含答案)

第一章 C 语言基础知识 1.1 选择题 1. 以下不是C 语言的特点的是()。 A、语言简洁紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件操作 D、C语言移植性好 2. 下列字符序列中,不可用作C 语言标识符的是() A .abc123 B.C._123_ D._ok 3. 正确的C 语言标识符是()。 A ._buy_2 B .2_buy C._buy D .buy 4. 请选出可用作 C 语言用户标识符的一组标识符()。 A .void B.a3_b3 C.For D .2a define _123 -abc DO WORD IF Case sizeof 5. 下列符号中,不属于转义字符的是( A.\\ B.\0xAA )。C.\t D .\0 6. 不属于 C 语言关键字的是()。 A .int B .break C.w hile D .character 7. 是 C 语言提供的合法关键字的是()。 A .Float B.signed C.integer D.C har 8. 以下不能定义为用户标示符的是()。

A .scanf B.Void C._3com_ D.int 9. 一个C 程序是由()。 A. —个主程序和若干子程序组成 B. —个或多个函数组成 C. 若干过程组成 D. 若干子程序组成 10. C 语言程序的基本单位是()。 A ?程序行 B ?语句 C ?函数 D .字符 11. 下列说法中,错误的是()。 A ?每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号 B ?每个函数都有一个函数头和一个函数体,主函数也不例外 C ?主函数只能调用用户函数或系统函数,用户函数可以相互调用 D ?程序是由若干个函数组成的,但是必须有、而且只能有一个主函数 12. 以下说法中正确的是()。 A . C语言程序总是从第一个定义的函数开始执行 B ?在C语言程序中,要调用的函数必须在main()函数中定义 C.C 语言程序总是从main()函数开始执行 D . C语言程序中的main()函数必须放在程序的开始部分 13. C 编译程序是()。 A.C 程序的机器语言版本 B .一组机器语言指令 C ?将C源程序编译成目标程序

C语言第五章习题带答案更新Word版

练习5-1答案 一、选择题 1.合法的数组说明语句是( B )。 A.int a[]="string"; B.int a[]={0,1,2,3,4,5}; C.char a="string"; D.char a[5]={'0', '1', '2', '3', '4', '5'}; 2.以下对一维整型数组a的说明正确的是( D )。 A.int a(10); B.int n=10, a[n]; C.int n; D.#define SIZE 10 scanf("%d", &n); int a[SIZE]; int a[n]; 3.已知:int a[10];,则对a数组元素的正确引用是( D )。 A.a[10] B.a[3.5] C.a(5) D.a[10-10] 4.以下对一维数组a进行正确初始化的语句是( C )。 A.int a[10]=(0, 0, 0, 0, 0); B.int a[10]={}; C.int a[]={0}; D.int a[2]={10, 9, 8}; 5.对以下说明语句的正确理解是( B )。 int a[10]={6, 7, 8, 9, 10}; A.将5个初值依次赋给a[1]至a[5] B.将5个初值依次赋给a[0]至a[4] C.将5个初值依次赋给a[6]至a[10] D.因为数组长度与初值的个数不相同,所以此语句不正确 二、填空题 6.求所有不超过200的N值,N的平方是具有对称性质的回文数。所谓回文数就是将一个数从左到右与从右到左读都是一样的,例如:34543和1234321都是回文数。 例如:满足题意要求的数有:N=1,11*11=121;N=111,111*111=12321。 #include main() {int m[16], n, i, t, count=0; long a, k; printf("Result is:\n"); for (n=10; n<200; n++) { k=0; t=1; a=n*n; for (i=1; a!=0; i++) { ①; a/=10; }

严蔚敏《数据结构(c语言版)习题集》答案第四章串

《一定能摸到红球吗?》说课稿 林银花 一、教材说明: 1、课题:《一定能摸到红球吗?》 2、本节内容的地位和作用 在现代社会中,人们面临着更多的机会和选择,常常需要在不确定情境中作出合理的决策,概率正是通过对不确定现象和事件发生的可能性的刻画,来为人们更好的制定决策提供依据和建议.本节内容又是义务教育阶段,唯一培养学生从不确定的角度来观察世界的数学内容,让学生了解可能性是普遍的,有助于他们理解社会,适应生活. 3、教学目标设计: (1)认知目标: (A)经历猜测.实验.收集与分析试验结果等过程 (B)体会事件的发生的不确定性知道事情发生的可能性有多大。 (2)、能力目标: (A)经历游戏等的活动过程,初步认识确定事件和不确定事件 (B)在与其它人交流的过程中,能合理清晰地表达自己的思维过程; (3)、情感目标: (A)通过创设游戏情境,让学生主动参与,做“数学实验”,激发学生学习的热情和兴趣,激活学生思维。 (B)在与他人的合作过程中,增强互相帮助、团结协作的精神。 (C)体会到在生活中我们可以从确定和不确定两方面分析一件事情. 4、本课重点、难点分析: 学习的重点是初步体验事情发生的确定性和不确定性. 学习的难点是确定事件发生的可能性大小. 学习本节知识应注意猜测,试验,收集与分析实验结果,从中体会事件发生的可能性及大小. 二、教学对象分析: 1、初一学生性格开朗活泼,对新鲜事物特别敏感,且较易接受,因此,教学过程中创设的问题情境应较生动活泼,直观形象,且贴近学生的生活,从而引起学生的有意注意。 2、初一学生的概括能力较弱,推理能力还有待不断发展,所以在教学时,可让学生充分试验,收集,分析,帮助他们直观形象地感知。 3、初一学生已经具备了一定的学习能力,所以本节课中,应多为学生创造自主学习、

c语言第四章练习题答案

习 题 四 4.5编程判断输入整数的正负性和奇偶性。流程图如图4-1。 #include main() { int m; scanf("%d", &m); /*输入一个整数*/ if (m >= 0) /*是否为正数*/ { if (m%2 == 0) /*是正数,且能被2整除,是正偶数*/ { printf("%d is a positive even\n", m); } else /*不能被2整除,是正奇数*/ { printf("%d is a positive odd\n", m); } }/*if(m>=0)结束*/ else { if (m % 2 == 0) { printf("%d is a negative even\n", m); /*是负偶数*/ } else { printf("%d is a negative odd\n", m); /*是负奇数*/ } } } 程序运行结果如下: 第一次运行: 6↙ 6 is a positive even 第二次运行: -7↙ 6 is a negative odd 4.6编程计算分段函数:1x x e y e -??=??-? 000x x x >=<,输入x ,打印出y 值。流程图如图4-2。 #include #include main() { int x; double y; scanf("%d", &x); /* 输入一个整数*/ if (x > 0) { y = exp(-x); /*如果大于0,计算y=exp(-x)的值 */

《C语言程序设计》课后习题参考答案

高等院校计算机基础教育规划教材《C++程序设计》课后习题参考答案 ――武汉大学出版社 习题1参考答案 一、选择题 1. A 2. D 二、填空题 1. BASIC、FORTRAN、AL_GOL60和COBOL 2. 8 3. 关键字 4. 编辑、编译、链接和运行 三、简答题 1.答: (1)C语言具有结构化的控制语句。C语言提供了结构化程序所必需的基本控制语句,实现了对逻辑流的有效控制。 (2)C语言具有丰富的数据结构类型。C语言除提供整型、实型、字符型等基本数据类型外,还提供了用基本数据类型构造出的各种复杂的数据结构,如数组、结构、联合等。C语言还提供了与地址密切相关的指针类型。此外,用户还可以根据需要自定义数据类型。(3)C语言具有丰富的运算符。C语言提供了多达34种运算符,丰富的数据类型与丰富的运算符相结合,使C语言的表达力更具灵活性,同时也提高了执行效率。 (4)C语言简洁、紧凑,使用方便、灵活,程序书写自由,有9种控制语句。 (5)C语言既具有高级语言的功能,又具有低级语言的许多功能,通常被称为中级计算机语言。它既是成功的系统描述语言,又是通用的程序设计语言。 (6)C语言与汇编语言相比,可移植性好。 (7)功能强大。C语言具有低级语言的一些功能,所以,生成目标代码质量高,程序执行效率高。现在许多系统软件都用C语言来描述,可以大大提高了编程效率。 2.答:运行一个C语言程序,一般需要经过如下几个步骤:①上机输入并编辑源程序;②编译源程序;③与库函数连接;④生成可执行目标程序;⑤运行目标程序。 3.答: (1)操作系统的设计与实现。C语言是一种应用非常广泛的结构化高级程序设计语言,既适合编写应用软件,又适合编写系统软件。

11级《C语言程序设计》第1章-第4章参考答案

《C语言程序设计》第一章参考答案 一、选择题: 1.C 2. C 3. C 4. C 5. B 二、填空题: 1. 一主主 2. 源目标 《C语言程序设计》第二章参考答案 1.指出下列常数中哪些是符合C语法规定的: '\''\101''\' e3 019 0xle "ab\n" 1.e5 (2+3)e(4-2) 5.2e2.4 正确的:'\101' 0xle "ab\n" 1.e5 2. (1)改为: main( ) { float x,y=5,z=5, aver; x=7; aver=(x+y+z)/3; printf("aver=%f\n",aver); } (2)改为: main( ) { char c1='a'; char c2='b'; char c3='c'; int a=3,b='A'; printf("a=%db=\' %c \' \n\"end\"\n",a,b); printf("a%cd%c\bc%c\tabc\n",c1,c2,c3); } 3. 4. (1)9 ,10,9,10 (2)3 ,1 ,0 ,0 5. (1)0 (2)0 (3)9.5 (4)90 (5)10 (6)10 (7)’A’(8)2 (9)6.5 (10)0 (11)20 (12)0

6. 完全等价的是表达式(3)、(5)、(6) 7. 求变量x的绝对值 8. max=c > (a>b ? a : b) ? c : (a>b ? a : b); 9. 程序填空为: h= ((x-2)(x-2)+(y-2)(y-2)<=1)?10:0 ; 或补充为: h= (fabs(x<=2)&&fabs(y<=2))?10:0 ; 《C语言程序设计》第三章参考答案 一.选择题 1. C 2. C 3. D 4. C 5. D 6 . A 二.填空题 1. 1 2. 1 3. 2.5 4. 8 三.编程题 1. #include void main() { float a, v1, v2; int t=50; a=0.11; v1=0; v2=a*t*3600/1000; printf("v2=%.2f\n",v2); }

c语言程序设计第四章习题答案

第四章选择结构 1:实现输入一个字符的大小写字母的转换 #include void main() {char x='a'; printf("输入x:\n"); scanf("%c",&x); if( x>='A' && x<='Z') { x=x+32; /*是大写,转换为小写,至于为什么要+32吗,请看看 大小写字母的ASCII码差值*/ } else if( x>='a' && x<='z') { x=x-32; /*是小写,转换为大写*/ } /*其它不用理*/ printf("%c\n",x); } 2:输入一个大写字母实现,输出字母表中的前后字母,但是当时A 或是Z时提示输出的“没有前面的字母”,“没有后面的字母” #include void main() {char x; printf("输入一个大写字母x:\n"); scanf("%c",&x); if (x=='A') {printf("没有前面的字母");} if( x=='Z') { printf("没有后面的字母");} else// (x>'A'||x<'Z') {printf("%c, %c",x-1,x+1);} } 3:实现的是对百分制的评等级

#include void main() { float x; printf("请输入学生的成绩x的值\n"); scanf("%f",&x); if(x>=90&&x<=100) {printf("等级为A ");} else { if (x>=80&&x>=89) {printf("等级为B "); } else if (x>=70&&x<=79) {printf("等级为C "); } else if (x>=60&&x<=69) {printf("等级为D "); } else { printf("等级为E "); } } } 4:知道今天的日期,年月日,求出明天的年月日 #include int main() { int year,month,day; int maxdays[]={31,28,31,30,31,30,31,31,30,31,30,31}; printf("请输入年月日,中间用空格隔开!\n"); scanf("%d %d %d",&year,&month,&day); if(year%400==0 || (year%4==0 && year%100!=0)) maxdays[1]=29;//闰年二月最大值是29 if(month>12 || month<1) { printf("日期不合法!\n"); return 0; } if(day>maxdays[month-1])

C语言程序设计教程第四章练习题解析汇报(1)

单选题 1、关于C语言中的函数,下列描述正确的是() A.函数的定义可以嵌套,但函数的调用不可以嵌套 B.函数的定义不可以嵌套,但函数的调用可以嵌套 C.函数的定义和函数的嵌套均不可以嵌套 D.函数的定义和函数的调用均不可以嵌套 答案:B 解析:函数的定义不可以嵌套,但函数的调用可以嵌套 2、定义一个函数:exce((v1, v2), (v3,v4,v5),v6); 在该函数调用时,实参的个数为()个 A.3 B.4 C.5 D.6 答案:A 解析:(v1, v2), (v3,v4,v5)和v6一共三个实参 3、关于C语言中print()函数与scanf()函数,下列描述中正确的是() A.printf()函数可以向任何地方输出数据 B.printf()只向控制台输出数据 C.scanf()只能输入英文字母和数字 D.scanf()函数可以识别输入的空格 答案:B 解析:printf()是向控制台输出的函数 4、在C语言中,部函数需要添加的关键字是()

A.extern B.static C.this D.auto 答案:B 解析:在定义部函数时,需要在函数的返回值类型前面添加static关键字(又称为静态函数)。 5、当调用时,会调用部函数 A.当调用时,会调用部函数 B.当调用时,会调用外部函数 C.当调用时,会调用两次,先调用部函数再调用外部函数 D.都不调用,会报错 答案:A 解析:当部函数与外部函数重名时,会优先调用部函数 6、在C语言中,声明外部函数需要添加的关键字是() A.extern B.static C.this D.auto 答案:A 解析:声明外部函数的方式是在函数的返回值类型前面添加extern关键字 7、关于C语言中的局部变量,下列描述中错误的是() A.局部变量就是在函数部声明的变量 B.局部变量只在函数部有效 C.局部变量只有当它所在的函数被调用时才会被使用

相关主题
文本预览
相关文档 最新文档