搜档网
当前位置:搜档网 › C语言程序设计课后答案优选稿

C语言程序设计课后答案优选稿

C语言程序设计课后答案优选稿
C语言程序设计课后答案优选稿

C语言程序设计课后答

集团文件版本号:(M928-T898-M248-WU2669-I2896-DQ586-M1988)

第二章 C++简单程序设计

2-10 执行完下列语句后,a、b、c三个变量的值为多少?

a = 30;

b = a++;

c = ++a;

a:32 ; b:30 ; c:32;

2-13 写一条for语句,计数条件为n从100到200,步长为2;然后用while和do…while语句完成同样的循环。

解:

for循环:

for (int n = 100; n <= 200; n += 2);

while循环:

int x = 100;

while (n <= 200)

n += 2; do…while循环:

int n = 100;

do

{

n += 2;

} while(n <= 200);

2-17 修改下面这个程序中

的错误,改正后它的运行

结果是什么?

#include

void main()

int i

int j;

i = 10; /* 给i赋值

j = 20; /* 给j赋值 */

cout << "i + j = << i +

j; /* 输出结果 */

return 0;

}

解:

改正:

#include

int main()

{

int i;

int j;

i = 10; // 给i赋值

j = 20; /* 给j赋值 */

cout << "i + j = " << i

+ j; /* 输出结果 */

return 0;

}

程序运行输出:

i + j = 30

2-18 编写一个程序,运行

时提示输入一个数字,再

把这个数字显示出来。

解:

源程序:

#include

int main()

{

int i;

cout << "请输入一个数

字:";

cin >> i;

cout << "您输入一个数字是" << i << endl;

return 0;

}

程序运行输出:

2-20 打印ASCII码为

32~127的字符。

#include

int main()

{

for (int i = 32; i<128; i++)

cout << (char) i;

return 0;

}

程序运行输出:

!"#$%G'()*+,yz<|>~s

2-21 运行下面的程序,观察其输出,与你的设想是否相同?

#include

int main()

{unsigned int x;

unsigned int y = 100;

unsigned int z = 50;

x= y - z;

cout << "Difference is:

" << x;

x = z - y;

cout << "\nNow

difference is: " << x

<

return 0;

}

程序运行输出:

Difference is: 50

注意,第二行的输出并非

-50,注意x、y、z的数据

类型。

2-22 运行下面的程序,观

察其输出,体会i++与++i

的差别。

#include

int main()

{

int myAge = 39; //

initialize two integers

int yourAge = 39;

cout << "I am: " <<

myAge << " years

old.\n";

cout << "You are: " <<

yourAge << " years

old\n";

myAge++; // postfix

increment

++yourAge; // prefix

increment

cout << "One year

passes...\n";

cout << "I am: " <<

myAge << " years

old.\n";

cout << "You are: " <<

yourAge << " years

old\n";

cout << "Another year

passes\n";

cout << "I am: " << myAge++ << " years old.\n";

cout << "You are: " << ++yourAge << " years old\n";

cout << "Let's print it again.\n";

cout << "I am: " << myAge << " years

old.\n";

cout << "You are: " << yourAge << " years

old\n";

return 0;

}

解:

程序运行输出:

I am 39 years old

You are 39 years old One year passes

I am 40 years old

You are 40 years old Another year passes

I am 40 years old

You are 41 years old

Let's print it again

I am 41 years old

You are 41 years old

2-28 编写一个完整的程

序,实现功能:向用户提

问"现在正在下雨吗?",

提示用户输入Y或N。若输

入为Y,显示"现在正在下

雨。";若输入为N,显示

"现在没有下雨。";否则

继续提问"现在正在下雨

吗?"

源程序:

#include

#include

void main()

{

char flag;

while(1)

{

cout << "现在正在下雨

吗?(Yes or No):";

cin >> flag;

if ( toupper(flag) ==

'Y')

{

cout << "现在正在下雨。

";

break;

}

if ( toupper(flag) ==

'N')

{

cout << "现在没有下雨。

";

break;

}

}

}

程序运行输出:

现在正在下雨吗?(Yes or

No):x

现在正在下雨吗?(Yes or No):l

现在正在下雨吗?(Yes or No):q

现在正在下雨吗?(Yes or No):n

现在没有下雨。

或:

现在正在下雨吗?(Yes or No):y

现在正在下雨。

2-29 编写一个完整的程序,运行时向用户提问"你考试考了多少分(

0~100)",接收输入后判断其等级,显示出来。规则如下:

解:

#include void main()

{

int i,score;cout << "你考试考了多少

分(0~100):";

cin >> score;

if (score>100 ||

score<0)

cout << "分数值必须在0

到100之间!";

else

{

i = score/10;

switch (i)

{

case 10:

case 9:

cout << "你的成绩为优!

";

break;

case 8:

cout << "你的成绩为良!

";

break;

case 7:

case 6:

cout << "你的成绩为中!

";

break;

default:

cout << "你的成绩为差!

";

}

}

}

程序运行输出:

你考试考了多少分

(0~100):85

你的成绩为良!

2-31 用穷举法找出1~100

间的质数,显示出来。分

别使用while,do-while,

for循环语句实现。

解:

源程序:

使用while循环语句:

#include

#include

void main()

{

int i,j,k,flag;

i = 2;

while(i <= 100)

{

flag = 1;

k = sqrt(i);

j = 2;

while (j <= k)

{

if(i%j == 0)

{

flag = 0;

break;

}

j++;

}

if (flag)

cout << i << "是质数." << endl;

i++;

}

} 使用do…while循环语

句:

#include

#include

void main()

{

int i,j,k,flag;

i = 2;

do{

flag = 1;

k = sqrt(i);

j = 2;

do{

if(i%j == 0)

{

flag = 0;

break;

}

j++;

}while (j <= k);

if (flag)

cout << i << "是质数."

<< endl;

i++;

}while(i <= 100);

}

使用for循环语句:

#include

#include

void main()

{

int i,j,k,flag;

for(i = 2; i <= 100;

i++)

{

flag = 1;

k = sqrt(i);

for (j = 2; j <= k; j++)

{

if(i%j == 0)

{

flag = 0;

break;

}

}

if (flag)

cout << i << "是质数." << endl;

}

}

程序运行输出:

2是质数.

3是质数.

5是质数.

7是质数.

11是质数.

13是质数.

17是质数.

19是质数.

23是质数.

29是质数.

31是质数.

37是质数.

41是质数.

43是质数.

47是质数.

53是质数.

59是质数.

61是质数.67是质数.

71是质数.

73是质数.

79是质数.

83是质数.

89是质数.

97是质数.

2-33 定义一个表示时间的

结构体,可以精确表示

年、月、日、小时、分、

秒;提示用户输入年、

月、日、小时、分、秒的

值,然后完整地显示出

来。

解:

源程序见"实验指导"部分

实验二

2-34 在程序中定义一个整

型变量,赋以1~100的

值,要求用户猜这个数,

比较两个数的大小,把结

果提示给用户,直到猜对

为止。分别使用while、

do…while语句实现循环。

解:

//使用while语句

#include

void main() {

int n = 18;

int m = 0;

while(m != n)

{

cout << "请猜这个数的值

为多少?(0~~100):";

cin >> m;

if (n > m)

cout << "你猜的值太小

了!" << endl;

else if (n < m)

cout << "你猜的值太大

了!" << endl;

else

cout << "你猜对了!" <<

endl;

}

}

//使用do…while语句

#include void main() {

int n = 18;

int m = 0;

do{

cout << "请猜这个数的值为多少?(0~~100):";

cin >> m;

if (n > m)

cout << "你猜的值太小了!" << endl;

else if (n < m)

cout << "你猜的值太大了!" << endl;

else

cout << "你猜对了!" << endl;

}while(n != m);

}

程序运行输出:请猜这个数的值为多少?

(0~~100):50

你猜的值太大了!

请猜这个数的值为多少?

(0~~100):25

你猜的值太大了!

请猜这个数的值为多少?

(0~~100):10

你猜的值太小了!

请猜这个数的值为多少?

(0~~100):15

你猜的值太小了!

请猜这个数的值为多少?

(0~~100):18

你猜对了!

第三章函数

3-2 观察下面程序的运行

输出,与你设想的有何不

同?仔细体会引用的用

法。

源程序:

#include

int main()

{

int intOne;

int &rSomeRef = intOne;

intOne = 5;

cout << "intOne:\t\t"

<< intOne << endl;

cout << "rSomeRef:\t"

<< rSomeRef << endl;

int intTwo = 8;

rSomeRef = intTwo; //

not what you think!

cout << "\nintOne:\t\t"

<< intOne << endl;

cout << "intTwo:\t\t"

<< intTwo << endl;

cout << "rSomeRef:\t"

<< rSomeRef << endl;

return 0;

}

程序运行输出:

intOne: 5

rSomeRef: 5

intOne: 8

intTwo: 8

rSomeRef: 8

3-7 编写函数,参数为两个unsigned short int型数,返回值为第一个参数除以第二个参数的结果,数据类型为short int;如果第二个参数为0,则返回值为-1。在主程序中实现输入输出。

解:

源程序:

#include short int

Divider(unsigned short int a, unsigned short int b)

{

if (b == 0)

return -1;

else

return a/b;

}typedef unsigned short

int USHORT;

typedef unsigned long

int ULONG;

int main()

{

USHORT one, two;

short int answer;

cout << "Enter two

numbers.\n Number one:

";

cin >> one;

cout << "Number two: ";

cin >> two;

answer = Divider(one,

two);

if (answer > -1)

cout << "Answer: " <<

answer;

else

cout << "Error, can't

divide by zero!";

return 0;

}

程序运行输出:

Enter two numbers.

Number one:8

Number two:2

Answer: 4

3-8 编写函数把华氏温度

转换为摄氏温度,公式

为:C = (F - 32) * 5/9;

在主程序中提示用户输入

一个华氏温度,转化后输

出相应的摄氏温度。

解:

源程序见"实验指导"部分

实验三

3-10 编写函数求两个整数

的最大公约数和最小公倍

数。

源程序:

#include

#include

int fn1(int i,int j);

//求最大公约数的函数

void main()

{

int i,j,x,y;

cout << "请输入一个正整数:";

cin >> i ;

cout << "请输入另一个正整数:";

cin >> j ;

x = fn1(i,j);

y = i * j / x;

cout << i << "和" << j << "的最大公约数是:" << x << endl;

cout << i << "和" << j << "的最小公倍数是:" << y << endl;

}

int fn1(int i, int j) {

int temp;

if (i < j)

{temp = i;

i = j;

j = i;

}

while(j != 0)

{

temp = i % j;

i = j;

j = temp;

}

return i;

}

程序运行输出:

请输入一个正整数:120

请输入另一个正整数:72

120和72的最大公约数

是:24

120和72的最小公倍数

是:360

3-12 在主程序中提示输入

整数n,编写函数用递归的

方法求1 + 2 + … + n的

值。

解:

#include

#include

int fn1(int i);

void main()

{

int i;

cout << "请输入一个正整

数:";

cin >> i ;

cout << "从1累加到"

<

fn1(i) << endl;

}

int fn1(int i)

{

if (i == 1)

return 1;

else

return i + fn1(i -1);

}

程序运行输出:

请输入一个正整数:100

从1累加到100的和为:5050

3-14 用递归的方法编写函数求Fibonacci 级数,公式为fib(n) = fib(n-1) + fib(n-2),n>2;

fib(1) = fib(2) = 1;观

察递归调用的过程。

解:

源程序见"实验指导"部分

实验三

3-15 用递归的方法编写函数求n阶勒让德多项式的值,在主程序中实现输

入、输出;

解:

#include float p(int n, int x); void main()

{

int n,x;

cout << "请输入正整数n:";cin >> n;

cout << "请输入正整数

x:";

cin >> x;

cout << "n = " << n <<

endl;

cout << "x = " << x <<

endl;

cout << "P" << n << "("

<< x << ") = " << p(n,x)

<< endl;

}

float p(int n, int x)

{

if (n == 0)

return 1;

else if (n == 1)

return x;

else

return ((2*n-1)*x*p(n-

1,x) - (n-1)*p(n-2,x))

/n ;

}

程序运行输出:

请输入正整数n:1

请输入正整数x:2

n = 1

x = 2

P1(2) = 2

请输入正整数n:3

请输入正整数x:4

n = 3

x = 4

P3(4) = 154

第四章

4-9 设计并测试一个名为

Rectangle的矩形类,其属

性为矩形的左下角与右上

角两个点的坐标,能计算

矩形的面积。

源程序:

#include

class Rectangle

{

public:

Rectangle (int top, int left, int bottom, int right);

~Rectangle () {}

int GetTop() const

{ return itsTop; }

int GetLeft() const { return itsLeft; }

int GetBottom() const { return itsBottom; }

int GetRight() const { return itsRight; } void SetTop(int top) { itsTop = top; }

void SetLeft (int left) { itsLeft = left; }

void SetBottom (int bottom) { itsBottom = bottom; }

void SetRight (int right) { itsRight = right; }

int GetArea() const;private:

int itsTop;

int itsLeft;

int itsBottom;

int itsRight;

};

Rectangle::Rectangle(in

t top, int left, int

bottom, int right)

{

itsTop = top;

itsLeft = left;

itsBottom = bottom;

itsRight = right;

}

int Rectangle::GetArea()

const

{

int Width = itsRight-

itsLeft;

int Height = itsTop -

itsBottom;

return (Width * Height);

}

int main()

{

Rectangle MyRectangle

(100, 20, 50, 80 );

int Area =

MyRectangle.GetArea();

cout << "Area: " <<

Area << "\n";

return 0;

}

程序运行输出:

Area: 3000

Upper Left X Coordinate:

20

4-11 定义一个矩形类,有

长、宽两个属性,有成员

函数计算矩形的面积

解:

#include

class Rectangle

{

public:

Rectangle(float len, float width)

{

Length = len;

Width = width;

}

~Rectangle(){};

float GetArea()

{ return Length * Width; }

float GetLength()

{ return Length; }

float GetWidth()

{ return Width; } private:

float Length;

float Width;

};

void main()

{

float length, width; cout << "请输入矩形的长度:";cin >> length;

cout << "请输入矩形的宽

度:";

cin >> width;

Rectangle r(length,

width);

cout << "长为" <<

length << "宽为" <<

width << "的矩形的面积

为:"

<< r.GetArea () << endl;

}

程序运行输出:

请输入矩形的长度:5

请输入矩形的宽度:4

长为5宽为4的矩形的面

积为:20

4-12 定义一个"数据类型"

datatype类,能处理包含

字符型、整型、浮点型三

种类型的数据,给出其构

造函数。

解:

#include

class datatype{

enum{

character,

integer,

floating_point

} vartype;

union

{

char c;

int i;

float f;

};

public:

datatype(char ch) {

vartype = character;

c = ch;

}

datatype(int ii) {

vartype = integer;

i = ii;

}

datatype(float ff) {

vartype =

floating_point;

f = ff;

}

void print();

};

void datatype::print() {

switch (vartype) {

case character:

cout << "字符型: " << c << endl;

break;

case integer:

cout << "整型: " << i << endl;

break;

case floating_point: cout << "浮点型: " << f << endl;

break;

}

}void main() {

datatype A('c'), B(12),

C(1.44F);

A.print();

B.print();

C.print();

}

程序运行输出:

字符型: c

整型: 12

浮点型: 1.44

4-13 定义一个Circle

类,有数据成员半径

Radius,成员函数

GetArea(),计算圆的面

积,构造一个Circle的对

象进行测试。

解:

#include

class Circle

{

public:

Circle(float

radius){ Radius =

radius;}

~Circle(){}

float GetArea()

{ return 3.14 * Radius

* Radius; }

private:

float Radius;

};

void main()

{

float radius;

cout << "请输入圆的半

径:";

cin >> radius;

Circle p(radius);

cout << "半径为" <<

radius << "的圆的面积

为:" << p.GetArea ()

<< endl;

}

程序运行输出:

请输入圆的半径:5

半径为5的圆的面积为:78.5

4-14 定义一个tree类,有成员ages,成员函数grow(int years)对ages 加上years,age()显示tree对象的ages的值。解:

#include class Tree {

int ages;

public:

Tree(int n=0);

~Tree();

void grow(int years); void age();

};

Tree::Tree(int n) { ages = n;

}

Tree::~Tree() {

age();}

void Tree::grow(int

years) {

ages += years;

}

void Tree::age() {

cout << "这棵树的年龄为

" << ages << endl;

}

void main()

{

Tree t(12);

t.age();

t.grow(4);

}

程序运行输出:

这棵树的年龄为12

这棵树的年龄为16

第五章 C++程序

的基本结构

5-12 在函数fn1()中定义

一个静态变量n,fn1()中

对n的值加1,在主函数

中,调用fn1()十次,显示

n的值。

解:

#include

void fn1()

{

static int n = 0;

n++;

cout << "n的值为" << n

<

}

void main()

{

for(int i = 0; i < 10;

i++)

fn1();

}

程序运行输出:

n的值为1

n的值为2

n的值为3

n的值为4

n的值为5

n的值为6

n的值为7

n的值为8

n的值为9

n的值为10

5-13 定义类X、Y、Z,函数h(X*),满足:类X有私有成员i,Y的成员函数

g(X*)是X的友元函数,实现对X的成员i加1,类Z 是类X的友元类,其成员函数f(X*)实现对X的成员i加5,函数h(X*)是X的友元函数,实现对X的成员i加10。在一个文件中定义和实现类,在另一个文件中实现main()函数。解:

#include "my_x_y_z.h" void main()

{

X x;

Z z;z.f(&x);

}

// my_x_y_z.h文件

#ifndef MY_X_Y_Z_H

class X;

class Y {

void g(X*);

};

class X

{

private:

int i;

public:

X(){i=0;}

friend void h(X*);

friend void Y::g(X*);

friend class Z;

};

void h(X* x) { x->i

=+10; }

void Y::g(X* x) { x->i

++; }

class Z {

public:

void f(X* x) { x->i +=

5; }

};

#endif // MY_X_Y_Z_H

程序运行输出:无

5-14 定义Boat与Car两

个类,二者都有weight属

性,定义二者的一个友元

函数totalWeight(),计算

二者的重量和。

解:

源程序:

#include

class Boat;

class Car

{

private:

int weight;

public:

Car(int j){weight = j;}

friend int

totalWeight(Car &aCar,Boat &aBoat);

};

class Boat

{

private:

int weight;

public:

Boat(int j){weight = j;} friend int

totalWeight(Car &aCar,Boat &aBoat);

};

int totalWeight(Car

&aCar, Boat &aBoat)

{

return aCar.weight + aBoat.weight;

}

void main()

{

Car c1(4);Boat b1(5);

cout <<

totalWeight(c1, b1) <<

endl;

}

程序运行输出:

9

第六章数

组、指针与字符串

6-1 数组A[10][5][15]一

共有多少个元素?

解:

10×5×15 = 750 个元素

1-2 在数组A[20]中第一个

元素和最后一个元素是哪

一个?

解:

第一个元素是A[0],最后

一个元素是A[19]。

6-3 用一条语句定义一个

有五个元素的整型数组,

并依次赋予1~5的初值。

解:

源程序:

int IntegerArray[5] =

{ 1, 2, 3, 4, 5 };

或:int IntegerArray[]

= { 1, 2, 3, 4, 5 };

6-7 什么叫做指针指针中

储存的地址和这个地址中

的值有何区别

解:

指针是一种数据类型,具

有指针类型的变量称为指

针变量。指针变量存放的

是另外一个对象的地址,

这个地址中的值就是另一

个对象的内容。

6-10 定义一个有五个元素

的整型数组,在程序中提

示用户输入元素值,最后

再在屏幕上显示出来。

解:

源程序:

#include

int main()

{

int myArray[5];

int i;

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

{

cout << "Value for myArray[" << i << "]: "; cin >> myArray[i];

}

for (i = 0; i<5; i++) cout << i << ": " << myArray[i] << "\n"; return 0;

}

程序运行输出:

Value for myArray[0]: 2 Value for myArray[1]: 5 Value for myArray[2]: 7 Value for myArray[3]: 8 Value for myArray[4]: 3 0: 2

1: 52: 7

3: 8

4: 3

6-11 引用和指针有何区别

何时只能使用指针而不能

使用引用

解:

引用是一个别名,不能为

NULL值,不能被重新分

配;指针是一个存放地址

的变量。当需要对变量重

新赋以另外的地址或赋值

为NULL时只能使用指针。

6-12 声明下列指针:

float类型变量的指针

pFloat,char类型的指针

pString和struct

customer型的指针prec。

解:

float *pfloat;

char *pString;

struct customer *prec;

6-13 给定float类型的指

针fp,写出显示fp所指向

的值的输出流语句。

解:

cout << "Value == " <<

*fp;

6-16 定义一个整型变量

a,一个整型指针p,一个

引用r,通过p把a的值改

为10,通过r把a的值改

为5

解:

void main()

{

int a;

int *p = &a;

int &r = a;

*p = 10;

r = 5;

}

6-21 编写一个函数,统计

一个英文句子中字母的个

数,在主程序中实现输入、输出。

解:

源程序:

#include #include

int count(char *str) {

int i,num=0;

for (i=0; str[i]; i++) {

if ( (str[i]>='a' && str[i]<='z') ||

(str[i]>='A' &&

str[i]<='Z') )

num++;

}

return num;

}

void main()

{

char text[100];cout << "输入一个英语句

子:" << endl;

gets(text);

cout << "这个句子里有"

<< count(text) << "个字

母。" << endl;

}

程序运行输出:

输入一个英语句子:

It is very interesting!

这个句子里有19个字母。

6-22 编写函数int

index(char *s, char

*t),返回字符串t 在字符

串s中出现的最左边的位

置,如果在s中没有与t

匹配的子串,就返回-1。

解:

源程序:

#include

int index( char *s,

char *t)

{

int i,j,k;

for(i = 0; s[i] != '\0';

i++)

{

for(j = i, k = 0;

t[k] != '\0' && s[j] ==

t[k]; j++, k++)

;

if (t[k] =='\0')

return i;

}

return -1;

}

void main()

{

int n;

char str1[20],str2[20];

cout << "输入一个英语单

词:";

cin >> str1;

cout << "输入另一个英语

单词:";

cin >> str2;

n = index(str1,str2);

if (n > 0)

cout << str2 << "在" << str1 << "中左起第" <<

n+1

<< "个位置。"<

cout << str2 << "不在" << str1 << "中。" << endl;

}

程序运行输出:

输入一个英语单词:abcdefgh

输入另一个英语单词:de de在abcdefghijk中左起第4个位置。

第七章继承与派生

7-7 定义一个基类,构造其派生类,在构造函数中输出提示信息,观察构造函数的执行情况。解:

#include

class BaseClass

{

public:

BaseClass();

};

BaseClass::BaseClass()

{

cout << "构造基类对象!"

<< endl;

}

class DerivedClass :

public BaseClass

{

public:

DerivedClass();

};

DerivedClass::DerivedCl

ass()

{

cout << "构造派生类对

象!" << endl;

}

void main()

{

DerivedClass d;

}

程序运行输出:

构造基类对象!

构造派生类对象!

7-8 定义一个Document

类,有name成员变量,从

Document派生出Book类,

增加PageCount变量。

解:

#include

#include

class Document

{

public:

Document(){};

Document( char *name );

char *Name; // Document

name.

C语言程序设计第三版习题库答案

C 语言程序设计(第三版)习题库 1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include<> main(){ floatr,h,C1,Sa,Sb,Va,Vb; scanf(__”%f ”__,&r); scanf(”%d ”,__&h _);; C1=2**r; Sa=*r*r; Sb=4*Sa; Va=4**r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb ); } 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include<> main(){ floatF,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c); } 3、有一函数:?? ???≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。 #include<> main(){ intx,y; printf("输入x :"); scanf("%d",&x); if(x<1){/*x<1*/ y=x; printf("x=%3d,y=x=%d\n",x,y);

}elseif(____x<10_______){/*1≤x-10*/ _____y=2*x-1_______; printf("x=%3d,y=2*x-1=%d\n",x,y); }else{/*x≥10*/ y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d\n",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }scanf("%d",&x);

《C语言程序设计》第三章 C语言基础 课堂笔记

页眉内容 《C语言程序设计》第三章C语言基础课堂笔记 §3.1 基本字符集、关键字和标识符 一.基本字符集 字符是C的基本元素,C语言允许使用的基本字符集: 1.26个大写字母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 2.26个小写子母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 3.10个阿拉伯数字0 1 2 3 4 5 6 7 8 9 4.其他字符!" # % & ' ( ) * + , - . / : < = > ? [ \ ] ^ _ { | } ~ 5.空格字符以及制表符合换行符等控制字符 二.关键字(P375,附录II) C中具有固定意义的字符串。 (1) C中的关键字共32个,必须用小写字母 (2) 关键字不可用于变量名、函数名等。 auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while 三.标识符 标识符用于命名变量、类型、函数和其他各种用户定义的对象,是由字母、下划线和数字三种字符组成。 (1) 第一个字符必须为字母或下划线 (2) C对标识符的长度规定为任意,Turbo C区分32 个字符 (3) C区分大小写 (4) 不允许关键字作为标识符 §3.2 C数据类型

C语言程序设计试题集与答案解析

一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。

13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.

C语言程序设计读书笔记题目

读书笔记注意事项: 1、 读书笔记要求至少有六个题目,在一类、二类、三类题目中各选两题,具体题目选择由 学生自行选择。 2、 每个题目必须包含所选题目,以及具体题目的程序实现过程,要求每行语句后都需要有 程序解释,如:int a,b,c; /*定义三个变量a,b,c ,变量类型为整型*/。 3、 读书笔记要求全部手写,在17周由学习委员统一交给任课教师。 一、一类题目 1. 输入任意3个整数,求它们的平均值。 2. 输入任意4个整数,求它们的平均值。 3. 输入一个非负数,计算以这个数为半径的圆周长和面积。 4. 将从键盘输入的实型十进制数分离为整数部分和小数部分后输出。如输入 123.45,输出为:123.45=123+0.45 5. 输入3个字符,反向输出这3个字符和它们的ASCII 码。 6. 输入4个字符,反向输出这4个字符和它们的ASCII 码。 7. 输入任意一个3位数,将其各位数字反序输出(例如输入123,输出321)。 8. 求前n 项的累加和。如S=1+2+3+…+n 。 9. 求n !。如fac=1*2*3*…*n 。 10.输入三角形的边长,求三角形的面积(面积=sqrt(s(s-a)(s-b)(s-c)), s=(a+b+c)/2)。 11.输入一个华氏温度,要求输出摄氏温度,公式为:)(32f 95 c -=,输出前要有提示信息,输出结果保留小数点后两位。 12.求前驱字符和后继字符。输入一个字符,找出它的前驱字符和后继字符,并 按ASCII 码值,按从大到小的顺序输出这3个字符及其对应的ASCII 码值。 13.输入一个非负数,计算以这个数为半径的圆周长和面积。 14.输入两个字符,若这两个字符的序号(ASCII 码)之差为偶数,则输出它们 的后继字符,否则输出它们的前驱字符。 15.输入整数a 和b ,如果a 能被b 整除,就输出算式和商,否则输出算式、整 数商和余数。 二、二类题目 1. 输入一个3位数,判断是否是一个“水仙花数”。水仙花数是指3位数的各位 数字的立方和等于这个3位数本身。例如:153=1*1*1+5*5*5+3*3*3。 2. 试编写一程序,将所有3位数中是“水仙花数”的输出。

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"); }

笔记排列组合C语言编程

排列组合 所谓排列,就是指从给定个数的元素中取出指定个数的元素进行排序。组合则是指从给定个数的元素中仅仅取出指定个数的元素,不考虑排序。排列组合的中心问题是研究给定要求的排列和组合可能出现的情况总数 排列组合的基本公式 A(n,m)=n(n-1)(n-2)……(n-m+1)=n!/(n-m) C(n,m)=A(n,m)/m!=n!/((n-m)!*m!) C(n,m)=C(n-1,m-1)+C(n-1,m) 排列实现 1.回溯实现 1)算法设计 应用回溯法产生排列A(n,m).设置一维a数组,a(i)在1—n中取值,出现数字相同时返回。 当i

long s=0; printf(“input n (n<10):”); scanf(“%d”,&n); printf(“input m (10) a[i]++; else break; } printf(“\n s=%ld\n”,s); }

(完整版)C语言程序设计练习及答案

《C语言程序设计》练习及答案 得分评卷人复查人 一、单选题,每小题1分,共60分(将正确答案的序号写在题目的括号中)。 1、结构化程序设计的三种基本控制结构是(D )。 A、主程序、子程序、函数 B、输入、处理、输出 C、调用,返回,转移 D、顺序、选择、循环 2、下列关于C程序变量的叙述, ( D )是错误的。 A、变量名必须由字母或下划线开头。 B、程序中的变量必须在被使用之前定义。 C、不同的基本类型的变量之间可以混合运算。 D、变量的数据类型决定变量的"作用域"。 3、能将C语言编写的源程序转换为目标程序的软件是(C )。 A、编辑程序 B、汇编程序 C、编译程序 D、解释程序 4、以下符号中,合法的用户标识符是( D )。 A、-p B、int C、3ab D、_xt_ 5、以下选项中,与m=n++完全等价的表达式是( C )。 A、m=++n B、m+=n+1 C、m=n, n=n+1 D、n=n+1,m=n 6、若有定义:int aa[8];。则以下表达式中不能代表数组元aa[1]的地址的是(C )。 A、&aa[0]+1 B、&aa[1] C、&aa[0]++ D、aa+1 7、表达式!5&(7+3)&&(4+5)的值是(A)。 A、0 B、1 C、5 D、9 8、以下选项中非法的C语言表达式是(A )。 A、x+1=x+1 B、0<=x<100 C、i=j==0 D、(char)(65+3) 9、在TURBO C中, int类型变量所占字节数是(B )。 A、1 B、2 C、4 D、8 10、C语言中基本的数据类型包括(B)。 A、整型,实型,逻辑型 B、整型,实型,字符型

C语言程序设计第二版习题参考答案

C语言程序设计第二版 习题参考答案 Document serial number【LGGKGB-LGG98YT-LGGT8CB-LGUT-

C语言程序设计习题参考答案 习题 1 一、判断题 1.在计算机中,小数点和正负号都有专用部件来保存和表示。 2.二进制是由0和1两个数字组成的进制方式。 3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。 4.在整数的二进制表示方法中,0的原码、反码都有两种形式。 5.有符号数有三种表示法:原码、反码和补码。 6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。 解:1.F2.T 3.T 4.T 5.T 6.T 二、单选题 1.在计算机中,最适合进行数值加减运算的数值编码是。 A. 原码 B. 反码 C. 补码 D. 移码 2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII 码为十进制数。 A. 112 B. 120 C. 121 D. 122 3.关于ASCII码,在计算机中的表示方法准确地描述是。 A. 使用8位二进制数,最右边一位为1 B. 使用8位二进制数,最左边一位为1 C. 使用8位二进制数,最右边一位为0 D. 使用8位二进制数,最左边一位为0 4.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是 ___________。 A. X∧Y=1000 B. X∨Y=1111 C. X⊕Y=0011 D. ˉY=1000 5.下列叙述中正确的是()。 A.高级语言就是机器语言 B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序 C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种 D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。 A.生成可执行文件B.生成目标文件 C.输出运行结果D.自动保存源文件 7.下列叙述中不正确的是()。 A.main函数在C程序中必须有且只有一个 B. C程序的执行从main函数开始,所以main函数必须放在程序最前面 C. 函数可以带参数,也可以不带参数。

C语言程序设计习题答案

C 语言程序设计习题答案 习题一 C 语言程序设计概述 一、名词解释 (1)程序P1 (2)程序设计P1 (3)机器语言P1 (4)汇编程序P2 (5)高级语言P2 (6)编译程序P3 (7)解释程序P3 (8)算法P4 (9)结构化的程序设计P9 二、简述题 1. 设计程序时应遵循哪些基本原则?P4 答:正确性、可靠性、简明性、有效性、可维护性、可移植性。 2. 算法的要素是什么?算法具有哪些特点? 答:算法的要素是:操作与控制结构;算法的特点有:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。 3. 算法的表示形式有哪几种? 答:算法的表示形式有:自然语言、传统流程图、伪代码、结构化的流程图(N_S 流程图,盒图)。 4. 有哪三种基本结构? 答:三种基本结构是:顺序结构、选择结构和循环结构。 5. 传统流程图与N-S 流程图最大的区别是什么? 答:N-S 流程图去掉了在传统流程图中常用的流程线,使得程序的结构显得更加清晰、简单。 三、用传统流程图、N-S 图分别表示求解以下问题的算法。 1. 有3个数a ,b ,c ,要求按由大到小的顺序把它们输出。 2. 依次将10个数输入,求出其中最大的数 和最小的数并输出。 3. 求1+2+3+…+100的值。

5. 求下列分段函数的值。 6. 求100~200之间的所有素数。 7. 求一元二次方程ax 2+bx+c=0的根。分别考虑d=b 2-4ac 大于0、等于0和小于0三种情况。 四、注释下面C 程序的各个组成部分。 main() /*主函数 */ { /*程序开始 */ int a,k,m; /*定义三个用来存放整数的变量 */ a=10; /*将整数10赋值给变量a */ k=2; /*将整数2赋值给变量k */ m=1; /*将整数1赋值给变量1 */ a=(k+m)*k/(k-m); /*先求出算术表达式的值,并将其赋值给变量a */ printf("%d\n",a); /*在屏幕上打印出变量a 的值 */ } /*程序结束 */ 习题二 数据类型、运算符与表达式 一、选择题 1~10:BCDCB DDBCA 11~20: ADDAA DBADC 21~28: DABAD CDD Y= 3X (X<1) 4X-1 (X=1) 5(X-1)+6 (1

十速单片机TM57MA15---C语言编程应用笔记 [兼容模式]

十速单片机TM57MA15 ---C语言编程应用笔记 Tomson.Liu Aug.17,2016 All for dream 一切为了梦想

一、端口设置的注意事项 1. PA7端口 PA7端口既可以作为复位端口,也可以作为普通IO口使用,作为普通IO口时,可作为的输入口。具体设置如下: INT2 PA7 端口作为INT2中断源时,只能是下降沿中断; https://www.sodocs.net/doc/b63097299.html,

一、端口设置的注意事项 2. PA7以外的端口 在设置单片机的端口方向时,如果将端口设置为施密特输入端口时,必须在初始化端口初始值时,将该端口置为高,否则端口输出为低电平,无法读取状态。 ------该单片机不像普通的51单片机,只需要设置端口方向后,就可以直接读取端口状态,而需要将端口初始化赋值为高,方可。 关于端口设置的描述,详见TM57MA15的datasheet中描述,如下:

二、寄存器使用时注意的事项 该单片机的内部寄存器分为F寄存器和R寄存器,由R寄存器只能写入,因此在程序中定义R寄存器变量时,该变量只能进行赋值,不能进行逻辑和算术运算。否则会出现一些意想不到的问题。另外对RAM中使用的关键变量,初始化时需要清零。RAM上电后,为不定态。在程序空间允许的情况下,上电后对使用的连续RAM空间进行清零操作。 三、端口初始化注意的事项 TM57MA15单片机,我公司有使用10Pin的小封装,该封装只有PA端口和PD0口。该单片机的标准封装为SOP-16,具有PA,PB和PD端口。10Pin的小封装,只是将未用引脚对外引出而已,芯片内部仍存在。因此初始化时,仍需对PB等未用的端口进行初始化,否则很难较低静态功耗。

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语言程序设计笔记

C语言程序设计笔记 1. 合法的标识符由字母(大、小写均可)、数字和下划线组成,并且必须以字母或下划线开头。 2. 整型常量:用不带小数点的数字表示。 实型常量:用带小数点的数字表示。 字符型常量:用带有单引号的字符表示。 3. #define是一条预处理命令,又被称为宏定义命令,其功能是把命令格式中的标识符定义为其后的常量值。例如#define PI 3.14 一经定义,以后在程序中所有出现该标识符的地方均以该常量值代之。 习惯上符号常量的标识符用大写字母表示,变量标识符用小写字母表示,以示区别。 用#define进行定义时,必须用“#”号作为一行的开头,在#define命令行的最后不得加分号结束 4. 字符常量就是用一对单引号括起来的单个字符。 5. 注意switch语句中的default,代表所有case以外的情况,在不能找到符合的case并且存在default时就会执行default后的语句。 6. 在switch结构中,如果没有break出现,当遇到符合的case时将会自动执行其后的所有case和default中的语句。可见break在switch结构中的重要性。有了break的switch 语句才起到真正的分支作用。 7. 语句标号和goto语句的使用。Goto语句为无条件转向语句,必须与语句标号配合使用。语句标号必须是标识符。 8. 真值表。或门中,即“||”,有真就真,全假才假。与门中,即&&,有假就假,全真才真。 9. C语言中,不只是1表示逻辑真,而是所有非零都表示逻辑上的真值。 10.要时刻注意if语句与其后的表达式的关系,是包含还是无关。注意花括号。 11.要记住C语言中的运算符的优先级。 12. switch结构中,case于表达式之间一定要有空格,例如case 10,而不是case10. 13. 必要的时候case后面的语句可以省略不写,意为与后面的case合并选择。 14. switch和case后的括号中的用于匹配的表达式的类型必须相同。各个case后的值应该不同。 15 .关于牛顿迭代法解方程: 若是解隐函数方程,如x=cosx,可以让x1=0,应该令x2=cosx1。注意分析,满足方程的根无非就是要x和cosx相等,想办法构造循环让x自己运算自己就可以。 如果未达到精度要求,再将x2给x1,然后计算出一个新的x2,这样一轮一轮的来,总会找到符合要求的解,跳出循环,此时x1和x2都可以作为方程的解。 若是解一般方程,x2有公式, x2=x1-f(x1)/f`(x1)

程序设计基础C备课笔记

《程序设计基础C》 第一课程序设计入门 一、问题->面向过程的程序设计思想+高级程序设计语言C语言的语法+集成开发环境(编辑+编译+链接+调试工具)+C语言函数库->可执行文件 例:已知一个圆的半径为3,求其面积。 #include main(){ printf("%f",3.14*3*3); } 二、冯诺依曼模型的组成和程序的执行过程 例:输入一个圆的半径,输出其面积。 半径radius、面积area、周长circumference[s?'k?mf?r?ns] 例:输入一个圆的半径,若其值大于0,则输出其面积,否则提示输入错误。 例:输入圆的半径,输出其面积。当输入值小于等于0时,程序结束。 三、VC6使用指导 1、单击Standard工具栏New Text File按钮,生成新的文本文件。 2、单击Standard工具栏Save按钮,保存文件,扩展名取.c。 3、单击Build Mini Bar工具栏Build按钮,构建程序(编辑Compile+链接Link)。会提示必须有项目,生成项目文件和工作区文件。 4、单击Build Mini Bar工具栏Execute Program按钮,执行程序。 5、执行exe文件。添加conio.h中的getch()函数。 4、双击dsw文件重新打开项目。 四、教学安排 第二课数据类型、运算符与表达式 一、数据类型 C程序中,每个数据都属于一个确定的、具体的数据类型。 数据区分类型的主要目的是便于对它们按不同方式和要求进行处理。 C语言提供的数据类型:P15。 二、整型 1、类型名 signed int=signed=int signed short int=short int=short signed long int = long int=long unsigned int=unsigned unsigned short int=unsigned short unsigned long int=unsigned long 各种类型所占位数: long int short 16位机32 16 16

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

c语言程序设计第五版习 题答案 Prepared on 24 November 2020

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

{ inta1,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 三.编程题 1.参照本章例题,编写一个C程序,用于显示如下信息: ************************* IloveCprograms! ************************* 【分析与提示】 ①要有文件包含语句#include<>。C语言中没有数据的输入、输出等功 能,数据的输入、输出都是通过调用系统提供的库函数scanf和printf 等来实现的。这些函数的说明都包括在文件中。 ②main是主函数的名称。用{}括起来的内容是函数体,函数体由若干 条语句组成,这是计算机要执行的部分,每条语句以分号“;”结束。 ③注意显示的信息有三行,所以要用到换行符“\n”。 参考代码: #include<> main() { printf("************************\n"); printf("IloveCprograms!\n"); printf("************************\n"); } 第2章数据类型及其运算一.简答题 1.C语言中的数据类型主要有哪几类 【解答】短整型(shortint) 整型整型(int) 长整型(longint) 基本类型字符型(char)(float) 实型(浮点型) 双精度(double) 枚举类型(enum) 数组类型

C程序设计 读书笔记

『C程序设计』读书笔记 关键字:c语言 原作者姓名:loose_went 文章原出处:https://www.sodocs.net/doc/b63097299.html, 写在前面: 《C程序设计》可以说是一本再基础不过的编程书了,但每读一遍的感觉却都是不同的,可以说,每读一遍,都会有很多新的收获。真所谓老书再读,回味无穷啊!此笔记是《C程序设计》谭浩强编著,清华大学出版社出版。除了将书中的重点知识点记下来外,也加入了我对知识点的理解,我想这一点是读书笔记的重要性所在。 第一章概述第二章数据类型、运算符与表达式 第三章最简单的c程序设计第四章逻辑运算和判断选取控制 第五章循环控制第六章数组 第七章函数第八章预编译处理 第九章指针第十章结构体与共用体 第十一章位运算第十二章文件 第一章概述 1. C语言的特点 ①语言简洁、紧凑,使用方便、灵活。共有32个关键字,9种控制语句。 ②运算符丰富,公有34种运算符。 ③数据结构丰富,数据类型有:整型、实型、字符型、数组、指针、结构体、共用体等。 ④具有结构化的控制语句(如if…else、while、do…while、switch、for) ⑤语法限制不太严格,程序设计自由度大。 ⑥允许直接访问物理地址,能进行位(bit)操作,可以直接对硬件操作。 ⑦生成目标代码质量高,程序执行效率高。 ⑧可移植性好。 2. C语言的用途 C虽不擅长科学计算和管理领域,但对操作系统和系统实用程序以及对硬件进行操作方面,C有明显的优势。现在很多大型应用软件也用C编写。 Top of Page 第二章数据类型、运算符与表达式

1. C的数据类型 C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。 2.常量与变量 常量其值不可改变,符号常量名通常用大写。变量其值可以改变,变量名只能由字母、数字和下划线组成,且第一个字符必须为字母或下划线。否则为不合法的变量名。变量在编译时为其分配相应存储单元。 3.整型数据 整型常量的表示方法:十进制不用说了,八进制以0开头,如0123,十六进制以0x开头,如0x1e。整型变量分为:基本型(int)、短整型(short int)、长整型(long int)和无符号型。不同机器上各类数据所占内存字节数不同,一般int型为2个字节,long型为4个字节。 4.实型数据 实型常量表示形式:十进制形式由数字和小数点组成(必须有小数点),如:0.12、.123、123.、0.0等。指数形式如123e3代表123×10的三次方。 实型变量分为单精度(float)和双精度(double)两类。在一般系统中float型占4字节,7位有效数字,double型占8字节,15~16位有效数字。 5.字符型数据 字符变量用单引号括起来,如'a','b'等。还有一些是特殊的字符常量,如'\n','\t'等。分别代表换行和横向跳格。 字符变量以char 来定义,一个变量只能存放一个字符常量。 字符串常量是由双引号括起来的字符序列。这里一定要注意'a'和"a"的不同,前者为字符常量,后者为字符串常量,c规定:每个字符串的结尾加一个结束标志'\0',实际上"a"包含两个字符:'a'和'\0'。 6.数值型数据间的混合运算 整型、字符型、实型数据间可以混合运算,运算时不同类型数据要转换成同一类型再运算,转换规则: char,short -> int -> unsigned -> long -> double <- float 7.运算符和表达式 c运算符包括: 算数运算符(+ - * / % ) 关系运算符( > < == >= <= != )

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

《C语言程序设计教程》习题参考答案 祝胜林主编 华南理工大学出版社 【习题1】 (1) 【习题2】 (2) 【习题3】 (3) 【习题4】 (5) 【习题5】 (8) 【习题6】 (11) 【习题7】 (14) 【习题8】 (16) 【习题9】 (16) 【习题10】 (18)

一、简答题(在课本中寻找答案,略) 1.1C程序的基本结构包括哪些内容? 1.2如何定义标识符? 1.3输入格式、输出格式的组成包括哪些内容? 1.4C语言函数分为哪两类? 1.5计算表达式的值应该考虑哪些方面? 1.6上机调试程序的步骤如何? 二、判断并改错 1.7C程序执行的入口是main()函数,所以main函数必须放在程序的开头。 错误:main函数可以放在程序的任何位置。并不限定在程序的开头。 1.8定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。 错误:不可以交叉出现,数据说明部分在执行语句部分的前面。 1.9编辑与编译不是一回事。 错误:不是一回事。编辑完成源程序的输入和修改;编译是对源程序进行语法检查,如果无语法错误,则生成目标程序。 1.10scanf("%d,%d",&x,&y);的正确输入格式:3,4<回车>。 正确 1.11注释内容太多会影响程序的执行效率。 错误:不会影响程序的执行效率。因为在编译时,编译系统将注释内容删除或用空格代替,所以注释内容不会编译到目标程序中。 1.12所有的数学公式可以直接出现在源程序中。 错误:数学公式需要转换成C语言能够接受的公式才能出现在源程序中。 三、编程题 1.13在屏幕上输出自己名字的拼音。 提示:中文名字叫?张三?,对应的拼音为?Zhang San?,输出用printf()函数。 1.14 输入圆的半径,求圆的周长,并将结果保留两位小数输出到屏幕上。 提示:定义圆的半径r,圆的周长:2*3.14*r,输出结果保留2位小数可以用%.2f 1.15输入两个整数,输出其中最大者。 提示:模仿例1.3 1.16 输入三个整数,输出其中最小者。 提示: min(min(a,b),c);

c语言程序设计题目及答案

一、程序设计共113 题第1 题题 号:319 #include "stdio.h" void wwjt(); int fun(int m) { int i,k=1; if(m<=1) k=0; for(i=2;i #include #define M 3 #define N 4 void wwjt(); void fun(int tt[M][N],int pp[N]) { int i,j; for(j=0;jpp[j]) pp[j]=tt[i][j]; } 第3 题题号:375 功能:从键盘上输入任意实数, 求出其所对应的函数值。 z=e 的x 次幂( x>10) z=log(x+3) (x>-3) z=sin(x)/((cos(x)+4) #include #include void wwjt(); double y(float x) { double z; if(x>10) z=exp(x); else if(x>-3) z=log(x+3); else z=sin(x)/(cos(x)+4); return(z); } 第4 题题号:334 功能:求给定正整数n 以内的素数之积。( n<28) #include #include"conio.h" void wwjt(); long fun(int n) { long i,k; long s=1; for(i=2;i<=n;i++) {for(k=2;k #include"conio.h" void wwjt(); long int fun(int n) { long s=1,i; for(i=2;i<=n;i++) if(n%i==0)s=s*i; return s; } 第6 题题号:50 功能:求出菲波那契数列的前一项与后一项之比的极限的 近似值例如:当误差为0.0001 时,函数值为0.618056 。 #include #include "math.h" void wwjt(); float fun() { float f1=1,f2=1,f3; float r1=2,r2; do {r2=r1; r1=f1/f2; f3=f1+f2; f1=f2; f2=f3; }while(fabs(r1-r2)>1e-4); return r1; } 第7 题题号:394 功能:产生20个[30,120] 上的随机整数放入二维数组 a[5][4] 中, 求其中的最小值。 #include "stdlib.h" #include void wwjt(); int amin(int a[5][4]) { int i,j,s; s=a[0][0];

相关主题