《c语言程序设计》谭浩强浙师大练习题_精品文档.docx
《《c语言程序设计》谭浩强浙师大练习题_精品文档.docx》由会员分享,可在线阅读,更多相关《《c语言程序设计》谭浩强浙师大练习题_精品文档.docx(8页珍藏版)》请在冰豆网上搜索。
![《c语言程序设计》谭浩强浙师大练习题_精品文档.docx](https://file1.bdocx.com/fileroot1/2022-10/6/cefdc3f9-0488-468d-ae99-7ca0be288916/cefdc3f9-0488-468d-ae99-7ca0be2889161.gif)
浙江师范大学《C语言程序设计》考试卷
考试形式 笔试(闭卷) 使用学生全校08级理科(非行知)专业
考试时间 120 分钟 出卷时间2009年 5 月 31 日
【说明】
考生应将全部答案都写在答题纸上,否则作无效处理。
试题1~7为程序选择填空题,为每个空格挑选出一个正确答案写在答题纸上。
试题8~9为程序设计题。
试题1(每小题2分,共10分)
阅读下列程序说明和程序,在每小题提供的若干可选答案中,选择一个正确答案.
【程序说明】
求多项式的值,直到最后一项的绝对值小于10-4.
【运行示例】
sum = 0.785448
【程序】
#include
#include<
(1) >
void main()
{
int i=1,flag=1;
double item,
(2);
do{
item= (3);
sum=sum+item;
flag=(4);
}while( (5));
printf("sum=%.2f\n",sum);
}
【供选择的答案】
(1) A. math.h B. string.h
C. ctype.h D. stdlib.h
(2) A. s B. sum
C. sum=0 D. sum=1
(3) A. 1/2*i-1 B. 1/(2*i-1)
C. flag/(2*i-1) D. (double)flag/(2*i-1)
(4) A. 0 B. 1
C. -1 D. -flag
(5) A.item>=0.0001 B.fabs(item)>=0.0001
C.item<0.0001 D.fabs(item)<0.0001
试题2(每小题2分,共10分)
阅读下列程序说明和程序,在每小题提供的若干可选答案中,选择一个正确答案.
【程序说明】
输入一个正整数n,然后输入n个单精度实数,用冒泡法将这些实数从低到高排序后输出。
【运行示例】
Entern:
5
Enter5floats:
75.27389.567.342-985.41
Aftersorted:
-98.005.4167.3475.2889.50
【程序】
#include
void main()
{ int n,i,j;
floattemp,a[100];
printf("Entern(n>0):
");
while(scanf("%d",&n),(6));//输入正整数n
printf("Enter%dfloats:
",n);
for(i=0;i scanf("%f",(7));
for(i=0;ifor(____(8);(9);j--)
if((10)){
temp=a[j-1];
a[j-1]=a[j];
a[j]=temp;
}
printf("Afersorted:
");
for(i=0;iprintf("%.2f",a[i]);
printf("\n");
}
【供选择的答案】
(6) A. n>0 B. n<0
C. n>=0 D. n<=0
(7) A. a B. a[i]
C. &a[i] D. &a
(8) A. j=0 B. j=i
C. j=n-1 D. j=n-i
(9) A. j>i B. j>0
C. j(10)A.a[i]>a[j] B.a[j-1]>a[j]
C.a[j]>a[j+1] D.a[j-1]>a[j+1]
试题3(每小题2分,共8分)
阅读下列程序说明和程序,在每小题提供的若干可选答案中,选择一个正确答案.
【程序说明】
输入十六进制整数形式的字符串,调用函数htod将它转换成十进制整数,然后输出该整数.
【运行示例】
Enterhexadecimalstring:
4f
Deciamalintegeris:
79
【程序】
#include
intctoi(charc)
{
if(c>='0'&&c<='9')
returnc-‘0’;
elseif(c>='A'&&c<='Z')
return____(11);
elseif(c>='a'&&c<='z')
return(12);
elsereturn0;
}
inthtod(char*h)
{
inti,d=0;
for(i=0;h[i]!
='\0';i++)
d=____(13);
returnd;
}
void main()
{ intdec;
charhex[10];
printf("Enterhexadecimalstring:
");
______(14)__ ___;
dec=htod(hex);
printf("Decimalintegeris:
%d\n",dec);
}
【供选择的答案】
(11)A. c-'A’ B. c+10
C. c-'F’ D. c–'A’+10
(12)A. c–'a’ B. c+10
C. c–'f’ D. c–'a’+10
(13)A.d+ctoi(h[i]) B.d*16+ctoi(h[i])
C.d*10+ctoi(h[i]) D.d+ctoi(h[i])*16
(14)A. hex=getchar() B. scanf("%c",hex)
C. scanf("%s",hex) D. scanf("%s",&hex)
试题4(每小题2分,共8分)
【程序说明】
数组x[7]的初值为{1,2,3,4,5,6,7},经调用函数f后,数组x的元素被循环左移3位,输出移位后数组x的各元素,屏幕上的输出结果为:
4567123
【程序】
#include
voidf(inta[],intn,intk)
{ inti,j,t;
for(i=0;i (15) ;
for((16))
a[j-1]=a[j];
(17);
}
}
voidmain()
{ inti,x[7]={1,2,3,4,5,6,7};
(18);
for(i=0;i<7;i++)
printf("%4d",x[i]);
printf("\n");
}
【供选择的答案】
(15)[A]t=a[i] [B]t=a[k]
[C]t=a[j] [D]t=a[0]
(16)[A]j=i;j[C]j=1;j(17)[A]a[n]=t [B]a[n-1]=a[i]
[C]a[n-1]=t [D]a[n]=a[i]
(18)[A]f(x,7,3) [B]f(x,7,5)
[C]f(x,3,7) [D]f(x,5,7)
试题5(每小题2分,共8分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序】
#include
voidf1(intx,inty);
voidf2(int*x,inty);
voidf3(intx,int*y);
voidf4(int*x,int*y);
voidmain()
{ inta=1,b=2;
f1(a,b);
printf(“a=%d,b=%d\n”,a,b);
a=1, b=2;
f2(&a,b);
printf(“a=%d,b=%d\n”,a,b);
a=1, b=2;
f3(a,&b);
printf(“a=%d,b=%d\n”,a,b);
a=1, b=2;
f4(&a,&b);
printf(“a=%d,b=%d\n”,a,b);
}
voidf1(intx,inty)
{ intt;
t=x; x=y; y=t;
}
voidf2(int*x,inty)
{ intt;
t=*x; *x=y; y=t;
}
voidf3(intx,int*y)
{ intt;
t=x; x=*y; *y=t;
}
voidf4(int*x,int*y)
{ intt;
t=*x;*x=*y;*y=t;
}
(19)程序运行时,第一行输出 。
A.a=1,b=2 B.a=2,b=1
C.a=1,b=1 D.a=2,b=2
(20)程序运行时,第二行输出 。
A.a=1,b=2 B.a=2,b=1
C.a=1,b=1 D.a=2,b=2
(21)程序运行时,第三行输出 。
A.a=1,b=2 B.a=2,b=1
C.a=1,b=1 D.a=2,b=2
(22)程序运行时,第四行输出 。
A.a=1,b=2 B.a=2,b=1
C.a=1,b=1 D.a=2,b=2
试题6(每小题2分,共8分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序】
#include
inta=0;
voidfun()
{ inta=1;//第4行
printf("%d,",a++);
}
voidmain()
{ inti;
for(i=1;i<=