1.以下程序运行后,输出结果是()
#include
ss(char *s)
{char *p=s;
while(*p)p++;
return(p-s);
}
main()
{char*a="abded";
inti;
i=ss(a);
printf("%d\n",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\n",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;
能正确给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\0\n\"";
printf("%d,%d\n",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\n",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