复习题:
1.
程序无法继续工作,输入的内容由名字变成姓与名之后,scanf函数只能读取姓(中国习惯),名被保留在了缓冲区,导致第二个输入的体重无法读取,只能去读取缓冲区的名,名不是十进制的整数,导致程序无法正常工作。
2.
a.He sold the painting for $2.34.
b.Hi!
c.His Hamlet was funny without being vulgar.
has 42 characters.
d.Is 1.20e+003 the same as 1201.00?
3.
使用\”。
更改之后:printf(“\”%s\”\n has %d characters.\n”, Q, strlen(Q))
4.
更改之后的代码:
#include
5.
printf("The copy of %c sells for %0.2f./nThat is %% %0.0f of list./n.", BOOK, cost, percent);
6.
a. %d
b. %4X
c. %1.3f
d.%12.2e
e. %-30c
7.
a. %15lu
b. %#4x
c. %-12.2E
d. %+10.3f
e. %8.8s
8.
a. %6.4d
b. %*0
c. %2c
d. %+0.2f
e. %-7.5s
9.
a. int a
scanf(“%d”, &a);
b. float b, c
scanf(“%f%E”, &b, &c);
c. char c[40]
scanf(“%s”, linguini);
d. char d[40]
int dd
scanf(“%s %d”, d, &dd);
e.int ee
scanf(“%s %d”, e, &ee);
10.
空格,制表符,换行符
11.
可以替换,但是预处理器无法分别。
编程练习
1.
#include <stdio.h>
int main(void)
{
char name[20];
char familyname[20];
printf("What's your full name?\n");
scanf("%s%s", name, familyname);
printf("Your name is %s, %s.\n", name, familyname);
return 0;
}
2.
#include <stdio.h>
#include <string.h>
int main(void)
{
char name[20];
int width;
printf("Enter your name:\n");
scanf("%s", name);
printf("\"%s\"\n", name);
printf("\"%20s\"\n", name);
printf("\"%-20s\"\n", name);
width = strlen(name)+ 3;
printf("%*s\n", width, name);
return 0;
}
3.
#include <stdio.h>
int main(void)
{
float num;
printf("Enter a number:\n");
scanf("%f", &num);
printf("a.The input is %0.1f or %0.1e.\n", num, num);
printf("b.The input is %+.3f or %0.3E.\n", num, num);
return 0;
}
4.
#include <stdio.h>
int main(void)
{
float height;
char name[20];
printf("Enter your height(feet) and your name:\n");
scanf("%f %s", &height, name);
printf("%s, you are %f feet tall.\n", name, height);
return 0;
}
5.
#include <stdio.h>
#include <string.h>
int main(void)
{
char name[20], firstname[20];
printf("Enter your full name:\n");
scanf("%s %s", firstname, name);
printf("%s %s\n", firstname, name);
printf("%*d %*d\n", strlen(firstname), strlen(firstname), strlen(name), strlen(name));
printf("%s %s\n", firstname, name);
printf("%-*d% -*d\n", strlen(firstname), strlen(firstname), strlen(name), strlen(name));
return 0;
}
6.
#include <stdio.h>
#include <float.h>
int main(void)
{
double dou = 1.0/3.0;
float doub = 1.0/3.0;
printf("%0.4f %0.4f\n", dou, doub);
printf("%0.12f %0.12f\n", dou, doub);
printf("%0.16f %0.16f\n", dou, doub);
printf("%d %d", FLT_DIG, DBL_DIG);
return 0;
}
7.
#include <stdio.h>
#define L 3.785
#define KM 1.609
int main(void)
{
float miles, gal, km, l;
printf("Enter your miles and gal:\n");
scanf("%f %f", &miles, &gal);
printf("%0.1f\n", miles / gal);
km = KM * miles;
l = L * gal;
printf("%0.1f\n", l / 100 * km);
return 0;
}