2012年9月计算机等级考试二级C语言考前全真模拟试卷(一)
-
顺序存储方法是把逻辑上相邻的结点存储在物理位置的存储单元中。
-
设函数findbig已定义为求3个数中的最大值。以下程序将利用函数指针调用findbig函数,请填空。
main()
{
int findbig(int,int,int);
int (*f)(),x,y,z,big;
f=;
scanf("%d%d%d",&x,&y,&z);
big=(*f)(x,y,z);
printf("big=%d\n",big);
}
-
以下程序运行后的输出结果是
void fun(int x,int y)
{
x=x+y;y=x-y;x=x-y;
printf("%d,%d,",x,y);
}
main()
{
int x=2,y=3;
fun(x,y);
printf("%d,%d\n",x,y);
}
-
若有以下结构类型说明和变量定义,则变量a在内存中所占字节数是
struct stud
{
char num[6];
int s[4];
double ave;
}a,*p;
-
若已经定义int a=25,b=14,c=19;,以下三目运算符(?:)所构成的语句的执行结果是
a++<=2&&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 和b 中的值分别为7.01 和9.03,要求按以下格式输出a和b的值:
a=7.01
b=9.03
请完成输出语句:printf ("",a,b);
-
已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=’a’+’8’-’3’的值为
-
以下程序运行后的输出结果是
main
{ int i,m=0,n=0,k=0;
for(i=9;i<=11;i++)
switch(i/10)
{ case 0: m++;n++;break;
case 1: n++;break;
default:k++;n++;
}
printf("%d %d %d\n",m,n,k);
}
-
数据库管理系统的主要功能有数据定义功能、、数据库的运行管理和数据库的建立和维护。
-
数据模型按不同应用层次分成三种类型,它们分别是概念数据模型、和物理数据模型。
-
一个类可以从直接或间接的祖先中继承所有的属性和方法。采用这个方法的作用是提高了软件的
-
以下程序的输出结果是
unsigned fun6(unsigned num)
{ unsigned k=1;
do{k *=num%10;num/=10;}
while (num);
return k;
}
main()
{ unsigned n=26;
printf("%d\n", fun6(n));
}
-
下面函数的功能是找出一维数组元素中最大的值和它所在的下标,最大值的和它所在的下标通过形参传回。
#include
#include
void fun(int a[ ],int n,int *max,int *d)
{
int i;
*max=a[0];
*d=0;
for(i=0;;i++)
if(*max<)
{ *max=a[i];*d=i; }
}
-
软件工程研究的内容主要包括:技术和软件工程管理。
-
有以下程序
main(int argc,char *argv[])
{ int n,i=0;
while(argv[1][i]!=’\0’)
{ n=fun(); i++;}
printf("%d\n",n*argc);
}
int fun ()
{ static int s=0;
s+=1;
return s;
}
假设程序经编译、连接后生成可执行文件exam.exe,若输入以下命令行
exam 123<回车>
则程序的运行结果是
- A.6 B.8 C.3 D.4
-
有以下程序
struct st
{ int x;
int*y;
} *p;
int dt[4]={1,2,3,4};
struct st aa[4]={10,&dt[0],20,&dt[1],30,&dt[2],40,&dt[3]};
main()
{ p=aa;
printf("%d\n",++p->x);
printf("%d\n",(++p)->x);
printf("%d\n",++(*p->y));
}
程序的运行结果是
-
若有说明:int a[3][4]={0};,则下面正确的叙述是
- A.只初始化了第一个元素,即a[0][0]可得到初值0
- B.此初始化语句不正确
- C.数组a中各元素都可得到初值,但其值不一定为0
- D.数组a中每个元素均可得到初值0
-
有如下程序
#include "stdio.h"
fun(int a,int b)
{ int s;
s=a*(b/4);
printf("%d\n",s);}
main()
{ int a=16,b=10;
fun(a,b);
}
该程序的输出结果是
- A.16 B.32
- C.40 D.80
-
若有下面的程序段
#include "stdio.h"
main()
{ int i=6;
while(i--)
printf("%d",--i);
printf("\n");
}
那么程序的输出结果为
- A.531 B.420
- C.654321 D.死循环
-
若有说明语句
char a[]="It is mine";
char *p="It is mine";
则以下不正确的叙述是
- A.a+1表示的是字符t的地址 B.p指向另外的字符串时,字符串的长度不受限制
- C.p变量中存放的地址值可以改变 D.a中只能存放10个字符
-
若有以下定义:float x;int a,b,c=2;,则正确的switch语句是
-
设x,y,z均为整型变量,现有如下语句x=y=z=1;(++x||(++y&&++z));,则执行这个语句后y的值为
- A.2 B.1 C.0 D.不定值
-
15.若变量a,i已正确定义,且i已正确赋值,合法的语句是
- A.a==1; B.++i;
- C.a=a++=5; D.a=int(i);
-
下列C语言用户标识符中,不属于合法标识符的是
- A.ad_int B.bb_7 C._dd7 D.int
-
有以下函数定义:
void fun(int n, double x) { …… }
若以下选项中的变量都已正确定义并赋值,则对函数fun正确调用的语句是
- A.fun(int y,double m); B.k=fun(10,12.5);
- C.fun(x,n); D.void fun(n,x);
-
设有如下程序
#include
main()
{
int **k, *j,i=100;
j=&i;k=&j;
printf("%d\n",**k);
}
上述程序的输出结果是
- A.运行错误 B.100
- C.i的地址 D.j的地址
-
下面程序的输出结果是
main
{
int x=3 ,y=6,a=0;
while(x++!=(y-=1) )
{
- a+=1;
- if (y
- break; } printf("x=%d,y=%d,a=%d\n",x,y,a); }
- A.x=4,y=4,a=1 B.x=5,y=5,a=1
- C.x=5,y=4,a=1 D.x=5,y=4,a=3
-
下面对C语言的描述中,正确的是
- A.函数一定有返回值,否则无法使用函数
- B.C语言函数既可以嵌套定义,又可以递归调用
- C.在C语言中,调用函数时,只能将实参的值传递给形参
- D.C语言程序中有调用关系的所有函数都必须放在同一源程序文件中
-
判断char型变量cl是否为大写字母的正确表达式是
- A.’A’<=cl<=’Z’ B.(cl>=A)&&(cl<=Z)
- C.(’A’>=cl)||(’Z’<=cl) D.(cl>=’A’)&&(cl<=’Z’)
-
若变量已正确说明为int类型,要通过语句scanf("%d %d %d ",&a,&b,&c);给a赋值3,b赋值5,c赋值8,不正确的输入形式是
-
有以下程序
int a=2;
int f(int *a)
{
return (*a)++;
}
main()
{
int s=0;
{
int a=5;
s+=f(&a);
}
s+=f(&a);
printf("%d\n",s);
}
执行后的输出结果是
- A.10 B.9
- C.7 D.8
-
以下函数返回a所指数组中最大值所在的下标值
fun(int *a,int n)
{
int i,j=0,p;
p=j;
for(i=j;i
if(a[i]>a[p])_________;
return(p);
}
在下画线处应填入的内容是
- A.i=p B.a[p]=a[i]
- C.p=i D.p=j
-
若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是
- A.EOF B.-1 C.1 D.NULL
-
有以下程序
#include
struct st
{ int x, y, z;} data[2]={3,10,2,20,15,7};
main()
{ struct st *p=data;
printf("%d,", p->y);
printf("%d\n",(++p)->x);
}
程序的运行结果是
- A.10,3 B.20,3
- C.10,20 D.20,2
-
有以下程序
#include
main()
{ char b=2;
printf("%d\n", b=b<<3);
}
程序的运行结果是
- A.4 B.8
- C.16 D.2000
-
C语言中最简单的数据类型包括
- A.整型、实型、逻辑型 B.整型、实型、字符型
- C.整型、字符型、逻辑型 D.字符型、实型、逻辑型
-
以下叙述中不正确的是
- A.预处理命令都必须以#号开始
- B.在程序中凡是以#号开始的语句行都是预处理命令行
- C.宏替换不占用运行时间,只占编译时间
- D.以下定义是正确的:#define PI 3.1415926;
-
以下叙述中正确的是
- A.用C程序实现的算法必须要有输入和输出操作
- B.用C程序实现的算法可以没有输出但必须要有输入
- C.用C程序实现的算法可以没有输入但必须要有输出
- D.用C程序实现的算法可以既没有输入也没有输出
-
下面程序段的运行结果是
char str[]="ABC",*p=str;
printf("%d\n",*(p+3));
- A.67 B.0 C.字符’C’的地址 D.字符’C’
-
若有以下程序
#include
void f(int n);
main()
{ void f(int n);
f(5);
}
void f(int n)
{ printf("%d\n",n); }
则以下叙述中不正确的是
- A.若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f
- B.若在主函数前对函数f进行说明,则在主函数和其他函数中都可以正确调用函数f
- C.对于以上程序,编译时系统会提示出错信息:对f函数重复说明
- D.函数f无返回值,所以,可用void将其类型定义为无返回值型
-
以下程序有错,错误的原因是
main()
{ int *p,i;char *q,ch;
p=&i;
q=&ch;
*p=40;
*p=*q;
......
}
- A.p和q的类型不一致,不能执行*p=*q;语句
- B.*p中存放的是地址值,因此不能执行*p=40;语句
- C.q没有指向具体的存储单元,所以*q没有实际意义
- D.q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行*p=*q;没有意义,可能会影响后面语句的执行结果
-
有下列程序
void func1(int i);
void func2(int i);
char st[ ]="hello,friend! ";
void func1(int i)
{ printf("%c",st[i]);
if(i<3){i+=2;func2(i);}
}
void func2(int i)
{ printf("%c",st[i]);
if(i<3){i+=2;func1(i);}
}
main()
{ int i=0;func1(i);
printf("\n");
}
执行后的输出结果是
- A.hello B.hel
- C.hlo D.hlm
-
下列用于printf函数的控制字符常量中,代表“竖向跳格”的转义字符常量是
- A.\b B.\t C.\v D.\
-
在数据库管理系统DBMS中,用来定义内模式和外模式等一些数据库管理系统中其他结构的语言为
- A.C B.Basic C.DDL D.DML
-
设变量x和y均已正确定义并赋值,以下if语句中,在编译时将产生错误信息的是
-
栈和队列的共同特点是
- A.都是先进先出 B.都是先进后出
- C.只允许在端点处插入和删除元素 D.没有共同点
-
软件按其功能进行分类,可分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于系统软件的是
- A.文字编辑软件 B.网页浏览器 C.数据库管理系统 D.视频播放软件
-
下列描述中,不符合结构化程序设计风格的是
- A.使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑
- B.注重提高程序的执行效率
- C.自顶向下
- D.限制使用goto语句
-
关系数据库管理系统能实现的专门关系运算包括
- A.排序、索引、统计 B.选择、投影、连接 C.关联、更新、排序 D.显示、打印、制表
-
在深度为5的满二叉树中,叶子结点的个数为
- A.32 B.31 C.16 D.15
-
软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指
- A.模块间的关系 B.系统结构部件转换成软件的过程描述
- C.软件层次结构 D.软件开发过程
-
在计算机中,算法是指
- A.加工方法 B.解题方案的准确而完整的描述
- C.排序方法 D.查询方法
-
在关系数据库系统中,当关系的模型改变时,用户程序可以不变,这是
- A.数据的物理独立性 B.数据的逻辑独立性 C.数据的位置独立性 D.数据的存储独立性
-
排序的一个重要目的是为了对已排序数据进行
- A.合并 B.打印输出 C.查找 D.分类