2017年计算机二级考试题库(1)C语言模拟考试
-
有以下程序
void ss(char *s,char t)
{ while(*s)
{ if(*s==t)*s=t-′a′+′A′;
s++; } }
main()
{ char str1[100]="abcddfefdbd",c=′d′;
ss(str1,c); printf("%s\n",str1);}
程序运行后的输出结果是
- A.ABCDDEFEDBD
- B.abcDDfefDbD
- C.abcAAfefAbA
- D.Abcddfefdbd
-
若有如下程序: int sub() {static int n=1; int x=1; x*=n;n++; return x; } main() {int n,t=1; for(n=1;n<6;n++)t*=sub(); printf("%d\n",t); } 则程序运行后的输出结果是( )
- A.15
- B.120
- C.34560
- D.-30976
-
程序设计的任务包括( )。
- A.编写程序代码并上机调试
- B.确定所用数据结构
- C.确定所用算法
- D.以上选项均正确
-
以下叙述中错误的是 ______。
- A.C语句必须以分号结束
- B.复合语句在语法上被看作一条语句
- C.空语句出现在任何位置都不会影响程序运行
- D.赋值表达式末尾加分号就构成赋值语句
-
以下程序执行后sum的值是( )。
- A.15
- B.14
- C.不确定
- D.0 main() { int i, sum; for(i=1;i<6;i++) sum+=i; printf("%d\n",sum); }
-
下列选项中,当x为大于1的奇数时,值为0的表达式是( )。
- A.x%2==1
- B.x/2
- C.x%2!=0
- D.x%2==0
-
有以下程序: void sum(int a[]) {a[0]=a[-1]+a[1];} main() {int a[10]={1,2,3,4,5,6,7,8,9,10}; sum(&a[2]); printf("%d\n",a[2]); } 程序运行后的输出结果是( )。
- A.6
- B.7
- C.5
- D.8
-
有以下程序
#include
void fun(int x)
{if(x/2>1)fun(x/2);
printf(”%d”,x);
}
main( )
{fun(7);printf(”\n”);}
程序运行后的输出结果是( )。
- A.1 3 7
- B.7 3 1
- C.7 3
- D.3 7
-
在嵌套使用if语句时,C语言规定else总是( )。
- A.和之前与其具有相同缩进位置的if配对
- B.和之前与其最近的if配对
- C.和之前与其最近的且不带else的if配对
- D.和之前的第一个if配对
-
有以下定义
#include <stdio.h>
char a[10],*b=a;
不能给a数组输入字符串的语句是
- A.gets(A)
- B.gets(a[0]);
- C.gets(&a[0]);
- D.gets(B) ;
-
下列4项说法中,不正确的是______。
- A.数据库减少了数据冗余
- B.数据库中的数据可以共享
- C.数据库避免了一切数据的重复
- D.数据库具有较高的数据独立性
-
在进行单元测试时,常用的方法是
- A.采用白盒测试,辅之以黑盒测试
- B.采用黑盒测试,辅之以白盒测试
- C.只使用白盒测试
- D.只使用黑盒测试
-
下列叙述中正确的是______。
- A.break语句只能用于switch语句
- B.在switch语句中必须使用default
- C.break语句必须与switch语句中的case配对使用
- D.在switch语句中不一定使用break语句
-
下面程序的输出结果是______。 main() {int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a+4; printf("%d\n",p[3]); }
- A.6
- B.7
- C.3
- D.5
-
下列关于C语言文件的叙述中正确的是
- A.文件由一系列数据依次排列组成,只能构成二进制文件
- B.文件由结构序列组成,可以构成二进制文件或文本文件
- C.文件由数据序列组成,可以构成二进制文件或文本文件
- D.文件由字符序列组成,其类型只能是文本文件
-
设有以下函数: f(int a) { int b=0; static int c=3; b++; c++; return(a+b+c); } 如果在下面的程序中调用该函数,则输出结果是______。 main() { int a=2, i; for(i=0; i<3; i++)printf("% d\n", f(a)); }
- A.7 8 9
- B.7 9 11
- C.7 10 13
- D.7 7 7
-
以下程序运行时若要正确输出函数的入口地址和输入数的绝对值,应在程序空缺处填入的正确选项是
abs(int x)
{ if(x>=0)return x;
else return -x; }
main()
{ int y,z,(*p)(int x)=abs;
scanf(" %d" ,&y);
z=(*p)(y);
; }
- A.printf(" %d %d\n",&p,z)
- B.printf(" %d%d\n" ,p,z)
- C.printf(" %d %d\n",*p,z)
- D.printf(" %d%d\n" ,p,*z)
-
下列描述中正确的是( )。
- A.软件工程只是解决软件项目的管理问题
- B.软件工程主要解决软件产品的生产率问题
- C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则
- D.软件工程只是解决软件开发中的技术问题
-
在学生管理的关系数据库中,存取一个学生信息的数据单位是
- A.文件
- B.数据库
- C.字段
- D.记录
-
有以下程序
#include
int fun ()
{ static int x=1;
x*2; return x;
}
main ()
{ int i,s=1 ,
for ( i=1;i<=2;i++ ) s=fun () ;
printf ( " %d \ n " ,s ) ;
}
程序运行后的输出结果是
- A. 0
- B. 1
- C. 4
- D. 8
-
有以下程序 int f (int A) { return a%2; } main ( ) { int s[8]={1,3,5,2,4,6),i,d=0; for (i=0; f(s[i]; i++) d +=s[i]; print f ("%d\n", D) ; } 程序运行后的输出结果是
- A.9
- B.11
- C.19
- D.21
-
在软件生存周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是( )。
- A.概要设计
- B.详细设计
- C.可行性分析
- D.需求分析
-
若有定义float a[15],*p=a;,且数组a的首地址为300H,则p+13所指向的数组元素的地址为 ( )。
- A.334H
- B.30DH
- C.352H
- D.31AH
-
对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是
- A.快速排序
- B.冒泡排序
- C.直接插入排序
- D.堆排序
-
若有以下程序段int m=0xabc,n=0xabc;m-=n;printf("%X\n",m);执行后输出结果是
- A.0X0
- B.0x0
- C.0
- D.0XABC
-
设变量P是指针变量,语句P=NULL;是给指针变量赋NULL值,它等价于( )。
- A.p="";
- B.p="0";
- C.p=0;
- D.p="";
-
在C语言中,函数返回值的类型最终取决于( )。
- A.函数定义时在函数首部所说明的函数类型
- B.return语句中表达式值的类型
- C.调用函数时主调函数所传递的实参类型
- D.函数定义时形参的类型
-
下面叙述正确的是 ______ 。
- A. 算法的执行效率与数据的存储结构无关
- B. 算法的空间复杂度是指算法程序中指令(或语句)的条数
- C. 算法的有穷性是指算法必须能在执行有限个步骤之后终止
- D. 以上三种描述都不对
-
x,y,z被定义为int型变量,若从键盘给x,y,z输入数据,正确的输入语句是
- A.INPUT x、v、z;
- B.scanf("%d%d%d",&x,&y,&z);
- C.scanf("%d%d%d",x,y,z);
- D.read("%d%d%d",&x,&y,&z);
-
若有说明int a[][3]={0,0};,则不正确的叙述是( )。
- A.数组a的每个元素的初值都是0
- B.数组a的第一维大小为1
- C.数组a的行数为1
- D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
-
程序流程图中带有箭头的线段表示的是( )。
- A.图元关系
- B.数据流
- C.控制流
- D.调用关系
-
对线性表进行二分法检索,其前提条件是( )。
- A.线性表以顺序方式存储,并按关键码值排好序
- B.线性表以顺序方式存储,并按关键码的检索频率排好序
- C.线性表以链式方式存储,并按关键码值排好序
- D.线性表以链式方式存储,并按关键码的检索频率排好序
-
有以下程序: #include <stdio.h>point ( char * p) { p + = 3; }main( ) char b[4] = {'a','b','c','d'} , *p=b; point(p); printf( "% c \n" , * p);
- A.a
- B.b
- C.c
- D.d
-
若函数中有定义语句:int a;,则( )。
- A.系统将自动给a赋初值0
- B.这时a中的值是和随机数
- C.系统将自动给a赋初值-1
- D.这a中无任何值
-
以下能正确定义一维数组的选项是( )。
- A.int a[5] ={0,1,2,3,4,5};
- B.char a[ ] = {0,1,2,3,4,5};
- C.char a = {'A','B','C '};
- D.int a[5] = "0123";
-
已有定义int(*q)(),指针q可以( )。
- A.指向函数的入口地址
- B.代表函数的返回值
- C.表示函数的类型
- D.表示函数返回值的类型
-
若有定义int a=5,b=7;,则表达式a%=(b%2)运算后,a的值为( )。
- A.0
- B.1
- C.11
- D.3
-
假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为
- A.log2n
- B.n2
- C.O(n1.5)
- D.n(n-1)/2
-
若有定义语句:int X=10;,则表达式x -=x+X的值为
- A.-20
- B.-10
- C.0
- D.10
-
以下选项中的表达式调用库函数依次求-4.5的绝对值、-4.0的平方根值、30°角的正弦值和2的3次方值。正确的调用是( )
- A.abs(-4.5)
- B.sqrt(-4.0)
- C.sin(3.1416/6.0)
- D.paw(2.0,3.0)
-
以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是
- A.feof(fp)
- B.ftell(fp)
- C.fgetc(fp)
- D.rewind(fp)