C++程序设计上机实践与学习的辅导王庆宝朱红版地答案详解

合集下载

C语言程序设计 上机实验指导与习题 参考答案(第四版)

C语言程序设计 上机实验指导与习题 参考答案(第四版)

C 语言程序设计上机实验指导与习题参考答案(第四版)(学生改编)实验 1:C语言程序初步一、实验目的(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。

(2)了解在该系统上如何编辑、编译、连接和运行一个 C程序。

(3)通过运行简单的 C 程序,初步了解 C程序的特点。

(4)在教师的指导下,学会使用在线评判系统。

二、实验内容1.运行第一个 C 程序题目:ThefirstCProgram将下列程序输入visualc ,编译、连接和运行该程序。

includequotstdio.hquotmain printfquotThefirstCProgramnquot具体操作步骤(1)在编辑窗口中输入程序。

(2)保存程序,取名为a1.c。

(3)按照第一章中介绍的方法,编译、连接和运行程序。

,则该题完成。

4按照第三章介绍的方法,将代码提交到在线评判系统,系统返回“通过”2.在在线评判系统中提交实现了计算 ab 功能的程序题目 1001:计算ab由键盘输入两个整数,计算并输出两个整数的和。

实现该功能的程序如下,inclu dequotstdio.hquotmain int ab scanfquotddquotampaampbprintfquotdquotab(1)在程序编辑窗口中输入程序。

(2)保存程序,取名为a2.c。

(3)按照前二章中介绍的方法,编译、连接和运行程序。

(4)在程序运行过程中,输入 15 30↙↙表示输入回车符(5)如果看到如下输出结果,则表明1530 的结果正确,如果得不到如下结果,则需检查并更正程序。

45(6)按照第三章中介绍的方法进入在线评判系统。

(7)显示题目列表,点击题号为 1001,题名为“计算ab”的题目。

(8)查看完题目要求后,点击页面下端的“sumbit” ,参照第二章提交程序的方法提交程序a2.c。

(9)查看评判结果,如果得到“accepted”则该题通过,否则返回第一步检查程序是否正确。

《C语言程序设计》(江宝钏著)实验七答案复习进程

《C语言程序设计》(江宝钏著)实验七答案复习进程

《C语言程序设计》(江宝钏著)实验七答案7.4实验七字符与字符串处理一、实验目的与要求1. 掌握C语言字符型数据的概念,理解字符型与整型数据之间的关系2. 掌握字符的输入与输出。

3. 掌握转义字符常量、字符串常量的使用。

4. 掌握字符、字符串与字符数组的输入与输出。

5. 掌握字符串函数的使用字符串数组的使用。

6. 实验课时2学时二、实验内容1 .程序改错题①调试下列程序,使之具有如下功能:任意输入两个字符串(如:"ningbo"和"china"),并存放在a,b两个数组中。

然后把较短的字符串放在a 数组,较长的字符串放在b数组。

并输出。

程序中的strlen是库函数,功能是求字符串的长度,它的原型保存在头文件"stri ng.h"中。

调试时注意库函数的调用方法,不同的字符串输入方法,通过错误提示发现程序中的错误。

提示发现程序中的错误。

#i nclude <stdio.h>#i nclude<stri ng.h>void mai n(){char a[10],b[10],ch;int c,d,k;sca nf("%s",&a);scanf("%s",&b); /* error */ prin tf("a=%s,b=%s\n",a,b); c=strle n( a);d=strlen(b); if(c>d){ for(k=0;k<d;k++) /* error */{ ch=a[k];a[k]=b[k];b[k]=ch;}a[k]='\0'; /* error */}prin tf("a=%s\n",a);prin tf("b=%s\n",b);}答:#i nclude <stdio.h>#i nclude<stri ng.h>void mai n(){char a[10],b[10],ch;int c,d,k;sca nf("%s",&a);sca nf("%s",&b);prin tf("a=%s,b=%s\n",a,b); c=strle n( a);d=strle n(b); if(c>d){for(k=0; k<c;k++){ch=a[k]; a[k]=b[k]; b[k]=ch;}a[k]='\0';b[k]='\0';}prin tf("a=%s\n",a);prin tf("b=%s\n",b);}②下列给定程序中,函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。

C语言程序设计 (江宝钏 著) 清华大学出版社 第6章参考答案

C语言程序设计 (江宝钏 著) 清华大学出版社 第6章参考答案

习题6一、程序阅读题1、以下程序运行后的输出结果是c 。

#include <stdio.h>void fun(int x, int y, int z){z=x*x+y*y;}void main(){int a=31;fun(5,2,a);printf("%d",,a);}A、0B、29C、31D、无定值2、以下程序运行后的输出结果是d 。

#include <stdio.h>void f(int x,int y){int t;if(x<y){ t=x; x=y; y=t; }}void main( ){int a=4,b=3,c=5;f(a,b); f(a,c); f(b,c);printf("%d,%d,%d\n",a,b,c);}A、3,4,5B、5,3,4C、5,4,3D、4,3,53、以下程序运行后的输出结果是a 。

#include "stdio.h"#define FUDGE(y) 2.84+y#define PR(a) printf("%d",(int)(a)) #define PRINT1(a) PR(a);putchar('\n') void main(){int x=2;PRINT1(FUDGE(5)*x);}A、12B、14C、16D、184、以下程序的输出结果是d 。

#include <stdio.h>int k = 1;void main(){ void Fun();int j;for(j = 0; j < 2; j++)Fun();printf("k=%d", k);}void Fun(){ int k = 1;printf("k=%d,", k);k++;}A、k=1,k=2,k=3B、k=1,k=2,k=1C、k=1,k=1,k=2D、k=1,k=1,k=15、以下程序的输出结果是d 。

c语言程序设计上机指导与习题选解答案

c语言程序设计上机指导与习题选解答案

c语言程序设计上机指导与习题选解答案C语言程序设计上机指导与习题选解答案C语言是一门广泛应用于计算机科学领域的编程语言,具有高效、灵活和可移植性等特点。

对于初学者来说,掌握C语言的基本知识和编程技巧是非常重要的。

本文将为大家提供一些C语言程序设计上机指导和习题选解答案,希望对大家的学习有所帮助。

一、C语言程序设计上机指导1. 编写一个程序,实现两个整数的加法运算。

```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个整数的和为:%d\n", sum);return 0;}```2. 编写一个程序,判断一个整数是否为奇数。

```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("该整数是偶数。

\n");} else {printf("该整数是奇数。

\n");}return 0;}```3. 编写一个程序,计算一个整数的阶乘。

```c#include <stdio.h>int main() {int num, i;long long factorial = 1;printf("请输入一个整数:");scanf("%d", &num);for (i = 1; i <= num; i++) {factorial *= i;}printf("%d的阶乘为:%lld\n", num, factorial);return 0;}```二、习题选解答案1. 编写一个程序,将一个字符串中的所有小写字母转换为大写字母。

C语言程序设计 上机实验指导与习题 参考答案

C语言程序设计 上机实验指导与习题 参考答案

C 语言程序设计上机实验指导与习题参考答案仅供教师内部参考华南农业大学目录上机实验1实验1 C 语言程序初步1一实验目的1二实验内容1实验2 基本数据类型运算和表达式3一实验目的3二实验内容3实验3 基本输入与输出5一实验目的5二实验内容5实验4 选择结构程序设计4一实验目的4二实验内容4实验5 循环结构程序设计一9一实验目的9二实验内容9实验6 循环结构程序设计二15一实验目的15二实验内容15实验7 数组17一实验目的17二实验内容17实验8 字符数组的应用22一实验目的22二实验内容22实验9 函数的基本应用24 一实验目的24二实验内容24实验10 指针与结构体26一实验目的26二实验内容26*实验11 链表29一实验目的29二实验内容29*实验12 文件32一实验目的32二实验内容32上机实验实验1 C 语言程序初步一实验目的1了解所用的计算机系统的基本操作方法学会独立使用该系统2 了解在该系统上如何编辑编译连接和运行一个C 程序3 通过运行简单的C 程序初步了解C 程序的特点4 在教师的指导下学会使用JudgeOnline 实验系统二实验内容1 运行第一个C 程序[题目The first C Program]将下列程序输入TC 或VC编译连接和运行该程序void mainprintf "The first C Program\n"[具体操作步骤]以Turbo C 上的操作为例1Windows 进入后按照第一章中介绍的方法进入Turbo C2在编辑窗口中输入程序3保存程序取名为a1c4按照第一章中介绍的方法编译连接和运行程序2 在JudgeOnline 系统中提交实现了计算ab 功能的程序[题目1001计算ab]由键盘输入两个整数计算并输出两个整数的和实现该功能的程序如下void mainint a bscanf "dd" a b1 printf "d" a b1在程序编辑窗口中输入程序2保存程序取名为a2c3按照前二章中介绍的方法编译连接和运行程序4在程序运行过程中输入15 30↙↙表示输入回车符5 如果看到如下输出结果则表明1530 的结果正确如果得不到如下结果则需检查并更正程序456 按照第三章中介绍的方法进入JudgeOnline 实验系统7 显示题目列表点击题号为1001题名为计算ab的题目8 查看完题目要求后点击页面下端的sumbit 参照第二章提交程序的方法提交程序a2c9 查看评判结果如果得到accepted则该题通过否则返回第一步检查程序是否正确2实验2 基本数据类型运算和表达式一实验目的1掌握C 语言数据类型熟悉如何定义一个整型和实型的变量以及对它们赋值的方法2 掌握不同的类型数据之间赋值的规3 学会使用C 的有关算术运算符以及包含这些运算符的表达式特别是自加和自减-- 运算符的使用4 进一步熟悉C 程序的编辑编译连接和运行的过程二实验内容1 变量的定义[题目1117变量定义按要求完成程序]下面给出一个可以运行的程序但是缺少部分语句请按右边的提示补充完整缺少的语句void mainint a b 定义整型变量a 和bint i j 定义实型变量i 和ja 5b 6i 314 j iabprintf "a db di fj f\n" a b i j[具体操作步骤]1将代码补充完整2在TC 或VC上运行通过3在JudgeOnline 实验系统上提交2 赋值表达式与赋值语句[题目1118赋值表达式与赋值语句写出程序运行结果] 阅读下面程序写出运行结果void mainfloat aint b cchar d ea 35b ac 330d c3e \\printf "fddcc" abcde运行结果为35000003330J\[提示]赋值语句具有类型转换的功能但可能会改变数据3 基本运算[题目1119基本运算写出程序运行结果]阅读下面程序写出运行结果void mainint a b cfloat d 15 e fa 357b 1510c be 1510f d10printf "dddfff" abcdef运行结果为0211500000010000001500000[提示]除法分整除与普通除法之分4实验3 基本输入与输出一实验目的1熟练掌握putchargetcharprintf scanf 函数的使用方法2 掌握各种类型数据的输入输出的方法能正确使用各种格式转换符二实验内容[题目1126字符的输入与输出]编程实现由键盘输入一个字符后在屏幕上输出该字符[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]a↙↙[正确输出] [正确输出]a参考程序include "stdioh"mainchar chch getcharputchar ch[题目1127计算加法]编程实现由键盘输入一个加法式输出正确的结果两个加数均为整数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]1020 ↙- 1560↙[正确输出] [正确输出]30 45参考程序include "stdioh"mainint a bscanf "dcd" abprintf "d" ab[题目1014求圆面积]由键盘输入圆半径r 请计算该圆的面积注取314159结果保留两位小数位另外程序只要能对r 在0 到10000 范围的情况输出正确答案即可[第一组自测数据] [键盘输入]5652 ↙[键盘输入][正确输出] 112↙1335502 [正确输出][第二组自测数据] 39408[提示]结果保留两位小数可采用printf 函数的格式控制字符来实现参考程序include "stdioh"mainfloat arearscanf "f"rarea 314159rrprintf "02f"area2[题目1015计算摄氏温度值]从键盘输入一个华氏温度值要求按格式输出其对应的摄氏温度值精确到小数点后两位数学公式描述为5C F 329[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]100↙100↙[正确输出] [正确输出]3778 3778[提示]注意公式中的除为普通除法参考程序includevoid mainfloat fcscanf "f"fc 509 f-32printf "2f"c3实验4 选择结构程序设计一实验目的1了解C 语言表示逻辑的方法以0 代表假以非0 代表真2 学会正确使用逻辑运算符和逻辑表达式3 熟练掌握if 语句和switch 语句4 结合程序掌握一些简单的算法二实验内容[题目1120判断点是否在圆]由键盘输入一个点的坐标要求编程判断这个点是否在单位圆上点在圆上输出Y 不在圆上输出N 使用小数点后3 位精度进行判断[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]07070707 ↙8>0505↙[正确输出] [正确输出]Y N[提示] 1平面上的点与圆的关系分为在圆内在圆上在圆外三种本题要求判断是否在圆上2判断两实数相等采用判断这两实数的差的绝对值小于规定误差精度本题为0001 的方法实现参考程序include "stdioh"include "mathh"void mainfloat abscanf "ff"abif fabs aabb-1 1e-3printf "Y\n"else printf "N\n"[题目1017求数的位数]由键盘输入一个不多于9 位的正整数要求输出它是几位数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]349213 ↙10000↙[正确输出] [正确输出]6 5[提示]划定一位数二位数九位数的范围后用if else if else 语句实现判断4参考程序mainint nplacescanf "ld"nif n 99999999 place 9else if n 9999999 place 8else if n 999999 place 7else if n 99999 place 6else if n 9999 place 5else if n 999 place 4else if n 99 place 3else if n 9 place 2else place 1printf "ld\n"place[题目1018数的排序]由键盘输入三个整数a b c按从小到大的顺序输出这三个数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]654590 ↙963 ↙[正确输出] [正确输出]456590 369参考程序includemainint abctscanf "ddd"abcif a b t aa bb tif a c t aa cc tif b c t bb cc tprintf "ddd"abc[题目1016字符变换]由键盘输入5 个字符将其中的大写字母变成小写其它类型的字符不变并按输入顺序逐个输出[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]ApPLe ↙aB 5 ↙[正确输出] [正确输出]apple ab 5[提示]下面代码实现由键盘读入一个字符并按题意处理后输出char aa getcharif a A a Z a a32putchar a5现在题目要求处理5 个字符怎么做呢请自己思考参考程序includemainchar abcdescanf "ccccc"abcdeif a Za A a a32if b Zb A b b32if c Zc A c c32if d Zd A d d32if e Ze A e e32printf "ccccc"abcde[题目1019数的整除]由键盘输入5 个整数逐个判断它们能否被27 整除能的输出YES不能的输出NO 注意输出时一个判断结果占一行5 个数的判断共占5 行[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]8 27 17577 325 54 ↙8 27 17577 325 54 ↙[正确输出] [正确输出]NO NOYES YESYES YESNO NOYES YES[提示]整除即除得余数为0参考程序include "stdioh"mainint abcdescanf "d d d d d"abcdeif a27 0 printf "YES\n" else printf "NO\n"if b27 0 printf "YES\n" else printf "NO\n"if c27 0 printf "YES\n" else printf "NO\n"if d27 0 printf "YES\n" else printf "NO\n"if e27 0 printf "YES\n" else printf "NO\n"[题目1020正负奇偶判断]由键盘输入非零整数x 判断该数正负正数输出positive 负数输出negative 接着判断该数的奇偶性奇数输出odd偶数输出even[第一组自测数据] negative[键盘输入] odd-43 ↙[第二组自测数据][正确输出] [键盘输入]698 ↙positive[正确输出] even参考程序include "stdioh"mainint nscanf "d"nif n 0 printf "negative\n"else printf "positive\n"if n2 0 printf "even\n"else printf "odd\n"[题目1023简单计算器]下面程序是实现一个简单的运算器保留两位小数点如果由键盘输入1050计算机可以输出结果6000如果输入8 *6计算机输出4800如果输入204 计算机输出500 如果输入8-6计算机输出200 请在空处填上适当的代码运行通过后并提交include "stdioh"void mainfloat abcscanf "fcf"switch opcasecase - _case _case __default printf "error"returnprintf "result " c[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]452↙501-23 ↙[正确输出] [正确输出]90 27107参考程序includeint mainchar opscanf "fcf"aopbswitch opcase c abbreakcase -c a-bbreakcase c abbreakcase c abbreakdefaultprintf "error"breakprintf "result 2f"c8实验5 循环结构程序设计一一实验目的1熟悉掌握用while 语句do-while 语句和for 语句实现循环的方法2 掌握在程序设计中用循环实现一些常用算法如穷举迭代递推等二实验内容[题目1024计算阶乘]输入正整数n计算n 结果用长整型数表示注n 123n[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]5 ↙8 ↙[正确输出] [正确输出]120 40320参考程序includemainlong in 1ascanf "ld"afor i 1i ai n niprintf "ld\n"n[题目1025计算数列和]有数列1357911现要求由键盘输入n计算输出该数列的前n 项和[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]2 ↙ 5 ↙[正确输出] [正确输出]4 259参考程序includemainlong nsum 0it 1scanf "ld"nfor i 1i nisum sumtt t2printf "ld\n"sum或includemainlong nsumscanf "ld"nsum nnprintf "ld"sum注评判系统不对程序实现细节进行分析只对运行结果进行评测[题目1026 加一行字符中的数字]由键盘输入一行字符总字符个数从1 个至80 个均有可能以回车符表示结束将其中每个数字字符所代表的数值累加起来输出结果[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]abc123↙A6H7T65↙[正确输出] [正确输出]6 24[提示] 1可以使用下面程序段逐个读入键盘输入的一行字符char chwhile ch getchar \n2 数字字符转为对应的数值可用a ch-0参考程序includemainchar cint s 0awhile c getchar \nif c 0c 9a c-48s saprintf "d"s10[题目1029求最大公约数]由键盘输入两个正整数mn mn 用长整数表示计算它们的最大公约数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]1624↙1725↙[正确输出] [正确输出]8 1[提示]公约数是既能整除m 又能整除n 的数题目要求满足这一条件的最大的一个参考程序includemainlong rmntempscanf "ldld"mnwhile m 0r nmn mm rprintf "ld\n"n或includemainlong mntisscanf "ldld"mnt m nnmfor i t-1i 1i--if mi 0ni 0s i breakprintf "d"s[题目1030字符变换]由键盘输入一个句子总字符个数从1 个至80 个均有可能以回车符表示结束将其中的大写字符变成小写其它类型的字符不变最后输出变换后的句子[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]How Are You ↙ThiS IS My fIrSt C ProgrAm ↙[正确输出] [正确输出]how are you this is my first c program11参考程序includemainchar cwhile c getchar \nif c Ac Zc c32putchar c[题目1037计算数列和]有数列编程实现由键盘输入n计算输出数列前n 项和结果保留四位小数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]20 ↙30 ↙[正确输出] [正确输出]326603 880403参考程序includemainint itnfloat a 2b 1s 0scanf "d"nfor i 1i nis sabt aa abb tprintf "4f\n"s[题目1044输出最小值]从键盘输入十个整数输出最小值[ 自测数据][键盘输入]12 45 76 87 5 87 43 55 99 21 ↙[正确输出]512参考程序include "stdioh"mainint itminscanf "d" minfor i 1i 10iscanf "d" tif t min min tprintf "d\n"min*[题目1031统计单词个数]由键盘输入一个句子总字符个数从1 个至80 个均有可能以回车符表示结束以空格分割单词要求输出单词的个数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]How Are You ↙There are many students and many[正确输出] trees↙3 [正确输出]7参考程序includemainint inum 0word 0char cfor i 0 c getchar \niif c word 0else if word 0word 1numprintf "d"num*[题目1042百万富翁]一个百万富翁遇到一个陌生人陌生人找他谈了一个换钱的计划该计划如下我每天给你m 元而你第一天只需给我一分钱第二天我仍给你m 元你给我2 分钱第三天我仍给你m 元你给我4分钱依次类推你每天给我的钱是前一天的两倍直到一个月38 天百万富翁很高兴欣接受这个契约现要求编写一个程序由键盘输入m计算多少天后百万富翁开始亏钱[第一组自测数据] 18[键盘输入] [第二组自测数据]100↙[键盘输入][正确输出] 10000↙13[正确输出] 25参考程序includeincludemainint nmiscanf "d"mfor i 1i 38iif 001 pow 2i-1 -1 -im 0 breakprintf "d"i-114实验6 循环结构程序设计二一实验目的1进一步熟悉掌握用while 语句do-while 语句和for 语句实现循环的方法2 掌握在程序设计中使用多重循环二实验内容[题目1028求素数]输出2 到200 之间包括2 200 的所有素数注要求1 行1 个素数按由小到大的顺序输出[提示]采用双重循环外层循环产生2 到200 之间的数内层循环对数进行判断是否为素数参考程序includeincludemainint mkifor m 2m 200mk sqrt mfor i 2i kiif mi 0 breakif i k printf "d\n"m[题目1035打印菱形]由键盘输入正数n要求输出2n1 行的菱形图案要求菱形左边紧靠屏幕左边[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]3 ↙ 2 ↙[正确输出] [正确输出]15参考程序include "stdioh"include "mathh"mainint nijkscanf "d"nfor i 1i 2n1ik abs n1-ifor j 1j kj printf " "for j 1j 2n1-2kj printf ""printf "\n"[题目1038打印图案]由键盘输入正数n要求输出中间数字为n 的菱形图案要求菱形左边紧靠屏幕左边[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]4 ↙ 3[正确输出] [正确输出]1 1121 121 12321 12321 1234321 121 12321 1 1211参考程序includeincludemainint nijkhscanf "d"nfor i -n1i n-1ifor j 0j abs i jprintf " "for k 1k n-abs i k printf "d"kfor h n-abs i -1h 1h-- printf "d"hprintf "\n"16实验7 数组一实验目的1掌握一维数组和二维数组的定义赋值和输入输出方法2 掌握与数组有关的算法二实验内容[题目1039倒序]由键盘输入10 个整数倒序输出数字间由一个空格分隔[ 自测数据][键盘输入]70 5 14 20 19 2 99 67 13 66 ↙[正确输出]66 13 67 99 2 19 20 14 5 70参考程序includemainint a [10]int ifor i 0i 10i scanf "d"a[i]for i 9i 0i-- printf "d\n"a[i][题目1040统计不同数字个数]由键盘输入20 个整数统计不同数字的个数[ 自测数据][键盘输入]70 5 14 22 19 2 99 67 13 66 5 93 44 38 22 11 39 22 33 11↙[正确输出]16[提示]上述答案中因为5 有1 个重复数字11 有1 个重复数字22 有2 个重复数字故不同数字有16个分别是70 5 14 22 19 2 99 67 13 66 93 44 38 11 39 3317参考程序include"stdioh"mainint a [20]int itp 0for i 0i 20iscanf "d"a[i]for t 0t itif a[t] a [i] breakif t ipprintf "d"p[题目1062打印矩阵]由键盘输入一个3×4 的矩阵要求输出它的转置矩阵[ 自测数据][键盘输入] [正确输出] 1 6 9 3 1 1 11 1 02 6 1 91 9 8 9 9 0 83 2 9参考程序includemainint a [3][4]b[4][3]ijfor i 0i 3ifor j 0j 4jscanf "d"a[i][j]b[j][i] a [i][j]for i 0i 4ifor j 0j 3jprintf "d "b[i][j]printf "\n"*[题目1047冒泡排序]由键盘输入10 个数用冒泡法对10 个数从小到大排序并按格式要求输出代码如下请填充完整数字间由一个空格分隔incude "stdioh"mainint a[10] i j t18for i 0i 10iscanf "d"___________for ___________for j 0j ____jif ______________________for i 0i 10iprintf "d "a[i][ 自测数据][键盘输入]70 5 14 20 19 2 99 67 13 66 ↙[正确输出]2 5 13 14 19 20 66 67 70 99参考程序includemainint a [10]int ijtfor i 0i 10iscanf "d"a[i]for i 0i 9ifor j 0j 9-ijif a[j] a [j1]t a [j] a [j] a[j1] a[j1] tfor i 0i 10iprintf "d "a[i]*[题目1046计算高精度加法]由键盘输入两个位数很长的整数一行一个数每个数最长不超过80 位试计算并输出这两个数的和[ 自测数据][键盘输入]1XXXXXXXXXX23456789 ↙987654321098765 ↙[正确输出]1XXXXXXXXXX4455555419参考程序include "stdioh"include "stringh"mainint a [100] 0 b[100] 0 c[100] 0char s[101]int i 0n1 0n2 0 0e 0gets sn1 strlen sfor i n1-1i 0i-- a[n1-1-i] s[i]-0gets sn2 strlen sfor i n2-1i 0i-- b[n2-1-i] s[i]-0if n1 n2 n1else n2for i 0i ic[i] a[i]b[i]e 10e a[i]b[i]e 10if c[] 0 printf "d"c[]for i -1i 0i--printf "d"c[i]*[题目找矩阵中的鞍点]由键盘输入一个3 ×4 3 行4 列的矩阵输出矩阵中的鞍点即在矩阵行中最大列中最小的数若没有鞍点输出NO 字样[ 自测数据][键盘输入]87 90 110 98 ↙70 97 210 65 ↙98 45 120 30 ↙[正确输出]11020参考程序includemainint ijka[3][4]jflagfor i 0i 3ifor j 0j 4jscanf "d"a[i][j] for i 0i 3ia [i][0]j 0for j 0j 4jif a[i][j]a [i][j] j jflag 1for k 0k 3kif a [k][j]flag 0 breakif flagprintf "d" breakif flagprintf "NO"21实验8 字符数组的应用一实验目的1掌握字符数组和字符串函数的使用2 掌握与字符串处理有关的算法二实验内容[题目1121定义存贮字符串的字符数组]在下面程序中填充定义字符数组的语句使程序完整include "stringh"void mainchar s[80] 定义字符数组sstrcpy s "abcdefghij klmn"printf "s" s参考程序[题目1123字符串的输入与输出]下面程序实现从键盘读入字符串后输出到屏幕请填充必要的语句include "stdioh"void mainchar s[50]printf "Whats your name"gets s 由键盘读入字符串printf "Your name is "printf "s" s 打印字符串参考程序[题目1122字符串的合并]从键盘输入3 个字符串每个字符串以回车符做为结束标志将3 个字符串以输入先后顺序合并到字符串s 中请填空使用程序完整include "stdioh"include "stringh"mainchar s[100] ""char a [30]gets a strcat s a22gets a strcat s agets a strcat s a可以写多行代码printf "s" s[ 自测数据][键盘输入] [正确输出]123 123abc456abc456参考程序[题目1050寻找字符串]由键盘输入两个字符串假设第一个字符串必包含第二个字符串如第一个字符串为ABCDEF第二个为CDE则CDE 包含在ABCDEF 中现要求编程输出第二字符串在第一行字符串中出现的位置如果第二个字符串在第一个字符串中出现多次则以最前出现的为准[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]ABCDEFG ↙hellhello ↙DE ↙hello ↙[正确输出] [正确输出]4 5[提示]方法1建立双重循环外层循环变量指示第一个串的查找起始位置内层循环从起始位置开始判断第二个字符中是否出现在此处方法2 使用字符串函数strstr参考程序include "stdioh"mainint ijchar a [80] b[80]gets a gets bfor i 0a[i] \0ifor j 0b[j] \0jif a[ij] b[j] breakif b[j] \0 breakif a[i] \0 printf "d"i1else printf "Not Found"23实验9 函数的基本应用一实验目的1掌握定义函数的方法2 掌握函数实参与参的对应关系以及值传递的方式3 掌握函数的嵌套调用和递归调用的方法4 掌握全局变量和局部变量动态变量静态变量的概念和使用方法二实验内容[题目1059函数定义]下面是使用辗转相除法求最大公约数的程序请补充完整程序中函数的定义与调用include "stdioh"int f int m int nint rwhile r mn 0m nn rreturn nmainint a b nscanf "dd" a bprintf "d\n" f a b[题目1083编写函数计算阶乘]下面程序实现由键盘读入整数n计算并输出n 请补充完整计算阶乘的函数long fanc int along in 1for i 1i ai n nireturn nvoid mainint nscanf "d" n24printf "ld" fanc n[题目1124函数中的变量]写出下面程序的运行结果int f1 int xstatic int z 3y 0yzreturn xyzmainint a 1kfor k 0k 3k printf "4d"f1 a 程序运行结果为6 8 10*[题目1084编写递归调用函数实现十进制数转二进制数]下面程序实现由键盘输入一个正整数不大于100000000 输出其对应的二进制数原码表示请填空include "stdioh"void fun int iif i 1fun i2printf "d" i2mainint nscanf "d" nfun n25实验10 指针与结构体一实验目的1通过实验进一步掌握指针的概念会定义和使用指针变量2 能正确使用数组的指针和指向数组的指针变量3 能正确使用字符串的指针和指向字符中的指针变量4 掌握结构体类型变量的定义和使用二实验内容[题目1091交换两数由大到小输出]下面程序交换两数使两数由大到小输出请填空include "stdioh"void swap int p1 int p2int temptemp p1p1 p2p2 tempint mainint ab int papbscanf "dd" a bpa a pb bif a b swap pa pbprintf "d d\n"ab[题目1065数组中的指针]设有如下数组定义int a[3][4] 1357 9111315 17192123计算下面各项的值设数组a 的首地址为2000一个int 类型数占四个字节注意地址则输出地址变量则输出变量值要求一行一个答案不允许多余空行及空格1a[2][1] 2 a[1] 3 a 4 a 15 a 16 a 17 a[2] 18 a 1 19 a2 226参考程序include "stdioh"mainprintf "19\n"printf "2016\n"printf "2000\n"printf "2016\n"printf "2004\n"printf "2016\n"printf "2036\n"printf "2020\n"printf "21"[题目1092函数实现求字符串长度]下面程序以指针方式传递参数由函数实现求字符串长度请填空完成include "stdioh"include "stringh"int f char preturn strlen pint mainchar s[80]int iscanf "s" si f sprintf "d" i[题目1125定义结构体类型]要求定义一个名为student 的结构体类型其包含如下成员1字符数组name 最多可存放10 个字符2 字符变量sex用于记录性别3 整数类型变量num用于记录学号4 float 类型变量score 用于记录成绩并使下列代码完整定义结构体类型struct studentchar name[20]char sex。

C语言程序设计习题答案与上机指导实验要求

C语言程序设计习题答案与上机指导实验要求

C语言程序设计习题答案与上机指导实验要求课堂实验应与课堂讲授内容同步,按教材章节编制实验单元。

学生按照“理解程序”→“模仿程序”→“改写程序”→“编写程序”四步曲,循序渐进地学习,逐步提高学生的编程能力。

课程实验包括程序跟踪调试、程序阅读、程序改错、程序填空、程序编写多种类型(在程序阅读题中引入程序的跟踪调试,因此程序阅读题难度不大,这类题一般在前章:3~7章),可从多角度培养学生的编程能力。

每章实验有基本类实验(2~3个)和提高类实验(1~2个),基本类实验要求每个同学必须完成,提高类实验学生可根据自己的能力有选择性的完成,完成者该实验可加分。

每一章实验可按以下要求编写(以第X章为例):如第X章数据组织——数组知识要点数组是基本的构造类型,是一组具有相同类型数据的有序集合,数组中的元素在内存中连续存放。

用数组名和下标可以唯一地确定数组元素。

以下略实验名称螺旋方阵(提高类)1)实验目的(1)熟练理解和掌握二维数组的使用(2)熟练理解循环嵌套的含义与使用方法2)实验任务(1)实验内容如图所示,已知一个N*N(3≤N≤25)的方阵,从左上角第1个格式子开始,按顺时针螺旋方向将1,2,3…的数据布满整个方阵。

N=4时的方阵(2) 实验要求输入N,产生N阶螺旋方阵中的所有数据,保存到二维数组,并输出该螺旋方阵。

测试用例:(3)实验要点分析①问题分析螺旋方阵数据的产生有一定规律。

从外到内,可以以圈为单位生成数据。

比如N=4时,刚好就是两圈数据:第1圈:1 2 3 412 511 610 9 8 7第2圈13 1416 15基本规律是:当N为偶数时,需要N/2圈;当圈为奇数时,也需要N/2圈,但是最后还会生成一个数据:N*N。

②实验要点:使用二维数组存储螺旋方格子中的数据;二维数组所有数据的生成,可使用循环,根据所需要的圈数,从左→右→下→左→上,四个方向来产生数据。

(4)实验思考如果按逆时针方向来产生螺旋方阵,请修改相应程序。

《C语言程序设计实践教程》答案-完整版

《C语言程序设计实践教程》答案-完整版

4.2练习题一、选择题1.D2.B3.A4.B和D5.C6.A7.B二、填空题1.//或/* */2.主或main3.函数首部和函数体4.编译和连接5.公号5.2练习题一、选择题1.A2.D3.B4.B5.C6.C7.D8.A9.B10.B11.D12.B13.A或B14.C15.B17.D18.D19.C20.D21.B22.A23.D24.C25.C26.B27.C28.D29.A30.B二、填空题1.102,102.#define 宏名字符串3.14.n=15.-46.a=1,b= ,c=27.c=A8.n1=%d\nn2=%d9.a+b>c&&a+c>b&&b+c>a10.ch>=’a’&&ch<=’z’|| ch>=’A’&&ch<=’Z’11.712.013.1111000014.8,46.2练习题一、选择题1.A2.C3.D4.C5.A7.A8.D9.B10.C11.A12.A13.C14.B15.正确答案为:12345678二、填空题1.102.y=1 x%i==03.屏幕中间输出一个由星号组成的菱形4.15.136.(cx=getchar())!=-1 front=cx; 7.m%n8.49.*p px=&x py=&y三、读程序,写结果1.-12.3,1,-1,3.a=16,y=604.x=12,y=45.597.2练习题一、选择题1.B2.C3.C4.A5.D6.C8.D9.C10.D11.D12.D13.A14.B15.C16.B17.B18.A19.A20.D21.B22.D23.C24.D25.D26.C二、填空题1.‘a’02.a[k] a[k] a[k]3.0 64.A B C D EA5.1,66.k=p;7.i<j8.189.4,some string * test 10.you&me三、读程序,写结果1.5 4 8 2 02.10 24 15 6 3.love china! H w l 4.66 66 555.Front一、选择题1. A2. A3. B4. B5. B6. A7. D8. C9. A10. A11. A12. B13. B14. A15. B16. B17. C二、填空题1.122.Itis3.fun(n-1)*n fun(k)4.s[i]-t[i]5.n%m i-1 x[d]6.x=n x%10 x7.m=f(a,4)+f(b,4)-f(a+b,3)8.a=1,b=1三、读程序,写结果1.s=72.s=373.bij12一、选择题1. B2. C3. B4. D5. B6. A7. B8. D9. D10. B11. D12. A13. B14. C15. C16. C17. A18. D19. B20. D二、填空题1.b->day (*b).day2.DDBBCC3.zhang 170.000000wang 150.0000004.995.max=i min=i stud[max].name,stud[max].score stud[min].name,stud[min].score6.&r 1 feof(fp) break7.BBB AAA 1238.rewind三、读程序,写结果1.2002,shangxian2.32。

C语言程序设计上机指导书及答案

C语言程序设计上机指导书及答案

姓名:______________________学号:______________________专业:______________________日期:______________________指导原则:促进学生针对实际问题,用所学C语言知识编写符合规范的源程序代码,在某一集成开发环境下尽一切调试技能调试程序,并对运行结果进行分析处理,得出正确结论,解决好实际问题。

更快更好地掌握所学知识,技能和软件的一向开发方法目的:1,通过上机实验,加深对教材内容的理解,特别是一些语法规定,熟练掌握各种语法规则。

2,通过上机实验,熟悉某个C语言集成开发环境。

掌握集成开发环境下程序的编辑、编译与连接、运行的完整过程3,通过上机实验,要学会调试程序。

能根据系统给出的“出错信息”,判断错误所在,并修改错误,使程序正确运行。

要求:1,复习与本次实验相关的教学内容2,了解集成开发环境的操作步骤3,准备好实验内容。

对于编程题,一定要自己动手,书写工整,并人工检查无误后才能上机实验,以提高上机效率。

4,要准备好调试和运行程序时所需的数据。

5,对运行中可能出现的问题事先作出估计,并对程序中有疑问的地方作上标记,以便在运行时给予注意。

并在程序调试时,把系统给出的出错原因,解决方法等记载在源程序之后;程序运行结束后,把运行结果也记录下来。

6,每个实验应独立完成,对实际问题所编写的源程序需写出完整实验的报告。

第一次上机作业熟悉C语言集成开发环境实验目的:1,熟悉C语言集成开发环境2,掌握集成开发环境下文件的编写与调用,源程序的编译与调试,程序运行结果的观察与分析。

3,掌握C语言程序的基本结构实验要求:1,程序编写完后,要对输入的每一个符号和词进行检查核对,不能有错。

2,编写源程序时,不要在中文输入法下进行,也不要有首字符大写,否则调试时,会有错误。

实验内容:1,在D盘新建文件夹:D : \C语言程序XXX(所在班级如0709401) XXX(自己学号或姓名如01),作为以后所做程序的存放位置。

C语言程序设计 上机实验指导与习题 参考答案(第四版)

C语言程序设计 上机实验指导与习题 参考答案(第四版)

C 语言程序设计上机实验指导与习题参考答案(第四版)(学生改编)实验 1:C语言程序初步一、实验目的(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。

(2)了解在该系统上如何编辑、编译、连接和运行一个 C程序。

(3)通过运行简单的 C 程序,初步了解 C程序的特点。

(4)在教师的指导下,学会使用在线评判系统。

二、实验内容1.运行第一个 C 程序题目:ThefirstCProgram将下列程序输入visualc ,编译、连接和运行该程序。

includequotstdio.hquotmain printfquotThefirstCProgramnquot具体操作步骤(1)在编辑窗口中输入程序。

(2)保存程序,取名为a1.c。

(3)按照第一章中介绍的方法,编译、连接和运行程序。

,则该题完成。

4按照第三章介绍的方法,将代码提交到在线评判系统,系统返回“通过”2.在在线评判系统中提交实现了计算 ab 功能的程序题目 1001:计算ab由键盘输入两个整数,计算并输出两个整数的和。

实现该功能的程序如下,inclu dequotstdio.hquotmain int ab scanfquotddquotampaampbprintfquotdquotab(1)在程序编辑窗口中输入程序。

(2)保存程序,取名为a2.c。

(3)按照前二章中介绍的方法,编译、连接和运行程序。

(4)在程序运行过程中,输入 15 30↙↙表示输入回车符(5)如果看到如下输出结果,则表明1530 的结果正确,如果得不到如下结果,则需检查并更正程序。

45(6)按照第三章中介绍的方法进入在线评判系统。

(7)显示题目列表,点击题号为 1001,题名为“计算ab”的题目。

(8)查看完题目要求后,点击页面下端的“sumbit” ,参照第二章提交程序的方法提交程序a2.c。

(9)查看评判结果,如果得到“accepted”则该题通过,否则返回第一步检查程序是否正确。

C语言程序设计习题解答与上机指导(第二版)

C语言程序设计习题解答与上机指导(第二版)

《“十三五”普通高等教育本科规划教材 C语言程序设计习题解答与上机指导(第二版)》作为C语言程序设 计省级精品课程配套教材,不仅可作为普通高校本、专科学生学习C语言的参考书,也可以作为相关工程技术人员 的自学与参考用书。本书是**以从业多年来以洪荒之力墙裂推荐的C语言教材,首先是图书编写团队非常严谨、 从全书结构设置到程序排版,均做到事无巨细、极尽所能;其次是全书内容由浅入深、安排合理,案例深入浅出, 对知识点的理解很有帮助;*后是本书与主教材配套而出,且配有相应的立体化学习、教学资源,确实是一套《C 语言程序设计》教学好书。
图书目录
序 前言 第一部分学习指导与习题解答 第 1章 C语言程序设计概述 1.1内容提要 1.2常见错误 1.3习题解答 第 2章数据及运算 2.1内容提要 2.2常见错误 2.3习题解答
谢谢观看
作者简介
李新华,安徽大学电子信息与计算机学院副教授.安徽大学青年骨干教师,其负责的C语言程序设计课程被评被 安徽省重点课程,编写的教材很有特色.
内容简介
《“十三五”普通高等教育本科规划教材 C语言程序设计习题解答与上机指导(第二版)》为李新华、梁栋 等编著的普通高等教育“十二五”规划教材《C语言程序设计(第二版)》配套使用的参考书。内容包括:⑴学习 指导与习题解答:内容提要强化各章的知识点、常用算法和编程方法;习题解析对程序设计的难点进行了分析, 所附参考程序全部上机调试通过。⑵上机指南:详细介绍了Visual C++ 6.0集成环境下的编辑、编译、调试和运 行C程序的开发方法。⑶上机实验指导,安排了同步的上机实践环节,每个实验都包括相应章节的关键知识、算法 和编程训练。⑷期中、期末两套模拟试卷和参考答案,可有效测试读者对C程序设计的掌握程度。⑸课程设计示范 引导读者基于图形、图像的良好程序设计规范。|

c语言程序设计实验与习题答案

c语言程序设计实验与习题答案

c语言程序设计实验与习题答案C语言程序设计实验与习题答案C语言是一种广泛使用的程序设计语言,它具有高效、灵活和强大的特点,因此在计算机科学和工程领域中得到了广泛的应用。

在学习C语言的过程中,实验和习题是非常重要的一部分,通过实验和习题的完成,可以加深对C语言的理解和掌握。

在C语言程序设计实验中,通常会涉及到一些基本的概念和技术,比如变量、数据类型、运算符、控制结构、函数、指针等。

通过实验,学生可以学习如何使用这些概念和技术来解决实际问题,提高编程能力和解决问题的能力。

同时,习题也是非常重要的,通过习题的完成,可以巩固对C语言知识的掌握,并且可以提高解决问题的能力。

在习题中,通常会涉及到一些常见的编程问题,比如求解数列、排序算法、字符串处理、文件操作等,通过解决这些问题,可以提高学生的编程能力和解决问题的能力。

为了帮助学生更好地完成C语言程序设计实验和习题,下面我们提供一些实验和习题的答案,供学生参考:实验一:变量和数据类型```c#include <stdio.h>int main() {int a = 10;float b = 3.14;char c = 'A';printf("a = %d\n", a);printf("b = %f\n", b);printf("c = %c\n", c);return 0;}```实验二:运算符和表达式```c#include <stdio.h>int main() {int a = 10, b = 5;int sum, diff, product, quotient, remainder; sum = a + b;diff = a - b;product = a * b;quotient = a / b;remainder = a % b;printf("sum = %d\n", sum);printf("diff = %d\n", diff);printf("product = %d\n", product);printf("quotient = %d\n", quotient);printf("remainder = %d\n", remainder);return 0;}```通过以上实验和习题的答案,希望能够帮助学生更好地理解和掌握C语言的知识,提高编程能力和解决问题的能力。

王庆生主编的汇编语言程序设计课后答案习题1详解

王庆生主编的汇编语言程序设计课后答案习题1详解

习题11.1把下列十进制数转换为二进制数和十六进制数。

(1)67 (2)34 (3)254 (4)123答:(1)67D=1000011B=43H(2)34D=100010B=22H(3)254D=11111110B=0feH(4)123D=1111011B=7bH1.2把下列二进制数转换为十六进制数和十进制数。

(1)01101101 (2)10110010 (3)111111答:(1)01101101B=6dH=109D(2)10110010B=0d2H=208D(3) 111111B=3fH=63D1.3作下列十六进制数的运算,并转换为十进制数校核。

(1)5a+64 (2)86-49 (3)123-9a (4)43*2b 答:(1) 5aH+64H=0beH90D+100D=190D正确(2)86H-49H=3dH134D-73D=61D正确(3)123H-9aH=89H291D-154D=137D正确(4)43H*2bH=0b3fH67D*43D=2881D正确1.4下列各数均为十进制数,请采用八位二进制补码运算,并回答标致寄存器flags中CF和OF的值,运算结果所代表的十进制数是多少?如果用十六进制补码运算,其结果所代表的十进制数是多少?FLAGS中CF和OF的值呢?(1)85+69 (2)85+(-69) (3)85-(-69) (3)85-(69)答:(1)八位二进制01010101+01000101=10011010=-102D CF=0,OF=1十六位二进制0000000001010101+0000000001000101=0000000010011010 =154DCF=0,OF=0(2)八位二进制01010101+10111011=00010000=16D CF=1,OF=0十六位二进制0000000001010101+1111111110111011=0000000000010000 =16DCF=1,OF=0(3)八位二进制01010101-10111011=10011010=-102D CF=1,OF=1十六位二进制0000000001010101-1111111110111011=0000000010011010 =154DCF=1,OF=0(4)八位二进制01010101-01000101=00010000=16D CF=0,OF=0十六位二进制0000000001010101-0000000001000101=0000000000010000 =16DCF=0,OF=01.5 实模式下,写出段地址和偏移地址为1234:2002、1430:0042、FF00:0FFF的物理地址。

C语言程序设计上机实验与习题指导

C语言程序设计上机实验与习题指导

内容简介
内容简介
本书为《C语言程序设计教程》的配套实验教材,共分为上机实验、习题参考答案、考试样卷以及附录等4个 部分。本书内容丰富、概念清晰、实用性强,可作为学习C语言程序设计课程的参考辅导书。本书既适合高等学校 师生或计算机培训学员使用,也可供报考计算机等级 (水平)考试者和其他自学者参考。
目录
目录
第1部分 C语言程序设计上机实验 实验1预备知识 实验2表达式与输入输出函数 实验3分支结构 实验4循环结构程序 实验5数组 实验6函数 实验7指针 实验8结构体与共用体 实验9文件与位运算 第2部分习题参考答案
谢谢观看
C语言程序设计上机实验与习题 指导
2019年安徽大学出版社出版的图书
2 内容简介 04 目录
基本信息
《C语言程序设计上机实验与习题指导》是2019年安徽大学出版社出版的图书,作者是孙家启、万家华。
推荐
推荐
由安徽大学出版社出版的《C语言程序设计上机实验与习题指导》一书为《C语言程序设计教程》的配套实验 教材。本书内容有上机实验、习题参考答案、考试样卷以及附录4个部分。
作者简介
作者简介
孙家启,安徽新华学院信息工程学院院长、教授,主要研究方向为计算机软件及计算机应用、互联技术。曾 任教育部全国高等学校计算机基础课程教学指导委员会委员、安徽省教育厅高等学校计算机水平考试专家委员会 副主任兼秘书长。发表学术论文20多篇,主编教材22种。
万家华,安徽新华学院信息工程学院副院长、副教授,主要研究方向为计算机软件及计算机应用。发表论文 10多篇,其中EI检索2篇;主编或参编教材11种,其中省级规划教材1种。

C语言程序设计学习指导与实践教程习题和实验解答(第2章)2

C语言程序设计学习指导与实践教程习题和实验解答(第2章)2

C语言程序设计学习指导与实践教程——第2章习题和实验解答2.1 C语言概述1.【习题解答】1结构化程序有三大基本结构:顺序、分支和循环.2..算法可以理解为有基本运算及规定的运算顺序所构成的完整的解题步骤。

或者看成按照要求设计好的有限的确切的计算序列,并且这样的步骤和序列可以解决一类问题。

有穷性:一个算法应包含有限的操作步骤而不能是无限的。

确定性:算法中每一个步骤应当是确定的,而不能应当是含糊的,有零个或多个输入输出,有一个或多个输出。

有效性:算法中每一个步骤应当能有效地执行,并得到确定的结果。

对于程序设计人员,必须会设计算法,并根据算法写出程序。

可以用自然语言、流程图、伪代码和计算机语言表示算法。

3.C语言的主要特点有:语言简洁、紧凑,使用方便、灵活。

ANSI C一共只有32个关键字;控制语句丰富,程序书写自由,主要用小写字母表示,压缩了一切不必要的成分;运算符丰富,共有34种;数据结构类型丰富;具有结构化的控制语句;语法限制不太严格,程序设计自由度大;C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。

因此有人把它称为中级语言;生成目标代码质量高,程序执行效率高;与汇编语言相比,用C语言写的程序可移植性好。

4.用传统流程图表达如下:5. 计算机硬件系统的组成:计算机硬件系统主要由运算器、控制器、存储器、输入设备和输出设备构成,运算器和控制器合称为中央处理器(CPU),输入设备和输出设备统称为外部设备。

6.计算机网络常用的传输介质:分为有线介质和无线介质;有线介质包括光纤、同轴电缆和双绞线;无线介质包括红外信号、微波等。

2.2 数据类型与表达式1.【习题解答】一、选择题1.D2.B3.A4.B5.A6.B7.D8.D9.C二、填空题1.整型、实型、字符型、枚举类型2.3.5000003.逗号运算符4.三,自右向左5.1,06.32767三、编程题1.已知球的半径为1.5cm,计算球的体积。

c面向对象程序设计习题解答与上机指导(第二版)源程序

c面向对象程序设计习题解答与上机指导(第二版)源程序

C++面向对象程序设计习题解答与上机指导(第2版)习题参考答案源代码使用源程序的几点注意事项(1) 由于源程序在复制、编辑、解压缩等过程中可能引起部分符号(主要是标点符号,如分号、冒号、逗号、引号)的字体、半全角等发生变化,在编译时可能被检出语法错误,只要使用“替换”功能,纠正后即能顺利运行。

(2) 有的C++系统(如Visual C++6.0)没有完全实现C++标准,它所提供的不带后缀的.h 的头文件不支持友元运算符重载函数,在Visual C++6.0中编译会出错,这时可采用带后缀的.h头文件。

将程序中的#include<iostream>using namespace std;修改成#include<iostream.h>即可顺利运行。

第2章 C++基础【2.2】下面是一个C程序,改写它,使它采用C++风格的I/O语句。

#include<stdio.h>int main(){ int a,b,d,min;printf("Enter two numbers:");scanf("%d%d",&a,&b);min=a>b? b:a;for (d=2; d<min; d++)if (((a%d)==0)&&((b%d)==0)) break;if (d==min){ printf("No common denominators\n");return 0;}printf("The lowest common denominator is %d\n",d);return 0;}【解】#include<iostream>using namespace std;int main(){ int a,b,d,min;cout<<"Enter two numbers:";cin>>a;cin>>b;min=a>b? b:a;for (d=2; d<min; d++)if (((a%d)==0)&&((b%d)==0)) break;if (d==min){ cout<<"No common denominators\n";return 0;}cout<<"The lowest common denominator is "<<endl<<d;return 0;}【2.24】写出下列程序的运行结果。

C语言程序设计》课后习题详细答案

C语言程序设计》课后习题详细答案
(2)在同一行上的/ * main function * /显然是注释;C语言规定:注释由/*开头,由*/结束,但在*号和/之间不得插入任何空格,而在此处“/ *”和“* /”之间存在空格,因此,/ * main function * /的写法是错误的,而应写成:/* main function */。
printf(″(1) a=%d,b=%d,c=%d\n″,a,b ,c);
t=c; c=b; b=a; a=t;
printf(″(2) a=%d,b=%d,c=%d\n″,a,b,c);
}
第四章选择结构习题分析与解答
一、选择题
4.1【参考答案】A)
4.2【参考答案】A)
4.3【参考答案】A)
4.4【参考答案】D)
(6)设计输出语句。输出a、b、c和ave。
(7)把以上内容放在主函数的一对花括号中。
(8)编写程序如下:
main()
{ double a,b,c,ave;
printf(″Enter a ,b ,c :″);
scanf(″%lf%lf%lf″, &a, &b, &c );
ave=(a+b+c)/3;
2.15【参考答案】[1]4.2[2]4.2
2.16【参考答案】[1]{[2]}[3]定义[4]执行
2.17【参考答案】[1]关键字[2]用户标识符
2.18【参考答案】[1]int[2]float[3]double
2.19【参考答案】float a1=1.0, a2=1.0;
或float a1=1, a2=1;(系统将自动把1转换为1.0)
3.27【参考答案】x=127, x=127 , x=$127 ,x=$000127, x=%06d

C++程序设计_上机实践与学习辅导_王庆宝_朱红版的答案

C++程序设计_上机实践与学习辅导_王庆宝_朱红版的答案

C++程序设计_上机实践与学习辅导_王庆宝_朱红版的答案实验一#includevoid main(void){int a, b, sum;cout<<"请输入加数与被加数\n";cin>>a>>b;sum=a+b;cout<<"sum="<<sum<<endl;< bdsfid="71" p=""></sum<<endl;<>}#includevoid main(){double f, c;cout<<"请输入华氏温度: ";cin>>f;c=5.0/9*(f-32);cout<<"摄氏温度="<<c<<endl;< bdsfid="82" p=""></c<<endl;<>}#includevoid main(){double r,s;cout<<"请输入圆的半径: ";cin>>r;s=3.14159*r*r;cout<<"圆的面积是: s="<<s<<endl;< bdsfid="93"p=""></s<<endl;<>}#include#includevoid main(){double a,b,c,s,area;cout<<"请输入三角形的三边: ";cin>>a>>b>>c;s=a+b+c;s=s/2;area=sqrt(s*(s-a)*(s-b)*(s-c));cout<<area<<endl;< bdsfid="108" p=""></area<<endl;<> }实验二#includevoid main(void){ float a,b,c;//定义变量,存放三角形的三边数据cout<<"input a b c\n"; //输入提示信息cin>>a>>b>>c; //从键盘依次输入三边的值if((a+b<c)||(a+c<b)||(b+c<=""></c)||(a+c<b)||(b+ccout<<"Not Triangle\n"; //不满足三角形三边条件, 输出否定信息elsecout<<"Triangle\n"; //满足三边构成条件,输出确认信息}#includevoid main(void){ int year; //定义变量,存放将输入的年份cout<<"Input year: "; //输出提示信息cin>>year; //输入欲判断的年份if(year%400==0||year%4==0&&year%100!=0) //判断该年份是否为闰年的条件cout<<year<<" a="" bdsfid="129" is="" leap="" p="" year"<<=""></year<<">elsecout<<year<<" a="" bdsfid="132" isn't="" leap="" p="" year"<<=""></year<<">}#includevoid main(){float a1, a2;//定义两个操作数char oper; //定义运算符float result; //定义变量,存放结果int flag=0; //?cout<<"请输入简单的运算式:\n"; //输出提示信息cin>>a1>>oper>>a2; //从键盘键入运算式,如5+3 4.5*7等switch(oper)//利用开关语句结构判断进行何种运算{case '+': //加法result=a1+a2;break;case '-': //减法result=a1-a2;break;case '*':result=a1*a2;break;default:cout<<"输入错误的运算符!\n";flag=1;if(flag==0)cout<<a1<<oper<<a2<<"="<<result<<=""></a1<<oper <<a2<<"="<<result<#include#includevoid main(){double a,b,c;double x1,x2,disc;cout<<"请输入方程的系数a b c :";cin>>a>>b>>c;disc=b*b-4*a*c;if(fabs(disc)<1e-5){x1=(-b)/2/a;cout<<"方程有两个相等的实根: x="<<x1<<endl;< bdsfid="179" p=""></x1<<endl;<>}else if(disc<0)cout<<"方程无实根!\n";else{x1=(-b+sqrt(disc))/2/a;x2=(-b-sqrt(disc))/2/a;cout<<"方程有两个不同的实根: "<<endl;< bdsfid="188" p=""></endl;<>cout<<"x1="<<x1<<"\t"<<"x2="<<x2<<endl;<bdsfid="190" p=""></x1<<"\t"<<"x2="<<x2<<endl;<> }\\#includevoid main(){float a1, a2;//定义两个操作数char oper; //定义运算符float result; //定义变量,存放结果int flag=0; //?cout<<"请输入简单的运算式:\n"; //输出提示信息cin>>a1>>oper>>a2; //从键盘键入运算式,如5+3 4.5*7等switch(oper)//利用开关语句结构判断进行何种运算{case '+': //加法result=a1+a2;break;case '-': //减法result=a1-a2;break;case '*':result=a1*a2;break;case '/':if(a2==0){cout<<"除数不能为0!\n";flag=1;break;}result=a1/a2;break;default:cout<<"输入错误的运算符!\n";flag=1;}if(flag==0)cout<<a1<<oper<<a2<<"="<<result<<=""></a1<<oper <<a2<<"="<<result<}实验三#includevoid main(){int x,y;//定义变量,x代表鸡的数目,y代表兔子的数目for( x=1;x<30;x++) //鸡的数目从1~30皆有可能,所以程序将所有可能的解循环验证一遍for(y=1;y<30;y++) //同样兔子的数目从1~30皆有可能,所以程序将所有可能的解循环验证一遍if(2*x+4*y==90&&x+y==30) //所有可能的解中将满足给定条件的解输出{cout<<"鸡有: "<<x<<'\t'<<"兔有: "<<y<<endl;<="" bdsfid="245" p=""></x<<'\t'<<"兔有:>}}#includevoid main(){ int a, a1, a2;//定义变量,a代表个位,a1代表十位,a2代表百位int b; //b为由a2, a1, a所组成的百位数for( a2=1;a2<=9;a2++) //百位的位值从1~9皆有可能,所以程序将所有可能的解循环验证一遍for(a1=0;a1<=9;a1++) //同样十位的位值从0~9皆有可能,所以程序将所有可能的解循环验证一遍for(a=0;a<=9;a++){ b=a2*100+a1*10+a;if(a*a*a+a1*a1*a1+a2*a2*a2==b) //所有可能的解中将满足给定条件的解输出cout<<b<<endl;< bdsfid="259" p=""></b<<endl;<>}}#includevoid main(void){int a0, a1,a2; //定义变量,a0代表个位,a1代表十位,a2代表百位int b; //b为由a2, a1, a0所组成的百位数for(b=100;b<=999;b++) //将数字b从100到999循环, 并将每个数拆开,看看是否符合水仙花数的条件{a2=b/100; //剥出数字b的百位数a1=b/10%10; //剥出数字b的十位数a0=b%10; //剥出数字b的个位数if(a0*a0*a0+a1*a1*a1+a2*a2*a2==b) //判断是否满足水仙花数的条件cout<<b<<'\t'; bdsfid="275" p="" 满足条件,="" 输出这个数<=""></b<<'\t';>}cout<<endl;< bdsfid="278" p=""></endl;<>}#includevoid main(void)int man, woman, children;//定义变量,存放结果(男人、女人、小孩的个数)for(man=1;man<=9;man++) //男人从1人到9人循环,每种情况下计算满足条件的女人和小孩的人数for(woman=1;woman<=18;woman++) //在男人人数确定的情况下,女人从1人到18人循环, 每种情况下计算满足条件的小孩人数{children=36-man-woman;//男人女人人数确定后, 小孩的人数就可以根据条件求出if((man+woman+children==man*4+woman*2+children/2) &&(children%2==0)) //看看每种条件下男人、女人、小孩的人数及搬的砖是否满足给定的条件, 因为小孩是每两人//搬一块砖, 所以小孩人数必须是偶数cout<<"man="<<man<<'\t'<<"woman="<<woman<<'\t' <<"children="<<children<<endl;< bdsfid="291" p=""></man<<'\t'<<"woman="<<woman<<'\t'<<"children=" <<children<<endl;<>//输出满足if条件的结果,即男人、女人、小孩的人数}}#includevoid main(void){int i,j,k,n,t=0; //定义n为从1到599循环的数字, i,j,k分别为n 的百位、十位、个位数字//t为控制输出格式的计数变量for(n=1;n<=599;n++) //使n从1到599循环, 将满足条件的n 摘出来{i=n/100; //剥出n的百位数j=n/10%10;//剥出n的十位数k=n%10; //剥出n的个位数if(n%3==0&&(i==5||j==5||k==5)) //当数字n满足给定的条件是{cout<<n<<'\t'; bdsfid="308" p="" 输出n的值<=""></n<<'\t';>t++;if(t%5==0) //控制输出格式, 每5个为一行, 即输出5个数后输出回车cout<<'\n';}}cout<<endl;< bdsfid="315" p=""></endl;<>}#includevoid main(void)int a0, a1,a2; //定义变量,a0代表个位,a1代表十位,a2代表百位int b; //b为由a2, a1, a0所组成的百位数for(b=100;b<=999;b++) //将数字b从100到999循环, 并将每个数拆开,看看是否符合水仙花数的条件{a2=b/100; //剥出数字b的百位数a1=b/10%10; //剥出数字b的十位数a0=b%10; //剥出数字b的个位数if(a0*a0*a0+a1*a1*a1+a2*a2*a2==b) //判断是否满足水仙花数的条件cout<<b<<'\t'; bdsfid="329" p="" 满足条件,="" 输出这个数<=""></b<<'\t';>}cout<<endl;< bdsfid="332" p=""></endl;<>}实验四#includevoid main(void){int a,b;int t, x;cout<<"请输入两个正整数: ";cin>>a>>b;x=a*b;if(a<b)< bdsfid="345" p=""></b)<>{ t=a; a=b; b=t;}while(t=a%b){a=b;b=t;}cout<<"最大公约数: "<<b<<endl;< bdsfid="353" p=""></b<<endl;<>cout<<"最小公倍数: "<<<endl;<="" bdsfid="355" p="">}#includevoid main(void){ int a,b,c; //定义存放输入的三个整数的变量空间cout<<"Input three number: "; //提示信息cin>>a>>b>>c; //从键盘输入三个整数for(int i=a;i>=1;i--)//假设最大公约数为i, 使i从a(或b或c)到1逐次递减循环if(a%i==0&&b%i==0&&c%i==0) //当i满足公约数的条件时(同时能被a,b,c整除)时,退出循环, 即这时的i即为最大公约数break;cout<<i<<=""></i<}#includevoid main(void){int a;cout<<"请输入一个正整数: ";cin>>a;for(int i=2;iif(a%i==0)break;if(i>=a/2)cout<<a<<"是素数\n";< bdsfid="386" p=""></a<<"是素数\n";<>elsecout<<a<<"不是素数\n";< bdsfid="391" p=""></a<<"不是素数\n";<>}#includevoid main(void){int a,b,c;cout<<"请输入三个整数: ";cin>>a>>b>>c;for(int i=a;i<=a*b*c;i++)if(i%a==0&&i%b==0&&i%c==0)break;cout<<"最小公倍数为: "<<i<<endl;< bdsfid="415" p=""></i<<endl;<>}#includevoid main(void){for(int i=100;i<=200;i++) //将i从100到200依次循环,以求出所有满足素数条件的i {for(int j=2;j看是否有余数if(i%j==0) //若i能被上述其中一个数整除, 即表示i不是素数, 后面的数就不必除了, 直接退出循环break;if(j>=i/2) //出了循环后, 要判断i是中途退出的(不是素数)还是循环到i/2后再退出的(是素数)cout<<i<<" ";="" 2,="" bdsfid="445" p="" 即表明i是循环完退出的,是素数,="" 如果除数大于等于i="" 输出结果<=""></i<<"> }}#includevoid main(void){int a;int s;for(int i=1;i<1000;i++){a=i;s=0;for(int j=1;j<i;j++)< bdsfid="483" p=""></i;j++)<>{if(a%j==0)s=s+j;}if(a==s)cout<<a<<endl;< bdsfid="502" p=""></a<<endl;<>}}实验五#includevoid main(void){int t=2;int s=0;for(int i=1;i<=7;i++){s=s+t;t=t*10+2;}cout<<"2+22+222+...+2222222="<<s<<endl;<bdsfid="546" p=""></s<<endl;<>}#includevoid main(void){ float y=1,t=1; //t为通项,初值为1, 即1!,y为结果, 初值为1 int n;cout<<"Input n: "; //输出提示信息cin>>n; //输入欲求的项数for(int i=2;i<=n;i++){ t=t*i; //根据前一项求后一项y=y+t; //通项累加和}cout<<"1!+2!+3!+....+"<<n<<"!="<<y<<=""></n<<"!="< <y<#include#includevoid main(void){float x, y1,y2;cout<<"请输入x的值: ";cin>>x;y2=x;do{y1=y2;y2=2*y1/3+x/y1/y1/3;}while(fabs(y1-y2)>1e-5);cout<<"y="<<y2<<endl;< bdsfid="626" p=""></y2<<endl;<>}#includevoid main(void){float x,y,t; //t为通项,x为未知数int n; //n为通项个数,必须是整数cout<<"Input n x: ";//输出提示信息cin>>n>>x; //从键盘输入数据10 2.5y=x; //结果的初始值,因为循环从第2项开始,所以第1项要先赋给结果yt=x; //通项的初始值for(int i=2;i<=n;i++) //假设第1项已求出(初始值),从第2项开始计算{t=-t*x*x/((2*i-1)*(2*i-2)); //首先计算通项, 计算方法是用前1项的值推算后1项的值//即求出前后两项相除的结果, 这个结果是它们相差的倍数, 然后前1项的值乘以这个倍数即为后1项的值y=y+t; //将当前的通项值累加起来}cout<<"y="<<y<<=""></y<}实验六#includefloat fun(float x) //函数fun求形参x的函数值, 并将结果返回{float y; //定义x的函数值y=2*x*x+3*x+5; //计算函数值return y; //将结果返回}void main(void){float y1, y2; //定义x为1和1.2时的函数值y1=fun(1.0); //将1.0作为实参调用fun函数,即赋给形参x,函数值即为所求的结果y2=fun(1.2); //将1.2作为实参调用fun函数,即赋给形参x,函数值即为所求的结果cout<<"y1="<<y1<<endl;< bdsfid="720" p=""></y1<<endl;<>cout<<"y2="<<y2<<endl;< bdsfid="724" p=""></y2<<endl;<>}#include#includefloat f(float x) //求形参x的多项式的值{return x*x+3*x-4;}float f1(float x) //求形参x的多项式的导数值{return 2*x+3;}void main(void){float x1,x0; //定义存放新旧迭代值的变量x1=0; //迭代变量赋初值do{x0=x1; //迭代循环, 将新的迭代值变成旧的迭代值, 再去求新的迭代值x1=x0-f(x0)/f1(x0); //用旧的迭代值求新的迭代值}while(fabs(x1-x0)>1e-5); //不满足结束条件, 一直迭代循环cout<<"x="<<x1<<=""></x1<}#include#includefloat f(float x) //根据形参x求函数f(x)=x*x+3*x-4的值{ return x*x+3*x-4;}void main(void){float x1,x2,x0;do //判断输入的初值是否满足要求{ cout<<"请输入初值x1和x2: ";cin>>x1>>x2; //输入初值}while((f(x1)*f(x2))>0); //当解不在初值范围之内时,重新循环输入初值do{ x0=(x1+x2)/2; //根据初值求方程的新的根x0if(f(x0)*f(x1)>0) //实际的根在x2和x0之间x1=x0; //将x0作为新的x1else //实际的根在x1和x0之间x2=x0; //将x0作为新的x2}while(fabs(f(x0))>1e-5); //判断x0是否是满足方程的解的精度cout<<"x0="<<x0<<=""></x0<}#include#includefloat f(float x) //根据形参x求函数f(x)=x*x+3*x-4的值{ return x*x+3*x-4;}void main(void){float x1,x2,x0;do //判断输入的初值是否满足要求{ cout<<"请输入初值x1和x2: ";cin>>x1>>x2; //输入初值}while((f(x1)*f(x2))>0); //当解不在初值范围之内时,重新循环输入初值do{ x0=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1)); //根据初值求方程的新的根x0 if(f(x0)*f(x1)>0) //实际的根在x2和x0之间x1=x0; //将x0作为新的x1else //实际的根在x1和x0之间x2=x0; //将x0作为新的x2}while(fabs(f(x0))>1e-5); //判断x0是否是满足方程的解的精度cout<<"x0="<<x0<<=""></x0<}#include#includefloat f(float x) //求形参x的多项式的值{return x*x+3*x-4;}float f1(float x) //求形参x的多项式的导数值{return 2*x+3;}float ff(float x){float y;if(fabs(f(x))<1e-5)y=x;elsey=ff(x-f(x)/f1(x));return y;}void main(void){float x1; //定义存放新旧迭代值的变量x1=0; //迭代变量赋初值cout<<"x="<<ff(x1)<<=""></ff(x1)<}试验七//B14: 设计一个程序,求出100~200之间的所有素数#include//函数功能:判断x是否为素数,若是素数,函数返回值为1,否则,函数返回值为0int prime(int x){for(int i=2;i<="" bdsfid="1020" p="">if(x%i==0) //x能被2~x/2整除,说明x不是素数return 0;return 1; //执行完循环,x为素数,返回1}void main(void){for(int i=100;i<=200;i++) //将i从100到200依次循环,以求出所有满足素数条件的i {if(prime(i)==1) //利用函数判断循环变量i是否为素数cout<<i<<'\t'; bdsfid="1048" p="" 若为素数,输出这个数<=""></i<<'\t';>}}// 输入一个整数n(2≤n≤10000),输出它的所有的素数因子。

程序设计实验及在线指导课后习题答案

程序设计实验及在线指导课后习题答案

第二章/*一:求平均年龄描述班上有学生若干名,给出每名学生的年龄(整数),求班上所有学生的平均年龄,保留到小数点后两位。

输入第一行有一个整数n(1<= n <= 100),表示学生的人数。

其后n行每行有1个整数,取值为15到25。

输出输出一行,该行包含一个浮点数,为要求的平均年龄,保留到小数点后两位。

样例输入21817样例输出17.50提示要输出浮点数、双精度数小数点后2位数字,可以用下面这种形式:printf("%.2f", num);#include<stdio.h>int main(){int n,i,age;double sum,average;sum=0.00;scanf("%d",&n);for(i=1;i<=n;i++){scanf("%d",&age);sum+=age;}average=sum/n;printf("%.2f\n",average);}/*二:数字求和描述给定一个正整数a,以及另外的5个正整数,问题是:这5个整数中,小于a的整数的和是多少?输入输入一行,只包括6个小于100的正整数,其中第一个正整数就是a。

输出输出一行,给出一个正整数,是5个数中小于a的数的和。

样例输入10 1 2 3 4 11样例输出10#include<stdio.h>int main(){int a,i,s[5];int sum;sum=0;scanf("%d",&a);for(i=0;i<5;i++){scanf("%d",&s[i]);}for(i=0;i<5;i++){if(s[i]<a)sum+=s[i];}printf("%d\n",sum);}/*三:两倍:描述给定2到15个不同的正整数,你的任务是计算这些数里面有多少个数对满足:数对中一个数是另一个数的两倍。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一#include<iostream.h>void main(void){int a, b, sum;cout<<"请输入加数与被加数\n";cin>>a>>b;sum=a+b;cout<<"sum="<<sum<<endl;}#include<iostream.h>void main(){double f, c;cout<<"请输入华氏温度: ";cin>>f;c=5.0/9*(f-32);cout<<"摄氏温度="<<c<<endl;}#include<iostream.h>void main(){double r,s;cout<<"请输入圆的半径: ";cin>>r;s=3.14159*r*r;cout<<"圆的面积是: s="<<s<<endl; }#include<iostream.h>#include<math.h>void main(){double a,b,c,s,area;cout<<"请输入三角形的三边: ";cin>>a>>b>>c;s=a+b+c;s=s/2;area=sqrt(s*(s-a)*(s-b)*(s-c));cout<<area<<endl;}实验二#include<iostream.h>void main(void){ float a,b,c;//定义变量,存放三角形的三边数据cout<<"input a b c\n"; //输入提示信息cin>>a>>b>>c; //从键盘依次输入三边的值if((a+b<c)||(a+c<b)||(b+c<a)) //判断这三边是否能构成三角形cout<<"Not Triangle\n"; //不满足三角形三边条件, 输出否定信息elsecout<<"Triangle\n"; //满足三边构成条件,输出确认信息}#include<iostream.h>void main(void){ int year; //定义变量,存放将输入的年份cout<<"Input year: "; //输出提示信息cin>>year; //输入欲判断的年份if(year%400==0||year%4==0&&year%100!=0) //判断该年份是否为闰年的条件cout<<year<<" is a leap year"<<endl; //条件为真, 说明输入的年份为闰年, 输出确认信息elsecout<<year<<" isn't a leap year"<<endl; //否则, 输出否定信息}#include<iostream.h>void main(){float a1, a2;//定义两个操作数char oper; //定义运算符float result; //定义变量,存放结果int flag=0; //?cout<<"请输入简单的运算式:\n"; //输出提示信息cin>>a1>>oper>>a2; //从键盘键入运算式,如5+3<CR> 4.5*7<CR>等switch(oper)//利用开关语句结构判断进行何种运算{case '+': //加法result=a1+a2;break;case '-': //减法result=a1-a2;break;case '*':result=a1*a2;break;default:cout<<"输入错误的运算符!\n";flag=1;}if(flag==0)cout<<a1<<oper<<a2<<"="<<result<<endl; //输出结果}#include<iostream.h>#include<math.h>void main(){double a,b,c;double x1,x2,disc;cout<<"请输入方程的系数a b c :";cin>>a>>b>>c;disc=b*b-4*a*c;if(fabs(disc)<1e-5){x1=(-b)/2/a;cout<<"方程有两个相等的实根: x="<<x1<<endl;}else if(disc<0)cout<<"方程无实根!\n";else{x1=(-b+sqrt(disc))/2/a;x2=(-b-sqrt(disc))/2/a;cout<<"方程有两个不同的实根: "<<endl;cout<<"x1="<<x1<<"\t"<<"x2="<<x2<<endl;}}\\#include<iostream.h>void main(){float a1, a2;//定义两个操作数char oper; //定义运算符float result; //定义变量,存放结果int flag=0; //?cout<<"请输入简单的运算式:\n"; //输出提示信息cin>>a1>>oper>>a2; //从键盘键入运算式,如5+3<CR> 4.5*7<CR>等switch(oper)//利用开关语句结构判断进行何种运算{case '+': //加法result=a1+a2;break;case '-': //减法result=a1-a2;break;case '*':result=a1*a2;break;case '/':if(a2==0){cout<<"除数不能为0!\n";flag=1;break;}result=a1/a2;break;default:cout<<"输入错误的运算符!\n";flag=1;}if(flag==0)cout<<a1<<oper<<a2<<"="<<result<<endl; //输出结果}实验三#include<iostream.h>void main(){int x,y;//定义变量,x代表鸡的数目,y代表兔子的数目for( x=1;x<30;x++) //鸡的数目从1~30皆有可能,所以程序将所有可能的解循环验证一遍for(y=1;y<30;y++) //同样兔子的数目从1~30皆有可能,所以程序将所有可能的解循环验证一遍if(2*x+4*y==90&&x+y==30) //所有可能的解中将满足给定条件的解输出{cout<<"鸡有: "<<x<<'\t'<<"兔有: "<<y<<endl;}}#include<iostream.h>void main(){ int a, a1, a2;//定义变量,a代表个位,a1代表十位,a2代表百位int b; //b为由a2, a1, a所组成的百位数for( a2=1;a2<=9;a2++) //百位的位值从1~9皆有可能,所以程序将所有可能的解循环验证一遍for(a1=0;a1<=9;a1++) //同样十位的位值从0~9皆有可能,所以程序将所有可能的解循环验证一遍for(a=0;a<=9;a++){ b=a2*100+a1*10+a;if(a*a*a+a1*a1*a1+a2*a2*a2==b) //所有可能的解中将满足给定条件的解输出cout<<b<<endl;}}#include<iostream.h>void main(void){int a0, a1,a2; //定义变量,a0代表个位,a1代表十位,a2代表百位int b; //b为由a2, a1, a0所组成的百位数for(b=100;b<=999;b++) //将数字b从100到999循环, 并将每个数拆开,看看是否符合水仙花数的条件{a2=b/100; //剥出数字b的百位数a1=b/10%10; //剥出数字b的十位数a0=b%10; //剥出数字b的个位数if(a0*a0*a0+a1*a1*a1+a2*a2*a2==b) //判断是否满足水仙花数的条件cout<<b<<'\t'; //满足条件, 输出这个数}cout<<endl;}#include<iostream.h>void main(void){int man, woman, children;//定义变量,存放结果(男人、女人、小孩的个数)for(man=1;man<=9;man++) //男人从1人到9人循环,每种情况下计算满足条件的女人和小孩的人数for(woman=1;woman<=18;woman++) //在男人人数确定的情况下,女人从1人到18人循环, 每种情况下计算满足条件的小孩人数{children=36-man-woman;//男人女人人数确定后, 小孩的人数就可以根据条件求出if((man+woman+children==man*4+woman*2+children/2)&&(children%2== 0))//看看每种条件下男人、女人、小孩的人数及搬的砖是否满足给定的条件, 因为小孩是每两人//搬一块砖, 所以小孩人数必须是偶数cout<<"man="<<man<<'\t'<<"woman="<<woman<<'\t'<<"children="<<c hildren<<endl;//输出满足if条件的结果,即男人、女人、小孩的人数}}#include<iostream.h>void main(void){int i,j,k,n,t=0; //定义n为从1到599循环的数字, i,j,k分别为n的百位、十位、个位数字//t为控制输出格式的计数变量for(n=1;n<=599;n++) //使n从1到599循环, 将满足条件的n摘出来{i=n/100; //剥出n的百位数j=n/10%10;//剥出n的十位数k=n%10; //剥出n的个位数if(n%3==0&&(i==5||j==5||k==5)) //当数字n满足给定的条件是{cout<<n<<'\t'; //输出n的值t++;if(t%5==0) //控制输出格式, 每5个为一行, 即输出5个数后输出回车cout<<'\n';}}cout<<endl;}#include<iostream.h>void main(void){int a0, a1,a2; //定义变量,a0代表个位,a1代表十位,a2代表百位int b; //b为由a2, a1, a0所组成的百位数for(b=100;b<=999;b++) //将数字b从100到999循环, 并将每个数拆开,看看是否符合水仙花数的条件{a2=b/100; //剥出数字b的百位数a1=b/10%10; //剥出数字b的十位数a0=b%10; //剥出数字b的个位数if(a0*a0*a0+a1*a1*a1+a2*a2*a2==b) //判断是否满足水仙花数的条件cout<<b<<'\t'; //满足条件, 输出这个数}cout<<endl;}实验四#include<iostream.h>void main(void){int a,b;int t, x;cout<<"请输入两个正整数: ";cin>>a>>b;x=a*b;if(a<b){ t=a; a=b; b=t;}while(t=a%b){a=b;b=t;}cout<<"最大公约数: "<<b<<endl;cout<<"最小公倍数: "<<x/b<<endl;}#include<iostream.h>void main(void){ int a,b,c; //定义存放输入的三个整数的变量空间cout<<"Input three number: "; //提示信息cin>>a>>b>>c; //从键盘输入三个整数for(int i=a;i>=1;i--)//假设最大公约数为i, 使i从a(或b或c)到1逐次递减循环if(a%i==0&&b%i==0&&c%i==0) //当i满足公约数的条件时(同时能被a,b,c 整除)时, 退出循环, 即这时的i即为最大公约数break;cout<<i<<endl;//输出结果}#include<iostream.h>void main(void){int a;cout<<"请输入一个正整数: ";cin>>a;for(int i=2;i<a/2;i++)if(a%i==0)break;if(i>=a/2)cout<<a<<"是素数\n";elsecout<<a<<"不是素数\n";}#include<iostream.h>void main(void){int a,b,c;cout<<"请输入三个整数: ";cin>>a>>b>>c;for(int i=a;i<=a*b*c;i++)if(i%a==0&&i%b==0&&i%c==0)break;cout<<"最小公倍数为: "<<i<<endl;}#include<iostream.h>void main(void){for(int i=100;i<=200;i++) //将i从100到200依次循环,以求出所有满足素数条件的i{for(int j=2;j<i/2;j++) //对每一个i,判断i是否为素数, 即让i依次被2,3,..., i/2除,看看是否有余数if(i%j==0) //若i能被上述其中一个数整除, 即表示i不是素数, 后面的数就不必除了, 直接退出循环break;if(j>=i/2) //出了循环后, 要判断i是中途退出的(不是素数)还是循环到i/2后再退出的(是素数)cout<<i<<" "; //如果除数大于等于i/2, 即表明i是循环完退出的,是素数, 输出结果}}#include<iostream.h>void main(void){int a;int s;for(int i=1;i<1000;i++){a=i;s=0;for(int j=1;j<i;j++){if(a%j==0)s=s+j;}if(a==s)cout<<a<<endl;}}实验五#include<iostream.h>void main(void){int t=2;int s=0;for(int i=1;i<=7;i++){s=s+t;t=t*10+2;}cout<<"2+22+222+...+2222222="<<s<<endl;}#include<iostream.h>void main(void){ float y=1,t=1; //t为通项,初值为1, 即1!,y为结果, 初值为1 int n;cout<<"Input n: "; //输出提示信息cin>>n; //输入欲求的项数for(int i=2;i<=n;i++){ t=t*i; //根据前一项求后一项y=y+t; //通项累加和}cout<<"1!+2!+3!+....+"<<n<<"!="<<y<<endl; //输出结果}#include<iostream.h>#include<math.h>void main(void){float x, y1,y2;cout<<"请输入x的值: ";cin>>x;y2=x;do{y1=y2;y2=2*y1/3+x/y1/y1/3;}while(fabs(y1-y2)>1e-5);cout<<"y="<<y2<<endl;}#include<iostream.h>void main(void){float x,y,t; //t为通项,x为未知数int n; //n为通项个数,必须是整数cout<<"Input n x: ";//输出提示信息cin>>n>>x; //从键盘输入数据10 2.5y=x; //结果的初始值,因为循环从第2项开始,所以第1项要先赋给结果yt=x; //通项的初始值for(int i=2;i<=n;i++) //假设第1项已求出(初始值),从第2项开始计算{t=-t*x*x/((2*i-1)*(2*i-2)); //首先计算通项, 计算方法是用前1项的值推算后1项的值//即求出前后两项相除的结果, 这个结果是它们相差的倍数, 然后前1项的值乘以这个倍数即为后1项的值y=y+t; //将当前的通项值累加起来}cout<<"y="<<y<<endl; //输出结果}实验六#include<iostream.h>float fun(float x) //函数fun求形参x的函数值, 并将结果返回{float y; //定义x的函数值y=2*x*x+3*x+5; //计算函数值return y; //将结果返回}void main(void){float y1, y2; //定义x为1和1.2时的函数值y1=fun(1.0); //将1.0作为实参调用fun函数,即赋给形参x,函数值即为所求的结果y2=fun(1.2); //将1.2作为实参调用fun函数,即赋给形参x,函数值即为所求的结果cout<<"y1="<<y1<<endl;cout<<"y2="<<y2<<endl;}#include<iostream.h>#include<math.h>float f(float x) //求形参x的多项式的值{return x*x+3*x-4;}float f1(float x) //求形参x的多项式的导数值{return 2*x+3;}void main(void){float x1,x0; //定义存放新旧迭代值的变量x1=0; //迭代变量赋初值do{x0=x1; //迭代循环, 将新的迭代值变成旧的迭代值, 再去求新的迭代值x1=x0-f(x0)/f1(x0); //用旧的迭代值求新的迭代值}while(fabs(x1-x0)>1e-5); //不满足结束条件, 一直迭代循环cout<<"x="<<x1<<endl; //输出结果}#include<iostream.h>#include<math.h>float f(float x) //根据形参x求函数f(x)=x*x+3*x-4的值{ return x*x+3*x-4;}void main(void){float x1,x2,x0;do //判断输入的初值是否满足要求{ cout<<"请输入初值x1和x2: ";cin>>x1>>x2; //输入初值}while((f(x1)*f(x2))>0); //当解不在初值范围之内时,重新循环输入初值do{ x0=(x1+x2)/2; //根据初值求方程的新的根x0if(f(x0)*f(x1)>0) //实际的根在x2和x0之间x1=x0; //将x0作为新的x1else //实际的根在x1和x0之间x2=x0; //将x0作为新的x2}while(fabs(f(x0))>1e-5); //判断x0是否是满足方程的解的精度cout<<"x0="<<x0<<endl; //输出x0}#include<iostream.h>#include<math.h>float f(float x) //根据形参x求函数f(x)=x*x+3*x-4的值{ return x*x+3*x-4;}void main(void){float x1,x2,x0;do //判断输入的初值是否满足要求{ cout<<"请输入初值x1和x2: ";cin>>x1>>x2; //输入初值}while((f(x1)*f(x2))>0); //当解不在初值范围之内时,重新循环输入初值do{ x0=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1)); //根据初值求方程的新的根x0 if(f(x0)*f(x1)>0) //实际的根在x2和x0之间x1=x0; //将x0作为新的x1else //实际的根在x1和x0之间x2=x0; //将x0作为新的x2}while(fabs(f(x0))>1e-5); //判断x0是否是满足方程的解的精度cout<<"x0="<<x0<<endl; //输出x0#include<iostream.h>#include<math.h>float f(float x) //求形参x的多项式的值{return x*x+3*x-4;}float f1(float x) //求形参x的多项式的导数值{return 2*x+3;}float ff(float x){float y;if(fabs(f(x))<1e-5)y=x;elsey=ff(x-f(x)/f1(x));return y;}void main(void){float x1; //定义存放新旧迭代值的变量x1=0; //迭代变量赋初值cout<<"x="<<ff(x1)<<endl; //输出结果}试验七//B14: 设计一个程序,求出100~200之间的所有素数#include<iostream.h>//函数功能:判断x是否为素数,若是素数,函数返回值为1,否则,函数返回值为0int prime(int x){for(int i=2;i<x/2;i++)if(x%i==0) //x能被2~x/2整除,说明x不是素数return 0;return 1; //执行完循环,x为素数,返回1}void main(void){for(int i=100;i<=200;i++) //将i从100到200依次循环,以求出所有满足素数条件的i{if(prime(i)==1) //利用函数判断循环变量i是否为素数cout<<i<<'\t'; //若为素数,输出这个数}}// 输入一个整数n(2≤n≤10000),输出它的所有的素数因子。

相关文档
最新文档