云南师范大学C语言期末试题1.docx
- 文档编号:8993571
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:10
- 大小:20.08KB
云南师范大学C语言期末试题1.docx
《云南师范大学C语言期末试题1.docx》由会员分享,可在线阅读,更多相关《云南师范大学C语言期末试题1.docx(10页珍藏版)》请在冰豆网上搜索。
云南师范大学C语言期末试题1
云南师范大学2009-2010学年下学期统一考试
《计算机技术基础》(C语言)期末考试试卷
考试方式(闭卷)考试时量:
90分钟试卷编号(A卷)
一、判断题:
(每题1分,共10分)
1.C语言中表达式3/2得到的结果是1.5。
b
A.对 B.错
2.在C程序中,APH和aph代表不同的变量。
a
A.对 B.错
3.c程序总是从程序的第一条语句开始执行。
b
A.对B.错
4.选择结构(if语句)和循环结构都可以使用嵌套形式。
a
A.对 B.错
5. 构成数组的各个元素可以有不同的数据类型。
b
A.对 B.错
6.对于用户自己定义的函数,在使用前必须加函数声明。
A.对 B.错
7.C语言中数据类型只有整型、实型和字符型。
A.对 B.错
8.有如下说明:
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是*(P+8)。
a
A.对 B.错
9.typedef可以定义生成新的数据类型。
b
A.对B.错
10.函数调用语句:
func(rec1,rec2+rec3,(rec4,rec5));中,含有的实参个数是3。
A.对B.错
二、单选题(在本题的每一小题的被选答案中只有一个正确答案,多选不给分,每题1分,共30分)
1.C语言源程序文件经过C编译后生成的目标文件的后缀名为_____B
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语言的可执行程序都是从____开始执行的。
b
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语言函数内定义的局部变量的隐含存储类别是____。
b
A.static
B.auto
C.register
D.extern
9.有定义:
char*p1,*p2;则下列表达式中正确合理的是____。
c
A.p1/=5
B.p1*=p2
C.p1=&p2
D.p1+=5
10.设变量定义为“intx,*p=&x;”,则p相当于_____。
a
A.&xB.*pC.xD.*(&x)
11.以下程序的执行结果是_______。
c
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: w; w=(w y: w; w=(w z: w; printf("%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.下列说法中错误的是____。 b 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的指针,_____是正确的。 b A.floatf,*pf=f; B.floatf,*pf=&f; C.float*pf=&f,f; D.floatf,pf; 17.以下关于long、int和short类型数据占用内存大小的叙述中正确的是____。 d A.均占4个字节 B.根据数据的大小来决定所占内存的字节数 C.由用户自己定义 D.由C语言编译系统决定 18.以下正确的字符常量是___。 a A.'A'B.'cd'C."\a"D.'' 19.如果inta=2,b=3,c=0,下列描述正确的是____。 b 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>=’A’)&&(ch<=’Z’) D.(‘A’<=ch)AND(‘Z’>=ch) 21.下面说法中错误的是____。 d A.共用体变量的地址和它各成员的地址都是同一地址 B.共用体内的成员可以是结构变量,反之亦然 C.在任一时刻,共用体变量的各成员只有一个有效 D.函数可以返回一个共用体变量 22.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是。 C A.chars[10]="abcdefg"; B.chart[]="abcdefg",*s=t; C.chars[10];s="abcdefg"; D.chars[10];strcpy(s,"abcdefg"); 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.若函数的形参为一维数组,则下列说法中正确的是____。 d A.调用函数时的对应实参必为数组名 B.形参数组可以不指定大小 C.形参数组的元素个数必须等于实参数组的元素个数 D.形参数组的元素个数必须多于实参数组的元素个数 26.main() {intx=1,a=0,b=0; switch(x) {case0: b++; case1: a++; case2: a++;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;charc;}; RECt1,t2;RECt1,t2; C.typedefstructRECD.struct {intn=0;{intn;charc;}REC; charc='A';}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;”,设变量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】;} printf("s=%f\n\n",s); 6.有以下程序功能是: 输入一个正整数,判断其是否为素数。 请填空 #include voidmain() { intn,i printf("请输入一个正整数: "); scanf("%d",&n); for(【1】;i if(【2】)break; if(i printf("%d不是素数\n",n); elseprintf("%d是素数\n",n); } 四、编程题: (共40分)。 1.从键盘输入3个整数a,b,c,要求从小到大输出。 (12分) 2.请用while循环把1~100之间所有的偶数相加,结果存放到变量sum中。 (13分) 3.有一个数组score[8],内放8个学生的英语成绩,写一个函数floataverage(floata[],intn)(其中n表示学生的人数)求出平均分aver,并在主函数中输出平均分和高于平均分的英语成绩。 (要求输出保留2位小数)(15分) 答案 一、判断题: 1~5BABAB6~10BBABA 二、单选题 1~5BACBD6~10CCBCA 11~15CDCBD16~20BDABC 21~25DCBDD26~30CABAA 三、填空题: 1.12.函数体 3.[1]3[2]2000 4.2 5.[1]s=1.0[2]k<=n[3]k++ 6.[1]i=2[2]n%i==0 四、编程题: 1.参考程序: #include voidmain() { inta,b,c,t; printf("请输入3个整数: "); scanf("%d%d%d",&a,&b,&c); if(a>b) {t=a;a=b;b=t;} if(a>c) {t=a;a=c;c=t;} if(b>c) {t=b;b=c;c=t;} printf("从小到大的数为%d,%d,%d",a,b,c); } 2.参考程序: #include voidmain() { inti=2,sum=0; while(i<=100) {sum=sum+i; i=i+2; } printf("sum=%d\n",sum); } 3.参考程序: #include floataverage(floata[],intn) {inti;floataver=0; for(i=0;i aver=aver+a[i]; aver=aver/n; returnaver; } voidmain() { inti,s,c; floatscore[8],s_aver; printf("输入学生的成绩: "); for(i=0;i<8;i++) scanf("%f",&score[i]); for(i=0;i<8;i++) printf("%.2f\n",score[i]); printf("\n"); s_aver=average(score,8); printf("学生的平均成绩是: %.2f\n",s_aver); for(i=0;i<8;i++) {if(score[i]>s_aver) printf("高于平均成绩有: %.2f\n",score[i]); } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 云南 师范大学 语言 期末 试题