文件传输程序设计汇总

文件传输程序设计汇总
文件传输程序设计汇总

Internet网络程序设计实验报告基于Socket的文件传输程序设计

姓名:莫敌

班级:软件 0904

学号:U200917895

指导老师:陆永忠

2012.03.31

目录

1 实验目的及要求 (3)

1.1 实验目的 (3)

1.2 实验要求 (3)

2 实验环境 (3)

3 实验程序设计 (3)

3.1 设计思想 (3)

3.2 程序设计流程框图 (4)

3.3 详细设计 (5)

3.3.1 界面设计 (5)

3.3.2 主要功能实现 (6)

3.4 运行结果 (9)

4 实验感想 (11)

1实验目的及要求

1.1实验目的

熟悉Socket的通讯机制,了解网络程序的设计方法。重点掌握基于TCP协议的Socket 网络编程。

1.2实验要求

设计界面,在服务器端和客户端传输图片和文件。如果是图片请显示该图片,如果是其他文件,则保存。

2实验环境

编译环境:Windows 7 + Visual Studio 2010 使用MFC编写。

运行环境:Windows 7操作系统。

3实验程序设计

3.1设计思想

根据实验的要求:在服务器和客户端之间传输文件和图片,则需要程序提供一种可靠的网络传输服务来保证文件在传输过程中无丢失、损坏。在分析了传输层协议TCP协议和UDP 协议后,了解到TCP协议提供的是一种面向连接的、可靠的字节流服务,而UDP协议提供的是一种无连接的、不可靠的数据报服务。由于程序的需求,即必须保证文件传输的可靠性,于是,我采用基于TCP协议的Windows sockets来设计实现本实验。

3.2程序设计流程框图

图1程序设计流程框图

3.3详细设计

基于TCP的socket编程流程:

服务器端:

创建套接字(socket)。

将套接字绑定到一个本地地址和端口上(bind)。

将套接字设为监听模式,准备接收客户端请求(listen)。

等待客户端请求到来。当请求到来后,接收连接请求,返回一个新的对应于此次连接的套件字(accept)。

用返回的套接字和客户端进行通信(send/recv)。

返回,等待另一客户端请求。

关闭套接字。

客户端:

创建套接字(socket)。

向服务器发出连接请求(connect)。

和服务器端进行通信(send/recv)。

关闭套接字。

3.3.1界面设计

图2程序界面

由于程序实现的功能单一简单,所以我的程序界面设计如图2所示。

程序由两个用户可操作的控件组成:IP地址控件,用户输入将要接收文件的接收方IP 地址;“发送文件”按钮,单击选择用户要发送的文件并发送所选文件数据。

3.3.2主要功能实现

套接字库加载:

AfxSocketInit()

接收线程:

UINT RecvProc( LPVOID pParam )

{

while (TRUE)

{

CSocket tmpSock;

CSocket servSock;

tmpSock.Create(5000);

tmpSock.Listen(1);

tmpSock.Accept(servSock);

char fileNameRecv[500] = {0};

int a = servSock.Receive(fileNameRecv, 500);

CFileDialog saveDlg(FALSE, NULL, NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, "所有文件(*.*)|*.*||");

saveDlg.m_ofn.lpstrFile = fileNameRecv;

if (IDOK == saveDlg.DoModal())

{

CFile recvFile;

CString recvPathName;

recvPathName = saveDlg.GetPathName();

recvFile.Open(recvPathName, CFile::modeCreate | CFile::modeWrite);

UINT uiLength;

servSock.Receive(&uiLength, 4);

int iBufSize = 1024 * 5;

int iSize = iBufSize;

LPBYTE pBuf = new BYTE[iBufSize];

int iNumByte;

UINT uiTotal = 0;

while (uiTotal < uiLength)

{

if ((int)(uiLength - uiTotal) < iBufSize)

{

iSize = uiLength - uiTotal;

}

int iCount = 0;

while (iCount < iSize)

{

iNumByte = servSock.Receive(pBuf, iSize - iCount);

iCount += iNumByte;

recvFile.Write(pBuf, iNumByte);

}

uiTotal += iCount;

}

recvFile.Close();

servSock.Close();

char ext[10];

CString tmpExt;

_splitpath(recvPathName, NULL, NULL, NULL, ext);

tmpExt = ext;

if(".bmp"== tmpExt || ".pcx"== tmpExt || ".tiff"== tmpExt || ".gif"== tmpExt || ".jpg" == tmpExt || ".jpeg" == tmpExt || ".tga" == tmpExt || ".exif" == tmpExt || ".fpx" == tmpExt)

{

ShellExecute(NULL, "open", recvPathName, NULL, NULL, SW_SHOWNORMAL);

}

}

}

return 0;

}

发送文件按钮:

void CmyFileTransferDlg::OnBnClickedBtnSend()

{

CFileDialog openDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, "所有文件(*.*)|*.*||");

if (IDOK == openDlg.DoModal())

{

CString openFileName;

openFileName = openDlg.GetFileName();

CSocket sendSock;

sendSock.Create();

CString IPstr;

this->GetDlgItem(IDC_IPADDRESS1)->GetWindowText(IPstr);

if (sendSock.Connect(IPstr, 5000) == 0)

{

return;

}

CFile sendFile;

sendFile.Open(openDlg.GetPathName(), CFile::modeRead);

sendSock.Send(openFileName, 500);

UINT uiLength;

uiLength = sendFile.GetLength();

sendSock.Send(&uiLength, 4);

int iBufSize = 1024 * 5;

int iSize = iBufSize;

LPBYTE pBuf = new BYTE[iBufSize];

int iNumByte;

UINT uiTotal = 0;

while (uiTotal < uiLength)

{

if ((int)(uiLength - uiTotal) < iBufSize)

{

iSize = uiLength - uiTotal;

}

iSize = sendFile.Read(pBuf, iSize);

int iCount = 0;

while (iCount < iSize)

{

iNumByte = sendSock.Send(pBuf, iSize - iCount);

iCount += iNumByte;

if (iCount < iSize)

{

sendFile.Seek(iSize - iCount, CFile::current);

}

}

uiTotal += iCount;

}

sendFile.Close();

sendSock.Close();

}

3.4运行结果

说明:为了便于测试和观察,选择127.0.0.1的发送IP地址进行单机测试。

图3程序运行启动界面

双击打开myFileTransfer.exe可执行程序后的程序启动界面如图3所示,然后在“对方IP 地址”栏中输入本地回送地址127.0.0.1准备进行发送文件。

图4发送文件选择界面

单击“发送文件”按钮后,弹出如图4所示的文件选择界面,选择要发送的文件并单击“打开”按键,确定选择并将所选文件发送给接收方。

图5接受方接收到文件

当接收方接收到发送方传来的文件时,接收方程序弹出如图5所示的“保存”界面,提示用户接收文件成功并进行保存。

图6接收图片自动显示

当接收方接收的文件为图片时,程序调用操作系统默认的图片浏览器自动打开浏览接收到的图片。当接收的是非图片文件时,程序则只是保存该文件,而不自动打开。

4实验感想

通过独立完成了这次实验的全部内容,我对网络编程有了更全面、深刻地认识和了解,尤其是对Windows socket的掌握和编程应用。由于我对MFC较为熟悉,所以在整个实验过程中,我采用MFC进行编程来实现这个传输文件的程序。

在程序实现之前,我通过网络上的基于socket网络编程资料和老师课上讲解的内容,认真全面地学习了Windows socket的运行机制和其在网络编程上的应用方法。

在设计实现阶段,我最先使用的是基础SOCKET类,但在通信双方传送文件的基本信息的具体实现时,遇到了不少的麻烦。比如SOCKET类中的send方法的第二个参数类型是“const char *”用来指明一个存放将要发送数据的缓冲区,但在传文件信息长度int类型等非char *的变量时转化很麻烦。于是,我查看MSDN文档了解到MFC已为开发者封装了一个很简便

的CSOCKET类。应用CSOCKET类能很方便容易地解决上面的问题,而且实现网络通信的流程也很清晰,最终我采用MFC封装的CSOCKET类编码实现的这次实验内容。在接收图片自动显示的问题上,我试验了两种实现方式:用一个MFC中的承托图片控件来显示和调用操作系统默认的图片浏览程序来显示,对比操作效果和用户使用习惯,后者的解决方案更好,所以最终我采用调用操作系统默认的图片浏览程序来对图片文件进行自动打开显示。

从开始的学习、设计,到遇到问题、解决问题,再到最终的实现、完成,我独立地经历实现了这次实验,对互联网构软件编程技术的理解也不只是停留在理论层面上了,而是在实践开发层次上对其有了全新的认识和掌握。在此,感谢老师课堂上详尽认真的讲解,使我对Internet程序的设计产生了浓厚的兴趣,我会继续努力,完成好后面的实验,提高自己的知识和技术水平。

程序设计基础试题库

练习题一Visual FoxPro 基础 、选择题 1. 关系数据库管理系统应能实现的专门关系运算包括___c __________ A 显示、打印、制表B关联、更新、排序 C 选择、投影、连接D排序、索引、统计 2. 关系是指__b__。 A 属性的集合B元组的集合 C 实例的集合 D 字段的集合 3. 如果把学生看成实体,某个学生的姓名叫“杨波”,则“杨波”应看成是___b ______ 。 A)属性型B )属性值C )记录型D )记录值 4. 关系数据库系统中所使用的数据结构是 _______ d ___ 。 A)图B )树C )表格D )二维表 5. 对表进行水平方向的分割用的运算是 _______ b ___ 。 A)交B )选择C )投影D )连接 6. 下列数据库技术的术语与关系模型的术语的对应关系中_______ d _____ 是正确的。 A)实例与关系 B )字段与元组C )记录与属性 D )记录类型与关系模式 7. 下列关于数据库系统的叙述中,正确的是 _____ c _____ 。 A)数据库系统中数据的一致性是指数据类型一致 B)数据库系统只是比文件系统管理的数据更多 C)数据库系统减少了数据冗余 D数据库系统避免了数据冗余 8. 关系数据模型 ______ d ___ 。 A)只能表示实体间的1:1联系 B)只能表示实体间的1:n C只能表示实体间的m:n D 可以表示实体间的上述三种联系 9. 在一个关系中如果有这样一个属性存在,它的值能惟一地标识关系中的每一个元组,称

这个属性为 _____ a____ 。 A)关键字B )主属性C )数据项D )主属性值 10. 关系数据库管理系统中的元组是______ b ____ 。 A)关系中的垂直方向的列 B )关系中的水平方向的行 C属性或属性的组合 D )以上的答案均不正确 11. 从数据库的整体结构看,数据库系统采用的数据模型有_________ a __ 。 A)层次模型、网状模型和关系模型 B)层次模型、网状模型和环状模型 C)网状模型、链状模型和层次模型 D链状模型、关系模型和层次模型 12. 设有属性A B、C D以下表示中不是关系的是___________ d__。 A)R( A) B )R( A, B)C )R (A, B, C, D) D )R (A X B X C X D) 13. 若实体间联系是M N的,则将联系类型_________ a___ 。 A)也转换为关系模型 B)属性加入任一个关系模式中 C)属性加入N端实体类型相应的关系模式中 D)属性加入M端实体类型相应的关系模式中 14. 数据库系统的构成为数据库、计算机硬件系统、用户和________ a ____ 。 A 数据库管理系统 B 操作系统 C 数据集合 D 文件系统 15. 层次型、网状型和关系型数据库划分原则是________ c ___ 。 A 文件大小 B 记录长度 C 数据之间的联系 D 联系的复杂程度 16. 在数据库设计中用关系模型来表示实体和实体之间的联系,关系模型的结构是 _____ d ___ 。 A 封装结构 B 层次结构 C 网状结构 D 二维表结构 17. 在关系模型中,实现“关系中不允许出现相同的元组”的约束是通过__a ________ 。 A 主键 B 超键 C 外键 D 候选键 18. 层次模型不能直接表示 ______ b __ 关系。 A 1:1 B m:n C 1:m D 1:1 和1:m 19. DBAS旨的是_____ d____ 。

程序设计基础期末复习汇总.doc

《程序设计基础》期末复习 考试题型和分值。 一、单选题(20小题,每题2分) 二、填空题(共20题,计20分) 三、编程填空题(给出程序的输出结果,共5题,14分) 四、读程序题(补充程序,共2小题,,共26分) 程序练习: 1. 输出1-10之间所有的偶数和它们的平方。 2. 输出所有的水仙花数。 3. 从键盘输入一行字符,统计其中有多少个单词。假设单词之间是以空格分开。 4. 编程先由计算机“想” 一个1?100之间的数请人猜,如果人猜对了,贝U 结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平;否则计算机给出提示,告诉人所猜的数是太大还是太小,直到人猜对为止。 5. 编写程序,要求在main函数接受一个整型变量,将其作为参数传入IsPrime 函数中,IsPrime函数根据传入的值确定返回值,如果<2,返回0;如果不是素数,返回1; 如果是素数,返回2O主函数根据返回值输出相应的提示信息:输入不合法,不是素数,是素数。 6. 编写程序:给学生出一道加法运算题,然后判断学生输入的答案对错与否。 通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示 “Right!,”否则提示重做,显示“ Not correct! Try again!",重复要求输入答案,直到输入结果正确,程序结束。

要求:用Add函数来进行两个整数的加法运算;用Print函数判断输入的答案正确与否;用main 函数输入两个相加的数和学生的答案,然后调用Add函数和Print函数判进行判断和显示输出。 7. 利用指针编写两个整数交换的函数。 8. 从10个元素的数组中找出最大值和最小值,并记录最大值和最小值对应的元 素的下标位置。 9. 给定40个数,按照要求进行排序并输出排序的结果。 程序设计ABC 1. 程序运行的方式分为哪两种?(编译运行和解释运行) 2 .什么叫编译器,其功能是什么?(把程序设计语言转换成目标代码的软件称为编译器) 数据类型、运算符与表达式 4.C程序的特点? 函数是C程序的基本单位。一个C程序有且仅有一个main函数(主函数), 总是从main函数开始执行,在main函数中结束,与其位置无关; 函数由函数头和函数体组成 C程序的书写格式:C语句都以分号结束;允许一行多句,但最好一行一 句并按照锯齿形(缩进式)书写,提高可读性和可测试性;适当使用注释 (注释中的语句不参与编译,不能发现其中的拼写错误)。 2. C语言标识符的命名规则,会判断哪些是合法的哪些不合法。

Linux下基于socket的文件传输程序设计课程报告

Linux高级开发 课程设计报告 课程设计题目:Linux下基于socket的文件传输程序设计 学院:________信息工程学院_____________ 专业班级:________网络工程_____________ 年级:________级_____________________ 姓名:____________________________ 学号:________201______________ 完成时间:___2015___年____12___月_____25__日 成绩:__________________________________ 指导教师:____________________________

项目分 值 优秀 (100>x≥90) 良好 (90>x≥80) 中等 (80>x≥70) 及格 (70>x≥60) 不及格 (x<60) 评 分参考标准参考标准参考标准参考标准参考标准 学习态度15 学习态度认 真,科学作风 严谨,严格保 证设计时间并 按任务书中规 定的进度开展 各项工作 学习态度比较 认真,科学作 风良好,能按 期圆满完成任 务书规定的任 务 学习态度 尚好,遵守 组织纪律, 基本保证 设计时间, 按期完成 各项工作 学习态度尚 可,能遵守组 织纪律,能按 期完成任务 学习马虎, 纪律涣散, 工作作风 不严谨,不 能保证设 计时间和 进度 技术水平 与实际能力25 设计合理、理 论分析与计算 正确,实验数 据准确,有很 强的实际动手 能力、经济分 析能力和计算 机应用能力, 文献查阅能力 强、引用合理、 调查调研非常 合理、可信 设计合理、理 论分析与计算 正确,实验数 据比较准确, 有较强的实际 动手能力、经 济分析能力和 计算机应用能 力,文献引用、 调查调研比较 合理、可信 设计合理, 理论分析 与计算基 本正确,实 验数据比 较准确,有 一定的实 际动手能 力,主要文 献引用、调 查调研比 较可信 设计基本合 理,理论分析 与计算无大 错,实验数据 无大错 设计不合 理,理论分 析与计算 有原则错 误,实验数 据不可靠, 实际动手 能力差,文 献引用、调 查调研有 较大的问 题 创新10 有重大改进或 独特见解,有 一定实用价值 有较大改进或 新颖的见解, 实用性尚可 有一定改 进或新的 见解 有一定见解观念陈旧 论文(计算 书、图纸)撰写质量50 结构严谨,逻 辑性强,层次 清晰,语言准 确,文字流畅, 完全符合规范 化要求,书写 工整或用计算 机打印成文; 图纸非常工 整、清晰 结构合理,符 合逻辑,文章 层次分明,语 言准确,文字 流畅,符合规 范化要求,书 写工整或用计 算机打印成 文;图纸工整、 清晰 结构合理, 层次较为 分明,文理 通顺,基本 达到规范 化要求,书 写比较工 整;图纸比 较工整、清 晰 结构基本合 理,逻辑基本 清楚,文字尚 通顺,勉强达 到规范化要 求;图纸比较 工整 内容空泛, 结构混乱, 文字表达 不清,错别 字较多,达 不到规范 化要求;图 纸不工整 或不清晰 指导教师评定成绩: 指导教师签名:年月日

程序设计基础试题和答案解析二

《程序设计基础》考试试卷二 1.1966年,Bohra和Jacopini提出的三种基本程序设计结构是:________ A.if、while和for; B. switch、do-while和for; C.while、do-while和for; D.顺序结构、分支结构和循环结构。 2.算法的特征不包括:______。 A.有穷性 B.可行性 C.确定性 D.有1个或者多个输入。 3.C语言源程序的基本组成单位是______。 A.函数 B. 语句 C. 声明和语句 D. 文件 4.下列标识符中,只有______是合法的。 A.if B. 3ab C. Int D. A-4 5.下列常量中,只有______是合法的。 A.3e-0.3 B. ‘abc’ C. 02a1 D. ‘\377’ 6.下列说法中正确的是:______。 A.C语言中的for语句的三个表达式都可以省略,而且分号也可以省略。 B.宏替换比函数调用的执行速度慢。 C.实质上,C语言中的指针就是一个变量的地址。 D.C语言中的任何函数都可以由程序员命名。 7.C语言中,运算对象必须是整型的运算符是_______。 A./ B. % C. + D. - 8.以下叙述中错误的是_______。 A.C语句必须以分号结束 B.复合语句在语法上被看作一条语句 C.空语句出现在任何位置都不会影响程序运行 D.赋值表达式末尾加分号就构成赋值语句 9.以下叙述中正确的是_______。 A.调用printf函数时,必须要有输出项 B.使用putchar函数时,必须在之前包含头文件stdio.h C.在C语言中,整数可以以十二进制、八进制或十六进制的形式输出 D.调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码10.以下关于函数的叙述中正确的是_______。 A.每个函数都可以被其它函数调用(包括main函数) B.每个函数都可以被单独编译 C.每个函数都可以单独运行 D.在一个函数内部可以定义另一个函数 11.有以下程序段typedef struct NODE{ int num; struct NODE *next;

VFP程序设计题汇总

一.程序设计题汇总 1.通过输入学生的学号(字符型)查找学生,若找到该学生,先输出学号与姓名,然后输出“英语”和“计算机实用技术”成绩。若找不到该学生输出“查无该生”。(设表文件“学生信息”满足题目需要) set talk off clear use 学生信息 accept "请输入学生学号:" to xh locate for 学号==xh if !eof() 学号,姓名 list fiel 英语,计算机实用技术 for 学号=xh else "查无该生" endif use 2.输入学生成绩,并要求:成绩小于60分时,输出“不及格”;成绩在60~69分之间时,输出“及格”;成绩在70~79之间时,输出“中”;当成绩在80~89之间时,输出“良”;当成绩在90~100之间时,输出“优”。 set talk off

clear input "请输入成绩: " to cj do case case cj>=90 "优秀" case cj >=80 "良好" case cj >=70 "中" case cj >=60 "及格" case cj<60 "不及格" otherwise "数据有误" endcase set talk on 3.按学号在“学生信息.dbf”文件中查找并显示指定的记录。要求可以重复查询,找到则显示该生的记录,找不到则提示“查无此人!”,按非“Y”、“y”可结束查询。

SET TALK OFF CLEAR USE 学生信息 &&设当前目录下表文件存在 ACCEPT '学号查询吗(Y/N)' TO cx &&循环条件的初始化 DO WHILE cx='Y'.='y' &&大小写均可执行查询 CLEAR ACCEPT '请输入学号:' TO xh LOCATE ALL FOR 学号=xh &&此处ALL可以缺省,默认为在全部记录查找。 IF EOF() '查无此人!' WAIT ELSE DISPLAY ENDIF ACCEPT '继续按学号查询吗(Y/N)' TO cx &&修改循环条件 ENDDO SET TALK ON USE

远程文件传输实验报告

《面向对象程序设计实践教程》 课题设计报告 课题名称:远程文件传输程序设计 专业:计算机科学与技术 班级: 姓名: 学号: 指导老师: 日期: 仰恩大学计算机系

一、 课程序设计目的 (1)掌握基于TCP 的网络程序设计; (2)掌握基于UDP 的网络程序设计; (3)编写远程文件传输程序,实现在二台远程主机之间传输任意文件。 二、 开发环境 (1)系统环境:Windows XP ,Windows 2003 Server (2)编程环境:JDK1.5,JCreator ,NetBeans 等 三、 实现过程 (1)Java 网络编程基础知识介绍 1、编写基于TCP 协议的网络程序,Socket 通信的一般过程: 创建ServerSocket 等待客户端连接请求 否 创建输入/出流创建输入/出流成功 关闭Socket 关闭Socket 创建Socket 对象 连接请求 N 抛出异常 服务器端 客户端 创建Socket 对象是 2、编写基于UDP 协议的网络编程的实践过程: (a )发送过程 发送数据前,先生成一个DatagramPacket 对象;该对象包括需 要发送的数据和完整的目的地址。 发送数据是通过DatagramSocket 的方法send()实现的。 (b )接收过程 接收数据前,生成一个DatagramPacket 对象,给出接收数据 的缓冲区及其长度;

调用DatagramSocket 的方法receive()等待数据报的到来,receive()将一直等待,直到收到一个数据报为止。 (2)远程文件传输概要设计(基于socket 编程) 1、功能描述:编写一个基于socket 编程的远程文件传输程序,在服务 端开启时客户端可以发送文件,而服务端可以接收并保存到要保存的地方。 2、总体流程图 发送方是否接收接收方发送文件名 给接收方 接收文件名,并显示是否接收 发送“true ”接收信息 开始发送文件 开始接收文件 A.xls B.xls 否 否 是是1 2 3、发送方流程图 是否到文件末 从文件读数据 开始 结束 是 否 关闭socket 发送数据 4、接收方流程图 是否到文件末 接收数据 开始 结束 是 否 关闭socket 向目标文件 写数据

C程序设计题库

填空题 20*2 ■对于51系列单片机,现有4种语言支持程序设计,它们是(汇编语言)、PL/M、(C语言)、BASIC。 ■单片机程序设计时需要在主程序中设计死循环来防止程序跑飞。在C语言中采用(while(1))或for(;;)语句实现死循环。 ■单片机程序设计中经常用到中断,在C语言程序设计中外部中断1的中断入口序号(2),而汇编语言程序设计中外部中断1的入口地址是(0013H)。 ■编写串口中断程序时要在函数说明部分后写interrupt 4 。 ■编写定时器0中断程序时要在函数说明部分后写interrupt 1 。 ■C语言程序设计中有一个无符号形字符变量temp和一个位变量Flag,现在分别对它们取反。相应的语句为temp=__~___temp; Flag=_!___Flag;。 ■I2C总线在传送数据过程中共有三种类型控制信号,它们分别是:_(起始信号)____、应答信号、_(停止信号)_____。 ■I2C的地址由(协议规定)与(硬件设置)两部分组成。 ■I2C器件的两条信号线分别为串行时钟线SCL 与串行数据线 SDA 。 ■MCS-51单片机操作I2C器件时,单片机必须做为主机,I\O编程。 ■在Cx51所有的数据类型中,只有bit 与unsigned char 直接支持机器指令。 ■编译器性能比较有如下几个方面:算数支持、生产代码大小、开打速度、支持浮点和long 。 ■在KEIL开发套件中,BL51链接器/定位器用于创建一个绝对目标横快。 ■Cx51中函数分为两大类:标准库函数和用户自定义函数。 ■在函数名前如果不指定函数类型,则该函数的类型为整型。 ■具有一定格式的数字或数值叫做数据,数据的不同格式叫做数据类型, 数据按一定的数据类型进行的排列、组合及架构称为数据结构。 ■数据类型的转换有自动转换与强制转换两种。 ■直接出现在程序中的数值(如TMOD=0x21)称为常数。在程序运行的过程中,其值不能改变且被定义为符号的(如#define CONST 60)称为常量。 ■软件对常量与变量的命名规范是:常量名用大写字母,变量名用小写字母。 ■MCS-51单片机串口用于中断通讯时,在进行初始化时必须设置的特殊功能寄存器有:

最新C程序设计试题汇编汇总

C程序设计试题汇编

C程序设计试题汇编 1.3以下叙述正确的是______ A)一个C源程序可由一个或多个函数组成 B)一个C源程序必须包含一个main函数 C)C程序的基本组成单位是函数 D)在C程序中,注释说明只能位于一条语句的后面 2.2若x、y、j和k都是int 型变量,则计算下面表达式后,x的值为______ A) 7 B)16 C)32 D)52 答案:C 2.6下面四个选项中,均是不合法的用户标识符的选项是______ A)A B)float C)b-a D)_123 P_0 la0 goto temp Do _A int INT 2.23以下不正确的叙述是______ A)在C程序中,逗号运算符的优先级最低 B)在C程序中,APH和aph是两个不同的变量 C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b 中的值不变 D)当键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输 入实型数值 2.30若有说明语句:char c=’\72’;则变量c______ A)包含1个字符 B)包含2个字符 C)包含3个字符

D)说明不合法,c的值不确定 2.37在C语言中,char型数据在内存中的存储形式是______ A)补码 B)反码 C)原码 D)ASCII码 3.2以下程序的输出结果是______.(注:︼表示空格) main() { printf(“\n*s1=%15s*”,”chinabeijing”); printf(“n*s2=%-5s*”,”chi”); } A)*s1=chinabeijing︼︼︼ * B)*s1=chinabeijing︼︼︼ * *s2= * * chi * *s2=chi ︼︼︼ * C)*s1=*︼︼chinabeijing * D)*s1=︼︼︼chinabeijing * *s2=︼︼chi * *s2=chi︼︼ 3.11已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列 开始输入数据时,正确的数据输入方式是______(注:表示回车) int a1,a2; char c1,c2; scanf(“%d%d”,&a1,&a2); scanf(“%c%c”,&c1,&c2); A)1020AB B)10︼20 AB C)10︼︼20︼︼AB D)10︼20AB 3.15根据题目中已给出的数据的输入形式和输出形式,程序中输入输出语句的正确内容是 ______ main() { int x; float y; prinf(“enter x,y:”) 输入语句

【Java基于Socket文件传输示例】网络编程

Java基于Socket文件传输示例 最近需要进行网络传输大文件,于是对基于socket的文件传输作了一个初步的了解。在一位网友提供的程序基础上,俺进行了一些加工,采用了缓冲输入/输出流来包装输出流,再采用数据输入/输出输出流进行包装,加快传输的速度。废话少说,先来看服务器端的程序。 1.服务器端 package sterning; import java.io.BufferedInputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import https://www.360docs.net/doc/ba6515604.html,.ServerSocket; import https://www.360docs.net/doc/ba6515604.html,.Socket; public class ServerTest { int port = 8821; void start() { Socket s = null; try { ServerSocket ss = new ServerSocket(port); while (true) { // 选择进行传输的文件 String filePath = "D:\\lib.rar"; File fi = new File(filePath);

System.out.println("文件长度:" + (int) fi.length()); // public Socket accept() throws // IOException侦听并接受到此套接字的连接。此方法在进行连接之前一直阻塞。 s = ss.accept(); System.out.println("建立socket链接"); DataInputStream dis = new DataInputStream(new BufferedIn putStream(s.getInputStream())); dis.readByte(); DataInputStream fis = new DataInputStream(new BufferedIn putStream(new FileInputStream(filePath))); DataOutputStream ps = new DataOutputStream(s.getOutput Stream()); //将文件名及长度传给客户端。这里要真正适用所有平台,例如中文名的处理,还需要加工,具体可以参见Think In Java 4th里有现成的代码。 ps.writeUTF(fi.getName()); ps.flush(); ps.writeLong((long) fi.length()); ps.flush(); int bufferSize = 8192; byte[] buf = new byte[bufferSize]; while (true) { int read = 0; if (fis != null) { read = fis.read(buf);

程序设计题题库

程序设计题题库 1、请根据主程序中函数调用情况,写一个判断正整数x是否是素数的函数int prime(int x),如果是素数,则返回值是1,否则返回值是0。 #include void main() {int prime(int x); int m,j; scanf("%d",&m); j=prime(m); if(j==1) printf("%d是素数",m); else printf("%d不是素数",m); } int prime(int x) { } **2、请根据主程序中函数调用情况,写一个成绩函数char grade(float x),对于给定的一个百分制成绩x,要求返回其相应等级’A’、’B’、’C’、’D’、’E’。90分以上为’A’,80~90分为’B’,70~79分为’C’,60~69分为’D’ ,60分以下为’D’。 #include void main() {char grade(float x); float x; char ch; scanf("%f",&x); ch=grade(x); printf("%c",ch); } char grade(float x) { } **3、打印出所有"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身。 4、从键盘输入10个整数存于数组,对这些整数按照从小到大的顺序排序并输出结果。 5、请根据主程序中函数调用情况,编写函数fun()判断整数是否素数,在主程序中,实现了函数的调用。部分代码如下,请把函数fun()补充完整。 #include int fun(int x) { }

程序设计基础练习题(全答案版)

《程序设计基础——C#.NET》练习 参考答案: 一、选择题 https://www.360docs.net/doc/ba6515604.html,的目的就是将____A____作为新一代操作系统的基础,对互联网的设计思想进行扩展。A.互联网 B. Windows C. C# D. 网络操作系统 2.假设变量x的值为10,要输出x值,下列正确的语句是__C__。 A.System.Console.writeline(“x”) B. System.Cosole.WriteLine(“x”) C. System.Console.WriteLine(“x={0}”,x) D. System.Console.WriteLine(“x={x}”) 3.要退出应用程序的执行,应执行下列的_A___语句。 A. Application.Exit(); B. Application.Exit; C. Application.Close(); D. Application.Close; 4.关于C#程序的书写,下列不正确的说法是__D________。 A.区分大小写 B.一行可以写多条语句 C.一条语句可以写成多行 D.一个类中只能有一个Main()方法,因此多个类中可以有多个Main()方法 5. 在C#语言中,下列能够作为变量名的是__C__。 A.if B. 3ab C. b_3a D. a-bc 7. 能正确表示逻辑关系“a≥5或a≤0”的C#语言表达方式是__D__。 A.a>=5 or a<=0 B. a>=5|a<=0 C. a>=5&&a<=0 D. a>=5||a<=0 8. 以下程序的输出结果是___C_____。 A. 5 B. 4 C. 6 D. 不确定 9. If语句后面的表达式应该是__A___。 A.逻辑表达式 B. 条件表达式 C. 算术表达式 D. 任意表达式10.有如下程序:

编程入门基础知识总结

编程入门基础知识总结 基本知识 程序= 算法+ 数据结构,算法是对操作的描述,数据结构是对数据的描述。 伪代码:pseudo code 程序一般包括: (1)预处理命令:#include等 (2)全局声明部分 (3)函数:函数首部(声明)、函数体(局部声明+执行部分) 程序执行过程 源程序-->编译成目标程序obj-->连接目标程序成可执行文件 类:数据成员+成员函数 命名空间 实际上就是一个由程序设计者命名的内存区域。程序员可以根据需要指定一些有名字的空间域,把一些全局实体分别放在各个命名空间中,从而与其它全局实体分隔开,解决名字冲突,防止全局命名空间污染。 C++库的所有标识符(标准头文件中函数、类、对象、类模版)都是在std命名空间定义的 A 的ASCII码值65 a 的97 1.数据类型 ?基本类型:整型、浮点型、字符型、布尔型 ?构造类型:枚举、数组、结构体类型(struct)、公用体(union)、类类型 ?指针类型 ?引用类型 ?空类型:null int 4 unsigned int 4 short int 2 unsigned short int 2 long int 4 unsigned long int 4 char 1 uchar 1 float 4 double 8 long double 8 无符号:不用保存符号位,故比有符号多了一位 有符号:数值用补码存放(无论正负),最高位为符号位 VC中,long double与double字节数相同,故long double是无用的 GCC中,long double则有12个字节 无负值的量可以定义为unsigned int,如年龄、学号等,以增大存储范围。 short int,long int,unsigned int这些类型后面的int可以省略 整型表示: 十进制,后面加L 或l 八进制,前面加0 十六进制,前面加0x 浮点数表示: 默认为双精度型double 后面加f 或F 则为单精度float 后面加l 或L 则为长精度型long double 指数形式

计算机网络文件传输及管理系统课程设计报告

目录 摘要 (3) 第一章课程设计要求 (4) 一、设计任务 (3) 1.1.1 课程设计内容 (3) 1.1.2、课程设计的基本要求 (3) 二、设计基本思路及相关理论 (3) 1.2.1、TCP/IP协议 (3) 1.2.2、客户机/服务器模型 (4) 1.2.3、设计基本思路 (4) 第二章设计概要 (5) 2.1 功能设计 (5) 2.2 程序系统功能模块 (6) 2.3 功能分析 (7) 2.3.1 功能流程图: (7) 2.3.2 程序主要功能说明 (7) 第三章调试分析与测试结果 (23) 3.1服务器端与客户端 (23) 3.2文件管理的过程 (26) 第四章设计总结 (28) 参考文献 (28) 课程设计评分表 (30)

摘要 网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符。Socket也具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。 Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。 Socket接口设计者最先是将接口放在Unix操作系统里面的。如果了解Unix系统的输入和输出的话,就很容易了解Socket了。常用的Socket类型有两种:流式Socket (SOCK_STREAM)和数据报式Socket(SOCK_DGRAM)。流式是一种面向连接的Socket,针对于面向连接的TCP服务应用;数据报式Socket是一种无连接的Socket,对应于无连接的UDP服务应用。 Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。 关键字:Socket、文件传输、多线程

C语言程序设计阅读程序题库及答案

阅读程序题 【2.1】以下程序的输出结果是。 main(D ) { float a; printf("%g",a); } A) 0.00000e+00 B) 0.0 C) 1.00000e-07 D) 0 【2.2】下面程序的输出结果是B____。 #include main( ) { int x=10; { int x=20; printf ("%d,", x); } printf("%d\n", x); } A) 10,20 B) 20,10 C) 10,10 D) 20,20 【2.3】以下程序的输出结果是___B_。 main()

{ unsigned int n; int i=-521; n=i; printf("n=%u\n",n); }//变量i中的负号传送给变量n后,因n是无符号数,已不作为负号处理。 【2.4】以下程序的输出结果是。 main(D ) { int x=10, y=10; printf("%d %d\n", x――, ――y); } A) 10 10 B) 9 9 C) 9 10 D) 10 9 【2.5】以下程序的输出结果是___B。 main() { int n=1; printf("%d %d %d\n",n,n++,n--); } // C语言在执行printf()时,对函数中的表达式表列的处理顺序是从后向前,即先处理n- -,再处理n++,最后处理n, A) 1 1 1 B) 1 0 1 C) 1 1 0 D) 1 2 1 【2.6】以下程序的输出结果是____。 main() { int x=0x02ff,y=0x0ff00;

程序设计基础试题(附答案)

程序设计基础复习题 一、单选 1、一个完整的计算机系统应该包括() A、系统软件和应用软件 B、计算机及其外部设备 C、硬件系统和软件系统 D、系统硬件和系统软件 2、“裸机”的概念是指() A、正在进行设计还没有组装好的计算机 B、已经组装好但还没有安装任何软件的计算机 C、仅安装了操作系统的计算机系统 D、安装了文字处理软件但没有安装专用数据处理系统的计算机 3、世界上第一台电子数字计算机研制成功的时间是() A、1936年 B、1946年 C、1956年 D、1970年 4、CASE的含义是() A、计算机辅助设计 B、计算机辅助制造 C、计算机辅助教学 D、计算机辅助软件工程5、当前广泛使用的微型计算机是() A、第一代 B、第二代 C、第三代 D、第四代 6、当代计算机的体系结构称为是() A、冯·诺依曼机 B、非冯·诺依曼机 C、图灵机 D、比尔盖茨机 7、硬盘是() A、输入设备 B、输出设备 C、存储设备 D、计算设备 8、下面4句话中,最准确的表述是() A、程序=算法+数据结构 B、程序是使用编程语言实现算法 C、程序的开发方法决定算法设计 D、算法是程序设计中最关键的因素

9、计算机能直接执行的语言是() A、机器语言 B、汇编语言 C、高级语言 D、目标语言 10、解释程序的功能是() A、将高级语言程序转换为目标程序 B、将汇编语言程序转换为目标程序 C、解释执行高级语言程序 D、解释执行汇编语言程序 11、下面4种程序设计语言中,不是面向对象式语言的是() A、JAVA B、Object Pascal C、Delphi D、C 12、不是C语言的基本数据类型是() A、int B、double C、char D、bool 13、在C语言中,为了求两个整数相除之后得到的余数,可以使用运算符() A、/ B、% C、* D、++ 14、数据的逻辑结构分为() A、纯属结构和非线性结构 B、顺序结构和非顺序结构 C、树型结构和图型结构 D、链式结构和顺序结构 15、用链表表示纯属表的优点是() A、便于随机存取 B、便于插入和删除操作 C、花费的存储空间较顺序存储少 D、元素的物理顺序与逻辑顺序相同 16、栈的最主要特点是() A、先进先出 B、先进后出 C、两端进出 D、一端进一端出 17、下面4句结论只有一句是错误的,它是()

程序设计汇总

程序设计题目汇总 36、购物计费:某商场为了促销而实行购物打折,在商场购物500元以上(不包括500元),超过部分实行八折优惠。已知某顾客购物按未打折计共花费了898元,编程计算顾客实际应付的金额。A表示顾客的购物金额,x表示顾客应该实际付给商场的金额。请将程序缺失部分补充完整。 Function func() Dim a As Single, x As Single a = 898 If a <= 500 Then _______________________ Else x = 500 + ( a – 500) * 0.8 End If func = "应付金额x=" & x End Function 答案:x = a 39、计算房租费,70平方以下(包括70)每平方4元,如果超过70平方则超过部分每平方6元。程序中变量m为平方数,变量n为房租费。 Function func() Dim m As Integer, n As Integer m = 128 If m <= 70 Then n = 4 * m ________________ n = 4 * 70 + 6 * (m – 70) End If func = "房租费n=" & n End Function 答案:Else 40、已知正方形的边长A是8,下列程序的功能是计算正方形的周长L。请将程序缺失部分补充完整。Function func() Dim A As Single Dim L As Single A = 8 L = _________________ Func = "正方形的周长" & L End Function 答案:4*A 37、判断奇偶性,如果是偶数让x为0,如果是奇数让x为1 Function func() Dim a As Integer, x As Integer If a / 2 = Int( a / 2) Then x = 0 Else x = _________________ End If

计算机网络课程设计报告文件传输协议的简单实现

课程设计 课程名称计算机网络课程设计 题目名称文件传输协议的简单设计与实现学生学院 专业班级___ _ 学号 学生姓名______ _________ 指导教师______ _____ 2010 年 1 月 5 日

设计摘要 关键词:SOCKET编程,FTPclient/server程序 摘要:本课程设计包含了文件传输协议的简单设计与实现。 文件传送是各种计算机网络实现的基本功能,文件传送协议是一种最基本的应用层协议按照客户/服务器的模式进行工作,提供交互式的访问,是INTERNET使用最广泛的协议之一。文件传输协议的简单设计与实现建立在计算机网络实验环境TCP/IP 网络体系结构之上,使用socket 编程接口编写两个程序,分别为客户程序和服务器程序(),实现下述命令功能:get , put, pwd, dir, cd, ?, quit 等,利用了已有网络环境设计并实现简单应用层协议。 本设计包括了具体设计任务,基本思路及所涉及的相关理论,设计流程图,调试过程中出现的问题及相应解决办法,实验运行结果,核心程序,个人体会及建议等。

目录 1、文件传输协议的简单设计与实现------------------------------18 1. 1 具体设计任务----------------------------------------------18基本思路及所涉及的相关理论--------------------------------18 1.2.1基本思路-------------------------------------------------18 2.2.2 相关理论--------------------------------------------18 设计流程图------------------------------------------------19 实验运行情况----------------------------------------------19 核心程序--------------------------------------------------22 2.5.1 服务器(sever)程序---------------------------------22 2.5.2 客户(client)程序----------------------------------29 心得体会-----------------------------------------------------------------------------37 参考文献--------------------------------------------------------38

(完整版)程序设计基础试题_10_答案

广州大学学年第学期考试卷 课程高级语言程序设计考试形式(开/闭卷,考试/查) 学院系专业班级学号姓名 一、填空题(每空1分,共10分) 1.C源程序的基本单位是(函数)。 2.一个C源程序中至少应包含一个(main()函数)。 3.若a和b均是int型变量,且a和b的初值均为5,则计算表达式a+=b++ 后,a的值为(10 ),b的值为( 6 )。 4.若a、b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,b值为( 4 ),c 值为( 2 )。 5.表达式8.2-2/3 的计算结果是(8 )。 6.在C语言中,整数可用三种数制表示,它们分别是(十进制)、(八进制)和(十六进制)。 二、程序计算题(每小题5分,共15分) 1. # define f(a) printf(“%d”,a) main() { int i,b[]={1,2,3,5,7,9,11,13,15},*p=5+b; for(i=3;i;i--) switch(i) { case 1: case 2: f(*p++); break;

case 3: f(*(--p)); } } 2. main() { int arr_sum(int arr[],int n); int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; int *p,total; int (*pt)( int arr[],int n); pt=arr_sum; p=a[0]; total=(*pt)(p,12); printf(“total=%d\n”,total); } arr_sum(int arr[],int n) { int i,sum=0; for(i=0;i

相关文档
最新文档