全国计算机二级C选择题题库第36套(2)

2020-06-05 12:03

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 main()

{ 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 main( )

{ 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 f( int x,int y) { return((y-x)*x); } main()

{ 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


全国计算机二级C选择题题库第36套(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:数电实验报告模板

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: