C语言程序设计专复习题文档格式.docx
- 文档编号:20072642
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:23
- 大小:25.36KB
C语言程序设计专复习题文档格式.docx
《C语言程序设计专复习题文档格式.docx》由会员分享,可在线阅读,更多相关《C语言程序设计专复习题文档格式.docx(23页珍藏版)》请在冰豆网上搜索。
A)10,3B)9.3C)9.2D)10.2
16.x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是
A)INPUTx、y、z;
B)scanf("
%d%d%d"
&
x,&
y,&
z);
C)scanf("
x,y,z);
D)read("
17.以下定义语句中正确的是
A)chara='
A'
b='
B'
;
B)floata=b=10.0;
C)inta=10,*b=&
a;
D)float*a,b=&
18.下列选项中,不能用作标识符的是
A)_1234_B)_1_2C)int_2_D)2_int_
19.有以下定义语句doublea,b;
intw;
longc;
若各变量已正确赋值,则下列选项中正确的表达式是
A)a=a+b=b++B)w%(int)a+b)C)(c+w)%(int)aD)w=a==b;
20.有以下程序
main()
{intm=3,n=4,x;
x=-m++;
x=x+8/++n;
printf("
%d\n"
x);
}
程序运行后的输出结果是
A)3B)5C)-1D)-2
21.有以下程序
{chara='
a'
b;
print("
%c,"
++a);
%c\n"
b=a++);
程序运行后的输出结果是
A)b,bB)b,cC)a,bD)a,c
22.有以下程序
{intm=0256,n=256;
%o%o\n"
mn,n);
A)02560400B)0256256C)256400D)400400
23.有以下程序
{inta=666,b=888;
a,b);
A)错误信息B)666C)888D)666,888
24.有以下程序
{inti;
for(i=0;
i<
3;
i++)
switch(i)
{
case0:
%d"
i);
case2:
default:
程序运行后的输出结果是
A)022111B)021021C)000122D)012
25.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<
10的是
A)abs(x-y)<
10B)x-y>
-10&
&
x-y<
10
C)@(x-y)<
-10||!
(y-x)>
10D)(x-y)*(x-y)<
100
26.有以下程序
inta=3,b=4,c=5,d=2;
if(a>
b)
if(b>
c)
d+++1);
else
++d+1);
d);
A)2B)3C)43D)44
27.下列条件语句中,功能与其他语句不同的是
A)if(a)printf("
elseprintf("
y);
B)if(a==0)printf("
C)if(a!
=0)printf("
D)if(a==0)printf("
28.有以下程序
{inti=0,x=0;
for(;
)
if(i==3||i==5)continue;
if(i==6)break;
i++;
s+=i;
};
s);
程序运行后的输出结果是
A)10B)13C)21D)程序进入死循环
29.若变量已正确定义,要求程序段完成求5!
的计算,不能完成此操作的程序段是B
A)for(i=1,p=1;
=5;
i++)p*=i;
B)for(i=1;
i++){p=1;
p*=i;
}
C)i=1;
p=1;
while(i<
=5){p*=i;
i++;
D)i=1;
do{p*=i;
}while(i<
=5);
30.有以下程序
{chara,b,c,d;
scanf("
%c,%c,%d,%d"
a,&
b,&
c,&
d);
c,%c,%c,%c\n"
a,b,c,d);
}
若运行时从键盘上输入:
6,5,65,66<
回车>
。
则输出结果是
A)6,5,A,BB)6,5,65,66C)6,5,6,5D)6,5,6,6
31.以下能正确定义二维数组的是
A)inta[][3];
B)inta[][3]=2{2*3};
C)inta[][3]={};
D)inta[2][3]={{1},{2},{3,4}};
32.有以下程序
intf(inta)
{returna%2;
}
{ints[8]={1,3,5,2,4,6},i,d=0;
for(i=0;
f(s);
i++)d+=s;
printf("
A)9B)11C)19D)21
29.若有以下说明和语句,intc[4][5],(*p)[5];
p=c;
能正确引用c数组元素的是
A)p+1B)*(p+3)C)*(p+1)+3D)*(p[0]+2])
30.有以下程序
{inta=7,b=8,*p,*q,*r;
p=&
q=&
b;
r=p;
p=q;
q=r;
%d,%d,%d,%d\n"
*p,"
q,a,b);
A)8,7,8,7B)7,8,7,8C)8,7,7,8D)7,8,8,7
31.s1和s2已正确定义并分别指向两个字符串。
若要求:
当s1所指串大于s2所指串时,执行语句S;
则以下选项中正确的是
A)if(s1>
s2)S;
B)if(strcmp(s1,s2))S;
C)if(strcmp(s2,s1)>
0)S;
D)if(strcmp(s1,s2)>
32.设有定义语句
intx[6]={2,4,6,8,5,7},*p=x,i;
要求依次输出x数组6个元素中的值,不能完成此操作的语句是
A)for(i=0;
6;
i++)printf("
%2d"
*(p++));
B)for(i=0;
*(p+i));
C)for(i=0;
*p++);
D)for(i=0;
(*p)++);
33.有以下程序
#include
{inta[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL;
*q=*(p+5);
%d%d\n"
*p,*1);
A)运行后报错B)66C)611D)510
34.有以下定义和语句
inta[3][2]={1,2,3,4,5,6,},*p[3];
p[0]=a[1];
则*p[0]+1)所代表的数组元素是
A)a[0][1]B)a[1][0]C)a[1][1]D)a[1][2]
35.有以下程序
{charstr[][10]={"
China"
"
Beijing"
},*p=str;
%s\n"
p+10);
A)ChinaB)BejingC)ngD)ing
36.有以下程序
{chars[]="
ABCD"
*p;
for(p=s+1;
p<
s+4;
p++)printf("
p);
A)ABCDB)AC)BD)BCD
BCDBCCD
CDCDD
DD
37.在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则
A)称为函数的直接递归调用B)称为函数的间接递归调用
C)称为函数的循环调用D)C语言中不允许这样的递归调用
38.已有定义:
inti,a[10],*p;
则合法的赋值语句是
A)p=100;
B)p=a[5];
C)p=a[2]+2;
D)p=a+2;
39.以下叙述中正确的是
A)局部变量说明为static存储数,其生存期将得到延长
B)全局变量说明为static存储类,其作用域将被扩大
C)任何存储类的变量在未赋初值时,其值都是不确定的
D)形参可以使用的存储类说明符与局部变量完全相同
40.设有定义语句:
charc1=92,c2=92;
则以下表达式中值为零的是
A)c1^c2B)c1&
c2C)~c2D)c1|c2
41.程序中对fun函数有如下说明void*fun();
此说明的含义是:
A)fun了数无返回值
B)fun函数的返回值可以是任意的数据类型
C)fun函数的返回值是无值型的指针类型
D)指针fun指向一个函数,该函数无返回值
42.有以下程序
{chars[]"
Yes\n/No"
*ps=s;
puts(ps+4);
*(ps+4)=0;
puts(s);
A)n/NoB)/NoC)n/NOD)Yes
YesYes/No/No/NoYes
43.有以下程序
{unsignedinta;
intb=-1;
a=b;
%u"
a);
A)-1B)65535C)32767D)-32768
44.有以下程序
main()
{inta;
charc=10;
floatf=100.0;
doublex;
a=f/=c*=(x=6.5);
printf("
%d%d%3.1f%3.1f\n"
a,c,f,x);
A)16516.5B)1651.56.5C)1651.06.5D)2651.56.5
45.以下选项中非法的表达式是
A)0<
=x<
100B)i=j==0C)(char)(65+3)D)x+1=x+1
46.有以下程序
{inta=1,b=2,m=0,n=0,k;
k=(n=b>
a)||(m=a<
B);
k,m);
A)0,0B)0,1C)1,0D)1,1
47.有定义语句:
intx,y;
,若值11,变量y得到数值12,下面四组输入要通过scanf("
%d,%d"
y);
语句使变量x得到数形式中,错误的是
A)1112<
B)11,12<
C)11,12<
D)11,<
12<
48.设有如下程序段:
intx=2002,y=2003;
(x,y));
则以下叙述中正确的是
A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出B)运行时产生出错信息C)输出值为2002D)输出值为2003
49.设变量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;
50.有以下程序
voidfun(int*a,inti,intj)
{intt;
if(i<
J)
{t=a;
a=a[j];
a[j]=t;
i++;
j--;
fun(a,i,j);
{intx[]={2,6,18},i;
fun(x,0,3);
for(i=0;
4;
\n"
);
A)1268B)8621C)8162D)8612
51.有以下说明和定义语句
structstudent
{intage;
charnum[8];
};
structstudentstu[3]={{20,"
200401"
},{21,"
200402"
},{10\9,"
200403"
}};
structstudent*p=stu;
以下选项中引用结构体变量成员的表达式错误的是
A)(p++)->
numB)p->
numC)(*p).numD)stu[3].age
52.有以下程序
mina()
{intx[]={1,3,5,7,2,4,6,0},i,j,k;
for(j=2;
j>
=i;
j--)
if(x[j+1]>
x[j]){k=x[j];
x[j]=x[j+1];
x[j+1]=k;
for(j=4;
j<
7-i;
j++)
for(j=4;
if(x[j]>
x[j+1]){k=x[j];
8;
程序运行后的输出结果是:
A)75310246B)1234567C)76310462D)13570246
53.有如下程序
{FILE*fp1;
fp1=fopen("
f1.txt"
w"
fprintf(fp1,"
abc"
fclose(fp1);
若文本文件f1.txt中原有内容为:
good,则运行以上程序后文件f1.txt中的内容为
A)goodabcB)abcdC)abcD)abcgood
53~55.以下程序的功能是:
建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中,请从与下划线处号码对应的一组选若中选择出正确的选项。
stuctnode
{chardata;
structnode*next;
(53)CreatList(char*s)
{structnode*h,*p,*q);
h=(structnode*)malloc(sizeof(structnode));
p=q=h;
while(*s!
='
\0'
{p=(structnode*)malloc(sizeof(structnode));
p->
data=(54);
q->
next=p;
q=(55);
s++;
next='
returnh;
{charstr[]="
linklist"
structnode*head;
head=CreatList(str);
...
(53)A)char*B)structnodeC)structnode*D)char
(54)A)*sB)sC)*s++D)(*s)++
(55)A)p->
nextB)pC)sD)s->
next
56.有以下程序
{ints=0,a=1,n;
scanf("
n);
do
{s+=1;
a=a-2;
while(a!
=n);
若要使程序的输出值为2,则应该从键盘给n输入的值是A)-1B)-3C)-5D)0
57.若有如下程序段,其中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+c;
C)s=s+c;
D)s=b+c;
58.要求以下程序的功能是计算:
s=1+1/2+1/3+……+1/10
{intn;
floats;
s=1.0;
for(n=10;
n>
1;
n--)s=s+1/n;
%6.4f\n"
程序运行后输出结果错误,导致错误结果的程序行是A)s=1.0;
B)for(n=10;
n--)C)s=s+1/n;
D)printf("
59.已定义ch为字符型变量,以下赋值语句中错误的是
A)ch='
\'
B)ch=62+3;
C)ch=NULL;
D)ch='
\xaa'
60.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是
A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参
C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参
61.有以下函数定义:
voidfun(intn,doublex){……}若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是
A)fun(inty,doublem);
B)k=fun(10,12.5);
C)fun(x,n);
D)voidfun(n,x);
62.有以下程序voidfun(char*a,char*b){a=b;
(*a)++;
}main(){charc1='
c2='
*p1,*p2;
p1=&
c1;
p2=&
c2;
fun(p1,p2);
%c%c\n"
c1,c2);
程序运行后的输出结果是A)AbB)aaC)AaD)Bb
63.若程序中已包含头文件stdio.h,以下选项中,正确运用指针变量的程序段是
A)int*i=NULL;
B)float*f=NULL;
*f=10.5;
C)chart='
m'
*c=&
t;
D)long*L;
*c=&
L='
64.有以下程序#include
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 复习题