一、选择题
1. 下列描述中,不是线性表顺序存储结构特征的是( )。 A) 不便于插入和删除 B) 需要连续的存储空间 C) 可随机访问 D) 需另外开辟空间来保存元素之间的关系
2. 下列排序方法中,最坏情况下比较次数最少的是( )。 A.冒泡排序 B.简单选择排序 C.直接插入排序 D.堆排序
3. 两个或两个以上模块之间联系的紧密程度称为( )。 A) 耦合性 B) 内聚性 C) 复杂性 D) 数据传输特性
4. 下列选项中不符合良好程序设计风格的是______。 (A) 源程序要文档化 (B) 数据说明的次序要规范化 (C) 避免滥用 go to 语句 (D) 模块设计要保证高耦合,高内聚
5. 下列数据结构中,能用二分法进行查找的是( )。 A) 顺序存储的有序线性表 B) 结性链表 C) 二叉链表 D) 有序线性链表
6. 将 E-R 图转换到关系模式时,实体与联系都可以表示成 A) 属性 B) 关系 C) 键 D) 域
7. 数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和______。 A) 编码设计 B) 测试阶段 C) 运行阶段 D) 物理设计
8. 以下叙述中错误的是______。 A) C 语言源程序经编译后生成后缀为.obj 的目标程序 B) C 程序经过编译、连接步骤后才能形成一个真正可执行的二进制机器指令文件 C) 用 C 语言编写的程序称为源程序,它以 ASCII 代码形式存放在一个文本文件中 D) C 语青中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
9. 有以下定义语句: double a,b; int w; long c; 若各变量已正确赋值,则下列选项中正确的表达式是 ______。
A) a=a+b=b++ C) (c+w)%(int)a
B) w%((int)a+b) D) w=a==b;
10. 下列说法不正确的是( )。 A) C 语言程序是以函数为基本单位的,整个程序由函数组成 B) C 语言程序的一条语句可以写在不同的行上 C) C 语言程序的注释行对程序的运行功能不起任何作用,所以注释应该尽可能少写 D) C 语言程序的每个语句都以分号结束
11. 下列标识符不是关键字的是( )。 A) break B) char C) Switch D) return
12. 表达式 3.6-5/2+1.2+5%2 的值是______。 (A) 4.3 (B) 4.8 (C) 3.3 (D) 3.8
13. 下列程序输出的结果是( )。
main() int a;
a=-4+4*5-6;printf("%d",a); a=4+4%5-6;printf("%d",a); a=-3+4%6/5;printf("%d",a); a=(7+6)%5/2;printf("%d",a);
A) 102-3 1 B) 10-22 1 C) 11-22 1 D) 1022 1
14. 若有说明:int *p,m=5,n;,以下正确的程序段是 A) p=&n;scanf("%d",&p); B) p=&n;scanf("%d",*p) C) scanf("%d:,&n);*p=n; D) p=&n;*p=m;
15. 若有“double a;”,则正确的输入语句是( )。
A) scanf("%1f",A) ;
B) scanf("%f",&A) ;
C) scanf("%1f",&A) ;
D) scanf("%1e",&A) ;
16. 若有下列定义(设 int 类型变量占 2 个字节): int i=8,j=9; 则下列语句: printf("i=%%d,j=%%d\n",i,j); 输出的结果是( )。 A) i=8,j=9 B) i=%d,j=%d C) i=%8,j=%9 D) 8,9
17. 下列程序的输出结果是( )。 main() int p[8]=11,12,13,14,15,16,17,18,i=0,j=0; while(i+ +<7) if(p[i]%2)j+ =p[i]; printf("%d\n",j);
A) 42 B) 45 C) 56 D) 60
18. 若变量已正确定义,在 if(W)printf("%d\n",k);中,以下不可替代 W 的是( )。 A) a<>b+c B) ch=getchat() C) a==b+c D) a++
19. 有以下程序:
main()
int a=1,b; for(b=1:b<=10;b++)
if(a>=8)break; if(a%2==1)a+=5;continue; a-=3:
printf("%d\n",b);
程序运行后的输出结果是______。 A) 3 B) 4 C) 5 D) 6
20. 以下程序: #include<stdio.h> main() char str[10]; scanf("%s",&str); printf("%s\n",str);
运行上面的程序,输入字符串 how are you,则程序的执行结果是( )。 A) how B) how are you C) h D) howareyou
21. 以下程序运行后的输出结果是 #include<stdio.h> main() int n=2, k=0; while(k++ && n++>2); printf("%d %d\n", k, n);
A) 0 2 B) 1 3 C) 5 7 D) 1 2
22. 下面程序的运行结果是( )。 #include<stdio.h> main() int y=10; doy--;while(--y); printf("%d\n",y--);
A) -1 B) 1 C) 8 D) 0
23. 有以下程序 main() int k=5,n=0; do switch(k) case 1: case 3:n+=1;k--;break;
default:n=0;k--; case 2: case 4:n+=2;k--;break;
printf("%d",n); whUe(k>0 &&n<5);
程序运行后的输出结果是 A) 235 B) 0235 C) 02356 D) 2356
24. 有以下程序: #include<stdio.h> void fun(int*s,int nl,int n2) int i,j,t; i=nl;j=n2; while(i<j)t=s[i];s[i]=s[j];s[j]=t;i++;j--;
main() int a[10]=1,2,3,4,5,6,7,8,9,0,k;
fun(a,0,3);fun(a,4,9);fun(a,0,9); for(k=0;k<10;k++)printf("%d",a[k]);printf("\n");
程序运行的结果是______。 A) 0987654321 B) 4321098765 C) 5678901234 D) 0987651234
25. 设变量 x 和 y 均已正确定义并赋值。下列 if 语句中,在编译时将产生错误信息的是( )。 A) if(x++); B) if(x>y&&y!=0); C) if(x>0)x--
elsey++; D) if(y<0);
else x++;
26. 关于字符常量,以下叙述正确的是( )。 A) 空格不是一个字符常量 B) 字符常量能包含大于一个的字符 C) 单引号中的大写字母和小写字母代表的是相同的字符常量 D) 所有的字符常量都可以作为整型量来处理
27. 若函数调用时,参数为基本数据类型的变量,下列叙述中正确的是( )。
A)实参与其对应的形参共占存储单元 B)只有当实参与其对应的形参同名时才共占存储单元 C)实参与其对应的形参分别占用不同的存储单元 D)实参将数据传递给形参后,立即释放原先占用的存储单元
28. 下列叙述中,错误的是( )。 A) 在同一 C 程序文件中,不同函数中可以使用名字相同的变量 B) 在 main()函数体内定义的变量是全局变量 C) 形参是局部变量,函数调用完成即失去意义 D) 若同一文件中全局和局部变量同名,则全局变量在局部变量作用范围内不起作用
29. 有定义语句:char s[10];,若要从终端给 s 输入 5 个字符,错误的输入语句是 A) gets(&s[0]); B) scanf("%s",s+1); C) gets(s); D) scanf("%s",s[1]);
30. 有以下函数定义: void fun(int n, double x) …… 若以下选项中的变量都已正确定义并赋值,则对函数 fun 的正确调用语句是( )。 A) fun(int y,double m); B) k=fun(10,12.5); C) fun(x,n); D) void fun(n,x);
31. 表达式 0x13^0x17 的值是 A) 0x04 B) 0x13 C) 0xE8 D) 0x17
32. 下列合法的字符型常量是( ), A) '\x13' B) '\081' C) '65' D) "\n\
33. 以下程序的输出结果是 #include int a[3][3]=1,2,3,4,5,6,7,8,9,,*p; main( ) p=(int *)malloc(sized(int)); f(p,a) ; printf("%d\n",*p); free(p); f(int *s,int p[ ][3]) *s=p[1][1]; A)1 B)4 C)7 D)5
34. 下述程序向文件输出的结果是 ______。 #include<stdio.h> void main()
FILE*fp=fopen("TEST","wb"); fprintf(fp,"%%5.0f%c%d",58,76273.0'-',2278); fclose(fp);
A) 58 76273-2278 B) 5876273.000000-2278 C) 5876273-2278 D) 因文件为二进制文件而不可读
35. 有以下程序: #include <stdio.h> main( )
char P[] = 'a','b','c' ,q[]: "abc"; printf( "% d % d \ n", sizeof(p), sizeof(q) );
程序运行后的输出结果是( )。
A) 44
B) 33
C) 34
D) 43
36. 下列语句段中,正确的是( )。
A) struct int x; float y; int a[2]; unsigned b[3]; char name[10]; ;
B) struct stu unsigned a[3]; unsigned b[4]; x; int*p=&x.a;
C) struct stu int a; float x[4];
y=1,1.0; float data=y.x;
D) struct nd int a,b; unsigned c[2]=5; ;
37. 下列程序的输出结果是( )。 #include <stdio.h> main() struct st int y,x,z; ; union long i; int j; char k; un; printf("%d,%d\n",sizeof(struct st),sizeof(un));
A) 6, 2
B) 6, 4
C) 8, 4
D) 8, 6
38. 有以下程序 #include main( ) FILE *fp;int i=20,j=30,k,n; fp=fopen("d1.dat","w"); fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j); fclose(fp); fp=fopen("d1.dat","r"); fscanf(fp,"%d%d",&k,&n);printf("%d%d\n",k,n); fclose(fp); 程序运行后的输出结果是 A)20 30 B)20 50 C)30 50 D)30 20
39. 设有定义语句 int (*f)(int);,则以下叙述正确的是 A) f 是基类型为 int 的指针变量 B) f 是指向函数的指针变量,该函数具有一个 int 类型的形参 C) f 是指向 int 类型一维数组的指针变量 D) f 是函数名,该函数的返回值是基类型为 int 类型的地址
40. 在“文件包含”预处理语句的使用形式中,当#include 后面的文件名用””(双撇号)括起时, 寻找被包含文件的方式是( )。
A.直接按系统设定的标准方式搜索目录 B.先在源程序所在的目录搜索,如没找到,再按系统没定的标准方式搜索 C.仅仅搜索源程序所在目录
D.仅仅搜索当前目录
二、填空题
41. 在关系模型中,二维表的行称为______。
42. 类是一个支持集成的抽象数据类型,而对象是类的
。
43. 在一个容量为 32 的循环队列中,若头指针 front=3,尾指针 rear=2,则该循环队列中共 有个元素。
44. 一棵二叉树第 6 层(根结点为第一层)的结点最多为______个。
45. 在二维表中,元组的______不能再分成更小的数据项。
46. 与二维表中的“行”的概念最接近的概念是______。
47. 以下程序运行后的输出结果是______。
main() int a,b,c; a=10;b=20;c=(a/b<1)&&(a%b<1); printf("%d %d %d\n",a,b,c);
48. 以下程序运行后的输出结果是______。 main()
int x,a=1,b=2,c=3,d=4; x=(a<B)?A:B; X=(A<C)?X:C; X=(D>x)?x:d; printf("%d\n",x);
49. 若 int x=1,y=2;则计算表达式 y+=y-=x*=y 后的 y 值是______。
50. 以下程序运行后的输出结果是
。
#include <stdio, h>
main( )
int a=3,b=4,c=5,t=99; if(b<a && a<c) t=a;a=c;c=t;
if(a<e && b<c) t=b;b=a;a=t;
printf( "%d %d %d \\n" ,a,b,e);
51. 以下程序运行后的输出结果是______。
main() int x,a=1,b=2,c=3,d=4;
x=(a<b)? a:b;x=(x<c)? x:c;x=(d>x)? x:d; pfintf("%d\n",x);
52. 以下程序的输出结果是______。 #include<stdio.h> fun() static int a=0; a+=3;printf("%d",a);
main() int cc; for(cc=1;cc<5;cc++)fun(); printf("\n");
53. 设有定义: struct person int ID; char name[12]; P; 请将 scanf("%d", ______);语句补充完整,使其能够为结构体变量 P 的成员 ID 正确读入
数据。
54. 下列程序用来判断指定文件是否能正常打开,请填空。 #include<stdio.h> main() FILE*fp;
if(((fp=fopen("test.txt","r")==______)) prinff("文件打开成功!\n");
else printf("未能打开文件!\n");
55. 下面程序运行后的输出结果是______。 #include<stdio.h> main() int a[]=1,2,3,4,5,6,*k[3],i=1; while(i<4) k[i-1]=&a[2*i-1]; printf("%d",*k[i-1]); i++;