vos2cifabc的简单介绍

发布时间:2022-11-29

本文目录一览:

  1. 新买的Dell 戴尔 VOS 5460 (2626)晚上开机突然发现3个USB接口中的2个没反应了,是怎么回事啊?
  2. 安防监控系统CIF、D1、Qcif、4cif等格式的解释?什么意思?具体是什么?
  3. 眼科检查中VOS:指数/眼前(2尺)什么意思
  4. 求C语言编程题

新买的Dell 戴尔 VOS 5460 (2626)晚上开机突然发现3个USB接口中的2个没反应了,是怎么回事啊?

您好: 以下方法供您参考: 您的USB接口无法使用(大部分为USB3.0接口),这种情况一般是因为有安装了一些优化或者安全软件,禁用USB3.0驱动程序导致。建议您到官网驱动页面下载相应驱动安装即可。 您需要登陆戴尔官网进行驱动下载: ;s=bsdcs=cnbsd1l=zh

安防监控系统CIF、D1、Qcif、4cif等格式的解释?什么意思?具体是什么?

CIF、D1、Qcif、4cif指图象的分辨率。你给的问题补充里面已经说的非常清楚。不知道你还有什么不明白的。 分辨率就是图像的精密度,比如显示器的分辨率是1024X768这时候看上去很细腻、舒服。如果分辨率设置成600X800图标就显的更大,分辨率更低。

  • CIF分辨率352×288
  • D1分辨率=4CIF=704 × 576
  • Qcif分辨率=176 × 144

眼科检查中VOS:指数/眼前(2尺)什么意思

右眼视力:指数/眼前(2尺) —— 只能数出2尺远的手指数(说明近乎失明)。

求C语言编程题

逻辑运算和判断选取控制

  1. 编制程序要求输入整数a和b,若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数字之和。
#include<stdio.h>
int main()
{
    int a,b;
    printf("input two number:");
    scanf("%d %d",&a,&b);
    if((a*a+b*b)>=100)
        printf("\n %d",(a*a+b*b)/100);
    else
        printf("\n %d",a+b);
    getch();
}
  1. 试编程判断输入的正整数是否既是5又是7的整数倍数。若是,则输出yes;否则输出no。
#include<stdio.h>
int main()
{
    int a;
    printf("input a number:");
    scanf("%d",&a);
    if(a%5==0 && a%7==0)
        printf("yes");
    else
        printf("no");
    getch();
}

指针

  1. 编一程序,将字符串computer赋给一个字符数组,然后从第一个字母开始间隔的输出该串,请用指针完成。
#include<stdio.h>
int main()
{
    char string[]="computer";
    char *p=string;
    while(*p)
    {
        printf("%c",*p);
        p++;
        p++;
    }
    getch();
}
  1. 输入一个字符串string,然后在string里面每个字母间加一个空格,请用指针完成。
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define max 100
char * copyString;
void copy(char *,char*);
void insert(char *);
int main()
{
    char * string;
    string = (char *)malloc(max*sizeof(char));
    scanf("%s",string);
    insert(string);
    printf("%s",string);
    getch();
    return 0;
}
void copy(char * c,char * s)
{
    while(*s!='\0')
    {
        *c=*s;
        s++;
        c++;
    }
    *c='\0';
}
void insert(char * s)
{
    copyString = (char*)malloc(2*max*sizeof(char));
    copy(copyString,s);
    while(*copyString!='\0')
    {
        *s=*copyString;
        s++;
        copyString++;
        *s=' ';
        s++;
    }
    *s='\0';
}

选择题

  1. 给出以下定义:
    char acX[ ]= "abcdefg";
    char acY[ ]= {'a','b','c','d','e','f','g'};
    
    则正确的叙述为( ) A) 数组acX和数组acY等价 B) 数组acX和数组acY的长度相同 C) 数组acX的长度大于数组acY的长度 D) 数组acX的长度小于数组acY的长度 答案:C
  2. void example(char acHello[])
    {
        printf("%d", sizeof(acHello));
        return;
    }
    void main()
    {
        char acHello[] = "hello";
        example(acHello);//数组名称作参数,传的是地址,一个地址占四个字节
        return;
    }
    
    的输出是 A 4 B 5 C 6 D不确定 答案:A
  3. 有以下程序段
    char acArr[]= "ABCDE";
    char *pcPtr;
    for(pcPtr = acArr; pcPtr < acArr + 5; pcPtr++)
    {
        printf("%s\n", pcPtr);
    }
    return;
    
    输出结果是( ) A) ABCD B) A C) E D) ABCDE B D BCDE C C CDE D B DE E A E 答案:D
  4. 在中断中,不能同步获取信号量,但是可以释放信号量。 A.正确 B.错误 答案:A
  5. 以下叙述中不正确的是( ) A) 在不同的函数中可以使用相同名字的变量 B) 函数中的形式参数是局部变量 C) 在一个函数内定义的变量只在本函数范围内有效 D) 在一个函数内的复合语句中定义的变量在本函数范围内有效(复合语句指函数中的成对括号构成的代码) 答案:D
  6. 设有如下定义:
    unsigned long pulArray[] = {6, 7, 8, 9, 10};
    unsigned long *pulPtr;
    
    则下列程序段的输出结果为( )
    pulPtr = pulArray;
    *(pulPtr + 2) += 2;
    printf ("%d,%d\n", *pulPtr, *(pulPtr + 2));
    
    A)8,10 B)6,8 C)7,9 D)6,10 答案:D
  7. 定义结构体时有下面几种说法,请指出正确的(多选):______ A、结构体中的每个部分,最好进行四字节对齐; B、结构体的总长度最好是四字节对齐; C、结构中成员的存放不用考虑字节对齐情况; 答案:A、B
  8. void example()
    {
        int i;
        char acNew[20];
        for(i = 0; i < 10; i++)
        {
            acNew[i] = '0';
        }
        printf("%d\n", strlen(acNew));
        return;
    }
    
    的输出为( ) A 0 B 10 C 11 D不确定 答案:D
  9. switch(c)中的c的数据类型可以是char、long、float、unsigned、bool. ( ) A. 正确 B. 错误 答案:B
  10. 网络上传输的字节序默认是大字节的,如果主机是小字节序,在网络通信时则须进行字节序转换;如果主机是大字节序,为了程序的一致性及可移植性,最好也在程序中加上字节序转换的操作(空操作)。 A. 正确 B.错误 答案:A
  11. struct stu
    {
        int num;
        char name[10];
        int age;
    };
    void fun(struct stu *p)
    {
        printf("%s\n", (*p).name);
        return;
    }
    void main()
    {
        struct stu students[3]={ {9801,"Zhang",20},
                                 {9802,"Wang",19},
                                 {9803,"Zhao",18} };
        fun(students + 2);
        return;
    }
    
    输出结果是( ) A) Zhang B)Zhao C) Wang D) 18 答案:B
  12. 以下程序运行后,输出结果是( )
    void main( )
    {
        char *szStr = "abcde";
        szStr += 2;
        printf("%lu \n",szStr);
        return;
    }
    
    A cde B 字符c的ASCLL码值 C "abcde"这个常串中字符c所在的地址 D 出错 答案:C
  13. 在X86下,有下列程序
    #include <stdio.h>
    void main()
    {
        union
        {
            int k;
            char i[2];
        }*s,a;
        s = &a;
        s->i[0] = 0x39;
        s->i[1] = 0x38;
        printf("%x\n", a.k);
    }
    
    输出结果是( ) A) 3839 B) 3938 C) 380039 D) 不可预知 答案:D
  14. 全局变量可以定义在被多个.C文件包含着的头文件中。 A. 正确 B. 错误 答案:B
  15. void example()
    {
        int i;
        char acNew[20] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
        for(i = 0; i < 10; i++)
        {
            acNew[i] = '0';
        }
        printf("%d\n", strlen(acNew));
        return;
    }
    
    的输出为: A 0 B 10 C 11 D不确定 答案:B
  16. 下列定义正确的有(多选):( ) A: char *pcPtr = "abcd"; B: char pc[4]= "abcd"; C: char pc[] = "abcd"; D: char pc[] = 'abcd'; E: char pc[] = {'a','b','c','d','\0'}; F: char pc[] = 'a' 'b' 'c' 'd'; 答案:ACE
  17. 在函数内部定义的变量(静态变量、寄存器变量等特殊变量除外)的内存是在栈内存中,所以在定义函数内部的变量的时候,一定要保证栈不能够溢出。如果临时变量占用空间较大,应该使用内存申请的方式,这样该变量指向的内存就是在堆内存中了。 A. 正确 B. 错误 答案:A
  18. 局部变量可以和全局变量重名,编译的时候不会出现错误,但一旦不小心,就可能导致使用错误变量,所以在定时局部变量的时候,不要和全局变量重名。 A. 正确 B. 错误 答案:A
  19. 设有以下宏定义:
    #define N 3
    #define Y(n) ((N+1)*n) /*这种定义在编程规范中是严格禁止的*/
    
    则执行语句:z = 2 * (N + Y(5 + 1));后,z的值为( ) A) 出错 B) 42 C) 48 D)54 答案:C
  20. int *(*ptr)(); 则以下叙述中正确的是( ) A) ptr是指向一维组数的指针变量 B) ptr是指向int型数据的指针变量 C) ptr是指向函数的指针,该函数返回一个int型数据 D) ptr是指向函数的指针,该函数的返回值是指向int型数据的指针 答案:D
  21. 0x12345678 在采用BigEndian中内存的排列顺序是______,在采用LittleEndian内存中的排列顺序是_______. (答案从左到右内存地址依次增加) A.12 34 56 78 B.34 12 78 56 C.78 56 34 12 D.56 78 12 34 答案:A C

填空题

  1. struct tagAAA { unsigned char ucId:1; unsigned char ucPara0:2; unsigned char ucState:6; unsigned char ucTail:4; unsigned char ucAvail; unsigned char ucTail2:4; unsigned long ulData; }AAA_S; 问:AAA_S在字节对齐分别为1、4的情况下,占用的空间大小是多少? 答案:9 12
  2. typedef struct tagTest { UCHAR ucFlag; ULONG ulLen; }TEST_S; TEST_S test[10]; 四字节对齐方式时: sizeof(TEST_S) = , sizeof(test)__. 答案:8 80
  3. char acHello[] = "hello\0world"; char acNew[15] = {0}; strcpy(acNew,acHello); strlen(acNew) = _____ sizeof(acHello) = ______ 答案:5 12
  4. #pragma pack(4)/编译选项,表示4字节对齐/ int main(int argc, char* argv[]) { struct tagTest1 { short a; char d; long b; long c; }; struct tagTest2 { long b; short c; char d; long a; }; struct tagTest3 { short c; long b; char d; long a; }; struct tagTest1 stT1; struct tagTest2 stT2; struct tagTest3 stT3; printf("%d %d %d", sizeof(stT1), sizeof(stT2), sizeof(stT3)); return 0; } #pragma pack()(编译选项结束) 请问输出结果是:_________ 答案:12 12 16
  5. enum ENUM_A { X1, Y1, Z1 = 5, A1, B1 }; enum ENUM_A enumA = Y1; enum ENUM_A enumB = B1; 请问 enumA = ____; enumB = ______; 答案:1 7
  6. 以下程序的输出结果是________.
    #include <stdio.h>
    int fun(int x,int y)
    {
        static int m = 0;
        static int i = 2;
        i += m + 1;
        m = i + x + y;
        return m;
    }
    void main()
    {
        int j = 4;
        int m = 1;
        int k;
        k = fun(j, m);
        printf("%d,", k);
        k=fun(j, m);
        printf("%d\n", k);
        return;
    }
    
    答案:8 17
  7. 以下程序的输出结果为________
    #define CIR(r) r*r /*请注意这种定义的缺陷,不允许这么定义*/
    void main()
    {
        int a = 1;
        int b = 2;
        int t;
        t = CIR(a + b);
        printf("%d\n", t);
        return;
    }
    
    答案:5
  8. 在VRP中,实现了strncpy类似的函数,定义如下:
    #define CHAR char
    #define ULONG unsigned long
    #define VOID void
    #define MACRO_COPYWORLDLENGTH 4
    CHAR *VOS_strncpy(CHAR *pcDest, const CHAR *szSrc, ULONG ulLength)
    {
        CHAR *pcPoint = pcDest;
        if(( NULL == szSrc ) || ( NULL == pcDest ) ))
        {
            return NULL;
        }
        while(ulLength && (*pcPoint = *szSrc))/*这里采用了在判断语句中赋值的方式(*pcPoint = *szSrc)*/
        {
            pcPoint++;
            szSrc++;
            ulLength--;
        }
        if(!ulLength)
        {
            *pcPoint = '\0';
        }
        return pcDest;
    }
    VOID main(VOID)
    {
        CHAR szStrBuf[ ] = "1234567890";
        CHAR szStrBuf1[ ] = "1234567890";
        CHAR *szHelloWorld = "Hello World!";
        strncpy(szStrBuf, szHelloWorld, MACRO_COPYWORLDLENGTH);
        VOS_strncpy(szStrBuf1, szHelloWorld, MACRO_COPYWORLDLENGTH);
        printf("%s %s", szStrBuf, szStrBuf1);
    }
    
    程序的输出结果为________ 答案:Hell567890 Hell
  9. char acHello[] = "hello\0world"; char acNew[15] = {0}; memcpy(acNew,acHello,12); strlen(acNew) = _____ sizeof(acHello) = _____ 答案:5 12
  10. typedef struct Head { UCHAR aucSrc[6]; ULONG ulType; } HEAD_S; 在强制一字节对齐情况下,请指出sizeof(HEAD_S) = ________; 在强制二字节对齐情况下,请指出sizeof(HEAD_S) = ________; 在强制四字节对齐情况下,请指出sizeof(HEAD_S) = ________; 答案:10 10 12
  11. union tagAAAA { struct { char ucFirst; short usSecond; char ucThird; }half; long lI; }number; struct tagBBBBB { char ucFirst; short usSecond; char ucThird; short usForth; }half; struct tagCCCC { struct { char ucFirst; short usSecond; char ucThird; }half; long lI; }; 在字节对齐为1下,sizeof(union tagAAAA)、sizeof(struct tagBBBBB)、sizeof(struct tagCCCC)是____ ____ _____ 在字节对齐为4下,sizeof(union tagAAAA)、sizeof(struct tagBBBBB)、sizeof(struct tagCCCC)是____ ____ _____ 答案:4 6 8 8 8 12
  12. struct tagABC { char cB; short sC; char cD; long lA; }*pAbc; pAbc = 0x100000; 那么pAbc+0x100 = 0x_________; (ULONG)pAbc + 0x100 = 0x_________; (ULONG *)pAbc + 0x100 = 0x_________; (char *)pAbc + 0x100 = 0x_______; 答案:100C00 100100 100400 100100
  13. unsigned long FUNC_C ( unsigned long ulAction ) { unsigned long ulResult = 0 ; switch ( ulAction ) { case ACTION_A: { ulResult += 1 ; break ; } case ACTION_B: { ulResult += 1 ; } default: { ulResult += 1 ; } } printf( "ulResult = %u", ulResult ) ; return ulResult ; } 当输入为ACTION_B时,输出结果为: ulResult = _________; 答案:2(因为此分支没有break分支)
  14. 下面的代码中,函数Test执行完毕后,打印的结果是 _____。
    unsigned long g_ulGlobal = 0;
    void GlobalInit(unsigned long ulArg)
    {
        ulArg = 0x01;
        return;
    }
    void Test()
    {
        GlobalInit(g_ulGlobal);
        printf("%lu", g_ulGlobal);
        return;
    }
    
    答案:0
  15. 以下程序的输出的结果是___________
    int x = 3;
    void incre();
    void main()
    {
        int i;
        for (i = 1; i < x; i++)
        {
            incre();
        }
        return;
    }
    void incre()
    {
        static int x = 1;
        x *= (x + 1);
        printf("%d ",x);
        return;
    }
    
    答案:2 6
  16. 以下程序的输出的结果是___________
    #pragma pack(4)/*四字节对齐*/
    int main(int argc, char* argv[])
    {
        unsigned char puc[4];
        struct tagPIM
        {
            unsigned char ucPim1;
            unsigned char ucData0:1;
            unsigned char ucData1:2;
            unsigned char ucData2:3;
        }*pstPimData;
        pstPimData = (struct tagPIM *)puc;
        memset(puc, 0, 4);
        pstPimData->ucPim1 = 1;
        pstPimData->ucData0 = 2;
        pstPimData->ucData1 = 3;
        pstPimData->ucData2 = 4;
        printf("%02X %02X %02X %02X\n", puc[0], puc[1], puc[2], puc[3]);
        return 0;
    }
    #pragma pack()/*恢复缺省对齐方式*/
    
    答案:01 26 00 00
  17. char *pcColor = "blue1" ;
    char acColor[] = "blue1" ;
    strlen(pcColor) = _____
    strlen(acColor) = _____
    sizeof(pcColor) = _____
    sizeof(acColor) = _____
    
    答案:5 5 4 6
  18. char str[] = "\\\0";
    char *p = str;
    int n = 1000;
    
    请计算 sizeof (str ) = ____________ sizeof ( p ) = ______________ sizeof ( n ) = ______________ 答案:3 4 4
  19. UCHAR *pucCharArray[10][10]; typedef union unRec { ULONG ulIndex; USHORT usLevel[6]; UCHAR ucPos; }REC_S; REC_S stMax,*pstMax; 四字节对齐方式时: sizeof(pucCharArray) = 指针的数组,每个指针的地址都是4字节__, sizeof(stMax)=___, sizeof(pstMax)=地址,sizeof(*pstMax)=________. 答案:400 12 4 12
  20. typedef union unHead { UCHAR aucSrc [6]; struct tagContent { UCHAR ucFlag[3]; ULONG ulNext; }Content; }HEAD_S; 32CPU,VC编译环境下: 在强制一字节对齐情况下,请指出sizeof(HEAD_S) = ________; 在强制二字节对齐情况下,请指出sizeof(HEAD_S) = ________; 在强制四字节对齐情况下,请指出sizeof(HEAD_S) = ________; 答案:7 8 8
  21. UCHAR *pszTest = "hello";
    UCHAR aucTest[] = "hello";
    
    请问 sizeof(pszTest) = _____ , sizeof(*pszTest) = ______, sizeof(aucTest) = ______. 答案:4 1 6
  22. struct BBB { long lNum; char *pcName; short sDate; char cHa[2]; short sBa[6]; }*p; p = 0x100000; p + 0x1 = 0x____ (unsigned long)p + 0x1 = 0x______ (unsigned long *)p + 0x1 = 0x______ (char *)p + 0x1 = 0x______ 答案:100018 100001 100004 100001
  23. 在4字节对齐的情况: typedef struct tagRec { long lA1; char cA2; char cA3; long lA4; long lA5; } REC_S; void main(int argc, char *argv[]) { REC_S stMax ; printf("\r\n sizeof(stMax)= %d",sizeof(stMax)); return; } 输出结果为: sizeof(stMax)=____ 答案:16
  24. void main ()
    {
        unsigned long ulA = 0x11000000;
        printf("\r\n%x",*(unsigned char *)ulA);
        return;
    }
    
    输出结果为: 答案:0

指出下列程序中导致不能出现预期结果的唯一错误(不考虑编程规范错误)

  1. 下面程序用于输出用户输入的字符串。请指出其中的问题
    #define OK 0
    #define ERR 1
    #define ERROR (-1)
    #define BUFFER_SIZE 256
    int GetMemory(char **ppszBuf, int num)
    {
        if( NULL == ppszBuf )
        {
            ASSERT(0);
            return ERROR;
        }
        *ppszBuf = (char *)malloc(num);
        if(NULL == *ppszBuf)
        {
            return ERROR;
        }
        return OK;
    }
    void Test(void)
    {
        char *pcStr = NULL;
        if(OK == GetMemory(pcStr, BUFFER_SIZE))
        {
            scanf("%s",pcStr);/*这里假定BUFFER_SIZE足够大,不会导致越界*/
            printf(pcStr);
            free(pcStr);
        }
        return;
    }
    
    答案:要采用printf("%s", str)的形式打印,否则如果输入为%s, %d等形式可能会导致不可知现象。
  2. 此函数实现把32位IP地址(主机序)以字符串的方式打印出来,请找出代码中的错误:
    char *IpAddr2Str(unsigned long ulIpAddr)
    {
        char szIpAddr[32];
        (void)VOS_sprintf(szIpAddr, "%d.%d.%d.%d", ulIpAddr >> 24,
                          (ulIpAddr >> 16) & 0xff, (ulIpAddr >> 8) & 0xff, ulIpAddr & 0xff);
        return szIpAddr;
    }
    
    答案:函数的局部变量是存放在堆栈中的,此函数返回了堆栈中的地址,函数退出后堆栈中的内容不可用。
  3. 如下程序用于输出"Welcome Home"。请指出其中的错误:
    void Test(void)
    {
        char pcArray[12];
        strcpy(pcArray,"Welcome Home");
        printf("%s!", pcArray);
        return;
    }
    
    答案:数组越界。
  4. 如下程序用于把"blue"字符串返回,请指出其中的错误:
    char *GetBLUE(void)
    {
        char* pcColor ;
        char* pcNewColor;
        pcColor = "blue";
        pcNewColor = (char*)malloc(strlen(pColor));
        if(NULL == pcNewColor)
        {
            return NULL;
        }
        strcpy(pcNewColor, pcColor);
        return pcNewColor;
    }
    
    答案:申请内存空间不足,字符串结尾还有'\0'。
  5. 下面程序期望输出str = hello world,请指出其中的错误:
    char * GetStr(char *p)
    {
        p = "hello world";
        return p;
    }
    void main()
    {
        char *str = NULL;
        if(NULL != GetStr(str))
        {
            printf("\r\n str = %s",str);
        }
        return;
    }
    
    答案:无法返回字符串,参数使用错误。