程序题作业
(题目涵盖第1-8章所学内容,总分:100分)
作答要求:请下载程序题作业提交模板,将第1至9题填写在模板文件相应题号位置,第7-9题的上机调试好的工程文件夹放置在第7、8、9题的文件夹中。
1、(程序填空题) 下面程序打印一个如下图所示的5行的下三角形,把程序补充完整: (10分)
main( )
{ int i;
for(i=1;__ eq \o\ac(○,1)_; i++)
______ eq \o\ac(○,2)________;
}
printstar(___ eq \o\ac(○,3)___)
{int j,k;
char space=' ';
for(j=1;j
printf("%c", space);
for(k=1; ___ eq \o\ac(○,4)____; k++)
printf("%c", '*');
_____ eq \o\ac(○,5)_____;
}
2、(程序填空题) 填写程序,实现冒泡法对10个整数从小到大排序。(10分)
main()
{int a[10],i,j,temp;
printf("请输入10个整数:\n");
for(i=0;i<10;i++)
scanf("%d",__ eq \o\ac(○,1)____);
for(i=1;i<10;i++)
for(j=0;___ eq \o\ac(○,2)______;j++)
if(____ eq \o\ac(○,3)________)
{temp=a[j];______ eq \o\ac(○,4)________;a[j+1]=temp;}
printf("\n排好序的10个整数为:\n");
for(i=0;i<10;i++)
printf("%5d",___ eq \o\ac(○,5)_____);
}
3、(程序填空题)利用指针将数组b中的字符串复制到数组 a 中。(10分)
eq \o\ac(○,1)
void strcopy(char *s, eq \o\ac(○,2) )
{int i=0;
while( eq \o\ac(○,3) )
{*s=*t; eq \o\ac(○,4) ; t++;}
}
void main()
{char a[20],b[10];
gets(b);
strcopy( eq \o\ac(○,5) );
puts(a);
}
4、(阅读程序题) 阅读下列程序,回答下列问题。(10分)
main()
{int i,n=0;
for(i=2;i<5;i++)
{ do
{if(i%3) continue;
n++;
}while(!i);
n++;
}
printf("n=%d\n",n);
}
(1)分别写出continue语句运行的次数、第一个n++运行的次数、第二个n++运行的次数;
(2)写出程序的运行结果。
5、(阅读程序题) (10分)
swap (int *p1,int *p2)
{int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}
swap (int *p1,int *p2)
{int *p;
*p=*p1;
*p1=*p2;
*p2=*p;
}
swap (int *p1,int *p2)
{int *p;
p=p1;
p1=p2;
p2=p;
}
1)以上三个函数功能是否相同?请写出原因。
2)以上哪个函数可以实现两个数的交换?
3)对不能实现两个数交换的函数进行修改,使其能实现。
6、(阅读程序题) (5分)
以下程序输出结果是:
#include
void main()
{
char *p,s[] = "ABCDEFG";
p = s;
while(*p != ’\0’ )
{
printf("%s\n",p);
p++;
if(*p != ’\0’) p++;
else break;
}
}
7、8、9、(程序设计题)编写程序,要求写出每题的源程序(运行成功的)和运行结果截图(5分),并且将每题的上机调试运行成功的所有文件(project文件夹中所有文件),存于作业提交模板中相应题号文件夹中(10分)。
7、从键盘输入学生的考试成绩,利用计算机将学生的成绩划分等级并输出。学生的成绩可分为5个等级,这5个等级是:90—99分为A级,80—89分为B级,70—79分为C级,