资源描述
二级C语言程序设计理论摸底考试试题
一、选用题((11)~(20)每题1分,别旳每题2分,共70分)
(1)算法空间复杂度是指
A)算法程序长度 B)算法程序中指令条数 C)算法程序所占存储空间 D)算法执行过程中所需要存储空间
(2)栈和队列共同特点是
A)都是先进先出 B)都是先进后出 C)只容许在端点处插入和删除元素 D)没有共同点
(3)设有下列二叉树:
A
T X
B C P
Z Y
对此二叉树前序遍历成果为
A)ZBTYCPXA B)ATBZXCYP C)ZBTACYXP D)ATBZXCPY
(4)构造化程序设计重要强调是
A)程序规模 B)程序效率 C)程序设计语言先进性 D)程序易读性
(5)下列论述中对旳是
A)一种算法空间复杂度大,则其时间复杂度也必然大 B)一种算法空间复杂度大,则其时间复杂度必然小 C)一种算法时间复杂度大,则其空间复杂度必然小 D)上述三种说法都不对
(6)下列不属于软件工程3个要素是
A)工具 B)过程 C)措施 D)环境
(7)软件开发离不开系统环境资源支持,其中必要测试数据属于
A)硬件资源 B)通信资源 C)支持软件 D)辅助资源
(8)下述有关数据库系统论述中对旳是
A)数据库系统减少了数据冗余 B)数据库系统防止了一切冗余 C)数据库系统中数据一致性是指数据类型一致 D)数据系统比文献系统能管理更多数据
(9)下列数据模型中,具有坚实理论基本是
A)层次模型 B)网状模型 C)关系模型 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<=’z’ B)(c1>=A)&&(c1<=Z) C)(‘A’>=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 ;printf(" %d\n",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(x<0.0)y=0.0 ;else if(x>10.0)y=1.0/x ;else y=1.0 ;printf("%f\n ",y) ;}该程序输出成果是
A)0.000000 B)0.250000 C)0.500000 D)1.000000
(20)如下程序输出成果是
#include<stdio.h>
main(){ 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("%d\n",m);}
A)1 B)2 C)3 D)4
(21)如下程序输出成果是
#include<stdio.h>
main( ){ char ch[2][5]={“6937”,”8254”},*p[2];int i,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]> ‘\0’;j+=2)s=10*s+p[i][j]-‘\0’;printf(“%d\n”,s);}
A)69825 B)63825 C)6385 D)693825
(22)下面程序运行成果是
#include<stdio.h>
main( ){int a=28,b;char s[10],*p;p=s;do{b=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
(23)下列程序执行后输出成果是
void func1(int i);
void func2(int i);
char st[ ]=”hello,friend!”;
void func1(int i)
{ printf(“%c”,st[i]);if(i<3){i+=2;func2(i);}}
void func2(int i)
{ printf(“%c”,st[i]);if(i<3){i+=2;func1(i);}}
main( ){ int i=0;func1(i);printf(“\n”);}
A)hello B)hel C)hle D)hlm
(24)如下程序输出成果是
#include<stdio.h>
void prt(int *x,int *y,int *z){printf(“%d,%d,%d\n”,++*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,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 a[2][ ]={{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 a[2][ ]={{0,3,8},{0,9,0}};
(26)如下程序输出成果是
#include<stdio.h>
#include<string.h>
main( ){ char w[ ][10]={“ABCD”,”EFGH”,”IJKL”,”MNOP”},k;
for(k=1;k<3;k++)printf(“%s\n”,&w[k][k]);}
A)ABCD B)ABC C)EFG D)FGH
FGH EFG JK KL
KL IJ 0
M
(27)下面能对旳进行字符串赋值操作是
A)char s[5]={“ABCDE”};B)char s[5]={‘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;i<9;i+=2)s+=*(t+i);printf(“%d\n”,s);}
程序执行后输出成果是
A)45 B)20 C)25 D)36
(29)如下程序中调用scanf(函数给变量a输入数值措施是错误,其错误原因是
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<stdio.h>
#include<string.h>
main( ){char a[30]=”nice to meet you!”;strcpy(a+strlen(a)/2,”you”);printf(“%s\n”,a);}
A)nice to meet you you B)nice to C)meet you you D)nice to you
(31)若有下面程序片段:
int a[12]={0},*p[3],**pp,i;for(i=0;i<3;i)p[i]=&a[i*4];pp=p;
则对数组元素错误引用是
A)pp[0][1] B)a[10] C)p[3][1] D)*(*(p+2)+2)
(32)设有下面程序段:
char s[ ]=”china”;char *p;p=s;
则下列论述对旳是
A)s和p完全相似 B)数组s中内容和指针变量p中内容相似 C)s数组长度和p所指字符串长度相等 D)*p与s[0]相等
(33)若有函数max(a,b),为了让函数指针变量p指向函数max,当调用该函数时,对旳赋值措施是
A)(*p)max(a,b) B)*pmax(a,b) C)p=max(a,b) D)*p=max(a,b)
(34)如下程序运行成果是
#define MAX(A,B) (A)>(B)?(A):(B)
#define PRINT(Y) printf(“Y=%d\t”,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=7^3 ;b=~4&3 ;printf(“%d%d\n”,a,b);}
程序运行后输出成果是
A)4 3 B)7 3 C)7 0 D)4 0
(36)请选出如下程序输出成果
#include<stdio.h>
void sub(int *,int);
main( ){ int a[ ]={1,2,3,4},i;int x=0;for(i=0;i<4;i++){sub(a,x);printf(“%d”,x);}printf (“\n”);}
void sub(int *s,int y)
{ static int t=3;y=s[t];t- -;}
A)1 2 3 4 B)4 3 2 1 C)0 0 0 0 D)4 4 4 4
(37)如下程序输出成果是
#include<stdio.h>
struct st{int x;int *y;}*p;int dt[4]={10,20,30,40};struct st aa[4]={50,&st[0],60,&dt[0],60,&dt[0],60,&st[0],};
main( ){ p=aa;printf(“%d\n”,++(p->x));}
A)10 B)11 C)51 D)60
(38)如下scanf函数调用语句中对构造变量组员引用不对旳是
struct pupil{ char name[20];int age;int sex;}pup[5],*p;p=pup;
A)scanf(“%s”,pup[0].name);B)scanf(“%d”,&pup[0].age);C)scanf(“%dT”,&(p-> sex));D)scanf(“%d”,p->age);
(39)fwrite函数一般调用形式是
A)fwrite(bufer,count,size,fp);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)软件工程研究内容重要波及:【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 请填空
#include<math.h>
double fun(double x){return(x*x-2*x+6) ;}
main( ){ double x,y1,y2;printf(“Enter x:”);scanf(“%lf”,&x);y1=fun(【6】) ;y2=fun (【7】);printf(“y1=%lf,y2=%lf\n”,y1,y2);}
(7)如下isprime函数功能是判断形参a与否为素数,是素数,函数返回1,否则返回0。请填空。
int isprime(int a){ int i ;for(i=2 ;i<=a/2 ;i++)if(a%i==0) 【8】;【9】;}
(8)下面程序运行成果是【10】。
main( ){ int i=0,j=10,k=2,s=0;for(;;){i+=k;if(i>j){printf(“%d\n”,s);break;}s+=i;}}
(9)如下程序输出成果是【11】。
main( ){ char *p[ ]={“BOOL”,”OPK”,”H”,”SP”};int i;for(i=3;i>0;i--,i--)printf (“%c”,*p[i]);printf(“\n”);}
(10)如下程序用来输出构造体变量ex所占存储单元字节数,请填空
struct st{ char name[20];double score;};
main( ){ struct st ex;printf(“ex size:%d\n”,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=%d\n”,max);}
(12)如下程序中函数fun功能是:构成一种如图所示带头结点单向链表,在结点数据域中放入了具有两个字符字符串。函数disp功能是显示输出该单
链表中所有结点中字符串。请填空完毕函数disp。
#include<stdio.h>
typedef struct node{char sub[3];struct node *next;}Node; /*链表结点构造*/
Node fun(char s){...} /*建立链表*/
void disp(Node *h){ Node *p;p=h->net;while(【14】){ printf (“%s\n”,p->sub);p=【15】;}}
main( ){ Node *hd;hd=fun( );disp(hd);printf(“\n”);}
ef \0
cd
ab
head→
展开阅读全文