11.以下有 4 组用户标识符,其中合法的一组是()。A) For-subCaseC)f2_G3IFabcB) 4dDOSizeD)WORDvoiddefine高级语言程序设计(C)模拟题四、选择题(本题共 20 道小题,每题 2 分,共 40 分。)答案:C解析:标识符的命名规则:由字母、数字、下划线组成,第一个字符必须是字母或者下划线,标示符的命名不能同 C 语言的关键字相同。2.若有下面的程序片段:inta[12]={0},*p[3],**pp,i;for(i=0;i<3;i++)p[i]=&a[i*4];pp=p;则对数组元素的错误引用是A) pp[0][1]B)a[10]C)p[3][1]D)*(*(p+2)+2)答案:C解析 A.pp[O]表示 p[0]的地址,而 pp[O]也为一个指针,它和 PP 用法相同,故 pp[0][1]则表示 a[1]的地址,正确。B.正确。C■数组 p 的最大下标为 2,错误。D.*(*(p+2)+2)表示 a[10],正确。3.若要求在 if 后一对圆括号中表示 a 不等于 0 的关系,则能正确表示这一关系的表达式为A) a<>0B)!aC) a=0D)a答案:D解析:对 if(a)而言,如果 a 的值不为 0,则 if 语句括号中表达式的值不为 0,if 为真,选D。4.若已定义:inta[]={0,1,2,3,4,5,6,7,8,9],*p=a,i;其中 0DiD9,则对 a 数组元素不正确的引用上A)a[p-a]B)*(&a[i])C)p[i]D)a[10]答案:D解析:A. a[p-a]表示 a[0],正确。B. *(&a[i])表示 a[i],正确。C. p[i]表示&a[i],正确。D. a 数组最大下标为 9,错误。5.以下程序的输出结果是intmain(){intx=10,y=10,I;for(i=0;x>8;y=++i)printf("%d,%d",x--,y);}A)10192B)9876C)10990D)101091答案:D2解析:第一遍循环:x=10,y=10,x>8,输出 1010 后,x=9,y=1.第二遍循环:x=9>8,输出 91 后 x=8,y=2。第三遍循环:x=8,不满足条件,循环结束,无输出。6.下面程序的输出是voidprtv(int*x)printf("%d\n",++*x);}intmain(){inta=25;prtv(&a);return0;}A)23B)24C)25D)26答案:D解析:主函数传递给 prtv 函数的 x 值为 25,在 printf 中,先对 x 自增,再输出 x 值为 26。7. 下面能正确进行字符串赋值操作的语句是A)chars[5]={"ABCDE"};B)chars[5]={'A'、'B'、'C'、'D'、'E'};C)char*s;s="ABCDEF";D)char*s;scanf("%s",s);答案:C解析:A.{}中的口 D□也作为字符串中的一个字符,故右侧字符串长度为 7>5,越界,错误。B.右侧字符的分割符应使用‘,',而不是‘、',错误。C. 正确。D.s 是一个字符串常量,应在定义同时初始化且不能通过 seanf 函数或任何其他方式修改其值...