printf("%4d,",a[i]);
6.字符串的输入输出
(1)启动VC,新建一个文件,输入以下程序代码(采用循环的方式读取字符串)
#include"stdio.h"
main()
{
chara[15];
inti;
printf("请输入15个字符:
");
for(i=0;i<=14;i++)
scanf("%c",&a[i]);
printf("\n");
printf("您刚输入的15个字符:
");
for(i=0;i<=14;i++)
printf("%c",&a[i]);
}
(2)新建一个程序,输入以下的程序代码(采用%s的方式读取字符串)
#include"stdio.h"
main()
{
charc[15];
printf("请输入15个字符:
");
scanf("%s",c);
printf("您刚输入的15个字符:
");
printf("%s",c);
}
注意:
%s读取时遇到空格就认为是结束标志!
(3)新建一个程序,输入以下的程序代码
#include"stdio.h"
main()
{
charc[20];
gets(c);
puts(c);
}
说明:
gets函数用来输入字符串,能够读取空格和回车符。
puts函数用来输出的,输出时会自动在字符串末尾加一个换行符。
【真题再现】
1.求10个学生数学成绩的最高分,最低分,平均分。
请把以下程序补充完整。
#include"stdio.h"
main()
{
inti,max,min,aver;
inta[10]={58,60,82,89,76,54,72,65,55,35};
____1_____
aver=0;
for(i=1;i<10;i++)
{
____2_____/*求总分*/
if(a[i]>max)
_____3____
if(a[i]min=a[i];
}
printf("最高分数为:
%d",max);
printf("最低分数为:
%d",min);
printf("平均分为:
%d",____4___);
}
2.统计10个学生数学成绩及格的人数(>=60分为及格),并把及格学生的成绩输出。
请把以下程序补充完整。
#include"stdio.h"
main()
{
inti,count;
inta[10]={58,60,82,89,76,54,72,65,55,35};
____1_____
for(i=0;i<10;i++)
if(a[i]>=60)
{
___2____/*统计个数*/
___3____/*将符合条件的成绩输出*/
}
}
3.从键盘输入15个学生的成绩,按照从高分到低分进行排名,并依次输出,请把程序补充完整
#include"stdio.h"
main()
{
inti,j,k,a[15];
for(i=0;i<15;i++)/*从键盘读取成绩*/
{
_____1_____
}
for(i=0;i<14;i++)
for(j=i+1;j<15;j++)
{____2_____
{
__此处要填多行____________
}
}
for(i=0;i<15;i++)/*将排序后的成绩依次输出*/
________________
}
4.求出数组周边元素的平均值。
请把程序补充完整
例如,若a数组中的值为:
01279
19745
23831
45682
59141
输出结果应为:
aver=3.375
#include
#defineN5
main()
{
inti,j,k=0;
inta[][N]={0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1};
doubleaver=0.0;
_______此处要填多行__________
printf("Theaveragyis:
%lf\n",aver);
}
参考答案:
5.矩阵操作题
(1)将矩阵的右上三角元素置0右上三角
例如:
#include
#defineN4
main()
{
inti,j;
inta[][N]={1,2,3,4,5,6,7,8,9,3,6,7,2,4,3,1};
for(i=0;ifor(___1__;____2____;j++)
____3____;/*置0*/
for(i=0;i{
for(j=0;jprintf("%4d",a[i][j]);
printf("\n");
}
}
参考答案:
(1)j=i
(2)j(2)将矩阵转置
#include
#defineN4
main()
{
inti,j,k;
inta[][N]={1,2,3,4,5,6,7,8,9,3,6,7,2,4,3,1};
for(i=0;ifor(j=0;j______1______/*判断*/
{
____2_______/*进行转置操作*/
}
for(i=0;i{
for(j=0;jprintf("%4d",a[i][j]);
printf("\n");
}
}
参考答案:
(1)if(i(2)k=a[i][j];a[i][j]=a[j][i];a[j][i]=k;
【常用算法练习】
1.从键盘输入5个整数,存在数组中,并输出
#include
main()
{
inta[5],i;
}
2.求数组中的最大值及下标,最小值
#include
main()
{
inta[5],i,max,min;
for(i=0;i<5;i++)
scanf("%d",&a[i]);
__________1___________
for(i=0;i<5;i++)
{
_________2_____
________3________
}
printf("最大值=%d,最小值=%d",max,min);
}
3.求数组元素的和,平均值
#include
main()
{
inta[5],i,sum;
floataver;
for(i=0;i<5;i++)
scanf(______1_____);
_____2_____
for(i=0;i<5;i++)
{
______3_____
}
____________4________
printf("和为=%d,平均值=%f",sum,aver);
}
4.将数组中大于平均值的元素输出
#include
main()
{
inta[5],i,sum;
floataver;
for(i=0;i<5;i++)
scanf(_____1_______);
sum=0;
for(i=0;i<5;i++)
{
_______2________
}
________3________
printf("和为=%d,平均值=%f\n",sum,aver);
printf("大于平均值的元素为:
");
for(i=0;i<5;i++)
{
__________
____________
}
}
5.将1—500中能被7整除或11整除,不能同时被7和11整除的数存在数组中,并输出
#include
main()
{
inta[100],i,j=0;
for(i=1;i<=500;i++)
if((i%7==0||i%11==0)&&(i%77!
=0))
{
/*请在此处填写你的代码*/
}
for(i=0;i{
/*请在此处填写你的代码*/
}
}
6.将100—200之间的所有素数存在数组中,并输出
#include
main()
{
inta[100],i,j,t=0,flag;
for(i=100;i<=200;i++)
{
/*请在此处填写你的代码*/
}
for(i=0;i{
/*请在此处填写你的代码*/
}
}