内容简介 本书是 程序设计基础 C 语言 ( 杨莉 刘鸿翔主编, 科学出版社出版 ) 的配套教学用书 全书共分 9 章, 前 8 章包括程序设计概述, 基本数据类型 运算符与表达式, 程序结构, 数组, 指针, 其他数据类型, 函数以及文件, 针对各章节中的重点和难点知识, 每个章节都配有上机实训项

Size: px
Start display at page:

Download "内容简介 本书是 程序设计基础 C 语言 ( 杨莉 刘鸿翔主编, 科学出版社出版 ) 的配套教学用书 全书共分 9 章, 前 8 章包括程序设计概述, 基本数据类型 运算符与表达式, 程序结构, 数组, 指针, 其他数据类型, 函数以及文件, 针对各章节中的重点和难点知识, 每个章节都配有上机实训项"

Transcription

1 普通高等教育 十二五 规划教材计算机系列中国科学院教材建设专家委员会 十二五 规划教材 程序设计基础实训指导教程 C 语言 杨莉龚义建主编王芳邓芳副主编 1 宋婉娟杨宜波 北 京

2 内容简介 本书是 程序设计基础 C 语言 ( 杨莉 刘鸿翔主编, 科学出版社出版 ) 的配套教学用书 全书共分 9 章, 前 8 章包括程序设计概述, 基本数据类型 运算符与表达式, 程序结构, 数组, 指针, 其他数据类型, 函数以及文件, 针对各章节中的重点和难点知识, 每个章节都配有上机实训项目 典型试题剖析 自测练习 ; 第 9 章为上机考试指导, 包括上机应试指导和上机考试全真模拟试题, 为考生参加全国计算机等级考试中的上机考试指明了方向 本书可作为本科 专科学生学习 C 语言程序设计实训的指导教材, 也可作为计算机专业和相关专业学生 自考学员和教师的辅助教材, 同时还可作为全国计算机等级考试二级 C 语言程序设计的辅导教材 图书在版编目 (CIP) 数据程序设计基础实训指导教程 :C 语言 / 杨莉, 龚义建主编. 北京 : 科学出版社,2011 ISBN Ⅰ. 1 程 Ⅱ. 1 杨 2 龚 Ⅲ. 1C 语言 - 程序设计 - 高等学校 - 教材 Ⅳ. 1TP312 中国版本图书馆 CIP 数据核字 (2011) 第 号 责任编辑 : 戴薇郭丽娜 / 责任校对 : 王万红马英菊责任印制 : 吕春珉 / 封面设计 : 东方人华平面设计部 出版北京东黄城根北街 16 号邮政编码 : 北京双清印刷厂印刷科学出版社发行各地新华书店经销 * 2012 年 1 月第一版开本 : / 年 1 月第一次印刷印张 :17 1/4 字数 : 定价 :29.00 元 ( 如有印装质量问题, 我社负责调换 < 环伟 >) 销售部电话 编辑部电话 版权所有, 侵权必究举报电话 : ; ;

3 前 言 一般来讲, 学生在学习程序设计时, 很大程度是通过上机实训和大量练习来掌握其基本 概念的 本书是根据 程序设计基础 C 语言 ( 杨莉 刘鸿翔主编, 科学出版社出版 ) 一书安排的教学进度, 针对各章节的重点和难点知识, 设计了相应的上机实训项目, 剖析了大量典型计算机等级考试试题, 并附有自测练习和上机考试指导 本书特色如下 : 1. 多思考, 勤上机 是学好程序设计课程的关键, 本书每章精选的上机实训项目指导力求突出代表性 典型性和实用性, 书中给出了详尽的分析和程序, 上机实训项目内容可作为学生上机时的练习内容, 从而可提高学生编程能力和应对计算机等级考试中的上机考试能力 2. 本书对近几年出现的典型计算机等级考试试题进行深入剖析, 每一道考题都列出了考点 详细分析以及参考答案, 以帮助学生熟悉计算机等级考试中笔试考试的知识点 3. 本书提供了大量自测练习题及其参考答案, 以方便读者检测对知识的理解程度 4. 本书提供了上机考试指导和 10 套上机考试全真模拟试题, 为考生参加全国计算机等级考试上机考试指明了方向 5. 为了更好地适应当前等级考试和大多数实际项目开发的应用环境, 本书给出的实例程序全部在 Visual C 中调试通过 学生在学习程序设计时, 一定要活学活用, 要在掌握基本概念的基础上举一反三, 不要被书中的代码和思路所束缚 编程的方法很多, 关键是要抓住重点, 开拓思路, 提高分析问题 解决问题的能力 参加本书编写工作的有杨莉 龚义建 王芳 邓芳 宋婉娟 杨宜波 万润泽 王海军 余慧 许庆炜 鲁静 李汪丽等 本书在书稿的内容编排和文字排版等方面得到科学出版社多方面的支持与帮助, 在此表示衷心的感谢 由于编者水平有限, 书中难免会有欠妥之处, 恳请广大读者提出宝贵意见

4 目 录 第 1 章程序设计概述 上机实训项目 上机实训项目指导 上机实训内容 典型试题剖析 自测练习 6 第 2 章基本数据类型 运算符与表达式 上机实训项目 上机实训项目指导 上机实训内容 典型试题剖析 自测练习 14 第 3 章程序结构 上机实训项目 上机实训项目指导 上机实训内容 典型试题剖析 自测练习 47 第 4 章数组 上机实训项目 上机实训项目指导 上机实训内容 典型试题剖析 自测练习 82 第 5 章指针 上机实训项目 上机实训项目指导 上机实训内容 典型试题剖析 自测练习 102

5 iv 程序设计基础实训指导教程 C 语言 第 6 章其他数据类型 上机实训项目 上机实训项目指导 上机实训内容 典型试题剖析 自测练习 122 第 7 章函数 上机实训项目 上机实训项目指导 上机实训内容 典型试题剖析 自测练习 170 第 8 章文件 上机实训项目 实训项目指导 实训上机内容 典型试题剖析 自测练习 203 第 9 章上机考试指导 上机应试指导 上机考试全真模拟试题 上机考试全真模拟试题 上机考试全真模拟试题 上机考试全真模拟试题 上机考试全真模拟试题 上机考试全真模拟试题 上机考试全真模拟试题 上机考试全真模拟试题 上机考试全真模拟试题 上机考试全真模拟试题 上机考试全真模拟试题 附录 A 全国计算机等级考试 C 语言二级考试大纲 236 附录 B 全国计算机等级考试 C 语言程序设计二级笔试试卷 240 参考答案 251 参考文献 267

6 第 1 章程序设计概述 熟悉 Visual C++ 6.0( 简称 VC++) 集成开发环境 ; 了解程序的构成 头文件 main() 函数的写法 ; 熟悉源程序的书写风格 ; 掌握编写和上机调试 C 语言程序的一般过程 1.1 上机实训项目 上机实训项目指导 实训项目 1 熟悉 VC++ 开发环境 进入 VC++, 输入以下程序, 调试通过后运行 #include <stdio.h> { printf("hello C World!") /* 输出结果 */ 1) 启动 VC++ 选择 开始 程序 Microsoft Visual C Microsoft Visual C 命令, 即可启动 VC++, 如图 1-1 所示 编辑窗口 信息窗口 图 1-1 VC++ 窗口也可以在 Windows 桌面中找到 VC++ 快捷方式图标后双击, 还可以在 Windows 下找到 C 语言源程序文件, 双击 C 语言源程序文件图标, 启动 VC++ 2) 新建 C 语言程序文件 选择 文件 新建 命令, 弹出 新建 对话框, 如

7 2 程序设计基础实训指导教程 C 语言 图 1-2 所示 选择 文件 选项卡, 选中 C++ Source File 选项, 在对话框右边的 目录 文本框中输入文件的存放路径 ; 在 文件 文本框中输入程序的文件名 ( 这里输入 hel.c ), 然后单击 确定 按钮 3) 输入程序, 并保存文件 在 VC++ 窗口中, 可直接在编辑窗口输入程序 由于完全是 Windows 界面, 输入及修改操作可借助鼠标和菜单进行, 十分方便 当程序输入结束后, 保存文件时, 可以直接选择 文件 保存 命令, 也可以选择 文件 另存为 命令 保存文件时, 应指定文件扩展名为.c, 如图 1-3 所示, 否则系统将按 C++ 默认扩展名.cpp 保存, 编译时有可能显示出错信息 图 1-2 新建 对话框 图 1-3 指定保存文件名 4) 编译连接程序 对于输入完毕的源程序, 必须经过编译 连接, 生成可执行文件后才能执行 可利用 编译 构件 命令 ( 见图 1-4), 也可使用快捷键 F7, 完成编译 连接 在编译连接程序过程中,VC++ 首先生成一个同名的工作区, 若事先没有保存文件, 则此时将提示保存该新输入的程序 图 1-4 编译连接菜单 在进行编译连接时, 编译系统检查源程序中有无错误, 然后在如图 1-4 所示的主窗口下方的信息窗口显示编译连接的信息 编译连接信息中包含警告性错误 (warning) 和致命性错误 (error) 警告性错误一般不影响程序执行, 致命性错误则必须予以纠正 双击某条错

8 第 1 章程序设计概述 3 误信息, 编辑窗口中会指示对应出错位置, 用户可根据信息窗口的提示改正程序 如图 1-5 中所示, 错误出现在程序中的第 5 行, 错误是遗漏分号 (;) 图 1-5 编译连接错误如果程序没有错误, 将在信息窗口中显示无错误信息 : 0 error(s),0 warning(s) 它表示没有任何错误, 编译连接成功, 如图 1-6 所示 图 1-6 编译连接正确 5) 执行程序 程序编译成功后, 可选择 编译 执行 命令 ( 或按 Ctrl+F5 组合键 ) 来执行程序 运行 C 语言程序后,VC++ 将自动弹出数据输入 / 输出窗口, 如图 1-7 所示 对于编译 连接 执行等操作,VC++ 还提供了一组工具按钮, 如图 1-8 所示 图 1-7 数据输入 / 输出窗口 图 1-8 工具按钮组

9 4 程序设计基础实训指导教程 C 语言 6) 关闭程序工作区 当一个程序编译连接成功后,VC++ 系统自动产生相应的工作区, 以完成程序的运行和调试 若想执行第二个程序时, 必须首先关闭前一个程序的工作区, 然后重新编译连接, 产生第二个程序的工作区 ; 否则, 运行的将一直是前一个程序 文件 菜单提供关闭程序工作区功能, 如图 1-9 所示, 选择 文件 关闭工作区 命令, 弹出提示是否关闭工作区的提示框, 如图 1-10 所示, 单击 是 按钮, 关闭工作区 ; 随之, 源程序窗口也将关闭 图 1-9 关闭程序工作区 图 1-10 信息提示 实训项目 2 编写一个计算两个整数和的程序, 要求两个整数分别由键盘输入 ( 要求数据输入前有较详细的提示语句 ) 源程序如下 : { int a, b, sum; printf(" 请输入两个整数 a 和 b:"); scanf("%d,%d",&a,&b); sum=a+b; printf("a=%d,b=%d\n",a,b); printf(" 它们的和 sum=%d",sum); 分析 1)printf() 函数可以输出常量 变量和表达式的值, 但格式控制中的格式说明符必须按从左到右的顺序, 与输出列表中的每个数据项一一对应, 否则会出错 2) 格式字符 d 用于十进制整型变量的输入 / 输出 3) 字符紧跟在 % 后面时作为格式字符, 否则将作为普通字符使用 ( 原样输出 ) 上机实训内容 实训内容 1 编程实现 : 输入 3 个数, 求这 3 个数之和 分析定义 4 个变量, 用于存放 3 个数及其和的值, 通过输入函数 scanf() 从键盘接收用户输入的 3 个数, 并计算这 3 个数之和, 存入变量中, 通过输出函数 printf() 输出这 3 个数之和 实训内容 2 输入如下程序, 判断该程序存在哪些错误和不妥之处, 并做相应修改, 直到可以调试通过为止

10 第 1 章程序设计概述 5 源程序如下 : void main { int a, b, sum; scanf("%d,%d",a,b); sum=a+b printf("sum=%d",sum); 分析该程序存在 3 处错误 : 1) 定义函数时要紧跟一对小括号,main() 函数后面缺少小括号 2)scanf() 函数输入时, 变量名前必须加取地址符号 & ; printf() 函数输出时, 变量名前不需要加取地址符号 & 3) 每条 C 语言基本语句必须用分号 (;) 结束,sum=a+b 语句后缺少分号 实训内容 3 编程实现 : 计算长方形的面积和周长 分析定义 4 个变量, 分别用于存放长方形的长度 宽度 面积和周长, 通过键盘接收用户输入的长方形长度和宽度两个值, 求得长方形的面积和周长, 并显示面积和周长的值 实训内容 4 编程实现 : 计算两个整数的和 差 积 商 分析定义 6 个变量, 两个整型变量分别用于接收用户输入的两个整数, 其他 4 个变量用于存放这两个整数的和 差 积 商的结果, 参考实训项目 典型试题剖析 选择题 例 1 以下叙述中正确的是 ( ) ( 计算机等级考试 2007 年 9 月第 14 题 ) A.C 语言程序将从源程序中第一个函数开始执行 B. 可以在程序中由用户指定任意一个函数作为主函数, 程序将从此开始执行 C.C 语言规定必须用 main 作为主函数名, 程序将从此开始执行, 在此结束 D.main 可作为用户标识符, 用以命名任意一个函数作为主函数 考点 主函数 分析 C 语言规定必须用 main 作为主函数名, 程序将从此开始执行, 在此结束 本题 选 C 例 2 以下叙述中错误的是 ( ) ( 计算机等级考试 2007 年 4 月第 12 题 ) A. 计算机不能直接执行用 C 语言编写的源程序 B.C 程序经 C 编译后, 生成后缀为.obj 的文件是一个二进制文件 C. 后缀为.obj 的文件, 经连接程序生成后缀为.exe 的文件是一个二进制文件 D. 后缀为.obj 和.exe 的二进制文件都可以直接运行 考点 执行文件

11 6 程序设计基础实训指导教程 C 语言 分析 本题选 D C 语言源程序经过编译后生成.obj 文件, 经连接程序生成.exe 文件后才能执行 例 3 以下关于简单程序设计的步骤和顺序的说法中正确的是 ( ) ( 计算机等级考试 2010 年 9 月第 12 题 ) A. 确定算法后, 整理并写出文档, 最后进行编码和上机调试 B. 首先确定数据结构, 然后确定算法, 再编码, 并上机调试, 最后整理文档 C. 先编码和上机调试, 在编码过程中确定算法和数据结构, 最后整理文档 D. 先写好文档, 再根据文档进行编码和上机调试, 最后确定算法和数据结构 考点 程序设计的步骤和顺序 分析 一个程序在编写代码之前应先确定其数据结构和算法, 编写完代码后再进行上机 调试, 调试结束之后, 整理其文档 本题选 B 例 4 下列叙述中错误的是 ( ) ( 计算机等级考试 2010 年 9 月第 13 题 ) A.C 程序在运行过程中所有计算都以二进制方式进行 B.C 程序在运行过程中所有计算都以十进制方式进行 C. 所有 C 程序都要编译连接无误后才能运行 D.C 程序中整型变量只能存放整型, 实型变量只能存放浮点型 考点 执行文件 分析 C 程序在运行过程中所有计算都以二进制方式进行 本题选 B 选择题 1.3 自测练习 1. 以下叙述中错误的是 ( ) A.C 语言是一种结构化程序设计语言 B. 结构化程序由顺序 分支 循环 3 种基本结构组成 C. 使用三种基本结构构成的程序只能解决简单问题 D. 结构化程序设计提倡模块化的设计方法 2. 以下叙述中正确的是 ( ) A.C 语言的源程序不必通过编译就可以直接运行 B.C 语言中的每条可执行语句最终都将被转换成二进制的机器指令 C.C 源程序经编译形成的二进制代码可以直接运行 D.C 语言中的函数不可以单独进行编译

12 第 2 章基本数据类型 运算符与表达式 掌握 C 语言数据的基本类型及其定义方式 ; 熟悉 C 语言运算符的种类 运算优先级和结合性 ; 掌握不同类型数据间的转换与运算 ; 掌握 C 语言表达式类型 ( 赋值表达式 算术表达式 关系表达式 逻辑表达式 ) 2.1 上机实训项目 上机实训项目指导 实训项目 1 数据的算术运算 ( 考虑用字符型数据和整型数据两种 ) 分析 对字符数据进行算术运算, 就是对它们对应的 ASCII 码值进行算术运算 ; 对整型 数据进行算术运算, 就用输入的数据直接进行运算 字符的 ASCII 码值范围是 0~255, 如 果对超出这个范围的整型数值以 %c 形式输出, 则会出现数据溢出现象 如果数值大于 256, 则输出的字符为该数值减去 256 后的数值在 ASCII 码表中对应的字符 源程序 1( 用字符型数据 ) 如下 : #include <stdio.h> void main( ) { char ch1,ch2; ch1='a'; ch2='b'; printf("ch1=%c,ch2=%c\n",ch1 32,ch2+32); /* 字母的大小写转换 */ printf("ch1+200=%d\n", ch1+200); printf("ch1+200=%c\n", ch1+200); /* 用字符形式输出一个大于 256 的数值 */ printf("ch1+256=%d\n", ch1+256); printf("ch1+256=%c\n", ch1+256); /* 用字符形式输出一个大于 256 的数值 */ 源程序 2( 用整型数据 ) 如下 : void main( ) { int first,second; printf("\n 请输入第一个数 :"); scanf("%d", &first); printf("\n 请输入第二个数 :"); scanf("%d", &second); printf("\n %d 与 %d 的和是 %d ",first,second, first+second);

13 8 程序设计基础实训指导教程 C 语言 printf("\n %d 与 %d 的积是 %d ",first,second,first*second); printf("\n %d 与 %d 的差是 %d ",first,second,first-second); printf("\n %d 除以 %d 的商是 %d ",first,second,first/second); printf("\n %d 除以 % d 的余数是 % d",first,second,first%second); printf("\n"); 实训项目 2 自增 自减运算符的用法与运算规则 分析 1) 自增 自减运算符常用于循环语句中, 使循环控制变量加 ( 或减 )1, 或用于指针变量, 使指针指向下 ( 或上 ) 一个地址 2) 自增 自减运算符只能用于变量, 不能用于常量和表达式 例如,3++ --(a+b) 等都是非法的 3) 在表达式中, 最好避免连续使用同一变量进行自增或自减运算 源程序如下 : { int a=3,b; printf("a=%d\n",a); b=++a; /* 前置运算 */ printf("b=++a:a=%d,b=%d\n",a,b); b=a++; /* 后置运算 */ printf("b=a++:a=%d,b=%d\n",a,b); 实训项目 3 试编写程序, 将输入的分钟数转换成用小时和分钟来表示 例如, 若输入 160, 输出则为 2 小时 40 分钟 分析 1) 确定变量的名字和类型 在程序中, 输入的分钟数放入变量 im, 转换后的小时数放在变量 h 中, 转换后的分钟数放在变量 m 中 将变量的类型设为整型以便于计算 2) 确定算法 小时 h 可通过 im/60 得到, 分钟 m 可通过 im%60 得到 3) 设计输出格式 将输出形式定为 小时 : 分钟 格式 源程序如下 : #include <stdio.h> void main( ) { int im,h,m; printf(" 请输入分钟 :"); scanf("%d",&im); printf("\n 您输入的是 %d 分钟 \n",im); h=im/60; m=im%60; printf("%3d 分钟是 %3d 小时 :%3d 分钟 \n",im,h,m);

14 第 2 章基本数据类型 运算符与表达式 9 实训项目 4 编写程序, 输入 3 个整数, 并分别赋给 a,b,c, 然后交换它们中的数, 即把 a 中原来的值赋给 b, 把 b 中原来的值赋给 c, 把 c 中原来的值赋给 a 分析 1) 定义 4 个整型变量 a,b,c 和 t, 变量 a,b,c 分别存放输入的 3 个整数,t 用做临时存储单元 2) 交换步骤如下 :1 把 c 中的值赋给 t;2 把 b 中的值赋给 c;3 把 a 中的值赋给 b; 4 把 t 中的值赋给 a 3) 输出 a,b,c 中的值, 并与原来的值进行比较 源程序如下 : { int a,b,c,t; printf("enter a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); printf("\n a=%d,b=%d,c=%d\n",a,b,c); t=c;c=b;b=a;a=t; printf(" 交换后 a=%d,b=%d,c=%d\n",a,b,c); 上机实训内容 实训内容 1 编程实现 : 输入一个 4 位数, 求 4 位数中各位数相加之和 分析接收用户输入的一个 4 位数, 分别用运算符 / 和 % 求得 4 位数中的各位数, 将所求的 4 个数相加得到结果并输出 实训内容 2 编程实现 : 输入天数, 求这天是全年的第几周的第几天 分析接收用户输入的天数 ; 分别用运算符 / 和 % 求得这天是第几周的第几天 ; 输出其结果, 注意周数的输出 实训内容 3 编程实现 : 输入两个数, 交换这两个数后, 再输出 分析接收用户输入的两个数, 再定义一个中间变量, 将其中一个数先存放在这个中间变量中, 再进行交换, 参考实训项目 典型试题剖析 一 选择题 例 1 当变量 c 的值不为 时, 值也为 真 的表达式是 ( ) ( 计算机等级考试 2008 年 4 月第 18 题 ) A.(c= =2) (c= =4) (c= =6) B.(c>=2&& c<=6) (c!=3) (c!=5) C.(c>=2&&c<=6)&&!(c%2) D.(c>=2&& c<=6)&& (c%2!=1) 考点 运算符 && 和 的使用

15 10 程序设计基础实训指导教程 C 语言 分析此题涉及 C 语言的一些具体规定 : 在处理运算符 && 时, 当第 1 个操作数为 0 时, 对第 2 个操作数不再进行运算 在处理运算符 时, 当第 1 个操作数为 1 时, 对第 2 个操作数不再进行运算 本题的目的是考察应试者对运算符优先级的掌握, 由于 B 选项的表 达式 (c>=2&& c<=6) 限定了 c 的取值范围为 2~6, 接下来的运算符, 只要满足第 1 个条 件, 其后的表达式就不做处理 因此, 只要 c 的值在这个范围内, 即可以为真 本题选 B 例 2 以下选项中不合法的标识符是 ( ) ( 计算机等级考试 2008 年 4 月第 12 题 ) A.printf B.FOR C.&a D._00 考点 标识符的合法性 分析 C 语言要求标识符必须由字母 数字或下画线组成, 并且第一个字符必须是字母 或下画线, 另外标识符不能和 C 语言的关键字相同 错选选项 A 的原因为 printf 是 C 语言 中的输出函数, 但函数名并非关键字, 是合法的标识符 ; 错选选项 B 的原因为 for 是 C 语言 的关键字, 但是 C 语言中的关键字区分大小写,for 和 FOR 是不同的, 所以 FOR 是合法的 标识符 ; 选项 D 符合标识符的定义规则 ; 选项 C 使用了 &, 不合法 本题选 C 例 3 以下选项中不属于字符常量的是 ( ) ( 计算机等级考试 2008 年 4 月第 13 题 ) A.'C' B."C" C.'\xcc' D.'\072' 考点 字符型数据的表达方式 分析 C 语言中规定字符常量用一对单撇号括起来, 本题容易误导的是转义字符 C 语 言字符集中的任何一个字符均可用转义字符来表示,'\ddd' 和 '\xhh' 分别表示八进制和十六进 制的 ASCII 值 本题选 B 例 4 设变量已正确定义并赋值, 以下正确的表达式是 ( ) ( 计算机等级考试 2008 年 4 月第 14 题 ) A.x=y*5=x+z B.int (15.8%5) C.x=y+z+5,++y D.x=25%5.0 考点表达式 分析选项 A, 考点为赋值表达式, 要求 = 左边必须是一个变量,y*5=x+z 是不合法 的 ; 选项 B, 考点为取模运算, 取模运算符 % 的操作数只能是整数, 故不合法 ; 选项 D, 考点为取模运算, 原因同 B 本题选 C 例 5 已知字母 A 的 ASCII 代码值为 65, 若变量 kk 为字符型, 以下不能正确判断 出 kk 中的值为大写字母的表达式是 ( ) ( 计算机等级考试 2008 年 4 月第 17 题 ) A.kk>='A'&&kk<='Z' B.!(kk>='A' kk<='z') C.(kk+32)>= 'a'&&(kk+32)<= 'z' D.isalpha(kk)&&(kk<91) 考点 逻辑表达式和字母 ASCII 值的应用 分析 C 语言中用来表示一个数在 A~Z 之间, 常用的表示方法是 A 选项 ;C 选项也是 常见考点, 小写字母比大写字母的 ASCII 代码值大 32;isalpha 函数用来判断是否为大小写字 母, 而大写字母的范围正好是 65~91 本题选 B 例 6 以下选项中, 合法的一组 C 语言数值常量是 ( ) ( 计算机等级考试 2007 年 9 月第 13 题 )

16 第 2 章基本数据类型 运算符与表达式 11 A.028 B.12. C.177 D.0x8A.5e-3 0Xa23 4e1.5 10,000.0xf 4.5e0 0abc 3.e5 考点 数据的合法性 分析 指数形式表示实数是计算机等级考试中常考的考点 选项 A 错在整数用 0 开头 表示八进制, 不能出现 8,.0xf 中多了一个.,C 语言的十六进制数值常量只有无符号整 数, 而没有小数 ; 选项 C 错在字母 E 或 e 之前必须有数字, 之后的指数必须为整数 ; 选项 D,10,000 中的逗号不是 C 语言的用法 本题选 B 例 7 以下 4 个程序中, 完全正确的是 ( ) ( 计算机等级考试 2006 年 4 月第 18 题 ) A.#include <stdio.h> B.#include <stdio.h> main( ); main( ) { /*programming*/ { /*/ programming /*/ printf("programming!\n"); printf("programming!\n"); C.#include <stdio.h> D.include <stdio.h> main( ) main( ) { /*/*programming*/*/ { /*programming*/ printf("programming!\n"); printf("programming!\n"); 考点 函数定义及注释的用法 分析 选项 A 错误在于 main( ) 后面不能接 ; ; 选项 C 错误在于 /* */ 不能嵌套使用, 即 /* */ 里面不能再有 /* */ ; 选项 D 错误在于 include 为预处理, 前面要加 # 本题 选 B 例 8 以下选项中合法的标识符是 ( ) ( 计算机等级考试 2009 年 3 月第 11 题 ) A.1_1 B.1 1 C._11 D.1 考点 标识符的合法性 分析 C 语言中要求标识符必须由字母 数字或下画线组成, 并且第一个字符必须是字 母或下画线 本题选 C 例 9 若函数中有定义语句 :int k;, 则 ( ) ( 计算机等级考试 2009 年 3 月第 12 题 ) A. 系统将自动给 k 赋初值 0 B. 这时 k 中值无定义 C. 系统将自动给 k 赋初值 -1 D. 这时 k 中无任何值 考点 C 语言变量的定义 分析 定义变量时, 编译器仅为变量开辟存储单元, 并没有在存储单元中存放任何值, 此时变量中的值是无确定的, 称变量值 无意义 本题选 B 例 10 设有定义 :int x=2;, 以下表达式中, 值不为 6 的是 ( )

17 12 程序设计基础实训指导教程 C 语言 A.x*=x+1 C.x*=(1+x) ( 计算机等级考试 2009 年 3 月第 14 题 ) B.x++,2*x D.2*x,x+=2 考点 复合赋值和逗号运算符的运算方式 分析 选项 A 和选项 C 是复合赋值, 展开结果是一样的, 选项 A:x=x*(x+1), 结果 为 6; 选项 C:x=x*(1+x), 结果为 6; 选项 B 和选项 D 是逗号运算符, 逗号运算符的作用 是将若干表达式连接起来, 它的优先级别在所有运算符中是最低的, 结合方向为自左至右 ; 选项 B 中先执行 x++, 逗号之前 x 的值变为 3, 逗号后的值即为表达式的值, 结果为 6; 选 项 D 中先执行 2*x 的值, 其值并没有影响 x 的值, 所以逗号后面的 x=x+2 的值为 4 本题 选 D 例 11 若有定义 :double a=22;int i=0,k=18;, 则不符合 C 语言规定的赋值语句 是 ( ) ( 计算机等级考试 2010 年 3 月第 14 题 ) A.a=a++,i++; B.i=(a+k)<=(i+k); C.i=a%11; D.i=!a; 考点 运算符 表达式和赋值语句 分析 选项 A 为逗号表达式, 先将 a++ 的结果赋给变量 a; 选项 B 是把比较的逻辑值的 结果赋给变量 i; 选项 C 中运算符 % 的两个操作数必须为整型, 这里的 a 是双精度浮点 型, 所以不对 ; 选项 D 是将逻辑值的结果赋给变量 i 本题选 C 例 12 有以下定义 :int a;long b;double x,y;, 则以下选项中正确的表达式是 ( ) ( 计算机等级考试 2010 年 9 月第 14 题 ) A.a%(int)(x-y) B.a=x!=y; C.(a*y)%b D.y=x+y=x 考点 运算符 分析 在选项 A 中如果 x 和 y 的值相等, 那么取余时就会有余数为 0 的情况 ; 选项 C 中运算符 % 的两边都应该为整数, 这里 a*y 的结果为双精度实型 ; 选项 D 在 C 语言中不 允许赋值给表达式 ; 选项 B 是将 x!=y 的这个逻辑值结果赋给变量 a 本题选 B 例 13 以下选项中能表示合法常量的是 ( ) ( 计算机等级考试 2010 年 9 月第 15 题 ) A. 整数 :1,200 B. 实数 :1.5E2.0 C. 字符斜杠 :'\' D. 字符串 :"\007" 考点常量的表示 分析在 C 语言中, 整数 1200 不能用 1,200 表示 ; 表示实数的时候,E 的前面必须有数,E 的后面必须是整数 ; 在 C 语言中反斜杠表示转义字符, 在它的后面必须有其他字符 本题选 D

18 第 2 章基本数据类型 运算符与表达式 13 例 14 阅读以下程序 : ( 计算机等级考试 2009 年 9 月第 13 题 ) main( ) { int case; float printf; printf(" 请输入 2 个数 :"); scanf("%d %f",&case,&printf); printf("%d %f\n",case,printf); 该程序在编译时产生错误, 其出错原因是 ( ) A. 定义语句出错,case 是关键字, 不能用作用户自定义标识符 B. 定义语句出错,printf 不能用作用户自定义标识符 C. 定义语句无错,scanf 不能作为输入函数使用 D. 定义语句无错,printf 不能输出 case 的值考点标识符和关键字 分析这里的 case 是关键字, 不可以用作标识符 本题选 A 二 填空题 例 1 已有定义 :char c=' ';int a=1,b;( 此处 c 的初值为空格字符 ), 执行 b=!c&&a; 后 b 的值为 ( 计算机等级考试 2008 年 4 月第 6 题 ) 考点 逻辑表达式 分析 空格字符也是字符, 也有相应的 ASCII 码值, 而整型数只要不是 0 就可视为逻辑 真, 所以!c 为假,!c 后面为运算符 &&, 若第 1 个表达式为假, 其后不再运算, 所以,b 的值为 0 答案 0 例 2 设变量已正确定义为整型, 则表达式 n=i=2,++i, i++ 的值为 ( 计算机等级考试 2008 年 4 月第 7 题 ) 考点 自增 自减运算符和逗号运算符 分析 逗号表达式的值是最后一个式子的值 ; 逗号运算符的结合方向是从右向左 n=i=2,++i, i++, 从左向右运算, 首先执行 n=i=2; 接着执行 ++i,i 的值为 3; 然后执行 i++, 先取值 i 再自增, 所以表达式的值为 3,i 的值变为 4 答案 3 例 3 以下程序运行后的输出结果是 ( 计算机等级考试 2005 年 9 月第 9 题 ) #include <stdio.h> { char c; int n=100; float f=10; double x; x=f*=n/=(c=50); printf("%d %f\n",n,x);

19 14 程序设计基础实训指导教程 C 语言 考点分析 运算符的结合性 赋值类运算符的结合性是自右向左, 故计算表达式 x=f*=n/=(c=50); 时, 先计算 c=50, 得到的结果表达式的值为 50,c 的值即表达式的值 ; 再计算 n/=c, 展开为 n=n/c, 即 n 的值为 2; 再计算 f*=n, 展开为 f=f*n, 即 f 的值为 20; 最后计算 x=f, 得到 x 的结果为 20 printf 语句输出 n 为 2,x 为 答案 例 4 若有语句 double x=17;int y;, 当执行 y=(int)(x/5)%2; 之后 y 的值是 ( 计算机等级考试 2009 年 9 月第 7 题 ) 考点 表达式 分析 这里运算符前面的 x 是一个实型, 所以 x/5 的值为实型,int 的优先级高于 %, 所 以先取整再求余, 所以 y 的值为 1 答案 1 例 5 设 x 为 int 型变量, 请写出一个关系表达式, 用以判断 x 同时为 3 和 7 的倍数时, 关系表达式的值为真 ( 计算机等级考试 2010 年 3 月第 6 题 ) 考点 关系表达式 分析 用 x%3==0 表示 x 除以 3 的余数为 0, 即 x 是 3 的倍数, 用同样的方式 x%7==0 表示 x 是 7 的倍数, 若两者同时都为真, 则需用关系运算符 && 连接, 即 (x%3==0)&& (x%7==0) 答案 (x%3==0)&&(x%7==0) 例 6 以下程序的功能 : 将值为三位正整数的变量 x 中的数值按照个位 十位 百 位的顺序拆分并输出, 请填空 ( 计算机等级考试 2010 年 3 月第 13 题 ) main() { int x=256; printf("%d-%d-%d\n",, x/10%10,x/100) 考点运算符 / 和 % 的使用 分析题目已经给出了十位和百位数的求法, 个位数只需要将这个数和 10 取余数即可, 即 x%10 答案 x% 自测练习 一 选择题 1."\\\"ABC\"\\" 的长度是 ( ) A.11 B.7 C.5 D.3

20 第 2 章基本数据类型 运算符与表达式 已知 int j,i=1;, 执行语句 j=-i++; 后,j 的值是 ( ) A.1 B.2 C.-1 D 已知 int i,a;, 执行语句 i=(a=2*3,a*5),a+6; 后, 变量 i 的值是 ( ) A.6 B.12 C.30 D 已知 int i=5;, 执行语句 i+=++i; 后,i 的值是 ( ) A.10 B.11 C.12 D.A B C 都不对 5. 已有定义 :char c;, 程序前面已在命令行中包含 ctype.h 文件, 不能用于判断 c 中的 字符是否为大写字母的表达式是 ( ) A.isupper(c) C.'A'<=c&&c<='Z' B.'A'<=c<='Z' D.c<=('z'-32)&&('a'-32)<=c 6. 设有定义 :int k=0;, 以下选项的 4 个表达式中与其他 3 个表达式的值不相同的 是 ( ) A.k++ B.k+=1 C.++k D.k+1 7. 设有定义 :int a=2,b=3,c=4;, 则以下选项中值为 0 的表达式是 ( ) A.(!a==1)&&(!b==0) C.a && b 8. 有以下程序 : { int a,b,d=25; a=d/10%9; b=a&&(-1); printf("%d,%d\n",a,b); B.(a<b)&&!c 1 D.a (b+b)&&(c A) 该程序的输出结果是 ( ) A.6,1 B.2,1 C.6,0 D.2,0 9. 有以下程序 : { int m=3,n=4,x; x= m++; x=x+8/++n; printf("%d\n",x); 该程序的输出结果是 ( ) A.3 B.5 C.-1 D.-2

21 16 程序设计基础实训指导教程 C 语言 二 填空题 1. 以下程序的输出结果是 { int m=011,n=11; printf("%d %d\n",++m,n++); 2. 设 int a=5,b=6;, 表达式 (++a==b--)?++a:--b 的值是

22 第 3 章程序结构 掌握 C 语言程序的输入函数 输出函数 赋值语句的使用方法, 能够正确输入数据并正确设计输出格式 ; 了解 C 语言程序的选择结构, 掌握 if 语句嵌套条件 条件运算符与条件运算以及 switch 语句的使用 ; 了解 C 语言程序的循环结构, 掌握循环嵌套 break 和 continue 语句, 重点掌握 while 语句 do-while 语句 for 语句的使用 3.1 上机实训项目 上机实训项目指导 1. 输入 / 输出与顺序结构编程 实训项目 1 源程序如下 : 格式字符的使用 #include <stdio.h> { int i=2518, num1=123, j=65; long num2=123456; float a=3.1415; char c='a'; printf(" i=%d, a=%f, a*10=%e\n", i, a, a*10); printf("num1=%d,num1=%5d\n",num1,num1); printf("num2=%ld,num2=%8ld,num2=%5ld\n",num2,num2,num2); printf("c=%c,%5c,%d\n",c,c,c); printf("j=%d,%c\n",j,j); printf("ch=%-3c\n", c); printf("%6s\n", "ABCD"); printf("%6.3s\n", "ABCD"); 分析 1)printf( ) 函数可以输出常量 变量和表达式的值, 但格式控制中的格式说明符, 必须按从左到右的顺序, 与输出项表中的每个数据一一对应, 否则会出错

23 18 程序设计基础实训指导教程 C 语言 2) 格式字符 d 用于十进制整型数据的输出 ; 格式字符 ld 用于长整型数据的输出 3) 格式字符 x e g 可以用小写字母, 也可以用大写字母 使用大写字母时, 输出数 据中包含的字母也大写 除了 x e g 格式字符外, 其他格式字符必须用小写字母 4) 字符紧跟在 % 后面就作为格式字符, 否则将作为普通字符使用 ( 原样输出 ) 5) 注意字符的各种输出形式 在 C 语言中, 整数可以用字符形式输出, 字符也可以用 整数形式输出 将整数用字符形式输出时, 系统会将整型数据的第 4 字节作为 ASCII 码, 然 后将其转换成相应字符输出 注意, 当转换成的 ASCII 码大于 127 时, 该字符为不可见字符 6) 系统输出字符和字符串时, 不输出单引号和双引号, 格式字符 s 在这里只能用于字符 串的输出, 格式字符 s 用于输入时只能对数组变量进行输入 实训项目 2 熟悉函数 getchar( ) 和 putchar( ) 的格式和使用方法 分析函数 getchar( ) 和 putchar( ) 只能用于单个字符的输入和输出, 一次只接收和输出一 个字符 源程序如下 : { char ch1, ch2, ch3; ch1=getchar();ch2=getchar();ch3=getchar(); /* 输入 */ putchar(ch1); putchar(ch2); putchar(ch3); /* 输出 */ putchar('\n'); putchar(ch1); putchar('\n'); /* 输出 ch1 的值, 并换行 */ putchar('o'); putchar('\n'); /* 输出字符 O, 并换行 */ putchar(ch3); putchar('\n'); 2. 选择结构程序设计 实训项目 3 编写一个程序, 根据用户输入的字符, 判断其是否是数字字符 分析 1) 输入一个字符 2) 判断该字符是否在字符 0~9 之间 源程序如下 : { char c; printf("please input a char:"); scanf("%c",&c) ; if(c>='0'&&c<='9') printf("\n %c 是数字字符!\n",c); else printf("\n %c 不是数字字符!\n",c);

24 第 3 章程序结构 19 实训项目 4 编写一个程序, 根据用户输入三角形的 3 条边长来判断是何种三角形, 并计算三角形的面积 分析能够组成三角形的基本条件是两边之和大于第 3 边 在满足条件的情况下, 根据三角形的面积公式计算出三角形面积 三角形有以下几种情况 1) 等边三角形 : 三边相等 2) 等腰三角形 : 两边相等 (3 种情况 ) 3) 直角三角形 : 两边的平方和等于第三边的平方 (3 种情况 ) 4) 其他为一般三角形 源程序如下 : #include<math.h> { float a,b,c; float s,area; printf("a,b,c="); scanf("%f,%f,%f",&a,&b,&c); if(a+b>c && b+c>a && a+c>b) { s=(a+b+c)/2; printf("s=%f\n",s); area=sqrt(s*(s-a)*(s-b)*(s-c)); printf("area=%f\n",area) ; if(a==b && b==c) printf(" 等边三角形 \n"); else if(a==b a==c c==b) printf(" 等腰三角形 \n"); else if((a*a+b*b==c*c) (a*a+c*c==b*b) (b*b+c*c==a*a)) printf(" 直角三角形 \n"); else printf(" 不能组成三角形 \n"); 实训项目 5 某物品原有价值为 p, 经过使用后其价值要降低, 价值的折扣率根据时间 t( 月数 ) 确定 :t<3, 无折扣 ;3 t<6,2% 折扣 ;6 t<12,5% 折扣 ;12 t<21,8% 折扣 ;t 21,10% 折扣 分析本例考查 switch 语句的用法, 说明如何将区间表示的数据转换成若干个整数表示 此外, 也说明了在进行除法运算时应注意参加运算的数据类型的问题 通过观察题目给的已知条件 t 所描述的数据区间, 容易发现, 区间的边界都是 3 的倍数, 因此, 使用表达式 t/3 即可将区间转化为整数 ( 注意 t 是整数 ) 整数为 0 时, 表示 t<3, 无折扣 ; 整数为 1 时, 表示 3 t<6,2% 折扣 ; 整数为 2 和 3 时, 表示 6 t<12,5% 折扣 ; 整数为 4~6 时, 表示 12 t<21,8% 折扣 ; 整数为其他值时, 表示 t 21,10% 折扣

25 20 程序设计基础实训指导教程 C 语言 还有一点需要说明, 因为变量 d 在初始化时定义的是整型, 计算折扣时, 显然要将 d 的 值处理成为百分比, 所以需要把 d 除以 100, 书写程序时应该写成 d/100.0, 或者 (float) d/100 等, 即 d 和 100 应有一个是浮点数, 因为使用表达式 d/100 的值为 0 源程序如下 : { int t,d; float p,q; printf(" 请输入使用时间 ( 月份 ):"); scanf("%d",&t); printf(" 请输入原有价值 :"); scanf("%f",&p); switch(t/3) { case 0:d=0;break; case 1:d=2;break; case 2: case 3:d=5;break; case 4: case 5: case 6:d=8;break; default:d=10; q=p*(1-d/100.0); printf("price=%f\n",q); 实训项目 6 运输公司对用户计算运费 路程 r(route) 越远, 每千米的运费越低 运费标准 :r<250 km, 没有折扣 ;250 r<500 km,5% 的折扣 ;500 r<1000 km,10% 的折扣 ;1000 r<2000 km,15% 的折扣 ;2000 r<3000 km,20% 的折扣 ;3000 r,30% 的折扣 设每千米每吨货物的基本运输费为 p(price), 货物重为 w(weight), 距离为 r, 折扣为 d(discount), 则总运费 f(freight) 的计算公式为 f=p w r (1-d) 分析通过分析发现折扣的变化是有规律的 可以看出, 折扣的 变化点 ( 如 ) 都是 250 的倍数 利用这一点, 可以在横轴上标定坐标 c,c 的值为 r/250 c 代表 250 的倍数 当 c<1 时, 表示 r<250, 无折扣 ; 当 1 c<2 时, 表示 250 r<500, 折扣 d=5%;2 c<4 时, 表示 500 r<1000, 折扣 d=10%; 当 4 c<8 时, 表示 1000 r<2000, 折扣 d=15%; 当 8 c<12 时, 表示 2000 r<3000, 折扣 d=20%; 当 c 15 时, 表示 r 3000, 折扣 d=30% 源程序如下 :

26 第 3 章程序结构 21 { int c, r; float p, w, d, f; printf(" 请输入每千米每吨货物的基本运费 :"); scanf("%f", &p); printf("\n 请输入货物重量 :"); scanf("%f", &w); printf("\n 请输入运输距离 :"); scanf("%d", &r); if(r>=3000)c=12; else c=r/250; switch(c) { case 0:d=0;break; case 1:d=5;break; case 2: case 3:d=10;break; case 4: case 5: case 6: case 7:d=15;break; case 8: case 9: case 10: case 11:d=20;break; case 12:d=30;break; f=p*w*r*(1-d/100.0); printf("freight=%15.4f",f); 注意, 当 r 3000 时, 令 c=12, 而不使 c 随着 r 增大, 这是为了在 switch 语句中便于处理, 用一个 case 语句可以处理所有 r 3000 的情况 程序第 12 行中将路程除以 250 再赋值给 c, 这是 switch 函数中经常需要用到的一个技巧, 主要是为了减少 switch 语句中判断情况的次数 实训项目 7 输入某年某月某日, 判断这一天是这一年的第几天 分析要判断输入的日期是这一年中的第几天, 首先要计算此日期前的月份包含多少天 以 3 月 15 日为例, 应该首先把前两个月的天数加起来, 然后再加上 15 天即本年的第几天 特殊情况下, 如闰年且输入月份数大于 2 时需考虑多加一天, 那么此程序还要根据输入的年份判断是否为闰年 闰年的判断规则 : 如果此年号能被 400 整除, 或者此年号能被 4 整除, 但不能被 100 整除, 则是闰年 ; 否则不是 源程序如下 : { int day,month,year,sum,leap;

27 22 程序设计基础实训指导教程 C 语言 printf("\nplease input year,month,day\n"); scanf("%d,%d,%d",&year,&month,&day); switch(month) /* 先计算某月以前月份的总天数 */ { case 1:sum=0;break; case 2:sum=31;break; case 3:sum=59;break; case 4:sum=90;break; case 5:sum=120;break; case 6:sum=151;break; case 7:sum=181;break; case 8:sum=212;break; case 9:sum=243;break; case 10:sum=273;break; case 11:sum=304;break; case 12:sum=334;break; default:printf("dataerror");break; sum=sum+day; /* 再加上某月的天数 */ if((year%4==0&&year%100!=0) (year%400==0)) /* 判断是不是闰年 */ leap=1; else leap=0; if(leap==1&&month>2) /* 如果是闰年且月份大于 2, 总天数应该加一天 */ sum++; printf("it is the %dth day.",sum); 3. 循环结构程序设计 实训项目 8 编写一个程序输入 10 个整数 分析本题可以用 while 循环语句 do-while 循环语句和 for 循环语句实现, 在这里用 while 语句实现, 另外两种循环语句的实现方法请同学们自行完成 注意, 这里的变量 x 接收了输入的 10 个数, 但是最终只存储了最后一个数 源程序如下 : { int x,i=1; while(i<=10) /* 用循环变量 i 作为循环次数的判断变量 */ { scanf("%d", &x); i=i++; printf( %d\n,x); /* 只显示最后输入的一个数 */

28 第 3 章程序结构 23 实训项目 9 译密码 为使电文保密, 往往按一定规律将其转换成密码, 收报人再 按约定规律将其译回原文 例如, 可以按表 3-1 所示的字母转换表 ( 小写字母略 ) 的顺序将 电文变成密码, 即从 A~U 都把当前字母变为其后第 5 个字母, 后面 V 变成 A,W 变成 B, X 变成 C,Y 变成 D,Z 变成 E 字母按上述规律转换, 不分大小写, 非字母字符不变 如 Computer! 换成 Htruzyjw! 输入一行字符, 要求输出相应的密码 表 3-1 字母转换表 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z F G H I J K L M N O P Q R S T U V W X Y Z A B C D E 分析程序对输入的字符处理办法 : 先判定其是否为字母, 若是, 则将其值加 5( 变成其后的第 5 个字母 ) 如果加 5 以后字符值大于 Z 或 z, 则表示原来的字母在 U( 或 u) 之后, 应按表 3-1 所示的规律将它转换为 A~E( 或 a~e) 之一 办法是使 c 减 26, 但实现时不能用 if(c>'z' c>'z') c=c 26;, 因为当字母为小写时都满足 c>'z' 条件, 从而也执行 c=c 26; 语句, 这就会出错 因此必须限制其范围为 c>'z' && c<='z'+5, 即原字母为 V~Z, 在此范围以外的不是大写字母 V~Z, 不应按此规律转换 源程序如下 : { char c; while((c=getchar())!='\n') { if((c>='a'&&c<='z' ) (c>='a'&&c<='z')) { c=c+5; if(c>'z'&&c<='z'+5 c>'z')c=c 26; printf("%c",c); 思考 : 小写字母的转换不按此处理, 只需写成 c>'z' 应如何实现? 实训项目 10 用 do-while 语句求 1~1000 之间满足 用 3 除余 2, 用 5 除余 3, 用 7 除余 2 的数, 且 1 行只输出 5 个数 分析本题要求用 do-while 循环语句实现, 所以要注意其循环格式, 即先执行再判断 另外, 在输出时要判断是否换行 源程序如下 : { int i=1,j=0; do{ if(i%3==2&&i%5==3&&i%7==2) { printf("%4d",i); j=j+1;

29 24 程序设计基础实训指导教程 C 语言 if(j%5==0) i=i+1; while(i<1000); printf("\n"); 实训项目 11 鸡兔共有 30 只, 脚共有 90 只, 编写一个程序, 计算鸡兔各有多少只 分析根据题意, 设鸡有 i 只, 则兔有 30 - i 只,i 从 0~15 进行循环, 找出满足条件 2*i+4*(30-i)=90 的 i 即可 源程序如下 : #include <stdio.h> { int i; for(i=0;i<=15;i++) if(2*i+4*(30-i)==90) printf(" 鸡 =%d 只 兔 =%d 只 \n",i,30-i); 思考 : 变量 i 的循环区间为什么是 0~15 实训项目 12 完成用 100 元人民币换成 1 元 2 元 5 元零钞的所有兑换方案 分析先考虑人民币 100 元换成 5 元的张数, 再考虑换成 2 元的张数, 最后考虑换成 1 元的张数情况, 因此本题要用到两层循环 源程序如下 : { int i,j,k,f=1; for(i=0;i<=20;i++) for(j=0;j<=50;j++) { k=100 i*5 j*2; if(k>0) { printf("%2d;%2d;%2d ",i,j,k); 实训项目 13 90=2*3*3*5 f=f+1; if(f%5==0) printf("\n"); 编写一个程序将一个正整数分解成质因数 例如, 输入 90, 输出 分析对 n 进行分解质因数, 应先找到一个最小的质数 k, 然后按下述步骤完成 1) 如果这个质数恰等于 n, 则说明分解质因数的过程已经结束, 输出即可 2) 如果 n k, 但 n 能被 k 整除, 则应输出 k 的值, 并用 n 除以 k 的商, 作为新的正整数 n, 重复执行第一步 3) 如果 n 不能被 k 整除, 则用 k+1 作为 k 的值, 重复执行第一步

30 第 3 章程序结构 25 源程序如下 : { int n,i; printf("\nplease input a number:\n"); scanf("%d",&n); /* 输入 n 的值 */ printf("%d=",n); for(i=2;i<=n;i++) /* 从 2 开始循环一直到 n 值 */ { while(n!=i) /* 如果 n 不为自己, 也就是 n 不为素数 */ { if(n%i==0) /* n 能被 i 除尽, 即找到 n 的质数 */ { printf("%d*",i); n=n/i; /* 继续找下一个质数, 把 n/i 作为新的 n 值 */ else break; printf("%d",n); 实训项目 14 编写一个程序实现累加输入的数, 直到输入 0 为止 分析本题要求用 while 循环语句实现, 输入非 0 数就不断地累加, 如果输入 0 就用 break 语句退出 源程序如下 : { float s=0,x; while(1) /* 用 while(1) 表示一直循环, 这是个恒真的条件 */ { scanf("%f",&x); if(x==0) break; /* 如果 x=0 用 break 语句强制跳出循环 */ else s=s+x; printf("s=%f\n",s); 上机实训内容 1. 输入 / 输出与顺序结构编程 实训内容 1 要使下面程序的输出语句在屏幕上输出 1, 2, 345, 则从键盘输入的数据格式应为以下备选答案中的

31 26 程序设计基础实训指导教程 C 语言 main( ) { char a,b; int c; scanf("%c%c%d",&a,&b,&c); printf("%c,%c,%d\n",a,b,c); A B.1, 2, 345 C.'1','2',345 D 思考 : 1) 在与上面程序的键盘输入相同的情况下, 要使上面程序的输出语句在屏幕上输出 , 则应修改程序中的哪条语句? 怎样修改? 2) 要使上面程序的键盘输入数据格式为 1,2,345, 输出语句在屏幕上输出的结果也为 1,2,345, 则应修改程序中的哪条语句? 怎样修改? 3) 要使上面程序的键盘输入数据格式为 1,2,345, 而输出语句在屏幕上输出的结果为 '1', '2',345, 则应修改程序中的哪条语句? 怎样修改? 4) 要使上面程序的键盘输入无论用下面哪种格式输入数据, 程序在屏幕上的输出结果都为 '1', '2',345, 则程序应修改程序中的哪条语句? 怎样修改? 提示利用转义字符输出字符单引号字符 第 1 种输入方式 :1,2,345< 回车 >( 以逗号作为分隔符 ) 第 2 种输入方式 : < 回车 >( 以空格作为分隔符 ) 第 3 种输入方式 : < 回车 >( 以 Tab 键作为分隔符 ) 第 4 种输入方式 :1< 回车 > 2< 回车 > 345< 回车 > 实训内容 2 输入连续的 4 个字符 ( 要求是大写英文字母 ), 要求输出对应的小写英文字母的 4 个字符 分析接收用户输入的 4 个大写英文字母, 给 4 个字符型变量存放这 4 个字符, 分别用该变量加上 32 来求得对应的小写字母, 将所求的 4 个字符输出 2. 选择结构程序设计 实训内容 3 输入一个整数, 判断其是奇数还是偶数 分析接收用户输入的一个非 0 的整数, 利用 mod 函数或者运算符 % 求余数, 能够被 2 整除的数是偶数, 否则是奇数 实训内容 4 输入一个年份, 判定给定的年份是否为闰年 分析接收用户输入的一个 4 位数的整数作为年份 ; 闰年的判定规则 : 能被 4 整除但不

32 第 3 章程序结构 27 能被 100 整除的年份, 或能被 400 整除的年份, 根据结果判断是否为闰年 实训内容 5 输入 3 个整数, 根据大小判断哪个数是 3 个数中的中间一个 分析接收用户输入的 3 个整数, 判定 3 个整数之间的大小, 根据结果判断出中间的一个 可以用不嵌套的多个 if 语句来求, 也可以用嵌套的 if 语句来求得 实训内容 6 要求判别键盘输入字符的类别 在 0~9 之间的为数字字符, 在 A~Z 之间的为大写字母, 在 a~z 之间的为小写字母, 其余则为其他字符 分析接收用户输入的一个字符, 分别用 if 的嵌套语句判断是什么字符, 根据判断结果, 显示其字符类别 实训内容 7 编写一个简单的计算器, 实现两个整型数的四则运算 分析接收用户输入的两个整型数据, 和一个运算符 ( 加 减 乘 除 ), 判断当前接收的运算符类别, 进行计算, 显示计算结果 分别用 if 嵌套语句和 switch 语句两种方式来做 3. 循环结构程序设计 实训内容 8 输入一个数值, 根据这个数值可以输出一个加法表 例如, 输入 5, 则输出结果为 = = = = = 5 分析接收用户输入的一个整数, 这个整数是用户计算中的输出结果 ; 定义一个变量从 0 变化到小于输入的这个整数, 定义另一个变量从输入的这个整数开始变化到 1; 这两个变量每次相加的结果都为这个整数 实训内容 9 输入一行字符, 判断有多少个单词数 分析接收用户输入的一行字符, 注意一行字符的输入方法 ( 碰到输入的第一个回车符结束一行字符的输入 ), 从第一个非空格字符开始计算, 到后继碰到的第一个空格字符结束, 即为所求的一个单词 ; 可以用 break 语句强制退出循环体 实训内容 10 猜数游戏 要求猜一个介于 1~10 之间的数字, 将用户猜测的数与制定的标准值进行对比, 并给出是大了还是小了的提示, 以便下次猜测能接近标准值, 直到猜中为止 分析先制定一个标准值, 再任意输入一个 1~10 之间的数字与标准值进行比较, 判断其是否和标准值一样, 根据判断结果给出必要提示 : 大了 或者是 小了 ; 反复执行直到猜中为止 实训内容 11 输出下列图形 分析用循环的嵌套语句完成, 用外层循环控制行数, 用内层循环控制列数, 每行由符号 * 空格 还有回车符组成输出结果

33 28 程序设计基础实训指导教程 C 语言 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 实训内容 12 编写一个程序, 完成九九乘法表 分析用循环的嵌套完成, 用外层循环控制九九乘法表中的行数, 一共有九行, 用内层循环控制九九乘法表中每行都有当前行数这么多列, 根据行数和列数的关系显示出九九乘法表中的内容 3.2 典型试题剖析 一 选择题 1. 输入 / 输出与顺序结构编程 例 1 设变量均已正确定义, 若要通过 scanf("%d%c%d%c",&a1,&c1,&a2,&c2); 语句为变量 a1 和 a2 赋数值 10 和 20, 为变量 c1 和 c2 赋字符 X 和 Y 以下所示的输入形式正确的是 ( )( 注 : 代表空格字符 ) ( 计算机等级考试 2007 年 4 月第 16 题 ) A.10 X 20 Y< 回车 > B.10 X20 Y< 回车 > C.10 X< 回车 > D.10X< 回车 > 20 Y< 回车 > 20Y< 回车 > 考点 scanf() 函数的输入格式 分析 %d 用来读入整型数据, 当遇到非数字字符结束, 此时非数字字符将存入键盘缓 冲区, 如果接着读入字符, 将从键盘缓冲区中读入该字符, 对于 D 选项的输入,10 后面是 字符 X, 则将 10 赋给 a1, 将字符 X 赋给 c1, 将 20 赋给 a2, 将字符 Y 赋给 c2 本题选 D 例 2 若变量已正确定义为 int 型, 要通过语句 scanf("%d,%d,%d",&a,&b,&c); 给 a 赋值 1, 给 b 赋值 2, 给 c 赋值 3, 以下输入形式中错误的是 ( )( 代表空格字符 ) A. 1,2,3< 回车 > B.1 2 3< 回车 > C.1, 2, 3< 回车 > D.1,2,3< 回车 > 考点 scanf() 函数的输入格式 ( 计算机等级考试 2008 年 9 月第 19 题 ) 分析格式控制符中出现的常规字符 ( 包括转义字符 ), 务必原样输入 本题选 B 例 3 程序段 :int x=12;double y= ;printf("%d%8.6f",x,y); 的输出结果是 ( ) ( 计算机等级考试 2009 年 3 月第 15 题 ) A B C.12, D 考点 printf() 函数的输出格式

34 第 3 章程序结构 29 分析 printf("%d%8.6f",x,y); 按用户指定的格式 %d%8.6f 输出, 输出数据间没有分 隔符, 连续输出, 8.6f 表示实数输出占 8 个空格的位置, 小数点后保持 6 位 本题选 A 例 4 有以下程序 : main() { int a1,a2;char c1,c2; scanf("%d%c%d%c",&a1,&c1,&a2,&c2); printf("%d,%c,%d,%c",a1,c1,a2,c2); 若想通过键盘输入, 使得 a1 的值为 12,a2 的是为 34,c1 的值为字符 a,c2 的值为字符 b, 程序输出结果 :12,a,34,b, 则正确的输入格式是 ( ) ( 计算机等级考试 2009 年 3 月第 23 题 ) A.12a34b< 回车 > B.12 a 34 b< 回车 > C.12,a,34,b< 回车 > D.12 a34 b< 回车 > 考点函数 scanf( ) 输入格式控制符 分析当输入整数或实数等数值型数据时, 输入的数据之间必须用空格符 回车符 制表符等间隔符号隔开, 间隔符个数不限 但输入字符型数据时, 输入的数据之间不用这些间隔符隔开, 因为这些间隔符会被当作一个字符读入 本题选 A 例 5 有以下程序 : main() { char a,b,c,d; scanf("%c %c",&a,&b); c=getchar(); d=getchar(); printf("%c%c%c%c\n",a,b,c,d); 当执行程序时, 按下列方式输入数据 ( 从第 1 列开始, 注意, 回车也是一个字符 ): 12< 回车 > 34< 回车 > 则输出结果是 ( ) ( 计算机等级考试 2010 年 3 月第 15 题 ) A.1234 B.12

35 30 程序设计基础实训指导教程 C 语言 C.12 D 考点字符数据的两种输入方式 :scanf( ) 函数和 getchar( ) 函数 分析无论用哪种函数对字符型数据进行输入, 任意字符 ( 包括平时输入的一些间隔符 ) 都会被当作一个字符读入, 所以本题的回车符会被当作一个字符读入, 赋给了变量 c, 所以输出的时候分别输出 12< 回车 > 和 3 本题选 C 2. 选择结构程序设计 例 6 有如下程序 : int a=3,b=5,c=7; if(a>b) a=b; c=a; if(c!=a) c=b; printf("%d.%d.%d\n",a,b,c); 执行后输出结果是 ( ) ( 计算机等级考试 2008 年 4 月第 19 题 ) A. 程序段有语法错误 B.3,5,3 C.3,5,5 D.3,5,7 考点本例考查 if 表达式 分析 if 表达式后的语句如果是多条, 则需要用复合语句的形式表达 本题 if(a>b) 为 假, 则执行 c=a;, 再执行 if(c!=a) 为假, 所以本题选 B 例 7 设有条件表达式 :(exp)?i++:j, 则以下表达式中与 (exp) 完全等价的是 ( ) ( 计算机等级考试 2007 年 9 月第 21 题 ) A.(exp= =0) B.(exp!=0) C.(exp==1) D.(exp!=1) 考点 本例考查表达式 分析 仅 exp 的话, 表达含义等同于 exp!= 0,A 选项表达意思反了 ;C 选项 exp==1 的 局限于 1 的情况, 事实上非 0 数都为真, 不是仅 1 才为真 ;D 选项 exp!=1 表达不对,0 为假 本题选 B 例 8 有以下计算公式 : y= x, x 0 x,x<0 若程序前面已在命令中包含 math.h 文件, 不能够正确计算上述公式的程序段是 ( ) ( 计算机等级考试 2007 年 9 月第 20 题 ) A. if(x>=0) y=sqrt(x); B.y=sqrt(x); else y=sqrt( x); if(x<0) y=sqrt( x); C. if(x>=0) y=sqrt(x); D.y=sqrt(x>=0?x: x); if(x<0) y=sqrt( x); 考点 本例考查 if 的多种表达方式 分析 注意 if 的搭配, 选项 A 为标准的分支 ; 选项 B, 没有判别 x, 就执行 y=sqrt(x);, x 小于 0 时就出现错误 ; 选项 C 用两层平行的 if 做选择, 分为两种可能性 ; 选项 D 用的是 if-else 语句的另一种表达方式 本题选 B

36 第 3 章程序结构 31 例 9 有以下程序 : main( ) { int a=1,b=2,c=3,d=0; if(a==1 &&b++==2) if(b!=2 c--!=3) printf("%d,%d,%d\n",a,b,c); else printf("%d,%d,%d\n",a,b,c); else printf("%d,%d,%d\n",a,b,c); 程序运行后的输出结果是 ( ) ( 计算机等级考试 2009 年 3 月第 19 题 ) A.1,2,3 B.1,3,2 C.1,3,3 D.3,2,1 考点 本例考查 if 与 else 的搭配 分析 程序首先执行第 1 个判断语句,a==1 成立 ( 这里程序要执行逻辑与运算, 如果 a==1 不能成立, 就不会执行后面的 b++==2 语句 );b++==2, 先判断 b 是否为 2, 再进行 b 加 1 操作, 执行后 b 的值为 3, 此时第一个判断语句条件成立 ; 继续执行第 2 个判断语句, 此时程序执行逻辑或运算 ( 如果 b!=2 成立, 就不会执行 c--!=3 语句 ), 此时的 b 已经不等 于 2 了, 所以程序不再执行 c--!=3 语句了 本题选 C 例 10 若变量已正确定义, 在 if(w) printf("%d\n,k"); 中, 以下不可替代 w 的是 ( ) ( 计算机等级考试 2010 年 9 月第 17 题 ) A.a<>b+c B.ch=getchar( ) C.a==b+c D.a++ 考点 if 语句的表达式 分析 在 C 语句中, 表示不等于, 不可以用 <> 表示, 要用!= 表示 本题选 A 例 11 以下程序段中, 与语句 k=a>b?(b>c?1:0):0; 功能相同的是 ( ) ( 计算机等级考试 2009 年 9 月第 19 题 ) A. if((a>b)&&(b>c)) k=1; B.if((a>b) (b>c)) k=1; else k=0; else k=0; C. if(a<=b)k=0; D.if(a>b) k=1; else if(b<=c) k=1; else if(b>c) k=1; else k=0; 考点 条件表达式与 if 的嵌套语句 分析 k=a>b?(b>c?1:0):0; 语句的功能是当 a>b 且 b>c 时,k=1; 当 a>b 且 b<=c 时,k=0; 当 a<=b 时,k=0; 即除第一种情况以外的 k 值都为 0 本题选 A 例 12 有如下嵌套的 if 语句 : if(a<b) { if(a<c) k=a;

37 32 程序设计基础实训指导教程 C 语言 else k=c; else if(b<c) k=b; else k=c; 以下选项中与上述 if 语句等价的语句是 ( ) ( 计算机等级考试 2010 年 3 月第 19 题 ) A.k=(a<b)?a:b; k=(b<c)?b:c; B.k=(a<b)?(( b<c )?a:b): ((b<c)?b:c); C.k=(a<b)?(( a<c )?a:c): ((b<c)?b:c); D.k=(a<b)?a:b; k=(a<c)?a:c; 考点 if 嵌套语句和条件表达式 分析 在 a<b 的前提下首先讨论 a<c, 根据这个意图, 排除了选项 A 和选项 B; 在 a<b 不成立时, 应该讨论 b<c, 根据这个意图, 排除了选项 D 本题选 C 例 13 有以下程序 : { int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) { case 0: a++; break; case 1: b++; break; case 2: a++;b++; break; case 3: a++;b++; printf("a=%d,b=%d\n",a,b); 程序的运行结果是 ( ) ( 计算机等级考试 2008 年 4 月第 20 题 ) A.a=1,b=0 B.a=2,b=2 C.a=1,b=1 D.a=2,b=1 考点 switch 嵌套和 break 语句 分析 本题中 x 的值为 1, 所以 case 1 条件中的语句将被执行, 里面嵌套一个 switch(y), 继续执行,y 的值为 0, 执行 switch(y) 里面的 case 0; 由于有 break 语句, 所以里面的 case 0 后的语句不被执行, 跳出内层 switch(y); 由于 switch(x) 的 case 1 后没有 break 语句, 所以其 后的 case 2 继续执行 变量 a 自增 2 次,b 自增 1 次 本题选 D 例 14 以下选项中与 if (a==1) a=b; else a++; 语句功能不同的 switch 语句是 ( ) ( 计算机等级考试 2010 年 3 月第 18 题 ) A.switch(a) B.switch(a==1) { case 1:a=b;break; { case 0:a=b;break; default:a++; case 1:a++;

38 第 3 章程序结构 33 C.switch(a) 考点 分析 D.switch(a==1) { default:a++;break; { case 1:a=b;break; case 1:a=b; case 0:a++; 本题考查 switch 语法 根据 switch 语句的语法规则, 在选项 A C 和 D 中, 当 a 为 1 时, 应该执行语句 a=b;, 当 a 不为 1 时, 执行语句 a++;, 所以这 3 个选项都正确 本题选 B 例 15 若有定义语句 int a,b; double x;, 则下列选项中没有错误的是 ( ) A.switch(x%2) ( 计算机等级考试 2010 年 9 月第 19 题 ) B.switch((int)x/2.0) case 0:a++;break; { case 0:a++;break; case 1:b++;break; case 1:b++;break; default:a++; b++; default:a++;b++; C.switch((int)x%2) D.switch((int(x)%2) { case 0:a++;break; { case 0.0:a++;break; case 1:b++;break; case 1.0:b++;break; default:a++;b++; default:a++;b++; 考点 switch 语句的使用 分析 在 switch 语句中, 括号内的数据类型应该与下面 case 语句后的常量保持类型一 致 ; 选项 A 中因为变量 x 是双精度型, 不可以参与 % 的运算 ; 选项 B 中因为是和 2.0 做 除法运算, 所以结果为实型, 与下面 case 语句后的类型不一致 ; 选项 D 中 switch 语句括号 内的结果为一个整型数据, 与下面 case 语句后的类型也不一致 本题选 C 3. 循环结构程序设计 例 16 设变量已正确定义, 以下能正确计算 f=n! 的程序段是 ( ) ( 计算机等级考试 2008 年 9 月第 27 题 ) A.f=0; B.f=1; for(i=1;i<=n;i++) f*=i; for(i=1;i<n;i++) f*=i; C.f=1; D.f=1; for(i=n;i>1;i++) f*=i; for(i=n;i>=2;i ) f*=i; 考点 本题考查 for 循环 分析 本题选项 A, 变量 f 初值为 0, 错误 ; 选项 B, 循环变量 i 的循环终止值不正确 ; 选项 C, 使用循环递减, 则循环变量 i 应该递减 本题选 D 例 17 有以下程序 : { int x=8; for(;x>0;x )

39 34 程序设计基础实训指导教程 C 语言 { if(x%3) { printf("%d,",x ); continue; printf("%d,", x); 程序的运行结果是 ( ) ( 计算机等级考试 2008 年 4 月第 21 题 ) A.7,4,2, B.8,7,5,2 C.9,7,6,4 D.8,5,4,2 考点 本题考查 for 循环和 continue 语句 分析 for 循环的小括号 ( ) 内有 3 个表达式用 2 个 ;, 表达式 1 为循环变量初始赋 值, 表达式 2 为循环变量终止条件, 表达式 3 为循环变量控制循环执行 3 个表达式可以缺 省, 但必须保留其位置, 即 ; 必须为 2 个 本题循环 x=8 初始条件写在 for 循环外, 这是 循环变量赋初值常用的一种形式 for 循环采取递减的形式, 当 x<=0 时, 循环不再继续 continue 语句为终止本次循环操作继续下一次循环操作, 当满足 if(x%3) 条件时, 则先输出 x, 再递减, 然后退出本次循环继续下次循环 本题解题规律总结 :x 是 3 的倍数,x 减少 1 次 ; x 不是 3 的倍数,x 减少 2 次 本题选 D 例 18 以下不构成无限循环的语句或语句组是 ( ) ( 计算机等级考试 2008 年 4 月第 22 题 ) A.n=0; B.n=0; do{++n;while(n<=0); while(1){n++ C.n=10; D.for(n=0,i=1;;i++) while(n){n++; n+=i; 考点 本题考查循环 3 要素 分析 循环终止条件是决定一个循环是否正确的关键 选项 A,n 初始赋值为 0,n 自 增, 终止条件为 n<=0,do 循环执行一遍即退出 ; 选项 B,while(1) 条件为永远为真, 无限循 环 ; 选项 C,n 初值为 10, 循环条件即 n, 而在循环体内,n 自增, 则 while(n) 条件为永远为 真, 无限循环 ; 选项 D, 无循环终止条件, 默认为永远为真, 无限循环 本题选 A 例 19 有以下程序 : { int i,j,m=55; for(i=1;i<=3;i++) for(j=3;j<=i;j++) m=m%j; printf("%d\n",m); 程序的运行结果是 ( ) ( 计算机等级考试 2008 年 4 月第 21 题 ) A.0 B.1 C.2 D.3 考点 本题考查 for 循环嵌套及循环次数 分析 本题关注的是 m 的值,m 的变化与循环次数有关 for(i=1;i<=3;i++) 循环执行 3

40 第 3 章程序结构 35 次,for(j=3;j<=i;j++) 内循环的次数与外循环 i 有关 当 i=1 时, 内循环不执行 ; 当 i=2 时, 内循环不执行 ; 当 i=3 时, 内循环执行 1 次,m=m%3 本题选 B 例 20 以下叙述中正确的是 ( ) ( 计算机等级考试 2007 年 4 月第 22 题 ) A.break 语句只能用于 switch 语句体内 B.continue 语句的作用是 : 使程序的执行流程跳出包含它的所有循环 C.break 语句只能用在循环体内和 switch 语句体内 D. 在循环体内使用 break 语句和 switch 语句的作用相同考点本题考查 break 语句和 continue 语句 分析 break 语句和 continue 语句可以用在选择分支和循环, 以及其他需要的地方 关键需要掌握两种 中断 的含义 在循环语句中,break 语句是真正的跳出本层循环, 即停止本层循环 ; 而 continue 语句是停止本次循环继续下一次循环, 并没有真正跳出循环 本题选 C 例 21 有以下程序 : { int k=5,n=0; do{ switch(k) { case 1: case 3:n+=1;k ;break; default:n=0;k ; case 2:case 4:n+=2;k ;break; printf("%d",n); while(k>0&&n<5); 程序的运行结果是 ( ) ( 计算机等级考试 2007 年 4 月第 23 题 ) A.235 B.0235 C D.2356 考点 本题考查 do-while 循环和 switch 嵌套 分析 掌握循环和选择结构的语法, 面对复杂结构程序时, 掌握其变化规律, 解题将会 得心应手 k 初值为 5, 首次循环执行 default 语句后,n 值为 0,k 值为 4; 注意 default 语句 后面没有 break; 语句, 继续执行 case 2: case 4:n+=2;k--;break;, 跳出 switch 语句再次循环, 则此时 n 值为 2,k 值为 3 第 2 次循环,k 值为 3,n 值为 2, 执行 case 1: case 3:n+=1;k--;, break;, 跳出 switch 语句再次循环, 此时 n 值为 3,k 值为 2 第 3 次循环,k 值为 2,n 值为 3, 执行 case 2: case 4:n+=2; k--; break; 后,n 值为 5,k 值为 1, 跳出 switch 语句继而判断循 环条件是否满足,while(k>0&&n<5) 条件不成立, 退出循环 本题选 A 例 22 有以下程序 : { int i,j; for(i=1;i<4;i++)

41 36 程序设计基础实训指导教程 C 语言 { for(j=i;j<4;j++) printf("%d*%d=%d ",i,j,i*j); printf("\n"); 程序的运行结果是 ( ) ( 计算机等级考试 2007 年 4 月第 23 题 ) A.1*1=1 1*2=2 1*3=3 B.1*1=1 1*2=2 1*3=3 2*1=2 2*2=4 2*2=4 2*3=6 3*1=3 3*3=9 C.1*1=1 D.1*1=1 1*2=2 2*2=4 2*1=2 2*2=4 1*3=3 3*1=3 3*2=6 3*3=9 考点 本题考查循环嵌套 分析 掌握循环嵌套结构的多种形式 此题为矩阵类型题目的经典算法, 掌握图形规律, 用循环初值 终止 变量控制等表达图形规律 本题选 B 例 23 以下程序中,while 循环的循环次数是 ( ) ( 计算机等级考试 2002 年 4 月第 25 题 ) { int i=0; while(i<10) { if(i<1) continue; if(i==5) break; i++; A.1 B.10 C.6 D. 死循环, 不能确定次数 考点 本题考查 while 循环的用法, 以及 continue 语句和 break 语句的差别 分析 本题要求的是循环次数, 首先要检查 while 中的判断条件,i<10 表明此循环是有 限循环, 然后再观察 while 内部,if(i<1) continue; 第 1 次循环 i=0, 满足 if 条件, 执行 continue 语句直接结束本次循环, 不再执行循环内部的其他语句, 再次执行 while(i<10), 而此时 i 的 值仍为 0, 无疑仍然重复以上步骤, 那么 i 的值没有变化, 循环继续为死循环 本题选 D 例 24 有如下程序 : ( 计算机等级考试 2003 年 4 月第 24 题 ) { int i=0,s=0; do{ if(i%2) { i++; continue; i++;

42 第 3 章程序结构 37 s+=i; while(i<7); printf("%d\n",s); 执行后输出结果是 ( ) A.16 B.12 C.28 D.21 考点 本例考查 continue 语句 分析 初始赋值时 s=0, 由题意知,s 的值与 i 有关 if (i%2) { i++; continue;, 则 i=1, 3,5 时, 执行 s+=i;, 即 s= =16 本题选 A 例 25 以下程序中的变量已正确定义 for(i=0;i<4;i++,i++) for(k=1;k<3;k++);printf("*"); 程序段的输出结果是 ( ) ( 计算机等级考试 2009 年 3 月第 20 题 ) A.******** B.**** C.** D.* 考点 for 循环的使用 分析 在这里注意第 2 个 for 语句的后面有一个分号, 所以 for 语句到这里就结束了, 后面的 printf( ) 函数不是循环体, 所以 printf( ) 函数只执行了一次 本题选 D 例 26 设变量已正确定义, 以下不能统计出一行中输入字符个数 ( 不包含回车符 ) 的程序段是 ( ) ( 计算机等级考试 2009 年 3 月第 22 题 ) A.n=0;while((ch=getchar( ))!='\n')n++; B.n=0;while(getchar( )!='\n')n++; C.for(n=0; getchar( )!='\n';n++); D.n=0;for(ch=getchar( );ch!='\n';n++); 考点 字符输入函数 getchar( ) 用在循环的表达式中 分析 选项 A 每进行一次循环就判断输入的字符是否为回车符, 如果不是就进行下一 次判断, 因此可以统计出输入字符的个数 ; 选项 B 和选项 A 类似也是判断输入的字符是否 是回车符, 功能一样 ; 选项 C 是把上面的 while 语句改为了 for 语句 ; 选项 D 是只输入了一 个字符, 如果这个字符是回车符, 则程序只执行一次, 如果输入的是非回车符, 则程序进入 死循环 本题选 D 例 27 有以下程序 : main() { int c=0,k; for(k=1;k<3;k++) switch(k) { default:c+=k; case 2:c++;break; case 4:c+=2;break;

43 38 程序设计基础实训指导教程 C 语言 printf("%d\n",c); 程序运行后的输出结果是 ( ) ( 计算机等级考试 2009 年 9 月第 18 题 ) A.3 B.5 C.7 D.9 考点 for 语句嵌套 switch 语句的用法 分析 switch 语句在循环中被执行了 2 次, 当 k=1 时,switch(1) 应执行 default 语句, 即 c=c+k=0+1=1, 此时因为没有 break 语句, 继续执行 case 2, 即 c++, 此时 c=2, 有 break 语 句, 退出继续循环 ; 当 k=2 时,switch(2) 应执行 case 2, 即 c++, 此时 c=3, 有 break 语句, 退出继续循环,for 语句判断循环只执行两遍, 所以此时 c=3 本题选 A 例 28 有以下程序 : main() { int n=2,k=0; while(k++&&n++>2); printf("%d %d\n",k,n); 程序运行后的输出结果是 ( ) ( 计算机等级考试 2009 年 9 月第 21 题 ) A.0 2 B.1 3 C.5 7 D.1 2 考点 while 语句 分析 在 while 语句的条件中,k++ 和 n++>2 执行的是与运算, 如果 k++ 为假就不会执 行 n++>2; 此时 k++ 会先判断 k 值再执行 k++, 所以结果为 0 即为假, 所以不会执行 n++>2, 此时 while 的条件为假, 直接跳出循环, 因为 while 语句的后面直接有一个分号, 所以 printf 语句不是循环体, 是循环体以外的语句, 此时要执行 ; 因为 k++ 语句执行了, 所以 k=1, 而 n++>2 语句没有执行, 所以 n 的值没有变化 本题选 D 例 29 有以下程序 : main() { int i,j,m=1; for(i=1;i<3;i++) { for(j=3;j>0;j--) { if(i*j>3) break; m*=i*j; printf("m=%d\n",m); 程序运行后的输出结果是 ( ) ( 计算机等级考试 2010 年 3 月第 20 题 ) A.m=6 B.m=2 C.m=4 D.m=5

44 第 3 章程序结构 39 考点 for 语句嵌套和 break 语句的用法 分析外层循环一共循环了两次, 当 i=1 时, 无论内层循环 j 取什么值,i*j 都不会大于 3, 所以都不会碰到 break 语句, 下面的 m*=i*j 语句会执行 3 次,m=m*i*j=1*1*3=3 和 m=m*i*j=3*1*2=6 和 m=m*i*j=6*1*1=6; 当 i=2 时, 内层循环当 j=3 时,i*j 会大于 3, 就会碰到 break 语句, 下面的 m*=i*j 语句就不会执行, 直接退出内层的 for 语句, 所以在第 2 轮循环中一次都没有执行了 m*=i*j 语句 所以本题选 A 例 30 有以下程序 : main() { int a=1,b=2; for(;a<8;a++) {b+=a;a+=2; printf("%d,%d\n",a,b); 程序运行后的输出结果是 ( ) ( 计算机等级考试 2010 年 3 月第 21 题 ) A.9,18 B.8,11 C.7,11 D.10,14 考点 for 语句的使用 分析此题 for 语句中的第 1 个表达式省略了, 那么 a 的初值, 就取 for 语句前的值, 即 a=1, 当 a<8 时就执行循环体, 第 1 轮循环 a=1,b=2 进入循环体语句,b=b+a=2+1=3, a=a+2=1+2=3; 再执行 a++, 即 a=4, 第 2 轮循环 a=4,b=3 进入循环体语句,b=b+a=3+4=7, a=a+2=4+2=6; 再执行 a++, 即 a=7, 第 3 轮循环 a=7,b=7 进入循环体语句,b=b+a=7+7=14, a=a+2=7+2=9; 再执行 a++, 即 a=10, 此时 a 不再小于 8, 所以退出循环 本题选 D 例 31 有以下程序 : main() { int y=10; while(y--); printf("y=%d\n",y); 程序运行后的输出结果是 ( ) ( 计算机等级考试 2011 年 9 月第 21 题 ) A.y=0 B.y=-1 C.y=1 D.while 构成无限循环考点 while 语句的使用 分析此题 y 从 10 一直减到 1 都满足 while 语句的条件, 因为 while 语句后面直接有分号, 所以循环体为空语句, 一直循环, 当 y=1 时满足 while 语句的循环条件, 此时 y 变为 0, 下次判断循环条件时, 就不再满足条件了, 但是还是要执行 y--, 再退出循环, 退出循环的时候 y=-1 所以本题选 B

45 40 程序设计基础实训指导教程 C 语言 二 填空题 1. 输入 / 输出与顺序结构编程 例 1 执行以下程序时, 输入 < 回车 >, 则输出结果是 #include <stdio.h> { int a=1,b; scanf("%2d%2d",&a,&b); printf("%d %d\n",a,b); ( 计算机等级考试 2007 年 9 月第 6 题 ) 考点数据的格式化输入 分析本题中格式控制字符串为 %2d%2d, 其中控制说明符 %2d 用来指定输入数据所占最大宽度, 输入 < 回车 > 后,a 的值为 12,b 的值为 34 最后的输出结果为 a=12,b=34 答案 例 2 以下程序运行后的输出结果是 ( 计算机等级考试 2005 年 9 月第 6 题 ) main() { int x=0210; printf("%x\n",x); 考点数据的格式化输出 分析本题中格式说明符 %X 表示按十六进制形式输出 x 的值,x 的值是以八进制形式输入的 210, 其对应二进制形式为 , 转换为十六进制形式为 88, 屏幕输出结果是十六进制数 88 答案 88 例 3 有以下程序 : ( 计算机等级考试 2010 年 9 月第 7 题 ) main() { int x,y; scanf("%2d%1d",&x,&y); printf("%d\n",x+y); 程序运行时输入 , 则程序的运行结果是 考点数据的格式化输入 分析可以指定输入数据的列宽, 系统自动按所指定的格式截取所需数据 控制说明符 %2d 表示将输入数据的 2 个列宽的数据赋给变量 x, 所以 x 接收 12, 同理 %1d 表示将输入数据的 1 个列宽的数据赋给变量 y, 此时 12 已经赋给了变量 x, 那么 y 将接收 3 的值, 所以输出 x+y 的值即为 15 答案 15

46 第 3 章程序结构 选择结构程序设计 例 4 以下程序的功能 : 输出 a,b,c 3 个变量中的最小值, 请填空 main() { int a,b,c,t1,t2; scanf("%d%d%d",&a,&b,&c); t1=a<b? ; t2=c<t1? ; printf("%d\n",t2); ( 计算机等级考试 2007 年 9 月第 7 题 ) 考点本题考查条件表达式 分析 表达式 1? 表达式 2: 表达式 3 和 if-else 的表达方式一样, 表达式 1 为条件, 相当于 if() 语句括号里的条件, 当条件为真的时候执行表达式 2, 当条件为假的时候执行表达式 3 答案 a:b c:t1 例 5 以下程序运行后的输出结果是 ( 计算机等级考试 2003 年 9 月第 8 题 ) { int a=1,b=3,c=5; if(c=a+b) printf("yes\n"); else printf("no\n"); 考点 本例考查 if-else 结构及 = 和 = = 的区别 分析 c=a+b 是将 a 和 b 的值相加赋给 c, 这时 c=4 这时 c 不等于 0, 条件为真, 输出 yes 注意, 这不是 c==a+b 的形式 答案 yes 例 6 有如下程序 : ( 计算机等级考试 2003 年 4 月第 9 题 ) { int a=3,b=3,t=0,c=5; if(a<b) t=a;a=b;b=t; if(a<c) t=a;a=c;c=t; printf("%d %d %d\n", a,b,c); 执行后输出结果是 考点本例考查 if 语句语句的用法

47 42 程序设计基础实训指导教程 C 语言 分析本题要注意执行的顺序 执行 if(a<b) 语句时, 只有 t=a; 是条件成立后的语句, 不管条件是否成立 a=b; b=t; 这两条语句都会执行, 这里条件不成立, 所以只执行后面两条语 句, 即 a=b; b=t;, 结果 a=3,b=0, 再执行 if(a<c), 这里条件成立, 将会执行三条语句, 即 t=a=3, a=c=5,c=t=3, 所以最后结果为 a=5,b=0,c=3 本题很容易看成是 if (a<b) {t=a; a=b; b=t;if (a<c) { t=a; a=c; c=t; 答案 例 7 以下程序运行后的输出结果是 { int x=10,y=20,t=0; if(x==y) t=x;x=y;y=t; printf("%d,%d\n",x,y); ( 计算机等级考试 2002 年 9 月第 7 题 ) 考点本题考查 if 语句的用法 分析 if(x==y) 条件不成立, 则执行 x=y 和 y=t, 所以 x=y=20,y=t=0 答案 20,0 例 8 若从键盘输入 58, 则以下程序输出的结果是 ( 计算机等级考试 2002 年 4 月第 6 题 ) { int a; scanf("%d",&a); if(a>50) printf("%d",a); if(a>40) printf("%d",a); if(a>30) printf("%d",a); 考点本题考查 if 语句的用法 分析本题是 3 个 if 语句按顺序执行 : 先执行 if(a>50) printf("%d",a); 输出 58, 再执行 if(a>40) printf("%d",a); 输出 58, 最后执行 if(a>30) printf("%d",a); 仍然输出 58,3 个 58 一起就是 答案 例 9 以下程序运行后的输出结果是 ( 计算机等级考试 2003 年 9 月第 9 题 ) { int i,m=0,n=0,k=0; for(i=9;i<=11;i++) switch(i/10) { case 0: m++;n++;break; case 10: n++; break;

48 第 3 章程序结构 43 default: k++;n++; printf("%d %d %d\n",m,n,k); 考点本例考查 for 循环与 switch 语句的结合应用 分析 for 循环的 i 从 9 开始到 11, 共循环 3 次 : 当 i=9 时,i/10 的值为 0, 执行 case 0 语句,m=1,n=1; 当 i=10 时,i/10 的值为 1, 执行 default 语句后,k=1,n=2; 当 i=11 时, i/10 的值为 1, 执行 default 语句后,k=2,n=3 答案 例 10 下列程序段的输出结果是 ( 计算机等级考试 2001 年 4 月第 10 题 ) int n='c'; switch(n++) { default: printf("error");break; case 'a':case 'A':case 'b':case 'B':printf("good");break; case 'c':case 'C':printf("pass"); case 'd':case 'D':printf("warn"); 考点本题考查 switch 语句的用法 分析 n 赋初值为 c,n++ 是后置自增运算, 表达式 n++ 仍为 c, 所以第一次输出的值为 pass; 因语句后没有 break 语句, 接着输出 warn; 然后跳出 switch 语句 答案 passwarn 例 11 有以下程序 : main() { int a=1,b=2,c=3,d=0; if(a==1) if(b!=2) if(c==3) d=1; else d=2; else if(c!=3) d=3; else d=4; else d=5; printf("%d\n",d); 程序运行后的输出结果是 ( 计算机等级考试 2010 年 3 月第 7 题 ) 考点 if 的嵌套使用 分析 if 语句中 else 的配对原则就是和最近的未配对的 if 配对, 这里 if(a==1) 条件成立, 就执行 if (b!=2), 此时条件不成立, 就会去执行 else if (c!=3), 此时 if(c!=3) 的条件也不成立, 执行 d=4, 所以结果为 4 答案 4

49 44 程序设计基础实训指导教程 C 语言 3. 循环结构程序设计 例 12 有以下程序段, 且变量已正确定义和赋值 : for(s=1.0,k=1;k<=n;k++) s=s+1.0/(k*(k+1)); printf("s=%f\n",s); 请填空, 使下面程序段的功能与之完全相同 ( 计算机等级考试 2007 年 9 月第 9 题 ) s=1.0;k=1; while( ) { s=s+1.0/(k*(k+1)); printf("s=%f\n",s); 考点 本题考查 for 循环与 while 循环的表达方式 分析 无论何种循环, 必须具备循环的 4 要素, 即循环初值 终止条件 循环变量控制 循环体 for 循环和 while 循环仅表达方式不同, 相互可以转换 转换规则如下 : 等价于 for( 表达式 1; 表达式 2; 表达式 3) 循环体 ; 表达式 1; while( 表达式 2) { 循环体 ; 表达式 3; 答案 k<=n k++; 例 13 以下程序运行后的输出结果是 ( 计算机等级考试 2007 年 9 月第 10 题 ) { int i; for(i='a';i<'f';i++,i++) printf("%c",i-'a'+'a'); printf("\n"); 考点本题考查 for 循环的循环变量控制 分析 for 循环中的循环变量控制非常灵活, 可以用多种方式体现, 不论哪种方式, 只要掌握其规律即可 本题表达式 3 的形式为 i++,i++, 则循环一次, 变量自增 2 答案 ACE

50 第 3 章程序结构 45 例 14 以下程序运行后的输出结果是 { int x=15; while(x>10&&x<50) { x++; if(x/3) {x++;break; else continue; printf("%d\n",x); ( 计算机等级考试 2002 年 9 月第 8 题 ) 考点本例考查 break 和 continue 在循环结构中的综合使用 分析本题输出 15~50 以内第一个被 3 整除不为 0 的整数, 且让该整数加 1 答案 17 例 15 下面程序的功能是计算 1~10 之间奇数之和及偶数之和, 请填空 ( 计算机等级考试 2000 年 4 月第 10 题 ) { int a,b,c,i; a=c=0; for(i=0;i<10;i+=2) { a+=i; ; c+=b; printf(" 偶数之和 =%d\n",a); printf(" 奇数之和 =%d\n",c-11); 考点本题考查 for 语句的应用 分析本题要得到的是 1~10 之间的奇 偶数之和 for(i=0;i<10;i+=2) 语句共执行 5 次, 显然 a+=i 是得到偶数之和, 那么 c+=b 应该是得到奇数之和, 若 i 是 0,2,4,6,8, 那么 b 应该是 1,3,5,7,9, 可以由 i 得到, 所以 b=i+1 答案 b=i+1 例 16 下面程序的功能是输出 100 以内能被 3 整除且个位数为 6 的所有整数, 请填空 ( 计算机等级考试 2000 年 4 月第 11 题 ) { int i,j; for(i=0; ; i++)

51 46 程序设计基础实训指导教程 C 语言 { j=i*10+6; if continue; printf("%d\n",j); 考点 本题考查 for 语句和 continue 语句的结合使用 分析 本题需要输出 100 以内能被 3 整除且个位数为 6 的所有整数 答案 i<10 (i%3!=0) 例 17 以下程序运行后的输出结果是 ( 计算机等级考试 2009 年 3 月第 9 题 ) main() { int k=1,s=0; do{ if{((k%2)!=0) continue; s+=k;k++; while(k>10); printf("s=%d/n",s); 考点本题考查 do-while 语句和 continue 语句的结合使用 分析 continue 语句用于跳出本次循环, 直接进行下一次循环 这里进行 if 判断时 k 的值为 1 不能够被 2 整除, 因此执行 continue 语句退出本次循环, 没有对 s 和 k 进行任何操作, 直接进行循环条件的判断, 此时的 k 为 1, 不满足循环条件, 直接退出循环, 输出的 s 的值为 0, 即 s=0 答案 s=0 例 18 有以下程序 : ( 计算机等级考试 2010 年 3 月第 8 题 ) #include <stdio.h> main() { int m,n; scanf("%d%d",&m,&n); while(m!=n) { while(m>n) m=m-n; while(m<n) n=n-m; printf("%d\n",m); 程序运行后, 当输入 14 63< 回车 > 时, 输出结果是 考点 while 语句的嵌套使用 分析初始值 m=14,n=63 此时满足条件 m!=n 进入循环体, 因为此时 m 不大于 n, 所以循环体中第一个循环 while(m>n) m=m-n; 不执行, 只执行 while(m<n) n=n-m;, 当 m<n

52 第 3 章程序结构 47 时,n=n-m=63-14=49,m 不变, 此时还是满足 m<n 的条件, 在 m 值还是不变的情况下, n=n-m=49-14=35, 此时还是满足 m<n 的条件, 在 m 值还是不变的情况下,n=n-m=35-14=21, 此时不再满足 m<n 的条件, 退出 while (m<n) n=n-m; 循环, 继续执行外层循环, 此时 m=14, n=21, 依旧满足 m!=n 条件, 继续进入循环体, 这时循环体中第一个循环 while (m>n) m=m-n; 的条件还是不满足, 不执行, 只执行 while (m<n) n=n-m;, 当 m<n 时,n=n-m=21-14=7,m 不变 m=14, 此时不再满足 m<n 的条件, 退出 while (m<n) n=n-m; 循环, 继续执行外层循环, 此时的 m=14,n=7, 依旧满足 m!=n 条件, 继续进入循环体, 这时满足循环体中第一个循环 while (m>n) m=m-n; 执行 m=m-n=14-7=7, 这时不满足 while (m>n) m=m-n; 的条件, 而且也不满足 while (m<n) n=n-m; 和外层循环 while(m!=n) 的条件, 退出所有循环, 此时 m=7 答案 自测练习 一 选择题 1. 有以下程序 : { int x,y,z; x=y=1; z=x++,y++,++y; printf("%d,%d,%d\n",x,y,z); 程序运行后的输出结果是 ( ) A.2,3,3 B.2,3,2 C.2,3,1 D.2,2,1 2. 设有定义 :int a; float b;, 执行 scanf("%2d%f",&a,&b); 语句时, 若从键盘输入 876 空 格 543.0< 回车 >,a 和 b 的值分别是 ( ) A.876 和 B.87 和 C.87 和 D.76 和 以下程序的功能是 : 给 r 输入数据后, 计算半径为 r 的圆的面积 s 程序在编译时 出错 /* Beginning */ { int r; float s; scanf("%d",&r); s=p*r*r;

53 48 程序设计基础实训指导教程 C 语言 printf("s=%f\n",s); 出错的原因是 ( ) A. 注释语句书写位置错误 B. 存放圆半径的变量 r 不应该定义为整型 C. 输出语句中格式描述符非法 D. 计算圆面积的赋值语句中使用了非法变量 4. 数字字符 0 的 ASCII 码值为 48, 若有以下程序 : { char a='1',b='2'; printf("%c,",b++); printf("%d\n",b-a); 程序运行后的输出结果是 ( ) A.3,2 B.50,2 C.2,2 D.2,50 5. 有以下程序 : { int m=12,n=34; printf("%d%d",m++,++n); printf("%d%d\n",n++,++m); 程序运行后的输出结果是 ( ) A B C D 有以下程序 : { int m,n,p; scanf("m=%dn=%dp=%d",&m,&n,&p); printf("%d%d%d\n",m,n,p); 若想从键盘上输入数据, 使变量 m 中的值为 123,n 中的值为 456,p 中的值为 789, 则 正确的输入是 ( ) A.m=123n=456p=789 B.m=123 n=456 p=789 C.m=123,n=456,p=789 D 若执行如下程序时从键盘上输入 9, 则输出结果是 ( )

54 第 3 章程序结构 49 { int n; scanf("%d",&n); if(n++<10) printf("%d\n",n); else printf("%d\n",n--); A.11 B.10 C.9 D.8 8. 有如下程序 : void main( ) { int x; scanf("%d",&x); if(x--<5) printf("%d",x); else printf("%d",x++); 程序运行后, 如果从键盘上输入 5, 则输出结果是 ( ) A.3 B.4 C.5 D.6 9. 与 y=(x>0?1:x<0?-1:0); 的功能相同的 if 语句是 ( ) A.if (x>0) y=1; B.if(x) else if(x<0) y=-1; if(x>0) y=1; else y=0; else if(x<0) y=-1; else y=0; C.y=-1 D.y=0; if(x) if(x>=0) if(x>0) y=1; if(x>0) y=1; else if(x==0) y=0; else y=-1; else y=-1; 10. 若有定义 : float w;int a, b;, 那么合法的 switch 语句应该是 ( ) A.switch(w) B.switch(a); { case 1.0: printf("*\n"); { case 1 printf("*\n"); case 2.0: printf("**\n"); case 2 printf("**\n"); C.switch(b) D.switch(a+b); { case 1: printf("*\n"); { case 1: printf("*\n"); default: printf("\n"); case 2: printf("**\n"); case 1+2: printf("**\n"); default: printf("\n"); 11. 有如下程序 : void main( ) { int x=1,a=0,b=0; switch(x) { case 0: b++; case 1: a++;

55 50 程序设计基础实训指导教程 C 语言 case 2: a++;b++; printf("a=%d,b=%d\n",a,b); 该程序的输出结果是 ( ) A.a=2,b=1 B.a=1,b=1 C.a=1,b=0 D.a=2,b=2 12. 有如下程序 : void main( ) { float x=2.0,y; if(x<0.0) y=0.0; else if(x<10.0) y=1.0/x; else y=1.0; printf("%f\n",y); 该程序的输出结果是 ( ) A B C D 以下程序的输出结果是 ( ) void main( ) { int a= 1,b=1; if((++a<0)&&!(b--<=0)) printf("%d %d\n",a,b); else printf("%d %d\n",b,a); A.-1 1 B.0 1 C.1 0 D 假定所有变量均已正确说明, 下列程序段运行后 x 的值是 ( ) a=b=c=0;x=35; if(!a) x--; else if(b) if(c) x=3; else x=4; A.34 B.4 C.35 D 有如下程序 : { int a=2,b= 1,c=2; if(a<b) if(b<0) c=0;

56 第 3 章程序结构 51 else c++; printf("%d\n",c); 该程序的输出结果是 ( ) A.0 B.1 C.2 D 两次运行下面的程序, 如果从键盘上分别输入 6 和 4, 则输出结果是 ( ) { int x; scanf("%d",&x); if(x++>5) printf("%d",x); else printf("%d\n",x--); A.7 和 5 B.6 和 3 C.7 和 4 D.6 和 有如下程序 : { float x,y; scanf("%f",&x); if(x<0.0) y=0.0; else if((x<5.0)&&(x!=2.0)) y=1.0/(x+2.0); else if(x<10.0) y=1.0/x; else y=10.0; printf("%f\n",y); 如果运行时从键盘上输入 2.0< 回车 >, 则该程序的输出结果是 ( ) A B C D 若执行下面的程序时从键盘上输入 3 和 4, 则输出结果是 ( ) { int a,b,s; scanf("%d %d",&a,&b); s=a; if(a<b) s=b; s=s*s; printf("%d\n",s);

57 52 程序设计基础实训指导教程 C 语言 A.14 B.16 C.18 D 下面的程序 ( ) { int x=3,y=0,z=0; if(x=y+z) printf("****"); else printf("####"); A. 有语法错误不能通过编译 B. 输出 **** C. 可以通过编译, 但是不能通过连接, 因而不能运行 D. 输出 #### 20. 若执行下面的程序时从键盘上输入 5, 则输出结果是 ( ) { int x; scanf("%d",&x); if(x++>5) printf("%d\n",x); else printf("%d\n",x--); A.7 B.6 C.5 D 下面的程序段所表示的数学函数关系是 ( ) y=-1; if(x!=0) if(x>0) y=1; else y=0 A. 1 (x< 0) y= 0 (x= 0) 1(x > 0) C. 0(x< 0) y= 1(x= 0) 1(x> 0) 22. 以下程序的输出结果是 ( ) { int m=5; if(m++>5) printf("%d\n",m); else printf("%d\n",m ); B. 1(x< 0) y= 1(x= 0) 0(x> 0) D. 1(x< 0) y = 1(x= 0) 0(x> 0)

58 第 3 章程序结构 53 A.7 B.6 C.5 D 以下程序的输出结果是 ( ) { int y=10; do{ y--; while(--y); printf("%d\n",y--); A.-1 B.1 C.8 D 执行以下语句, 会产生编译错误的是 ( ) A.if(x++); else; B.if(x++) y++; z++; else y--;z--; C.if(x++) y++, z++; else y--; z--; D.if(x++) {; else y--; z--; 25. 以下程序的输出结果是 ( ) { int x=10,y=10,i; for(i=0;x>8;y=++i) printf("%d %d ",x--,y); A B C D 以下程序的输出结果是 ( ) #include <stdio.h> { int n=4; while(n--) printf("%d ",--n); A.2 0 B.3 1 C D 执行下面程序段的结果是 ( ) int x=23; do{ printf("%2d",x--); while(!x); A.321 B.23 C. 不输出任何内容 D. 陷入死循环 28. 以下程序的输出结果是 ( ) { int i;

59 54 程序设计基础实训指导教程 C 语言 for(i=1;i<6;i++) { if(i%2) {printf("#"); continue; printf("*"); printf("\n"); A.#*#*# B.##### C.***** D.*#*#* 29. 以下循环体的执行次数是 ( ) { int i,j; for(i=0,j=1;i<=j+1;i+=2, j--) printf("%d\n",i); A.3 B.2 C.1 D 有如下程序 : { int i,sum; for(i=1;i<=3;sum++) sum+=i; printf("%d\n",sum); 该程序的执行结果是 ( ) A.6 B.3 C. 死循环 D 有如下程序段 : int n=0,p; do{scanf("%d",&p);n++;while(p!=12345 &&n<3); 此处 do-while 循环的结束条件是 ( ) A.P 的值不等于 12345, 并且 n 的值小于 3 B.P 的值等于 12345, 并且 n 的值大于或等于 3 C.P 的值不等于 12345, 或者 n 的值小于 3 D.P 的值等于 12345, 或者 n 的值大于或等于 有如下程序 : { int n=9; while(n>6)

FJXBQ

FJXBQ 高等医学院校选用教材 ( 供成人教育中医药专业 中西医结合专业使用 ) 方剂学 闫润红 主编 2 0 0 1 内容简介本书是供成人教育中医药专业 中西医结合专业使用的教材 全书分总论和各论两部分, 总论部分对中医方剂的基本理论, 如治法 君臣佐使 剂型 剂量等及其现代研究进展进行了介绍 各论部分对常用方剂的主治病证 配伍意义 临床应用 加减变化规律及现代研究概况等内容, 按分类进行了系统阐述 在保证方剂学学科知识结构完整性的前提下,

More information

实验目的 (1) 熟练掌握顺序 分支 循环三种结构 (2) 会使用流程控制结构编写程序 第三章程序的流程控制 实验要求 (1) 掌握 if-else swith-case 的使用 (2) 掌握 while do-while for 的使用 (3) 掌握分支嵌套和循环嵌套 (4) 分析理解如何避免死循

实验目的 (1) 熟练掌握顺序 分支 循环三种结构 (2) 会使用流程控制结构编写程序 第三章程序的流程控制 实验要求 (1) 掌握 if-else swith-case 的使用 (2) 掌握 while do-while for 的使用 (3) 掌握分支嵌套和循环嵌套 (4) 分析理解如何避免死循 实验目的 (1) 熟练掌握顺序 分支 循环三种结构 (2) 会使用流程控制结构编写程序 第三章程序的流程控制 实验要求 (1) 掌握 if-else swith-case 的使用 (2) 掌握 while do-while for 的使用 (3) 掌握分支嵌套和循环嵌套 (4) 分析理解如何避免死循环 实验范例 系统常用类 : 字符串类 (String) a) 从字符串 s 中截取一个字符串方法 s.substring()

More information

Generated by Unregistered Batch DOC TO PDF Converter , please register! 浙江大学 C 程序设计及实验 试题卷 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:3

Generated by Unregistered Batch DOC TO PDF Converter , please register! 浙江大学 C 程序设计及实验 试题卷 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:3 浙江大学 C 程序设计及实验 试题卷 2002-2003 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:30-10:30 注意 : 答题内容必须写在答题卷上, 写在本试题卷上无效 一. 单项选择题 ( 每题 1 分, 共 10 分 ) 1. 下列运算符中, 优先级最低的是 A.

More information

期中考试试题讲解

期中考试试题讲解 一 选择题 ( 一 ) 1. 结构化程序设计所规定的三种基本结构是 C A 主程序 子程序 函数 B 树形 网形 环形 C 顺序 选择 循环 D 输入 处理 输出 2. 下列关于 C 语言的叙述错误的是 A A 对大小写不敏感 B 不同类型的变量可以在一个表达式中 C main 函数可以写在程序文件的任何位置 D 同一个运算符号在不同的场合可以有不同的含义 3. 以下合法的实型常数是 C A.E4

More information

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 月 3 日 1 1 INPUTOUTPUT 1 InputOutput 题目描述 用 cin 输入你的姓名 ( 没有空格 ) 和年龄 ( 整数 ), 并用 cout 输出 输入输出符合以下范例 输入 master 999 输出 I am master, 999 years old. 注意 "," 后面有一个空格,"." 结束,

More information

<4D F736F F D205A572D2D A1AAA1AAD4ACE7F42D43D3EFD1D4CAB5D1B5BDCCB3CC2E646F6378>

<4D F736F F D205A572D2D A1AAA1AAD4ACE7F42D43D3EFD1D4CAB5D1B5BDCCB3CC2E646F6378> 第 1 部分 Visual Studio 6.0 开发环境介绍 本书以 Visual C++ 6.0 作为 C 源程序的实践开发环境, 本章将首先介绍 Visual C++ 6.0 环境的基本操作, 包括 Visual C++ 6.0 的安装和启动,C 源程序的编辑 运行与调试 1.1 安装与启动 Visual C++ 6.0 MSDN Visual C++ 6.0 1.1 Microsoft Visual

More information

《C语言程序设计》教材习题参考答案

《C语言程序设计》教材习题参考答案 教材名称 : C 语言程序设计 ( 第 1 版 ) 黄保和 江弋编著清华大学出版社 ISBN: 978-7-302-13599-9, 红色封面答案制作时间 :2011 年 2 月 -5 月一 选择题 1. 设有程序段 int k=10;while(k=0)k=k-1;, 则下面叙述正确的是 D 循环体语句一次也不执行 2. 设有程序段 int x=0,s=0;while(!x!=0)s+=++x;printf(

More information

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP:  ******************* * 关于 Java 测试试题 ****** ******************* * 关于 Java 测试试题 ******************* 問 1 运行下面的程序, 选出一个正确的运行结果 public class Sample { public static void main(string[] args) { int[] test = { 1, 2, 3, 4, 5 ; for(int i = 1 ; i System.out.print(test[i]);

More information

网C试题(08上).doc

网C试题(08上).doc 学习中心 姓名 学号 西安电子科技大学网络与继续教育学院 高级语言程序设计 (C) 全真试题 ( 闭卷 90 分钟 ) 题号一二三总分 题分 60 20 20 得分 一 单项选择题 ( 每小题 3 分, 共 60 分 ) 1.C 语言程序的基本单位是 A) 程序行 B) 语句 C) 函数 D) 字符 2. 下列四组选项中, 均是不合法的用户标识符的选项是 A)A B)getc C)include D)while

More information

《C语言程序设计》教材习题参考答案

《C语言程序设计》教材习题参考答案 教材名称 : C 语言程序设计 ( 第 1 版 ) 黄保和 江弋编著清华大学出版社 ISBN:978-7-302-13599-9, 红色封面 答案制作时间 :2011 年 2 月 -5 月 一 选择题 1. 设已定义 int a, * p, 下列赋值表达式中正确的是 :C)p=&a 2. 设已定义 int x,*p=&x;, 则下列表达式中错误的是 :B)&*x 3. 若已定义 int a=1,*b=&a;,

More information

第一章三角函数 1.3 三角函数的诱导公式 A 组 ( ) 一 选择题 : 共 6 小题 1 ( 易诱导公式 ) 若 A B C 分别为 ABC 的内角, 则下列关系中正确的是 A. sin( A B) sin C C. tan( A B) tan C 2 ( 中诱导公式 ) ( ) B. cos(

第一章三角函数 1.3 三角函数的诱导公式 A 组 ( ) 一 选择题 : 共 6 小题 1 ( 易诱导公式 ) 若 A B C 分别为 ABC 的内角, 则下列关系中正确的是 A. sin( A B) sin C C. tan( A B) tan C 2 ( 中诱导公式 ) ( ) B. cos( 第一章三角函数 1. 三角函数的诱导公式 A 组 一 选择题 : 共 6 小题 1 ( 易诱导公式 ) 若 A B C 分别为 ABC 的内角 则下列关系中正确的是 A. sin( A B) sin C C. tan( A B) tan C ( 中诱导公式 ) B. cos( B C) cos A D. sin( B C) sin A sin60 cos( ) sin( 0 )cos( 70 ) 的值等于

More information

1 2 / 3 1 A (2-1) (2-2) A4 6 A4 7 A4 8 A4 9 A ( () 4 A4, A4 7 ) 1 (2-1) (2-2) ()

1 2 / 3 1 A (2-1) (2-2) A4 6 A4 7 A4 8 A4 9 A ( () 4 A4, A4 7 ) 1 (2-1) (2-2) () (39mm E-Mail ( )( ), : : 1 1 ( ) 2 2 ( ) 29mm) WSK ( 1 2 / 3 1 A4 2 1 3 (2-1) 2-1 4 (2-2) 2-2 5 A4 6 A4 7 A4 8 A4 9 A4 10 11 ( () 4 A4, 5 6 7 8 A4 7 ) 1 (2-1) (2-2) () 1 2 (2-1) 3 (2-2) 4 5 6 7 (8 ) 9

More information

第一章 引言

第一章  引言 第四章 循环结构 上机问题 程序书写风格 缩入 : 例如, 统一缩入四个空格 复合语句中 {} 的对齐 适当的空行 变量名命名 变量名使用 2 上机问题 关系运算符 == 与赋值运算符 = n == 0 与 n = 0 的区别? 逻辑运算符 :&& 与 的区别? && : 两个条件均为真, 结果为真 : 有一个条件为真, 结果为真 for 语句 if-else 语句的逻辑错误 3 上机问题 scanf

More information

2015年计算机二级(C语言)模拟试题及答案(四)

2015年计算机二级(C语言)模拟试题及答案(四) 2015 年计算机二级 (C 语言 ) 模拟试题及答案 (4) 一 填空题 1 C 语言中基本的数据类型有 : 2 C 语言中普通整型变量的类型说明符为, 在内存中占 字节, 有符号普通整型的数据范围是 3 整数-35 在机内的补码表示为 4 执行下列语句 int a=8;a+=a-=a*a; 后,a 的值是 5 有如下语句:charA[ ]={ I am a student }; 该字符串的长度是,A[3]=

More information

<4D F736F F F696E74202D BDE1B9B9BBAFB3CCD0F2C9E8BCC D20D1ADBBB7>

<4D F736F F F696E74202D BDE1B9B9BBAFB3CCD0F2C9E8BCC D20D1ADBBB7> 能源与动力工程学院 结构化编程 结构化程序设计 循环 循环结构 确定性循环 非确定性循环 I=1 sum=sum+i I = I +1 陈 斌 I>100 Yes No 目录 求和 :1+2+3++100 第四节循环的应用 PROGRAM GAUSS INTEGER I, SUM 计数器 SUM = 0 DO I = 1, 100, 1 SUM = SUM + I print*, I, SUM DO

More information

4 / ( / / 5 / / ( / 6 ( / / 7 1 2 / 3 ( 4 ( 2003 8 ( 2

4 / ( / / 5 / / ( / 6 ( / / 7 1 2 / 3 ( 4 ( 2003 8 ( 2 : / ( 6 (2003 8 : ( 1 ( ( / / (,, ( ( - ( - (39mm 29mm 2 ( 1 2 3-6 3 6-24 6-48 12-24 8-12 WSK / WSK WSK 1 4 / ( / / 5 / / ( / 6 ( / / 7 1 2 / 3 ( 4 ( 2003 8 ( 2 9 5 ( 10 3 11 / (600 4 5 AA 710 AB 720 730

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 4.4.1 逻辑运算符及其优先次序 3 种逻辑运算符 : &&( 逻辑与 ) ( 逻辑或 )!( 逻辑非 ) && 和 是双目 ( 元 ) 运算符! 是一目 ( 元 ) 运算符 逻辑表达式 用逻辑运算符将关系表达式或其他逻辑量连接起来的式子 4.4.1 逻辑运算符及其优先次序 判断年龄在 13 至 17 岁之内? age>=13 && age

More information

林子雨《C语言程序设计》讲义PPT

林子雨《C语言程序设计》讲义PPT C 语言程序设计 厦门大学计算机科学系 2012-03-18 林子雨 ziyulin@xmu.edu.cn 2012-03-18 厦门大学非计算机专业本科生公共课 (2011-2012 第 2 学期 ) C 语言程序设计 林子雨厦门大学计算机科学系 E-mail: ziyulin@xmu.edu.cn 个人主页 :http://www.cs.xmu.edu.cn/linziyu 课程提要 第一章绪论

More information

Ps22Pdf

Ps22Pdf ) ,,, :,,,,,,, ( CIP) /. :, 2001. 9 ISBN 7-5624-2368-7.......... TU311 CIP ( 2001) 061075 ( ) : : : : * : : 174 ( A ) : 400030 : ( 023) 65102378 65105781 : ( 023) 65103686 65105565 : http: / / www. cqup.

More information

( CIP).:,3.7 ISBN TB CIP (3) ( ) ISBN O78 : 3.

( CIP).:,3.7 ISBN TB CIP (3) ( ) ISBN O78 : 3. ( CIP).:,3.7 ISBN 7 568 383 3.......... TB CIP (3) 334 3 37 ( ) 64536 www.hdlgpress.com.c 7879 6 9.75 479 3 7 3 7 45 ISBN 7 568 383 3O78 : 3. 995,.,.,.,. :,,,,.. :,,,,,,.,,,,.,,. ,,.,,,.,,,.,,,,.,.,,,

More information

林子雨《C语言程序设计》讲义PPT

林子雨《C语言程序设计》讲义PPT C 语言程序设计 厦门大学计算机科学系 2013/3/26 林子雨 ziyulin@xmu.edu.cn 2013/3/26 厦门大学非计算机专业本科生公共课 (2012-2013 第 2 学期 ) C 语言程序设计 林子雨厦门大学计算机科学系 E-mail: ziyulin@xmu.edu.cn 个人主页 :http://www.cs.xmu.edu.cn/linziyu 课程提要 第一章绪论 第二章

More information

图书在版编目穴 CIP 雪数据做事细节全书 / 赵彦锋编著郾 北京 : 企业管理出版社, ISBN Ⅰ 郾做... Ⅱ 郾赵... Ⅲ 郾工作方法 通俗读物 Ⅳ 郾 B 中国版本图书馆 CIP 数据核字 (2005) 第 号 书

图书在版编目穴 CIP 雪数据做事细节全书 / 赵彦锋编著郾 北京 : 企业管理出版社, ISBN Ⅰ 郾做... Ⅱ 郾赵... Ⅲ 郾工作方法 通俗读物 Ⅳ 郾 B 中国版本图书馆 CIP 数据核字 (2005) 第 号 书 做事细节全书 赵彦锋著 企业管理出版社 图书在版编目穴 CIP 雪数据做事细节全书 / 赵彦锋编著郾 北京 : 企业管理出版社, 2005.11 ISBN 7-80197-338-0 Ⅰ 郾做... Ⅱ 郾赵... Ⅲ 郾工作方法 通俗读物 Ⅳ 郾 B026-49 中国版本图书馆 CIP 数据核字 (2005) 第 136676 号 书 名 : 做事细节全书 作 者 : 赵彦锋 责任编辑 : 吴太刚

More information

C++ 程序设计 告别 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1 1 TEMPLATE 1 Template 描述 使用模板函数求最大值 使用如下 main 函数对程序进行测试 int main() { double a, b; cin >> a >> b; cout c >> d; cout

More information

普通高等教育 十二五 重点规划教材 C 语言程序设计习题集 刘立君主 编 王立武朱姬凤王锦 副主编 北 京

普通高等教育 十二五 重点规划教材 C 语言程序设计习题集 刘立君主 编 王立武朱姬凤王锦 副主编 北 京 社 心 版 中 出 版 学 科 术出 k.cn 技 boo 教.a 职 ww w 普通高等教育 十二五 重点规划教材 C 语言程序设计习题集 刘立君主 编 王立武朱姬凤王锦 副主编 北 京 ii C 语言程序设计习题集 内容简介 本书是为学习 C 语言程序设计的读者提供的参考书, 书中精心设计的例题和习题对读者深入掌握 C 语言极有参考价值 全书共分为 13 章, 书中的试题基本覆盖了 C 语言程序设计课程的全部内容,

More information

Microsoft PowerPoint - 01_Introduction.ppt

Microsoft PowerPoint - 01_Introduction.ppt Hello, World C 程序设计语言 第 1 章章观其大略 孙志岗 sun@hit.edu.cn http://sunner.cn prf("hello,, world\n"); 超级无敌考考你 : 如何把 hello 和 world 分别打印在两行? 2004-12-19 A Tutorial Introduction 2 hello.c 打印华氏温度与摄氏温度对照表 计算公式 : C=(5/9)(

More information

林子雨《C语言程序设计》讲义PPT

林子雨《C语言程序设计》讲义PPT C 语言程序设计 厦门大学计算机科学系 2012-02-26 林子雨 ziyulin@xmu.edu.cn 2012-02-26 厦门大学非计算机专业本科生公共课 (2011-2012 第 2 学期 ) C 语言程序设计 林子雨厦门大学计算机科学系 E-mail: ziyulin@xmu.edu.cn 个人主页 :http://www.cs.xmu.edu.cn/linziyu 课程提要 第一章绪论

More information

!"#$ %&' '!"#$!" #$ % %& ' %( ' )* #+,-.

!#$ %&' '!#$! #$ % %& ' %( ' )* #+,-. 图书在版编目 数据!"#$ $ %&' $&($('%&('&( ( ()( * ) (' +,#-./0 * + 1 & 责任编辑郑鸿特约编辑马健金 一石文化 装帧设计 陆智昌 一石文化 责任校对严道丽责任印制吴晓光出版发行四川出版集团四川教育出版社 地址成都市槐树街 号邮政编码 网址! " # 印 刷 四川福润印务有限责任公司 版 次 年 $ 月第 版 印 次 年 $ 月第 次印刷 成品规格 %##&##

More information

《C语言程序设计》第2版教材习题参考答案

《C语言程序设计》第2版教材习题参考答案 教材 C 语言程序设计 ( 第 2 版 ) 清华大学出版社, 黄保和, 江弋编著 2011 年 10 月第二版 ISBN:978-7-302-26972-4 售价 :35 元 答案版本 本习题答案为 2012 年 2 月修订版本 一 选择题 1. 设已定义 int a, * p, 下列赋值表达式中正确的是 :C)p = &a A. *p = *a B. p = *a C.p = &a D. *p =

More information

实验 2 顺序结构程序设计 9 unsigned short a; a= 1; printf("%d\n",a); 运行以上程序, 查看输出的结果, 分析为什么会输出这些信息 (1) 打开 VC 创建 liti2 2.c 文件 (2) 输入以上代码并编译执行 (3) 结果如图 2 2 所示 图 2

实验 2 顺序结构程序设计 9 unsigned short a; a= 1; printf(%d\n,a); 运行以上程序, 查看输出的结果, 分析为什么会输出这些信息 (1) 打开 VC 创建 liti2 2.c 文件 (2) 输入以上代码并编译执行 (3) 结果如图 2 2 所示 图 2 实验 2 顺序结构程序设计 明符 一 实验目的 1. 掌握 C 语言基本数据类型 运算符和赋值语句 2. 变量的定义及初始化 整型 实型 字符型等基本类型变量的定义和初始化 3. 熟练使用赋值运算 算术运算等表达式, 能够编写简单顺序结构程序 4. 掌握 C 语言基本的输入输出 熟练使用标准输入 输出函数及各种数据类型的格式说 二 实验内容及步骤 例题 2.1 输入程序, 查看输出结果 (1) 参照第一章创建

More information

download.kaoyan.com_2006ÄêÌì½ò¹¤Òµ´óѧ¸ß¼¶ÓïÑÔ³ÌÐòÉè¼Æ£¨409£©¿¼ÑÐÊÔÌâ

download.kaoyan.com_2006ÄêÌì½ò¹¤Òµ´óѧ¸ß¼¶ÓïÑÔ³ÌÐòÉè¼Æ£¨409£©¿¼ÑÐÊÔÌâ 考生注意 : 本试卷共七大题, 满分 150 分 考试时间为 3 小时 ; 所有答案均写在答题纸上 ( 注明题号 ), 在此答题一律无效无效 一 选择题 ( 本题共 20 小题, 每小题 2 分, 满分 40 分 ) 1 char ch 1 2 A 0

More information

试卷代号 :1253 座位号 E 口 国家开放大学 ( 中央广播电视大学 )2014 年秋季学期 " 开放本科 " 期末考试 C 语言程序设计 A 试题 2015 年 1 月 E 四! 五 总分! 一 单选题 ( 每小题 2 分, 共 20 分 ) 1. 由 C 语言源程序文件编译而成的目标文件的默

试卷代号 :1253 座位号 E 口 国家开放大学 ( 中央广播电视大学 )2014 年秋季学期  开放本科  期末考试 C 语言程序设计 A 试题 2015 年 1 月 E 四! 五 总分! 一 单选题 ( 每小题 2 分, 共 20 分 ) 1. 由 C 语言源程序文件编译而成的目标文件的默 试卷代号 :1253 座位号 E 口 国家开放大学 ( 中央广播电视大学 )2014 年秋季学期 " 开放本科 " 期末考试 C 语言程序设计 A 试题 2015 年 1 月 E 四! 五 总分! 一 单选题 ( 每小题 2 分, 共 20 分 ) 1. 由 C 语言源程序文件编译而成的目标文件的默认扩展名为 ( ) A. cpp B. c C. exe D. obj 2. 设 x 和 y 均为逻辑值,

More information

FY.DOC

FY.DOC 高 职 高 专 21 世 纪 规 划 教 材 C++ 程 序 设 计 邓 振 杰 主 编 贾 振 华 孟 庆 敏 副 主 编 人 民 邮 电 出 版 社 内 容 提 要 本 书 系 统 地 介 绍 C++ 语 言 的 基 本 概 念 基 本 语 法 和 编 程 方 法, 深 入 浅 出 地 讲 述 C++ 语 言 面 向 对 象 的 重 要 特 征 : 类 和 对 象 抽 象 封 装 继 承 等 主

More information

没有幻灯片标题

没有幻灯片标题 第 2 章 C 语言的基本数据类型与表达 式 2. 1 C 语言的语法基础 2. 2 C 语言的基本数据类型 2. 3 常量和变量 2. 4 运算符与表达式 2. 5 数据类型转换 用 第 2 章 C 语言的基本数据类型与表达 2.1 C 语言的语法基础 2. 1. 1 C 语言字符集 式 C 语言的基本符号可分 4 个类, 归纳如下 : (1) 英文字母 : 大小写各 26 个, 共计 52 个

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc 第 3 章流程控制和数组 3.1 实验目的 (1) 熟练掌握控制台应用程序的代码编写和调试, 以及运行方法 (2) 掌握选择结构的一般语法格式和应用 (3) 掌握 switch 语句的用法 (4) 掌握选择结构的嵌套的用法, 能灵活使用选择结构解决实际问题 (5) 掌握 while 循环语句的一般语法格式 (6) 掌握 for 循环语句的一般语法格式 (7) 掌握循环嵌套的语法格式 (8) 掌握一维数组的定义

More information

CIP. / ISBN Ⅰ.... Ⅱ.... Ⅲ. Ⅳ. G CIP http / /press. nju. edu. cn

CIP. / ISBN Ⅰ.... Ⅱ.... Ⅲ. Ⅳ. G CIP http / /press. nju. edu. cn CIP. /. 004. 4 ISBN 7 305 0458 7 Ⅰ.... Ⅱ.... Ⅲ. Ⅳ. G64. 505 CIP 004 0798 0093 05 8359693 05 835937 05 83686347 http / /press. nju. edu. cn nupress@public. ptt. js. cn 787 09 /6. 5 85 004 5 ISBN 7 305 0458

More information

林子雨《C语言程序设计》讲义PPT

林子雨《C语言程序设计》讲义PPT C 语言程序设计 厦门大学计算机科学系 2013/3/19 林子雨 ziyulin@xmu.edu.cn 2013/3/19 厦门大学非计算机专业本科生公共课 (2012-2013 第 2 学期 ) C 语言程序设计 第 4 章选择结构林子雨 厦门大学计算机科学系 E-mail: ziyulin@xmu.edu.cn 个人主页 :http://www.cs.xmu.edu.cn/linziyu 课程提要

More information

JAVA 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:/

JAVA 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:/ 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:// 不能以数字开头 D._3_ B:// 不能用点和空格 提问 抢答 E.$anothervar C: // 不能用点和空格

More information

4 AC BD F M CD, N ABM M, c, AN, BN AM BM :E F N a c a p + k F k - + F k + + c { a } IMO 4, { a } a a + c,a - 0, a - a - c,, a 0 a c, c, 0, 0, a > 0, 0

4 AC BD F M CD, N ABM M, c, AN, BN AM BM :E F N a c a p + k F k - + F k + + c { a } IMO 4, { a } a a + c,a - 0, a - a - c,, a 0 a c, c, 0, 0, a > 0, 0 005 9 45 IMO () (,00074), l,b A l C ( C A B ), IMO 4 AC l D, DE a 0, a, a, E, B E AC B E a a + - a +, 0, a 0 a l F,AF G( G A)? :G AB CF f : Q{ -,}, O ABC, B < x y, xy C, AO BC D, ABD x + y {0,},f ( x)

More information

没有幻灯片标题

没有幻灯片标题 指针作为函数参数 : 原因 : 1 需要修改一个或多个值,( 用 return 语句不能解决问题 ) 2 执行效率的角度 使用方法 : 在函数原型以及函数首部中需要声明能够接受指针值的形参, 具体的写法为 : 数据类型 * 形参名 如果有多个指针型形参, 则用逗号分隔, 例如 : void swap(int *p1, int *p2) 它说明了形参 p1 p2 是指向整型变量的指针 在函数调用时,

More information

chap07.key

chap07.key #include void two(); void three(); int main() printf("i'm in main.\n"); two(); return 0; void two() printf("i'm in two.\n"); three(); void three() printf("i'm in three.\n"); void, int 标识符逗号分隔,

More information

《计算概论》课程 第十九讲 C 程序设计语言应用

《计算概论》课程 第十九讲  C 程序设计语言应用 计算概论 A 程序设计部分 字符数组与字符串 李戈 北京大学信息科学技术学院软件研究所 lige@sei.pku.edu.cn 字符数组的定义 #include int main() char a[10] = 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j' ; for (int i = 0; i < 10; i++) cout

More information

第 3 章选择结构 q q q Python 中表示条件的方法 if 语句 选择结构程序设计方法

第 3 章选择结构 q q q Python 中表示条件的方法 if 语句 选择结构程序设计方法 第 3 章选择结构 q q q Python 中表示条件的方法 if 语句 选择结构程序设计方法 3.1 条件的描述 3.1.1 关系运算 Python 的关系运算符有 : =( 大于等于 ) ==( 等于 )!=( 不等于 ) 关系运算符用于两个量的比较判断 由关系运算符将两个表达式连接起来的式子就称为关系表达式, 它用来表示条件, 其一般格式为

More information

全国计算机等级考试笔试模拟试卷(1)

全国计算机等级考试笔试模拟试卷(1) 2009 年 9 月全国计算机等级考试笔试试卷 二级公共基础知识和 C 语言程序设计 ( 考试时间 90 分钟, 满分 100 分 ) 一 选择题 ((1)~(10) (21)~(40) 每题 2 分,(11)~(20) 每题 1 分,70 分 ) (1) 下列数据结构中, 属于非线性结构的是 ( ) A) 循环队列 B) 带链队列 C) 二叉树 D) 带链栈 (2) 下列数据结构中, 能够按照 先进后出

More information

<4D F736F F D204A617661B3CCD0F2C9E8BCC6BBF9B4A1A3A8B5DA35B0E6A3A9CAB5D1E9D6B8B5BCD3EBCFB0CCE2BDE2B4F020B5DA33D5C22E646F63>

<4D F736F F D204A617661B3CCD0F2C9E8BCC6BBF9B4A1A3A8B5DA35B0E6A3A9CAB5D1E9D6B8B5BCD3EBCFB0CCE2BDE2B4F020B5DA33D5C22E646F63> 第 3 章 结构语句 本章知识点 : 流程控制语句是用来控制程序中各语句执行顺序的语句, 是程序中基本却又非常关键的部分 流程控制语句可以把单个的语句组合成有意义的 能完成一定功能的小逻辑模块 最主要的流程控制方式是结构化程序设计中规定的顺序结构 分支结构 ( 选择结构 ) 和循环结构三种基本流程结构 本章将指导读者掌握 Java 程序中的流程控制语句, 包括这些语句的语法结构和使用中需注意的要点

More information

试卷代号 :1075 座位号 rn 国家开放大学 ( 中央广播电视大学 )2015 年秋季学期 " 开放本科 " 期末考试 c+ 十语言程序设计试题 2016 年 1 月 t 问一 Urr-f 斗 士 1 1. 下面的保留字 ( ) 不能作为函数的返回类型 A. void B. int C. new

试卷代号 :1075 座位号 rn 国家开放大学 ( 中央广播电视大学 )2015 年秋季学期  开放本科  期末考试 c+ 十语言程序设计试题 2016 年 1 月 t 问一 Urr-f 斗 士 1 1. 下面的保留字 ( ) 不能作为函数的返回类型 A. void B. int C. new 试卷代号 :1075 座位号 rn 国家开放大学 ( 中央广播电视大学 )2015 年秋季学期 " 开放本科 " 期末考试 c+ 十语言程序设计试题 2016 年 1 月 t 问一 Urr-f 斗 士 1 1. 下面的保留字 ( ) 不能作为函数的返回类型 A. void B. int C. new D. long 2. 在每个 C 十 + 程序中都必须包含有这样一个函数, 该函数的函数名为 ) A.main

More information

:,,,, ( CIP ) /,. :, ISBN CIP ( 2001) : : 127, : : : ht t p: / / www. nwpup. com : :

:,,,, ( CIP ) /,. :, ISBN CIP ( 2001) : : 127, : : : ht t p: / / www. nwpup. com : : :,,,, ( CIP ) /,. :, 2001. 8 ISBN 7 5612 1363 8............. 0342 CIP ( 2001) 027392 : : 127, : 710072 : 029-8493844 : ht t p: / / www. nwpup. com : : 787mm1 092mm : 19. 75 : 480 : 2001 8 1 2001 8 1 :

More information

图书在版编目 (CIP) 数据 满堂花醉 / 沈胜衣著. 南京 : 江苏教育出版社, ( 沈郎文字 ) ISBN Ⅰ. 满... Ⅱ. 沈... Ⅲ. 作家 - 人物研究 - 世界 Ⅳ.K815.6 中国版本图书馆 CIP 数据核字 (2005) 第 041

图书在版编目 (CIP) 数据 满堂花醉 / 沈胜衣著. 南京 : 江苏教育出版社, ( 沈郎文字 ) ISBN Ⅰ. 满... Ⅱ. 沈... Ⅲ. 作家 - 人物研究 - 世界 Ⅳ.K815.6 中国版本图书馆 CIP 数据核字 (2005) 第 041 图书在版编目 (CIP) 数据 满堂花醉 / 沈胜衣著. 南京 : 江苏教育出版社, 2005.4 ( 沈郎文字 ) ISBN 7-5343-6512-0 Ⅰ. 满... Ⅱ. 沈... Ⅲ. 作家 - 人物研究 - 世界 Ⅳ.K815.6 中国版本图书馆 CIP 数据核字 (2005) 第 041843 号 出版者社址网址出版人 南京市马家街 31 号邮编 :210009 http://www.1088.com.cn

More information

zyk00207zw.PDF

zyk00207zw.PDF 0 5 60 ()0 () () 5 (4) 60 (5) 64 (6) S (7) N (8)0 (9) (0)0 x 0 a 0 AB CD 5 ab a b 4 ()a b ()x y () ab ()x y ()a b () a ()ab a b (4)a b () a b () 0 b () a 5 (4) ab 6 x () 4 () () 0 (4) 5 4 (a b) a a b a

More information

数 学 高 分 的 展 望 一 管 理 类 联 考 分 析 第 一 篇 大 纲 解 析 篇 编 写 : 孙 华 明 1 综 合 能 力 考 试 时 间 :014 年 1 月 4 日 上 午 8:30~11:30 分 值 分 配 : 数 学 :75 分 逻 辑 :60 分 作 文 :65 分 ; 总

数 学 高 分 的 展 望 一 管 理 类 联 考 分 析 第 一 篇 大 纲 解 析 篇 编 写 : 孙 华 明 1 综 合 能 力 考 试 时 间 :014 年 1 月 4 日 上 午 8:30~11:30 分 值 分 配 : 数 学 :75 分 逻 辑 :60 分 作 文 :65 分 ; 总 目 录 数 学 高 分 的 展 望... 1 第 一 篇 大 纲 解 析 篇... 1 一 管 理 类 联 考 分 析... 1 二 最 新 大 纲 解 析... 1 三 考 前 复 习 资 料 及 方 法... 第 二 篇 总 结 篇... 4 1 应 用 题 考 点 总 结 与 技 巧 归 纳... 4 代 数 模 块 题 型 归 纳 及 考 点 总 结... 9 3 数 列 模 块 题 型 归

More information

nooog

nooog C : : : , C C,,, C, C,, C ( ), ( ) C,,, ;,, ; C,,, ;, ;, ;, ;,,,, ;,,, ; : 1 9, 2 3, 4, 5, 6 10 11, 7 8, 12 13,,,,, 2008 1 1 (1 ) 1.1 (1 ) 1.1.1 ( ) 1.1.2 ( ) 1.1.3 ( ) 1.1.4 ( ) 1.1.5 ( ) 1.2 ( ) 1.2.1

More information

( ) Wuhan University

( ) Wuhan University Email: huangzh@whueducn, 47 Wuhan Univesity i L A TEX,, : http://affwhueducn/huangzh/ 8 4 49 7 ii : : 4 ; 8 a b c ; a b c 4 4 8 a b c b c a ; c a b x y x + y y x + y x x + y x y 4 + + 8 8 4 4 + 8 + 6 4

More information

Microsoft Word - 烘焙食品乙級第二部份 doc

Microsoft Word - 烘焙食品乙級第二部份 doc 烘 焙 食 品 乙 級 技 術 士 技 能 檢 定 術 科 參 考 資 料 試 題 編 號 :077-900201-3 審 定 日 期 : 年 月 日 修 訂 日 期 :96 年 7 月 1 日 97 年 1 月 30 日 97 年 10 月 27 日 98 年 6 月 20 日 98 年 12 月 17 日 99 年 08 月 20 日 烘 焙 食 品 乙 級 技 術 士 技 能 檢 定 術 科

More information

最后冲刺:行政职业能力测验预测试卷

最后冲刺:行政职业能力测验预测试卷 : 2010 (CIP) : /. :,2010 5 ISBN978 7 113 11368 1 Ⅰ 1 Ⅱ 1 Ⅲ 1 - - - - 2 - - - Ⅳ 1D630.3 44 CIP (2010) 069323 : : : : : : : : :010 51873156 : (100054, 8 ) :htp://www tianlugk com : :2010 5 1 2010 5 1 :880mm

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 49 [P.51] C/C++ [P.52] [P.53] [P.55] (int) [P.57] (float/double) [P.58] printf scanf [P.59] [P.61] ( / ) [P.62] (char) [P.65] : +-*/% [P.67] : = [P.68] : ,

More information

第 3 章顺序结构程序设计 31 2) 直到型循环结构 先执行 A 操作, 再判断条件, 若条件成立, 再执行 A 操作, 如此反复, 直到条件不成立时才停止循环 由上述三种程序结构组成的程序称作结构化程序, 形成的软件称作结构化软件 C 程序结构 C 语言以文件为编译单位 一个 C 程

第 3 章顺序结构程序设计 31 2) 直到型循环结构 先执行 A 操作, 再判断条件, 若条件成立, 再执行 A 操作, 如此反复, 直到条件不成立时才停止循环 由上述三种程序结构组成的程序称作结构化程序, 形成的软件称作结构化软件 C 程序结构 C 语言以文件为编译单位 一个 C 程 第 3 章顺序结构程序设计 随着计算机应用的不断发展, 软件变得越来越复杂 软件的可读性 可理解性等问题变得十分突出 经过不断的研究和实践, 确定了程序设计的基本方法, 这就是结构化程序设计方法 结构化程序设计方法使得程序的逻辑结构清晰, 层次分明, 有效地改善了程序的可靠性, 提高了软件的质量 本章所介绍的语句, 将按它们在程序中出现的顺序逐条执行, 由这样的语句构成的程序结构称为顺序结构 本章主要介绍以下内容

More information

2008年4月全国计算机等级考试二级C语言真题(含答案)

2008年4月全国计算机等级考试二级C语言真题(含答案) 2008 年 4 月 全 国 计 算 机 等 级 考 试 二 级 C 语 言 真 题 ( 含 答 案 ) 一 选 择 题 ( 共 70 分 ) 下 列 各 题 A),B),C),D) 四 个 选 项 中, 只 有 一 个 选 项 是 正 确 的, 请 将 正 确 选 项 涂 写 在 答 题 卡 相 应 位 置 上, 答 在 试 卷 上 不 得 分 (1) 程 序 流 程 图 中 指 有 箭 头 的

More information

第三篇 C 语言基础编程能力实训案例 编程练习题答案 1-1 程序例 #include<stdio.h> main( ) { printf("c Language Program\n"); } 结果 1. 变量及数据运算 1-2 程序例 #include<stdio.h> main( ) { pri

第三篇 C 语言基础编程能力实训案例 编程练习题答案 1-1 程序例 #include<stdio.h> main( ) { printf(c Language Program\n); } 结果 1. 变量及数据运算 1-2 程序例 #include<stdio.h> main( ) { pri 第三篇 C 语言基础编程能力实训案例 编程练习题答案 1-1 程序例 printf("c Language Program\n"); 1. 变量及数据运算 1-2 程序例 printf("mini-floppy disk\n"); printf("floppy disk\n"); printf("hard disk\n"); 1-3 程序例 /*printf test*/ printf("c Language\n");

More information

Ps22Pdf

Ps22Pdf x a b a a a a a a a a x x x x x x x x x x r G A B D A B C D C A M M G G C C C C A G A B C D E F E E E m m A B A B A B Q x x x x x x x x x x x A B

More information

图书在版编目 (CIP) 数据 文学与现代性批判 / 邵建著. 南京 : 江苏教育出版社, ISBN Ⅰ. 文... Ⅱ. 邵... Ⅲ. 当代文学 - 文学研究 - 中国 Ⅳ.I206.7 中国版本图书馆 CIP 数据核字 ( 2005 ) 第 04185

图书在版编目 (CIP) 数据 文学与现代性批判 / 邵建著. 南京 : 江苏教育出版社, ISBN Ⅰ. 文... Ⅱ. 邵... Ⅲ. 当代文学 - 文学研究 - 中国 Ⅳ.I206.7 中国版本图书馆 CIP 数据核字 ( 2005 ) 第 04185 图书在版编目 (CIP) 数据 文学与现代性批判 / 邵建著. 南京 : 江苏教育出版社, 2005.4 ISBN 7-5343-6528-7 Ⅰ. 文... Ⅱ. 邵... Ⅲ. 当代文学 - 文学研究 - 中国 Ⅳ.I206.7 中国版本图书馆 CIP 数据核字 ( 2005 ) 第 041850 号 出版者社址网址出版人 南京市马家街 31 号邮编 :210009 http://www.1088.com.cn

More information

EC(2013-1 4)13 第 2 頁 (b) 把 總 目 100 在 2013-14 年 度 常 額 編 制 內 所 有 非 首 長 級 職 位 按 薪 級 中 點 估 計 的 年 薪 總 值 上 限 提 高 12,480,540 元, 即 由 461,070,000 元 增 至 473,550

EC(2013-1 4)13 第 2 頁 (b) 把 總 目 100 在 2013-14 年 度 常 額 編 制 內 所 有 非 首 長 級 職 位 按 薪 級 中 點 估 計 的 年 薪 總 值 上 限 提 高 12,480,540 元, 即 由 461,070,000 元 增 至 473,550 EC(2013-1 4)13 財 務 委 員 會 人 事 編 制 小 組 委 員 會 討 論 文 件 2014 年 1 月 8 日 總 目 100- 海 事 處 分 目 000 運 作 開 支 總 目 92- 律 政 司 分 目 000 運 作 開 支 總 目 158- 政 府 總 部 : 運 輸 及 房 屋 局 ( 運 輸 科 ) 分 目 000 運 作 開 支 請 各 委 員 向 財 務 委 員

More information

untitled

untitled 2016 160 8 14 8:00 14:00 1 http://zj.sceea.cn www.sceea.cn APP 1 190 180 2 2 6 6 8 15 2016 2016 8 13 3 2016 2016 2016 0382 2 06 1 3300 14 1 3300 0451 5 01 2 7500 02 2 7500 05 ( ) 1 7500 1156 4 15 2 15000

More information

试卷代号 ~1075 座位号 E 口 国家开放大学 ( 中央广播电视大学 )20]5 年秋季学期 " 开放本科 " 期末考试 C 十十语言程序设计 试题 同二二十斗 2016 年 1 月 巴叫一 1. 下面的保留字 ( ) 不能作为函数的返回类型 A. void B. int C. new D. l

试卷代号 ~1075 座位号 E 口 国家开放大学 ( 中央广播电视大学 )20]5 年秋季学期  开放本科  期末考试 C 十十语言程序设计 试题 同二二十斗 2016 年 1 月 巴叫一 1. 下面的保留字 ( ) 不能作为函数的返回类型 A. void B. int C. new D. l 试卷代号 ~1075 座位号 E 口 国家开放大学 ( 中央广播电视大学 )20]5 年秋季学期 " 开放本科 " 期末考试 C 十十语言程序设计 试题 同二二十斗 2016 年 1 月 巴叫一 1. 下面的保留字 ( ) 不能作为函数的返回类型 A. void B. int C. new D. long 2. 在每个 c++ 程序中都必须包含有这样一个函数, 该函数的函数名为 ( ) A. main

More information

Microsoft Word - 正文.doc

Microsoft Word - 正文.doc 第 2 章 Java 语言基础 通过本章的实践, 要掌握 Java 中的标识符 关键字 常量, 熟练掌握算术 关 系 逻辑 条件 赋值 位运算符的使用, 掌握简单顺序结构的程序设计 2.1 典型习题解答 2.1 Java 中怎样进行注释? 解答 Java 语言中的注释有 3 种形式 : (1) 单行 : // (2) 多行 : /* */ (3) 文档注释 : /** */ 第三种形式是第二种形式的变形,

More information

Microsoft Word - FM{new}.doc

Microsoft Word - FM{new}.doc Lanczos 方法 Louis Komzsik 著张伟廖本善译 演变与应用 清华大学出版社 北京 内容简介 Lanczos 方法是 20 世纪计算数学方向最有影响的方法之一, 并且已经在工程中得到了广泛应用. 本书兼顾了 Lanczos 方法的理论演变和工程中的实际应用, 其内容分为两部分 : 第一部分阐述了方法的演变, 并提供了具体算法 ; 第二部分讨论了工业中的实际应用, 包括常用的模态分析

More information

碩命題橫式

碩命題橫式 一 解釋名詞 :(50%) 1. Two s complement of an integer in binary 2. Arithmetic right shift of a signed integer 3. Pipelining in instruction execution 4. Highest and lowest layers in the TCP/IP protocol suite

More information

2015年计算机二级(C语言)模拟试题及答案(四)

2015年计算机二级(C语言)模拟试题及答案(四) 2016 年 计 算 机 二 级 (C 语 言 ) 模 拟 试 题 及 答 案 (4) 一 填 空 题 1 C 语 言 中 基 本 的 数 据 类 型 有 : 2 C 语 言 中 普 通 整 型 变 量 的 类 型 说 明 符 为, 在 内 存 中 占 字 节, 有 符 号 普 通 整 型 的 数 据 范 围 是 3 整 数 -35 在 机 内 的 补 码 表 示 为 4 执 行 下 列 语 句 int

More information

50~56 I1. 1 A 2 3 I2. I2a. 1 2 3 4 5 ( ) I2b. 1 2 3 I2b1. 4 5 ( ) I3. 11 12 02 ( ) 1 2 (24 ) A1. 0 1 A2 A1a. ( ) A2. ( ) () () ( ) ------------------------------------------------------------------------------------------

More information

#$%&% () % ()*% +,-. /01 % + (/) " " " 2- %** -340 $%&% 5!$%&% () % ()*% +,-. /01 % + (/) " " " 2- %** -340 /64 7%,(8(, *--9( ()6 /-,%/,65 :$%&

#$%&% () % ()*% +,-. /01 % + (/)    2- %** -340 $%&% 5!$%&% () % ()*% +,-. /01 % + (/)    2- %** -340 /64 7%,(8(, *--9( ()6 /-,%/,65 :$%& ! " "!! " "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! " #$$% & ()*+,-.(*/!0%1 23)4-(4 5).67*(*8. #$$%!9 #$$% #!$1#$!1 #9 19 :9 %; :< #$$% = 0!$ ; = : : : = 1 % #!9 #$%&% () % ()*% +,-. /01 % + (/) " " " 2- %**

More information

<4D F736F F D C4EA33D4C2C8ABB9FABCC6CBE3BBFAB5C8BCB6BFBCCAD4B6FEBCB643B1CACAD4CAD4BEED2E646F63>

<4D F736F F D C4EA33D4C2C8ABB9FABCC6CBE3BBFAB5C8BCB6BFBCCAD4B6FEBCB643B1CACAD4CAD4BEED2E646F63> 2010 年 3 月计算机等级考试二级 C 笔试试题一 选择题 (1) 下列叙述中正确的是 A) 对长度为 n 的有序链表进行查找, 最坏清况下需要的比较次数 为 n B) 对长度为 n 的有序链表进行对分查找, 最坏情况下需要的比较次数为 (n/2) C) 对长度为 n 的有序链表进行对分查找, 最坏情况下需要的比较次数为 (log2n) D) 对长度为 n 的有序链表进行对分查找, 最坏情况下需要的比较次数为

More information

untitled

untitled 1-1 1-2 1-3 1-4 1-5 1-6 1-7 1-8 1-1-1 C int main(void){ int x,y,z; int sum=0; double avg=0.0; scanf("%d",&x) ; scanf("%d",&y) ; scanf("%d",&z) ; sum=x+y+z ; avg=sum/3.0; printf("%f\n",avg); system("pause");

More information

6CO2 6H 2O C6H 2O6 6O2 = = n i= P X i n H X - P X logp X i= i n X X X P i P 0 i l n i n n P i= i H X = - p log P n i= i i i + H X - P X logp X dx - 2 2 2 2 3 2 4 2 d( Q) d( Q) > 0 = 0 di di d(

More information

高二立體幾何

高二立體幾何 008 / 009 學 年 教 學 設 計 獎 勵 計 劃 高 二 立 體 幾 何 參 選 編 號 :C00 學 科 名 稱 : 適 用 程 度 : 高 二 簡 介 一 本 教 學 設 計 的 目 的 高 中 立 體 幾 何 的 學 習 是 學 生 較 難 理 解 而 又 非 常 重 要 的 一 個 部 分, 也 是 高 中 教 學 中 較 難 講 授 的 一 個 部 分. 像 國 內 的 聯 校

More information

校园之星

校园之星 I V X V L C D M n n n X X X M M VI X X DC IV IX XL C D X V I I X V D CLXV I V X XCIX C X IC C I X X quatre vingt quatre vingt dix thousand million billion p M sinl sinl e x ii xii a ba bi MI sinl

More information

1 2 9

1 2 9 8 1 2 9 3 4 10 11 5 6 12 13 7 14 8 9 bk bl bm 15 bn bo 16 bp bq br bs bt 17 ck cl cm cn 18 19 co cp 20 21 cq cr 22 23 cs ct 24 dk 25 dl 26 dm dn do dp dq 27 dr ds dt ek 28 el em 29 en eo ep eq er 30 es

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 Python 入门 孙栩 xusun@pku.edu.cn 1 课程的整体介绍 目录 contents 2 Python 的介绍及如何安装 Python 3 使用 Python 编写简单小程序 1 课程的整体介绍 课程的整体介绍 Python 入门 1. Python 的介绍与安装 2. 变量与表达式 3. 一些简单的小程序 数据结构 1. 字符串 2. 列表 3. 元组 4. 字典 5. 集合 分支与循环

More information

: : : ( CIP ) : ( ) /. :, ISBN :. G7. 4 CIP ( 00 ) 005 : : ( ) : : ( 0 : 0004) : : : / 6 : 7 ( ) : 408 () : 00

: : : ( CIP ) : ( ) /. :, ISBN :. G7. 4 CIP ( 00 ) 005 : : ( ) : : ( 0 : 0004) : : : / 6 : 7 ( ) : 408 () : 00 () ( ) ( : ) : : : ( CIP ) : ( ) /. :, 00. 7 ISBN 7-8008 - 958-8... :. G7. 4 CIP ( 00 ) 005 : : ( ) : : ( 0 : 0004) : : 00 7 00 7 : 78709 / 6 : 7 ( ) : 408 () : 000 : ISBN 7-8008 - 958-8/ G89 : 9 98. 00

More information

(CIP)./:MBA GCT ME /. :, ISBN Ⅰ. Ⅱ Ⅲ Ⅳ B81 CIP (2005) MBA( )GCT ME( ), MBA GCT ME, MBA GCT ME, MBA GCT ME MBA GCT ME,, 5MBA 3

(CIP)./:MBA GCT ME /. :, ISBN Ⅰ. Ⅱ Ⅲ Ⅳ B81 CIP (2005) MBA( )GCT ME( ), MBA GCT ME, MBA GCT ME, MBA GCT ME MBA GCT ME,, 5MBA 3 犕犅犃 犌犆犜犕犈 (CIP)./:MBA GCT ME /. :,2005.4 ISBN7 81038 929 7 Ⅰ. Ⅱ Ⅲ Ⅳ B81 CIP (2005)036537 MBA( )GCT ME( ), MBA GCT ME, MBA GCT ME, MBA GCT ME MBA GCT ME,, 5MBA 3GCT ME MBA GCT ME, MBA GCT ME ( 1882 :200051)

More information

°ò´úÁͶչw¨¥-¦ÛµM¤ºŁ¶.ps, page Normalize

°ò´úÁͶչw¨¥-¦ÛµM¤ºŁ¶.ps, page Normalize 9095 95 PH 552520 96 1 2 3 1 2 1 2 1 2 1 2 1 2 1 2 3 4 1 2 3pH 1 2 1 2 1 2 3 1 F 2P Phd A 3BVd Bw Bw 1 2 3 4 1 2 3 1 2 1 3 mv 2 2 4mgh 5 6 1 2I 3 4 5 6 Q t 1 V 2R I 3 4P W IVI 2 R V 2 t R 1 2 3 Bl2 A112

More information

新・解きながら学ぶC言語

新・解きながら学ぶC言語 330!... 67!=... 42 "... 215 " "... 6, 77, 222 #define... 114, 194 #include... 145 %... 21 %... 21 %%... 21 %f... 26 %ld... 162 %lf... 26 %lu... 162 %o... 180 %p... 248 %s... 223, 224 %u... 162 %x... 180

More information

Microsoft Word - NHIS2013_C_130716_送印_.doc

Microsoft Word - NHIS2013_C_130716_送印_.doc 核 准 機 關 : 行 政 院 主 計 總 處 核 准 文 號 : 主 普 管 字 第 1020400481 號 有 效 期 間 : 至 103 年 6 月 30 日 止 辦 理 機 關 : 財 團 法 人 國 家 衛 生 研 究 院 行 政 院 衛 生 署 國 民 健 康 局 IRB 通 過 案 號 : 國 家 衛 生 研 究 院 EC1020502 號 樣 本 編 號 :( 訪 員 填 寫 )

More information

新・明解C言語入門編『索引』

新・明解C言語入門編『索引』 !... 75!=... 48 "... 234 " "... 9, 84, 240 #define... 118, 213 #include... 148 %... 23 %... 23, 24 %%... 23 %d... 4 %f... 29 %ld... 177 %lf... 31 %lu... 177 %o... 196 %p... 262 %s... 242, 244 %u... 177

More information

<4D F736F F D C4EA39D4C2C8ABB9FABCC6CBE3BBFAB5C8BCB6BFBCCAD4B6FEBCB6B1CACAD4CAD4BEED2E646F63>

<4D F736F F D C4EA39D4C2C8ABB9FABCC6CBE3BBFAB5C8BCB6BFBCCAD4B6FEBCB6B1CACAD4CAD4BEED2E646F63> 2007 年 9 月全国计算机等级考试二级笔试试卷 C 语言程序设计 ( 考试时间 120 分钟, 满分 100 分 ) 一 选择题 ((1)-(10) 每题 2 分,(11)-(50) 每题 1 分. 共 60 分 )) 下列各题 A) B) C) D) 四个选项中, 只有一个是正确的, 请将正确选项涂写在答题卡上, 答在试卷上不得分 (1) 软件是指 A) 程序 B) 程序和文档 C) 算法加数据结构

More information

Ps22Pdf

Ps22Pdf 1 9 9 9 ( ) 063, ;,, ;,, ( CIP) / - :, 1998 10 ISBN 7 113 03130 7 T U 476 CIP ( 1998) 28879 : : : ( 100054, 8 ) : : : : 787 1092 1/ 16 : 15 : 383 : 1999 2 1 1999 2 1 : 1 : ISBN 7 113 03130 7/ T U 588 :

More information

图书在版编目 (CIP) 数据程序员的数学. 3, 线性代数 /( 日 ) 平冈和幸, ( 日 ) 堀玄著 ; 卢晓南译. 北京 : 人民邮电出版社, ( 图灵程序设计丛书 ) ISBN Ⅰ. 1 程 Ⅱ. 1 平 2 堀 3 卢 Ⅲ. 1 电子计算

图书在版编目 (CIP) 数据程序员的数学. 3, 线性代数 /( 日 ) 平冈和幸, ( 日 ) 堀玄著 ; 卢晓南译. 北京 : 人民邮电出版社, ( 图灵程序设计丛书 ) ISBN Ⅰ. 1 程 Ⅱ. 1 平 2 堀 3 卢 Ⅲ. 1 电子计算 图灵程序设计丛书 程序员的数学 3: 线性代数 [ 日 ] 平冈和幸堀玄著 卢晓南译 图书在版编目 (CIP) 数据程序员的数学. 3, 线性代数 /( 日 ) 平冈和幸, ( 日 ) 堀玄著 ; 卢晓南译. 北京 : 人民邮电出版社, 2016.3 ( 图灵程序设计丛书 ) ISBN 978-7-115-41774-9 Ⅰ. 1 程 Ⅱ. 1 平 2 堀 3 卢 Ⅲ. 1 电子计算机 数学基础 2

More information

E. (A) (B) (C) (D). () () () (A) (B) (C) (D) (E). () () () (A) (B) (C) (D) (E). (A)(B)(C) (D) (E) (A) (B) (C) (D) (E) (A) (B)(C) (D) (E). (A) (B) (C)

E. (A) (B) (C) (D). () () () (A) (B) (C) (D) (E). () () () (A) (B) (C) (D) (E). (A)(B)(C) (D) (E) (A) (B) (C) (D) (E) (A) (B)(C) (D) (E). (A) (B) (C) . (A) (B) (C) (D) (A) (B) (C)(D)(E). (A) (B) (C) (D) (E) (A) (B) (C) (D). (A) (B) (C) (D) (E) (A) (B) (C) (D) (E). (A) (B) (C) (D) (E). (A) (B) (C) (D) (E). (A) (B) (C) (D) (E) (A) (B) (C) (D) (E). (A)

More information

3 = 90 - = 5 80 - = 57 5 3 3 3 = 90 = 67 5 3 AN DE M DM BN ABN DM BN BN OE = AD OF = AB OE= AD=AF OF= AB=AE A= 90 AE=AF 30 BF BE BF= BE= a+b =a+ b BF=BC+CF=a+CF CF= b CD=b FD= b AD= FC DFC DM=

More information

CIP /. - 1999.1 ISBN 7-81059-300-! ". #. - - - - $. D909.5-44 CIP 1999 00865 100038 850 1168 1/32 8 200 1999 1 1 2003 3 1 2003 3 1 0001-5000 180.00 15.00 !! 2003 2 1998!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 6!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

More information

计算概论A B03 C++语言的基本成分 - 运算成分(2)

计算概论A B03 C++语言的基本成分 - 运算成分(2) 计算概论 A 程序设计部分 C 语言的构成成分 运算成分 李戈 北京大学信息科学技术学院软件研究所 lige@sei.pku.edu.cn C 语言中的运算符 C 语言的运算符范围很宽 求字节数运算符 : sizeof 下标运算符 [ ] 赋值运算符 = 算术运算符 + - * / % 关系运算符 < > == >= > ~

More information

c110-0807033.pm

c110-0807033.pm 大 躍 進 中 的 糧 食 問 題 楊 繼 繩 一 大 躍 進 前 糧 食 就 很 緊 張 糧 食 收 購, 說 是 收 購 餘 糧, 實 際 上 國 家 給 農 民 的 口 糧 標 準 很 低, 農 民 根 本 吃 不 飽 用 行 政 手 段 強 制 推 行 工 業 化 需 要 快 速 增 加 城 市 人 口 需 要 出 口 農 產 品 換 回 機 器, 就 不 能 讓 農 民 吃 飽 中 華 人

More information

2001年(下)局域网技术与组网工程试卷答案

2001年(下)局域网技术与组网工程试卷答案 二 一年上半年全国高等教育自学考试计算机基础与程序设计试卷 一 单项选择题 ( 本大题共 20 小题, 每小题 1 分, 共 20 分 ) 在每小题列出的四个选项中只有一个选项是符合题目要求的, 请将正确选项前的字母填在题后的括号内 1.I/O 设备指的是计算机的 ( ) A 存储设备 B 输入和输出设备 C 控制器 D 运算器 2. 具有只读功能的内存储器是指 ( ) A ROM B RAM C

More information

<4D F736F F D C4EA39D4C23137C8D5B6FEBCB643D3EFD1D4B1CACAD4CAD4BEEDBCB0B4F0B0B85FB1EAD7BCB0E65F2E646F63>

<4D F736F F D C4EA39D4C23137C8D5B6FEBCB643D3EFD1D4B1CACAD4CAD4BEEDBCB0B4F0B0B85FB1EAD7BCB0E65F2E646F63> 2011 年 9 月 17 日全国计算机等级考试 C 语言笔试题 一 选择题 (⑴-(10) (21)-(40) 每题 2 分,(11)-(20) 每题 1 分, 共 70 分 ) 下列各题 A) B) C) D) 四个选项中, 只有一个选项是正确的, 请将正确选项填涂在答题卡相应位置上, 答在试卷上不得分 (1) 下列叙述中正确的是 A) 算法就是程序 B) 设计算法时只需考虑数据结构的设计 C)

More information

Ps22Pdf

Ps22Pdf ( ) 158,,,,,, ( CIP) /. :, 1996. 12 ISBN 7 302 02353 0... :. F275 CIP ( 96) 20860 : ( :, 100084) : : : 850 1168 1/ 32 : 13. 25 : 344 : 1996 12 1 1996 12 1 : ISBN 7 302 02353 0/ F 130 : 0001 5000 : 16.

More information

图书在版编目渊 CIP 冤数据速成财富课院成就富翁的圆缘条法则 / 石向前著援北京院蓝天出版社袁 2005 援员园 ISBN 愿怨 -1 玉援速... 域援石... 芋援商业经营要通俗读物郁援 F71 缘原源怨中国版本图书馆 CIP 数据核字渊 2005 冤第 0 愿怨猿猿员号

图书在版编目渊 CIP 冤数据速成财富课院成就富翁的圆缘条法则 / 石向前著援北京院蓝天出版社袁 2005 援员园 ISBN 愿怨 -1 玉援速... 域援石... 芋援商业经营要通俗读物郁援 F71 缘原源怨中国版本图书馆 CIP 数据核字渊 2005 冤第 0 愿怨猿猿员号 25 图书在版编目渊 CIP 冤数据速成财富课院成就富翁的圆缘条法则 / 石向前著援北京院蓝天出版社袁 2005 援员园 ISBN 7-80158-6 愿怨 -1 玉援速... 域援石... 芋援商业经营要通俗读物郁援 F71 缘原源怨中国版本图书馆 CIP 数据核字渊 2005 冤第 0 愿怨猿猿员号 蓝天出版社出版发行渊北京复兴路 14 号冤渊邮政编码院 100843 冤电话院 66983715

More information

SIGNUM 3SB3

SIGNUM 3SB3 SGNUM * 6, 8 6, 8 6, 8 8 : : : : ( ) Ø22mm 6, 8 6, 8 6, 8 8 : : : : ( ) 7, 10 7, 9 7, 8 : (2 /3 ) RNS ( SB) : : CES / BKS : ( / ) 10 7, 8 : (2 /3 ) RNS ( 360012K1) : : MR : 7 Ø22mm 16 16 16 16 : : : :

More information

2008级考试试题A

2008级考试试题A 四川大学期末考试试题 (A 卷 ) (2014 2015 学年第一学期 ) 课程号 :303066030 课序号 : 课程名称 : 计算机基础及 C 程序设计语言 任课教师 : 余勤刘亚梅邓丽华任瑞玲王茂宁曾晓东王忠罗伟刘洋成绩 : 适用专业年级 :2014 级 学生人数 : 印题份数 : 学号 : 姓名 : 考试须知 四川大学学生参加由学校组织或由学校承办的各级各类考试, 必须严格执行 四川大学考试工作

More information

97 04 25 0970002232 97 12 31 1-7 1 2 1 0 1 0 1 0 1 0 1 0 1 0 1 2 24 A1. 0 1 ( 6 ) 2 ( 6 ) 3 4 A1a.? 5 6 0 1 A1b.? 0 1 2 A2. 0 1 A2b. A2c. A2a. A2d. 1 A3. 1 A4 2 0 A4 A3a.?? 0 A4 1 A3b. 0 A4 1 A3c.?? 1

More information

新版 明解C言語入門編

新版 明解C言語入門編 328, 4, 110, 189, 103, 11... 318. 274 6 ; 10 ; 5? 48 & & 228! 61!= 42 ^= 66 _ 82 /= 66 /* 3 / 19 ~ 164 OR 53 OR 164 = 66 ( ) 115 ( ) 31 ^ OR 164 [] 89, 241 [] 324 + + 4, 19, 241 + + 22 ++ 67 ++ 73 += 66

More information

《C语言程序设计》教材习题参考答案

《C语言程序设计》教材习题参考答案 教材名称 : C 语言程序设计 ( 第 1 版 ) 黄保和 江弋编著清华大学出版社 ISBN: 978-7-302-13599-9, 红色封面答案制作时间 :2011 年 2 月 -5 月一 选择题 1. 以下数组定义中, 错误的是 :C)int a[3]=1,2,3,4; 2. 以下数组定义中, 正确的是 :B) int a[][2]=1,2,3,4; 3. 设有定义 int a[8][10];,

More information

Ps22Pdf

Ps22Pdf ( 0178) ( CIP). 1 /. :, 2004. 7 ISBN 7-80153 - 956-7.... G726. 9 CIP ( 2004) 069175 : 1 : : : : : : 2 : 100733 : 010-65369524 65369530 : : : 880mm 1230mm 1 /32 : 2400 : 150 : 5000 : 2006 8 1 2 : ISBN 7-80153

More information