




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、选择题(1-11每题2分,11-21每题1分,21-40每题2分,共70分) 下列各题A、B、C、D四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。1下列对于线性链表的描述中正确的是_。(A)存储空间不一定是连续,且各元素的存储顺序是任意的(B)存储空间不一定是连续,且前件元素一定存储在后件元素的前面(C)存储空间必须连续,且各前件元素一定存储在后件元素的前面(D)存储空间必须连续,且各元素的存储顺序是任意的2下列关于栈的描述正确的是_。(A)在栈中只能插入元素而不能删除元素(B)在栈中只能删除元素而不能插入元素(C)栈是特殊的线性表,只能在一端插入或删除元素(D)栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素3为了使模块尽可能独立,要求_。(A)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强(B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱(C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱(D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强4下列叙述中,正确的是_。(A)用E-R图能够表示实体集之间一对一的联系、一对多的联系、多对多的联系(B)用E-R图只能表示实体集之间一对一的联系(C)用E-R图只能表示实体集之间一对多的联系(D)用E-R图表示的概念数据模型只能转换为关系数据模型5以下叙述中正确的是_。(A)C语言的源程序不必通过编译就可以直接运行(B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令(C)C源程序经编译形成的二进制代码可以直接运行(D)C语言中的函数不可以单独进行编译6以下有4组用户标识符,其中合法的一组是_。(A)For -sub Case(B)4d DO Size(C)f2_G3 IF abc(D)WORDvoiddefine7以下选项中不属于C语言的类型的是_。(A)signed short int(B)unsigned long int(C)unsigned int(D)long short8有以下程序 int *f(int *x, int *y) if(*x*y) return x; else return y; main() int a=7,b=8,*p,*q,*r; p=&a; q=&b; r=f(p,q); print(%d,%d,%dn,*p,*q,*r); 执行后输出结果是_。(A)7,8,8(B)7,8,7(C)8,7,7(D)8,7,89有以下程序main( ) char a , b , c , d ;scanf(%c,%c,%d,%d, &a , &b , &c , &d ) ;printf(%c,%c,%c,%cn, a , b , c , d ) ;若运行时从键盘上输入:6,5,65,66。则输出结果是_。(A)6,5,A,B(B)6,5,65,66(C)6,5,6,5(D)6,5,6,610有以下程序 main( ) char str 10= China,Beijing,*p=str ;printf(%sn, p+10 ) ;程序运行后的输出结果是_。(A)China(B)Beijing(C)ng(D)ing11以下程序运行后的输出结果是_。 main() int a,b,c; a=10;b=20;c=(a%b1); printf(%d %d %dn,a,b,c); (A)10 20 0(B)20 10 0(C)10 10 0(D)20 20 012下列关于单目运算符+、- -的叙述中正确的是_。(A)它们的运算对象可以是任何变量和常量(B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量(C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量(D)它们的运算对象可以是char型变量、int型变量和float型变量13有以下程序main() int a; char c=10;float f=100.0; double x;a=f/=c*=(x=6.5);printf(%d %d %3.1f %3.1fn,a,c,f,x);程序运行后的输出结果是_。(A)1 65 1 6.5(B)1 65 1.5 6.5(C)1 65 1.0 6.5(D)2 65 1.5 6.514有以下程序 main() int c=35; printf(%dn,c&c); 程序运行后的输出结果是_。(A)0(B)70(C)35(D)115已知i、j、k为int型变量,若从键盘输入:1,2,3,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是_。(A)scanf(%d %d %d,&i,&j,&k);(B)scanf(%d,%d,%d,&i,&j,&k);(C)scanf(%2d%2d%2d,&i,&j,&k);(D)scanf(i=%d,j=%d,k=%d,&i,&j,&k);16有定义语句:int x,y;,若要通过scanf(%d,%d,&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,错误的是_。(A)11 12(B)11, 12 (C)11,12 (D)11, 1217以下程序运行后的输出结果是_。main() int x=0210; printf(%xn,x);(A)88(B)86(C)77(D)2118当把以下4个表达式用作if语句的控制表达式时,有一个选项与其他三个选项含义不同,这个选项是_。(A)k%2(B)k%2=1(C)(k%2)!=0(D)!k%2=119设变量a、b、c、d和y都已正确并赋值。若有以下if语句if(a if(c=d) y=0; else y=1;该语句所表示的含义是_。(A)(B)(C)(D)20有以下程序main() int n=0,m=l,x=2;if(!n) x-=l;if(!m) x-=2;if(!x) x-=3;printf(%dn,x);执行后输出结果是_。(A)2(B)1(C)3(D)621若变量已正确定义,要求程序段完成5!的计算,不能完成此操作的程序段是_。(A)for (i=1,p=1; i=5; i+ ) p*= i ;(B)for (i=1; i=5; i+ ) p= 1 ; p*= i ; (C)i=1; p=1;while ( i=5 ) p*= i ; i+; (D)i=1; p=1; do p*= i ; i+; while ( i=5 ) ;22有以下程序main() int i,s=0;for(i=1;i10;i+=2) s +=i+1printf(%dn,s);程序执行后的输出结果是_。(A)自然数 19的累加和(B)自然数 1 10的累加和(C)自然数 19中奇数之和(D)自然数 1 10中偶数之和23面程序的功能是输出以下形式的金字塔图案:* * * * * * * * * * * * *main() int i,j;for(i=1;i=4;i+;) for(j=l;j=4-i;j+)printf( );for(j=1; ;j= ;j+)printf(*);printf(n);在下划线处应填入的是_。(A)i(B)2*il(C)2*i+l(D)i+224已定义以下函数fun(char *p2,char *p1) while(*p2=*p1)!= 0) p1+;p2+函数的功能是_。(A)将p1所指字符串复制到p2所指内存空间(B)将p1所指字符串的地址赋给指针p2(C)对p1和p2两个指针所指字符串进行比较(D)检查p1和p2两个指针所指字符串中是否有025有以下程序void sort(int a,int n) int i,j,t;for(i=0;ifor(j=i+2; jif(aimain() int aa10=(1,2,3,4,5,6,7,8,9,10),i;sort(aa,10);for(i=0;iy?x:y; z=xy?x:y; return z;(B)int max(int x,y) int z;(C)max(int x, int y) int z; z=xy?x:y; return(z); (D)int max(int x, int y) return(xy?x:y);32有以下程序#include main( ) int a =1,2,3,4,5,6,7,8,9,10,11,12 , *p = a+5, *q=NULL ;*q=*(p+5) ; printf(%d %dn, *p , *q ) ;程序运行后的输出结果是_。(A)运行后报错(B)6 6(C)6 11(D)5 1033有以下程序void fun(int *a,int i, int j) int t; if(i t=ai;ai=aj;aj=t; fun(a,+i,-j); main() int a=l,2,3,4,5,6,i; fun(a,0,5); for(i=0;i6;i+) printf(%d ,ai);执行后输出结果是_。(A)6 5 4 3 2 1(B)4 3 2 1 5 6(C)4 5 6 1 2 3(D)1 2 3 4 5 634有以下程序void fun(char *a, char *b) a=b; (*a)+;main() char c1=A, c2=a, *p1, *p2;p1=&c1; p2=&c2; fun(p1,p2);printf(%c%cn, c1, c2);程序运行后的输出结果是_。(A)Ab(B)aa(C)Aa(D)Bb35有以下程序void f(int y,int *x) y=y+ *x; *x;=*x+y; main() int x=2,y=4;f(y,&x);printf(%d %dn,x,y);执行后输出结果是_。(A)8 4(B)8 8(C)4 8(D)4 236设有定义语句int x6=2,4,6,8,5,7,*p=x,i;要求依次输出x数组6个元素中的值,不能完成此操作的语句是_。(A)for(i=0;i6;i+) printf(%2d, *(p+) ) ;(B)for(i=0;i6;i+) printf(%2d, *(p+i) ) ;(C)for(i=0;i6;i+) printf(%2d, *p+ ) ;(D)for(i=0;i6;i+) printf(%2d, (*p)+ ) ;37设有定义:int n=0,*p=&n,*q=&p;,则以下选项中,正确的赋值语句是_。(A)p=1;(B)*q=2(C)q=p(D)*p=538已有定义:int i,a10,*p;,则合法的赋值语句是_。(A)p=100;(B)p=a5;(C)p=a2+2;(D)p=a+2;39下列选项中正确的语句组是_。(A)char s8; s=Beijing;(B)char *s; s=Beijing;(C)char s8; s=Beijing;(D)char *s; s=Beijing;40已定义以下函数fun(int *p) return *p; 该函数的返回值是_。(A)不确定的值(B)形参p中存放的值(C)形参p所指存储单元中的值(D)形参p的地址值二、填空题 (1-15每题2分,共30分) 请将答案分别写在答题卡中对应的的横线上。1有以下程序main( ) int a=7 , b=8 , *p , *q , *r ;p=&a ; q=&b ;r=p ; p=q; q=r ;printf(%d,%d,%d,%dn, *p , *q , a , b ) ;程序运行后的输出结果是_【1】_。 2有以下程序#include main(int argc,char *argv) int i,len=0;for(i=l;iprintf(%dn,len);经编译连接后生成的可执行文件是ex.exe, 若运行时输入以下带参数的命令行:ex abcd efg h3 k44执行后输出结果是_【2】_。 3有以下程序main() int a33,*p,i; p=&a00; for(i=0;i9;i+) pi=i+1; printf(%dn,a12);程序运行后的输出结果是_【3】_。 4有以下程序void f(int a,int i,int j) int t;if(i t=ai; ai= aj; aj=t;f(a,i+1,j-1);main() int i,aa5=1,2,3,4,5;f(aa,0,4);for(i=0;i5;i+) printf(%d,aai);printf(n);执行后输出结果是_【4】_。 5目前实际存在和使用的广域网基本上都是采用 拓扑结构类型。有以下程序#include struct STU int num; float TotalScore; ;void f(struct STU p) struct STU s2=20041,703,20045,537; p.num = s1.num; p.TotalScore = s1.TotalScore;main() struct STU s2=20041,703,20042,580; f(s0); printf(%d %3.0fn,s0.num,s0.TotalScore);程序运行后的输出结果是_【5】 _。 6若有以下程序int f(int x,int y) return (y-x)*x; main() int a=3,b=4,c=5,d;d=f(f(3,4),f(3,5); printf(%dn,d);执行后输出结果是_【6】_。 7有以下程序void swap 1(int c) int t;t=c0; c0= c1; c1=t;void swap2(int c0,int cl) int t;t=c0; c0=cl; cl=t;main() int a2=3,5,b2=3,5;swaplA) ; swap2(b0,b1);printf(%d, %d ,%d, %dn,a0,a1,b0,b1);其输出结果是_【7】_。 8有以下程序int a=2;int f(int *A) return(*A) +;main() int s=0; int a=5;s+= f(&A) s+= f(&A) printf(%dn ,s) 执行后输出结果是_【8】_。 9有以下程序段int a10=1,2,3,4,5,6,7,8,9,10,*p=&a3,b;b=p5;b中的值是_【9】_。 10以下程序的运行结果是:_【10】_。#include char *ss(char *s)return s+ strlen(s)/2; main() char *p,*str=abcdefgh;p=ss(str); printf(%sn ,p); 11有如下程序段main(int argc, char *argv) int n, i=0; while(argv1i!=0) n=fun();i+; printf(%dn,n*argc); int fun() static int s=0; s+=1; return s;假设程序经编译、连接后生成可执行文件exam,exe,若键入如下命令行:exam 123则运行结果为_【11】_。 12以下程序运行后的输出结果是【12】_。 #define S(x) 4*x*x+1 main() int i=6,j=8; printf(%dn,S(i+j); 13以下程序运行后的输出结果是_【13】_。 #include void fun(char *s,int p,int k) int i; for(i=p;i main() char s=abcdefg; fun(s,3,strlen(s); puts(s); 14若有以下程序main() int a44=1,2,-3,-4,0,-12,-13,14,-21,23,0,-24,-31,32,-33,0; int i,j,s=0; for(i=0;i4;i+) for(j=0;j4;j+) if (aij0) continue; if (aij=0) break; s+=aij; printf(%dn,s); 执行后输出结果是_【14】。 15若有以下程序 main() char a; a=H-A+0; printf(%cn,a); 执行后输出结果是_【15】_。 参考答案与分析 一、选择题(1-11每题2分,11-21每题1分,21-40每题2分,共70分)1 A2 C3 B4 A5 B6 C7 D8 B9 A10 B11 A12 D13 B14 C15 A16 A17 A18 D19 C20 B21 B22 D23 B24 A25 C26 A27 B28 C29 A30 B31 B32 A33 A34 A35 A36 D37 D38 D39 D40 C二、填空题 (1-15每题2分,共30分)1【1】8,7,7,82【2】63【3】64【4】1,5,4,3,25【5】20041 7036【6】97【7】53 3 58【8】79【9】910【10】efgh11【11】612【12】8113【13】abcfg14【14】5815【15】7 答案及简单分析一、选择题1分析:线性链表属于链式存储结构,在链式存储结构中,存储空间可以不连续,各元素的存储顺序是任意的,元素之间的逻辑关系是由指针域来决定的。2分析:栈是特殊的线性表,它的一端封闭,在另一端进行插入和删除操作。3分析:为了使模块尽可能独立,模块分解时应满足信息隐蔽原则。尽量使模块的内聚度高,模块间的耦合度低。模块的大小适中(通常一个模块以50100个语句行最为适宜)。4分析:E-R模型可以用一种非常直观的图的形式表示,这种图称为E-R图(entity-rela- tionship diagram)。用E-R图能够表示实体集之间一对一的联系、一对多的联系、多对多的联系。5分析:C语言编写的程序必须经过编译、连接后才可以执行,选项A错误;C语言编译后生成的二进制代码是目标文件,需进一步连接生成.exe文件方可执行,选项C错误;C语言中函数可以单独编译。6分析:选项A中有非法标识符-sub,选项B中有非法标识符4d,选项D中有C语言保留字void。7分析:本题考查C语言中整型变量的分类问题。选项D不是C语言合法的数据类型。8分析:函数f是一个返回值为指针的函数,其功能是比较两个数中的最小值,并返回最小值的存储单元地址。main函数中定义了指针变量p和q,p=&a,q=&b,即*p=7,*q=8,调用函数f后r=p,所以*r=7,printf函数的输出结果为7,8,7。9分析:char型数据类型以%d的形式输入时,输入的是ASCII值。65是字符A的ASCII码值,66是字符B的ASCII值。10分析:本题中p+10表示字符串Beijing的地址,故正确答案为B。11分析:a%b=11不成立,根据|的性质,不需要看后面的表达式,就可以得出c=0。12分析:本题考查+与- -运算符的问题。自增运算符+与自减运算符- -的运算对象只能是变量,不能是表达式或常量,变量的数据类型可以是int、char、float和double型,其结果是将变量的值加1或减1。13分析:本题中变量a是int型,c是char型,f是float型,x是double型。根据变量的数据类型,执行语句a=f/=c*=(x=6.5)时,首先执行x=6.5得x=6.5;然后执行c*=x得c=cx=106.5=65;执行f/=c得f=f/c=100.0/65=1.5385;最后执行a=f得a=1。以%3.1f格式输出变量f和x,小数点后面保留一位有效数字,故正确答案为B。14分析:&表示按位与,c&c=c,因此输出结果为c的值。15分析:sacnf函数中格式控制后面应为变量地址列表,因此选项C和选项D都错误,选项B中&d是指针变量d的地址,与题目不符。由题目可知指针变量d中存放的是变量c的地址,所以正确答案为选项A。16分析:scanf函数中非格式字符原样输入。本题中scanf函数的格式字符为%d,%d,包含非格式字符,,所以应输入,,故选项A错误。17分析:x以0开头是以八进制的形式赋值的,输出时要输出其对应的十六进制。0210对应的十六进制是88。18分析:A、B、C作为if语句的条件时均表示k不能被2整除的情况时为真,但是D表示k为0时为真。19分析:if语句中else是与其最接近的if相匹配,因此是c=d时y=0,cd时,y=1,它们都是在a20分析:因n=0,故!n为真,执行语句x=1得x=x1=21=1;条件!m和!x不成立,所以x=1,正确答案为1。21分析:选项B中每次执行循环体都要执行p=1,无法保存上次的运算结果,执行完while循环后p=5。22分析:本题中s=(1+1)+(3+1)+(5+1)+(7+1)+(9+1)=2+4+6=8+10。23分析:根据题意可知第二个j循环结束的条件是第i行打印出的*的个数。24分析:while循环语句的功能是将p1所指存储单元的内容赋值给p2所指的存储单元,然后p1+、p2+,分别指向下一个存储单元,直到p1指向符号串的结束字符0为止。故函数的功能是将p1所指字符串复制到p2所指内存空间。25分析:函数sort的功能是将a0、a2、a4、a6和a8按照由大到小的次序排序,其他元素值不变。正确答案为C。26分析:选项B中不是变量A的地址,错误;选项C是指针pA的地址,错误;选项D中*pA表示变量A的值,错误。27分析:p= str+strlen(str)/2+1=str+4,f(p,p-2)的功能是将p4与p2互换,p5与p1互换,p6与p0互换,最后的结果为gfedcba。28分析:本题中定义字符数组s时没有指定数组长度,s初始化后存放的内容为n1230,其中n和是转义字符,所以strlen(s)=5,sizeof(s)=6。29分析:本题中p4= cd,所以strlen(p4)=2。30分析:main函数是不能被其他函数调用的,函数可以单独编译,但不能单独运行,C语言中,一个函数内部是不能再定义另一函数的。31分析:本题考查函数的定义。选项B中函数形参y没有说明数据类型。32分析:指针q没有指向确定的存储单元,故不能赋值。33分析:本题考查指针变量作函数形参的问题。指针变量作函数的形参,实现的是地址传递,形参的改变可以影响实参。fun函数的功能是将a所指数组中的内容逆置。在main函数中调用fun函数后,实参数组a中元素的值变为:a0=6、a1=5、a2=4、a3=3、a4=2、a5=1。34分析:本题中函数fun的形参是指针变量,因此实参与形参之间是地址传递,即形参的改变可以影响实参。main函数中p1指向c1,p2指向c2,函数调用语句fun(p1,p2)的功能是将p2所指存储单元的内容的值加1,即将c2的值加1得c2=b,故printf函数的输出结果为Ab。35分析:函数f的形参Y是简单变量,x是地址变量,故Y=4,x=2+4+2=8。36分析:选项D中(*p)+的意思是将p所指向的存储单元的值加1,与题意不符,错误。37分析:本题中n是int型变量,p是指向int型的指针变量,q是指向指针的指针变量,故正确答案为D。38分析:因p是指针变量,故选项D正确。39分析:C语言规定可以对字符指针变量直接赋字符串常量,但不能给字符数组直接赋字符串常量,对字符数组赋字符串常量应使用的是strcpy函数。正确答案为选项D。40分析:函数fun的形参是指针变量,*p的含义是指针变量p所指存储单元的内容,因此正确答案为C。 二、填空题1 分析:本题中执行语句p=&a 和q=&b 后*p=7,*q=8;执行完语句r=p,p=q,q=r后*p=8,*q=7。故答案为8,7,7,8。2 分析:本题中命令行输入5个符号串,所以argc=5,argv0指向符号串ex,argv1指向符号串abcd,argv2指向符号串efg,argv3指向符号串h3,argv4指向符号串k44,for循环的作用是计算strlen(argv1)+ strlen(argv3) =4+2=6。3 分析:本题定义了二维数组a和指针变量p,p指向数组的首地址,for
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 艾梅乙护理培训
- 二零二五年度服装店员工劳动合同电子版范本
- 2025版股权投资及投资决策与风险控制合同
- 二零二五年工厂食堂环境卫生保洁承包合同范本
- 二零二五年度高压电线销售服务协议
- 2025版安置房房票买卖贷款提前还款合同
- 二零二五年股权期权登记与管理合同范本
- 二零二五年度智能化家居产品居间服务不可撤销合同模板
- 2025版个人房贷还款合同收据模板
- 2025版电子信息产业合作研发技术保密与市场竞争协议
- 2025年事业单位招聘考试建筑类综合能力测试试卷八十二:建筑工程施工监理案例分析八
- 2025年事业单位招聘考试综合类专业能力测试试卷(工程类)-建筑工程施工质量控制
- 2025年教育法学法规试题及答案
- 汉教课堂观察汇报
- 2025年四川省高考化学试卷真题(含答案解析)
- 2025年注册会计师考试财务成本管理试题及答案解析
- 2023成都高新未来科技城发展集团有限公司招聘试题及答案解析
- 新教师岗前培训讲座中小学教学常规PPT
- 学习适应性测验(AAT)
- (标准版)康复治疗技术专业《 康复心理学 》课程标准
- 1999年版干部履历表
评论
0/150
提交评论