C语言习题 答案讲解 联系客服

发布时间 : 星期五 文章C语言习题 答案讲解更新完毕开始阅读da29723ab94ae45c3b3567ec102de2bd9605dec5

8、 如果从键盘输入字符’a’并按回车键,请写出以下程序运行效果 a 。

#include main() {

putchar(getchar()); }

9、以下程序的输出结果为 i:dec=-4,oct=177774,hex=fffc,unsigned=65532 。 main() { short i; i=-4; printf(“\\ni:dec=%d,oct=%o,hex=%x,unsigned=%u\\n”,i,i,i,i); }

10、以下程序的输出结果为 *3.140000,3.142* 。 main() { printf(“*%f,%4.3f*\\n”,3.14,3.1415); }

11、以下程序的输出结果为 c:dec=120,oct=170,hex=78,ASCII=x 。 main() { char c=‘x’; printf(“c:dec=%d,oct=%o,hex=%x,ASCII=%c\\n”,c,c,c,c); }

12、已有定义int d=-2;执行以下语句后的输出结果是 *d(1)=-2*d(2)= -2*d(3)=-2 *

*d(4)=177776*d(5)= 177776*d(6)=177776 *

printf(“*d(1)=%d*d(2)==*d(3)=%-3d*\\n”,d,d,d); printf(“*d(4)=%o*d(5)=%7o*d(6)=%-7o*\\n”,d,d,d); 13、以下程序的输出结果为 x=1 y=2 *sum*=3 10 Squared is: 100

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); }

14、以下程序的输出结果为 (1) 123.456000 (2) □□□□□□□123.457 (3) 123.4560 (4) 8765.456700 (5) □□□□□□8765.457 (6) 8765.4567 (7) 8765.4567 #include main() { float a=123.456; double b=8765.4567; printf(“(1) %f\\n”,a); printf(“(2) .3f\\n”,a); printf(“(3) %6.4f\\n”,a); printf(“(4) %lf\\n”,b); printf(“(5) .3lf\\n”,b); printf(“(6) %8.4lf\\n”,b); printf(“(7) %.4f\\n”,b); }

5 / 44

二、判断题

1、所谓函数体实际上就是一个复合语句。( 对)

2、C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。(对 ) 3、putchar函数可以向终端输出一个整数数据。( 错 )

4、考虑到printf 和scanf函数使用频繁,系统允许在使用这两个函数时可不加#include命令。( 对 )

5、任何表达式都可以加上分号而成为有意义的语句。(对 ) 三、选择题

1、 以下不属于流程控制语句的是( A )。

A) 表达式语句 B) 选择语句 C) 循环语句 D) 转移语句 2、putchar函数可以向终端输出一个( D )。

A)整型变量表达式值 B)实型变量值 C)字符串 D)字符或字符型变量值 3、getchar函数的参数个数是( B )。

A) 1 B) 0 C) 2 D)任意 4、以下程序的输出结果是(D) 。 main() { printf(“\\n*s1=s*”, “chinabeijing”); printf(“\\n*s2=%-5s*”, “chi”); }

A)*s1=chinabeijing * B)*s1=chinabeijing * *s2=**chi* *s2=chi * C)*s1=*chinabeijing* D)*s1= chinabeijing* *s2=chi* *s2=chi * 5、printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,

则输出按方式( B )。;如果字符串长度小于5,则输出按方式( C )。 A)从左起输出该字串,右补空格 B)按原字符长从左向右全部输出 C)右对齐输出该字串,左补空格 D)输出错误信息

6、已有定义int a=-2;和输出语句:printf(“%8lx”,a);以下正确的叙述是( D )。 A)整型变量的输出格式符只有%d一种

B)%x是格式符的一种,它可以适用于任何一种类型的数据

C)%x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的 D)%8lx不是错误的格式符,其中数字8规定了输出字段的宽度

7、以下C程序正确的运行结果是( C )。 main() { long y=-43456; printf(“y=%-8ld\\n”,y); printf(“y=%-08ld\\n”,y); printf(“y=ld\\n”,y); printf(“y=%+8ld\\n”,y); }

A)y= -43456 B)y=-43456 y=- 43456 y=-43456 y=-0043456 y=-0043456 y=-43456 y=+-43456 C)y=-43456 D)y= -43456 y=-43456 y=-0043456 y=-0043456 y=00043456

6 / 44

y= -43456 y=+43456 8、以下C程序正确的运行结果是( D )。 main() { int y=2456; printf(“y=%3o\\n”,y); printf(“y=%8o\\n”,y); printf(“y=%#8o\\n”,y); }

A)y= 2456 B)y= 4630 y= 2456 y= 4630 y=########2456 y=########4630 C)y=2456 D)y=4630 y= 2456 y= 4630 y= 02456 y= 04630

基础练习(B)

一、填空题

1、printf函数的作用是向终端 输出 若干个任意类型的数据。 2、printf函数中的“格式控制”,包括 格式说明 和 普通字符 两种信息。 3、scanf函数中的“格式控制”后面应当是变量 地址 ,而不是变量名。

4、在用scanf函数中输入数据时,如果在“格式控制”字符传中除了格式说明以外还有其他字符,则应在对应位置输入与这些字符相同的 字符 。

5、在用”%c”格式输入字符时,空格字符和“转义字符”都作为有效字符 输入 。 6、在输入数据时,遇以下情况时该数据认为结束:遇 空格 、或按 “回车” 或 “跳格”键 ;按指定的宽度结束;遇非法输入。 7、输入数据时不能规定 精度 。

8、如果在%后有一个“*”附加说明符,表示 跳过它指定的列数 。 二、选择题

1、若int a,b; scanf(“%d%d”,&a,&b); 不可以用( A )作为输入的分隔符。 A) , B) 空格 C) 回车 D) TAB键 2、若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是 ( B )。 A)scanf(“%d%lx,%le”,&x,&y,&z); B)scanf(“-*%d%lf”,&x,&y,&z); C)scanf(“%x%*d%o”,&x,&y);

D)scanf(“%x%o%6.2f”,&x,&y,&z);

3、已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列

开始输入数据时,正确的数据输入方式是( D )。 int a1,a2; char c1,c2; scanf(“%d%d”,&a1,&a2); scanf(“%c%c”,&c1,&c2); A)1020AB B)10 20 AB C)10 20 AB D)10 20AB

4、阅读以下程序,当输入数据的形式为 25,13,10 正确的输出结果为( D )。 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

7 / 44

C)x+z=35 D)不确定值

5、已有程序段和输入数据的形式如下,程序中输入语句的正确形式应当为( D )。 main() { int a; float f; printf(“\\nInput number:”); 输入语句 printf(“\\nf=%f,a=%d\\n”,f,a); } Input number:4.5 2 A)scanf(“%d,%f”,&a,&f); B)scanf(“%f,%d”,&f,&a); C)scanf(“%d%f”,&a,&f); D)scanf(“%f%d”,&f,&a);

6、根据定义和数据的输入方式,输入语句的正确形式为( B )。 已有定义:float f1,f2; 数据的输入方式:4.52 3.5 A)scanf(“%f,%f”,&f1,&f2); B)scanf(“%f%f”,&f1,&f2);

C)scanf(“%3.2f %2.1f”,&f1,&f2); D)scanf(“%3.2f%2.1f”,&f1,&f2);

7、阅读以下程序,若运行结果为如下形式,输入输出语句的正确内容是( B )。 main() { int x; float y; printf(“enter x,y:”); 输入语句 输出语句 } 输入形式 enter x,y:2 3.4 输出形式 x+y=5.40 A)scanf(“%d,%f”,&x,&y); printf(“\\nx+y=%4.2f”,x+y); B)scanf(“%d%f”,&x,&y); printf(“\\nx+y=%4.2f”,x+y); C)scanf(“%d%f”,&x,&y); printf(“\\nx+y=%6.1f”,x+y); D)scanf(“%d%3.1f”,&x,&y); printf(“\\nx+y=%4.2f”,x+y); 8、以下说法正确的是( D )。

A)输入项可以为一实型常量,如scanf(“%f”,3.5);

B)只有格式控制,没有输入项,也能进行正确输入,如scanf(“a=%d,b=%d”);

C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%4.2f”,&f); D)当输入数据时,必须指明变量的地址,如scanf(“%f”,&f);

9、有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b为3,c为2,从

键盘输入数据的正确形式应当是( D )。 A)132<回车> B)1,3,2<回车>

C)a=1 b=3 c=2<回车> D)a=1,b=3,c=2<回车> }

10、已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一

8 / 44