2006年秋季《C语言程序设计》期末考试题A卷答案答案--修改后_第1页
2006年秋季《C语言程序设计》期末考试题A卷答案答案--修改后_第2页
2006年秋季《C语言程序设计》期末考试题A卷答案答案--修改后_第3页
2006年秋季《C语言程序设计》期末考试题A卷答案答案--修改后_第4页
2006年秋季《C语言程序设计》期末考试题A卷答案答案--修改后_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上卷20052006学年第二学期程序设计语言(C)试卷参考答案和评分标准 专业班级 姓 名 学 号 开课系室 软件工程系 考试日期 2006年7月3日 题 号一二三总分得 分阅卷人程序设计语言(C)试卷(A卷)答题卡说明:1选择题和判断题必须填在答题卡上才有效,综述题写在指定位置。得分 2本试卷连同封面共13页,不得拆开。一、 单项选择题(正确的答案涂黑或画圈,每题1分,共20分)1AgCD11AgCD2AgCD12AgCD3ABgD13ABgD4AgCD14ABCg5AgCD15gBCD6AgCD16AgCD7ABgD17gBCD8AgCD18AgCD9ABgD19A

2、gCD10ABCg20ABCg得分二、 读程序填空题(在空格处填写正确答案,每空2分,共20分)q或q=q-1或-qx>=0或x>0fac/i或1.0/ireturn (x)或return -xsn/2或(n+1)/2!feof(fp)或ch!=EOF1fp1一、单项选择题(每题1分, 20分)1. 现有程序完成a、b两个值的交换,空白处正确的答案应该是 _。main()int a,b,t; t=b  b=a  _ A. a=bB. a=tC. b=tD. t=a2. 如果程序中用到标准库函数log(),那么该程序应含下面哪条语句_。A. #inclu

3、de ”stdio.h” B. #include ”math.h “C. #include ”string.h” D. #include ”stdlib.h” 3. int x=6;则下方程序段运行结果是_。switch(x) case 1: printf(“apple“);break; case 2: printf(“hello“);break; case 3: printf(“world “); default: printf(“thank you“); A. apple B. hello C. thank you D. world thank you4. 在C语言中,不合法的i

4、nt型常量是_。A. 32767 B. 0578 C. 0XAAC D. 32768L 5. 设x,y,z和k都是int型变量,则执行表达式:x=(y=2,z=15,k=30)后,x的值为_。A. 52 B. 30 C. 15 D. 26. 设x为int型变量,则执行以下语句后,x的值为_。x=10; x + = x - = x - x;A. 30 B. 20 C. 10 D. 407. 在下列运算符中,优先级最高的运算符是( )A= = B!= C%D|8. 设x,y,t均为int型变量,则执行语句:x=y=3;t=+x|-y;后y的值为_。 A. 4 B. 3 C. 2 D. 19. 语句

5、 printf(“%n”); 的输出为_。A. # B. %n C. % D. %10. #include<stdio.h> main() char a1,a2,a3,a4,a5,a6; scanf(“%c%c%c%c”,&a1,&a2,&a3,&a4); a5=getchar(); a6=getchar(); putchar(a1);putchar(a2); printf(“%c%cn”,a5,a6); 如:123回车 45678回车 结果是_。A. 1267 B. 1256 C.1278 D. 124511.若有int x, y, z ; sca

6、nf("%d%d%d",&x,&y,&z); 则运行时输入方式错误的是_。 A.4 5 6 B. 4, 5, 6 C. 4 D. 4 5 5 6 612. 下面程序段执行结果是_。 int y=25; while(y-); printf(“y=%d”,y); A. 0 B. -1 C. 1 D. 无限循环13. 不正确的字符串赋值或赋初值方式是 _。 A. char *str; str= "string" B. char str7= 's', 't', 'r', 'i'

7、; , 'n', 'g', 0 C. char str110; str1= "string" D. char str1= "string", str2= "" 14. 对于int a =1,2,3,4,5,6, *p; p=a; *(p+3)+ = 2; 则程序段执行后*(p+3)的值为_。 A. 5 B. 3 C . 4 D. 615. 若有说明语句:int a = 1,2,3,4,5,6,7,8,*p=a ; 且 0i7, 则_是对数组元素的错误表示。 A. p + i B.apa C. *(a +

8、 i) D.pi16.以下选项中不能正确把c1定义成结构体变量的是A. struct color B. struct color cl int red; int red;int green; int green;int blue; int blue; ;struct color c1;C. struct color D. struct int red; int red;int green; int green;int blue; int blue; cl; cl ;17.对于int a32 = 1, 2, 3; 元素a11的值为_。 A.0 B. 1 C. 3 D. 不能确定18. 设x和y均

9、为int型变量,则执行下面的循环后,y的值为_。 for(y=1,x=1;y<=20;y+) if(x=8)break; if(x%2=1) x+=5;continue; x-=3; A2 B4 C6 D819. 假定所有变量均已正确定义,则下列程序段运行后x的值是_。a=0;b=0;c=0;x=35;if(!a) x=x-1;else if(b) x=x+1;if(c) x=3; else x=4;A34 B4 C35D320. 现有一个文本文件,想以追加方式打开,下列方式正确的是_。if(fp=fopen("fname.dat","_")=NU

10、LL)printf("can not open file!n",num); exit(0);A. w B.ab C.b D.a二、读程序填空(每空2分,共20分)1判断一个字符串是否回文(顺读和逆读相同,如字符串“abcba”就是回文) /* 该函数返回值为1代表是回文,返回0代表不是回文 */int verse(char *p) char *q=p; while(*q!=0) q+; ; while(p<q) if(*p+!=*q-) return 0; return 1; 2以下函数的功能是计算s=1+的值,请填空。double fun(int n) double

11、 s=0.0,fac=1.0; int i;for(i=1;i<=n;i+)s=s+ ;return ;3下面的程序用来统计文本文件fname.dat中的字符数,将程序补充完整。#include "stdio.h"void main( ) FILE *fp; long num=0; char ch; if(fp=fopen("fname.dat","r")=NULL)printf("can not open file!n",num); exit(0); ch=fgetc(fp); while( ) num+;

12、 ch=fgetc(fp) ; printf("num=%dn",num); fclose( ); 4. 设fun()是用户自定义函数,其功能是求一个数的绝对值,请填空。 #include <stdio.h> #include "math.h" int fun(int x) if ; return(x) else ; main() int a; scanf("%d",&a); printf("绝对值是%dn", fun(a) ;5.将数组a中的n个整数按相反顺序存放。void inv(int x

13、 , int n) int t,k,j; for(k=0;k< ;k+) t=xn-1-k; xn-1-k=xk; xk=t; void main() int i,a6=3,7,9,11,0,6; inv(a,6); for(i=0;i<6;i+) printf("%d,",ai); printf("n");6.下列程序段运行后输出的结果是 a= ,b= 。int x=0,a=0,b=0;switch(x)case 0: b+;case 1: a+;break;case 2: a+;b+;printf(“a=%d,b=%dn”,a,b);得分

14、三、编程题(60分,在下面的空白处编写程序)1、编程计算下面函数的值,其中x为实数,由键盘输入。(12分) -1 x-5 y= ( x-1)2 -5<x<5 x5参考答案:#include <stdio.h>main() float x,y; printf("请输入实数x:"); scanf("%f",&x);if(x<=-5) y=-1;else if(x<5) y=(x-1)*(x-1); else y=1/x; printf("y=%f",y);评分标准:头文件、程序框架占2分;读入x

15、值占1分;每个分支语句各占3分,共9分。2.设有一组数12,32,23,45,44,65,67,9,100,80, 编写一个完整的程序实现从小到大排序。(12分)参考答案:#include <stdio.h> main() int a10=12,32,23,45,44,65,67,9,100,80; int i,j,t; for(i=0;i<9;i+) for(j=i+1;j<10;j+) if(ai>aj) t=ai; ai=aj; aj=t; for(i=0;i<10;i+) printf("%4d",ai);评分标准:头文件、程序框

16、架占2分;数组a定义及初始化占2分;外层循环占2分;内层循环占2分;元素交换部分占4分。 3.编程将字符串s2的内容连接到字符串s1后,如s1中存放“hello”,s2中存放“world”,连接后s1的内容为“helloworld”(不能使用strcat函数,字符串结束标志为0)。(10分)参考答案:#include <string.h>#include <stdio.h>main() char str180,str280; int i=0,j=0; printf("输入两个字符串:"); gets(str1); gets(str2); i=strl

17、en(str1); while(str1i+=str2j+!='0'); printf("连接之后的字符串为:%s",str1); 评分标准:头文件、程序框架占2分;字符数组str1、str2初始化占3分;求出str1长度占2分;str2内容赋值到str1中占3分。4.编一个名为average的函数,其功能是求形参数组的平均值。调用average的主函数部分源代码如下。(10分)float average(float score,int n) int i; floar ave=0; for(i=0;i<n;i+) ave+=scorei; return

18、 ave/n; main()float score10,aver;int i;printf("input 10 scores:n"); for(i0;i<10;i+) scanf("%f",&scorei);printf("n");averaverage(score,10);printf("average score is %5.2f",aver);评分标准:函数头正确定义占4分;ave初始化及返回值 占2分;循环求累加和占4分。5. 编写一个函数fun,其功能是:将一个字符串str1(元素起始下标为0)中的所有偶数位上的小写字母复制成为一个新字符串str2。如str1串为“abCDefgh123”,则新串str2为“aeg”。主函数部分源代码如下。(10分) #include<stdio.h>#include<string.h>fun(char str1, char str2) /*请填写函数主体内容*/ int i=0,j=0;while(str1i!='0') if(str1i>='a'&am

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论