zoukankan      html  css  js  c++  java
  • 2016年C,C++笔试题总结

    题1:下列代码输出什么?考的是char型的变量越界问题。当i=127,a=127;当i=128时,a=-128;当a=129时,a=-127;c=1结束for循环

        char a;
        int i;
        int c;
        for(i=0,a=0;i<129;a++,i++)
        {
            if(a<128)
            {
                c=1;
            }
            else
            {
                c=2;
                break;
            }
        }
        printf("%d,%d",a,c);//输出-127,1

    题2.主要考察unsigned int 和int的大小;和define  当执行完第一个printa=2, b=-1;打印较大的数-1;此处还有一道题在C语言中,最小的整型数是0;

    第二个print后把unsigned int 转化成int a=2,b=-1;打印2.

    1)若是把b=-1改为b=1,则打印3 3

    2)若是把b=-1改为b=1, MAC_FUN(++a,b)则打印3  4

    3)若是把b=-1改为b=1, MAC_FUN(a++,b)则打印3  3

    在此体会define的用法特点。

    #include<iostream>
    using namespace std;
    #define MAX_MA(a,b) ((a)>(b)?(a):(b))
    int MAC_FUN(int a, int b)
    {
        return ((a)>(b)?(a):(b));
    }
    int main(void)
    {
        unsigned int a=1;
        int b=-1;
        printf("%d
    ",MAX_MA(++a,b));
        printf("%d
    ",MAC_FUN(a,b));
         system("pause");
        return 0;
    }

    题3.全局变量和静态变量都存储在静态存储区,为什么不冲突。有的解释说static起到隐藏的作用。

    #include<stdio.h>
    #include<stdlib.h>
    
    int fun(void){
        static int count = 10;    
        return count--;
    }
    
    int count = 1;
    
    int main(void)
    {    
        printf("global		local static
    ");
        for(; count <= 10; ++count)
            printf("%d		%d
    ", count, fun());    
        system("pause");
        return 0;
    }

    题4.while的循环次数。循环无数次,打印从0到n每次执行完i++后i一直加1,但判断时i=0;

    int main(void)
    {  
         int i=0;
    
         do
    
         {
    
             static int i=0;
    
             i++;
    
             printf("%d
    ",i);
    
         }while(i<5);
    	     system("pause");
        return 0;
    }
    

      

    题5.考察格式化输出输入 int x;  float y;  scanf("%3d%f",&x,&y);输入12345 678则x的值 为123  y的值为45.0000

    题6.printf("%s,%5.3s","compeuter","compeuter");输出computer,  com  后面的意思是输出5个格,左起空两格,输出3个字母

         变量int i =123 printf("%5d",i)输出两个空格后输出123, printf("%-5d",i)输出123后空两格

    题7.下列代码的输出是2 1   2 5

    int a[5]={1,2,3,4,5};
    	int *ptr=(int*)(a+1);
    	printf("%d %d
    ",*(a+1),*(ptr-1));
    	int *ptr1=(int*)(&a+1);
    	printf("%d %d
    ",*(a+1),*(ptr1-1));
    

    题8.下列程序的输出是1 8

    	double dArrary[2] = {4, 8}, *p, *q;  
    	p = &dArrary[0];
    	q = p+1;
    	cout<<q-p<<endl;
        cout<<(int)q-(int)p<<endl; 
    

      

     题9.union的大小是 12  里面struct prefix大小是8

    union us
    {
    	char prefix;
    	struct
    	{
    		int s_addr;
    		int mask;
    	}lp;
    	char val[8];
    };
    struct prefix
    {
    	char family;
    	char prefixlen;
    		char val[8];
    };
    	printf("%d  %d",sizeof(us),sizeof(prefix));
    

     题10.long输出的是十进制 

    int a,*p=&a;
    	cout<<long(p)<<endl;
    	cout<<long(&p)<<endl;
    	cout<<&p<<endl;
    

      

    但愿人长久 千里共婵娟
  • 相关阅读:
    iframe标签用法详解
    Redis 数据备份与恢复,安全,性能测试,客户端连接,管道技术,分区(四)
    Redis 有序集合(sorted set),发布订阅,事务,脚本,连接,服务器(三)
    Redis 命令,键(key),字符串(String),哈希(Hash),列表(List),集合(Set)(二)
    Redis 安装,配置,简介,数据类型(一)
    Python2.x与3​​.x版本区别
    Python主流框架
    python面向对象( item系列,__enter__ 和__exit__,__call__方法,元类)
    Json对象与Json字符串互转(4种转换方式)
    JSON.parse和eval的区别
  • 原文地址:https://www.cnblogs.com/hellcats/p/4951453.html
Copyright © 2011-2022 走看看