1、二级C语言程序设计理论摸底考试试题一、选用题(11)(20)每题1分,别旳每题2分,共70分)(1)算法空间复杂度是指A)算法程序长度 B)算法程序中指令条数 C)算法程序所占存储空间 D)算法执行过程中所需要存储空间(2)栈和队列共同特点是A)都是先进先出 B)都是先进后出 C)只容许在端点处插入和删除元素 D)没有共同点(3)设有下列二叉树:AT X B C PZ Y对此二叉树前序遍历成果为A)ZBTYCPXA B)ATBZXCYP C)ZBTACYXP D)ATBZXCPY(4)构造化程序设计重要强调是A)程序规模 B)程序效率 C)程序设计语言先进性 D)程序易读性(5)下列论述中对旳
2、是A)一种算法空间复杂度大,则其时间复杂度也必然大 B)一种算法空间复杂度大,则其时间复杂度必然小 C)一种算法时间复杂度大,则其空间复杂度必然小 D)上述三种说法都不对(6)下列不属于软件工程3个要素是A)工具 B)过程 C)措施 D)环境(7)软件开发离不开系统环境资源支持,其中必要测试数据属于A)硬件资源 B)通信资源 C)支持软件 D)辅助资源(8)下述有关数据库系统论述中对旳是A)数据库系统减少了数据冗余 B)数据库系统防止了一切冗余 C)数据库系统中数据一致性是指数据类型一致 D)数据系统比文献系统能管理更多数据(9)下列数据模型中,具有坚实理论基本是A)层次模型 B)网状模型 C
3、)关系模型 D)以上3个都是(10)相对于数据库系统,文献系统重要缺陷有数据关联差、数据不一致和A)可重用性差 B)安全性差 C)非持久性 D)冗余性(11)算法中,对需要执行每一步操作,必要给出清晰、严格规定。这属于算法A)合法性 B)可行性 C)确定性 D)有穷性(12)下列有关标识符说法中错误是A)合法标识符是由字母、数字和下划线构成 B)C语言标识符中,大写字母和小写字母被认为是两个不一样字符 C)C语言标识符可以分为三类,即关键字、预定义标识符和顾客标识符 D)顾客标识符与关键字不一样步,程序在执行时将给出出错信息(13)判断char型变量c1与否为大写字母对旳体现式是A)A=c1=
4、A)&(c1=c1)|(Z=c1) D)(c1=A)&(c1=Z(14)有如下程序int add(int a,int b)return (a+b);Main() int k,(*f)( ),a=5,b=10;f=add;则如下函数调用语句错误是A) k=(*f)(a,b);B)k=add(a,b) C)k=*f(a,b);D)k=f(a,b);(15)若变量已正确定义并赋值,如下合法C语言赋值语句是A)x=y= =5;B)x=n%2.5;C)x+n=i;D)x=5=4+1(16)下列程序输出成果是Main() double d=3.2;int x,y;x=1.2;y=(x+3.8)/5.0;p
5、rintf(%dn,d*y);A)3 B)3.2 C)0 D)3.07(17)设有如下程序段int x=0,s=0;while(!x!=0)s+=+x;printf(%d,s);则A)运行程序段后输出0 B)运行程序段后输出1 C)程序段中控制体现式是非法 D)程序段执行无限次(18)如下程序执行后x值是main() int x,y=252,i=386,*m=&y,*z=&i;x=(z= =y);printf(“%d”,x);A)252 B)1 C)0 D)运行时出错,x无定值(19)有如下程序main() float x=2.0,y;if(x10.0)y=1.0/x;else y=1.0;p
6、rintf(%fn,y);该程序输出成果是A)0.000000 B)0.250000 C)0.500000 D)1.000000(20)如下程序输出成果是#includemain() int a=15,b=21,m=0;switch(a%3) case 0:m+;break;case 1:m+;switch(b%2) default:m+;case 0:m+;break;printf(%dn,m);A)1 B)2 C)3 D)4(21)如下程序输出成果是#includemain( ) char ch25=“6937”,”8254”,*p2;int i,j,s=0;for(i=0;i2;i+)p
7、i=chi;for(i=0;i 0;j+=2)s=10*s+pij-0;printf(“%dn”,s);A)69825 B)63825 C)6385 D)693825(22)下面程序运行成果是#includemain( )int a=28,b;char s10,*p;p=s;dob=a%16;if(b0);*p=0;puts(s);A)10 B)C2 C)C51 D)0(23)下列程序执行后输出成果是void func1(int i);void func2(int i);char st =”hello,friend!”;void func1(int i) printf(“%c”,sti);if
8、(i3)i+=2;func2(i);void func2(int i) printf(“%c”,sti);if(i3)i+=2;func1(i);main( ) int i=0;func1(i);printf(“n”);A)hello B)hel C)hle D)hlm(24)如下程序输出成果是#includevoid prt(int *x,int *y,int *z)printf(“%d,%d,%dn”,+*x,+*y,*(z+);main( ) int a=10,b=40,c=20;prt(&a,&b,&c);prt(&a,&b,&c);A)11,42,31 B)11,41,20 C)11
9、,21,40 D)11,41,21 12.22,41 12,42,20 11,21,21 12,42,22(25)下列二维数组初始化语句中,对旳且与语句float a 3=0,3,8,0,9;等价是A)float a2 =0,3,8,0,9;B)float a 3=0,3,8,0,9,0;C)float a 3=0,3,8,0,9,0;D)float a2 =0,3,8,0,9,0;(26)如下程序输出成果是#include#includemain( ) char w 10=“ABCD”,”EFGH”,”IJKL”,”MNOP”,k;for(k=1;k3;k+)printf(“%sn”,&wk
10、k);A)ABCD B)ABC C)EFG D)FGH FGH EFG JK KL KL IJ 0 M(27)下面能对旳进行字符串赋值操作是A)char s5=“ABCDE”;B)char s5=A,b,C,D,E;C)char *s;s=”ABCDE”;D)char *s;scanf(“%s”,s);(28)有如下程序main( ) int i,s=0,t =1,2,3,4,5,6,7,8,9;for(i=0;i9;i+=2)s+=*(t+i);printf(“%dn”,s);程序执行后输出成果是A)45 B)20 C)25 D)36(29)如下程序中调用scanf(函数给变量a输入数值措施
11、是错误,其错误原因是main( ) int *p,*q,a,b;p=&a;printf(“input a:”);scanf(“%d”,*p);A)*p体现是指针变量p地址 B)*p体现是变量a值,而不是变量a地址 C)*p体现是指针变量p地址 D)*p只能用来阐明p是一种指针变量(30)阅读下列程序,则在执行后,程序运行成果为#include#includemain( )char a30=”nice to meet you!”;strcpy(a+strlen(a)/2,”you”);printf(“%sn”,a);A)nice to meet you you B)nice to C)meet
12、you you D)nice to you(31)若有下面程序片段:int a12=0,*p3,*pp,i;for(i=0;i(B)?(A):(B)#define PRINT(Y) printf(“Y=%dt”,Y)main( ) int a=1,b=2,c=3,d=4,t;t=MAX(a+b,c+d);PRINT(t);A)Y=3 B)存在语法错误 C)Y=7 D)Y=0(35)如下程序功能是进行位运算main( ) unsigned char a,b;a=73;b=4&3;printf(“%d%dn”,a,b);程序运行后输出成果是A)4 3 B)7 3 C)7 0 D)4 0(36)请选
13、出如下程序输出成果#includevoid sub(int *,int);main( ) int a =1,2,3,4,i;int x=0;for(i=0;i4;i+)sub(a,x);printf(“%d”,x);printf (“n”);void sub(int *s,int y) static int t=3;y=st;t- -;A)1 2 3 4 B)4 3 2 1 C)0 0 0 0 D)4 4 4 4(37)如下程序输出成果是#includestruct stint x;int *y;*p;int dt4=10,20,30,40;struct st aa4=50,&st0,60,&
14、dt0,60,&dt0,60,&st0,;main( ) p=aa;printf(“%dn”,+(p-x);A)10 B)11 C)51 D)60(38)如下scanf函数调用语句中对构造变量组员引用不对旳是struct pupil char name20;int age;int sex;pup5,*p;p=pup;A)scanf(“%s”,pup0.name);B)scanf(“%d”,&pup0.age);C)scanf(“%dT”,&(p- sex);D)scanf(“%d”,p-age);(39)fwrite函数一般调用形式是A)fwrite(bufer,count,size,fp);
15、B)fwrite(fp,size,count,buffer);C)fwrite(fp,count,size,buffer);D)fwrite(buffer,size,count,fp);(40)函数rewind作用是A)使文献位置指针重新返回文献开始位置 B)将文献位置指针指向文献中规定特定位置 C)使文献位置指针指向文献末尾 D)使文献位置指针自动移至下一种字符位置二、填空题(每空2分,共30分)(1)长度为n次序存储线性表中,当在任何位置上插入一种元素概率都相等时,插入一种元素所需移动元素平均个数为【1】.n/2(2)数据构造分为线性构造和非线性构造,带链队列属于【2】。线性构造(3)软件
16、工程研究内容重要波及:【3】技术和软件工程管理。软件开发技术(4)常用黑箱测试有等价分类法、【4】、因果图法和错误推测法4种。边界值分析法(5)数据库保护分为:安全性控制、【5】、并发性控制和数据恢复。完整性控制(6)如下程序中,函数fun功能是计算x2-2x+6,主函数中将调用fun函数计算:y1=(x+8)2-2(x+8)+6 y2=sin2(x)-2sin(x)+6 请填空#includedouble fun(double x)return(x*x-2*x+6);main( ) double x,y1,y2;printf(“Enter x:”);scanf(“%lf”,&x);y1=fu
17、n(【6】);y2=fun (【7】);printf(“y1=%lf,y2=%lfn”,y1,y2);(7)如下isprime函数功能是判断形参a与否为素数,是素数,函数返回1,否则返回0。请填空。int isprime(int a) int i;for(i=2;ij)printf(“%dn”,s);break;s+=i;(9)如下程序输出成果是【11】。main( ) char *p =“BOOL”,”OPK”,”H”,”SP”;int i;for(i=3;i0;i-,i-)printf (“%c”,*pi);printf(“n”);(10)如下程序用来输出构造体变量ex所占存储单元字节数,
18、请填空struct st char name20;double score;main( ) struct st ex;printf(“ex size:%dn”,sizeof(【12】);(11)如下程序功能是:运用指针指向三个整型变量,并通过指针运算找出三个数中最大值,输出到屏幕上。请填空。main( ) int x,y,z,max,*px,*py,*pz,*pmax;scanf(“%d%d%d”,&x,&y,&z);px=&x;py=&y;pz=&z;pmax=&max;【13】;if(*pmax*py)*pmax=*py;if(*pmax*pz) *pmax=*pz;printf(“max
19、=%dn”,max);(12)如下程序中函数fun功能是:构成一种如图所示带头结点单向链表,在结点数据域中放入了具有两个字符字符串。函数disp功能是显示输出该单链表中所有结点中字符串。请填空完毕函数disp。#includetypedef struct nodechar sub3;struct node *next;Node; /*链表结点构造*/Node fun(char s). /*建立链表*/void disp(Node *h) Node *p;p=h-net;while(【14】) printf (“%sn”,p-sub);p=【15】;main( ) Node *hd;hd=fun( );disp(hd);printf(“n”);ef 0 cdabhead