金山试题

简介: 来源:http://blog.pfan.cn/jixian/27083.html   1.      结构POINT定义如下: typedef struct tagPOINT {          int x;         int y;     } POINT 用变量var给出下面的定义 例:一个POINT 变量 答案:POINT var; a.

来源:http://blog.pfan.cn/jixian/27083.html

 

  1. 1.      结构POINT定义如下:

typedef struct tagPOINT { 

        int x;

        int y;

    } POINT

用变量var给出下面的定义

例:一个POINT 变量

答案:POINT var;

  1. a.      一个指向POINT的指针;
  2. b.      一个指向指针的指针,它指向的指针是指向一个POINT
  3. c.      一个有16个POINT的数组;
  4. d.      一个有16个指针的数组,每个指针指向一个POINT
  5. e.      一个指向数组的指针,该数组有16个POINT
  6. 2.      实现函数IsEven,用于判断一个给定的整数是否为偶数
  7. 3.      写一个函数,实现对给定的字符串(字符串里面包括:英文字母,数字,符号)的处理。经过处理后的字符串其内容按字母,数字,符号的顺序存放。函数声明如下:
    void ParseString(char* pstr);

要求:

  1. a.      不能改函数声明;
  2. b.      不改变字母数字等在字符串中原有的出现顺序;
  3. c.      直接使用pstr所值指缓冲区,不允许另开缓冲区。

例如:给定的字符串为:A,2.d?3!e4r87we79...

输出结果为:Aderwe2348779,.?!...

  1. 4.      写一个函数,对给定整数的二进制表示进行描述
    如:给定整数131,其二进制表示为10000011,要求函数输出以下结果:

1: 2

0: 5

1: 1

表示从最低位开始,包含2个1,5个0,1个1。

参考上一题,确定本函数的名字,入口出口及返回值,并实现本函数

  1. 5.      定义一个student类,成员变量包含学生姓名、出生年月日。要求重载“>”运算符,实现以出生年月日为依据比较两个学生年龄大小的功能。
  2. 6.      有如下3个API:

HANDLE FindFirst(char* lpFileName);//用于查找给定目录下是否有指定文件。若无则返回0,若有则返回一个句柄。例如:FindFirst("D:\\data\\*.txt")

BOOL FindNext(HANDLE hFindFile); //继续查找该目录下是否有其他匹配文件。

BOOL FindClose(HANDLE hFindFile);//用于结束查找。

利用上述API实现函数NumOfPicFiles,找出给定目录下有多少个JPG及BMP文件(不考虑子目录)。

int NumOfPicFiles(char*lpszfolder);

Lpszfolder表示指定目录。

返回值表示找到的文件个数。

 

//此试题是金山在我学校招实习学生出的。

个人做的

2.vc6.0做的

#include<iostream>
using namespace std;

bool IsEven(int i);
int main()
{
 int n;
 cout<<"偶数返回1,其他返回0"<<endl;
 cout<<"input a int number:";
 cin>>n;
 cout<<IsEven(n)<<endl;
 
}

bool IsEven(int i)
{
 if(i>0)
 {
  if(i%2==0)
   return true;
  else
   return false;
 }
 else
 {
  cout<<"你输入的为负数"<<endl;
  return false;
 }
}

3.//我用vs2005做的

#include<iostream>
using namespace std;

void ParseString(char* pstr);
bool checkzm(char zm);      //判断是不是字母
bool checksz(char sz);   //判断是否为数字

void out(char* pstr);

int main()
{
 /*char str[]="25abe!E@R6?9";*/
 cout<<"请输入字符串"<<endl;
 char str[50];
 cin>>str;
 
 /*int n=(sizeof(str))/(sizeof(str[0]));*/
 cout<<"排序前"<<endl;
 out(str);
 ParseString(str);
 cout<<"排序后"<<endl;
 out(str);


  /*for(int i=0;i<n;i++)
   cout<<str[i];
   cout<<endl<<"排序后"<<endl;

  ParseString(str);
  for(int i=0;i<n;i++)
   cout<<str[i];
  cout<<endl;*/
}

void ParseString(char* pstr)
{
   int zmnum=0;     //字母个数,也可以看作是已经排好序的字符个数
   int n=0;         //跟踪扫描的字符个数
   char*pstr1=pstr;
   for(;*pstr1;pstr1++) //扫描字符串,第一个for循环完成字母靠前
   {
    n++;
    if(checkzm(*pstr1))
    {
     zmnum++;
     char current=*pstr1; //获取当前的字母
     for(int i=n-2;i>=zmnum-1;i--)       //找到一个字母,就把它移动到前面去
     {
      *(pstr+i+1)=*(pstr+i);           //向后移动其他字符
     }
     *(pstr+zmnum-1)=current;
    }  
   }
   pstr1=pstr;
   n=zmnum; //不再从第1个开始扫描了,字母已经放好了,从字母后面的字符开始扫描字符串
 
   for(pstr1=pstr1+zmnum;*pstr1;pstr1++)                          //第二个for循环完成数字在字母后面
   {
    n++;
    if(checksz(*pstr1))
    {   
     zmnum++;     //在这里不在指字母了,指排好序的字符个数
     char current=*pstr1;
     for(int i=n-2;i>=zmnum-1;i--)
     {
       *(pstr+i+1)=*(pstr+i);           //向后移动其他字符
     }
     *(pstr+zmnum-1)=current;
    }
   }


}

bool checkzm(char zm)       //判断是不是字母
{
    if((zm>='A' && zm<='z') || (zm>='a' && zm<='z'))
  return true;
 else
  return false;
}

bool checksz(char sz)   //判断是否为数字
{
 if(sz>='0' && sz<='9')
  return true;
 else
  return false;

}

void out(char* pstr)
{
 while(*pstr !='\0')
 {
  cout<<*pstr;
  pstr++;
 }
 cout<<endl;
}

4.//vs2005做的
#include<iostream>
using namespace std;

void ParseBinary(int);

int main()
{
 int n;
 cout<<"input a int number:";
 cin>>n;
 ParseBinary(n);
}

void ParseBinary(int n)
{
 int num=1;      //计数
 int current; //当前位
 int pre;     //当前的前一位

 for(int i=0;i<=7;i++)
 {
  
  
  if(n & (1 << i))
  {
   if(i==0)
   {
    pre=current=1;
   }
   current=1;
 //  cout<<"1 ";
  }
  else if(!(n & (1<<i)))
  {
   if(i==0)
   { 
    pre=current=0;
   }
   current=0;  
  // cout<<"0 ";
  }


  if(i!=0)
  {
   if(pre==current)
    num++;
   else
   {
    cout<<pre<<" : "<<num<<endl;
    num=1;
    pre=current;
   }

  }

 }
 cout<<pre<<" : "<<num<<endl;
 
}

 

5.

//头文件 stu.h

#ifndef STU_H
#define STU_H
#include<iostream>
#include<string>
using namespace std;

class student
{
private:
 string name;
 int year;
 int month;
 int day;
public:
 student(string name1,int year1,int month1,int day1)
 {
  name=name1;
  year=year1;
  month=month1;
  day=day1;  
 }
 void operator > (const student&student2)
 {
  if(year>=student2.year)   //比较年
  {
   if(year>student2.year)
   {
    cout<<name<<",你年龄小于 "<<student2.name<<endl;
   }
   else //出生年相同
   {
    if(month>=student2.month)       //比较月
    {
     if(month>student2.month)
     {
      cout<<name<<",你年龄小于 "<<student2.name<<endl;
     }
     else    //出生月相同
     {
      if(day>=student2.day)
      {
       if(day>student2.day)
       {
        cout<<name<<",你年龄小于 "<<student2.name<<endl;
       }
       else                   //同一天出生,年龄相等
       {
        cout<<name<<",你年龄等于 "<<student2.name<<endl;
       }
      }

     }
    }
   }
  }
  else
  {
   cout<<name<<",你年龄大于 "<<student2.name<<endl;
  }

 }


};

#endif

//.cpp文件,student.cpp

#include "stu.h"
#include<iostream>
using namespace std;

int main()
{
 student stu1("stu1",1985,6,7);
 student stu2("stu2",1986,6,5);
 stu1>stu2;
 
}

 

 

 

img_e00999465d1c2c1b02df587a3ec9c13d.jpg
微信公众号: 猿人谷
如果您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】
如果您希望与我交流互动,欢迎关注微信公众号
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

目录
相关文章
|
12月前
|
机器学习/深度学习 算法 C++
2019第十届蓝桥杯大赛青少年创意编程省赛C++组试题解析
2019第十届蓝桥杯大赛青少年创意编程省赛C++组试题解析
288 0
|
C++
2019 第十届蓝桥杯大赛软件赛决赛,国赛,C/C++大学B组题解
2019 第十届蓝桥杯大赛软件赛决赛,国赛,C/C++大学B组题解
220 0
|
28天前
|
资源调度 5G 调度
【5G大唐杯】——5G考试等级考考试基础试题(一)
【5G大唐杯】——5G考试等级考考试基础试题(一)
29 1
|
12月前
|
人工智能 测试技术 C++
第十一届蓝桥杯大赛软件类决赛 C++ B组 题解(一)
第十一届蓝桥杯大赛软件类决赛 C++ B组 题解
162 0
|
12月前
|
机器学习/深度学习 人工智能 算法
第十一届蓝桥杯大赛软件类决赛 C++ B组 题解(二)
第十一届蓝桥杯大赛软件类决赛 C++ B组 题解
113 0
|
存储 人工智能 安全
2020 第十一届蓝桥杯大赛软件赛省赛(第一场),C/C++大学B组题解
2020 第十一届蓝桥杯大赛软件赛省赛(第一场),C/C++大学B组题解
151 1
2020 第十一届蓝桥杯大赛软件赛省赛(第一场),C/C++大学B组题解
|
存储 人工智能 C++
2021 第十二届蓝桥杯大赛软件赛省赛,C/C++ 大学B组题解
**比赛时长:** 四个小时 **比赛规则:** 蓝桥杯比赛跟天梯赛、ACM还不太一样,比赛中提交的答案并没有反馈机制,也就是说你提交了答案以后,自己并不知道是对是错,就像考试一样,只有交了卷,成绩下来以后才能知道自己的奖项。 **满分150** T1-T5答案提交共45分,分值分别是5,5,10,10,15 T6-T10为程序提交共105分,分值分别是15,20,20,25,25 **T6-T10开放补题** 提交链接:https://lx.lanqiao.cn/problemset.page 搜索【第十二届】【省赛】【B组】 **一般来说,蓝桥杯=暴力杯** 前六题都做对共60分,后
346 1
|
C++
2020 第十一届蓝桥杯大赛软件赛省赛(第二场),C/C++大学B组题解
2020 第十一届蓝桥杯大赛软件赛省赛(第二场),C/C++大学B组题解
100 0
2020 第十一届蓝桥杯大赛软件赛省赛(第二场),C/C++大学B组题解
|
负载均衡 C++
2021 第十二届蓝桥杯大赛软件赛省赛(第二场),C/C++大学B组题解
2021 第十二届蓝桥杯大赛软件赛省赛(第二场),C/C++大学B组题解
173 0
|
存储 C++
2020 第十一届蓝桥杯大赛软件赛决赛,国赛,C/C++大学B组题解
2020 第十一届蓝桥杯大赛软件赛决赛,国赛,C/C++大学B组题解
105 0

热门文章

最新文章

  • 1
    流量控制系统,用正则表达式提取汉字
    25
  • 2
    Redis09-----List类型,有序,元素可以重复,插入和删除快,查询速度一般,一般保存一些有顺序的数据,如朋友圈点赞列表,评论列表等,LPUSH user 1 2 3可以一个一个推
    26
  • 3
    Redis08命令-Hash类型,也叫散列,其中value是一个无序字典,类似于java的HashMap结构,Hash结构可以将对象中的每个字段独立存储,可以针对每字段做CRUD
    25
  • 4
    Redis07命令-String类型字符串,不管是哪种格式,底层都是字节数组形式存储的,最大空间不超过512m,SET添加,MSET批量添加,INCRBY age 2可以,MSET,INCRSETEX
    27
  • 5
    S外部函数可以访问函数内部的变量的闭包-闭包最简单的用不了,闭包是内层函数+外层函数的变量,简称为函数套函数,外部函数可以访问函数内部的变量,存在函数套函数
    23
  • 6
    Redis06-Redis常用的命令,模糊的搜索查询往往会对服务器产生很大的压力,MSET k1 v1 k2 v2 k3 v3 添加,DEL是删除的意思,EXISTS age 可以用来查询是否有存在1
    30
  • 7
    Redis05数据结构介绍,数据结构介绍,官方网站中看到
    21
  • 8
    JS字符串数据类型转换,字符串如何转成变量,+号只要有一个是字符串,就会把另外一个转成字符串,- * / 都会把数据转成数字类型,数字型控制台是蓝色,字符型控制台是黑色,
    19
  • 9
    JS数组操作---删除,arr.pop()方法从数组中删除最后一个元素,并返回该元素的值,arr.shift() 删除第一个值,arr.splice()方法,删除指定元素,arr.splice,从第一
    19
  • 10
    定义好变量,${age}模版字符串,对象可以放null,检验数据类型console.log(typeof str)
    19