1、云南师范大学C语言期末试题1云南师范大学2009-2010学年下学期统一考试计算机技术基础(C语言)期末考试试卷考试方式(闭卷) 考试时量:90分钟 试卷编号(A卷)一、判断题:(每题1分,共10分)1. C语言中表达式3/2得到的结果是1.5。b A.对 B.错2在 C 程序中,APH 和 aph 代表不同的变量。aA.对 B.错3. c程序总是从程序的第一条语句开始执行。bA.对 B.错4选择结构(if语句)和循环结构都可以使用嵌套形式。aA.对 B.错5.构成数组的各个元素可以有不同的数据类型。b A.对 B.错6. 对于用户自己定义的函数,在使用前必须加函数声明。A.对 B.错7C语言
2、中数据类型只有整型、实型和字符型。A.对 B.错8.有如下说明:int a10=1,2,3,4,5,6,7,8,9,10,*p=a; 则数值为9的表达式是 *(P+8)。 aA.对 B.错9.typedef可以定义生成新的数据类型。bA.对 B.错10. 函数调用语句:func(rec1,rec2+rec3,(rec4,rec5);中,含有的实参个数是3。 A.对 B.错二、 单选题(在本题的每一小题的被选答案中只有一个正确答案,多选不给分,每题1分,共30分)1C语言源程序文件经过C编译后生成的目标文件的后缀名为 _B A.c B.obj C.exeD.cpp2下列不合法的用户标识符是_。A
3、 A4d Bj2_KEY CDouble D_8_3以下选项中正确的定义语句是_。c Adouble a; b; Bdouble a=b=7; Cdouble a=7, b=7; Ddouble, a, b;4任何一个C语言的可执行程序都是从_开始执行的。b A程序中的第一个函数 Bmain( )函数的入口处 C程序中的第一条语句 D编译预处理语句5若有定义语句:intx=10;,则表达式x-=x+x的值为 _。A-20B 10C 0 D-106 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为_C_。A算术运算、赋值运算、关系运算 B系运算、赋值运算、算术运算C算术运算、
4、关系运算、赋值运算 D关系运算、算术运算、赋值运算7在C语言中,多分支选择结构语句为:switch(c) case 常量表达式1:语句1; case 常量表达式n-1:语句n-1; default 语句n;其中括号内表达式c的类型: 。cA可以是任意类型 B只能为整型C可以是整型或字符型 D可以为整型或实型 8C语言函数内定义的局部变量的隐含存储类别是_。b Astatic Bauto CregisterDextern9有定义:char*p1,*p2;则下列表达式中正确合理的是_。c Ap1/=5 Bp1*=p2 Cp1=&p2 Dp1+=510设变量定义为“int x, *p=&x;”,则p
5、相当于_。aA&x B*p Cx D*(&x)11以下程序的执行结果是_。c main() int num = 0; while( num = 2 ) num+; printf( %d,num ); A0,1,2 B 1,2 C 1,2,3D 1,2,3,412以下程序的执行结果是_。d main() int w = 1, x = 2, y = 3, z = 4; w =( w x ) ? x : w; w =( w y ) ? y : w; w =( w b!=c和a(b!=c)的执行顺序是一样的 B!a!=(b!=c)表达式的值为1 Ca|(b=c)执行后b的值为0 Da&bc的结果为假2
6、0判断char型变量ch是否为大写字母的正确表达式是_。 AA=ch=A)&(ch=A)&(ch=Z) D(A=ch)21下面说法中错误的是_。d A共用体变量的地址和它各成员的地址都是同一地址 B共用体内的成员可以是结构变量,反之亦然 C在任一时刻,共用体变量的各成员只有一个有效D函数可以返回一个共用体变量22以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是 。CAchar s10=abcdefg;Bchar t=abcdefg,*s=t;Cchar s10;s=abcdefg;Dchar s10;strcpy(s,abcdefg);23.下面叙述中正确的是_B_。 A.全局变量在
7、定义它的文件中的任何地方都是有效的 B.全局变量在程序的全部执行过程中一直占用内存单元 C.同一文件中的变量不能重名 D.使用全局变量有利于程序的模块化和可读性的提高24若变量已正确定义,执行语句scanf(%d,%d,%d ,&k1,&k2,&k3);时,_是正确的输入 d A20 30,40 B20 30 40 C20,30 40D20,30,4025若函数的形参为一维数组,则下列说法中正确的是_ _。d A调用函数时的对应实参必为数组名 B形参数组可以不指定大小 C形参数组的元素个数必须等于实参数组的元素个数 D形参数组的元素个数必须多于实参数组的元素个数26main()int x=1,
8、a=0,b=0;switch (x) case 0: b+; case 1: a+; case 2: a+;b+; printf(“a=%d,b=%d”,a,b);该程序的输出结果是_c A1,0 B1,1 C2,1 D2,227定义共用体的关键字是_ a Aunion Benum CstructDtypedef28下列关于指针定义的描述,_是错误的。 b A指针是一种变量,该变量用来存放某个变量的地址值的 B指针是一种变量,该变量用来存放某个变量的值 C指针变量的类型与它所指向的变量类型一致D指针变量的命名规则与标识符相同29以下结构体类型说明和变量定义中正确的是 。 A Atypedef
9、struct Bstruct REC; int n; char c; REC; int n; char c; REC t1,t2; REC t1,t2; Ctypedef struct REC Dstruct int n=0; int n; char c; REC; char c=A; t1, t2; REC t1, t2; 30使用fseek函数可以实现的操作是 。AA改变文件的位置指针的当前位置B文件的顺序读写C文件的随机读写D以上都不对三、填空题:(每空2分,共20分)。 1若有语句doublex=17;inty;,当执行y=(int)(x/5)%2;之后y的值是【1】12C语言中一个函
10、数由函数首部和【1】两部分组成。3设变量定义为“int x=3, *p=&x;”,设变量x的地址为2000,则*p=【1】,&(*p)=【2】(填数字)4以下是对fun函数的正确调用:fun(a+b,fun(a+b,(a,b); 则fun函数有【1】个形参。25有以下程序段,且变量已正确定义和赋值for(s=1.0,k=1;k=n;k+) s=s+1.0/(k*(k+1); printf(s=%fnn,s); 请填空,使下面程序段的功能为完全相同 【1】;k=1; while(【2】) s=s+1.0/(k*(k+1); 【3】; printf(s=%fnn,s);6有以下程序功能是:输入一个
11、正整数,判断其是否为素数。请填空#include void main() int n, i printf(请输入一个正整数:); scanf(%d, &n); for(【1】; i n; i+) if(【2】) break; if( i n ) printf(%d不是素数n, n); else printf(%d是素数n, n);四、编程题:(共40分)。 1从键盘输入3个整数a,b,c,要求从小到大输出。(12分)2请用while循环把1100之间所有的偶数相加,结果存放到变量sum中。(13分)3有一个数组score8,内放8个学生的英语成绩,写一个函数float average(floa
12、t a,int n)(其中n表示学生的人数)求出平均分aver,并在主函数中输出平均分和高于平均分的英语成绩。(要求输出保留2位小数)(15分)答案一、 判断题:15 B A B A B 610 B B A B A 二、 单选题15 B A C B D 610 C C B C A1115 C D C B D 1620 B D A B C2125 D C B D D 2630 C A B A A三、 填空题: 11 2函数体 313 2 2000 4251 s=1.0 2 k=n 3k+ 61 i=2 2n%i=0四、编程题:1参考程序:#include void main() int a,b,
13、c,t; printf(请输入3个整数:); scanf(%d%d%d ,&a,&b,&c); if (ab) t=a;a=b;b=t; if (ac) t=a;a=c;c=t;if (bc) t=b;b=c;c=t;printf(从小到大的数为%d,%d,%d ,a,b,c);2参考程序:#include void main ( ) int i = 2, sum = 0; while ( i = 100 ) sum = sum + i; i=i+2; printf (sum = %dn, sum);3参考程序:#include float average(float a,int n) int
14、 i; float aver=0; for(i=0;in;i+) aver=aver+ai; aver=aver/n; return aver;void main() int i, s,c; float score8,s_aver; printf(输入学生的成绩:); for(i=0;i8;i+) scanf(%f,&scorei); for(i=0;i8;i+) printf(%.2fn,scorei); printf(n); s_aver=average(score,8); printf(学生的平均成绩是:%.2fn, s_aver); for(i=0;is_aver) printf(高于平均成绩有:%.2fn, scorei);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1