西北农林科技大学 c语言上机 实习7答案_c语言上机实习报告
西北农林科技大学 c语言上机 实习7答案由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言上机实习报告”。
实习七答案
1、电话薄管理程序设计
/* exer 7-1 手机电话簿管理 */ #include #include #include int N=0;
/* 定义全局变量,代表电话簿长度 */ struct stud
/* 定义结构类型 */ {
char name[15];
char phone_num[15];
char mobile_num[15];} book[100];
void creat();
void insert();void search();void delete();void output();
int main(void)
{
int k;
do
{
printf(“ 0: exitn”);
printf(“ 1: creatn”);
printf(“ 2: searchn”);
printf(“ 3: insertn”);
printf(“ 4: deleten”);
printf(“ 5: outputn”);
printf(“please select:”);
scanf(“%d”,&k);
switch(k)
{
case 0:
exit(0);
case 1:
creat();
break;
case 2:
search();
break;
case 3:
/* 定义结构数组 */ /* 函数的原型声明 */
/* 主函数 */
/* 打印菜单项 */
/* 输入选择项 */ /* 退出函数 */
insert();
break;
case 4:
delete();
break;
case 5:
output();
break;
/* 调用子函数 */
default:
exit(0);
}
}
while(1);
return 0;}
void creat(void)
/* 生成子函数 */ {
char appella[15];
getchar();
while(1)
/* 输入结构数组 */
{
gets(appella);
if(*appella=='*')break;
/* 输入*,则结束 */
strcpy(book[N].name, appella);
gets(book[N].phone_num);
gets(book[N].mobile_num);
N++;
/* 统计长度 */
} }
void search(void)
/*查找子函数 */ {
char appella[15];
int i=0;
getchar();
gets(appella);
while(i
{
i++;
}
if(i
printf(“%s %s %sn”,book[i].name,book[i].phone_num,book[i].mobile_num);
else
printf(“not found”);}
void insert(void)
/* 插入子函数 */ {
getchar();
gets(book[N].name);
gets(book[N].phone_num);
gets(book[N].mobile_num);
N++;
/* 长度加1 */ }
void delete(void)
/*删除子函数 */ {
char appella[15];
int i=0,j;
getchar();
gets(appella);
while(i
{
i++;
}
if(i
{
for(j=i+1;j
{
book[j-1] = book[j];
}
N--;
/* 长度减1 */
}
else
printf(“not found”);}
void output(void)
/* 输出子函数 */ {
int i;
for(i=0;i
printf(“%s %s %sn”,book[i].name,book[i].phone_num,book[i].mobile_num);}
2、正负数判断
/* exer 8-1 判断数是正数、负数 */ #include int main(void){
short num,mask,bit;
mask = 0x8000;
/* 构造掩码 */
scanf(“%hx”,&num);
/* 输入数据 */
bit =(mask & num)?1:0;
/* 取出第一位 */
if(bit == 0)
printf(“is positive numbern”);
/* 输出正数 */
else
printf(“is negative numbern”);
/* 输出负数 */
return 0;}
3、偶数位清零
/* exer 8-3 将偶数位清零,其它位保留 */ #include int main(void){
unsigned short a,b,mask;
mask = 0x5555;
/* 构造掩码 */
scanf(“%hx”,&a);
/* 输入数据a */
b = a & mask;
/* 与掩码按位与 */
printf(“%xn”,b);
/* 输出 */
return 0;}
4、结构体的定义与引用 #include
/*定义结构体*/ struct employee {
char name[100];
char ID[20];
int age;
float salary;};
int main(){
/*定义结构体变量*/
struct employee staff;
/*输入数据*/
gets(staff.name);
gets(staff.ID);
scanf(“%d”, &staff.age);
scanf(“%f”, &staff.salary);
/*输出数据*/
puts(staff.name);
puts(staff.ID);
printf(“%dn”, staff.age);
printf(“%.2fn”, staff.salary);
return 0;}
5、结构体数组的定义与引用 #include
/*定义结构体*/ struct employee {
char name[100];
char ID[20];
int age;
float salary;};
int main(){
int i = 0;
float MaxSalary = 0.0f;
/*定义结构体变量*/
struct employee staff[5];
/*输入数据*/
for(i = 0;i
{
scanf(“%s”, staff[i].name);
scanf(“%s”, staff[i].ID);
scanf(“%d”, &staff[i].age);
scanf(“%f”, &staff[i].salary);
}
MaxSalary = staff[0].salary;
for(i = 1;i
{
if(staff[i].salary > MaxSalary)
MaxSalary = staff[i].salary;
}
printf(“%.2fn”, MaxSalary);
return 0;}