十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
一:格式输出函数printf()
成都创新互联公司服务项目包括亭湖网站建设、亭湖网站制作、亭湖网页制作以及亭湖网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,亭湖网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到亭湖省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
1、调用形式一般为:printf("格式化控制字符串",输出表列);
2、格式化控制字符串用于指定输出格式,它有三种形式:
1、格式说明符:规定了相应输出表列内容的输出格式,以%打头,如%d、%o等
2、转义字符:用来输出转义字符所代表的控制代码或者特殊字符,比如常用的‘\n'、‘\t'
3、普通字符:需要原样输出的字符。
3、输出表列为若干需要输出的数据项,它与格式说明符在数量和类型上一一对应;
4、格式字符m指定输出数据所占宽度,n对实数表示输出n位小数,对字符串表示截取的字符个数,+表示右对齐,通常省略。
—表示左对齐,l用于长整型数据,可加在d、o、x、u前,更多格式说明符及其组合形式如下所示:
格式字符
数据对象
输出形式
数据输出方法
%(+)-md
int
unsigned
int
short
unsigned
short
char
十进制整数
1、无m按实际位数输出
2、有m输出m位;超过m位,按实际位数输出,不足补空格
3、有+(默认为+)右对齐(左补空格)
4、有-左对齐(右补空格)
%(+)-mo
八进制整数
%(+)-mx
十六进制整数
%(+)-mu
无符号整数
%(+)-mld
long
unsigned
long
十进制整数
%(+)-mlo
八进制整数
%(+)-mlx
十六进制整数
%(+)-mlu
无符号整数
%(+)-m.nf
float
double
十进制小数
%(+)-m.ne
十进制指数
%(+)-g
自动选用%f和%e中较短的输出宽度输出单、双精度浮点数
%(+)-mc
char
int
short
单个字符
1、无m输出单个字符
2、有m输出m位,补空格
3、有+(默认为+)右对齐(左补空格)
4、有-左对齐(右补空格)
%(+)-m.ns
字符串
一串字符
1.无m、n按实际字符串输出全部字符
2、有m、n仅输出前n个字符,补空格
3.有+(默认为+)右对齐(左补空格)
4、有-左对齐(右补空格)
二:格式输入函数scanf()
1、
调用格式一般为:scanf("格式化控制字符串",地址表列);
2、格式化控制字符串和printf()函数含义相似,所不同的是它是对输入格式进行控制;
3、地址表列是有若干等待输入的数据所对应的内存单元地址组成,由逗号隔开,一般形式为a,a为变量;
4、地址表列在数量和类型上和格式化控制字符串中的格式说明符一一对应;
5、格式字符h表示输入短型数据,可用在d、o、x前面,m指定输入数据所占宽度,
*表示对应的数据项读入后不赋给相应的变量,更多格式说明符及其组合如下
格式字符
数据对象
输入形式
数据输入方法
%md
int
short
unsigned
int
unsigned
short
十进制整数
1、无m按实际位数输入
2、有m输入m位,不足m则跟回车键
%mo
八进制整数
%mx
十六进制整数
%mld
long
unsigned
long
十进制整数
%mlo
八进制整数
%mlx
十六进制整数
%mlf
float
double
十进制整数
%mle
%mc
char
单个字符
1、无m取单个字符
2、有m输入m位,仅取第一个字符
%ms
字符串
一串字符
1、无m取回车或空格前若干字符
2、有m仅取前m字符
1。根据学生信息定义一个结构体类型,再说明一个该结构体类型的数组。*/
struct stu_info{
char stuNo[10];/* No */
char stuName[30];/* Name */
float stuScore[3];/* the three scores */
float aveScore; /* average score */
float totalScore; /* total score */
}stu[10];
/* 2。用input函数从键盘上输入10个学生的数据。 */
void input()
{ int i = 0;
printf("Input the students' infomation(FORMAT LIKE:No Name score1 score2 score3):\n");
while(i 10)
{ printf("Input %d:",i + 1);
scanf("%s%s%f%f%f",stu[i].stuNo,stu[i].stuName,stu[i].stuScore[0],stu[i].stuScore[1],stu[i].stuScore[2]);
i++;
}
}
1、首先创建一个c语言项目。然后右键头文件,创建一个Stu的头文件。
2、然后编写头文件的代码。再将数据结构的增删改查和结构体写入头文件。
3、然后在源文件中创建main源文件和Stu源文件。再main文件中写入int mian()代码。
4、然后在mian主函数中,写入while语句无限循环。再写入Init函数。
5、然后在Stu源文件的Init函数用printf语句,将学生管理系统输出。再创建链表的头节点head。
6、然后用switch函数对操作进行判断。再执行数据结构的增删改查功能。
k=k0xff?0x00ff:k8;其实就是
if(k0xff) {
k=0x00ff;
}else {
k=k8;
}的简写。
其实0xff和0x00ff是一样的,都表示同一个十六进制的值。
书上这么写,没有错;至于为什么,就不好说了。
可能是让你多学点知识,也可能是现在很多书其实在编写时并不是很认真的。毕竟尽信书不如无书!
后面的k8是把0xff的值右移8位,达到计算的目的(具体什么目的要看具体内容)
第一个要求:
#include
stdio.h
void
main()
{
char
a
;
scanf("%c",a)
;
/*
从键盘上输入一个单个字符,并存入变量
a
中
*/
if(
(
a
=
'a'
)
(
a
=
'z'
)
)
/*
如果输入的是
小写字母
*/
{
a-=32
;
/*
把相应的小写字母转换为
大写字母
,并输出
*/
printf("%c",a)
;
}
else
/*
如果是其它所有字母的话,就直接输出字母本身
*/
printf("%c\n",
a
)
;
}
第二个要求:
65(按
十进制
格式输出)
101(按
八进制
格式输出)
41(按
十六进制
格式输出)
A(输出ASCII
为
65
的字符本身,为大写的
A)
定义的input(int
m)
m作用的作用从代码
printf("%s输入一个二进制数:\n",m?"请":"输入有误,请重新");
中的
m?"请":"输入有误,请重新"
这个三目运算符可以看出:
当m=1时
输出:请输入一个二进制数:
m
!=1时
输出:
输入有误,请重新输入一个二进制数:
也就是为了提示用户用的!
所以
这里的
n=input(1)
的
1就是说明要求系统提示:输入有误,请重新输入一个二进制数: