C语言第三章习题带答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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
C.10A20B
5.已有定义int x; float y;,且执行scanf("%3d%f", &x, &y);语句时,输入数据12345□678
①A.12345 B.123 C.45 D.345
②A.无定义B.45.000000 C.678.000000 D.123.000000 6.阅读以下程序,当输入数据的形式为:25,13,10
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: ");
输入语句
输出语句