第03章 最简单的C程序设计.docx
《第03章 最简单的C程序设计.docx》由会员分享,可在线阅读,更多相关《第03章 最简单的C程序设计.docx(13页珍藏版)》请在冰豆网上搜索。
![第03章 最简单的C程序设计.docx](https://file1.bdocx.com/fileroot1/2023-1/5/ba000a6a-2df3-43b0-b1af-b8162cf63b28/ba000a6a-2df3-43b0-b1af-b8162cf63b281.gif)
第03章最简单的C程序设计
第三章最简单的C程序设计
3.1选择题
3.1putchar函数可以向终端输出一个________。
A)整型变量表达式值
B)实型变量值
C)字符串
D)字符或字符串变量
3.2以下程序的输出结果是________。
main()
{
printf(“\n*s1=%15s*”,”chinabeijing”);
printf(“\n*s2=%-5s*”,”chi”);
}
A)
*s1=chinabeijing*
*s2=**chi*
B)
*s1=chinabeijing*
*s2=chi*
C)
*s1=*chinabeijing*
*s2=chi*
D)
*s1=chinabeijing*
*s2=chi*
3.3printf函数中用到格式字符串%5s,其中数字5表示输出的字符串占用5列。
如果字符串长度大于5,则输出按方式___1___;如果字符串长度小于5,则输出按方式___2____。
A)从左起输出该字符串,右补空格
B)按原字符长从左向右全部输出
C)右对齐输出该字串,左补空格
D)输出错误信息
3.4已有定义inta=-2;和输出语句:
printf(“%8lx”,a);则以下正确的叙述是________。
A)整型变量的输出格式符只有%d一种
B)%x是格式符的一种,它可以适用于任何一种类型
C)%x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的
D)%8lx不是错误的格式符,其中数字8规定了字段的宽度
3.5以下C程序正确的运行结果是________。
main()
{
longy=-43456;
printf(“y=%-8ld\n”,y);
printf(“y=-08ld\n”,y);
printf(“y=08ld\n”,y);
printf(“y=+08ld\n”,y);
}
A)
y=-43456
B)
y=-43456
C)
y=-43456
D)
y=-43456
y=-43456
y=-43456
y=-43456
y=-0043456
y=-0043456
y=-0043456
y=-0043456
y=00043456
-43456
y=+43456
y=-43456
y=+43456
3.6以下C程序正确的运行结果是________。
main()
{
inty=2456;
printf(“y=%3o\n”,y);
printf(“y=%8o\n”,y);
printf(“y=%#8o\n”,y);
}
A)
y=2456
B)
y=4630
y=2456
y=4630
y=########2456
y=########4630
C)
y=2456
D)
y=4630
y=2456
y=4630
y=02456
y=04630
3.7以下C程序正确的运行结果是________。
main()
{
inty=23456;
printf(“y=%3x\n”,y);
printf(“y=%8x\n”,y);
printf(“y=%#8ox”,y);
}
A)
y=5ba0
B)
y=5ba0
y=5ba0
y=5ba0
y=0x5ba0
y=0x5ba0
C)
y=5ba0
D)
y=5ba0
y=5ba0
y=5ba0
y=0x5ba0
y=####5ba0
3.8若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是________。
A)scaf(“%d%lx,%le”,&x,&y,&z);
B)scanf(%2d*%d%lf”,&x,&y,&z);
C)scanf(“%x%*d%o”,&x,&y,&z);
D)scanf(%x%o%6.2f”,&x,&y,&z);
3.9已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是________。
inta1,a2;charc1,c2
scanf(%d%c%d%c”,&a1,&c1,&a2,&c2);
A)10A 20BB)10 A 20 B
C)10A20B D)10A20 B
3.10已有定义intx;floaty;且执行scanf(“%3d%f”,&x,&y);语句时,从第一列开始输入数据12345678<回车>,则x的值为____[1]____,y的值为__[2]_____。
[1]A)12345B)123C)45D)345
[2]A)无定值B)45.000000C)678.000000D)123.000000
3.11已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是________。
(注:
表示回车)
inta1,a2;charc1,c2
scanf(%d%dc”,&a1,&a2);
scanf(%c%c”,&c1,&c2);
A)1020ABB)1020
AB
C)1020AB D)1020AB
3.12已有程序段和输入数据的形式,程序中输入语句的正确形式应当为________。
main()
{
inta;floatf;
printf(“\nInputnumber:
”);
/*输入语句*/
printf(“\nf=%f,a\%d\n”,f,a);
}
Inputnumber:
4.52
A)scanf(“%d,%f”,&a,&b);
B)scanf(“%f,%d”,&f,&a);
C)scanf(“%d%f”,&a,&f);
D)scanf(“%f%d”,&f,&a);
3.13根据定义和数据的输入方式,输入语句的正确形式为________。
已有定义:
floatf1,f2;
数据的输入方式:
4.52
3.5
A)scanf(“%f,%f”,&f1,&f2);
B)scanf(“%f%f”,&f1,&f2);
C)scanf(“%3.2f%2.1f”,&f1,&f2);
D)scanf(“%3.2f%2.1f”,&f1,&f2);
3.14阅读以下程序,当输入数据的形式为:
25,13,10;,正确的结果为________。
main()
{
intx,y,z;
scanf(“%d%d%d”,&x,&y,&z);
printf(“x+y+z=%d\n);
}
A)x+y+z=48
B)x+y+z=35
C)x+z=35
D)不确定
3.15根据中已给出的数据输入和输出形式,程序中输入输出语句的正确内容是________。
main()
{
intx;
floaty;
printf(“enterx,y:
”);
/*输入语句*/
/*输出语句*/
}
输入形式enterx,y:
23.4
输出形式x+y=5.40
A)scanf(“%d,%f”,&x,&y);
printf(“\nx+y=%4.2f\n”,x+y);
B)scanf(“%d%f”,&x,&y);
printf(“\nx+y=%4.2f\n”,x+y);
C)scanf(“%d%f”,&x,&y);
printf(“\nx+y=%6.1f\n”,x+y);
D)scanf(“%d%f”,&x,&y);
printf(“\nx+y=%3.1f\n”,x+y);
3.16以下说法正确的是________。
A)输入项可以为一个实型常量,如scanf(“%f”,3.5);
B)只有格式控制,没有输入项,也能进行正确输入,如scanf(“a=%d,b=%d”);
C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%4.2f”,&f);
D)当输入数据时,必须指明变量的地址,如scanf(“%f”,&f);
3.17根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该为________。
main()
{
charch1,ch2,ch3;
/*输入语句*/
printf(“%c%c%c”,ch1,ch2,ch3);
}
输入形式:
ABC
输出形式:
AB
A)scanf(“%c%c%c”,&ch1,&ch2,&ch3);
B)scanf(“%c,%c,%c”,&ch1,&ch2,&ch3);
C)scanf(“%c%c%c”,&ch1,&ch2,&ch3);
D)scanf(“%c%c”,&ch1,&ch2,&ch3);
3.18有输入语句:
scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是________。
(└┘表示空格)
A)132<回车>
B)1,3,2<回车>
C)a=1└┘b=3└┘c=2<回车>
D)a=1,b=3,c=2<回车>
3.19以下能正确地定义整型变量a,b和c并为其赋初值5的语句是________。
A)inta=b=c=5;B)inta,b,c=5;
C)inta=5,b=5,c=5;D)a=b=c=5;
3.20已知ch是字符型变量,下面不正确的赋值语句是________。
A)ch=’a+b’;B)ch=’\0’;C)ch=’7’+’9’;D)ch=5+9;
3.21已知ch是字符型变量,下面正确的赋值语句是________。
A)ch=’123’;B)ch=’\xff’;C)ch=’\08’;D)ch=”\”;
3.22若有以下定义,则正确的赋值语句是________。
inta,b;floatx;
A)a=1,b=2,B)b++;c)a=b=5D)b=int(x);
3.23设x、y均为float型变量,则以下不合法的赋值语句是________。
A)++x;B)y=(x%2)/10;C)x*=y+8;D)x=y=0;
3.24设x、y和z均为int变量,则执行语句x=(y=(z=10)+5)-5);后,x、y和z的值是________。
A)
x=10
B)
x=10
C)
x=10
D)
x=10
y=15
y=10
y=10
y=5
z=10
z=10
z=15
z=10
3.25设有说明:
doubley=0.5,z=1.5;intx=10;则能够正确使用C语言库函数的赋值语句是________。
A)z=exp(y)+fabs(x);
B)y=log10(y)+pow(y);
C)z=sqrt(y-z);
D)x=(int)(atan2((double)x,y)+exp(y-0.2));
3.2填空题
3.26以下程序的输出结果为________。
main()
{
shorti;
i=-4;
printf(“\ni:
dec=%d,oct=%o,hex=%x,unsigned=%u\n”,i,i,i,i);
}
3.27以下程序的输出结果为________。
main()
{
printf(“*%f,%4.3f*\n”,3.14,3.1415);
}
3.28以下程序的输出结果________。
main()
{
charc=’x’;
printf(“c:
dec=%d,oct=%o,hex=%x,unsigned=%u\n”,c,c,c,c);
}
3.29已有定义intd=-2;执行以下语句后的输出结果是________。
printf(“*d
(1)=%d*d
(2)=%3d*d(3)=%-3d*\n”,d,d,d);
printf(“*d(4)=%o*d(5)=%7o*d(6=%-7o*\n”,d,d,d);
3.30已有定义intd=-2;执行以下语句后的输出结果是________。
printf(“*d
(1)=%d*d
(2)=%3d*d(3)=%-3d*\n”,d,d,d);
printf(“*d(4)=%x*d(5)=%6x*d(6=%-6x*\n”,d,d,d);
3.31已有定义floatd1=3.5,d2=-3.5;执行以下语句后的输出结果是________。
printf(“*d
(1)=%e*d
(2)=%.4e*d(3)=%10.4e*\n”,d,d,d);
printf(“*d(4)=%e*d(5)=%.6e*d(6)=%-12.5e*\n”,d,d,d);
3.32以下程序的输出结果________。
main()
{
intx=1,y=2;
printf(“x=%dy=%d*sum*=%d\n”,x,y,x+y);
printf(“10Squaredis:
%d\n”,10*10);
}
3.33以下程序的输出结果________。
#include“stdio.h”
main()
{
intx=10;floatpi=3.1416;
printf(“
(1)%d\n”,x);
printf(“
(2)%6d\n”,x);
printf(“(3)%f\n”,56.1);
printf(“(4)%14f\n”,pi);
printf(“(5)%e\n”,568.1);
printf(“(6)%14e\n”,pi);
printf(“(7)%g\n”,pi);
printf(“(8)%12g\n”,pi);
}
3.34以下程序的输出结果________。
#include“stdio.h”
main()
{
floata=123.456;doubleb=8765.4567;
printf(“
(1)%f\n”,a);
printf(“
(2)%14.3f\n”,a);
printf(“(3)%6.4f\n”,a);
printf(“(4)%lf\n”,b);
printf(“(5)%14.3f\n”,b);
printf(“(6)%8.4fl\n”,b);
printf(“(7)%8.4lf\n”,b);
}
3.35以下printf语句中*号的是___1___,输出结果是___2___。
#include“stdio.h”
main()
{
inti=1;
printf(“##%*d\n”,i,i);
i++;
printf(“##%*d\n”,i,i);
i++;
printf(“##%*d\n”,i,i);
}
3.36以下printf语句中的“-”的作用是__1__,该程序的输出结果是__2__。
include“stdio.h”
main()
{
intx=12;doublea=3.1415926;
printf(“%6d##\n”,x);
printf(“%-6d##\n”,x);
printf(“%14.10lf##\n”,a);
printf(“%-14.10lf##\n”,a);
}
3.37以下程序的输出结果是________。
#include“stdio.h”
main()
{
inta=325;
doublea=3.1415926;
printf(”a=%+06dx=%e+\n”,a,x);
}
3.38以下程序的输出结果是________。
#include“stdio.h”
main()
{
inta=252;
printf(“a=%oa=%#o\n”,a,a);
printf(“a=%xa=%#x\n”,a,a);
}
3.39以下程序的输出结果是________。
intx=7281;
printf(“
(1)x=%3d,x=%6d,x=%6o,x=%6x,x=%6u\n”,x,x,x,x,x);
printf(“
(2)x=%-3d,x=%-6d,x=$%-06d,x=$%06d,x=%%06d\n”,x,x,x,x,x,x);
printf(“(4)x=%o,x=%#o\n”,x,x);
printf(“(5)x=%x,x=%#x\n”,x,x);
3.40假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。
请填空:
a+=___1____;b=a-___2___;a-=__3___。
3.41假设变量a、b和c均为整型,以下语句借助中间变量t把a、b和c中的值进行交换,即把b中的值给a,把c中的值给b,把a中的值给以。
例如:
交换前,a=10、a=20、c=30;交换后,a=20,b=30,c=10。
请填空。
___1____;a=b;b=c;___2___;
3.42设x、y和z都是int型变量,m为long型变量,则在16位微机上执行下面赋值语句后,y值为___1___,z值为___2___,m值为__3__。
y=(x=32767,x-1);z=m=0xFFFF
3.43若x为int型变量,则以下语句后x的值是_______。
x=7;
x+=x-=x+x;
3.44若a和b均为int型变量,则以下语句的功能是___1____。
a+=b;b=a-b;a-=b;
3.45在scanf函数调用语句中,可以在格式字符和%号之间加一星号,它的作用是___1____,当输入以下数据:
10└┘└┘20└┘└┘30└┘└┘40<回车>(此处└┘代表空格,下面语句的执行结果是___2___。
inta1,a2,a3;
scanf(“%d%*d%d%d”,&a1,&a2,&a3);
3.46有一输入函数scanf(“%d”,k);则不能使float类型变量k得到正确数值的原因是___1____和___2___。
3.47已有定义inta;floatb,x;charc1,c2;为使a=3,b=6.5,x=12.6,c1=’a’,c2=’A’,正确的scanf函数调用语句是___1____,输入数据的方式为___2___。
3.48若有以下定义和语句,为使变量C1得到字符’A’,变量C2得到字符’B’,正确的格式输入形式是______。
charc1,c2;
scanf(“%4c%4c”,&c1,&c2);
3.49执行以下程序时,若从第一列开始输入数据,为使变量a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’,正确的数据输入形式是______。
main()
{
inta,b;floatx,y;charc1,c2;
scanf(“a=%db=%d”,&a,&b);
scanf(“x=%fy=%f”,&x,&y);
scanf(“c1=%cc2=%c”,&c1,&c2);
printf(“a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c”,a,b,x,y,c1,c2);
}
3.50已有定义inti,j;floatx;为将-10赋给是,410.34赋给x;则对应以下scanf函数调用语句的数据的数据输入形式______。
scanf(“%o%x%e”,&i,&j,&x);