1、二级C语言笔试题一 、选择题(1)下列数据结构中,按先进后出原则组织数据的是A)线性链表B)栈C)循环链表D)顺序表 正确答案: B (2)具有3个结点的二叉树有A)2种形态B)4种形态C)7种形态D)5种形态 正确答案: D (3)设有下列二叉树:对此二叉树前序遍历的结果为A)ZBTYCPXAB)ATBZXCYPC)ZBTACYXPD)ATBZXCPY 正确答案: B (4)结构化程序设计主要强调的是A)程序的规模B)程序的效率C)程序设计语言的先进性D)程序易读性 正确答案: D (5)程序的3种基本控制结构是A)过程、子过程和分程序B)顺序、选择和重复C)递归、堆栈和队列D)调用、返回和
2、转移 正确答案: B (6)下列叙述中,不属于测试的特征的是A)测试的挑剔性B)完全测试的不可能性C)测试的可靠性D)测试的经济性 正确答案: C (7)需求分析中开发人员要从用户那里了解A)软件做什么B)用户使用界面C)输入的信息D)软件的规模 正确答案: A (8)下列关系模型中,能使经运算后得到的新关系中属性个数多于原来关系中属性个数的是A)选择B)连接C)投影D)并 正确答案: B (9)下列叙述中,正确的是 A)用E-R图能够表示实体集间一对一的联系、一对多的联系和多对多的联系B)用E-R图只能表示实体集之间一对一的联系C)用E-R图只能表示实体集之间一对多的联系D)用E-R图表示的
3、概念数据模型只能转换为关系数据模型 正确答案: C (10)年龄在1825之间这种约束是属于数据库当中的A)原子性措施B)一致性措施C)完整性措施D)安全性措施 正确答案: C (11)以下说法错误的是A)高级语言都是用接近人们习惯的自然语言和数学语言作为语言的表达形式B)计算机只能处理由0和1的代码构成的二进制指令或数据C)C语言源程序经过C语言编译程序编译之后生成一个后缀为.EXE的二进制文件D)每一种高级语言都有它对应的编译程序正确答案: C (12)算法是指为解决某个特定问题而采取的确定且有限的步骤,下面不属于算法的五个特性的是A)有零个输入或多个输入B)高效性 C)有穷性D)确定性正
4、确答案: B (13)已知int a=6; 则执行a+=a-=a*a;语句后,a的值为A)36B)0C)-24D)-60正确答案: D (14)下面各选项中,均是C语言标识符的选项组是A)forchinatoB)long_123short56_do C)voidunion_342D)text.txt _023_3ew正确答案: B (15)下列表达式中,结果为5的是A)6*5%6B)5*-2+15C)5+75%10D)6+-2/3正确答案: B (16)下列常量中,为不合法的实型常量表示的是A).0032B)0.0C)0.3242E8D).E3正确答案: D (17)关于C语言的主函数描述正确
5、的是A)C程序可以有多个main函数B)C程序必有一个而且只能有一个main函数C)C程序可以没有main函数D)C程序的执行不一定在main函数开始执行正确答案: B (18)已知int a=1,b=-1;则语句printf(%dn,(a-,+b);的输出结果是A)-1B)0C)1D)语句错误正确答案: B (19)已知int a,b;double c;则以下语句中错误的函数调用是A)scanf(%d,%x,%lf,&a,&b,&c);B)scanf(%d,%d,%le,&a,&b,&c);C)scanf(%o,%x,%o,&a,&b);D)scanf(%d,%o,%e,&a,&b,&c);
6、正确答案: D (20)已知x,y,z均为整型变量,且值均为1,则执行语句+x|+y&+z;后,表达式x+y的值为A)1B)2C)3D)4正确答案: C (21)若int k=8;则执行下列程序后,变量k的正确结果是main()int k=8;switch(k)case 9:k+=1;case 10:k+=1;case 11:k+=1;break;default:k+=1;printf(%dn,k);A)12B)11C)10D)9正确答案: D (22)若int i,j;,则for(i=j=0;i10&j8;i+,j+=3)控制的循环体执行的次数是A)9B)8C)3D)2正确答案: C (23
7、)下列程序的输出结果是#include stdio.hmain() int i=6;while(i-)printf(%d,-i);printf(n);A)531B)420C)654321D)死循环正确答案: B (24)阅读下列程序,则执行结果是#include stdio.hmain()int a=0,b=0,c=0,i;for(i=0;i4;i+)switch(i)case 0:a=i+;case 1:b=i+;case 2:c=i+;case 3:i+;printf(%d,%d,%d,%dn,a,b,c,i);A)0,1,3,4B)1,2,3,4C)0,1,2,5D)0,2,3,4正确答
8、案: C (25)下面程序的运行结果是#include stdio.hmain()int j,i,k=0;for(j=50;j=60;j+)if(!(k%10)printf(n);for(i=2;i=j-1)printf(%d,j);k+;A)5359B)5953C)3595D)9535正确答案: A (26)已知char ch=C;则以下表达式的值是ch=(ch=A & ch0)fun(x/2);printf(%d,x%2);main() fun(20);putchar(n);A)11100B)10100C)10101D)10110正确答案: B (47)阅读如下程序段,则执行后程序的输出结
9、果是#include main()structaint x; int y;num2=20,5,6,7;printf(%dn,num0.x/num0.y*num1.y);A)0B)28C)20D)5正确答案: B (48)阅读程序段,则执行后的输出结果为#include stdio.htypedef union long x2;int y4;char z8; atx;typedef struct aa long x2;int y4;char z8; stx;main()printf(union=%d,struct aa=%dn,sizeof(atx),sizeof(stx);A)union=8,
10、struct aa=8B)union=8,struct aa=24C)union=24,struct aa=8D)union=24,struct aa=24正确答案: B (49)阅读下列程序段#include stdio.htypedef struct aa int a;struct aa *next; M;void set(M *k,int i,int *b) int j,d=0;for(j=1;jnext-aB)+p-aC)(*p).a+D)p+-a正确答案: A (50)阅读下面程序,程序实现的功能是(a123.txt在当前盘符下已经存在)#include stdio.hvoid ma
11、in()FILE *fp;int a10,*p=a;fp=fopen(a123.txt,w);while( strlen(gets(p)0 ) fputs(a,fp);fputs(n,fp);fclose(fp);A)从键盘输入若干行字符,按行号倒序写入文本文件a123.txt中B)从键盘输入若干行字符,取前2行写入文本文件a123.txt中C)从键盘输入若干行字符,第一行写入文本文件a123.txt中D)从键盘输入若干行字符,依次写入文本文件a123.txt中正确答案: D 二 、填空题(1)排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、 【1】 和选择排序等。正确答案:
12、1.(交换排序) (2)当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算。这种情况称为 【2】 。正确答案: 1.(上溢) (3) 【3】 是一种信息隐蔽技术,目的在于将对象的使用者和对象的设计者分开。正确答案: 1.(封装) (4)为了便于对照检查,测试用例应由输入数据和预期的 【4】 两部分组成。正确答案: 1.(输出结果) (5) 【5】 是从二维表列的方向进行的运算。正确答案: 1.(关系运算) (6)定义int a=5,b=20;若执行语句printf(%dn,+a*-b/5%13);后,输出的结果为 【6】 。正确答案: 1.(9) (7)执行程序时的输入
13、为123456789,则程序的运行结果为 【7】 。#include stdio.hmain() int a,b;scanf(%2d%*2d%1d,&a,&b);printf(%dn,a-b);正确答案: 1.(7) (8)阅读下面程序,则在执行时候的输出为 【8】 。#include stdio.hmain()int x=1,y=2,z=0;if(x=2)z=x,x=y,y=z;printf(%d,%dn,x,y);正确答案: 1.(2,2) (9)语句printf(%dn,H-0+64);的执行结果为 【9】 。正确答案: 1.(88) (10)阅读下面程序,则程序的执行结果为 【10】
14、。#include stdio.hmain() int a=10;fun(a);printf(%dn,a);fun(int x) x=50;正确答案: 1.(10) (11)以下程序的输出结果是 【11】 。int fun(int x,int y,int *p,int *q) *p=x*y;*q=x/y;main()int a,b,c,d;a=4;b=3;fun(a,b,&c,&d);printf(%d,%dn,c,d);正确答案: 1.(12,1) (12)下面程序是求出数组arr的两条对角线上元素之和,请填空。#include stdio.hmain()int arr33=2,3,4,8,
15、3,2,7,9,8,a=0,b=0,i,j;for(i=0;i3;i+)for(j=0;j3;j+)if( 【12】 )a=a+arrij;for(i=0;i=0;j-)if( 【14】 )b=b+ arrij;printf(%d,%dn,a,b);正确答案: 1.(i=j ) 2.(j=2) 3.(i+j=2) (13)下面程序的功能是:对字符串从小到大进行排序并输出,请填空。#include string.h#include stdio.hsort(char *a,int n) int i,j;char *p;for(j=1;j0) p=ai;ai=ai+1;ai+1=p;main() i
16、nt i;char *book=itisme,itisyou,howareyou,fine,goodnight,goodbye;sort( 【17】 );for(i=0;i6;i+)printf(%sn,booki);正确答案: 1.(in-j) 2.(strcmp(ai,ai+1)) 3.(book,6) (14)下面的函数是完成1n的累加,完成函数。a(int k)if(knext=NULL;head=q;else q-next=head;head=q;main()char ch;struct node *p;head = NULL;while(ch=getchar()!=n)p=(struct node *)malloc(sizeof(struct node);p-data=ch;fun(p); p=head;while(p!=NULL)printf(%c,p-data);p=p-next; 正确答案: 1.(从键盘输入一行字符串,调用函数建立反序的链表,然后输出整个链表)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1