
C语言习题全集.docx
121页第一单元 程序设计和 C 语言 2第二单元顺序程序设计 4第三单元分支程序设计 8第四单元 循环程序设计 15第五单元数组 24第六单元函数 35第七单元指针 43第八单元结构体和共用体 62第九单元文件 78附加题 83模拟试卷一 103模拟试卷二 109模拟试卷三 115第一单元 程序设计和C语言一、选择题1. C语言的基本构成单位是: A A.函数 B.函数和过程 C.超文本过程 D.子程序2. 一个C语言程序总是从 B 开始执行A.主过程 B.主函数 C.子程序 D,主程序3. C语言的程序一行写不下时,可以 C A.用逗号换行 B.用分号换行 C.在任意一空格处换行 D.用回车符换行4. 以下叙述不正确的是:D«A.在C程序中,语句之间必须要用分号";"分隔B.若a是实型变量,C程序中a=10是正确的,因为实型变量中允许存放整型数C.在C程序中,无论是整数还是实数都能正确无误地表示D.在C程序中,%是只能用于整数运算的运算符5 .以下不正确的C语言标识符是』oA. ABC B. abc C. a_bc D. ab. c6 .下列字符串是标识符的是:A»A. _HJ B. 9_student C. long D. LINE 17 .以下说法中正确的是:B。
A. C语言程序总是从第一个定义的函数开始执行8 .在C语言程序中,要调用的函数必须放在main函数中定义C. C语言程序总是从main函数开始执行D. C语言程序中的main函数必须放在程序的开始部分8 .不合法的常量是: B A. '\2' B. " " C. '3' D. ''483'9 .己知各变量的类型说明如下,则以下不符合C语言语法的表达式是:A. int k, a, b;unsigned long w=5;double x=l. 422;A. x%(-3) B. w+=-2 C. k=(a=2, b=3, a+b) D. a+=a=+(b=4)*(a=3)不允许实数参与求余运算,因为会被除尽,无法产生余数10 .在C语言中,字符型数据在内存中以 D 形式存放A.原码 B. BCD码 C.反码 D. ASCII码11 .若有定义:int a=7; float x=2. 5; y=4. 7;则表达式 x+a%3*(int) (x+y)%2/4 的值是: B .A. 2.500000 B. 2.750000 C. 3.500000 D. 0.00000012 .设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为: D oA. float B. char C. int D. double13 .以下 C 是不正确的转义字符。
A. '\\' B. '\' C. '081' D. ''0'14 .若x为int型变量,则执行以下语句后,x的值为3 ox=6; x+=x-=x*x;A. 36 B. -60 C. 60 D. -24根据优先级和顺序,首先计算x=x-x*x,则此时x=6-36=-30,然后x=x+ (-30),所以x=-60 15.字符串"\\\"ABC\"\\"的长度是 B A. 11 B. 7 C. 5 D. 3二、填空题1 .一个函数由两部分组成,它们是执行部分和说明部分(函数首部和函数体)2 . 一个C源程序至少包含一个 主函数,即main函数.3 .设inta=12;则表达式a/=a+a的值是 24 .表达式x=(a=3, 6*a)和表达式x=a=3, 6*a分别是 赋值 表达式和 逗号 表达式, 两个表达式执行完的结果分别是 18 和 3 , x值分别是和5 .在C语言中,实数有两种表示形式,即 和.6 .在C语言中,运算符的优先级最小的是 运算符第二单元顺序程序设计一、选择题1 .若m为float型变量,则执行以下语句后的输出为 om=1234.123;printf3f\n", m);printf(*%10. 3f\rT, m);A. 1234. 123 B. 1234. 123 C. 1234. 123 D. -1234. 1231234. 123 1234. 123 1234. 123 001234. 1232 .若x, y, z均为int型变量,则执行以下语句后的输出为x=(y=(z=10)+5) -5;printf("x=%d, y=%d, z=%d\n*, x, y, z);y=(z=x=0, x+10);printf("x=%d, y=%d, z=%d\n*, x, y, z);A. X=10, Y=15, Z=10 B. X=10, Y=10, Z=10X=0,Y=10, Z=0C. X=10, Y=15, Z=10X=10, Y=10, Z=0X=0, Y=10, Z=10D. X=10, Y=10, Z=10X=0, Y=10, Z=03 .若x是int型变量,y是float型变量,所用的scanf调用语句格式为:scanf("x=%d, y=%f", &x, &y);则为了将数据10和66. 6分别赋给x和y,正确的输入应是:A. x=10,y=66.6<回车) B. 10 66. 6<回车)C. 10<回车>66. 6〈回车> D. x=10〈回车>y=66.6<回车)4 .已知有变量定义:int a;char c;用scanf ( ,&a, &c);语句给a和c输入数据,使30存入a,字符'b'存入c,则正确的输入是:A. 30' bf〈回车> B. 30 b<回车)C. 30〈回车>b〈回车> D. 30b<回车〉5 .已知有变量定义:double x;long a;耍给a和x输入数据,正确的输入语句是 A. scanf ( M%d%fw ,&a,&x);printf ( a%d, %fM , a, x);C. scanf( a%ld%lfw ,&a,&x); printf ( %lfw ,a, x);右要输出a和x的值,正确的输出语句B. scanf ( u%ld%fw ,&a,&x); printf ( a%ld, %fw , a, x);D. scanf (“断d%lf",&a,&x); printf( "%ld, %f” ,a, x);6 .若有定义double x=L y;则以下的语句执行的结果是。
y=x+3/2; printf( u%fw , y);A. 2. 500000 B. 2. 5 C, 2. 000000 D. 27 .若a为整型变量,则以下语句a=-2L; printf(〃%d\n〃,a);A,赋值不合法 B.输出为不确定的值 C,输出值为-2 D,输出值为2二、读程序写结果1. main(){ int x, y;scanf (/z%2d%*2d%ld/\ &x, &y);printfx+y);}执行时输入:12345672. main(){ int x=4,y=0, z;x*=3+2;printfx);x*=y=z=4;printfx);)3. main (){ float x; int i;x=3. 6; i=(int)x;printf Cx=%ff i二%d”, x, i);}4. mainO{ int a=2;a%=4-l; printf”, a);a十二a*=a-=a*=3; printfa);}5. main(){ int x=02,y=3;printf("x=%d, y=%%d”, x, y);6. main(){ char cl=,6,,c2=,0,; printf ("%c, %c, %d, %d\n”, cl, c2, cl-c2, cl+c2);}7. main(){ int x, y, z;x=y=l; z=++x-l;printf("%d, %d\n”, x, z);z+=y++;printf("%d, %d\n”, y, z); }三、填空题1 .在C语言中,字符型数据和整型数据之间可以通用,一个字符数据既能以 输出,也能以 输出。
2 . "%fs〃表示如果串长小于m,则在m列范围内,字符串向 靠,补空格3 . printf函数的“格式控制”包括两部分,它们是 和 o4 .编写程序求矩形的面积和周长,矩形的长和宽由键盘输入,请填空^include
之单位为度)转换为直角坐标(X, Y)»转换公式 是:x=r.cos 0y=r. sin 0测试数据:①r=10 6 =45°② r=20 0 =90°3 .写一个程序,按如下格式输出数据namenumbermathenglishcomputerzhanghua990180. 5087.080lina990270. 0080.090wanggang990387. 0076.0784 .输入3个双精度实数,分别求出它们的和、平均值、平方和以及平方和的开方, 并输出所求出各个值5 .输入一个3位整数,求出该数每个位上的数字之和如123,每个位上的数字和 就是 1+2+3=6 o第三单元分支程序设计-、选择题1 .若x=0, y=3, z=3,以下表达式值为0的是A. !x B. x












