2012年9月计算机等级考试二级C语言考前全真模拟试卷(五)
-
以下程序的输出结果是
main()
{
char s[]="abcdef";
s[3]=’\0’;
printf("%s\n",s);
}
-
以下程序运行后的输出结果是
main()
{
int i=10,j=0;
do
{
j=j+i;
i--;
}while(i>2);
printf("%d\n",j);
}
-
在树形结构中,树根结点没有
-
一个类可以从直接或间接的祖先中继承所有的属性和方法。采用这个方法提高了软件的
-
软件工程是采用的方法开发和维护软件的工程学科。
-
以下程序的功能是:通过函数func 输入字符,并统计输入字符的个数。输入时用字符@作为输入结束标志。请填空。
#include
long ; /* 函数说明语句 */
main()
{
long n;
n=func();
printf("n=%ld\n",n);
}
long func()
{
long m;
for( m=0; getchar()!=’@’;);
retum m;
}
-
在最坏情况下,冒泡排序的时间复杂度为
-
以下程序的输出结果是
#include
main()
{
int j, a[]={1,3,5,7,9,11,13,15},*p=a+5;
for(j=3; j; j--)
{ switch(j)
{ case 1:
case 2: printf("%d",*p++); break;
case 3: printf("%d",*(--p));
}
}
}
-
以下程序的功能是调用函数fun计算m=1-2+3-4+…+9-10,并输出结果,请填空。
int fun( int n)
{ int m=0,f=1,i;
for(i=1;i<=n;i++)
{ m+=i*f;
f=-f;
}
return m;
}
main
{ printf("m=%d\\n",); }
-
若有以下定义
char a;int b;
float c;double d;
则表达式a*b+d-c值的类型为
-
应用数据库的主要目的是解决问题。
-
以下函数的功能是删除字符串s中的所有数字字符,请填空。
void dele(char *s)
{ int n=0,i;
for(i=0; s[i];i++)
if()
s[n++]=s[i];
s[n]=;
}
-
定义int a=5,b;,则执行表达式b=++a*--a之后,变量b的值为
-
有以下程序
struct STU
{
char name[10];
int num;
int Score;
};
main()
{
struct STU s[5]={{"YangSan",20041,703},
{"LiSiGuo",20042,580},
{"WangYin",20043,680},
{"SunDan",20044,550},
{"Penghua",20045,537}}, *p[5], *t;
int i,j;
for(i=0;i<5;i++)
p[i]=&s[i];
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(p[i]->Score>p[j]->Score)
{
t=p[i];
p[i]=p[j];
p[j]=t;
}
printf("%d %d\n",s[1].Score,p[1]->Score);
}
程序运行后的输出结果是
- A.550 550 B.580 550
- C.680 680 D.580 680
-
有以下程序
main()
{
char a[]={ ′a′, ′b′, ′c′,′d′, ′\0′, ′f′, ′g′,′h′,′\0′}; int i,j;
i=sizeof(a);
j=strlen(a);
printf("%d,%d\b",i,j);
}
程序运行后的输出结果是
- A.9,4 B.8,4 C.1,8 D.9,8
-
若有如下语句
int x=3;
do{ printf("%d\n",x-=2);}
while(!(--x));
则上面程序段
- A.输出的是1 B.输出的是1和-2 C.输出的是3和0 D.是死循环
-
假定x和y为double型,则表达式x=2,y=x+3/2的值是
- A.3.500000 B.3 C.2.000000 &nbs
-
30.下列关于C语言数据文件的叙述中正确的是
- A.文件由ASCII码字符序列组成,C语言只能读写文本文件
- B.文件由二进制数据序列组成,C语言只能读写二进制文件
- C.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
- D.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
-
有以下程序
main()
{
int c=35;
printf("%d\n",c&c);
}
程序运行后的输出结果是
- A.0 B.70 C.35 D.1
-
有以下程序段
main()
{
int a=5,*b,**c;
c=&b; b=&a;
……
}
程序在执行了c=&b;b=&a;语句后,表达式**c的值是
- A.变量a的地址 B.变量b中的值
- C.变量a中的值 D.变量b的地址
-
以下选项错误的是
-
有以下程序
#include
#define N 4
void fun(int a[][N], int b[])
{ int i;
for(i=0; i
b[i]=a[i][i];
}
main()
{ int x[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},y[N], i;
fun(x,y);
for (i=0; i
printf("\n");
}
程序的运行结果是
- A.l,2,3,4,
- B.1,0,7,0,
- C.1,4,5,9,
- D.3,4,8,10,
-
执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是
main()
{ char s[100];int c,i;
scanf("%c",&c);scanf("%d",&i);scanf("%s",s);
prinnf("%c,%d,%s\n",c,i,s);}
- A.123,456,789 B.1,456,789
- C.1,23,456,789 D.1,23,456
-
有以下程序
fun(int *a,int n)
{ int i,j=0,p;
p=j;
for(i=j;i
if(a[i] ____;
return(p);
}
在下画线处应填入的是
- A.i=p B.a[p]=a[i]
- C.p=j D.p=i
-
若变量已正确定义并赋值,下面符合C语言要求的表达式是
- A.a:=b+1 B.a=b=c+2 C.int 18.5%3 D.a=a+7=c+b
-
设有:
int a=1,b=2,c=3,d=4,m=2,n=2;
执行(m=a>b)&&(n=c>d)后,n的值是
- A.1 B.2 C.3 D.4
-
若有如下说明和定义
struct test
{ int ml; char m2; float m3;
union uu {char ul[5]; int u2[2];} ua;
} myaa;
则sizeof(struct test)的值是
- A.12 B.16
- C.14 D.9
-
如下程序段
#include
#include
#include
int fun (char *str)
{ int i,j=0;
for(i=0;str[i]!= ’\0’;i++)
if(str[i]!= ’ ’)str[j++]=str[i];
str[j]= ’\0’;
}
main()
{
char str[81];
int n;
clrscr();
printf("Input a string : ");
gets(str);
fun(str);
printf("%s\n",str);
}
当运行程序时,输入asd af aa z67<回车>,则输出是
- A.asdafaaz67
- B.asd af aa z67
- C.asd
- D.z67
-
以下叙述中正确的是
- A.C 程序的基本组成单位是函数 B.C程序中的每一行只能写一条语句
- C.main()函数必须放在其他函数之前 D.C语句必须在一行内写完
-
下面各选项中,均是C语言中合法标识符的选项组是
- A.for china to B.long_123 short 56_do
- C.void union _342 D.text _023 _3ew
-
若变量c为char类型,能正确判断出c为小写字母的表达式是
- A.’a’<=c<=’z’ B.(c>=’a’)||(c<=’z’)
- C.(’a’<=c)and(’z’>=c) D.(c>=’a’)&&(c<=’z’)
-
有如下程序
void func1(int st[],int i)
{ printf("%c",st[i]);
if(i<3){i+=2;func2(st,i);}
}
void func2(int st[],int i)
{ printf("%c",st[i]);
if(i<3){i+=2;func1(st,i);}
}
main()
{ char st[ ]="hello,friend! ";
int i=0;func1(st,i);
printf("\n");}
程序执行后输出的结果是
- A.hello B.hel
- C.hlo D.编译出错
-
下面程序的功能是输出以下形式的金字塔图案。
main()
{
int i,j;
for(i=1;i<=4;i++)
{
for(j=1;j<=4-i;j++)
printf(" ");
for(j=1;j<=______;j++)
printf("*");
printf("\n");
}
}
在下画线处应填入的是
- A.i B.2*i-1 C.2*i+1 D.i+2
-
有如下程序段
#include "stdio.h"
#include "string.h"
#define N 10
#define M 10
char *find(char(*a)[M],int n)
{ char *q;int i;
q=a[0];
for(i=0;i
if(strcmp(a[i],q)<0)q=a[i];
return q;}
main()
{ char s[N][M]={"tomeetme","you","and","he","china"};
char *p;
int n=5;
p=find(s,n);
puts(p);}
则执行后输出的结果为
- A.he
- B.and
- C.you
- D.tomeetme
-
以下程序中,函数sort的功能是对a数组中的数据进行由大到小的排序。
void sort(int a[],int n)
{ int i,j,t;
for(i=0;i
for(j=i+1;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[3],5);
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.1,2,3,8,7,6,5,4,9,10
- D.1,2,10,9,8,7,6,5,4,3
-
若有以下程序
#include
main()
{ int i;
int a[]={1,3,5,7,9}
int *p=a;
for(i=0;i<4;i++)
- a[i]=*p; printf("%d,%d\n",a[2],a[4]); } 上面程序的输出结果是
- A.3,9 B.5,9
- C.1,9 D.1,1
-
以下描述错误的是
- A.C程序中,函数可以直接或间接调用自己
- B.函数调用时,函数名必须与所调用的函数名字完全一致
- C.函数说明语句中的类型必须与函数返回值的类型一致
- D.实参个数可以与形参个数不一致
-
若有语句int *point,a=4;和 point=&a;,下面均代表地址的一组选项是
- A.a,point,*&a B.&*a,&a,*point
- C.*&point,*point,&a D.&a,&*point,point
-
已知int a,b;double c;,则以下语句中错误的函数调用是
- A.scanf("%d,%x,%lf",&a,&b,&c); B.scanf("%d,%d,%le",&a,&b,&c);
- C.scanf("%o,%x,%o",&a,&b,&c); D.scanf("%d,%o,%e",&a,&b,&c);
-
有以下计算公式:
若程序前面已在命令行中包含math.h文件,不能够正确计算上述公式的程序段是
([answer]
-
以下符合C语言语法的实型常量是
- A.1.2E0.7 B.3.33.145E C.E23 D..4E-2
-
若有以下程序段,w和k都是整型变量。
w=k;
LB:if(w==0)goto LE;
w--;
printf("*");
goto LB;
LE:
M
则不能与上面程序段等价的循环语句是
- A.for(w=k;w!=0;w--)printf("*");
- B.w=k;
while(w--!=0)printf("*");w++; - C.w=k;
do { w--;printf("*");}while(w!=0); - D.for(w=k;w;--w)printf("*");
-
有以下程序
#include "stdio.h"
void fun(int *a,int *b)
{ int c=20,d=20;
*a=c/3;
b=d/5;}
main()
{ int a=3,b=5;
fun(&a,&b);
printf("%d,%d\n",a,b);
}
程序的运行结果是
- A.6,5 B.5,6
- C.20,25 D.3,5
-
在数据管理技术的发展过程中,先后经历了人工管理阶段、文件系统阶段和数据库系统管理阶段。其中数据独立性最高的阶段是
- A.数据库系统 B.文件系统 C.人工管理 D.数据项管理
-
下列描述中正确的是
- A.软件指的就是程序 B.软件开发不受任何计算机系统的限制
- C.软件既是逻辑实体,又是物理实体 D.软件是程序、数据与相关文档的集合
-
用树形结构来表示实体之间联系的模型称为
- A.层次模型 B.关系模型 C.网状模型 D.数据模型
-
对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是
- A.插入排序 B.冒泡排序 C.直接插入排序 D.堆排序
-
在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序只看做是
- A.路径的集合 B.循环的集合 C.目标的集合 D.地址的集合
-
非空的循环单链表head的尾结点(由p所指向)满足
- A.p->next==NULL B.p==NULL C.p->next=head D.p=head
-
开发大型软件时,产生困难的根本原因是
- A.大系统的复杂性 B.人员知识不足 C.客观世界千变万化 D.时间紧、任务重
-
对建立良好的程序设计风格,下面描述正确的是
- A.程序应简单、清晰、可读性好 B.符号名的命名只需符合语法
- C.充分考虑程序的执行效率 D.程序的注释可有可无
-
下列叙述中不正确的是。
- A.算法的效率不仅与问题的规模有关,还与数据的存储结构有关
- B.算法的时间复杂度是指执行算法所需要的计算工作量
- C.数据的逻辑结构与存储结构是一一对应的
- D.算法的时间复杂度与空间复杂度不一定相关
-
数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图内容的是
- A.控制流 B.加工 C.数据存储 D.数据流