天津大学仁爱学院c语言期末考试题,天津大学20191月考试《C语言程序设计》考核课后题库100分...

天津大学期末考核209年春季学期1月考试《C语言程序设计》考核课后参考答案

天津大学作业+++QQ:2816067863|wx:openliuls|奥鹏作业答案|奥鹏离线考试|奥鹏论文辅导

题目如下:

第一组:

一、编程题(每题20分,共40分)

1、编写程序。定义数组sco存放30名学生的成绩。将成绩由高到低排序,并输出排序结

果和所有高于平均分数的成绩(结果保留两位小数)。

2、编写程序。先编写一个子函数求x ,再通过主函数调用该子函数,对输入的一个数y,

求y并输出。

二、程序填空。在程序中的序号处填上正确的内容。(每空4分,共48分)

1、程序用于求两个数的和与差。

#include

int fun(int a,int b, int

*psub)

{ int

sum;

sum=a+b;

__________=a-b;

return sum;

}

void main( )

{ int

x,y,s1,s2;

scanf(“%d%d”, __________);

s1=fun(x,y, __________);

printf(“sum=%d\n

sub=%d\n”, __________);

}

2、对于5×5的方阵,输出其下三角的元素。

1 2 3 4 5

1

2 3 4 5 6

2

3

3 4 5 6 7 3

4

5

4 5 6 7 8

4

5

6

7

5 6 7 8 9

5

6

7

8

9

#include

void

main()

{ int__________,i,j;

for(i=0;i<5;i++)

for(j=0;j<5;j++)

a[i][j]=

__________;

for(i=0;i<5;i++)

{

for(j=0; __________;j++)

printf("M",

a[i][j]);

__________; }

}

3、输出所有的水仙花数。所谓的水仙花数是指一个3位数,其各位数字立方和等于该数本身。例如153是一水仙花数,因为153=13+53+33

#include

void main()

{

int n, i, j,

k;

for(n=100; n<=

__________; n++)

{

i = n/100;

//

取出n的百位数

j = ___

_______;

//

取出n的十位数

k = __

________;

// 取出n的个位数

if(n==__________)

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

}

}

三、写出程序的执行结果(每题4分,共12分)

1、

#include

void main( )

{ int i,

j;

for (i=1; i<5; i++)

{ for(

j=1; j<=12-i; j++)

printf(“

“);

for (j=1; j<=i; j++)

printf(“M”,i);

printf(“\n”);

}

}

2、

#include

int

a=5;

void

fun(int b)

{

int a=10;

a+=b;

printf("%d

",a);

}

void

main()

{

int c=20;

fun(c);a+=c;

printf("%d\n",a);

}

3、

#include

void sub (int x,int y,int

*z)

{ *z=x-y;

}

void

main()

{ int

a,b,c;

sub(10,6,&c);

sub(8,c,&b);

sub(c,b,&a);

printf(“%d %d

%d\n”,a,b,c);

}

第二组:

一、编程题(每题20分,共40分)

1、编写程序。输入一行字符(以回车符结束),分别统计其中字母、数字和其他符号的个数。

2、编写程序。要求编写子函数prime(m)判断m是否为素数,当m为素数时返回1,否则返回0,再调用该子函数求100以内的全部素数(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。

二、程序填空。在程序中的序号处填上正确的内容。(每空4分,共48分)

1、按照公式

e=1+

+

++…+求e的近似值,至n=10为止。

#include <

stdio.n>

void main ( )

{ float__________;

int

n=1, i;

for(__________)

{

n=__________;

e=__________;

}

printf

(“ e= %f\n” ,e);

}

2、将文件file1.dat中的内容复制到file2.dat中。

#include

#define Null

0

void main()

{

FILE__________;

char

ch;

if((p1=fopen(“file1.dat”,”r”)= =Null)||(p2=fopen(“file2.dat”,”w”)= =Null

))

{

printf(“Can’t open

file\n”);

__________;

}

while(__________)

{

ch=__________; fputc(ch,p2);

}

fclose(p1);

fclose(p2);

}

3、求二维数组a[5][4]中所有元素的平均值。

#include

____

__

____

void main ( )

{ int a[5][4],i ,j,

pa;

for

(i=0;i<5;i++)

for

(j=0;j<4;j++)

scanf(“%d”,

&a[i][j]);

pa=__________;

printf

(“average=%d\n”,pa);

}

int average (int s[ ][4]

)

{ int

i,j,aver=0;

for

(i=0;i<5;i++)

for

(j=0;j<4;j++) aver=aver+s[i][j];

aver=__________;

__________;

}

三、写出程序的执行结果(每题4分,共12分)

1、

#include

void main()

{ int i,

j, k=4;

for

(int i=1;i<=k;i++)

printf("%c",’*’);

printf("\n");

for (int

i=1;i<=k-2;i++)

{

printf("%c",’*’);

for

(j=1;j<= k-2;j++)

printf("

");

printf("*\n");

}

for

(i=1;i<=k;i++)

printf("%c",’*’);

printf("\n");

}

2、

#include

void fun(int s[ ]);

void main()

{ int a[

]={1,2,3,4,5,6},k;

fun(a);

for(k=0;k<=5;k++) printf(“%d ”,a[k]);

printf(“\n”);

}

void fun(int s[ ])

{ int

i=0;

while(i<3) {

s[i]=s[i]+5; i++;

}

}

3、

#include

void

main()

{

int j, a[ ]={1,2,3,4,10,12,13,15};

for(

j=3; j>0; j--)

switch ( j )

{ case

1:

case

2: printf(“%d,”, a[j+4]); break;

case 3: printf(“%d,”,

a[j-1]);

}

printf(“\n”);

}

第三组:

一、编程题(每题20分,共40分)

1、编写程序。每当输入10个评委的分数后,求该选手的最后得分并输出(设10个评委按照以下打分原则为选手打分:去掉一个最高分和一个最低分,剩下的求平均分作为选手的最后得分)。

2、编写程序。先定义一个求n!的子函数fact,调用该子函数计算并输出

的值(m、n的值由键盘输入)。

二、程序填空。在程序中的序号处填上正确的内容。(每空4分,共48分)

1、打印出杨辉三角形(只打印出10行,形式如下)。

1

1 1

1 2 1

1

3 3

1

1

4

6 4 1

1

5

10105 1

……

#include

void main()

{inti,j;

inta[10][10];

for(i=0;i<10;i++)a[i][0]=1,__________;

for(__________;i<10;i++)

for(j=1;j

a[i][j]=__________;

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

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

printf("]",a[i][j]);

__________;

}

}

2、将输入的一个字符串(以!结束)中的小写字母转换成大写字母,然后输出到磁盘文件“test”中。

#include

void main()

{__________;

char str[100],filename[10];

int i=0;

if((fp=__________==NULL)

{ printf("cannot open the file\n");exit(0); }

printf("please input a string:\n");

gets(str);

while(__________)

{ if(str[i]>="a"&&str[i]<="z")

str[i]=str[i]-32;

fputc(str[i],fp);

__________;

}

fclose(fp);

}

3、输出如下图形。

*

*

*

*

*

*

*

*

*

*

*

*

*

#include

void main()

{ int i=1,j;

while(i<=3)

{

j=1;

printf("*");

while(j<=3)

{ printf(" ");

__________;

}

printf("*\n");

__________;

}

__________;

i=1;

while(i<=3)

{ j=1;

printf("*");

while(__________)

{

printf(" ");

j++; }

printf("*\n");

i++;

}

}

三、写出程序的执行结果(每题4分,共12分)

1、

#include

void sub(int x,int

y,int

*z)

{ *z = x+y;}

void main()

{ int a=5,b=6,c=7;

printf(“%d,%d,%d

”,a,b,c);

sub(b,c,&a);

sub(a,b,&c)

printf(“%d,%d,%d\n”,a,b,c);

}

2、

#include

void main ()

{ int

x=1,a=0,b=0;

switch(x)

{

case 1:a++

;

case 2:a++; b++;

break;

default: b++;break;

}

printf(“a=%d,b=%d”,a,b);

}

3、

#include

void

fun(int x);

void

main()

{

fun(7);

printf("\n");

}

void fun(int

x)

{

if(x/2>1)

fun(x/2);

printf("]",x);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值