2009—2010学年第二学期
<
适用于电气1091、电气1091(交大)班
时间:90分钟
姓名: 学号: 班级: 成绩:
一、 程序设计(50分)
某单位马上要加工资,增加金额取决于工龄和现工资两个因素:对于工龄大于等于20年的,如果现工资高于2000,加200元,否则加180元;对于工龄小于20年的,如果现工资高于1500,加150元,否则加120元。工龄和现工资从键盘输入,编程求加工资后的员工工资。
评分标准:
a、考核对TC下编辑(2分)、编译(2分)、调试(2分)、链接(2分)和运行(2分)C程序的熟练程度
b、准确保存源程序(3分)
c、预处理定义准确(3分)
d、变量使用(5分)
e、程序结构设计(5分)
f、算法设计(5分)
g、函数的应用(5分)
h、数据输入输出控制准确(5分)
i、程序结果验证准确(5分)
j、扩展知识应用(4分)
二、 程序设计(50分)
有如下函数,要求输入x的值,求y的值。
评分标准:
a、考核对TC下编辑(2分)、编译(2分)、调试(2分)、链接(2分)和运行(2分)C程序的熟练程度
b、准确保存源程序(3分)
c、预处理定义准确(3分)
d、变量使用(5分)
e、程序机构设计(5分)
f、算法设计,X<0条件下算法(2分),0<=X<10条件下算法(3分),X>=10条件下算法(4分)
g、函数的应用(5分)
h、数据输入输出控制准确(5分)
i、程序结果验证准确(5分
《C语言程序设计实训》
上机实践作业
姓名: 学号: 完成情况:
项目1:输入三角形边长,求面积。
设三角形的三个边分别为a、b、c,周长一半为s,面积为area,则s=1/2*(a+b+c), area=sqrt(s*(s-a)*(s-b)*(s-c))。
项目2:从键盘输入大写字母,用小写字母输出
项目3:输入一个三位整数,依次输出该数的正(负)号和百位、十位、个位数字。
项目4:输入两个整数a、b,将它们交换,例如a为3,b为5,交换后a为5,b为3。
项目5:输入一个华氏温度,输出对应的摄氏温度。输出取1位小数。转换公式为
c=5/9*(f-32)
项目6:鸡兔同笼问题。
已知鸡兔总头数为H,总脚数为F,求鸡兔各有多少只?
分析:依题意设鸡有x只,兔有y只。
《C语言程序设计实训》
上机实践作业
姓名: 学号: 完成情况:
项目1:编制函数fun,其功能是:删除一个字符串中指定的字符。
要求:原始字符串在主函数中输入,处理后的字符串在主函数中输出。
例如:输入“I am a teacher,you are a student”和‘e’输出“I am a tachr,you ar a studnt”。
参考代码:
#include
void fun(char [],char);
void main()
{
char s[100],c;
gets(s);
c=getchar();
fun(s,c);
puts(s);
}
void fun(char s[],char c)
{
int i,j;
for(i=0; s[i]!='\0'; i++)
{
if(s[i]==c)
{
for(j=i; s[j]!='\0'; j++)
s[j]=s[j+1];
}
}
}
项目2:编制函数sortstr,其功能是对多个字符串进行排序。
要求:欲排序的字符串在主函数中输入,排好序的字符串在主函数中输出。
参考代码:
#include
void sortstr(char s[][20],int n)
{
int i,j;
for(i=0; i
for(j=i+1; j
{
char t[20]; strcpy(t,s[i]); strcpy(s[i],s[j]); strcpy(s[j],t);
}
}
}
void main()
{
char s[5][20];
int i;
for(i=0; i<5; i++)gets(s[i]);
sortstr(s,5);
for(i=0; i<5; i++)puts(s[i]);
}
项目3:编写程序:计算s=1^k+2^k+3^k+……+N ^k
参考代码:
#define K 4
#define N 5
long f1(int n,int k) /*计算n的k次方*/
{ long power=n;
int i;
for(i=1;i
}
long f2(int n,int k) /*计算1到n的k次方之累加和*/
{ long sum=0;
int i;
for(i=1;i<=n;i++) sum += f1(i, k);
return sum;
}
main()
{ printf("Sum of %d powers of integers from 1 to %ld = ",K,N);
printf("%d\n",f2(N,K));
getch();
}
项目4编写程序:已知一个一维数组,用一个函数求数组最大数、最小数和平均数。
参考代码:
#include
int Num,Max,Min;
int average(int array[])
{ int i;
int array_aver=array[0];
Max=Min=array[0];
for(i=1;i
if(array[i]
array_aver/=Num;
return array_aver;
}
void main()
{
int aver,n[5]={23,2,4,5,6};
Num=5;
aver=average(n);
printf("max=%d,min=%d,average=%d\n",Max,Min,aver);
}
同求