已阅读5页,还剩48页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
二级C语言精选试题分析一、基本语句、数据类型(37道题)1、 C语言的运算符按运算对象的数目可以分为A) 单目运算符一种B)单目和双目运算符C)单目、双目和三目运算符D)单目、双目、三目和四目运算符2、 在以下关于C语言的不严格的叙述中,错误的说法是A) 大写字母和小写字母的意义相同B) 有些不同类型的变量可以在一个表达式中运算C) 表达式左边的变量和右边的值可以是不同类型D) 同一个运算符号在不同的场合可以有不同的含义3、 在C语言中,int、char和short三种类型数据所占用的内存A)均为2个字节 B)由用户自己定义C)由所用机器的机器字长决定D)是任意的4、 下列常数中不能作为C的常量的是A)0xA5B)2.5e-2C)3e2D)05825、 在C语言中,错误的int类型的常数是A)32768 B)0 C)037D)0xAF6、 下列可以正确表示字符型常数的是A)”a”B)tC)”n”D)2977、在语言中,数字029 是一个 A)八进制数 B)十六进制数C)十进制数 D)非法数8、以下错误的转义字符是A) B)C)81 D)09、不能进行+运算的数据类型是A)指针B)doubleC)intD)long10、以下选项中不属于C语言的类型的是A) signed short int B)unsigned long intC)unsigned int D)long short11、sizeof ( double ) 是A)函数调用 B)double表达式C)int 型表达式 D)非法表达式12、已知:float x=1 , y ; 则 y=+x*x 的结果为A)y=9B)y=4 C)y=1D)表达式是错误的13、已知:char a ; int b; float c ; double d; 执行语句 c=a+b+c+d;后,变量c的数据类型是A)int B)charC)float D)double14、在16位C编译系统上,若定义long a ; 则能给a赋40000的正确语句是A) a=20000+20000 ;B)a=4000*10 ;C)a=30000+10000 ; D)a=4000L*10L ;15、若有定义:int a=8 , b=5 , c ; 执行语句 c=a / b + 0.4 ; 后 ,c 的值为A)1.4 B)1C)2.0D)216、若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是A)1 B)2C)2.0D)2.517、若变量a、i已正确定义且i已正确赋值,合法的语句是A)a=1 B)+i;C)a=a+=5;D)a=int(i);18、若有以下程序段,int c1=1 , c2=2 , c3 ;c3=1.0 / c2 * c1 ; 则执行后,c3中的值是A)0 B)0.5 C)1D)219、若变量a是int类型,并执行了语句:a=A+1.6 ; 则正确的叙述是A)a的值是字符C B)a的值是浮点型C)不允许字符型和浮点型相加D)a的值是字符A的ASCII值加上120、已知:char w ; int x ; float y ; double z ; 则表达式 w*x+z-y 的结果为A)floatB)char C)intD)double21、已知:int x=1 , y=2 , z ; 则执行: z=xy?+x:+y ; z 的值是A)1B)2C)3D)422、已知:int i ; folat f ; 语句正确的是A)( int f ) % i B)int ( f ) % iC)int ( f%i ) D)( int ) f % i23、已知:char c=A ; int i=1, j ; 执行语句 j=!c&i+ ; 则 i 和 j 的值是A)1,1B)1,0C)2,1D)2,024、若a为int类型,且其值为3,则执行完表达式a+=a-=a*a 后,a的值是A)-3 B)9 C)-12 D)625、设x、y、t均为int型变量,则执行语句:x=y=3 ; t=+x|+y ; 后 , y的值为A)不定值B)4C)3D)126、为判断 char 型变量 m 是否是数字,可以使用表达式A) 0=m & m=9B) B)0=m & m=9C)”0”=”9”D)A)、B)、C)答案都是错误的27、能正确表示逻辑关系:”a=10 或 a=10 or a=0 | a=10 & a=10 | a=028、若变量c为char类型,能正确判断c为小写字母的表达式是A)a= c =a) | (c=z )C)(a=c)D)(c=a) & (cb ? ( ac ? a : c ) : ( b ) ) ;A)5 B)4 C)6 D)不确定35、以下程序的输出结果是main() int a=4 , b=5 , c=0 , d ; d= !a & !b | !c ; printf ( “%dn” , d ) ;A)1 B)0 C)非0的数 D)-136、以下程序的输出结果是main() int y=3 , x=3 , z=1 ; printf ( “%d %dn” , ( +x , y+ ) , z+2 ) ;A)3 4 B)4 2 C)4 3 D)3 337、以下程序的输出结果是: #include main() int a , b , d=241 ; a=d / 100 % 9 ; b=(-1)&(-1) ; printf ( %d,%dn , a , b ) ; A) 6,1 B) 2,1 C) 6,0 D) 2,0二、分支语句(13道题)1、 C语言中对嵌套if语句的规定是:else总是与A)其之前最近的if配对 B)第一个if配对)缩进位置相同的if配对)其之前最近的且尚未 配对的if配对2、 若执行以下程序时从键盘上输入9,则输出结果是A)11 B)10 C)9 D)8main() int n ; scanf ( “%d” , &n ) ; if ( n+10 ) printf ( “%dn” , n ) ; else printf ( “%dn” , n- ) ;3、 以下程序的输出结果是main() float x=2.0 , y ; if ( x0.0 ) y=0.0 ; else if ( x10.0 ) y=1.0 /x ; else y=1.0 ; printf ( “%fn” , y ) ;A)0.000000 B) 0.250000 C) 0.500000 D) 1.0000004、以下程序的输出结果是main() int a=2 , b=-1 , c=2 ; if ( ab )if ( b0 ) c=0 ;else c+ ; printf ( “%dn” , c ) ;A)0 B)1 C)2 D)35、选择程序的输出结果main ( ) int a=10 , b=0 ; if ( a=12 ) a+ ; b+ : else a+=4 ; b+=4 ; printf ( “%d,%dn” , a , b ) ;A)13,1B)14,4C)11,1D)10,06、若 int i=10 ; 执行下列程序switch ( i ) case 9 : i+=1 ; case 10 : i+=1 ; case 11 : i+=1 ; default : i+=1 ;则变量 i 的正确结果是A)10B)11C)12D)137、以下程序的输出结果是main() int a=0 , i ; for ( i=1 ; i5 ; i+ ) switch ( i ) case 0 : case 3 : a+=2 ; case 1 : case 2 : a+=3 ; default : a+=5 ; printf ( “%dn” , a ) ;A)31B)13 C)10D)207、 若a 、b 、c1 、c2 、x 、y 均是整型变量,正确的switch语句是A)switch ( a+b ) ;B)switch ( a*a + b*b ) case 1 : y=a+b ; break ; case 3 :case 0 : y=a-b ; break ; case 1 : y=a+b ; break ; case 3 : y=b-a ; break ; C) switch aD)switch ( a-b ) case c1 : y=a-b ; break ;default: y=a*b ; break ;case c2 :x=a*d ; break ; case 3:case 4 : x=a+b; default : x=a+b ; break; case 10: case 11 : y=a-b ;break ;8、 运行以下程序后,如果从键盘上输入china#回车,则输出结果为:main() int v1=0 , v2=0 ; char ch ; while ( ( ch=getchar() ) !=# )switch ( ch ) case a : case h :default : v1+ ; case o : v2+ ; printf ( “%d , %dn” , v1 , v2 ) ;A)2,0 B)5,0 C)5,5 D)2,59、 运行以下程序后,如果从键盘上输入2473回车,则输出结果为:main() int c ; while ( ( c=getchar () ) !=n ) switch ( c-2 ) case 0 : case 1 : putchar ( c+4 ) ; case 2 : putchar ( c+4 ) ; break ; case 3 : putchar ( c+3 ) ; default : putchar ( c+2 ) ; break ; A)668977B)668966 C)66778777 D)668876611、有如下程序main() int x=1 , a=0 , b=0 ;switch ( x ) case 0: b+ ;case 1: a+ ;case 2: a+ ; b+ ;printf ( “a=%d , b=%dn” , a , b ) ;该程序的输出结果是 A)a=2 , b=1 B)a=1 , b=1C)a=1 , b=0 D)a=2 , b=212、下列关于switch语句和break语句的结论中,正确的是)break语句是switch语句中的一部分)在switch语句中可以根据需要使用或不使用break语句)在switch语句中必须使用break语句)break语句是switch语句的一部分13、 当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为: if( ab ) if( cd ) x=1; else if( ac ) if( bd ) x=2; else x=3; else x=6; else x=7; A) 1 B) 2 C) 3 D) 6三、循环语句(12道题)1、执行语句 for ( i=0 ; i+3 ; ) ; 后, 变量 i 的值为A)2B)3C)4D)52、选择程序的输出结果main ( ) int n=4 ; while ( n - )printf ( “%d ” , -n ) ;A)2 0B)3 1C)3 2 1D)2 1 03、以下程序中,while循环的循环次数是main() int I=0 ; while ( I10 ) if ( I1 ) contunue ; if ( I=5 ) break ;I+ ;.A)1B)10C)6D)死循环,不能确定次数4、 以下程序的输出结果是main() int I=0 , a=0 ;while ( I20 ) for ( ; ; ) if ( ( I %10 ) = 0 ) break ; else I- ;I+=11 ; a+=I ;printf ( “%dn” , a ) ;A)21B)32C)33D)115、 以下程序的输出结果是main() int a , b ;for ( a=1 , b=1 ; a=10 ) break ; if ( b % 3 = 1 ) b+=3 ; continue ; printf ( “%dn” , a ) ;A)101 B)6 C)5 D)46、 有以下程序段int k=0 ;while ( k=1 ) k+ ;while 循环执行的次数是A)无限次 B)有语法错,不能执行C)一次也不执行D)执行1次7、 以下程序执行后sum的值是A)15 B)14 C)不确定 D)0main() int I , sum ;for ( I=1 ; I6 ) n- ; printf ( “%d” , n ) ; 该程序的输出结果是A)987B)876C)8765D)987611、有如下程序main() int I , sum ;for ( I=1 ; I=3 ; sum+ ) sum+=I ;printf ( “%dn” , sum ) ;该程序的输出结果是A)6B)3C)死循环D)012、在执行以下程序时,如果从键盘上输入:ABCdef,则输出为: main() char ch; while(ch=getchar()!=n) if(ch=A & ch=a & ch =z) ch=ch-32; printf(%c,ch); printf(n); A) ABCdef B) abcDEF C) abc D) DEF13、执行语句:for( i=1 ; i+4 ; ); 后,变量i的值是: A) 3 B) 4 C) 5 D) 不定四、宏定义(10道题)1、若有宏定义如下:#define X 5#define Y X+1#define Z Y*X/2则执行以下 printf 语句:int a=Y;printf ( “%d, ” , Z ) ; printf ( “%dn” , -a ) ;其输出结果是A)7,6 B)12,6 C)12,5 D)7,52、以下程序的输出结果是#define M ( x , y , z ) x*y+zmain() int a=1 , b=2 , c=3 ;printf ( “%dn” , M ( a+b , b+c , c+a ) ) ;A)19B)17C)15D)123、有如下程序#define N 2#define M N+1#define NUM 2*M+1main() int I ;for ( I=1 ; I ( y ) ? ( x ) : ( y )main() int a=5 , b=2 , c=3 , d=3 , t ;t= MAX ( a+b , c+d ) * 10 ;printf ( “%dn” , t ) ;6、以下程序运行后,输出结果是 #include #define PT 5.5 #define S(x) PT*x*x main() int a=1,b=2; printf(%4.1fn, S(a+b) ; A) 49.5 B) 9.5 C) 22.0 D) 45.07、请读程序: #include #define SUB(X,Y) (X)*Y main() int a=3, b=4 ; printf ( %dn, SUB( a+,b+ ) ) ; 上面程序的输出结果是: A) 12 B) 15 C) 16 D) 208、以下正确的描述为A) 每个C语言程序必须在开头用预处理命令: #includeB) 预处理命令必须位于C源程序的首部C) 在C语言中预处理命令都以”#”开头D) C语言的预处理命令只能实现宏定义和条件编译9、请选出以下程序段的输出结果 #define MIN (x,y) (x)(y)?(x):(y) main() int i , j , k ; i=10 ; j=15 ; k=10*MIN ( i , j ) ; printf ( %dn , k ) ; A) 15 B) 100 C) 10 D) 15010、以下程序的输出结果是: #include #define FUDGE(y) 2.84+y #define PR(a) printf ( %d , (int)(a) ) #define PRINT1(a) PR(a) ; putchar ( n ) main() int x=2 ; PRINT1(FUDGE(5)*x) ; A) 11 B) 12 C) 13 D) 15五、数组、指针、字符串(45道题)1、 以下程序段的输出结果是char s = “141141abct” ;printf ( “%dn” , strlen (s) ) ;A)9B)12C)13D)142、 以下不能进行字符串赋初值的语句是A)char str 5 =”good!” ;B)char str =”good!” ;C) char *str=”good!” ;D) D) char str 5 = g , o , o , d ;3、 以下定义语句中,错误的是A) int a = 1 , 2 ;B) char *a 3 ;C) char s 10 =”test” ;D) int n=5 , a n ;4、 假定int类型变量占用两个字节:int x10= 0 ,2, 4 ; x在内存中所占字节数是A) 3B) 6C) 10D) 205、 以下数组定义中不正确的是A) int a 2 3 ;B) int b 3 = 0 , 1 , 2 , 3 ;C) int c 100 100 = 0 ;D) D) int d 3 =1,2,1,2,3,1,2,3,4 ;6、 以下选项中,不能正确赋值的是A) char s1 10 ; s1=”Ctest” ;B) char s2 = C,t,e,s,t ;C) char s3 20 =”Ctest” ;D) char *s4=”Ctestn” ;7、 以下程序的输出结果是main() int I , a 10 ; for ( I=9 ; I=0 ; I- ) a I =10-I ; printf ( “%d%d%d” , a 2 , a 5 , a 8 ) ;A) 258B) 741C) 852D) 3698、 以下程序的输出结果是main() int a 4 4 = 1,3,5 , 2,4,6 , 3,5,7 ; printf ( “ %d%d%dn” , a 0 3 , a 1 2 , a 2 1 , a 3 0 ) ;A) 0650B) 1470C) 5430D) 输出值不定9、以下程序的输出结果是main() char st 20 =”hello0t” ; printf ( “%d %dn” , strlen( st ) , sizeof( st ) ) ;A) 9 9B) 5 20C) 13 20D)20 2010、以下程序的输出结果是main() char a 10 = 9,8,7,6,5,4,3,2,1,0 , *p=a+5 ; printf ( “%d” , *-p ) ;A) 非法B) a 4 的地址C) 5D) 311、以下程序的输出结果是main() int a = 1,2,3,4,5,6,7,8,9,0 , *p ; p=a ; printf ( “%dn” , *p+9 ) ;A) 0B) 1C)10D)912、 以下程序的输出结果是main() int I , k , a 10 , p 3 ; k=5 ; for ( I=0 ; I10 ; I+ ) a I =I ; for ( I=0 ; I3 ; I+ ) p I =a I*(I+1) ; for ( I=0 ; I3 ; I+ ) k+=p I *2 ; printf ( “%dn” , k ) ;A) 20B) 21C) 22D) 2313、 以下程序的输出结果是main() int I , x 3 3 = 1,2,3,4,5,6,7,8,9 ; for ( I=0 ; I3 ; I+ ) printf ( “%d,” , x I 2-I ) ;A) 1,5,9,B) 1,4,7,C) 3,5,7,D) 3,6,9,14、 以下程序的输出结果是main() int a 3 3 = 1,2 , 3,4 , 5,6 , I , j , s=0 ; for ( I=1 ; I3 ; I+ ) for ( j=0 ; j=I ; j+ ) s+=a I j ; printf ( “%dn” , s ) ;A) 18B) 19C) 20D) 2115、 以下程序的输出结果是main() char w 10 = “ABCD” , “EFGH” , “IJKL” , “MNOP” , k ; for ( k=1 ; k3 ; k+ ) printf ( “%sn” , w k ) ;A) ABCDB) ABCDC) EFGD) EFGH FGH EFG JK IJKL KL IJ O M 16、 若有以下定义:int t 3 2 ; 能正确表示t数组元素的值的表达式是A) &t 3 2 B) t 3 C) t 1 D) *t 2 17、以下程序的输出结果是main() int n 5 = 0,0,0 , I , k=2 ; for ( I=0 ; Ik ; I+ ) n I =n I +1 ; printf ( “%dn” , n k ) ;A) 不确定的值 B) 2C) 1D) 018、有如下说明 int a 10 = 1,2,3,4,5,6,7,8,9,10 , *p=a ; 则数值为9的表达式是 A) *p+9B) *(p+8)C) *p+=9D) p+819、以下程序的输出结果是main() char s =”ABCD” , *p ;for ( p=s+1 ; ps+4 ; p+ ) printf ( “%sn” , p ) ;A) ABCDB) AC) BD) BCD BCD B C CD CD C D D D D20、 以下程序的输出结果是main() char ch 2 5 = “6937” , “8254” , *p 2 ; int I , j , s=0 ; for ( I=0 ; I2 ; I+ ) p I =ch I ; for ( I=0 ; I0 ; j+=2 )s=10*s+p I j - 0 ;printf ( “%dn” , s ) ;A) 69825B) 63825C) 6385D) 69382521、 以下程序的输出结果是main() char ch 3 5 = “AAAA” , “BBB” , “CC” ; printf ( “”%s”n” , ch 1 ) ;A) “AAAA”B) “BBB” C) “BBBCC” D) “CC”22、 若有定义:int aa 8 ; 则以下表达式中不能代表数组元素aa 1 的地址是A)&aa 0 +1B) &aa 1 C) &aa 0 +D) aa+123若已定义:int a = 0,1,2,3,4,5,6,7,8,9 , *p=a , i ; 其中 0= i =9 , 则对 a 数组元素不正确的引用是A)a p-a B)* ( & a i )C)p i D)a 10 24、若有以下定义和语句:int s 4 5 , (*ps) 5 ; ps=s ;则对s数组元素的正确引用形式是A) ps+1B) *(ps+3) C) ps 0 2 D) *(ps+1)+325、 以下程序的输出结果是main() int b 3 3 = 0 , 1 , 2 , 0 , 1 , 2 , 0 , 1 , 2 , I , j , t=1 ; for ( I=0 ; I3 ; I+ )for ( j=I ; j=I ; j+ ) t=t+b I b j j ; printf (“%dn” , t ) ;A) 3B) 4C) 1D) 926、 以下程序的输出结果是#include main() char b1 8 =”abcdefg” , b2 8 , *pb=b1+3 ; while ( -pb=b1 ) strcpy(b2 , pb ) ; printf ( “%dn” , strlen ( b2 ) ) ;A) 8B)3C)1D)727、为了判断两个字符串s1和s2是否相等,应当使用)if ( s1 = = s2 )B)if (s1=s2 )C)if ( strcpy ( s1,s2 ) )D)if ( strcmp ( s1,s2 ) = =0 )28、若有以下定义和语句:char *s1=”12345” , *s2=”1234” ;printf ( “%dn” , strlen ( strcpy ( s1 , s2 ) ) ) ;则输出结果是A)4B)5C)9D)1029、若有以下说明和语句,则在执行 for 语句后, * ( * ( pt + 1 ) + 2 ) 表示的数组元素是A)t 20B)t 22C)t 12 D)t 21int t 33 , *pt 3 , k ;for ( k=0 ; k3 ; k+ ) pt k=&t k0 ;30、选择程序的输出结果main ( ) char *p=”abcdefghijklmnopq”; while ( *p+!=e ) ; printf ( “%cn”, *p );A)cB)dC)eD)f31、选择程序的输出结果main ( ) int a=1 , b=2 , *p , *pp ; pp=&p ; p=&a ; p=&b ; printf ( “%d,%dn” , *p , *pp );A)2,2B)1,1C)1,2D)2,132、选择程序的输出结果#includemain ( ) char *p1 , *p2 , str50=”ABCDEFG” ; p1=”abcd” ; p2=”efgh” ; strcpy ( str+1 , p2+1 ) ; strcpy ( str+3 , p1+3 ) ; printf ( “%s” , str ) ;A)AfghdEFGB)AbfhdC)AfghdD)Afgd33、若有以下定义和语句:int w23 , ( *pw )3 ; pw=w ;则对w 数组元素的非法引用是A)*( w0+2 ) B)*( pw+1 ) 2C)pw00 D)*( pw1+2 )34、选择程序的输出结果main ( ) char *s=”12134211” ; int v4=0 , k , i ; for ( k=0 ; sk ; k+) switch ( sk ) case 1 : i=0 ; case 2 : i=1 ; case 3 : i=2 ; case 4 : i=3 ; vi+ ;for ( k=0 ; k4 ; k+) printf ( “%d ” , vk ) ;A)4 2 1 1B)0 0 0 8C)4 6 7 8D)8 8 8 835、选择程序的输出结果#includemain ( ) char w10= “ABCD”,“EFGH”, “IJKL” , “MNOP” ; int k ; for ( k=1 ; k3 ; k+ )printf ( “%s” , &wkk ) ;A)ABCDFGHKLB)ANCDEFGUMC)EFGJKOD)FGHKL36、当执行下面的程序时,如果输入ABC ,则输出结果是A) ABC6789B) ABC67C) 12345ABC6D) ABC456789#include “string.h”main() char ss 10 =”12345” ; gets ( ss ) ; strcat ( ss , “6789” ) ; printf ( “%sn” , ss ) ;37、有如下程序段int *p , a=10 , b=1 ;p=&a ; a=*p+b ;执行该程序段后,a的值为A) 12B) 11C) 10D) 编译出错38、对于基类型相同的两个指针变量之间,不能进行的运算是A)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年绿色科技创新孵化器项目可行性研究报告及总结分析
- 2025版设备施工员试题及答案
- 2024年四川阿坝教师招聘考试模拟题及答案
- 2025年城市固体废弃物处理系统可行性研究报告及总结分析
- 2025年体育健身中心建设项目可行性研究报告及总结分析
- 2025年特色小镇建设与运营可行性研究报告及总结分析
- 2025年城市安全与应急管理系统项目可行性研究报告及总结分析
- 2025年智能化农机设备市场可行性研究报告及总结分析
- 2025年绿色出行推广模式研究可行性研究报告及总结分析
- 2025年游戏行业新商业模式研究可行性研究报告及总结分析
- 墓地成本分析报告范文
- 《HTML5+CSS3网站设计基础教程(第3版)》ppt第5章 盒子模型
- 武松的主要事迹概括
- 光缆线路障碍点的定位
- 南瑞集团考试真题
- 小学数学结构化面试经典100题
- T、K、Y管节点焊缝超声波检验缺陷的判定
- ZJ70DB钻机绞车安装、操作及维护保养规程
- GB/T 34940.3-2017静态切换系统(STS)第3部分:确定性能的方法和试验要求
- GB/T 21198.5-2007贵金属合金首饰中贵金属含量的测定ICP光谱法第5部分:999‰银合金首饰银含量的测定差减法
- 现代优化算法-蚁群算法
评论
0/150
提交评论