C语言习题顺序选择循环Word文件下载.docx
《C语言习题顺序选择循环Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言习题顺序选择循环Word文件下载.docx(32页珍藏版)》请在冰豆网上搜索。
![C语言习题顺序选择循环Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-10/22/77c33115-a304-4faf-b18b-c2db2313af53/77c33115-a304-4faf-b18b-c2db2313af531.gif)
1)控制字符串,是用双引号括起来的字符串,它包括两种信息:
(1)格式说明。
由”%”和格式字符组成,如:
%d、%f、%c等。
它的作用是将输出的数据转换成指定的格式输出。
(2)普通字符。
需要原样输出的字符。
2)”输出表列”是需要输出的一些数据,可以是表达式。
题目中a的值是10,b的值是20,在
中,”a+b=“是普通字符,需原样输出。
输出表列是一个表达式,它的结果以整型输出。
答案:
a+b=30。
2.下列程序运行后输出的结果是。
inta=732;
printf(“%d\n”,a);
printf(“%2d\n”,a);
printf(“%10d\n”,a);
printf(“%-10d\n”,a);
d格式符,用来输出十进制整数。
其中%d,按整型数据的实际长度输出。
%md,m为指定的输出字段的宽度。
如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。
把a的值按原样输出:
732。
结果占2列,但732占3列大于2列,所以按实际位数输出:
printf(%10d\n”,a);
结果占10列,但732占3列小于10列,所以左端补7个空格。
结果占10列,“-”表示把数值放到左端,732占3列小于10列,所以右端补7个空格。
732
732
□□□□□□□732/*□表示空格*/
732□□□□□□□
3.已知chara=‘\103’;
则语句printf(“%3d”,a);
执行后的输出结果为(□表示空格)。
A)□67B)’c’C)67□D)103
’\103’是一个转义字符,表示一个八进制数所代表的字符,转换为十进制为67。
printf(“%3d”,a);
把’\103’转换为十进制数输出,结果占3列。
但67占2列,小于要求的3列,所以左补空格,即□67。
C。
4.下列程序运行后结果是。
#definea3345.67
{printf(“%f\n”,a);
printf(“%e\n”,a);
printf(“%4.2f\n”,a);
printf(“%3.1f\n”,a);
printf(“%10.3f\n”,a);
printf(“%-10.3f\n”,a);
f格式符,用来输出实数,以小数形式输出,小数点后输出6位。
所以printf(“%f\n”,a);
输出结果为3345.670000。
%m.nf是指,要输出的数占m列,同时小数点保留n位(四舍五入),如果输出的数大于m,则原样输出,同时小数点保留n位(四舍五入)。
如果小于m,则左补空格,同时小数点保留n位(四舍五入)。
输出结果为3345.67。
输出结果为3345.7。
e格式符,以规范化指数的形式输出,所以printf(“%e\n”,a);
3.345670e+03。
3345.670000
3.345670e+03
3345.67
3345.7
□□3345.670/*(□表示空格)*/
3345.670□□
5.下列程序运行后结果是。
{
charx=0x227f;
printf(“%d\n”,x);
A)22B)127C)255D)8831
变量x被定义成字符型,字符型占1个字节,而x被赋值为一个4位16进制的值22ff,占16位。
所以227f高8位被舍去,x的值为7fH。
执行printf(“%d\n”,x);
即把x以有符号的十进制整数输出。
B。
6.设intb=0;
下列语句的输出结果是。
printf(“%d,%d”,++b,b--);
A)1,1B)1,0C)0,0D)0,-1
printf函数的执行顺序是由右到左,输出顺序是由左向右。
7.下列程序运行时,若从键盘输入:
123<
回车>
45678<
后结果是。
charc1,c2,c3,c4,c5,c6;
scanf(“%c%c%c%c”,&
c1,&
c2,&
c3,&
c4);
c5=getchar();
c6=getchar();
putchar(c1);
putchar(c2);
printf(“%c%c\n”,c5,c6);
scanf(格式控制,地址表列)的功能是:
从键盘读取输入的信息。
其中”格式控制”的含义同printf函数;
”地址表列”是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。
其scanf(“%c%c%c%c”,&
c4)的作用是:
按照c1,c2,c3,c4在内存的地址将c1,c2,c3,c4的值存进去。
由于”%c”表示按字符形式输入数据,所以”回车符”作为一个字符,输入有效。
getchar()函数的作用从终端输入一个字符。
putchar()函数的作用是向终端输出一个字符。
所以c1=1、c2=2、c3=3、c4=回车,c5=4、c6=5。
1245。
8.设有定义inta;
floatb;
执行scanf(“%2d%f”,&
a,&
b);
语句时,若从键盘输入876543.0<
,a和b的值分别是。
scanf()可以指定输入数据所占的列数,系统自动按它截取所需数据。
%2d说明了a占两列,即为87,剩下的数字应该赋给b,但是6和5之间有一个空格,为输入终止符,所以543.0被舍弃,即b的值为6。
876。
9.已知a,b,c为int类型,执行scanf(“a=%d,b=%d,c=%d”,&
b,&
c);
后,若要使得a为1,b为2,c为3,则以下选项中正确的输入形式是()。
A)1,2,3B)a=1,b=2,c=3C)123D)a=1b=2c=3
scanf中如果在字符控制串中除了格式说明符以外还有其他字符,则在输入数据时应输入与这些相同的字符。
10.设有intx,y;
scanf(“%d%*d%d”,&
x,&
y);
从键盘输入数据10□20□30<
后,y的值是。
%*d表示跳过。
所以y的值是30。
30。
2.3.3习题
一、选择题
1.设a、b、c为整型变量,若从键盘给a、b、c输入数据,则正确的输入语句是。
A)scanf(“%f%f%f”,&
c);
B)scanf(“%d%d%d”,&
C)scanf(“%d%d%d”,a,b,c);
D)scanf(“%d%d%d”,&
a;
&
b;
2.下列程序执行后输出的结果是。
#include<
intx=‘d’;
printf(“%c”,’A’+(x-’a’+1));
A)GB)HC)ED)J
3.设整型变量a,b的值均为8。
printf(“%d,%d”,(a++,++b),b--);
的输出值是。
A)8,8B)8,7C)9,9D)8,9
4.若有以下程序段,执行后输出的结果是。
intm=100,n=0100;
printf(“%d,%o\n”,m,n);
A)100,100B)100,0100C)100,4D)100,04
5.有以下程序,其输出结果是。
{
floatx=1;
inty;
x++;
y=x+1;
printf(“x=%d,y=%f”,x,y);
A)x=2,y=3B)x=2,y=3.0C)x=2.0,y=3D)x=0,y=0.000000
6.有以下程序,其输出结果是。
#include<
voidmain()
inta;
charc=10;
floatf=100.0;
doublex;
a=f/=c*=(x=6.5);
printf(“%d,%d,%3.1f,%3.1f”,a,c,f,x);
A)1,65,1,6.5B)1,65,1.5,6.5C)1,65,1.0,6.5D)2,65,1.5,6.5
二、填空题
1.下列程序输出的结果是。
intx=7,y=5;
printf(“y=%d\n”,x%y);
}
2.下列程序输出的结果是。
floatd,f;
longk;
inti;
i=f=k=d=20/3;
printf(“%3d%3ld%5.2f%5.2f\n”,i,k,f,d);
3.下列程序输出的结果是:
。
intk=11;
printf(“k=%d,k8=%o,k16=%x\n”,k,k,k);
4.下列程序输出结果是:
。
#defineBL“!
”
printf(“%2s\n”,BL);
printf(“%15s\n”,BL);
printf(“%15.4s\n”,BL);
printf(“%-15.4s\n”,BL);
5.若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据形式应该是。
intb,c;
floata;
scanf(“%f,%d,c=%d”,&
6.当输入为56789012345a72时,执行下列程序段后,变量i、j、x、y、c的值各是什么?
inti,j;
floatx,y;
charc;
scanf(“%2d%f%f%c%d”,&
i,&
y,&
c,&
j);
三、编程题
1.已知x=3.2,y=7,z=2,计算y/3*x-2的值。
2.输入一个华氏温度,要求输出摄氏温度(结果保留2位)。
公式为c=5/9*(f-