收藏 分销(赏)

计算机等级考试c语言程序设计习题.doc

上传人:人****来 文档编号:5331710 上传时间:2024-10-30 格式:DOC 页数:65 大小:305KB 下载积分:14 金币
下载 相关 举报
计算机等级考试c语言程序设计习题.doc_第1页
第1页 / 共65页
计算机等级考试c语言程序设计习题.doc_第2页
第2页 / 共65页


点击查看更多>>
资源描述
第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.下面四个选项中,均是不合法的用户标识符的选项的是____C___。 A.A p_o do B.float lao _A C.b-a goto int D._123 temp INT 2.以下选项中可以作为C语言中合法整数的是___C____。 A. 10110B B. 0386 C. 0Xffa D. x2a2 3.以下选项中合法的实型常数是__C_____。 A.5E2.0 B.E-3 C.2E0 D.1.3E 4.以下选项中可作为C语言合法常量的是__A_____。 A.-80 B.-080 C.-8e1.0 D.-80.0e 5.下面四个选项中,均是合法转义字符的选项是 __B___。 A.'\' ' \\' '\n' B.'\'' '\017' '\t' C.'\018' ' \f' '\xab' D.'\\0' '\101' 'x1f' 6.下面不正确的字符串常量是__A_____。 A.'abc' B."12’12" C."0" D." " 7.以下选项中不属于C语言的类型的是____D___。 A.signed short int B.unsigned long int C.unsigned int D.long short 8.在C语言中,要求运算数必须是整型的运算符是___D____。 A./ B.++ C.!= D.% 9.以下运算符中优先级最低的是___A____,以下运算符中优先级最高的是__B_____。 A.&& B.<= C.|| D.== 10.若x = 2 , y=3,则x && y的结果是___B____。 A.0 B.1 C.2 D.3 11.若x,i,j和k都是int型变量,则计算表达式x = ( i = 4 , j = 16 , k = 32 )后,x的值为__C_____。 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_____。 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的结果为_D______类型。 A.float B.char C.int D.double 14.已有定义:int x = 3 , y = 4 , z = 5 ; 则表达式!( x + y ) + z – 1 && y + z / 2的值是__D_____。 A.6 B.0 C.2 D.1 15.以下选项中非法的表达式是___D____。 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的值为___C____。 A.0 B.1 C.2 D.3 17.若变量c为char类型,能正确判断出c为小写字母的表达式是___D____。 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的是____C___。 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.下面程序的运行结果是__b_____。 #include<stdio.h> int main( ) { char m ; m = 'B' + 32 ; printf( "%c\n" , m ) ; return 0 ; } 2.下面程序的运行结果是__0_____。 #include<stdio.h> int main( ) { int x = 3 , y = 5 ; printf( "%d\n" , x / y ) ; return 0 ; } 3.下面程序的运行结果是___0____。 #include<stdio.h> int main( ) { int m = 0xabc , n = 0xabc ; m -= n ; printf( "%x\n" , m ) ; return 0 ; } 4.下面程序的运行结果是__10,2_____。 #include<stdio.h> int main( ) { int x = 10 , y = 3 ; printf( "%d,%d\n" , x++ , --y ) ; return 0 ; } 5.下面程序的运行结果是_9,10,9,10______。 #include<stdio.h> int main( ) { int i , j ; i = 8 ; j=10; printf( "%d,%d,%d,%d\n" , i , j , ++i , j++ ) ; return 0 ; } 6.下面程序的运行结果是____3,1,0,0___。 #include<stdio.h> 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.下面程序的运行结果是__3,20,30,1_____。 #include<stdio.h> 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<stdio.h> 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.下面程序的运行结果是__261_____。 #include<stdio.h> int main( ) { int m = 177 ; printf( "%o\n" , m ) ; return 0 ; } 2.下面程序的运行结果是___20____。 #include<stdio.h> int main( ) { int n = 0 ; n += ( n = 10 ) ; printf( "%d\n", n ) ; return 0 ; } 3.下面程序的运行结果是_201,10______。 #include<stdio.h> int main( ) { int a = 201 , b = 012 ; printf( "%2d,%2d\n" , a , b ) ; return 0 ; } 4.下面程序的运行结果是_y=4630,y= 4630______。 #include<stdio.h> int main( ) { int y = 2456 ; printf( "y=%3o\n" , y ) ; printf( "y=%8o\n" , y ) ; return 0 ; } 5.下面程序的运行结果是__*3.140000,3.142*_____。 #include <stdio.h> int main( ) { printf( "*%f,%4.3f*\n" , 3.14 , 3.1415 ) ; return 0 ; } 6.下面程序的运行结果是_______。 #include<stdio.h> int main( ) { char c = 'x' ; printf( "c:dec=%d,oct=%o,hex=%x,ASCII=%c\n" , c , c , c , c ) ; return 0 ; } 7.下面程序的运行结果是_______。 #include<stdio.h> 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<stdio.h> 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<stdio.h> 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 <stdio.h> 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语句的选择条件是_d____。 A.只能用关系表达式 B.只能用关系表达式或逻辑表达式 C.只能用逻辑表达式 D.可以用任何表达式 2.已知int x = 2 , y = -1 , z = 3 ;,执行下面语句后,z的值是____c___。 if( x < y ) if( y < 0 ) z = 1 ; else z++ ; A.1 B.2 C.3 D.4 3.以下程序段的输出结果是___c____。 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的值为__b_____。 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与___b____配对。 A.与最外层的if B.其之前最近的不带else的if C.其之后最近的if D.与最近的{ }之前的if 6.若有定义:float w ; int a , b ; 则合法的switch语句是__d_____。 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.下面程序的运行结果是____10___。 运行时从键盘输入:9↙。 #include<stdio.h> int main( ) { int n ; scanf( "%d" , &n ) ; if( n++ < 10 ) printf( "%d\n" , n ) ; else printf( "%d\n" , n-- ) ; return 0 ; } 2.下面程序的运行结果是___2,2,2____。 #include<stdio.h> int main( ) { int i = 1 , j = 1 , k = 2 ; if( ( j++ || k++ ) && i++ ) printf( "%d,%d,%d\n" , i , j , k ) ; return 0 ; } 3.下面程序的运行结果是___6____。 #include<stdio.h> int main( ) { int m = 5 ; if(m++ > 5) printf( "%d\n" , m ) ; else printf( "%d\n" , m-- ) ; return 0 ; } 4.下面程序的运行结果是__97,b_____。 #include<stdio.h> int main( ) { char c1 = 97 ; if(c1 >= 'a' && c1 <= 'z' ) printf( "%d,%c" , c1 , c1 + 1 ) ; else printf( "%c" , c1 ) ; return 0 ; } 5.下面程序的运行结果是__c__=_-1__。 #include<stdio.h> 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.下面程序的运行结果是__8888_____。 运行时从键盘输入:88↙。 #include<stdio.h> 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.下面程序的运行结果是____20,0___。 #include<stdio.h> 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.下面程序的运行结果是__2,1_____。 #include<stdio.h> 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,1 2,2 2,1 -2,2 ______。 运行时从键盘输入: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.下面程序的运行结果是__a=1,b=3_____。 #include<stdio.h> 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<stdio.h> int main( ) { int a , b , c , x , y ; scanf( "%d%d%d" , &a , &b , &c ) ; if(_a>b______) { x = a ; y = b ; } else { x = b ; y = a ; } if(___c>x____) x = c ; else if( y > c ) y = c ; printf( "%d,%d,%d" , y , a + b + c – x – y , x ) ; return 0 ; } 四、编程题 1.编写一个程序,从键盘上输入4个整数,输出其中的最小值。 1.【参考代码】 #include<stdio.h> int main( ) { int a, b, c,d,min; printf("输入4个整数:"); scanf("%d%d%d%d",&a,&b,&c,&d); if(a < b) min = a; else min = b; if(c < min) min=c; if(d<min) min=d; printf("%d\n",min); return 0 ; } 2.编写一个程序,从键盘输入一个四位整数n,输出它的各位数字之和。例如n=1308,则输出12;n=3204,则输出9。 2.【参考代码】 #include<stdio.h> int main( ) { int num,a,b,c,d; printf("请输入一个四位整数:"); scanf("%d",&num); a=num/1000; b=num%1000/100; c=num%100/10; d=num%10; printf("各位数字之和为:%d\n",a+b+c+d); return 0 ; } 3.有一函数: 3.【参考代码】 #include<stdio.h> int main( ) { int x; printf("请输入x:"); scanf("%d",&x); printf("y的值为:"); if(x<0) printf("%d\n",x); else if(x<50) printf("%d\n",3*x-2); else if(x<100) printf("%d\n",4*x+1); else printf("%d\n",5*x); return 0 ; } 编写一个程序,从键盘输入x的值,输出y的值。 4.苹果店有4个等级的苹果,一级5.50元/kg、二级4.30元/kg、三级3.00元/kg、四级2.50元/kg。利用switch语句编写一个程序,输入苹果的等级、数量以及顾客的付款数,显示出苹果的等级、数量、应付款数以及找给顾客的钱数。当输入的苹果的等级、数量以及顾客的付款数不合要求时,通知用户“Data Error!”,结束程序。 4.【参考代码】 #include<stdio.h> int main( ) { int dj; float zl,je,yfk; printf("请输入等级(1~4): "); scanf("%d",&dj); if (dj>4||dj<1) { printf("无此等级的苹果!\n"); return 0; } printf("请输入重量(公斤): "); scanf("%f",&zl); printf("\n"); switch (dj) { 第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<stdio.h> int main( ) { int a , b , t ; scanf( "%d%d" , &a , &b ); while(_______) { if(
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服