c++中静态成员变量 静态成员函数 全局变量与静态函数的关系 字符串中括号的匹配编程 (笔试经历)

笔试经历

1 类中的静态变量不能通过构造函数参数列表来初始化,因为静态变量不属于哪个对象。同时静态变量在不初始化的情况下系统会自动为变量赋值,数值型赋值为零,字符型赋值为空。

非静态变量只有在定义时才会被分配内存,因此使用未声明的或者声明了未定义的变量程序都会运行失败。未声明时编译时失败,未定义是运行时失败。

2 静态成员数中的普通变量无论c还是java都是普通变量,需要定义后使用。

在c++中静态成员函数的访问方式为:

类名::函数名();

java中静态成员函数的访问方式:
类名.函数名();

3 定义为全局的变量实际就是一个全局化的静态变量;定义在局部的静态变量是局部的变量,不会因为是静态的就被当做全局变量。

4  输入一个字符串看括号是否匹配

#include <iostream>
#include <string>
#include <stack>

using namespace std;

int main()
{
    string str="a{{bc(d)}sdd";
    stack<char> st;
    int i;
    char ch,sh;
    bool flag=true;
    for(i=0;i<str.size();i++)
    {
        ch=str[i];
        if(ch=='('||ch=='{')
            st.push(ch);
    }
    for(i=0;i<str.size();i++)
    {
        ch=str[i];
        if(ch==')'||ch=='}')
        {
            if(st.size()!=0)
            {
                sh=st.top();
                switch(sh)
                {
                case '(': sh=')';break;
                case '{': sh='}';break;
                default:cout<<"error"<<endl;
                }
                if(ch!=sh){flag=false;break;}
                else st.pop();
            }else  if(st.size()==0){ flag=false;break;}

        }
    }
    if(st.size()!=0) flag=false;
    if(flag==true)cout<<"匹配成功"<<endl;
    else cout<<"匹配失败"<<endl;
    return 0;
}

 

posted @ 2016-03-09 16:48  小德cyj  阅读(1355)  评论(0编辑  收藏  举报