1、设以下变量均为int类型,则值不等于7的表达式是( C )。
A (x=y=6,x+y,x+1)
B (x=y=6,x+y,y+1)
C (x=6,x+1,y=6,x+y)
D (x=6,x+1,y=x,y+1)
2、设变量a是整型,b是实型,c是双精度型,则表达式10+'a'+b*c值的数据类型为( C )。
A int
B float
C double
D 不确定
3、设有说明:char w; int x; float y; double z; 则表达式 w*x+z-y 值的数据类型为( D )。
A float
B char
C int
D double
4、" 使用语句scanf(""x=%f,y=%f"",&x,&y);输入变量x、y的值(□代表空格),正确的输入是__C__。
A ", 1.25,2.4
B 1.25□2.4
C x=1.25,y=2.4
D x=1.25□y=2.4
5、 C语言中while和do-while循环的主要区别是( A ).
A do-while的循环体至少无条件执行一次
B while的循环控制条件比do-while的循控制条件严格
C do-while允许从外部转到循环体内
D do-while的循环体不能是复合句
6、 若有说明:int a[10];,则对a数组最前面一个元素的正确引用是( D )。
A a[10]
B a[3.5]
C a(5)
D a[10-10]
7 、以下对二维数组a进行初始化的语句错误的是( C )。
A int a[2][3]={0};
B int a[][3]={{1,2},{0}};
C int a[2][3]={{1,2},{3,4},{5,6}};
D int a[][3]={1,2,3,4,5,6};
8、下述对C语言字符数组的描述中错误的是( C )
A 字符数组可以存放字符串
B 字符数组中的字符串可以整体输入、输出
C " 可以在赋值语句中通过赋值运算符""=""对字符数组整体赋值D", 不可以用关系运算符对字符数组中的字符串进行比较
9、设i和x 都是int类型,则以下for循环( A )。
for(i=0,x=0;i<=9&&x!=876;i++) scanf(""%d"",&x);
A ", 最多执行者10次
B 最多执行者9次
C 是无限循环
D 循环体一次也不执行
10、下面描述正确的是( D )。
A 两个字符串所包含的字符个数相同时,才能比较字符串
B 字符个数多的字符串比字符个数少的字符串大
C " 字符串""stop""与""Stop""相等"," 字符串""that""小于
D 字符串""the""",
11、以下不正确的说法是( B )。
A 实参可以是常量、变量或表达式
B 形参可以是常量、变量或表达式
C 实参可以是任意类型
D 形参应与其对应的实参类型一致
12、以下不正确的说法是( C )。
A C语言允许函数的递归调用
B C语言中的continue语句,可以通过改变程序的结构而省略
C 有些递归程序是不能用非递归算法实现的
D C语言中不允许在函数中再定义函数
13、下面函数调用语句中含有实参个数为( B )。
func((exp1,exp2),(exp2,exp4,exp5));
A 1
B 2
C 3
D 4
14、设有下面的语句和说明,则下列语句使用正确的是( B )。
A char s[10]=""china"";
B "," scanf(""%s"",s[0]);", gets(s);
C gets(&s);
D " scanf(""%c"",s);",
15、若有说明:int a[3][4];,则对a数组元素正确引用是( C )。
A a[2][4]
B a[1,3]
C a[1+1][0]
D a(2)(1)
16、已知函数定义如下:
float fun1(int x,int y)
{ float z;
z=(float)x/y;
return(z);
}
主调函数中有int a=1,b=0;可以正确调用此函数的语句是__A__。
A ","printf(""%f"",fun1(a,b));
B ","printf(""%f"",fun1(&a,&b));
C "," printf(""%f"",fun1(*a,*b));
D "," 调用时发生错误
17、设n=10,i=4,则赋值运算 n%=i+1执行后,n 的值是( A )。
A 0
B 3
C 2