收藏 分享(赏)

(给学生)C语言复习题.doc

上传人:彼岸花开 文档编号:3889343 上传时间:2018-11-25 格式:DOC 页数:53 大小:232KB
下载 相关 举报
(给学生)C语言复习题.doc_第1页
第1页 / 共53页
(给学生)C语言复习题.doc_第2页
第2页 / 共53页
(给学生)C语言复习题.doc_第3页
第3页 / 共53页
(给学生)C语言复习题.doc_第4页
第4页 / 共53页
(给学生)C语言复习题.doc_第5页
第5页 / 共53页
点击查看更多>>
资源描述

1、 C 语言程序设计 复习题第 1 章 C 语言程序设计概述一、选择题1下列关于计算机语言的叙述中,正确的是_C _。A在计算机语言中,只有机器语言属于低级语言B高级语言的源程序可以被计算机直接执行CC 语言属于高级语言D机器语言是与所有机器无关的语言2源程序 TEST.C 经编译产生的目标文件和连接后产生的可执行文件是_B_。ATEST.BAK 和 TEST.OBJ BTEST.OBJ 和 TEST.EXECTEST.EXE 和 TEST.C DTEST.BAK 和 TEST.EXE3一个 C 程序的执行是从_A_。A本程序的 main 函数开始,到 main 函数结束B本程序文件的第一个函数

2、开始,到本程序文件的最后一个函数结束C本程序的 main 函数开始,到本程序文件的最后一个函数结束D本程序文件的第一个函数开始,到本程序 main 函数结束4以下叙述正确的是_C_。A在 C 程序中,main 函数必须位于程序的最前面B程序的每行中只能写一条语句CC 语言本身没有输入输出语句D在对一个 C 程序进行编译的过程中,可发现注释中的拼写错误5以下叙述不正确的是_C_。A一个 C 源程序可由一个或多个函数组成B一个 C 源程序必须包含一个 main 函数C在 C 程序中,注释说明只能位于一条语句的后面DC 程序的基本组成单位是函数6一个 C 语言程序是由_B_。A一个主程序和若干子程序

3、组成B函数组成C若干过程组成D若干子程序组成7关于 C 语言程序书写规则说法中正确的是_D_。A程序语句必须占一行 B不区分大小写C每行必须有行号 D每条语句用分号结束8下面关于算法的说法,错误的是_B_。A算法必须有输出,但不一定有输入B算法必须在计算机上用某种语言实现C算法必须在有限步执行后能结束D算法的每一步骤必须有确切的定义9结构化程序设计规定的 3 种基本控制结构是_D _。A顺序、选择和转向 B层次、网状和循环C模块、选择和循环 D顺序、选择和循环10结构化程序由三种基本结构组成,三种基本结构组成的算法_A _。A可以完成任何复杂的任务 B只能完成部分复杂的任务C只能完成符合结构化

4、的任务 D只能完成一些简单的任务第 2 章 数据类型及其运算一、选择题1下面四个选项中,均是不合法的用户标识符的选项的是_C _。AA p_o do Bfloat lao _ACb-a goto int D_123 temp INT2以下选项中可以作为 C 语言中合法整数的是_ C_。A 10110B B 0386 C 0Xffa D x2a23以下选项中合法的实型常数是_C_。A5E2.0 BE-3 C2E0 D1.3E4以下选项中可作为 C 语言合法常量的是_A_。A-80 B-080 C-8e1.0 D-80.0e 5下面四个选项中,均是合法转义字符的选项是_B_。A n B 017 t

5、C018 f xab D0 101 x1f6下面不正确的字符串常量是_A_。Aabc B“1212“ C“0“ D“ “7以下选项中不属于 C 语言的类型的是_D_。Asigned short int Bunsigned long intCunsigned int Dlong short8在 C 语言中,要求运算数必须是整型的运算符是 _D_。A/ B+ C!= D%9以下运算符中优先级最低的是_C_,以下运算符中优先级最高的是_B_。Am = B + 32 ;printf( “%cn“ , m ) ;return 0 ;2下面程序的运行结果是_0_。#includeint main( ) i

6、nt x = 3 , y = 5 ;printf( “%dn“ , x / y ) ;return 0 ; 3下面程序的运行结果是_0_。#includeint main( ) int m = 0xabc , n = 0xabc ;m -= n ;printf( “%xn“ , m ) ;return 0 ; 4下面程序的运行结果是_10 , 2_。#includeint main( ) int x = 10 , y = 3 ;printf( “%d,%dn“ , x+ , -y ) ;return 0 ; 5下面程序的运行结果是_9 , 10 , 9 , 10_。#includeint ma

7、in( ) int i , j ;i = 8 ;j=10;printf( “%d,%d,%d,%dn“ , i , j , +i , j+ ) ;return 0 ;6下面程序的运行结果是_3 , 1 , 0 , 0_。#includeint main( ) int a = 1 , b = 2 , c = 3 ;printf( “%d,%d,%d,%dn“ , a = b = c , a = b = c , a = ( b = c ) , a = ( b = c ) ) ;return 0 ;7下面程序的运行结果是_3 , 20 , 30 , 1_。#includeint main( ) in

8、t a = 2 , b=20 , c=30 , d ;d = +a = 20 | c+ ;printf( “%d,%d,%d,%dn“ , a , b , c , d ) ;return 0 ;第 3 章 语句与输入输出一、选择题1设有定义:long x = 123456L ; ,则以下能够正确输出变量 x 值的语句是_B_。Aprintf( “x=%dn“ , x ) ; Bprintf( “x=%ldn“ , x ) ;Cprintf( “x=%8dLn“ , x ) ; Dprintf( “x=%LDn“ , x ) ;2若有以下程序段int m = 0xabc , n = 0xabc

9、;m -= n ;printf( “%Xn“ , m ) ;执行后输出结果是_C_。A0X0 B0x0 C0 D0XABC3已知 char a = 103 ;则语句 printf( “%3d“ , a ) ; 执行后的输出结果为_C_。A67 BC C 67 D1034已知 a、b 、c 为 int 类型,执行语句:scanf( “a=%d, b=%d, c=%d“ , ,若要使得 a 为 1,b 为 2,c 为 3。则以下选项中正确的输入形式是_C_。A a=1 B1, 2, 3 Ca=1, b=2, c=3 D1 2 3b=2c=35已知 i、j、k 为 int 型变量,若从键盘输入:1,

10、2,3,使 i 的值为 1、j的值为 2、k 的值为 3,以下选项中正确的输入语句是_C_ 。Ascanf( “%2d%2d%2d“ , Bscanf( “%d %d %d“ , Cscanf( “%d,%d,%d“ , Dscanf( “i=%d,j=%d,k=%d“ , 6x、y、z 被定义为 int 型变量,若从键盘给 x、 y、z 输入数据,正确的输入语句是_B_。AINPUT x、y、z; Bscanf( “%d,%d,%d“ , Cscanf( “%d,%d,%d“ , x , y , z ) ;Dread( “%d,%d,%d“ , 7若有 int a ; float b ; s

11、canf( “%d,%f“ , 使 a、b 的值分别为30 和 5.5,则正确的输入是_B_。A30 5.5 B30, 5.5 Ca=30, b=5.5 Da=30 b=5.58根据以下定义语句和数据的输入方式,scanf 语句的正确形式应为_B_。已有定义:float f1 , f2 ;数据的输入方式:4.523.5Ascanf( “%f, %f“ , Bscanf( “%f%f“ , Cscanf( “%3.2f %2.1f“ , Dscanf( “%3.2f%2.1f“ , 9以下针对 scanf()函数的叙述中,正确的是 _D_。A输入项可以为一实型常量,如 scanf( “%f“ ,

12、 3.5 ) ;B只有格式控制,没有输入项,也能进行正确输入,如 scanf( “a=%d, b=%d“ ) ;C当输入一个实型数据时,格式控制部分应规定小数点后的位数,如:scanf( “%4.2f“ , D当输入数据时,必须指明变量的地址,如 scanf( “%f“ , 10有以下程序#includeint main( )char c1 = 1 , c2 = 2 ;c1 = getchar( ) ; c2 = getchar( ) ; putchar( c1 ) ; putchar( c2 ) ;当运行时输入 a后,以下叙述正确的是_A_ 。A变量 c1 被赋予字符 a,c2 被赋予回车符

13、B程序将等待用户输入 2 个字符C变量 c1 被赋予字符 a,c2 中仍是原有字符 2D变量 c1 被赋予字符 a,c2 中将无确定值三、程序阅读题1下面程序的运行结果是_261_。#includeint main( ) int m = 177 ;printf( “%on“ , m ) ;return 0 ;2下面程序的运行结果是_20_。#includeint main( ) int n = 0 ;n += ( n = 10 ) ;printf( “%dn“, n ) ;return 0 ;3下面程序的运行结果是_201 , 10_。#includeint main( ) int a = 2

14、01 , b = 012 ;printf( “%2d,%2dn“ , a , b ) ;return 0 ;y=46304下面程序的运行结果是_ y= 4630_。#includeint main( ) int y = 2456 ;printf( “y=%3on“ , y ) ;printf( “y=%8on“ , y ) ;return 0 ;5下面程序的运行结果是_*3.140000 ,3.142*_。#include int main( ) printf( “*%f,%4.3f*n“ , 3.14 , 3.1415 ) ;return 0 ;6下面程序的运行结果是_ c:dec=120

15、,oct=170 ,hex=78 ,ASCII=x _。#includeint main( ) char c = x ;printf( “c:dec=%d,oct=%o,hex=%x,ASCII=%cn“ , c , c , c , c ) ;return 0 ;x=1 y=2 *sum*=37下面程序的运行结果是_10 squared is : 100_。#includeint main( ) int x = 1 , y = 2 ;printf( “x=%d y=%d *sum*=%dn“ , x , y , x + y ) ;printf( “10 squared is : %dn“ ,

16、10 * 10 ) ;return 0 ;8下面程序的运行结果是_2 48 20.0 20.0_。#includeint main( ) int n = 100 ;char c ;float f = 10.0 ;double x ;x = f *= n /= ( c = 48 ) ;printf( “%d %d %3.1f %3.1fn“ , n , c , f , x ) ;return 0 ;9下面程序的运行结果是_ x+y+z=48_。运行时从键盘输入:25 13 10。#includeint main( ) int x , y , z ;scanf( “%d%d%d“ , printf

17、( “x+y+z=%dn“ , x + y + z ) ;return 0 ;10下面程序的运行结果是_55 ,空格 ,A _ 。运行时从键盘输入:55 A B。#include int main( ) int k = 0 ; char c1 = a , c2 = b ;scanf(“%d%c%c“ , printf( “%d,%c,%cn“ , k , c1 , c2 ) ;return 0 ;第 4 章 选择结构程序设计一、选择题1if 语句的选择条件是_D_。A只能用关系表达式 B只能用关系表达式或逻辑表达式C只能用逻辑表达式 D可以用任何表达式2已知 int x = 2 , y = -

18、1 , z = 3 ;,执行下面语句后,z 的值是_C_。if( x int main( ) int n ;scanf( “%d“ , if( n+ int main( )int i = 1 , j = 1 , k = 2 ;if( ( j+ | k+ ) return 0 ;3下面程序的运行结果是_6_。#includeint main( ) int m = 5 ;if(m+ 5) printf( “%dn“ , m ) ;else printf( “%dn“ , m- ) ;return 0 ;4下面程序的运行结果是_97 ,b_。#includeint main( )char c1 =

19、97 ;if(c1 = a if( a b ) c = 1 ;elseif( a = b ) c = 0 ;else c = -1 ;printf( “c=%d“ , c ) ;return 0 ;6下面程序的运行结果是_8888_。运行时从键盘输入:88。#includeint main( )int a ;scanf( “%d“ , if( a 90 ) printf( “%d“ , a ) ;if( a 80 ) printf( “%d“ , a ) ;if( a 70 ) printf( “%d“ , a ) ;return 0 ;7下面程序的运行结果是_20 ,0_。#includei

20、nt main( )int x = 10 , y = 20 , t = 0 ;if( x = y ) t = x ; x = y ; y = t ;printf( “%d,%dn“ , x , y ) ;return 0 ;8下面程序的运行结果是_2 ,1_。#includeint 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

21、 stdio.hint main( )int k ;scanf( “%d“ , switch( k )case 1: printf( “%d,%dn“ , k+ , k ) ;case 2: printf( “%d,%dn“ , k , k- ) ;case 3: printf( “%d,%dn“ , +k , k ) ;case 4: printf( “%d,%dn“ , -k , k+ ) ; break ;default: printf( “full!n“ ) ;return 0 ;10下面程序的运行结果是_a=1 ,b=3_ 。#includeint main( ) int x = 1

22、 , y = 1 , a = 0 , b = 0 ;switch( x ) case 1: switch( y ) case 0: a+ ;case 1: b+ ;case 2: b+ ; break ;1 ,12 ,22 ,1-2 ,2case 2: a+ ; b+ ; break ;case 3: a+ ; b+ ;printf( “a=%d,b=%dn“ , a , b ) ;return 0 ;三、程序完善题1下面程序用于将输入的三个数从小到大排序输出。#includeint main( ) int a , b , c , x , y ;scanf( “%d%d%d“ , if(_ab

23、_) x = a ; y = b ; else x = b ; y = a ; if(_cx_) x = c ;else if( y c ) y = c ;printf( “%d,%d,%d“ , y , a + b + c x y , x ) ;return 0 ;第 5 章 循环结构程序设计一、选择题1有以下程序段 int k = 10 ;while( k = 0 ) k = k - 1 ;则下面描述中正确的是_C_。 Awhile 循环执行 10 次 B循环是无限循环C循环体语句一句也不执行 D循环体语句执行一次2有以下程序段int x = 0 , s = 0 ;while( !x !=

24、 0 ) s += +x ;printf( “%d“ , s ) ;则_B _。 A运行程序段输出 0 B运行程序段输出 1C程序段中的控制表达式是非法的 D程序段执行无限次3下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等数时结束循环,请选择填空。#includeint main( )int a , b , t ;scanf( “%d%d“ , while(_B_)if( a b )t = a ;a = b ;b = t ;printf( “%d,%dn“ , a , b ) ;scanf( “%d%d“ , return 0 ;A!a = b Ba != b Ca =

25、 b Da = b4下面程序的功能是在输入的一批正整数中求出最大者,输入 0 结束循环,请选择填空。#includeint main( )int a , max = 0 ;scanf( “%d“ , while(_B_)if( max int main( )int a = 1, b = 10 ;dob -= a ;a+ ;while( b- int main( )int a , b , c , i ;a = c = 0 ;for( i = 0 ; i int main( )int i ;for( i = 1 ; ; i+ ) ;printf( “%dn“ , i ) ; return 0 ;则

26、下面描述中正确的是_D_。A输出 1 B输出 2 C输出 3 D死循环10for 循环语句:for( 表达式 1 ; 表达式 2 ; 表达式 3 )语句,以下叙述正确的是_C_。Afor 语句中的 3 个表达式一个都不能少Bfor 语句中的循环体至少要执行一次Cfor 语句中的循环体可以是一个复合语句Dfor 语句只能用于循环次数已经确定的情况11关于 break 和 continue,以下说法正确的是_B_。Abreak 语句只应用在循环体中 Bcontinue 语句只应用在循环体中Cbreak 是无条件跳转语句,continue 不是Dbreak 和 continue 语句的跳转范围不够明

27、确,容易产生错误二、程序阅读题1下面程序的运行结果是_1 ,2 ,0_。#include#includeint main( )int a = 1 , b = 2 , c = 2 , t ;while( a int main( )int a , b , m , n ;m = n = 1 ;scanf( “%d%d“ , doif( a 0 )m = 2 * n ;b+ ;elsen = m + n ;a += 2 ;b+ ;while( a = b ) ;printf( “m=%d n=%d“ , m , n ) ;return 0 ;若输入输入1 0。程序的运行结果是_m=4 n=2_。 3下

28、面程序的运行结果是_A2C4E6_。#includeint main( )char c1 , c2 ;int a ;c1 = 1 ;c2 = A ;for( a = 0 ; a int main( )int i , m = 0 , n = 0 , k = 0 ;for( i = 9 ; i int main( )int a = 1 , b ;for( b = 1 ; b = 8 )break ;if( a % 2 = 1 )a += 5 ;continue ;a = a - 3 ;printf( “%dn“ , b ) ;return 0 ;6下面程序的运行结果是_ k=0,m=5_。#inc

29、ludeint main( )int m = 0 , k = 0 , i , j ;for( i = 0 ; i int main( )int i , j , x = 0 ;for( i = 0 ; i #includeint main( )float x , y , z ;scanf( “%f,%f“ , z = x / y ;while( 1 )if( fabs( z ) 1.0 ) /* fabs()是计算绝对值的函数,包含在 math.h 文件中,此时计算|Z| */x = y ;y = z ;z = x / y ;elsebreak ;printf( “%3.1fn“ , y ) ;

30、return 0 ;若输入数据 3.6,2.4。程序的运行结果是_1.6_。9有以下程序#includeint main( )char c ;c = getchar( );while ( c != n )switch ( c - 2 )case 0 :case 1: putchar( c + 4 ) ;case 2: putchar( c + 4 ) ;break;case 3: putchar( c + 3 ) ;case 4: putchar( c + 2 ) ;break;c = getchar( );printf( “n“ ) ;return 0 ;若输入数据 7654。程序的运行结果

31、是_8878_。三、程序完善题1下面程序的功能是:按规律将电文变成密码,即将字母 A 变成字母E,a 变成 e,即变成其后的第 4 个字母,W 变成 A,X 变成 B,Y 变成 C,Z变成 D;非字母字符保持原状不变。如“boy”转换为“fsc” 。从键盘输入一行字符,用换行符结束输入,输出其相应的密码。请填空。#includeint main( ) char ch ;printf( “ please enter:n“ ) ;ch = getchar( ) ;while( ch != n )if( ( ch = a printf( “%c“ , ch ) ;ch = getchar( ) ;p

32、rintf( “n“ ) ;return 0 ;2下面程序的功能是:计算 100 至 1000 之间有多少个数其各位数字之和是5。请填空。#includeint main( )int i , s , k , count = 0 ;for( i = 100 ; i int main( )int t = 0 , s = 0 , i ;for( i = 1 ; i #include int main( )int f = 1 ;float pi = 0.0 , n = 1 , t = 1 ;while(_fabs( t ) = 1e-6_)pi = pi + t ;n = n + 2 ;_f=-f_;

33、t = f / n ;pi = pi * 4 ;printf( “pi=%8.6fn“ , pi ) ;return 0 ;5下面程序的功能是:计算 100 以内能被 3 整除,且个位数为 4 的所有整数。请填空。#includeint main( ) int i , j ;for( i = 0 ; _iint main( ) int i , x33 = 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ;for( i = 0 ; i s2 ) Bif( strcmp( s1 , s2 ) )Cif( strcpy( s1 , s2 ) ) Dif( strcmp( s1 ,

34、 s2 )0 )15若有定义:char s100 = “hello“ ;,下列函数调用语句中,不正确的是_C_。Astrlen( strcpy( s , “well“ ) ) ; Bstrcat( s , “!“ ) ;Cputs( puts( “hello“ ) ) ; D!strcmp( “ , s ) ;16下面程序的运行结果是_D_。#include#includeint main( )char a80 = “AB“ , b80 = “LMNP“ ;int i = 0 ;strcat( a , b ) ;while( ai+ != 0 )bi = ai ;puts( b ) ;retu

35、rn 0 ;ALB BABLMNP CAB DLBLMNP二、程序阅读题1下面程序的运行结果是_8_。#includeint main( )int i , k , a10 , p3 ;k = 5 ;for( i= 0 ; i int main( )int i ,x10 = 2 , 3 , 0 , 3 , 0 , 2 , 3 , 2 , 1 , 3 ,y4 = 0 ;for( i = 0 ; i int main( ) int i , j , a33 = 0 ; for( i = 0 ; i int main( )int a33 = 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ,

36、 8 ;int i , s = 0 ;for( i= 0 ; i int main( )int i ;char a = “Time“ , b = “Tom“ ;for( i = 0 ; ai != 0 i+ )if( ai = bi )if( ai = a int i , j = 0 ;for( i = 1 ; i int main( )int a5 , max , min , i , j = 0 , k = 0 ;for( i = 0 ; i max ) max = ai ;_j=i_;_ak=max_;_aj=min_;printf( “nThe position of min is:%3

37、dn“ , k ) ;printf( “nThe position of max is:%3dn“ , j ) ;for( i = 0 ; i int main( ) int score10 , n = 0 , i ;float sum = 0.0 , avg ; printf( “pleasr enter :n“ ) ;for( i = 0 ; i int main( )int a34 = 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 ;int s3 = 0 ;int i , j ;for( i= 0 ; i #includeint main

38、( )char str = “abcdefg“ ;int i , j , k ;_j=strlen(str)-1_;for( i= 0 ; i int main( ) int num26 = 0 , i ;char c ;while(_( c=getchar() )!=#_)if( c = A int a = 1 , b = 2 , c ;c = max( a , b ) ;printf( “max is %dn“ , c ) ;return 0 ;int max( int x , int y ) int z ;z = ( x y ) ? x : y ;return z ;2下面程序的运行结果

39、是_ a=1,b=2_。#includeint main( ) void f( int x , int y ) ;int a = 1 , b = 2 ;f( a , b ) ;printf( “a=%d,b=%dn“ , a , b ) ;return 0 ;void f( int x , int y ) x = 100 ;y = 200 ;3下面程序的运行结果是_ 1 1 1_。#includeint main( )void increment( ) ;increment( ) ;increment( ) ;increment( ) ;return 0 ;void increment( )i

40、nt x = 0 ;x += 1 ;printf( “%dt“ , x ) ;4下面程序的运行结果是_ a=11,b=12,c=2_。#includeint main( ) int f1( int x , int y ) ;int a = 11 , b = 12 ,c ;c = f1( a , b ) ;printf( “a=%d,b=%d,c=%dn“ , a , b ,c ) ;return 0 ;int f1( int x , int y ) int f2( int , int ) ;int c ;x = x * 2 ;y = y * 2 ;c = f2( x , y ) ;return c*2 ;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > C/C++资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报