北师大《高级程序设计C语言》共26页.docx
《北师大《高级程序设计C语言》共26页.docx》由会员分享,可在线阅读,更多相关《北师大《高级程序设计C语言》共26页.docx(18页珍藏版)》请在冰豆网上搜索。
![北师大《高级程序设计C语言》共26页.docx](https://file1.bdocx.com/fileroot1/2023-8/4/910b94d9-0442-43ac-a434-308601adf90a/910b94d9-0442-43ac-a434-308601adf90a1.gif)
北师大《高级程序设计C语言》共26页
红色的是正确的
以下叙述正确的是
C语言中各函数之间既允许直接递归调用也允许间接递归调用
C语言中各函数之间既不允许直接递归调用也不允许间接递归调用
C语言中各函数之间既允许直接递归调用不允许间接递归调用
C语言中各函数之间既不允许直接递归调用允许间接递归调用
单选:
第2题(2分)
若有以下说明和定义,则对fun函数的正确调用语句是
a=fun;a(w);
a=fun;(*a)(&c);
b=fun;*b(w);
fun(b);
main()
{
int(*a)(int*),*b(),w[10],c;
:
:
}
fun(int*c){...}
单选:
第3题(2分)
以下程序的输出结果是
main()
{inta[]={1,2,3,4},i,x=0;
for(i=0;i<4;i++){sub(a,&x);printf(“%d”,x);}
printf(“”);
}
sub(int*s,int*y)
{staticintt=3;
*y=s[t];t--;}
1234
4321
0000
4444
单选:
第4题(2分)
以下程序的输出结果是
main()
{intk=4,m=1,p;
p=func(k,m);
printf(“%d,”,p);
p=func(k,m);
printf(“%d”,p);
}
func(inta,intb);
{staticintm,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
8,17
8,16
8,20
8,8
单选:
第5题(2分)
以下程序的输出结果是
voidfun(int*s)
{staticintj=0;
do
s[j]+=s[j+1];
while(++j<2);
}
main()
{intk,a[10]={1,2,3,4,5};
for(k=1;k<3;k++)fun(a);
for(k=0;k<5;k++)printf(“%d”,a[k]);
}
34756
23445
35745
12345
单选:
第6题(2分)
以下程序的输出结果是
f(inta)
{intb=0;
staticintc=3;
a=c++,b++;
return(a);
}
main()
{inta=2,i,k;
for(i=0;i<2;i++)k=f(a++);
printf(“%d”,k);
}
3
6
5
4
单选:
第7题(2分)
以下程序的输出结果是
intm=13;
intfun2(intx,inty)
{intm=3;
return(x*y–m);
}
main()
{inta=7,b=5;
printf(“%d”,fun2(a,b)/m);}
1
2
7
10
单选:
第8题(2分)
C语言中,形参的缺省的存储类说明是
auto(自动)
static(静态)
register(寄存器)
extern(外部)
单选:
第9题(2分)
以下选项中正确的整型常量是__________。
12.
-20
1,000
456
单选:
第10题(2分)
以下选项中正确的实型常量是__________。
0
3.1415
0.329*102
.871
单选:
第11题(2分)
以下选项中不正确的实型常量是__________。
2.607E-1
0.8103e2
-77.77
456e-2
单选:
第12题(2分)
以下选项中不合法的用户标识符是_________。
abc.c
file
Main
PRINTF
单选:
第13题(2分)
以下选项中不合法的用户标识符是__________。
_123
printf
A$
Dim
单选:
第14题(2分)
C语言中运算对象必需是整型的运算符是__________。
%
/
!
**
单选:
第15题(2分)
可在C程序中用作用户标识符的一组标识符是_________。
voiddefineWORD
as_b3_123If
For-abccase
2cDOSIG
单选:
第16题(2分)
若变量已正确定义并赋值,符合C语言语法的表达式是_________。
a=a+7;
a=7+b+c,a++
int(12.3%4)
a=a+7=c+b
单选:
第17题(2分)
以下叙述中正确的是_________。
a是实型变量,C允许进行以下赋值a=10,因此可以这样说:
实型变量允许赋值整型值。
在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式。
执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0。
已有a=3,b=5。
当执行了表达式a=b,b=a之后,已使a中的值为5,b中的值为3。
单选:
第18题(2分)
以下叙述中正确的是________。
在C程序中无论整数还是实数,只要在允许的范围内都能准确无误的表示。
C程序由主函数组成。
C程序由函数组成。
C程序由函数和过程组成。
单选:
第19题(2分)
若a、b、c、d、都是int类型变量且初值为0,以下选项中不正确的赋值语句是_________。
a=b=c=d=100;
d++;
c+b;
d=(c=22)-(b++);
单选:
第20题(2分)
以下合法的C语言赋值语句是_________。
a=b=58
k=int(a+b);
a=58,b=58
--i;
单选:
第21题(2分)
若变量已正确说明为int类型,要给
read(a,b,c);
scanf(“%d%d%d”,a,b,c);
scanf(“%D%D%D”,&a,%b,%c);
scanf(“%d%d%d”,&a,&b,&c);
单选:
第22题(2分)
若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句组是_________。
a=a+b, b=a-b, a=a-b;
t=a, a=b, b=t;
a=t; t=b; b=a;
t=b; b=a; a=t;
单选:
第23题(2分)
若有以下程序段,c3中的值是__________。
intc1=1,c2=2,c3;
c3=c1/c2;
0
1/2
0.5
1
单选:
第24题(2分)
若有以下程序段,其输出结果是__________。
inta=0,b=0,c=0;
c=(a-=a-5),(a=b,b+3);
printf(“%d,%d,%d”,a,b,c);
0,0,-10
0,0,5
-10,3,-10
3,0,-10
单选:
第25题(2分)
当运行以下程序时,在键盘上从第一列开始输入9876543210(此处代表Enter),则程序的输出结果是__________。
main( )
{inta;floatb,c;
scanf(“%2d%3f%4f”,&a,&b,&c);
printf(“a=%d,b=%f,c=%f”,a,b,c);}
a=98,b=765,c=4321
a=10,b=432,c=8765
a=98,b=765.000000,c=4321.000000
a=98,b=765.0,c=4321.0
单选:
第26题(2分)
若int类型占两个字节,则以下程序段的输出是__________。
inta=-1;
printf(“%d,%u”,a,a);
-1,-1
-1,32767
-1,32768
-1,65535
单选:
第27题(2分)
以下程序段的输出是__________。
floata=3.1415;
Printf(“|%6.0f|”,a);
|3.1415|
|3.0|
|3|
|3.|
单选:
第28题(2分)
以下程序段的输出是__________。
floata=57.666;
pirntf(“%010.2f”,a);
*0000057.66*
*57.66*
*0000057.67*
*57.67*
单选:
第29题(2分)
C语言中的简单类型有
整型,实型,逻辑型
整型,实型,字符型
整型,字符型,逻辑型
整型,实型,逻辑型,字符型
单选:
第30题(2分)
C语言中,字符型(char)数据在微机内存中的存储形式是
反码
补码
EBCDIC码
ASCII码
单选:
第31题(2分)
C语言中不合法的字符常量是
′\0XFF′
‘\65′
′&′
′\028′
单选:
第32题(2分)
C语言中不合法的字符串常量是
"121"
′Y=′
""
"ABCD\X6d"
单选:
第33题(2分)
判断char型变量C是否为大写字母的最简单且正确的表达式是
‘A’<=C=‘Z’
(C>=′A′)&(C<=′Z′)
(′A′<=C)AND(′Z′>=C)
(C>=′A′)&&(C<=′Z′)
单选:
第34题(2分)
以下程序的输出结果是
main()
{charc1=′a′,c2=′y′;
printf("%d,%d",c1,c2);
}
因输出格式不合法,无正确输出
65,90
A,Y
65,89
单选:
第35题(2分)
以下程序的输出结果是
main()
{charx=′a′
x=(x>=′A′&&x<=′Z′)?
(x+32):
x;
printf("%c",x);
}
A
a
Z
z
单选:
第36题(2分)
以下各组选项中,均能正确定义二维实型数组a的选项是__________。
floata[3][4];
floata[][4];
floata[3][]={{1},{0}};
floata(3,4);
floata[3][4];
floata[][]={{0},{0}};
floata[3][4];
staticfloata[][4]={{0},{0}};
autofloata[][4]={{0},{0},{0}};
floata[3][4];
floata[3][];
floata[][4];
单选:
第37题(2分)
以下正确的说法是__________。
实参和与其对应的形参占用独立的存储单元
实参和与其对应的形参共占用一个存储单元
只有当实参和与其对应的形参同名时才共占用一个存储单元
形参是虚拟的,不占用存储单元
单选:
第38题(2分)
以下说法中正确的是
C语言程序总是从第一个定义的函数开始执行
在C语言程序中,要调用的函数必须在main函数中定义
C语言程序总是从main函数开始执行
C语言程序中的main函数必须放在程序的开始部分
单选:
第39题(2分)
以下函数的类型是
fff(floatx){
printf("%d",x*x);
}
与参数x的类型相同
void类型
int类型
无法确定
单选:
第40题(2分)
以下程序的输出结果是
func(int a,intb)
{intc
c=a+b;
returnc;}
main( )
{intx=6,y=7,z=8,r;
r=func((x--,y++,x+y),z--);
printf("%d",r);}
11
20
21
31
单选:
第41题(2分)
以下程序有错,错误原因是__________。
main()
{int*p,i;char*q,ch;
p=&i;
q=&ch;
*p=40;
*p=*q;
…
}
p和q类型不一致,不能执行*p=*q;语句
*p中存放的是地址值,因此不能执行*p=40;语句
q没有指向具体的存储单元,所以*q没有实际意义
q虽然指向了具体的存储单元,但该单元中没有确定的值,所以不能执行*p=*q;语句
单选:
第42题(2分)
以下程序的输出结果是
doublef(int n)
{inti;double s;
s=1.0;
for(i=1;i<=n;i++)s+=1.0/i;
returns;
}
main()
{inti,m=3;float a=0.0;
for(i=0;iprintf("%f",a)L;
}
5.500000
3.000000
4.000000
8.25
单选:
第43题(2分)
若有定义:
intx,*pb;则在以下正确的赋值表达式是
pb=&x
pb=x
*pb=&x
*pb=*x
单选:
第44题(2分)
以下程序的输出结果是
#include"stdio.h"
main()
{printf("%d",NULL);}
因变量无定义输出不定值
0
-1
1
单选:
第45题(2分)
有如下语句inta=10,b=20;*p1=&a,*p2=&b;如果让两个指针变量均指向b,正确的赋值方式是__________。
*p1=*p2;
p1=p2;
p1=*p2;
*p1=*p2;
单选:
第46题(2分)
已知指针P的指向如图所示,则表达式*P++的值是
a[0]a[1]a[2]a[3]a[4]
10 20 30 40 50
P
20
30
21
31
单选:
第47题(2分)
已知指针P的指向如图所示,则表达式*++P的值是
a[0]a[1]a[2]a[3]a[4]
10 20 30 40 50
P
20
30
21
31
单选:
第48题(2分)
已知指针P的指向如图所示,则表达式++*P的值
a[0]a[1]a[2]a[3]a[4]
10 20 30 40 50
P
20
30
21
31
单选:
第49题(2分)
以下能正确进行字符串赋值、赋初值的语句组是
chars[5]={′a′,′e′,′i′,′o′,′u′};
char*s;s="good!
";
chars[5]="good!
";
chars[5];s="good";
单选:
第50题(2分)
以下程序的输出结果是
charstr[]="ABCD",*p=str;
printf("%d",*(p+4));
68
0
字符D的地址
不能确定的值