奥鹏网院作业 发表于 2019-9-26 16:01:50

天津大学19秋学期《C语言程序设计》离线作业考核(手写)


C语言程序设计
要求:
一、独立完成,下面已将三组题目列出,请任选其中一组题目作答,
每人只答一组题目,多答无效,满分100分;
二、答题步骤:
1.使用A4纸打印学院指定答题纸(答题纸请详见附件);
2.在答题纸上使用黑色水笔按题目要求手写作答;答题纸上全部信息要求手写,包括学号、姓名等基本信息和答题内容,请写明题型、题号;
三、提交方式:请将作答完成后的整页答题纸以图片形式依次粘贴在一个Word
文档中上传(只粘贴部分内容的图片不给分),图片请保持正向、清晰;
1.上传文件命名为“中心学号姓名科目.doc”
2.文件容量大小:不得超过20MB。
提示:未按要求作答题目的作业及雷同作业,成绩以0分记!
题目如下:
第一组:
一、编程题(每题20分,共40分)
1、编写程序。输入一行字符(以回车符结束),分别统计其中字母、数字和其他符号的个数。
2、编写程序。要求编写子函数prime(m)判断m是否为素数,当m为素数时返回1,否则返回0,再调用该子函数求100以内的全部素数(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。
二、程序填空。在程序中的序号处填上正确的内容。(每空4分,共48分)
1、按照公式e=1++++…+求e的近似值,至n=10为止。
#include&ltstdio.n&gt
voidmain()
{float_____①_____;
intn=1i
for(_____②_____)
{n=_____③_____
e=_____④_____
}
printf(“e=%f\n”e)
}
2、将文件file1.dat中的内容复制到file2.dat中。
#include&ltstdio.h&gt
#defineNull0
voidmain()
{FILE_____①_____
charch
if((p1=fopen(“file1.dat””r”)==Null)||(p2=fopen(“file2.dat””w”)==Null))
{printf(“Can’topenfile\n”)_____②_____}
while(_____③_____)
{ch=_____④_____fputc(chp2)}
fclose(p1)
fclose(p2)
}
3、求二维数组a中所有元素的平均值。
#include&ltstdio.h&gt
_____①_____
voidmain()
{intaijpa
for(i=0i&lt5i++)
for(j=0j&lt4j++)
scanf(“%d”&ampa)
pa=_____②_____
printf(“average=%d\n”pa)
}
intaverage(ints[])
{intijaver=0
for(i=0i&lt5i++)
for(j=0j&lt4j++)aver=aver+s
aver=_____③_____
_____④_____
}
三、写出程序的执行结果(每题4分,共12分)
1、
#include&ltstdio.h&gt
voidmain()
{intijk=4
for(inti=1i&lt=ki++)
printf(&quot%c&quot’*’)printf(&quot\n&quot)
for(inti=1i&lt=k2i++)
{printf(&quot%c&quot’*’)
for(j=1j&lt=k2j++)
printf(&quot&quot)
printf(&quot*\n&quot)
}
for(i=1i&lt=ki++)
printf(&quot%c&quot’*’)printf(&quot\n&quot)
}
2、
#include&ltstdio.h&gt
voidfun(ints[])
voidmain()
{inta[]={123456}k
fun(a)
for(k=0k&lt=5k++)printf(“%d”a)
printf(“\n”)
}
voidfun(ints[])
{inti=0
while(i&lt3){s=s+5i++}
}
3、
#include&ltstdio.h&gt
voidmain()
{intja[]={123410121315}
for(j=3j&gt0j)
switch(j)
{case1
case2printf(“%d”a)break
case3printf(“%d”a)
}
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 10 10 5 1
……
#include&ltstdio.h&gt
voidmain()
{intij
inta
for(i=0i&lt10i++)a=1_____①_____
for(_____②_____i&lt10i++)
 for(j=1j&ltij++)
 a=_____③_____
for(i=0i&lt10i++)
 {for(j=0j&lt=ij++)
 printf(&quot%5d&quota)
 _____④_____
 }
}
2、将输入的一个字符串(以!结束)中的小写字母转换成大写字母,然后输出到磁盘文件“test”中。
#include&ltstdio.h&gt
voidmain()
{_____①_____
charstrfilename
inti=0
if((fp=_____②_____==NULL)
{printf(&quotcannotopenthefile\n&quot)exit(0)}
printf(&quotpleaseinputastring\n&quot)
gets(str)
while(_____③_____)
{if(str&gt=a&amp&ampstr&lt=z)
str=str32
fputc(strfp)
_____④_____
}
fclose(fp)
}
3、输出如下图形。
**
**
**
*
**
**
**
#include&ltstdlib.h&gt
voidmain()
{inti=1j
while(i&lt=3)
{j=1
printf(&quot*&quot)
while(j&lt=3)
{printf(&quot&quot)
_____①_____}
printf(&quot*\n&quot)
_____②_____
}
_____③_____
i=1
while(i&lt=3)
{j=1
printf(&quot*&quot)
while(_____④_____)
{printf(&quot&quot)
j++}
printf(&quot*\n&quot)
i++
}
}
三、写出程序的执行结果(每题4分,共12分)
1、
#include&ltstdio.h&gt
voidsub(intx,inty,int*z)
{*z=x+y}
voidmain()
{inta=5,b=6,c=7
printf(“%d,%d,%d”,a,b,c)
sub(bc&ampa)sub(ab&ampc)
printf(“%d,%d,%d\n”,a,b,c)
}
2、
#include&ltstdio.h&gt
voidmain()
{intx=1a=0b=0
switch(x)
{case1a++
case2a++b++break
defaultb++break
}
printf(“a=%db=%d”ab)
}
3、
#include&ltstdio.h&gt
voidfun(intx)
voidmain()
{fun(7)
printf(&quot\n&quot)
}
voidfun(intx)
{if(x/2&gt1)
fun(x/2)
printf(&quot%5d&quotx)
}
第三组:
一、编程题(每题20分,共40分)
1、编写程序。定义数组存放任意输入的10个实数,求出其中的最大值以及第一个最
大值的下标并输出。
2、编写程序。要求编写一个求最大供公约数的子函数,调用该子函数对输入的a、b求它们的最大公约数并输出。
二、程序填空。在程序中的序号处填上正确的内容。(每空4分,共48分)
1、程序用于输出如下图形。
#include&ltstdio.h&gt
voidmain()
{intij
for(i=1i&lt10i++)
printf(“%4d”_____①_____)
for(i=1i&lt10i++)
{for(j=1_____②_____j++)
printf(“%4d”,_____③_____)
_____④_____}
}
2、输入50个实数,统计其中正数、负数和零的个数。
#include&ltstdio.h&gt
voidfun(int*zsint*fsint*l_____①_____)
{inti
for(i=0i&lt50i++)
{if(aa&gt0)(*zs)++
if(aa&lt0)
(*fs)++
if(aa==0)
(*l)++}
}
voidmain()
{floatnum
inticzscfscl
czs=cfs=cl=0
printf(&quot\nPleaseenter50floatnumbers\n&quot)
for(i=0i&lt50i++)
scanf(“%f”_____②_____)
fun(_____③__________④_____)
printf(&quot\n正数%d负数%d零%d\n&quotczscfscl)
}
3、输入正整数m和n,求出区间的所有素数。
#include&ltstdio.h&gt
_____①_____
voidmain()
{intmnijk
scanf(&quot%d%d&quot&ampm&ampn)
for(i=mi&ltni++)
{k=sqrt(i)
for(j=2_____②_____j++)
if(_____③_____)break
if(_____④_____)
printf(&quot%d&quoti)
}
printf(&quot\n&quot)
}
三、写出程序的执行结果(每题4分,共12分)
1、
#include&ltstdio.h&gt
voidmain()
{chars1[]=&quotabcde&quots2
inti=0
while(s1!=’\0’)
{s2=s1+3i++}
s2=\0
printf(&quot%s&quots2)
}
2、
#include&ltstdio.h&gt
voidmain()
{charch1=Ach2=B
switch(ch1)
{caseAswitch(ch2)
{caseBprintf(&quotGood!&quot)break
caseAprintf(&quotBetter!&quot)break
}
caseBprintf(&quotBest!\n&quot)break
}
}
3、
#include&ltstdio.h&gt
intage(intn)
{intc
if(n==1)
c=10
else
c=age(n1)+2
return(c)
}
voidmain()
{printf(&quot%d&quotage(5))
}


页: [1]
查看完整版本: 天津大学19秋学期《C语言程序设计》离线作业考核(手写)