C2B卷.docx
《C2B卷.docx》由会员分享,可在线阅读,更多相关《C2B卷.docx(13页珍藏版)》请在冰豆网上搜索。
C2B卷
专业班级学号姓名
………………………………………………………………………装订线…………………………………………………………………………
浙江科技学院
2007-2008学年第二学期考试试卷B卷
考试科目C语言程序设计考试方式闭卷完成时限2小时
拟题人审核人批准人2008年6月日
学院2007年级各理工科专业
题序
一
二
三
四
五
六
七
八
九
十
总分
得分
阅
卷
人
说明:
1.应将全部答案写在答卷纸对应的题号处;否则作无效处理;
2.编程题应写明题号,若答卷纸不够,请写在背面,不要另添卷纸;
3.考试完成后,必须将试卷与答卷同时交回。
一、判断题(12小题,每题1分,共12分;用√表示正确,用×表示错误)
1.用do_while语句构成循环时,只有在while后的表达式为非零时结束循环。
1
2.c程序的main函数可以有参数,也可以没有参数。
0
3.数组中的每个元素的数据类型不一定要求完全相同。
0
4.定义语句“charch[]={“china”};”和“charch[]={‘c’,’h’,’i’,’n’,’a’};”定义的两个字符数组是等价的。
0
5.else语句一定要与if语句配对使用,程序中else语句的个数一定小于或者等于if语句的个数。
1
6.C的编译预处理行以“#”开始,以“;”结束。
1
7.C语言中的数组下标从0开始,当引用数组元素超过所定义的范围,系统将会报告编译错误。
0
8.假设有语句inta[10]={1,2,3},*p;p=a;则p++完全等价于a++。
0
9.在调用函数时,如果实参是一个数组名,则向函数传送的是数组的首地址。
1
10.按格式符“%d”输出float类型变量时,截断小数位取整后输出。
1
11.函数的定义可以相互嵌套,但调用不能相互嵌套。
0
12.使用scanf函数输入浮点数时可以在格式控制字符串中规定小数点后的位数。
1
二、单选题(20小题,每题1分,共20分)
1.C语言中运算对象必需是整型的运算符是A。
A、%B、/C、!
D、*
2.while(D)等价于while(x)。
A、x==0B、x!
=0
C、x!
=1D、x==1
3.下列程序段的输出结果是B。
intk=1;
switch(k){
case1:
putchar('P');
case2:
case3:
putchar('Q');break;
case4:
putchar('R');
default:
putchar('S');
}
A、PB、PQC、PQRD、PQRS
4.若有以下程序段,其输出结果是A。
intc1=1,c2=2,c3;
c3=c1/c2
A、0B、1/2C、0.5D、1
5.判断char型变量c是否为大写字母的最简单且正确的表达是D。
A、’A’<=C<=’Z’
B、(C>=’A’)&(C<=’Z’)
C、(’A’<=C)AND(’Z’>=C)
D、(C>=’A’)&&(C<=’Z’)
6.下面B形式不表示二维数组a的第2行第3列元素的地址。
A、&a[2][3]B、*(a+2)+3C、a[2]+3D、*(a[2]+3)
7.C语言程序的三种基本结构是___D__。
(A)顺序,循环,函数(B)顺序,选择,循环
(C)选择,递归,循环(D)嵌套,选择,循环
8.若二维数组a每行有m列,则在元素a[i][j]前的元素个数为___C___。
A、j*m+iB、i*m+j-1C、i*m+j+1D、i*m+j
9.程序中如果调用了strlen()函数,必须包括头文件_C____。
A、math.hB、ctype.hC、string.hD、stdio.h
10.数组声明语句为“inta[6];”,输入数组所有元素的语句应为D
A、scanf("%d%d%d%d%d",a[6]);
B、for(inti=0;i<6;i++)scanf("%d",a+i);
C、for(inti=0;i<6;i++)scanf("%d",*a+i);
D、for(inti=0;i<6;i++)scanf("%d",a[i]);
11.下面程序段输出的结果是___A__。
voidmain()
{intx=-3;
do
{printf("%d\n",x+=2);
}while(!
(++x));
}
A、-1和2B、-1C、没有结果,是死循环D、-3和0
12.若有定义:
intx,*pb;则以下正确的赋值表达式是A
A、pb=&xB、pb=xC、*pb=xD、*pb=*x
13.设有整型变量a,b,c,其中a,b的值分别为10与20,计算表达式
"c=(a%2==0)?
a:
b"后,c的值为:
C
A、10B、5C、0D、20
14.为读写打开文本件a:
\aa.dat,下列语句中哪一个是正确的A
A、fp=fopen("a:
\\aa.dat","r+")B、fp=fopen("a:
\\aa.dat","a")
C、fp=fopen("a:
\aa.dat","w")C、fp=fopen("a:
\aa.dat","r")
15.下面程序段求两个数中的大数,不正确的是A。
A、max=x>y?
x:
y;B、if(x>y)max=x;elsemax=y;
C、max=x;D、if(y>=x)max=y;
if(y>=x)max=y;max=x;
16.写出下面程序段的输出结果是__C___。
#defineT18
#defineS(T+10)-8
printf("%d\n",S*2);
A、16B、12C、20D、18
17.下面关于文件打开方式说法正确的是__C____。
A、以“w”或“a”打开文件时,可以对该文件作写操作。
B、不能试图以“w”方式打开一个不存在的文件。
C、若以“a”方式打开一个不存在的文件,则会新建一个文件。
D、以“r+”方式打开的文件只能用于读。
18.将变量x=45.1234用语句printf("%5.3f",x);输出后的显示结果是___A__。
A、45.123B、5.123C、45.12D、5.1234
19.函数调用语句为f(a,b,(c,d)),这个函数的参数个数为____B_
A、2B、3C、4D、5
20.下面程序段输出的结果是___D__。
voidmain()
{
ints=0,t=0,u=0,i,j,k;
for(i=1;i<=2;i++)
{for(j=1;j<=i;j++)
{for(k=j;k<=4;k++)
s++;
t++;
}
u++;
}
printf("%d%d%d\n",s,t,u);
}
A、2311B、11112C、21111D、1132
三、程序填空题(12空,每空2分,共24分)
1.【程序说明】输入1个正整数n,计算并输出s的前n项的和。
s=1/2-2/3+3/4-4/5+……(-1)n-1n/(n+1)
【程序】
#include
voidmain()
{intk,flag=1,n;
floats=0;
scanf("%d",&n);
for(k=1;k<=n;k++){
s=s+___
(1)_B__;
___
(2)_C__;
}
printf("sum=%f\n",s);
}
(1)A、1.0*k/(k+1)*flagB、flag*n/(n+1)
C、-k/(k+1)D、1.0*k/(k+1)
(2)A、flag=-1B、s=-s
C、flag=-flagD、k=-k
2.【程序说明】下面程序是使用递减法求两自然数m、n的最大公约数。
【程序】
voidmain()
{intm,n,div;
printf(“EnterTwoNumbern,m=?
\n”);
scanf(“%d,%d”,&m,&n);
div=m;
if(nwhile(m%div!
=0||n%div!
=0)
__(4)D_;
printf(“最大公约数=%d\n”,div);
}
(3)(A)div=0;(B)div=n;
(C){div=m;m=n;n=div;}(D)m=n;
(4)(A)div++;(B)++div;
(C)div--;(D)div=m-n;
3.【程序说明】输入2008个字符,用选择排序法将它们从大到小排序后输出。
【程序】
#include
voidsort(chara[],intn);
voidmain()
{int;chara[2008];
for(i=0;i<2008;i++)
scanf("%c",&a[i]);
B(5);
for(i=0;i<2008;i++)
printf("%c",a[i]);
printf("\n");
}
voidsort(D(6))
{inti,index,k,t;
for(i,=0;i,index=D(7);
for(k=i,+1;kif(C(8))index=k;
t=a[index];a[index]=a[i];a[i]=t;
}
}
(5)A、sort(a[],2008)B、sort(a,2008)
C、sort(a)D、sort(a[2008])
(6)A、chara,intnB、chara[]
C、char*a,int*nD、char*a,intn
(7)A、kB、0
C、nD、i
(8)A、a[i]a[index]
C、a[k]a[index]
4.【程序说明】以下fun函数的功能是将一个字符串的内容颠倒过来,请填空。
【程序】
#include
Voidfun(charstr[])
{inti,j,k;
For(i=0,j=(9)B;i{k=str[i];str[i]=str[j];str[j]=k;}
}
(9)A、iB、strlen(str)
C、KD、i-1
(10)A、j++B、++j
C、j--D、i--
5.【程序说明】调用函数fx计算代数多项:
1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5*x*x*x,当x=1.7时的值。
【程序】
#include"stdio.h"
floatfx(----(7)----)B
{
floaty=a[0],t=1;inti;
for(i=1;i----(8)----B
}
voidmain()
{
floatb[5]={1.1,2.2,3.3,4.4,5.5};
printf("%f\n",fx(1.7,b,5));
}
(11)A、floatx,floata[],intn
B、floatx,a[],intn
C、floata[],floatx,intn
D、floatn,floata[],intx
(12)A、returnt;B、returny;
C、returna;D、此处不需填写
四、程序阅读题(6小题,每题4分,共24分)
(认真阅读程序,写出程序运行结果,注意输出数据的格式)
1.以下程序运行后,输出结果是____C_______
voidmain()
{inti;
for(i=1;i<=5;i++)
{if(i%2)printf(“*”);
Elsecontinue;
Printf(“#”);
}
Printf(“$\n”);
}
A、*#*#*#$B、*#*#*#
C、#*#*$D、*#$
2.以下程序运行后,输出结果是____D_______
voidmain()
{char*p;
chars[]=”ABCD”;
for(p=s;p
printf(“%s\n”,p);
}
A、ABCDB、ABCDC、ABCDD、A
BCDBCDB
CDCDC
DDD
3.以下程序运行后输入18,24,输出结果是________B___
#include"stdio.h"
voidmain()
{
intm,n,div;
printf("EnterTwoNumberm,n=?
\n");
scanf("%d,%d",&m,&n);
div=m;
if(ndiv=n;
while(m%div!
=0||n%div!
=0)
div--;
printf("%d\n",div);
}
A、7B、6C、18D、5
4.下面程序运行后输入a=13,b=5,c=7,输出结果是____C_______
#include
voidswap(int*pa,int*pb)
{
int*temp;
temp=pa;
pa=pb;
pb=temp;
}
voidmain()
{inta,b,c;
scanf("%d%d%d",&a,&b,&c);
if(a>b)
swap(&a,&b);
if(b>c)
swap(&b,&c);
if(a>b)
swap(&a,&b);
printf("%d,%d,%d",a,b,c);
}
A、13,7,5B、13,5,7C、7,5,13D、7,13,5
5.以下程序运行后,输出结果是___D________
#include"stdio.h"
main()
{charch[10]={"1F87Rf123"};
inti,s=0;
for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2)
s=s*10+ch[i]-'0';
printf("%d",s);}
A、6B、187123C、16D、18
6.以下程序运行后,输出结果是___A________
intsum(intb[],intn)
{
inti,s=0;
for(i=1;i{
if(i%2==0)continue;
s=s+b[i];
}
return(s);
}
main()
{
intx,a[]={1,2,3,4,5,6,7,8,9};
x=sum(a,9);
printf("%d\n",x);
}
A、20B、25C、45D、10
五、程序设计题(每题10分,共20分)
(注:
若答卷纸不够,请写在背面,不要另添卷纸)
1.编写一程序,从键盘输入20个字符,存放在数组str当中,将其中的大写字母转换成小写字母,并将大写字母的个数以整数形式写入到文本文件count.txt中。
2.编写一个判断整数是不是水仙花数的函数jfnum(intm),并通过调用该函数打印输入所有水仙花数。
说明:
所谓水仙花数是指一个3位自然数,其各位数字的立方和等于该数本身。
例如,153就是一个水仙花数,因为153=13+53+33。
专业班级学号姓名
………………………………………………………………………装订线…………………………………………………………………………
浙江科技学院
2007-2008学年第二学期考试试卷B卷
考试科目C语言程序设计考试方式闭卷完成时限2小时
拟题人审核人批准人2008年6月日
学院2007年级各理工科专业
题序
一
二
三
四
五
六
七
八
九
十
总分
得分
阅
卷
人
标准答案及评分标准
一、判断题(每题1分,共12分)
1
2
3
4
5
6
7
8
9
10
11
12
二、单选题(每题1分,共20分)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
三、程序填空题(每空2分,共24分)
1
2
3
4
5
6
7
8
9
10
11
12
四、程序阅读题(每题4分,共24分)
1
2
3
4
5
6
五、程序设计题(每题10分,共20分)
(注:
若答卷纸不够,请写在背面,不要另添卷纸)