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

2020-02-21 17:36

}

main()

{ int a[10]={1,2,3,4,5,6,7,8,9,10}; printf(\}

程序运行后的输出结果是 A) 9 B) -1 C) 10 D) 0

参考答案:A

while( p

29、有以下程序

#include main( )

{ char w[20], a[5][10]={\ int i;

for ( i=0; i<5; i++ ) w[i] = a[i][i]; w[5]= '\\0';

printf( \}

程序运行后的输出结果是 A) ejoty B) afkpu C) agmsy D) eimqu

参考答案:C 数组a是二维数组,数组w存放二维数组a行列值相同位置的元素,由a[5][10]可得w[0]~w[4]的元素分别是agmsy,因此打印结果为agmsy。故答案为C选项。

30、语句printf(\的输出结果是 A) 6 B) 7 C) 8 D) 9

参考答案:A

字符串\中共有13个字符,而strlen()函数从字符串第一个字符开始扫描,直到碰到第一个结束符'\\0'为止,然后返回计数器值(长度不包含\。故输出结果为6。答案为A选项。

31、有以下程序

#include #include

void fun( char *s, int m1, int m2 ) { char t, *p;

p=s + m1; s= s+m2; while( s

{ t=*s; *s=*p; *p=t; s++; p--; } }

main()

{ char ss[10]=\ int n=6;

fun( ss,0,n-1 ); fun( ss,9,n ); fun( ss,0,9 );

printf(\}

程序运行后的输出结果是 A) 012345 B) 876543210 C) 876543 D) 012345678 参考答案:A fun(*ss, m1, m2 )的作用是,如果m1>m2交换数组元素ss[m1],ss[m2]。因此,fun(ss,0,5)后ss的0,1,2,3,4,5,6,7,8,\\0。fun(ss,9,6) 后ss的0,1,2,3,4,5, \\0,8,7,6。fun(ss,0,9)后ss的0,1,2,3,4,5,\\0,8,7,6。因此打印结果012345。故答案为A选项。

32、有以下程序

#include int m=1,n=2;

void sub1(int m,int n) { m+=2; n++; } void sub2( )

{ m++; n+=2; } main( )

{ printf(\ sub1(4,5);

printf(\ sub2();

printf(\}

程序运行后的输出结果是

A) 1,2,1,2,2,4 B) 1,2,6,6,7,8 C) 1,2,2,4,2,4 D) 1,2,6,6,2,4 参考答案:A

全局变量与函数体内局部变量同名时,局部变量会覆盖全局变量,因此在sub1()函数内,全局变量m,n是不可见的,在sub1()对m,n操作的是局部变量,对全局变量不产生影响。但在sub2()函数内,由于没有和全局变量变量重名,因此在此函数内,m,n是可见的。因此,第一个printf()打印的是全局变量m,n,故打印的是1,2,第二个printf(),调用sub1(),没有修改全局变量m,n.故打印的是1,2,第三个printf(),之前调用了sub2(),修改了全局变量m,n。因此,打印的是2,4,故答案为A选项。

33、有以下程序

#include #include long fun( char s[] ) { long n; int sign;

for( ; isspace(*s); s++ ); sign=(*s=='-')? -1 : 1;

if(*s=='+' || *s=='-') s++; for( n=0 ; isdigit(*s); s++ ) n=10*n+(*s-'0'); return sign*n; }

main()

{ char s[]=\ printf(\ }

程序运行后的输出结果是 A) -263 B) 2 C) 0 D) -26

参考答案:D

isspace(c)检查参数c是否为空格字符,也就是判断是否为空格('')、水平定位字符('\\t')、归位键('\\r')、换行('\\n')、垂直定位字符('\\v')或翻页('\\f')的情况。若参数c为空格字符,则返回TRUE,否则返回NULL(0)。Isdigit(c)函数检查参数c是否为阿拉伯数字0到9。返回值若参数c为阿拉伯数字,则返回TRUE,否则返回NULL(0)。fun()函数的第一个for循环判断字符串是否负号。第二个for循环获取符号后面的数字字符,并将它们转化为整数。遇到了非数字的字符跳出,最后返回数组的结果。因此,可知首先获取负号,紧接着获取数值26,遇到了字符a,跳出返回-26,因此打印的结果是-26。故答案为D选项。

34、设有定义:

struct complex

{ int real,unreal;} data1={1,8},data2; 则以下赋值语句中错误的是 A) data2=(2,6); B) data2=data1;

C) data2.real=data1.real; D) data2.real=data1.unreal; 参考答案:A

结构体变量建议在定义的时候进行初始化。结构体常见的几种初始化方法如下: (1)struct a a1 = { .b = 1, .c = 2 };

(2)struct a a1 = { b:1, c:2 };

(3)struct a a1 = { 1, 2};

计算机内核喜欢用第一种,使用第一种和第二种时,成员初始化顺序可变。因此,可以判断选项A错误。

35、有以下程序

#include #define S(x) x*x/x main( )

{ int k = 6, j = 3;

printf(\}

程序运行后的输出结果是 A) 11,11 B) 29,29 C) 26,29 D) 121,121 参考答案:B

#define命令是C语言中的一个宏定义命令,标识符一般使用大写,为了区分其他标识符,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。宏定义不进行其他操作,仅仅只是替换标识符。S(k+j+2)=k+j+2*k+j+2/k+j+2,经计算可得

29,S(j+k+2)=j+k+2*k+j+2/j+k+2,计算可得29。因此输出为29,29。答案为B选项。

36、若有定义

typedef int *T[10]; T a;

则以下选项与上述定义中a的类型完全相同的是

A) int *a[10]; B) int (*a)[10]; C) int a[10];

D) int (*a[10])(); 参考答案:A

C语言允许由用户自己定义类型说明符,也就是说允许由用户为数据类型取\别名\。类型定义符typedef即可用来完成此功能,可以完全代替原来的类型说明符。因此,变量a的类型为int *a[10]。typedef int *T[10],由于[]运算符优先级高于*,可以看成typedef int[10] *T,替换T可得int[10] *a=>int *a[10],因此,答案为A选项。

37、有以下程序

#include main( )

{ FILE *fp;

int i, a[6]={1,2,3,4,5,6},k; fp = fopen( \ for ( i=0; i<6; i++ )

fprintf(fp, \ rewind(fp);

for ( i=0; i<6; i++ ) { fscanf(fp, \ printf(\ }

fclose(fp); }

程序运行后的输出结果是 A) 6,5,4,3,2,1, B) 1,2,3,4,5,6, C) 1,1,1,1,1,1 D) 6,6,6,6,6,6, 参考答案:A

fopen( \打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。rewind(fp);使文件fp的位置指针指向文件开始。fprintf(fp,\a[5-i]);将a[i]输出到fp指向的文件中。fscanf(fp, \&k);将fp读入到变量k中,第一个for循环将数组中元素倒着输入到fp指向的文件中,rewind()则指向文件开始,因此打印是数组a的倒叙。故打印为6,5,4,3,2,1。答案为A选项。

38、有以下程序

#include #include

void fun( double *p1, double *p2, double *s ) { s=( double* )calloc( 1,sizeof(double) ); *s = *p1 + *p2; }


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

下一篇:护士节演讲稿:我心中的白衣天使

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

马上注册会员

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