上海交通大学级C语言测试题
一、 选择题
(1)以下选项中,能用作用户标识符的是____
A)classB)forC)_2013D)2013_
(2)设有定义:int a,*pa=&a; 以下scanf语句中能正确为变量a读入数据的是____
A)scanf("%d",pa);
B)scanf("%d",a);
C)scanf("%d",&pa);
D)scanf("%d",*pa);
(3)若有定义语句:int a=7;,则表达式:(a++)/2的值是____
A)0B)3C)4D)5
(4)以下叙述中错误的是____
A)用户定义的函数中可以没有return 语句
B)用户定义的函数中可以有多个return 语句,以便可以调用一次返回多个函数值
C)用户定义的函数中若没有return 语句,则应当定义函数为void 类型
D)函数的return 语句中可以没有表达式
(5)以下选项中是正确的整型常量的是____
A)1234B)’1234’C)1,234D)”1234”
(6)设有以下定义:
#define d 2
int a=0; double b=1.25; char c=’A’;
则下面语句中错误的是____
A)a++;B)b++;C)c++;D)d++;
(7)若i和k都是int类型变量,有以下for语句for(i=0,k=-1;k=1;k++) printf("*****\n");下面关于语句执行情况的叙述中正确的是____
A)循环体执行两次
B)循环体执行一次
C)循环体一次也不执行
D)构成无限循环
(8)有以下程序(说明:字母A的ASCII码值是65):
#include
void fun(char *s)
{
while(*s)
{
if(*s%2) printf("%c",*s);
s++;
}
}
main()
{
char a[]="BYTE";
fun(a);
printf("\n");
}
程序运行后的输出结果是____
A)BYB)BTC)YTD)YE
(9)设有如下函数定义:
int fun(int k){
if (k<1) return 0;
else if(k==1) return 1;
else return fun(k-1)+1;
}
若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是____
A)2B)3C)4D)5
(10)有以下程序:
#include
#define S(x) 4*(x)*x+1
main()
{
int k=5,j=2;
printf("%d\n",S(k+j));
}
程序运行后的输出结果是____
A)197B)143C)33D)28
二、给出下列程序的输出结果:
(1) [程序]
#include
int fun()
{
static int x=1;
x*=2;
return x;
}
main()
{
int i,s=1;
for(i=1;i<=3;i++) s*=fun();
printf("%d\n",s);
}
输出结果_____________64___________
(2) [程序]
#include
int f(int x,int y)
{
return((y-x)*x);
}
void main()
{
int a=3,b=4,c=5,d;
d=f(f(a,b),f(a,c));
printf("%d\n",d);
}
输出结果______________9__________
(3) [程序]
#include
void f(int y,int *x)
{
y=y+*x;
*x=*x+y;
}
void main( )
{
int x=2,y=4;
f(y,&x);
printf("x=%d,y=%d\n",x,y);
}
输出结果____________2,4____________ 无返回值? X=8,y=4
(4) [程序]
#define LETTER 1
#include
void main()
{
char str[20]="C Language", c;
int i=0;
while((c=str[i])!='\0')
{
i++;
#ifdef LETTER 这个表示如果声明了LETTER,就执行下面三行语句
i