二级C语言笔试-295 (总分110,考试时间90分钟)
一、选择题
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的
1. 下列叙述中正确的是______。
A. C程序中注释部分可以出现在程序中任何合适的地方 B. 花括号“”和“”只能作为函数体的定界符
C. 构成C程序的基本单位是函数,所有函数名都可以由用户命名 D. 分号是C语句之间的分隔符,不是语句的—部分 2. 以下程序的输出结果是______。 main()
int i,a[10];
for(i=9;i>=0;i--)a[i]=1O-i;
printf(\"%d%d%d\;
A. 258 B. 741 C. 852 D. 369
3. 以下程序的输出结果是______。 main()
int a[4][4]=1,3,5,2,4,6,3,5,7
printf(\"%d%d%d%d\\n\
A. 0650 B. 1470 C. 5430 D. 输出值不定 4. 以下程序的输出结果______。 main()
char st[20]=\"he11\\O\\\\\\";
printf(\"%d%d\\n\
A. 99 B. 520 C. 1320 D. 2020
5. 在数据流图(DFD) 中,带有名字的箭头表示______。
A. 控制程序的执行顺序 B. 模块之间的调用关系 C. 数据的流向 D. 程序的组成成分
6. 以下有4组用户标识符,其中合法的—组是______。
A. FOR -sub Case B. 4d DO Size C. f2_G3 IF abc D. WORD void define
7. 以下各选项企图说明—种新的类型名,其中正确的是______。
A. typedef vi int; B. typedef V2=int; C. typedef int v3; D. lypedef v4:int
8. 已知二叉树BT的后后序遍历序列是dabec,中序遍历序列是debac,它的前序遍序列是______。
A. cedba B. acbed C. decab D. deabc
9. 以下程序的输出结果是______。 #include<stdio.h> main()
int a=200; #define a 100 printf(\"%d\ A. ;
&nbs 10. 以下程序输出正确的是______。 amovep(int *pint(*
A. [3]int n)   11. 在说明语句int*f()中,标识符f代表的是______。
A. —个用于指向整型数据的指针变量 B. —个用于指向一维数组的行指针 C. —个用于指向函数的指针变量 D. 一个返回值为指针型的函数名 12. 下面的程序执行后,文件test.t中内容是______。 #inc1ude<stdio.h>
void fun(char*fname,char*st) FILE*myf;int i;
myf=fopen(fname,\"w\")
for(i=0;i<strlen(st);i++)fputc(st[i]myf); fdose(myf);
main()
fun(\"test.t\"\"new word\");fun(\"test.t,\"hello,\");
A. hello, B. new wor1dhello C. new world D. hello,rld
13. 下面程序的输出结果为______。 #include<string.h> main()
charP[17]=\"abc\"=\"ABC\".STR[50]=\"xyz\"; strcpy(str,strcat(p1,p2)); printf(%s,str);
A. xyzabcABC B. abcABC C. xyzabc D. xyzABC 14. 以下程序的结果是______。 int a,b; void fun()
a=100;b=200; main()
int a=5,b=7; fun();
printf(\"%d%d\\n\
A. 100200 B. 57 C. 200100 D. 75
15. 下列不属于软件调试技术的是______。
A. 强行排错法 B. 集成测试法 C. 回溯法 D. 原因排除法 16. 若有以下说明和语句: struct stint n;char*ch;
struct st a[3]=5,\"abc\"7,\"def\ 则值为6的表达式是______。
A. p++->n B. p->n++ C. (*p).n++ D. ++P>n
17. 整型变量X和Y的值相等,且为非0值,则以下选项中结果为0的表达式是______。
A. X||Y B. X|Y C. X&Y D. X^Y
18. 执行以下的程序段后,m的值是______。 int a[2][3]=1,2,3,4,5,6; int m,*p; P=&a[0][0]; m=p[4];
A. 4 B. 5 C. 3 D. 不确定
19. 栈和队列的共同点是______。
A. 都是先进后出 B. 都是先进先出 C. 只允许在端点处插入和删除元素 D. 没有共同点 20. 以下合法的赋值语句是______。
A. X=Y=100 B. D--; C. X+Y; D. C=int(A+
21. 在下列几种排序方法中,要求内存量最大的是______。
A. 插入排序 B. 选择排序 C. 快速排序 D. 归并排序
22. 设x为int型变量,执行以下语句,x=10;x+=x-=x-x;x的值为______。
A. 10 B. 20 C. 30 D. 40
23. 以下函数值的类型是______。 fun(float x) float y; y=3*x-4 return y;
A. int B. 不确定 C. void D. float
24. 下面的关键字中,不能够从循环体中跳到循环体外的是______。
A. goto B. break C. return D. continue
25. 下列叙述中,不属于软件需求规格说明书的作用的是______。
A. 便于用户、开发人员进行理解和交流
B. 反映出用户问题的结构,可以作为软件开发工作的基础和依据 C. 作为确认测试和验收的依据 D. 便于开发人员进行需求分析
26. 在计算机中,算法是指______。
A. 查询方法 B. 加工方法
C. 解题方而完整的描述 D. 排序方法
27. 视图设计—般有3种设计次序,下列不属于视图设计的是______。
A. 自顶向下 B. 由外向内 C. 由内向外 D. 自底向上
28. 以下程序的输出结果是______。 #define M(x,y,z)x*y+z main()
int a=1,b=2,c=3;
printf(\"%d\\n\ A. );
&nbs 29. 以下程序的输出结果是______。 main() int a=3;
printf(\"%d\\n\ A. )
&nb 30. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是______。
A. 地址传递 B. 单向值传递
C. 由实参传绐形,再由形参传回实参 D. 传递方式由用户指定 31. 设int型占2个字节,则unsigned int所能表示的数据范围是______。
A. 0~65535 B. -32769~32767 C. 1~65536 D. 0~32767
32. 以下数组定义中不正确的是______。
A. inta[2][3]; B. int b[][3]=0,1,2 C. int c[100][100]=0;
D. int d[3][]=1,2,1,2,3,1,2,3,4;
33. 以下选项中,非法的字符常量是______。
A. 't\\' B. '\\17' C. \"\\n\" D. '\\xaa'
34. 在设计程序时,应采纳的原则之—是______。
A. 程序结构应有助于读者理解 B. 不goto语句的使用 C. 减少或者取消注解行 D. 程序越短越好
35. 若有说明int i,j=2,*p=&i;,则能完成i=j赋值功能的语句是______。
A. i=*p B. *P=*&j C. i=&j D. i=**p;
36. 假定int类型变量占用两个字节,若有定义:int x[10]0,2,4;,则数组x在内存中所占字节数是______。
A. 3 B. 6 C. 10 D. 20
37. 以下程序的输出结果是______。 structHAR
int x,y;structHAR*p;; main()
h[0].x=1;h[0].y=2; h[1].x=3;h[1].y=4; h[0].p=&h[1].p=h;
printf(\"%d%d\\n\>y));
A. 12 B. 23 C. 14 D. 32
38. 以下程序运行后的输出结果是______。 int d=1; fun(int p)
static int d=5;d+=p
printf(\"%d,d\");retum d;
main()
int a=3;printf(\"%d\\n\
A. 699 B. 9 C. 61515 D. 6615 39. SQL语言又称为______。
A. 结构化定义语言 B. 结构化控制语言 C. 结构化查询语言 D. 结构化操纵语言
40. 设a.b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>B)&&(n=c>D)运算后,n的值为______。
A. 0 B. 1 C. 2 D. 3
二、填空题
1. 实现算法所需的存储单元多少和算法的工作量大小分别称为为算法的 【1】 。
2. 数据结构包括数据的逻辑结构、数据的 【2】 以及对数据的操作运算。
3. —个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的 【3】 。
4. 面向对象的模型中,最基本的概念是对象和 【4】 。
5. 软件维护活动包括以下几类:改正性维护、适应性维护、 【5】 维护和预防性维护。
6. 设Y是int型变量,请写出判断Y为奇数的关系表达式 【6】 。
7. 以下程序的输出是 【7】 。 main()
char str1[]=How do you do\",*p=strl; strcpy(str1+strlen(str1)\\2\"es she\"); pfinff(\"%s\\n\
8. 以下程序输出的最后个值是 【8】 int ff(int n) static int f=1; f=f*n return f;
main() int i;
for(i=1;i<=5:i++) printf(\"%d、n\
9. 下列程序的输出结果是 【9】 。 main()
int a[]=2,4,6,*prt=&a[0],x=8,y,z; for(y=0;y<3;y++)
z=(*(ptr+y<x)?*(ptr+y):x; printf(\"%d\\n\
10. 若有定义语句char s[100],d[100];int j=0,i=0;且s中已赋字符串,请填空以实现拷贝。 (注:不使用逗号表达式)
whi1e()s[i])d[j]= 【10】 :j++; d[j]=0;
11. 若有如下结构体说明:
struct STRU int a,b;charc:double d; struct STRU*p1,*p2;
请填空,以完成对t数组的定义,t数组的每个元素为该结构体类型。 【11】 t[20]
12. 下面的程序可对指定字符串中的字符串进行从大到小排序,请将程序填完整。 (注:程序采用了冒泡排序法) #include<stdio.h> #include<string.h> main()
char*str=\"ABCDabcd\ int n,i;
n=strlen(str); while(n-->1) for(i=0;i<n;i++) if(str[i]<str[i+l]) temp= 【12】 ; str[i]=str[i+l]; 【13】 =temp;
printf( 【14】 );
13. 以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。 FILE*myf;longfl;
myf= 【15】 (\"test.t\
fseek(myf,(),SEEK_END) fl+ftell(myf);
fclose(myf);
printf(\"%ld\\n\