《《C 语言程序设计语言程序设计》》习题集习题集 2017 秋秋 目录目录 第 1 章 C 语言程序设计概述................................................................................................... 1 第 2 章 数据类型及其运算.......................................................................................................3 第 3 章 语句与输入输出...........................................................................................................6 第 4 章 选择结构程序设计.................................................................................................... 10 第 5 章 循环结构程序设计.................................................................................................... 14 第 6 章 数组.............................................................................................................................23 第 7 章 函数.............................................................................................................................30 第 8 章 编译预处理.................................................................................................................37 第 9 章 指针.............................................................................................................................39 第 10 章 结构体与共用体.......................................................................................................46 第 11 章 位运算.......................................................................................................................52 第 12 章 文件操作...................................................................................................................54 1 第 1 章 C 语言程序设计概述 一、选择题一、选择题 1.下列关于计算机语言的叙述中,正确的是_______。 A.在计算机语言中,只有机器语言属于低级语言 B.高级语言的源程序可以被计算机直接执行 C.C 语言属于高级语言 D.机器语言是与所有机器无关的语言 2.源程序 TEST.C 经编译产生的目标文件和连接后产生的可执行文件是_______。 A.TEST.BAK 和 TEST.OBJB.TEST.OBJ 和 TEST.EXE C.TEST.EXE 和 TEST.CD.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.只能完成一些简单的任务 二、填空题二、填空题 2 1.C 源程序的基本单位是________,一个 C 源程序中必须包括一个________。 2.在一个 C 源程序中,注释部分两侧的分界符分别为________和________。 3.C 语言源程序文件的后缀是________;经过编译后,生成文件的后缀是________;经过连接后,生成的 文件的后缀是________。 4.结构化程序由________、________、________,3 种基本结构组成。 三、编程题三、编程题 1.编写一个程序,用 2 个 printf()语句分别输出学校名称和自己的姓名。 2.编写一个程序,用 1 个 printf()语句输出学校名称和自己的姓名。 3 第 2 章 数据类型及其运算 一、选择题一、选择题 1.下面四个选项中,均是不合法的用户标识符的选项的是_______。 A.Ap_odoB.floatlao_A C.b-agotointD._123tempINT 2.以下选项中可以作为 C 语言中合法整数的是_______。 A. 10110BB. 0386C. 0XffaD. x2a2 3.以下选项中合法的实型常数是_______。 A.5E2.0B.E-3C.2E0D.1.3E 4.以下选项中可作为 C 语言合法常量的是_______。 A.-80B.-080C.-8e1.0D.-80.0e 5.下面四个选项中,均是合法转义字符的选项是_______。 A.\ \\\nB.\\017\t C.\018 \f\xabD.\\0\101x1f 6.下面不正确的字符串常量是_______。 A.abcB."12’12"C."0"D."" 7.以下选项中不属于 C 语言的类型的是_______。 A.signed short intB.unsigned long int C.unsigned intD.long short 8.在 C 语言中,要求运算数必须是整型的运算符是_______。 A./B.++C.!=D.% 9.以下运算符中优先级最低的是_______,以下运算符中优先级最高的是_______。 A. float x = 2.5 , y = 4.7 ; ,则表达式 x + a % 3 * ( int )( x + y ) % 2 / 4 的值是_______。 A.2.500000B.2.750000C.3.500000D.0.000000 13. 若有以下类型说明语句: char w ; int x ; float y ; double z ; , 则表达式 w * x + z - y 的结果为_______类型。 A.floatB.charC.intD.double 14.已有定义:int x = 3 , y = 4 , z = 5 ; 则表达式!( x + y ) + z – 1 a++ 后,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 = 0 xabc , n = 0 xabc ; 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 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 = 20 || c++ ; printf( "%d,%d,%d,%d\n" , a , b , c , d ) ; return 0 ; } 6 第 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 = 0 xabc , n = 0 xabc ; m -= n ; printf( "%X\n" , m ) ; 执行后输出结果是_______。 A.0X0B.0 x0C.0D.0XABC 3.已知 char a = \103 ;则语句 printf( "%3d" , a ) ; 执行后的输出结果为_______。 A.67B.CC.67D.103 4.已知 a、b、c 为 int 类型,执行语句:scanf( "a=%d, b=%d, c=%d" , ,若要使得 a 为 1,b 为 2,c 为 3。则以下选项中正确的输入形式是_______。 A. a=1B.1, 2, 3C.a=1, b=2, c=3D.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" , B.scanf( "%d%d%d" , C.scanf( "%d,%d,%d" , D.scanf( "i=%d,j=%d,k=%d" , 6.x、y、z 被定义为 int 型变量,若从键盘给 x、y、z 输入数据,正确的输入语句是_______。 A.INPUT x、y、z; B.scanf( "%d,%d,%d" , C.scanf( "%d,%d,%d" , x , y , z ) ; D.read( "%d,%d,%d" , 7.若有 int a ; float b ; scanf( "%d,%f" , 使 a、b 的值分别为 30 和 5.5,则正确的输入是_______。 A.305.5B.30, 5.5C.a=30, b=5.5D.a=30 b=5.5 8.根据以下定义语句和数据的输入方式,scanf 语句的正确形式应为_______。 已有定义:float f1 , f2 ; 数据的输入方式:4.52↙ 3.5↙ A.scanf( "%f, %f" , B.scanf( "%f%f" , C.scanf( "%3.2f%2.1f" , D.scanf( "%3.2f%2.1f" , 9.以下针对 scanf()函数的叙述中,正确的是_______。 A.输入项可以为一实型常量,如 scanf( "%f" , 3.5 ) ; B.只有格式控制,没有输入项,也能进行正确输入,如 scanf( "a=%d, b=%d" ) ; C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如:scanf( "%4.2f" , D.当输入数据时,必须指明变量的地址,如 scanf( "%f" , 10.有以下程序 #include int main( ) 7 { 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 ) ; 8 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.下面程序的运行结果是_______。 运行时从键盘输入:251310↙。 #include int main( ) { int x , y , z ; scanf( "%d%d%d" , printf( "x+y+z=%d\n" , x + y + z ) ; return 0 ; } 10.下面程序的运行结果是_______。 9 运行时从键盘输入:55A B↙。 #include int main( ) { int k = 0 ; char c1 = a , c2 = b ; scanf("%d%c%c" , printf( "%d,%c,%c\n" , k , c1 , c2 ) ; return 0 ; } 四、编程题四、编程题 1.编写一个程序,读入一个字母,输出与之对应的 ASCII 码值。 2.编写一个程序,从键盘输入圆的半径 r,圆柱的高 h,分别计算出圆周长 cl、圆面积 cs 和圆柱的体积 cv, 输出计算结果时要求保留小数点后 4 位。 3.编写一个程序,输入一个三位数,分别求出这个三位数的个位、十位和百位上的数。 10 第 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.1B.2C.3D.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.0B.1C.2D.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.1B.2C.3D.6 5.为了避免嵌套的 if-else 的二义性,C 语言规定,else 与_______配对。 A.与最外层的 ifB.其之前最近的不带 else 的 if C.其之后最近的 ifD.与最近的{ }之前的 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 ; 11 scanf( "%d" , if( n++ < 10 )printf( "%d\n" , n ) ; elseprintf( "%d\n" , n-- ) ; return 0 ; } 2.下面程序的运行结果是_______。 #include int main( ) { int i = 1 , j = 1 , k = 2 ; if( ( j++ || k++ ) return 0 ; } 3.下面程序的运行结果是_______。 #include int main( ) { int m = 5 ; if(m++ > 5)printf( "%d\n" , m ) ; elseprintf( "%d\n" , m-- ) ; return 0 ; } 4.下面程序的运行结果是_______。 #include int main( ) { char c1 = 97 ; if(c1 >= a 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 ; elsec = -1 ; printf( "c=%d" , c ) ; return 0 ; } 6.下面程序的运行结果是_______。 运行时从键盘输入:88↙。 #include int main( ) 12 { 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.下面程序的运行结果是_______。 #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" , 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.下面程序的运行结果是_______。 13 #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" , 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.有一函数: xx0 3x20 x50 y 4x150 x 100 5xx100          ( < ) ( ≤ < ) (≤ <) ( ≥) 编写一个程序,从键盘输入 x 的值,输出 y 的值。 4. 苹果店有 4 个等级的苹果, 一级 5.50 元/kg、 二级 4.30 元/kg、 三级 3.00 元/kg、 四级 2.50 元/kg。 利用 switch 语句编写一个程序,输入苹果的等级、数量以及顾客的付款数,显示出苹果的等级、数量、应付款数以及找给顾 客的钱数。当输入的苹果的等级、数量以及顾客的付款数不合要求时,通知用户“Data Error!” ,结束程序。 14 第 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.运行程序段输出 0B.运行程序段输出 1 C.程序段中的控制表达式是非法的D.程序段执行无限次 3.下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等数时结束循环,请选择 填空。 #include int main( ) { int a , b , t ; scanf( "%d%d" , while(_______) { if( a > b ) { t = a ; a = b ; b = t ; } printf( "%d,%d\n" , a , b ) ; scanf( "%d%d" , } return 0 ; } A.!a = bB.a != bC.a == bD.a = b 4.下面程序的功能是在输入的一批正整数中求出最大者,输入 0 结束循环,请选择填空。 #include int main( ) { int a , max = 0 ; scanf( "%d" , while(_______) { if( max < a ) 15 max = a ; scanf( "%d" , } printf( "%d" , max ) ; return 0 ; } A.a == 0B.aC.!a == 1D.!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=11B.a=2, b=8C.a=1, b=-1D.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 + 1C.b = i++D.b = i - 1 (2)A.c - 10B.cC.c - 11D.c - b 9.有以下程序 16 #include int main( ) { int i ; for( i = 1 ;; i++ ) ; printf( "%d\n" , i ) ; return 0 ; } 则下面描述中正确的是_______。 A.输出 1B.输出 2C.输出 3D.死循环 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" , do { if( a > 0 ) { m = 2 * n ; 17 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++ ; 18 n++ ; } } printf( "%d%d%d\n" , m , n , k ) ; return 0 ; } 5.下面程序的运行结果是_______。 #include int main( ) { int a = 1 , b ; for( b = 1 ; b = 8 ) break ; if( a % 2 == 1 ) { a += 5 ; continue ; } a = a - 3 ; } printf( "%d\n" , b ) ; return 0 ; } 6.下面程序的运行结果是_______。 #include int main( ) { int m = 0 , k = 0 , i , j ; for( i = 0 ; i < 2 ; i++ ) { for( j = 0 ; j < 3 ; j++ ) k++ ; k = k - j ; } m = i + j ; printf( "k=%d,m=%d\n" , k , m ) ; return 0 ; } 7.下面程序的运行结果是_______。 #include int main( ) { int i , j , x = 0 ; for( i = 0 ; i < 2 ; i++ ) { x++ ; for( j = 0 ; j <= 3 ; j++ ) 19 { if( j % 2 ) continue ; x++ ; } x++ ; } printf( "x=%d\n" , x ) ; return 0 ; } 8.有以下程序 #include #include int 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 ; } else break ; } printf( "%3.1f\n" , y ) ; return 0 ; } 若输入数据 3.6,2.4↙。程序的运行结果是_______。 9.有以下程序 #include int 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 ) ; 20 case 4: putchar( c + 2 ) ; break; } c = getchar( ); } printf( "\n" ) ; return 0 ; } 若输入数据 7654↙。程序的运行结果是_______。 三、程序完善题三、程序完善题 1.下面程序的功能是:按规律将电文变成密码,即将字母 A 变成字母 E,a 变成 e,即变成其后的第 4 个字 母,W 变成 A,X 变成 B,Y 变成 C,Z 变成 D;非字母字符保持原状不变。如“boy”转换为“fsc” 。从键盘输 入一行字符,用换行符结束输入,输出其相应的密码。请填空。 #include int main( ) { char ch ; printf( " please enter:\n" ) ; ch = getchar( ) ; while( ch != \n ) { if( ( ch >= a if(_______) ch = _______; } printf( "%c" , ch ) ; ch = getchar( ) ; } printf( "\n" ) ; return 0 ; } 2.下面程序的功能是:计算 100 至 1000 之间有多少个数其各位数字之和是 5。请填空。 #include int main( ) { int i , s , k , count = 0 ; for( i = 100 ; i <= 1000 ; i++ ) { s = 0 ; k = i ; while(_______) { s = s + k % 10 ; k =_______ ; } if( s != 5 ) _______ ; 21 else count++; } printf( "%d" , count ) ; return 0 ; } 3.下面程序的功能是计算:s=1+12+123+1234+12345。请填空。 #include int main( ) { int t = 0 , s = 0 , i ; for( i = 1 ; i <= 5 ; i++ ) { t =_______; _______; } printf( "s=%d\n" , s ) ; return 0 ; } 4.下面程序的功能是:用公式 111 1 4357   …求的近似值,直到发现某一项的绝对值小于 6 10为 止(该项不累加) 。请填空。 #include #include int main( ) { int f = 1 ; float pi = 0.0 , n = 1 , t = 1 ; while(_______) { pi = pi + t ; n = n + 2 ; _______; t = f / n ; } pi = pi * 4 ; printf( "pi=%8.6f\n" , pi ) ; return 0 ; } 5.下面程序的功能是:计算 100 以内能被 3 整除,且个位数为 4 的所有整数。请填空。 #include int main( ) { int i , j ; for( i = 0 ; _______; i++ ) { j = i * 10 + 4 ; if(_______) continue; 22 printf( "%d\n" , j ) ; } return 0 ; } 四、编程题四、编程题 1.编写一个程序,输出所有的水仙花数。若一个三位数等于其各位上数字的立方和,则称这个三位数为水 仙花数。例如,153 是一个水仙花数,因为 333 153153。 2.编写一个程序,输入两个整数,用辗转相除法计算其最大公约数和最小公倍数。 3.编写一个程序,计算 s=1!+2!+3!+…+n!。其中 n 由输入决定。 4.编写一个程序,计算 1111 1 2345 s    1 …+ m 。其中 m 由输出决定。 23 第 6 章 数组 一、选择题一、选择题 1.在 C 语言中,引用数组元素时,其数组下标的数据类型不允许是_______。 A.整型常量B.整型表达式 C.整型常量或整型表达式D.任何类型的表达式 2.以下对一维整型数组 a 的定义,正确的是_______。 A.int a(10) ;B.int n = 10 , a[n] ; C.int n ;D.int a[10] ; scanf( "%d" , int a[n] ; 3.若有定义:int a[10] ;,则对 a 数组元素的正确引用是_______。 A.a[10]B.a[3.5]C.a(5)D.a[10-10] 4.对定义 int a[10] = {6 , 7 , 8 , 9 , 10} ; 的正确理解是_______。 A.将 5 个初值依次赋给 a[1]--a[5] B.将 5 个初值依次赋给 a[0]--a[4] C.将 5 个初值依次赋给 a[6]--a[10] D.因为数组长度与初值个数不相同,所以此语句不正确 5.以下对二维数组 a 的正确说明是_______。 A.int a[3][ ];B.float a(3)(4); C.double a[ ][4] ;D.float a(3,4); 6.若有定义: int a[3][4]; , 则对 a 数组元素的正确引用是_______。 A.a[3][4]B.a[1,3]C.a[1+1][0]D.a(2)(1) 7.以下对二维数组 a 初始化正确的语句是_______。 A.int a[2][ ]={{0 , 1 , 2}, {3 , 4 , 5}}; B.int a[ ][3]={{0, 1, 2}, {3, 4, 5}}; C.int a[2][4]={{0, 1 , 2}, {3 , 4}, {5}}; D.int a[ ][3]={{0, 1, 2}, { }, {3, 4}}; 8.对二维数组 a 进行如下初始化 int a[ ][3]={0 , 1 , 2 , 3 , 4 , 5}; 则 a[1][1]的值是_______。 A.0B.3C.4D. 1 9.下面程序段的运行结果是_______。 #include int main( ) { int i , x[3][3] = {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9} ; for( i = 0 ; i s2 )B.if( strcmp( s1 , s2 ) ) C.if( strcpy( s1 , s2 ) )D.if( strcmp( s1 , s2 )>0 ) 15.若有定义:char s[100] = "hello" ;,下列函数调用语句中,不正确的是_______。 A.strlen( strcpy( s , "well" ) ) ;B.strcat( s , "!" ) ; C.puts( puts( "hello" ) ) ;D.!strcmp( "" , s ) ; 16.下面程序的运行结果是_______。 #include #include int main( ) { char a[80] = "AB" , b[80] = "LMNP" ; int i = 0 ; strcat( a , b ) ; while( a[i++] != \0 ) b[i] = a[i] ; puts( b ) ; return 0 ; } A.LBB.ABLMNPC.ABD.LBLMNP 二、程序阅读题二、程序阅读题 1.下面程序的运行结果是_______。 #include int main( ) { int i , k , a[10] , p[3] ; k = 5 ; for( i= 0 ; i < 10 ; i++ ) a[i] = i ; for( i = 0 ; i < 3 ; i++ ) p[i] = a[i * i] ; for( i = 0 ; i < 3 ; i++ ) k = p[i] * 2 ; printf( "%d\n" , k ) ; return 0 ; 25 } 2.下面程序的运行结果是_______。 #include int main( ) { int i ,x[10] = {2 , 3 , 0 , 3 , 0 , 2 , 3 , 2 , 1 , 3} ,y[4] = {0} ; for( i = 0 ; i < 10 ; i++ ) y[x[i]]++ ; printf( "%d\n" , y[3] ) ; return 0 ; } 3.下面程序的运行结果是_______。 #include int main( ) { int i , j , a[3][3] = {0} ; for( i = 0 ; i < 3 ; i++ ) for(j = 0 ; j <= i ; j++ ) a[i][j] = i * j ; printf( "%d,%d\n" , a[1][2] , a[2][1] ) ; return 0 ; } 4.下面程序的运行结果是_______。 #include int main( ) { int a[3][3] = {0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8} ; int i , s = 0 ; for( i= 0 ; i < 3 ; i++ ) s += a[i][1] ; printf( "%d\n" , s ) ; return 0 ; } 5.下面程序的运行结果是_______。 #include int main( ) { int i ; char a[ ] = "Time" , b[ ] = "Tom" ; for( i = 0 ; a[i] != \0 i++ ) if( a[i] == b[i] ) if( a[i] >= a else printf( "%c" , a[i] + 32 ); else printf( "*" ) ; return 0 ; } 6.下面程序的运行结果是_______。 #include 26 int main( ) { char a[ ]= "morning" , t ;

展开阅读全文

C语言程序书写中 每行必须有分号,石家庄铁道大学C语言程序设计习题集.pdf相关推荐

  1. DSB算法C语言程序,单片机中使用DSB温度传感器C语言程序.doc

    单片机中使用DSB温度传感器C语言程序 单片机中使用DS18B20温度传感器C语言程序(参考1) /************************************************** ...

  2. c语言程序的书写格式,C语言程序书写格式辅导

    C语言程序书写格式辅导 C语言具有语句简洁的特点,C语言程序的可读性比较差.因此,为了增强C语言的可读性,正确的书写格式就显得十分重要.同样一个程序采用不同的书写方法.尽管都可以得到相同的结果,有的书 ...

  3. c语言程序的书写格式,C语言程序书写格式

    C语言程序书写格式 引导语:为了增强C语言的'可读性,正确的书写格式就显得十分重要.以下是百分网小编分享给大家的C语言程序书写格式,希望大家喜欢! 例.习分析下列程序的输出结果: 程序内容如下: Mu ...

  4. 大一c语言程序设计项目教程课,C语言程序设计项目教程 教学课件 ppt 作者 王瑞红 C语言程序设计项目教程习题答案...

    C语言程序设计项目教程 教学课件 ppt 作者 王瑞红 C语言程序设计项目教程习题答案 习题答案模块 1 C 语言基础知识1. 选择题(1)C 语言中运算对象必须是整型的运算符是 (B ).A. %= ...

  5. c语言程序书写注意事项,书写C语言程序的注意事项.doc

    书写C语言程序的注意事项 1. 每一C程序必须有一个main( ),且也只能有一个main( ),程序始终是从main的第一个'{'开始执行的:如果遇到调用函数,流程就转向对应的被调用函数,执行被调用 ...

  6. 频率计c语言程序,数字频率计中C语言编程的研究

    在单片机应用系统中利用C语言编程具有一定优点.介绍了用C语言实现数字频率计的软件设计.介绍了C语言使用中几个关键问题.并对数字频率计的主程序.显示程序中小数点处理程序进行了论述.全部软件编程不是采用常 ...

  7. C语言在main中输入2个整数ab,请教一个C语言问题。若输入3个整数3,2,1,则以下程序输出的结果是.,c 语言问题 输入三个整数 按从小到大输出...

    导航:网站首页 > 请教一个C语言问题.若输入3个整数3,2,1,则以下程序输出的结果是.,c 语言问题 输入三个整数 按从小到大输出 请教一个C语言问题.若输入3个整数3,2,1,则以下程序输 ...

  8. 在c语言程序中将数据分为两种,2012年计算机二级C语言考点归纳汇总(一至四章)...

    第1章程序设计基本概念考点归纳 1.1 C语言的特点 C语言是近年来非常流行的语言,很多人宁愿放弃已经熟悉的其他语言而改用C语言,其原因是C语言有优于其他语言的一系列特点.下面是C语言的主要特点: ( ...

  9. C 语言程序设计基础不好,想10天考国二C语言程序设计证书,可能吗?

    实话告诉你:基本不可能!!! 除非你真的是一个学习力,逻辑能力,数学能力有很深的造诣的人! 这并不是在打击你考试的自信心. 为什么这么说呢?来看看计算机二级C语言程序考试(以下简称二级C),需要考什么 ...

  10. c语言程序做四则运算还要余数,大整数四则运算 高质量C语言程序.doc

    大整数四则运算 高质量C语言程序 设计题目: 大整数的四则运算 1. 功能简介:编写出实现大整数之间相加,相减,相乘,相除的程序,并输出计算结构. 课程设计要求:采用模块化程序设计 源程序中应有足够的 ...

最新文章

  1. 将Session值储存于SQL Server中
  2. 甲骨文否认将收购IT咨询巨头埃森哲 称从未考虑过
  3. 2018.2.11-12 写作业
  4. Redis 5种数据结构
  5. oracle ebs 多组织屏蔽的研究
  6. 小程序promise封装post请求_微信小程序 es6-promise.js封装请求与处理异步进程
  7. 仿QQ联系人的TableView的折叠与拉伸
  8. strtoupper 小写_PHP strtoupper()函数与示例
  9. 作者:谢华美(1976-),男,中国人民银行征信中心数据部副总经理
  10. 工作10以上老程序员都去哪了?作为新时代的程序员我们该何去何从
  11. Linux下Python3对Docker进行基本的管理(包含显示端口,显示IP,一键启动,一键关闭)
  12. 诺基亚E71 专用UCWEB 6.7
  13. FOC——10.11.IR2106半桥预驱电路
  14. PyTorch入门学习-4.自然语言分类任务
  15. 深信服C++ 一面(技术面、70min、offer)
  16. “ IMY”是什么意思,如何使用?
  17. Linux学习笔记(十八) -- 运行程序,出现Failed to load module canberra-gtk-module错误的解决方案
  18. oracle取日期6,Oracle通过日期获取星座函数
  19. vue3组合式api基础(常用)
  20. MySQL必知必会 代码+说明 全书整理

热门文章

  1. 毕设题目:Matlab指纹识别
  2. 【优化覆盖】基于matlab改进的杂草算法求解无线传感器覆盖优化问题【含Matlab源码 046期】
  3. 【风电功率预测】基于matlab粒子群算法优化LSTM风电功率预测【含Matlab源码 941期】
  4. 【VRP】基于matlab遗传算法求解多中心的车辆路径规划问题【含Matlab源码 010期】
  5. 问题3:filesystem:不是std的成员,filesystem:该名称的命名空间或类不存在
  6. jq怎么更换json对象的key_toString如何转json
  7. go导出mysql中的excel表,MySQL导出数据,并转存到Excel表格中
  8. mysql innodb 分区_MySQL 表分区详解MyiSam引擎和InnoDb 区别(实测)
  9. 云起智慧中心连接华为_云起荣获CIBIS十大全屋智能品牌奖:将与合作伙伴共同扩展AIoT生态平台...
  10. linux支持ext2格式吗,linux正统标准文件系统ext2详解