一、编写程序,实现从键盘上任意输入一个正整数,求该数的因子和(注:1和其本身不是该数的因子)并输出结果。
样例输入:10
样例输出:7
说明:10 的因子为: 2,5
# include <iostream>
using namespace std;
int main()
{
//任意输入正整数,求因子之和
int a;
cin>>a;
int i,sum=0;
for(i=2;i<=a/2;i++)
{
if(a%i==0)
sum+=i;
}
cout<<sum;
return 0;
}
二、编写程序,实现以下功能:从键盘输入一个学生的分数,
如果分数大于100,输出"Input error!";
如果分数介于100到90(包含等于90)之间, 输出"Very Good!";
如果分数介于80到90之间(包含等于80),输出"Good!";
如果分数介于70到80之间(包含等于70),输出"Middle"
如果分数介于60到70之间(包含等于60),输出"Pass"
如果分数小于60,输出"No Pass!"。
# include <iostream>
using namespace std;
int main()
{
//键盘输入一个学生的分数
int n;
cin>>n;
if(n>100)
cout<<"Input error!";
else if(n>=90)
cout<<"Very Good!";
else if(n>=80)
cout<<"Good!";
else if(n>=70)
cout<<"Middle";
else if(n>=60)
cout<<"Pass";
else
cout<<"No Pass!";
cout<<endl;
}
三、现有一个5*5的二维数组,将该二维数组中主对角线及主对角线以上的数据按行存储到一个一维数组中,输出一维数组中每个数据及所有数据的和。(i==j为主对角线)
输入: 5*5的二维数组
输出:输出两行,第一行包含15个数,即一维数组中的每一个数;第二行为一维数组中所有数的和
样例输入:
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
5 5 5 5 5
样例输出:
1 1 1 1 1 2 2 2 2 3 3 3 4 4 5
35
# include <iostream>
using namespace std;
int main()
{
//现有一个5*5的二维数组,将该二维数组中主对角线及主对角线以上的数据按行存储到一个一维数组中,输出一维数组中每个数据及所有数据的和
int a[5][5];
int j;
for(int i=0;i<5;i++)
for(j=0;j<5;j++)
cin>>a[i][j];
int b[15];;
int k,sum;
for(i=0,k=0;i<5;i++)
for(j=i;j<5;j++)
{
b[k]=a[i][j];
k++;
}
for(k=0;k<15;k++)
cout<<b[k]<<" ";
for(sum=0,k=0;k<15;k++)
sum+=b[k];
cout<<sum<<" ";
return 0;
}
四、编写函数avernum,计算含有n(n<=100)个整数的一维数组的数组元素的平均值,并统计此数组中大于平均值的数据的个数。要求,n及n个数据均在主函数输入,计算结果也在主函数中输出。
输入: 输入n 及n个数
输出:两行。第一行为n个数的平均值;第二行为大于平均值的数的个数(不允许使用全局变量)
样例输入:
5
1 1 1 1 1
样例输出:
1
0
(不允许使用全局变量)
# include <iostream>
using namespace std;
double avernum(int n,int sum);
int main()
{
int n,i,sum=0,j=0;
cin>>n;
int *po=new int[n];
for(i=0;i<n;i++)
{
cin>>po[i];
sum+=po[i];
}
cout<<avernum(n,sum)<<" ";
for(i=0;i<n;i++)
{
if(po[i]>avernum(n,sum))
j++;
}
cout<<j<<" ";
return 0;
}
double avernum(int n,int num)
{
return double(num/n);
}
一、下面程序代码实现:计算1-3+5-7+....99+101的值,请在程序的空中填入正确内容。
int i,t=1,s,a;
__(1)__;
for(i=1;i<=101;__(2)__){
a=___(3)___ ;
s=s+a;
t=-t;
}
cout<<s<<endl;
# include <iostream>
using namespace std;
int main()
{
int i,t=1,s,a;
s=0;
for(i=1;i<=101;i+=2)
{
a=i*t;
s=s+a;
t=-t;
}
cout<<s<<endl;
return 0;
}
二、下面的程序输出[3,12]之间的能被3整除的数。根据要求补充代码。
#include<iostream>
using namespace std;
int main(){
int i=3;
while( _(1)_ ){
if( _(2)_)
____(3)__;
}
return 0;
}
#include<iostream>
using namespace std;
int main()
{
int i=3;
while(i<=12)
{
if((++i-1)%3==0)
cout<<i-1<<" ";
}
return 0;
}
三、有如下函数:
void swap (int *p1, *p2) {
int p; p=*p1; *p1=*p2; *p2=p;
}
在主函数中定义两个整型变量 int a=10,b=20;并在主函数中执行如下的函数调用swap(&a,&b);
请问函数调用结束后,a,b 的值分别为
a==20;b==10;
四、有如下程序段
int a[5];
int j,s=0;
for(j=0;j<5;j++) {
if(a [j]<0)
s+=a[j];
}
简述该程序段的功能。
若a[5]={1,-1,-2,-21,2}则结果为
//求出数组a中所有为负值的元素之和;
//-24