资源预览内容
第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
第9页 / 共9页
亲,该文档总共9页全部预览完了,如果喜欢就下载吧!
资源描述
答题说明:要求所有解答均写在答题卡上,否则无效。一、 程序阅读题(每题5分,共30分)1. 阅读程序,说明划线语句的作用,并写出程序的运行结果:#include #define M 5#define N M*3+4#define MN N*M void main() printf(%d,%dn,2*MN,MN/2); 2. 阅读程序,说明划线语句的作用,并写出程序的运行结果:#include int f(int n)static int s=1;while(n) s*=n-;return s;void main()int i,j;i=f(3); j=f(5)+f(2);printf(nThe output is: );printf(i=%d, j=%d n,i,j);3. 请说明下列程序的功能,并说明划线语句的作用:#include #include void main() char str1080,c80;int i;for(i=0;i10;i+) gets(stri);strcpy(c,str0);for(i=1;i10;i+) if(strlen(c)strlen(stri) strcpy(c,stri);printf(%sn,c);printf(%dn,strlen(c);4. 阅读程序,写出运行结果:#include void main( )char s = ABCCDA;int k;char c;for( k = 1; c = sk; k+ )switch( c ) case A: putchar(%); continue; case B:+k;break; default:putchar( * ); case C:putchar( & );continue;putchar(#); 5. 阅读程序,写出程序的运行结果:#includevoid main() int i,b,c,a=1,10,-3,-21,7,13,*p_b,*p_c; b=c=1; p_b=p_c=a; for(i=0;i6;i+) if(b*(a+i) c=*(a+i); p_c=&ai; i=*a; *a=*p_b; *p_b=i; i=*(a+5); *(a+5)=*p_c; *p_c=i; for(i=0;i6;i+) printf(%4d ,ai);6. 阅读程序,说明划线语句的含义,并写出程序的运行结果:#includeint *f(int *p,int *q);int main() int m=1,n=2,*r=&m;r=f(r,&n);printf(%dn,*r);return 0;int *f(int *p,int *q)return (*p*q)?p:q;二、 程序填空题(每空2分,共30分)1. 下面函数用来计算xy,请填空。float power ( float x,int y ) float z; for (z=1;y0;y (1) ) z (2) x; return(z);2. 将字符串a逆序复制到另一字符数组b中。#include #include void main() char a15=welcome,b15, *p1, *p2; p1=a; p2=b; while( (3) ) p1+; (4) ; while(p1=a) *p2=*p1; (5) ; p2+; *p2= 0 ; printf(result is %sn,b);3. 寻找具有下列特性的所有4位正整数,其特点是:百位数为0,去掉百位数0可得到一个3位正整数,而该3位正整数乘以9等于原4位正整数。例如:6075=675*9,所以6075是具有上述特性的正整数。 请勿改动程序的任何内容,仅在横线上填写所需的内容,请填空。#includeint f(int n) int a4, i=0, k ; k=n; while(k) a (6) =k%10 ; (7) ; if ( a2= =0a1=0 & ( (8) ) return 1;void main( ) int i ; for(i=1000 ; i10000 ; i+ ) if( (9) ) printf (“%4dt”,i) ; printf(“n”);4. 程序通过定义学生结构体数组,存储了3名学生的姓名及2门课的成绩,求出每个学生的平均成绩,并按照平均成绩递升的顺序进行排序,最后将学生信息以二进制的方式写入到文件中。请勿改动程序的任何内容,仅在横线上填写所需的内容,请填空。#include #define NO 3struct student char name9;int score2; float average;studNO,temp;void main( ) int i,j,index,sum;FILE *fp;for(i=0;iNO;i+)scanf(%s, (10) ); (11) ; for(j=0;j2;j+) scanf(%d, &studi.scorej); (12) ; studi.average=sum/2.0; for( i = 0; i NO-1; +i ) index =i; for (j = i+1; (13) ; j+ ) if (studj.average studindex.average) index = j; temp = studindex; studindex = studi;studi = temp; if(fp = fopen(st.dat, (14) ) = NULL) printf(File open error!n); exit(0); for(i=0;iNO;i+) fprintffwirite(fp, %s %d %d %fn, studi.name, (15) , studi.score1, studi.average);fclose(fp); 三、 编程题(共40分)1. 编程序计算函数 f(x)=|x+1|+|x-1|的值。(不允许用绝对值函数,自己设计分段函数)(8分)2. 编写程序,计算并输出下面级数在求和过程中第一次出现和数大于999时的奇数项部分和。(9分)1*2-2*3+3*4-4*5+(-1) (n-1)*n*(n+1)+ 3. 编写一个函数判断一个字符串是不是纯字母的字符串。在主函数中输入6个字符串,统计纯字母的字符串的个数。(8分)4. 请编一个函数fun,函数的功能是:删除一个一维数组中的某个指定值(如果有相同元素,删除全部与该值相同的元素)。(15分)1) 在主函数中给数组元素赋值,待删除的值由主函数通过键盘读入。调用fun,完成删除功能;2) 在主函数中输出原始数组和删除指定元素后的数组。每个元素之间空2格并左对齐。答题卡一、阅读程序题:1.2.3.4.5.6. 总分: : 二、程序填空题:1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.总分: ;三、编程题:总分: ;3共9页第 页
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号