《c语言习题与答案》由会员分享,可在线阅读,更多相关《c语言习题与答案(18页珍藏版)》请在金锄头文库上搜索。
1、一、单选题 1、能将高级语言源程序转换成目标程序的是( C )。编译程序的基本功能是把源程序翻译成目标程序)调试程序)解释程序)编译程序)编辑程序2、设有以下定义:int x=10,y=3,z;则语句:printf(“%d”,z=(x%y,x/y);的结果是( D )。)1 )0)4 )33、若已定义x和y为整型,则表达式:x=1,y=x+3/2的值是( B )。P56)1)2)2.0)2.54、语言中 ( B )。P115)不能使用 do - while 语句构成循环。)do-while 语句, 当 while 语句中的表达式值为零时结束循环。)do-while 语句, 当 while 语句
2、中的表达式值为非零时结束循环)do-while 语句必须用 break 语句才能退出循环5、设有定义 int a =3;,则执行语句 a+ = a-=a*a 后,变量 a 的值是( C ).P64(a-a*a a = 3-3*3 a = -6 a = a + a a = -6 + (-6) a=-12) )3 )0 )-12)96、以下程序的输出结果是 ( C )。p93 # include main( ) int a,b,d=241; a=d/100%9; b=(-1)&(-1); printf (%d,%dn,a,b); )2 1)1,-1 )2,1 )2 -17、以下程序的输出结果是 (
3、 D )。 #include #include main( ) char str12=s,t,r,i,n,g; printf(%dn,strlen(str); 求字符串的长度,strlen()的参数必须是char*)12)7)11)68、以下的 for 循环( A )。 for (x=0,y=0;(y!=123)&(x4);x+);)执行4次 )是无限循环 )执行3次 )循环次数不定9、以下程序段的输出结果是( A )char a=”Basic”;char *p=a;printf(“%s”,p);)Basic)B)asic)不确定10、以下说法中正确的是( C )。) 语言程序总是从第一个定义
4、的)在C 语言程序中,要调用的函数必须在 main( ) 函数中定义)C 语言程序总是从 main( ) 函数开始执行)C 语言程序中的 main( ) 函数必须放在程序的开始部分11、下述对 C 语言字符数组的描述中错误的是( C )字符数组可以存放字符串)字符数组中的字符串可以整体输入、输出)可以在赋值语句中通过赋值运算符“”对字符数组整体赋值)不可以用关系运算符对字符数组中的字符串进行比较12、语言中最简单的数据类型包括(B)整型、实型、逻辑型)整型、实型、字符型)整型、字符型、逻辑型)整型、实型、逻辑型、字符型13、阅读程序: #include #define SUB(X,Y) (X)
5、*Y main( ) int a=3,b=4; printf(%dn,SUB(a+,b+); 程序的输出结果是 ( B )15)12 )16 )2014、为表示关系xyz应使用C语言表达式( A ) )(x=y)&(y=z) )( x=y)and(y=z) ) (x=y=z) )( x=y)&( x=y)15、如下程序的运行结果是( A ) Main()int n=0; while(n+a)( A )(*p).a )(*p).data.a )p.data.a )p-data.a18、设有说明 int (*ptr)M; 其中的标识符 ptr 是( C )M 个指向整形变量的指针)指向 M 个整形
6、变量的函数指针)一个指向具有 M 个整形元素的一维数组的指针)具有 M 个指针元素的一维指针数组,每个元素都只能指向整形变量19、阅读程序,程序的输出结果为( C )。 int x=3; do printf(“%3d”,x-=2); while(!(-x);)1)30 )1 -2 )死循环 20、设有10个数据进行冒泡排序,最少进行的比较次数为( C )。)0 )10 )9 )121、设有语句 char a=n; ,则变量 a( A )。)包含个字符)包含个字符)包含个字符)说明不合法22、若有定义:double x,y;则表达式:x=1,y=x+3/2的值是( C )。)1)2)2.0)2.
7、523、有以下程序:(注意:ch0 在低字节,ch1 在高字节。) # includeunion pwint i ;char ch2;a; main( ) a.ch0=0 ;a.ch1=13 ; printf(%dn,a.i); 程序的输出结果是( C )。)13)14)3328)32824、以下程序的输出结果是 ( B )。 #include main( ) char str12=a,b,c,d,f,g,f; printf(%dn,strlen(str); )12)7)11)625、设有以下语句:struct stint n;struct st *next; static struct st
8、 a3=5,&a1,7,&a2,9,0,*p;p=&a0; 则表达式( B )的值是6。)p+-n)+(p-n))(*p).n+)p-n+26、对于程序段float f1(int a)int b;main( ) int m,n;m=f1(n);char f2(int x,int y) int a; 变量m,n的作用范围是( B )(A)整个程序段 (B)main函数(C)main函数和f2函数 (D)mian函数和f1函数27、若p1、p2都是指向整型的指针,p1已经指向数量x,要使p2也指向x,正确的是(A)(A)p2=p1; (B)p2=*p1;(C)p2=&p1; (D)p2=*p1;2
9、8、算术运算符,赋值运算符和关系运算符的运算优先级按从高到低依次为(B)(A)算术运算、赋值运算、关系运算(B)算术运算、关系运算、赋值运算(C)关系运算、赋值运算、算术运算(D)关系运算、算术运算、赋值运算29、语言中,运算对象必须是整型数的运算符是( A)/)% 和 /)*30、若数组定义为int a10;则下列哪个表达式是错误的?(A)(A)*a (B)a(C)&a (D)+a31、表达式10%2值是(A)(A)0 (B)1(C)5 (D)5.032、设有说明 int (*ptr)M; 其中的标识符 ptr 是( C )M 个指向整形变量的指针)指向 M 个整形变量的函数指针)一个指向具
10、有 M 个整形元素的一维数组的指针)具有 M 个指针元素的一维指针数组,每个元素都只能指向整形变量33、初始化一维数组a正确的语句是( C )(A)int a10=(0,0,0,0,0); (B)int a10= ;(C)int a =10 ; (D)int a10=10*1;34、下列程序执行后输出的结果是 ( A ) int d = 1 ;fun ( int p ) int d = 5 ; d + = p + + ; printf( %d , d ) ;main( )int a = 3 ; fun ( a ) ; d + = a + + ; printf( %d n , d ) ;)8 4)9 6)9 4)8 535、函数调用语句“f(e1,e2),(e3,e4,e5)”中参数的个数是(B)(A)1 (B)2(C)3 (D)536、执行下列语句中,sum变量的值是(B) int I,sum=0; for(i=0;i10;i+,sum+=i);(A)45 (B)55 (C)0 (D)编译错误37、以下c语言函数声明中,不