计算机等级《二  级C语言程序设计》预测试卷(一)
一、单项选择题(共40题,合计40分)
1以下能正确定义一维数组的选项是(  )。
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”;
[正确答案]B
试题解析:
数组下标从0开始,A选项中所赋值的个数超过了数组的长度;c选项中定义a为字符型变量,而不是数组,赋值错误;D选项中,整型数组不能赋字符串。 
   
2视图设计一般有3种设计次序,下列不属于视图设计次序的是(  )。
A.自顶而下
B.由内向外
C.由外向内
D.自底向上
[正确答案]C
试题解析:
视图设计的设计次序分3种:自顶向下、自底向上和由内向外。它们为视图设计提供了具体的操作方法,设计者可根据实际情况灵活掌握。 
   
3链表不具有的特点是(  )。
A.不必事先估计存储空间
B.町随机访问任意元素
C.插入、删除不需要移动元素
D.所需空间与线性表长度成正比
[正确答案]B
试题解析:
链表采用的是链式存储结构,它的结点空间可以动态申请和释放;它的数据元素的逻辑次序靠结点的指针来指示,插入、删除不需要移动数据元素。但是链式存储结构也有不足之处:每个结点中的指针域需额外占用存储空间,它是一种非随机存储结构。 
   
4有以下程序:
main()
{  int x,i;
for(i=l;i<=50;i++)
{x=i;
if(x%2=0)
if(x%3=0)
if(x%7=0)
printf(”%d,i)”;
}
}
输出结果是(  )。
A.28
B.27
C.42
D.41
[正确答案]C
试题解析:
只有当3个if条件同时成立,即能够同时被2、3、7整除时,才输出i的值,而从0到50能够同时被2、3、7整除的数只有42,故选择C选项。 
   
5若已定义: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十i))
[正确答案]D
试题解析:
A:P开始是数组a首地址,只要p++则再减去a的首地址aEp—a]就能取到所有元素,B:&a[i]循环取其地址,*(&a[i])是该地址中所存储的元素C:p就是指针变量,相当于a[i],D:*(a+i)则正确。
   
6设有下列程序段:
char str[]="HelloWorld":
char*ptr;
ptr=str ;
执行上面的程序段后,*(ptr+10)的值为(    )。
A.'\O'
B.'0'
C.不确定的值
D.'0'的地址
[正确答案]A
试题解析:
本题主要考查字符数组和指针,在c语言中,字符型数组在存放字符串时会自动在末尾加上'\0',所以数组str有ll个元素;ptr指向数组str的首地址,ptr+10是指向str[10],*(ptr+10)是引用strEl0]的值。
   
7下列4个关于C语言的结论中错误的是(  )。
A.可以用do while语句实现的循环一定可以用while语句实现
B.可以用for语句实现的循环一定可以用while语句实现
C.可以用while语句实现的循环一定可以用for语句实现
D.do-while语句与while语句的区别仅是关键字“while”出现的位置不同
[正确答案]D
试题解析:
本题考查对各个循环语句的理解。do—while语句、for语句、while语句所实现的循环可以相互替代;d0—while语句至少执行一次,而while是符合条件执行,不符合不执行。
   
8有以下程序: 
#include<stdio.h>
main(  )   
{char s[]="012xy\O8s34f4w2‘; 
int i;n=0;    , 
for(i=0;s[i]!=0;i++)
if(s[i]>='0'&&s[i]<='9')n++; 
printf("%d\n",n); 
}   
程序运行后的输出结果是(  )。
A. 0   
B. 3
C. 7   
D. 8
[正确答案]B
试题解析:
考查简单的C程序数组和循环。for循环是指i=0,如果s/[3]!=0,则i自动加1。if循环指的是s[i]中的元素大于等于0且小于等于9,则n加l,所以答案为B。
   
9若有以下说明,则(  )不是对strcpy库函数正确的调用。
strcpy库函数用于复制一个字符串:char*str1==”abed”,
strZ[10],*str3="hijklmn",*str4[-2],*str5=”aaaa”;
A.strcpy(str2,str1)
B.strcpy(str3,slrl)
C.strcpy(str1,str2)
D.strcpy(str5,strl)
[正确答案]C
试题解析:
strcpy(sl,s2)函数的功能是将字符串s2复制到字符串sl中。要保证sl存储区能容纳下s2字符串。
   
10数据库系统的核心是(  )。
A.数据模型
B.数据库管理系统
C.数据库
D.数据库管理员
[正确答案]B
试题解析:
本题考查对数据库系统的理解。数据库系统由数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、硬件平台(硬件)、软件平台5个部分构成。其中数据库管理系统是数据库系统的核心,它负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等工作。 
   
11有下列函数定义:
关于printf函数正确的是
fun(float h)
{ printf(”%f,%f\n”,h,h*h);)
该函数的类型是(  )。
A.int类型
B.float类型
C.void类型
D.函数无类型说明,定义有错
[正确答案]A
试题解析:
本题考查函数值的类型,在函数定义时,由于函数没有说明其类型,系统默认一律自动按整型(int)处理。
   
12有以下程序
#include
struct tt
{int x;struct tt*y;)*P;