15、若变量已正确定义并赋初值,以下合法的赋值语句是 A) k=(m==n); B) k=-m-n
C) k=int(m+n); D) k=m*n=1; 参考答案:A
m,n的变量类型未知,但题目中已定义和赋值。选项B的-m-n对于整型与浮点数类型可以这样操作,但若变量为字符类型,则错误。选项C,编译类型错误,强制转化使用错误。选项D,m*n是常量,只能用作表达式的右值,不能作为左值。故答案为A选项。
16、以下关于逻辑运算符两侧运算对象的叙述中正确的是 A) 只能是整数0或1
B) 只能是整数0或非0整数 C) 可以是结构体类型的数据 D) 可以是任意合法的表达式 参考答案:D
与运算符(&&)和或运算符(||)均为双目运算符,具有左结合性。非运算符(!)为单目运算符,具有右结合性。只要是合法的表达式,都可以作为逻辑运算表达的运算表达式。因此可知选项A,B,C错误。答案为D选项。
17、以下选项中错误的是 A) printf(\
B) printf(\C) printf(\D) printf(\ 参考答案:A
%d可以作为输出字符和整型类型的格式,%c作为输出字符类型的格式,%s作为输出字符串类型的格式,选项A,'s'是字符,不能用%s格式来输出。故答案为A选项。
18、若有定义:char ch;当执行以下循环时从键盘输入abcde<回车>,将输出*的个数是 while((ch=getchar())=='e') printf(\A) 4 B) 0 C) 5 D) 1
参考答案:B
while((ch=getchar())=='e'),输入abcde,接收到的第一个字符是a,while循环的条件为0,跳出循环结束。因此printf没有执行过。因此,没有打印任何字符出来。故答案为B选项。
19、有以下程序
#include
{ int x=10,y=11,z=12; if( y< z )
x=y; y=z; z=x;
printf(\}
程序运行后的输出结果是 A) x=11 y=12 z=11 B) x=10 y=10 z=10 C) x=11 y=11 z=10 D) x=10 y=10 z=12 参考答案:A
if条件为真,执行x=y;此时x=11;y=11;z=12 再执行y=z;z=x;此时y=12;z=11;
最后x=11;y=12;z=11;故答案为A选项。
20、对于if(表达式)语句,以下叙述正确的是 A) \表达式\不能是变量
B) \表达式\的值只能是整数值 C) \表达式\可以是常量
D) \表达式\中不可以出现字符型变量的比较 参考答案:C
C语言没有规定if(表达式)中的\表达式\的形式,可以是任意合法表达式。故答案为C选项。
21、有以下程序
#include
{ char ch = '1'; while (ch < '9') {
printf(\ ch++; } }
程序运行后的输出结果是 A) 12345678 B) 01234567 C) 0 D) 1
参考答案:A
将字符转为数字,并输出打印的格式为%d,while循环从1-8,因此打印的结果是12345678。故答案为A选项。
22、以下与表达式(!x==0) 的逻辑值不等价的选项是 A) x==1 B) x C) x!=0
D) x>0 || x<0 参考答案:A
!与==运算,!的优先级高于==,即等价于(!x)==0。如果x?0,则表达式为真,否则表达式为假,因此可以验证选项,只有选项A不符合。故答案为A选项。
23、以下叙述正确的是
A) 表达式9-'0'的值是数值 9
B) 表达式'A'+32的值是字母A的ASCII码 C) 表达式'a'-32的值是字母a的ASCII码 D) 表达式9+'0'的值是字符9的ASCII码 参考答案:D
表达式9-'0'的值是数值9-48=-39,故选项A错误, 表达式'A'+32的值是字母a的ASCII码, 故选项B错误,
表达式'a'-32的值是字母A的ASCII码, 故选项C错误。故答案为D选项。
24、有以下程序
#include
int fun (int x, int y )
{ if (x!=y) return ( (x+y) /2 ); else return ( x ); }
main()
{ int a=4, b=5, c=6;
printf( \ }
程序运行后的输出结果是 A) 3 B) 6 C) 8 D) 12
参考答案:B
fun函数的功能是获取二个数的平均数,注意平均数是整型数,小数会被截断。fun(2*4,fun(5,6))?fun(8,5)?6,因此答案为C选项。
25、有以下程序
#include
{ int a=3,b=4,c=5,d;
d=f(f(a,b),f(a,c)); printf(\ }
程序运行后的输出结果是 A) 8 B) 10 C) 9 D) 7
参考答案:C
f(a,b)=f(3,4)=(4-3)*3=3;f(a,c)=f(3,5)=(5-3)*3=6;f(3,6)=(6-3)*3=9; 因此,d=f(f(a,b),f(a,c))=9,答案为C选项。
26、有以下程序
#include
void fun( int a[ ], int n, int flag ) { int i=0,j, t;
for ( i=0; i { if ( a[i] < a[j] ) { t = a[i]; a[i] = a[j]; a[j] = t; } } else { if ( a[i] > a[j] ) { t = a[i]; a[i] = a[j]; a[j] = t; } } } main( ) { int c[10]={ 7,9,10,8,3,5,1,6,2,4 },i; fun( c, 4, 1 ); fun( c+4, 6, 0 ); for ( i=0;i<10; i++ ) printf( \ printf(\} 程序运行后的输出结果是 A) 7,8,9,10,6,5,4,3,2,1, B) 10,9,8,7,6,5,4,3,2,1, C) 10,9,8,7,1,2,3,4,5,6, D) 1,2,3,4,5,6,7,8,9,10, 参考答案:C fun()函数作用冒泡法排序,flag控制升序(0)或者降序(1)。n为参与排序的个数。a为数组的起始地址。因此,fun(a,4,1),数组的前四个降序排序,fun(a+4,6,0)从数组的第四项,后六个升序排序。故结果为10,9,8,7,1,2,3,4,5,6。答案为C选项。 27、有以下程序 #include int m1(int x, int y ) { if( x<= y ) return 2*x+1; else return y; } int m2(int x, int y ) { if( x<= y ) return 2*y+1; else return x; } main() { int i, t1=10, t2=0; for( i=1; i<=4; i++ ) { t1=m1( i,t1 ); t2=m2( i,t2 ); } printf(\} 程序运行后的输出结果是 A) t1=9 t2=4 B) t1=4 t2=9 C) t1=9 t2=9 D) t1=1 t2=4 参考答案:A 函数m1(x,y),若x 28、有以下程序 #include void f1(char *a, char b ){ char c; c=*a; *a=b; b=c; } void f2(char a, char b ){ char c; c=a; a=b; b=c; } void f3(char *a, char *b ){ char c; c=*a; *a=*b; *b=c; } main() { char t1, t2; t1 = 'A'; t2 = 'B'; f3( &t1,&t2 ); putchar(t1); putchar(t2); t1 = 'A'; t2 = 'B'; f2( t1, t2 ); putchar(t1); putchar(t2); t1 = 'A'; t2 = 'B'; f1( &t1, t2 ); putchar(t1); putchar(t2); printf(\} 程序运行后的输出结果是 A) ABBABB B) BAABBB C) BABABA D) BABAAB 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库全国计算机二级C选择题题库第36套(2)在线全文阅读。
相关推荐: