试卷代号:1253 座位■■ 中央广播电视大学2011一2012学年度第二学期“开放本科”期末考试 C语言程序设计A试题 2012年7月 题 号 二 三 四 五 总 分 分 数 得 分 评卷人 一、单选题(每小题2分,共20分) 1C语言程序中的基本功能模块为()。 A表达式 B标识符 C语句 D函数 2逻辑表达式(x>0目y==5)的相反表达式为()。 Ax01|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 xO 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,1y)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 ty) 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 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 VOId mam() { tnt I, s=O , for(l= 1 , 1 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 1nta[6]={4,5,6,15,20,12}, void main() { 1nt1,s1,s2, s1=s2=0, for(1=0,1 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 tnt a[6] = {4 ,5, 6, 15, 20, 12}, V Old matn() tnt I,s1 ,s2 , sl =s2=O , for(I=O , 1 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 #include 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 # mc1ude 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 , 函数功能
得分 坪卷人 五、按题目要求编写程序(每小题6分,共12分) 31完善下面程序,该程序功能是从键盘上输入10个整数到一维数组a[10]中,然后按照 下标从大到小的次序输出数组[10]中的每个元素值,元素值之间用一个空格分开。 #include<stdio h vold main() 1nta[10],1, //用1作为循环变量 pr1ntf("从键盘输人10个整数\n"), /向下补充程序内容,用两个for循环实现 printf("\n"), 32编写一个主函数,假定a和b的取值范围为6≤a≤50,10≤b≤30,求出满足不定方 程3a+2b=120的全部整数组解。如(20,30)就是其中的一组解。 1365
得分|评卷人 五、按题目要求编写程序{每小题 6分,共 2分) 31 下 面 是从键盘 入10 组a[10J 下标从大到小的次序输出数组 J中的每个元素值,元素值之间用一个空格分开。 c1 lO h> V01d mam() mt a[10J ,1, I 环变 pnntf(" 键盘输入 数\nF') II 补充 两个 pnntf("\nFF>, 32 写一 定a 和b 为6~aζ50 ,10 运b~30 满 足不 定方 3 a 0的全部整数组解。如 0, )就是其中的一组解。 1365
试卷代号:1253 中央广播电视大学2011一2012学年度第二学期“开放本科”期末考试 C语言程序设计A试题答案及评分标准 (供参考) 2012年7月 一、单选题(每小题2分,共20分) 1D 2B 3C 4A 5B 6D 7B 8C 9D 10C 二、填空题(每小题2分,共26分) 11}(或右花括号) 12程序 130x23 147 1510 1610 1715 18数组 19连接 2025 21 (char *)p 220 23 struct Worker 三、写出下列每个程序运行后的输出结果(每小题6分,共30分) 评分标准根据答案正确程度酌情给分。 24s=25 25k=4 1366
试卷代号 5 3 中央广播电视大学 11 2012 年度第二学期 开放 计A 分标 (供参考) 2012 年7 一、单选题{每小题 2分,共 0分} 1 D 6 D 2 B 7 B 3 C 8 C 4 A 9 D 5 B 10 C 二、填空题(每小题 2分,共 6分} 11 }(或右花括号〉 12 13 Ox23 14 7 15 10 16 10 17 15 18 数组 19 20 25 21 (char 22 0 23 struct Worker 三、写出下列每个程序运行后的输出结果{每小题6分,共 0分) 评分标准根据答案正确程度酌情给分。 24 s=25 25 k=4 1366
262933 27k=5 28 liouting 37 200 00 四、写出下列每个函数的功能(每小题6分,共12分) 评分标准根据叙述的正确与完整程度酌情给分。 29求出a,b,c三个数中的最大值并返回。 30首先建立一个动态整型数组a[n],接着从键盘上输入n个整数到a[n]中,最后返回 数组a[n]的首地址。 五、按题目要求编写程序(每小题6分,共12分) 评分标准根据编写程序或函数的正确与完整程度酌情给分。 31/向下补充程序内容,用两个for循环实现 for(1=0,1=0,1--)printf("%d",a[]), /16分 注第1行中的&a[]也可替换为a十1 32 void main() { int a,b /1分 for(a=6,a<=50,a++) /2分 for(b=10,b<=30,b++) //3分 f(3*a+2*b==120)pr1ntf("(%d,%d)八n”,a,b),/6分 1367
26 29 33 27 k=5 28 houtmg 37 200 00 四、写出下列每个函数的功能(每小题 6分,共 2分) 评分标准根据叙述的正确与完整程度酌情给分。 29 最大 30 立一 组a[ 接着从键 入n 个 到a[n] 数组 ]的首地址。 五、按题目要求编写程序(每小题 6分,共 2分) 评分标准根据编写程序或函数的正确与完整程度酌情给分。 31 //向下补充程序内容,用两个 环实 for(I=O , 1=0 , pnntf("%d ", a[ I] ), / /6 在第 &. 替换 32 vOId mamO mta ,b , //1 for(a=6 ,a<=50, a++) //2 for(b=10 ,b<=30 ,b++) //3 If(3 铃a+2 祷b= = 120) pnntf(气%d %d)\n" ,a ,b) , //6 1367