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;
    

      

    但愿人长久 千里共婵娟
  • 相关阅读:
    Enterprise Library Step By Step系列(一):配置应用程序块——入门篇
    Enterprise Library Step By Step系列(八):日志和监测应用程序块——进阶篇
    在ASP.NET页面中冻结DataGrid的列或头部
    数据库设计技巧系列(五)——各种小技巧
    用任务计划实现数据库的异地备份
    如何更好的与人沟通?[图]
    在Asp.net中如何用SQLDMO来获取SQL Server中的对象信息
    SQL Server 2012 Express LocalDB
    Clay: 创建和使用深层次对象图
    VS 2012 的 单元测试 和 测试资源管理器
  • 原文地址:https://www.cnblogs.com/hellcats/p/4951453.html
Copyright © 2011-2022 走看看