特意为大家整理的09年4月全国计算机等级二级C语言考前练习,希望对大家的备考有好的帮助!
1.若有如下定义:
int s[3][4];
则下面表达式中能代表数组元素s[1][0]的值的是()
A)*(s+1)
B)s[1]
C)s+1
D)*(s[1])
2.若有定义和语句
int **pp,*p,a=10,b=20;
pp=&p;p=&a;p=&b;printf("%d,%d\n",*p,**pp);
则输出结果是()
A)10,10
B)10,20
C)20,10
D)20,20
3.有以下程序
main()
{ int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
for(i=0;i<3;i++)
for(j=i;j<=i;j++)t=t+b[i][b[j][j]];
printf("%d\n",t);
}
程序运行后的输出结果是()
A)3
B)4
C)1
D)9
4.下列程序执行后输出的结果是()
#include<stdio.h>
f(int a)
{ int b=0;
static c=3;
a=c++,b++;
return(a);
}
main()
{ int a=2,i,k;
for(i=0;i<2;i++)
k=f(a++);
printf("%d\n",k);
}
A)3
B)0
C)5
D)4
5.下列程序执行后的输出结果是()
#define MA(x) x*(x-1)
main()
{ int a=1,b=2;
printf("%d\n",MA(1+a+b));
}
A)5
B)6
C)7
D)8
6.有以下程序段
# include<stdio.h>
main()
{ char s[4][10];
int i;
scanf("%s%s",s[0],s[1]);gets(s[2]);gets(s[3]);
for(i=0;i<4;i++)
puts(s[i]);
}
输入数据如下:aaaa bbbb<CR>(此处<CR>代表回车符)
cccc dddd<CR>
输出结果是()
A)aaaa
bbbb
cccc dddd
B)aaaa
bbbb
cccc
dddd
C)aaaa
bbbb
cccc dddd
eeee
D)aaaa bbbb
cccc
dddd
7.有以下程序
main()
{charst[20]="hello\0\t′\\";
printf("%d%d\n",strlen(st),sizeof(st));
}
程序运行后的输出结果是()
A)9 9
B)5 20
C)13 20
D)20 20
8.不合法的main函数命令行参数表示形式是()
A)main(inta,char*c[])
B)main(intarc,char**arv)
C)main(intargc,char*argv)
D)main(intargv,char*argc[])
9.下面程序的输出结果为()
struct st
{ int x;
int*y;
} *p;
int dt[4]={10,20,30,40};
struct st aa[4]={50,&dt[0],60,&dt[1],,&dt[2],80,&dt[3]};
main()
{ p=aa;
printf("%d\n",++p->x);
printf("%d\n",(++p)->x);
printf("%d\n",++(*p->y));
}
A)10
B)50
C)51
D)60
20 60 60 70
20 21 21 31
10.以下程序的功能是()
# include<stdio.h>
main ()
{ FILE*fp1;*fp2;
fp1=fopen ("file1","r");
fp2=fopen ("file2","w");
while (!feof (fp1))
fputc (fgetc (fp1),fp2);
fclose (fp1); fclose (fp2); }
A)将磁盘文件的内容显示在屏幕上
B)将两个磁盘文件合为一个
C)将一个磁盘文件复制到另一个磁盘文件中
D)将两个磁盘文件合并后送屏幕
参考答案:1.D 2.D 3.B 4.D 5.D 6.A 7.B 8.C 9.C 10. C
11.在下列叙述中,错误的一条是()
A)scanf()函数可以用来输入任何类型的多个数据
B)数组名作函数参数时,也采用“值传递”方式
C)如果形参发生改变,不会改变主调函数的实参值
D)函数的实参与形参的类型应一致
12.有以下程序
union myun
{struct
{intx,y,z;}u;
int k;
}a;
main()
{a.u.x=4;a.u.y=5;a.u.z=6;
a.k=0;
printf(“%d\n”,a.u.x);
}
程序运行后的输出结果是()
A)4
B)5
C)6
D)0
13.以下程序的输出结果是()
#include
main()
{ chars1[]="123",s2[]="abc",ss[20]="010";
strcat(ss+1,strcpy(s2,s1));
printf("%s\n",ss);
}
A)010123
B)0abc
C)01123
D)01abc
14.有以下程序
# include
main()
{ int *p,j;
p=NULL;
p=fun();
for(j=0;j<4;j++){printf("%d",*p);p++;}
}
int*fun()
{
int a[4],k;
for(k=0;k<4;k++)a[k]=k;
return(a);
}
程序运行后的输出结果是()
A)程序有错不能运行
B)输出4个NULL
C)输出0 1 2 3
D)输出1 1 1 1
15.有以下程序:
void fun(intk)
{ static inta[5]; int i;
for(i=0;i<5;i++)
{ a[i]+=i+k;printf("%d",a[i]);}
printf("\n");
}
main()
{fun(1);fun(2);}
程序的输出结果是()
A)1 2 3 4 5
B)随机数
C)1 2 3 4 5
D)1 2 3 4 5
3 5 7 9 11 2 3 4 5 6 2 4 6 8 10
16.有以下程序
main()
{int m,n;
printf("Enter m,n∶");scanf("%d%d",&m,&n);
while(m!=n)
{while(m>n)m-=n;
while(n>m)n-=m;
}
printf("m=%d\n",m);
}
如果从键盘上输入65 14<回车>,则输出结果为()
A)m=3
B)m=2
C)m=1
D)m=0
17.以下程序的输出结果是()
void fun(float *p1,float *p2,float *s)
{ s=(float*)calloc(1,sizeof(float));
*s=*p1+*p2++;
}
main()
{ floats[2]={1.1,2.2},b[2]={10.0,20.0},*s=a;
fun(a,b,s);
printf("%5.2f\n",*s);
}
A)11.10
B)12.00
C)21.10
D)1.10
18.有以下程序
#include
#include
fun(char*w,int n)
{char t,*s1,*s2;
s1=w;s2=w+n-1;
while(s1<s2);
{t=*s1++;
*s1=*s2--;
*s2=t;
}
}
main()
{charp[]="1234567";
fun(p,strlen(p));
puts(p);
}
程序运行后的输出结果是()
A)1234567
B)7654321
C)1711717
D)7177171
19.若有如下程序:
struct student
{char name[10];
float score[3];}stu[3]={{"lili",75,90,90},
{"liudan",90,85,75};
{"guoli",85,85,70}};
main()
{int i;float sum=0,aver;
for(i=0;i<3;i++)
sum=sum+stu[i].score[1];aver=sum/i;
printf("%6.2f\n",aver);}
则程序运行后的输出结果是()
A)83.33
B)85.00
C)86.00
D)86.67
20.有如下定义:
struct person
{char name[9];int age;}
struct person class[10]={"John",17,
"Paul",19,
"Mary",18,
"Adam",16};
能输出字母M的是()
A)printf("%c\n",class[3].name);
B)printf("%c\n",class[3].name[1]);
C)printf("%c\n",class[2].name[1]);
D)printf("%c\n",class[2].name[0]);
答案:1.B 2.D 3.A 4.A 5.A 6.C 7.D 8.C 9.D 10.D
3COME考试频道为您精心整理,希望对您有所帮助,更多信息在http://www.reader8.com/exam/