C++(基础班)上机复习
来源:互联网 发布:windows7服务优化 编辑:程序博客网 时间:2024/04/28 10:33
程序设计---自己编写
--------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数的花括号中填入所编写的若干语句。
------------------------------------------------*/
1. 输入年份和月份,输出该月的天数。(要求采用开关语句实现多路分支)
-------------------------------------------------------------------------------------*/
#include <iostream>
using namespace std;
int main()
{
int year, month, days;
cout<<"year:";
cin>>year;
cout<<"month:";
cin>>month;
/**********Program**********/
/********** End **********/
cout<<"days:"<<days<<endl;
return 0;
}
2:打印水仙花数及个数 n (水仙花数是三位数,每位数字的立方和等于这个数本身示)。-----------------------------------------------------------------------------------------*/
#include <iostream.h>
#include <fstream.h>
#include <stdio.h>
void writeinfile(int n);
void main()
{
int m,n=0,a,b,c;
/**********Program**********/
/********** End **********/
writeinfile(n);
}
void writeinfile(int n)
{
fstream myfile;
myfile.open(" f.txt" ,ios::out);
myfile<<n<<endl;
myfile.close();
}
3: 编写一个函数,统计出一维数组中大于等于所有元素平均值的元素个数并返回它。------------------------------------------------------------------------------------*/
#include<iostream.h>
#include<fstream.h>
int Count(double a[], int n)
{
/**********Program**********/
/********** End **********/
}
void main()
{
int c;
double a[10] = {34,54,75,86,53,45,34,45,34,45};
c=Count(a,10);
cout<<" 数组中大于等于所有元素平均值的元素个数为:" <<c;
void wwjt(int);
wwjt(c);
}
void wwjt(int o)
{
fstream myfile;
myfile.open(" out.txt" ,ios::out);
myfile<<o<<endl;
myfile.close();
}
4:找出1-200之间的完数及个数 n(完数是一个数的因子之和是这个数本身。例如6=1+2+3)。-----------------------------------------------------------------------------------------*/
#include <iostream.h>
#include <fstream.h>
#include <stdio.h>
void writeinfile(int n);
void main()
{
int m,n,k,s,l;
/**********Program**********/
/********** End **********/
writeinfile(n);
}
void writeinfile(int n)
{
fstream myfile;
myfile.open(" f.txt" ,ios::out);
myfile<<n<<endl;
myfile.close();
}
5:在包含10个数的一维整数数组a中查找给定的数据num。 如果找到则返回1,未找到返回 0 . -------------------------------------------------------------------------------------*/
#include <fstream.h>
#include <iostream.h>
int fun(int a[],int num)
{
/**********Program**********/
/********** End **********/
}
void main()
{
int a[10]={54,256,563,754,34,56,345,543,45,65};
int num = 46;
if (fun(a,num)==1)
cout <<" 找到!" <<endl;
else
cout <<" 没有找到!" <<endl;
void wwjt();
wwjt();
}
void wwjt()
{
int a[10]={54,256,563,754,34,56,345,543,45,65};
fstream myfile;
myfile.open(" out.txt" ,ios::out);
myfile<<fun(a,46)<<endl;
myfile<<fun(a,345)<<endl;
myfile.close();
}
6: 用“辗转相除方法”计算两个数 x,y 的最大公约数。-------------------------------------------------------------------------------------*/
#include <iostream.h>
#include <fstream.h>
#include <stdio.h>
void writeinfile(int n);
void main()
{
int x,y,n;
x=25,y=10;
/**********Program**********/
/********** End **********/
cout<<y;
writeinfile(y);
}
void writeinfile(int n)
{
fstream myfile;
myfile.open(" f.txt" ,ios::out);
myfile<<n<<endl;
myfile.close();
}
7.已知n,计算n以内的所有素数之和sum 。-------------------------------------------------------------------------------------*/
#include <iostream.h>
#include <fstream.h>
#include <stdio.h>
void writeinfile(int n);
void main()
{
int n,k,m,l,sum=0;
n=100;
/**********Program**********/
/********** End **********/
writeinfile(sum);
}
void writeinfile(int n)
{
fstream myfile;
myfile.open(" f.txt" ,ios::out);
myfile<<n<<endl;
myfile.close();
}
8:将数组S中所有小写字母改写成大写字母。-------------------------------------------------------------------------------------*/
#include <iostream.h>
#include <fstream.h>
#include <string.h>
void fun(char s[])
{
/**********Program**********/
/********** End **********/
}
void wwjt(char []);
void main()
{
char s[80] = " abdsaFDSAFdsafASFDSafghHFDHTjte" ;
fun(s);
wwjt(s);
}
void wwjt(char s[])
{
fstream myfile;
myfile.open(" out.dat" ,ios::out);
myfile<<s<<endl;
myfile.close();
}
9:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?-------------------------------------------------------------------------------------*/
#include <cmath>
#include <iostream>
using namespace std;
int main()
{
long int i;
cin>>i;
int bonus1, bonus2, bonus4, bonus6, bonus10, bonus;
/**********Program**********/
/********** End **********/
cout<<" bonus = " <<bonus<<endl;
return 0;
}
程序改错
--------------------------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。
------------------------------------------------*/
1: 下列程序是求某班级的最高成绩、最低成绩和平均成绩的程序,输入负数表示结束。
-------------------------------------------------------------------------------------*/
#include <iostream.h>
void main()
{
float cj,sum,max,min,ave;
/***********FOUND***********/
int n=1;
cin>>cj;
sum=0;
/***********FOUND***********/
min=max=0;
/***********FOUND***********/
while(cj!=0)
{
n++;
/***********FOUND***********/
sum=cj;
if(cj>max) max=cj;
if(cj<min) min=cj;
cin>>cj;
}
ave=sum/n;
cout<<ave<<'\t'<<max<<'\t'<<min;
}
答案:
=======(答案1)=======int n=0;
=======(答案2)=======min=max=cj;
=======(答案3)=======while(cj>=0)
=======(答案4)=======sum+=cj;=========或=========sum=sum+cj;
2:在一个具有N个数的数组中查找并删除一个数K。
-------------------------------------------------------*/
#define n 10
#include <iostream.h>
void main()
{
/***********FOUND***********/
int a[n],n,k,i,j;
/***********FOUND***********/
for(i=1;i<=n;i++)
cin>>a[i];
cin>>k;
/***********FOUND***********/
for(i=1;i<=n||a[i]!=k;i++);
if(i<n)
{for(j=i;j<=n-1;j++)
a[j]=a[j+1];
/***********FOUND***********/
for(i=0;i<n;i++)
cout<<a[i];
}
else
{cout<<"not found";
for(i=0;i<n;i++)
cout<<a[i];
}
}
答案:
=======(答案1)=======int a[n],k,i,j;
=======(答案2)=======for(i=0;i<n;i++)
=======(答案3)=======for(i=0;i<n&&a[i]!=k;i++);
=======(答案4)=======for(i=0;i<n-1;i++)
3:计算数组元素中值为正数的平均值(不包括0)。例如:数组中元素的值依次为39,-47,21,2,-8,15,0,则程序的运行结果为1。
----------------------------------------------------------------------------------------*/
#include<iostream.h>
double fun(int s[])
{
/**********FOUND**********/
int sum=0.0;
int c=0,i=0;
/**********FOUND**********/
while(s[i]=0)
{
if (s[i]>0)
{
sum+=s[i];
c++;
}
i++;
}
/**********FOUND**********/
sum\=c;
/**********FOUND**********/
return c;
}
void main()
{
int x[100],i=0;
do
{
cin>>x[i];
}
while(x[i++]!=0);
cout<<fun(x);
}
答案:
=======(答案1)=======double sum=0.0;=========或=========double sum=0;
=======(答案2)=======while(s[i]!=0)=========或=========while(s[i])
=======(答案3)=======sum/=c;=========或=========sum=sum/c;
=======(答案4)=======return sum;=========或=========return (sum);
4:打印扬辉三角形
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
-------------------------------------------------------*/
#include <iostream.h>
void main()
{int a[5][5],i,j;
for(i=0;i<5;i++)
{
/***********FOUND***********/
a[i][1]=1;
a[i][i]=1;
for(j=1;j<=i-1;j++)
/***********FOUND***********/
a[i][j]=a[i-1][j-1]+a[i][j];
}
for(i=0;i<5;i++)
{
/***********FOUND***********/
for(j=0;j<5;j++)
/***********FOUND***********/
cout<<a[j][i]<<" ";
cout<<endl;}
}
答案:
=======(答案1)=======a[i][0]=1;
=======(答案2)=======a[i][j]=a[i-1][j-1]+a[i-1][j];
=======(答案3)=======for(j=0;j<=i;j++)
=======(答案4)=======cout<<a[i][j]<<" ";
5:计算T=1-1/2+2/3-3/4+……-29/30
-------------------------------------------------------*/
#include <iostream.h>
void main()
/***********FOUND***********/
{ int t1,f,k; float t=1;
/***********FOUND***********/
f=1;
/***********FOUND***********/
for(k=1;k<=30;k++)
{
/***********FOUND***********/
t1=(k-1)/k;
t+=t1*f;
f=-f;
}
cout<<t;
}
答案:
=======(答案1)=======int f , k ; float t1 , t=1 ;
=======(答案2)=======f=-1;
=======(答案3)=======for(k=2;k<=30;k++)
=======(答案4)=======t1=(float)(k-1)/k;=========或=====t1=(k-1)/(float)k;
=========或=========t1=1.0*(k-1)/k;
6:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。---------------------------------------------------------------------------------*/
#include<iostream.h>
void main()
{
const int N=11;
int i,number,a[N]={1,2,4,6,8,9,12,15,149,156};
cout<<" 请输入要插入的数" ;
/**********FOUND**********/
cin>>number>>endl;
cout<<" 原数组为:\n" ;
for(i=0;i<N-1;i++)
cout<<a[i]<<" " ;
cout<<" \n" ;
/**********FOUND**********/
for(i=N-1;i>=0;i--)
if(number<=a[i])
/**********FOUND**********/
a[i]=a[i-1];
else
{
a[i+1]=number;
/**********FOUND**********/
continue;
}
if(number<a[0])
a[0]=number;
cout<<" 结果数组为:\n" ;
for(i=0;i<N;i++)
cout<<a[i]<<" " ;
}
答案:
=======(答案1)=======cin>>number;
=======(答案2)=======for(i=N-2;i>=0;i--)
=======(答案3)=======a[i+1]=a[i];
=======(答案4)=======break;
7:下面函数chnum将一个整数字符串转换为一个整数。
------------------------------------------------------*/
#include<string.h>
#include<iostream.h>
int chnum (char *str)
{
int i,j,k,h,len,L,num=0;
/***********FOUND***********/
int L=n=strlen(str);
/***********FOUND***********/
for(i=0;i<L;i+) ;
{
k=1;
j=len=len-1;
cout<<len<<endl;
while (j>0)
{
k=k*10;
/***********FOUND***********/
j++;
}
/***********FOUND***********/
h=*(str+4-len)-'0';
num=num+h*k;
}
return num;
}
void main()
{int t;char *a=" 1234" ;
t=chnum(a);
cout<<t<<endl;
}
答案:
=======(答案1)=======L=len=strlen(str);
=======(答案2)=======for(i=0;i<L;i++)
=======(答案3)=======j--;==或===--j;===或======j=j-1;=========或=========j-=1;
=======(答案4)=======h=*(str+i)-'0';
7:在[100,5000]之间打印出各位数字和为5的所有整数的个数.
------------------------------------------------------*/
#include <iostream.h>
void main()
{
int a,b,c,d,k,i;
k=0;
for(i=104;i<=500;i++)
{
/***********FOUND***********/
a=i%100;
b=(i-a*100)/10;
c=i-a*100-b*10;
}
/***********FOUND***********/
if(a+b+c<>5) k++;
for(i=1000;i<=5000;i++)
{a=i/1000;
b=(i-a*1000)/100;
/***********FOUND***********/
c=(i-A*1000-b*100)/100;
d=i-a*1000-b*100-c*10;
/***********FOUND***********/
if(a+b+c==5) k++;
}
cout<<k;
}
答案:
=======(答案1)=======a=i/100;
=======(答案2)=======if( a + b + c ==5) k++;
=======(答案3)=======c=(i-a*1000-b*100)/10;
=======(答案4)=======if( a + b + c + d ==5) k++;
程序填空
注意:若语句结束已有分号处,填空中内容后面就不需要添加分号。
1:函数func的功能是:使一个字符串按逆序存放。
-------------------------------------------------------*/
#include <iostream.h>
#include<string.h>
void func (char str[])
{
/***********SPACE***********/
【?】
int i,j;
/***********SPACE***********/
for(i=0,【?】;i<j;i++,j--)
{
m=str[i];
/***********SPACE***********/
【?】;
str[j]=m;
}
/***********SPACE***********/
cout<<【?】<<endl;
}
void main()
{
char str[]="12345";
func(str);
}
答案:
=======(答案1)=======char m;
=======(答案2)=======j=strlen(str)-1=========或=========j=5
=======(答案3)=======str[i]=str[j]
=======(答案4)=======str
2:用递归算法设计函数fa(int n),函数类型为整型,求1!+2!+3!+...+n!的值。
要求:在主函数中输入n的值,调用该函数并输出和。
------------------------------------------------------------------------------*/
#include <iostream.h>
/***********SPACE***********/
【?】;
void main()
{
int n,sum=0;
cout<<"请输入n"<<endl;
cin>>n;
/***********SPACE***********/
for(int i=1;i<=n;i++)
【?】;
cout<<sum<<endl;
}
int fa(int n)
{
int f;
if(n==0||n==1) f=1;
/***********SPACE***********/
else【?】;
/***********SPACE***********/
【?】;
}
答案:
=======(答案1)=======int fa(int n)或int fa(int)
=======(答案2)=======sum+=fa(i)或sum=sum+fa(i)
=======(答案3)=======f=fa(n-1)*n或 f=n*fa(n-1)
=======(答案4)=======return f
3:在一维数组中统计正数和负数的个数,正数的个数存入变量C1中,负数的个数存入变量C2中。
---------------------------------------------------------------------------------------*/
#include <iostream.h>
void main()
{
int a[10]={1,-2,3,4,-5,6,7,8,-9,10};
/***********SPACE***********/
【?】
/***********SPACE***********/
for (int i=0;【?】;i++)
/***********SPACE***********/
if(【?】>0)
c1++;
else
/***********SPACE***********/
【?】;
cout<<c1<<" " <<c2;
}
答案:
=======(答案1)=======int c1=0 , c2=0 ;
=======(答案2)=======i<10=========或=========i<=9
=======(答案3)=======a[i]
=======(答案4)=======c2++=========或=========c2=c2+1=========或=========++c2
=========或=========c2+=1
4:设计一个求和函数sum(int n),函数类型为整型,求1+2+3+...+a的值。
要求:在主函数中输入a的值,调用该函数并输出和。
------------------------------------------------------------------------------------------*/
#include <iostream.h>
/***********SPACE***********/
【?】;
void main()
{
int a,b=0;
cout<<"请输入a:"<<endl;
cin>>a;
/***********SPACE***********/
【?】;
cout<<b<<endl;
}
int sum(int n)
{
int i,k=0;
for(i=1; i<=n;i++)
/***********SPACE***********/
【?】;
/***********SPACE***********/
【?】;
}
答案:
=======(答案1)=======int sum(int n)或int sum(int)
=======(答案2)=======b=sum(a)
=======(答案3)=======k+=i 或k=k+i
=======(答案4)=======return k
5:以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。例如:输入的两个字符串分别为abcdef和abceef,则输出为-1,请填空。
------------------------------------------------------------------------------------------*/
#include<iostream.h>
#include<string.h>
void main()
{
char str1[50],str2[50];
int i,s;
cout<<" \n input string 1:\n" ;
/***********SPACE***********/
【?】
cout<<" \n input string 2:\n" ;
cin.getline(str2,50);
i=0;
/***********SPACE***********/
while((【?】)&&(str1[i]!='\0'))
/***********SPACE***********/
【?】;
/***********SPACE***********/
【?】;
cout<<s<<endl;
}
答案:
=======(答案1)=======cin.getline(str1,50);== =或===cin>>str1;
=======(答案2)=======str1[i]==str2[i]==== =或===str2[i]==str1[i]
=======(答案3)=======i++====或====i=i+1===或====i+=1=====或====++i
=======(答案4)=======s=str1[i]-str2[i]
6:功能:输出100以内能被3整除的且个位是6的所有整数之和。
-------------------------------------------------------*/
#include <iostream.h>
void main()
/***********SPACE***********/
{
int sum,【?】
sum=0;
/***********SPACE***********/
for(i=1;i<=100;【?】)
/***********SPACE***********/
if(【?】)
sum+=i;
/***********SPACE***********/
cout<<【?】;
}
答案:
=======(答案1)=======i;
=======(答案2)=======i++=========或=========i=i+1=====或===i+=1
=======(答案3)=======i%10==6&&i%3==0=========或======i%10==6 && i%3==0
=======(答案4)=======sum
7:功能:将一维数组大于等于平均值的元素存入另一个数组,小于平均值的元素仍存在原数组,并打印这两个数组。
-----------------------------------------------------------------------------------------*/
#include <iostream.h>
void main()
{
int i,la,lb,n;
float a[100],b[100],sum,av;
/***********SPACE***********/
【?】;
for(i=0;i<n;i++)
cin>>a[i];
/***********SPACE***********/
【?】;
for(i=0;i<n;i++)
sum+=a[i];
/***********SPACE***********/
【?】;
la=lb=0;
for(i=0;i<n;i++)
if(a[i]>=av)
b[lb++]=a[i];
else
/***********SPACE***********/
{【?】;
}
for(i=0;i<la;i++)
cout<<a[i]<<" ";
cout<<'\n';
for(i=0;i<lb;i++)
cout<<b[i]<<" ";
}
答案:
=======(答案1)=======cin>>n
=======(答案2)=======sum=0
=======(答案3)=======av=sum/n
=======(答案4)=======a[la++]=a[i]
8:判断一个字符串是否是回文,是输出“yes”, 否则输出“no”.(回文是字符串正读反读一样,如level)
---------------------------------------------------------------------------------------*/
#include <iostream.h>
int lenth(char a[])
{
int i;
/***********SPACE***********/
for(i=0; 【?】;i++);
return i;
}
void main()
{
int i,j,l;
char a[50];
cin.getline(a,50);
/***********SPACE***********/
l=【?】;
/***********SPACE***********/
for(i=0,j=l-1;i<j;i++,【?】)
if(a[i]!=a[j])
break;
/***********SPACE***********/
if(【?】)
cout<<" yes" ;
else
cout<<" no" ;
}
答案:
=======(答案1)=======a[i]!='\0'
=========或========a[i]!=0=========或=========a[i]
=======(答案2)=======lenth(a)
=======(答案3)=======j--===或=======--j======或===j=j-1=========或=========j-=1
=======(答案4)=======i>=j=========或=========j<=i
9:FIBONACCI数列的前N项
-------------------------------------------------------*/
#include <iostream.h>
void main()
{
int n,l1,l2,l3,i;
cin>>n;
/***********SPACE***********/
l1=【?】;l2=1;
cout<<l1<<endl<<l2<<endl;
/***********SPACE***********/
for(i=3;【?】)
/***********SPACE***********/
{l3=【?】;
cout<<l3<<endl;
l1=l2;
/***********SPACE***********/
【?】;
}
}
答案:
=======(答案1)=======0
=======(答案2)=======i<=n;i++=========或=========i<n+1;i++
=======(答案3)=======l1+l2=========或=========l2+l1
=======(答案4)=======l2=l3
10:输出4行4列矩阵的转置矩阵。
-------------------------------------------------------*/
#include <iostream.h>
void zz(int a[4][4])
{ int b,i,j;
for(i=0;i<4;i++)
/***********SPACE***********/
for(j=0;j<【?】;j++)
{b=a[i][j];
a[i][j]=a[j][i];
/***********SPACE***********/
【?】;}
}
void main()
{
/***********SPACE***********/
int【?】,i,j;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
cin>>a[i][j];
/***********SPACE***********/
【?】;
for(i=0;i<4;i++)
{for(j=0;j<4;j++)
cout<<a[i][j];
cout<<endl;
}
}
答案:
=======(答案1)=======i=========或=========i+1
=======(答案2)=======a[j][i]=b
=======(答案3)=======a[4][4]
=======(答案4)=======zz(a)
11:下列程序是求100之内的能被7整除的自然数之和。
-------------------------------------------------------*/
#include <iostream.h>
void main( )
{
int sum;
/***********SPACE***********/
【?】;
/***********SPACE***********/
for(int i(1);【?】;i++)
/***********SPACE***********/
if(【?】)
sum+=i;
cout<<sum<<endl;
}
答案:
=======(答案1)=======sum=0
=======(答案2)=======i<=100=========或=========i<100=========或======i<=99
=======(答案3)=======i%7==0
12:编写程序求1!+2!+3!+4!+5!和。
(其中求阶乘是用函数来实现的)。
----------------------------------------------------------------------------------*/
#include<iostream.h>
/***********SPACE***********/
【?】;
void main( )
{ long s=0;
for(int i=1;i<=5;i++)
/***********SPACE***********/
【?】;
cout<<" 1!+2!+3!+4!+5!= " <<s<<endl;
}
long int fac(int x)
{ static int b=1;
b*=x;
/***********SPACE***********/
【?】;
}
答案:
=======(答案1)=======long int fac(int x)=========或====long int fac(int)
=======(答案2)=======s+=fac(i)=========或=========s=s+fac(i)
=======(答案3)=======return b
13:从键盘输入两个正整数求最大公约数。
-------------------------------------------------------*/
#include <iostream.h>
void main()
{ int m,n,k;
cin>>m>>n;
/***********SPACE***********/
k=【?】;
/***********SPACE***********/
while(【?】)
{m=n;
/***********SPACE***********/
【?】;
/***********SPACE***********/
k=【?】;
}
cout<<n;
}
答案:
=======(答案1)=======m%n;
=======(答案2)=======k!=0
=======(答案3)=======n=k
=======(答案4)=======m%n;
14:编写程序是用递归算法求n!。
-------------------------------------------------------*/
#include<iostream.h>
int f1(int a);
void main()
{
int a=6;
/***********SPACE***********/
cout<<【?】<<endl;
}
int f1(int a)
{
/***********SPACE***********/
return(a==0)?1:【?】;
}
答案:
=======(答案1)=======f1(6)=========或=========f1(a)
=======(答案2)=======a*f1(a-1)=========或=========f1(a-1)*a
15:输入若干学生成绩,以负数或者大于100作为输入结束。统计100,90-99,80-89,70-79,60-69,0-60各段的人数。
-------------------------------------------------------*/
#include <iostream.h>
void main()
{
int s,n[6],i,m;
for(i=0;i<6;i++)
/***********SPACE***********/
【?】;
cin>>s;
while(s>=0 && s<=100)
/***********SPACE***********/
{m=【?】;
if(m<1)
m=0;
/***********SPACE***********/
【?】;
/***********SPACE***********/
【?】;
}
cout<<" 0-59" <<" " <<n[0]<<endl;
for(i=1;i<5;i++)
cout<<(i+5)*10<<" -" <<(i+5)*10+9<<" " <<n[i]<<endl;
cout<<" 100 " <<n[5]<<endl;
}
答案:
=======(答案1)======= n[i]=0
=======(答案2)=======s/10-5
=======(答案3)=======n[m]=n[m]+1====或====n[m]++=========或=========n[m]+=1
=======(答案4)=======cin>>s
16:下面程序运行后输出的结果为:
* *
* * * *
* * * * * *
-------------------------------------------------------*/
#include <iostream.h>
#include<iomanip.h>
void main()
{
int i,j,k ;
for(i=1 ;i<=4 ;i++)
{
/***********SPACE***********/
for(j=1;j<20-3*i;【?】)
cout<<" " ;
/***********SPACE***********/
for(k=1;【?】; k++)
cout<<setw(3)<<" *" ;
/***********SPACE***********/
【?】; //换行
}
}
答案:
=======(答案1)=======j++=========或=========j=j+1
=======(答案2)=======k<2*i-1=========或=========k<=2*i-2
=======(答案3)=======cout<<endl
17:功能:打印图形
*****
****
***
**
*
-------------------------------------------------------*/
#include <iostream.h>
void main()
{
char c[6];int i,j;
for(i=0;i<5;i++)
{
/***********SPACE***********/
【?】;
/***********SPACE***********/
for(【?】)
/***********SPACE***********/
c【?】='*';
/***********SPACE***********/
cout<<【?】;
}
}
答案:
=======(答案1)=======c[5-i]='\0'=========或=========c[5-i]=0
=======(答案2)=======j=0;j<5-i;j++
=======(答案3)=======[j]
=======(答案4)=======c<<'\n'=========或=========c<<endl
18:求FIBONACCI数列的前N项.
提示:0,1,1,2,3,5,8,13......
-------------------------------------------------------*/
#include <iostream.h>
void main()
{
int n,l1,l2,l3,i;
cin>>n;
/***********SPACE***********/
l1=【?】;l2=1;
cout<<l1<<endl<<l2<<endl;
/***********SPACE***********/
for(i=3;i<=n;【?】)
/***********SPACE***********/
{l3=【?】;
cout<<l3<<endl;
/***********SPACE***********/
【?】; //更新l1变量
/***********SPACE***********/
【?】; //更新l2变量
}
}
答案:
=======(答案1)=======0
=======(答案2)=======i++=========或=========++i
=========或=========i+=1=========或=========i=i+1=========或=========i=1+i
=======(答案3)=======l1+l2=========或=========l2+l1
=======(答案4)=======l1=l2
=======(答案5)=======l2=l3
--------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数的花括号中填入所编写的若干语句。
------------------------------------------------*/
1. 输入年份和月份,输出该月的天数。(要求采用开关语句实现多路分支)
-------------------------------------------------------------------------------------*/
#include <iostream>
using namespace std;
int main()
{
int year, month, days;
cout<<"year:";
cin>>year;
cout<<"month:";
cin>>month;
/**********Program**********/
/********** End **********/
cout<<"days:"<<days<<endl;
return 0;
}
2:打印水仙花数及个数 n (水仙花数是三位数,每位数字的立方和等于这个数本身示)。-----------------------------------------------------------------------------------------*/
#include <iostream.h>
#include <fstream.h>
#include <stdio.h>
void writeinfile(int n);
void main()
{
int m,n=0,a,b,c;
/**********Program**********/
/********** End **********/
writeinfile(n);
}
void writeinfile(int n)
{
fstream myfile;
myfile.open(" f.txt" ,ios::out);
myfile<<n<<endl;
myfile.close();
}
3: 编写一个函数,统计出一维数组中大于等于所有元素平均值的元素个数并返回它。------------------------------------------------------------------------------------*/
#include<iostream.h>
#include<fstream.h>
int Count(double a[], int n)
{
/**********Program**********/
/********** End **********/
}
void main()
{
int c;
double a[10] = {34,54,75,86,53,45,34,45,34,45};
c=Count(a,10);
cout<<" 数组中大于等于所有元素平均值的元素个数为:" <<c;
void wwjt(int);
wwjt(c);
}
void wwjt(int o)
{
fstream myfile;
myfile.open(" out.txt" ,ios::out);
myfile<<o<<endl;
myfile.close();
}
4:找出1-200之间的完数及个数 n(完数是一个数的因子之和是这个数本身。例如6=1+2+3)。-----------------------------------------------------------------------------------------*/
#include <iostream.h>
#include <fstream.h>
#include <stdio.h>
void writeinfile(int n);
void main()
{
int m,n,k,s,l;
/**********Program**********/
/********** End **********/
writeinfile(n);
}
void writeinfile(int n)
{
fstream myfile;
myfile.open(" f.txt" ,ios::out);
myfile<<n<<endl;
myfile.close();
}
5:在包含10个数的一维整数数组a中查找给定的数据num。 如果找到则返回1,未找到返回 0 . -------------------------------------------------------------------------------------*/
#include <fstream.h>
#include <iostream.h>
int fun(int a[],int num)
{
/**********Program**********/
/********** End **********/
}
void main()
{
int a[10]={54,256,563,754,34,56,345,543,45,65};
int num = 46;
if (fun(a,num)==1)
cout <<" 找到!" <<endl;
else
cout <<" 没有找到!" <<endl;
void wwjt();
wwjt();
}
void wwjt()
{
int a[10]={54,256,563,754,34,56,345,543,45,65};
fstream myfile;
myfile.open(" out.txt" ,ios::out);
myfile<<fun(a,46)<<endl;
myfile<<fun(a,345)<<endl;
myfile.close();
}
6: 用“辗转相除方法”计算两个数 x,y 的最大公约数。-------------------------------------------------------------------------------------*/
#include <iostream.h>
#include <fstream.h>
#include <stdio.h>
void writeinfile(int n);
void main()
{
int x,y,n;
x=25,y=10;
/**********Program**********/
/********** End **********/
cout<<y;
writeinfile(y);
}
void writeinfile(int n)
{
fstream myfile;
myfile.open(" f.txt" ,ios::out);
myfile<<n<<endl;
myfile.close();
}
7.已知n,计算n以内的所有素数之和sum 。-------------------------------------------------------------------------------------*/
#include <iostream.h>
#include <fstream.h>
#include <stdio.h>
void writeinfile(int n);
void main()
{
int n,k,m,l,sum=0;
n=100;
/**********Program**********/
/********** End **********/
writeinfile(sum);
}
void writeinfile(int n)
{
fstream myfile;
myfile.open(" f.txt" ,ios::out);
myfile<<n<<endl;
myfile.close();
}
8:将数组S中所有小写字母改写成大写字母。-------------------------------------------------------------------------------------*/
#include <iostream.h>
#include <fstream.h>
#include <string.h>
void fun(char s[])
{
/**********Program**********/
/********** End **********/
}
void wwjt(char []);
void main()
{
char s[80] = " abdsaFDSAFdsafASFDSafghHFDHTjte" ;
fun(s);
wwjt(s);
}
void wwjt(char s[])
{
fstream myfile;
myfile.open(" out.dat" ,ios::out);
myfile<<s<<endl;
myfile.close();
}
9:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?-------------------------------------------------------------------------------------*/
#include <cmath>
#include <iostream>
using namespace std;
int main()
{
long int i;
cin>>i;
int bonus1, bonus2, bonus4, bonus6, bonus10, bonus;
/**********Program**********/
/********** End **********/
cout<<" bonus = " <<bonus<<endl;
return 0;
}
程序改错
--------------------------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。
------------------------------------------------*/
1: 下列程序是求某班级的最高成绩、最低成绩和平均成绩的程序,输入负数表示结束。
-------------------------------------------------------------------------------------*/
#include <iostream.h>
void main()
{
float cj,sum,max,min,ave;
/***********FOUND***********/
int n=1;
cin>>cj;
sum=0;
/***********FOUND***********/
min=max=0;
/***********FOUND***********/
while(cj!=0)
{
n++;
/***********FOUND***********/
sum=cj;
if(cj>max) max=cj;
if(cj<min) min=cj;
cin>>cj;
}
ave=sum/n;
cout<<ave<<'\t'<<max<<'\t'<<min;
}
答案:
=======(答案1)=======int n=0;
=======(答案2)=======min=max=cj;
=======(答案3)=======while(cj>=0)
=======(答案4)=======sum+=cj;=========或=========sum=sum+cj;
2:在一个具有N个数的数组中查找并删除一个数K。
-------------------------------------------------------*/
#define n 10
#include <iostream.h>
void main()
{
/***********FOUND***********/
int a[n],n,k,i,j;
/***********FOUND***********/
for(i=1;i<=n;i++)
cin>>a[i];
cin>>k;
/***********FOUND***********/
for(i=1;i<=n||a[i]!=k;i++);
if(i<n)
{for(j=i;j<=n-1;j++)
a[j]=a[j+1];
/***********FOUND***********/
for(i=0;i<n;i++)
cout<<a[i];
}
else
{cout<<"not found";
for(i=0;i<n;i++)
cout<<a[i];
}
}
答案:
=======(答案1)=======int a[n],k,i,j;
=======(答案2)=======for(i=0;i<n;i++)
=======(答案3)=======for(i=0;i<n&&a[i]!=k;i++);
=======(答案4)=======for(i=0;i<n-1;i++)
3:计算数组元素中值为正数的平均值(不包括0)。例如:数组中元素的值依次为39,-47,21,2,-8,15,0,则程序的运行结果为1。
----------------------------------------------------------------------------------------*/
#include<iostream.h>
double fun(int s[])
{
/**********FOUND**********/
int sum=0.0;
int c=0,i=0;
/**********FOUND**********/
while(s[i]=0)
{
if (s[i]>0)
{
sum+=s[i];
c++;
}
i++;
}
/**********FOUND**********/
sum\=c;
/**********FOUND**********/
return c;
}
void main()
{
int x[100],i=0;
do
{
cin>>x[i];
}
while(x[i++]!=0);
cout<<fun(x);
}
答案:
=======(答案1)=======double sum=0.0;=========或=========double sum=0;
=======(答案2)=======while(s[i]!=0)=========或=========while(s[i])
=======(答案3)=======sum/=c;=========或=========sum=sum/c;
=======(答案4)=======return sum;=========或=========return (sum);
4:打印扬辉三角形
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
-------------------------------------------------------*/
#include <iostream.h>
void main()
{int a[5][5],i,j;
for(i=0;i<5;i++)
{
/***********FOUND***********/
a[i][1]=1;
a[i][i]=1;
for(j=1;j<=i-1;j++)
/***********FOUND***********/
a[i][j]=a[i-1][j-1]+a[i][j];
}
for(i=0;i<5;i++)
{
/***********FOUND***********/
for(j=0;j<5;j++)
/***********FOUND***********/
cout<<a[j][i]<<" ";
cout<<endl;}
}
答案:
=======(答案1)=======a[i][0]=1;
=======(答案2)=======a[i][j]=a[i-1][j-1]+a[i-1][j];
=======(答案3)=======for(j=0;j<=i;j++)
=======(答案4)=======cout<<a[i][j]<<" ";
5:计算T=1-1/2+2/3-3/4+……-29/30
-------------------------------------------------------*/
#include <iostream.h>
void main()
/***********FOUND***********/
{ int t1,f,k; float t=1;
/***********FOUND***********/
f=1;
/***********FOUND***********/
for(k=1;k<=30;k++)
{
/***********FOUND***********/
t1=(k-1)/k;
t+=t1*f;
f=-f;
}
cout<<t;
}
答案:
=======(答案1)=======int f , k ; float t1 , t=1 ;
=======(答案2)=======f=-1;
=======(答案3)=======for(k=2;k<=30;k++)
=======(答案4)=======t1=(float)(k-1)/k;=========或=====t1=(k-1)/(float)k;
=========或=========t1=1.0*(k-1)/k;
6:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。---------------------------------------------------------------------------------*/
#include<iostream.h>
void main()
{
const int N=11;
int i,number,a[N]={1,2,4,6,8,9,12,15,149,156};
cout<<" 请输入要插入的数" ;
/**********FOUND**********/
cin>>number>>endl;
cout<<" 原数组为:\n" ;
for(i=0;i<N-1;i++)
cout<<a[i]<<" " ;
cout<<" \n" ;
/**********FOUND**********/
for(i=N-1;i>=0;i--)
if(number<=a[i])
/**********FOUND**********/
a[i]=a[i-1];
else
{
a[i+1]=number;
/**********FOUND**********/
continue;
}
if(number<a[0])
a[0]=number;
cout<<" 结果数组为:\n" ;
for(i=0;i<N;i++)
cout<<a[i]<<" " ;
}
答案:
=======(答案1)=======cin>>number;
=======(答案2)=======for(i=N-2;i>=0;i--)
=======(答案3)=======a[i+1]=a[i];
=======(答案4)=======break;
7:下面函数chnum将一个整数字符串转换为一个整数。
------------------------------------------------------*/
#include<string.h>
#include<iostream.h>
int chnum (char *str)
{
int i,j,k,h,len,L,num=0;
/***********FOUND***********/
int L=n=strlen(str);
/***********FOUND***********/
for(i=0;i<L;i+) ;
{
k=1;
j=len=len-1;
cout<<len<<endl;
while (j>0)
{
k=k*10;
/***********FOUND***********/
j++;
}
/***********FOUND***********/
h=*(str+4-len)-'0';
num=num+h*k;
}
return num;
}
void main()
{int t;char *a=" 1234" ;
t=chnum(a);
cout<<t<<endl;
}
答案:
=======(答案1)=======L=len=strlen(str);
=======(答案2)=======for(i=0;i<L;i++)
=======(答案3)=======j--;==或===--j;===或======j=j-1;=========或=========j-=1;
=======(答案4)=======h=*(str+i)-'0';
7:在[100,5000]之间打印出各位数字和为5的所有整数的个数.
------------------------------------------------------*/
#include <iostream.h>
void main()
{
int a,b,c,d,k,i;
k=0;
for(i=104;i<=500;i++)
{
/***********FOUND***********/
a=i%100;
b=(i-a*100)/10;
c=i-a*100-b*10;
}
/***********FOUND***********/
if(a+b+c<>5) k++;
for(i=1000;i<=5000;i++)
{a=i/1000;
b=(i-a*1000)/100;
/***********FOUND***********/
c=(i-A*1000-b*100)/100;
d=i-a*1000-b*100-c*10;
/***********FOUND***********/
if(a+b+c==5) k++;
}
cout<<k;
}
答案:
=======(答案1)=======a=i/100;
=======(答案2)=======if( a + b + c ==5) k++;
=======(答案3)=======c=(i-a*1000-b*100)/10;
=======(答案4)=======if( a + b + c + d ==5) k++;
程序填空
注意:若语句结束已有分号处,填空中内容后面就不需要添加分号。
1:函数func的功能是:使一个字符串按逆序存放。
-------------------------------------------------------*/
#include <iostream.h>
#include<string.h>
void func (char str[])
{
/***********SPACE***********/
【?】
int i,j;
/***********SPACE***********/
for(i=0,【?】;i<j;i++,j--)
{
m=str[i];
/***********SPACE***********/
【?】;
str[j]=m;
}
/***********SPACE***********/
cout<<【?】<<endl;
}
void main()
{
char str[]="12345";
func(str);
}
答案:
=======(答案1)=======char m;
=======(答案2)=======j=strlen(str)-1=========或=========j=5
=======(答案3)=======str[i]=str[j]
=======(答案4)=======str
2:用递归算法设计函数fa(int n),函数类型为整型,求1!+2!+3!+...+n!的值。
要求:在主函数中输入n的值,调用该函数并输出和。
------------------------------------------------------------------------------*/
#include <iostream.h>
/***********SPACE***********/
【?】;
void main()
{
int n,sum=0;
cout<<"请输入n"<<endl;
cin>>n;
/***********SPACE***********/
for(int i=1;i<=n;i++)
【?】;
cout<<sum<<endl;
}
int fa(int n)
{
int f;
if(n==0||n==1) f=1;
/***********SPACE***********/
else【?】;
/***********SPACE***********/
【?】;
}
答案:
=======(答案1)=======int fa(int n)或int fa(int)
=======(答案2)=======sum+=fa(i)或sum=sum+fa(i)
=======(答案3)=======f=fa(n-1)*n或 f=n*fa(n-1)
=======(答案4)=======return f
3:在一维数组中统计正数和负数的个数,正数的个数存入变量C1中,负数的个数存入变量C2中。
---------------------------------------------------------------------------------------*/
#include <iostream.h>
void main()
{
int a[10]={1,-2,3,4,-5,6,7,8,-9,10};
/***********SPACE***********/
【?】
/***********SPACE***********/
for (int i=0;【?】;i++)
/***********SPACE***********/
if(【?】>0)
c1++;
else
/***********SPACE***********/
【?】;
cout<<c1<<" " <<c2;
}
答案:
=======(答案1)=======int c1=0 , c2=0 ;
=======(答案2)=======i<10=========或=========i<=9
=======(答案3)=======a[i]
=======(答案4)=======c2++=========或=========c2=c2+1=========或=========++c2
=========或=========c2+=1
4:设计一个求和函数sum(int n),函数类型为整型,求1+2+3+...+a的值。
要求:在主函数中输入a的值,调用该函数并输出和。
------------------------------------------------------------------------------------------*/
#include <iostream.h>
/***********SPACE***********/
【?】;
void main()
{
int a,b=0;
cout<<"请输入a:"<<endl;
cin>>a;
/***********SPACE***********/
【?】;
cout<<b<<endl;
}
int sum(int n)
{
int i,k=0;
for(i=1; i<=n;i++)
/***********SPACE***********/
【?】;
/***********SPACE***********/
【?】;
}
答案:
=======(答案1)=======int sum(int n)或int sum(int)
=======(答案2)=======b=sum(a)
=======(答案3)=======k+=i 或k=k+i
=======(答案4)=======return k
5:以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。例如:输入的两个字符串分别为abcdef和abceef,则输出为-1,请填空。
------------------------------------------------------------------------------------------*/
#include<iostream.h>
#include<string.h>
void main()
{
char str1[50],str2[50];
int i,s;
cout<<" \n input string 1:\n" ;
/***********SPACE***********/
【?】
cout<<" \n input string 2:\n" ;
cin.getline(str2,50);
i=0;
/***********SPACE***********/
while((【?】)&&(str1[i]!='\0'))
/***********SPACE***********/
【?】;
/***********SPACE***********/
【?】;
cout<<s<<endl;
}
答案:
=======(答案1)=======cin.getline(str1,50);== =或===cin>>str1;
=======(答案2)=======str1[i]==str2[i]==== =或===str2[i]==str1[i]
=======(答案3)=======i++====或====i=i+1===或====i+=1=====或====++i
=======(答案4)=======s=str1[i]-str2[i]
6:功能:输出100以内能被3整除的且个位是6的所有整数之和。
-------------------------------------------------------*/
#include <iostream.h>
void main()
/***********SPACE***********/
{
int sum,【?】
sum=0;
/***********SPACE***********/
for(i=1;i<=100;【?】)
/***********SPACE***********/
if(【?】)
sum+=i;
/***********SPACE***********/
cout<<【?】;
}
答案:
=======(答案1)=======i;
=======(答案2)=======i++=========或=========i=i+1=====或===i+=1
=======(答案3)=======i%10==6&&i%3==0=========或======i%10==6 && i%3==0
=======(答案4)=======sum
7:功能:将一维数组大于等于平均值的元素存入另一个数组,小于平均值的元素仍存在原数组,并打印这两个数组。
-----------------------------------------------------------------------------------------*/
#include <iostream.h>
void main()
{
int i,la,lb,n;
float a[100],b[100],sum,av;
/***********SPACE***********/
【?】;
for(i=0;i<n;i++)
cin>>a[i];
/***********SPACE***********/
【?】;
for(i=0;i<n;i++)
sum+=a[i];
/***********SPACE***********/
【?】;
la=lb=0;
for(i=0;i<n;i++)
if(a[i]>=av)
b[lb++]=a[i];
else
/***********SPACE***********/
{【?】;
}
for(i=0;i<la;i++)
cout<<a[i]<<" ";
cout<<'\n';
for(i=0;i<lb;i++)
cout<<b[i]<<" ";
}
答案:
=======(答案1)=======cin>>n
=======(答案2)=======sum=0
=======(答案3)=======av=sum/n
=======(答案4)=======a[la++]=a[i]
8:判断一个字符串是否是回文,是输出“yes”, 否则输出“no”.(回文是字符串正读反读一样,如level)
---------------------------------------------------------------------------------------*/
#include <iostream.h>
int lenth(char a[])
{
int i;
/***********SPACE***********/
for(i=0; 【?】;i++);
return i;
}
void main()
{
int i,j,l;
char a[50];
cin.getline(a,50);
/***********SPACE***********/
l=【?】;
/***********SPACE***********/
for(i=0,j=l-1;i<j;i++,【?】)
if(a[i]!=a[j])
break;
/***********SPACE***********/
if(【?】)
cout<<" yes" ;
else
cout<<" no" ;
}
答案:
=======(答案1)=======a[i]!='\0'
=========或========a[i]!=0=========或=========a[i]
=======(答案2)=======lenth(a)
=======(答案3)=======j--===或=======--j======或===j=j-1=========或=========j-=1
=======(答案4)=======i>=j=========或=========j<=i
9:FIBONACCI数列的前N项
-------------------------------------------------------*/
#include <iostream.h>
void main()
{
int n,l1,l2,l3,i;
cin>>n;
/***********SPACE***********/
l1=【?】;l2=1;
cout<<l1<<endl<<l2<<endl;
/***********SPACE***********/
for(i=3;【?】)
/***********SPACE***********/
{l3=【?】;
cout<<l3<<endl;
l1=l2;
/***********SPACE***********/
【?】;
}
}
答案:
=======(答案1)=======0
=======(答案2)=======i<=n;i++=========或=========i<n+1;i++
=======(答案3)=======l1+l2=========或=========l2+l1
=======(答案4)=======l2=l3
10:输出4行4列矩阵的转置矩阵。
-------------------------------------------------------*/
#include <iostream.h>
void zz(int a[4][4])
{ int b,i,j;
for(i=0;i<4;i++)
/***********SPACE***********/
for(j=0;j<【?】;j++)
{b=a[i][j];
a[i][j]=a[j][i];
/***********SPACE***********/
【?】;}
}
void main()
{
/***********SPACE***********/
int【?】,i,j;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
cin>>a[i][j];
/***********SPACE***********/
【?】;
for(i=0;i<4;i++)
{for(j=0;j<4;j++)
cout<<a[i][j];
cout<<endl;
}
}
答案:
=======(答案1)=======i=========或=========i+1
=======(答案2)=======a[j][i]=b
=======(答案3)=======a[4][4]
=======(答案4)=======zz(a)
11:下列程序是求100之内的能被7整除的自然数之和。
-------------------------------------------------------*/
#include <iostream.h>
void main( )
{
int sum;
/***********SPACE***********/
【?】;
/***********SPACE***********/
for(int i(1);【?】;i++)
/***********SPACE***********/
if(【?】)
sum+=i;
cout<<sum<<endl;
}
答案:
=======(答案1)=======sum=0
=======(答案2)=======i<=100=========或=========i<100=========或======i<=99
=======(答案3)=======i%7==0
12:编写程序求1!+2!+3!+4!+5!和。
(其中求阶乘是用函数来实现的)。
----------------------------------------------------------------------------------*/
#include<iostream.h>
/***********SPACE***********/
【?】;
void main( )
{ long s=0;
for(int i=1;i<=5;i++)
/***********SPACE***********/
【?】;
cout<<" 1!+2!+3!+4!+5!= " <<s<<endl;
}
long int fac(int x)
{ static int b=1;
b*=x;
/***********SPACE***********/
【?】;
}
答案:
=======(答案1)=======long int fac(int x)=========或====long int fac(int)
=======(答案2)=======s+=fac(i)=========或=========s=s+fac(i)
=======(答案3)=======return b
13:从键盘输入两个正整数求最大公约数。
-------------------------------------------------------*/
#include <iostream.h>
void main()
{ int m,n,k;
cin>>m>>n;
/***********SPACE***********/
k=【?】;
/***********SPACE***********/
while(【?】)
{m=n;
/***********SPACE***********/
【?】;
/***********SPACE***********/
k=【?】;
}
cout<<n;
}
答案:
=======(答案1)=======m%n;
=======(答案2)=======k!=0
=======(答案3)=======n=k
=======(答案4)=======m%n;
14:编写程序是用递归算法求n!。
-------------------------------------------------------*/
#include<iostream.h>
int f1(int a);
void main()
{
int a=6;
/***********SPACE***********/
cout<<【?】<<endl;
}
int f1(int a)
{
/***********SPACE***********/
return(a==0)?1:【?】;
}
答案:
=======(答案1)=======f1(6)=========或=========f1(a)
=======(答案2)=======a*f1(a-1)=========或=========f1(a-1)*a
15:输入若干学生成绩,以负数或者大于100作为输入结束。统计100,90-99,80-89,70-79,60-69,0-60各段的人数。
-------------------------------------------------------*/
#include <iostream.h>
void main()
{
int s,n[6],i,m;
for(i=0;i<6;i++)
/***********SPACE***********/
【?】;
cin>>s;
while(s>=0 && s<=100)
/***********SPACE***********/
{m=【?】;
if(m<1)
m=0;
/***********SPACE***********/
【?】;
/***********SPACE***********/
【?】;
}
cout<<" 0-59" <<" " <<n[0]<<endl;
for(i=1;i<5;i++)
cout<<(i+5)*10<<" -" <<(i+5)*10+9<<" " <<n[i]<<endl;
cout<<" 100 " <<n[5]<<endl;
}
答案:
=======(答案1)======= n[i]=0
=======(答案2)=======s/10-5
=======(答案3)=======n[m]=n[m]+1====或====n[m]++=========或=========n[m]+=1
=======(答案4)=======cin>>s
16:下面程序运行后输出的结果为:
* *
* * * *
* * * * * *
-------------------------------------------------------*/
#include <iostream.h>
#include<iomanip.h>
void main()
{
int i,j,k ;
for(i=1 ;i<=4 ;i++)
{
/***********SPACE***********/
for(j=1;j<20-3*i;【?】)
cout<<" " ;
/***********SPACE***********/
for(k=1;【?】; k++)
cout<<setw(3)<<" *" ;
/***********SPACE***********/
【?】; //换行
}
}
答案:
=======(答案1)=======j++=========或=========j=j+1
=======(答案2)=======k<2*i-1=========或=========k<=2*i-2
=======(答案3)=======cout<<endl
17:功能:打印图形
*****
****
***
**
*
-------------------------------------------------------*/
#include <iostream.h>
void main()
{
char c[6];int i,j;
for(i=0;i<5;i++)
{
/***********SPACE***********/
【?】;
/***********SPACE***********/
for(【?】)
/***********SPACE***********/
c【?】='*';
/***********SPACE***********/
cout<<【?】;
}
}
答案:
=======(答案1)=======c[5-i]='\0'=========或=========c[5-i]=0
=======(答案2)=======j=0;j<5-i;j++
=======(答案3)=======[j]
=======(答案4)=======c<<'\n'=========或=========c<<endl
18:求FIBONACCI数列的前N项.
提示:0,1,1,2,3,5,8,13......
-------------------------------------------------------*/
#include <iostream.h>
void main()
{
int n,l1,l2,l3,i;
cin>>n;
/***********SPACE***********/
l1=【?】;l2=1;
cout<<l1<<endl<<l2<<endl;
/***********SPACE***********/
for(i=3;i<=n;【?】)
/***********SPACE***********/
{l3=【?】;
cout<<l3<<endl;
/***********SPACE***********/
【?】; //更新l1变量
/***********SPACE***********/
【?】; //更新l2变量
}
}
答案:
=======(答案1)=======0
=======(答案2)=======i++=========或=========++i
=========或=========i+=1=========或=========i=i+1=========或=========i=1+i
=======(答案3)=======l1+l2=========或=========l2+l1
=======(答案4)=======l1=l2
=======(答案5)=======l2=l3
1 0
- C++(基础班)上机复习
- c++(复习)上机实验报告
- c++(复习)上机实验报告2
- C基础的复习
- C语言基础复习
- C指针基础复习
- C语言基础复习
- 第一章 SQL Server 数据库基础复习内容(上机)
- 复习潭浩强的c基础
- 前几天复习的c基础
- c语言基础复习一
- C++Primer Plus 基础复习
- c语言的基础复习
- iOS基础班之c语言学习复习查漏
- 复习 C 指针的基础概念
- C语言基础复习之指针
- c\c++ 复习基础要点06---联合体
- 【C语言复习(四)】指针基础
- 在线程中使用HttpClicent获取网络数据(get和post两种方式)
- Android乐学成语之界面实现
- Fragment生命周期
- 16周阅读程序(3)
- 将SVN仓库里面的一个文件夹的所有内容复制到另一个文件夹下
- C++(基础班)上机复习
- Activity的生命周期
- 项目45-洗牌
- 第15周 程序阅读二
- 第十 十一周项目4-教师兼干部类
- 求最大公约数
- Android初级教程实现电话录音
- 洗牌
- 第15周项目 1—程序填空