C语言程序设计练习题C
一、单项选择题
以下不能定义为用户标识符是
A) MainB) _0
C) _intD) sizeof
2. 以下叙述中正确的是
A)C程序中注释部分可以出现在程序中任意合适的地方
B)花括号"{"和"}"只能作为函数体的定界符
C)构成C程序的基本单位是函数,所有函数名都可以由用户命名
D)分号是C语句之间的分隔符,不是语句的一部分
以下选项中合法的字符常量是
A) "B" B) '\010'
C) 68 D) D
4. 以下合法的赋值语句是
A) x=y=100 B) d--;
C) x+y; D) c=int(a+b);
5. x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是
A) INPUT x、y、z;B) scanf("%d%d%d",&x,&y,&z);
C) scanf("%d%d%d",x,y,z);D) read("%d%d%d",&x,&y,&z);
6. 若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是
A) abs(x-y)<10B) x-y>-10&& x-y<10
C) @(x-y)10D) (x-y)*(x-y)<100
7. 若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是
A) for(i=1,p=1;i<=5;i++) p*=i;
B) for(i=1;i<=5;i++){ p=1; p*=i;}
C) i=1;p=1;while(i<=5){p*=i; i++;}
D) i=1;p=1;do{p*=i; i++; }while(i<=5);
8. 若有以下说明和语句,int c[4][5],(*p)[5];p=c;能正确引用c数组元素的是
A) p+1 B) *(p+3)
C)*(p+1)+3 D) *(p[0]+2])
9. 设有定义语句
int x[6]={2,4,6,8,5,7},*p=x,i;
要求依次输出x数组6个元素中的值,不能完成此操作的语句是
A) for(i=0;i<6;i++) printf("%2d",*(p++));
B) for(i=0;i<6;i++) printf("%2d",*(p+i));
C) for(i=0;i<6;i++) printf("%2d",*p++);
D) for(i=0;i<6;i++) printf("%2d",(*p)++);
10. 在函数调用过程中,如果函数funA调用了函数 funB函数funB又调用了函数funA,则
A) 称为函数的直接递归调用B) 称为函数的间接递归调用
C) 称为函数的循环调用D) C语言中不允许这样的递归调用
. 以下叙述中正确的是
A) 局部变量说明为static存储数,其生存期将得到延长
B) 全局变量说明为static存储类,其作用域将被扩大
C) 任何存储类的变量在未赋初值时,其值都是不确定的
D) 形参可以使用的存储类说明符与局部变量完全相同
. 程序中对fun函数有如下说明 void *fun();
此说明的含义是:
A) fun了数无返回值
B) fun函数的返回值可以是任意的数据类型
C) fun函数的返回值是无值型的指针类型
D) 指针fun指向一个函数,该函数无返回值
有定义语句:int x, y;要通过scanf("%d,%d",&x,&y);语句使变量x得到数值11变量y得到数值12,下面四组输入形式中,错误的是
A)11 12B)11, 12
C)11,12D)11, 12
设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是
A)x=x*100+0.5/100.0; B)x=(x*100+0.5)/100.0;
C)x=(int)(x*100+0.5)/100.0;D)x=(x/100+0.5)*100.0;
若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)
s=a;
for(b=1;b<=c;b++) s=s+1;
则与上述程序段功能等价的赋值语句是
A)s=a+b; B)s=a+