《C++语言程序设计》自检自测题(三)及答案
一、给出下列程序运行后的输出结果
1.
#include<iostream.h>
void main(){
    int s1=0,s2=0;
    for(int i=0;i<10;i++)
        if(i%2)s1+=i;
        else s2+=i;
    cout<<s1<<’’<<s2<<endl;
}
2.
#include<iostream.h>
void main(){
    int a[8]={8,19,26,15,6,24,27,18};
    int i2=0,i3=0;
    for(int i=0;i<8;i++)
        if(a[i]%2==0)i2++;
        else if(a[i]%3==0)i3++;
    cout<<i2<<’’<<i3<<endl;
}
3.
#include<iostream.h>
void main(){
    int a[3][4]={{1,2,7,8},{5,6,11,12},{9,20,3,4}};
    int m=a[0][0];
int ii=0,jj=0;
for(int i=0;i<3;i++)
    for(int j=0;j<4;j++)
      if(a[i][j]>m){m=a[i][j];ii=i;jj=j;}
cout<<ii<<’’<<jj<<’’<<a[ii][jj]<<endl;
}
4.
#include<iostream.h>
void main(){
    int a=10,b=15;
    cout<<a<<’’<<b<<endl;
    {a*=3;
    int b=a+20;
    cout<<a<<’’<<b<<endl;
    }
    cout<<a<<’’<<b<<endl;
}
5.
#include<iomanip.h>
void main(){
    int x=20,y=40,*p;
    p=&x;
cout<<*p<<’’;
*p=x+10;
p=&y;
cout<<*p<<endl;
*p=y+20;
cout<<x<<’’<<y<<endl;
}
6.
#include<iostream.h>
void SB(char ch){
    switch(ch){
        caseA’:case a:
            cout<<well!;break;
        caseB’:case b:
            cout<<good!;break;
        caseC’:case c:
            cout<<pass!;break;
        default:
            cout<<bad!;break;
    }
    cout<<endl;
}
void main(){
    char a[6]=Abcaf;
    for(int i=0;a[i];i++)SB(a[i]);
}
7.
#include<iostream.h>
void main(){
    int a[8]={36,25,48,14,55,40,72,40};
    int b1,b2;
    b1=b2=a[0];
    for(int i=1;i<8;i++)
        if(a[i]>b1){
            if(b1>b2)b2=b1;
            b1=a[i];
        }
    cout<<b1<<’’<<b2<<endl;
}
8.
#include<iomanip.h>
void main(){
    int a[8]={3,5,7,9,11,13,15,17};
    int *p=1;
for(int i=0;i<8;i++){
    cout<<setw(5)<<*p++;
    if((i+1)%3==0)cout<<endl;
}
}
9.
#include<iomanip.h>
void LG(int* & a,int& m){
    a=new int [m];
    int *p=a;
    for(int i=0;i<m;i++)
        *p++=i*i;
}
void main(){
    int *b,n=5;
    LG(b,n);
    for(int i=0;i<n;i++)
        cout<<b[n-i-1]<<’’;
    cout<<endl;
    delete[]b;
}
10.
#include<iostream.h>
#include<string.h>
struct Worker{
    char name[5];//姓名
    int age;    //年龄
    float pay;  //工资
};
void main(){
    Worker x;
    char *t=WeiRong;
    int d=45;float f=1235;
    strcpy(x.name,t);
    x.age=d;x.pay=f;
    cout<<x.name<<’’<<x.age<<’’<<x.pay<<endl;
}
11.
#include<iostream.h>
void main(){
    int s=0;
    for(int i=1;i<=5;i++)
        s+=i*i;
    cout<<s=<<s<<endl;
}
12.
#include<iostream.h>
void main(){
    int s=0;
    for(int i=1;;i++){
        if(s>50)break;
        if(i%2==0)s+=i;
}
cout<<i,s=<<i<<,<<s<<endl;
}
13.
#include<iomanip.h>
int LB(int *a,int n){
    int s=1;
    for(int i=0;i<n;i++)
        s*=*a++;
    return s;
}
void main(){
    int a[]={1,2,3,4,5,6,7,8};
    cout<<LB(a,5)<< <<LB(&a[3],3)<< ;
    cout<<LB(a+2,4)<<endl;
}
14.
#include<iostream.h>
struct Worker{
    char name[15];//姓名
    int age;    //年龄
    float pay;  //工资
};
void main(){
编程递归函数    Worker x{wangfong,43,640};
    Worker y,*p;
    y=x;p=&x;
    cout<<y.name<<’’<<y.age<<’’<<y.pay<<endl;
    cout<<p->name<<’’<<p->age*2<<’’<<p->pay+100<<endl;
}
二、写出下列每个函数的功能
1.
#include<iostream.h>
int S(int a,int b){
    if(a>b)return 1;
    else if(a==b)return 0;
        else return -1;
}
2.
#include<math.h>
bool SG(int x){        //x为大于等于2的整数
    int a=int(sqrt(x));//取x的平方根
    int i=2;
    while(i<=a){
        if(x%i==0)break;
        i++;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。