1、C笔试试题一、选择题(1)(1O)每题2分,(11)(50)每题1分,共60分) 下列各题A)、B)、c)、D)四个选项中,只有一个选项是正确的,请将正确选项 写在答题卡相应位置上,答在试卷上不得分。1)下列选项中不属于结构化程序设计方法的是D A)自顶向下 B)逐步求精 C)模块化 D)可复用2)两个或两个以上模块之间关联的紧密程度称为A A)耦合度 B)内聚度 C)复杂度 D)数据传输特性3)下列叙述中正确的是D A)软件测试应该由程序开发者来完成 B)程序经调试后一般不需要再测试 C)软件维护只包括对程序代码的维护 D)以上三种说法都不对4)按照“后进先出”原则组织数据的数据结构是B A
2、)队列 B)栈 C)双向链表 D)二叉树6)下列叙述中正确的是A A)线性链表是线性表的链式存储结构 B)栈与队列是非线性结构 C)双向链表是非线性结构 D)只有根结点的二叉树是线性结构(6)对如下二叉树 A / B C / / D E F 进行后序遍历的结果为D A)ABCDEF B)DBEAFC C)ABDECF D)DEBFCA(7)在深度为7的满二叉树中,叶子结点的个数为C A)32 B)31 C)64 D)63(8)“商品”与“顾客”两个实体集之间的联系一般是D A)一对一 B)一对多 C)多对一 D)多对多(9)在E-R图中,用来表示实体的图形是A A)矩形 B)椭圆形 C)菱形
3、D)三角形(10)数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是C A)DB包含DBS和DBMS B)DBMS包含DB和DBS C)DBS包含DB和DBMS D)没有任何关系(11)以下不合法的用户标识符是C A)j2_KEY B)Double C) 4d D) _8_(12)以下不合法的数值常量是C A)011 B) 1e1 C)8.0E0.5 D) 0xabcd(13)以下不合法的字符常量是A A) 018 B) C) D) xcc14表达式3.6-5/2+1.2+5%2的值是D A)4.3 B)4.8 C) 3.3 D)3.8(15)以下正确定义字符串的语句是D A)c
4、har str5=a,b,c; B) char str=x43; C)char str=; D) char Str=0;(16)以下数组定义中错误的是B A)int x3=O; B)int x23=1,2,3,4,5,6; C)int x3=1,2,3,4,5,6; D)int x23=1,2,3,4,5,6;(17)若要求从键盘读入含有空格字符的字符串,应使用函数 B A)getc() B)gets() C)getchar() D)scanf()(18)以下四个程序中,完全正确的是B A)#include B) #include main(); main() /*programming*/
5、/*/programming/*/ printf(programming!n); printf(programming!n); C)#include D) include main() main() /*/*progmmmfug*/*/*programming*/ printf(programming!n); printf(programming!n);19)若有定义:float x=1.5; int a=1,b=3,c=2;则正确的switch语句是C A)switch(x) B)switch(int)x); case 1.0:printf(*n); case l:printf(*n); c
6、ase 2.0:printf(*n); case 2:printf(*n); C)switch(a+b) D)switch(a+b) case 1:printf(*n); case 1:printf(*n); case 2+1:printf(*n); case c:printf(*n);20)若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是A A)main() B)float fun(int a,int b). .x=fun(2,10);. main() float fun(int a,int b). x=fun(i,j); C)float
7、fun(int,int); D)main() main() float fun(int i,int j); .x=fun(2,10);. . x=fun(i,j);. float fun(int a,int b). float fun(int a,int b)(21)在以下给出的表达式中,与while(E)中的(E)不等价的表达式是C A)(!E=0) B)(E0|Enext=r-next;p-next=r;r-next=q; B)p-next=r;q-next=r-next;r-next=q; C)q-next=r-next;r-next=q;p-next=r; D)r-next=q;p-n
8、ext=r;q-next=r-next;(26)有以下程序段 struct st int x; int *y; *pt; int a=1,2,b=3,4; struct st c2=10,a,20,b; pt=c; 以下选项中表达式的值为11的是 C A)*pt-y B)pt-x C)+pt-x D)(pt+)-x(27)设fP为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fP)的返回值为 D A)EOF B)非0值 C)O D)NULL(28)设有以下语句 int a=1,b=2,c; c=a(b2); 执行后,c的值为 D A)6 B)7 C)8 D)9(29)有以下程序
9、#include main() char c1,c2,c3,c4,c5,c6; scanf(%c%c%c%c,&c1,&c2,&c3,&c4); c5=getchar(); c6=getchar(); putchar(c1); putchar(c2); printf(%c%cn,c5,c6); 程序运行后,若从键盘输入(从第1列开始) 123 45678 则输出结果是D A)1267 B)1256 C)1278 D)1245(30)有以下程序 main() int y=lO; while(y-); printf(y=%dn,y); 程序执行后的输出结果是B A)y=0 B)y=-1 C)y=1
10、 D)while构成无限循环(31)有以下程序 main() int a=0,b=O,c=0,d=0; if(a=1) b=l;c=2; else d=3; printf(%d,%d,%d,%dn,a,b,c,d); 程序输出D A)0,1,2,0 B)0,0,0,3 C)1,1,2,0 D)编译有错(32)有以下程序 main() int i,j,x=O; for(i=0;i2;i+) x+; for(j=0;j=3;j+) if(j%2)continue; x+; x+; printf(x=%dn,x); 程序执行后的输出结果是B A)x=4 B)x=8 C)x=6 D)x=12(33)有
11、以下程序 int funl(double a) return a*=a; int fun2(double x,double y) double a=0,b=0; a=funl(x); b=fun1(y); return (int)(a+b); main() double w; w=fun2(1.1,2.O);. 程序执行后变量w中的值足A A)5.21 B)5 C)5.0 D)0.0 (34)有以下程序 main()int i,t3=9,8,7,6,5,4,3,2,1; for(i=0;i3;i+) printf(%d ,t2-ii); 程序执行后的输出结果是B A)7 5 3 B)3 5 7
12、 C)3 6 9 D)7 5 1 (35)有以下程序 fun(char p10) int n=0,i; for(i=O;i7;i+) if(pi0=T) n+; return n; main() char str10=Mon,Tue,Wed,Thu,Fri,Sat,Sun; printf(%dn,fun(str); 程序执行后的输出结果是B A)1 B)2 C)3 D)0(36)有以下程序 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); 程序执行后的输出结果是C A)45 B)20
13、 C)25 D)36(37)有以下程序 void funl(char *p) char *q; q=p; while(*q!=0) (*q)+; q+; main() char a=Program,*p; p=&a3; funl(p); printf(%sn,a); 程序执行后的输出结果是A A)Prohsbn B)Prphsbn C)Progsbn D)Program38)有以下程序void swap(char *x,char *y) char t; t=*x; *x=*y; *y=t; main() char *s1=abc,*s2=123; swap(s1,s2); printf(%s,
14、%sn,s1,s2); 程序执行后的输山结果是C A)123,abc B)abc,123 C)1bc,a23 D)321,cba(39)有以下程序 int fun(int n) if(n=1) return 1; else return (n+fun(n-1); main() int x; scanf(%d,&x); x=fun(x); printf(%dn,x); 执行程序时,给变量x输入10,程序的输出结果是A A)55 B)54 C)65 D)45(40)有以下程序 int fun(int x,int n) static int sum=0,i; for(i=O;in;i+) sum+=
15、xi; return sum; main() int a=1,2,3,4,5,b=6,7,8,9,s=0; s=fun(a,5)+fun(b,4); printf(%dn,s); 程序执行后的输出结果是C A)45 B)50 C)60 D)55(41)有以下程序 main() union char ch2; int d; s; s.d=Ox4321; printf(%x,%xn,s.ch0,s.chl); 在16位编译系统上,程序执行后的输出结果是A A)21,43 B)43,21 C)43,00 D)21,00(42)有以下程序 main() char *p=3697,2584; int i
16、,j; long num=0; for(i=0;i2;i+) j=0; while(p j!=0) if(p j-0)%2) num=1O*num+pj-0; j+=2; printf(%dn,num); 程序执行后的输出结果是C A)35 B)37 C)39 O)3975(43) 执行以下程序后,testtxt文件的内容是(若文件能正常打开) #include main() FILE *fp; char *s1=Fortran,*s2=Basic; if(fp=fopen(testtxt,wb)=NULL) printf(Cant open testtxt filen);exit(1); f
17、write(sl,7,1,fp); /*把从地址s1开始的7个字符写到fP所指文件中*/ fseek(fp,0L,SEEK_SET);/*文件位置指引移到文件开头*/ fwrite(s2,5,1,fp); fclose(fp); A)Basican B)BasicFortran C)Basic D)FortranBasic(44)以下叙述中错误的是 A)c语言源程序经编译后生成后缀为.obj的目标程序 B)c程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件 C)用c语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中 D)c语言中的每条可执行语句和非执行语句
18、最终都将被转换成二进制的机器指令(45)以下叙述中错误的是A)算法正确的程序最终一定会结束 B)算法正确的程序可以有零个输出C)算法正确的程序可以有零个输入 D)算法正确的程序对于相同的输入一定有相同的结果(46)以下叙述中错误的是A)c程序必须由一个或一个以上的函数组成 B)函数调用可以作为一个独立的语句存在C)若函数有返回值,必须通过return浯句返回 D)函数形参的值也可以传回给对应的实参(47)设有以下定义和语句 char str20=Program,*p; p=str;则以下叙述中正确的是 A) *p与str0中的值相等 B) str与p的类型完全相同C) str数组长度和p所指向
19、的字符串长度相等D) 数组str中存放的内容和指针变量p中存放的内容相同(48)以下叙述中错误的是 A)C程序中的#include和#define行均不是C语句 B)除逗号运算符外,赋值运算符的优先级最低 C)c程序中,j+;是赋值语句 D)c程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算(49)以下叙述中正确的是 A)预处理命令行必须位于c源程序的起始位置 B)在c语言中,预处理命令行都以,#开头 C)每个C程序必须在开头包含预处理命令行:#include D)c语言的预处理不能实现宏定义和条件编译的功能c,a+cb,b+ca。请填空 main() float a,b,c; scanf(%f%f%f),&a,&b,&c); if(_a+bc&a+cb&b+ca_)printf(YESn); /*a、b、c能构成三角形*/ else printf(NOn); /*a、b、c不能构成三角形*/ (8)以下程序的输出结果是_30_ main() int a33=1,2,9,3,4,8,5,6,7,i,s=0; for(i=O;i3;i+) s+=aii+ai3-i-1; printf(%dn,s); (9)当运行以下程序时,输入abcd,程序的输出结果是: _ a*b*c*d_。 insert(char str) int i; i=strlen(str);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1