最新真实全国二级C选择题真题第1套 |
1.下列叙述中正确的是 A.所谓算法就是计算方法 B.程序可以作为算法的一种描述方法 C.算法设计只需考虑得到计算结果 D.算法设计可以忽略算法的运算时间 2.下列各序列中不是堆的是 A.(91,85,53,36,47,30,24,12) B.(91,85,53,47,36,30,24,12) C.(47,91,53,85,30,12,24,36) D.(91,85,53,47,30,12,24,36) 3.深度为5的完全二叉树的结点数不可能是 A.15 B.16 C.17 D.18 4. A.ABDEGCFH B.DBGEAFHC C.DGEBHFCA D.ABCDEFGH 5.下面描述不属于软件特点的是 A.软件是一种逻辑实体,具有抽象性 B.软件在使用中不存在磨损、老化问题 C.软件复杂性高 D.软件使用不涉及知识产权 6.下面对类-对象主要特征描述正确的是 A.对象唯一性 B.对象无关性 C.类的单一性 D.类的依赖性 7.在数据库中,数据模型包括数据结构、数据操作和 A.数据约束 B.数据类型 C.关系运算 D.查询 8.一个运动队有多个队员,一个队员仅属于一个运动队,一个队一般都有一个教练,则实体运动队和队员的联系是 A.一对多 B.一对一 C.多对一 D.多对多 9.设循环队列为Q(1: m),其初始状态为front=rear=m。经过一系列入队与退队运算后,front=30,rear=10。现要在该循环队列中作顺序查找,最坏情况下需要比较的次数为 A.19 B.20 C.m-19 D.m-20 10. A.投影 B.交 C.选择 D.并 11.关于C语言标识符,以下叙述错误的是 A.标识符可全部由数字组成 B.标识符可全部由下划线组成 C.标识符可全部由小写字母组成 D.标识符可全部由大写字母组成 12.以下叙述正确的是 A.只使用三种基本结构即可解决任何复杂问题 B.C语言程序并不是必须要定义main()函数 C.只要程序包含了任意一种基本结构,就肯定是结构化程序 D.程序中的语法错误只能在运行时才能显现 13.以下选项中,合法的数值型常量是 A. 3.2 B. 'X' C. 099 D.0xEH 14.有以下程序 #include main( ) { int x = 0x13; printf("INT:%d\n", x+1); } 程序运行后的输出结果是 A. INT:14 B.INT:13 C. INT:12 D.INT:20 15.设有定义:int x=7,y=12;,则以下表达式值为3的是 A. y%=(x-x%5) B. y%=(x%=5) C.y%=x-x%5 D. (y%=x)-(x%=5) 16.以下不是合法C语言转义字符的是 A. '\b' B. '\a' C. '\c' D. '\r' 17.有如下程序 #include main( ) { int i; for (i=0; i<5; i++) putchar('Z' - i); } 程序运行后的输出结果是 A.ZYXWV B.VWXYZ C. 'X''Y''Z''W''V' D. 'ABCDE' 18.字符数组a和b中存储了两个字符串,判断字符串a和b是否相等,应当使用的是 A.if(strcmp(a,b)==0) B. if(strcpy(a,b)) C. if(a==b) D. if(a=b) 19.以下程序段中,与其他三个功能不同的程序段是 A.s=0;i=1; for( ; ; ) {s+=i; i++; if(i<=10) break;} B. s=0,i=1; for( ; i<=10; ) {s+=i,i++;} C. s=0; for(i=1; i<=10; i++) {s+=i;} D.for(s=0,i=1; i<=10; s+=i,i++) ; 20.有以下程序 #include main( ) { int x=1, y=2, z=3; if(x>1) if(y>x) putchar('A'); else putchar('B'); else if(z else putchar('D'); } 程序的运行结果是 A.A B.C C. B D.D 21.有语句:k=x A.if(x B. if(x C.if(x D. if(x 22. 有如下程序 #include void change(int* array, int len) { for (; len>=0; len--) array[len] -= 1; } main( ) { int i, array[5] = {2,2}; change(array, 4); for (i=0; i<5; i++) printf("%d,", array[i]); printf("\n"); } 程序运行后的输出结果是 A. 1,0,-1,1,-1, B. 1,1,-1,-1,-1, C. 1,1,1,1,1, D. 1,-1,1,-1,1, 23.有以下程序 #include main( ) { char* p1 = 0; int* p2 = 0; float* p3 = 0; printf("%d,%d,%d\n", sizeof(p1), sizeof(p2), sizeof(p3)); } 程序运行后的输出结果是 A. 1,4,8 B. 4,4,4 C.1,2,4 D.1,1,4 24. 有以下程序段 int *p1,*p2,a[10]; p1=a; p2=&a[5]; 则p2-p1的值为 A.5 B. 10 C. 12 D. 无法确定 25.以下叙述中错误的是 A.字符型指针可以指向一个字符串 B.函数可以通过指针形参向所指单元传回数据 C.基类型不同的指针可以直接相互赋值 D.指针的运用可使程序代码效率更高 26. 有以下程序 #include main( ) { int i,j = 0; char a[] = "How are you", b[10] = {0}; for (i=0; a[i]; i++) if (a[i] == ' ') b[j++] = a[i+1]; printf("%s\n",b); } 程序运行后的输出结果是 A. Hay B.Howareyou C. we D.ay 27. 有以下程序 #include main( ) { char w[20], a[5][10] = {"abcdef", "ghijkl", "mnopq", "rstuv", "wxyz"}; int i,j; for (i=0; i<5; i++) { j=0; while (a[i][j]!='\0') j++; w[i] = a[i][j/2+1]; } w[5]= '\0'; puts(w); } 程序运行后的输出结果是 A.djoty B.agmrw C.flqvz D.ekpuz 28.有以下程序 #include main( ) { int i,j = 0; char a[] = "How are you!", b[10] = {0}; for (i=0; a[i]; i++) if (a[i] == ' ') b[j++] = a[i-1]; printf("%s\n", b); } 程序运行后的输出结果是 A.we B.Howareyou! C.ay D.we! 29.以下涉及字符串数组、字符指针的程序段,没有编译错误的是 A.char* str, name[5]; str = "C/C++"; B. char* str, name[6]; name = "Hello"; C. char str1[7] = "prog.c", str2[8]; str2 = str1; D. char line[]; line = "//////"; 30.有如下程序 #include void get_put() { char ch; ch = getchar(); if (ch != '\n') get_put(); putchar(ch); } main( ) { get_put(); } 程序运行时,输入ABCD<回车>,则输出结果是 A. DCDC B.DCBA C.BABA D.ABCD 31.有以下程序 #include main( ) { char name[10] = {'S', 'T', 'R'}; name[2] = '#'; name[6] = 0; printf("%s\n", name); } 程序运行后的输出结果是 A. STR#0 B. STR# C.ST# D.STR0 32. 有以下函数 int fun(char *ps) { char *p; p=ps; if(*ps==0) return 0; while(*++p); return(p-ps); } 该函数的功能是 A.计算字符串的长度 B.实现字符串的赋值 C.将字符串逆序存放 D.计算字符串所占字节数 33.有以下函数 void fun(char *p, char *q) { while ((*p++ = *q++) != '\0'); } 该函数的功能是 A.计算字符串的长度 B.计算字符串所占字节数 C. 将字符串逆序存放 D.实现字符串的复制 34. 以下叙述错误的是 A. 未经赋值的auto变量值不确定 B.未经赋值的全局变量值不确定 C.未经赋值的register变量值不确定 D.未经赋值的静态局部变量值为0 35.有以下程序 #include main( ) { int c, d; c = 10^3; d = 10+3; printf("%d,%d\n", c, d); } 程序运行后的输出结果是 A. 13,13 B.9,13 C.10,13 D. 103,13 36.有以下程序 #include #include typedef struct stu { char name[10]; char gender; int score; } STU; void f(char *name, char *gender, int *score) { strcpy(name, "Qian"); *gender = 'f'; *score = 350; } main( ) { STU a = {"Zhao", 'm', 290}, b; b = a; f(b.name, &b.gender, &b.score); printf("%s,%c,%d,", a.name, a.gender, a.score); printf("%s,%c,%d\n", b.name, b.gender, b.score); } 程序运行后的输出结果是 A. Zhao,m,290,Qian,f,350 B.Zhao,m,290,Zhao,m,290 C.Zhao,m,290,Qian,m,350 D. Zhao,m,290,Qian,m,290 37.有如下程序 #include main( ) { int a = 9, b; b = (a >> 3) % 4; printf("%d,%d\n", a, b); } 程序运行后的输出结果是 A. 9,3 B. 4,0 C. 4,3 D.9,1 38. 有如下定义: struct { int num; char name[10]; struct { int y; int m; int d;} birth; } s,*ps=&s; 以下对内嵌结构体成员的引用形式错误的是 A.ps.birth.y B.s.birth.y C.ps->birth.y D. (*ps).birth.y 39. 函数rewind(fp)的作用是 A.使文件位置指针移至下一个字符的位置 B.使文件位置指针指向文件的末尾 C.使文件位置指针移至前一个字符的位置 D.使文件位置指针重新返回到文件的开头 40.以下选项中错误的是 A.a^=b 与 a=a^b 等价 B.a!=b 与 a=a!b 等价 C.a|=b 与 a=a|b 等价 D. a&=b 与 a=a&b 等价 1.B 2.C 3.A 4.A 5.D 6.A 7.A 8.A 9.D 10.A 11.A 12.A 13.A 14.D 15.D 16.C 17.A 18.A 19.A 20.D 21.D 22.B 23.B 24.A 25.C 26.D 27.D 28.A 29.A 30.B 31.C 32.A 33.D 34.B 35.B 36.A 37.D 38.A 39.D 40.B |