C语言作业题答案.docx
《C语言作业题答案.docx》由会员分享,可在线阅读,更多相关《C语言作业题答案.docx(32页珍藏版)》请在冰豆网上搜索。
C语言作业题答案
东华理工大学:
C语言第三章作业题
C程序设计第三章闭/开卷课程类别:
考试/考查
题号
一
二
三
四
五
六
七
八
九
总分
分数
评卷人
第三章顺序结构程序设计
一、选择题
1.C语言中调用printf进行输出时需要注意,在格式控制串中,格式说明与输出项的个数必须相同。
如果格式说明的个数小于输出项的个数,多余的输出项将A;如果格式说明的个数多于输出项的个数,则对于多余的格式将输出不定值(或0)。
A)不予输出B)输出空格
C)照样输出D)输出不定值或0
2.在scanf函数的格式控制中,格式说明的类型与输入的类型应该一一对应匹配。
如果类型不匹配,系统B。
A)不予接收
B)并不给出出错信息,但不可能得出正确信息数据
C)能接受正确输入
D)给出出错信息,不予接收输入
3.下列说法正确的是D。
A)输入项可以是一个实型常量,如scanf("%f",4.8);
B)只有格式控制,没有输入项也能进行正确输入,如scanf("a=%d,b=%d");
C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%5.3f",&f);
D)当输入数据时,必须指明变量的地址,如scanf("%f",&f);
4.根据题目中已给出的数据的输入和输出形式,程序中输入/输出语句的正确是B。
main()
{inta;floatx;
printf("inputa,x:
");
输入语句
输出语句
}
输入形式inputa,x:
32.1
输出形式a+x=5.10
A)scanf("%d,%f",&a,&x);
printf("\na+x=%4.2f",a+x);
B)scanf("%d%f",&a.&x);
printf("\na+x=%4.2f",a+x);
C)scanf("%d%f",&a,&x);
printf("\na+x=%6.1f",a+x);
D)scanf("%d%3.1f",&a,&x);
printf("\na+x=%4.2f",a+x);
5.以下程序的输出结果是A。
main()
{
inti=010,j=10,k=0x10;
printf("%d,%d,%d\n",i,j,k);
A)8,10,16B)8,10,10C)10,10,10D)10,10,16
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,11D)11,11,16
7.以下程序的输出结果是B。
#include
main()
{printf("%d\n",NULL);}
A)不确定的值(因变量无定义)B)0
C)-1D)1
8.以下程序的输出结果是B。
main()
{
charc1='6',c2='0';
printf("%c,%c,%d,%d\n",c1,c2,c1-c2,c1+c2);
}
A)因输出格式不合法,输出出错信息B)6,0,6,102
C)6,0,7,6D)6,0,5,7
9.设有如下定义
intx=10,y=3,z;
则语句
printf("%d\n",z=(x%y,x/y));
的输出结果是A。
A)3B)0C)4D)1
10.设有如下定义
intx=10,y=5,z;
则语句
printf("%d\n",z=(x+=y,x/y));
的输出结果是D。
A)1B)0C)4D)3
11.以下程序的输出结果是D。
main()
{intx=10,y=10;
printf("%d%d\n",x--,--y);
}
A)1010B)99C)910D)109
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-321C)12-321D)11121
13.写出下面程序的输出结果A。
main()
{
intx,y,z;
x=y=1;
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的正确程序段是C。
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,则输出方式为C。
A)从左起输出该字符串,右补空格B)按原字符长从左向右全部输出
C)右对齐输出该字符,左补空格D)输出错误信息
18.以下C程序,正确的运行结果是C。
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=-34567B)y=-34567
y=-34567y=-34567
y=-0034567y=-0034567
y=-34567y=+-34567
C)y=-34567D)y=-34567
y=-34567y=-0034567
y=-0034567y=00034567
y=-34567y=+34567
19.C程序的基本编译单位是B。
(01~02第二学期试题)
A)函数B)文件C)源文件D)子程序
20.设有如下定义和执行语句,其输出结果为:
A。
(03试题)
inta=3,b=3;
a=--b+1;printf(“%d%d”,a,b);
A)32B)42C)22D)23
21.根据定义和数据的输入方式,输入语句的正确形式为:
A。
(往届试题)
已有定义:
floata1,a2;
数据的输入方式:
4.523
3.52
A)scanf(“%f%f”,&a1,&a2);
B)scanf(“%f,%f”,a1,a2);
C)scanf(“%4.3f,%3.2f”,&a1,&a2);
D)scanf(“%4.3f%3.2f”,a1,a2);
22.以下程序的输出结果是:
A。
(往届试题)
main()
{intI=012,j=12,k=0x12;
printf(“%d,%d,%d\n”,I,j,k);
A)10,12,18B)12,12,12
C)10,12,12D)12,12,18
23.以下程序的输出结果是:
(注:
▂表示空格)D。
(往届试题)
main()
{printf(“\n*s1=%8s*”,“china”);
printf(“\n*s2=%-5s*”,“chi”);}
A)*s1=china▂▂▂*B)*s1=china▂▂▂*
*s2=chi**s2=chi▂▂*
C)*s1=▂▂▂china*D)*s1=▂▂▂china*
*s2=▂▂chi**s2=chi▂▂*
二.填空题
1.C语言中的语句可分为5类,即控制语句空语句复合语句函数调用语句表达式语句。
2.由一次函数调用加一个分号构成一个函数调用语句语句。
3.putchar函数的作用是向终端输出一个字符。
4.printf是C语言提供的标准输出函数,它的作用是在终端设备上(或系统隐含的输出设备上)按照指定的格式进行输出。
5.printf函数的“格式控制”包括两部分,他们是格式说明和普通字符。
6.对不同类型的语句有不同的格式字符。
例如:
d格式字符是用来输出十进制整数,c格式字符是用来输出一个字符,s格式字符是用来输出一个字符串。
7.%-ms表示如果串长小于m,则在m列范围内,字符串向左靠,右补空格。
8.如果要输出字符“&”,则应该在“格式控制”字符串中用%c表示。
9.getchar函数的作用是从终端输入一个字符。
10.符号“&”是地址运算符,&a是指a内存中的地址。
11.scanf函数中的“格式控制”后面应当是变量地址,而不是变量名。
12.C语言中的空语句就是一个分号空操作。
13.复合语句是由一对大括号括起来的若干语句组成。
14.分析下面程序:
#include
main()
{
intx=2,y,z;
10
40
4
4
x*=3+2;printf("%d\n",x);
x*=y=z=4;printf("%d\n",x);
x=y=z;printf("%d\n",x);
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)
{floata=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。
#include
main()
{chara;
a='A';
printf("%d%c",a,a);
}
17.分析下面程序
main
{
intx=2,y,z;
10
40
2,0
3,0
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()
{
32
16,15
40
13,13
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.以下程序的输出结果为:
__3.140000,3.142__________。
(03试题)
main()
{floata=3.14,b=3.14159;
printf(“%f,%5.3f\n”,a,b);}
20.以下程序的输出结果为:
___a回车_________。
(04~05第二学期试题)
#include
main()
{charc1,c2;
c1=‘a’;
c2=‘\n’;
printf(“%c%c”,c1,c2);}
东华理工大学:
C语言第四章作业题
C程序设计第四章闭/开卷课程类别:
考试/考查
题号
一
二
三
四
五
六
七
八
九
总分
分数
评卷人
第四章选择结构程序设计
一、选择题
1.下列运算符中优先级最高的是B。
()
A)>B)+C)&&D)!
=
2.以下关于运算符优先级的描述中,正确的是A。
()
A)!
(逻辑非)>算术运算>关系运算>&&(逻辑与)>||(逻辑或)>赋值运算
B)&&(逻辑与)>算术运算>关系运算>赋值运算
C)关系运算>算术运算>&&(逻辑与)>||(逻辑或)>赋值运算
D)赋值运算>算术运算>关系运算>&&(逻辑与)>||(逻辑或)
3.逻辑运算符的运算对象的数据类型D。
()
A)只能是0或1B)只能是.T.或.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;
y=1;
c=0;
c=x++||y++;
printf(“\n%d%d%d\n”,x,y,c);
}
A)110B)211C)011D)001
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)’A’<=ch<=’Z’B)(ch>=’A’)&(ch<=’Z’)
C)(ch>=’A’)&&(ch<=’Z’)D)(ch>=’A’)AND(ch<=’Z’)
8.判断字符型变量ch为小写字母的表达式是D。
()
A)’a’<=ch<=’z’B)(ch>=a)&&(ch<=z)
C)(ch>=’a’)||(ch<=’z’)D)(ch>=’a’)&&(ch<=’z’)
9.以下if语句书写正确的是B。
()
A)if(x=0;)B)if(x>0)
printf(”%f”,x);{x=x+1;printf(”%f”,x);}
elseprintf(”%f”,-x);elseprintf(”%f”,-x);
C)if(x>0);D)if(x>0)
{x=x+1;printf(”%f”,x);}{x=x+1;printf(”%f”,x)}
elseprintf(”%f”,-x);elseprintf(”%f”,-x);
10.分析以下程序:
main()
{intx=5,a=0,b=0;
if(x=a+b)printf(“****\n”);
elseprintf(“####\n”);
以上程序D。
()
A)有语法错,不能通过编译B)通过编译,但不能连接
C)输出****D)输出####
11.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是A。
()
main()
{intx;
scanf(“%d”,&x);
if(x++>5)printf(“%d”,x);
elseprintf(“%d\n”,x--);
}
A)7和5B)6和3C)7和4D)6和4
12.写出下面程序的执行结果D。
()
main()
{intx,y=1;
if(y!
=0)x=5;
printf(“%d\t”,x);
if(y==0)x=3;
elsex=5;
printf(“%d\t\n”,x);
}
A)13B)15C)53D)55
13.写出下面程序的执行结果A。
()
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)170B)370C)550D)151
14.假定所有变量均已正确说明,下列程序段运行后x的值是B。
()
a=b=c=0;x=35;
if(!
a)x=-1;
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=5x=5B)x=5x=5
x=1x=1
x=7z=0x=5z=0
x=3z=1x=3z=0
C)x=5x=5D)x=5x=5
x=5x=1
x=7z=0x=7z=0
x=3z=1x=3z=0
16.若有以下函数关系
x<0→y=2x
x>0→y=x
x=0→y=x+1
下面程序段能正确表示以上关系的是改正后C。
()
A)y=2*x;B)y=2*x;
if(x!
=0)if(x<=0)
if(x>0)y=x;if(x==0)y=x+1;
elsey=x+1;elsey=x;
C)if(x>=0)(D)y=x+1;
if(x>0)y=x;if(x<=0)
elsey=x+1;if(x<0)y=2*x;
elsey=2*x;elsey=x;
17.若有以下变量定义:
floatx;inta,b;
则正确的switch语句是D。
()
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");
}
18.以下关于运算符优先顺序的描述正确的是C。
(02~03第一学期试题)
A)关系运算符<算术运算符<赋值运算符<逻辑运算符
B)逻辑运算符<关系运算符<算术运算符<赋值运算符
C)赋值运算符<逻辑运算符<关系运算符<算术运算符
D)算术运算符<关系运算符<赋值运算符<逻辑运算符
19.能正确表示a>=10或a<=0的关系表达式是D。
(02~03第一学期试题)
A)a>=10ora<=0B)a>=10|a<=0
C)a>=10&&a<=0D)a>=10||a<=0
20.以下不正确的if语句形式是C。
(02~03第一学期试题)
A)if(x>y&&x!
=y);
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(“%f”,b);elseprintf(“%f”,a);
23.能表示整数x符合下面两个条件的语句是A。
(01~02第二学期试题)
(1)“能被4整除,但不能被100整除”.
(2)能被4整除,又能被400整除.
A)(x%4==0&&x%100!
=0)||x%400==0
B)(x%4==0||x%100!
=0)&&x%400==0
C)(x%4==0&&x%400!