奥鹏西交大21年网考《程序设计基础》复习资料及答案doc.docx
《奥鹏西交大21年网考《程序设计基础》复习资料及答案doc.docx》由会员分享,可在线阅读,更多相关《奥鹏西交大21年网考《程序设计基础》复习资料及答案doc.docx(33页珍藏版)》请在冰豆网上搜索。
奥鹏西交大21年网考《程序设计基础》复习资料及答案doc
单选题
1.以下程序的输出结果是()main(){inta=4,b=5,c=0,d;d=!
a&&!
b||!
c;printf("%d\n",d);}
A.1
B.0
C.非0的数
D.-1
答案:
A
2.以下只有在使用时才为该类型变量分配内存的存储类说明是()。
A.auto和static
B.auto和register
C.register和static
D.extern和register
答案:
B
3.C语言中用于结构化程序设计的三种基本结构是( )。
A.顺序结构、选择结构、循环结构
B.if、switch、break
C.for、while、do-while
D.if、for、continue
答案:
A
4.以下叙述中正确的是()。
A.在程序的一行上可以出现多个有效的预处理命令行
B.使用带参的宏时,参数的类型应与宏定义时的一致
C.宏替换不占用运行时间,只占编译时间
D.在以下定义中CR是称为"宏名"的标识符#defineCR045
答案:
C
5.以下函数,哪个不属于动态申请空间的标准库函数()
A.malloc()
B.calloc()
C.free()
D.strcmp()
答案:
D
6.设intx=1,y=1;表达式(!
x||y--)的值是()。
A.0
B.1
C.2
D.-1
答案:
B
7.语句while(!
E);中的表达式!
E等价于()。
A.E==0
B.E!
=1
C.E!
=0
D.E==1
答案:
A
8.算法的空间复杂度是指( )
A.算法程序的长度
B.算法程序中的指令条数
C.算法程序所占的存储空间
D.执行过程中所需要的存储空间
答案:
D
9.在C语言中,能代表逻辑值“真”的是()。
A.True
B.大于0的数
C.非0整数
D.非0的数
答案:
D
10.变量的指针,其含义是指该变量的()。
A.值
B.地址
C.名
D.一个标志
答案:
B
11.C语言规定,程序中各函数之间
A.既允许直接递归调用也允许间接递归调用
B.不允许直接递归调用也不允许间接递归调用
C.允许直接递归调用不允许间接递归调用
D.不允许直接递归调用允许间接递归调用
答案:
A
12.若有说明inta[3][4];则a数组元素的非法引用是()。
A.a[0][2*1]
B.a[1][3]
C.a[4-2][0]
D.a[0][4]
答案:
D
13.以下选项中不能正确把cl定义成结构体变量的是()
A.typedefstruct
B.structcolorcl
{intred;{intred;
intgreen;intgreen;
intblue;intblue;
}COLOR;};
COLORcl;
C.structcolor
D.struct
{intred;{intred;
intgreen;intgreen;
intblue;intblue;
}cl;}cl;
答案:
B
14.下面转义字符中,表示字符串结束的是( )
A.\0
B.\n
C.\r
D.\f
答案:
A
15.若使用一维数组名作函数实参,则以下正确的说法是()。
A.必须在主调函数中说明此数组的大小
B.实参数组类型与形参数组类型可以不匹配
C.在被调用函数中,不需要考虑形参数组的大小
D.实参数组名与形参数组名必须一致
答案:
A
16.函数的形式参数隐含的存储类型说明是()。
A.extern
B.static
C.register
D.auto
答案:
D
17.若有下列定义和语句,则对a数组元素的非法引用是()。
Inta[2][3],(*pt)[3];pt=a;
A.pt[0][0]
B.*(pt+1)[2]
C.*(pt[1]+2)
D.*(a[0]+2
答案:
B
18.下列关于单目运算符++、--的叙述中正确的是( )
A.它们的运算对象可以是任何变量和常量
B.它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量
D.它们的运算对象可以是char型变量、int型变量和float型变量
答案:
D
19.C语言中,能识别处理的文件为
A.文本文件和数据块文件
B.文本文件和二进制文件
C.流文件和文本文件
D.数据文件和二进制文件
答案:
B
20.以下选项中可作为C语言合法整数的是()
A.10110B
B.0386
C.0Xffa
D.x2a2
答案:
C
21.以下不能正确定义二维数组的选项是()
A.inta[2][2]={{1},{2}};
B.inta[][2]={1,2,3,4};
C.inta[2][2]={{1},2,3};
D.inta[2][]={{1,2},{3,4}};
答案:
D
22.用户定义的函数不可以调用的函数是()。
A.非整型返回值的
B.本文件外的
C.main函数
D.本函数下面定义的
答案:
C
23.有以下程序
int*f(int*x,int*y)
{if(*x<*y)
returnx;
else
returny;
}
main()
{inta=7,b=8,*p,*q,*r}; 执行后输出结果是
A.7,8,8
B.7,8,7
C.8,7,7
D.8,7,8
答案:
B
24.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为()。
A.int
B.float
C.double
D.不确定
答案:
C
25.设:
x=9;y=++x;,则产生的结果是()
A.x=9;y=9;
B.x=10;y=10;
C.x=9;y=10;
D.x=10;y=9;
答案:
B
26.下列四个选项中,均是C语言关键字的选项是()。
A.auto、enum、include
B.switch、typedef、continue
C.signed、union、scanf
D.if、struct、type
答案:
B
27.以下能正确定义数组并正确赋初值的语句是( )。
A.intN=5,b[N][N];
B.inta[1][2]={{1},{3}};
C.intc[2][]={{1,2},{3,4}};
D.intd[3][2]={{1,2},{34}};
答案:
D
28.若已定义:
inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;
其中0≤i≤9,则对a数组元素不正确的引用是( )
A.a[p-a]
B.*(&a[i])
C.p[i]
D.a[10]
答案:
D
29.以下叙述不正确的是()。
A.一个C源程序可由一个或多个函数组成
B.一个C源程序必须包含一个main函数
C.C程序的基本组成单位是函数
D.在C程序中,注释说明只能位于一条语句的后面
答案:
D
30.关于链表,下列说法错误的是()
A.链表是动态分配的一种结构,它根据需要开辟内存单元
B.链表有头指针变量head,它是链表的第一个结点
C.如果要在链表中增加新的结点,需要申请存储空间
D.如果不再使用链表,则应释放所占的存储空间
答案:
B
31.以下程序中,while循环的循环次数是()main(){inti=0;while(i<10){if(i<1)continue;if(I==5)break;i++;}......}
A.1
B.10
C.6
D.死循环,不能确定次数
答案:
D
32.以下正确的说法是()。
A.用户若需调用标准库函数,调用前必须重新定义
B.用户可以重新定义标准库函数,若如此,该函数将失去原有含义
C.系统根本不允许用户重新定义标准库函数
D.用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调
答案:
B
33.以下选项中,与k=n++完全等价的表达式是()。
A.k=n,n=n+1
B.n=n+1,k=n
C.k=++n
D.k+=n+1
答案:
A
34.以下程序的输出结果是()
longfun(intn)
{longs;
if(n==1||n==2)
s=2;
else
s=n-fun(n-1);
returns;
}
main()
{printf(“%ld\n”,fun(3));}
A.1
B.2
C.3
D.4
答案:
A
35.下列说法不正确的是:
()
A.++、——只能用于变量
B.++、——比负号运算符的优先级要高
C.++、——的结合方向是:
自右至左。
D.++、——常用于循环变量表达式中
答案:
B
36.对于如下的表达式:
inta[3][4],*p;p=*a;执行p++操作之后,*p表示取()的内容。
A.a[0][0]
B.a[1][0]
C.a[1][1]
D.a[0][1]
答案:
D
37.有以下程序段
intm=0,n=0;charc='a';
scanf("%d%c%d",&m,&c,&n);
printf("%d,%c,%d\n",m,c,n);
若从键盘上输入:
10A10<回车>,则输出结果是:
( )。
A.10,A,10
B.10,a,10
C.10,a,0
D.10,A,0
答案:
A
38.若有inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则输出结果不为5的语句为()。
A.printf("%d",*(a+5));
B.printf("%d",p[5]);
C.printf("%d",*(p+5));
D.printf("%d",*p[5]);
答案:
D
39.若有inta[][]={{1,2},{3,4}};则*(a+1),*(*a+1)的含义分别为()。
A.非法,2
B.&a[1][0],2
C.&a[0][1],3
D.a[0][0],4
答案:
B
40.下列说法错误的是()
A.else总是和它上面的,离它最近的if配对
B.条件表达式可以不用括号括起来。
C.整个if语句在程序中被看作是一条语句
D.if语句中的各语句可以是一条语句,也可以是复合语句
答案:
B
41.下列程序段的输出结果为()。
Intx=3,y=2;printf("%d",(x-=y,x*=y+8/5));
A.1
B.7
C.3
D.5
答案:
C
42.以下的选择中,正确的赋值语句是()。
A.a=1,b=2
B.j++
C.a=b=5;
D.y=int(x)
答案:
C
43.为了判断两个字符串s1和s2是否相等,应当使用()
A.if(s1==s2)
B.if(s1=s2)
C.if(strcpy(s1,s2))
D.if(strcmp(s1,s2)==0)
答案:
D
44.若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为( )
A.4
B.16
C.32
D.52
答案:
C
45.下面程序:
#include"stdio.