试卷代号:1253 座位■■ 中央广播电视大学2011一2012学年度第二学期“开放本科”期末考试 C语言程序设计A试题 2012年7月 题 号 二 三 四 五 总 分 分 数 得 分 评卷人 一、单选题(每小题2分,共20分) 1C语言程序中的基本功能模块为()。 A表达式 B标识符 C语句 D函数 2逻辑表达式(x>0目y==5)的相反表达式为()。 Ax<=0|y1=5 Bx<=0&&y1=5 Cx>01|y1=5 Dx>0&&.y==5 3循环体至少被执行一次的循环语句为( )。 A for B while C do-while D任一种循环 4假定n的值为6,则表达式n十+的值为()。 A6 B5 C4 D7 5假定一个二维数组的定义为“1nta[3][4]={3,4},{2,8,6},”,则元素a[1][0]的值 为( )。 A8 B2 C4 D6 1360
试卷代号 座位号 中央广播电视大学 0 11 2012 放本 末考 计A 2012 年7 总分 分数 得分|评卷人 -、单选题{每小题 1 言程 基本功 能 )。 表达 句D 式B 式(x>O II y= =5) 相反 )。 A x< = 0 I I y' = 5 B x< = 0 &. &. y' = 5 C x>O II y' =5 D x>O &.&. y= =5 少被执行 )。 A for B whIle C do-while 一种 为6. 表达 + + )。 A 6 B 5 C 4 D 7 数组 Ill a[3] 日]={{3. . { } } .. 素a[l][O] 为( )。 1360 A 8 C 4 B 2 D 6
6假定一个函数原型为“char*func(ntn)”,则该函数的返回类型为()。 A int B int* C char D char 7假定a为一个字符数组名,则元素a[]的指针访问方式为()。 Aa十i B*(a十1) C&a+1 D米a十1 8假定有语句为“nt*p=calloc(20,s1zeof(1nt)),”,则p所指向的动态数组中所包含的 元素个数为()。 A10 B40 C20 D80 9十进制数50表示成符合C语言规定的八进制数为( )。 A20 B32 C62 D062 10若要以读和写两种操作方式打开一个二进制文件,当文件不存在时返回打开失败信 息,则选用的打开方式字符串为()。 A"r+" B "ab+" C "rb+" D "wb+" 得分 评卷人 二、填空题(每小题2分,共26分) 11C语言中的每条复合语句以 作为结束符。 l2在#1 nclude命令中所包含的文件,可以是头文件,也可以是 文件。 13十进制数35对应的十六进制数为 14假定x=5,则表达式2+x十+的值为。 15对于“for(1=0,1<10,1+十)S”语句,循环体S被执行的次数为 16若x=5,y=10,则执行“f(x>y)c=5,else c=10,”语句后,c的值为 17假定二维数组的定义为“1nta[3][5],”,则该数组所包含的元素个数为 1361
定一 char 祷func(mt n)" )。 A mt e char B mt D char 铸 B 40 D 80 定a 符数 素a[tJ 指针 方式 )。 A a+t e &'a+t 定有 * p= calloc( 20 , stzeof(mt» ," ,则 p所指向的动态数组中所包含的 元素个数为( )。 A 10 e 20 表示成符合C )。 A 20 B 32 e 62 D 062 10 若要 两种操 方式打开一个二进 开失 息,则选用的打开方式字符串为( )。 A "r+" e "rb+" 得分|评卷人 飞b D "wb+" 二、填空题(每小题 文件。 lI 结束符 12 :1* mclude 所包 头 文 13 数35 对应 的 十六进 14 定x=5 式2+x++ 15 于"for(t=O t<10 , l++)S" 体S 被执行 次数 16 若x=5 ,y=10 行"tf(x>y) c=5 ,else c=10 句后 ,c 17 定二 为"mt a[3J 【5] 该数 个数 1361
18执行“typedef1 nt ABC[l0],”语句把ABC定义为具有10个整型元素的一维 类型。 19 strcat()函数用于 两个字符串。 20假定p所指对象的值为25,p+1所指对象的值为46,则*p十+的值为 21若要把一个指针p强制转换为字符指针,则采用的强制转换表达式为 22NULL是一个符号常量,作为空指针,它所表示的整数值为 23假定要动态分配一个类型为struct Worker的对象,并由r指针指向这个对象,则r的 数据类型为 得 分 评卷人 三、写出下列每个程序运行后的输出结果(每小题6分,共30分) 24 #include<stdio h void main() 1nt1,s=0, for(1=1,1<10,1+=2)s+=1, printf("s=%d\n",s), } 输出结果 25 #include<stdio h> const int M=20, void main(){ 1nt1=2,k=0, while(<M){ f(M%1==0)k++, 1++, printf("k=%d\n",k), 输出结果 1362
18 typedef tnt ABC [10] 把ABC 定 义 有10 整 型 类型。 19 strcatO 字符 20 定p 对象 为25 ,p+l 对象 为46 祷p++ 21 要把 指针 则 采 22 NULL 符号 为空指针 它所表 数值 23 为struct Worker 由r 指针指 个对 则r 数据类型为 得分|评卷人 三、写出下列每个程序运行后的输出结果{每小题 6分,共 0分} 24 # tnclude<stdlO h> VOId mam() { tnt I, s=O , for(l= 1 , 1< 10 ,1+ = 2) s+ =1 , pnntf( 飞=%d\n" 输出结果 25 # mclude<stdlO h> canst tnt M=20 , VOId mam() { mt 1=2 , k=O , whlle(I<M) { If (M%I==O) k+ pnnt£<飞=%d\n",k) 输出结果 1362
26 #include<stdio h> 1nta[6]={4,5,6,15,20,12}, void main() { 1nt1,s1,s2, s1=s2=0, for(1=0,1<6,1++) f(a[]%3)sl+=a[],else s2+=a[], printf (d%d\n",s1,s2), 输出结果 27 #include<stdio h> void main() 1nta[3][3]={3,5,7},{9,11,13},{6,8,20}, 1nt1,k=0,*p=&a[0][0], for(1=0,1<9,1++) 1f(米p十+<=8)k十+, printf("k=%d\n",k), 输出结果 1363
26 # tnclude<stdlO h> tnt a[6] = {4 ,5, 6, 15, 20, 12}, V Old matn() tnt I,s1 ,s2 , sl =s2=O , for(I=O , 1<6 , 1++) l f( a[ I] % 3) sl+=a[I] , else s2 a[I] , prlntf ("%d%d\n飞sl s2) , 输出结果 27 # tnclude<stdlO h> VOld matn() { tnt a[3][3] = {{3 ,5 ,7} , {9 ,11 , 13} ,俑, 8, }, tnt I, k=O. 养p= &'a[O][O] , for(I=O ,1< 9 ,1+ +) f( 祷p++<=8) k++ , prlnt f( 飞=%d\n" ,k) , 输出结果 1363
28 #include<stdio h> #include<string h> struct Worker (char name[15],int age,float pay,) void main(){ struct Worker x, char¥t="houting", int d=38,float f=400, strcpy(x name,t), x age=d,x pay=f, x age--,x pay/=2, printf("%s%d%6 2f n",x name,x age,x pay), 输出结果 得 分 评卷人 四、写出下列每个函数的功能(每小题6分,共12分) 29 int SC(int a,int b,int c) if(a>=b &a>=c)return a, f(b>=a &&b>=c)return b, return c, 函数功能 30 int LI(int n){ 1nt1, int a=malloc(n sizeof(int)), for(1=0,1<n,1++)scanf("%d”,a十), return a, 函数功能 1364
28 拌mc1ude<std lO h> # mc1ude<stnng h> struct Worker {char name[l5] , mt age , float pay , } , VOId mam() { struct Worker x , char , 祷t= ",l1outmg" , mt d=38 , float f=400 , strcpy(x name ,t) , x age=d ,x pay=f, x age- ,x pay/=2 , pnnt£("%s%d%6 2f\n" ,x name ,x age ,x pay) , 输出结果 得分|评卷人 四、写出下列每个函数的功能(每小题 29 mt SC(mt a , mt b , mt c) { If( a> = b &.&. a>=c) return a , If( b> = a &.&. b>=c) return b , return c , 函数功能 30 mt I(mt n) { mt I , mt 提a=malloc(n 祷slzeo£( mt) ) , for(I=O ,l<n,l++) scan£("%d" ,a+l) , return a , 函数功能