C语言3
2011年01月17日
24.有以下程序
int i,n=0;
for(i=2;i内存空间
b. 将p1所指字符串的地址赋给指针p2
c. 对p1和p2两个指针所指字符串进行比较
d. 检查p1和p2两个指针所指字符串中是否有'\0'
【A】
10. 若己定义:int a[9],*p=a;并在以后的语句中未改变p的值,不能表示a[l]地址的表达式是________。
A)p+l B)a+l C)a++ D)++p
【C】
11. 若有说明语句:int a,b,c, *d=&c;则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是______。
A、 scanf("%d%d%d",&a,&b,d); B、 scanf("%d%d%d",&a,&b,&d);
C、scanf("%d%d%d",a,b,d); D、 scanf("%d%d%d",a , b,*d);
【A】
12. 下列程序执行后的输出结果是______。
void func(int *a, int b[ ])
{ b[0]=*a+6; }
main()
{ int a, b[5];
a=0; b[0]=3;
func(&a, b);
printf(“%d \n”, b[0]);
}
A、 6 B、 7 C、 8 D、 9
【A】
13. 设已有定义: char *st="how are you"; 下列程序段中正确的是______。
A、 char a[11], *p=a; strcpy(p,&st[4]); B、 char a[11]; strcpy(++a, st);
C、 char a[11]; a=st; D、 char a[], *p; strcpy(p=&a[1],st+2);
【D】
1. 下列数据结构中,能用二分法进行查找的是()
A)顺序存储的有序线性表
B)线性链表
C)二叉链表
D)有序线性链表
【A】
2. 数组名作为参数传递给函数,作为实在参数的数组名被处理为_____。
a. 该数组的元素个数
b. 该数组中各元素的值
c. 该数组的首地址
d. 以上答案均不对
【C】
3. 若使用一位数组名作函数实参,则以下正确的说法是_____。
a. 无须在主调函数中说明此数组的大小
b. 实参数组类型与形参数组类型可以不匹配
c. 在被调用函数中,不需要考虑形参数组的大小
d. 实参数组名与形参数组名必须一致
【C】
5. 函数调用strcat(strcpy(str1,str2),str3)的功能是_______。
a. 将串str1复制到串str2中后在连接到串str3之后
b. 将串str1连接到串str2之后再复制到串str3之后
c. 将串str2复制到串str1中后再将串str3连接到串str1之后
d. 将串str2连接到串str1中后再将串str1复制到串str3中
【C】
6. 下列描述中不正确的是_______。
A)字符型数组中可以存放字符串
B)可以对字符型数组进行整体输入、输出
C)可以对整型数组进行整体输入、输出
D)不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值
【C】
7. 设char b[10];若从键盘输入字符串“ABCD”,则正确的函数引用是____。
A、scanf(“%s”,b); B、scanf(“%c”,&b[10]); C、gets(b); D、gets(b[10]);
【C】
8. 设有数组定义: char array [ ]="HELLO"; 则数组 array的长度为______。
A、 4 B、 5 C、 6 D、 7
【C】
9. 以下不能正确进行字符串赋初值的语句是______。
A、char str[5]="good!"; B、 char str[]="good!";
C、 char *str="good!"; D、 char str[5]={‘g',‘o',‘o',‘d'};
【A】
10. 当调用函数时,实参是一个数组名,则向函数传送的是______。
A、 数组的长度B、数组的首地址C、数组每一个元素的地址D、 数组每个元素中的值
【B】
11. 下面正确进行字符串赋值操作的语句是
A) char s[5]=[“ABCDDE”]; B) char s[4]={‘A’,’B’,’C’,’D’,’E’};
C) char *s;s=”ABCDEF”; D) char *s; scanf(“%s”,s);
【C】
12.有以下程序
char a[]=”abcdefg”,b[10]=”abcdefg”;
printf(“%d %d\n”,sizeof(a),sizeof(b));
执行后输出结果是()
A)7 7 B)8 8 C)8 10 D)10 10
【C】
13.有以下程序
int f(int b[][4])
{ int i,j,s=0;
for(j=0;j2) i=3-j;
s+=b[j];
}
return s;
}
main( )
{ int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};
printf(“%d\n”,f(a));
} 执行后的输出结果是()
A)12 B)11 C)18 D)16
【D】
14.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是()
A) char s[10]=”abcdefg”; B) char t[]=”abcdefg”,*s=t;
C) char s[10];s=”abcdefg”; D) char s[10];strcpy(s,”abcdefg”);
【D】
15、有以下程序
void f(int a[],int i,int j)
{ int t;
if(i=
D) ==
【B】
5.以下能正确定义且赋初值的语句是()
A)int n1=n2=10;
B)char c=32;
C)float f=f+1.1;
D)double x=12.3e2.5;
【B】
6. 以下不能正确计算代数式 值的C语言表达式是()
A)1/3*SIN(1/2)*SIN(1/2)
B)SIN(0.5)*SIN(0.5)/3
C)POW(SIN(0.5),2)/3
D)1/3.0*POW(SIN(1.0/2),2)
【A】
7. 以下程序的功能是:给R输入数据后计算半径为R的圆面积S,程序在编译时出错
#include
void main()
{
int r;float s;
scanf(“%d”,&r);
s=∏*r*r; printf(“s=%f\n”,s);
}
出错的原因是(D)
A)注释语句书写位置错误
B)存放圆半径的变量R不应该定义为整型
C)输出语句中格式描述符非法
D)计算圆面积的赋值语句中使用了非法变量
【D】
8. 设有定义:int k=1,m=2; float f=7;则以下选项中错误的表达式是()
A) k=k>=k
B) -k++
C) k%int(f)
D) k>=f>=m
【C】
9. 设有定义:int a=2,b=3,c=4;则以下选项中值为0的表达式是()
A)(!a==1)&&(!b==0)
B)!a||b||c
C)a&&b
D)a||(b+b)&&(c=a)
【A】
10.
char p[ ]={‘a’,’b’,’c’},q[ ]=”abc”;
printf(“%d %d\n”,sizeof(p),sizeof(q));
以上程序段的输出结果是()
A)4 4 B)3 3 C)3 4 D)4 3
【C】
11.根据程序段判断:
char a1=’M’,a2=’m’;
printf(“%c\n”,(a1,a2));
以下叙述中正确的是()
A)程序输出大写字母M
B)程序输出小写字母m
C)格式说明符不足,编译出错
D)程序运行时产生出错信息
【B】
12.设有如下定义:
int a=1,b=2,c=3,d=4,m=2,n=2;
则执行表达式:(m=a>b)&&(n=c>d)后,n的值为
A)1 B)2 C)3 D)0
【B】
13. 有以下程序段
char c1=’1’,c2=’2’;
c1=getchar(); c2=getchar(); putchar(c1); putchar(c2);
当运行时输入:a后,以下叙述中正确的是()
A)变量c1将被赋字符a,c2被赋回车符
B)程序将等待用户输入第二个字符
C)变量c1被赋字符a,c2中仍是原有字符2
D)变量c1被赋字符a,c2中将无确定值
【A】
14. 表达式:10!=9的值是()
A)true
B)非零值
C)0
D)1
【D】
15. 在c语言中,运算对象必须是整型数的运算符是()
A)%
B)\
C)%和\
D)**
【A】
16. 以下语句的输出结果是_____。
printf("%d\n",NULL);
A) 不确定的(因变量无定义) B)0 C)-1 D)1
【B】
17. 能正确表示a和b同时为正或同时为负的逻辑表达式是________。
A)(a>=0||b>=0)&&(a=0&&b>=0)&&(a0)&&(a+b0 【D】
18. 表示关系x>y≥z,则正确的c语言表达式为________。
A) x>y>=z B) (x>y)&(y>=z)
C)(y=z) D) (x>y)and(y>=z)
【C】
19.有语句scanf(“%d,%d”,&a,&b),要使变量a、b分别得23、45,则正确的输入形式为_______。
A) 23 45 B) 23,45 C) 23;45 D) 2345
【B】
20. 以下能定义为用户标识符的是____。
A)34 B)e# C) int D) name
【D】
21. 下列程序段的运行结果是______。
int a=2, c=5;
printf("a=%d, b=%d\n",a, c);
A) a=%2, b=%5 B) a=2, b=5 C) a=d, b=d D) a=%d, b=%d
【B】
22. 英文小写字母c的ASCII码为99, 英文大写字母C的ASCII码为______。
A) 50 B) 66 C) 52 D) 67
【D】
23.以下程序段的输出结果是()
int a;
a=(a=5*5,a+20);
a=a+15 ;
printf("%d",a);
A、60 B、40 C、55 D、20
【A】
24. 下列叙述中错误的是()
A)用户所定义的标识符允许作到使用关键字
B)用户所定义的标识符应尽量作到“见名知意”
C)用户所定义的标识符必须以字母或下划线开头
D)用户所定义的标识符中,大小写字母代表不同标识
【A】
25. 若int a=3,则执行完表达式a+=a-=a*a后,a的值是
A) -3 B) 9
C) -12 D) 6
【C】
26.设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为
A)4 B)16 C)32 D)52
【C】
27 设有如下的变量定义:
int I=8, k, a, b;
unsigned long w=5;
double x=1.42,y=5.2;
则以下符合C语言语法的表达式是
A) a+=a-=(b=4)*(a=3) B)x%(-3);
C) a=a*3=2 D)y=float(I)
【A】
28 假定有以下变量定义:
int k=7,x=12;
则能使值为3 的表达式是
A)x%=(k%=5) B)x%=(k-k%5)
C)x%=k-k%5 D)(x%=k)-(k%=5)
【D】
29.以下叙述中正确的是
A) 输入项可以是一个实型常量,如:scanf(“%f”,3.5);
B) 只有格式控制,没有输入项,也能正确输入数据到内存,例如:scanf(“a=%d,b=%d”);
C) 当输入一全实型数据时,格式控制部分可以规定小数点后的位数,例如:scanf(“%4,2f”,&.f);
D)当输入数据时,必须指明变量地址,例如:scanf(“%f”,&f);
【D】
30 设 x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是
A) 把x和y按从大到小排列 B)把x和y按从小到大排列
C)无确定结果 D) 交换x和y中的值
【D】
31以下程序段的输出结果是
int a=12,b=12;
printf(“%d %d\n”,--a,++b);
A)10 10 B)12 12
C)11 10 D)11 13
【D】
2011年01月17日
24.有以下程序
int i,n=0;
for(i=2;i内存空间
b. 将p1所指字符串的地址赋给指针p2
c. 对p1和p2两个指针所指字符串进行比较
d. 检查p1和p2两个指针所指字符串中是否有'\0'
【A】
10. 若己定义:int a[9],*p=a;并在以后的语句中未改变p的值,不能表示a[l]地址的表达式是________。
A)p+l B)a+l C)a++ D)++p
【C】
11. 若有说明语句:int a,b,c, *d=&c;则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是______。
A、 scanf("%d%d%d",&a,&b,d); B、 scanf("%d%d%d",&a,&b,&d);
C、scanf("%d%d%d",a,b,d); D、 scanf("%d%d%d",a , b,*d);
【A】
12. 下列程序执行后的输出结果是______。
void func(int *a, int b[ ])
{ b[0]=*a+6; }
main()
{ int a, b[5];
a=0; b[0]=3;
func(&a, b);
printf(“%d \n”, b[0]);
}
A、 6 B、 7 C、 8 D、 9
【A】
13. 设已有定义: char *st="how are you"; 下列程序段中正确的是______。
A、 char a[11], *p=a; strcpy(p,&st[4]); B、 char a[11]; strcpy(++a, st);
C、 char a[11]; a=st; D、 char a[], *p; strcpy(p=&a[1],st+2);
【D】
1. 下列数据结构中,能用二分法进行查找的是()
A)顺序存储的有序线性表
B)线性链表
C)二叉链表
D)有序线性链表
【A】
2. 数组名作为参数传递给函数,作为实在参数的数组名被处理为_____。
a. 该数组的元素个数
b. 该数组中各元素的值
c. 该数组的首地址
d. 以上答案均不对
【C】
3. 若使用一位数组名作函数实参,则以下正确的说法是_____。
a. 无须在主调函数中说明此数组的大小
b. 实参数组类型与形参数组类型可以不匹配
c. 在被调用函数中,不需要考虑形参数组的大小
d. 实参数组名与形参数组名必须一致
【C】
5. 函数调用strcat(strcpy(str1,str2),str3)的功能是_______。
a. 将串str1复制到串str2中后在连接到串str3之后
b. 将串str1连接到串str2之后再复制到串str3之后
c. 将串str2复制到串str1中后再将串str3连接到串str1之后
d. 将串str2连接到串str1中后再将串str1复制到串str3中
【C】
6. 下列描述中不正确的是_______。
A)字符型数组中可以存放字符串
B)可以对字符型数组进行整体输入、输出
C)可以对整型数组进行整体输入、输出
D)不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值
【C】
7. 设char b[10];若从键盘输入字符串“ABCD”,则正确的函数引用是____。
A、scanf(“%s”,b); B、scanf(“%c”,&b[10]); C、gets(b); D、gets(b[10]);
【C】
8. 设有数组定义: char array [ ]="HELLO"; 则数组 array的长度为______。
A、 4 B、 5 C、 6 D、 7
【C】
9. 以下不能正确进行字符串赋初值的语句是______。
A、char str[5]="good!"; B、 char str[]="good!";
C、 char *str="good!"; D、 char str[5]={‘g',‘o',‘o',‘d'};
【A】
10. 当调用函数时,实参是一个数组名,则向函数传送的是______。
A、 数组的长度B、数组的首地址C、数组每一个元素的地址D、 数组每个元素中的值
【B】
11. 下面正确进行字符串赋值操作的语句是
A) char s[5]=[“ABCDDE”]; B) char s[4]={‘A’,’B’,’C’,’D’,’E’};
C) char *s;s=”ABCDEF”; D) char *s; scanf(“%s”,s);
【C】
12.有以下程序
char a[]=”abcdefg”,b[10]=”abcdefg”;
printf(“%d %d\n”,sizeof(a),sizeof(b));
执行后输出结果是()
A)7 7 B)8 8 C)8 10 D)10 10
【C】
13.有以下程序
int f(int b[][4])
{ int i,j,s=0;
for(j=0;j2) i=3-j;
s+=b[j];
}
return s;
}
main( )
{ int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}};
printf(“%d\n”,f(a));
} 执行后的输出结果是()
A)12 B)11 C)18 D)16
【D】
14.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是()
A) char s[10]=”abcdefg”; B) char t[]=”abcdefg”,*s=t;
C) char s[10];s=”abcdefg”; D) char s[10];strcpy(s,”abcdefg”);
【D】
15、有以下程序
void f(int a[],int i,int j)
{ int t;
if(i=
D) ==
【B】
5.以下能正确定义且赋初值的语句是()
A)int n1=n2=10;
B)char c=32;
C)float f=f+1.1;
D)double x=12.3e2.5;
【B】
6. 以下不能正确计算代数式 值的C语言表达式是()
A)1/3*SIN(1/2)*SIN(1/2)
B)SIN(0.5)*SIN(0.5)/3
C)POW(SIN(0.5),2)/3
D)1/3.0*POW(SIN(1.0/2),2)
【A】
7. 以下程序的功能是:给R输入数据后计算半径为R的圆面积S,程序在编译时出错
#include
void main()
{
int r;float s;
scanf(“%d”,&r);
s=∏*r*r; printf(“s=%f\n”,s);
}
出错的原因是(D)
A)注释语句书写位置错误
B)存放圆半径的变量R不应该定义为整型
C)输出语句中格式描述符非法
D)计算圆面积的赋值语句中使用了非法变量
【D】
8. 设有定义:int k=1,m=2; float f=7;则以下选项中错误的表达式是()
A) k=k>=k
B) -k++
C) k%int(f)
D) k>=f>=m
【C】
9. 设有定义:int a=2,b=3,c=4;则以下选项中值为0的表达式是()
A)(!a==1)&&(!b==0)
B)!a||b||c
C)a&&b
D)a||(b+b)&&(c=a)
【A】
10.
char p[ ]={‘a’,’b’,’c’},q[ ]=”abc”;
printf(“%d %d\n”,sizeof(p),sizeof(q));
以上程序段的输出结果是()
A)4 4 B)3 3 C)3 4 D)4 3
【C】
11.根据程序段判断:
char a1=’M’,a2=’m’;
printf(“%c\n”,(a1,a2));
以下叙述中正确的是()
A)程序输出大写字母M
B)程序输出小写字母m
C)格式说明符不足,编译出错
D)程序运行时产生出错信息
【B】
12.设有如下定义:
int a=1,b=2,c=3,d=4,m=2,n=2;
则执行表达式:(m=a>b)&&(n=c>d)后,n的值为
A)1 B)2 C)3 D)0
【B】
13. 有以下程序段
char c1=’1’,c2=’2’;
c1=getchar(); c2=getchar(); putchar(c1); putchar(c2);
当运行时输入:a后,以下叙述中正确的是()
A)变量c1将被赋字符a,c2被赋回车符
B)程序将等待用户输入第二个字符
C)变量c1被赋字符a,c2中仍是原有字符2
D)变量c1被赋字符a,c2中将无确定值
【A】
14. 表达式:10!=9的值是()
A)true
B)非零值
C)0
D)1
【D】
15. 在c语言中,运算对象必须是整型数的运算符是()
A)%
B)\
C)%和\
D)**
【A】
16. 以下语句的输出结果是_____。
printf("%d\n",NULL);
A) 不确定的(因变量无定义) B)0 C)-1 D)1
【B】
17. 能正确表示a和b同时为正或同时为负的逻辑表达式是________。
A)(a>=0||b>=0)&&(a=0&&b>=0)&&(a0)&&(a+b0 【D】
18. 表示关系x>y≥z,则正确的c语言表达式为________。
A) x>y>=z B) (x>y)&(y>=z)
C)(y=z) D) (x>y)and(y>=z)
【C】
19.有语句scanf(“%d,%d”,&a,&b),要使变量a、b分别得23、45,则正确的输入形式为_______。
A) 23 45 B) 23,45 C) 23;45 D) 2345
【B】
20. 以下能定义为用户标识符的是____。
A)34 B)e# C) int D) name
【D】
21. 下列程序段的运行结果是______。
int a=2, c=5;
printf("a=%d, b=%d\n",a, c);
A) a=%2, b=%5 B) a=2, b=5 C) a=d, b=d D) a=%d, b=%d
【B】
22. 英文小写字母c的ASCII码为99, 英文大写字母C的ASCII码为______。
A) 50 B) 66 C) 52 D) 67
【D】
23.以下程序段的输出结果是()
int a;
a=(a=5*5,a+20);
a=a+15 ;
printf("%d",a);
A、60 B、40 C、55 D、20
【A】
24. 下列叙述中错误的是()
A)用户所定义的标识符允许作到使用关键字
B)用户所定义的标识符应尽量作到“见名知意”
C)用户所定义的标识符必须以字母或下划线开头
D)用户所定义的标识符中,大小写字母代表不同标识
【A】
25. 若int a=3,则执行完表达式a+=a-=a*a后,a的值是
A) -3 B) 9
C) -12 D) 6
【C】
26.设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为
A)4 B)16 C)32 D)52
【C】
27 设有如下的变量定义:
int I=8, k, a, b;
unsigned long w=5;
double x=1.42,y=5.2;
则以下符合C语言语法的表达式是
A) a+=a-=(b=4)*(a=3) B)x%(-3);
C) a=a*3=2 D)y=float(I)
【A】
28 假定有以下变量定义:
int k=7,x=12;
则能使值为3 的表达式是
A)x%=(k%=5) B)x%=(k-k%5)
C)x%=k-k%5 D)(x%=k)-(k%=5)
【D】
29.以下叙述中正确的是
A) 输入项可以是一个实型常量,如:scanf(“%f”,3.5);
B) 只有格式控制,没有输入项,也能正确输入数据到内存,例如:scanf(“a=%d,b=%d”);
C) 当输入一全实型数据时,格式控制部分可以规定小数点后的位数,例如:scanf(“%4,2f”,&.f);
D)当输入数据时,必须指明变量地址,例如:scanf(“%f”,&f);
【D】
30 设 x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是
A) 把x和y按从大到小排列 B)把x和y按从小到大排列
C)无确定结果 D) 交换x和y中的值
【D】
31以下程序段的输出结果是
int a=12,b=12;
printf(“%d %d\n”,--a,++b);
A)10 10 B)12 12
C)11 10 D)11 13
【D】