2011–2012学年第一学期《C语言程序设计》课程
试卷(开卷)
教研室主任签名: 使用班级:
题 号一二三四总得分复核人应得分30212425100实得分评卷人一、选择题(每题2分,共30分)
1. 以下非法的赋值语句是
A) n=(i=2,++i);B)j++;C) ++(i+1);D)x=j>0;
2.设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是
A)6.500000B)6C) 5.500000D) 6.000000
3.已知i、j、k为int型变量,若从键盘输入:1,2,3,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是
A) scanf(“%2d%2d%2d”,&i,&j,&k);
B) scanf(“%d %d %d”,&i,&j,&k);C) scanf(“%d,%d,%d”,&i,&j,&k);
D) scanf(“i=%d,j=%d,k=%d”,&i,&j,&k);
4.与数学式子对应的C语言表达式是
A) 3*x^n(2*x-1) B) 3*x**n(2*x-1)
C) 3*pow(x,n)*(1/(2*x-1))D) 3*pow(n,x)/(2*x-1)
5.设有定义:long x=-123456L;,则以下能够正确输出变量x值的语句是
A)printf(“x=%d\n”,x);B) printf(“x=%1d\n”,x);
C)printf(“x=%8dL\n”,x);D)printf(“x=%LD\n”,x);
6.若有以下程序:
main()
{ int k=2,i=2,m;
m=(k+=i*=k);printf(“%d,%d\n”,m,i);
}
执行后的输出结果是
A) 8,6 B) 8,3C) 6,4 D) 7,4
7.已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 && y+z/2的值是
A) 6 B) 0C) 2 D) 1
8.以下选项中,与k=n++完全等价的表达式是
A) k=n,n=n+1B) n=n+1,k=nC) k=++nD) k+=n+1
9.有以下程序段
int n=0,p;
do{scanf(“%d”,&p);n++;}while(p!=12345 &&n<3);
此处do—while循环的结束条件是
A) P的值不等于12345并且n的值小于3
B) P的值等于12345并且n的值大于等于3
C) P的值不等于12345或者n的值小于3
D) P的值等于12345或者n的值大于等于3
10.C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是
A) void B) intC) floatD) double
11.若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是
A) p=q;B) *p=*q;C) n=*q;D) p=n;
12.有一函数, ,以下程序段中不能根据x值正确计算出y值的是
A) if(x>0) y=1; B) y=0;
else if(x==0) y=0;if(x>0) y=1;
else y=-1;else if(x<0) y=-1;
C)y=0;D)if(x>=0)
if(x>=0);if(x>0) y=1;
if(x>0) y=1;else y=0;
else y=-1; else y=-1;
13.有以下程序
void fun(char *c,int d)
{ *c=*c+1;d=d+1;
printf(“%c,%c,”,*c,d);
}
main()
{ char a=’A’,b=’a’;
fun(&b,a); printf(“%c,%c\n”,a,b);
}
程序运行后的输出结果是
A)B,a,B,a B) a,B,a,B C) A,b,A,b D) b,B,A,b
14.有以下程序
main()
{ int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};
int i,s=0;
for(i=0;i<4;i++) s+=aa[i][1];
printf(“%d\n”,s);
}
程序运行后的输出结果是
A) 11 B) 19C) 13 D) 20
15.以