C语言程序设计试卷2011级A1218

  • 格式:doc
  • 大小:94.50 KB
  • 文档页数:6

长江大学试卷 院(系、部) 专业 班级 姓名 班内序号 …………….…………………………….密………………………………………封………………..…………………..线…………………………………….. 2007 ─2008 学年 第一学期

《C语言程序设计》课程考试试卷( A卷) 专业:全校统考 年级:2006 考试方式:闭卷 学分:4.5考试时间:120分钟 一、选择题 (每小题 2 分,共 20 分) 1. 设有 float x=16.8, y=18.6; 则(int) (x+y)的结果为 。 A) 34 B) 35 C) 36 D) 37

2. 以下选项中不是C语句的是 。 A) { i=10; printf(“%d\n”,i); } B) max=m>n?m : n; C) a=8,c=18 D) ; 3. 设a、b和c都是整型变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是 。 A) a&&b B) a<=b C) a||b+c&&b-c D) !((a

4. 有下列程序段: int k=0; while (k=1) k++; 其中的while循环执行的次数是 。 A) 无限次 B) 有语法错,不能执行 C) 一次也不执行 D) 执行1次 5. 设有:int a[10],i=5;以下对数组元素的引用,不正常的是____ 。 A) a[9] B) a[0] C) a[i] D) a[i+5]

6. 以下语句的输出结果是 。 printf("%d\n",strlen("\t\"\065\xff\n")); A) 5 B) 14 C) 8 D) 输出项不合法,无正常输出 7. C语言中函数返回值的类型是由 决定的。 A) retutn语句中的表达式类型 B) 调用该函数的主调函数类型 C) 调用函数时临时 D) 定义函数时所指定的函数类型

8. 以下对C语言函数的有关描述中,正确的是 。 A) 调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B) C函数既可以嵌套定义又可以递归调用 C) 函数必须有返回值,否则不能使用函数 D) C程序中有调用关系的所有函数必须放在同一个源程序文件中 9.当定义一个结构体变量时,系统分配给它的内存是( ) A) 边界对齐后各成员所需内存量的总和 B) 变量中第一个成员所需的内存量 C) 成员中占内存量最大者所需的容量 D) 变量中最后一个成员所需的内存量

10. 若要打开A盘上user文件夹下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是 。

A) fopen(“A:\user\abc.txt”,”r”) B) fopen(“A:\\user\\abc.txt”,”r+”) C) fopen(“A:\user\abc.txt”,”rb”) D) fopen(“A:\\user\\abc.txt”,”w”)

A卷第 1 页共 4 页 二、程序改错题 (每错 2 分,共 20 分) 1.下列程序的功能是根据如下公式求s的值,直到最后一项的值小于10-5为止。 s=1+1/3 +1/5 +1/7+„+1/ (2m+1) 请改正程序中的错误,使它能得出正确的结果。 #include void main( ) { int n=0; double t,s; /* error 1*/ do { n=n+1; t=1/ (2n+1); /* error 2*/ s=s+t; }while(t<0.00001); /* error 3*/ printf("\n The result is %lf \n",s); }

2.下列程序的功能是统计某班30个学生的平均成绩由函数值返回,同时将低于平均分的学生人数存放在形参num所指向的存储单元中。请改正程序中的错误,使它能得出正确的结果。 #include void average(float *score, int n, int *num) /* error 4*/ { float ave,sum=0.0; int count=0,k,j; for(k=0;kave=sum%n; /* error 5*/ for(j=0;jif(score[j]*num=&count; /* error 7*/ return; /* error 8*/ } void main( ) { float score[30],num; int k; printf("\nPlease enter score: \n"); for(k=0;k<30;k++) scanf("%d",score+k); /* error 9*/ printf("aver=%f\n", average(score, 30, num));/*error 10*/ printf("num = %d\n", num); }

A卷第2 页共 4 页 长江大学试卷 院(系、部) 专业 班级 姓名 班内序号 …………….…

………………………….密………………………………………封………………..…………………..线…………………………………….. 三、写出下列程序的运行结果 (每题5 分,共 20 分)

程序阅读题1 #include #include main() { char str[10]={“123456”}; int k,n,s=0; n=strlen(str); for(k=0;k{ s=10*s+str[k]–„0‟; printf(“%d ”,s); } Printf(“\nresult=%d\n”,s); }

程序阅读题2 #include void fun2(int a[],int n) { int i,j,t; for(i=0;i for(j=0;j if(a[j]>a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t;

} } void main( ) { int i,a[5]={5, 2, -7, 3, 7} ; fun2(a,5); for(i=0;i<5;i++) printf(“%d ”,a[i]);

}

程序阅读题3 #include void fun(int); void main() { int w=4; fun(w); printf(“\n”); } void fun(int k) { if(k>0)fun(k-1); printf(“ %d”,k); }

程序阅读题4 #include void main( ) { int a[6]={5,30,50, 40,75,55}; int s=0,i,m=a[0]; for(i=0;i<6;i++) { if(m if(i%2==0)s=s+a[i]; } printf(“s=%d m=%d\n”,s,m); }

A卷第3 页共 4 页 四、程序填空题 (每空2 分,共 10 分) 下列程序的功能是对键盘输入的字符串进行逆序,逆序后的字符串仍然保留在原来字符数组中,最后输出。请补充完整。 #include void main( ) { char str[50],k; int n,i,j; gets(str); ① ; while( ② ) n++; for(i=0,j=n-1;i { k=str[i]; ④ ;str[j]=k; } ⑤ ; }

五、程序设计题 (每题10 分,共 30 分) 1.编写一个程序求出100~300之间满足如下条件的数:它们三个数字之积为42,三个数字之和为12。

2.编写函数判断某数m是否素数,是返回1,否则返回0。函数原型为int IsPrime( int m);并编写一个主函数通过调用前述函数计算10到50之间所有素数的和。

3.编写函数删除字符串str中除大写字母外的所有字符。

A卷第4 页共 4 页