试卷代号:1253 座位号■ 中央广播电视大学2011一2012学年度第一学期“开放本科”期末考试 C语言程序设计A试题 2012年1月 题 号 三 四 五 总 分 分 数 得分 评卷人 一、单选题(每小题2分,共20分) 1.程序运行中需要从键盘上输人多于一个数据时,各数据之间默认使用( )符号作为 分隔符。 A.空格或逗号 B.逗号或回车 C.逗号或分号 D.空格或回车 2.逻辑表达式(x>0&&x10 B.x10 C.x0&&.x>10 3.当处理一个问题时的循环次数已知时,最好采用( )循环来解决。 A.for B.while C.do-while D.switch 4.假定i的初值为0,则在循环语句“while(i<n){s+=ii;i十十;》”中循环体被执行 的总次数为( )。 A.n-1 B.n C.n+1 D.n/2 5.假定一个二维数组的定义语句为“inta[3][4]={{3,4},{2,8,6}};”,则元素a[1][2] 的值为()。 A.2 B.4 C.6 D.8 1353
试卷代号 座位号仁口 中央广播电视大学 11 2学年度第一学期"开放本科"期末考试 计A 试题 2012 年1 |题号|一|二|三|四|五|总分| |分数 I I I I I I 得分|评卷人 一、单选题(每小题 2分,共 0分} 1.程序运行中需要从键盘上输入多于一个数据时,各数据之间默认使用( )符号作为 分隔符。 A. 号B. c.逗号或分号 .空格或回车 2. 逻辑表达式(x>O && x10 C. x10 D. x>O && x>10 3. 理一个 环次数 知 时 好采用 )循环来解决。 A. for C. do-while B. while D. switch 4. 定i 为0 句"while Ci {s+ = 头i; }"中循环体被执行 的总次数为( )。 A. n-1 C. B. n D. n/2 5. 定一 数组 义语 为"int a[3][4]={{3 ,4} ,{2 ,8 ,6}};" 素a[1][2] 的值为( )。 A. 2 C. 6 B. 4 D. 8 1353
6.在下列选项中,不正确的函数原型格式为()。 A.int Function(int a); B.void Function (char); C.int Function(a); D.void int(double a); 7,假定p是一个指向float类型的数据指针,则p+1所指向的数据的地址比p所指向的 数据的地址大( )个字节。 A.1 B.2 C.4 D.8 8.假定有一条定义语句为“itm=7,*p;”,则给p赋值的正确表达式为( )。 A.p==m B.p=&.m C.米p=&m D.p=*m 9.假定指针变量p定义为“intp=malloc(sizeof(int);”,要释放p所指向的动态存储 空间,应调用的函数为()。 A.free(p) B.delete(p) C.free(*p) D.free(&p) l0.C语言中的系统函数fopen()是( )一个数据文件的函数。 A.读取 B.写入 C.关闭 D.打开 得 分 评卷人 二、填空题(每小题2分,共26分) 1.用于输出表达式值的标准输出函数的函数名是 2.每个C语言程序文件在编译时可能出现有致命性错误,其对应的标识符为 3.已知A一Z的ASCI1码为65~90,当执行“itx=C+3;”语句后x的值为一。 4.表达式(int)14.6的值为。 5.假定不允许使用逻辑非操作符,则关系表达式x十y>5的相反表达式为 6.假定x=5,则执行“a=(x?10:20);”语句后a的值为 1354
6. 在下 不正 的 函 )。 A. int FunctionCint a) ; C. int Function(a); B. void Function (char); D. void int(double 祷a) ; 7. 定p 是一个 向float 数据 则p+l 地址 比p 数据的地址大( )个字节。 A. 1 B. 2 C 4 D. 8 8. 定义 为"int m=7 祷pz" 则 给p )。 A. p=m B. p= &m 祷p=&m D. p= 祷m 9. 量p 定义为"int 恭p=malloc(sizeo fCint));" ,要释放 p所指向的动态存储 空间,应调用的函数为( )。 A. free(p) C free( 铃p) 10. 的 系 op A. B. delete (p) D. free(&p) 〉一个数据文件的函数。 B. D. 打开 |得分|评卷人| I I I 二、填空题(每小题 2 6 1.用于输出表达式值的标准输出函数的函数名是 2. 个C 序 文 时 可 错 误 对 应 识 符 3. A' 'Z' II 为65~90 行"int x='C十35" 后x 4. 式(int )l4.6 5. 假 定 允 许 逻 辑 非 操 作 式x+y>5 反 表 达 式 6. 定x=5 行"a=(x? 10;20);" 后a 1354
7.假定一维数组的定义为“char¥a[M];”,则该数组所占存储空间的字节数为 8.存储字符申"a"需要至少占用存储空间中的个字节。 9.strlen()函数用于计算一个字符串的 10.在C语言中,一个函数定义由函数头和 这两个部分组成。 11.假定p所指对象的值为25,p十1所指对象的值为46,则执行表达式*(p十十)后,p所 指对象的值为 12.假定p是一个变量,则用表示该变量的地址。 l3.把间接访问表达式p一>name改写成对应的直接访问表达式为 得分 评卷人 三、写出下列每个程序运行后的输出结果(每小题6分,共30分) 1.include void main() { int i,s=0; for(i=1;i<8;i++) if(i%2==0|li%3==0)s十=i; printf("s=%d\n",s); 1355
7. 假定 维 数 定 义 为"char 提a[M];"\ 该 数 组 所 存 储 间 的 8. 字符 It 要至少 一一 9. strlenO 10. 头 和 一一 部分组成 1 1. 定p 为25 ,p+1 为46 执行 达式 铸(p++) ,p 指对象的值为一一二 12. 变量 则用 表示 13. 式p name 表 达 式 户户人| 三、写出下列每个程序运行后的输出结果{每小题 6分,共 0分} 1. # include void mainO { int n=6 , y=l; while(n一 一 十=3; printf( " y= %d\n" ,y) ; 2. # include void main() int i,s=O; for (i = 1; i<8; if<i%2= =0 II i%3= =0) 十=i; print£( 飞=%d\nil,s) ; 1355
3.include void main(){ char a]="abcdbfkgamd"; inti1=0,i2=0,i=0: while(a[i门){ if(a[i] struct Worker char name[15];int age;double pay;); void main(){ struct Worker a[4]={{"abc",20,2420},{"defa",50,3638}, {"ghin",40,2560},{"jklt",36,2375}}; int i,s=0; for(i=0;i<4;i++)s+=ali].age; printf("s=%5.2LA\n",(double)s/4); 1356
3. :j:j: include void mainO { char a[J = Ii abcdbfkgamd Ii ; int il=O. i2=0 , i=O; while(a[iJ) { if(a [iJ VOId main () { int a[8]={4 ,8,12,16,20,24,28,32}; tnt * p=a; do { printf(" %d ",铃 p+=3; } whi1e(p struct Worker { char name[15J; int age; double pay;}; void mainO { struct Worker a[4J = {{" abc" , 20 ,2420} ,{" defa" ,50 ,3638} , {" ghin" , 40 ,2560} , {"jklt" ,36 ,2375}} ; inti , s=O; for(i=O; i<4; 十 + 十=a[i]. age; printf(" s= % 5. 2Lf\n" , ( double)sj 4) ; 1356
得分 评卷人 四、写出下列每个函数的功能(每小题6分,共12分) 1.int SC(int a,int b,int c){ if(a>=b 8.&.a>=c)return a; if(b>=a &.&b>=c)return b; return c; 函数功能: 2.int LI(int n){ int a=malloc(n sizeof(int)); int i; for(i=0;i<n;i++)scanf("%d",a+i); return a; 3 函数功能: 得分 评卷人 五、按题目要求编写函数(每小题6分,共12分) 1.编写一个函数,函数原型为“int fun4(char¥a)”,请采用while循环求出由字符指针8 所指向的字符串中包含的十进制数字的个数,并把这个值作为函数值返回。 2.编写一个主函数,计算并输出表达式1十2十32十,.,+n2的值,假定正整数n的值由 键盘输人。 1357
li 四、写出下列每个函数的功能{每小题 6分,共 2分) 1. int SCOnt a , int b , int c) { if(a>=b &.&. a>=c) return a; if(b>=a &.&. b>=c) return b; return c; 函数功能: 2. int 祷LI (int n) { int 传a=rnal1oc(n 并sizeof(in t» ; mt 1; for(i=O;i<n;i++) scanfC "%d return a; 函数功能 得分评卷人 」一呻南 --' 五、按题目要求编写函数{每小题6分,共 2分} 1.编写一个函数,函数原型为 fun4(char祷a)" 出 自 所指向的字符串中包含的十进制数字的个数,并把这个值作为函数值返回。 2. 编写 算并 表达式1 十2 十3 . • +n 键盘输入。 1357
试卷代号:1253 中央广播电视大学2011一2012学年度第一学期“开放本科”期末考试 C语言程序设计A试题答案及评分标准 (供参考) 2012年1月 一、单选题(每小题2分,共20分) 1.D 2.A 3.A 4.B 5.C 6.C 7.C 8.B 9.A 10.D 二、填空题(每小题2分,共26分) 1.printf 2.error 3.70 4.14 5.x+y<=5 6.10 7.4*M 8.2 9.长度 10.函数体 11.46 12.&p 13.(*p).name 三、写出下列每个程序运行后的输出结果(每小题6分,共30分) 评分标准:根据答案正确程度酌情给分。 1.y=19 2.s=15 1358
试卷代号 中央广播电视大学 2 0 11 2学年度第一学期"开放本科"期末考试 计A 试题 及评分 (供参考) 2012 年1 一、单选题{每小题 2分,共 0分) 1. D 2. A 6. C 7. C 二、填空题(每小题 2分,共 6分} 1. printf 2. error 3. 70 4. 14 5. 6. 10 7. 8. 2 9. 10. 数体 11. 46 12. &p 13. (铃 name 3. A 8. B 4. B 9. A 5. C 10. D 三、写出下列每个程序运行后的输出结果(每小题 6分,共 0分) 评分标准:根据答案正确程度酌情给分。 1. y=19 2. 5=15 1358
3.74 4.41628 5.s=36.50 四、写出下列每个函数的功能(每小题6分,共12分)】 评分标准:根据叙述的正确与完整程度酌情给分。 1.求出a,b,c三个数中的最大值并返回。 2.首先建立一个动态整型数组a[n],接着从键盘上输入n个整数到a[n]中,最后返回数 组a[n]的首地址。 五、按题目要求编写函数(每小题6分,共12分) 评分标准:根据编写函数的正确与完整程度酌情给分。 1.int fun4(char a) { int n=0; /1分 while(*a){ /12分 if(*a>=0&&.¥a<=9r)n+十; /14分 a十+, 1/5分 return n; /6分. 2.include<stdio.h void main() { int n,i,s=0; /1分 scanf("%d",&.n); /2分 for(i=1;i<=n;i++)s+=i*i; /15分 printf("s=%d川n",s); /16分 注:若s的初值为1,则循环变量1的初值应修改为2。 1359
3. 7 4 4. 4 16 28 5. s=36.50 四、写出下列每个函数的功能{每小题6分,共 2分) 评分标准z根据叙述的正确与完整程度酌情给分。 1.求出 a, b, c三个数中的最大值井返回。 2. 先建立一 动态整 组a[n] 从键盘上 入n 到a[n] 最后 ]的首地址。 五、按题目要求编写函数{每小题6分,共 2分} 评分标准z根据编写函数的正确与完整程度酌情给分。 1. int fun4='O' &.&.椿 n++; a++ , return n , 2. :# include void mainO int n ,i , s=O; scanf(" %d" , &'n) , for (i=l; i<=n; i++) 十=i*i; printf("s= %d\nil ,s) ; 1, 环变量 //1 //2 //4 //5 //6 //1 //2 //5 //6 1359