当前位置:文档之家› C++程序设计课后习题答案

C++程序设计课后习题答案

C++程序设计课后习题答案
C++程序设计课后习题答案

第1章 C++语言简介

一、简答题

1. 请介绍C++语言的发展过程

C++语言源于C语言,1972年,AT&T公司设计了C语言并得到广泛应用。为了使得C语言能够支持面向对象技术,在20世纪80年代,Bell实验室设计了一门新的语言C++。1985年起,C++语言开始进入商业应用阶段,并由此进入了高速发展时期,各种面向对象程序设计思想与技术逐步融入到C++语言之中。在C++语言标准中,先后提供了对虚函数、重载、继承、模板和命名空间技术的支持。现在的C++语言已经是一门完全独立的语言,而不再是对C语言的简单扩充。

2.试比较C++语言与Java语言的优缺点。

(1)安全性。用Java语言编写的程序,其安全性要高于用C++语言编写的程序。Java语言对语法做了更多的限制,添加了更多的数据检测内容,从而减少了程序出错的概率。更重要的是,Java语句取消了指针数据类型,并且添加了内存自动回收功能,从而避免了系统内容出错的情况。而这一切都是C++程序设计中极其容易出现错误的地方。

(2)效率。虽然C++程序的安全性相对低于Java程序,但是,C++程序的运行效率确是Java程序难以企及的。一方面,Java程序需要Java虚拟机对中间代码进行解释执行,而C++程序则是一次编译后可以立即执行;另一方面,在C++程序中,指针数据类型的使用可

以大幅度提高程序运行效率和程序的灵活性,而这都是Java程序所不具备的。

二、程序设计题

创建一个简单C++程序,在屏幕上显示This is a C++ program。【步骤】

用户利用VC6.0开发工具,创建一个空的Win32控制台项目,在项目中添加一个空的cpp文件,添加如下代码。

#include

using namespace std;

int main(int argc, char** argv)

{

cout << "This is a C++ program." << endl;

system("PAUSE");

return 0;

}

第2章数据描述与基本运算

简答题

1. 请指出下面标识符中,哪些是合法的变量名称。

abc, _3x, _b为合法变量名称,其他为非法。

2.请指出下面哪些是合法的常量取值。

23,3e-5,'\n',12.56E,"abc"为合法常量取值。

3. 请给出下面表达式的取值。

(1)-3 + 4 * 5 – 6 =11

(2)-3 + 4 % 5 – 6 =-5

(3)-3 * 4 % -6 / 5 =0

(4)(7 + 6)% 5 / 2 =1

4.请完成下列表达式。

(1)sin30°- tan20°:sin(30 * 3.14 / 180) – tan(20 * 3.14 / 180)

(2)232- :pow(232, -sqrt( a *a + b * b))

5.求表达式值。

(1)1 < 4 && 4 > 10 = 0;

(2)! (5 >= 15) || (2 < 4 - 3) = true;

第3章 C++语句

一、简答题

1.答:语句是程序设计语言中的最小可执行单位,是构成程序的基础。语句由表达式构成,与表达式相比较,语句需要有分号表示语句结束。

2.答:C++语言与C语言有显著不同,首先,在语法格式上,C++除了兼容C语言语法外,还增加了很多新的表达方式,更重要的是,C++语言支持面向对象程序设计,涵盖了继承、封装与多态等重要内容,这是C语言中所不具备的。

3. (需要在程序中加入cmath头函数:#include

(1)pow(1 + x * y , 6)

(2)a * sin(x + 5) * sin(x + 5) + b * cos(6 * y - c);

(3)4 * y * (1 - pow(x, y))

(4)(4 / y) / ((5 *x) / (7 * y) - 6 / (5 * z - 8 * x))

4.Continue与break都表示终止执行当前循环过程,continue语句要求重新回到循环开始处,重新判断循环条件,决定是否执行循环体;而break则要求退出循环,执行循环体后的语句。

5.typedef struct _tmp

{

int age;

char sex;

}TMP;

TMP tmpInf[10];

二、程序设计题

1.参考代码

#include

#include

using namespace std;

int main(int argc, char** argv)

{

double y = 0.0;

int x = 0;

cout << "Please input x:";

cin >> x;

if (x < -1)

y = -x + 9;

else if (x < 0)

y = 2 * x + 4.5;

else if (x < 1)

y = x * x + 4 * x - 7;

else

y = 3 * sin(x) + 12;

cout << "y = " << y << endl; }

2.参考代码

#include

#include

using namespace std;

int main(int argc, char** argv) {

double a = 0.0;

double b = 0.0;

double c = 0.0;

double x = 0.0;

double delta = 0.0;

cout << "Please input a:";

cin >> a;

cout << "Please input b:";

cin >> b;

cout << "Please input c:";

cin >> c;

delta = sqrt(b * b - 4 * a * c);

if (delta < 0)

cout << "x is no real number!" << endl;

else if(delta == 0)

cout << "x = " << -b / (2 * a) << endl;

else

cout << "x = " << (-b + delta) / (2 * a) << "; " << (-b - delta) / (2 * a) << endl;

return 0;

}

3.参考代码

#include

#include

using namespace std;

int fact(int a)

{

if (a == 0 || a == 1)

return 1;

else

return fact(a - 1) * a;

}

int main(int argc, char** argv) {

int x = 0;

double y = 0.0;

double tmp = 0.0;

int i = 0;

cout << "Please input x:";

cin >> x;

do

{

tmp = pow(x, i) / fact(i);

y = y + tmp;

i++;

} while (tmp >= pow(10, -8));

cout << "e^" << x << " = " << y << endl;

return 0;

}

4.参考代码

#include

using namespace std;

int leapyear(int a)

{

if((a % 4 == 0 && a % 100 != 0) || (a % 400 == 0)) return a;

else

return -1;

}

int main(int argc, char** argv)

{

int year;

cout << "Please input year:";

cin >> year;

if (leapyear(year) > 0)

cout << year << " is leapyear." << endl;

else

cout << year << " is not leapyear." << endl;

return 0;

}

第4章数组与结构体

一、简答题

1.字符数组初始化通常两种形式,一是在定义时将其初始为空串,即赋值为{0};另外是使用memset函数,将字符数组设定为空或其他指定形式。

2.结构体与共用体有很多相似地方,但也有重要区别,主要是共用体在存储时使用覆盖技术,可以共用同一个存储空间,而结构体没有这个功能。

二、程序设计题

1. 参考代码

#include

using namespace std;

int main(int argc, char** argv)

{

int scores[8] = { 0 };

int maxscore = 0;

int minscore = 0;

int totalsocre = 0;

double avgscore = 0.0;

int i = 0;

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

{

cout << "Please input NO." << i + 1 << " score:";

cin >> scores[i];

}

maxscore = scores[0];

minscore = scores[0];

totalsocre = scores[0];

for (i = 1; i < 8; i++)

{

if(scores[i] > maxscore)

maxscore = scores[i];

if (scores[i] < minscore)

minscore = scores[i];

totalsocre = totalsocre + scores[i];

}

avgscore = (totalsocre - maxscore - minscore) / 6.0;

cout << "MaxScore:" << maxscore << endl;

cout << "MinScore:" << minscore << endl;

cout << "AvgScore:" << avgscore << endl;

return 0;

}

2. 参考代码

#include

using namespace std;

typedef struct _stuinf{

char name[16];

int sex; //0-man, 1-woman

int age;

}STUINF;

int main(int argc, char** argv)

{

STUINF stuInf[10] = {0};

int i = 0;

int ages = 0;

int mages = 0;

int wages = 0;

int mcount = 0;

int wcount = 0;

double avgages = 0.0;

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

{

cout << "Please input NO." << i + 1 << " Student information:" << endl;

cout << "NAME:";

cin >> stuInf[i].name;

cout << "SEX(0-MAN;1-WOMAN):";

cin >> stuInf[i].sex;

cout << "AGE:";

cin >> stuInf[i].age;

}

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

{

if(stuInf[i].sex == 0)

{

mages += stuInf[i].age;

mcount++;

}

else

{

wages += stuInf[i].age;

wcount++;

}

}

ages = mages + wages;

cout << "Man Avg Ages:" << mages / double(mcount) << endl;

cout << "Woman Avg Ages:" << wages / double(wcount) << endl;

cout << "Avg Ages:" << ages / 10.0;

return 0;

}

第5章指针

一、简答题

1.运行结果:

3

23

123

2.运行结果:

a = 5;

b = -2;

c = 7

二、程序设计题

参考代码

#include

#include

using namespace std;

void getStr(char* inStr, char* outStr, int inPos) {

int i = 0;

char* tmp = inStr;

while (*tmp != '\0' && i < inPos)

{

tmp++;

i++;

}

i = 0;

while(*tmp != '\0')

{

*outStr = *tmp;

outStr++;

tmp++;

}

*outStr = '\0';

}

int main(int argc, char** argv)

{

char srcStr[64] = {0};

char dstStr[64] = {0};

char* p = NULL;

int pos = 0;

int startpos = 0;

int i = 0;

fflush(stdin);

cout << "Please input Source String:";

cin.getline(srcStr, sizeof(srcStr));

cout << "Please input Start Position:";

cin >> startpos;

getStr(srcStr, dstStr, startpos);

cout << dstStr << endl;

return 0;

}

第6章函数

一、选择题

C C A C

二、程序设计题

参考代码

#include

#define ARRCOUNT 4

using namespace std;

void test(int (&inArr)[ARRCOUNT])

{

int i = 0;

int j = 0;

int tmp = 0;

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

{

for(j = 0; j < ARRCOUNT - i - 1; j++)

{

if(inArr[j] < inArr[j + 1])

{

tmp = inArr[j];

inArr[j] = inArr[j + 1];

inArr[j + 1] = tmp;

}

}

}

}

int main()

{

int arr[ARRCOUNT] = { 23, 15, 56, 0 };

test(arr);

int i = 0;

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

cout << arr[i] << endl;

}

第7章类与对象

一、选择题

D C D D C

二、程序设计题

参考代码

#include

using namespace std;

class employee

{

public:

employee();

~employee();

void changename(char* inStr);

void display();

protected:

char name[16];

char addr[64];

char postno[8];

};

employee::employee()

{

memset(name, 0, sizeof(name));

memset(addr, 0, sizeof(addr));

memset(postno, 0, sizeof(postno)); }

employee::~employee()

{

memset(name, 0, sizeof(name));

memset(addr, 0, sizeof(addr));

memset(postno, 0, sizeof(postno));

}

void employee::changename(char* inStr) {

memset(name, 0, sizeof(name));

strcpy(name, inStr);

}

void employee::display()

{

cout << "Name:" << name << endl;

cout << "Addr:" << addr << endl;

cout << "PostNO:" << postno << endl; }

int main(int argc, char** argv)

{

employee worker;

worker.display();

worker.changename("Tom");

worker.display();

return 0;

}

第8章类的继承与派生一、选择题

1~4 C A D B;5~8 C D B A

二、程序设计题

1.参考代码

#include

using namespace std;

class wehicle

{

public:

wehicle(int x, double y);

~wehicle();

void listinf();

protected:

int wheels;

int weight;

};

《C程序设计》作业内容

实验一C语言的运行环境的使用 一、目的与要求 1. 了解Windows系统下C语言的运行环境,熟悉C程序调试、运行的基本操作方法。 2. 熟练掌握编辑、编译、连接和运行C程序的方法。 3. 通过运行简单的C程序,初步了解C源程序的特点。 4. 初步理解C语言的数据类型,了解变量定义、变量赋值以及简单运算方法,了解程序运 行结果的基本输出方法。 二、实验例题 在C语言运行环境下,按以下例题要求完成程序的编辑、编译、连接和运行,直至取得正确的运行结果。 【例1】编程实现在屏幕上显示如下三行文字 Hello, world ! Wolcome to the C language world! Everyone has been waiting for. (1)输入如下程序: #include int main() { printf("Hello,World!\n"); printf("Wolcome to the C language world!\n"); printf("Everyone has been waiting for.\n"); return 0; } (2)将输入的程序以文件名example.c存盘。 (3)编译:通过“组建”(Build) 下拉菜单中的“编译”(compile)命令,编译example.c,若出现编译错误,则修改程序,重新编译,直至编译成功,系统自动生成目标文件example.obj。 (4)连接:通过“组建”(Build)下拉菜单中的“组建”(Build)命令,生成以.exe为扩展名的可执行文件example.exe。 (5)运行:通过“组建”菜单下的“执行”(Excute)命令运行程序并观察运行结果。 【例2】编写程序,将两个整数相加,并输出结果。 #include int main() { int a,b,sum; a=123;b=456; sum=a+b; printf(“sum is %d\n”,sum); return 0;}

C语言程序设计大作业报告模板

《C语言程序设计》大作业报告 1.目的 掌握所学C语言程序设计的方法,熟悉所学语言的开发环境及调试过程,熟悉所学C语言中的数据类型,数据结构、语句结构、运算方法,巩固和加深对理论课中知识的理解,提高学生对所学知识的综合运用能力。通过综合设计要求达到下列基本技能: 1.培养查阅参考资料、手册的自学能力,通过独立思考深入钻研问题,学会自己分析、解决问题。 2.通过对所选题目方案分析比较,确立方案,编制与调试程序,初步掌握程序设计的方法,能熟练调试程序。 2.作业内容

熟练掌握所学语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。进一步掌握各种函数的应用等。 3.要求: 1.要求每个同学都要认真对待,积极参与。 2.独立完成,不能抄袭。 3.课程设计结束时每位同学必须完成《大作业报告册》,其中包含设计源 代码和设计思路。 4.不符合要求的程序、设计报告、抄袭的设计报告或源程序代码、在设 计中完全未参与的将作不及格处理。 5.统一格式,A4打印,按时提交。 4.题目:设计要求:编写一个程序,求3x4数组的转置矩阵。要求在main函数里面读数,在change函数里面把矩阵转置。 5.程序设计 设计思路:1是先定义两个数组,一个是a[3][4],另一个是b[4][3]。2是将随便输入的12个数输入到a[3][4]。3是在change函数中将a[3][4]中值通过for循环的镶嵌将数组a[3][4]的值赋值给数组b[4][3]。4在主函数中将数组b[4][3]通过for循环的嵌套输出。 代码

(完整版)谭浩强c程序设计课后习题答案

谭浩强c++程序设计课后答案 娄警卫

第一章1.5题 #include using namespace std; int main() { cout<<"This"<<"is"; cout<<"a"<<"C++"; cout<<"program."; return 0; 1.6题 #include using namespace std; int main() { int a,b,c; a=10; b=23; c=a+b; cout<<"a+b="; cout< using namespace std; int main() { int a,b,c; int f(int x,int y,int z); cin>>a>>b>>c; c=f(a,b,c); cout< using namespace std; int main() { int a,b,c; cin>>a>>b; c=a+b; cout<<"a+b="< using namespace std; int main() { int a,b,c; int add(int x,int y); cin>>a>>b; c=add(a,b); cout<<"a+b="<

C语言程序设计作业参考答案

《C语言程序设计》作业参考答案 作业一 C语言概述 一、选择题: 1-5 ACDCB 二、编程题: main() { printf(“****************************************\n”); printf(“ Hello,world! \n”); printf(“****************************************\n”); } 作业二程序的灵魂——算法 一、填空题: 1.确定性有效性有零个或多个输入有一个或多个输出 2.顺序结构选择结构循环结构 3.函数 作业三数据类型、运算符与表达式 一、选择题: 1-5 BDDAB 6-10 BCAAB 11-15 BCADC 16-20 DACCA 21-25 ADDBA 26-30 DDDDD 作业四顺序结构 一、选择题: 1-5 BCDDD 6-10 BDADD 二、填空题: 1.【31.415920,3.14159e+01】 2.【c=k】 3.【a=1,b=空格,c=2】 4.【a=12,b=345】 5.【c=A】 作业五选择结构 一、选择题:1-5 ADCBC 6-10 BBBBA 11-15 DBAAC 16-17 CB 二、填空题: 1.【-1】 2.【3】 3.【4】 4.【11】 5.【97或'a'】 作业六循环结构 一、选择题: 1-5 CBAAC 6-10 CBCCB 11-15 DBDDB 16-20 BCAAC 21-25 CDBBB

作业七数组 一、选择题: 1-5 CDDAC 6-10 CCDBC 11-15 DDBCA 16-20 DCBDD 21-23 BDB 二、填空题: 1. LBLMNP 2. SW* 3. mo 4. a=2,b=1 作业八函数 一、选择题: 1-5 AAACA 二、填空题: 1.【编程中的main( )函数】 2.【函数说明部分】和【函数体】 3.【–125= –5*5*5】 4.【void add (float a, float b)】【float add (float a, float b)】 5.【i=7; j=6; x=7 i=2; j=7; x=5】 6.【111】 三、编程题: 1.参考代码 main() { int score,temp,log; char grade; log=1; while (log) { printf(“enter score:”); scanf(“%d”,&score); if ((score>100)||(score<0)) printf(“\n error,try again! \n”); else log=0; } if (score==100)temp=9; else temp=(score-score%10)/10; switch(temp) { case 0:case 1:case2: case 3:case 4:case 5:grade=’E’;break; case 6:grade=’D’;break; case 7:grade=’C’;break; case 8:grade=’B’;break; case 9:grade=’A’; } printf(“score=%d,grade=%c\n”,score,grade); } 2.解:设计以高度n为参数的函数trangle(int n),打印等边三角形。参考程序如下: #include

C语言程序设计课后各章节习题答案

第三章 8 输入一个非负数,计算以这个数为半径的圆周长和面积。 答#define PI 3.1415926 main() { float r,l,area; scanf("%f",&r); l=2*PI*r; area=PI*r*r; printf("l=%f\tarea=%f\n",l,area); } 9 输入任意一个3位数,将其各位数字反序输出(例如输入123,输出321)。 答main() { int x,y; printf("Input number:"); scanf("%d",&x); y=100*(x%10)+10*(x/10%10)+x/100; printf("%d--->%d\n",x,y); } 10 输入任意大小的3个整数,判断其中是否有两个奇数一个偶数。若是则输出YES,不是则输出NOT(要求用条件表达式进行判断,不使用if语句)。 答main() { int x,y,z,oddcount=0; printf("Input x,y,z:"); scanf("%d,%d,%d",&x,&y,&z); x%2==1?oddcount++:0; y%2==1?oddcount++:0; z%2==1?oddcount++:0; oddcount==2?printf("YES"):printf("NOT"); } 11 求前驱字符和后继字符。输入一个字符,找出它的前驱字符和后继字符,并按ASCII码值,按从大到小的顺序输出这3个字符及其对应的ASCII码值。 答 main() { char c; printf("Input character:"); scanf("%c",&c); printf("%c----->%d\n",c-1,c-1); printf("%c----->%d\n",c,c);

C程序设计作业样本

第一章作业 答案:一,59,14.4,28.e 二1小题,59 2,15 一、将数89、20.25、40.875用十六进制表达 二、填空 1.在C语言中,数值常量0x3b十进制值是。 2.字母f ASCII码为十进制数___________。 第三章作业 一、选取题: 1、下列变量名中, B 是非法。 A) Tom B) 3n C) little_boy D) c10 2、若有如下类型阐明 char a; int b; float c; double d;则表达式a*b+d-c成果类型是(A ) A)float B)char C)int D)double 3、若x为整型,则逗号表达式(x=4*5,x*5),x+25成果及x值分别是(C )对的答案是100,45 A)45 20 B)125 20 C)125 45 D)100 100 4、假设所有变量均为整型,则表达式(a=3,b=2,b++,a+b)值是 C 。 A) 5 B) 8 C) 6 D)7 5、已知c2为字符型,则执行语句c2=’E’+’8’-‘A’后,c2值为 C 。 A) 12 B) 11 C)不拟定值D) 10

6、设a为double变量,b为int型变量,c为字符型变量,则a+b+c为( C )型 A) int B) float C) double D) char 7、C语言中不可用作标记符字符有( C ) A下划线 B % C数字 D字母 8、下面四个选项中,均是合法整型常量是(D ) A)160 B)- 0xcdf C)- 01 D)0x - 0xffff 01a 0668 2e5 9、设a为字符变量,b为int型变量,c为double型变量,则a*b+c为( C )型 A. int B. float C. double D. char 10.若a是int型变量,则表达式(a=4*5,a*2),a+4值为( C ) A. 20 B.22 C. 24 D. 44 第四章作业 一、选取题 1、若x为int型变量,则执行如下语句后x= C 。 x=5; x-=x-=x+x; A. -10 B. -5 C.0 D.10 2、在printf()函数格式阐明符中,字符型数输出格式阐明符是 D 。

C语言课程设计大作业62994

郑州大学 课程报告 课程名称:C语言程序设计 专业班级:(15)班 学生姓名:谢* 学号: 20127611*** 任课教师:赵** 学期: 2012-2013-2 课程报告任务书

开发一个通讯录管理系统,基本信息包括:编号、姓名、性别、出生年月、固定电话、手机号、电子邮件等基本信息(也可以根据自己情况进行扩充)。使之能提供以下基本功能: (1)通讯录等信息录入功能(注:数据等要求用文件保存)--输入 (2)通讯录信息的浏览功能--输出 (3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式): ①按电话号码进行查询②按姓名查询等③按照年龄排序④按姓名排序等(4)通讯录条目的删除与修改等 扩展功能:可以按照自己的程度进行扩展。比如(1)简单的权限处理(2)报表打印功能(3)模糊查询,如姓张的人员等;或者给定电子邮件的部分进行查询等(4)给定指定年龄范围之内的查询等等。 总之,可以根据自己需求进行分析功能,成绩评定按照难度进行区分。 成绩评定教师:

一. 需求分析 1,具有数据的插入、修改、删除、显示和查询功能的电话簿管理程序。 2,数据包括:人名、工作单位、电话号码和E-MAIL地址。 3,可对记录中的姓名和电话号码进行修改。 4,可增加和删除记录。 5,可显示所有的保存记录。 6,可按人名或电话号码进行查询。 分析 建议采用结构体数组和文件系统实现。结构体成员包括人名、工作单位、电话号码和E-MAIL地址。 根据题目的要求程序应该采用结构体数组和文件系统实现。应该有文件的操作功能;在程序中应该包括输入、显示、删除、查询、添加、修改、保存、加载和退出的功能。 二、概要设计 (1).程序的模块组成及各个函数的功能: 程序的模块组成: 主函数:main(); 输出数据函数:printf(); 读取数据函数:scanf(); 显示记录函数:Display(); 删除记录函数:shanchu(); 查找记录函数:chaxun(); 自定义清屏函数:system(“cls”); 自定义输入函数:input(); 字符输入函数:getchar(); 修改数据函数:xiugai(); 保存数据函数:baocun(); 排序数据函数:paixu(); 各函数的主要功能:

《C语言程序设计》课后习题答案谭浩强

精心整理第1章程序设计和C语言1 1.1什么是计算机程序1 1.2什么是计算机语言1 1.3C语言的发展及其特点3 1.4 1.5 1.6 } printf("pleaseinputa,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if(max

if(max #include intmain() {floatp,r,n; r=0.1;

n=10; p=pow(1+r,n); printf("p=%f\n",p); return0; } 3-2-1 p4=p*pow(1+r1,5);//存1年期,到期后将本息存再存1年期,连续存5次p5=p*pow(1+r0/4,4*5);//存活期存款。活期利息每一季度结算一次 printf("p1=%f\n",p1);//输出按第1方案得到的本息和 printf("p2=%f\n",p2);//输出按第2方案得到的本息和 printf("p3=%f\n",p3);//输出按第3方案得到的本息和

printf("p5=%f\n",p5);//输出按第5方案得到的本息和 return0; } 3-2-2 p4=p*pow(1+r1,5);//存1年期,到期后将本息存再存1年期,连续存5次p5=p*pow(1+r0/4,4*5);//存活期存款。活期利息每一季度结算一次 printf("p1=%f\n",p1);//输出按第1方案得到的本息和 printf("p2=%f\n",p2);//输出按第2方案得到的本息和 printf("p3=%f\n",p3);//输出按第3方案得到的本息和 printf("p4=%f\n",p4);//输出按第4方案得到的本息和

c程序设计作业

1、分析下面程序: # include int main() { char c1,c2; c1=97; c2=98; printf("c1=%c,c2=%c\n"c1,c2); printf("c1=%d,c2=%d\n",c1,c2); return 0; } (1)运行时会输出什么信息?为什么? (2)如果将程序第4,5行改为 c1=197; c2=198; 运行时会输出什么信息?为什么? (3)如果将程序第3行改为 int c1,c2; 运行时会输出什么信息?为什么? 答:(1)程序运行不了,因为程序存在错误。正确的程序为:#include int main() { char c1,c2; c1=97; c2=98; printf("c1=%c,c2=%c\n",c1,c2); printf("c1=%d,c2=%d\n",c1,c2); return 0; } (2)如果将程序第4,5行改为 c1=197; c2=198; 运行时会输出: (3)如果将程序第3行改为 int c1,c2; 运行时会输出:

因为int表示整型,%c是输出字符,a的ASCLL代码是97,b的是98,所以输出 c1=a,c2=b.%d是表示输出十进制整型,所以输出c1=97,c2=98 2、用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。 问在键盘上如何输入? #include int main() { int a,b; float x,y; char c1,c2; scanf("a=%db=%d",&a,&b); scanf("%f%e",&a,&y); scanf("%c%c",&c1,&c2); return 0; } 答:输入如图: 输出如图: (此文档部分内容来源于网络,如有侵权请告知删除,文档可自行编辑修改内容, 供参考,感谢您的配合和支持)

C语言程序设计教程课后习题答案

1 【C语言】《C语言程序设计教程(第二版)》习题答案 说明 1. 本文所指的《C语言程序设计教程(第二版)》是李凤霞主编、北京理 工大学出版社出版的,绿皮。 2 第1章程序设计基础知识 一、单项选择题(第23页) 1-4.CBBC 5-8.DACA 二、填空题(第24页) 1.判断条件 2.面向过程编程 3.结构化 4.程序 5.面向对象的程序设计语言 6.基本功能操作和控制结构 7.有穷性 8.直到型循环 9.算法10.可读性11.模块化12.对问题的分析和模块的划分 三、应用题(第24页) 2.源程序: main() {int i,j,k; /* i:公鸡数,j:母鸡数,k:小鸡数的1/3 */ printf("cock hen chick\n"); for(i=1;i<=20;i++) for(j=1;j<=33;j++) for(k=1;k<=33;k++) if (i+j+k*3==100&&i*5+j*3+k==100) printf(" %d %d %d\n",i,j,k*3);} 执行结果: cock hen chick 4 18 78 8 11 81 12 4 84 3.现计算斐波那契数列的前20项。 递推法源程序: main() {long a,b;int i; a=b=1; for(i=1;i<=10;i++) /*要计算前30项,把10改为15。*/ {printf("%8ld%8ld",a,b); a=a+b;b=b+a;}} 递归法源程序: main() {int i; for(i=0;i<=19;i++)

printf("%8d",fib(i));} fib(int i) {return(i<=1?1:fib(i-1)+fib(i-2));} 执行结果: 1 1 2 3 5 8 13 21 3 4 55 89 144 233 377 610 987 1597 2584 4181 6765 4.源程序: #include "math.h"; main() {double x,x0,deltax; x=1.5; do {x0=pow(x+1,1./3); deltax=fabs(x0-x); x=x0; }while(deltax>1e-12); printf("%.10f\n",x);} 执行结果: 1.3247179572 5.源程序略。(分子、分母均构成斐波那契数列) 结果是32.66026079864 6.源程序: main() {int a,b,c,m; printf("Please input a,b and c:"); scanf("%d %d %d",&a,&b,&c); if(a

C程序设计教程课后习题答案吉顺如版

一、选择题 1、A 2、D 3、C 4、D 5、B 6、C 7、C 8、B 9、B 10、A 二、填空题 1、一,函数体 2、main(主),main(主) 3、编译,目标 4、.c,.obj,.exe 5、缩进,无影响,/* */ 三、程序分析题 1、 ***************** Very good! ***************** 2、 a=12,b=5 a=17,b=22 3、 r= 5.50,s=95.033098 四、编程题 1.用printf()函数在屏幕上输出自己的班级、学号、姓名。#include"stdio.h"

{ printf("班级:BX1109\n"); printf("学号:111003530901\n"); printf("姓名:王孟荣\n"); } 2.从键盘输入两个整数,计算它们的和、差、积、商,并在屏幕上输出结果。 #include void main() { int x,y,a,b,c; float d; printf("Please Input Two Integers:\n"); scanf("%d%d",&x,&y); a=x+y; b=x-y; c=x*y; d=1.0*x/y;

printf("a=%d\nb=%d\nc=%d\nd=%f\n",a,b,c,d); }

第2章习题 一、选择题 1~5 BCDCD 6~10 DBBCA 二、填空题 1.单精度浮点型、双精度浮点型、字符型2.0 3.x%10*10+x/10 4.5.5 5.5.7 20 6.sin(sqrt(x*x))/(a*b) 7.,

C语言程序设计-作业与答案

《C 语言程序设计》课程作业 适用层次:专升本 培养类型:理工科专业 专业班级: 姓名: 学号: 作业要求:题目可打印,答案要求手写,考试时交作业。 第1次: 1.编写程序,分别计算1到100之间的奇数之和及偶数之和,并输出。 2.输入三角形的三条边a 、b 、c ,如果能构成一个三角形,则计算并输出三角形的周长和面积(结果保留两位小数);否则输出“无效的边长!”。 三角形面积计算公式为: s=))()((c x b x a x x ---,其中,x=(a+b+c)/2。 3.输入一个整数,求它的各位数字之和。例如,123的各位数字之和为6,-63的各位数字之和为9。 4.使用格里高利公式求π的近似值,精确到最后一项的绝对值小于10-6 。 +-+-=71 513114π …… 5.中国古代数学史上著名的“百鸡问题”:鸡翁一,值钱五;鸡母一,值钱三,鸡雏三,值钱一。百钱买百鸡,问翁、母、雏各几何? 6.编写程序,键盘输入正整数n (0= 2 2. 编写一个函数prime(int n),判断一个整数是否是素数,若是素数,函数值返回1,否则返回0。利用该函数找出100-200之间的所有素数。素数是只能被1和自身整除的正整数,2是最小的素数。 3.写一函数int strlength(char *s)求一个字符串的长度。主函数中输入一个字符串,调用函数strlength 求其长度并输出。

C语言程序设计第三版谭浩强课后习题答案完整版

C语言程序设计第三版谭浩强 课后习题答案完整版 第一章 1.5请参照本章例题,编写一个C程序,输出以下信息:************************** V ery Good! ************************** 解: mian() {printf(“**************************”); printf(“\n”); printf(“V ery Good!\n”); printf(“\n”); printf(“**************************”); } 1.6 编写一个程序,输入a、b、c三个值,输出其中最大值。解: mian() {int a,b,c,max; printf(“请输入三个数a,b,c:\n”); scanf(“%d,%d,%d”,&a,&b,&c); max=a; if(max main() { char c1=?C?,c2=?h?,c3=?i?,c4=?n?,c5=?a?; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5); } 运行结果: 密码是Glmre 3.9求下面算术表达式的值。 (1)x+a%3*(int)(x+y)%2/4 设x=2.5,a=7,y=4.7 (2)(float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=3.5,y=2.5 (1)2.5 (2)3.5 3.10写出程序运行的结果。 main() {int i,j,m,n; i=8; j=10; m=++i; n=j++; printf(“%d,%d,%d,%d”,i,j,m,n); } 解: 9,11,9,10 3.12 写出下面表达式运算后a的值,设原来a=12。设a和n都已定义为整型变量。 (1)a+=a (2)a-=2 (3)a*=2+3 (4)a/=a+a (5)a%=(n%=2),n的值等于5 (6)a+=a-=a*=a 解: (1) 24 (2) 10 (3) 60 (4) 0 (5) 0 (6) 0 第四章 4.4若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’。想得到以下输出格式和结果,请写出程序(包括定义变量类型和设计输出)。 a=_3_ _b=_4_ _c=_5 x=1.200000,y=2.400000,z=-3.600000 x+y=_3.600_ _y+z=-1.20_ _z+x=-2.40 c1=ˊaˊ_or_97(ASCII)

C语言大作业学生信息管理系统

《程序设计综合课程设计》报告 学生姓名: ______ ______ ______ ______________________ 学生班级: ______________________ ____________ ____________ 学生学号: ____________ 指导教师: ______ 2014年6 月 22 日

目录 前言 (2) 第1章Visual C++6.0简介及其优点 (3) 第2章课程设计的目的和要求 (4) (4) 2.2课程设计的要求 (5) 第3章课程设计任务内容 (6) 3.1 需求分析 (6) 3.2可行性分析 (6) 第4章软件使用说明 (7) 第5章总结 .................................................. 错误!未指定书签。附录源程序 学生信息管理系统 前言 学生信息档案的管理对于学校的管理者来说至关重要,学生信息是高等学校非常重要的一项 数据资源,是一个教育单位不可缺少一部分。特别是近几年来,国家政策的调整,我国高等 院校大规模的扩招,给高等院校的教学管理、学生管理、后勤管理等方面都带来不少的冲击。 其包含的数据量大,涉及的人员面广,而且需要及时更新,故较为复杂,难以单纯地依靠人 工管理,而且传统的人工管理方式既不易于规范化,管理效率也不高,目前我国各类高等院 校中还有相当一部分学生档案管理还停留在纸介质的基础上,尤其是中、小学对学生档案的 管理更是落后,这样的管理机制已经不能适应时代发展的要求,其管理方法将浪费许多人力 和物力。随着科学技术的不断提高,计算机科学与技术日渐成熟,计算机应用的普及已进入 人类社会生活的各个领域,并发挥着越来越重要的作用。这种传统的手工管理模式必然被以 计算机为物质基础的信息管理方法所取代。 作为计算机应用的一部分,使用计算机对学生档案进行管理,有着手工管理所无法比拟 的优点,如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。 这些优点能够极大地提高学生档案管理的效率,也是学校向科学化、正规化管理发展的必要 条件,更是各个高等院校与世界接轨的重要条件。

c语言程序设计(科学出版社)课后习题解答

第3章习题解答 第1章 1.C 语言程序主要由预处理命令、函数、注释等组成。 2.填空 (1)分号 (2)main (3)stdio.h 3. 源程序: #include main( ) { printf(“*************************\n”); printf(“Hello World!\n”); printf(“*************************”); } 4. 源程序: #include main( ) { int a, b, c; /* 定义变量*/ scanf(“%d”, &a); /* 输入第一个整数*/ scanf(“%d”, &b); /* 输入第二个整数*/ c=a-b; /* 计算差*/ printf(“%d-%d=%d”,a,b,c); /* 输出结果*/ } 5. (1) (2)x=10; (3)printf(“s=%d\n”,s); 第2章 1. (1) c (2) a (3) b g (4) a d e (5) d 2. a. 5 b. 295 c. 4 d. 29 e. 9 3. a.x=4,y=6

b. x=4,y=3 f.x=3,y=6 4. 16 5. #include main() { int a,b,c; scanf("%d%d",&a,&b); c=a*b; printf("%d*%d=%d",a,b,c); } 第3章 1. (1) b (2) b (3) d (4) a (5) b 2. (1)&a,&b (2)l,s 3. printf(“x=%.2f,y=%.2f\n”,x,y); 4. #include main() { int num1,num2,num3,sum; float average; scanf("%d%d%d",&num1,&num2,&num3); sum=num1+num2+num3; average=sum/3.0; printf("sum=%d,average=%.2f\n",sum,average); } 5. #include main() { int hour,minute,second,total; /* 定义变量代表时、分、秒和总秒数*/ scanf("%d",&total); hour=total/3600; minute=total%3600/60; second=total%3600%60;

C程序设计作业

第一章作业 答案:一,59,14、4,28、e 二1小题,59 2,15 一、将数89、20、25、40、875用十六进制表示 二、填空 1、在C语言中,数值常量0x3b得十进制值就是。 2、字母f得ASCII码为十进制数___________。 第三章作业 一、选择题: 1、下列变量名中, B 就是非法得。 A) Tom B) 3n C) little_boy D) c10 2、若有以下类型说明 char a; int b; float c; double d;则表达式a*b+d-c得结果类型就是( A ) A)float B)char C)int D)double 3、若x为整型,则逗号表达式(x=4*5,x*5),x+25得结果及x得值分别就是(C )正确答案就是100,45 A)45 20 B)125 20 C)125 45 D)100 100 4、假设所有变量均为整型,则表达式(a=3,b=2,b++,a+b)得值就是 C 。 A) 5 B) 8 C) 6 D)7 5、已知c2为字符型,则执行语句c2=’E’+’8’-‘A’后,c2得值为 C 。 A) 12 B) 11 C)不确定得值D) 10 6、设a为double变量,b为int型变量,c为字符型变量,则a+b+c为( C )型 A) int B) float C) double D) char 7、C语言中不可用作标识符得字符有( C ) A下划线 B % C数字 D字母 8、下面四个选项中,均就是合法整型常量得就是(D ) A)160 B)- 0xcdf C)- 01 D)0x - 0xffff 01a 0668 2e5 9、设a为字符变量,b为int型变量,c为double型变量,则a*b+c为( C )型 A、int B、float C、double D、char 10、若a就是int型变量,则表达式(a=4*5,a*2),a+4得值为( C ) A、20 B、22 C、24 D、 44 第四章作业 一、选择题

c语言程序设计第五版习题答案解析

习题解析与答案 第1章C语言概述 一.简答题 1.概述C语言的主要特点。 【解答】 (1)语言简洁、紧凑,使用方便、灵活。 (2)数据类型丰富,表达能力强。 (3)运算符多样。C语言中的运算符包含的范围非常广泛。 (4)具有结构化的控制语句。如if…else语句、while语句、do while语句、switch 语句、for语句。 (5)允许直接访问物理地址。C语言中含有的位和指针运算,能够直接对内存地址进行访问操作。 (6)所生成的目标代码质量高,可移植性好。 2.构成C语言程序的基本单位是什么?它由哪几部分组成? 【解答】函数是构成C语言程序的基本单位。一个完整的C程序一般由文件包含、宏定义、函数说明、变量和一个或若干个函数组成。 3.C语言程序的运行一般要经过哪几个步骤? 【解答】(1)编辑;(2)编译;(3)连接,生成EXE文件;(4)执行。 二.运行程序写结果 1.输入下面程序并运行。 main() { int a1,a2,x; a1=100; a2=50; x=a1-a2; printf(″x=%d\n″,x); } 【解答】运行结果为:x=50 2.输入下面程序并运行。 main() { int a1,a2,x; a1=10; a2=20; x=a1*a2; printf(″a1=%d,a2=%d\n″,a1,a2); printf(″x=%d\n″,x); } 【解答】运行结果为:a1=10,a2=20 x=200 3.输入下面程序并运行。

#include main() { printf("******\n"); printf(" *****\n"); printf(" ****\n"); printf(" ***\n"); printf(" **\n"); printf(" *\n"); } 【解答】运行结果为:****** ***** **** *** ** * 思考:可以修改程序,使之输出平行四边形,等腰三角形等图形。 三.编程题 1.参照本章例题,编写一个C程序,用于显示如下信息: ************************* I love C programs! ************************* 【分析与提示】 ①要有文件包含语句#include 。C语言中没有数据的输入、输出等功能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf等来实现的。这些函数的说明都包括在stdio.h文件中。 ②main是主函数的名称。用{}括起来的内容是函数体,函数体由若干条语句组成,这是计算机要执行的部分,每条语句以分号“;”结束。 ③注意显示的信息有三行,所以要用到换行符“\n”。 参考代码: #include main() { printf("************************\n"); printf(" I love C programs! \n"); printf("************************\n"); }

2019西南大学0039C语言程序设计机考大作业答案

//打开文件后,如下步骤写程序 #include //首先要引入c语言的标准输入输出库文件,因为这个文件里有已经定义好的可以使用的函数 //接下来需要写一个main函数,这也是c语言程序里必不可少的一个函数,叫主函数,他是整个程序的入口函数,程序所有的功能实现都要在这个函数中体现。但是这个函数有且仅有一个 int main() { //这是main函数的函数体,要实现什么功能,就把实现功能的语句写到这里面 //比如我要实现打印HelloWorld字符,那么我就调用printf()标准输出语句 printf("Hello World!\n");//这个语句表示原样输出引号内的字符,‘\n’表示换行 return0;//最后,因为main函数有一个int的返回类型限定,那么我们使用return 语句返回一个int类型的值 0. } //这样就结束了。一个简单的但又完整的C程序就有了, //下一步就是使用编译器编译成目标的可执行文件: //如果是windows下的vc++,那么需要分别点击编译,链接两个按钮生成hello.exe可执行文件 //如果是linux下直接在shell中使用gcc hello.c就可以编译成可执行文件a.out //最后就是运行了,windows下直接点击vc++的运行或双击hello.exe可以出现dos窗口运行,并显示结果,linux下使用“./a.out”可以直接运行,运行结果会显示在shell 中。 //这就是整个完整的流程,包括每一步。 调试过程:设置断点,调试命令,察看变量,查看内存, 常见错误:C 语言程序设计的错误可分为语法错误、连接错误、逻辑错误和运行错误。 VC++ 和DEV C++都是C++语言的开发工具。如果只是做些小程序,基本上看不出区别。两者DEBUG 和RELEASE上的时间有所不同。还有一点就是,通常如果是在VC++下编写的代码,不是很规范,拿到DEV C++上会报错。而反过来则可以运行。这里涉及到GCC的问题,它对标准的支持表现在不支持非标准的东西,但是DEV C++有个最大的好处就是体积小,没有VC++这么大,可以装到U盘里。(3)1 对于编译器处理更方便。在编译的时候,编译器需要为变量定义符号列表,有显式的变量定义,可以让编译器更方便的查找到变量列表,从而确定变量符号列表,执行后续的编译操作。 2 不容易出错。可以识别出变量名的手打错误。比如定义了var_name,在调用的时候如果写作了var_nane, 如果没规定要先定义后使用,那么var_nane就会被当做一个新的变量使用,只到运行时才会发生错误。而按照C语言的规定,在编译阶段就可以发现该错误。 3 程序更清晰。变量定义时,直接指明类型,这样在阅读程序时不需要为查知变量类型而花费额外时间。 2、 (1) #include main() { int i,n,sum=0; printf("input n:"); scanf("%d",&n); for (i=1;i<=n;i++) { sum+=i; } printf ("sum=%d\n",sum); } (5) #include #include int main() { int i = 0; for(; i <= 999; i++)

相关主题
文本预览
相关文档 最新文档