2010上半年等考二级C语言笔试精选试题(7)
1.以下程序运行后,输出结果是()
#include
ss(char *s)
{char *p=s;
while(*p)p++;
return(p-s);
}
main()
{char*a="abded";
inti;
i=ss(a);
printf("%d ",i);
}
A)8 B)7 C)6 D)5
2.若有如下程序:
int sub()
{static int n=1;
int x=1;
x*=n;n++;
return x;}
main()
{int n,t=1;
for(n=1;n<6;n++)t*=sub();
printf("%d ",t);}
则程序运行后的输出结果是()
A)15 B)120 C)34560 D)-30976
3.在C语言中,函数的隐含存储类别是()
A)static B)auto C)extern D)register
4.有以下程序:
intf1(doublea)
{returna*a; }
intf2(doublex,doubley)
{doublea,b;
a=f1(x);
b=f1(y);
returna+b;
}
main()
{doublew;
w=f2(1.1,2.0);
…
}
变量w中的值是()
A)5.21 B)5 C)5.0 D)0.0
5.下面被调用函数sub的函数值的类型是()
sub(float a)
{float b;
b=a*a+1;
return b;}
A)单精度型 B)双精度型 C)空类型 D)整型
6.若有以下定义语句:
doublea[5];inti=0;http://
能正确给a数组元素输入数据的语句是()
A)scanf("%lf%lf%lf%lf%lf",a);
B)for(i=0;i<=5;i++)scanf("%lf",a+i);
C)while(i<5)scanf("%lf",&a[i++]);
D)while(i<5)scanf("%lf",a+i);
7.以下程序的输出结果是()
main()
{ charss[16]="test "";
printf("%d,%d ",strlen(ss),sizeof(ss));
}
A)4,16 B)7,7 C)16,16 D)4,7
8.以下说法正确的是()
A)宏定义是C语句,所以要在行末加分号
B)可以使用#undef命令来终止宏定义的作用域
C)在进行宏定义时,宏定义不能层层置换
D)对程序中用双引号括起来的字符串内的字符,与宏名相同的要进行置换
9.以下程序的输出结果是()
#include
main()
{struct stru{int a,b;
char c[6];
};
printf("%d ",sizeof(stru));
}
A)2 B)4 C)8 D)10
10.若有如下定义:
int s[3];
则下面表达式中不能代表数组元素s[1]的地址的是()
A)&s[1] B)&s[0]+1 C)s+1 D)s++
答案:1.D 2.B 3.C 4.C 5.D 6.C 7.A 8.B 9.D 10.D