C语言笔试题带答案8.doc(5)

2019-03-10 14:34

A)预处理命令行必须位于源文件的开头

B)在源文件的一行上可以有多条预处理命令

C)宏名必须用大写字母表示

D)宏替换不占用程序的运行时间 答案:D

评析:通常,预处理命令位于源文件的开头,也可以写在函数与函数之间;不能在一行上写多条预处理命令:宏名一般习惯用大写字母表示,以便与变量名相区别,但这并非规定,也可用小写字母。

(38)若有以下说明和定义 union dt

{int a;har b;ouble c;}data;

以下叙述中错误的是________。

A)data的每个成员起始地址都相同

B)变量data所占的内存字节数与成员c所占字节数相等

C)程序段:data.a=5;pintf(―%f\\n‖,data.C);输出结果为5.000000

D)data可以作为函数的实参 答案:C

评析:union是表示共用体的关键字,成员a,b,c共占用同一个内存空间,data的每个成员起始地址都相同;共用体变量所占的内存长度等于最长的成员的长度,故变量‘data所占的内存字节数与成员c所占字节数相等;执行―data.a=5;printf(―%f\\n‖,data.C);‖printf

函数只是将内存中的数据以不同的类型输出,而不能将内存中的整型数据自动转换为等值的浮点数,故C是错误的。

(39)以下语句或语句组中,能正确进行字符串赋值的是________。

A)char*sp;*sp=‖right!‖; B)char s[lO];s=‖right! ―;

C)char s[10];*s=‖right! ―; D)char*sp=‖right! ―; 答案:D

评析:选项A定义了字符型的指针变量sp,则*sp存储的是第一个字符,而给它赋的是字符串,故错;

选项B表示代表数组的首地址,而题中给它赋的是字符串,所以错误;

选项c定义了一个字符型的数组s[10],再通过+s给数组元素赋初值,这时是与选项A相同的错误。

(40)设有如下说明

typedef struct ST

{long a; int b; char c[2];}NEW;

则下面叙述中正确的是________。

A)以上的说明形式非法 B)ST是一个结构体类型

C)NEW是一个结构体类型 D)NEW是一个结构体变量 答案:C

评析:typedef关键字用于声明一个新的类型名代替已有的类型名。

本题中如果没有用typedef进行定义的话,则struct ST为结构体类型,现在用typedef定义后,相当于用NEW代表了struct ST这一结构体类型,故NEW为结构体类型。

(41)有以下程序 main()

{ int a=1,b;

for(b=l;b<10;b++)

{ if(a>=8)break;

if(a%2==1){a+=5;continue;} a-=3; )

printf(―%d\n‖,b); }

程序运行后的输出结果是________。

A) 3 B)4 C) 5 D) 6 答案:B

评析:break和continue的区别是:continue语句只结束本次循环,而不是终止整个循环的执行;而break语句则是结束整个循环过程,.不再判断执行的条件是否成立。

(42)有以下程序 main()

{ char s[]=‖l 59″,*p; p=s;

printf(―%c‖,*p++);printf(―%c‖,*p++); }

程序运行后的输出结果是________。

A)15 B)16 C)12 D)59 答案:A

评析:本题通过―p=s‖将指针变量p指向字符数组s,在第一次输出时,由于++和*为同一优先级,―*p++‖相于―+(p++)‖。p指向s[1],输出为s[1]的值。

(43)有以下函数

fun(char*a,char*b)

{ while((*a!=‘\0‘)&&(*b!=‘\0‘)&&(*a==b))

{a++;b++; }

return(*a-*b); }

该函数的功能是________。

A)计算a和b所指字符串的长度之差

B)将b所指字符串连接到a所指字符串中

C)将b所指字符串连接到a所指字符串后面

D)比较a和b所指字符串的大小 答案:D

评析:字符串的比较规则是对两个字符串自左至右逐个字符相比(按ASCII码值大小比较),直到出现不同的字符或遇到?\0‘为止,相等,则返回0,否则返回第一个不等字符串的ASCII码的差值。

(44)有以下程序 main()

{ int num[4][4]={{1,2,3,4},{5,6,7,8),{9,10,11,12},{13,14,15,16}},i,j;

for(i=O;i<4;i++)

{ for(j=0;j<=i.j++)printf(―%4c‖,‘ ‘);

for(j______; j<4;j++)printf(―%4d‖,num[i][j]);

printf(―\n‖); } }

若要按以下形式输出数组右上半三角


C语言笔试题带答案8.doc(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:汽车诊断技术及常用协议(培训)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: