C语言程序设计练习题整理 下载本文

四、程序改错题

1、以下程序的功能是,输入长方形的两边长(边长可以取整数和实数),输出它的面积和周长。

#include

main {

int a,b,s,l;

scanf(\ s=a*b; l=a+b;

printf(\ }

2、以下程序的功能是,输入两个数,求最大值。

#include

mian() {

int a,b;c; scanf(\

c=max(a,b); printf(\ }

int max(int x,int y) { return (x>y?x:y) }

3、以下程序的功能是,输入三个数,求平均值。

include main() { int a,b; float average;

6

printf(\ scanf(\ prinf(\ average=(a+b+c)/3.0;

printf(\

7

第4章 程序结构

一、选择题:

1、 若char c=?A?;则c = (c>=?A? && c<=?Z?) ? (c+32) : c的值是( ) A.?A? B.?a? C.?Z? D.?z?

2、 设x,y,z,t均为int型变量,则执行以下语句后,t的值为( )

x = y = z = 1; t = ++x || ++y && ++z;

A.不定值 B.2 C.1 D.0 3、 执行以下语句后x的值是( )

a = b = c = 0; x = 35;

if ( ! a ) x - - ; else if ( b ); if ( c ) x = 3; else x = 4; A.34 B.4 C.35 D.3 4、 下面的程序段所表示的数学函数关系是( )

y = -1;

if ( x != 0 ) if ( x>0 ) y = 1; else y = 0; A.y = - 1 (x < 0) ; 0(x = 0) ; 1 (x > 0) B.y = 1 (x < 0) ; -1(x = 0) ; 0 (x > 0) C.y = 0 (x < 0) ; -1(x = 0) ; 1 (x > 0) D.y = - 1 (x < 0) ; 1(x = 0) ; 0 (x > 0)

5、 若有整型变量i, j; 则以下程序段中内循环体的执行次数为( )

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

for ( j = 0 ; j < 4; j ++ ) { ... }

A.20 B.24 C.25 D.30 6、 假定a和b为int型变量,则执行以下语句后b的值为( )

a = 1 ; b = 10 ;

do { b -= a ; a ++ ; } while ( b -- < 0 ) ;

A.9 B.-2 C.-1 D.8 7、 在C语言中,下列说法中正确的是( )

A.不能使用”do 语句 while (条件)”的循环

B.”do 语句 while(条件)”的循环必须使用”break”语句退出循环 C.”do 语句 while(条件)”的循环中,当条件为非0时结束循环 D.”do 语句 while(条件)”的循环中,当条件为0时结束循环

8、 若abcd都是int类型变量且初值为0,以下选项中不正确的赋值语句是(A.a=b=c=100; B.d++; C.c+b; D.d=(c=22) - (b++);

8

。 )

9、 若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句是( )。 A.a=a+b,b=a-b,a=a-b; B.t=a,a=b,b=t; C.a=t;t=b;b=a; D.t=b;b=a;a=t; 10、 以下关于if语句的错误描述是( )。 A.条件表达式可以是任意的表达式

B.条件表达式只能是关系表达式或逻辑表达式 C.条件表达式的括号不可省

D.与else配对的if语句是其之前最近的未配对的if语句 11、 执行了以下程序段后,x,w的值为( )。

int x=0,y=1,z=2,w; if(x++)w=x;

else if(x++&&y>=1)w=y; else if(x++&&z>1)w=z;

A.0, 1 B.1, 1 C.2, 1 D.3, 2 12、 对于下面①,②两个循环语句,( )是正确的描述。

①while(1) ;

②for( ; ; ) ;

A.①②都是无限循环 B.①是无限循环,②错误 C.①循环一次,②错误 D.①②皆错误

二、填空题

1、 结构化程序设计规定的三种基本结构是 结构, 结构和 结构。

2、 以下两条if语句可合并成一条if语句为 。

if ( a <= b ) x = 1 ; else y = 2 ;

if ( a > b ) printf( “ **** y = %d \\n ” , y ) ; else printf( “ #### x = %d \\n ” , x ) ;

3、 设i , j , k均为型变量,则执行如下语句后,k的值为 。

for ( i = 0 , j = 10 ; i <= j ; i ++ , j -- ) k = i + j ;

三、程序分析题

1、 阅读程序,写出运行结果( ) #include\

main() { float a,b,area; scanf(\

9

area=a*b;

printf(\}

2↙ 3↙

2、 阅读程序,写出运行结果( ) #include\main() {

char c1,c2,c3; c1='a'; c2='b'; c1=c1-32; c2=c2-32;

printf(\ }

3、阅读程序,写出运行结果( ) #include\main() {

int x,a;

x=(a=3,6*3);

printf(\ x=a=3,6*a;

printf(\ }

4、 阅读程序,写出运行结果 ( )

main ( ) {

int y = 9 ;

for ( ; y > 0 ; y -- )

if ( y%3 == 0 ) { printf( “%d” , -- y ) ; }

5、阅读程序,写出运行结果( ) #include main() {

int a=3,b=8,c=5,t; if(a>b) {t=a;a=b;b=t;}

10

cintinue ; }