大一c语言习题练习及答案Word格式文档下载.docx
《大一c语言习题练习及答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《大一c语言习题练习及答案Word格式文档下载.docx(149页珍藏版)》请在冰豆网上搜索。
C.可以任意D.必须在最后
10.一个C语言程序是由(B)。
A.一个主程序和若干子程序组成B.函数组成
C.若干过程组成D.若干子程序组成
11.下列说法中错误的是(D)。
A.主函数可以分为两个部分:
主函数说明部分和主函数体
B.主函数可以调用任何非主函数的其他函数
C.任何非主函数可以调用其他任何非主函数
D.程序可以从任何非主函数开始执行
12.用C语言编写的源文件经过编译,若没有产生编译错误,则系统将(C)。
A.生成可执行目标文件B.生成目标文件
C.输出运行结果D.自动保存源文件
1.2填空题
1、C语言只有32个关键字和9种控制语句。
2、每个源程序有且只有一个main函数,系统总是从该函数开始执行C语言程序。
3、C语言程序的注释可以出现在程序中的任何地方,它总是以\*符号作为开始标记,以*/符号作为结束标记。
4、C语言中,输入操作是由库函数scanf完成的,输出操作是由库函数printf完成的。
5、系统默认的C语言源程序文件的扩展名是.c,经过编译后生成的目标文件的扩展名是.obj,经过连接后生成的可执行文件的扩展名是.exe。
6、C语言的标识符只能由字母、数字和下划线三种字符组成。
第二章CH2数据的存储与运算
2.1选择题
1.C语言中的简单数据类型包括(D)。
A、整型、实型、逻辑型B、整型、实型、逻辑型、字符型
C、整型、字符型、逻辑型D、整型、实型、字符型
2.在C语言程序中,表达式5%2的结果是C。
A)2.5B)2C)1D)3
%为求余运算符,该运算符只能对整型数据进行运算。
且符号与被模数相同。
5%2=1;
5%(-2)=1;
(-5)%2=-1;
(-5)%(-2)=-1;
/为求商运算符,该运算符能够对整型、字符、浮点等类型的数据进行运算,5/2=2
3.设inta=12,则执行完语句a+=a-=a*a后,a的值是__D____。
A、552B、264C、144D、-264
4.以下变量x、y、z均为double类型且已正确赋值,不能正确表示数字式子x/(y*z)的C语言表达式是___A___。
A、x/y*zB、x*(1/(y*z))C、x/y*1/zD、x/y/z
5.若有定义:
inta=8,b=5,c;
执行语句c=a/b+0.4;
后,c的值是__B____。
A、1.4B、1C、2.0D、2
6.以下选项中,不能作为合法常量的是__B____。
A、1.234e04B、1.234e0.4C、1.234e+4D、1.234e0
7.以下符合C语言语法的实型常量是___C___。
A、1.2E0.5B、3.14159EC、.5E-3D、E15
8.表达式3.6-5/2+1.2+5%2的值是__D____。
A、4.3B、4.8C、3.3D、3.8
9.下列定义变量的语句中错误的是__D____。
A、int_intB、doubleint_C、charForD、floatUS$
10.以下不合法的用户标识符是__C____。
A、j2_KEYB、DoubleC、4dD、_8_
11.以下4组用户定义标识符中,全部合法的一组是__A____。
A、_mainencludesinB、If-maxturbo
C、txtREAL3COMD、intk_2_001
12.以下定义语句中正确的是__C____。
A、chara='
A'
b='
B'
;
B、floata=b=10.0;
(正解a=10.0b=10.0)
C、inta=10,*b=&
a;
D、float*a,b=&
13.以下不能定义为用户标识符的是__D____。
A、scanfB、VoidC、_3com_D、int
14.以下有4组用户标识符,其中合法的一组是___C___。
A、For-subCaseB、4dDOSizeC、f2_G3IFabcD、WORDVoiddefine
15.C语言中最简单的数据类型包括_B_____。
A、整型、实型、逻辑型B、整型、实型、字符型
C、整型、字符型、逻辑型D、整型、实型、逻辑型、字符型
16.下列选项中,合法的C语言关键字是__D____。
A、VARB、cherC、integerD、default
17.以下不能定义为用户标识符的是__D____。
A、MainB、_0C、_intD、sizeof
18下列叙述中正确的是_D_____。
A、C语言中既有逻辑类型也有集合类型B、C语言中没有逻辑类型但有集合类型
C、C语言中有逻辑类型但没有集合类型D、C语言中既没有逻辑类型也没有集合类型
19.设inta=12,则执行完语句a+=a-=a*a后,a的值是__D____。
A、552B、264C、144D、-264
20.以下变量x、y、z均为double类型且已正确赋值,不能正确表示数字式子x/(y*z)的C语言表达式是___A___。
A、x/y*zB、x*(1/(y*z))C、x/y*1/zD、x/y/z
21.若有定义:
A、1.4B、1C、2.0D、2
22.设有定义:
floata=2,b=4,h=3;
以下C语言表达式与代数式1/2((a+b)h)计算结果不相符的是___B___。
A、(a+b)*h/2B、(1/2)*(a+b)*hC、(a+b)*h*1/2D、h/2*(a+b)
23.假定x和y为double型,表达式x=2,y=x+3/2的值是___D___。
A、3.500000B、3C、2.000000D、3.000000
24.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是___C___。
A、1B、2C、2.000000D、2.500000
25.若有以下程序段
intc1=1,c2=2,c3;
c3=1.0/c2*c1;
则执行后,c3中的值是___A___。
A、0B、0.5C、1D、2
26.设有intx=11;
则表达式(x++*1/3)的值是___A___。
?
A、3B、4C、11D、12
27.下列程序的输出结果是___C___。
main()
{
doubled=3.2;
intx,y;
x=1.2;
y=(x+3.8)/5.0;
printf("
%d\n"
d*y);
}
A、3B、3.2C、0D、3.07
28.请读程序片段:
inti=65536;
%d\n"
i);
上面程序片段的输出结果是___B___。
A、65536B、0C、有语法错误,无输出结果D、-1
29.若有以下定义和语句:
intu=010,v=0x10,w=10;
%d,%d,%d\n"
u,v,w);
则输出结果是:
__A____。
A、8,16,10B、10,10,10C、8,8,10D、8,10,10
30.在C语言中,不正确的int类型的常数是___A___。
A、32768B、0C、037D、0xAF
31.以下程序的输出结果是__D____。
main()
intk=17;
%d,%o,%x\n"
k,k,k);
A、17,021,0x11B、17,17,17C、17,0x11,021D、17,21,11
32.下面程序的输出是__C____。
unsigneda=32768;
a=%d\n"
a);
A、a=32768B、a=32767C、a=-32768D、a=-1
33.在C语言中,合法的长整型常数是___A___。
A、0LB、4962710C、324562&
D、216D
34.C语言中运算对象必须是整型的运算符是__A____。
A、%=B、/C、=D、<
=
35.以下选项中不属于C语言的类型名称是___D___。
A、signedshortintB、unsignedlongintC、unsignedintD、longshort
36.有以下程序
intm=0256,n=256;
%o%o\n"
m,n);
程序运行后的输出结果是___C___。
A、02560400B、0256256C、256400D、400400
37.若执下面程序时从键盘上输入5,
intx;
scanf("
%d"
&
x);
if(x++>
5)printf("
x);
elseprintf("
x--);
则输出是__B____。
A、7B、6C、5D、4
38.有以下程序
main()
chara1='
M'
a2='
m'
%c\n"
(a1,a2));
以下叙述中正确的是___B___。
A、程序输出大写字母MB、程序输出小写字母m
C、格式说明符不足,编译出错D、程序运行时产生出错信息
39.以下程序的输出结果是__B____。
inta;
(a=3*5,a*4,a+5));
A、65B、20C、15D、10
40.设有如下程序段
intx=2002,y=2003;
(x,y));
则以下叙述中正确的是__D____。
A、输出语句中格式说明符的个数少于输出项的个数,不能正确输出
B、运行时产生错误信息
C、输出值为2002
D、输出值为2003
41有以下程序
intx,y,z;
x=y=1;
z=x++,y++,++y;
x,y,z);
A、2,3,3B、2,3,2C、2,3,1D、2,2,1
42.设有以下定义
inta=0;
doubleb=1.25;
charc='
#defined2
则下面语句中错误的是__D____。
A、a++;
B、b++;
C、c++;
D、d++;
43.以下程序的输出结果是___D___。
intx=10,y=10;
%d%d\n"
x--,--y);
A、1010B、99C、910D、109
44.若x和y都是int型变量,x=100、y=200,且有下面的程序片段
上面程序片段的输出结果是___A___。
A、200B、100C、100200D、输则格式符不够,输出不确定的值
45.设有如下定义:
intx=10,y=3,z;
则语句
z=(x%y,x/y));
的输出结果是___D___。
A、1B、0C、4D、3
46.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是___A___。
if(x++>
5)
else
}
A、7和5B、6和3C、7和D、6和4
47.若t为double类型,表达式t=1,t+5,t++的值是___D___。
A、1B、6.0C、2.0D、1.0
48.以下程序的输出结果是__A____。
#include<
stdio.h>
inti=10,j=10;
%d,%d\n"
++i,j--);
A、11,10B、9,10C、010,9D、10,9
49.有以下程序
inty=10;
while(y--);
y=%d\n"
y);
程序执行后的输出结果是__B___。
A、y=0B、y=-1C、y=1D、while构成无限循环
50.下列程序的输出结果是(B)。
{inta=7,b=5;
b=b/a);
A、5B、1C、0D、不确定值
51.以下选项中,不正确的C语言浮点型常量是(C)。
A.160B.0.12C.2e4.2D.0.0
52.以下选项中,(D)是不正确的C语言字符型常量。
A.'
a'
B.'
\x41'
C.'
\101'
D."
a"
53.在C语言中,字符型数据在计算机内存中,以字符的(C)形式存储。
A.原码B.反码C.ASCII码D.BCD码
54.若x、i、j和k都是int型变量,则计算下面表达式后,x的值是(C)。
x=(i=4,j=16,k=32)
A.4B.16C.32D.52
55.算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为(B)。
A.算术运算、赋值运算、关系运算B.算术运算、关系运算、赋值运算
C.关系运算、赋值运算、算术运算D.关系运算、算术运算、赋值运算
56.若有代数式,则不正确的C语言表达式是(C)。
A.a/b/c*e*3B.3*a*e/b/c
C.3*a*e/b*cD.a*e/c/b*3
57.表达式!
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=a>
b)&
&
(n=c>
d)后,m,n的值是(A)。
A.0,0B.0,1C.1,0D.1,1
59.设有语句inta=3;
,则执行了语句a+=a-=a*=a;
后,变量a的值是(B)。
A.3B.0C.9D.-12
60.在以下一组运算符中,优先级最低的运算符是(D)。
A.*B.!
=C.+D.=
61.设整型变量i值为2,表达式(++i)+(++i)+(++i)的结果是(B)。
A.6B.12C.15D.表达式出错
62.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是(C)。
A.1B.2C.2.0D.2.5
63.sizeof(double)的结果值是(A)。
A.8B.4C.2D.出错
64.设a=1,b=2,c=3,d=4,则表达式:
a<
b?
a:
c<
d?
d的结果为(D)。
A.4B.3C.2D.1
65.设a为整型变量,不能正确表达数学关系:
10<
15的C语言表达式是(A)。
A.10<
15B.a==11||a==12||a==13||a==14
C.a>
10&
a<
15D.!
(a<
=10)&
!
(a>
=15)
66.设f是实型变量,下列表达式中不是逗号表达式的是(D)。
A.f=3.2,1.0B.f>
0,f<
10
C.f=2.0,f>
0D.f=(3.2,1.0)
67.表达式18/4*sqrt(4.0)/8值的数据类型是(C)。
A.intB.floatC.doubleD.不确定
68.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句
C2=’A’+’6’-‘3’;
后c2中的值是(A)。
A.DB.68C.不确定的值D.C
69.以下用户标识符中,合法的是(B)。
A.intB.nitC.123D.a+b
70.C语言中,要求运算对象只能为整数的运算符是(A)。
A.%B./C.>
D.*
71.若有说明语句:
\72'
;
则变量c在内存占用的字节数是(A)。
A.1B.2C.3D.4
72.字符串"
ABC"
在内存占用的字节数是(B)。
A.3B.4C.6D.8
73.要为字符型变量a赋初值,下列语句中哪一个是正确的(B)。
A.chara="
3"
B.chara=’3’;
C.chara=%;
D.chara=*;
74.下列不正确的转义字符是(C)。
A.\\B.\'
C.074D.\0
2.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'
+1>
c,'
y'
!
=c+2,-a-5*b<
=d+1,b==a=2的值分别为1、0、1、1。
4、设floatx=2.5,y=4.7;
inta=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、若有语句
inti=-19,j=i%4;
j);
则输出结果是______。
答案:
-3
10、设y是int型变量,请写出判断y为奇数的关系表达式_y%2_____。
第三章CH3顺序程序设计
3.1选择题
1.如果inta=3,b=4;
则条件表达式"
a:
b"
的值是__A__。
A)3B)4C)0D)1
表达式1?
表达式2:
表达式3
先计算表达式1,
若表达式1成立,则选择计算表达式2,并表达式2的值作为整个大表达式的值;
若表达式1不成立,则选择计算表达式3,并将表达式3的值作为整个大表达式的值
此题中的a<
b相当于表达式1,a相当于表达式2,b相当于表达式3.
a为3,b为4。
b表达式1成立,因此计算表达式2,并将表达式2的值即a中的值,并作为整个表达式的值,因此整个表达式的值为3
2.若intx=2,y=3,z=4则表达式x<
z?
y:
z的结果是(B).
A)4B)3C)2D)0E)1
3.C语言中,关系表达式和逻辑表达式的值是(B)。
A)0B)0或1C)1D)‘T’或’F’
4.下面(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结果的数据类型也应为整数,因此将3.666666的小数部分全部舍掉,仅保留整数,因此11/3=3.
选项B,11.0为实数,3为整数,因此首先要统一数据类型,将整型数据3转换为3.0,转换后数据类型统一为实型数据,选项B变为11.0/3.0,结果的数据类型也应为实型数据,因此选项B11.0/3=3.666666
选项C,先将整数11强制类型转换,转换为实型11.0,因此选项C变为11.0/3,其后计算过程、结果与选项B同
选项D,首先计算11.0/3,其计算过程、结果与选项B同,得到3.666