吉林大学C语言习题1汇编Word文档格式.docx
《吉林大学C语言习题1汇编Word文档格式.docx》由会员分享,可在线阅读,更多相关《吉林大学C语言习题1汇编Word文档格式.docx(30页珍藏版)》请在冰豆网上搜索。
4.short类型的数据长度为2个字节,则unsignedshort类型数据的取值范围是(B)。
A.0至255B.0~65535C.-32768~32767D.-256~255
5.下面4个选项中,均是合法转义字符的选项是(A)。
A.'
\'
'
,'
\\'
\n'
B.'
\017'
C.'
\018'
\f'
xab'
D.'
\\0,'
101'
x1f
6.在C语言中,数字029是一个(D)。
A.八进制数B.十六进制数C.十进制数D.非法数
.下列可以正确表示字符型常数的是(B)。
A."
a"
B.'
\t'
C."
\n"
D.297
8.以下(C)是错误的转义字符。
C.'
\81'
D.'
\0'
9.C语言中short类型的变量a的值为-8,则a在内存中的存储形式是(A)。
A.1111111111111000B.1000000000001000
C.0000000000001000D.1111111111110111
10.将字符g赋给字符变量c,正确的表达式是(C)。
A.c="
g"
B.c=101C.c='
\147'
D.c='
0147'
11.字符串"
\\\22a,0\n"
的长度是(C)。
A.8B.7C.6D.5
12.为求出s=10!
的值,则变量s的类型应当为(C)。
A.shortB.unsignedshortC.longD.以上三种类型均可
13.已知:
unsignedshortx=65535;
,则执行以下语句输出是(D)。
printf("
%d\n"
x);
A.65535B.1C.无定值D.-1
14.下面4个选项中,均是合法整型常量的选项是(A)。
A.160,-0xffff,011B.-0xcdf,01ª
,0xe
C.-01,986,012,0668D.-0x48a,2e5,0x
15.下面4个选项中,均是不合法的整型常量的选项是(D)。
A.--0f1,-0xffff,0011B.-0Xcdf,01a,0xe
C.-018,999,5e2D.-0x48eg,-068,03f
16.下面4个选项中,均是合法浮点数的选项是(B)。
A.+1e+1,5e-9.4,03e2B.-.60,12e-4,-8e5
C.123e,1.2e-.4,+2e-1D.-e3,.8e-4,5.e-0
练习2-2答案
1.已知:
chara;
intb;
floatc;
doubled;
,执行语句c=a+b+c+d;
后,变量c的数据类型是(C)。
A.intB.charC.floatD.double
2.已知intj,i=1;
,执行语句j=-i++;
后,j的值是(C)。
A.1B.2C.-1D.-2
3.已知inti,a;
,执行语句i=(a=2*3,a*5),a+6;
后,变量i的值是(C)。
A.6B.12C.30D.36
4.已知inti=5;
,执行语句i+=++i;
,i的值是(C)。
A.10B.11C.12D.A、B、C答案都不对
5.已知:
floatx=1,y;
,则表达式y=++x*++x的结果为(B)。
A.9B.6C.1D.表达式是错误的
6.已知:
inty;
floatx=-3;
,执行语句:
y=x%2;
,则变量y的结果是(D)。
A.1B.-1C.0D.语句本身是错误的
7.已知:
charw;
intx;
floaty;
doublez;
,则表达式w*x+z-y结果的类型是(D)。
A.floatB.charC.intD.double
8.已知:
intx=10,y=3,z;
,则下列语句的输出结果是(D)。
z=(x%y,x/y));
A.1B.0C.4D.3
9.已知:
inti=6,j;
,则执行语句j=(++i)+(i++);
后的j的值是(B)。
A.4B.14C.13D.15
10.已知:
intx=1,y=-1;
,则语句printf("
(x--&
++y));
的输出结果是(B)。
A.1B.0C.-1D.2
11.设a=2,b=3,计算表达式c=b*=a-1后,变量c的值是(B)。
A.5B.3C.2D.4
12.若定义了intx;
,则将x强制转化成双精度类型应该写成(A)。
A.(double)xB.x(double)C.double(x)D.(x)double
13.下述程序的输出是(A)。
main()
{intx=023;
printf("
%f"
2.5+1*7%2/4);
}
A.2.500000B.2.750000C.3.375000D.3.000000
14.若有定义:
inta=7;
floatx=2.5,y=4.7;
,则表达式x+a%3*(int)(x+y)%2/4的值是(A)。
A.2.500000B.2.750000C.3.500000D.0.000000
15.设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第3位进行四舍五入运算的表达式是(B)。
A.n=(n*100+0.5)/100.0B.m=n*100+0.5,n=m/100.0
C.n=n*100+0.5/100.0D.n=(n/100+0.5)*100.0
16.已知ch是字符型变量,下面不正确的赋值语句是(A)。
A.ch='
a+b'
;
B.ch='
C.ch='
7'
+'
9'
D.ch=5+9;
练习3-1答案
一、选择题
1.在C语言库函数中,可以输出double型变量x值的函数是(D)。
A.getcharB.scanfC.putcharD.printf
2.执行语句:
Theprogram\'
snameisc:
\\tools\book.txt"
);
后输出是(D)。
A.Theprogram'
toolsbook.txt
B.Theprogram'
\toolsbook.txt
C.Theprogram'
\\toolsbook.txt
D.Theprogram'
\toolook.txt
3.以下程序的输出结果是(D)。
(注:
□表示空格)
{printf("
\n*s1=%15s*"
"
chinabeijing"
\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<
stdio.h>
{inta=-10,b=-3;
a%b);
/*输出①*/
a/b*b);
/*输出②*/
-a%b);
/*输出③*/
a-=b+++1);
/*输出④*/
①A.-2B.-1C.0D.1
②A.-10B.-9C.-8D.0
③A.-2B.-1C.0D.1
④A.-10B.-9C.-8D.-7
5.以下C程序正确的运行结果是(D)。
{inty=2456;
y=%3o\n"
y);
y=%8o\n"
y=%#8o\n"
A.y=□□□2456B.y=□□□4630
y=□□□□□□□□2456y=□□□□□□□□4630
y=#########2456y=#########4630
C.y=2456D.y=4630
y=□□□□2456y=□□□□4630
y=□□□02456y=□□□04630
二、填空题
6.以下程序的输出结果为(i:
dec=-4,otc=177774,hex=fffc,unsigned=65532)。
{shorti;
i=-4;
\ni:
dec=%d,otc=%o,hex=%x,unsigned=%u\n"
i,i,i,i);
7.以下程序的输出结果为(c:
dec=120,oct=170,hex=78,ASCII=x)。
{charc='
x'
c:
dec=%d,oct=%o,hex=%x,ASCII=%c\n"
c,c,c,c);
8.已有定义intd=-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□□*)。
*d
(1)=%d*d
(2)=%3d*d(3)=%-3d*\n"
d,d,d,d);
*d(4)=%o*d(5)=%7o*d(6)=%-7o*\n"
*d(4)=%x*d(5)=%6x*d(6)=%-6x*\n"
9.以下程序的输出结果是:
(a=374a=0374
a=fca=0xfc)。
{inta=252;
a=%oa=%#o\n"
a,a);
a=%xa=%#x\n"
第三章
练习3-2答案
intx,y,z,w;
,为使以下语句的输出为:
1234+123+12+1,正确的输入形式应当为(C)。
scanf("
%4d-%3d-%2d-%1d"
&
x,&
y,&
z,&
w);
%4d+%3d+%2d+%1d\n"
x,y,z,w);
A.1234123121B.1234123121C.1234-123-12-1D.1234+123+12+1
2.已知:
intx;
,所用的scanf调用语句格式为:
x=%d,y=%f"
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.已知:
intx,y;
,以下语句中错误的函数调用是(D)。
A.scanf("
%d,%x,%1e"
z);
B.scanf("
%2d*%d%1f"
C.scanf("
%x%*d%o"
D.scanf("
%x%o%6.2f"
4.已有如下定义和输入语句,若要求a1、a2、c1、c2的值分别为10、20、A和B,当从第一列开始输入数据时,正确的数据输入方式是(AC)。
□表示空格,<
CR>
表示回车)
inta1,a2;
charc1,c2;
%d%c%d%c"
a1,&
c1,&
a2,&
c2);
A.10A□20B<
B.10□A□20B<
C.10A20B<
D.10A20□B<
5.已有定义intx;
,且执行scanf("
%3d%f"
语句时,输入数据12345□678<
,则x的值为(①B),y的值为(②B)。
①A.12345B.123C.45D.345
②A.无定义B.45.000000C.678.000000D.123.000000
6.阅读以下程序,当输入数据的形式为:
25,13,10<
,正确的输出结果为(D)。
{intx,y,z;
scanf("
%d%d%d"
x+y+z=%d\n"
x+y+z);
A.x+y+z=48B.x+y+z=35C.x+z=35D.不确定值
7.根据题目中已经给出的数据的输入和输出形式,程序中输入输出语句的正确内容是(B)。
{intx;
enterx,y:
"
输入语句
输出语句
输入形式:
2<
3.4
输出形式:
x+y=5.40
%d,%f"
B.scanf("
%d%f"
\nx+y=%4.2f"
x+y);
printf("
D.scanf("
%d%3.1f"
\nx+y=%6.1f"
第4章
练习4-1答案
charc='
A'
inti=1,j;
,执行语句j=!
c&
&
i++;
,则i和j的值是(B)。
A.1,1B.1,0C.2,1D.2,0
intx=1,y=2,z;
,则执行z=x>
y?
++x:
++y;
,则z的值为(C)。
A.1B.2C.3D.4
inta=4,b=5,c;
,则执行表达式c=a=a>
b后变量a的值为(A)。
A.0B.1C.4D.5
4.已知:
charch='
,则表达式ch=(ch>
='
ch<
Z'
)?
(ch+32):
ch;
的值是(B)。
a'
z'
5.若w=1,x=2,y=3,z=4;
,则条件表达式w>
x?
w:
y<
z?
y:
z的结果为(B)。
A.4B.3C.2D.1
6.已知:
intw=3,x=10,z=7;
,则执行下面语句后的结果为(C)。
%d"
x>
10?
x+100:
x-10);
w++||z++);
!
w>
w&
A.0111B.1111C.0101D.0100
7.已知:
a=b=c=1且a、b、c均为int型变量,执行以下语句:
++a||++b&
++c;
则变量a值为(①C),b值为(②A)。
①A.不正确B.0C.2D.1
②A.1B.2C.不正确D.0
8.执行下面语句后x的值为(D)。
inta=14,b=15,x;
x=((a&
b)&
(c<
));
A.TRUEB.FALSEC.0D.1
9.要判断char型变量m是否是数字,可以使用下列表达式(B)。
A.0<
=m&
m<
=9B.'
0'
<
C."
0"
="
9"
D.前面三个答案均是错误的
10.能正确表示“当x取值在[1..10]和[200..210]范围内为真,否则为假”的表达式是(C)。
A.(x>
=1)&
(x<
=10)&
(x>
=200)&
=210)
B.(x>
=1)||(x<
=10)||(x>
=200)||(x<
C.(x>
D.(x>
11.设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是(D)。
y'
B.x<
=yC.x||y+z&
y-zD.!
((x<
y)&
!
z||1)
12.已知x=43,ch='
y=0;
,则表达式x>
=y&
B'
y的值是(C)。
A.0B.语法错C.1D.“假”
13.判断char型变量c1是否为小写字母的正确表达式为(D)。
=c1<
B.(c1>
=a)&
(c1<
=z)
C.('
>
=c1)||('
=c1)D.(c1>
)&
)
二、读程序、写结果
14.下面程序的运行结果:
①(17)、②(102)、③(9)、④(127)、⑤(00-1)。
#include<
{inti=16,j,x=6,y,z;
j=i+++1;
j);
x*=i=j;
x);
/*输出②*/
x=1;
y=2;
z=3;
x+=y+=z;
z+=x>
x++:
y++);
/*输出③*/
x=0x02ff;
y=0xff00;
(x&
y)>
4|0x005f);
/*输出④*/
x=y=z=-1;
++x||++y&
++z;
%d%d%d\n"
x,y,z);
/*⑤*/
练习4-2答案
1.下面程序的输出是(A)。
{intx=1,y=0,a=0,b=0;
switch(x)
{case1: