计算机二级考试C语言操作题题库
1. 下列程序定义了n×n的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][n]),该函数的功能是:使数组左下半三角元素中的值全部置成0。答案: int fun(int a[][N]) {
int I,j;
for(i=0;i<N;i++) for(j=0;j<=I;j++) a[i][j]=0; }
2. 请编写函数fun,对长度位7个字符的字符串,除首尾字符外,将其余5个字符按ascii码降序排列。 答案:
void fun(char *s,int num) {
char t; int I,j;
for(i=1;i<num-2;i++)
for(j=i+1;j<num-1;j++)
3. 请编写函数fun,其功能是:将s所指字符串中除了下标为偶数、同时ascii值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的一个数组中。 答案:
void fun(char *s,char t[]) {
int I,j=0,n; n=strlen(s); for(i=0;I,n;i++) if(i%2==0&&s[i]%2==0) {
t[j]=s[i]; j++; }
t[j]=‘\\0’; }
4. 请编写函数fun,该函数的功能是:将m行n列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。 答案: void fun(char (*s)[n]for(j=0;j<n;j++) } ,char *b) for(i=0;i<m;i++) b[k]=‘\\0’; { { } int i,j,k=0; b[k]=*(*(s+i)+j) k++;
5. 请编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指的数组中,非素数的个数通过k传回。 答案: void fun(int m,int *k,int xx[]) if (i%j==0) break; { if(j=40
&a<=49) b[4]+=1; { else if(a>=50&a<=59) b[5]+=1; int i,j; else if(a>=60&a<=69) b[6]+=1; for(j=0;i<m;j++) b[j]=0; else if(a>=70&a<=79) b[7]+=1; for(i=0;i<n;i++) else if(a>=80&a<=89) if(a>=0&a<=9) b[0]+=1; b[8]+=1; else if(a>=10&a<=19) b[1]+=1; else if(a>=90&a<=99) b[9]+=1; else if(a>=20&a<=29) b[2]+=1; else b[10]+=1; else if(a>=30&a<=39) b[3]+=1; }
7. 请编写函数fun,其功能时:将两个两位数的正整数a、b合并形成一个整数放在c中,合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b的十位和个位整数依次放在c数的百位和个位上。 答案: void fun(int a,int b,long *c) {
*c=(a)*1000+(b/10)*100+(a/10)*10+b; }
8. 请编写函数fun,其功能使:将两个两位正整数a b合并形成一个整数放在c中。合并的方式使:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的千位和十位上。 答案: void fun(int a,int b,long *c) {
*c=(b/10)*1000+(a/10)*100+(b)*10+a; }
9. 请编写函数fun,其功能是:将两个两位数的正整数a b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c的十位和千位上,b数的十位和个位数依次放在c数的个位和百位上。 答案: void fun(int a, int b, long *c) {
*c=(a)*1000+(b)*100+(a/10)*10+b/10; }
11. 请编写函数fun,它的功能是计算:s=(ln(1)+ln(2)+ln(3)+…+ln(m))(0.5),s作为函数值返回。 答案: double fun(int m) for(i=1;i<=m;i++) s=s+log(i); { s=sqrt(s); int I; return s; double s=0.0, log(double x); } double fun(int [][N{ s+=w[N-1][j]; ]) s+=w[0][j]; k++; { k++; } int I,j,k=0; } for(i=1;i<double s=0.0; for(j=0;j<N;j++) =N-2;i++) for(j=0;j<N;j++) { {
s+=w[i][0]; k++; }
for(i=1;i=N-2;i++) {
s+=w[i][N-1];
<
k++; }
return s/=k; }
13. n名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:出学生的最高分,由函数值返回。 答案: double fun(STREC *h) Do } { while(q!=0); { if(q->s>max) max=q->s; return max; double max; } STREC *q=h; max=h->s; q=q->next;
14. 请编写函数fun,其功能是:将s所指字符串中除了下标为奇数、同时ascii值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的一个数组中。 答案: void fun(char *s,char n=strlen(s); t[j]=s[i]; j++; t[]) for(i=0;I,n;i++) } { if(i%2!=0&&s[i]%2!=0) t[j]=‘\\0’; int I,j=0,n; { }
计算机二级c语言选择题库 15. 下列程序定义了n×n的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][n],int n),该函数的功能是:将数组右上半三角元素中的值乘以m。 答案:
void fun(int a[][n],int m) for(i=0;i<=j;i++) { a[j]=a[j]*m; int i,j; } for(j=0;j<n;j++)
16. 已知学生的记录是由学号和学习成绩构成,n名学生的数据已存入a机构体数组中。请编写函数fun,该函数的功能是:出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。 答案: void fun(stu a[],stu *s) if(a.s>max) { { int i,max; max=a.s; *s=a; max=a[0].s; }
} for (i=0;i<n;i++)
17. 编写一个函数fun,它的功能是:实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后。 答案: void fun(char p1[],char p2[ { p1=*q; q++; i++; ]) p++; n++; } { } p1=‘\\0’; int i=0,n=0; i=n; } char *p=p1,*q=p2; while(*p) while (*p) {
18. 编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。 答案:
int fun(char *str,cha { else break; r *substr) p=str; r=substr; if(*r==‘\\0’) { while(*r) n++; str++; int n; if(*r==*p) } char *p,*r; { return n; n=0; r++; p++; } while(*str) }
19. 请编写函数fun,其功能是:将s所指字符串中下标位偶数同时ascii值为奇数的字符删除,s中剩余的字符形成的新串放在t所指的数组中。 答案: void fun(char *s,char t[]) {
int i,j=0,n=strlen(s); for(i=0;i<n;i++) if(i%2==0&s%2!=0) else {
f[j]=s; j++; }
t[j]=‘\\0’; }
20. 请编写函数fun,该函数的功能是:实现b=a+a,即把矩阵a加上a的转置,存放在矩阵b中。计算结果在main函数中输出。 答案: void fun(int a[3][3],int b[3] for(i=0;i=l&a.s<=h)
25. 编写函数藏服那,它的功能是:求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回。 答案: double fun(int n) if(i%3==0&i%7==0) s=s+i; { s=sqrt(s); double s=0.0; return s; int i; }
for(i=1;i<n;i++)
26. 请编写函数fun,该函数的功能是:将m行n列的二维数组中的数据,按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参n所指的储存单元中。 答案: void fun(int(*s)[10],int *b,int *n,int mm,int for(j=0;j<nn;j++) nn) { { b[*n]=*(*(s+i)+j); *n=*n+1; int i,j; } for(i=0;i<mm;i++) }
27. 请别写函数fun,该函数的功能是:将放在字符串数组中的m个字符串(每串的长度不超过n),按顺序合并组成一个新的字符串。 答案: void fun(char a[m][n],char for(j=0;j<n;j++) b[k]=‘\\0’; *b) if(*(*(a+i)+j)) } { { } int i,j,k=0; b[k]=*(*(a+i)+j) k++; for(i=0;i<m;i++) } { else break;
28. 请编写函数fun,该函数的功能是:删去一维数组中所有相同的数,使之只剩
一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 答案: int fun(int a[],int n) { { a[j]=t; t=p; j++; int i,t,j=0, } *p=a; t=p[0]; if(i>=n) a[j]=t;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论