把分数最高的学生的数据放在h所指数组中,
答案: int i, max = a[0].s, n=0;
答案: b[k]=*p; b[k++]=’ ’; 三 设计
求出平均分,由函数值返回
for(i = 1; i < N; i++) if(max < a[i].s) max = a[i].s ; for(i = 0; i < N; i++) 答案: STREC *p=h->next; double if(max==a[i].s) b[n++] = a[i] ; return n;
第39套 一.填空 逆置数组元素中的值。 答案: n/2 i a[n-1-i] 二 修改
将一个由八进制数字字符组成的字符串转换为与其面值相等的十进制整数,规定输入的字符串最多只能包含5为八进制数字字符
答案: n=*p-`0`: n=n*8+*p-‘0’; 三 设计
函数返回指定学生的学生数据,指定的学号在主函数中输入,若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回
答案: STREC c ; int i ; c.num[0] = '\\0' ; c.s = -1 ; for(i = 0 ; i < N ; i++) if(strcmp(a[i].num,b)==0) { strcpy(c.num, a[i].num);c.s=a[i].s; break ; } return c ;
第40套 一.填空
函数fun的功能。。。进行数字字符转换,若形参ch中是数字字符0-9,则0转换为9,1转换为8,2转换为7?9转换为0;其他字符则保持不变;转换后的结果作为函数值返回
答案: char ch<='9' ‘0’ 二 修改
将p所指字符串中的所有字符复制到b中,每复制三个字符有插入一个空格
av=0.0;int n = 0 ;while(p!=NULL) {av=av+p->s ; p=p->next; n++; } av /= n ; return av;
第41套 一.填空
函数fun的功能。。进行字母转换,其他字符则保持不变,
答案: && 'A' ch 二 修改
给一维数组a输入任意4个整数,并按下列的规律输入
答
案
:void
fun(int
*a)
a[j]=a[j-1];
三 设计
计算并输出给定整数n的所有因子之和,规定n的值不大于1000
答案: int s = 0, i ; for(i = 2 ; i
< n ; i++) if(n % i == 0) s +=i ; return
s ;
第42.套 一 填空
计算 f(x)=1+x-x2/2?(-1)n-1xn/n!前n项
答案: 1 -1 t 二 修改
从3个红球,5个白球,6个黑球中任意取出8个作为一组,进行输出。每组,可以没有黑球,但必须有红球和白球,
答案: for(i=1; i<=3; i++) if(k>=0 && k<=6)
三 设计
计算Sn=1+1/1!+1/2!...+1/n!
答案:double s=1;long t=1;int i; 第45套 一.填空
for(i=1;i<=n;i++) {t=t*i; s+=1./t; } return s;
第43套 一.填空
计算f(x)=1+x-x2/2!..(-1)xn/n! 至到|xn/n!|<10-6
答案: x n fabs(t) 二 修改
求整数x的y次方的低3为的值, 答案: <= % 三 设计
计算并输出x《0.97时下列多项式的值 答案: int n=1; double sn=1, double
xn=1;xn1=0;
while(fabs(xn-xn1)>=0.000001){xn=xn*x*(0.5-n+1)/n; n+=1; sn+=xn; } return(sn);
第44套 一.填空
计算f(x)=1+x+x2/2!...xn/n! 的前n项, 答案: 1 1 i 二 修改
找出100至n之间三位数字相等的所有整数,把这些整数放在s所指数组中,个数作为函数值返回
答案: k=i; c=k; 三 设计
计算并输出给定10个数的方差
答案: int i; double avg=0.0,
sum=0.0,abs=0.0, fc;
for (i=0;i<10;i++) sum+=x[i];avg=sum/10;for (i=0;i<10;i++) abs+=(x[i]-avg)*(x[i]-avg); fc=sqrt(abs/10) ; return fc;
计算f(x)=1+x+x2/2!+..xn/n!至到
|xn/n!|<10-6
答案: x n t 二 修改、
计算n的5次方的值,通过形参指针传回主函数;计算该值的个位,十位,百位上数字之和作为函数值返回
答案: d=1; s=0; d=d/10; 三 设计
计算并输出给定数组中每相邻两个元素之平均值的平方根之和
答
案
:int
i;
double
avg=0.0,sum=0.0;
for(i=0;i<8;i++){avg=(x[i]+x[i+1])/2; sum+=sqrt(avg);} return sum;
第46套 一 .填空
统计所有小于等于n的素数的个数,素数的个数作为函数值返回
答案: j=3 i j 二 修改
计算前n项的累加和;没累加一次把被4除后余2的当前累加值放入数组中,
答案: sum=0;j=0; if(sum%4==2) 三 设计 计
算
Sn=1-2/2+1/3-1/4..+1/2n-1-1-1/2n
答案: int i; double sum=0.0; if
(n>1 && n<=100) { for(i=1; i<=n; i++)
sum+=1.0/(2*i-1)-1.0/(2*i);} return
sum;
第47套 一.填空 统计长整形数n的各个位上出现数字
1、2、3的次数,并通过外部变量c1、c2、
c3返回主函数
答案: n break break 二 修改
统计一个无符号整数中各个数字值为零的个数,通过形参传回主函数,把整数中最大的数字值作为函数值返回
答案:if( t==0) *zero=count; 三 设计
计算S=1+1/1*2+1/1*2*3?
答案: double s=0, t=1; int i ; for(i=1; i<=n; i++) {t *= i; s+= 1./t;} return s;
第48套 一 .填空
首先从素数2开始。。用筛选法可得到2-n之间的所有素数,方法是:首先从素数2开始,将所有2 的倍数的数??
答案: a[i] a[i] 0 二 修改
为一个偶数寻找两个素数。这两个素数之和等于该偶数,并将各两个素数通过形参指针传回主函数
答案: y=1; d=a-i; 三 设计
计算并输出n以内的能被5或9整除的所有自然数的倒数之和
答案: int i; double sum=0.0; for(i=1; i<=n; i++) if(i%5 == 0 || i%9 == 0) sum+=1.0/i; return sum;
第49套 一.填空
甲乙丙丁四人同时开始放鞭炮,甲每个t1秒放一次??
答案: i t++ count 二 修改
根据输入的三个边长,判断能否构成三角形,构成的是等边三角形,还是等腰三角
形。若能构成等边三角形,函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0
答案: int fun(int a,int b,int c) else return 1;
三 设计
计算3到n之间所有素数的平方根之和 答案: int i,j=0; double s=0; for (i=3; i<=n; i++) { for (j=2; j
第50套 一.填空
从三个形参中找出中间的那个数,作为函数值返回
答案: a a b 二 修改
首先将大写字母转换为对应的小写字母,若小写字母为a-u字将其转换为其后的第5个字母,若小写字母为v-z,使其值减21.转换后的小写字母作为函数值返回
答案: c=c+32; c=c+5; 三 设计
计算S=1+(1+|2|)+(1+|2|+|3|)?(!+|2|..|n|)
答案: int i; double fac=1.0; double sum=1.0;for(i=2;i<=n;i++) { fac+=sqrt(i); sum+=fac; } return sum;
第51套 一.填空
找出1000至x之间个位上数字之和为15的所有整数,然后输出:符合条件的整数个数作为函数值返回
答案: 0 x t++ 二 修改
先将s所指字符串中的字符按逆序存放到t所指字符串中,然后把s所指字符正序连接到t所指串的后面
答案: int i,s1; t[i] = s[sl-i-1]; 三 设计
将ab中的两个两位正整数合并形成一个新的正整数放在c中,合并方式是:将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位数和各位数一次放在变量c的千位和十位上 *c=(b/10)*1000+(a/10)*100+(b)*10+(a);
第52套 一.填空
找出100-999之间所有整数中各位上数字之和为x的整数,然后输出,符合条
答案: 999 t/10 x 二 修改
从低位开始取出长整形变量s中的偶数为上的数,依次构成一个新数放在t中,
答案: void fun(long s,long *t) while(s>0)
三 设计
按分数的高低排列学生记录,高分在前 答案: STREC tmp; int i,j; for(i = 0; i < N; i++)for(j = i+1; j < N; j++) if(a[i].s
第53套 一.填空
将形参n中,各位上位偶数的数取出,并按原来从高到低的顺序组成一个新的数,并作为函数值返回
答案: 1 s i*10 二 修改
输出M行M列的整数方阵,然后求两条对角线上元素之和,返回此和数
答案:int fun(int n,int xx[][M]) Printf(“M”,xx[i][j]); 三 设计
将ab中的两个两位正整数合并形成一个新的正整数放在c中,合并方式是:将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位数和各位数一次放在变量c的千位和十位上 *c=(a/10)*1000+(b)*100+(a)*10+(b/10);
第54套 一.填空
将形参n中,个位上位偶数的书取出,并按原来从高到低相反的顺序组成一个新的数,并作为函数值返回
答案: 0 x*10 n/10 二 修改
将长整形数种每一位上为奇数的依次取出,构成一个新数放在t中,高位仍在高位,低位仍在低位
答案: *t=0; if(d%2!=0) 三 设计
实现两个字符串的连接把答案2所指的
字符串连接到答案1所指的字符串后
答案: char *p=p1; while(*p)p++; while(*p2) *p++=*p2++; *p=0;
第55套 一.填空
将形参n所指变量中,各位上位偶数的数去除,剩余的书按原来从高到底的顺序组成一个新的数,并通过形参指针n传回所指变量
答案: 10 0 x 二 修改 计算n!
答案: if (n == 0) result *=n--;- 三 设计
将一个数字字符串转换为一个整数 答案:long s=0,t; int i=0,j,n=strlen(p),k,s1; if(p[0]==`-`) i++; for(j=I;j<=n-1;j++) {t=p[j]-`0`; s1=10; for(k=j;k 第56套 一.填空 计 算 S=1*3/22 ? (2*n-1)*(2*n+1)/(2*n)2 答案: 0 n (t*t) 二 修改 统计substr所指子字符串在str所指字符串中出现的次数 答案: for(i=0;str[i];i++) if(substr[k+1]==’\\0’) 三 设计 根据以下pi的值 II/2=1+1/3+1*2/3*5*7+1*2*3*4/3*%*7*9?+1*2..*n/3*5..*(2n+1) 求II的值 答案: double s; float n,t,pi; t=1;pi=0;n=1.0;s=1.0; while((fabs(s))>=eps) { pi+=s;t=n/(2*n+1);s*=t;n++:} pi=pi*2; return pi; 第57套 一 填空 计算下式前n项的和作为函数值返回。 S=1*3/22-3*5/42+5*7/62?+(-1)n-1(2*n-1)*(2*n+1)/(2*n)2. 答案: 1 2*i (-1) 二 修改 判断一个数是否为素数若是返回1 否则返回0 答案:k++ ; if (m==k) 三 设计 找出一维整形数组元素中最大值和他所在的下标,最大的值和他所在的下标通 答案: int i ; *max=a[0];*d = 0 ; for(i= 1; i < n; i++) if(*max < a[i]) {*max=a[i]; *d = i ; } 第58套 一填空 给定程序中。。。。S=3/22-5/42+7/62?(-1)n-1(2n+1)/(2n)2 至[(2n+1)/(2n)2]<=10-3} 求S 答案: 3. > (2*i+1) 二 修改 求下列分数序列前n项和,结果通过函数值返回主函数