计算机等级考试二级C语言考前密卷[2]下
(26)下面程序的输出结果是__________。 #define P1(x)printf(x) main() { char d[]。"p"; Pl(d); P1("d"); } A)pdB)d"d"C)"p"dD)"p""d" 答案:A 评析:带参数的宏定义的一般形式为:#define宏名(参数表)字符串 程序中的Pl(d);经宏置换后为printf(d);,所以输出字符串p;程序中的Pl("d");经宏置换后printf("d")。 (27)以下选项中,能定义s为合法的结构体变量的是__________。 A) typedef struct abc {double a; charb[10]; }s; B) struct {double a; char b[10]; }s; C) struct ABC {double a; char b[10]; } ABC s: D) typedef ABC {double a; char b[10]; } ABC s: 答案:B 评析:定义一个结构体类型的变量,可采用三种方法: ①先定义结构体类型,再定义变量名;②在定义类型的同时定义变量:③直接定义结构类型变量,即不出现结构体名:选项B符合第三种定义方法。 (28)请读程序: #include #include main() { char*s1="AbCdEf", *s2="aB"; s1++; s2++; printf("%d、n",strcmp(sl,s2)); } 上面程序的输出结果是________。 A)正数B)负数c)零D)不确定的值 答案:A 评析:strcmp(X1,X2)是串比较函数,本题中"s1"、"s2"分别表示这两个串中第一个字符的地址,s1++和s2++是将指针指向串的第二个字符,则*sl为"bCdEf’’,*s2为"B"。在字符串比较中,大小的确定是各个字符串相应位置字符的ASCII码值的大小决定的, sl> s2,返回值为正数。 (29)请读程序: #include main() { int a=5,b=7,c=9; printf("%d,%d,",a,b,c); printf("%d,%d,%d,"a,b); } 上面程序的输出结果是________。 A)5,7,9,5,7B)5,7,5,7C)5,7,不定,7,9D)5,7,5,7,不定 答案:D 评析:printf函数按格式控制符的个数输出表列中对应的数据,若输出表列的个数大于格式控制符个数,则输出与格式控制符对应的输出表列的数据,输出表列中多的则省略;若格式控制符个数大于输出表列的个数,则输出与格式控制符对应的输出表列的数据,格式控制符多的部分输出的数据是随机的。 (30)请读程序: #incIude fun c(int a,int b){ Int C; c=a+b: return C: } main(){ int x=6,y=7,z=8,r; r=func((x--,y++,x+y),z--); printf("%d ",r); } 上面程序的输出结果是________。 A)llB)20C)2lD)31 答案:C 评析:函数func()的作用是返回两个形参的和,第一个形参是x、y分别自减和自增后的和,其中(x--,y++,x+y)是一个逗号表达式,它的值应该等于x+y,所以整个表达式(x--,y++,x+y)的值为13,而第二个形参的值为8(根据语法规则,应当先使用,后自增),所以func()的返回值为13+8=21。 首页 1 2 3 4 5 6 7 尾页 相关资料 |