2014年3月计算机等级考试二级C语言考前全真模拟试卷(一)
-
下面程序的输出是
main()
{
int arr[10],i,k=0;
for(i=0;i<10;i++)
arr[i]=i;
for(i=1;i<4;i++)
k+=arr[i]+i;
printf("%d\n",k);
}
-
fun函数的功能是首先对a所指的N行N列的矩阵找出各行中最大的数,再求这N个最大值中最小的那个数作为函数值返回,请填空。
#include
#define N 100
int fun(int(*a)[N])
{
int row,col,max,min;
for(row=0;row
{
for(max=a[row][0],col=1;col
if() max=a[row][col];
if(row==0)
min=max;
else
if()
min=max;
}
return min;
}
-
语句X++;、++X;、X=X+1;和X=1+X;执行后都使变量X中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同)
-
设有如下程序
main()
{
int n1,n2;
scanf("%d",&n2);
while(n2!=0)
{
n1=n2%10;
n2=n2/10;
printf("%d",n1);
}
}
程序运行后,如果从键盘上输入1298,则输出结果为
-
函数mycmp(char *s,char *t)的功能是比较字符串s和t的大小,当s等于t时返回0,当s>t时返回正值,当s
mycmp( char *s,char *t)
{ while (*s==*t)
{ if (*s==’\0’)return 0;
++s;++t;
}
return();
}
-
关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、和自定义完整性。
-
软件维护活动包括以下几类:改正性维护、适应性维护、维护和预防性维护。
-
以下程序的输出结果是
#include
main()
{
int i,j,sum;
for(i=5;i>=1;i--)
{ sum=0;
for(j=i;j<=i;j++) sum+=i*j;
}
printf("%d\n",sum);
}
-
以下程序的输出结果是
#include
int fun(int x)
{
static int m=0;
return(m *=x);
}
main()
{
int s,i;
for(i=l;i<=3;i++) s=fun(i);
printf("%d\n",s);
}
-
数据结构包括数据的结构和数据的存储结构。
-
有以下程序
int sub(int n)
{ return(n%10+n/10); }
main()
{ int x,y;
scanf("%d",&x);
y=sub(sub(x));
printf("%d\n",y);
}
若运行时输入:248<回车>,程序的输出结果是
-
下列程序的功能是输入一个整数,判断是否是素数,若为素数,则输出1,否则输出0,请填空。
main()
{ int i, x, y=1;
scanf("%d", &x);
for(i=2; i<=x/2; i++)
if{ y=0; break;}
printf("%d\n", y);
}
-
面向对象程序设计的三大主要特点分别是封装性、继承性和
-
有以下程序
int f(int n)
{ if(n==1)return 1;
else return f(n-1)+1;
}
main()
{ int i,j=0;
for(i=1;i<3;i++)j+=f(i);
printf("%d\n",j);
}
程序的运行结果是
- A.4 B.3
- C.2 D.1
-
对下列二叉树进行前序遍历的结果是
-
有以下程序
main()
{ int m=14,n=24;
printf("%d,%d",m++,++n);
printf("%d,%d\n",n++,++m);
}
程序运行后的输出结果是
- A.15252616 B.14252515
- C.14252516 D.14252615
-
若已建立如下图所示的单向链表结构:
在该链表结构中,指针p、s分别指向图中所示结点,则不能将s所指的结点插入到链表末尾仍构成单向链表的语句组是
- A.p = p->next; s->next = p; p->next = s;
- B.p = p->next; s->next = p->next; p->next = s;
- C.s->next = NULL; p = p->next; p->next = s;
- D.p = (*p).next; (*s).next = (*p).next; (*p).next = s;
-
有以下程序
main()
{
int a[3][2]={0},(*ptr)[2],i,j;
for(i=0;i<2;i++)
{
ptr=a+i;
scanf("%d",ptr);
ptr++;
}
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
printf("%2d",a[i][j]);
printf("\n");
}
}
若运行时输入:1 2 3<回车>,则输出结果是
-
以下程序的输出结果是
#include
main()
{
int a,b,d=241;
- a=d/100%9;
- b=(-1)&&(-1); printf("%d,%d\n",a,b); }
- A.6,1 B.6,0
- C.2,1 D.2,0
-
设有程序段
int k=10;
while(k=0)k=k-1;
则下面描述中正确的是
- A.while循环执行10次 B.循环是无限循环
- C.循环体语句一次也不执行 D.循环体语句执行一次
-
下面说明不正确的是
- A.char a[10]="china"; B.char a[10],*p=a;p="china";
- C.char *a;a="china"; D.char a[10],*p;p=a="china"
-
请选出以下语句的输出结果
printf("%d\n",strlen("\t\"\065\xff\n"));
- A.5 B.14
- C.8 D.输出项不合法,无正常输出
-
有以下程序
#include
int fun(int (*s)[4],int n, int k)
{ int m, i;
m=s[0][k];
for(i=l; i
if(s[i][k]>m) m=s[i][k];
return m;
}
main()
{ int a[4][4]={{1,2,3,4},{11,12,13,14},{2l,22,23,24},{31,32,33,34}};
printf("%d\n", fun(a,4,0));
}
程序的运行结果是
- A.4 B.34
- C.31 D.32
-
有以下程序
void func(int *a,int b[])
{ b[0]=*a+6; }
main()
{ int a,b[5]={0};
- a=0; b[0]=3;
- func(&a,b); rintf("%d\n",b[0]); } 程序的运行结果是
- A.6 B.7
- C.8 D.9
-
有如下程序
main()
{
int x=1,a=0,b=0;
switch(x)
{
case 0: b++;
case 1: a++;
case 2: a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
该程序的输出结果是
- A.a=2,b=1 B.a=1,b=1
- C.a=1,b=0 D.a=2,b=2
-
有如下程序段
struct abc
{ int a, b, c, s;};
main()
{ struct abc s[2]={{1,2,3},{4,5,6}}; int t;
t=s[0].a+s[1].b;
printf("%d\n",t);
}
程序运行后输出的结果是
- A.5 B.6
- C.7 D.8
-
有以下程序
main()
{ char a[]={ ’a’, ’b’, ’c’, ’d’, ’e’, ’f’, ’g’, ’h’, ’\0’};
int i,j;
i=sizeof(a);
j=strlen(a);
printf("%d,%d\b",i,j);
}
程序运行后的输出结果是
- A.9,9 B.8,9 C.1,8
-
有如下说明
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
则数值为9的表达式是
- A.*p+9 B.*(p+8) C.*p+=9 D.p+8
-
阅读下面程序,则执行后的结果为
#include "stdio.h"
fun1()
{ int k=20;
return k;
}
fun2()
{ int a=15;
return a; }
fun3(int a,int b)
{ int k;
k=(a-b)*(a+b);
printf("%d\n",k);}
main()
{ un3(fun1(),fun2());}
- A.0 B.184
- C.175 D.编译不通过
-
已定义: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
-
设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是
- A.n=(n*100+0.5)/100.0 B.m=n*100+0.5,n=m/100.0
- C.n=n*100+0.5/100.0 D.n=(n/100+0.5)*100.0
-
有如下程序
#include "stdio.h"
main()
{ int a,b,m;
for(a=5;a>=1;a--)
{ m=0;
for(b=a;b<=5;b++)
m=m+a*b;
}
printf("%d\n",m);
}
上述程序的运行结果是
- A.30 B.15
- C.20 D.10
-
下面叙述中,正确的是
- A.C语言编译时不检查语法 B.C语言的子程序有过程和函数两种
- C.C语言的函数可以嵌套定义 D.C语言的函数可以嵌套调用
-
有以下程序
#include
main()
{ FILE *fp;
int i,k,n;
fp=fopen("data.dat", "w+");
for(i=4; i<9; i++)
{ fprintf(fp,"%d",i);
if(i%3==0) fprintf(fp,"\n");
}
rewind(fp);
fscanf(fp,"%d%d",&k,&n);
printf("%d %d\n",k,n);
fclose(fp);
}
程序的运行结果是
- A.0 0 B.4 5
- C.45 78 D.456 78
-
有以下程序
main()
{
int a[]={1,2,3,4,5,6,7,8,9,0},*p;
for(p=a;p printf("%d,",*p);
}
程序运行后的输出结果是
- A.1,2,3,4,5,6,7,8,9,0, B.2,3,4,5,6,7,8,9,10,1,
- C.0,1,2,3,4,5,6,7,8,9, D.1,1,1,1,1,1,1,1,1,1,
-
有以下程序
#include
struct STU
{ int num;
float TotalScore; };
void f(struct STU p)
{ struct STU s[2]={{1047,530},{1048,531}};
p.num = s[1].num; p.TotalScore = s[1].TotalScore;
}
main()
{ struct STU s[2]={{2041,730},{2042,731}};
f(s[0]);
printf("%d,%3.0f\n",s[0].num,s[0].TotalScore);
}
程序的运行结果是
- A.1047,530
- B.1048,531
- C.2041,730
- D.2042,731
-
有以下程序
#include
main()
{ unsigned char a;
- a=4^6; printf("%d,\n", a); } 程序的运行结果是
- A.4, B.2,
- C.2 D.4
-
若有以下程序
#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将其类型定义为无返回值型
-
若int k=8;,则执行下列程序后,变量k的正确结果是
main()
{ int k=8;
switch(k)
{ case 8:k+=1;
case 10:k+=1;
case 11:k+=1;break;
default:k+=1;
}
printf("%d\n",k);
}
- A.12 B.11
- C.10 D.9
-
.C语言运算对象必须是整型的运算符是
- A.% B./ C.= D.<
-
设有数组定义:char array[]="Chinese";则数组array所占的空间为
- A.6个字节 B.7个字节 C.8个字节 D.9个字节
-
按照C语言规定的用户标识符命名规则,不能出现在标识符中的字符是
- A.大写字母 B.连接符 C.小写字母 D.下画线
-
以下不合法的字符常量是
- A.’x\018’ B.’\"’ C.’\\’ D.’\xc
-
在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是
- A.地址传递 B.单向值传递
- C.由实参传形参,再由形参传实参 D.传递方式由用户指定
-
已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为
- A.GEDHFBCA B.DGEBHFCA C.ABCDEFGH D.ACBFEDHG
-
软件工程出现的原因是
- 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.顺序结构、选择结构、循环结构
-
下列SQL语句中,用于修改表结构的命令式是
- A.Alter
- B.Create
- C.Update
- D.Insert
-
下列说法中,不属于数据模型所描述的内容的是
- A.数据结构 B.数据操作 C.数据查询 D.数据约束
-
软件生命周期中花费时间最多的阶段是
- A.详细设计 B.软件维护 C.软件编码 D.软件测试
-
数据结构作为计算机的一门学科,主要研究数据的逻辑结构、对各种数据结构进行的运算以及
- A.数据的存储结构 B.计算方法 C.数据映像 D.逻辑存储
-
在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是
- A.连接 B.选择 C.投影 D.笛卡儿乘积