一、不定项选择题(本大题共20小题,每题3分,共计60分)正确9题进入下一环节
1、下述程序执行后的输出结果是()
#include
int main(void)
{
int x=’f’;
printf(“%cn”, ‘b’+(x-‘a’+1));
return 0;
} A.g B.h C.i D.h
2、根据C,C++标准,关于main函数书写方式错误的是()
A.main() B.int main(int argc, char *argv[]) C.int main() D.void main() E.void main(void)
3、以下函数输出()
int main()
{
if(0&!1 == 0)printf(“1”);
else printf(“0”);
if(1&0!=1 else printf(“0”);
} A.1 0 B.0 0 C.1 1 D.0 1
4、有以下代码最终输出()
int foo(void)
{
static int m=0;
m+=++m;
return m;
}
int main()
{
foo();
printf(“%d”, foo());
} A.1 B.2 C.4 D.6
5、继续上一题,描述正确的是()
A m是全局变量 B m是局部变量 C m存储于静态存储区 D m存储于堆中 E m存储于栈中
6、以下关于volatile变量描述正确的是()
A.volatile关键字是一种类型修饰符,不属于C标准规定。
B.当要求使用volatile声明的变量的值的时候,系统总是重新从它的内存读取数据。
C.使用volatile后,编译器将要对访问该变量的代码进行优化。
D.一个中断服务子程序中会访问该变量(Non-automatic variables)应该使用volatile变量
E.多线程应用中被几个任务共享的变量应该为volatile变量
7.定义函数时,如果没有写函数的返回类型,则函数返回类型取缺省类型() A.void B.char C.float D.int
8.若定义了char ch[]={“abc def”};char *p=ch;则执行printf(“%c”, *p+4);语句的输出结果是() A.def B.d C.e D.0
9.下列转义字符中错误的是() A.’ 00′ B.’14’ C.’x100′ D.’2′
10.哪些数据类型能做为swith()参数() A.int B.char C.long D.double E.float F.char *
11.软件测试按测试方法有哪些种类() A.白盒测试 B.黑盒测试 C.单元测试 D.验收测试 E.ALAC(Act-like-a-customer)测试
12.下列程序段运行后,x的值是()
void foo(void)
{
int a, b, x;
a=1;b=2;x=0;
if(!(–a)) x–;
if(!b) x=7;else ++x;
} A.0 B.3 C.6 D.7
13.以下函数返回值()
#define N 3
#define Y(n) ((N+1)*n)
int foo(void)
{
return 2*(N+Y(5+1));
} A.42 B.48 C.54 D.答案不是ABC
14.如下代码,输出是()
void foo(char **p)
{
char* t;
t=(p+=3)[-1];
printf(“%s”, t);
}
main()
{
char * argv[]={“ab”, “cd”, “ef”, “gh”, “ij”, “kl”};
foo(argv);
} A.ab B.cd C.ef D.gh
15.单片机要写入内存地址为0x00001450的值为123,正确的方式有()
A. int *p;p=(int*)0x00001450;*p=123; B.int **p=0;*p=(int*)0x00001450;**p=123; C.(int *)0x00001450=123; D.*(int *const)0x00001450=123;
16.在32位CPU,VC缺省设置情况下,如下代码,sizeof(G)是()
union D
{
long a;
char b[5];
short C;
int d;
}
struct
{
long e;
union D f;
char g[6];
}G; A.15 B.16 C.18 D.20 E.24
17.Win32 API,对函数BOOL PurgeCommon(HANDLE hFile, DWORD dwFlags)描述正确的是()
A.该函数的作用是清空串口缓存区。 B.第一个参数是一个指向串口的句柄,该参数通过CreateFile获得。
C.第二个参数的作用是设置输出缓存区的大小。 D.第二个参数的作用是设置输出缓存区的大小。
18.以下正确的函数原型为() A.f(int x; int y); B.void (x,y); C.void (int x, y); D.void f(int, int);
19.C++使用重载函数编程序的目的是()
A.使用相同的函数名调用功能相似的函数 B.共享程序代码 C.提高程序的运行速度 D.节省存储空间
20.C++,下列函数中,可以作为虚函数的是() A.普通函数 B.构造函数 C.成员函数 D.内联函数
二、查错题(本大题共1小题, 共计8分)
要求:请查找错误并修改,有4个错误。
以下程序运行环境为PC x86,VC6.0.
运行结果是要把一个16进制字符串转换成整数。
int HexCharToInt(char hexchar)
{
static const char *HEXSTR=”0123456789ABCDEF”;
int index; //
char *p=(char *)HEXSTR; //
while(hexchar!=*p) //
{
index++; //
if(index==16)return -1; //
}
return index; //
}
unsigned long HexStrToULONG(char *hexstr)
{
unsigned long ret=0; //
int len=sizeof(hexstr); //
for(int i=0; i
int r=HexCharToInt(hexstr[len-i-1]); //
if(r==-1)return -1; //
else ret +=r }
return ret; //
}
int BUFFER_LEN 64; //
int main() //
{
char buf[BUFFER_LEN]; //
char hex[]=”34AB”; //
sprintf(buf, “%x”, HexStrToULONG(hex)); //
return 1; //
}
三、问答题(本大题共5小题,共计32分)
1.题目一(6分) 请用标准C写一个memcpy函数。
2.题目二(4分) 请使用#define UPCASE(c)将一个字母转换为大写。
3.题目三(4分) 队列和堆栈的区别是什么r> 4.题目四(4分) 请描述嵌入式系统中,中断(interrupt,如键盘中断)与异常(exception,如除零异常)有何区别r> 5.题目五(10分) 编程题。请编写一个函数。要求从计算从1*2*3……998*999*1000的积有多少个0.
int Zero(int from, int end)
{
int ZeroCount=0; //0的个数
……
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!