青海大学程序设计基础习题指导书2014版 联系客服

发布时间 : 星期五 文章青海大学程序设计基础习题指导书2014版更新完毕开始阅读fba8ffd990c69ec3d5bb75f4

《程序设计基础(C)》习题指导书

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

}

该程序的输出结果是 ( )。

A. a=2,b=1 B. a=1,b=1 C. a=1,b=0 D.a=2,b=2 9.以下程序的输出结果是( )。

A. -1 1 B. 0 1 C. 1 0 D. 0 0 main( )

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

if((++a<0)&& ! (b-- <=0)) printf(\ %d\\n\,a,b); else printf(\ %d\\n\,b,a);

10.若有以下定义:

float x;int a,b;

则正确的switch 语句是( )。

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

{ case1.0:printf(\ { case1,2:printf(\ case2.0:printf(\ case3:printf(\

} } C.switch (a+b) D.switch (a+b); { case 1: printf(\ { case 1: printf(.\

case 1+2: printf(\ case 2: printf(\} } ㈢.判断题

1.if语句中的表达式不限于逻辑表达式,可以是任意的数值类型。( ) ? 2.switch语句可以用if语句完全代替。( ) ?

3.switch语句的case表达式必须是常量表达式。( ) ?

4.switch语句的各个case和default的出现次序不影响执行结果。( ) ? 5.在switch的default语句后面是可以不用写break语句的。( )? ㈣.程序设计题

1. 编程实现:输入整数a和b,若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数之和。 2.用switch语句编一程序,对于给定的一个百分制成绩,输出相应的五分制成绩,设:90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。

3.输入年份year和月month,求该月有多少天。判断是否为闰年,可用如下C语言表达式:year%4==0 && year0!=0 || year@0==0。若表达式成立(即表达式值为1),则year为闰年;否则,表达式不成立(即值为0),year为平年。

4.编写一个简单计算器程序,输入格式为:data1 op data2。其中data1和data2是参加运算的两个数,op为运算符,它的取值只能是+、-、*、/。

5.某单位的奖金税率如下(a代表奖金,r代表税率):

奖金数目范围 a<500 500<=a<1000 1000<=a<2000 2000<=a<3000 税率r 0% 5% 8% 10% 第 21 页 共 64 页

《程序设计基础(C)》习题指导书

3000<=a 15%

请编写程序实现从键盘输入奖金额以后自动计算应缴税金和实得奖金。

? 提高篇

㈠.填空题

1.设a=3,b=454,c=0,表达式 !(a+b) + c –1 && b + c/2运算后的值为________1____。 2.设a=3,b=5,c=0表达式 !((c<3)&&(b>1))&&!( (a+b)<5&&(b>3)) ||2+b 运算后的值为_______1_____。 3.已知A=7.5,B=2,C=3.6,表达式A>B && C>A || AB的值是 0 。

4.若有以下程序段,当city的值为 ‘S’,则输出结果为_Shanghai Guang Xi’an__________。 switch(city)

{ case ‘B’: printf( “Beijing”);break; case ‘S’: printf( “Shanghai”); case ‘G’: printf( “Guang”);

case ‘X’: printf( “Xi/’an”); break; default: printf( “error”); }

5.以下程序的功能是判断输入的某个年份是否为润年。请填空补齐程序。 main() { int y,f;

scanf( “%d”,&y); if(y@0==0)f=1;

else if(_y0!=0&&y%4==0______) f=1; else __f=0_____;

if(f) printf(“%d is a leap year .\\n”,y); else printf(“%d is not a leap year .\\n”,y); }

6.将以下含有switch语句的程序段改写成对应的if形式的语句应该为 。 int x,y,m; y=(int)(x/10) switch(y)

{ case 10: m=4;break; case 9: m=3;break; case 8: m=2;break; case 7: m=1;break; default : m=0; }

if(y==10) m=4; else if(y==9)m=3; else if(y==8)m=2; else if(y==7)m=1; else m=0;

第 22 页 共 64 页

《程序设计基础(C)》习题指导书

7.若a、b、c均已正确定义且a=0,b=2,c=3,则以下程序段的输出是___%*_____。 switch(a) { case 0: switch(b)

{ case 1: printf( “&\\n”);break; case 2: printf( “%%\\n”);break;

} case 1: switch(b)

{ case 1: printf( “$\\n”);break; case 2: printf( “*\\n”);break; default : printf( “#”);

} }

8.请读程序:

#include main( )

{ int x=1, y=0,a=0,b=0; switch(x) {case 1: switch(y)

{ case 0:a++;break; case 1:b++;break; } case 2:

a++; b++; break; }

prinf(“a=%d,b=%d”,a,b); }

上面程序的运行结果是_a=2,b=1________ 。

10.以下程序输出x,y,z三个数中的最小值,请填空使程序完整。 main ( )

{ int x=4,y=5,z=8 ; int u,v;

u = x

v = u

㈡.选择题

1.如果int a=1,b=2,c=3,d=4;则条件表达式\的值是(A. 1 B. 2 C. 3 D. 4

2.为判断字符变量c的值不是数字也不是字母时,应采用下述表达式( A. c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122 B. !(c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122) C. c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122

第 23 页 共 64 页

)。 。 )《程序设计基础(C)》习题指导书

D. !(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122)

3.为表示关系x≥y≥z,应使用C语言表达式 ( )。

A. (x>=y)&&(y>=z) B.(x>=y)AND(y>=z) C.(x>=y>=z) D.(x>=y)&(y>=z) 4.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是( )。 A.abs(x-y)<10 B..x-y>-10&& x-y<10 C. @(x-y)<-10||!(y-x)>10 D. (x-y)*(x-y)<100 5.以下程序段中与语句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;

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; 6. 有以下程序: main( )

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

if(i++==1&&(++j==3||k++==3))

printf(\ %d %d\\n\程序运行后的输出结果是( )。

A.1 2 3 B.2 3 4 C.2 2 3 D.2 3 3 7.有以下程序: main( )

{ int a=3,b=4,c=5,d=2; if(a>b)

if(b>c) printf(\+1); else

printf(\+1); printf(\程序运行后的输出结果是( )。

A. 2 B. 3 C. 43 D. 44

8.当a=1,b=3,c=5,d=5时,执行下面一段程序后,x的值为( )。 if(a

if(c

if(b

A. 1 B. 2 C. 3 9.请读程序:

#include main( )

{ int x=1, y=0, a=0, b=0; switch(x) { case 1: switch(y)

第 24 页 共 64 页

D. 6