当前位置:文档之家› c程序设计语言习题与答案

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

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

习题1及其解答

选择题

1.一个最简单的C++程序,可以只有一个( c )。

(a) 库函数(b) 自定义函数(c) main函数(d) 空函数

2.用C++语言编制的源程序要变为目标程序必须要经过( d )。

(a) 解释(b) 汇编(c) 编辑(d) 编译

3. C++程序中的简单语句必须以( b )结束。

(a) 冒号(b) 分号(c) 空格(d)花括号

4.有说明 int a=0; double x=; 以下语句中,( c )属于编译错误。

(a) x=a/x; (b) x=x/a; (c) a=a%x; (d) x=x*a;

5. 执行C++程序时出现的“溢出”错误属于( c )错误。

(a) 编译(b) 连接(c) 运行(d) 逻辑

6.下列选项中,全部都是C++关键字的选项为( c )。

(a) while IF Static (b) break char go

(c) sizeof case extern (d) switch float integer

7. 按C++标识符的语法规定,合法的标识符是( a )。

(a) _abc (b) new (c) π(d) “age“

8.C++语句中,两个标识符之间( a )不能

..作为C++的分隔符。

(a) 数字(b) ; (c) : (d) +

9.下列正确的八进制整型常量表示是( b )。

(a) 0a0 (b) 015 (c) 080 (d) 0x10

10.下列错误的十六进制整型常量表示是( c )。

(a) 0x11 (b) 0xaf (c) 0xg (d) 0x1f

11.在下列选项中,全部都合法的浮点型数据的选项为( b )。

(a) 15. 2e-4 (b) -1e+5

(c) -12345. e-5 (d) (1+4) 8e+2

12.下列正确的字符常量为( d )。

(a) “a”(b) ‘name’(c) a (d) ‘\101’

13.下列选项中,( d )不能

..交换变量a和b的值。

(a) t=b; b=a; a=t; (b) a=a+b; b=a-b; a=a–b;

(c) t=a; a=b; b=t; (d) a=b; b=a;

14.关于下列语句叙述错误的是( a )。

int i=10, *p=&i;

(a) p的值为10 (b) p指向整型变量i

(c) *p表示变量i的值(d) p的值是变量i的地址

15.有以下变量说明,下面不正确

...的赋值语句是( b )。

int a=5, b=10, c; int *p1 = &a, *p2 = &b;

(a) *p2 = b ; (b) p1 = a ;

(c) p2 = p1 ; (d) c = *p1 *( *p2 ) ;

16.有以下变量说明,下面正确的语句是( b )。

int a=10, b; int &pa=a, &pb=b;

(a) &pb = a; (b) pb = pa; (c) pb = &pa; (d) *pb = *pa; 17.执行下面语句序列后,a和b的值分别为( b )。

int a = 5 , b = 3 , t ;

int &ra = a ;

int &rb = b ;

t = ra ; ra = rb ; rb = t ;

(a) 3和3 (b) 3和5 (c) 5和3 (d) 5和5

18. 在下列运算符中,( d )优先级最高。

(a) <= (b) *= (c) + (d) *

19.在下列运算符中,( d )优先级最低。

(a) ! (b) && (c) != (d) ? :

20.设 int i=1, j=2; 则表达式 i+++j 的值为( c )。

(a) 1 (b) 2 (c) 3 (d) 4

21.设 int i=1, j=2; 则表达式 ++i+j 的值为( d )。

(a) 1 (b) 2 (c) 3 (d) 4

22.在下列表达式选项中,( c )是正确。

(a) ++(a++) (b) a++b (c) a+++b (d) a++++b

23.已知 int i=0, j=1, k=2; 则逻辑表达式 ++i||--j&&++k 的值为( b )。

(a) 0 (b) 1 (c) 2 (d) 3

24. 执行下列语句后,x的值是( d ),y的值是( c )。

int x, y ;

x = y = 1; ++ x || ++ y ;

(a) 不确定(b) 0 (c) 1 (d) 2

25.设x为整型变量,不.能.正确表达数学关系 1<x<5 的C++逻辑表达式是( a )。

(a) 1< x <5 (b) x==2||x==3||x==4

(c) 1=5)

26. 已知 int x=5; 执行下列语句后,x的值为( c )。

x += x -= x * x;

(a) 25 (b) 40 (c) –40 (d) 20

27. 设 int a=1, b=2, c=3, d=4; 则以下条件表达式的值为( a )。

a <

b ? a :

c <

d ? c : d

(a) 1 (b) 2 (c) 3 (d) 4

28. 以下逗号表达式的值为( d )。

( x = 4 * 5, x * 5 ), x + 25

(a) 25 (b) 20 (c) 100 (d) 45

把下列数学表达式写成c++算术表达式

1.

y

x ++

+

11111

2. x{x[x(ax+b)+c]+d}+e

3. ln (1+|b

a b a -+|10

) 4.

ο48cos 2

+

5. cot )

11(2

2x x +- 6. lg(a 2+ab+b 2)

【解答】

1. 1/(1 + 1/(1 + 1/(x + y)))

2. x * ( x * ( x * ( a * x + b ) + c ) + d ) + e

3. log( 1 + pow( fabs( ( a + b )/( a – b ) ),10)

4. sqrt( 1 + 2 * cos( 48 * 180 ) )

5. 1/tan( ( 1 - x*x )/( 1 + x*x))

或者 cos( ( 1 - x*x )/( 1 + x*x ) )/sin( ( 1 - x*x )/( 1 + x*x ) ) 6. log10( a * a + a * b + b * b )

用逻辑表达式表示下列条件

1. i 被j 整除

2. n 是小于正整数k 的偶数

3. 1≤x<10

4. x ,y 其中有一个小于z

5. y ?[–100,–10],并且 y ? [10,100]

6. 坐标点(x, y )落在以(10, 20)为圆心,以35为半径的圆内

7. 三条边a ,b 和c 构成三角形

8. 年份Year 能被4整除,但不能被100整除或者能被400整除 【解答】 1. i%j == 0

2.(n

3. 1<=x && x<10

4. x

5. !( y>=-100 && y<=-10 ) && !( y>=10 && y<=100 )

6. sqrt(pow((x-10),2) + pow((y-20),2))< 35

7. a+b>c && b+c>a && c+a>b

8. (year%4 == 0) && (year%100!=0)||(year%400==0)

阅读下列程序,写出执行结果

1.

#include using namespace std; int main()

{ int a = 1, b = 2; bool x, y;

cout << (a++)+(++b) << endl;

cout << a % b << endl;

x = !a>b;

y = a-- && b;

cout << x << endl;

cout << y << endl;

}

【解答】

4

2

1

2.

#include

using namespace std;

int main()

{ int x,y,z,f;

x = y = z = 1;

f = --x || y-- && z++;

cout << "x = " << x << endl;

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

cout << "z = " << z << endl;

cout << "f = " << f << endl;

}

【解答】

x=0

y=0

z=2

f=1

3.

#include

#include

using namespace std;

int main()

{ int a=123;

int &ra=a;

int *pa=&a;

cout<

}

【解答】

123 173 7b

思考题

1.什么叫数据类型?变量的类型定义有什么作用?

【解答】

数据“类型”是对数据的抽象。类型相同的数据有相同的表示形式、存储格式以及相关的操作。定义一个变量时,计算机根据变量的类型分配存储空间,并以该类型解释存放的数据。

2.普通数据类型变量和指针类型变量的定义、存储、使用方式上有何区别?请编写一个程序验证之。

【解答】

验证程序:

#include

using namespace std;

int main()

{ int a,b,c;

cout<<"a,b,c= ";

cin>>a>>b>>c;

入一个三位整数,将它反向输出。

【解答】

#include

using namespace std;

int main()

{ int x,i,j,k;

cout << "please input x:";

cin >> x;

i = x/100;

j = x/10 %10;

k = x%10;

cout << k << j << i << endl;

}

2.输入平面上某点横坐标x和纵坐标y,若该点在由图表示的方块区域内,则输出1;否则,输出0。

图正方形

【解答】

#include

using namespace std;

int main()

{ double x,y,b;

cout << "please input x,y:";

cin >> x >> y;

b = ( -2<=x ) && ( x<=2 ) && ( -2<=y ) && ( y<=2 );

cout << b << endl;

}

3.输入三个整数,求出其中最小数(要求使用条件表达式)。

【解答】

#include

using namespace std;

int main()

{ int a,b,c,temp,min;

cout << "please input a,b,c:";

cin >> a >> b >> c;

temp = ( a

min = ( temp

cout << "min=" << min << endl;

}

习题 2及其解答

选择题

1.已知 int i=0, x=1, y=0 ; 在下列选项使i的值变成1的语句是( c )。

(a) if( x&&y ) i++ ; (b) if( x==y ) i++ ;

(c) if( x||y ) i++ ; (d) if( !x ) i++ ;

2.设有函数关系为y=??

?

??>=<-0

10001

x x x ,下面选项中能正确表示上述关系为( c )。

(a) y = 1 ; (b) y = -1 ;

if( x >= 0 ) if( x != 0 )

if( x == 0 ) y = 0 ; if( x > 0 ) y = 1 ; else y = -1; else y = 0; (c) if( x <= 0 ) (d) y = -1 ; if( x < 0 ) y = -1 ; if( x <= 0 )

else y = 0 ; if( x < 0 ) y = -1 ; else y = 1 ; else y = 1 ; 3.假设i=2,执行下列语句后i 的值为( b )。

switch( i ) { case 1 : i ++ ; case 2 : i -- ; case 3 : ++ i ; break ; case 4 : -- i ; default : i ++ ; } (a) 1

(b) 2

(c) 3

(d) 4

4.已知int i=0,x=0; 下面while 语句执行时循环次数为( d )。

while( !x && i< 3 ) { x++ ; i++ ; } (a) 4

(b) 3

(c) 2

(d) 1

5.已知int i=3;下面do_while 语句执行时循环次数为( b )。

do{ i--; cout<

(b) 2

(c) 3

(d) 无限

6.下面for 语句执行时循环次数为( b )。

int i;

for ( i=0,j=5;i=j; )

{ cout << i << j << endl;

i++; j--; } (a) 0

(b) 5

(c) 10

(d) 无限

7.以下死循环的程序段是( b )。

(a) int x; for( int x=0 ; x<3 ; ) { x++ ; } ; (b) int k = 0; do { ++k ; } while( k>=0 ) ; (c) int a=5 ; while( a ) { a-- ; } ; (d) int i=3 ; for( ; i ; i -- ) ;

阅读下列程序,写出执行结果

1.

#include

using namespace std;

int main()

{ int a,b,c,d,x;

a = c = 0;

b = 1; d = 20;

if( a ) d = d-10;

else if( !b )

if( !c )

x = 15;

else x = 25;

cout << d << endl;

}

【解答】

20

2.

#include

using namespace std;

int main()

{ int a = 0, b = 1;

switch( a )

{ case 0: switch( b )

{ case 0 : cout<<"a="<>a;

cout<<"b: "; cin>>b;

if( a=b )

cout<

else

cout<

}

程序运行后,输入a的值为4,b的值为9,显示结果如下:

a: 4

b: 9

9等于9

【解答】

在if语句的判断表达式(a=b)中,赋值号“=”应该是逻辑等“==”。从语法上,C++的if语句把a=b 这个赋值表达式视为逻辑表达式,没有编译错误。a=b的值决定于b。若b的输入值不等于0,if作为逻辑真(true),否则作为逻辑假(false)。所以,题目中输入b的值虽然不等于a,但表达式a=b为逻辑true,执行了if语句的第1个分支。

编程题

1.输入某学生成绩,若成绩在85分以上输出“very good”,若成绩在60分到85分之间输出“good”,若成绩低于60分输出“no good”。

【解答】

#include

using namespace std;

int main()

{ double score;

cout << "please input score:";

cin >> score;

if ( score>=85 ) cout << "Very good!" ;

else if ( score>=60 ) cout << "Good!";

else cout << "No good!";

}

2.输入三个整数,按从小到大的顺序输出它们的值。

【解答】

#include

using namespace std;

int main()

{ int a, b, c, t;

cout << "a, b, c="; cin >> a >> b >> c; if(a>b) { t=a; a=b; b=t; } if(a>c) { t=a; a=c; c=t; } if(b>c) { t=b; b=c; c=t; }

cout<< a << '\t'<< b << '\t' << c << endl; }

3.输入三角形的三条边,判别它们能否形成三角形,若能,则判断是等边、等腰、还是一般三角形。 【解答】

#include using namespace std; int main()

{ double a, b, c ; cout << "a, b, c = " ; cin >> a >> b >> c ;

if ( a+b > c && b+c > a && c+a > b ) { if ( a == b && b == c ) cout << "等边三角形!" << endl; else if ( a == b || a == c || b == c ) cout << "等腰三角形!" << endl;

else cout << "一般三角形!" << endl;

} else

cout << "不能形成三角形!" << endl ; }

4.输入百分制成绩,并把它转换成五级分制,转换公式为:

????

?

???

?

-----=59

069607970898010090(不合格)

(合格)(中等)(良好)(优秀)(级别)E D C B A grade

【解答】

#include using namespace std; int main()

{ double score; char grade; cout << "score="; cin >> score;

if ( score >= 0 && score <= 100 )

{ switch ( int( score ) /10 )

{ case 10:

case 9: grade = 'a'; break;

case 8: grade = 'b'; break;

case 7: grade = 'c'; break;

case 6: grade = 'd'; break;

case 5:

case 4:

case 3:

case 2:

case 1:

case 0: grade = 'e'; break;

}

}

else

{ cout <<"数据输入错误!"<< endl;

goto end;

}

cout << grade << endl;

end: ; << endl; goto end;

case 'r': cout << "Scissor is crushed by rock." << endl; goto end;

case 'p': cout << "Scissor cuts paper." << endl; goto end;

default : cout << "second input error!" << endl ; goto end;

}

case 'r':

switch ( second )

{ case 's': cout << "Rock crushes scissor." << endl; goto end;

case 'r': cout << "Rock ties rock." << endl; goto end;

case 'p': cout << "Rock is wrapped by paper." << endl; goto end;

default : cout << "second input error!" << endl; goto end;

}

case 'p':

switch ( second )

{ case 's': cout << "Paper is cut by scissor." << endl; goto end;

case 'r': cout << "Paper wraps the rock." << endl; goto end;

case 'p': cout << "Paper ties paper." << endl; goto end;

default : cout << "second input error!" << endl; goto end;

}

default : cout << "First input error!" << endl; goto end;

} end: ; }

6.输入一个整数,输出该整数的所有素数因子。例如,输入120,输出为2、2、2、3和5。 【解答】

#include using namespace std; int main() { int m,i = 2;

cout << "please input m:"; cin >> m; while( i<=m ) if( m % i == 0 ) { cout << i << ","; m = m / i; } else i++; }

7.使用迭代公式)2/;,2,1,0(2/)/(01a x n x a x x n n n ==+=+Λ编程序求某一正整数a 的平方根。 【解答】

#include #include using namespace std; int main()

{ const double eps = 1e-8; double a,x0,x;

cout << "please input a:"; cin >> a; x0 = a / 2;

x = ( x0 + a/x0 )/2; while( fabs( x-x0 )>eps ) { x0 = x; x =( x0 + a/x0 )/2;

}

cout << x << endl; }

8.已知X=0ο

,10ο

,20ο

, (180)

,求sin x ,cos x 和tan x 的值。 【解答】

#include

#include

#include

using namespace std;

int main()

{ const double pi = 3.;

int i;

double x,y1,y2,y3;

cout << setw(2) << "x" << setw(15) << "sin(x)" << setw(15)

<< "cos(x)" << setw(15) << "tg(x)" << endl;

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

{ x = i*10*pi/180;

y1 = sin( x );

y2 = cos(x);

y3 = y1/y2;

cout << setw(2) << i << setw(15) << y1 << setw(15)

<< y2 << setw(15) << y3 << endl;

}

}

9.在100到200中找出同时满足用3除余2,用5除余3和用7除余2的所有整数。

【解答】

#include

using namespace std;

int main()

{ int i;

for( i=100; i<=200; i++ )

{ if ( ( i % 3 == 2) && ( i % 5 == 3 ) && ( i % 7 == 2 ) )

cout << i << endl;

}

}

10.求100到999中的水仙花数。所谓水仙花数是指一个三位数,它的每位数字的立方之和等于该数。例如,因为153=13+53+33,所以153为水仙花数。

【解答】

#include

using namespace std;

int main()

{ int i,a,b,c;

for( i=100; i<=999; i++ )

{ a = i/100;

b = ( i-a*100 ) / 10;

c = i - a*100 - b*10;

if ( i == a*a*a + b*b*b + c*c*c ) cout << i <

}

}

11.求1000之内的所有完数。所谓完数是指一个数恰好等于它的所有因子之和。例如,因为6=1+2+3,所以6为完数。

【解答】

#include

using namespace std;

int main()

{ int i,j,s;

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

{ s = 0;

for( j=1; j

if ( i % j == 0 ) s = s + j;

if ( i == s ) cout << i << endl;

}

}

12.编一程序显示由符号组成的三角形图案。例如,程序运行后,

屏幕显示:How many lines ?

用户输入: 5

屏幕显示:What character ?

用户输入:*

则输出如下图案。

*

* * *

* * * * *

* * * * * * *

* * * * * * * * *

【解答】

#include

using namespace std;

int main()

{ int i,j,k,n;

char ch;

cout<<"How many lines ?\n";

cin>>n;

cout<<"What character ?\n";

cin>>ch;

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

{ for( k=1; k<=n-i; k++ ) cout << " ";

for( j=1; j<=2*i-1; j++ ) cout << ch ;

cout << endl;

}

}

13.已知XYZ+YZZ=532,其中X,Y和Z为数字,编一程序求出X,Y和Z的值。【解答】

#include

using namespace std;

int main()

{ int x,y,z,i;

for( x=1; x<=9; x++ )

for( y=1; y<=9; y++ )

for( z=0; z<=9; z++ )

{ i = 100*x + 10*y + z + 100*y + 10*z + z;

if ( i == 532 )

cout<<"x="<

}

}

习题3及其解答

选择题

1.以下正确的函数原型为( d )。

(a) f1( int x; int y ); (b) void f1( x, y );

(c) void f1( int x, y ); (d) void f1( int, int );

2.有函数原型 void fun2( int ); 下面选项中,不正确的调用是( c )。

(a) int a = 21; fun2( a ); (b) int a = 15; fun2( a*3 );

(c) int b = 100; fun2( &b ); (d) fun2( 256 );

3.有函数原型 void fun3( int * ); 下面选项中,正确的调用是( c )。

(a) double x = ; fun3( &x );(b) int a = 15 ; fun3( a* );

(c) int b = 100; fun3( &b ); (d) fun3( 256 );

4.有函数原型 void fun4( int & ); 下面选项中,正确的调用是( c )。

(a) int a = ; fun4( &a ); (b) int a = 15; fun4( a* );

(c) int b = 100; fun4( b ); (d) fun4( 256 ) ;

5.有声明

void fun5( int * & ); int a , *p = &a;

下面选项中,正确的调用是( b )。

(a) fun5( &a ); (b) fun5( p ); (c) fun5( *a ); (d) fun5( *p ) ;

6.有声明

int fun6( int ),(*pf)(int) = fun6;

下面选项中,正确的调用是( c )。

(a) int a=15; int n=fun6(&a); (b) int a = 15; cout<<(&pf)(a);

(c) cout<<(*pf)( 256 ); (d) cout << *pf( 256 );

7.在VC中,若定义一个函数的返回类型为void,以下叙述正确的是( c )。

(a) 函数返回值需要强类型转换(b) 函数不执行任何操作

(c) 函数本身没有返回值(d) 函数不能修改实际参数的值

8.函数参数的默认值不允许为( c )。

(a) 全局常量(b) 直接常量(c) 局部变量(d) 函数调用

9.使用重载函数编程序的目的是( a )。

(a) 使用相同的函数名调用功能相似的函数(b) 共享程序代码

(c) 提高程序的运行速度(d) 节省存贮空间

10.下列的描述中( b )是错误的。

(a) 使用全局变量可以从被调用函数中获取多个操作结果

(b) 局部变量可以初始化,若不初始化,则系统默认它的值为0

(c) 当函数调用完后,静态局部变量的值不会消失

(d) 全局变量若不初始化,则系统默认它的值为0

11.下列选项中,( c )的具有文件作用域。

(a) 语句标号(b) 局部变量(c) 全局变量(d) 静态变量

阅读下列程序,写出执行结果

1.

#include

using namespace std;

#include

int f( int ) ;

int main()

{ int i;

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

cout << f( i ) << endl;

}

int f( int a )

{ int b = 0 , c = 1;

b ++; c++;

return int( a + pow( double(b), 2 ) + c );

《C程序设计语言》样卷

韩山师范学院2011年专升本插班生考试样卷 计算机科学与技术专业高级语言程序设计试卷(A卷) 一、填空题(每空1分,共10分) 1.C程序的基本单位是________。 2.C语言源程序文件的后缀是________。 3.C语言中的标识符由________、________和字母组成。 4.设y为float型变量,执行表达式y=6/5之后,y的值是________。 5.在C语言中,要求运算量必须是整型的运算符是___________。 6.如果函数值的类型与返回值的类型不一致时,应该以___________为准。7.已知int a=8,*p=&a;,则*p的值是___________。 8.把一些不同类型的数据作为一个整体来处理时,常用___________。9.若x=2,y=3,则x|y<<2的结果是___________。 二、单项选择题(每小题1.5分,共30分) A.顺序结构、选择结构、循环结构B.递归结构、循环结构、转移结构C.嵌套结构、递归结构、顺序结构D.循环结构、转移结构、顺序结构2.在一个C语言的源程序中,以下叙述正确的是()。

A.必须有除主函数外其他函数B.可以有多个主函数 C.必须有一个主函数D.可以没有主函数 3.以下叙述正确的选项是()。 A.C语言的源程序不必通过编译就可直接执行 B.C语言中的每条语句最终都将被转换成二进制的机器指令 C.C语言程序经编译形成的二进制代码可以直接执行 D.C语言中的函数不可以单独进行编译 4.算法是指为解决某个特定问题而采取的正确且有限的步骤,下面不属于算法的5个特性的是( )。 A.有零个输入或多个输入B.高效性C.有穷性D.确定性5.以下能正确定义且赋初值的语句是( )。 A.int n1=n2=10; B.char c=32; C.float f=f+1.1; D.double x=12.3E2.5 6.有以下程序: main() { char a='a',b; printf("%c",++a); printf("%c\n",b=a++); } 程序运行后的输出结果是( )。 A.bb B.bc C.ab D.ac 7.以下程序段的输出结果是( )。 int a=1234; printf("%2d ",a); A.12 B.34 C.1234 D.提示出错 8.有以下程序:

C语言程序设计(第二版)课后答案 丁亚涛

习题二 一、选择题 二、填空题 1.18 2.int float double 3.10 11 4.8 16 10 5.% 三、阅读题 1. 10,10,9,10 2. j=1, i=2 k=3,i=3 i=3,i=2 k=1,i=1 习题三 一、选择题 二、填空题 1. 从键盘上读入一个字符在屏幕上输出一个字符 #include 2. 按十进制整数形式输出,有符号 按16进制整数形式输出,没有符号 按十进制小数形式输出,输出的数据长度为7位,有2位小数 按字符形式输出一个字符 3. 按十进制整数形式输入数据 按十进制整数形式输入三位数据 跳过3位十进制数据 按字符形式输入一个字符 4. 分程序;; 5. 大写字母L 6. -1 三、阅读题 1. 6 6 6.00 6.00

2. x=127,x= 127,x=177,x=7f y=123.4567,y= 123.46,y=123,45670 3. 2,1 4. 1234 5. 4,3 6. -6,-6 习题四一、选择题 二、填空题 1. 非0 0 、 2. k==0 3. n%7==0&&n%==0 else 三、阅读题 1. a=1,b=0 2. c=1 习题五一、选择题 二、填空题 1. for语句 do-while 语句 while 语句 2. a=14,y=26 3. k=14,n=-1 4. 39 5. s=19 6. 22222 7. 10 8. 7 9. 8 10. 5,5 三、改错题

1. for( i=0;i<5;i++);for控制部分用分号分隔 2. int j=0;while(j<10){j++;i=j} 分号是多余的,否则会造成死循环 3. int s=1,i=1; while(i<5) {s*=i; i++; } 两条语句需要加上花括号 4. while(j<10);(分号不能少) 5. continue改为break 习题六 一、选择题 二、填空题 1. 20 0 19 2. 数组名 3. 越界 4. 6 5. j==k a[j][k]=1; a[j][k]=0; 三、阅读题 1. 6 5 4 3 2 1 2. aaa bbb ccc ddd 3. 2,2,1 习题七 一、选择题 二、填空题 1. 整个函数体内局部 2. 整型 3. k<=b return y;

C程序设计语言 (第二版) 课后答案第一章

Chapter 1 Exercise 1-1 Run the “hello world” program on your system. Experiment with leaving out parts of the program, to see what error message you get. #include int main() { printf("hello, "); printf("world"); printf("\n"); return 0; } Exercise 1-2 Experiment to find out what happens when printf’s argument string contains \c, where c is some character not list above. Exercise 1-3 Modify the temperature conversion program to print a heading above the table. #include int main() { float fahr, celsius; float lower, upper, step; lower = 0; upper = 300; step = 20; fahr = lower; printf("Fahrenheit temperatures and their centigrade or Celsius equivalents\n"); while (fahr <= upper) { celsius = (5.0/9.0) * (fahr-32.0); printf("%3.0f %6.1f\n", fahr, celsius); fahr = fahr + step; } return 0; }

第5章-C语言程序设计(第2版)教材习题答案

【教材】《C语言程序设计(第2版)》清华大学出版社,黄保和,江弋编著。2011年10月第二版。ISBN:978-7-302-26972-4。售价:35元。 【答案版本】本习题答案为2012年2月修订版本。 一、选择题 1. 设有程序段”int k=10; while(k=0) k=k-1;”,则下面叙述正确的是D)循环体语句一次也不执行。 A. while循环执行10次 B. 循环是无限循环 C. 循环体语句执行一次 D. 循环体语句一次也不执行 2. 设有程序段”int x=0,s=0;while(!x!=0) s+=++x; printf(“%d”,s);”则A)运行程序段后输出1。 A. 运行程序段后输出1 B. 程序段执行无限次 C. 运行程序段后输出0 D. 程序段中的控制表达式是非法的 3. 下面循环语句中,错误的是D) int a=1,b=2;do b-- while(b= =0);。 A. int a=1,b=2; while(b--); B. int a=1,b=2; do a++; while(a==b); C. int a=1,b=2; while(a=3); D. int a=1,b=2; do b-- while(b==0); 4. 已知”int i=5;”,下列do…while循环语句的循环次数为C) 5。 do{ printf(“%d\n”,i--); } while(i!=0); A. 0 B. 1 C. 5 D. 无限 5. 循环语句”for(int i=0,j=10; i==j; i++,j--)”的循环次数是A) 0。 A. 0 B. 5 C. 10 D. 无限 6. 下述有关break语句的描述中,不正确的是C) break语句用于if语句的内嵌语句内,它结束该if语句。 A. break语句用于循环体内,它将结束该循环 B. break语句用于开关语句,它结束该开关语句 C. break语句用于if语句的内嵌语句内,它结束该if语句 D. break语句在一个循环体内可使用多次 7. 下面关于循环语句的描述中,错误的是B)循环体内必须同时出现break语句和continue 语句。 A. 循环体内可以包含有循环语句 B. 循环体内必须同时出现break语句和continue语句 C. 循环体内可以出现选择语句 D. 循环体可以是空语句 8. 以下不是死循环的是D)for(;(c=getchar()!=’\n’);)printf(“%c”,c);。 A. for(; ; x+=i); B. while(1) { x++; } C. for( i=10; ; i--) sum+=i; D. for( ; (c=getchar() )!=’\n’ ; ) printf( “%c”,c); 9. 执行语句”for(i=0;i++<3;);”后,变量i的值为C) 4。 A.2 B. 3 C. 4 D. 5 10.语句”for(x=0,y=0;y!=1&&x<4;x++);”是C)循环4次。 A. 无限循环 B. 循环次数不定 C. 循环4次 D. 循环3次

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

一.填空题 26.C#源程序的后缀名为______.cs________。 26.C#中每个int 类型的变量占用____4___个字节的内存。 26.C#的每行语句以________分号_______结尾。 26.布尔型的变量可以赋值为关键字_____true__________或_____false_________。 26.如果int x的初始值为5,则执行表达式x - =3之后,x的值为_____2_________。 26.do...while语句在执行循环体_____之后________测试语句是否满足循环条件。 26.关键字_______class________表示一个类的定义。 26.如果一个类包含一个或多个抽象方法,它是一个_________抽象_____________类。 26.try块运行后,总是会执行_________finally_____________块中的代码。 26.一个数组如果有两个索引值,那么它是__________二维__________数组。 二.单项选择题 1.在对SQL Server 数据库操作时应选用()。 A、SQL Server .NET Framework 数据提供程序; B、OLE DB .NET Framework 数据提供程序; C、ODBC .NET Framework 数据提供程序; D、Oracle .NET Framework数据提供程序; 2.下列选项中,()是引用类型。 A、enum类型 B、struct类型 C、string类型 D、int类型 3.C#的数据类型有() A、值和调用类型; B、值和引用类型; C、引用和关系类型; D、关系和调用类型 4.下列描述错误的是() A、类不可以多重继承而接口可以; B、抽象类自身可以定义成员而接口不可以; C、抽象类和接口都不能被实例化; D、一个类可以有多个基类和多个基接口; 5.下列关于构造函数的描述正确的是() A、构造函数可以声明返回类型。 B、构造函数不可以用private修饰 C、构造函数必须与类名相同 D、构造函数不能带参数 6.int[][] myArray3=new int[3][]{new int[3]{5,6,2},new int[5]{6,9,7,8,3},new int[2]{3,2}}; 那么myArray3[2][2]的值是( )。 A、9 B、2 C、6 D、越界 7.接口是一种引用类型,在接口中可以声明(),但不可以声明公有的域或私有的成员变量。 A、方法、属性、索引器和事件; B、方法、属性信息、属性; C、索引器和字段; D、事件和字段; 8.在https://www.doczj.com/doc/c54403444.html,中,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,下面叙述错误 的是()。 A、insert、update、delete等操作的Sql语句主要用ExecuteNonQuery()方法来执行; B、ExecuteNonQuery()方法返回执行Sql语句所影响的行数。 C、Select操作的Sql语句只能由ExecuteReader()方法来执行; D、ExecuteReader()方法返回一个DataReder对象; 9.Winform中,关于ToolBar控件的属性和事件的描述不正确的是( )。 A、Buttons属性表示ToolBar控件的所有工具栏按钮 B、ButtonSize属性表示ToolBar控件上的工具栏按钮的大小,如高度和宽度 C、DropDownArrows属性表明工具栏按钮(该按钮有一列值需要以下拉方式显示)旁边是否显示下箭 头键 D、ButtonClick事件在用户单击工具栏任何地方时都会触发

程序设计基础——基于C语言(第2版) 课后习题参考答案汇总

习题1参考答案 1.1解释以下术语 (1)计算机软件:计算机软件是一系列按照特定结构组织的程序、数据(Data)和文档(Document)的集合。 (2)计算机程序:用计算机语言所编写的一系列指令的集合。 (3)数据:数据是程序加工和处理的对象。 (4)算法:算法是一组有穷的规则,它们规定了为解决某一特定问题而采取的一系列运算步骤。 (5)数据结构:数据结构是存在一种或多种特定关系的数据元素的集合,其外在表现为数据的组织形式。 (6)数据类型:数据类型是一个值的集合和定义在这个值集上的操作的总称。 (7)程序设计:程序设计是给出解决特定问题程序的方法和过程,是软件构造活动中的重要组成部分。 1.2 简答题 (1)简述内存的组织结构形式? 计算机系统把内存看作是由若干个连续的存储单元(Storage Location)组成的,每个存储单元的大小为一个字节(Byte)。为了能唯一标志每个存储单元,在计算机系统中给每个存储单元指定一个唯一的编号,该编号被称为存储单元的地址(Address),计算机在读写内存时就是按照存储单元的地址进行的。 (2)为什么计算机系统是一个通用的计算系统? 在计算机硬件相对固定不变的前提下,计算机的通用性主要表现在通过运行不同的程序来完成不同的计算任务。 (3)简述结构化程序设计的基本思想? 在程序设计过程中,如果仅仅使用顺序、选择和循环这三种基本控制结构,并且使每个代码块只有一个入口和一个出口,则这样的程序设计方法被称为结构化程序设计(Structured Programming)。 (4)简述计算机语言的发展史? 程序设计语言经历了从机器语言、汇编语言、高级语言到超高级语言的发展历程。(5)简述利用计算机进行问题求解的过程? 1、理解问题特征 2、设想解决方案 3、优化解决方案 4、描述解决方案 5、执行并分析解决方案 (6)简述各个程序质量要素的含义? 1、正确性(Correctness):正确性是指一个计算机程序的正确程度,即程序在预定的

《C语言程序设计教程(第二版)》习题答案

2 第1章程序设计基础知识 一、单项选择题(第23页) 1-4.CBBC 5-8.DACA 二、填空题(第24页) 1.判断条件 2.面向过程编程 3.结构化 4.程序 5.面向对象的程序设计语言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

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的值。 4. 求1×2×3×…×10的值。

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

《C程序设计语言》模拟试卷二

一、单项选择题 1.以下并非C语言的特点的是____________。 A.C语言简洁紧凑 B.能够编写出功能复杂的程序 C.C语言可以直接对硬件进行操作 D.C语言移植性好 2.在C程序中,main()的位置___ ______。 A.必须作为第一个函数 B.必须作为最后一个函数 C.可以任意 D.必须放在它所调用的函数之后 3.一个C程序是由____ ________。 A.一个主程序和若干个子程序构成 B.一个或多个函数构成 C.若干过程组成 D.若干子程序组成 4.以下字符串为标识符的是___ _________。 A._MY B.2_2222 C.short D.LINE 5 5.下列符号可以作为变量名的是___ ________。 A.+a B.*p C._DAY D.next day 6.设c是字符变量,则以下表达式正确的是___ _______。 A.c=666 B.c='c' C.c="c" D.c="abcd" 7.以下说法正确的是_____ _______。 A.输入项可以为一个实型常量,如scanf("%f", 3.5) B.只有格式控制没有输入项也能进行正确输入,如scanf("%d") C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如 D.当输入数据时,必须指定变量的地址,如scanf("%f", &f) 8.若a, b, c均定义为整型,要给它们输入数据,正确的输入语句是____ ________。 A.read(a, b, c); B.scanf("%d%d%d", a, b, c); C.scanf("%D%D%D", a, b, c); D.scanf(%d%d%d", &a, &b, &c); 9.若a是float变量,b是unsigned型变量,以下输入语句中合法的是____ ___。 A.scanf("%6.2f%d", &a, &b); B.scanf("%f%n", &a, &b); C.scanf("%f%3o", &a, &b); D.scanf("%f%f", &a, &b); 10.if后面的表达式之值__________。 A.只能是0或1 B.只能是正整数或负整数 C.只能是整数或字符型数据 D.可以是任何类型的数据 11.为了避免嵌套的if-else语句的二义性,C语言规定else总是与__ ___组成配对 关系。 A.缩排位置相同的if B.在其之前未配对的if C.在其直接最近的未配对的if D.同一行上的if 12.选择出合法的if语句(设int x, a, b, c;)____ _____。 A.if(a = b0 x++; B.if (a =< b) x++; C.if(a <> b) x++; D.if (a=>b) x++; 13.语句while(!e); 中的条件!e等价于____ _______。 A. e == 0 B.e!=1 C.e!=0 D.~e 14.C语言中while和do-while循环的主要区别是____ _______。 A.do-while的循环体至少无条件执行一次 B.while的循环控制条件比do-while的循环控制条件严格

课后题答案-C语言程序设计(第2版)

《C语言程序设计能力教程(第二版)》课后作业及实训题 参考答案 第1章进入C语言程序世界 二、 1. I love China! printf("we are students.\n") 2. 6 项目实训题参考答案 1.编写一个C程序,输出以下信息: * * * * * * * * * * * * * * * * * * * * I am a student! * * * * * * * * * * * * * * * * * * * * main() { printf("********************\n"); printf(" I am a student!\n "); printf("********************\n"); } 2.已知立方体的长、宽、高分别是10cm、20cm、15cm,编写程序,求立方体体积。 解: main() { int a,b,c,v; a=10; b=20; c=15; v=a*b*c; printf("v=%d",v); } 本程序运行结果为: v=3000 第2章编制C程序的基础知识 一选择题 C B A B A C C 二操作题

,2,-8,2 3.000000,2.500000,-8.000000 2. ABC DE FGH why is 21+35 equal 52 3. 3 1 4 3 2 3 1 2 4. aa bb cc abc A N 项目实训题 1.定义一个符号常量M为5和一个变量n值为2,把它们的乘积输出。 #define M 5 main() { int n,c; n=2; c=M*n; printf("%d\n",c); } 2.编程求下面算术表达式的值。 (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)main() { int a=7; float x=2.5,y=4.7; printf("%f\n",x+a%3*(int)(x+y)%2/4); } (2)main() { int a=2,b=3; float x=3.5,y=2.5; printf("%f\n",(float)(a+b)/2+(int)x%(int)y); } 第三章顺序结构程序设计 一选择题 A C D C C 二操作题 1. x=3,a=2,b=3 2. z=12.700000

C程序设计语言资料

第3次作业 一、填空题(本大题共20分,共5小题,每小题4分) 1?假定一个二维数组为a[M][N],则a[i]的地址值(以字节为单位)为 2. 类型兼容原则指的是:任何在需要________ 对象的地方,都可以用_______________________________________ 的对象 去替代。 3. 重新抛出异常的表达式为:__________ 4. 以下程序的执行结果是______________________ #i nclude using n amespace std; class Base{ public: Base(){cout<< ” T ;} ~Base(){cout<< ” 2” ;} }; class Derived : public Base{ public: Derived(){cout<< ” 3” ;} ~Derived(){cout<< ” 4” ;} }; void mai n(){ Derived d;

5. 以下程序的执行结果是______________________ #i nclude using n amespace std; class A{ int x; public: A(int x){this->x=x;} A &operator--(){x--;return *this;} A operator— nt){A a(x-=2);retur n a;} void show(){ cout? x;} }; void mai n(){ A a(3),b(3); (a--).show(); (--b).show(); } 二、程序阅读题(本大题共40分,共5小题,每小题8分) 1.写出下面程序运行结果。 #i nclude void rev(i nt a[],i nt n) { int t; for(int i=0,j=n-1;i

C程序设计语言第次

第1次作业 一、单项选择题(本大题共60分,共 20 小题,每小题 3 分) 1. C++程序中,用于实现数据输出的是()。 A. 输出流对象cin和提取运算符>> B. 输出流对象cin和插入运算符<< C. 输出流对象cout和提取运算符>> D. 输出流对象cout和插入运算符<< 2. C++程序中,定义内联函数时需要函数的返回值类型前加上关键字()。 A. outline B. inline C. in D. inport

3. 下面所列选项中,合法的用户标识符是()。 A. if B. switch C. finename D. int 4. C++程序中,定义引用变量时,()。 A. 使用的运算符是* B. 使用的运算符是() C. 使用的运算符是& D. 使用的运算符是[] 5. C++程序中要使用标准输入/输出流对象,必要包含()。 A.

string头文件 B. cmath头文件 C. iostream头文件 D. cctype头文件 6. C++程序中,为了导入标准命名空间,使用的语句是()。 A. inporting namespace std; B. using namespace std; C. using namespace standard; D. inporting namespace standard; 7. 下列关于函数的说法中,不正确的是()。 A. 在不同函数中可以使用相同的名字命名变量 B. 形式参数是局部变量 C. 在函数内部定义变量的作用域在本函数中 D. 在一个函数内的复合语句中定义变量的作用域也是整个函数 8. C++程序的函数调用中,使用数值参数传递时,()。

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程序设计语言》读书笔记及课后答案

通过一周多的学习,大体看完了《C程序设计语言》这本书,这是我的笔记。 (一)读这本书的目标是什么? (1)、读完后必须深入了解C的语法以及内涵,并且达到熟练应用。 (2)、通过练习习惯一种编程风格,深入理解指针,数组,结构体以及内存分配。 (3)、通过练习锻炼逻辑思维能力 (4)、学完后编程要上一个层次,自己能够编写出有用的C代码。 (二)这本书哪个部分是我要重点看的? (1)、指针、数组、结构体 (2)、内存分配 (3)、输入输出及接口问题 (三)读这本书我有什么收获? 3、1 对于本书的感受 这是一本经典的C语言书籍,与其他语法书不同的是所有语法都是用例题来讲的,通过例子理解并练习语法,另外这本书的习题比较难做,不是简单的考语法,而是一些有意义的习题。通过做练习发现还是有所收获的。本书中与Linux联系密切,用C重写了许多简化版的Shell命令如:grep,ls,cat,sort,tail,cp等等。 3、2 收获: 因为本来就有C语言的基础知识,所以对于语法问题基本没有多学新的知识,但是仍然对以下几点有了新的了解: 1)、位字段,不管是通过直接设置位字段还是用以前的位计算,都有新的了解与认识。 2)、指针。建立了“指针为大”的思想,对于应用指针进行类型转换以及运算 都有了新的认识。比如:int a=5,char* p, p=(char)&a,*p = ‘c’;建立这样的过 程对于更加复杂的指针转换就理解了。 3)、结构体。通过第六章对于二叉树以及哈希表的应用深入了解结构体, 并且通过调试程序观察递归过程,同时对递归有了一定的理解。 4)、内存分配malloc函数,通过第八章的学习对malloc函数的内部进行分析, 理解了动态内存管理机制。 3.3 学习的程度以及那些地方存在不足: 对于C的基本语法已经差不多了,但是否达到了当初的目标即在编程方面上一个层次,这我并不敢确定,因为到现在为止这本书上的习题有些我都没有搞定,又看了一下以前的有关C的东西是觉得已经好了许多了,最起码对于很麻烦的程序不再感到畏惧了。另外觉得自己对于某些问题还是没有理解透彻,比如说输入输出时的缓冲机制,比如说指针与结构体的灵活运用,比如说如何能够运用模块化的思想把一个大的问题逐步细分,通过一个一个的小模块(函数)逐步解决,这些有的是与逻辑思维有关,有些是与某方面的专业知识有关,有些是单纯与C有关,比如说有关缓冲与内存的知识要了解操作系统,另外编译原理也要知道,这些我以前都没有学过,以后会找机会补一补。当然随着进一步的学习与应用,会逐渐的熟练或理解某一些知识点。另外因为时间的原因,对于许多练习没有真正的从各个方面去思考,只是做出来就完了,也没有返回去再仔细考虑每一道习题的意义以及对于我的收获。 所以还有待以后有时间在对某些知识点进行学习。 习题是本书的重点,也用了不少时间,其中有些是通过对章节内容的学习后自己做出来的(S),有些是参考别人的,参考的原因主要有: (A)对题目不理解,不明白具体要做到什么程度。

C程序设计语言部分章节习题

第8章函数 一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。) 8.1 若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是 A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参 C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参 考生答案: 正确答案: D 8.2 在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是 A)地址传递B)单向值传递C)由实参传形参,再由形参传实参D)传递方式由用户指定 考生答案: 正确答案: B 8.3 以下正确的说法是 A)定义函数时,形参的类型说明可以放在函数体内B)return后边的值不能为表达式 C)如果函数值的类型与返回值类型不一致,以函数值类型为准D)如果形参与实参类型不一致,以实参类型为准 考生答案: 正确答案: C 8.4 以下正确的说法是 A)用户若需调用标准库函数,调用前必须重新定义 B)用户可以重新定义标准库函数,若如此,该函数将失去原有含义 C)系统根本不允许用户重新定义标准库函数 D)用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动调用 考生答案: 正确答案: B 8.5 以下叙述正确的是 A)函数可以嵌套定义但不能嵌套调用B)函数既可以嵌套调用也可以嵌套定义 C)函数既不可以嵌套定义也不可以嵌套调用D)函数可以嵌套调用但不可以嵌套定义 考生答案: 正确答案: D 8.6 下面对C语言的描述中,正确的是 A)函数一定有返回值,否则无法使用函数B)C语言函数既可以嵌套定义又可以递归调用C)在C语言中,调用函数时,只能将实参的值传递给形参 D)C语言程序中有调用关系的所有函数都必须放在同一源程序文件中 考生答案: 正确答案: C 8.7 下列说法中错误的是 A)静态局部变量的初值是在编译时赋予的,在程序执行期间不再赋予初值 B)若全局变量和某一函数中的局部变量同名,则在该函数中,此全局变量被屏蔽 C)静态全局变量可以被其他的编辑单位所引用 D)所有自动类局部变量的存储单元都是在进入这些局部变量所在的函数体(或复合语 句)时生成,退出其所在的函数体(或复合语句)时消失 考生答案: 正确答案: C 8.8 以下程序有语法错误,有关错误原因的正确说法是 void main() { int G=5,k; void prt_char(); ... k=prt_char(G); ...

c语言(第二版朱鸣华)课后编程题答案

第五章 1 2、#include #include int main() { char a; scanf("%c",&a); if(a>'A'&&a<'Z') printf("%c,%c\n",a-1,a+1); else if(a=='A') printf("没有前面字母"); else if(a=='Z') printf("没有后面字母\n"); return 0; } 3、#include #include int main() { int a; scanf("%d",&a); if(a>=90&&a<=100) printf("A\n"); else if(a>=80&&a<=89) printf("B\n"); else if(a>=70&&a<=79) printf("C\n"); else if(a>=60&&a<=69) printf("D\n");

else printf("E\n"); return 0; } 4、#include int main() { int year,month,day; int maxdays[]={31,28,31,30,31,30,31,31,30,31,30,31}; printf("请输入年月日,中间用空格隔开!\n"); scanf("%d %d %d",&year,&month,&day); if(year%400==0 || (year%4==0 && year%100!=0)) maxdays[1]=29; if(month>12 || month<1) { printf("日期不合法!\n"); return 0; } if(day>maxdays[month-1]) { printf("日期不合法!\n"); return 0; } day++; if(day==maxdays[month-1]) { day=1; month++; if(month==12) { month=1; year++; } } printf("明天的日期是:%d-%d-%d\n",year,month,day); return 0; } 5、#include int main() { double a,b,c; scanf("%lf%lf%lf",&a,&b,&c); if((a+b)>c&&(a+c)>b&&(b+c)>a) if(a==b&&b==c&&c==a) printf("等边三角形\n"); else if((a==b)||(a==c)||(b==c))

《C语言程序设计》-谭浩强(第四版)教案

《C 语言程序设计》-谭浩强(第四版)教案

C语言程序设计》教案

C 语言是近年来国内外得到迅速推广使用 的一种计算机语言。 C 语言程序设计课程是计 算机专业和信息管理专业的核心专业基础课 , 它功能丰富,表达能力强,使用灵活方便,应 用面广,目标程序效率高,可移植性好,既具 有高级语言的优点,又具有低级语言的优点。 既适用于应用软件编写,又适用于系统软件的 编写。在现代的工业机器人的众多语言中,大 多编程风格以 C 语言非常类似,学生学好 C 语 言,对将来的工作中,从事工业机器人现场编 程是非常有帮助的。 课程的性质和任务 《语言程序设计》这门课是我校工业机器人、 分布式发电与微电网专业的专业必修课。作为 计算机系的数据结构、 c++、单片机编程等课 程的前导课程,也是一门实践性很强的课程, 既要掌握概念,又要动手编程,还要上机调试 运行。对工业机器人专业来说是一门必修的课 程。 同时,这门课程也是 “湖南省非计算机专业 学生计算机应用能力水平考试 ”二级考试的主 要语种之一。 课程的教学目标 本课程的教学目标是: 通过理论和实践教学, 使学生较好地掌握 C 语言各方面的知识, 掌握 一、程序设计和 C 语言 重点:计算机程序、计算机语言、 C 语言 编译软件的安装、最简单的 C 语言程序 教 学 基 本 目 的 和 要 求

二、算法:程序的灵魂重点:简单的算法举例、算法的特性、用流程图表示算法。 三、顺序结构程序设计 重点:C 语言的数据类型、C 语句的种类、赋值语句、数据的输入输出及输入输出中最常用的控制格式。 四、选择结构程序设计重点:关系运算符与逻辑运算符及其组成的具有逻辑值的表达式、二条分支语句的格式及基本应用、多分支的选择语句。 五、循环结构程序设计重点:C 构成循环的四种方法,尤其是后三种方法、break 与continue 语句的基本作用。 难点:while 语句;do-while 语句;for 语句;循环的嵌套;break 与continue 语句。 六、数组 重点:一维数组、二维数组的定义与引用; 字符数组的定义与引用、常用字符串处理函数 及字符处理函数;数组的应用 难点:二维数组的定义与引用;字符数组; 数组的应用

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