大一C语言习题练习及答案.docx

上传人(卖家):最好的沉淀 文档编号:4387727 上传时间:2022-12-05 格式:DOCX 页数:137 大小:223.14KB
下载 相关 举报
大一C语言习题练习及答案.docx_第1页
第1页 / 共137页
大一C语言习题练习及答案.docx_第2页
第2页 / 共137页
大一C语言习题练习及答案.docx_第3页
第3页 / 共137页
大一C语言习题练习及答案.docx_第4页
第4页 / 共137页
大一C语言习题练习及答案.docx_第5页
第5页 / 共137页
点击查看更多>>
资源描述

1、第一章 程序设计与C语言1.1 选择题考点:标识符的命名规则(1) 只能由字母、数字、下划线构成(2) 数字不能作为标识符的开头(3) 关键字不能作为标识符选项A中的“-” ,选项B中“”与“”不满足(1);选项D中的int为关键字,不满足(3)1.下列正确的标识符是(C)。A.-a1 B.ai C.a2_i D.int t2.下列C语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);3.下列四组选项中,正确的C语言标识符是( C )。A)

2、%x B) a+b C) a123 D) 123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)4.下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、Iam one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My-book line# His.age 选项B中的“”,”$” ,选项D中“”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)知识点:简单C语言程序的构成和格式5.在一个C程序中_B_。A、main函数必须出

3、现在所有函数之前 B、main函数可以在任何地方出现C、main函数必须出现在所有函数之后 D、main函数必须出现在固定位置6.以下说法中正确的是_D_。A、#define和printf都是C语句 B、#define是C语句,而printf不是C、printf是C语句,但#define不是 D、#define和printf都不是C语句7.一个C程序的执行是从( A )。A本程序的main函数开始,到main函数结束B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C本程序的main函数开始,到本程序文件的最后一个函数结束D本程序文件的第一个函数开始,到本程序main函数结束8.在

4、C 语言中,每个语句必须以( D )结束。A. 回车符 B. 冒号 C. 逗号 D. 分号9.C 语言规定:在一个源程序中,main函数的位置( C )。A. 必须在最开始 B. 必须在系统调用的库函数的后面C. 可以任意 D. 必须在最后10.一个C 语言程序是由( B )。A. 一个主程序和若干子程序组成 B. 函数组成C. 若干过程组成 D. 若干子程序组成11.下列说法中错误的是( D )。A. 主函数可以分为两个部分:主函数说明部分和主函数体B. 主函数可以调用任何非主函数的其他函数C. 任何非主函数可以调用其他任何非主函数D. 程序可以从任何非主函数开始执行12.用 C 语言编写的

5、源文件经过编译,若没有产生编译错误,则系统将( C )。A. 生成可执行目标文件 B. 生成目标文件C. 输出运行结果 D. 自动保存源文件1.2 填空题1、C 语言只有 32 个关键字和 9 种控制语句。2、每个源程序有且只有一个 main 函数,系统总是从该函数开始执行C语言程序。3、C 语言程序的注释可以出现在程序中的任何地方,它总是以 * 符号作为开始标记,以 */ 符号作为结束标记。4、C 语言中,输入操作是由库函数scanf完成的,输出操作是由库函数 printf 完成的。5、系统默认的C 语言源程序文件的扩展名是 .c ,经过编译后生成的目标文件的扩展名是 .obj ,经过连接后

6、生成的可执行文件的扩展名是 .exe 。6、C 语言的标识符只能由字母、数字和下划线三种字符组成。第二章 CH2 数据的存储与运算2.1 选择题1.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型2.在C语言程序中,表达式5%2的结果是 C 。 A)2.5 B)2 C)1 D)3%为求余运算符,该运算符只能对整型数据进行运算。且符号与被模数相同。5%2=1; 5%(-2)=1;(-5)%2=-1;(-5)%(-2)=-1;/为求商运算符,该运算符能够对整型、字符、浮点等类型的数据进行运算,5/2=23

7、.设int a=12,则执行完语句a+=a-=a*a后,a的值是_D_。A、552 B、264 C、144 D、-2644.以下变量x、y、z均为double类型且已正确赋值,不能正确表示数字式子x/(y*z)的C语言表达式是_A_。A、x/y*z B、x*(1/(y*z) C、x/y*1/z D、x/y/z5.若有定义:int a=8,b=5,c;,执行语句c=a/b+0.4;后,c的值是_B_。A、1.4 B、1 C、2.0 D、26.以下选项中,不能作为合法常量的是_B_。A、1.234e04 B、1.234e0.4 C、1.234e+4 D、1.234e07.以下符合C语言语法的实型常

8、量是_C_。A、1.2E0.5 B、3.14159E C、.5E-3 D、E158.表达式3.6-5/2+1.2+5%2的值是_D_。A、4.3 B、4.8 C、3.3 D、3.89.下列定义变量的语句中错误的是_D_。A、int _int B、double int _ C、char For D、float US$ 10.以下不合法的用户标识符是_C_。A、j2_KEY B、Double C、4d D、_8_11.以下4组用户定义标识符中,全部合法的一组是_A_。A、_main enclude sin B、If -max turboC、txt REAL 3COM D、int k_2 _001

9、?12.以下定义语句中正确的是_C_。A、char a=A b=B; B、float a=b=10.0;(正解a=10.0 b=10.0)C、int a=10,*b=&a; D、float *a,b=&a;?13.以下不能定义为用户标识符的是_D_。A、scanf B、Void C、_3com_ D、int14.以下有4组用户标识符,其中合法的一组是_C_。A、For -sub Case B、4d DO Size C、f2_G3 IF abc D、WORD Void define15.C语言中最简单的数据类型包括_B_。A、整型、实型、逻辑型 B、整型、实型、字符型C、整型、字符型、逻辑型 D

10、、整型、实型、逻辑型、字符型16.下列选项中,合法的C语言关键字是_D_。A、VAR B、cher C、integer D、default17.以下不能定义为用户标识符的是_D_。A、Main B、_0 C、_int D、sizeof18下列叙述中正确的是_D_。A、C语言中既有逻辑类型也有集合类型 B、C语言中没有逻辑类型但有集合类型C、C语言中有逻辑类型但没有集合类型 D、C语言中既没有逻辑类型也没有集合类型19.设int a=12,则执行完语句a+=a-=a*a后,a的值是_D_。A、552 B、264 C、144 D、-26420.以下变量x、y、z均为double类型且已正确赋值,不

11、能正确表示数字式子x/(y*z)的C语言表达式是_A_。A、x/y*z B、x*(1/(y*z) C、x/y*1/z D、x/y/z21.若有定义:int a=8,b=5,c;,执行语句c=a/b+0.4;后,c的值是_B_。A、1.4 B、1 C、2.0 D、222.设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式 1/2(a+b)h) 计算结果不相符的是_B_。A、(a+b)*h/2 B、(1/2)*(a+b)*h C、(a+b)*h*1/2 D、h/2*(a+b)23.假定x和y为double型,表达式x=2,y=x+3/2的值是_D_。A、3.500000 B、

12、3 C、2.000000 D、3.00000024.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是_C_。A、1 B、2 C、2.000000 D、2.50000025.若有以下程序段int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是_A_。A、0 B、0.5 C、1 D、226.设有int x=11;则表达式(x+ * 1/3)的值是_A_。?A、3 B、4 C、11 D、1227.下列程序的输出结果是_C_。main()double d=3.2; int x,y;x=1.2;y=(x+3.8)/5.0;printf(%d n,d*y)

13、;A、3 B、3.2 C、0 D、3.0728.请读程序片段:int i=65536;printf(%dn,i);上面程序片段的输出结果是_B_。A、65536 B、0 C、有语法错误,无输出结果 D、-129.若有以下定义和语句:int u=010,v=0x10,w=10;printf(%d,%d,%dn,u,v,w);则输出结果是: _A_。A、8,16,10 B、10,10,10 C、8,8,10 D、8,10,1030.在C语言中,不正确的int类型的常数是_A_。A、32768 B、0 C、037 D、0xAF31.以下程序的输出结果是_D_。main( )int k=17;prin

14、tf(%d,%o,%x n,k,k,k);A、17,021,0x11 B、17,17,17 C、17,0x11,021 D、17,21,1132.下面程序的输出是_C_。main()unsigned a=32768;printf(a=%dn,a);A、a=32768 B、a=32767C、a=-32768 D、a=-133.在C语言中,合法的长整型常数是_A_。A、0L B、4962710 C、324562& D、216D34.C语言中运算对象必须是整型的运算符是_A_。A、%= B、/ C、= D、5) printf(%dn,x);else printf(%dn,x-);则输出是_B_。A、

15、7 B、6 C、5 D、438.有以下程序main ()char a1=M, a2=m;printf(%cn, (a1,a2);以下叙述中正确的是_B_。A、程序输出大写字母M B、程序输出小写字母mC、格式说明符不足,编译出错 D、程序运行时产生出错信息39.以下程序的输出结果是 _B_。main()int a;printf(%dn,(a=3*5,a*4,a+5);A、65 B、20 C、15 D、1040.设有如下程序段int x=2002,y=2003;printf(%dn,(x,y);则以下叙述中正确的是_D_。A、输出语句中格式说明符的个数少于输出项的个数,不能正确输出B、运行时产生

16、错误信息C、输出值为2002D、输出值为200341有以下程序main()int x,y,z;x=y=1;z=x+,y+,+y;printf(%d,%d,%dn,x,y,z);程序运行后的输出结果是_C_。A、2,3,3 B、2,3,2 C、2,3,1 D、2,2,142.设有以下定义int a=0; double b=1.25;char c=A;#define d 2则下面语句中错误的是_D_。A、a+; B、b+; C、c+; D、d+;43.以下程序的输出结果是_D_。main()int x=10,y=10;printf(%d %dn,x-,-y);A、10 10 B、99 C、9 10

17、 D、10 944.若x和y都是int型变量,x=100、y=200,且有下面的程序片段printf(%d,(x,y);上面程序片段的输出结果是_A_。A、200 B、100 C、100 200 D、输则格式符不够, 输出不确定的值45.设有如下定义:int x=10,y=3,z;则语句printf(%dn,z=(x%y,x/y);的输出结果是_D_。A、1 B、0 C、4 D、346.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是_A_。main( )int x;scanf(%d,&x);if(x+ 5)printf(%d,x);elseprintf(%dn,x-); A、7和

18、5 B、6和3 C、7和 D、6和447.若t为double类型,表达式t=1,t+5,t+的值是_D_。A、1 B、6.0 C、2.0 D、1.048.以下程序的输出结果是_A_。#includemain()int i=10,j=10;printf(%d,%dn,+i,j-);A、11,10 B、9,10 C、010,9 D、10,949.有以下程序main()int y=10;while(y-);printf(y=%dn,y);程序执行后的输出结果是_B_。A、y=0 B、y=-1 C、y=1 D、while构成无限循环50.下列程序的输出结果是( B)。main( ) int a=7,b

19、=5; printf(%dn,b=b/a);A、 5 B、 1 C、 0 D、不确定值51.以下选项中,不正确的 C 语言浮点型常量是( C )。A160 B. 0.12 C. 2e4.2 D. 0.052.以下选项中,( D )是不正确的 C 语言字符型常量。A. a B. x41 C. 101 D. a53.在 C 语言中,字符型数据在计算机内存中,以字符的( C )形式存储。A. 原码 B. 反码 C. ASCII 码 D. BCD码54.若x、i、j和k都是int型变量,则计算下面表达式后,x的值是( C )。x=(i=4,j=16,k=32)A. 4 B. 16 C.32 D.525

20、5.算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为( B )。A. 算术运算、赋值运算、关系运算 B. 算术运算、关系运算、赋值运算C. 关系运算、赋值运算、算术运算 D. 关系运算、算术运算、赋值运算56.若有代数式 ,则不正确的C语言表达式是( C )。A.a/b/c*e*3 B. 3*a*e/b/c C.3*a*e/b*c D. a*e/c/b*357.表达式!x|a=b 等效于( D )。A. !(x|a)=b) B. !(x|y)=b C. !(x|(a=b) D. (!x)|(a=b)58.设整型变量 m,n,a,b,c,d 均为1,执行 (m=ab)&(n=cd)

21、后, m,n 的值是( A)。A. 0,0 B. 0,1 C. 1,0 D. 1,159.设有语句 int a=3;,则执行了语句 a+=a-=a*=a;后,变量 a 的值是( B )。A. 3 B. 0 C. 9 D. -1260.在以下一组运算符中,优先级最低的运算符是( D )。A. * B. != C. + D. = 61.设整型变量 i 值为2,表达式(+i)+(+i)+(+i)的结果是( B )。A. 6 B. 12 C. 15 D. 表达式出错62.若已定义 x 和 y为double 类型,则表达式 x=1,y=x+3/2 的值是( C )。A. 1 B. 2 C. 2.0 D.

22、 2.563.sizeof (double)的结果值是( A )。A. 8 B. 4 C. 2 D. 出错64.设a=1,b=2,c=3,d=4,则表达式:ab? a : cd? a : d的结果为( D )。A. 4 B. 3 C. 2 D. 165.设a 为整型变量,不能正确表达数学关系:10a15的 C 语言表达式是( A )。A. 10a10 & a15 D. !(a=15)66.设 f是实型变量,下列表达式中不是逗号表达式的是( D )。A. f= 3.2, 1.0 B. f0, f0 D. f=(3.2, 1.0) 67.表达式18/4*sqrt(4.0)/8值的数据类型是( C

23、)。A. int B. float C. double D. 不确定68.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句C2=A+6-3;后c2中的值是( A )。A. D B. 68 C. 不确定的值 D. C69.以下用户标识符中,合法的是( B )。A. int B. nit C. 123 D. a+b70.C 语言中,要求运算对象只能为整数的运算符是( A )。A. % B. / C. D. *71.若有说明语句:char c=72;则变量c在内存占用的字节数是( A )。A. 1 B. 2 C. 3 D. 472.字符串ABC在内存占用的字节数是( B )。A.

24、3 B. 4 C. 6 D. 873.要为字符型变量 a赋初值,下列语句中哪一个是正确的( B )。A. char a=3; B. char a=3; C. char a=%; D. char a=*;74.下列不正确的转义字符是( C )。A. B. C. 074 D. 02.2 填空题1、C 语言中的逻辑值“真”是用 1 表示的,逻辑值“假”是用 0 表示的。2、若x和n都是int型变量,且x的初值为12,n的初值为5,则计算表达式x%=(n%=2)后x的值为 0 。3、设 c=w,a=1,b=2,d=-5, 则表达式 x+1c, y!=c+2, -a-5*b=d+1, b=a=2的值分别

25、为 1 、 0 、 1 、 1 。4、设 float x=2.5,y=4.7; int a=7;,表达式 x+a%3*(int)(x+y)%2/4的值为 2.5 。5、判断变量 a、b 的值均不为 0 的逻辑表达式为a!=0&b!=0 。6、求解赋值表达式 a=(b=10)%(c=6),表达式值、a、b、c 的值依次为 4,4,10,6 。7、求解逗号表达式 x=a=3,6*a 后,表达式值、x、a 的值依次为18,3,3。8、数学式a/(b*c)的 C 语言表达式 a/b/c 。9、若有语句int i=-19, j=i%4;printf(%dn,j);则输出结果是_。答案:-310、设y 是

26、int型变量,请写出判断y为奇数的关系表达式_ y%2_。第三章 CH3 顺序程序设计3.1 选择题1.如果int a=3,b=4;则条件表达式ab? a:b的值是_A_。A) 3 B) 4 C) 0 D) 1表达式1?表达式2:表达式3先计算表达式1,若表达式1成立, 则选择计算表达式2,并表达式2的值作为整个大表达式的值;若表达式1不成立,则选择计算表达式3,并将表达式3的值作为整个大表达式的值此题中的ab相当于表达式1,a相当于表达式2,b相当于表达式3.a为3,b为4。ab表达式1成立,因此计算表达式2,并将表达式2的值即a中的值,并作为整个表达式的值,因此整个表达式的值为32.若in

27、t x=2,y=3,z=4 则表达式xz?y:z的结果是( B ). A)4 B)3 C)2 D)0 E)13.C语言中,关系表达式和逻辑表达式的值是( B ) 。A) 0 B) 0或1 C) 1 D) T或F4.下面( D )表达式的值为4. A) 11/3 B) 11.0/3 C) (float)11/3 D) (int)(11.0/3+0.5)(1)相同数据类型的元素进行数学运算(+、-、*、/)得到结果还保持原数据类型。(2)不同数据类型的元素进行数学运算,先要统一数据类型,统一的标准是低精度类型转换为高精度的数据类型。选项A,11与3为两个整数,11/3结果的数据类型也应为整数,因此

28、将3.666666的小数部分全部舍掉,仅保留整数,因此11/3=3.选项B,11.0为实数,3为整数,因此首先要统一数据类型,将整型数据3转换为3.0,转换后数据类型统一为实型数据,选项B变为11.0/3.0,结果的数据类型也应为实型数据,因此选项B 11.0 /3=3.666666选项C,先将整数11强制类型转换,转换为实型11.0,因此选项C变为11.0/3,其后计算过程、结果与选项B同选项D,首先计算11.0/3,其计算过程、结果与选项B同,得到3.666666;再计算3.666666+0.5=4.166666,最后将4.166666强制类型转换为整型,即将其小数部分全部舍掉,结果为45

29、.设整型变量 a=2,则执行下列语句后,浮点型变量b的值不为0.5的是( B)A.b=1.0/a B.b=(float)(1/a) C.b=1/(float)a D.b=1/(a*1.0)6.若“int n; float f=13.8;”,则执行“n=(int)f%3”后,n的值是(A)A.1 B.4 C.4.333333 D.4.6“(int)f“表示将f中的值强制类型转换为整型,即将13.8的小数部分舍掉,转换为13;然后计算13%3,结果为1,再将结果赋给变量n,因此n的值为17.有如下程序main()int a; char c=10;float f=100.0; double x;a=

30、f/=c*=(x=6.5);printf(%d %d %3.1f%3.1fn,a,c,f,x);程序运行后输出结果是_B_。A、1 65 1 6.5 B、1 65 1.5 6.5 C、1 65 1.0 6.5 D、2 65 1.5 6.58.若变量a、i已正确定义,且i已正确赋值,合法的语句是_B_。A、a=1 B、+i; C、a=a+=5; D、a=int(i);9.若变量已正确定义并赋值,下面符合C语言语法的表达式是_B_。A、a:=b+1 B、a=b=c+2 C、int 18.5%3 D、a=a+7=c+b10.设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位

31、,并将第三位四舍五入的是_C_。A、x=x*100+0.5/100.0 B、x=(x*100+0.5)/100.0C、x=(int)(x*100+0.5)/100.0? D、x=(x/100+0.5)*100.011.若k是int型变量,且有下面的程序片段k=-3if(k0); D、if(b=0) m=1;n=2;?13.有以下程序main()int a=0,b=0;a=10; /* 给a赋值 */b=20; /* 给b赋值 */printf(a+b=%dn,a+b);程序运行后的输出结果是_B_。A、a+b=10 B、a+b=30 C、30 D、出错14.当c的值不为0时,在下列选项中能正确

32、将c的值赋给变量a、b的是_C_。A、c=b=a; B、(a=c)(b=c); C、(a=c)&(b=c); D、a=c=b;15.以下选项中非法的表达式是_D_。A、0=x100 B、i=j=0 C、(char)(65+3) D、x+1=x+116.以下程序的输出结果是_B_。#include 7main()int a,b,d=241;a=d/100%9;b=(-1)&(-1);printf(%d,%dn,a,b);?A、6,1 B、2,1 C、6,0 D、2,017.以下循环体的执行次数是_C_。main()int i,j;for (i=0,j=1; i=j+1;i+=2,j-)print

33、f(%d n,i);A、3 B、2 C、1 D、0答案:C18.有以下定义语句double a,b; int w; long c;若各变量已正确赋值,则下列选项中正确的表达式是_C_。A、a=a+b=b+ B、w%(int)a+b) C、(c+w)%(int)a D、w=a=b;19.以下能正确计算定义且赋初值的语句是_B_。A、int n1=n2=10; B、char c=32;C、fioat f=f+1.1; D、double x=12.3E2.520.以下合法的赋值语句是_B_。A、x=y=100 B、d-; C、x+y; D、c=int(a+b);21.下列语句中符合C语言语法的赋值语

34、句是_D_。A、a=7+b+c=a+7; B、a=7+b+=a+7;C、a=7+b,b+,a+7 D、a=7+b,c=a+7;22.请选出合法的C语言赋值语句_B_。A、a=b=58 B、i+; C、a=58,b=58 D、k=int(a+b);23.下面程序的输出是_C_。main() int x=10,y=3;printf(%dn,y=x/y);A、0 B、1 C、3 D、不确定的值24.已知字母A的ASCII码为十进制的65,下面程序的输出是_A_。main()char ch1,ch2;ch1=A+5-3;ch2=A+6-3;printf(%d,%cn,ch1,ch2);A、67,D B

35、、B,C C、C,D D、不确定的值25.下列程序的运行结果是_B_。#include main() int a=2,c=5;printf(a=%d,b=%d n,a,c);A、a=%2,b=%5 B、a=2,b=5 C、a=d,b=d D、a=%d,b=5d26.以下程序的输出结果是_D_。#include main() int a=2,c=5;printf(a=%d,b=%dn,a,c);A、a=%2,b=%5 B、a=2,b=5 C、a=%d,b=%d D、a=%d,b=%d27.有以下程序main( ) int x=102,y=012;printf(%2d,%2dn,x,y); 执行后输出结果是_C_。A、10,01 B、02,12 C、102,10 D、02,1028.有以下程序main() int a=666,b=888;printf(%dn,a,b);程序运行后的输出结果是_B_。A、错误信息 B、666 C、888 D、666,88829.有以下程序#include main() char c1=1,c2=2;c1=getchar(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 待归类文档
版权提示 | 免责声明

1,本文(大一C语言习题练习及答案.docx)为本站会员(最好的沉淀)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|