2014年9月计算机等级考试二级C语言考前全真模拟试卷(一)
-
若fp已正确定义为一个文件指针,d1.dat为二进制文件。请填空,以便“读取”并打开此文件:fp=fopen();。
-
下面程序的运行结果是
void swap(int *a,int *b)
{
int *t;
t=a;a=b;b=t;
}
main()
{
int x=3,y=5,*p=&x,*q=&y;
swap(p,q);
printf("%d%d\n",*p,*q);
}
-
数据库系统的三级模式分别为模式、内部级模式与外部级模式。
-
以下程序运行后的输出结果是
main()
{
int x=15;
while(x>10&&x<50)
{
x++;
if(x/3)
{
x++;
break;
}
else
continue;
}
printf("%d\n",x);
}
-
软件工程研究的主要内容包括:技术和软件工程管理。
-
下面程序的运行结果是
#include "stdio.h"
void fun(int k,int *p)
{ int a,b;
if(k==1|| k==2)
*p=1;
else
{ fun(k-1,&a);
fun(k-2,&b);
*p=a+b;
}
}
main()
{ int x;
fun(6,&x);
printf("%d\n",x);
}
-
若有以下程序
main()
{ int p=5,a=5;
if(p=1!=0)
printf("%d\n",p);
else
printf("%d\n",p+2);
}
程序执行后的输出结果是
-
以下程序运行时,若从键盘输入:1 2 3<回车>。输出结果是
#include
main()
{ int i=2,j=2,k=2;
scanf("%d%*d%d",&i,&j,&k);
printf("%d%d%d\n",i,j,k);
}
-
下列x的值是
int x;x= sizeof 2.25*4;
-
一棵二叉树第5层(根结点为第一层)的结点数最多为个。
-
执行以下程序后,输出’#’号的个数是
#include
main
{ int i,j;
for(i=1;i<5;i++)
for(j=2; j<=i;j++)
putchar(′#′);
}
-
以下程序的输出结果是
main()
{ int x=100,a=10,b=20,ok1=5,ok2=0;
if(aelse if(ok2)x=10;
else x=-1;
printf("%d\n",x);
}
-
在结构化分析使用的数据流图中,利用对其中的图形元素进行确切的解释。
-
在面向对象的程序设计中,类描述的是具有相似性质的一组
-
以下程序的输出结果是
#include
#include
#define M 100
void fun(int m, int *a, int *n)
{ int i,j=0;
for(i=1;i<=m;i++)
if(i%7==0||i%11==0)
a[j++]=i;
*n=j;
}
main()
{ int aa[M],n,k;
clrscr();
fun(100,aa,&n);
for(k=0;k
if((k+1)%20==0)printf("\n");
else printf("%d",aa[k]);
printf("\n");
}
-
有以下程序
#include "stdio.h"
void fun(int *a,int *b,int c)
{ c=*a+*b; }
main()
{ int a[2]={6,9},c=0;
fun(a,a+1,&c);
printf("%d\n",c);
}
程序输出的结果是
- A.6 B.9
- C.0 D.15
-
有如下程序
#include
main()
{
FILE *fp1;
fp1=fopen("f1.txt","w");
fprintf(fp1,"abc");
fclose(fp1);
}
若文本文件f1.txt中原有内容为good,则运行以上程序后,文件f1.txt中的内容为
- A.goodabc B.abcd
- C.abc D.abcgood
-
28.以下叙述中错误的是
- A.对于float类型数组,不可以直接用数组名完成对数组进行整体输入或输出
- B.数组名代表的是数组所占存储区的首地址,其值是常量,是不可改变的
- C.当执行程序时,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
- D.可以通过赋初值的方式确定数组元素的个数
-
以下叙述不正确的是
- A.分号是C语言的必要组成部分 B.C程序的注释可以写在语句的后面
- C.函数是C程序的基本组成单位 D.程序中可以有一个或多个main函数
-
以下程序的输出结果为
main()
{
char *alpha[6]={"ABCD","EFGH","IJKL","MNOP","QRST","UVWX"};
char **p;
int i;
p=alpha;
for(i=0;i<4;i++)
printf("%s",p[i]);
printf("\n");
}
- A.ABCDEFGHIJKL B.ABCD
- C.ABCDEFGHIJKLMNOP D.AEIM
-
若程序中有以下说明和定义。
struct abc
{
int x;char y;
}
struct abc s1,s2;
则会发生的情况是
- A.编译时出错 B.程序将顺序编译、连接、执行
- C.能顺序通过编译、连接,但不能执行 D.能顺序通过编译,但连接出错
-
有以下程序
#include
main()
{
int num=0;
while( num<=2)
{
num++;
printf("%d\n",num);
}
}
上面程序的输出结果是
-
下面程序的输出结果是
#include
main(){
int i=2;
printf("%d",f(i,i+1) );
}
int f(int a,int b)
{ int c;
c=a;
if(a>b) c=1;
else if(a==b) c=0; else c=-1;
return(c);
}
- A.-1 B.0
- C.1 D.2
-
有以下程序
void fun(int a,int b,int c)
{
- a=456,b=567,c=678; } main() {
- int x=10,y=20,z=30;
- fun(x,y,z); printf("%d,%d,%d\n",x,y,z); } 输出结果是
- A.10,20,30 B.30,20,10
- C.456,567,678 D.678,567,456
-
设以下变量均为int类型,表达式的值不为7的是
- A.(x=y=6,x+y,x+1)
- B.(x=6,x+1,y=6,x+y)
- C.(x=y=6,x+y,y+1)
- D.(y=6,y+1,x=y,x+1)
-
有以下程序
void sort(int a[],int n)
{
int i,j,t;
for(i=0;i
for(j=i+2;j
if(a[i] {
t=a[i];
- a[i]=a[j];
- a[j]=t; } } main() {
- int aa[10]={1,2,3,4,5,6,7,8,9,10},i; sort(aa,10);
- for(i=0;i<10;i++) printf("%d,",aa[i]); printf("\n"); } 执行后的输出结果是
- A.1,2,3,4,5,6,7,8,9,10, B.10,9,8,7,6,5,4,3,2,1,
- C.9,2,7,4,5,6,3,8,1,10 D.1,10,3,8,5,6,7,4,9,2,
-
下列C语言用户标识符中,不属于合法标识符的是
- A._1 B.d3_7 C._a7
-
有以下程序
main()
{
int x=3, y=2, z=1;
printf("%d\n",x/y&~z);
}
程序运行后的输出结果是
- A.3 B.2
- C.1 D.0
-
以下程序的运行结果是
#define MIN(x,y)(x)<(y)?(x):(y)
main()
{
int i=10,j=15,k;
k=10*MIN(i,j);
printf("%d\n",k);
}
- A.10 B.15
- C.100 D.150
-
若已定义int a=25,b=14,c=19;以下三目运算符(?:)所构成的语句执行后a<=25&&b--<= 2&&c?printf("***a=%d,b=%d,c=%d\n",a,b,c):printf("###a=%d,b=%d, c=%d\n",a,b,c);程序输出的结果是
- A.***a=25,b=13,c=19 B.***a=26,b=14,c=19
- C.### a=25,b=13,c=19 D.### a=26,b=14,c=19
-
有如下程序
main()
{
char s[]="ABCD", *p;
for(p=s+1; p
printf ("%s\n",p);
}
该程序的输出结果是
-
设有char str[10],下列语句正确的是
- A.scanf("%s",&str); B.printf("%c",str);
- C.printf("%s",str[0]); D.printf("%s",str);
-
当把以下四个表达式用做if语句的控制表达式时,有一个选项与其他三个选项含义不同,这个选项是
- A.k%2 B.k%2==1
- C.(k%2)!=0 D.!k%2==1
-
以下叙述中正确的是
- A.自定义的函数中一定要有return 语句
- B.自定义的函数中不可以有多个return 语句
- C.自定义的函数中可以没有return 语句,此时函数应被定义为void 类型
- D.函数的return 语句一定要带有表达式
-
下面四个选项中,均是不正确的8进制数或16进制数的选项是
- A.016 0X8F 018 B.0ABC 017 0XA
- C.010 -0X11 0X16 D.0A12 7FF -123
-
计算机能直接执行的程序是
- A.源程序 B.目标程序
- C.汇编程序 D.可执行程序
-
有如下程序段
#include "stdio.h"
main()
{ int k[10];
int j;
for(j=0;j<10;j++)
scanf("%d",&k[j]);
for(j=9;j>=0;j--)
printf("%d",k[j]);}
则程序段实现的功能是
- A.输入10个数据的顺序输入并输出
- B.输入10个数据的逆序存放
- C.输入10个数据的逆序输出
- D.以上叙述均错误
-
有以下程序段
struct STU
{ char num[10];float score[3];};
main()
{
struct STU s[3]={
{"20021",90,95,85},
{"20022",95,80,75},
{"20023",100,95,90},
},*p=s;
int i;float sum=0;
for(i=0;i<3;i++)
sum=sum+p->score[i];
printf("%6.2f\n",sum);
}
程序运行后的输出结果是
- A.260.00 B.270.00
- C.280.00 D.285.00
-
设有如下定义
char *s[2]={"abcd","ABCD"};
则下列说法错误的是
- A.s数组元素的值分别是″abcd″和″ABCD″两个字符串的首地址
- B.s是指针数组名,它含有两个元素,分别指向字符型一维数组
- C.s数组的两个元素分别存放的是含有4个字符的一维字符数组中的元素
- D.s数组的两个元素中分别存放了字符′a′和′A′的地址
-
已定义以下函数
fun(char *p2, char *p1)
{
while((*p2=*p1)!=’\0’){p1++;p2++;}
}
函数的功能是
- A.将p1所指字符串复制到p2所指内存空间 B.将p1所指字符串的地址赋给指针p2
- C.对p1和p2两个指针所指字符串进行比较 D.检查p1和p2两个指针所指字符串中是否有’\0’
-
下列关于单目运算符++、--的叙述中,正确的是
- A.它们的运算对象可以是任何变量和常量
- B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量
- C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量
- D.它们的运算对象可以是char型变量、int型变量和float型变量
-
已知i,j,k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是
- A.scanf("%2d,%2d,%2d", i, j, k); B.scanf("%d %d %d",&i,&j,&k);
- C.scanf("%d,%d,%d",&i,&j,&k); D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);
-
关于以下程序段的描述,正确的是
x=-1;
do
{x=x*x-1;}while(!x);
- A.是死循环 B.循环执行两次
- C.循环执行一次 D.有语法错误
-
以下叙述中正确的是
- A.预处理命令行必须位于源文件的开头 B.在源文件的一行上可以有多条预处理命令
- C.宏名必须用大写字母表示 D.宏替换不占用程序的运行时间
-
在数据库设计中,用E-R图来描述信息结构,但不涉及信息在计算机中的表示,它是数据库设计的阶段。
- A.需求分析 B.概念设计 C.逻辑设计 D.物理设计
-
若以下选项中的变量已正确定义,则正确的赋值语句是
- A.x1=26.8%3; B.1+2=x2; C.x3=0x12; D.x4=1+2=3;
-
数据的存储结构是指
- A.存储在外存中的数据 B.数据在计算机中的顺序存储方式
- C.数据的逻辑结构在计算机中的表示 D.数据所占的存储空间量
-
下列有关数据库的描述,正确的是
- A.数据处理是将信息转化为数据的过程
- B.数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变
- C.关系中的每一列称为元组,一个元组就是一个字段
- D.如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字
-
成功的测试是指
- A.运行测试实例后未发现错误
- B.发现程序的错误
- C.证明程序正确
- D.软件产生
-
已知数据表A中每个元素距其最终位置不远,为节省时间,应采用的算法是
- A.堆排序 B.直接插入排序 C.快速排序 D.
-
下列叙述中,不属于软件需求规格说明书的作用的是
- A.便于用户、开发人员进行理解和交流
- B.反映出用户问题的结构,可以作为软件开发工作的基础和依据
- C.作为确认测试和验收的依据
- D.便于开发人员进行需求分析
-
关系模型允许定义三类数据约束,下列不属于数据约束的是
- A.实体完整性约束 B.参照完整性约束
- C.域完整性约束 D.用户自定义的完整性约束
-
已知一棵二叉树前序遍历和中序遍历分别为ABDEFGCHI和DBFEGACIH,则该二叉树的后序遍历为
- A.DFGEBHICA B.DGEBHFCAI C.DFGEBIHCA D.DGEBFIHCA
-
下列关于结构化设计原则的描述,错误的是
- A.在块和进程的非正常出口处往往需要调用GOTO语句,使用GOTO语句使程序执行效率提高,但是滥用GOTO语句确实有害,应该避免使用GOTO语句
- B.程序设计时应该自顶向下,逐步求精
- C.程序设计时,应该将复杂问题进行模块化,就是将程序设计的总目标分解为若干个分目标,再进一步分解为具体的小目标
- D.在进行程序设计时,应该尽量在一行写一条语句,尽量做到效率第一,清晰第二
-
由两个栈共享一个存储空间的好处是
- A.减少存取时间,降低下溢发生的概率 B.节省存储空间,降低上溢发生的概率
- C.减少存取时间,降低上溢发生的概率 D.节省存储空间,降低下溢发生的概率