一、选择题
1. 软件是指 A) 程序 B) 程序和文档 C) 算法加数据结构 D) 程序、数据与相关文档的完整集合
2. 下面不属于软件设计原则的是 A) 抽象 B) 模块化 C) 白底向上 D) 信息隐蔽
3. 树是结点的集合,它的根结点的数目是( )。 A) 有且只有 1 个 B) 1 或多于 1 C) 0 或 1 D) 至少有 2 个
4. 下列叙述中正确的是______。 A) 一个算法的空间复杂度大,则其时间复杂度也必定大 B) 一个算法的空间复杂度大,则其时间复杂度必定小 C) 一个算法的时间复杂度大,则其空间复杂度必定小 D) 上述三种说法都不对
5. 对长度为 n 的线性表进行顺序查找,在最坏的情况下需要比较的次数为( )。 A) 125 B) n/2 C) n D) n+1
6. 对如下二叉树 进行后序遍历的结果为( )。 A.ABCDEF B.DBEAFC C.ABDECF D.DEBFCA
7. 下列叙述中正确的是______。 A) 程序的执行效率与数据的存储结构密切相关 B) 程序的执行效率只取决于程序的控制结构 C) 程序的执行效率只取决于所处理的数据量 D) 以上三种说法都不对
8. 软件详细设计产生的图如图所示,该图是 A) N-S 图 B) PAD 图 C) 程序流程图 D) E-R 图
9. 在 Windows 环境下,若资源管理器左窗口中的某文件夹左边标有“+”标记,则表示______。 A) 该文件夹为空 B) 该文件夹中含有子文件夹 C) 该文件夹中只包含有可执行文件 D) 该文件夹中包含系统文件
10. 为了提高软件模块的独立性,模块之间最好是( )。 A) 控制耦合 B) 公共耦合 C) 内容耦合 D) 数据耦合
11. 结构化程序有 3 种基本结构组成,3 种基本结构组成的算法______。 A) 可以完成任何复杂的任务 B) 只能完成部分复杂的任务 C) 只能完成符合结构化的任务 D) 只能完成一些简单的任务
12. 以下选项中,能用作数据常量的是______。 A) 0115 B) 0118 C) 1.5e1.5 D) 115L
13. 以下选项中,不能作为合法常量的是 A) 1.234e04 B) 1.234e0.4 C) 1.234e+4 D) 1.234e0
14. 有以下程序: main() int i=10,j=1; printf("%d,%d\n",i--,++j);
执行后的输出结果是 ______。 A) 9,2 B) l0,2 C) 9,1 D) 10,1
15. 下列表达式中,可以正确表示或的关系是( )。 A) (x>=1)10(x<=0) B) x>1‖x=0 C) x>=1 ORx<=0 D) X>=1&&x<=0
16. 若有语句:char*line[5];,以下叙述中正确的是 A) 定义 line 是一个数组,每个数组元素是一个基类型为 char 的指针变量 B) 定义 line 是一个指针变量,该变量可以指向一个长度为 5 的字符型数组 C) 定义 line 是一个指针数组,语句中的。号称为间址运算符 D) 定义 line 是一个指向字符型函数的指针
17. 若变量都已正确说明,则以下程序段输出结果为( )。 #include<stdio.h> main() char a='a'; int b=2; printf(a>b?”***a=%d":"###b=%d",a,b);
A) ***a=3 B) ###b=3 C) ***a=3##b=5 D) 全部错误
18. 若变量 a,i 已正确定义,且 i 已正确赋值,下面合法的语句是( )。 A) a==1 B) ++i; C) a=a++=5; D) a=int(i);
19. 已知字母 A 的 ASCII 代码值为 65,若变量 kk 为 char 型,以下不能正确判断出比中的 值为大写字母的表达式是
A) kk>='A'&&kk<='Z' B) !(kk>='A'||kk<='Z') C) (kk+32)>='a'&&(kk+32)<='z' D) isalpha(kk)&&(kk<91)
20. 在下列选项中,没有构成死循环的是 A) int i=100; B) for(::); while(1) i=i%100+1: if(i>100)break;
C) int k=10000; dok++;while(k>10000); D) int s=36: while(s)--s;
21. 以下程序的输出结果是( )。 main() int a[3][3]=1,2),3,4),5,6),i,j,s=0; for(i=1;i<3;i++) for(j=0;j<=i;j++)s+=a[i][j]; printf("%d\n",s);
A.18 B.19 C.20 D.21
22. 已定义下列函数: int fun(int *p) return *p;) fun 函数返回值是( )。 A) 不确定的值 B) 一个整数 C) 形参 p 中存放的值 D) 形参 p 的地址值
23. 下面程序的运行结果是 #include<stdio.h> main() int a=28,b;
char s[10],*p; p=s; dob=a%16; if(b<10) *p=b+48; else*p=b+55; p++;a=a/5;while(a>0); *p='\0';puts(s); A) 10 B) C2 C) C51 D) \0
24. 以下程序段完全正确的是 A) int *P; scanf("%d", &p); B) int *P; scanf("%d", p); C) int k, *P=&k; scanf("%d", p); D) int k, *P; *P=&k; scanf("%d", p);
25. 有以下程序(说明:字母 A 的 ASCII 码值是 65) #include<stdio.h> void fun(char *s) while(*s) if(*s%2) printf ("%c", *s); s++;
main() char a[]="BYTE"; fun(a); printf("\n");
程序运行后的输出结果是______。 A) BY B) BT C) YT D) YE
26. 以理程序的输出结果______。 main() char st[20]="he11\O\t\\"; printf("%d%d\n",str1en(st),sizeof(st));
A) 99 B) 520 C) 1320 D) 2020
27. 下列叙述中正确的是 A) 定义函数时,形参的类型说明可以放在函数体内 B) return 后边的值不能为表达式 C) 如果函数值的类型与返回值类型不一致,以函数值类型为准 D) 如果形参与实参类型不一致,以实参类型为准
28. 有以下程序: main() int a[4][4]=1,4,3,2,,8,6,5,7,,3,7,2,5,,4,8,6,1,),i,j,k,t; for(i=0;i<4;i++) for(j=0;j<3;j++) for(k=j+1;k<4;k++) if(a[j][i]>a[k][i])t=a[j][i];a[j][i]=a[k][i];a[k][i]=t;/*按列排序*/ for(i=0;i<4;i++)printf("%d,",a[i][i]);
程序运行后的输出结果是______。 A) 1,6,5,7, B) 8,7,3,1, C) 4,7,5,2, D) 1,6,2,1,
29. 以下程序运行后的输出结果是 #define F(X,Y)(X) * (Y) main( ) int a=3,b=4; printf("%d\n",F(a++,b++)); A) 12 B) 15 C) 16 D) 20
30. 有以下程序 #include void f(char p[][10],int n)
char t[10];int i,j; for(i=0;i<N-1;i++) for(j=i+1;j<N;j++) if(strcmp(p[i],p[j])>0)
strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);
main() char p[5][10]="abc", "aabdfg", "abbd", "dedbe", "cd";
f(p,5); printf("%d\n", strlen(p[0])); 程序运行后的输出结果是______。 (A) 2 (B) 4 (C) 6 (D) 3
31. 以下程序的输出结果是______。
struct HAR int x,y;struct HAR*p;h[2]; main()
h[0].x=1;h[0].y=2; h[1].x=3;h[1].y=4; h[0].p=&h[1];h[1].p->y); printf("%d%d\n",(h[0].p)->x,(h[1].p)->y);
A) 12 B) 23 C) 14 D) 32
32. 分析下列程序: #include<stdio.h> main() int*p1,*p2,*p; int a=6,b=9; p1=&a;p2=&b; if(a<b)p=p1;p1=p2;p2=p; printf("%d,%d",*p1,*p2); printf("%d,%d",a,b);
程序的输出结果为( )。 A) 9,6 6,9 B) 6,9 9,6 C) 6,9 6,9 D) 9,6 9,6
33. 判断字符串 s1 是否大于字符串 s2,应该使用( )。 A) if(strcmp(s1,s2)<0) B) if(s1>s2) C)if(strcmp(s2,s1)<0) D) if(strcmp(s1,s2))
34. 若要求定义具有 10 个 int 型元素的一维数组 a,则以下定义语句中错误的是 A) #define N 10 int a[N]; B) #define n 5 int a[2*n]; C) int a[5+5]; D) int n=10,a[n];
35. 若有说明 int a[][3]=1,2,3,4,5,6,7,8,9,则 a 数组第一维的大小是( )。 A) 2 B) 3 C) 4 D) 无确定值
36. 有下列程序: fun(int x) int p; if(x==0‖x==1) return(3) ; p=x-fun(x-2) ; return p;
main() printf("%d\n",fun(7) ); 执行后的输出结果是( )。 A) 7 B) 3 C) 2 D) 0
37. 有以下程序: #include<string.h> main() char p[20]='a','d','c','d',q[]="abc",r[]="abcde" strcat(p,r);strcpy(p+strlen(q),q); printf("%d\n",sizeof(p)); 程序运行后的输出结果是______。 A) 9 B) 6 C) 11 D) 7
38. 下列的程序用来输出两个字符串前 7 个字符中对应相等的字符及其位置号,程序空白处 应该填写的是( )。
#include<stdio.h> main()
char s1[]="chinese",s2[]="japnese";
int i; for(i=0;sl1[i]!='\0'&&s2[i]!='\0';i++) if(s1[i]==s2[i]&&i<7) ______,
A) putchar(s2[i]);putchar(i) B) puts(s1[i],i) C) printf("%c%d\n",s2[i],i) D) printf("%c",s1[i]);printf("%d\n",i)
39. 下列程序的输出结果是( )。 point(char*pt); main() char b[4]= 'a','c','s','f ,*pt=b; pt=point(pt); printf("%c\n",*pt);
point(char*p) p+=3; return p;
A) s
B) c
C) f
D) a
40. 若运行时给变量 x 赋值 12,则以下程序的运行结果是( )。 #include<stdio.h> main() int x,y; scanf("%d",&x); y=x>12? x+10:x-12; printf("%d\n",y);
A) 0 B) 22 C) 12 D) 10
二、填空题 41. 软件定义时期主要包括______和需求分析两个阶段。
42. 在面向对象方法中,类之间共享属性和操作的机制称为
。
43. 软件工程三要素包括方法、工具和过程,其中, 和管理。
支持软件开发的各个环节的控制
44. 在关系模型中,把数据看成是二维表,每一个二维表称为一个______。
45. Jackson 方法是一种面向______的结构化方法。
46. 表达式(int)((double)(5/21+2.5)的值是______。
47. 以下程序段的定义语句中,x[1]的初值是______,程序运行后输出的内容是______。 #include<stdio.h> main()
int x[]=(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,*p[4],i; for(i=0;i<4;i++)
p[i]=&x[2*i+1]; printf("%d",p[i][0]);
printf("\n");
48. 下列程序的功能是对输入的一行字符中的数字字符的字面值累加,输出此累加和,请填 空。
#include<stdio.h> #include<ctype.h> main()
char c; int a,s=0; while(______) if(isdigit(C) ) a=c-'0';s+=a; printf("s=%d",s);
49. 有以下程序,程序执行后,输出结果是 #include<stdio.h> void fun(int*A) a[0]=a[1]; main() int a[10]=10,9,8,7,6,5,4,3,2,1,,i; for(i=2;i>1=0;i-) fun(&a[i]); for(i=0;i<10;i++) printf("%d,a[i]); printf("\\n");
50. 以下程序的输出结果是
。
float fun(int x,int y)
return(x+y);
main()
int a=2,b=5,c=8; printf("%3.0f\\n",fun((int)fun(a+c,b),a-c));
51. 以下程序运行后的输出结果是______。 #include char*ss(char*s) char*p,t; P=s+1;t=*s; while(*p) *(p-1)=*p;p++; *(p-1)=t; return s;
main() char*p,str[10]="abcdefgh"; p=ss(str); printf("%s\n",p);
52. 以下程序运行后的输出结果是
。
# include<string.h>
void fun(char *s,int p,int k)
int i; for(i=p;i<k-1;i++)s[i]=s[i+2];
main() char s[]="abcdefg"; fun(s,3,strlen(s));puts(s);
53. 设有下列程序: #include<stdio.h> #include<string.h> main() int i; chars[10],t[10]; gets(t); for(i=0;i<2;i++) gets(s); if(strcmp(t,s)<0)strcpy(t,s);
printf("%s\n",t);
程序运行后,从键盘上输入(<CR>代表回车符):CDEF<CR>BADEF<CR>QTHRG <CR>,则程序的输出结果是______。
54. 设有下列程序: #include<stdio.h> #include<string.h> main()
int i; char s[10],t[10]; gets(t); for(i=0;i<2;i++)
gets(s); if(strcmp(t,s)<0)strcpy(t,s);
printf("%s\n",t);
程序运行后,从键盘上输入(<CR>代表回车符):DEF<CR>BADEF<CR>QTHRG< CR>,则程 序的输出结果是______。
55. 常见的软件开发方法有结构化方法和面向对象方法。对某应用系统经过需求分析建立数 据流图(DFD),则应采用______方法。