德州学院二级C语言期末复习题Word文件下载.docx
- 文档编号:21606339
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:18
- 大小:32.81KB
德州学院二级C语言期末复习题Word文件下载.docx
《德州学院二级C语言期末复习题Word文件下载.docx》由会员分享,可在线阅读,更多相关《德州学院二级C语言期末复习题Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。
ABCD"
};
B.charc[4]={'
A'
'
B'
C'
D'
C.charc[4];
scanf("
%s"
c);
D.charc[4];
c="
;
11.若有说明inta[3][4];
则对其数组元素的正确引用是(A)。
A.a[2][1+2]B.a
(2)(3)C.a[2,3]D.a[3][4]
12.在C语言程序中,以下正确的描述是(A)。
A.函数的定义可以嵌套,但函数的调用不可以嵌套。
B.函数的定义不可以嵌套,但函数的调用可以嵌套。
C.函数的定义和函数的调用均不可以嵌套。
D.函数的定义和函数的调用均可以嵌套。
13.执行下面程序的正确结果是(
)。
main(
)
{
float
a=1.9;
switch(a)
case
0:
printf("
0000"
);
1:
1111"
2:
2222"
%f"
a);
A.1.900000B.
111122221.900000
C.
22221.900000D.
0000111122221.900000
14.若用数组名作为函数调用的实参,传递给形参的是(A)。
A.数组的首地址B.数组第一个元素的值
C.数组中全部元素的值D.数组元素的个数
15.以下叙述中错误的是()
A.计算机不能直接执行用C语言编写的源程序。
B.C程序经编译程序编译后,生成后缀为.obj的文件是一个二进制文件。
C.后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件。
D.后缀为.obj和.exe的二进制文件都可以直接运行。
16.2.执行以下程序段后,w的值为()
intw=’A’,x=14,y=15;
w=((x||y)&
&
(w<
’a’);
A.-1B.NULLC.1D.0
17.3.若有说明语句:
intw=1,x=2,y=3,z=4;
18.则表达试w>
x?
w:
z>
y?
z:
x的值是()。
A.4B.3C.2D.1
19.4.若变量已正确定义,语句“if(a>
b)k=0;
elsek=1;
”和()等价。
A.k=(a>
b)?
0;
B.k=a>
b;
C.k=a<
=b;
D.a<
=b?
0:
1;
20.若有定义:
intx=5,*p=&
x;
则语句printf("
*p);
的输出结果是(B)。
A.随机值B.5C.x的地址D.p的地址
21.以下判断两个字符串相等的正确方法是()。
A.
if(str1=str2)B.
if(str1==str2)
if(strcpy(str1,str2)=0)D.if(strcmp(str1,str2)==0)
22.设变量已正确定义并赋值,以下正确的表达式是()。
A.int(6.3%2)B.x=z*5=3C.i=j+5,++jD.k=20%3.0
23.有以下程序
#include<
stdio.h>
{inti=5;
do
{if(i%3==1)
if(i%5==2){printf("
*%d"
i);
break;
i++;
}while(i!
=0);
\n"
}程序运行结果是()
A.*7B.*3*5C.*2*6D.*5
24.有下列程序:
voidswap1(intc1[],intc2[])
{intt;
t=c1[0];
c1[0]=c2[0];
c2[0]=t;
voidswap2(int*c1,int*c2)
t=*c1;
*c1=*c2;
*c2=t;
main()
{inta[2]={1,2},b[2]={3,4};
swap1(a,a+1);
swap2(&
b[0],&
b[1]);
%d%d%d%d\n"
a[0],a[1],b[0],b[1]);
程序运行后的输出结果是()
A.1234B.2143C.2341D.1324
25.若有定义inta[]={1,2,3},b[3]={1,2,3};
表达式a==b的结果是(A)。
A.不能比较B.结果为真C.结果不确定D.结果为假
26.有定义:
inta=4,b,*p=&
b,*q=&
a;
以下赋值语句中与b=a;
语句等价的是()。
A.*p=*q;
B.p=q;
C.*p=&
D.p=*q;
27.有下列程序:
voidsum(inta[])
{a[1]=a[0]+a[2];
{inta[10]={1,2,3,4,5,6,7,8,9,10};
sum(&
a[2]);
a[2]);
A.6B.7C.3D.9
28.定义structp{intx;
chary[10];
}p1;
,则下列正确的赋值是(C)。
A.p1.y="
sun"
B.p1->
y="
29.C.strcpy(p1.y,"
)D.p1.strcpy(y,"
30.若调用一个函数,且此函数中没有return语句,则正确的说法是()。
A.该函数没有返回值
B.返回若干个系统默认值
C.能返回一个用户所希望的函数值
D.返回一个不正确的值
31.指针是一种()。
A.标识符B.变量C.运算符D.内存地址
32.有下列程序:
main(intargc,char*argv[])
{intn=0,i;
for(i=1;
i<
argc;
i++)n=n*10+*argv[i]-‘0’;
n);
编译连接后生成可执行文件tt.exe。
若运行时输入以下命令行
tt12345678
A.12B.12345C.12345678D.136
33.给出语句xxx.yyy.zzz=10;
,下面正确的是()。
A.结构yyy嵌套在结构xxx中B.结构zzz嵌套在结构yyy中
C.结构xxx嵌套在结构yyy中D.结构xxx嵌套在结构zzz中
34.下面程序执行后k的值为(D)。
int
a=1,b=2,c=3,d=4,k;
k=a>
b?
a:
c>
d?
c:
d
A.1B.2C.4D.4
35.有以下程序,其运行后的输出结果是(C)。
36.设变量已正确定义,以下不能统计出一行中输入字符个数的是(D)。
A.n=0;
while((ch=getchar())!
=′\n′)n++;
B.n=0;
while(getchar()!
C.for(n=0;
getchar()!
=′\n′;
n++);
D.n=0;
for(ch=getchar();
ch!
37.有以下定义:
inta[]={0,1,2,3,4};
charc1='
b'
c2='
1'
则数值为3的表达式是(B)。
A.a[2]B.'
e'
-c1C.a[4-c2]D.c2+1
38.有以下定义:
charc1="
abcdef"
charc2={'
a'
c'
d'
f'
则正确的叙述是(C)。
A.数组c1和数组c2等价。
B.数组c1和数组c2的长度相等。
C.数组c1的长度大于数组c2的长度。
D.数组c1的长度小于数组c2的长度。
39.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是(B)。
A.float型B.int型
C.long型D.double型
40.#include<
string.h>
{charp[20]={‘a’,’b’,’c’,’d’},q[]=”abc”,r[]=”abcde”;
strcpy(p+strlen(q),r);
strcat(p,q);
printf(”%d%d\n”,sizeof(p),strlen(p));
}程序运行后的输出结果是()
A.209B.99C.2011D.1111
41.以下正确的说法是()
如果在一个函数中的复合语句中定义了一个变量,则该变量
A.只在该复合语句中有效B.在该函数中有效
C.在本程序范围内均有效D.为非法变量
42.以下正确的函数形式是()
A.doublefun(intx,inty)
{z=x+y
returnz
B.fun(intx,y);
{intz
C.fun(x;
y)
{intx,y
doublez
z=x+y
D.doublefun(intx,inty)
{doublez
43.若有定义inta[][3]={1,2,3,4,5,6};
下面()能访问元素5。
A.A[4]B.a[0]+4C.**a+4D.*(&
a[0][0]+4)
44.若有chars[10],*p=s;
,则下面表达式正确的是()
A.s=p+s;
B.p=s[0]+10;
C.s[2]=p[4];
D.p=s[0];
45.定义unions{intw,x,y,z;
charc[6];
则sizeof(unions)=()
A.2B.6C.8D.14
46.C语言规定,函数返回值的类型是由()。
A.return语句中的表达式类型所决定。
B.调用该函数时的主调函数类型所决定。
C.调用该函数时系统临时决定。
D.在定义该函数时所指定的函数类型所决定。
47.设已有定义:
intx;
则下列对指针变量p进行定义且赋初值的语句中正确的是()。
A.int*p=1024;
B.int*p=(int)x;
C.intp=&
D.int*p=&
48.有下列程序:
floatf1(floata)
{returna*a;
floatf2(floatb)
{return3*b;
{float(*p1)(float),(*p2)(float),(*t)(float),y1,y2;
p1=f1;
p2=f2;
y1=p2(p1(3.0));
t=p1;
p1=p2;
p2=t;
y2=p2(p1(3.0));
%3.0f,%3.0f\n"
y1,y2);
程序运行后的输出结果是(B)。
A.27,8B.27,81C.2,8D.2,81
49.定义typedefstruct{intx;
}A[10];
Aa;
,下面正确的是(B)。
A.a.x=30;
B.a[0].x=30;
C.a.A[0].x=30;
D.A[0].x=20;
50.结构化程序设计的基本原则不包括()。
A.多元性B.自顶向下
C.模块化D.逐步求精
51.若函数中有定义语句:
intk;
,则()
A.系统将自动给k赋初值0B.这时k中的值无定义
C.系统将自动给k赋初值-1D.这时k中无任何值
52.以下不能定义为用户标识符的是()。
A.MainB._0C._intD.sizeof
53.
下列运算符中,优先级最低的是()。
A.*B.!
=C.+D.=
54.若有以下类型说明语句:
A.charB.intC.doubleD.float
55.有以下程序,程序的运行结果是()。
voidmain()
{intx=8;
for(;
x>
x--)
{if(x%3){printf("
%d,"
x--);
continue;
%d,"
--x);
}
A.7,4,2B.8,7,5,2,C.9,7,6,4,D.8,5,4,2,
56.有以下程序
{inta[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}},i,k,t;
for(i=0;
3;
i++)
for(k=i+1;
k<
4;
k++)if(a[i][i]<
a[k][k]){t=a[i][i];
a[i][i]=a[k][k];
a[k][k]=t;
i++)printf("
a[0][i]);
}程序运行后的结果是()。
A.6,2,1,1,B.6,4,3,2,C.1,1,2,6,D.2,3,4,6,
57.有以下程序
{inta[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},i,j,k,t;
for(j=0;
j<
j++)
for(k=j+1;
k++)
if(a[j][i]>
a[k][i]){t=a[j][i];
a[j][i]=a[k][i];
a[k][i]=t;
a[i][i]);
A.1,6,11,16,B.1,7,11,12,C.1,7,11,13,D.1,6,2,11,
58.在C语言中,只有在使用时才占用内存单元的变量,其存储类型是()。
A.auto和registerB.extern和registerC.auto和staticD.static和register
59.有以下程序,输出结果是()。
voidfun(inta,intb,intc)
{a=456;
b=567;
c=678;
{intx=10,y=20,z=30;
fun(x,y,z);
%d,%d,%d"
x,y,z);
A.30,20,10B.10,20,30C.456,567,678D.678,567,456
60.下列程序的输出结果是()。
voidmain()
{inta[2][3],*p,i;
p=&
a[0][0];
6;
i++)p[i]=i;
%d"
a[1][i]);
A.123B.345C.234D.245
61.若有chars[10],*p=s;
,则下面表达式正确的是()。
B.p=s+10;
62.关于结构类型的成员类型,下列说法正确的是()。
A.成员类型必须是基本数据类型B.每个成员类型必须为同一种
C.成员不可以定义为自身类型的指针D.以上说法均不正确
63.若运行时给变量x输入12,则以下程序的运行结果是()。
main()
{
x,y;
&
x);
y=x>
12?
x+10:
x-12;
y);
A.0B.22C.1D.2
二、填空题
1.算法具有有穷性、可行性、确定性、、输出等5个主要特征。
2.设A为int型的一维数组,如果A的首地址为p,那么A中第i个元素的地址为。
3.人们根据特定的需要,预先为计算机编制的指令序列称为。
4.若以指数形式输出一个浮点数,则对应的格式控制字符为。
5.设变量i已正确定义为整型,且初值为0,则printf(“%d,%”,i++,i++)的输出结果是。
6.设有变量定义为inta[3]={1,4,7},*p=&
a[2];
,*p的值是。
7.结构变量可以作为函数的参数和返回值类型,以方式传递参数。
8.结构指针是结构变量的内存地址,保存该指针的变量称为。
9.
逻辑运算的值也为“真”和“假”两种,在C语言中“真”用,“假”用0来表示。
10.for(i=0;
;
i++);
如果此for语句要执行10次,则需要在空白处填写。
11.若k为整型变量,则下面while循环执行的次数为:
。
k=10;
while(k==0)k=k-1;
12.若有定义:
,以下程序段的输出结果是。
for(k=2;
k++,k++)printf("
##%d"
k);
13.有以下定义:
floatb[20];
则数组b共有20个元素,其中的第一个元素为b[0],最后一个元素为。
14.若有定义:
15.for(i=0;
10;
结束后,i的值是。
16.对定义语句chars[]="
abcd"
则数组的长度是。
17.函数调用语句“f((e1,e2),(e3,e4,e5))”中参数的个数是。
18.在C语言中,一个函数一般由两个部分组成,它们是函数头和。
19.根据变量作用域的不同可以将变量分为局部变量和。
20.指针是C语言的重要特色,实际上它代表了机器的。
21.结构类型的定义需要以关键字开始,其关键字为。
22.for(i=0;
23.for(i=0;
24.有以下定义:
则数组b共有个元素,
25.在C语言中,递归函数分为直接递归和。
26.有定义intarr[10]={0,1,2,3,4,5,6,7,8,9},*p,i=2;
若执行语句:
p=arr;
printf(“%d”,*(p+i));
输出结果为:
。
27.结构数组是以为基类型的数组,下标运算可以访问每个结构元素。
28.指针变量虽然都是存放指针,但不同。
29.使用结构中成员变量必须先写上结构变量名,中间以分割。
30.若有定义:
31.有以下定义:
则数组b共有20个元素,其中的第一个元素为,最后一个元素为b[19]。
32.变量的存储类型有、static、register和extern四种。
33.在C语言中,递归函数分为直接递归和。
34.指针变量虽然都是存放指针,但不同。
35.使用结构中成员变量必须先写上结构变量名,中间以分割。
三、分析程序结果
1.以下程序的输出结果为。
{intn=12345,d;
while(n!
=0){d=n%10;
d);
n/=10;
2.以下程序的输出结果为。
#include"
stdio.h"
{inti,a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
3.以下程序的输出结果
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 德州 学院 二级 语言 期末 复习题