铜 陵 学 院
2010 -2011学年第2学期
《C语言程序设计》考试试卷
(适用班级:2010级公共课)
题号
一
二
三
四
总分
统分人
统分复核人
得分
得分
阅卷人
复核人
一、选择题(每题1分,共20分)
1.下列合法的变量名是( )
A.B#123 B._1234 C.void D.xy*
2. 字符串“a\x44\\abcd\101b”长度是( )
A.9 B.10 C.16 D.18
3. 设int x=1,y=2,z=3,w=4,则表达式: x”,n);}
此程序的输出结果是( ).
A.30 B. 24 C. 60 D. 48
7. 设整型变量n的值为2,执行语句“n+=n-=n*n;”后,n的值是( )
A. 0 B. 4 C. - 4 D. 2
8. 下面的变量说明中( )是正确的。
A.char:a,b,c; B.char a; b; c;
C.char a, b, c; D.char a, b, c
9. 若x=5,y=3 则y*=x+5; y的值为( ).
A. 10 B. 20 C. 15 D. 30
10. 能正确表示a和b同时为正或同时为负的逻辑表达式( )
A.(a>=0||b>=0)&&(a<0||b<0) B. (a>=0&&b>=0)&&(a<0&&b<0)
C.(a+b>0)&&(a+b<=0) D.a*b>0
11.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是( )
A.abs(x-y)<10 B.x-y>-10 && x-y<10
C.(x-y)<-10 || !(x-y)>10 D.(x-y)*(x-y)<100
12.有以下程序段 int k=0; while(k=1) k++;while循环执行的次数是( )
A.无限次 B.有语法错误,不能执行 C.一次也不执行 D.执行1次
13.C语言中,数组元素下标的下限是( )
A.1 B.0 C.视说明语句而定 D.无固定下限
14.定义一维数组时,[]内的下标表达式应该是( )
A.整型表达式 B.表达式 C.整型常量表达式 D. 常量表达式
15.若用一维数组名作为调用函数的实参时,则传递给形参的是( )
A.数组首元素的值 B.数组中全部元素的值
C.数组中首元素的地址 D.数组元素的个数
16.要使函数体内的某局部变量能保留函数前一次调用后的值,供下一次调用时继续使用,该变量的存储类型应是( )
A.auto B.static C.extern D.Register
17.若有说明: int i,j=2,*p=&j; ,则完成i=j赋值功能的语句是( )
A. i=*p; B. p*=*&j; C. i=&j; D. i=**p;
18.有程序段int *p,a=10,b=1; p=&a;a=p+b;执行该程序段后,a的值为( )
A.12 B.11 C.19 D.编译出错
19.设有以下说明语句 struct ex {int x;float y;char z;}example;则下面的叙述只不正确的是( )
A. struct是结构体类型的关键字 B. example是结构体类型名
C. x,y,z都是结构体成员名 D. struct ex是结构体类型
20.表达式0x13&0x17的值是( )
A.0x17 B.0x13 C.0x18 D.0x2c
得分
阅卷人
复核人
二、程序填空题(每空2分,共20分)
1.下列程序,判断从键盘上输入的一个字符,并按下列要求输出:
若该字符是数字,输出字符串“0~9”;
若该字符是大写字母,输出字符串“A~Z”;
若该字符是小写字母,输出字符串“a~z”;
若该字符是其它字符,输出字符串“!,@,……”;
main()
{char c; scanf(“%c”,&c);
if(‘0’<=c && c<=’9’)
else if( ) printf(“A~Z
”);
(‘a’<=c && c<=’z’) printf(“a~a
”);
printf(“!,@,……”);
}
2.下列程序实现计算并输出数列:1,3,5,…,2n-1,…的前几项之和。
main()
{long s,n,k,i;
scanf(“ ”,&n);
k=2*n-1;s=0;
for(i=1;i<=k; ) s+=i;
printf(“1+3+…+%ld=%ld
”,2*n-1,s);
}
3.下列程序从键盘输入10个数刺入数组a中,调用fmax求数组中的最大值并输出。
int fmax(int b[],int t)
{int i,imax;
imax=b[0];
for(i=1;iimax) ;
return imax;
}
main()
{int a[10],i,jmax;
for(i