历年二级C语言笔试真题及答案
(24)有以下程序
mian()
{int i,j;
for(i=1;i<4;i++)
{for(j=i;j<4;j++) printf(“%d*%d=%d “,i,j,i*j);
Printf(“\n”);}}程序运行后的输出结果是
*p=&n;
Printf(“Input n:”); scanf(“%d”,&p); printf(“output n:”); printf(“%d\n”,p);} 该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是
A)int n,*p=NULL; B)*p=&n;
C)scanf(“%d”,&p) D)printf(“%d\n”,p);
(31)以下程序中函数f的功能是:当flag
为4时,进行有小到大排序;当flag为0时,进行由大到小排序。
void f(int b[],int n,int flag)
{int i,j,t;
for(i=0;i for (j=i+1;j
if(flag?b[ i ]>b[j]:b[ i ]}
main()
{int a[10]={5,4,3,2,1,6,7,8,9,10},I; f(&a[2],5,0); f(a,5,1);
for(i=0;i<10;i++) printf(“%d,”a[ i ]);} 程序运行后的输出结果是
A)1,2,3,4,5,6,7,8,9,10,B)3,4,5,6,7,2,1,8,9,10,
C)5,4,3,2,1,6,7,8,9,10,D)10,9,8,7,6,5,4,3,2,1,
(32)有以下程序
void f(int b[])
{int I;
for(i=2;i<6;i++) b[ i ]*=2;}
main()
{int a[10]={1,2,3,4,5,6,7,8,9,10},i; for(i=0;i<10;i++)
printf(“%d,”,a[ i ]);} 程序运行后的输出结果是
A)1,2,3,4,5,6,7,8,9,10,B)1,2,6,8,10,12,7,8,9,10
C)1,2,3,4,10,12,14,16,9,10,D)1,2,6,8,10,12,14,16,9,10,******(33)有以下程序
typedef struct{int b,p;}A;
void f(A c) /*注意:c是结构变量名*/ {int j;
c.b+=1; c.p+=2;}
main(){int i; A a={1,2};
f printf(“%d,%d\n”,a.b,a.p);} 程序运行后的输出结果是 A)2,3 B)2,4 C)1,4 D)1,2
(34)有以下程序
main()
{int
a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7
,2,5,},{4,8,6,1,}},i,j,k,t;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
for(k=j+1;k<4;k++) if(a[j][ i]>a[k][ i]){t=a[j][ i];a[
j][ i ]=a[k][ i ];a[k][ i]=t;}/*按列
排序*/
for(i=0;i<4;i++)printf(“%d,”,a[ i ][j]);}
程序运行后的输出结果是
A)1,6,5,7, B)8,7,3,1, C)4,7,5,2,
D)1,6,2,1,
(35) 有以下程序
main()
{int
a[4][4]={{1,4,3,2,},{8,6,5,7,},{3,7
,2,5,},{4,8,6,1,}},i,k,t;
for(i=0;i<3;i++)
for(k=i+i;k<4;k++)
if(a[ i ][ i ]for(i=0;i<4;i++)print
f(“%d,”,a[0][ i ]);} 程序运行后的输
出结果是
A)6,2,1,1, B)6,4,3,2, C)1,1,2,6,
D)2,3,4,6,
(36) 有以下程序
void f(int *q)
{int i=0;
for( i<5;i++)(*q)++;}
main()
{int a[5]={1,2,3,4,5},i;
for(i=0;i<5;i++)printf(“%d,”,a[ i ]);}
程序运行后的输出结果是 A)2,2,3,4,5,
B)6,2,3,4,5, C)2,3,4,5,6,
(37) 有以下程序
#include
main()
{char p[20]={‘a’,’b’,’c’,’d’},q[]=”
abc”, r[]=”abcde”;
Strcpy(p+strlen(q),r); strcat(p,q);
Printf(“%d%d\n”,sizeof(p),strlen(p)); }
程序运行后的输出结果是 A)20 9 B)9
9 C)20 11 D)11 11
(38) 有以下程序
#include
main()
{char p[20]={‘a’,’b’,’c’,’d’},q[]=”
abc”, r[]=”abcde”
strcat(p,r); Strcpy(p+strlen(q),q);
Printf(“%d \n”,sizeof(p)); } 程序运
行后的输出结果是 A)9 B)6 C)11
D)7
(39) 有以下程序
#include
main()
{ char p[20]={‘a’,’b’,’c’,’d’},
q[]=”abc”, r[]=”abcde”;
Strcat(p,r); strcpy(p+strlen(q),q);
Printf(“%d\n”,strlen(p));} 程序运
行后的输出结果是 A) 9 B) 6 C) 11
D) 7
***********************else {int
a=7 ;t+=a++;}
return t+a++;}
main()
{int s=a,i=0;
for(;i〈2;i++ 〉s+=f(i);
printf (“%d\n”,s);} 程序运行后的
输出结果是 A)24 B)28 C)32 D)36
(43) 有一个名为init.txt的文件,内容如
下:
#define HDY(A,B) A/B
# define PRINT(Y) Printf(“y=%d\n.,Y)
有以下程序
#include “init.txt”
main()
{int a=1,b=2,c=3,d=4,k;
K=HDY(a+c,b+d);
PRINT(K);}下面针对该程序的叙述正
确的是 A)编译有错B)运行出错 C)运
行结果为y=0 D) 运行结果为y=6
(44) 有以下程序
Main()
{char ch[]=“uvwxyz”,*pc;
Pc=ch; printf(“%c\n”,*(pc+5)); }程
序运行后的输出结果是 A)z B)0 C)
元素ch[5]地址D)字符y的地址
**********************(45) 有以下程
序
struct S {int n; int a[20];};
void f(struct S *P)
{int i,j,t;
for(i=0;in-1;i++)
for(j=j+1;jn-1;j++) 程序运行
后的输出结果是 A)3 B)4 C)5 D)
6
(49)有以下程序
#include
Main()
{FILE *fp; int I,a[6]={1,2,3,4,5,6};
fp=fopen(“d2.dat”,”w”);
fprintf(fp,”%d%d\n”,a[0],a[1],a[2]);
fprintf(fp, “%d%d\n”,a[3],a[4],a[5]);
fclose(fp);
fp=fopen(“d2.dat”,”r”);
fscanf(fp,”“%d%d\n”,&k,&n);
printf(“%d%d\n”,k,n);
fclose(fp);} 程序运行后的输出结
果是 A)1 2 B)1 4 C)123 4 D) 123 456
(50)有以下程序
#include
main ()
{fILE *fp; int I,a[6]={1,2,3,4,5,6k};
fp=fopen(“d3.dat”,”w+b”);
fwrite(a,size(int),6,fp);
fseek(fp,sizeof(int)*3,SEEK SET);/*
该语句使读文件的位置指针从文件头向
后移动3个int型数据*/
fread(a,sizeof(int),3,fp);
fclose(fp);
for(i=0;i<6;i++) printf(“%d,”,a[ i]);}
程序运行后的输出结果是
A)4,5,6,4,5,6, B)1,2,3,4,5,6, C)4,5
,6,1,2,3, D)6,5,4,3,2,1,
二.填空题(每空2分,共40分)
(1)在深度为7的满二叉树中,度为2
的结点个数为_________。
(2)软件测试分为白箱(盒)测试和黑
箱(盒)测试,等价类划分法属于
__________ 测试。
(3)在数据库系统中,实现各种数据管
理功能的核心软件称为数据库管理系统
______。
14