c/c++练习–04

来源:互联网 发布:java高级教程pdf 编辑:程序博客网 时间:2024/05/22 08:26

c/c++练习–04


  • 习题来源:C语言经典编程282例

31. 字符型变量的使用

要求定义4个字符变量,并给这4个字符变量赋值,然后利用输出语句将其输出。

#include <iostream>#include <iomanip>using namespace std;    int main(void){    char        a='a';    char        b='b';    char        c='c';    char        d='d';    cout<<a<<b<<c<<d<<endl;    return(0);}

32. 求100~200之间的素数

#include <iostream>#include <cmath>using namespace std;    bool    PrimeNum(int num){    for (int i=2;i*i<num;i++)        if(num%i==0)            return(false);    return(true);}int main(void){    for(int i=100;i<200;i++)          if(PrimeNum(i))              cout<<i<<'\t';    cout<<endl;    return(0);}

33. 利用*输出三角形

#include <iostream>using namespace std;int main(void){    cout<<"   *"<<endl;    cout<<" *   *"<<endl;    cout<<"*******"<<endl;    return(0);}   

34. 十进制转为二进制

#include <iostream>using namespace std;    int main(void){    int num;    int a[100];    int i=0;    cout<<"请输出一个十进制整数:"<<endl;    cin>>num;    while(num>0){           if(num%2)     a[i]=1;           else  a[i]=0;           num >>=1;           i++;    }    for(int j=i-1;j>=0;j--)        cout<<a[j];    cout<<endl;    return(0);}

35. n进制转换为十进制

#include<iostream>#include <string>using   namespace std;int hex2dec(char ch){    int id;    switch(ch){        case '1':        case '2':        case '3':        case '4':        case '5':        case '6':        case '7':        case '8':        case '9':        case '0':  id = ch -'0';break;        case 'a':        case 'A':id=10;break;        case 'b':        case 'B': id=11;break;        case 'c':        case 'C':id=12;break;        case 'd':        case 'D':id=13;break;        case 'e':        case 'E':id=14;break;        case 'f':        case 'F':id=15;break;        default:break;    }    return(id);}int Transform(string& s,int bas){    int sum=0;    int lengt = s.length();    int base=1;    int ge;    for( int i=0;i<lengt;i++){        ge = hex2dec( s[i] );        sum += ge*base;        base *= bas;    }    return(sum);}int main(void){    int bas=10;    string  s;    cout<<"请输入基准: ";    cin>>bas;    cout<<"\n请输入一个整数:";    cin >>s;    cout<<Transform(s,bas)<<endl;    return(0);}

36. 小球下落

一球从100米高度自由落下,每次落地后反跳回原来高度的一半,再落下。求它在第十次落地时,共经过多少米?第十次反弹多高?

#include<iostream>#include <string>using   namespace std;int main(void){    float   num(100);    float   sum_n(100);    int i=0;    while(num>0 && i<10){        num /=2;        sum_n += num*2;        i++;    }    cout<<i<<'\t'<<sum_n<<endl;    return(0);}

37. 巧分苹果

一家农户以果园为生,一天,父亲推出一车苹果,共计2520个,准备分给他的儿子。父亲事先写在一张纸上的数字把这堆苹果分完,每个人拿到的苹果数都不相同,他说,老大,把你的分到的苹果的1/8给老二,老二拿到后,连同原来的苹果的1/7给老三,老三拿到后,连同原来的苹果的1/6给老四,依此类推,最后,老六拿到后,连同原来的苹果分1/3给老大,这样你们每个人的苹果就一样多了,求6人原先分到多少个苹果。

#include <iostream>using namespace std;    int main(void){    int x[7],y[7],s;    s=2520/6;    for(int i=2;i<=6;i++)        y[i] = s*(9-i)/(8-i);    x[1]=y[1]=(s-y[6]/3)*8/7;       for(int i=2;i<=6;i++)        x[i] = y[i] -y[i-1] /(10-i);    for(int i=1;i<=6;i++)        cout<<x[i]<<endl;       return(0);}

38. 老师分糖

幼儿园老师将糖果分成若干等份,让学生按任意次序领取,第1个领取的,得到1份加上剩下糖果的1/10,第二个领取的得到两份加上剩余糖果的1/10,第三个领取的得到3份加上剩余糖果的1/10…依此类推,问共有多上学生?老师共将糖果分成了多少份?

#include<iostream>#include <string>using namespace std;int     main(void){    float   n1,n2;    int n;    for(n=11;;n++){        n1 = (n+9)/10.0;        n2 = (9*n+171)/100.0;        if(n1 !=(int)n1) continue;        if(n2!=(int)n2)continue;        if(n1==n2) break;    }    cout<<n/n1<<'\t'<<n<<endl;    return(0);}

39. IP地址形式输出

任意输入32位二进制数据,实现将二进制转换成IP地址形式。

#include<iostream>#include <string>using namespace std;void    TransIP(string& s, int ip[]){    int length=s.length();    int base = 1;    for(int i=0;i<length;i++){              if(s[i] == '1') *(ip+i/8) += base;         base *=2;        if(i%8 == 7) base=1;    }}int     main(void){    string  s1;    int     ip[4]={0};    cout<< "please input binary IP:";    cin >> s1;    cout<<endl;    TransIP(s1,ip);    for(int i=0;i<4;i++)        cout<<ip[i]<<'.';    return(0);}

40. 完全平方数

在3位整数中查找符合如下条件的整数并在屏幕上输出:这个数既是完全平方数,又有两位数字相同,如121=11*11 。

#include<iostream>#include <string>using namespace std;int     main(void){    int num;        int ge,shi,bai;    for(int i=10;i<32;i++){        num = i*i;        ge = num%10;        shi = num/10%10;        bai = num/100;        if(ge == shi || ge==bai || bai==shi)            cout<<i<<'*'<<i<<'='<<num<<"是平方数"<<endl;    }    return(0);}
0 0