文档库 最新最全的文档下载
当前位置:文档库 › C语言程序设计习题集

C语言程序设计习题集

C语言程序设计习题集
C语言程序设计习题集

《C语言程序设计》习题集

沈国荣隋雪莉闵芳

目录

第1章 C语言程序设计概述 (1)

第2章数据类型及其运算 (3)

第3章语句与输入输出 (6)

第4章选择结构程序设计 (10)

第5章循环结构程序设计 (15)

第6章数组 (25)

第7章函数 (32)

第8章编译预处理 (40)

第9章指针 (42)

第10章结构体与共用体 (50)

第11章位运算 (56)

第12章文件操作 (58)

第1章 C语言程序设计概述

一、选择题

1.下列关于计算机语言的叙述中,正确的是_______。

A.在计算机语言中,只有机器语言属于低级语言

B.高级语言的源程序可以被计算机直接执行

C.C语言属于高级语言

D.机器语言是与所有机器无关的语言

2.源程序TEST.C经编译产生的目标文件和连接后产生的可执行文件是_______。

A.TEST.BAK和TEST.OBJ B.TEST.OBJ和TEST.EXE

C.TEST.EXE 和TEST.C D.TEST.BAK和TEST.EXE

3.一个C程序的执行是从_______。

A.本程序的main函数开始,到main函数结束

B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

C.本程序的main函数开始,到本程序文件的最后一个函数结束

D.本程序文件的第一个函数开始,到本程序main函数结束

4.以下叙述正确的是_______。

A.在C程序中,main函数必须位于程序的最前面

B.程序的每行中只能写一条语句

C.C语言本身没有输入输出语句

D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误

5.以下叙述不正确的是_______。

A.一个C源程序可由一个或多个函数组成

B.一个C源程序必须包含一个main函数

C.在C程序中,注释说明只能位于一条语句的后面

D.C程序的基本组成单位是函数

6.一个C语言程序是由_______。

A.一个主程序和若干子程序组成

B.函数组成

C.若干过程组成

D.若干子程序组成

7.关于C语言程序书写规则说法中正确的是_______。

A.程序语句必须占一行B.不区分大小写

C.每行必须有行号D.每条语句用分号结束

8.下面关于算法的说法,错误的是_______。

A.算法必须有输出,但不一定有输入

B.算法必须在计算机上用某种语言实现

C.算法必须在有限步执行后能结束

D.算法的每一步骤必须有确切的定义

9.结构化程序设计规定的3种基本控制结构是_______。

A.顺序、选择和转向B.层次、网状和循环

C.模块、选择和循环D.顺序、选择和循环

10.结构化程序由三种基本结构组成,三种基本结构组成的算法_______。

A.可以完成任何复杂的任务B.只能完成部分复杂的任务

C.只能完成符合结构化的任务D.只能完成一些简单的任务

二、填空题

1.C源程序的基本单位是________,一个C源程序中必须包括一个________。

2.在一个C源程序中,注释部分两侧的分界符分别为________和________。

3.C语言源程序文件的后缀是________;经过编译后,生成文件的后缀是________;经过连接后,生成的文件的后缀是________。

4.结构化程序由________、________、________,3种基本结构组成。

三、编程题

1.编写一个程序,用2个printf()语句分别输出学校名称和自己的姓名。

2.编写一个程序,用1个printf()语句输出学校名称和自己的姓名。

第2章数据类型及其运算

一、选择题

1.下面四个选项中,均是不合法的用户标识符的选项的是_______。

A.A p_o do B.float lao _A

C.b-a goto int D._123 temp INT

2.以下选项中可以作为C语言中合法整数的是_______。

A. 10110B B. 0386 C. 0Xffa D. x2a2

3.以下选项中合法的实型常数是_______。

A.5E2.0 B.E-3 C.2E0 D.1.3E

4.以下选项中可作为C语言合法常量的是_______。

A.-80 B.-080 C.-8e1.0 D.-80.0e

5.下面四个选项中,均是合法转义字符的选项是_______。

A.'\' ' \\' '\n' B.'\'' '\017' '\t'

C.'\018' ' \f' '\xab' D.'\\0' '\101' 'x1f'

6.下面不正确的字符串常量是_______。

A.'abc' B."12’12" C."0" D." "

7.以下选项中不属于C语言的类型的是_______。

A.signed short int B.unsigned long int

C.unsigned int D.long short

8.在C语言中,要求运算数必须是整型的运算符是_______。

A./ B.++ C.!= D.%

9.以下运算符中优先级最低的是_______,以下运算符中优先级最高的是_______。

A.&& B.<= C.|| D.==

10.若x = 2 , y=3,则x && y的结果是_______。

A.0 B.1 C.2 D.3

11.若x,i,j和k都是int型变量,则计算表达式x = ( i = 4 , j = 16 , k = 32 )后,x的值为_______。

A.4 B.16 C.32 D.52

12.若有定义:int a = 7 ; float x = 2.5 , y = 4.7 ; ,则表达式x + a % 3 * ( int )( x + y ) % 2 / 4的值是_______。

A.2.500000 B.2.750000 C.3.500000 D.0.000000

13.若有以下类型说明语句:char w ; int x ; float y ; double z ; ,则表达式w * x + z - y 的结果为_______类型。

A.float B.char C.int D.double

14.已有定义:int x = 3 , y = 4 , z = 5 ; 则表达式!( x + y ) + z – 1 && y + z / 2的值是_______。

A.6 B.0 C.2 D.1

15.以下选项中非法的表达式是_______。

A.0 <= x < 100 B.i = j == 0 C.( char )( 65 + 3 ) D.x + 1 = x + 1

16.设a、b、c、d、m、n均为int型变量,且a = 5、b = 6、c = 7、d = 8、m = 2、n = 2,则逻辑表达式( m = a > b ) && ( n = c > d)运算后,n的值为_______。

A.0 B.1 C.2 D.3

17.若变量c为char类型,能正确判断出c为小写字母的表达式是_______。

A.'a' <= c <= 'z' B.( c >= 'a' ) || ( c <= 'z' )

C.( 'a' <= c ) and ( 'z' >= c ) D.( c >= 'a' ) && ( c <= 'z' )

18.若x和y代表整型数,以下表达式中不能正确表示数学关系|x―y|<10的是_______。

A.abs( x – y ) < 10 B.x – y > -10 && x – y < 10

C.!( x – y ) < -10 || !( y – x ) > 10 D.( x – y ) * ( x – y ) < 100

二、填空题

1.C语言中的标识符只能由三种字符组成,它们是_______,_______和_______。

2.在C语言中(以32位PC机为例),一个char型数据在内存中所占的字节数为_______,一个int型数据在内存中所占的字节数为_______,一个float型数据在内存中所占的字节数为_______,一个double型数据在内存中所占的字节数为_______。

3.有以下定义int m = 5,y = 2;则计算表达式y += y -= m *= y后的y值是_______。

4.若定义:int a = 2,b = 3;float x = 3.5,y = 2.5;则表达式( float )(a + b ) / 2 + ( int ) x % ( int ) y的值是_______。

5.x和n均为int型变量,且x的初值为12,n的初值为5,则计算表达式x %= ( n %= 2 )后x的值为_______。

6.设所有变量均为整型,则表达式( a = 2 , b = 5 , a++ , b++ , a + b )的值为_______。

7.a、b和c均是int型变量,则计算表达式a = ( b = 4 ) + ( c = 2 )后,a值为_______,b值为_______,c值为_______。

8.a是int型变量,且a的初值为6,则计算表达式a += a -= a * a后a的值为_______。

9.设y是int型变量,请写出判断y为奇数的关系表达式_______。

10.若a,b,c均为整型变量,则执行以下语句a = b = c = 0 ; a++ && ++b || c++ ; 后,a的值为_______,b的值为_______,c的值为_______。

三、程序阅读题

1.下面程序的运行结果是_______。

#include

int main( )

{

char m ;

m = 'B' + 32 ;

printf( "%c\n" , m ) ;

return 0 ;

}

2.下面程序的运行结果是_______。

#include

int main( )

{

int x = 3 , y = 5 ;

printf( "%d\n" , x / y ) ;

return 0 ;

}

3.下面程序的运行结果是_______。

#include

int main( )

{

int m = 0xabc , n = 0xabc ;

m -= n ;

printf( "%x\n" , m ) ;

return 0 ;

}

4.下面程序的运行结果是_______。

#include

int main( )

{

int x = 10 , y = 3 ;

printf( "%d,%d\n" , x++ , --y ) ;

return 0 ;

}

5.下面程序的运行结果是_______。

#include

int main( )

{

int i , j ;

i = 8 ;

j=10;

printf( "%d,%d,%d,%d\n" , i , j , ++i , j++ ) ;

return 0 ;

}

6.下面程序的运行结果是_______。

#include

int main( )

{

int a = 1 , b = 2 , c = 3 ;

printf( "%d,%d,%d,%d\n" , a = b = c , a = b == c , a == ( b = c ) , a == ( b == c ) ) ;

return 0 ;

}

7.下面程序的运行结果是_______。

#include

int main( )

{

int a = 2 , b=20 , c=30 , d ;

d = ++a <= 10 || b-- >= 20 || c++ ;

printf( "%d,%d,%d,%d\n" , a , b , c , d ) ;

return 0 ;

}

第3章语句与输入输出

一、选择题

1.设有定义:long x = 123456L ; ,则以下能够正确输出变量x值的语句是_______。

A.printf( "x=%d\n" , x ) ; B.printf( "x=%ld\n" , x ) ;

C.printf( "x=%8dL\n" , x ) ; D.printf( "x=%LD\n" , x ) ;

2.若有以下程序段

int m = 0xabc , n = 0xabc ;

m -= n ;

printf( "%X\n" , m ) ;

执行后输出结果是_______。

A.0X0 B.0x0 C.0 D.0XABC

3.已知char a = '\103' ;则语句printf( "%3d" , a ) ; 执行后的输出结果为_______。

A.67 B.'C' C.67 D.103

4.已知a、b、c为int类型,执行语句:scanf( "a=%d, b=%d, c=%d" , &a , &b , &c ) ; ,若要使得a为1,b为2,c为3。则以下选项中正确的输入形式是_______。

A.a=1 B.1, 2, 3 C.a=1, b=2, c=3 D.1 2 3

b=2

c=3

5.已知i、j、k为int型变量,若从键盘输入:1,2,3↙,使i的值为1、j的值为2、k 的值为3,以下选项中正确的输入语句是_______。

A.scanf( "%2d%2d%2d" , &i , &j , &k ) ; B.scanf( "%d %d %d" , &i , &j , &k ) ;

C.scanf( "%d,%d,%d" , &i , &j , &k ) ; D.scanf( "i=%d,j=%d,k=%d" , &i , &j , &k ) ;

6.x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是_______。

A.INPUT x、y、z;

B.scanf( "%d,%d,%d" , &x , &y , &z ) ;

C.scanf( "%d,%d,%d" , x , y , z ) ;

D.read( "%d,%d,%d" , &x , &y , &z ) ;

7.若有int a ; float b ; scanf( "%d,%f" , &a , &b ) ; 使a、b的值分别为30和5.5,则正确的输入是_______。

A.30 5.5 B.30, 5.5 C.a=30, b=5.5 D.a=30 b=5.5 8.根据以下定义语句和数据的输入方式,scanf语句的正确形式应为_______。

已有定义:float f1 , f2 ;

数据的输入方式:4.52↙

3.5↙

A.scanf( "%f, %f" , &f1 , &f2 ) ;

B.scanf( "%f%f" , &f1 , &f2 ) ;

C.scanf( "%3.2f %2.1f" , &f1 , &f2 ) ;

D.scanf( "%3.2f%2.1f" , &f1, &f2 ) ;

9.以下针对scanf()函数的叙述中,正确的是_______。

A.输入项可以为一实型常量,如scanf( "%f" , 3.5 ) ;

B.只有格式控制,没有输入项,也能进行正确输入,如scanf( "a=%d, b=%d" ) ;

C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如:scanf( "%4.2f" , &f ) ;

D.当输入数据时,必须指明变量的地址,如scanf( "%f" , &f ) ;

10.有以下程序

#include

int main( )

{

char c1 = '1' , c2 = '2' ;

c1 = getchar( ) ; c2 = getchar( ) ;

putchar( c1 ) ; putchar( c2 ) ;

}

当运行时输入a↙后,以下叙述正确的是_______。

A.变量c1被赋予字符a,c2被赋予回车符

B.程序将等待用户输入2个字符

C.变量c1被赋予字符a,c2中仍是原有字符2

D.变量c1被赋予字符a,c2中将无确定值

二、填空题

1.已知float f = 123.467 ; ,则执行语句printf( "%.2f\n" , f ) ; ,输出结果是_______。

2.已知字符'A'的ASCII值为十进制65,变量c为字符型,则执行语句c = 'A' + '6' - '3' ; printf( "%c\n " , c ) ; ,输出结果是_______。

3.scanf()函数在输入数据时默认的分隔符有_______、Tab、空格。

4.已知:int i = 10 , j = 1 ; 则执行语句printf( "%d,%d" , i++ , ++j ) ; 后,输出结果_______。

三、程序阅读题

1.下面程序的运行结果是_______。

#include

int main( )

{

int m = 177 ;

printf( "%o\n" , m ) ;

return 0 ;

}

2.下面程序的运行结果是_______。

#include

int main( )

{

int n = 0 ;

n += ( n = 10 ) ;

printf( "%d\n", n ) ;

return 0 ;

}

3.下面程序的运行结果是_______。

#include

int main( )

{

int a = 201 , b = 012 ;

printf( "%2d,%2d\n" , a , b ) ;

return 0 ;

}

4.下面程序的运行结果是_______。

#include

int main( )

{

int y = 2456 ;

printf( "y=%3o\n" , y ) ;

printf( "y=%8o\n" , y ) ;

return 0 ;

}

5.下面程序的运行结果是_______。

#include

int main( )

{

printf( "*%f,%4.3f*\n" , 3.14 , 3.1415 ) ;

return 0 ;

}

6.下面程序的运行结果是_______。

#include

int main( )

{

char c = 'x' ;

printf( "c:dec=%d,oct=%o,hex=%x,ASCII=%c\n" , c , c , c , c ) ;

return 0 ;

}

7.下面程序的运行结果是_______。

#include

int main( )

{

int x = 1 , y = 2 ;

printf( "x=%d y=%d *sum*=%d\n" , x , y , x + y ) ;

printf( "10 squared is : %d\n" , 10 * 10 ) ;

return 0 ;

}

8.下面程序的运行结果是_______。

#include

int main( )

{

int n = 100 ;

char c ;

float f = 10.0 ;

double x ;

x = f *= n /= ( c = 48 ) ;

printf( "%d %d %3.1f %3.1f\n" , n , c , f , x ) ;

return 0 ;

}

9.下面程序的运行结果是_______。

运行时从键盘输入:25 13 10↙。

#include

int main( )

{

int x , y , z ;

scanf( "%d%d%d" , &x , &y , &z ) ;

printf( "x+y+z=%d\n" , x + y + z ) ;

return 0 ;

}

10.下面程序的运行结果是_______。

运行时从键盘输入:55 A B↙。

#include

int main( )

{

int k = 0 ; char c1 = 'a' , c2 = 'b' ;

scanf("%d%c%c" , &k , &c1 , &c2 ) ;

printf( "%d,%c,%c\n" , k , c1 , c2 ) ;

return 0 ;

}

四、编程题

1.编写一个程序,读入一个字母,输出与之对应的ASCII码值。

2.编写一个程序,从键盘输入圆的半径r,圆柱的高h,分别计算出圆周长cl、圆面积cs和圆柱的体积cv,输出计算结果时要求保留小数点后4位。

3.编写一个程序,输入一个三位数,分别求出这个三位数的个位、十位和百位上的数。

第4章选择结构程序设计

一、选择题

1.if语句的选择条件是_______。

A.只能用关系表达式B.只能用关系表达式或逻辑表达式C.只能用逻辑表达式D.可以用任何表达式

2.已知int x = 2 , y = -1 , z = 3 ;,执行下面语句后,z的值是_______。

if( x < y ) if( y < 0 ) z = 1 ; else z++ ;

A.1 B.2 C.3 D.4

3.以下程序段的输出结果是_______。

int a = 2 , b = 1 , c = 2 ;

if( a < b ) if( b < 0 ) c = 0 ; else c += 1 ;

printf( "%d\n" , c ) ;

A.0 B.1 C.2 D.3

4.当a = 1,b = 3,c = 5,d = 4时,执行下面一段程序后,x的值为_______。if( a < b )

if( c < d ) x = 1 ;

else

if( a < c )

if( b < d ) x = 2 ;

else x = 3 ;

else x = 6 ;

else x = 7 ;

A.1 B.2 C.3 D.6

5.为了避免嵌套的if-else的二义性,C语言规定,else与_______配对。A.与最外层的if B.其之前最近的不带else的if

C.其之后最近的if D.与最近的{ }之前的if

6.若有定义:float w ; int a , b ; 则合法的switch语句是_______。

A. switch( w ) B. switch( a )

{ {

case 1.0 : printf( "*\n" ) ; case 1 printf( "*\n" ) ;

case 2.0 : printf( "**\n" ) ; case 2 printf( "**\n" ) ;

} }

C. switch( b ) D. switch(a+b);

{ {

case 1 : printf( "*\n" ) ; case 1 : printf( "*\n" ) ;

default : printf( "\n" ) ; case 2 : printf( "**\n" ) ;

case 1 + 2 : printf( "**\n" ) ; default : printf( "\n" ) ;

} }

二、程序阅读题

1.下面程序的运行结果是_______。

运行时从键盘输入:9↙。

#include

int main( )

{

int n ;

scanf( "%d" , &n ) ;

if( n++ < 10 ) printf( "%d\n" , n ) ;

else printf( "%d\n" , n-- ) ;

return 0 ;

}

2.下面程序的运行结果是_______。

#include

int main( )

{

int i = 1 , j = 1 , k = 2 ;

if( ( j++ || k++ ) && i++ ) printf( "%d,%d,%d\n" , i , j , k ) ;

return 0 ;

}

3.下面程序的运行结果是_______。

#include

int main( )

{

int m = 5 ;

if(m++ > 5) printf( "%d\n" , m ) ;

else printf( "%d\n" , m-- ) ;

return 0 ;

}

4.下面程序的运行结果是_______。

#include

int main( )

{

char c1 = 97 ;

if(c1 >= 'a' && c1 <= 'z' )

printf( "%d,%c" , c1 , c1 + 1 ) ;

else

printf( "%c" , c1 ) ;

return 0 ;

}

5.下面程序的运行结果是_______。

#include

int main( )

{

int a = 1 , b = 2 , c = 3 ;

if( a > b ) c = 1 ;

else

if( a == b ) c = 0 ;

else c = -1 ;

printf( "c=%d" , c ) ;

return 0 ;

}

6.下面程序的运行结果是_______。运行时从键盘输入:88↙。

#include

int main( )

{

int a ;

scanf( "%d" , &a ) ;

if( a > 90 ) printf( "%d" , a ) ;

if( a > 80 ) printf( "%d" , a ) ;

if( a > 70 ) printf( "%d" , a ) ;

return 0 ;

}

7.下面程序的运行结果是_______。#include

int main( )

{

int x = 10 , y = 20 , t = 0 ;

if( x == y ) t = x ; x = y ; y = t ;

printf( "%d,%d\n" , x , y ) ;

return 0 ;

}

8.下面程序的运行结果是_______。#include

int main( )

{

int x = 1 , a = 0 , b = 0 ;

switch( x )

{

case 0 : b++ ;

case 1 : a++ ;

case 2 : a++ ; b++ ;

}

printf( "%d,%d" , a , b ) ;

return 0 ;

}

9.下面程序的运行结果是_______。运行时从键盘输入:1↙。

#include stdio.h>

int main( )

{

int k ;

scanf( "%d" , &k ) ;

switch( k )

{

case 1: printf( "%d,%d\n" , k++ , k ) ;

case 2: printf( "%d,%d\n" , k , k-- ) ;

case 3: printf( "%d,%d\n" , ++k , k ) ;

case 4: printf( "%d,%d\n" , -k , k++ ) ; break ;

default: printf( "full!\n" ) ;

}

return 0 ;

}

10.下面程序的运行结果是_______。

#include

int main( )

{

int x = 1 , y = 1 , a = 0 , b = 0 ;

switch( x )

{

case 1: switch( y )

{

case 0: a++ ;

case 1: b++ ;

case 2: b++ ; break ;

}

case 2: a++ ; b++ ; break ;

case 3: a++ ; b++ ;

}

printf( "a=%d,b=%d\n" , a , b ) ;

return 0 ;

}

三、程序完善题

1.下面程序用于将输入的三个数从小到大排序输出。#include

int main( )

{

int a , b , c , x , y ;

scanf( "%d%d%d" , &a , &b , &c ) ;

if(_______) { x = a ; y = b ; }

else { x = b ; y = a ; }

if(_______) x = c ;

else if( y > c ) y = c ;

printf( "%d,%d,%d" , y , a + b + c – x – y , x ) ;

return 0 ;

}

四、编程题

1.编写一个程序,从键盘上输入4个整数,输出其中的最小值。

2.编写一个程序,从键盘输入一个四位整数n ,输出它的各位数字之和。例如n=1308,则输出12;n=3204,则输出9。

3.有一函数:

x

x 03x 20x 50y 4x 150x 1005x

x 100??-?=?+???(<)(≤<)(≤<)(≥)

编写一个程序,从键盘输入x 的值,输出y 的值。

4.苹果店有4个等级的苹果,一级5.50元/kg 、二级4.30元/kg 、三级3.00元/kg 、四级2.50元/kg 。利用switch 语句编写一个程序,输入苹果的等级、数量以及顾客的付款数,显示出苹果的等级、数量、应付款数以及找给顾客的钱数。当输入的苹果的等级、数量以及顾客的付款数不合要求时,通知用户“Data Error!”,结束程序。

第5章循环结构程序设计

一、选择题

1.有以下程序段

int k = 10 ;

while( k = 0 ) k = k - 1 ;

则下面描述中正确的是_______。

A.while循环执行10次B.循环是无限循环

C.循环体语句一句也不执行D.循环体语句执行一次

2.有以下程序段

int x = 0 , s = 0 ;

while( !x != 0 ) s += ++x ;

printf( "%d" , s ) ;

则_______。

A.运行程序段输出0 B.运行程序段输出1

C.程序段中的控制表达式是非法的 D.程序段执行无限次

3.下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等数时结束循环,请选择填空。

#include

int main( )

{

int a , b , t ;

scanf( "%d%d" , &a , &b );

while(_______)

{

if( a > b )

{

t = a ;

a =

b ;

b = t ;

}

printf( "%d,%d\n" , a , b ) ;

scanf( "%d%d" , &a , &b ) ;

}

return 0 ;

}

A.!a = b B.a != b C.a == b D.a = b

4.下面程序的功能是在输入的一批正整数中求出最大者,输入0结束循环,请选择填空。

#include

int main( )

{

int a , max = 0 ;

scanf( "%d" , &a ) ;

while(_______)

{

if( max < a )

max = a ;

scanf( "%d" , &a ) ;

}

printf( "%d" , max ) ;

return 0 ;

}

A.a == 0 B.a C.!a == 1 D.!a

5.C语言中while和do-while循环的主要区别是_______。

A.do-while的循环体至少无条件执行一次

B.while的循环控制条件比do-while的循环控制条件严格

C.do-while允许从外部转到循环体内

D.do-while的循环体不能是复合语句

6.下面程序的运行结果是_______。

#include

int main( )

{

int a = 1, b = 10 ;

do

{

b -= a ;

a++ ;

}

while( b-- < 0 ) ;

printf( "a=%d,b=%d\n" , a , b ) ;

return 0 ;

}

A.a=3, b=11 B.a=2, b=8 C.a=1, b=-1 D.a=4,b=9

7.若i为整型变量,则以下循环执行次数是_______。

for( i = 2 ; i == 0 ; ) printf( "%d" , i-- ) ;

A.无限次B.0次C.1次D.2次8.下面程序的功能是计算1到10之间的奇数之和及偶数之和。请选择填空。#include

int main( )

{

int a , b , c , i ;

a = c = 0 ;

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

{

a += i ;

_______ (1) ;

c += b ;

}

printf( "sum of the even = %d\n" , a ) ;

printf( "sum of the odd = %d\n" , _______ (2) ) ;

return 0 ;

}

(1) A.b = i-- B.b = i + 1 C.b = i++ D.b = i - 1

(2) A.c - 10 B.c C.c - 11 D.c - b

9.有以下程序

#include

int main( )

{

int i ;

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

printf( "%d\n" , i ) ;

return 0 ;

}

则下面描述中正确的是_______。

A.输出1 B.输出2 C.输出3 D.死循环

10.for循环语句:for( 表达式1 ; 表达式2 ; 表达式3 )语句,以下叙述正确的是_______。A.for语句中的3个表达式一个都不能少

B.for语句中的循环体至少要执行一次

C.for语句中的循环体可以是一个复合语句

D.for语句只能用于循环次数已经确定的情况

11.关于break和continue,以下说法正确的是_______。

A.break语句只应用在循环体中

B.continue语句只应用在循环体中

C.break是无条件跳转语句,continue不是

D.break和continue语句的跳转范围不够明确,容易产生错误

二、程序阅读题

1.下面程序的运行结果是_______。

#include

#include

int main( )

{

int a = 1 , b = 2 , c = 2 , t ;

while( a < b < c )

{

t = a ;

a =

b ;

b = t ;

c -- ;

}

printf( "%d,%d,%d\n" , a , b , c ) ;

return 0 ;

}

2.有以下程序

#include

int main( )

{

int a , b , m , n ;

m = n = 1 ;

scanf( "%d%d" , &a , &b ) ;

do

{

if( a > 0 )

{

m = 2 * n ;

b++ ;

}

else

{

n = m + n ;

a += 2 ;

b++ ;

}

}

while( a == b ) ;

printf( "m=%d n=%d" , m , n ) ;

return 0 ;

}

若输入输入-1 0↙。程序的运行结果是_______。3.下面程序的运行结果是_______。

#include

int main( )

{

char c1 , c2 ;

int a ;

c1 = '1' ;

c2 = 'A' ;

for( a = 0 ; a < 6 ; a++ )

{

if( a % 2 )

putchar( c1 + a ) ;

else

putchar( c2 + a ) ;

}

return 0 ;

}

4.下面程序的运行结果是_______。#include

int main( )

{

int i , m = 0 , n = 0 , k = 0 ;

for( i = 9 ; i <= 11 ; i++ )

{

switch( i / 10 )

{

case 0 :

m++ ;

n++ ;

break ;

case 10 :

n++ ;

break ;

default :

k++ ;

n++ ;

}

}

printf( "%d%d%d\n" , m , n , k ) ;

return 0 ;

}

5.下面程序的运行结果是_______。#include

int main( )

{

int a = 1 , b ;

for( b = 1 ; b <= 10 ; b++ )

{

if( a >= 8 )

break ;

if( a % 2 == 1 )

{

a += 5 ;

continue ;

}

a = a - 3 ;

}

printf( "%d\n" , b ) ;

return 0 ;

C语言程序设计试题及答案

C语言程序设计 一、选择题(共40分,每小题2分) 1、以下叙述不正确的是(D) A、一个C源程序可由一个或多个函数组成 B、一个C源程序必须包含一个main函数 C、C程序的基本组成单位是函数 D、在C程序中,注释说明只能位于一条语句的后面 2、下列四个选项中,是不合法的用户标识符的选项是(B) A、abc B、12AC C、sun D、A 3、设有语句inta=4;则执行了语句a+=a-=a*a后,变量a的值是(A) A、-24 B、0 C、4 D、16 4、下列运算符中优先级最高的是(B) A、< B、+ C、&& D、== 5、在C语言中,运算对象必须是整型数的运算符是(A) A、% B、/ C、%和/ D、+ 6、以下关于运算符的优先顺序的描述正确的是(C) A、关系运算符<算术运算符<赋值运算符<逻辑与运算符 B、逻辑与运算符<关系运算符<算术运算符<赋值运算符 C、赋值运算符<逻辑与运算符<关系运算符<算术运算符 D、算术运算符<关系运算符<赋值运算符<逻辑与运算符 7、在C语言中,如果下面的变量都是int类型,则输出的结果是(C) sum=pad=5;pAd=sum++,pAd++,++pAd; printf(“%d\n”,pad); A、7 B、6 C、5 D、4 8、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B)

A、INPUTx、y、z; B、scanf(“%d%d%d”,&x,&y,&z); C、scanf(“%d%d%d”,x,y,z); D、read(“%d%d%d”,&x,&y,&z); 9、假定从键盘输入23456<回车>,下面程序的输出结果是:(C)voidmain() {intm,n; scanf(“%2d%3d”,&m,&n); printf(“m=%dn=%d\n”,m,n); } A、m=23n=45 B、m=234n=56 C、m=23n=456 D、语句有错误 10、若运行时,给变量x输入12,则以下程序的运行结果是(A)main() {intx,y; scanf(“%d”,&x); y=x>12?x+10:x-12; printf(“%d\n”,y); } A、0B、22C、12D、10 11、C语言中while和do-while循环的主要区别(A) A、do-while的循环体至少执行一次 B、while的循环控制条件比do-while的循环控制条件严格 C、do-while允许从外部转到循环体内 D、do-while的循环体不能是复合语句 12、以下对二维数组的正确说明的语句是(C) A、inta[3][] B、floata(3,4) C、doublea[3][4] D、floata(3)(4) 13、以下程序的输出结果是(C) main()

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语言程序设计试题答案

习题7 7.1选择题。 (1)下列对字符串的定义中,错误的是: A 。 A) char str[7] = "FORTRAN"; B) char str[] = "FORTRAN"; C) char *str = "FORTRAN"; D) char str[] = {'F','O','R','T','R','A','N',0}; (2)以下程序段的输出结果是:____D_________ char a[] = "ABCDE" ; char *p = NULL; for (p=a; p main() { static char a[5]; a = "abcde" ; printf("%s\n", a); }

B) #include <> main() { static char a[7]= "goodbye!"; printf("%s\n", a) ; } C) #include <> main() { char a[5] = "abcde"; printf("%s\n", a) ; } D) #include <> main() { static char a[]="abcde"; printf("%s\n", a) ; } (4)阅读下列函数,函数功能为___A_____。 void Exchange(int *p1, int *p2) { int p; p = *p1; *p1 = *p2; *p2 = p; } A)交换*p1和*p2的值B)正确,但无法改变*p1和*p2的值 C)交换*p1和*p2的地址 D)可能造成系统故障

C语言程序设计试题集

第一章基础知识 一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。

程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。 13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. 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语言程序设计程序填空题库及答案

程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); }

【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p

C语言程序设计期末考试选择题题库

第一章1、一个C程序可能出现的错误有(A)A,以上都包括 B,逻辑错误 C,运行错误 D,语法错误 2、C程序中一般可以包含几个函数(D) A.1个 B.多个 C.0个 D.至少一个 3.C语言属于程序设计语言的哪个类别(B) A.机器语言 B.高级语言 C.面向对象语言 D.汇编语言 4.以下关于C语言描述错误的是(B) A.一个C程序总是从main函数开始执行 B.一个C程序可以包含多个main函数 C.每个语句的最后必须有一个分号 D.C语言的注释符是以"/*"开始并以"*/"结束

5、在调试过程中,逻辑错误是指(C) A.所书写的语句,不符合C的语法。 B.在从obj生成exe文件的过程中,如果函数名书写错误,可能产生的错误。 C.程序的运行结果不符合题目要求。 D.在exe文件的执行过程中,产生运行异常。 第二章 1、16位的二进制数可以表示的整数的范围是(C) A.[-32768,32768] B.[-32767,32768] C.[-32768,32767] D.[-32767,32767] 2、C语言中的实型数据包括(A) A.float和double B.int和float C.float和char D.int和double 3、以下不合法的字符常量是(C) A.'2' B.'A' C.'ab'

4、在以下各组标识符中,均是合法的C语言标识符是(A) A.abc,A_4d,_student,xyz_abc B.auto,12-a,a_b,ab5.x C.A_4d,_student,xyz_abc,if D.abc,a_b,union,scan 5、若有定义:chara;intb;floatc;doubled; 则表达式a*b+d-c值的类型为(A) A.char B.float C.double D.int 6、类型修饰符unsigned不能修饰(D) A.char B.longint C.int D.float 7、若有定义:doublex=1,y; 执行语句,则y的值是(B) A,1 B,2.0

C语言程序设计习题集(3)

指针 一单项选择题(每题2分,共40分) 1 以下叙述中错误的是_B__。 A 在程序中凡是以“#”开始的语句行都是预处理命令行 B 预处理命令行的最后不能以分号表示结束 C #define MAX是合法的宏定义命令行 D C程序对预处理命令行的处理是在程序执行的过程中进行的 2 若程序中有宏定义行:#define N 100 ,则以下叙述中正确的是__B_。 A 宏定义行中定义了标识符N的值为整数100 B 在编译程序对C源程序进行预处理时用100替换标识符N C 对C源程序进行编译时用100替换标识符N D 在运行时用100替换标识符 3 若有如下宏定义: #define N 2 #define y(n) ((N+1)*n) 则执行下列语句:z=4*(N+y(5));后的结果是_B__。 A 语句有错误 B z值为68 C z值为60 D z值为180 4 以下程序运行后的输出结果是_A__。 #define F(X,Y) (X)*(Y) main() { int a=3,b=4; printf("%d\n",F(a++,b++)); } A 12 B 15 C 16 D 20 5 以下程序运行后的输出结果是_C__。 #define f(x) (x*x) main() { int i1,i2; i1=f(8)/f(4); i2=f(4+4)/f(2+2); printf("%d,%d\n",i1,i2); } A 64,28 B 4,4 C 4,3 D 64,64 6 若已定义a为int型变量,则__D_是对指针变量p的正确说明和初始化。 A int p=&a; B int *p=a; C int *p=*a; D int *p=&a; 7 已知下列说明语句: static int a[]={2,4,6,8} static int *p[]={a,a+1,a+2,a+3}; int **q; q=p; 则表达式**(q+2)的值是_A__。 A 6 B 2 C 4 D 8 8 下面是一个初始化指针的语句:int *px=&a;,其中指针变量的名字应该__C_。 A *px B a C px D &a 9 若指针px为空指针,则_B__。。

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语言程序设计 复习题库

一、填空 1. break 语句通常用于switch // 循环中。 2. C 语言对数组下标的引用一般从0 开始。 3. C 语言中,一个函数一般由两个部分组成,它们是函数首部和函数体。 4. C 标准库函数中,字符串的处理函数包含在string.h 头文件中,数学函数包含在 math.h 头文件中。 5. C 程序的运行需要经过编译和链接两步进行。 6. C 程序中用/**/ 括起来的内容是程序的注释语句。 7. C 语言函数是由函数首部和函数体两部分组成。其中,函数首部包括函数类型、函数 名和函数参数。 8. C 语言提供的三种逻辑运算符是& ,// ,!。 9. C 语言源程序经过编译后,生成文件的后缀名是.c 。 10. C 语言源程序经过连接后,生成文件的后缀名是.exe 。 11. C 语言中,关系表达式和逻辑表达式的值是1//0 。 12. C 语言中的标识符只能由三种字符组成,他们是字母,数字,下划线。 13. C 语言中的每条基本语句以;作为结束符,每条复合语句以} 作为结束符。 14. C 语言中函数返回值的类型是由函数类型决定的。 15. C 源程序的基本单位是函数。 16. int a = 2, b = 3; 表达式 a > b ? a ++ : ++ b 的值为 4 。 17. int x=1,y=1,z=1; x+=y+=z; 则表达式xb>c 的值是0 。 19. 定义一个指针p,它指向一个有 6 个整型元素的一维数组,定义语句为int *p=a[6] ; 。 20. 定义一个指针数组p ,它有 4 个元素,每个指针指向一个整型数据,定义语句为int *p[4]; 。 21. 赋值语句是由= 加上一个分号构成。 22. 构成数组的各个元素必须具有相同的类型。 23. 关系表达式x+y>5 的相反表达式为x+y !>5 。 24. 函数strlen("1234\0xy") 的值为:9 。 25. 函数的形参在未被调用前不分配空间,函数形参的数据类型要和实参相同。 26. 函数体用{ 开始,用} 结束。 27. 结构化设计中的三种基本结构是顺序,选择,循环。

c语言程序设计期末试题B(含答案)

c语言程序设计期末试题B(含答案) 一单项选择题(每小题1分,共10分) 1. A 2. C 3. D 4. A 5. B 1.以下4组用户定义标识符中,全部合法的一组是() A)_total clu_1 sum B)if -max turb C)txt REAL 3COM D)int k_2 _001 2.以下程序的输出结果是() #include main( ) { int a = 1, b = 2, c = 3; printf(“%d”, c>b>a); } A) 2 B) 1 C) 0 D) 3 3.以下正确的叙述是() A) 在C语言中,main函数必须位于文件的开头 B) C语言每行中只能写一条语句 C) C语言本身没有输入、输出语句 D) 对一个C语言进行编译预处理时,可检查宏定义的语法错误 4.设有定义:int a,*pa=&a; 以下scanf语句中能正确为变量a读入数据的是() A)scanf("%d",pa); B)scanf("%d",a); C)scanf("%d",&pa); D)scanf("%d",*pa); 5.若有以下程序段, int c1=1,c2=2,c3; c3=1.0/c2*c1; 则执行后,c3中的值是() A) 0 B) 0.5 C) 1 D) 2 6. D 7. D 8. A 9. C 10. D 6.能正确表示逻辑关系:“a≥=10或a≤0”的C语言表达式是() A) a>=10 or a<=0 B)a>=0|a<=10 C)a>=10 &&a<=0 D)a>=10‖a<=0 7.执行下面的程序时,将1、2、3、4分别赋给a、b、c、d,正确的输入是() main( ) { int a,b,c,d; scanf(“%d,%d,%d%d”,&a,&b,&c,&d); … } A)1 2 3 4 B)1 2 3,4 C) 1,2,3,4 D) 1,2,3 4

(完整版)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语言程序设计模拟试题1附答案

《C语言程序设计》模拟试卷一 一、单项选择题(每题2分,共30分) 1、下列有关C语言的叙述中错误的是()。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被看作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是()。 A) MAIN B) _HJ C) 2ong D) LINE1 3、下列符号中用来表示C语言中的回车换行的是()。 A) \r B) \n C) \b D) \t 4、如有如下定义:int a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为()。 A) 1, 1 B) 1, 2 C) 2, 2 D) 2, 1 5、已知ch为字符型变量,下面表达式中正确的是()。 A) ch=’\xff ’B) ch=’\ff ’C) ch=’ ff ’D) ch=” ff ” 6、以下能正确定义一维数组的是()。 A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”; C) char a[ ]=”012345”;D) char a[5]={0,1,2,3,4,5}; 7、以下语句中能正确定义变量并赋初值的是()。 A) char c=65; B) float f=f+1.1; C) double x=12.3e3.6; D) int m=n=2.0; 8、在执行下列程序时输入:1357924,则程序的运行结果为()。 main( ) { int x, y; scanf(“%2d%2d”,&x,&y); printf(“%2d”,x*y); } A) 13 B) 1357 C) 74 D) 741 9、执行下列程序段后输出的结果是()。

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语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。 A、’x’&&’y’ B、x<=y C、x||y+z&&y-z D、!((x<y)&&!z ||1) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

C语言程序设计考试题库

一、判断题 1、所谓常量,就是在程序运行过程中其值可以改变的量。() 2、一个C程序可以由多个源程序文件构成,但其中只能有一个main()函数。() 3、在C语言中do-while 语句和for循环均是先执行循环体语句,再判断表达式。() 4、在函数调用中将变量的地址作为实参传递给对应形参时,实现的是单向的值传递。() 5、C语言中所有字符串都是以‘\0’结束的。() 6、do-while构成的循环语句中的循环体最少执行1次。() 7、数组名在C语言中表示的是数组的首地址。() 8、使用gets()函数输入字符串时可以在字符串中输入空格。() 9、算术运算符中‘/’的优先级高于‘%’。() 10、char a[5];该语句表明数组a中的第五个元素为a[5]。() 11、C语言源程序文件的扩展名均为.c。() 12、char a[5];数组a中有a[1]、a[2]、a[3]、a[4]、a[5]共5个元素。() 13、C语言程序区分大小写,字符常量必须定义为大写。() 14、若int i=10,j=2;则执行i*=j+8;后i的值为28。() 15、若int x=100,y=200;则语句printf("%d",(x,y));输出结果为100。() 16、c语言中的标识符只能由字母,数字和下划线三种字符组成。() 17、函数getchar()的作用是:输出一个字符。() 18、一个C语言程序总是从第一个函数开始执行。() 19、在c语言中,char型数据在内存中是以ASCII码形式存储的。() 20、在C语言中switch语句必须使用break语句。() 二、选择题 1、以下说法正确的是()。 A、C语言程序总是从第一个函数开始执行。 B、C语言程序中要调用的函数必须在main()函数中定义。 C、C语言程序总是从main()函数开始执行。

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

C语言程序设计复习题

《C语言程序设计》复习题 一、判断题(本大题共60个小题) 1.C程序执行的入口是main()函数,所以main函数必须放在程序的开头。 2.定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。 3.注释内容太多会影响程序的执行效率。 4.变量要“先定义,后使用”。 5.字符常量'a'与字符串常量"a"没有区别。 6.数学公式y=-6xz+5[2(a-5)+3]写成C语言表达式是y=-6*x*z+5*[2*(a-5)+3]。 7.数学公式y=|x|+ab-c写成C语言表达式是y=fabs(x)+a*b-c。 8.表达式5/2+5.0/2+7%6 的值为5.5。 9.设int b=7;float a=2.5,c=4.7;则表达式a+(int)(b/2*(int)(a+c)/2)%4 的值为:4.5。 10.设int a=12; 则表达式a/=a+a的值是0.5。 11.在C语言中,运算符!比&&的优先级高。 12.在C语言中,运算符的优先级最小的是逗号运算符。 13.scanf("%d,%d",&x,&y);的输入格式:3,4<回车>。 14.以下程序运行结果是:1,7,0 void main() { int x=1,y=1,z=10; if(z< 0) if(y> 0) x=3; else x=5; printf(" %d," ,x); if(z=y< 0) x=3; else if(y==0) x=5; else x=7; printf(" %d,%d" ,x,z); } 15.该程序运行结果是:BCother void main()

{ char x=‘B’; switch(x) { case ‘A’: printf(“A”); case ‘B’: printf(“B”); case ‘C’: printf(“C”); default: printf(“other”); } } 16.下面程序段运行时输出结果是a=2,b=8 void main() { int x=1,y=1,a=2,b=7; switch(x) { case 1: switch(y) { case 0: a++;break; case 1: b++;break; } case 2: a++;b++;break; case 3: a++;b++; } printf("a=%d,b=%d\n",a,b); } 17.下面程序,当输入为:"abc?" 时,执行结果是:abc void main() { char c; c=getchar(); while (c!='?' ) { putchar(c); c=getchar();} }

C语言程序设计的试题及答案

C语言程序设计的试题及答案 C语言程序设计的试题及答案C语言程序设计的试题及答案第一章基础知识 一、填空 1.每个C程序都必须有且仅有一个________函数。 2.C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3.软件是程序,以及______、使用和维护所需要的所有文档。 4.国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5.程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6.C语言是由________组成的。 7.C语言的函数可分为主函数ain、标准库函数和_________。 8.一个函数是由两部分组成的,即:________和函数体。 9.编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10.程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自

动化、管理信息系统、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11.机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12.与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对象,也可以用标号和符号来代替地址、常量和变量。 13.在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14.C程序的执行均是由执行_________开始。15.函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C语句组成的执行部分。 16.C语言程序中一条简单语句是以________字符作为结束符的。 17.C语言是结构化、________的程序设计语言。 18.由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19.用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.第一个系统体现结构化程序设计思想的教学工具语言是_______语言。

相关文档
相关文档 最新文档