c语言作业答案Word文档下载推荐.docx
《c语言作业答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《c语言作业答案Word文档下载推荐.docx(16页珍藏版)》请在冰豆网上搜索。
12.下列可用于C语言标识符的一组是B。
A)void,define,WORDB)a3b3,123,Car
C)For,-abc,IFCaseD)2a,DO,sizeof
13.以面的C程序中,错误的是D。
A)main()B)main()
{intx,y,z;
{intx,y,z;
x=0;
y=x-1;
x=0;
y=x+1;
z=x+y;
}z=x+y;
}
C)main()D)main()
{intx,z;
inty;
z=x+y,}
14.C语言中的标识符只能由字母,数字和下划线三种字符
组成,且第一个字符C。
A)必须为字母
B)必须为下划线
C)必须为字母或下划线
D)可以是字母,数字和下划线中任一字符
15.下面各选项中,均是C语言标识符的选项组是B。
A)33weautoB)23me3ew
C)433eelseD)ER-DF32
二、填空题
1.国际上C语言常见的三个标准是:
标准C、ANSIC和ISOC。
2.C语言源程序的文件格式为*.c和*.h。
3.请描述C程序中main函数的作用:
接受系统调用,开始程序的执行,直至程序结束。
三、程序编写题(请在本页背面作答)
1.编写一个C程序,输出以下信息
*******************************
VeryGood!
2.编写程序,实现求整数10、20和35的平均值(提示:
注意给出的是三个整数,求出的平均值不是整数)
1
第2讲C语言基本数据类型
1.若x、i、j、k都是int型变量,则计算下面表达式
后,x的值为C。
x=(i=4,j=16,k=32)
A)4B)16C)32D)52
2.下列四组选项中,均是合法转义字符的是A。
A)‘\"
’‘\\’‘\n’B)‘\’‘\017’‘\"
’
C)‘\018’‘\f’‘xab’D)‘\\0’‘\101’‘xlf’
3.下面正确的字符常量是D。
A)"
c"
B)‘\\’’C)‘’D)‘K’
4.以下叙述不正确的是D。
A)在C程序中,逗号运算符的优先级最低
B)在C程序中,MAX和max是两个不同的变量
C)若a和b类型相同,在计算了赋值表达式a=b后,
b中的值将放入a中,b中的值不变
D)从键盘输入数据时,对于整型变量只能输入整型
数值,对于实型变量只能输入实型数值
5.以下叙述正确的是C。
A)在C程序中,每行只能写一条语句
B)若a是实型变量,C程序中允许赋值a=10,因此
实型变量中允许存放整型数
C)在C程序中,%是只能用于整数运算的运算符
D)在C程序中,无论是整数还是实数,都能被准确
无误地表示
6.已知字母A的ASCII码为十进制数65,且c2为字符型,
则执行语句c2=‘A’+‘6’-‘3’后,c2的值为A。
A)DB)68C)不确定的值D)C
7.sizeof(float)是B。
A)一个双精度型表达式B)一个整型表达式
C)一种函数表达式D)一个不合法的表达式
8.设C语言中,一个int型数据在内存中占2个字节,
则unsignedint型数据的取值范围为C。
A)0~255B)0~32767
C)0~65535D)0~47
9.设有说明:
charw;
intx;
floaty;
doublez;
则
表达式w*x+z-y值的数据类型D。
A)floatB)charC)intD)double
10.设以下变量均为int类型,则值不等于7的表达式
是C。
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)
11.C语言中的基本数据类型包括B。
A)整型、实型、逻辑型B)整型、实型、字符型
C)整型、字符型、逻辑型D)字符型、实型、逻辑型
12.若变量已正确定义并赋值,以下符合C语言语法的表达
式是B。
A)a:
=b+1B)a=b=c+2
C)int%3D)a=a+7=c+b
13.C语言中运算对象必须是整型的运算符是A。
A)%=B)/C)=D)<
=
14.若变量a,i已正确定义,且i已正确赋值,合法的语句
是B。
A)a==1B)++i;
C)a=a++=5;
D)a=int(i);
15.inta=7;
floatx=,y=;
则表达式x+a%3*(int)
(x+y)%2/4的值是A。
A)B)
C)D)
16.在16位C编译系统上,若定义longa;
,则能
给a赋40000的正确语句是D。
A)a=20000+20000;
B)a=4000*10;
C)a=30000+10000;
D)a=4000L*10L;
17.设有intx=11;
则表达式(x++*1/3)的值是A。
A)3B)4C)11D)12
18.下列数据中,不合法的C语言实型数据的是C。
A)B)123e3C)D)
19.若变量a是int类型,并执行了语句:
a=‘A’+;
,则正
确的叙述是D。
A)a的值是字符C
B)不允许字符型和浮点型相加
C)a的值是浮点型
D)a的值是字符‘A’的ASCII值加上1
20.设变量n为float类型,m为int类型,则以下能实现
将n中的数值保留小数点后两位,第三位进行四舍五
入运算的表达式是B。
A)n=(n*100+/B)m=n*100+,n=m/
C)n=n*100+D)n=(n/100+*
21.下面四个选项中,均是不正确的8进制数或16进制数的
选项是D。
A)0160x8f018B)0abc0170xa
C)010-0x110x16D)0a127ff-123
22.以下选项中,与k=n++完全等价的表达式是A。
A)k=n,n=n+1B)n=n+1,k=nC)k=++nD)k+=n+1
23.下面均是合法整型常量的选项是A。
A)160-0xffff011B)-0xcdf01a0xe
C)-019860120668D)-0x48a2e50x
24.假定x和y为double型,则表达式x=2,y=x+3/2的值
是D。
A)B)3C)D)
25.以下变量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
26.已知intk,m=1;
执行语句k=-m++;
后,k的值是A。
A)-1B)0C)1D)2
27.已知intm;
floatk;
正确的语句是D。
A)(intk)%mB)int(k)%m
C)int(k%m)D)(int)k%m
28.不能进行++和--运算的数据类型为D。
A)指针B)整型C)长整型D)常量
2
29.putchar函数可以向终端输出一个D。
A)整型变量表达式B)实型变量值
C)字符串D)字符或字符型变量值
30.printf函数中用到格式符%5s,其中数字5表示输出的字
符串占用5列。
字符串长度大于5,则输出按方式B;
如果字符串长度小于5,则输出按方式C。
A)从左起输出该字符串,右补空格
B)按原字符长从左向右全部输出
C)右对齐输出该字符串,左补空格
D)输出错误信息
31.阅读以下程序,当输入数据的形式为:
25,13,10ê
,则
正确的输出结果为D。
main()
scanf("
%d%d%d"
&
x,&
y,&
z);
printf("
x+y+z=%d\n"
x+y+z);
A)x+y+z=48B)x+y+z=35C)x+z=35D)不确定
32.根据下面的程序及数据的输入和输出形式,程序中输入
语句的正确形式应该为A。
{charch1,ch2,ch3;
输入语句
%c%c%c"
ch1,ch2,ch3);
输入形式:
ABC
输出形式:
AB
A)scanf("
ch1,&
ch2,&
ch3);
B)scanf("
%c,%c,%c"
C)scanf("
%c%c%c"
D)scanf("
%c%c"
33.已知ch是字符型变量,下面不正确的赋值语句是A。
A)ch=‘a+b’;
B)ch=‘\0’;
C)ch=‘7’+‘9’;
D)ch=5+9;
34.若变量已正确说明为float型,要通过语句scanf
("%f%f%f",&
a,&
b,&
c);
给a赋予,b赋予,c赋
予,下列不正确的输入形式是B。
A)10ê
22ê
33B),,ê
C)ê
ê
D)1022ê
33ê
35.下列程序段的输出结果是:
C。
inta=1234;
floatb=;
doublec=;
printf("
%2d,%,%"
a,b,c);
A)无输出B)12,,
C)1234,,D)1234,,
36.已有定义inta=-2;
和输出语句printf("
%8lx"
a);
以
下正确的叙述是D。
A)整型变量的输出形式只有%d一种
B)%x是格式符的一种,可适用于任何一种类型的数据
C)%x是格式符的一种,其变量的值按十六进制输出,
但%8lx是错误的
D)%8lx不是错误的格式符,其中数字8规定了输出字
段的宽度
1.若有定义:
intm=5,y=2;
,则计算表达式y+=y-=m*=y后的y值是-16。
2.在C语言中,一个int型数据在内存中占2个字节,则int型数据的取值范围为-32768?
32767。
3.若a是int型变量,则计算表达式a=25/3%3后a的值为2。
4.若x和n均是int型变量,且x和n的初值均为5,则计算表达式x+=n++后x的值为10,n的值为6。
5.若有定义:
charc="
\0108F\0"
;
则字符串c中包含的字符个数为5。
6.定义inta=5,b;
则执行表达式b=++a*--a之后,变量b的值为25。
7.已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=‘a’+‘8’-‘3’的值为102或‘f’。
8.以下程序段的输出结果是i:
dec=-4,oct=177774,hex=fffc,unsigned=65532。
main(){shorti;
i=-4;
printf("
\ni:
dec=%d,oct=%o,hex=%x,unsigned=%u\n"
i,i,i,i);
9.假设变量a和b均为整型,请填空使得以下语句可以不借助任何变量把a、b中的值进行交换。
a+=b;
b=a-b;
a-=b;
10.有一输入语句scanf("
%d"
k);
则不能使float类型变量k得到正确数值的原因是:
(1)k应该加上取地址符号&
,成为&
k和
(2)float型数据不能用%d格式来输入。
1.输入圆半径(5)和圆心角(60_C),输出圆的周长、面积和扇形周长、面积。
2.输入一个华氏温度,要求输出摄氏温度。
公式为C_5
9pF_32q,输出要有文字说明,取2位小数。
3
第3讲算法与程序基本结构
1.如下程序的输出结果是A。
{intx=1,a=0,b=0;
switch(x)
{case0:
b++;
case1:
a++;
case2:
b++;
a=%d,b=%d\n"
a,b);
A)a=2,b=1B)a=1,b=1
C)a=1,b=0D)a=2,b=2
2.以下程序执行后输出结果是C。
{inti=1,j=1,k=2;
if((j++||k++)&
&
i++)
%d,%d,%d\n"
i,j,k);
A)1,1,2B)2,2,1C)2,2,2D)2,2,3
3.如下程序的输出结果是C。
{floatx=,y;
if(x<
y=;
elseif(x<
y=x;
elsey=;
%f\n"
y);
4.设intx=1,y=1;
表达式(!
x||y--)的值是B。
A)0B)1C)2D)-1
5.若运行时给变量x输入12,则以下程序的运行结果
是A。
{intx,y;
scanf("
x);
y=x>
12x+10:
x-12;
%d\n"
A)0B)22C)12D)10
6.在C程序中,判逻辑值时,用”非0”表示逻辑值”真”,
又用”0”表示逻辑值”假”。
在求逻辑值时,逻辑表达式
值为”真”和”假”分别用A表示。
A)1和0B)0和1C)非0和非0D)1和1
7.以下4个选项中,不能看做一条语句的是D。
A);
B)a=5,b=,c=;
C)if(a<
5);
D)if(b!
=5)x=2;
y=6;
8.能正确表示逻辑关系:
"
a≥10或a≤0"
的C语言表达式
A)a>
=10ora<
=0B)a>
=0|a<
=10
C)a>
=10&
a<
=0D)a>
=10||a<
=0
9.如下程序的输出结果是C。
{inta=2,b=-1,c=2;
if(a<
b)
if(b<
0)c=0;
elsec++;
c);
A)0B)1C)2D)3
10.设x,y和z都是int型变量,且x=3,y=4,z=5,则下面
表达式中,值为0的表达式D。
A)x&
yB)x<
=y
C)x||++y&
y-zD)!
(x<
y&
!
z||1)
11.若有条件表达式(exp)a++:
b--,则以下表达式中能完
全等价于表达式(exp)的是B。
A)(exp==0)B)(exp!
=0)
C)(exp==1)D)(exp!
=1)
12.以下程序的输出结果是A。
{inta=4,b=5,c=0,d;
d=!
a&
b||!
c;
d);
A)1B)0C)非0的数D)-1
13.设有inta=1,b=2,c=3,d=4,m=2,n=2;
执行(m=a>
b)&
(n=c>
d)后n的值是B。
A)1B)2C)3D)4
14.下面程序D。
{inta=5,b=0,c=0;
if(a=b+c)printf("
***\n"
);
elseprintf("
$$$\n"
A)有语法错不能通过编译
B)可以通过编译但不能通过连接
C)输出***
D)输出$$$
15.当k的值不为0时,在下列选项中能够将k的值赋给变
量m和n的是B。
A)m=k=nB)(m=k)&
(n=k)
C)(m=k)||(n=k)D)(k=m)&
16.已知intt=0;
while(t=1){...}则以下叙述正确的
A)循环控制表达式值为0B)循环控制表达式值为1
C)循环控制表达式不合法D)以上说法都不对
17.下面程序输出结果是B。
{intn=9;
while(n>
6){n--;
printf("
n);
}}
A)987B)876C)8765D)9876
18.在下列程序段中,没有构成死循环的是D。
A)B)C)D)
inti=10;
for(;
intk=10;
ints=36;
while
(1)do{k++;
}while(s)
{i=i%3+1;
while(k>
10);
--s;
if(i>
10)
break;
19.以下程序段的描述,正确的是C。
x=-1;
do{x=x*x;
}while(!
A)是死循环B)循环执行两次
C)循环执行一次D)有语法错误
4
20.在下述程序中,判断i>
j共执行的次数是D。
{inti=0,j=10,k=2,s=0;
{for(;
)
{i+=k;
j){printf("
s);
break;
s+=i;
A)4B)7C)5D)6
21.下面程序的功能是把316表示为两个加数的和,使两个
加数分别能被13和11整除,请选择填空。
满足题意的选
项是B。
#include<
>
{inti=0,j,k;
do{i++;
k=316-13*i;
}while();
j=k/11;
316=13*%d+11*%d"
i,j);
A)k/11B)k%11C)k/11==0D)k%11==0
22.下面程序的运行结果是B。
{inta=1,b=10;
do{b-=a;
a++;
}while(b--<
0);
A)a=3,b=11B)a=2,b=8
C)a=1,b=-1D)a=4,b=9
23.执行语句for(i=1;
i++<
4;
后变量i的值是C。
A)3B)4C)5D)不定
24.关于程序段intk=10;
while(k=0)k=k-1;
下面描述
中正确的是C。
A)while循环执行10次B)循环是无限循环
C)循环体语句一次也不执行D)循环体语句执行一次
25.表达式for(表达式1;
;
表达式3)可理解为B。
A)for(表达式1;
0;
表达式3)
B)for(表达式1;
1;
C)for(表达式1;
表达式1;
D)for(表达式1;
表达式3;
26.以下程序的输出结果是B。
{inti,j,x=0;
for(i=0;
i<
2;
{x++;
for(j=0;
j<
3;
j++){if(j%2)continue;
x++;
x=%d\n"
x);
A)x=4B)x=8C)x=6D)x=12
27.以下描述中正确的是C。
A)因do-while循环中循环体语句只能是一条可执行语句,
所以循环体内不能使用复合语句
B)do-while循环由do开始,用while结束,在while(表达
式)后面不能写分号
C)在do-while循环体中,先执行一次循环,再进行判断
D)do-while循环中,根据情况可以省略while
28.针对下列语句说法正确的是A。
inti,x;
for(i=0,x=0;
=9&
x!
=876;
i++)scanf("
A)最多的执行10次B)最多执行9次
C)是无限循环D)循环体一次也不执行
29.C语言中while和do-while循环的主要区别是A。
A)do-while的循环体至少无条件执行一次
B)while的循环控制条件比do-while更严格
C)do-while允许从外