C语言练习题-.pdf
《C语言练习题-.pdf》由会员分享,可在线阅读,更多相关《C语言练习题-.pdf(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C 语言练习题第 1、2、3章C 语言入门一、单项选择题1.C 语言源程序的基本单位是()A.过程B.函数C.子程序D.标识符2.C 语言规定:在一个源程序中,main 函数的位臵()A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后3.一个 C 程序的执行是从()A.本程序的 main函数开始,到 main函数结束B.本程序的 main函数开始,到本程序文件的最后一个函数结束C.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束D.本程序的第一个函数开始,到本程序的main函数结束4.C 语言和数据定义的最后()A.必须有一个句号B.必须有一个逗号C.必须有一
2、个分号D.无需任何标点符号5.C 语言的标识符的第一个字符()A.必须为字母B.必须为下划线C.必须为字母或下划线D.以是字母、数字和下划线中任一种字符6.C 语言中最简单的数据类型包括()A.整型、实型、逻辑型B.整型、实型、字符型B.整型、字符型、逻辑型D.整型、实型、字符型、逻辑型7.在 C 语言中(以 16 位 PC 机为例),5 种基本数据类型的存储空间长的排列顺序为()A.charintlongfloatdouble B.char=intlongfloatdoubleC.charintlongfloat=double D.char=int=longfloat3?2:1 21.若有以
3、下定义,则能使值为3 的表达式是()int k=7,x=12 A.x%=(k%=5)B.x%=(k-k%5)C.x%=k-k%5 D.(x%=k)-(k%=5)22.设以下变量均为整型,则值不为7 的表达式是()A.(x=y=6,x+y,x+1)B.(x=y=6,x+y,y+1)C.(x=6,x+1,y=6,x+y)D.(y=6,y+1,x=y,x+1)23.设有值均为 5.0 的单精度变量 f,g,使 f 为 10.0的表达式是()A.f+=g B.f-g+5 C.f*=g-15 D.f/=g*10 24.设 f 为实型变量,下列表达式中不是逗号表达式的是()A.f=3,4,5 B.f=(3
4、,2,1,0)C.f=3,f2,0 D.f=2,f=1 25.设 a,b均为整型变量,下列表达式中不是赋值表达式的是()A.a=3,4,5 B.a=3*2 C.a=a&b D.a=b=4 26.整型变量 a,b,c的值分别为 2,3,4,运算表达式 a*16+(b+)-(+c)后,a的值是(),b 的值是(),c 的值是()A.31 B.30 C.29 D.28 A.2 B.3 C.4 D.5 A.5 B.4 C.5 D.4 27.设有整型变量 n1,n2,其值均为 3,执行语句 n2=n1+,n2+,+n1;后,n1的值是(),n2的值是()A.3 B.4 C.5 D.6 28.执行语句 x
5、=(a=3,b=a-);后,x,a,b的值依次是()A.3,3,2 B.3,2,2 C.3,2,3 D.2,3,2 29.以下说法正确的是()A.输入项可以为一个实型常量,如scanf(%f,3.5);B.只有格式控制,没有输入项,也能进行正确输入,如 scanf(a-%d,b=%d);C.当输入一 个实型 数据时,格式控 制部分 应规定 小数点 后的位 数,如scanf(%4.2f,&f)D.当输入数据时,必须指明变量的地址,如scanf(%f,&f)30.putchar函数可以向终端输出一个()A.实型变量值B.整型变量表达式值C.字符串D.字符或字符型变量值31.下面输入语句正确的是()
6、A.scanf(a=b=%d,&a,&b);B.scanf(a=%d,b=%f,&m,&f);C.scanf(%3c,c);D.scanf(%5.2f,&f)32.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为 10,20,A 和B,当从第一列开始输入数据时,正确的输入方式是()int a1,a2;char c1,c2;scanf(%d%c%d%c,&a1,&c1,&a2,&c2);A.10A20B B.10A20B C.10A20B D.10A20B 33.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为 10,20,A 和B,当从第一列开始输入数据时,正确的数
7、据输入方式是()int a1,a2;char c1,c2;scanf(%d%d,&a1,&a2);scanf(%c%c,&c1,&c2);A.1020AB B.1020AB C.1020AB D.1020AB 34.已有定义 int x;float y;且执行语句 scanf(%3d%f,&x,&y);语句时,从第一列开始输入数据12345678,则 x 的值为(),y 的值为()A.12345 B.123 C.45 D.345 A.无定值B.45.000000 C.678.000000 D.123.000000 35.已有程序段和输入数据的形式,程序中输入语句的正确形式应当为main()in
8、t a;float f;printf(input number:);输入语句printf(n,f,a);Input number:4.52 A.scanf(%d,%f,&a,&f);B.scanf(%f,%d,&f,&a);C.scanf(%d%f,&a,&f);D.scanf(%f%d,&f,&a);36.有输入语句:scanf(a=%d,b=%d,c=%d,&a,&b,&c);为使变量 a,b,c的值依次为 1,3,2,从键盘上输入数据的正确方式应当是()A.1 3 2 B.1,3,2 C.a=1b=3c=2 D.a=1,b=3,c=2,37.根据题目中已给出的数据输入形式和输出形式,程序
9、中输入输出语句的正确内容为main()int x;float y;printf(enter x,y:);输入语句输出语句 A.scanf(%d%f,&x,&y);B.scanf(%d%f,&x,&y);printf(nx+y=%4.2f,x+y);printf(nx+y=%4.2f,x+y);C.scanf(%d%f,&x,&y);D.scanf(%d%3.1f,&x,&y);printf(nx+y=%6.1f,x+y);printf(nx+y=%4.2f,x+y);38.根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式main()char ch1,ch2,ch3;输入语句pri
10、ntf(%c%c%c,ch1,ch2,ch3);输入形式 ABC 输出形式 AB A.scanf(%c%c%c,&ch1,&ch2,&ch3);B.scanf(%c,%c,%c,&ch1,&ch2,&ch3);C.scanf(%c,%c,&ch1,&ch2,&ch3);D.scanf(%c%c,&ch1,&ch2,&ch3);39.下列程序执行后的输出结果是()main()int a=1,b=1;a+=b+=1;int a=10,b=10;a+=b+=10;printf(b=%d,b);a*=a*=b*10;printf(a=%2dn,a);A.b=20 a=180 B.b=20 a=36 C
11、.b=20 a=3600 D.b=20 a溢出40.printf 函数中用到格式符%5s,如果字符串长度大于5,则输出按方式();如果字符串长度小于5,则输出按方式()A.左对齐输出该字符串,右补空格B.右对齐输出该字符串,左补空格C.按字符串长从左到右全部输出D.输出错误信息41.以下 C 程序的运行结果是()main()int y=2456;printf(y=%3on,y);printf(y=%8on,y);printf(y=%#8on,y);42.指出下面不正确的赋值语句()A.a+;B.a=b;C.a+=b D.a=1,b=1 43.若有以下定义,则正确的赋值语句是()int a,b;
12、float x;A.a=1,b=2 B.b+;c.a=b=5 D.b=int(x)44.设有说明:double y=0.5,z=1.5;int x=10;则能够正确使用 C 语言库函数的赋值语句是()A.z=exp(y)+fabs(x);B.y=log10(y)+pow(y);C.z=sqrt(y-z);D.x=(int)(atan2(double)x,y)+exp(y-0.2);45.下列数据中,不属于常量的是()A123L B.?012 C.12.3L D12.3L 46.设字符变量 x 的值是 064,表达式 xx2&x的值是()A.0333 B.333 C.0 x333 D.020 4
13、7.下列表达式中,不属于逗号表达式的是()A.a=b,c B.a,b=c C.a=(b,c)D.a,(b=c)二、多项选择题1.以下叙述正确的是()A.函数是 C 程序的基本单位B.C 程序的每行只能写一个语句C.C 语言本身没有输入输出语句D.在 C 程序中,注释说明只能位于一条语句的后面E.在对 C 程序进行编译过程,可发现注释中的拼写错误2.以下叙述不正确的是()A.在 C 程序中,SUM 和 sum是两个不同的变量名B.在 C 程序中,无论是整数还是实数,都能被准确无误的表示C.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值D.若 a 是实型变量,C 程
14、序中允许赋值a=10,因此实型变量中允许存放整型数E.在 C 程序中,是只能用于整型数运算的运算符3.已知 ch是字符型变量,下面正确的赋值语句是()A.ch=y+9;B.ch=7+9 C.ch=7+9 D.ch=xff E.ch=08三、填空题1.C 语 言 的 双 重 性 意 指 它 具 有 _的 功 能,又 具 有_ 的许多功能。2.C 语 言 程 序 的 三 种 基 本结 构 是 _、_、_。3.C 语 句 分 为 _语 句、_语 句、_语 句、_ 语句、和 _语句五大类。4.一个 C 程序中至少应包含 _函数,无论该函数在程序中的位臵如何,C 程序总是从该函数开始。5.在 C 语言中
15、,输入操作是由库函数_完成的,输出是由库函数_完成的。6.C 语言规定,标识符只能由 _ 三种字符组成,且第一个字符必须为 _。7.C 语 言规 定,对 所 有用 到的 变 量要 先定义,后 使用 。这样 做 有_、_和 _ 三 大 好处。8.C 语言的实型可分为_型(其类型说明符是_)和_型(其类型说明符是 _);整型变量的类型说明符有 _(整型)、_(短整型)和 _(长整型)。9.若有以下定义,则计算表达式y+=y-=m*=y 后 y 的值是 _。Int m=5,y=2;10.若 a是 int型变量时,则表达式(a=4*5,a*2),a+6 的值为 _。11.若有定义:int b=7;fl
16、oat a=2.5,c=4.7;则表达式 a+(int)(b/3*(int)(a+c)/2)%4的值为_。12.若所有变量均为整型,则表达式(a=2,b=5,a+,b+,a+b)的值为 _。13.若 有 定 义:int e=1,f=4,g=2;float m=10.5,n=4.0,k;则 计 算 赋 值 表 达 式k=(e+f)/g+sqrt(double)n)*1.2/g+m 后,k 的值为 _。14.表达式 8/4*(int)2.5/(int)(1.24*(3.7+2.3)值的数据类型为 _。15.下列语句执行后的输出结果是_。int a=3;printf(%d%8.5s%8s,a,Thr
17、ee Third,third);16.以下程序的输出结果为 _。main()short I;I=-4;printf(n,I,I,I,I);17.以下程序的输出结果为 _。main()char c=x;printf(c:dec=%d,n,c,c,c,c);18.以下程序的输出结果为 _ _ main()int a=1,b=2,c=3;+a;b+=+c;int b=4,c=5;c=b*c;a+=b+=c;printf(a1=%d,b1=%d,c1=%dn,a,b,c);printf(a2=%d,b2=%d,c2=%dn,a,b,c);19.假设变量 a,b 和 c 均为整型,以下语句借助中间变量t
18、 把 a,b和 c 的值进行交换,即把 b 中的值给 a,把 c 中的值给 b,把 a中的值给 c。请填空:_;a=b;b=c;_;20.若 变 量a 和b均 为int型 变 量,则 以 下 语 句 的 功 能 是_。a+=b;b=a-b;a-=b;21.以下 printf 中的-号的作用是 _。该程序的输出结果是:#include main()int x=12;double a=3.1415926;printf(%6d#n,x);printf(%n,x);printf(%14.101f#n,a);printf(%n,a);22.给下列程序加上必要的注释。main()float f;int d
19、1,d2,d3;printf(Enter a number:);scanf(%f,&f);printf(Enter 3 interger:);scanf(%d-%d-%d,&d1,&d2,&d3);/*输入格式是 _*/printf(f=%.2fn,f);/*输出格式是 _*/printf(d1=%-8dd2=%-7dd3=%-6d,d1,d2,d3);/*输出格式是 _*/printf(%10s,End);23.请给下列程序补上必要的语句和注释。#define PI 3.1416 main()float r,s;printf(Enter a number_r:;_;/*_*/s=PI*r*r
20、;/*_*/_;/*_*/C 语言习题集第一、二章答案1.B 2.C 3.A 4.C 5.C 6.B 7.A 8.C 9.A 10.C 11.A 12.A 13.C 14.C 15.B 16.C 17.D 18.D 19.B 20.C 21.D 22.C 23.A 24.B 25.A 26.a=28,b=4,c=5 27.C,B 28.C 29.D 30.D 31.B 32.A 33.D 34.BB 35.D 36.D 37.A 38.D 39.C 40.C、B 41见下面42.B 43.B 44.A/D 45 D 46 A 47C 二、多项选择题1.AC 2.BC 3.BCDE 注:1.17
21、 题改为 D)fabs(pow(x,3.0)+log10(x)2.37 输入形式:enter x,y:2 3.4 输出形式上x+y=5.40 3.41 题运行结果:y=4630 y=4630(空 5 格)y=04630 三、填空题:1 高级语言、低级语言2 顺序、分支、循环3 控制、函数调用、表达式、空、复合。4 main()5 scanf(),printf()6 字母,数字,下划线,字母、保证程序中变量名使用正确;编译时为其分配相应单元;检查该变量所进行运算是否合法、单精度、float;双精度、double;int、short、long 9、-16 10、26 11、5.5 12、9 13、
22、13.7 14、int 15 3 Three third 16i:dec=-4,oct=177774,hex=fffc,unsigned=65532 17c:dec=120,oct=170,hex=78,ASCII=x 18.t=a c=t19.换两数第 4 章 程序控制一、填空题1.C 语 言 中 可 以 用 来 实 现 循 环 的 四 种 语 句 是 _、_、_、_。2.C 语 言 程 序 的 三 种 基 本 结 构 是 _、_、_。3.C 语言程序的三种逻辑运算符是_、_、_。为了避免嵌套的条件语句if else 的二义性,C 语言规定 else与_if配对。4.在 C 语言中,&作为双
23、目运算符表示的是 _而单目运算符表示的是_。5.C 语言没有逻辑数据,在给出逻辑运算结果时,以_代表 真,以_代表 假,但在判断一个量是否为真时,以_代表 真,以_代表 假。6.条件2x4或x-20 的C语言表达式是_。7.执行下列语句后,a,b,c值依次为 _、_、_。int x=10,y=9;int a,b,c;a=(-x=y+)?x:+y;b=x+;c=y;8.设 a=3,b=4,c=5,写出下列各逻辑表达式的结果 a|b+c&b=c 结果为 _ !(x=a)&(y=b)&0 结果为 _ !(a+b)+c-1&b+c/2 结果为 _ 9.设 I 为整型变量,则for(i=2;i=0;)p
24、rintf(%d,i-);循环_次。10.判断 char型变量 c1 是否为大写字母的正确表达式_。11.设 int x=0,y=1;则表达式 x+*x-!=y?8-4:y 的值为 _。12.设有变量定义:int a=5,c=4;则(-a=+c)?a:c+的值是_,此时 c的存储值为 _。13.关于运算符优先顺序的描述中正确的是_。二、选择题1.若要求在 if 后面一对圆括号中表示a不等于 0的关系,则能正确表示这一关系的表示式为()A.a0 B.!a C.a=0 D.a 2.C 语言中 while 与 dowhile 语句的区别是()A.dowhile 的循环体至少无条件执行一次B.dowh
25、ile 允许从外部转到循环体内C.dowhile 的循环体不能是复合语句D.while 的循环控制条件比dowhile 的循环控制条件严格3.以下的 for 循环()for(x=0,y=0;(y!=123)&(x4);x+)A.循环 3 次B.执行 4 次C.循环次数不定D.无限循环4.若 w=1,x=2,y=3,z=4 则条件表达式 wx?w:yy&x!=y);B.if(x=y)x+=y;C.if(x!=y)scanf(%d,&x)else scanf(%d,&y);D.if(xy)(x+;y+;)7.while(!x)中的(!x)与下面条件()等价A.(x!=1)B.(x=1)C.(x=0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 练习题
限制150内