关于C语言的问题~ C语言程序设计(第四版)里说,在用键盘输入信息时,这些字符先暂存在键盘的缓冲

关于C语言的问题~ C语言程序设计(第四版)里说,在用键盘输入信息时,这些字符先暂存在键盘的缓冲,第1张

用来接受回车的是ch, 它是一个变量不是数组, 而用来保存文件名的是一个字符数组

C语言几乎所有输入的函数都是先检查输入缓冲区是否为空, 如果空, 就让键盘输入, 输入的字符如果是回车符, 就结束输入, 然后输入的数据保存到输入缓冲区(就包括那个回车符), 最后再从缓冲区中读数据, 其中如果遇到非法字符, 结束读取, 返回EOF 如果遇到空白符(回车, 空格)就表示这个数据的结束

例如:scanf("%d", &i);scanf("%d", &i);

先是输入, 如果输入了123\n

那么, scanf在读取123的时候, 是正常的, 然后读取到\n, 它是空白符, 于是就结束输入, 而这个空白符是没会被删除的, 它还在输入缓冲区里

然后后面还有一个要输入的, 因为输入缓冲区不为区, 所以直接读取数据, 但是第一个读到的数据就是空白符, 而后面也没有数据了, 所以返回EOF 这样就会导致输入错误

所以一般来说scanf前面都会加一个空格如: scanf(" %d", &i);这样那个空格就会和上一次输入留下的回车符抵消

1,输出:c1=a,c2=b

c1=97,c2=98

原因:因为输出为整型格式时,就输出对应的ASC代码值;字符格式就输出相应的字符。

2,输出:c1=?,c2=?

c1=-59c2=-58

原因:英文字母对应的asc值越界,所以输出?(不能输出对应的特殊符号,应为格式是%c),至于后面输出的负数,是因为字符常量在内存中存储的时候实际上是以二进制形式存储的,197和198存储进去,内存中因为越界不能完整存储相应的二进制码,而存储的二进制码输出来的整数就是那二进制码对应的负数了。

3,输出:c1=a,c2=b

c1=97,c2=98

原因和1的问基本相同了。。

我有一本谭浩强的那个书,电子书自己去下了网上很多的。

谭浩强004

链接:> 提取码:ncnf 复制这段内容后打开百度网盘手机APP, *** 作更方便哦!

若资源有问题欢迎追问~

楼主您好!

计算机二级主要考C语言程序设计

笔试+上机,谭浩强的c程序设计是大学计算机专业必备课程之一,对考试很有用处,当然,光看书不够,要多做练习。

等级设置

全国计算机等级考试设四个等级。它不以评价教学为目的,考核内容不是按照学校要求设定,而是根据社会不同部门应用计算机的不同程度和需要、国内计算机技术的发展情况以及中国计算机教育、教学和普及的现状而确定的;它以应用能力为主,划分等级,分别考核,为人员择业、人才流动提供其计算机应用知识与能力水平的证明。考试具有中国特色,特别是,四级考试与美国教育考试服务处(ETS)技术合作,追踪世界先进水平,按国际规范设计考试。

NCRE级别/科目设置如下:

级别

科目/类别

考试形式

一级

MS

Office

上机

一级

B

上机

一级

WPS

Office

上机

二级

C语言程序设计

笔试+上机

二级

Visual

Basic语言程序设计

笔试+上机

二级

Visual

FoxPro数据库程序设计

笔试+上机

二级

Access数据库程序设计

笔试+上机

二级

C++语言程序设计

笔试+上机

二级

Java语言程序设计

笔试+上机

二级

Delphi语言程序设计

笔试+上机

三级

PC技术

笔试+上机

三级

信息管理技术

笔试+上机

三级

数据库技术

笔试+上机

三级

网络技术

笔试+上机

四级

网络工程师

笔试

四级

数据库工程师

笔试

四级

软件测试工程师

笔试

计算机职业英语

一级(部分省市开考)

#include<stdioh>

#define SIZE 10

struct student_type

{

char name[10];

int num;

int age;

char addr[15];

}stud[SIZE]; //定义全局结构体数组,包含10个学生信息

void save()

{

FILE fp;

int i;

if((fp=fopen("studat","wb"))==NULL)

{

printf("无法打开文件\n");

return ;

}

for(i=0;i<SIZE;i++)

// { 你多加括号了这里,for语句不能包含fclose(fp)函数。

if(fwrite(&stud[i],sizeof(struct student_type),1,fp)!=1) //fwrite,fread 执行成功,则返回值为形参count的值

printf("文件写入错误\n");

fclose(fp);

// } 这个也去掉。

}

int main()

{

int i;

printf("请输入学生的数据:\n");

for(i=0;i<SIZE;i++)

scanf("%s%d%d%s",stud[i]name,&stud[i]num,&stud[i]age,stud[i]addr);

save();

return 0;

}

你for循环多加大括号了,循环体包含多了,已帮你改正!

以上就是关于关于C语言的问题~ C语言程序设计(第四版)里说,在用键盘输入信息时,这些字符先暂存在键盘的缓冲全部的内容,包括:关于C语言的问题~ C语言程序设计(第四版)里说,在用键盘输入信息时,这些字符先暂存在键盘的缓冲、关于C语言的问题求助! 另求C程序设计第四版(谭浩强编)的答案、谁有谭浩强《C语言程序设计》第四版的教学视频麻烦了等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9310971.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存