2012年9月计算机等级考试二级C语言考前全真模拟试卷(六)
-
以下程序的输出结果是
main()
{
int x=0;
sub(&x,8,1);
printf("%d\n",x);
}
sub(int *a,int n,int k)
{
if(k<=n)
sub(a,n/2,2*k);
*a+=k;
}
-
若有定义语句:char s[100],d[100];int j=0,i=0;且s中已赋字符串,请填空以实现复制。(注:不使用逗号表达式)
while(s[i]){d[j]=;j++;}
d[j]=0;
-
是数据库应用的核心。
-
软件的面向数据流的设计方法利用其定义的映射方法可以把数据流图变换成软件结构,在映射中,一般将数据流分为和事务流两种。
-
以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
例如,若一维数组中的数据是:
2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10
删除后,数组中的内容应该是:
2 3 4 5 6 7 8 9 10。请填空。
#include
#define N 80
int fun(int a[], int n)
{ int i,j=1;
for(i=1;i
if(a[j-1]a[i])
a[j++]=a[i];
;
}
main()
{ int a[N]={ 2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10}, i, n=19;
printf("The original data :\n");
for(i=0; i
printf("%3d",a[i]);
n=fun(a,n);
printf("\nThe data after deleted :\n");
for(i=0; i
printf("%3d",a[i]);
printf("\n");
}
-
现有两个C程序文件T18.c和myfun.c同在TC系统目录(文件夹)下,其中T18.c文件如下:
#include
#include "myfunc.c"
main()
{
fun();
printf("\n");
}
myfun.c文件如下:
void fun()
{
char s[80],c;
int n=0;
while((c=getchar())!="\n")
s[n++]=c;
n--;
while(n>=0)
printf("%c",s[n-1]);
}
当编译链接通过后,运行程序T18时,输入Thank!,则输出结果是:
-
以下程序运行后的输出结果是
int a=5;
fun(int b)
{ static int a=10;
a+=b++;
printf("%d, ",a);
}
main
{ int c=20;
fun(c);
a+=c++;
printf("%d\n",a);
}
-
用树形结构表示实体类型及实体间联系的数据模型称为
-
在长度为n的有序线性表中进行二分查找。最坏的情况下,需要比较的次数为
-
以下程序的输出结果是
#include "stdio.h"
main()
{ int a=065;
printf("%d\n",--a);
}
-
设有定义“struct {int a; float b; char c;} abc, *p_abc=&abc;”,则对结构体成员a的引用方法可以是abc.a和p_abca。
-
已有定义:int *p;,请写出完整的语句,利用malloc函数使p指向一个整型的动态存储单元
-
算法的5个主要特征包括:有穷性、可行性、、输入、输出。
-
若输入字符串:abcde↙,则以下while循环体将执行次。
while((ch=getchar())==’e’)printf("*");
-
有以下程序
main()
{
int n[3],i,j;
for(i=0;i<3;i++)
n[i]=0;
for(i=0;i<2;i++)
for(j=0;j<2;j++)
n[j]=n[i]+1;
printf( "%d\n",n[1]);
}
程序运行后的输出结果是
- A.2
- B.1
- C.0
- D.3
-
有以下程序
main()
{ int a,b,d=5;
- a=d*10%8; b=a&&(-1); printf("%d,%d\n",a,b); } 程序运行后的输出结果是
- A.10,1 B.2,1
- C.10,0 D.2,0
-
有如下程序
void f(int *x,int *y)
{ int t;
t=*x;*x=*y;*y=t;
}
main()
{ int a[6]={1,2,4,6,8,10},i,*p,*q;
p=a;q=&a[5];
while(p
{ f(p,q); p++; q--; }
for(i=0;i<6;i++)
printf("%d,",a[i]);
}
该程序的输出结果是
- A.1,2,4,6,8,10 B.10,8,4,6,2,1
- C.10,8,6,4,2,1 D.10,2,4,6,8,1
-
有如下说明
int a[10]={1,2,3,4,5,6,7 },*p=a;
则数值为5的表达式是
- A.*p+4 B.*(p+4) C.*p+=4 D.p+4
-
设有以下定义
int a=0;
double b=1.25;
char c=’A’;
#define d 2
则下面语句中错误的是
- A.a++; B.b++;
- C.c++; D.d++;
-
以下关于C语言的叙述中,不正确的是
- A.C语言中的注释可以夹在变量名或关键字的中间
- B.C语言中使用变量必须是先定义后使用
- C.C语言表达式运算符两侧的运算数类型必须一致
- D.C语言的数值常量中夹带空格不影响常量值的正确表示
-
下列各数据类型不属于构造类型的是
- A.枚举型 B.共用型 C.结构型 D.数组型
-
设有如下说明
typedef struct ST
{
long a;int b;char c[2];
} NEW;
则下列叙述中正确的是
- A.以上的说明形式非法 B.ST是一个结构体类型
- C.NEW是一个结构体类型 D.NEW是一个结构体变量
-
设有int x=11;,则表达式(x++*1/3)的值是
- A.3 B.4 C.11 D.12
-
假定int类型变量占用两个字节,其有定义int x[10]={0,2,4};,则数组x在内存中所占字节数是
- A.3 B.6 C.10 D.20
-
以下程序的功能是
# include
main ()
{ FILE *fp1;*fp2;
fp1=fopen ("file1","r");
fp2=fopen ("file2","w");
while (!feof (fp1))
fputc (fgetc (fp1),fp2);
fclose (fp1);
fclose (fp2);
}
- A.将磁盘文件的内容显示在屏幕上
- B.将两个磁盘文件合为一个
- C.将一个磁盘文件复制到另一个磁盘文件中
- D.将两个磁盘文件合并后送屏幕
-
下列关于指针变量赋空值的说法错误的是
- A.当赋空值的时候,变量指向地址为0的存储单元 B.赋值语句可以表达为变量名=’\0’;
- C.赋值语句可以表达为变量名=0; D.一个指针变量可以被赋空值
-
设char型变量x中的值为 10100111,则表达式(2+x)^(~3)的值是
- A.10101001 B.10101000
- C.11111101 D.01010101
-
下面程序段的运行结果是
char *p="abcdefgh";
p+=3;
printf("%d\n",strlen(strcpy(P,"ABCD")));
- A.8 B.12
- C.4 D.7
-
有如下程序段
void func(int *a,int b[ ])
{ b[0]=*a+6; }
main()
{ int a,b[5]={0};
- a=0;b[0]=3;
- func(&a,b); printf("%d\n",b[0]); } 程序运行后输出的结果是
- A.6 B.7
- C.8 D.9
-
已知函数的调用形式:fread(buf,size,count,fp),参数buf的含义是
- A.一个整型变量,代表要读入的数据项总数 B.一个文件指针,指向要读的文件
- C.一个指针指向要读入数据的存放地址 D.一个存储区,存放要读的数据项
-
对表达式for(表达式1; ;表达式3)可理解为
- A.for(表达式1;0;表达式3) B.for(表达式1;1;表达式3)
- C.for(表达式1;表达式1;表达式3) D.for(表达式1;表达式3;表达式3)
-
以下对一维数组c进行正确的定义初始化的语句是
- A.int c[10]=0; B.int c[10]={0}*10;
- C.int c[1]={0,0,0,0,0,0,0}; D.int c[10]={0};
-
fscanf函数的正确调用形式是
- A.fscanf(文件指针,格式字符串,输出表列); B.fscanf(格式字符串,输出表列,文件指针);
- C.fscanf(格式字符串,文件指针,输出表列); D.fscanf(文件指针,格式字符串,输入表列);
-
若调用fputc函数输出字符成功,则其返回值是
- A.EOF B.1 C.0 D.输出的字符
-
设x,y和z都是int型变量,且x=3,y=4,z=5,则下列表达式中,值为0的表达式是
- A.x&&y B.x<=y
- C. x||++y&&y-z D.!(x
-
若有以下程序
#include
int a[]={2,4,6,8};
main()
{ int i;
int *p=a;
for(i=0;i<4;i++)a[i]=*p;
printf("%d\n",a[2]);
}
上面程序的输出结果是
- A.6 B.8
- C.4 D.2
-
有如下程序
main()
{
int a=2,b=-1,c=2;
if(a if(b<0)c=0;
else c++;
printf("%d\n",c);
}
该程序的输出结果是
- A.0 B.1
- C.2 D.3
-
以下叙述中正确的是
- A.C语言比其他语言高级
- B.C语言可以不用编译就能被计算机识别执行
- C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
- D.C语言出现得最晚,具有其他语言的一切优点
-
下列可用于C语言用户标识符的一组是
- A.void, define, WORD B.a3_b3, _123,Car
- C.For, -abc, Case D.2a, DO, sizeof
-
有以下程序
#include "stdio.h"
main()
{ struct date
{ int number;
float fenzhi;
char name;
}stu;
printf("%d\n",sizeof(stu));
}
程序的运行结果是
- A.3 B.5
- C.7 D.8
-
有以下程序
#include
void fun(char **p)
{ p=p+2;
printf("%s\n",*p);
}
main()
{ char *a[]={"Morning","Afternoon","Evening","Night"};
fun(a);
}
程序的运行结果是
- A.rning
- B.afternoon
- C.ternoon
- D.Evening
-
有以下程序
#include
main
{ int n,*p=NULL;
*p=&n;
printf("Input n:");
scanf("%d",&p);
printf("output n:");
printf("%d\n",p);
}
该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是
- A.int n,*p=NULL; B.*p=&n;
- C.scanf("%d",&p) D.printf("%d\n",p);
-
有以下程序
#include
#define P 24;
#define S(x) P*x+x;
main()
{ int a=2, b=2;
printf("%d\n",S(a+b));
}
程序的运行结果是
- A.程序编译运行时报错,无法输出 B.54
- C.96 D.100
-
有以下程序
main()
{ int i=10,j=1;
printf("%d,%d\n",i--,++j);
}
执行后的输出结果是
- A.9,2 B.10,2
- C.9,1 D.10,1
-
在数据库设计的各阶段中,负责将E-R图转换成关系数据模型的阶段是
- A.需求分析阶段 B.逻辑设计阶段 C.概念设计阶段 D.物理设计阶段
-
最常用的一种基本数据模型是关系数据模型,对于它的表示应采用
- A.树 B.网络 C.图 D.二维表
-
软件需求分析一般应确定的是用户对软件的
- A.功能需求 B.非功能需求 C.性能需求 D.功能需求和非功能需求
-
下面叙述正确的是
- A.算法的执行效率与数据的存储结构无关
- B.算法的空间复杂度是指算法程序中指令(或语句)的条数
- C.算法的有穷性是指算法必须能在执行有限个步骤之后终止
- D.算法的时间复杂度是指执行算法程序所需要的时间
-
在软件生产过程中,需求信息的给出是
- A.程序员 B.项目管理者 C.软件分析设计人员 D.软件用户
-
程序调试的目的是
- A.发现程序中的错误 B.改正程序中的错误 C.验证程序的正确性 D.改善软件的性能
-
在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送
- A.调用语句 B.命令 C.口令 D.消息
-
数据库、数据库系统和数据库管理系统之间的关系是
- A.数据库包括数据库系统和数据库管理系统 B.数据库系统包括数据库和数据库管理系统
- C.数据库管理系统包括数据库和数据库系统 D.三者没有明显的包含关系
-
树是结点的集合,它的根结点数目是
- A.有且只有1 B.1或多于1 C.0或1 D.至少2
-
链表不具有的特点是
- A.不必事先估计存储空间 B.可随机访问任一元素
- C.插入和删除不需要移动元素 D.所需空间与线性表长度成正比