C)a=3.12,b=9
scanf(“ a=%f,b=%f”,&a,&b);
[3.20] 以下程序的输出结果是
A)9 8 B)8 9 C)6 6 D)以上三个都不对
#include “ math.h” main()
{ double a=-3.0,b=2;
printf(“ %3.0f %3.0f\\n”,pow(b,fabs(a)),pow(fabs(a),b)); }
填空题
[3.21] 若有以下定义,请写出以下程序段中输出语句执行后的输出结果。
(1)___________ (2)___________(3)___________
int i=-200,j=2500;
printf(“ (1) %d %d”,i,j);
printf(“ (2) i=%d,j=%d\\n” ,i,j); printf(“ (3) i=%d\\n j=%d\\n”,i,j);
[3.22] 变量i、j、k已定义为int类型并有初值0,用以下语句进行输入时
scanf(“ %d”,&I); scanf(“ %d”,&j); scanf(“ %d” ,&k);
当执行第一个输入语句,从键盘输入:
12.3
则变量i、j、k的值分别是________、_______、_______。
[3.23] 复合语句在语法上被认为是_______。空语句的形式是_____。 [3.24] C语句的最后用_______结束。
[3.25] 以下程序段,要求通过scanf语句给变量赋值,然后输出变量的值。写出运行时给k输入100,给a输入25.81,给x输入1.89234 时的三种可能的输入形式_____、_____、_____。
int k; float a; double x; scanf(“ %d%f%lf”,&k,&a,&x);
pirntf(“ k=%d,a=%f,x=%f\\n”,k,a,x);
[3.26] 以下程序段的输出结果是_________。
int x=0177;
printf(“ x==,x=m,x=%6o,x=%6x,x=%6u\\n”,x,x,x,x,x);
[3.27] 以下程序段的输出结果是______。
int x=0177;
printf(“ x=%-3d, x=%-6d,x=$%-06d, x=$d,x=%d\\n”,x,x,x,x,x);
[3.28] 以下程序段的输出结果是______。
double a=5.13.789215;
printf(“ a=%8.6f,a=%8.2f,a=.8f,a=.8lf\\n”,a,a,a,a);
编程题和改错题
[3.29] 以下程序多处有错。要按下面指定的形式输入数据和输出数据时,请对该程序做相应的修改。 main
{double a,b,c,s,v; printf(input a,b,c:\\n); scanf(“%d%d%d”,a,b,c);
s=a*b; /*计算长方形面积*/ v=a*b*c; /*计算长方体体积*/ printf(“%d %d %d”,a,b,c); printf(“s=%f\\n”,s,”v=%d\\n”,v); }
当程序执行时,屏幕的显示和要求输入形式如下:
input a,b,c:2.0 2.0 3.0 此处的2.0 2.0 3.0是用户输入的数据 a=2.000000,b=2.000000,c=3.000000 此处是要求的输出形式 s=4.000000,v=12.000000
[3.30] 编写程序,把560分钟换算成用小时和分钟表示,然后进行输出。
[3.31] 编写程序,输入两个整数:1500和350,求出它们的商数和余数并进行输出。 [3.32] 编写程序,读入三个双精度数,求它们的平均值并保留此平均值小数后一位数,对小数点后第二位数进行四舍五入,最后输出结果。
[3.33] 编写程序,读入三个整数给a、b、c,然后交换它们中的数,把a中原来的值给b,把b中原来的值给c, 把c中原来的值给 a。
第四章 选择结构
一、选择题
[4.1] 下列运算符中优先级最高的运算符是
A)! B)% C)-= D)&&
[4.2] 下列运算符中优先级最低的运算符是
A)|| B)!= C) <= D)+
[4.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.4] 设 a、b 和c 都是int 型变量,且a =3,b=4, c=5;则以下的表达式中,值为0的表达式是
A) a&&b B)a<=b C)a||b+c&&b-c D)!((a
[4.5] 以下程序的输出结果是:
A) 0 B)1 C)2 D)3
main()
{ int a=2,b=-1,c=2; if (a
if (b<0) c=0; else c+=1;
printf(“%d\\n”,c); }
[4.6] 以下程序的输出结果是:
A) 1 B) 2 C) 3
D) 4
main()
{ int w=4,x=3,y=2,z=1;
printf(“%d\\n”,(w [4.7] 若执行以下程序时从键盘上输入3和4,则输出结果是 A)14 B)16 C)18 D)20 main() { int a, b,s; scanf(“%d%d”,&a,&b); s=a; if (a printf(“%d\\n”,s); } [4.8] 下面的程序片段所表示的数学函数关系是 A) -1(x<0) A)y= 0(x=0) 1(x>0) B) 1(x<0) B)y= -1(x=0) 0(x>0) C) 0(x<0) C)y= -1(x=0) 1(x>0) D) -1(x<0) D)y= 1(x=0) 0(x>0) y=-1; if (x!=0) { if (x>0) y=1;} else y=0; [4.9] 运行以下程序后,输出 A)#### B)&&&& C)####&&&& D)有语法错误不能通过编译 main() { int k=-3; if (k<=0) printf(“****\\n”); else printf(“&&&&\\n”); } [4.10] 若a和b均是正整数型变量,以下正确的switch语句是 A) switch ( pow(a,2)+pow(b,2)) (注:调用求幂的数学函数) { case 1: case 3: y=a+b; break ; case 0: case 5: y=a-b; } B) switch (a*a+b*b); { case 3: case 1: y=a+b; break ; case 0: y=b-a; break; } C) switch a { default : x=a+b; case 10 : y=a-b;break; case 11 : y=a*d; break; } D) switch(a+b) { case10: x=a+b; break; case11: y=a-b; break; } 二、 填空题 [4.11] C语言中用______表示逻辑值“真”,用______表示逻辑值“假”。 [4.12] C语言中的关系运算符按优先级别是_________ 、__________. [4.13] C语言中的逻辑运算符按优先级别是______、 ______ 、______. [4.14] C语言中的关系运算符和逻辑运算符的优先级别是 ___、______、______、___、______。 [4.15] C语言中逻辑运算符______的优先级高于算术运算符。 [4.16] 将下列数学式改写成C语言的关系表达式或逻辑表达式A)______________和 B)__________ A) a=b 或 a [4.17] 请写出以下程序的输出结果___。 main() { int a=100; if (a>100) printf(“%d\\n”,a>100); else printf(“%d\\n”,a<=100); } [4.18] 请写出与以下表达式等价的表达式A)_________B)__________. A) !(x>0) B) !0 [4.19] 当a=1,b=2,c=3时,以下if 语句执行后,a 、b 、c 中的值分别为___、 ___、 ___. if (a>c) b=a;a=c; c=b; [4.20] 若变量巳正确定义,以下语句段的输出结果是_______。 x=0,y=2,z=3; switch(x) { case 0: switch (y=2) { case 1: printf(“*”); break; case 2: printf(“%”); break; } case 1: switch(z) { case 1: printf(“$”); case 2: printf(“*”);break; default: printf(“#”); } } 三、 编程题 [4.21] 请将以下语句改写成switch语句。 if ( a<30) m=1; else if (a<40) m=2; else if (a<50) m=3; else if (a<60) m=4; else m=5; [4.22] 编写程序,输入一位学生的生日(年:y0、月:m0、日:d0); 并输入当前的日期(年: y1、月:m1、日:d1); 输出该生的实足年龄。 [4.23] 编写程序,输入一个整数,打印出它是奇数还是偶数。 [4.24] 编写程序,输入 a、b 、c 三个数,打印出最大者。 [4.25] 有一函数: