C Primer Plus 第四章所学

C Primer Plus 第四章所学

一:

Q1如何用printf打印出双引号?

众所周知,在c语言中想用printf打印出内容的格式是printf("xxxxxxxxxx");这样就可以打印出双引号里的全部东西,但是我们这里会发现双引号就像是一个标志,让编码器不管什么其他的,看到以双引号为标记点打印出双引号里的全部内容。那么既然是打印双引号里的全部内容,如何打印双引号呢

A1:\"xxxxxxx"\ ; 以这样的格式便可以打印出双引号。eg printf("xxxxxxxxx\"asdfg"\"):

输出结果为 xxxxxxxx"asdfg"

---------------------------------------------------------------------------------------------------------------------------------

二:

Q2如何是输出结果出现在你想要控制器界面的位置?

在学习谭浩强《程序设计基础中》有一道上机题,这道题要求让*组成菱形图案。在做这道题是老师要求编译结果让图案居中,由于涉及到for循环,两种实现方式不相同。在这个地方实现题目要求就比较简单。补充一下知识点

point1:以打印数字为例printf(“xxxxx%d",number)

在%后输入数字可以实现空几格eg printf(“xxxxx%2d",number)

输出结果就为xxxxx 66

如果想输出带小数点的数字可以以.number的形式 eg printf(“xxxxx%.2d",number)

输出结果为xxxxxx66.00

第二题的第四小问”在比姓名宽度宽3的字段中打印名和姓“需要我们先知道姓名的字符长度。而这时我们就需要用到strlen函数和sizeof函数

Q2.1:strlen函数与sizeof函数有什么区别?

A2.1:还在学

Q2.2:如何使用strlen函数

A2.2:char str[] = "Hello World";

int len = strlen(str)

point2:修饰符“*”

在scanf中意为跳过几个字符(*4)会从头跳过四个字符

在printf中意为空开几个位置 eg:

int a, b; a = 66, b = 2; printf("%*d\n", b + 2, a);

输出结果为xx66;相当于%4d;

---------------------------------------------------------------------------------------------------------------------------------code如下

/*

第一题

#include

int main() {

char first,last;

printf("please enter your first name: ");

scanf("%s", &first);

printf("please enter your last name: ");

scanf("%s", &last);

printf("your full name is %s %s", &first, &last);

return 0;

}*/

/*

第二题

#include

#include

int main() {

char name;

printf("please enter your name: ");

scanf("%s", &name);

printf("your name is \"%20s\"\n" , &name);

printf("your name is \"%20s\"\n" , &name);

char len = strlen(&name);

char placeholder[20] = "your name is \"%*s\"\n";

printf(placeholder, len + 3 & name);

return 0;

}*/

/*

第三题

#include

int main() {

float num;

printf("please enter a number: ");

scanf("%f", &num);

printf("the number is %.1f or %.1e\n", num, num);

return 0;

}*/

/*

第四题

#include

int main() {

float height;

char name[40];

printf("Enter your name: ");

scanf("%s", name);

printf("Hi %s, how tall are you? ", name);

scanf("%f", &height);

printf("%s, you are %.3f feet %d inches.\n", name, height/12.0, (int)(height - height/12.0*12.0)*12);

return 0;

}

*/

/*

第五题

#include

int main(void) {

char name[40], surname[40];

int wname, wsurname;

printf("Please input your first name: ");

scanf("%s", name);

printf("Please input your last name: ");

scanf("%s", surname);

// 通过 scanf() 函数分别读取用户的名和姓

wname = printf("%s", name);

printf(" ");

wsurname = printf("%s", surname);

//分别打印用户的名和姓,通过返回值记录其字符数量

printf("\n%d %d", wname, wsurname);

//打印其字符数量,由于数量不确定,因此使用 * 号修饰符和参数的形式。

//如果使用 strlen() 函数,则可以不用定义 wname 和 wsurname 变量,

//直接使用以下代码

//printf("\n%d %d", strlen(name), strlen(surname));

return 0;

}

*/

/*

第七题

#include

#include

int main(void) {

double d_third = 1.0 / 3.0;

float f_third = 1.0 / 3.0;

printf("float of one third(6) = %.6f\n", f_third); //float类型,有6位有效数字

printf("float of one third(12) = %.12f\n", f_third); //float类型,有12位有效数字

printf("float of one third(16) = %.16f\n", f_third); // float类型,有16位有效数字

printf("double of one third(6) = %.6f\n", d_third); //double类型,有6位有效数字

printf("double of one third(12) = %.12f\n", d_third); // double类型,有12位有效数字

printf("double of one third(16) = %.16f\n", d_third); // double类型,有16位有效数字

printf("FLT_DIG in float.h is %d\n", FLT_DIG); //float类型精度

printf("DBL_DIG in float.h is %d\n", DBL_DIG); //double类型精度

return 0;

}

*/

/*

第八题

#include

#define GALLON_TO_LITER 3.785

#define MILE_TO_KM 1.609

int main(void) {

float range, oil;

printf("Please input the range you traveled(in mile): ");

scanf("%f", &range);

printf("Please input the oil you spend(in gallon): ");

scanf("%f", &oil);

printf("In US, your oil wear is %.1f M/G\n", range / oil);

printf("In Europe, your oil wear is %.1f L/100KM", (oil * GALLON_TO_LITER * 100) / (range * MILE_TO_KM));

return 0;

}

*/

🎊 相关推荐

40歲年薪應該多少?
365bet体育网站

40歲年薪應該多少?

📅 06-29 👀 1275
我的百合网(百合网如何解绑续费?)
365bet娱乐

我的百合网(百合网如何解绑续费?)

📅 07-01 👀 925
包含《喃》的名句
365bet娱乐

包含《喃》的名句

📅 06-28 👀 532