云南师范大学c语言期末试题1Word格式.docx
《云南师范大学c语言期末试题1Word格式.docx》由会员分享,可在线阅读,更多相关《云南师范大学c语言期末试题1Word格式.docx(10页珍藏版)》请在冰豆网上搜索。
A..c
B..obj
C..exe
D..cpp
2.下列不合法的用户标识符是________。
A
A.4dB.j2_KEY
C.DoubleD._8_
3.以下选项中正确的定义语句是____。
c
A.doublea;
b;
B.doublea=b=7;
C.doublea=7,b=7;
D.double,a,b;
4.任何一个C语言的可执行程序都是从____开始执行的。
A.程序中的第一个函数
B.main()函数的入口处
C.程序中的第一条语句
D.编译预处理语句
5.若有定义语句:
int x=10;
则表达式x-=x+x的值为____。
A.-20
B.10
C.0
D.-10
6.算术运算符、赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为_C_。
A.算术运算、赋值运算、关系运算
B.系运算、赋值运算、算术运算
C.算术运算、关系运算、赋值运算
D.关系运算、算术运算、赋值运算
7.在C语言中,多分支选择结构语句为:
switch(c)
{case常量表达式1:
语句1;
……
case常量表达式n-1:
语句n-1;
default语句n;
}
其中括号内表达式c的类型:
。
c
A.可以是任意类型B.只能为整型
C.可以是整型或字符型D.可以为整型或实型
8.C语言函数内定义的局部变量的隐含存储类别是____。
A.static
B.auto
C.register
D.extern
9.有定义:
char*p1,*p2;
则下列表达式中正确合理的是____。
A.p1/=5
B.p1*=p2
C.p1=&
p2
D.p1+=5
10.设变量定义为“intx,*p=&
x;
”,则p相当于_____。
A.&
xB.*pC.xD.*(&
x)
11.以下程序的执行结果是_______。
main()
{intnum=0;
while(num<
=2){num++;
printf("
%d,"
num);
}}
A.0,1,2
B.1,2
C.1,2,3
D.1,2,3,4
12.以下程序的执行结果是________。
d
main()
{intw=1,x=2,y=3,z=4;
w=(w<
x)?
x:
w;
y)?
y:
z)?
z:
%d"
w);
A.1
B.2
C.3
D.4
13.C语言中while和do—while循环的主要区别是_____c
A.While的循环控制条件比do—while的循环控制条件严格
B.do—while允许从外部转到循环体内
C.do—while的循环体至少无条件执行一次
D.do—while循环体不能是复合语句
14.下列说法中错误的是____。
A.一个数组只允许存储同种类型的变量
B.如果在对数组进行初始化时,给定的数据元素个数比数组元素个数少时,多余的数组元素会被自动初始化为最后一个给定元素的值
C.数组的名称其实是数组在内存中的首地址
D.当数组名作为参数被传递给某个函数时,原数组中的元素的值可能被修改
15.若有定义语句:
intm[]={5,4,3,2,1},i=4;
,则下面对m数组元素的引用中错误的是____。
C
A.m[--i]B.m[2*2]C.m[m[i]]D.m[m[0]]
16.下列语句定义pf为指向float类型变量f的指针,_____是正确的。
A.floatf,*pf=f;
B.floatf,*pf=&
f;
C.float*pf=&
f,f;
D.floatf,pf;
17.以下关于long、int和short类型数据占用内存大小的叙述中正确的是____。
A.均占4个字节
B.根据数据的大小来决定所占内存的字节数
C.由用户自己定义
D.由C语言编译系统决定
18.以下正确的字符常量是___。
A.'
A'
B.'
cd'
C."
\a"
D.'
'
19.如果inta=2,b=3,c=0,下列描述正确的是____。
A.a>
b!
=c和a>
(b!
=c)的执行顺序是一样的
B.!
a!
=(b!
=c)表达式的值为1
C.a||(b=c)执行后b的值为0
D.a&
&
b>
c的结果为假
20.判断char型变量ch是否为大写字母的正确表达式是____。
A.’A’<
=ch<
=’Z’
B.(ch>
=’A’)&
(ch<
=’Z’)
C.(ch>
=’Z’)
D.(‘A’<
=ch)AND(‘Z’>
=ch)
21.下面说法中错误的是____。
A.共用体变量的地址和它各成员的地址都是同一地址
B.共用体内的成员可以是结构变量,反之亦然
C.在任一时刻,共用体变量的各成员只有一个有效
D.函数可以返回一个共用体变量
22.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是。
A.chars[10]="
abcdefg"
;
B.chart[]="
*s=t;
C.chars[10];
s="
D.chars[10];
strcpy(s,"
);
23.下面叙述中正确的是___B_。
A.全局变量在定义它的文件中的任何地方都是有效的
B.全局变量在程序的全部执行过程中一直占用内存单元
C.同一文件中的变量不能重名
D.使用全局变量有利于程序的模块化和可读性的提高
24.若变量已正确定义,执行语句scanf("
%d,%d,%d"
&
k1,&
k2,&
k3);
时,___是正确的输入d
A.2030,40
B.203040
C.20,3040
D.20,30,40
25.若函数的形参为一维数组,则下列说法中正确的是____。
A.调用函数时的对应实参必为数组名
B.形参数组可以不指定大小
C.形参数组的元素个数必须等于实参数组的元素个数
D.形参数组的元素个数必须多于实参数组的元素个数
26.main()
{intx=1,a=0,b=0;
switch(x)
{case0:
b++;
case1:
a++;
case2:
b++;
}printf(“a=%d,b=%d”,a,b);
}该程序的输出结果是_____c
A.1,0
B.1,1
C.2,1
D.2,2
27.定义共用体的关键字是_____a
A.union
B.enum
C.struct
D.typedef
28.下列关于指针定义的描述,___________是错误的。
b
A.指针是一种变量,该变量用来存放某个变量的地址值的
B.指针是一种变量,该变量用来存放某个变量的值
C.指针变量的类型与它所指向的变量类型一致
D.指针变量的命名规则与标识符相同
29.以下结构体类型说明和变量定义中正确的是。
A
A.typedefstructB.structREC;
{intn;
charc;
}REC;
{intn;
};
RECt1,t2;
RECt1,t2;
C.typedefstructRECD.struct
{intn=0;
{intn;
charc='
}t1,t2;
RECt1,t2;
30.使用fseek函数可以实现的操作是。
A
A.改变文件的位置指针的当前位置
B.文件的顺序读写
C.文件的随机读写
D.以上都不对
三、填空题:
(每空2分,共20分)。
1.若有语句double x=17;
int y;
当执行y=(int)(x/5)%2;
之后y的值是【1】1
2.C语言中一个函数由函数首部和【1】两部分组成。
3.设变量定义为“intx=3,*p=&
”,设变量x的地址为2000,则*p=【1】,&
(*p)=【2】
(填数字)
4.以下是对fun函数的正确调用:
fun(a+b,fun(a+b,(a,b)));
则fun函数有【1】个形参。
2
5.有以下程序段,且变量已正确定义和赋值
for(s=1.0,k=1;
k<
=n;
k++)
s=s+1.0/(k*(k+1));
printf("
s=%f\n\n"
s);
请填空,使下面程序段的功能为完全相同
【1】;
k=1;
while(【2】)
{s=s+1.0/(k*(k+1));
【3】;
}
6.有以下程序功能是:
输入一个正整数,判断其是否为素数。
请填空
#include<
stdio.h>
voidmain()
{
intn,i
printf("
请输入一个正整数:
"
scanf("
%d"
&
n);
for(【1】;
i<
n;
i++)
if(【2】)break;
if(i<
n)
printf("
%d不是素数\n"
n);
elseprintf("
%d是素数\n"
四、编程题:
(共40分)。
1.从键盘输入3个整数a,b,c,要求从小到大输出。
(12分)
2.请用while循环把1~100之间所有的偶数相加,结果存放到变量sum中。
(13分)
3.有一个数组score[8],内放8个学生的英语成绩,写一个函数floataverage(floata[],int