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

上传人:飞*** 文档编号:47709451 上传时间:2018-07-04 格式:PDF 页数:17 大小:94.52KB
返回 下载 相关 举报
全国计算机二级C选择题题库第34套_第1页
第1页 / 共17页
全国计算机二级C选择题题库第34套_第2页
第2页 / 共17页
全国计算机二级C选择题题库第34套_第3页
第3页 / 共17页
全国计算机二级C选择题题库第34套_第4页
第4页 / 共17页
全国计算机二级C选择题题库第34套_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《全国计算机二级C选择题题库第34套》由会员分享,可在线阅读,更多相关《全国计算机二级C选择题题库第34套(17页珍藏版)》请在金锄头文库上搜索。

1、全国计算机二级C选择题题库第34 套1、下列叙述中错误的是A) 数据结构中的数据元素不能是另一数据结构B) 数据结构中的数据元素可以是另一数据结构C) 空数据结构可以是线性结构也可以是非线性结构D) 非空数据结构可以没有根结点参考答案: A 数据元素是一个含义很广泛的概念,它是数据的“基本单位 “ ,在计算机中通常作为一个整体进行考虑和处理。数据元素可以是一个数据也可以是被抽象出的具有一定结构数据集合,所以数据结构中的数据元素可以是另一数据结构。满足有且只有一个根结点并且每一个结点最多有一个前件,也最多有一个后件的非空的数据结构认为是线性结构,不满足条件的结构为非线性结构。空数据结构可以是线性

2、结构也可以是非线性结构。非空数据结构可以没有根结点,如非性线结构 “ 图“就没有根结点。故选 A选项。2、为了降低算法的空间复杂度,要求算法尽量采用原地工作(in place) 。所谓原地工作是指A) 执行算法时所使用的额外空间固定(即不随算法所处理的数据空间大小的变化而变化)B) 执行算法时所使用的额外空间随算法所处理的数据空间大小的变化而变化C) 执行算法时不使用额外空间D) 执行算法时不使用任何存储空间参考答案: A 算法的空间复杂度是指执行这个算法所需要的内存空间,包括输入数据所占的存储空间、程序本身所占的存储空间、算法执行过程中所需要的额外空间。如果额外空间量相对于问题规模(即输入数

3、据所占的存储空间)来说是常数,即额外空间量不随问题规模的变化而变化,则称该算法是原地工作的。故选 A选项3、某循环队列的存储空间为Q(1:m) ,初始状态为 front=rear=m。现经过一系列的入队操作和退队操作后,front=m , rear=m-1 ,则该循环队列中的元素个数为A) m-1 B) m C) 1 D) 0 参考答案: A 循环队列长度为m ,由初始状态为front=rear=m,可知此时循环队列为空。入队运算时,首先队尾指针进1(即 rear+1 ),然后在 rear 指针指向的位置插入新元素。特别的,当队尾指针 rear=m+1时,置 rear=1 。退队运算时,排头指

4、针进1(即 front+1 ),然后删除 front指针指向的位置上的元素,当排头指针front=m+1 时,置 front=1。从排头指针 front 指向的后一个位置直到队尾指针rear 指向的位置之间所有的元素均为队列中的元素。 如果 rear-front0, 则队列中的元素个数为rear-front个;如果 rear-front main() char a,b,c,d; scanf(“%c%c“, c=getchar(); d=getchar(); printf(“%c%c%c%cn“,a,b,c,d); 当执行程序时,按下列方式输入数据(从第1列开始, 代表回车,注意:回车也是一个字

5、符)12 34 则输出结果是A) 12 3 B) 12 C) 1234 D) 12 34 参考答案: A scanf()函数从标准输入输出中读入两个字符1 2分别赋给变量a、b,遇到回车自动结束,但回车符已经存入缓冲区,函数getchar()将从中接受这个字符,故c赋值为回车符,然后第二个getchar()读入字符 3 ,因此 a=1 ,b=2 ,c= ,d=3 ,故答案为A选项。17、有以下程序#include main( ) int a, b; for (a=0; a,则输出结果是A) 2,2,3,4,4,4, B) 2,3,4, C) 2,2,3,4, D) 2,3,3,4,5,6, 参

6、考答案: C continue 语句的作用是跳过循环体中剩余的语句而强行执行下一次循环。switch case如果没有 break 会导致多个分支重叠。因此,输入1,2,3 ,则 1执行 case 1: printf(“%d,“, b+1);case 2: printf(“%d,“, b+1); continue;后结束。 2则执行 case 2: printf(“%d,“, b+1); continue;3则执行 default: printf(“%d,“,b+1); continue;得到的结果是2,2,3,4。故答案为 C选项。18、有以下程序#include #include main

7、() double x, y, z; scanf(“%lf%lf“, z= x/ y; while(1) if( fabs(z) 1.0 ) x=y; y=x; z=x/y; else break; printf(“y=%f n“, y ); 执行时输入:3.6 2.4,则输出结果是A) 2.400000 B) 1.500000 C) 1.600000 D) 2.000000 参考答案: A 题目中程序执行过程中关键语句的结果为:z=1.5 ,if 条件成立, x=2.4 ,y=2.4 ,z=1.0 ,下一次循环 if 条件不成立跳出循环,按照格式打印y值为 2.400000 。故答案为 A选

8、项。19、有以下程序#include main( ) int i; char c; scanf(“%c“, for (i=0; i c) continue; printf(“%d,“, i); 执行时输入:0后,则输出结果是A) 5 B) 0,0,0,0,0, C) 0,1,2,3,4, D) 0,1, 参考答案: C scanf(“%c“, double sum; sum=1.0; i=1; do i+; sum += 1/i; while( i int fun( int *b, int n ) int i, r=1; for( i=0; i void change( char* array

9、, int len ) for (len-; len=0; len-) arraylen += 1; main( ) int i; char array5 = “ABCD“; change(array, 4); for (i=0; i main( ) int a4,p,x,i; for( i=3;i0;i- )ai-1=i*2-1; scanf(“%d“, i=0; while( aip;i- ) ai=ai-1; ap=x; for( i=0;i,则输出结果是A) 1 2 3 4 B) 5 4 3 1 C) 1 2 3 5 D) 3 2 1 4 参考答案: C 第一个 for 循环初始化数组

10、a,分别为 1,3,5 ,随机数,形成了基本有序的序列,再将输入的数字插入到数组a,使他们形成有序序列。因此可以分析出,打印的结果为1,2,3,5。故答案为 C选项。28、有以下程序#include int fun(int a,int n,int x) int *p=a; while( p main( ) char w20, a510=“abcde“, “fghij“, “klmno“, “pqrst“, “uvwxy“; int i; for ( i=0; i #include void fun( char *s, int m1, int m2 ) char t, *p; p=s + m1;

11、 s= s+m2; while( sm2 交换数组元素ssm1 ,ssm2 。因此, 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(“%d,%d,“,m,n); sub1(4,5)

12、; printf(“%d,%d,“,m,n); sub2(); printf(“%d,%dn“,m,n); 程序运行后的输出结果是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,

13、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

14、() char s=“ -26a3“; printf(“%dn “,fun(s); 程序运行后的输出结果是A) -263 B) 2 C) 0 D) -26 参考答案: D isspace() 检查参数 c是否为空格字符,也就是判断是否为空格( ) 、水平定位字符( t ) 、归位键 ( r ) 、换行 ( n ) 、垂直定位字符( v ) 或翻页 ( f )的情况。若参数 c为空格字符,则返回TRUE ,否则返回 NULL(0) 。Isdigit() 函数检查参数c是否为阿拉伯数字 0到9。返回值若参数c为阿拉伯数字,则返回TRUE ,否则返回 NULL(0) 。fun()函数的第一个 for

15、 循环判断字符串是否负号。第二个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错误

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号