C语言第三四章作业题答案讲解.docx
《C语言第三四章作业题答案讲解.docx》由会员分享,可在线阅读,更多相关《C语言第三四章作业题答案讲解.docx(34页珍藏版)》请在冰点文库上搜索。
C语言第三四章作业题答案讲解
东华理工大学:
C语言第三章作业题
C稈序设计第三章闭/开卷课程类别:
考试/考
题号
——一
二
三
四
五
六
七
八
九
总分
分数
评卷
人
第三章顺序结构程序设计
一、选择题
1.C语言中调用printf进行输出时需要注意,在格式控制串中,格式说明与输出项的个数必须相同。
如果格式说明的个数小于输出项的个数,多余的输出项将A;
如果格式说明的个数多于输出项的个数,则对于多余的格式将输出不定值(或0)。
A)不予输出B)输出空格
C)照样输出D)输出不定值或0
2•在seanf函数的格式控制中,格式说明的类型与输入的类型应该一一对应匹配。
如果类型不匹配,系统B。
A)不予接收
B)并不给出出错信息,但不可能得出正确信息数据
C)能接受正确输入
D)给出出错信息,不予接收输入
3•下列说法正确的是D—。
A)输入项可以是一个实型常量,如seanf("%f",4.8);
B)只有格式控制,没有输入项也能进行正确输入,如scanf("a=%d,b=%d");
C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如
scanf("%5.3f",&f);
D)当输入数据时,必须指明变量的地址,如scanf("%f",&f);
4•根据题目中已给出的数据的输入和输出形式,程序中输入/输出语句的正确是一B
{inta;floatx;
printf("inputa,x:
");
输入语句
输出语句
}
输入形式inputa,x:
32.1
输出形式a+x=5.10
A)seanf("%d,%f",&a,&x);
printf("\na+x=%4.2f',a+x);
B)seanf("%d%f",&a.&x);printf("\na+x=%4.2f',a+x);
C)seanf("%d%f",&a,&x);
printf("\na+x=%6.1f',a+x);
D)seanf("%d%3.1f",&a,&x);printf("\na+x=%4.2f',a+x);
5.以下程序的输出结果是T一。
main()
{
inti=010,j=10,k=0x10;
printf("%d,%d,%d\n",i,j,k);
A)8,10,16B)8,10,10C)10,10,10
6.以下程序的输出结果是A—。
main()
{
inti=011,j=11,k=0x11;
printf("%d,%d,%d\n",i,j,k);
}
A)9,11,17B)9,11,11C)11,11,11
7.以下程序的输出结果是B—。
#include
main()
{printf("%d\n",NULL);}
A)不确定的值(因变量无定义)B)0
C)-1D)1
8.以下程序的输出结果是—B一。
main()
{
D)10,10,16
D)11,11,16
main()
charc1='6',c2='O:
printf("%c,%c,%d,%d\n",c1,c2,c1-c2,c1+c2);
}
A)因输出格式不合法,输出出错信息
C)6,0,7,6
9•设有如下定义
intx=10,y=3,z;
则语句
B)6,0,6,102
D)6,0,5,7
printf("%d\n",z=(x%y,x/y));的输出结果是A。
A)3B)0
10.设有如下定义
intx=10,y=5,z;
则语句
C)4D)1
printf("%d\n",z=(x+=y,x/y));
的输出结果是Do
A)1B)0C)4D)3
11.以下程序的输出结果是一D_o
main()
{intx=10,y=10;
printf("%d%d\n",x--,--y);
}
A)1010B)99C)910
12.写出下面程序的输出结果A
main()
{intx;
x=-3+4*5-6;printf("%d",x);x=3+4%5-6;printf("%d",x);x=-3*4%6/5;printf("%d",x);
x=(7+6)%5/2;printf("%d",x);
}
A)11101B)11-321
13.写出下面程序的输出结果一A
main()
intx,y,z;
x=y=1;
D)109
C)12-321D)11121
z=x++-1;printf("%d,%d\t",x,z);
z+=-x+++(++y);printf("%d,%d",x,z);
}
A)2,03,0B)2,13,0C)2,02,1D)2,10,1
14.写出下面程序的输出结果C
main()
{
inti,j;
i=20;j=(++i)+i;printf("%d",j);
i=13;printf("%d%d),i++,i);
}
A)4214,13B)4114,14C)421313D)421314
15.若有定义:
intx,y;chara,b,c;并有以下输入数据(此处,代表换行符)
12
ABC
则能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c赋字符C的正确程序段是Co
A)scanf("x=%dy=%d",&x,&y);a=getchar();b=getchar();c=getchar();
B)scanf("%dy%d",&x,&y);a=getchar();b=getchar();c=getchar();
C)scanf("%d%d%c%c%c%c%c%c",&x,&y,&a,&a,&b,&b,&c,&c);
D)scanf("%d%d%c%c%c",&x,&y,&a,&b,&c);
16.若已知a=10,b=20,则表达式!
a
A)10B)20C)1D)0
17.printf函数中用到格式符"%4s",其中数字4表示输出的字符串站用4列。
如果字
符串长度大于4,则按原字符长从左向右全部输出;如果字符串长度小于4,则输出方
式为Co
A)从左起输出该字符串,右补空格
C)右对齐输出该字符,左补空格
18.以下C程序,正确的运行结果是-
B)按原字符长从左向右全部输出
D)输出错误信息
C—o
main()
{
longy=-34567;printf("y=%-8ld\n",y);
printf("y=%-08ld\n",y);
printf("y=%08ld\n",y);
printf("y=%+8ld\n",y);}
A)y=-34567
y=-34567
y=-0034567y=-34567
C)y=-34567
y=-34567y=-0034567
y=-34567
19.C程序的基本编译单位是
A)函数B)文件
B)y=-34567
y=-34567y=-0034567y=+-34567
D)y=-34567y=-0034567y=00034567y=+34567
B—。
(01~02第二学期试题)
C)源文件D)子程序
20.设有如下定义和执行语句,其输出结果为:
-A—。
(03试题)
inta=3,b=3;
a=--b+1;printf(“%d%d',a,b);
A)32B)42C)22D)2321.
根据定义和数据的输入方式,输入语句的正确形式为:
A。
(往届试题)
已有定义:
floata1,a2;
数据的输入方式:
4.523
3.52
A)scanf(“%f"&a1,&a2);
B)scanf(“%f%f",a1,a2);
C)scanf(“%4.3f%3.2f”&a1,&a2);
D)scanf(“%4.3%3.2f”a1,a2);
22.以下程序的输出结果是:
A。
(往届试题)
main()
{int1=012,j=12,k=0x12;
printf(“%d,%d,%\d”,lj”k);
A)10,12,18B)12,12,12
C)10,12,12D)12,12,18
23.以下程序的输出结果是:
(注:
■表示空格)D。
(往届试题)
main()
{printf(\h*s1=%8s*”,“china);
printf(\'n*s2=%-5s*”,“chi”)
A)
*s1=china...*
*s2=chi*
*s1=...china*
*s2=..chi*
二.填空题
1.C语言中的语句可分为5类,即控制语句空语句复合语句函数调用语句
表达式语句。
2.由一次函数调用加一个分号构成一个函数调用语句语句。
3.putchar函数的作用_
4.printf是C语言提供的标准输出函数,它的作用是在终端设备上(或系统隐含的输出设备上)按照指定的格式进行输出。
5.printf函数的“格式控制”包括两部分,他们是格式和普通字符。
6•对不同类型的语句有不同的格式字符。
例如:
d格式字符是用来输出十进制整数,
一匚格式字符是用来输出一个字符,_s_格式字符是用来输出一个字符串。
7.%-ms表示如果串长小于m,则在m列I范围内,字符串向左靠,右
补空格。
8•如果要输出字符“&”,贝!
应该在“格式控制”字符串中用—%c表示。
9.getchar函数的作用是。
10.符号“&”是——运算符,&a是指。
11.scanf函数中的“格式控制"后面应当是—变量地址,而不是。
12.C语言中的空语句就是一个分号空操作。
13.复合语句是由一对一括起来的若干语句组成。
14.分析下面程序:
#include
main()
{
intx=2,y,z;
x*=3+2;printf("%d\n",x);协
x*=y=z=4;printf("%d\n",x);
_40
x=y=z;printf("%d\n",x);
_4
x=(y=z);printf("%d\n",x);}
程序的输出结果为。
«
15.编制程序对实数a与b进行加,减,乘,除计算,要求显示如下结果。
jia=70.000000
jian=30.000000
cheng=1000.000000
chu=2.5000000
程序:
#include
voidmain(void)
{a=50.0;b=20.0;
printf("jia=%f\n",a+b);
printf("jian=%f\n"a-b);
printf("cheng=%f\n",a*b);
printf("chu=%f\n",a/b);
}
将缺少的部分填在空白处。
16.下列程序的输出结果是65A
#includemain(){chara;a='A';printf("%d%c",a,a);
}
17.分析下面程序
main{intx=2,y,z;x*=3+2;printf("%d\n",x);x*=y=z=4;printf("%d\n",x);x=y=1;
z=x++-1;printf("%d,%d\n",x,z);z+=-x+++(++y);printf("%d,%d",x,z);}
程序的输出结果是。
18.分析下面程序
main()
{
intx,y;x=16,y=(x++)+x;printf("%d\n",y);x=15;printf("%d,%d\n",++x,x);x=20,y=x--+x;printf("%d\n",y);x=13;printf("%d,%d",x++,x);
}
程序的输出结果是。
19.以下程序的输出结果为:
.
main()
{floata=3.14,b=3.14159;
10
40
2,0
3,0
3.140000,3.142。
(03试题)
printf(“%5,.3f\n”,a,b);}
20.以下程序的输出结果为:
—a回车。
(04~05第二学期试题)
#include
main()
{charc1,c2;
c1=‘a';
c2=n';
printf(“%c%c,c1,c2);}
东华理工大学:
C语言第四章作业题
c稈序设计第四章闭/开卷课程类别:
考试/考
y=1;
c=0;
c=x++||y++;
printf(\h%d%d%d\n”,x,y,c);
}
A)110B)211
。
()
B)if(x>0)
{x=x+1;printf(”%”,x);}elseprintf("”%);
D)if(x>0)
{x=x+1;printf(”%f],x)elseprintf("”%);
B)通过编译,但不能连接
题号
——一
二
三
四
五
六
七
八
九
总分
分数
评卷
人
第四章选择结构程序设计
、选择题
1.下列运算符中优先级最高的是B。
()
A)>B)+C)&D)!
=
2•以下关于运算符优先级的描述中,正确的是A。
()
A)!
(逻辑非)>算术运算>关系运算>&&(逻辑与)>||(逻辑或)>赋值运算
B)&&(逻辑与)>算术运算>关系运算>赋值运算
C)关系运算>算术运算>&&(逻辑与)>||(逻辑或)>赋值运算
D)赋值运算>算术运算>关系运算>&&(逻辑与)>||(逻辑或)
3•逻辑运算符的运算对象的数据类型D。
()
A)只能是0或1B)只能是.「或.F.
C)只能是整型或字符型D)任何类型的
4.能正确表示x的取值范围在[0,100]和[-10,-5]内的表达式是B。
()
A)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)
B)(x>=-10)&&(x<=-5)||(x>=0)&&(x<=100)
C)(x>=-10)&&(x<=-5)&&(x>=0)&&(x<=100)
D)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)
5•以下程序的运行结果是B。
()
main()
{
intc,x,y;
x=1;
6•以下程序的运行结果是—A。
()main()
{
intc,x,y;
x=0;
y=0;
c=0;
c=x++&&y++;
printf(\n%d%d%d\n”,x,y,c);
}
A)100B)211C)011D)001
7•判断字符型变量ch为大写字母的表达式是C。
()
A)''<=ch<=Z'B)(ch>='A&(ch<='Z'C)
(ch>='A&&(ch<='Z)D)(ch>='A)AND(ch<='Z)
&判断字符型变量ch为小写字母的表达式是D。
()
A)'a'<=ch<='z'B)(ch>=a)&&(ch<=z)C)
(ch>=)扩II(ch<='Z'D)(ch>='a'&&(ch<=')
9•以下if语句书写正确的是B
A)if(x=0;)printf(””%f);
elseprintf(”%f”,
C)if(x>0);
{x=x+1;printf(”%”,x);}elseprintf(”%f”,
10.分析以下程序:
main()
{intx=5,a=0,b=0;
if(x=a+b)printf(**\n”);elserintf(###”);
以上程序D。
()
A)有语法错,不能通过编译
请勿浪费试
用纸
考
C语言第一章作业题
第5页共12页
C)输出****
11.两次运行下面的程序,如果从键盘是。
()
main()
{intx;
scanf(“%d',&x);
if(x++>5)printf(“'%d);
elseprintf(“r%>d,-x);
}
A)7和5B)6和3
12•写出下面程序的执行结果
main()
{intx,y=1;
if(y!
=0)x=5;
printf(“%\d”,x);if(y==0)x=3;
elsex=5;printf(“%\t\n”,x);
}
A)13
13•写出下面程序的执行结果
main()
{intx=1,y=1,z=0;
if(z<0)
if(y>0)x=3;
elsex=5;
printf("%d\t",x);
if(z=y<0)x=3;
elseif(y==0)x=5;elsex=7;
printf("%d\t",x);
printf("%d\t",z);
}
A)170
D)输出####上分别输入6和
C)7和4
一。
()
C)5
。
()
B)370C)550
14•假定所有变量均已正确说明,下列程序段运行后x
a=b=c=0;x=35;
if(!
a)x=-1;
则输出结果
D)
D)55
elseif(b);
if(c)x=3;
elsex=4;
A)34B)4C)35D)3
15•写出下面程序的运行结果是。
()
main()
{intx,y=1,z;
if(y!
=0)x=5;
printf("x=%d\t",x);
if(y==0)x=3;
elsex=5;
printf("x=%d\t\n",x);
x=1;
if(z<0)
if(y>0)x=3;
elsex=5;
printf("x=%d\t\n",x);
if(z=y<0)x=5;
elsex=7;
printf("x=%d\t",x);
printf("%d\t\n",z);
if(x=y=z)x=3;
printf("x=%d\t",x);
printf("z=%d\t\n",z);
}
A)x=5
x=5
B)
x=5
x=5
x=1
x=1
x=7
z=0
x=5
z=0
x=3
z=1
x=3
z=0
C)x=5
x=5
D)
x=5
x=5
x=5
x=1
x=7
z=0
x=7
z=0
x=3
z=1
x=3
z=0
的值是
D)151-B。
()
16•若有以下函数关系
x<0ty=2x
x>0ty=x
x=0ty=x+1
下面程序段能正确表示以上关系的是
y=2*x;
if(x!
=0)if(x>0)y=x;elsey=x+1;
C)if(x>=0)
if(x>0)y=x;
elsey=x+1;
elsey=2*x;
17•若有以下变量定义:
floatx;inta,b;
则正确的switch语句是
A)switch(x)
{case1.0:
printf("*\n");
case2.0:
printf("**\n");
}
B)switch(x)
{case1,2:
printf("*\n”);
case3:
printf("**\n");
}
C)switch(a+b)
{case1:
printf("*\n");
case2*a:
printf("**\n");
}
D)switch(a+b)
{case1:
printf("*\n");case1+2:
printf("**\n");
}
以下关于运算符优先顺序的描述正确的是
A)
B)
C)
D)
18.
19.
20.
改正后CA)。
()
B)y=2*x;
if(x<=0)
if(x==0)y=x+1;elsey=x;
y=x+1;
if(x<=0)
if(x<0)y=2*x;
elsey=x;
(D)
。
()
关系运算符逻辑运算符赋值运算符算术运算符
<算术运算符<关系运算符<逻辑运算符<关系运算符
<赋值运算符<算术运算符<关系运算符<赋值运算符
能正确表示a>=10或a<=0的关系表达式是
A)a>=10ora<=0
C)a>=10&&a<=0
以下不正确的if语句形式是—
A)if(x>y&&x!
=y);
_C—。
(02~03第一学期试题)
<逻辑运算符
<赋值运算符
<算术运算符
<逻辑运算符
D_。
(02~03第一学期试题)
B)a>=10|a<=0
D)a>=10||a<=0
_。
(02~03第一学期试题)
B)if(x==y)x+=y;
C)if(x!
=y)scanf(“%d'&x)elsescanf(“%d'&y);
D)if(x21.当a=1,b=3,c=5,d=4时,执行完下面程序段后x的值为B。
(02~03
第一学期试题)
if(a
if(celse
if(aif(belsex=3;
elsex=6;
elsex=7;
A)1B)2C)3D)6
22.以下if语句中语法错误的是C_。
(01~02第二学期试题)
A)if(a>b)printf(“%f”,a);B)if(a>b)printf(“%f”,a);
elseprintf(“%f”,b);
C)if(a>b)printf(“%f”,a)D)if(a>b)printf(“%'f,b);
elseprintf(