本文目录一览:
- 新买的Dell 戴尔 VOS 5460 (2626)晚上开机突然发现3个USB接口中的2个没反应了,是怎么回事啊?
- 安防监控系统CIF、D1、Qcif、4cif等格式的解释?什么意思?具体是什么?
- 眼科检查中VOS:指数/眼前(2尺)什么意思
- 求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语言编程题
逻辑运算和判断选取控制
- 编制程序要求输入整数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();
}
- 试编程判断输入的正整数是否既是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();
}
指针
- 编一程序,将字符串computer赋给一个字符数组,然后从第一个字母开始间隔的输出该串,请用指针完成。
#include<stdio.h>
int main()
{
char string[]="computer";
char *p=string;
while(*p)
{
printf("%c",*p);
p++;
p++;
}
getch();
}
- 输入一个字符串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';
}
选择题
- 给出以下定义:
则正确的叙述为( ) A) 数组acX和数组acY等价 B) 数组acX和数组acY的长度相同 C) 数组acX的长度大于数组acY的长度 D) 数组acX的长度小于数组acY的长度 答案:Cchar acX[ ]= "abcdefg"; char acY[ ]= {'a','b','c','d','e','f','g'};
-
的输出是 A 4 B 5 C 6 D不确定 答案:Avoid example(char acHello[]) { printf("%d", sizeof(acHello)); return; } void main() { char acHello[] = "hello"; example(acHello);//数组名称作参数,传的是地址,一个地址占四个字节 return; }
- 有以下程序段
输出结果是( ) A) ABCD B) A C) E D) ABCDE B D BCDE C C CDE D B DE E A E 答案:Dchar acArr[]= "ABCDE"; char *pcPtr; for(pcPtr = acArr; pcPtr < acArr + 5; pcPtr++) { printf("%s\n", pcPtr); } return;
- 在中断中,不能同步获取信号量,但是可以释放信号量。 A.正确 B.错误 答案:A
- 以下叙述中不正确的是( ) A) 在不同的函数中可以使用相同名字的变量 B) 函数中的形式参数是局部变量 C) 在一个函数内定义的变量只在本函数范围内有效 D) 在一个函数内的复合语句中定义的变量在本函数范围内有效(复合语句指函数中的成对括号构成的代码) 答案:D
- 设有如下定义:
则下列程序段的输出结果为( )unsigned long pulArray[] = {6, 7, 8, 9, 10}; unsigned long *pulPtr;
A)8,10 B)6,8 C)7,9 D)6,10 答案:DpulPtr = pulArray; *(pulPtr + 2) += 2; printf ("%d,%d\n", *pulPtr, *(pulPtr + 2));
- 定义结构体时有下面几种说法,请指出正确的(多选):______ A、结构体中的每个部分,最好进行四字节对齐; B、结构体的总长度最好是四字节对齐; C、结构中成员的存放不用考虑字节对齐情况; 答案:A、B
-
的输出为( ) A 0 B 10 C 11 D不确定 答案:Dvoid example() { int i; char acNew[20]; for(i = 0; i < 10; i++) { acNew[i] = '0'; } printf("%d\n", strlen(acNew)); return; }
- switch(c)中的c的数据类型可以是char、long、float、unsigned、bool. ( ) A. 正确 B. 错误 答案:B
- 网络上传输的字节序默认是大字节的,如果主机是小字节序,在网络通信时则须进行字节序转换;如果主机是大字节序,为了程序的一致性及可移植性,最好也在程序中加上字节序转换的操作(空操作)。 A. 正确 B.错误 答案:A
-
输出结果是( ) A) Zhang B)Zhao C) Wang D) 18 答案:Bstruct 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 cde B 字符c的ASCLL码值 C "abcde"这个常串中字符c所在的地址 D 出错 答案:Cvoid main( ) { char *szStr = "abcde"; szStr += 2; printf("%lu \n",szStr); return; }
- 在X86下,有下列程序
输出结果是( ) A) 3839 B) 3938 C) 380039 D) 不可预知 答案:D#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); }
- 全局变量可以定义在被多个.C文件包含着的头文件中。 A. 正确 B. 错误 答案:B
-
的输出为: A 0 B 10 C 11 D不确定 答案:Bvoid 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: 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
- 在函数内部定义的变量(静态变量、寄存器变量等特殊变量除外)的内存是在栈内存中,所以在定义函数内部的变量的时候,一定要保证栈不能够溢出。如果临时变量占用空间较大,应该使用内存申请的方式,这样该变量指向的内存就是在堆内存中了。 A. 正确 B. 错误 答案:A
- 局部变量可以和全局变量重名,编译的时候不会出现错误,但一旦不小心,就可能导致使用错误变量,所以在定时局部变量的时候,不要和全局变量重名。 A. 正确 B. 错误 答案:A
- 设有以下宏定义:
则执行语句:z = 2 * (N + Y(5 + 1));后,z的值为( ) A) 出错 B) 42 C) 48 D)54 答案:C#define N 3 #define Y(n) ((N+1)*n) /*这种定义在编程规范中是严格禁止的*/
- int *(*ptr)(); 则以下叙述中正确的是( ) A) ptr是指向一维组数的指针变量 B) ptr是指向int型数据的指针变量 C) ptr是指向函数的指针,该函数返回一个int型数据 D) ptr是指向函数的指针,该函数的返回值是指向int型数据的指针 答案:D
- 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
填空题
- 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
- typedef struct tagTest { UCHAR ucFlag; ULONG ulLen; }TEST_S; TEST_S test[10]; 四字节对齐方式时: sizeof(TEST_S) = , sizeof(test)__. 答案:8 80
- char acHello[] = "hello\0world"; char acNew[15] = {0}; strcpy(acNew,acHello); strlen(acNew) = _____ sizeof(acHello) = ______ 答案:5 12
- #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
- enum ENUM_A { X1, Y1, Z1 = 5, A1, B1 }; enum ENUM_A enumA = Y1; enum ENUM_A enumB = B1; 请问 enumA = ____; enumB = ______; 答案:1 7
- 以下程序的输出结果是________.
答案:8 17#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; }
- 以下程序的输出结果为________
答案:5#define CIR(r) r*r /*请注意这种定义的缺陷,不允许这么定义*/ void main() { int a = 1; int b = 2; int t; t = CIR(a + b); printf("%d\n", t); return; }
- 在VRP中,实现了strncpy类似的函数,定义如下:
程序的输出结果为________ 答案:Hell567890 Hell#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); }
- char acHello[] = "hello\0world"; char acNew[15] = {0}; memcpy(acNew,acHello,12); strlen(acNew) = _____ sizeof(acHello) = _____ 答案:5 12
- typedef struct Head { UCHAR aucSrc[6]; ULONG ulType; } HEAD_S; 在强制一字节对齐情况下,请指出sizeof(HEAD_S) = ________; 在强制二字节对齐情况下,请指出sizeof(HEAD_S) = ________; 在强制四字节对齐情况下,请指出sizeof(HEAD_S) = ________; 答案:10 10 12
- 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
- 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
- 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分支)
- 下面的代码中,函数Test执行完毕后,打印的结果是 _____。
答案:0unsigned long g_ulGlobal = 0; void GlobalInit(unsigned long ulArg) { ulArg = 0x01; return; } void Test() { GlobalInit(g_ulGlobal); printf("%lu", g_ulGlobal); return; }
- 以下程序的输出的结果是___________
答案:2 6int 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; }
- 以下程序的输出的结果是___________
答案:01 26 00 00#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()/*恢复缺省对齐方式*/
-
答案:5 5 4 6char *pcColor = "blue1" ; char acColor[] = "blue1" ; strlen(pcColor) = _____ strlen(acColor) = _____ sizeof(pcColor) = _____ sizeof(acColor) = _____
-
请计算 sizeof (str ) = ____________ sizeof ( p ) = ______________ sizeof ( n ) = ______________ 答案:3 4 4char str[] = "\\\0"; char *p = str; int n = 1000;
- 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
- 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
-
请问 sizeof(pszTest) = _____ , sizeof(*pszTest) = ______, sizeof(aucTest) = ______. 答案:4 1 6UCHAR *pszTest = "hello"; UCHAR aucTest[] = "hello";
- 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
- 在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
-
输出结果为: 答案:0void main () { unsigned long ulA = 0x11000000; printf("\r\n%x",*(unsigned char *)ulA); return; }
指出下列程序中导致不能出现预期结果的唯一错误(不考虑编程规范错误)
- 下面程序用于输出用户输入的字符串。请指出其中的问题
答案:要采用printf("%s", str)的形式打印,否则如果输入为%s, %d等形式可能会导致不可知现象。#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; }
- 此函数实现把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; }
- 如下程序用于输出"Welcome Home"。请指出其中的错误:
答案:数组越界。void Test(void) { char pcArray[12]; strcpy(pcArray,"Welcome Home"); printf("%s!", pcArray); return; }
- 如下程序用于把"blue"字符串返回,请指出其中的错误:
答案:申请内存空间不足,字符串结尾还有'\0'。char *GetBLUE(void) { char* pcColor ; char* pcNewColor; pcColor = "blue"; pcNewColor = (char*)malloc(strlen(pColor)); if(NULL == pcNewColor) { return NULL; } strcpy(pcNewColor, pcColor); return pcNewColor; }
- 下面程序期望输出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; }