C语言第三章习题带答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

练习3-1答案

一、选择题

1.在C语言库函数中,可以输出double型变量x值的函数是( D )。

A.getchar B.scanf C.putchar D.printf 2.执行语句:printf("The program\'s name is c:\\tools\book.txt");后输出是( D )。

A.The program's name is c:tools book.txt

B.The program's name is c:\tools book.txt

C.The program's name is c:\\tools book.txt

D.The program's name is c:\toolook.txt

3.以下程序的输出结果是( D )。(注:□表示空格)

main()

{printf("\n*s1=%15s*", "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□□*

4.选择程序的运行结果,①是( B )、②是( B )、③是( D )、④是( C )。

#include

main()

{int a=-10, b=-3;

printf("%d\n", a%b); /*输出①*/

printf("%d\n", a/b*b); /*输出②*/

printf("%d\n", -a%b); /*输出③*/

printf("%d\n", a-=b+++1); /*输出④*/

}

①A.-2 B.-1 C.0 D.1

②A.-10 B.-9 C.-8 D.0

③A.-2 B.-1 C.0 D.1

④A.-10 B.-9 C.-8 D.-7

5.以下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

二、填空题

6.以下程序的输出结果为( i:dec=-4, otc=177774, hex=fffc, unsigned=65532 )。

main()

{short i;

i=-4;

printf("\ni:dec=%d, otc=%o, hex=%x, unsigned=%u\n", i, i, i, i);

}

7.以下程序的输出结果为( 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);

}

8.已有定义int d=-2;,执行以下语句后的输出结果是:

( *d(1)=-2*d(2)=□-2*d(3)=-2□*

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

*d(4)=fffe*d(5)=□□fffe*d(6)=ffffe□□* )。(注:□表示空格)

printf("*d(1)=%d*d(2)=%3d*d(3)=%-3d*\n", d, d, d, d);

printf("*d(4)=%o*d(5)=%7o*d(6)=%-7o*\n", d, d, d, d);

printf("*d(4)=%x*d(5)=%6x*d(6)=%-6x*\n", d, d, d, d);

9.以下程序的输出结果是:

( a=374 a=0374

a=fc a=0xfc )。

#include

main()

{int a=252;

printf("a=%o a=%#o\n", a, a);

printf("a=%x a=%#x\n", a, a);

}

练习3-2答案

选择题

1.已知:int x, y, z, w;,为使以下语句的输出为:1234+123+12+1,正确的输入形式应当为( C )。

scanf("%4d-%3d-%2d-%1d", &x, &y, &z, &w);

printf("%4d+%3d+%2d+%1d\n", x, y, z, w);

A.1234123121 B.1234 123 12 1 C.1234-123-12-1 D.1234+123+12+1 2.已知:int x; float y;,所用的scanf调用语句格式为:

scanf("x=%d, y=%f", &x, &y);

为了将数据10和66.6分别赋给x和y,正确的输入应当使( A )。

A.x=10, y=66.6<回车> B.10,66.6<回车>

C.10<回车>66.6<回车> D.x=10<回车>y=66.6<回车>

3.已知:int x, y; double z;,以下语句中错误的函数调用是( D )。

A.scanf("%d,%x,%1e", &x, &y, &z); B.scanf("%2d*%d%1f", &x, &y, &z);

C.scanf("%x%*d%o", &x, &y); D.scanf("%x%o%6.2f", &x, &y, &z); 4.已有如下定义和输入语句,若要求a1、a2、c1、c2的值分别为10、20、A和B,当从第一列开始输入数据时,正确的数据输入方式是( AC )。(注:□表示空格,表示回车)

int a1, a2; char c1, c2;

scanf("%d%c%d%c", &a1, &c1, &a2, &c2);

A.10A□20B B.10□A□20B

C.10A20B D.10A20□B

5.已有定义int x; float y;,且执行scanf("%3d%f", &x, &y);语句时,输入数据12345□678,则x的值为( ①B ),y的值为( ②B )。(注:□表示空格)

①A.12345 B.123 C.45 D.345

②A.无定义B.45.000000 C.678.000000 D.123.000000 6.阅读以下程序,当输入数据的形式为: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 C.x+z=35 D.不确定值

7.根据题目中已经给出的数据的输入和输出形式,程序中输入输出语句的正确内容是( B )。

main()

{int x;

float y;

printf("enter x, y: ");

输入语句

输出语句

相关文档
最新文档