《c语言程序设计》期末试卷A卷.doc
系(部): 专业: 班级: 学号: 姓名: 密封线内严禁答题,违者作零分处理;密封线外严禁写姓名或作其他标记,违者作舞弊论处琼台师范高等专科学校考试试卷(A卷)(2008-2009学年第二学期)课程名称C语言程序设计考试时量100分钟题次第一题第二题第三题第四题第五题第六题第七题第八题第九题第十题合计合分人签名标准分数4010211217100实得分数得分签名一、单选题(每一小题的备选答案中,只有一个答案是正确的,请把你认为正确答案的选项填入表格内。错选、多选、不选均不给分,20小题,每小题2分,共40分)。1、在C语言中,合法的字符常量是( )。A、084B、x43C、abD、”0” 2、在下列选项中,不正确的赋值语句是( )。A、+t; B、n1=(n2=(n3=0)C、k=i=j;D、a=b+c=13、在C语言中,静态变量存储类型的说明符是( )。A、autoB、registerC、staticD、extern4、设有如下定义:int x=10,y=3,z;则语句printf(“%dn”,z=(x%y,x/y);的输出结果为()。A、1B、0C、4D、35、当定义一个结构体变量时系统分配给它的内存空间大小是( )。A、各个成员所需内存的总和B、结构体中第一个成员所需的内存量C、各个成员中占用内存量最大者所需的容量D、结构体中最后一个成员所需的内存量6、已知函数fread的调用形式为fread(buffer,size,count,fp),其中buffer代表的是( )。A、存放读入数据项的存储区B、存放读取数据的地址或指向此地址的指针C、一个指向所读文件的文件指针D、一个整形变量,代表要读入的数据项总数7、合法的数组定义是()。A、int a =“string”;B、int a5=0,1,2,3,4,5;C、vhst s =“string”;D、char a =0,1,2,3,4,5;8、C语言表达式 5>2>7>8 的值是()。A、22B、2C、1D、09、若有语句:double *p6 其含义是( )。A、p是指向double型变量的指针B、p是double型数组C、p是指向double类型的指针数组D、p是数组指针10、函数说明语句:void *fun( ); 的含义是()。A、函数fun的返回值是一个通用型指针B、函数fun的返回值可以是任意类型C、函数fun无返回值D、指针fun指向一个函数,该函数无返回值11、有语句:char s20=”programming”,*ps=s; 则不能引用字母o的表达式是( )。A、ps+2B、s2C、ps2D、ps+=2,*ps12、下列说法不正确的是( )。A、主函数main中定义的变量在整个文件或程序中有效B、不同函数中,可以使用相同名字的变量C、形式参数是局部变量D、在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效13、以下叙述不正确的是( )。A、预处理命令行都必须以“#”号开始B、在程序中凡是以“#”号开始的语句行都是预处理命令行C、C程序在执行过程中对预处理命令进行处理D、#define IBM_PC 是正确的宏定义14、以下程序的执行结果是( )。#include <stdio.h>#idefine ADD(x) x+xvoid main( ) int m=1,n=2,k=3; int sum=ADD(m+n)*k; printf(“sum=%d”,sum);A、sum=9B、sum=10C、sum=12D、sum=1815、以下对C语言的描述中,正确的是( )。A、在C程序中调用函数时,只能将实参的值传递给形参,形参的值不能传递给实参B、C语言中的函数既可以嵌套定义,又可以递归定义C、函数必须有返回值,否则不能使用函数D、C语言程序中要调用的所有函数都必须放在同一个源程序文件中16、C语言程序由函数组成,它的( )。A、主函数必须在其他函数之前,函数内可以嵌套定义函数B、主函数可以在其他函数之后,函数内不可以嵌套定义函数C、主函数必须在其它函数之前,函数内不可以嵌套定义函数D、主函数必须在其它函数之后,函数内可以嵌套定义函数17、以下正确的说法是( )。A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main函数中定义C、C语言程序总是从main函数开始执行D、在C语言程序中,main函数必须放在程序的开始部分18、设i和k都是int类型,则for循环语句( )。for(i=0,k=-1;k=1;i+,k+) printf("*n");A、循环结束的条件不合法B、循环体一次也不执行C、循环体只执行一次D、是无限循环19、当执行以下程序段时,x=-1;dox=x*x;while(!x);结果为( )。A、循环体将执行一次B、循环体将执行两次C、循环体将执行无数次D、系统将提示有语法错误20、在下列程序段中,枚举变量 c1的值是( )。enum color red,yellow,blue=4,green,whitec1; c1=yellow;c1=white; A、1B、3C、5D、6得分签名二、填空题(每空1分,共10分)。1、在C语言中,指针是变量的 。2、二维数组在内存中的存放形式是 。3、根据数据的组织形式,可以把文件分为 文件和 文件。4、在C语言中,根据作用域可以把变量分为 变量和 变量。5、函数三要素为 、 、 。6、已知add函数定义如下:int add(int a,int b) int sum; sum=a+b+c+d; return sum;写出该函数的函数声明: 。得分签名三、程序填空。(根据程序功能,在横线上写代码使程序能正确运行,如有注释要按注释要求写代码,3小题,每小题7分,共21分)。1、输入20个整数,让它们从小到大排列。#define NUM 20 void main( )int aNUM;int i,j,temp;printf(“请输入%d个整数:n”,NUM);for(i=0;i<NUM;i+) scanf(“%d”,&ai);printf(“n”);for( (1) ) for( (2) ) if( (3) ) temp = ai; ai = ai+1; ai+1 = temp printf(“排序后的数组为:”); for(i=0;i<NUM;i+) printf(“%d”,ai); 2、定义并调用函数swap实现交换两个变量a和b的值。#include <stdio.h>void swap(int *x,int *y) int temp; (1) (2) (3) void main( ) int a=1,b=3; printf(“a=%d,b=%dn”,a,b); swap( (4) ); printf(“a=%d,b=%dn”);3、输入文件名,输出该文件的所有内容。#include <stdio.h>void main( ) FILE *fp; char f_name30; char out_char;printf(“请输入文件名:”);scanf(“%s”,f_name); (1) if(fp != NULL) while(out_char=fgetc(fp)!= EOF) putchar(out_char);else printf(“该文件不存在!n”); exit(1); (2) 得分签名四、看程序写结果(2小题,每小题6分,共12分)。1、#include <stdio.h> int a=5;void main( ) int b=3; int a=b-1; printf(“a=%d*”,a);a+;printf(“%dn”,a);运行结果为 。2、#include <stdio.h> #include <string.h> void main() char *p1,*p2,str50=”xyz”; p1=”abcd”; p2=”ABCD”; strcpy(str+2,strcat(p1+2,p2+1); printf(“%s”,str);运行结果为 。得分签名五、编程题。按要求编写出可以运行成功的源程序。(2小题,7分+10分,共17分)。1、字符串加密:从键盘输入一个字符串,通过加密处理(字符串中每个字符转换成该字符的后继字符),输出加密后的字符串。2、定义一个整数数组并从键盘输入各元素的值,从第一个元素开始查找有没有3的倍数,有则把该元素后面的元素用星号代替,输出代替后的数组。 系(部): 专业: 班级: 学号: 姓名: 密封线内严禁答题,违者作零分处理;密封线外严禁写姓名或作其他标记,违者作舞弊论处答 题 卡题 次第一题第二题第三题第四题第五题第六题第七题第八题第九题第十题合 计合分人签 名标准分数4010211217100实得分数得分签名一、单选题(每一小题的备选答案中,只有一个答案是正确的,请把你认为正确答案的题号填入试卷后面的答题卡中。错选、多选、不选均不给分,20小题,每小题2分,共40分)。题号12345678910答案题号11121314151617181920答案得分签名二、填空题(10空,每空1分,共10分)1、 2、 3、 4、 5、 6、 得分签名三、程序填空。(根据程序功能,在横线上写代码使程序能正确运行,如有注释要按注释要求写代码,3小题,每小题7分,共21分)。1、(1) (2) (3) 2、(1) (2) (3) (4) 3、(1) (2) 得分签名四、看程序写结果(2小题,每小题6分,共12分)。1、 2、 得分签名五、编程题。按要求编写出可以运行成功的源程序。(7分+10分,共17分)。1、字符串加密:从键盘输入一个字符串,通过加密处理(字符串中每个字符转换成该字符的后继字符),输出加密后的字符串。_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 2、定义一个整数数组并从键盘输入各元素的值,从第一个元素开始查找有没有3的倍数,有则把该元素后面的元素用星号代替,输出代替后的数组。 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 7 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 组的替,替素元元则,倍有查素第值元输键数数 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _串字密出符后符该符个字处过串个入从加)分, 。源行可出要程签得 )分 , 果程签得 ) ) ( ) ,题每 码求按注有运序码上横能序。空签得 分 分空,题签得答 题答 题)分共分,0,均选、错题的试号案答你,确是有中选题每选签得分0 分 分 论舞违标作名写封理零违答内 : : : :专 : 线 , 密 答弊违标其姓严外;零违答禁线 : : 级 业 部 ) 封 )( 组数代输替素面素把数的有始开一,元输键并个一串字后输)后的换字个符处过串个输从:) ,分 题。源的运可求题签得 为) ”% ) + ” ” ”=” ”0 ,* ( 果) % +),” - = ) ,分,小果写签得 ( ) ) !不“( ) _ !) = ( = ( ) ,% )文输( _ _ * 容内所文,件)%, ) () %“( = ( ) )( ( , 值值量个现实 调并) “ + 0 )”为后( + ( ) ) ( )&”( + 0()” 个入“ , 列排小们,个) ,题,小代要按释如运正码写在功程。填签得 声的数 += , ( 下如函 、 为量 和 量以可根言 件件 件 为文以形的据 式放内组维 的变,言), (签得、 、; ; , , , ) 的 枚中程错法提系数将两执环、一将) )! = 时段以执循限 一执体执不次环 法不结)"*"() -=0)(语 ,类是都设部部程须函 程执开 从言语定数函 必的,序 执执数个第序语) 法确下函定嵌数后函其须函义嵌内,之其必函定以可,之其可函定以数前函他数函) 它成函程 件文程在须函的调程函使不值返必定归又义套既中语实递能参形给的参,函中 ) (确中述 以 、= 、 ) = )+ = + ) ) 是果执下定的是 处处命对过在程令理是句始”“中程开号以都行) 是确述有句合在变量义句合以部一变局参式变字相以,数有有件个在义 数) 的法下 ,+、 、 ) 式母用不 , 有回无数数一 回无 类任可返 数指用个回的数)(的 ( 明说指组、组的 向是数数 的变 指) 含 句、 )的> 达, , 、 “ , 0= 、; = )(义的总项入要,整指文文所指址向或的读放储存数入) (表 其), 为形 知存内员一后构容需者存占中存内员个第总总所员)是大存给统时构一定、0)果输) =” ( 则,= 定下 、 、 ) 符说储变静语= 、 )= (、+) 句值的中选” 、 、0) (常的法语)分 分每0,均不多错表入的确为,的是一中选的每(签得分0 分签分合题分0时考计设 期期学0-论舞者标其或严线理零作,内 : 号 级 :业 : 线 )( 卷(试学等师琼论者记其名禁线;分作题禁线 号 班 :专 ( 线 密( 共 ( 线 ( : 班 禁分;记者等( : 号 : ,理或者论期期0分 0签的是为入多,分分的()、 ”值 )、= 语变 定, )一统存)所总内中容构存 其 入储的向文整入的)=; ,“ , ) 句 含 数是组组指 的)回个数任无 回 不 )、,法 件有,字变部句变句是以程“是程过处 下执) + = + ) 述()中函的能中义定必使的在程函 函前以函,定其嵌须后嵌确 )序执序的数语 开函部设类()=)()法环不一执以 ! )一两将法程的 , ; 、 言变 组内 形为件 件言量 、 函 + 声 得填写码释要,)们 , 个) ”& ) ( 后” “ 并 个 , ( = “ ( ) %件所容 () )( = _)(! ) 果分 )+ ”=” +)”) 题运的分 输串符的)字个元一有素面代 ) 业 级 线答;其弊 密 , : : : 答零写违论分 分每题确答案题选,分题 得,分 得。横码注 题 ) 签 分 得出。,)个处符后出_ _ _ _ _ _键值查倍元替组 _ _ _ _ _ _ _ _ _ _ _ _ 第 7 页 共 7 页