试卷代号:1253 座位号■■ 中央广播电视大学2012一2013学年度第二学期“开放本科”期末考试 C语言程序设计A试题 2013年7月 题 号 一 二 三 四 五 总 分 分 数 得分 评卷人 一、单选题(每小题2分,共20分) 1.由C语言目标文件连接而成的可执行文件的缺省扩展名为()。 A.cpp B.exe C.obj D.c 2.设有两条语句为“inta=3;a十=a*a;”,则执行结束后,a的值为( A.12 B.18 C.15 D.27 3.带有随机函数调用的表达式rand()%20的值在( )区间内。 A.1~19 B.1~20 C.0~19 D.020 4.在for循环语句“for(i=0;i<n;i++)S;”中,循环体S被执行的次数为( )。 A.n B.n+1 C.n-1 D.n-2 5.在下列的字符数组定义中,存在语法错误的是()。 A.char a[20]="abcdefg"; B.char a[]="x+y=55."; C.char a[15]={1’,2'}; D.char a[10]=5'; 1143
试卷代号 3座位号 中央广播电视大学 3学年度第二学期"开放本科"期末考试 程序 设计A 2013 年7 |题号|一|二|三|四|五|总分| |分数 I I I I I I |得分 l评卷人| 一、单选题(每小题 2分,共 0分) I I I 1.由 连接 执行 扩展名 为 ~~P Reu c. obj D. c 2. 有两条 为"int a=3 ;a+ =a 铃a 则 执行结 ,a )。 A. 12 B. 18 C. 15 D. 27 3. 带有 随 调用 式randO %20 )区间内。 A. 1~19 R 1~20 C. O~19 D. O~20 4. 在for 句"for Ci=O ;i<n;i+ + )5;" 体S )。 A. n B. n+l C. n-l D. n-2 5. 在下 存在 错误 )。 .,} ,:, e , , d , c , YD1i a , F1tL-- 2I""'Jt ACECaarr aa =., nkd aaVAVA BD'n'h 1143
6.若有一个函数原型为“double*function()”,则其返回值类型为()。 A.实数型 B.实数指针型 C.函数指针型 D.数组型 7.在C语言中,所有预处理命令都是以( )符号开头的。 A.* B.# C.& D.@ 8.假定整数指针p所指数据单元的值为30,P+1所指数据单元的值为40,则执行 *p十十后,P所指数据单元的值为()。 A.40 B.30 C.70 D.10 9.若要使p指向二维整型数组a[10[20],则p的类型为()。 A.int* B.int* C.int *[20] D.int(*)[20] 10.表示文件结束符的符号常量为()。 A.eof B.Eof C.EOF D.feof 分 得 评卷人 二、填空题(每小题2分,共26分】 11.用于输出表达式值的标准输出函数的函数名是 12.C语言中的每个程序文件在编译时可能出现有error类型的错误,它属于(致命性/警 告性) 的错误。 13.已知'A'~’Z'的ASCII码为65~90,当执行“intx='C’+3;”语句后x的值为 1144
B. 30 D. 10 6. 有一 原型为"double 替function( )",则其返回值类型为( )。 A. B. 指针 c.函数指针型 D.数组型 7. 在C 语 有预 令都 )符号开头的。 A. 铃B.# C. &. D. @ 8. 单 元 为30 十1 单 元 为40 十 + 单元 )。 A. 40 C. 70 9. 要使 维整 a [ [ 2 型为 )。 A. int B. int C. int [ 2 D. int( [ 2 10. 件结束 符号 )。 A. eof B. Eof C. EOF D. feof 得分|评卷人 二、填空题(每小题 1. 12. 序文件在 时可 告性)的错误。 13. 知'A'-'Z' 的ASCII 为65 - 90 行"int x='C'+3;" 后x 1144
14.表达式(int)14.6的值为 15.假定不允许使用逻辑非操作符,则关系表达式x+y>5的相反表达式为 16.假定x=5,则执行“a=(x?10:20);”语句后a的值为 l7.假定一维数组的定义为“char*a[M们;”,则该数组所占存储空间的字节数为 18.存储字符串"”a”需要至少占用存储空间中的 个字节。 19.strlen()函数用于计算一个字符串的 20.在C语言中,一个函数定义由函数头和 这两个部分组成。 21.假定p所指对象的值为25,p十1所指对象的值为46,则执行表达式*(p十+)后,P所 指对象的值为 22.假定p是一个变量,则该变量的地址表示为 23.把间接访问表达式p一>name改写成对应的直接访问表达式为 得 分 评卷人 三、写出下列每个程序运行后的输出结果(每小题6分,共30分) 24.include<stdio.h> void main() { int x=5; switch(2 *x-1){ case 4:printf("%d",x);break; case 7:printf("%d",2 x);break; case 10:printf("%d",3 x);break; default:printf("%s","default"); 输出结果: 1145
14. 式(int )l4.6 15. 定 不 式x 十y>5 表 达 16. 定x=5 则执行"a=(x? 10:20);" 后a 17. 假定 一 维 定 义 为"char 势a[M];" 该 数 组 所 18. 要至 19. strlenO 算一个字 20. 在C 头 和 个部 组成 1. 定p 为25 ,p+1 对象 为46 执行表 祷(p++) ,p 指对象的值为 22. 假定 是一 变量 址表示为 23. 达式p一>name 成对应 达式 |得分|评卷人| I I I 三、写出下列每个程序运行后的输出结果(每小题 3 0 24. # include<stdio. h> void mainO int x=5; switch(2 铃x- I) { 臼as臼e 4ι: £( 臼as臼e f ( break; case 1ω0: prIn旧tf("%d" break; default: print£<"%s" ef lt 输出结果: 1145
25.include<stdio.h> void main(){ int f1=1,f2,i; printf("%d",f1); for(i=1;i<4:i++){ 2=3f1十1; printf("d",f2); f1=f2: 输出结果: 26.include<stdio.h> void main(){ inta[8]={12,39,26,41,55,63,72,40}; int i,cl=0,c2-0; for(i=0;i<8;i++) if(aCi]%2==1)cl++;else c2++; printf("od,%dn",cl,c2); 输出结果: 27.include<stdio.h> include<string.h void main(){ char s[]="123456789"; int i,n=strlen(s); for(i=0;i<n/2;i++){ char c=s[i];s[i]=s[n-1-i门;s[n一1-i门=c; } printf("%s\n",s); } 输出结果: 1146
25. # include<stdio. h> void mainO { int f1= 1 . £2 . i ; 严rint£( £or(j= 1;ρi<4;川i { £2=3 fI +1; printf("% d ",£2) ; f1=£2; 输出结果: 26. # include<stdio. h> void main() { int a[8] = {l 2 ,39 ,26 ,41, 55, 63, 72 ,40}; iot i, c1= O, c2=O; £or(j=O; i<8; i++) i£(a[i]%2== l) c1 + + ; else c2+ print{("%d , %d\n c1 , c2) ; 输出结果: 27‘ # include<stdio. h> 中中 cl h> void main () { char s[]="123456789 int i, n=strlen(s) ; £or(j=O; i<n/2; i++) { char c= s[i] ; s[i] = sen 一1 i] sen 一1 一i]=c; print£("%s\n飞s) ; 输出结果 1146
28.include<stdio.h int LB(int *a,int n){ int p,s=1; for(p=a;p<a十n;p十十)s*=*p; return s; void main(){ inta[]={1,2,3,4,5}; int b=LB(a,5); printf("b=%d\n",b); } 输出结果: 得 分 评卷人 四、写出下列每个函数的功能(每小题6分,共12分) 29.int FH(){ int x,y=0; scanf("d",&x); while(x>0)(y+=x;scanf("%d",&x);) return y; } 函数功能: 30.假定结点的结构类型用IntNode表示,它的数值域为data,链接指针域为next,请根 据下面函数定义写出相应的功能。 int FF(struct IntNode*f)//f为指向一个单链表的表头指针 int n=0; if(f==NULL)return 0; while (f)(n++;f=f->next;) return n; } 函数功能: 1147
28. # include<stdio. h> int LB (int 赞a int n) { int 铃p ,s=l; for(p=a;p<a十n;p++) 择p; return s; void main () { int a[]= {I ,2, 3, 4, 5 } ; int b=LB(a ,5); printf(飞=%d\n飞b) ; 输出结果: |得分|评卷人| I I I 29. int FHO { 四、写出下到每个函数的功能(每小题 int x ,y=O; scanf("%d飞&.x) ; while(x>O) {y+=x; scanf( return y; 函数功能 30. 假定结点 构类 用IntNode 为data 针域 为next 据下面函数定义写出相应的功能。 int FF(struct IntNode If 链表 头指针 int n=O; if(f= =NULL)return 0; while (0 {n+ +; f=f一>next;} return n; 函数功能: 1147