2017年计算机二级c语言考试题(1)
-
C语言规定,程序中各函数之间_______。
- A.既允许直接递归调用也允许间接递归调用
- B.不允许直接递归调用也不允许间接递归调用
- C.允许直接递归调用不允许间接递归调用
- D.不允许直接递归调用允许间接递归调用
-
要求通过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);
-
下述程序向文件输出的结果是______。 #include<stdio.h> void main() { FILE *fp=fopen("TESY","wb"); fprintf(fp,"%d%5.0f%c%d",58,76273.0,'-',2278); fclose(fp); }
- A.58 76273-2278
- B.5876273.000000-2278
- C.5876273-2278
- D.因文件为二进制文件而不可读
-
以下叙述中错误的是
- A.C语言的可执行程序是由一系列机器指令构成的
- B.用C语言编写的源程序不能直接在计算机上运行
- C.通过编译得到的二进制目标程序需要连接才可以运行
- D.在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件
-
以下关于C语言数据类型使用的叙述中错误的是
- A.若要准确无误差的表示自然数,应使用整数类型
- B.若要保存带有多位小数的数据,应使用双精度类型
- C.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型
- D.若只处理“真”和“假”两种逻辑值,应使用逻辑类型
-
下面程序的输出结果是 #include<stdio.h> #include<string.h> main() { char *p1="abc",*p2="ABC",str[50]="xyz"; strcpy(str+2,strcat(p1,p2)); printf("%s\n",str);}
- A.xyzabcABC
- B.zabcABC
- C.xyabcABC
- D.yzabcABC
-
若有下列说明语句 int(* p)(); 则标识符p代表的是( )
- A.一个用于指向函数的指针变量,函数返回值的类型为int型
- B.一个带回值类型为整型的函数名
- C.一个用于指向整型数据的指针变量
- D.一个带回值类型为指针类型的函数名
-
有以下程序 main() { int num[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j; for(i=0;i<4;i++) { for(j=0; j<=i;j++) printf("%4c","); for(j=______;j<4;j++) printf("%4d",num[i][j]); printf("\n"); } } 若要按以下形式输出数组右上半三角 1 2 3 4 6 7 8 11 12 16 则在程序下划线处应填入的是______。
- A.i-1
- B.i
- C.i+1
- D.4-i
-
下列叙述中正确的是( )。
- A.测试工作必须由程序编制者自己完成
- B.测试用例和调试用例必须一致
- C.一个程序经调试改正错误后,一般不必再进行测试
- D.上述三种说法都不对
-
在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是
- A.并
- B.交
- C.投影
- D.笛卡儿乘积
-
以下选项中可作为C语言合法常量的是 _____。
- A.-80
- B.-080
- C.-8e1.0
- D.-80.Oe
-
有以下程序:
#include
void fun(int*s)
{ static int i=0;
do{s[J]=s[J]+s[j+I];}while(++j<2);
}
main( )
{ int k.a[l0]={1,2,3,4,5};
for(k=1;k<3;k++)fun(a);
for(k=0;k<5;k++)pfintf("%d",a[k]);
printf("\n");
}
程序运行后的输出结果是( )。
- A.12345
- B.23445
- C.34756
- D.35745
-
下列数据结构中,能用二分法进行查找的是( )。
- A.无序线性表
- B.线性链表
- C.二叉链表
- D.顺序存储的有序表
-
有下列程序:
main()
{ int y=20;
do{y--;}while(--y);
phntf("%d\n",y--);
}
当执行程序时,输出的结果是( )。
- A.-1
- B.1
- C.4
- D.0
-
设有以下定义 int a=0; double b=1.25; char c='A'; #define d 2 则下面语句中错误的是
- A.a++;
- B.b++;
- C.c++;
- D.d++;
-
若已定义: int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i; 其中0≤i≤9,则对a数组元素不正确的引用是______。
- A.a[p-a]
- B.*(&a[i])
- C.p[i]
- D.a[10]
-
若有如下程序段,其中s. a. b. c均已定义为整型变量,且a. c均已赋值(c大于0) s=a; for (b=1;b <=c;b++) s=s+1; 则与上述程序段功能等价的赋值语句是
- A.s=a+b;
- B.s=a+c;
- C.s=s+c;
- D.s=b+c;
-
实体联系模型中实体与实体之间的联系不可能是
- A.一对一
- B.多对多
- C.一对多
- D.对零
-
若fp是指向某文件的指针,且尚未读到文件末尾,则函数feof(fp)的返回值是( ).
- A.EOF
- B.-1
- C.非零值
- D.0
-
用链表表示线性表的优点是( )。
- A.便于随机存取
- B.花费的存储空间较顺序存储少
- C.便于插入和删除操作
- D.数据元素的物理顺序和逻辑顺序相同
-
对序线性表(23,29,34,55,60,70,78)用二分法查找值为60的元素时,需要比较次数为( )。
- A.1
- B.2
- C.3
- D.4
-
有以下程序: #include <stdio, h>main ( ) { int k=5,n =0; while ( k>0) { switch (k) { default: break; case 1 : n+ =k; case 2 : case3 : n+ =k; } k--; printf( "% d \n" ,n);}程序运行后的输出结果是( )。
- A.0
- B.4
- C.6
- D.7
-
若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是 ( )
- A.1
- B.2
- C.2
- D.2.5
-
对一个关系投影操作以后,新关系的元组个数______原来关系的元组个数。
- A.小于
- B.小于或等于
- C.等于
- D.大于
-
下列程序的输出结果是( )。
main
{ int a,b,d=25;
- a=d/10%9;
- b=a&&(一1); printf("%d,%d\n",a,b);}
- A.6,1
- B.2,1
- C.6,0
- D.2,0
-
为了提高软件模块的独立性,模块之间最好是( )。
- A.控制耦合
- B.公共耦合
- C.内容耦合
- D.数据耦合
-
下列程序的输出结果是( )。 main () { int a=4,b=5,c; if(a<b) { c=a*b; printf("%d,%d,%d\n",b,a,c);} else { c=b/a;printf("%d,%d,%d\n",b,a, c);} }
- A.4,5,12
- B.20
- C.5,4,20
- D.12
-
执行下列程序后,输出的结果是( )。
#include<stdio.h>
#define S(X)X*X
void main()
{ iht a=9,k=3,m=2;
- a/=S(k+m)/S(k+m); printf("%d",A) ; }
- A.1
- B.4
- C.9
- D.0
-
有以下程序: #include <stdio. h> main ( ) { inti=0.s=0; for(;;) if( i = = 3 ‖ i = = 5 ) continue; if (i ==6) break; i++; s+ =i; } printf(" % d \n" ,s);程序运行后的输出结果是( )。
- A.10
- B.13
- C.21
- D.程序进入列循环
-
有以下程序 int fun1(double a){return a*=a;} int fun2(double x,double y) {double a=0,b=0; a=fun1(x);b=fun1(y);return(int)(a+b); } main() {double w;w=fun2(1.1,2.0);…} 程序执行后变量w中的值是
- A.5.21
- B.5
- C.5.0
- D.0.0
-
数据库 DB 、数据库系统 DBS 、数据库管理系统 DBMS 之间的关系是
- A.DB 包含 DBS 和 DBMS
- B.DBMS 包含 DB 和 DBS
- C.DBS 包含 DB 和 DBMS
- D. 没有任何关系
-
设q1和q2是指向一个float型一维数组的指针变量,k为float型变量,则不能正确执行的语句是( )。
- A.k=*q1+*q2;
- B.q1=k;
- C.q1=q2;
- D.k=*q1*(*q2);
-
结构化分析方法是面向( )的自顶向下逐步求精进行需求分析的方法。
- A.对象
- B.数据结构
- C.数据流
- D.目标
-
数据处理的最小单位是
- A.数据
- B.数据元素
- C.数据项
- D.数据结构
-
若以“a+”方式打开一个已存在的文件,则下列叙述正确的是( )。
- A.文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可以进行添加或读操作
- B.文件打开时,原有文件内容不被删除,只能进行读操作
- C.文件打开时,原有文件内容被删除,只能进行写操作
- D.以上三种说法都不正确
-
在软件测试设计中,软件测试的主要目的是
- A.实验性运行软件
- B.证明软件正确
- C.找出软件中全部错误
- D.尽可能多地发现软件中的错误
-
当执行下面的程序时,如果输入ABC,则输出结果是 ( ) # include<stdio.h> # include<string.h> main( ) { char ss [10] ="12345"; gets(ss);strcat(ss"6789");printf("%s\n",ss); }
- A.ABC6789
- B.ABC67
- C.12345ABC6
- D.ABC456789