c语言作业二(物联1234liachulian)
#1.已有定义int x; float y;且执行scanf(“%3d%f”, &x, &y);|语句时,假设输入数据为12345口678↙,则x、y的值分别为(),解释原因。
A.12345 678.000000 B.123 678.000000 C.123 45.678000 D.123 45.000000
答案:d
原因:%3d取三位整数,取了123。%f取到六位小数,但45后面有空格隔开,所以后面的数取不到,输出整数45用0补满六位小数。
##2.阅读以下程序,当输入数据的形式为::12a345b789/已知正确答案为(A),请用文字解释原因。 void main ( )
{ char c1, c2;
int al, a2;
c1 = getchar( );
scanf (“%2d”, &al);
c2 =getchar ( );
scanf (“%3d”, &a2);
printf (“%d, %d, %c, %c\n”, a1, a2, c1, c2);
}
A. 2, 345, 1, a B.12,345,a, b
C.2a, 45b, 1,3 D. 2, 789, 1, a
原因;getchar()函数读取的字符是a,存储在c1中。
- scanf()函数读取的是一个两位数的整数,所以在输入12a345b789时,al的值为12。
- 然后程序读取一个字符,即a,存储在c2中。
- 最后printf()函数输出a1,a2,c1和c2的值,即12,345,1(对应a的ASCII码值)和a。
###1.已有定义int x;
3.填空: 以下程序的输出结果为:_____。
void main( )
{
int k=17;
printf(“%d, %o, %x\n”, k, k, k);
}
答案:这个程序的输出结果是:17, 21, 11。
####4.填空:以下程序的输出结果为
#include <stdio.h>
void main( )
{
printf(“*%f, %4.3f*\n”, 3.14, 3.1415);
}
答案:这段代码输出的结果是:3.140,3.142。
#####5.在Dev Cpp平台上新建一个项目,仿照PPT【4.2.1键盘输入和屏幕输出(下)],完成功能:在命令窗口输入任意大写英文字母,输出值为对应的小写英文字母。
#include<stdio.h>
main()
{
char ch;
printf("press a key and then press enter:");
ch = getchar();
ch = ch + 32;
putchar(ch);
putchar('\n');
}
######6.在 Dev Cpp平台上新建一个项目,输入下方截图的程序代码(同样也是上课的例子)。假设输入a=12,b=‘a’,c=3.5,观察其输出。在这个过程中,程序出现了什么问题,应该如何补救?请对补救方法重新生成一段新的程序,并观察其输出。(要求在CSDN/博客园上粘贴下方代码,以及输入输出截图;改进后的代码,以及改进后的输入输出截图.
#include<stdio.h>
main()
{
int a;
char b;
float c;
printf("please input an integer:");
scanf("%d",&a);
printf("integer:%d\n",a);
printf("please input an character:");
scanf("%c",&b);
printf("character:%c\n",b);
printf("please input an float number:");
scanf("%f",&c);
printf("float%f\n",c);
}
#include<stdio.h>
main()
{
int a;
char b;
float c;
printf("please input an integer:");
scanf("%d",&a);
printf("integer:%d\n",a);
int ch = getchar();
printf("please input an character:");
scanf("%c",&b);
printf("character:%c\n",b);
printf("please input an float number:");
scanf("%f",&c);
printf("float%f\n",c);
}