2014年9月计算机等级考试二级C语言考前全真模拟试卷(二)
-
面向对象的模型中,最基本的概念是对象和
-
问题处理方案的正确而完整的描述称为
-
有以下程序
#include
main
{ int x,y;
scanf("%2d%ld",&x,&y);
printf("%d\n",x+y);
}
程序运行时输入:1234567,程序的运行结果是
-
若有以下定义,则不移动指针p,且通过指针p引用值为98的数组元素的表达式是
int w[10] = {23,54,10,33,47,98,72,80,61},*p = w;
-
以下程序的输出结果是
main()
{
unsigned short a=65536; int b;
printf("%d\n\",b=a);
}
-
在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、遍历和后序遍历。
-
以下程序的输出结果是
#include "stdio.h"
int *fun(int *a,int *b)
{ int m;
m=*a;
m+=*b-3;
return(&m);
}
main()
{ int x=21,y=35,*a=&x,*b=&y;
int *k;
k=fun(a,b);
printf("%d\n",*k);
}
-
关系操作的特点是操作。
-
若有以下程序
main()
{ int a[4][4]={{1,2,-3,-4},{0,-12,-13,14},{-21,23,0,-24},{-31,32,-33,0}};
int i,j,s=0;
for(i=0;i<4;i++)
{ for(j=0;j<4;j++)
{ if(a[i][j]<0) continue;
if(a[i][j]==0) break;
s +=a[i][j];
}
}
printf("%d\n",s);
}
程序执行后的输出结果是
-
下面程序的功能是输出数组s中最大元素的下标,请填空。
main()
{ int k, p,s[]={1, -9, 7, 2, -10, 3};
for(p =0, k =p; p< 6; p++)
if(s[p]>s[k])
;
printf("%d\n", k);
}
-
下面的函数是完成1~n的累加,请填空。
a(int k)
{ if(k<=0) printf("error\n");
if(k == 1) return 1;
else;
}
-
通常,将软件产品从提出、实现、使用维护到停止使用或退役的过程称为
-
设y是int型,请写出y为奇数的关系表达式
-
以下程序的输出结果是
include "stdio.h"
int *f(int *x,int *y)
{ if(*x<*y)
return x;
else
return y;
}
main()
{ int a=7,b=8, *p,*q,*r ;
p=&a; q=&b;
r= f(p,q);
printf("%d,%d,%d\n",*p,*q,*r);
}
-
在下列选项中,没有构成死循环的是
-
mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回,请填空。
int mystrlen(char *str)
{ int i;
for(i=0;;i++);
return(i);
}
-
有以下程序
main()
{ char a[7]="a0\0a0\0";
int i,j;
i=sizeof(a);
j=strlen(a);
printf("%d %d\n",i,j);
}
程序运行后的输出结果是。
- A.2 2 B.7 6
- C.7 2 D.6 2
-
有以下程序
#include "stdio.h"
#define M(x,y) (x)*(y)
#define N(x,y) (x)/(y)
main()
{ int a=5,b=6,c=8,k;
k=N(M(a,b),c);
printf("%d\n",k);
}
程序的运行结果是
- A.3 B.5
- C.6 D.8
-
有以下程序
prt(int *m,int n)
{
int i;
for(i=0;i
m[i]++;
}
main()
{
int a[]={1,2,3,4,5},i;
prt(a,5);
for(i=0;i<5;i++)
printf("%d,",a[i]);
}
程序运行后的输出结果是
- A.1,2,3,4,5,
- B.3,4,5,6,7,
- C.2,3,4,5,6,
- D.2,3,4,5,1,
-
若有以下程序段
int m=0xabc,n=0xabc;
m-=n;
printf("%x\n", m);
执行后的输出结果是
- A.0X0
- B.0x0
- C.0
- D.0xABC
-
设变量a是int型,f是float型,i是double型,则表达式10+′a′+i*f值的数据类型为
- A.int B.float C.double D.不确定
-
有以下说明和定义语句
struct student
{
int age; char num[8];
};
struct student stu[3]={{20,"200401"},{21,"200402"},{10\9,"200403"}};
struct student *p=stu;
以下选项中引用结构体变量成员的表达式错误的是
- A.(p++)->num B.p->num C.(*p).num D.stu[3].age
-
有以下函数
fun(char *a,char *b)
{
while((*a!=’\0’)&&(*b!=’\0’)&&(*a==*b))
{
- a++;b++; } return(*a-*b); } 该函数的功能是
- A.计算a和b所指字符串的长度之差
- B.将b所指字符串连接到a所指字符串中
- C.将b所指字符串连接到a所指字符串后面
- D.比较a和b所指字符串的大小
-
若变量已正确定义并赋值,以下符合C语言语法的表达式是
- A.a:=b+1 B.a=b=c+2 C.int 18.5%3 D.a=a+7=c+b
-
有以下程序
# include
main()
{ int i=5;
do
{ if (i%3==1)
if (i%5==2)
{ printf("*%d", i); break;}
i++;
} while(i!=0);
printf("\n");
}
程序的运行结果是
- A.*7 B.*3*5
- C.*5 D.*2*6
-
下列不可用于C语言用户标识符的是
- A.j2_KEY
- B.char
- C._g_
- D.Double
-
若有定义语句:int m[]={1,2,3,4,5},i=4;,则下面对m 数组元素的引用中错误的是
- A.m[++i] B.m[1*2]
- C.m[m[0]] D.m[m[--i]]
-
23.若有下面的程序段
char s[]="china";char *p; p=s;
则下列叙述正确的是
- A.s和p完全相同 B.数组s中的内容和指针变量p中的内容相等
- C.s数组长度和p所指向的字符串长度相等 D.*p与s[0]相等
-
以下选项中不能作为C语言合法常量的是
- A.’Fab’ B.0.7e+9 C."\b" D.’\01211’
-
C源程序中不能表示的数制是
- A.十进制 B.八进制
- C.二进制 D.十六进制
-
有以下程序
main()
{ int i;
for(i=0;i<3;i++)
switch(i)
{ case 1: printf("%d",i);
case 2: printf("%d",i);
default: printf("%d",i);
}
}
程序执行后的输出结果是
- A.011122 B.012
- C.012020 D.120
-
有三个关系R、S和T如下:
由关系R和S通过运算得到关系T,则所使用的运算为
- A.笛卡儿积 B.交
- C.并 D.自然连接
-
在一个C程序中
- A.main函数必须出现在所有的函数之前 B.main函数可以在任何地方出现
- C.main函数必须出现在所有的函数之后 D.main函数必须出现在固定位置
-
有如下程序段
#include "stdio.h"
void fun(int *a,int *b,int *c,int *d,int *e)
{ int i,j,k,m;
for(i=0;i< *a;i++)
for(j=0;j< *b;j++)
for(k=0;k<*c;k++)
for(m=0;m< *d;m++)
++*e;
}
main()
{ int a=10,b=10,c=10,d=10,e=0;
fun(&a,&b,&c,&d,&e);
printf("%d\n",e);}
则程序段的输出结果是
- A.10000 B.1000
- C.100 D.0
-
有以下程序段
main()
{ char x=040;
printf("%d\n",x<<1);}
程序执行后输出的结果是
- A.100 B.80 C.64 D.32
-
以下程序的输出结果是
main()
{ int a=21,b=11;
printf("%d\n",--a+b,--b+a);
}
- A.30 B.31
- C.32 D.33
-
有如下程序
#include "stdio.h"
void fun(int *a,int *b)
{ int m;
m=(*a+*b)*(*a+*b);
m+=(*a-*b)*(*a-*b);
printf("%d\n",m);}
main()
{ int a=5,b=6,*x=&a,*y=&b;
fun(x,y);}
程序执行后输出的结果为
- A.120 B.121
- C.122 D.123
-
阅读以下程序及对程序功能的描述,其中正确的描述是
#include
main()
{
FILE *in,*out;
char ch,infile[10],outfile[10];
printf("Enter the infile name:\n");
scanf("%s",infile);
printf("Enter the outfile name:\n");
scanf("%s",outfile);
if((in=fopen(infile,"r"))==NULL)
{
printf("cannot open infile\n");
exit(0);
}
if((out=fopen(outfile,"w"))==NULL)
{
printf("cannot open outfile\n");
exit(0);
}
while(! feof(in))fputc(fgetc(in),out);
fclose(in);
fclose(out);
}
- A.程序完成将磁盘文件的信息在屏幕上显示的功能
- B.程序完成将两个磁盘文件合二为一的功能
- C.程序完成将一个磁盘文件复制到另一个磁盘文件中
- D.程序完成将两个磁盘文件合并后在屏幕上输出
-
34.有以下程序
#include
union pw
{ int i;
char ch[2];
}a;
main()
{ a.ch[0]=13;a.ch[1]=0;
printf("%d\n",a.i);
}
程序的输出结果是
- A.13 B.14
- C.0 D.20
-
下列程序的输出结果是
int b=2;
int func(int *a)
{ b+=*a; return(b);}
main()
{ int a=2, res=2;
res += func(&a);
printf("%d\n",res);
}
- A.2 B.4
- C.6 D.8
-
有以下程序
main()
{ int x,y;
scanf("%d",&x);
y=x>12?x+10:x-12;
printf("%d\n",y);
}
若运行时给变量x输入12,则以下程序的运行结果是
- A.0 B.22
- C.12 D.10
-
有以下程序
main ()
{ int i=010,j=0X10;
pirntf("%d,%d\n",i,j);
}
该程序的输出结果是
- A.10,10 B.8,10
- C.8,16 D.10,16
-
以下不正确的叙述是
- A.在C程序中,逗号运算符的优先级最低
- B.在C程序中,APH和aph是两个不同的变量
- C.若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b中的值不变
- D.从键盘输入数据时,对于整型变量,只能输入整型数值;对于实型变量,只能输入实型数值
-
有以下程序
main()
{ char str[]="xyz",*ps=str;
while(*ps) ps++;
for(ps--; ps-str>=0; ps--)
puts(ps);
}
程序的运行结果是
- A.yz B.z C.z D.x xyz yz&nb
-
有如下程序
#include "stdio.h"
main()
{ int j,i,k=0;
for(j=20;j<=30;j++)
{ if(!(k%10))printf("\n");
for(i=2;i
if(i>=j-1)
{ printf("%d",j);
k++;}
}
}
程序的运行结果是
- A.2329 B.2923
- C.3292 D.9232
-
下列说法不正确的是
- A.数据库减少了数据冗余 B.数据库实现了数据的共享
- C.数据库避免了一切数据的重复 D.数据库具有较高的数据独立性
-
设有定义:int a,*pa=&a; 以下scanf语句中能正确为变量a读入数据的是
- A.scanf("%d",pa); B.scanf("%d",a);
- C.scanf("%d",&pa); D.scanf("%d",*pa);
-
下面关于完全二叉树的叙述中,错误的是
- A.除了最后一层外,每一层上的结点数均达到最大值 B.可能缺少若干个左右叶子结点
- C.完全二叉树一般不是满二叉树 D.具有结点的完全二叉树的深度为[log2n]+1
-
下面不属于软件工程三个要素的是
- A.工具 B.过程 C.方法 &nb
-
结构化程序设计主要强调的是
- A.程序的规模 B.程序的效率 C.程序设计语言的先进性 D.程序易读性
-
软件设计中,有利于提高模块独立性的一个准则是
- A.低内聚低耦合 B.低内聚高耦合 C.高内聚低耦合 D.高内聚高耦合
-
一个栈中初始元素依次为A、B、C、D、E。现将元素1、2、3、4、5依次入栈,然后将所有的元素依次出栈,则元素出栈的顺序是
- A.12345ABCDE B.EDCBA54321 C.ABCDE12345 D.54321EDCBA
-
在数据流图(DFD)中,带有说明的箭头表示
- A.模块之间的调用关系 B.程序的组成成分 C.控制程序的执行顺序 D.数据的流向
-
对于长度为n的线性表,在最坏的情况下,下列各排序法所对应的比较次数中正确的是
- A.插入排序为n/2 B.插入排序为n C.快速排序为n D.快速排序为n(n-1)/2
-
算法分析最重要的目的是
- A.找出数据结构的合理性 B.找出算法中输入和输出之间的关系
- C.分析算法的易懂性和可靠性 D.分析算法的效率以求改进