一、选择题
1. 在 C 语言程序中,下列说法正确的是( )。 A) 函数的定义和函数的调用均可以嵌套 B) 函数的定义不可以嵌套,但函数的调用可以嵌套 C) 函数的定义可以嵌套,但函数的调用不可以嵌套 D) 函数的定义和函数的调用均不可以嵌套
2. 以下不能对二维数组 a 进行正确初始化的语句是 A) int a[2][3]=0; B) int a[][3]=1,2,0; C) int a[2)[3]=1,2,3,4,5,6; D) int a[][3]=1,2,3,4,5,6;
3. 设 x、y 和 z 是 int 型变量,且 x=4,y=6,z=8,则下列表达式中值为 0 的是( )。 A)x&&y B)x<=y C)x‖y+z&&y-z D)!((x<y)&&!z‖1)
4. 下列叙述中正确的是( )。 A) 一个算法的空间复杂度大,则其时间复杂度必定大 B) 一个算法的空间复杂度大,则其时间复杂度必定小 C) 一个算法的时间复杂度大,则其空间复杂度必定小 D) 上述三种说法都不对
5. 下列数据结构中,能用二分法进行查找的是______。 A) 顺序存储的有序线性表 B) 线性链表 C) 二又链表 D) 有序线性链表
6. 下列程序的输出结果是( )。 main () int a=4,b=5,c;
if(a<b) c=a*b; printf("%d,%d,%d\n",b,a,c);
else c=b/a;printf("%d,%d,%d\n",b,a, c);
A) 4,5,12 B) 20 C) 5,4,20 D) 12
7. 若已定义:int a[]=0,1,2,3,4,5,6,7,8,9,*p=a,i;,其中 0≤i≤9,则对 a 数组 元素不正确的引用是
A) a[p-a] B) *(&a[i]) C) p[i] D) a[10]
8. 有以下程序 main() int x,y,z; x=y=1; z=x++,y++,++y; printf("%d,%d,%d\n",x,y,z);
程序运行后的输出结果是______。 A) 2,3,3 B) 2,3,2 C) 2,3,1 D) 2,2,1
9. 设有以下定义和语句: int a[3] [2]=1,2,3,4,5,6, * p[3]; p[0] =a[1]; 则.(P[0]+1)所代表的数组元素是( )。 A) a[0][1] B) a[1][0] C) s[1][1] D) a[1][2]
10. 下列数组定义中错误的是( )。 A) int x[][3]=0; B) int x[2][3]=1,2,3,4,5,6; C) int x[][3]=1,2,3,4,5,6; D) int x[2][3]=1,2,3,4,5,6;
11. 设 X 为 int 型变量,执行以下语句,x=10;x+=x-=x-x;x 的值为______。 A) 10 B) 20 C) 30 D) 40
12. 数据库系统的核心是______。 A) 数据模型 B) 数据库管理系统 C) 数据库 D) 数据库管理员
13. 下面程序的运行结果是( )。 for(i=3;i<7;i++)printf((i%2)?("**%d\a"):("##%d\n"),i); A) **3 ##4 **5 **6 B) ##3 **4 ##5 **6 C) ##3 **4 ##5 ##6 D) **3 ##4 **5 ##6
14. 下列叙述中正确的是( )。 A) 软件交付使用后还需要进行维护 B) 软件一旦交付使用就不需要再进行维护 C) 软件交付使用后其生命周期就结束 D) 软件维护是指修复程序中被破坏的指令
15. 有以下程序: # include <stdio.h> main() int a=-2,b=0; while(a++ && ++b); printf("%d, %d\n", a, b);
程序运行后的输出结果是( )。 A.1,3 B.0,2 C.0,3 D.1,2
16. 有以下程序 main() int x=3,y=2,z=1; printf("%d\n",x/y&~z);
程序运行后的输出结果是
A) 3 B) 2 C) 1 D) 0
17. 当输入为"Fool&Swalow"时,下面程序的执行结果是( )。 #include<stdio.h> main() char c; while(c!='?') c=getchar(); putchar(C) ;
A) Swalow B) Fool C) Fool? D) ?Swalow
18. 请选出以下语句的输出结果 ( ) printf("%d\\n,strlen("\\t\\"065\\xff\\n"));
A.5 B.14 C.8 D.输出项不合法,无正常输出
19. 软件的可靠性主要表现在______。 A) 能够安装多次 B) 能够在不同类型的计算机系统上安装和使用 C) 软件的正确性和健壮性 D) 前面都正确
20. 有程序: void fun(int a,int b,int c) a=456;b=567;c=678; main( ) int x=10,y=20,z=30; fun(x,y,Z); printf("%d,%d,%d\n",z,y,x);
输出结果是 ( ) A.30,20,10 B.10,20,30 C.456,567,678 D.678,567,456
21. 下面程序的输出结果是______。 #include<stdio.h> main() char *p[]="BOOL","OPK","H","SP"; int i; for(i=3;i>=0;i-,i-) printf("%c",*p[i]); printf("\n");
A) SO B) SP C) SPOPK D) SHOB
22. 下面的程序执行后,文件 test.t 中内容是______。 #include<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); fclose(myf);
main() fun("test.t","new world");fun("test.t","hello,"); A) hello, B) new worldhello C) new world D) hello,rld
23. 串的长度是( )。 A) 串中不同字符的个数 B) 串中不同字母的个数 C) 串中所含字符的个数且字符个数大于 0 D) 串中所含字符的个数
24. 下面程序的输 m 结果是( )。 typedef union double x[3]; int y[4]; char z[10]; M; M t; main() Printf("%d\n",sizeof(t)); A) 32 B) 26 C) 24 D) 4
25. 有以下程序 main()
int a,b,d=25; a=d/10%9;b=a&&(-1) printf("%d,%d\n",a,b);
程序运行后的输出结果是______。 A) 6,1 B) 2,1 C) 6,0 D) 2,0
26. 算法分析的目的是 A) 找出数据结构的合理性 B) 找出算法中输入和输出之间的关系 C) 分析算法的易懂性和可靠性 D) 分析算法的效率以求改进
27. 标准库函数 fgets(s,n,file)的功能是( )。 A) 从文件 file 中读取长度为 n 的字符串存入字符数组 s 中 B) 从文件 file 中读取长度不超过 n-1 个字符的字符串放到字符数组 s 中 C) 从文件 file 中读取 n 个字符串存入字符数组 s 中 D) 从文件 file 中读取长度为 n-1 个字符的字符串存入字符数组 s 中
28. 为了使模块尽可能独立,要求 ______。 A) 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强 B) 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱 C) 模块的内聚程度要尽量低,且各模块问的耦合程度要尽量弱 D) 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强
29. 假定 a 和 b 为 int 型变量,则执行以下语句后,b 的值为______。 a=1;b=10; do b-=a; a++; while (b--<0); A.9 B.-2 C.-1 D.8
30. 进行二分法查找,则线形表______。 A) 必须以顺序方式存储 B) 必须以链接方式存储,且数据元素已按值排好序 C) 必须以链接方式存储 D) 必须以顺序方式存储,且数据元素已按值排好序
31. 若有定义:float x=1.5;int a=1,b=3,c=2;,则正确的 switch 语句是 A) switch(x)
case 1.0: printf("*\n"); case 2.0: printf("**\n"); B) switch (int)x); case1: printf("*\n"); case 2: printf("**\n"); C) switch(a+b)
case 1: printf("*\n"); case 2+1: printf("**\n"); D) switch(a+b) case 1: printf("*\n"); case c: printf("**\n");
32. 函数调用:strcat(strcpy(str1,str2,),str3)的功能是 ( ) A) 将串 str1 复制到串 str2 中后再连接到串 str3 之后
B) 将串 str1 连接到串 str2 之后再复制到串 str3 之后
C) 将串 str2 连接到串 str1 之后再将串 str3 连接到串 str1 之后
D) 将串 str2 连接到串 str1 之后再将串 str1 连接到串 str3 之后
33. 下面程序的输出结果是______。 #include<string.h> main() char*p1="abc",*p2="ABC",s[20]="xyz"; strcpy(s+1,p2); strcat(s+2,p1); printf("%s\n",s);
A) xABCabc B) zABCabc C) yzabcABC D) xyzABCabc
34. 可在 C 程序中用作用户标识符的一组标识符是 A) and _2007 B) Date y-m-d C) Hi Df.Tom D) case
Big1
35. 以下 scanf 函数调用语句中对结构体变量成员的引用不正确的是( )。 struct pupil char name[20];int age; int sex; pup[51],*p;p=pup; A)scanf("%s",pup[0].name); B)scanf("%d¨,&pup[0].age; C)scanf(“%d”,&(psex)) D)scanf("%d",Page);
36. 下列表达式中,可以正确表示 x≤0 或 x≥1 的关系是( )。 A) (x>=1)‖(x<=0) B) x>1‖x=0 C) x>=10Rx<=0 D) x>=1&&x<=0
37. 判断字符串 s1 是否大于字符串 s2,应该使用( )。 A) if(strcmp(s1,s2)<0) B) if(s1>s2) C)if(strcmp(s2,s1)<0) D) if(strcmp(s1,s2))
38. 下列叙述中,不属于设计准则的是( )。 A) 提高模块独立性 B) 使模块的作用域在该模块的控制域中 C) 设计成多入口、多出口模块 D) 设计功能可预测的模块
39. 数据库系统的核心是( )。 A) 数据库 B) 数据库管理系统 C) 模拟模型 D) 软件工程
40. 排序方法中,将整个无序序列分割成若干小的子序列并分别进行插入排序的方法,称为 ______。
A) 希尔排序 B) 冒泡排序 C) 插入排序 D) 选择排序
41. 设有以下说明语句: typedef struct int n; char ch[8]; PER;
则下面叙述中正确的是( )。 A) PER 是结构体变量名 B) PER 是结构体类型名 C) typedef struct 是结构体类型 D) struct 是结构体类型名
42. 下列关于 C 语言文件的叙述中正确的是 A) 文件由一系列数据依次排列组成,只能构成二进制文件 B) 文件由结构序列组成,可以构成二进制文件或文本文件 C) 文件由数据序列组成,可以构成二进制文件或文本文件 D) 文件由字符序列组成,其类型只能是文本文件
43. 分析下列程序: #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,66,9 B) 6,9 9,6 C) 6,9 6,9 D) 9,69,6
44. 若已定义 x 和 y 为 double 类型,则表达式 x=1,y=x+5/2 的值是______。 A) 3 B) 4 C) 3.0 D) 3.5
45. 支持子程序调用的数据结构是( )。 A.栈 B.树 C.队列 D.二叉树
46. 以下程序运行后,输出结果是______。 main()
char* d[]="ab","cde";
printf("%x",d[1]);
A) cde B) 字符 C 的 ASCII 码值 C) 字符 c 的地址 D) 出错
47. 以下选项中可用做 C 程序合法实数的是______。 A) .1e0 B) 3.0e0.2 C) E9 D) 9.12E
48. 以下叙述中正确的是( ) A) static 型局部变量,只能在编译时赋予值,程序运行期间不能更改 B) static 型局部变量,可以在程序运行期间更改其值 C) 全局变量说明为 static 存储类,其作用域将被扩大 D) 形参可以使用的存储类说明符与局部变量完全相同
49. 以下程序中 C 的二进制值是( )。 char a=2,b=4,c; c=a^b>>2 A) 00000011 B) 00010100 C) 000111100
D) 000l 1000
50. 有以下程序: #include<stdio.h> main() int c; while((c=getchar())!='\n') switch(c-'3') case 0: case 1:putchar(c+4); case 2:putchar(c+4);break; case 3:putchar(c+3); case 4:putchar(c+3);break;
printf("\n"); 从第一列开始输入数据(<CR>代表…个回车符):3845<CR>,则狴序输出结果为( )。 A) 77889 B) 77868 C) 776810 D) 77886610
二、填空题
51. 以下程序运行后的输出结果是______。 main()
int x=0210; printf("%X\n",x);
52. 以下程序段打开文件后,先利用 fseek 函数将文件位置指针定位在文件末尾,然后调用 ftell 函数返回当前文件位置指针的具体位置,从而确定文件长度。请填空。
FILE *myf; long f1; myf=______("test,t","rb"); fseek(myf,0,SEEK_END) ;f1=ftell(myf); fclose(myf); printf("%1d\n",f1);
53. ______(黑箱或白箱)测试方法完全不考虑程序的内部结构和内部特征。
54. —个关系表的行称为______。
55. 下列程序按下面指定的数据给 X 数组,并按如下形式输出,请填空。 4 37 269 15810 #include<stdio.h> main() int x[4][4],n=0,i,j; for(j=0;j<4;j++) for(i=3;i>=j;______)(n++;x[i][j]=______;) for(i=0;i<4;i++) for(j=0;j<=i;j++)printf("%3d",x[i][j]); printf("\n");
56. 下面程序的运行结果是:_______。 fun(int t[],int n) int i,m;
if(n==1)returnt[0]; else if(n>=2)m=fun(t,n-1);return m;
main() int a[]=11,4,6,3,8,2,3,5,9,2; printf("%d\n",fun(a,10));
57. 有以下程序段: int a[l0]=1,2,3,4,5,6,7,8,9,10,*p=&a[3],b; b=p[5]; b 中的值是______。
58. 一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体 “项目”的联系属于______的联系。
59. 在一个容量为 25 的循环队列中,若头指针 front=16,尾指针 rear=9,则该循环队列中共 有______个元素。
60. 买来一张新盘后,在存入文件前,必须进行______处理。
61. 若有定义 int a=10,b=9,c=8;,接着顺序执行下列语句,变量 b 中的值是______。 c=(a-=(b-5)); c=(a%11)+(b=3);
62. 一个项目具有一个项目主管,一个项目主管叫‘管理多个项目,则实体“主管”与实体“” 的联系属于______。
63. 深度为 5 的满二叉树中,叶子结点的个数为______。
64. 下面 rotate 函数的功能是:将 n 行 n 列的矩阵 A 转置为 A',例如: 1 2 3 4 1 5 9 13 5 6 7 8 2 6 10 14 当 A = 9 10 11 12 则 A'= 3 7 11 15 13 14 15 16 4 8 12 16 请填空。
#define N 4 void rotate(int a[] [NJ )
int i,j,t; for ( i=0; i<N; i++ )
for(j=0; ______;j++)
t=a[i] [j]; ______; a[j] [i]=t;
65. 在宏定义#define PI 3.14159 中,用宏名 PI 代替一个______。
66. 与表达式 a+=b 等价的另一书写形式是______。
67. 下列程序的功能是:求出 ss 所指字符串中指定字符的个数,并返回此值。例如,若输入 字符串 123412132,指定字符 1,则输出 3。请填空。
#include<conio.h> #include<stdio.h> #define M 81 int fun(char *ss,char c)
int i=0; for(;______;ss++) if( *ss==c)i++: return i;
main( ) char a[M],ch; printf("\nPlease enter a string:");gets(a); printf("\nPlease enter a char:");ch=getchar( ); prinff("\nThe number of the char is:%d\n",fun(a,ch));
68. 以下程序中函数 huiwen 的功能是检查一个字符串是否是回文,当字符串是回文时,函 数返回字符串 yes!,否则函数返回字符串 no!,并在主函数中输出,所谓回文即正向与反向 的拼写都一样,例如:adgda。请填空。
#include<string.h> char*huiwen (char*str)
char*p1,*p2;int i,t=0; p1=str;p2=______。
for(i=0;i<strlen(str)/2;i++) if(*p1++!=*p2-)t=1;break; if(______)return("yes"!); else return("no!");
main() char str[50];
printf("Input:");scanf("%s",str); printf("%s\n", ______);
69. 以下程序的运行结果为______。 #define N 5 main()
int a[N]=1,2,3,4,5,i,temp; for (i=0;i<N/2;i++)
temp=a[i]; a[i]=a[N-i-1]; a[N-i-1)=temp;
printf("\n"); for (i=0;i<n;i++) printf("%d",a[i]);
70. x 和 y 都是 double 型变量,x 的初值为 4.0,y 的初值为 2.0,则表达式 pow(y,fabs(x))的值 为______。