当前位置:文档之家› 浙江理工大学C语言期末试卷(含答案)

浙江理工大学C语言期末试卷(含答案)

浙江理工大学C语言期末试卷(含答案)
浙江理工大学C语言期末试卷(含答案)

C程序设计试卷

一、单选题(本题共20分,每小题2分)

(1 ) 以下C语言常量中,表达错误的是___(1)___。

[A] 0FF [B] [C] [D] ‘\n’

(2)C程序的基本结构有___(2)___。

[A] 选择、重复和模块[B] 顺序、选择和模块

[C] 顺序、选择和循环[D] 逻辑、物理和程序

(3)在C语言程序中,关于字符串的描述正确的是___(3)___。

[A] 可定义一个字符串变量存储字符串;

[B] 可定义一个字符变量存储任意字符串;

[C] 可定义一个字符数组存储字符串;

[D] 可定义一个字符指针存储字符串;

(4)@

在C语言中,用关键字___(4)___定义双精度类型变量。

[A] single [B] double [C] float [D] int

(5)下面叙述中不正确的是___(5)___。

[A] 不同函数中可以使用相同名字的变量

[B] 形式参数是局部变量

[C] 在一个函数内部的复合语句中定义的变量在本函数范围内有效

[D] 在一个函数内部定义的变量只能在本函数范围内有效

& (6)下面程序段的输出结果是___(6)___。

int i=100;

while(i>120)

i=i+1;

printf(″%d″,i);

[A] 100 [B] 101 [C] 120 [D] 121

(7)&

以下定义语句中正确的是___(7)___。

[A] char a='A' b='B';

[B] float a=b=;

[C] int a=10, *b=&a;

[D] float *a,b=&a;

(8)已有定义:int i, a[10], *p;,则合法的赋值语句是___(8)___。

[A] p=100; [B] p=a[5]; [C] p=a[2]+2; [D]p=a+2;

-(9)设有定义:int a,*p1=&a; 以下scanf语句中能正确为变量a读入数据的是___(9)___。

[A] scanf(“%d”,p1);

[B] scanf(“%d”,a);

[C] s canf(“%d”,&p1);

[D] scanf(“%d”,*p1);

(10 )以下程序段中与语句=a>b(b>c10)0;功能等价的是___(10)___。

`

[A] if((a>b)&&(b>c)) =1 else =0;

[B] if((a>b)||(b>c)) =1 else =0;

[C] if(a<=b) =0;

[D] if(a>b) =1;

二、程序填空题(本题共30分,每小题2分)

阅读下列程序说明和程序代码,在每小题提供的若干可选项中,挑选一个最佳的选项。

(1)【程序说明】

输入整数n,输出共有n层的金字塔图形。例如:

$

【程序代码】

# include <>

void main() {

int i,j,n;

char c='*';

printf("输入层数:");

scanf("%d",&n);

for(i=1; (11);i++){

for(j=1;j<=n-i; (12))

printf(" ");

for(j=1; (13);j++){

printf( (14),c);

}

printf("\n");

,

.

n");

}

【选项】

(16)[A] year [B] &year [C] &n [D] &leap

(17)[A] else if [B]else; [C] else [D] else if(leap==1)

[A] leap=0 [B] leap=1 [C] year=0 [D] year=1

(18)

(19)[A]year=1 [B] leap [C] leap =0 [D]以上选项都不正

(20)[A]leap [B] &leap [C]year [D]&year

(3)【程序说明】输入十个整数并保存在一维数组中,使数组中每个元素都增加10。

【程序代码】

!

#include <>

main() {

int a[10],i;

(21)

p=a;

for (i=0;i<10;i++){

scanf("%d", (22));

(23);

}

for (p=a;p<(a+10);p++)

(24)

printf("\n");

(25);

for (;p<(a+10);p++)

printf("%d ",*p);

}

【选项】

(

2

1

)

[A] int p[10] [B] int *p; [C] int p; [D] int a;

(

2

2

)

[A] a++ [B] a[p] [C] *p [D] p

(

2

3

)

[A] p++ [B] a++ [C]*p++ [D] *a++

( 2 4 )>

[A] *a=*a+10; [B] *p=*(p+10); [C] *p=*p+10; [D] *a=*(a+i);

(

2

5

)

[A] p=a[0] [B] p=*a [C] p=a [D] *p=&a

三、程序阅读题(本题共20分,每小题2分)

阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确的答案。

(1)【程序说明】运行程序并回答问题。

【程序代码】

#include <>

#include <>

void main()

{ int n,s=0;

scanf("%d",&n);

n=fabs(n);

while(n>1) {

s=s+n%10;

n=n/10;

$

}

printf("%d\n",s); }

【选项】

(26 )程序运行时输入312,输出___(26)__。

[A] 213 [B] 6 [C] 312 [D] 3为。

(27 )—

程序运行时输入-5104,输出___(27)__。

[A]-5104 [B]–4015 [C]10 [D]

(2)【程序说明】运行程序并回答问题。【程序代码】

# include <>

void main(){

int a,b,c,temp;

a=5;b=12;c=6;

!

printf("a=%d,b=%d,c=%d\n",a,b,c);

if(a

if(a

printf("a=%d,b=%d,c=%d\n",a,b,c);

if(b

printf("a=%d,b=%d,c=%d\n",a,b,c); }

void swap(int *,int *y){

int temp;

temp=*;

*=*y;

*y=temp;

}

【选项】

(28 )程序运行时,第1行输出___(28)__。

[A] a=5,b=12,c=6 [B] a=%d,b=%d,c=%d [C] a=,b=,c= [D] a=12,b=5,c=6

(29 )程序运行时,第2行输出___(28)__。

[A] a=5,b=12,c=6 [B] a=6,b=12,c=5 [C] a=12,b=5,c=6 [D] a=12,b=6,c=5

(30 )程序运行时,第3行输出___(30)__。

~

[A] a=5,b=12,c=6 [B] a=6,b=12,c=5 [C]a=12,b=5,c=6 [D] a=12,b=6,c=5

(3)【程序说明】运行程序并回答问题。【程序代码】

#include <>

void main()

{

char s1[40];

int i=0;

printf("\nInput a string");

scanf("%s",s1);

while (s1[i] !='\0'){

if (s1[i]>='A' && s1[i] <='')

s1[i]=s1[i]+32;

i++;}

printf("\n%s\n",s1);

}

【选项】

(31 )程序运行时,输入abc30DCA,输出___(31)__。

[A] 62 [B] abc30dca [C] abc [D] DCA

(32 )程序运行时,输入Face,输出___(32)__。

[A] Face32 [B] FACE [C] face [D] f

<

(4)【程序说明】运行程序并回答问题。【程序代码】

#include <>

void main(){

FILE *fp;

int i,j,,,y;

scanf("%d%d",&i,&j);

fp=fopen("","w");

~

fprintf(fp,"%d\n",i);

if (i

=j;

else if(i>j)

=i;

else

=i+j;

fprintf(fp,"%d\n",);

fclose(fp);

fp=fopen("","r");

fscanf(fp,"%d%d",&,&y);

printf("=%d,y=%d\n",,y);

fclose(fp);

}

【选项】

(33 )(

程序运行时,输入20 12 输出___(33)__。

[A] =20,y=20 [B] =20,y=12 [C] =12,y=20 [D] =12,y=12

(34 )程序运行时,输入10 35输出___(34)__。

[A] =45,y=45 [B] =10,y=10 [C] =10,y=35 [D] =35,y=35

(35 )程序运行时,输入12 12输出___(35)__。

[A] =24,y=24 [B] =12,y=12 [C] =24,y=12 [D] =12,y=24

四、 程序设计题(本题共30分,每小题10分)

(1)编写程序,要求从键盘上输入一个数给,计算并输出分段函数y 的值。

+10 10<

1

5++x e x x 0≤≤10

5-3 <0

提示:平方根函数为:sqrt( ),指数函数为: ep( ),正切函数为: tan( ),正弦函数为: sin( ),所有这些函数在 头文件中。 】

(2)从键盘输入一个正整数n ,编写程序计算1/1!+1/2!+1/3!+……+1/n!的值并输出结果, 要求

定义和调用函数fact (n)计算n 的阶乘。

(3)随机产生20个大于等于1小于等于100的数,并按从大到小排序。请输出排序后的数,要求每行输出5个数。

浙江理工大学2005/2006下学期期末考试---C 程序设计试题

参考答案与评分标准

一、单选题(本题共20分,每小题2分)

二、程序填空题(本题共30分,每小题2分)

三、程序阅读题(本题共20分,每小题2分)

四、编程题(本题共30分,每小题10分)1、

# include <>

# include <>

void main(){

>

float ,y;

scanf("%f",&);

if(>10) y=+10;

else if(>=0) y=(sqrt(5*)+ep())/(+1);

else y=tan()*sin();

printf("y=%f\n",y);

}

<

2、

#include<>

float fact(int n){

float t=;int i=1;

while (i<=n)

t=t*i++;

return(t);

}

void main(){

int n,i ;float sum=;

scanf("%d",&n);

for (i=2;i<=n;i++)

sum=sum+fact(i);

printf("%f\n",sum);

}

3、

#include<>

#include<>

void main(){

int i,j,n=0,temp,[20];

srand(time(NULL));

printf("原始数据:\n");

for(i=0;i<=19;i++){

[i]=rand()%100+1; //产生20个随机数

if(i%5==0)printf("\n");

printf("%-6d",[i]);

}

printf("\n");

for(i=0;i<19;i++){ //从大到小排序

for(j=0;j<19-i;j++)

if([j]<[j+1]){

temp=[j];

[j]=[j+1];

[j+1]=temp;

}

}

printf("排序后数据:\n");

for(i=0;i<20;i++){

if(i%5==0)printf("\n");

printf("%-6d",[i]);

}

printf("\n");

}

相关主题
文本预览
相关文档 最新文档