程序设计基础07-08冬
c语言《程序设计基础》课后习题参考答案与解析

c语言《程序设计基础》课后习题参考答案与解析1. 习题一:编写一个C程序,输出“Hello World!”。
解析:这是一个非常简单的C程序,只需要使用printf函数输出所需的字符串即可。
```c#include <stdio.h>int main() {printf("Hello World!");return 0;}```2. 习题二:编写一个C程序,计算两个整数的和并输出结果。
解析:这个程序需要使用scanf函数从用户输入中读取两个整数,并使用printf函数输出它们的和。
```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入第一个整数:");scanf("%d", &num1);printf("请输入第二个整数:");scanf("%d", &num2);sum = num1 + num2;printf("两个整数的和为:%d", sum);return 0;}```3. 习题三:编写一个C程序,判断一个数是奇数还是偶数并输出结果。
解析:这个程序需要使用scanf函数读取用户输入的整数,并使用if-else语句判断该数的奇偶性,然后使用printf函数输出结果。
```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("该数是偶数");} else {printf("该数是奇数");}return 0;}```4. 习题四:编写一个C程序,判断一个年份是否为闰年并输出结果。
第2章程序设计基础

•
2.6.2 Print语句 语句 Print语句格式为: 语句格式为: 语句格式为
•
[<对象名称 Print [<输出项 对象名称>.] 输出项>[[{,|;}][<输出项 输出项>]]...] 对象名称 输出项 输出项 <对象名称 可以是窗体/图片框或屏幕。 对象名称>可以是窗体 对象名称 可以是窗体/图片框或屏幕。
第2章 程序设计基础 章
2.1 如何学习 如何学习Visual Basic 2.2 数据类型 2.4 常量 2.5 变量 2.6 Print语句、赋值语句 语句、 语句 2.7 运算符、表达式、常用内部函数 运算符、表达式、
2.1 如何学习 如何学习Visual Basic
1.语言规则要熟记 . 学习Visual Basic首先要做到熟记 学习 首先要做到熟记 Visual Basic语言的规则。 语言的规则。 语言的规则
2.5 变 量
3.变量声明 . 语句可以强制声明变量类型: 用Dim语句可以强制声明变量类型: 语句可以强制声明变量类型 DIM <变量名 [AS <数据类型 变量名> 数据类型>][,<变量名 变量名 数据类型 变量名 > [AS <数据类型>]...] <数据类型 数据类型>]...] Dim yb As Byte, yc As Byte, nk As Integer 不可以将语句“ 不可以将语句“Dim m As Integer, n As Integer”写作“Dim m, n As Integer”。 写作“ 写作 。
2.2.2 数值类型数据的存储格式
3.Long类型 . 类型 Visual Basic用4个字节(32个2进制位)存储 个字节( 个 进制位 存储Integer类型的 进制位) 用 个字节 类型的 数据,首位为符号位(正数为0、负数为1) 数据,首位为符号位(正数为 、负数为 ),因此其最大值为大 约为21.47亿。 约为 亿 4.Single类型 . 类型 Single(单精度浮点)类型数据,占用 个字节的存储空间。 个字节的存储空间。 (单精度浮点)类型数据,占用4个字节的存储空间 Single数据的有效位数总可以达到 位。 数据的有效位数总可以达到7位 数据的有效位数总可以达到
《程序设计基础》PPT课件

• 数值型 货币型比较 • 日期型和日期时间型比较 • 逻辑型比较 • 子串包含测试 • 例题2.9
设置字符的排序次序
• Machine 大写小于小写 • Pinyin 大写大于小写 • Stroke 按照笔画算 • Set collate to ”<pinyin|machine|stroke>”
例题2.1 ?'计算机','123',[数据],['ABC'"abc"] ??"学习",'字符串'," ",[表示方法]
4.日期型常量(Data)
• 日期型数据是存储和表示年、月、日等日 期的数据类型,其内部存储格式为 “yyyy/mm/dd”,其中yyyy代表年份, mm代表月份,dd代表日子,共占8个字符。 年份的取值范围为:100至9999;月份的取 值范围为:1至12;日子的取值范围随年份 和月份的不同而不同,最大范围为:1至31。
STORE <表达式> TO <变量名表> 其中变量名表是用逗号“,”分开的多个变量名。与 等号赋值命令不同的是一条store命令可以同时给多个 变量赋相同的值。
• 功能注释见书本
例如为a,b,c赋相同的值34,需输入命令: store 34 to a,b,c
数组
• 数组是内存中连续的一片区域,它由一系 列元素组成,每个数组元素可通过数组名 及相应的下表来访问
数据类型及其存储方式
6.日期时间型(DateTime) 日期时间型数据用于存储日期和时间值。日期时间型数据存储格式为 “yyyymmdd hhmmss”,其中yyyy表示年,mm(第一个)表示月,dd表示 日,hh表示小时,mm(第二个)表示分钟,ss表示秒(必须为整数)。日 期时间型可以表示一个日期值,也可以表示一个时间值,或者表示一个日 期时间值。日期时间型数据与日期型数据一样在内存中用8个字节存储。 7.双精度型(Double) 双精度型数据是指精度要求较高的数据,或真正的浮点数。双精度型数 据占用8个字节存储空间,取值范围为0.904 656 458 412 47×10 324~ ±0.988 456 743 115×10307。 8.整数型(Integer) 整数型数据用于存取不包含小数部分的数值。整数型数值不用转换成 ASCII字符来存 储,而数值型数据是要进行二进制转换的。整数型占用4个 字节,取值范围为 2 147 483 647~2 147 483 646。
程序设计基础.pdf

9*23语句的嵌套
91语句的嵌套格式如下
条件表达式 !!9+!J
? K !:L'3
!!
条件表达式 !!!!9+!J
3 K !:L'3
第, 章!!"#$%& '%#"( 程序设计基础 #!$
!!!!!! !!!!<3= 9+ !! <3= 9+
区分嵌套的层次方法是每个F4591与它上面最接近的91配对
+(双分支结构的91语句的两种格式和使用
'*(单行形式&
表达式 语句 语句 !!9+ J
K :L'3 J
? K <15' J
MK
'+(多行形式&
表达式 !!9+ J
K :L'3
J语句块? K
<15'
J语句块M K
#!# 程序设计及其医学应用习题解析与实验指导
<3= 9+
,多分支结构的91语句的格式和使用 语句格式
)变量的作用域
局部变量作用域该变量所在的代码模块
窗体级变量作用域该变量所在的窗体文件的所有代码模块
全局变量作用域该变量所在的整个程序
-变量的生存周期
静态变量生存周期整个程序的运行过程
动态局部态变量生存周期该变量所在的代码模块被调用运行时
常量 !!= 在!"#$%&'%#"(中的常量可分为,种类型直接常量符号常量以及系统标准常量
:*循环结构;<=循环结构
S0/循环也称计数循环其格式如下
循环变量 初值 终值 步长 !!O," J
程序设计基础练习题(全部有答案版)

程序设计基础练习题(全部有答案版)程序设计基础练习题(全部有答案版)介绍:程序设计是计算机科学中的一门基础学科,它涉及到计算机程序的设计、编写和调试。
通过练习基础练习题,学生可以巩固和提高自己的程序设计能力。
本文将为您提供一些程序设计基础练习题,并附上答案,帮助您更好地理解和掌握程序设计的基本知识。
1. 基本输入输出题目描述:编写一个程序,要求用户输入两个数字,然后将这两个数字相加并输出结果。
```C++#include <iostream>int main() {int num1, num2, sum;std::cout << "请输入两个数字:" << std::endl;std::cin >> num1 >> num2;sum = num1 + num2;std::cout << "两个数字的和为:" << sum << std::endl;return 0;```2. 条件判断题目描述:编写一个程序,要求用户输入一个整数,然后判断该整数是否为偶数,并输出判断结果。
```Javaimport java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int num;System.out.println("请输入一个整数:");num = scanner.nextInt();if (num % 2 == 0) {System.out.println("该整数是偶数。
");} else {System.out.println("该整数不是偶数。
2007-2008软件技术基础

1简述软件工程中几个阶段,分别描述各阶段的主要工作答:一,项目计划阶段,也叫做可行性分析阶段:确定了一个软件以目前的条件可以完成,主要是经济,技术和社会条件,撰写可行性分析报告。
需求方和开发方共同探讨项目中的问题的解决方案;需要的资金,人力,物力;社会方面的影响,例如是否符合法律等;对项目的进度和预期效益进行估计。
二,项目需求分析阶段:对用户需求进行分析。
将用户的需求用逻辑的软件工程语言表达出来,设计好功能和数据库模型,编写成软件需求设计书。
这个阶段要注意的是行业的术语以及行业规则,开发的软件难免遇到不同行业,我们不是那个行业里面的人,所以对用户所在行业的需求分析的时候要正确理解他们的术语和规则。
当需求得到用户确认后记得让用户签字。
最后提醒一点,需求的变更在项目中很频繁,必须做好需求变更计划用以项目正常进行。
三,项目设计阶段:①概要设计就是设计软件的结构,包括组成模块,模块的层次结构,模块的调用关系,每个模块的功能等等。
同时,还要设计该项目的应用系统的总体数据结构和数据库结构,即应用系统要存储什么数据,这些数据是什么样的结构,它们之间有什么关系。
②详细设计阶段就是为每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述。
概要设计阶段通常得到软件结构图。
详细设计阶段常用的描述方式有:流程图、N-S图、PAD图、伪代码等。
四,编码阶段:为程序员分配好编码任务,将软件的设计具体为软件代码。
这里注意的是编码语言,工具,环境和编码规范。
统一,标准的编码规范可让程序可读和易维护。
五,软件测试阶段:软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。
执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。
测试的目的是以较小的代价发现尽可能多的错误。
要实现这个目标的关键在于设计一套出色的测试用例。
2024版《程序设计基础》ppt课件
•引言•数据类型与运算符•程序控制结构目录•数组与字符串•函数与模块化程序设计•文件操作•指针与内存管理•综合案例分析01引言课程目标与要求程序设计概述程序设计的定义和重要性程序设计的基本步骤和流程程序设计语言简介程序设计语言的分类和特点程序设计语言的选择依据和建议02数据类型与运算符基本数据类型整数类型包括短整型、整型、长整型等,用于表示不同范围的整数。
浮点类型包括单精度浮点数和双精度浮点数,用于表示带有小数点的数值。
字符类型用于表示单个字符,如字母、数字、符号等。
布尔类型用于表示逻辑值,即真或假。
运算符与表达式比较运算符位运算符用于比较两个值的大小关系,如等于、大于、小于等。
用于对二进制位进行操作,如按位与、按位或等。
算术运算符逻辑运算符赋值运算符用于进行基本的数学运算,如加、减、乘、除等。
用于进行逻辑运算,如与、或、非等。
用于将表达式的值赋给变量。
数据类型转换自动类型转换强制类型转换变量与常量变量常量03程序控制结构顺序结构的概念按照程序中的语句先后顺序逐条执行,是最简单的程序控制结构。
顺序结构的实现通过编写顺序执行的语句序列来实现,每执行一条语句,程序计数器自动加1,指向下一条语句。
顺序结构的应用场景适用于一些简单的计算、数据处理和文件操作等任务。
选择结构的概念01选择结构的实现02选择结构的应用场景03循环结构的概念在程序中需要反复执行某个操作或语句序列时,可以使用循环结构。
循环结构的实现通过循环语句(如for、while语句)来实现,根据循环条件控制循环的执行次数。
循环结构的应用场景适用于需要重复执行某个操作的情况,如遍历数组、累加求和、打印输出等。
程序异常处理异常处理的概念异常处理的实现异常处理的应用场景04数组与字符串02030401一维数组的定义和初始化一维数组元素的访问和修改一维数组的遍历和一维数组的常见操作(如排序、查找等)0102030401字符串的定义和初始化02字符串的基本操作(如连接、截取、替换等)03字符串的遍历和04字符串的常见算法(如KMP 算法、Boyer-Moore 算法等)字符串及操作数组与字符串应用举例05函数与模块化程序设计函数定义函数调用返回值030201函数定义与调用参数传递方式位置参数关键字参数默认参数可变参数局部变量与全局变量局部变量变量作用域全局变量模块化程序设计思想模块化概念模块化优点模块导入与使用模块间通信06文件操作文件打开与关闭打开文件关闭文件在完成对文件的操作后,需要调用关闭文件的函数或方法,以释放系统资源并确保数据被正确写入文件。
08工业工程程序设计基础试卷(A卷,带答案)
08⼯业⼯程程序设计基础试卷(A卷,带答案)⼴东海洋⼤学 2007 —— 2008 学年第⼆学期《⼯业⼯程程序设计基础》课程试题课程号: 1410029-0√ 考试√ A 卷√ 闭卷□考查□ B 卷□开卷(答题注意事项:1、试卷内容采⽤4号或⼩4号宋体,页⾯和页码已排好,⽆需调整;2、按学校规定的阅卷要求进⾏评分;3、流⽔阅卷时,阅卷教师签名签在试卷⾸页左上⽅得分统计表实得分数栏的下⽅;4、出题时,所有题⽬集中书写,学⽣答题时,除客观题直接填在试卷上外,主观题统⼀答在所附⽩纸上。
)⼀、填空题(每空1分,共15)1.在C++中,运⾏时多态性是通过使⽤继承和虚函数实现的。
2.⽤来派⽣新类的类称为基类,⽽派⽣出的新类称为它的⼦类或派⽣类 3.如果⼀个类⾄少有⼀个纯虚函数,就称这个类为抽象类。
4.模板定义中标识类型的参数必须⽤关键字 class 修饰。
5.构造函数是对象被创建时⾃动执⾏,对象消失时⾃动执⾏的成员函数为析构函数。
6.⼀个类的成员可分为数据成员和成员函数两类。
7.继承是对象的⼀个特点,继承可分为单⼀继承和多重继承。
8.将成员函数放在类外,所⽤的作⽤域运算符为∷。
9.类的访问权限有___ 、和三种。
⼆、单项选择题(每题1分,共20分)1.设变量m ,n ,a ,b ,c ,d 均为0,执⾏(m = a==b)||(n=c==d)后,m ,n 的值是 ____D___ A. 0,0 B. 0,1 C. 1,0 D. 1,12.C 语⾔提供的预处理功能包括条件编译,其基本形式为 # XXX 标识符程序段 1 # else程序段 2班级:姓名:学号:试题共页加⽩纸张密封线GDOU-B-11-302#endif这⾥XXX可以是___D_____。
A.define或 includeB.ifdef 或includeC. ifdef 或ifndef或 defineD.ifdef或 ifndef或 if3.若a为⼆维数组,它有m列,则a[i][j]在数组中的位置是____c___A. i*m+jB. j*m+iC. i*m+j-1D. i*m+j+14.以下叙述不正确的是—D———:A.⼀个C++序可由⼀个或多个函数组成B.⼀个C++序必须包含⼀个main函数C.C++的基本组成单位是函数D.在C++中,注释说明只能位于⼀条语句的后⾯5.若⽤数组名作为函数调⽤时的实参,则传递给形参的是 A 。
程序设计基础课件完整版教学课件汇总
•课程介绍与教学目标•程序设计基本概念•基本数据类型与运算目录•控制结构•函数与模块化设计•数组与字符串处理•指针与引用类型详解•文件操作与异常处理机制目录•数据结构与算法基础介绍01课程介绍与教学目标课程背景与意义程序设计是计算机科学的核心基础,掌握程序设计的基本概念和技能对于计算机专业学生至关重要。
随着信息技术的迅猛发展,程序设计已经成为现代社会不可或缺的技能之一,对于非计算机专业学生同样具有重要意义。
本课程旨在培养学生计算思维能力和解决实际问题的能力,为后续专业课程学习和职业发展打下坚实基础。
教学目标与要求01020304课程安排与考核方式课程安排本课程共分为理论授课、实验操作和课程设计三个环节,其中理论授课主要讲解程序设计的基本概念、原理和方法,实验操作要求学生运用所学知识完成实验任务,课程设计则要求学生综合运用所学知识完成一个完整的程序设计项目。
考核方式本课程采用平时成绩、实验成绩和期末考试成绩相结合的考核方式。
平时成绩主要考查学生的出勤率、课堂表现和作业完成情况;实验成绩主要考查学生的实验操作能力和问题解决能力;期末考试成绩则主要考查学生对课程知识的掌握程度和应用能力。
02程序设计基本概念程序与程序设计语言程序程序设计语言编译与解释解决特定问题或完成特定任务的一系列清晰指令,具有有限性、确定性、输入项、输出项和有效性等特性。
算法计算机中存储、组织数据的方式,包括数据结构评估算法性能的方法,包括时间复杂算法分析010203算法与数据结构编程的基本风格和模式,包括过程式编程、面向对象编程、函数式编程等。
编程范式指导编程的基本原则和方法,如模块化、复用性、可维护性等。
编程思想研究如何系统化、规范化、可定量化地开发和维护软件的学科。
软件工程编程范式与编程思想03基本数据类型与运算整型(int)表示整数,包括正整数、零和负整数。
浮点型(float)表示带有小数点的数值,可以表示很大或很小的数。
《程序设计基础 》课件
经过有计划性的练习,学生能够熟练掌握编程方法和技巧,提升综合能力。
实战演练
采用模拟比赛、趣味编程等方式,增强学生的实际动手操作能力,丰富学生的编程体验。
选取最新的实践案例,贴近高 校内部的实际应用,帮助学生 快速理解实践操作。
编程环境
基于VS Code的编程环境,实现 自动补齐、断点调试等功能, 并提供持续更新。
实验操作
课后实验练习,进行上机调试, 理论与实践相结合,全面提升 学生的实践操作能力。
案例分析和练习
案例分析
分析和介绍实际编程案例,帮助学生了解编程过程,掌握编程思路和解决问题的方法。
程序设计基础
本课程帮助初学者掌握编程基础,了解编程语言和程序设计的概念。通过实 践和案例分析,深入学习编程技巧和方法。
课程概述
目标学生
本课程适用于没有编程背景的 初学者,也适合想要巩固编程 基础的进阶学习者。
主要内容
介绍了计算机编程的基本概念 和编程语言,着重讲解变量、 结构、函数、循环和条件语句 的使用。
第二章 变量和表达式
2
变量、数据类型的基本概念以及程序 的结构和流程。
深入讲解变量、常量、运算符和表达
式的使用方式,提高编程基础的答对
过程。
3
第三章 语句和流程控制
学习如何使用条件、循环和跳转语句,
掌握流程控制的基本方Hale Waihona Puke 。第四章 函数和数组4
介绍函数和数组的概念和基本用法, 深入掌握程序设计中的核心思想。
学习方式
采用理论学习和实践操作相结 合的方式,通过实际编程练习 巩固所学知识。
学习目标
熟悉编程语言
了解编程语言的基本概念,熟练掌握C语言。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(072)上海大学2007-2008年冬季学期试卷 2008.3课程名:程序设计基础(C) 课程号:00863006 学分:5应试人声明:我保证遵守《上海大学学生手册》中的《上海大学考场规则》,如有考试违纪、作弊行为,愿意接受《上海大学学生考试违纪、作弊行为界定及处分规定》的纪律处分。
学号: 姓名: 学院/教师:题号 一 二 三 四 卷面 上机总分 题分 21 36 8 12 77 23 100 得分考生须知:1.试卷和答题纸上的”学号、姓名、学院、教师”都要填上;2.所有答题内容都写在答卷纸上,交卷时将试卷和答卷纸一起交上;3.不遵守上述要求者考试成绩将为零分。
4.本卷考试的得分为卷面分,电脑上机考试(另行安排)的得分为上机分,考试成绩为卷面分与上机分之和。
一、基础题(21分,第1小题3分,其它每小题2分) 1.以下所有项中哪三项是合法的C语言常量:0xff、’78’、”0”、018、e20、1e3.4、’\0’。
2.定义int x,y,z;用C语言表达式描述下述关系:x和y都不小于z;x和y至少有一个大于z。
3.计算位运算表达式的值,结果用十进制描述:~1、033&0x22。
4.已知字母’A’的ASCII码值为65,定义char c1=’E’; int c2=65; 分别写出printf(“%d”,c1); putchar(c2+32);的结果。
5.定义int x=1122,y=1123; 写出执行表达式x++>y?x--:--y后x和y 的值。
6.写出printf(“%3d*%7.2f”, 1234, 456.123); 的结果。
7.定义int i; 计算for(i=0; i*i<111; i++){ }的循环次数。
8.写出printf(“%d”, strlen(“string\097”)); 和sizeof(“string\097”)的结果(strlen( ) 为求字符串长度的库函数,sizeof为求对象存储字节数的运算符)。
9.定义struct num{ int a; float b;} s[ ]={{10, 3.0}, {3, 158.6}}, *p=s;计算s[0].b*s[1].a和 (int)(p+1)->b/p->a的值。
10.定义char *pc[]={ “Shanghai”, “Beijing”, “Guangzhou” }; int i;用循环结构写语句分行输出这些字符串。
二、阅读程序(36分,每小题4分)仔细阅读下列程序,将各程序的运行结果写在答卷纸上。
(1)程序#include <stdio.h>main(){int a, b;scanf(“%d %d”, &a, &b);a=a+b;b=a-b;a=a-b;printf(“a=%d ,b=%d\n”, a, b);}输入: 111 222输出:?(2)程序#include <stdio.h>main(){char s[80];int i;gets(s);for(i=0;s[i];i++){if(s[i]>='0'&&s[i]<='9'){s[i]='9'-(s[i]-'0');putchar(s[i]);}else putchar(‘*’);}}输入:1a2b3c4d5e6f7g8h输出:?(3)程序#include <stdio.h>void main(){int j=0,num;do{if(j>9) break;num = j*10+3;if(num%3==0)printf(“%d ”,num);j++;}while(1);}输出:?(4)程序#include <stdio.h>main(){int a[3][3]={1,2,3,4,5,6,7,8,9};int i,j;for(i=0,j=2;i<3;i++,j--)printf(“%d#”,a[i][j]);printf(“\n”);for(i=0,j=0;j<3;i++,j++)printf(“%d#”,a[i][j]);printf(“\n”);}输出:?#include <stdio.h>char* menu(int i){switch(i){case 0: return “File”;case 1: return “Edit”;case 2: return “View”;case 3: return “Quit”;}}main(){int j=0;for(;j<4;j++)printf(“%s ”,menu(j));}输出:?(6)程序void ex_s(){int av=100;static sv=100;av++; sv=sv+av;printf(“av=%d,sv=%d\n”,av,sv); }main(){int i;for(i=0;i<2;i++)ex_s();}输出:?#include <stdio.h>main(){int a[20],*p[4],i;for(i=0;i<20;i++)a[i]=i*10;for(i=0;i<4;i++)p[i]=&a[i*(i+1)];for(i=0;i<4;i++)printf(“%d ”,p[i][i]);}输出:?(8)程序#include “stdio.h”void inv(int *s, int k, int j){int t;if(k<j){t = *(s+k); *(s+k) = *(s+j); *(s+j) = t;inv(s, k+1, j-1);}}main(){int a[6], j;for(j=0;j<6;j++) scanf(“%d”, &a[j]);inv(a,0,5);for(j=0;j<6;j++) printf(“%d ”, a[j]);}输入:15 23 8 99 56 78输出:?(9)程序#include “stdio.h”main(){FILE* fp;int a[16];int i,j;fp=fopen(“test.txt”, “r”);for(i=0;i<16;i++)fscanf(fp, “%d”, &a[i]);for(i=0; i<16; i++){switch(a[i]){case 0: putchar('@'); break;case 1: putchar('&'); break;case 2: putchar('*'); break;case 3: putchar('#'); break;default: putchar('?');}if((i+1)%4==0)printf(“\n”);}}假设文件操作总是成功的,且test.txt的内容为0 1 1 01 2 2 12 3 3 23 4 4 3输出:?三、改错程序(8分,每错误点2分)下列程序各有两个错误(两个错误分别是在不同的行上,并只在有注解行号所标注的行上),按原来程序的要求,纠正错误,并将错误所在行号以及错误行完整的正确内容写在答卷纸的对应栏内。
(1)以下程序验证一个定理:任何一个整数n的立方都可以写成n 个连续奇数的和。
main(){int n,i,j,s,k,m;scanf(“%d”, &n);k=n*n*n;for(i=1;;i=i+2){/*1*/ for(s=0,j=i,m=0; m<n; m++,j=j+2)/*2*/ s=s+j; /*计算从i开始的连续的n个奇数之和*/ /*3*/ if(s==k) continue;}printf(“%d*%d*%d=%d=”,n,n,n,k);/*4*/ for(j=0;j<n;j++)/*下面打印已找到的n个连续奇数*/ {/*5*/ printf(j==0? “%d”: “+%d”,i);/*6*/ i++;}}(2)以下程序从输入的字符串str中删除指定的字符c。
#include “stdio.h”main(){char str[100],c;int i,j;printf(“please input string:”);gets(str);printf(“Please input a character:”);/*1*/ getchar(c);/*2*/ for(i=0,j=0;str[i];i++)/*3*/ if(str[i]!=c)/*4*/ str[j++]=str[i];/*5*/ str[i]='\0';printf(“After %c is deleted:”,c);puts(str);}输入str:How are you?输入c:o输出:After o is deleted: Hw are yu?四、程序填空(12分,每填空2分)阅读下列问题描述和相应的C程序,把应填入其中 (n) 处的内容写在答卷纸的对应栏内。
(1) 以下程序查找满足下述条件的三位数整数:它既是完全平方数,又有两位数字相同,比如100、144等。
main(){int n,k,a,b,c;for(n=10;;n++){k=n*n;if(______(1)_____) break;a=k/100;b= (2) ;c=k%10;if( (3) )printf(“%d=%d*%d\n”,k,n,n);}}(2)以下程序中结点node定义了一个整数的信息,函数IsPrime 的功能是判定一个整数是不是素数,是素数返回1否则返回0;函数create创建一个由10个整数构成的链表;函数del从链表中删除所有数据成员为素数的结点, 函数print输出头结点地址为head的链表信息。
#include “stdio.h”#include “stdlib.h”typedef struct node{int n;struct node* next;} NODE;int IsPrime(int n) /*判断整数n是不是素数*/{int i;if(n<2) return 0;for(i=2;i<n;i++)if(n%i==0) return 0;return 1;}NODE* create() /*创建由10个整数构成的链表*/{int i,n;NODE *head=NULL,*p;for(i=0;i<10;i++){p= (4) ;scanf(“%d”,&p->n);p->next=head;head=p;}return head;}NODE* del(NODE* head) /*删除所有素数点*/{NODE *p,*q;if(head==NULL) return NULL;for(p=head,q=p->next;q!=NULL;q=p->next){ /* 删除从第2个结点开始的整数部分是素数的结点*/ if(IsPrime(q->n)){p->next=q->next;free(q);}elsep= (5) ;}if(IsPrime(head->n)) /*处理头结点整数部分是素数的情况*/ {p= (6) ;free(head);head=p;}return head;}void print(NODE* head){NODE* p=head;if(p==NULL) printf(“ nothing”);while(p!=NULL){printf(“%d ”,p->n);p=p->next;}}main(){NODE* head;head=create();printf(“Source list: ”);print(head);printf(“\n”);head=del(head);printf(“After deleted: “);print(head);printf(“\n”);}输入:10 11 12 13 14 15 16 17 18 19输出:Source list: 19 18 17 16 15 14 13 12 11 10After deleted: 18 16 15 14 12 10(072)上海大学2007-2008年冬季学期答卷 2008.3课程名:程序设计基础(C) 课程号:00863006 学分:5应试人声明:我保证遵守《上海大学学生手册》中的《上海大学考场规则》,如有考试违纪、作弊行为,愿意接受《上海大学学生考试违纪、作弊行为界定及处分规定》的纪律处分。