补充习题
一、单选题
1、下列语句中,符合语法的赋值语句是 。 C
A)a=7+b+c=a+7; B)a=7+b++=a+7;
C)a=(7+b,b++,a+7); D)a=7+b,c=a+7;
2、对于char cx='\039';语句,正确的是 。 A
A)不合法 B)cx的ASCII值是33
C)cx的值为四个字符 D)cx的值为三个字符
3、以下所列的C语言常量中,错误的是 。 B
A)0xFF B)1.2e0.5
C)2L D)‘\72’
4、有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量 a的值为1,b的值为3,c的值为2,则正确的数据输入方式是 。 D
A)132↙ B)1,3,2↙
C)a=1 b=3 c=2↙ D)a=1,b=3,c=2↙
5、逻辑运算符两侧运算对象的数据类型 。 D
A)只能是0或1 B)只能是0或非0正数
C)只能是整型或字符型数据 D)可以是任何类型的数据
6、C语言对嵌套if语句的规定是:else总是与 。 D
A)其之前最近的if配对 B)第一个if配对
C)缩进位置相同的if配对 D)其之前最近的且尚未配对的if配对
7、设:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为 。 B
A)1 B)2
C)3 D)4
8、以下程序段的循环次数是 。 B
for (i=2; i==0; ) printf(“%d” , i--) ;
A)无限次 B)0次
C)1次 D)2次
9、循环语句的循环体中执行 continue 语句,其作用是 。 C
A) 立即终止程序运行
B) 继续执行 continue 语句之后的循环体各语句
C) 结束本次循环
D) 结束本次循环,跳出循环
10、以下正确的说法是 。 A
A)实参和与其对应的形参各占用独立的存储单元
B)实参和与其对应的形参共占用一个存储单元
C)只有当实参和与其对应的形参同名时才共占用相同的存储单元
D)形参时虚拟的,不占用存储单元
11、以下正确的描述是 。 B
A)函数的定义可以嵌套,但函数的调用不可以嵌套
B)函数的定义不可以嵌套,但函数的调用可以嵌套
C)函数的定义和函数的调用均不可以嵌套
D)函数的定义和函数的调用均可以嵌套
12、若用数组名作为函数调用的实参,传递给形参的是 。 A
A)数组的首地址 B)数组中第一个元素的值
C)数组中的全部元素的值 D)数组元素的个数
13、若有定义和语句
int **pp,*p,a=10,b=20;
pp=&p;p=&a;p=&b;printf("%d\n",*p,**pp);
则输出结果是: 。 D
A) 10,20 B) 10,10
C) 20,10 D) 20,20
14、以下不正确的说法是 。 B
A)形参的存储单元是动态分配的
B)函数中的局部变量都是动态存储
C)全局变量都是静态存储
D)动态分配的变量的存储空间在函数结束调用后就被释放了
15、以下正确的函数首部是 。 A
A)double fun(int x , int y) B)double fun(int x ; int y)
C)double fun(int x , int y) ; D)double fun(int x,y)
16、以下不正确的说法是 。 D
A)在不同函数中可以使用相同名字的变量
B)形式参数是局部变量
C)在函数内定义的变量只在本函数范围内有定义
D)在函数内的复合语句中定义的变量在本函数范围内有定义
17、以下不正确的说法是 。 D
A)全局变量、静态变量的初值是在编译时指定的
B)静态变量如果没有指定初值,则其初值为0
C)动态局部变量如果没有指定初值,则其初值不确定
D)函数中的静态变量在函数每次调用时,都会重新设置初值
18、已知一个函数的定义如下:
double fun(int x, double y)
{ …… }
则该函数正确的函数原型声明为 。 C
A)double fun (int x,double y) B)fun (int x,double y)
C)double fun (int ,double ); D)fun(x,y) ;
19、在说明语句:int *f();中,标识符f代表的是 。 D
A) 一个用于指向整型数据的指针变量
B) 一个用于指向一维数组的行指针
C) 一个用于指向函数的指针变量
D) 一个返回值为指针型的函数名
20、若有定义:int a[10],则对数组a元素的正确引用是 。 D
A)a[10] B)a[3.5]
C)a(5) D)a[10-10]
21、若有定义:int a[3][4],则对数组a元素的正确引用是 。 A
A)a[2][3] B)a[1,3]
C)a(5) D)a[10-10]
22、以下能对二维数组a进行正确初始化的语句是 。 B
A)int a[2][]={{1,0,1},{5,2,3}} ;
B)令数组全部的值为0int a[][3]={{1,2,3},{4,5,6}} ;
C)int a[2][4]={{1,2,3},{4,5},{6}} ;
D)int a[][3]={{1,0,1},{},{1,1}} ;
23、若要用fopen函数打开一个新的二进制文件,该文件既要能读也能写,则文件打开方式字符串应是 。
A) “ab+” B) “w+” C
C) “rb+” D) “ab”
24、若有说明:int a[3][4]={0};则下面正确的叙述是 。 D
A)只有元素a[0][0]可得到初值0
B)此说明语句不正确
C)数组a中各元素都可得到初值,但其值不一定为0
D)数组a中每个元素均可得到初值0
25、变量的指针,其含义是指该变量的 。 B
A) 值 B) 地址
C) 名 D) 一个标志
26、若有说明:int *p1, *p2,m=5,n;以下均是正确赋值语句的选项是 。 C
A) p1=&m; p2=&p1 ; B) p1=&m; p2=&n; *p1=*p2 ;
C) p1=&m; p2=p1 ; D) p1=&m; *p1=*p2 ;
27、下面程序段的运行结果是 。
char *s=”abcde” ; s+=2 ; printf(“%d”,s); C
A) cde B) 字符’c’
C) 字符’c’的地址 D) 不确定
28、p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是 。 B
A) c=*p1+*p2 B) p2=c
C) p1=p2 D) c=*p1*(*p2)
29、若有定义:int a[5];则a数组中首元素的地址可以表示为 。 C
A) &a B) a+1
C) a D) &a[1]
30、如下说明语句,则下面叙述不正确的是 。 C
struct stu { int a ; float b ;} stutype;
A) struct是结构体类型的关键字
B) struct stu是用户定义结构体类型
C) stutype是用户定义的结构体类型名
D) a和b都是结构体成员名
31、设struct {int a; char b; } Q, *p=&Q;错误的表达式是 。 D
A) Q.a B) (*p).b
C) p->a D) *p.b
32、若执行fopen函数时发生错误,则函数的返回值是 。 D
A) 地址值 B) 0
C) 1 D) EOF
二、填空题
1、若a是int变量,则执行表达式a=25/3%3后,a的值是 。 2
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论