计算机类 二级 C
2014年全国计算机等级《二级C语言程序设计》上机考试冲刺试题(5) 43 题 含答案 C
1 单选题 1 / 43
下面描述中,不属于软件危机表现的是( )。
A 软件过程不规范 B 软件开发生产率低 C 软件质量难以控制 D 软件成本不断提高
查看答案 A. 软件过程不规范
2 单选题 2 / 43
要求通过while循环不断读人字符,当读入字母N时结束循环,若变量已正确定义,下列正确的程序段是( )。
A while((ch=getchar())!='N')printf(”%c”,ch); B while(ch=getchar()!='N')printf(”%c”,ch); C while(ch=getchar()=='N')printf(”%c”,ch); D while((ch getchar())=='N')printf(”%c”,ch);
查看答案 A. while((ch=getchar())!='N')printf(”%c”,ch);
3 单选题 3 / 43
合法的c语言赋值语句是( )。
A a=b=58 B k=int(a+b); C a=58,b=58 D --i;
查看答案 D. --i;
4 单选题 4 / 43
下列叙述中错误的是( )。
A 列表框和组合框都有List属性 B 列表框有Selected属性,而组合框没有 C 列表框和组合框都有Style属性 D 组合框有Text属性,而列表框没有
查看答案 B. 列表框有Selected属性,而组合框没有
5 单选题 5 / 43
下述程序的输出结果是( )。 #include void main() {int b[6]={2,4,6,8,I0,12}; int*p=b,**q=&p; printf(”%d,”,*(p++)); printf(”%d,”, **q);
A 4,4 B 2,2 C 4,5 D 2,4
查看答案 D. 2,4
6 单选题 6 / 43
若要用函数fopen打开一个新的二进制文件,该文件要既能读也能写,则应以( )方式打开文件。
A ”wb” B ”wb+” C ”rb+” D ”rb”
查看答案 B. ”wb+”
7 单选题 7 / 43
若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是( )。
A -3 B 9 C -12 D 6
查看答案 C. -12
8 单选题 8 / 43
运行下列程序时,若输入的数据为“1,2,3”,则输出结果是( )。 main() { float a,h,e,t; seanf(”%f,%f,%f”,&a,&b,&c); if(a<B) {t=a;a=b;b=t;) if(a<C) {t=a;a=c;c=t;) it(b<C) {t=b.b=c;c=t;) printf(”%f\n%f\n%f\n”,a,b,c); )
A 1.00 B 1.00 2.00 3.00 3.00 2.00 C 1 D 3.00000 3 2.00000 2 1.00000
查看答案 D. 3.00000 3 2.00000 2 1.00000
9 单选题 9 / 43
以下关于typedef的叙述错误的是( )。
A 用typedef可以增加新类型 B typedef只是将已存在的类型用一个新的名字来代表 C 用typede{可以为各种类型说明一个新名,但不能用来为变量说明一个新名 D 用typedef为类型说明一个新名,通常可以增加程序的可读性
查看答案 A. 用typedef可以增加新类型
10 单选题 10 / 43
已知二又树后序遍历序列是dabec,中序遍历序列是debac,那么它的前序遍历序列是( )。
A acbed B decab C deabc D cedba
查看答案 D. cedba
11 单选题 11 / 43
设int x=7,则~x的值是( )。
A -8 B 7 C -1 D 1
查看答案 A. -8
12 单选题 12 / 43
有以下程序 #include void fun(char**D) {++P;printf(”%s”,*p);) main() { char*a[]={”Mornin9”,”Afternoon”,”Evening”,”Night”); fun(a): ) 程序的运行结果是( )。
A Afternoon B fternoon C Morning D orning
查看答案 A. Afternoon
13 单选题 13 / 43
有以下程序: #include main() {char X='A'; x=(x>='A' &&x<='Z')?(x十32):x; printf(”%c\n”,x); } 程序的输出结果是( )。
A A B a C Z D z
查看答案 B. a
14 单选题 14 / 43
假设a和b为int型变量,则执行以下语句后b的值为( )。 a==1;b=10: do { b-=a;a++;) while(b--<O):
A 9 B -2 C -1 D 8
查看答案 D. 8
15 单选题 15 / 43
面向对象的没计方法与传统的面向过程的方法有本质不同,它的基本原理是(, )。
A 模拟现实世界中不同事物之间的联系 B 强调模拟现实世界中的算法而不强调概念 C 使用现实世界的概念抽象地思考问题从而自然地解决问题 D 不强调模拟现实世界中的算法而强调概念
查看答案 C. 使用现实世界的概念抽象地思考问题从而自然地解决问题
16 单选题 16 / 43
函数fseek()的正确调用形式是( )。
A fseek(位移量,起始点,文件类型指针); B fseek(文件类型指针,位移量,起始点); C fseek(文件类型指针,起始点,位移量); D fseek(起始点,位移量,文件类型指针);
查看答案 B. fseek(文件类型指针,位移量,起始点);
17 单选题 17 / 43
以下叙述中正确的是( )。
A C语言程序总是从第一个定义的函数开始执行 B 在C语言程序中,要调用的函数必须在main()函数中定义 C C语言程序总是从main()函数开始执行 D C语言程序中的main()函数必须放在程序的开始部分
查看答案 C. C语言程序总是从main()函数开始执行
18 单选题 18 / 43
对下列二又树进行中序遍历的结果是( )。
A ACBDFEG B ACBDFGE C ABDCGEF D FCADBEG
查看答案 A. ACBDFEG
19 单选题 19 / 43
假定x和Y为double型,则表达式x=2,y=x+3/2的值是( )。
A 3.500000 B 3 C 2.000000 D 3.000000
查看答案 D. 3.000000
20 单选题 20 / 43
有以下程序: #inelude int f(int b[],int n) { int i,r=1; for(i=0;i<=n;i++)r=r*bEi3; return r; ) main() {int x,a[]={2,3,4,5,6,7,8,9); x=f(a,3); printf(”%a\n”,x); ) 程序的输出结果是( )。
A 720 B 120 C 24 D 6
查看答案 B. 120
21 单选题 21 / 43
在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是( )。
A 数据库系统 B 文件系统 C 人工管理 D 数据项管理
查看答案 A. 数据库系统
22 单选题 22 / 43
下列关于信息系统的叙述中,错误的是( )。
A 广播电视是一种双向的、点到多点的信息交互系统 B 网络聊天是一种双向的,以信息交互为主要目的的系统 C 电话是一种双向的、点对点的、以信息交互为主要目的的系统 D 雷达是一种以感测和识别为主要目的的系统
查看答案 A. 广播电视是一种双向的、点到多点的信息交互系统
23 单选题 23 / 43
以下叙述中错误的是( )。
A 对于double类型数组,不可以直接用数组名对数组进行整体输入或输出 B 数组名代表的是数组所占存储区的首地址,其值不可改变 C 当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息 D 可以通过赋初值的方式确定数组元素的个数
查看答案 C. 当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
24 单选题 24 / 43
在C语言程序中可用做用户标识符的是( )。
A void B aa 123 _abc BBN cas C as+b3 D 6f —123 Do If SIG
查看答案 B. aa 123 _abc BBN cas
25 单选题 25 / 43
下列程序的输出结果是( )。 #include main() { int i,s=0; for(i=1:i<10;i++) if(!(i%2)&&!(i%3))s+=i; printf(”%d\n”,s);
A 4 B 39 C 45 D 6
查看答案 D. 6
26 单选题 26 / 43
有以下程序: main() ( int k=5; while(--k)printf(”%d”,k-=3); printf(”n”); } 执行后的输出结果是( )。
A 1 B 2 C 4 D 死循环
查看答案 A. 1
27 单选题 27 / 43
有以下程序 #include void fun(int*a,int n)/*fun函数的功能是将a所指数组元素从大到小排序*/ { int t,i,j; for(i=0;i<N一1;J++) for(j=i+1;j<N;J++) if(a[i] } main() {int c[10]={1,2,3,4,5.6,7,8,9,0),i; fun(c+4.6): for(i=0;i<10;i++)printf(”%d,”,c[i]); printf(”n”): } } 程序运行的结果是( )。
A 1,2,3,4,5,6,7,8,9,0, B 0,9,8,7,6,5,1,2,3,4, C 0,9.8,7.6,5,4,3,2,1. D 1,2,3,4,9,8,7,6,5,0,
查看答案 D. 1,2,3,4,9,8,7,6,5,0,
28 单选题 28 / 43
以下程序段给数组所有元素输入数据: #includemain() {int a[10],i=0; while(i<10)scanf(”%d”,); } 应在下划线处填入的是( )。
A a+(i++) B &a[i+1] C a+i D &a[++i]
查看答案 A. a+(i++)
29 单选题 29 / 43
若有定义语句:int a[3][6];,按在内存中的存放顺序,a数组的第10个元素是( )。
A a[o][4] B all][3] C aEO][3] D a[1][4]
查看答案 B. all][3]
30 单选题 30 / 43
以下叙述中正确的是( )。
A 预处理命令行必须位于c源程序的起始位置 B 在c语言中,预处理命令行都以“#”开头 C 每个c程序必须在开头包含预处理命令行:#include D C语言的预处理不能实现宏定义和条件编译的功能
查看答案 B. 在c语言中,预处理命令行都以“#”开头
31 单选题 31 / 43
读取二进制文件的函数调用形式为:fread(buffer,size,count,fp);,其中buffer代表的是( )。
A 一个文件指针,指向待读取的文件 B 一个整型变量,代表待读取的数据的字节数 C 一个内存块的首地址,代表读人数据存放的地址 D 一个内存块的字节数
查看答案 C. 一个内存块的首地址,代表读人数据存放的地址
32 单选题 32 / 43
设“int x=2,y=1;”,则表达式(!x || y--)的值I是( )。
A 0 B 1 C 2 D -1
查看答案 B. 1
33 单选题 33 / 43
下列程序: int fun(int x[],int n) { static int sum=0,i; for(i=0;i return sum: main() {int a[]={1,2.3,4,5),b[]={6,7,8,9),s=0; s==fun(a,5)+fun(h,4),printf(”%d\n”.s); f 程序执行后的输出结果是( )。
A 45 B 50 C 60 D 55
查看答案 C. 60
34 单选题 34 / 43
在深度为5的满二叉树叶中,叶子结点的个数为( )。
A 32 B 31 C 16 D 15
查看答案 C. 16
35 单选题 35 / 43
可在c程序中用作用户标汉符的一组标识符是( )。
A void B as_b3 define _123 WORD If C For D 2c _abc DO case SlG
查看答案 B. as_b3 define _123 WORD If
36 单选题 36 / 43
有以下程序: main() { int k=5,n一0; do { switch(k) { case l: case 3:11+=1;k--;break; defalut:n=0;k--; case 2: case 4:n+=2;k--;break; printf(”%d”,n); }while(k>0&&n<5); } 程序运行后的输出结果是( )。
A 235 B 0235 C 02356 D 2356
查看答案 B. 0235
37 单选题 37 / 43
若希望下列的程序运行后输出25,程序空白处的正确选项是( )。 main() {int i,j=50,a[]={7,4,10,5,8); for( ) j+=a[i]; print{(”%d”,j-40); )
A i=1;i<4;++i B i=1;i<3;++i C i=4;i>2;i-- D i=2;i<4;++i
查看答案 D. i=2;i<4;++i
38 单选题 38 / 43
用链表表示线性表的优点是( )。
A 便于随机存取 B 花费的存储空间较顺序存储少 C 便于插入和删除操作 D 数据元素的物理顺序与逻辑顺序相同
查看答案 C. 便于插入和删除操作
39 单选题 39 / 43
以下关于long、int和short类型数据占用内存大小的叙述中正确的是( )。
A 均占4个字节 B 根据数据的大小来决定所占内存的字节数 C 由用户自己定义 D 由C语言编译系统决定
查看答案 D. 由C语言编译系统决定
40 单选题 40 / 43
下列叙述中正确的是( )。
A 在面向对象的程序设计中,各个对象之间具有密切的关系 B 在面向对象的程序设计中,各个对象都是公用的 C 在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小 D 上述3种说法都不对
查看答案 C. 在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小
41 主观题 41 / 43
请补充main()函数。该函数的功能是:求1~200中(不包括200)所有素数的平均值。 程序运行后的结果为91.89。 注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在m。in()函数的横线上填入所编写的若:F表达式或语句。 试题程序: #include #include void main() { int i,j,n=0,flag; float aver=0: system(”CLS”): for(j=2;j<2200;j++) { flag=1; for(i=2;i<J;I++) if(【1】) { flag=0; break; ) if(【2】) { n++; aver+=j; ) ) printf(”\n\n average=%4.2f\n”,【3】); )
查看答案 【1】j%i==0【2】FlAG==1 【3】AvEr/n
42 主观题 42 / 43
下列给定程序中,函数proc()的功能是:根据输入的3个边长(整型值),判断能否构成三角形:若能构成等边三角形,则返回3;若是等腰三角形,则返回2;若能构成三角形则返回1;若不能,则返回0。 例如,输入3个边长为3。4,5.实际输入时,数与数之间以Enter键分隔而不足逗号。 请修改程序中的错误.使它能得出正确的结果。 注意:不要改动main()函数。不得增行或删行.也不得更改程序的结构。 试题程序: #include #include int proc(int a.int b.int c) { if(a+b>c&&h+c>a&&a+c>b) { if(a==b&&b==c) //****found**** return 1; else if(a==b||b==e||a==c) return 2: f|****found**** else return 3: } else return 0: } void main() ( int a,b,C,shape; printf(”\nfnput a,b,e:”); scanf(”%d%d%d”,&.a&.b,&c); printl'(”na=%d,b-%d,e=%d\n”,a,b,c); shape=proc(a,b,c); printl.(”\n\nThe shape:%d\n”,shape); }
查看答案 (1)错误:rEturnl;正确:rEturn3; (2)错误:rEturn3;正确:rEturnl;
43 主观题 43 / 43
假定输入的字符串中只包含字母和*号。请编写函数proc(),它的功能是:将字符串中的前导*号全部删除,中间和后面的*号不删除。 例如,若字符串中的内容为****a*bc*def*g****,删除后,字符串中的内容则应当是a*bc*def*g****。 注意:部分源程序给出如下。 清勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。 试题程序: #include #include void proc(char * str) { void main() char str[81]; printf(”Enter a string:n”); gets(str); proc(str); printf(”The string after deleted:n”); puts(str);)
查看答案 voiDproC(ChAr*str) char*D=str: while(*p=='*')p++;//通过P的移动来达到使P指向第一个不是*号的字符 for#;”P!='\0';P++,strff‘+#//把从第一个不是*号的字符放到a中 *str=*P: *str=’\0';//最后用'\o'作为字符串结束标志