[单选题]若有语句:char *line[5];,以下叙述中正确的是
正确答案 :A
定义line是一个数组,每个数组元素是一个基类型为char为指针变量
解析:解析:C语言中[ ]比*优先级高,因此line先与[5]结合,形成line[5]形式,这是数组形式,它有5个元素,然后再与line前面的"*"结合,表示此数组是一个指针数组,每个数组元素都是一个基类型为char的指针变量。
[单选题]以下4个选项中,不能看作一条语句的是( )。
正确答案 :D
if(b==0)m=1;n=2;
解析:解析:C语言的语句都用“;”结束。如果只有一个分号,称为“空语句”。用一对花括号把若干语句括起来构成一个语句组,称为“复合语句”,在语法上视为一条语句。因此选项A是一条语句。选项B是逗号表达式加分号构成的语句。选项C是一条if语句,该语句的if子句是一条空语句。选项D中“if(b==0)m=1;n=2;”是两个表达式语句。所以,4个选项中选项D符合题意。
[单选题]有以下程序: float fun(int x,int y) {return(x+y);} main() { int a=2,b=5,C=8; printf("%3.0f\n",fun((int)fun(a+c,b),a-c)); } 程序运行后的输出结果是( )。
正确答案 :B
9
解析:解析:fun((int)fun(a+c,b),a-c))是用函数的返回值做实参。第一次调用fun(a+c,b),x+y=a+c+b=2+5+8=15,由于函数fun()的返回值类型被定义为float型,返回值为15.000000,在主函数中被强制转换为int型变为15。第二次调用后fun(15,a-c),x+y=15+a-c =15+2-8=9,返回值为9.000000,输出格式要求小数位为0且数据宽度为3,则输出9。
查看原题