二级C语言考试机试精简版(1) - 图文

2019-08-29 20:38

类型一:调整一个数的个、十、百、千位 程序题题目1.请编写函数fun,其功能是:将两个两位数的正整程序题题目2.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的百位和个位上。例如,当a=45,b=12,调个位数依次放在c数的千位和十位上。例如,当a=45,b=12,调用该函数后c=4152。 用该函数后c=1524。 程序题答案:程序题答案*c=(b/10)*1000+(a)*100+(b)*10+(a/10); *c=(a/10)*1000+(b/10)*100+(a)*10+(b); 填空题答案: *fw str str 填空题答案:STYPE FILE fp 改错题答案 改错题答案 void fun(long s,long *t) for( i=0; i<=sl; i ++) 把s后字母改为小写L sl=sl*10; t[2*sl] = '\\0'; 程序题题目3.请编写函数fun,其功能是:将两个两位数的正整程序题题目4.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的十位和千位上。例如,当a=45,b=12,调个位数依次放在c数的百位和个位上。例如,当a=45,b=12,调用该函数后c=2514。 用该函数后c=5142。 程序题答案:程序题答案:*c=(b)*1000+(a)*100+(b/10)*10+(a/10); *c=(a)*1000+(b/10)*100+(a/10)*10+(b); 填空题答案:\填空题答案:fp fclose(fp) fname 改错题答案 if (d%2==0) 改错题答案 s /= 10; for ( i=j+1; i<=n-1 ; i++ ) p=i; 5.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上,b数的十位和个位数依次放在c数的个位和百位上。例如,当a=45,b=12,调用该函数后c=5241。 *c=(a)*1000+(b)*100+(a/10)*10+(b/10); k N-1 temp fun(int a[][M], int m) a[j][k]=(k+1)*(j+1); 7.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的千位和十位上。例如,当a=45,b=12,调用该函数后c=1425。 *c=(b/10)*1000+(a/10)*100+(b)*10+(a); 0 x t++ int i,s1; s后面是小写的L t[i] = s[sl-i-1]; 6.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。例如,当a=45,b=12,调用该函数后c=2415。 *c = (b)*1000+(a/10)*100+(b/10)*10+a; struct student * a->score[i] a char *fun(char (*sq)[M]) return sp; 8.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的个位和百位上。例如,当a=45,b=12,调用该函数后c=4251。 *c=(a/10)*1000+(b)*100+(a)*10+(b/10); 1 s i*10 int fun(int n,int xx[][M]) printf(\

1

类型二:与*号有关的操作 程序题目9.请编写函数fun,它的功能是:将字符串中的前导*程序题题目10.请编写函数fun,它的功能是:除了尾部的*号之号全部删除,中间和尾部的*号不删除。 外,将字符串中其他*号全部删除。形参p已指向字符串中最删除前导*号 后的一个字母。 int j=0; char *p = a ; 除尾部*号,其余*删除 while(*p == '*') p++ ; char *q=a; int j=0; while(*p) { a[j++] = *p ; p++; } while(*q && q a[mid]) 11.请编写函数fun,它的功能是:除了字符串前导和尾部的*号12.请编写函数fun,它的功能是:删除字符串中所有的*号。 之外,将串中其他*号全部删除。 删除串中所有*号 只删除中间*号 int j =0 ; char *p=a; int j=0; char *q=a; while(*p) while(*q && q < h) a[j++] = *q++ ; {if(*p != '*') a[j++]=*p ; p++ ; } while(*h && *p && h < p) a[j]=0; { if(*h != '*') a[j++] = *h ; h++; } while(*p) a[j++] = *p++ ; 1 a[j] = 0 ; j++ j sum=0 t[i][i] t=a;a=b;b=t; 1 return(b); double r; while(fabs(m-n)>0.001) 13.请编写函数fun,它的功能是:将字符串尾部的*号全部删除,前面和中间的*号不删除。 删除串尾*号 char *p = a ; while(*p) p++ ; p-- ; while(*p == '*') p-- ; p++ ; *p = 0 ; 填空题答案:N i -1 改错题答案: a2=k/10; return i; 15.请编写函数fun,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。 删除前导和尾部* char *p=a ; int j=0,len=0; while(*p) {p++; len++;} while(jn) { i=n;j=k; for(; a[j] !=0 ; j++) a[i++]=a[j]; a[i] = 0; } 填空题答案:M N 0 改错题答案(1)t=1; (2)return(2*s);

14.请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其他*号全部删除。 除前导*外其他删除* int i=0,k; while(a[i]=='*') i++; k=i; while(a[i]!='\\0') { if(a[i] != '*') a[k++]=a[i]; i++; } a[k]='\\0'; N k ss[i] int k=0; while( *p || *q ) 16.请编写函数fun,它的功能是:使字符串中尾部的*号不得多于n个 串尾部*号不多于n个 char *p=a ; int j=0; while(*p) p++; p--; while(*p == '*') p--; p++; while(j0;n--) *q++='*'; *q='\\0'; 填空题答案:a b.name score[i] 改错题答案 (1) s[j++]=s[i]; (2)s[j]=0; 2

19.编写一个函数,从传入的num个字符串中找出最长的一个字符串,并通过形参指针max传回该串地址 (用****作为结束输入的标志)。 int i,k=0,maxlen; maxlen=strlen(a[k]); for(i=1;i maxlen) { maxlen = strlen(a[i]) ; k = i ; } } *max=a[k]; [N] i i+1 aa[i]=m%k; printf(\ 类型三:与下标或ASCII码有关 程序题目20.请编写一个函数fun,它的功能是:将ss所指字符21.请编写—个函数void fun(char *ss),其功能是:将字符串中所有下标为奇数位置上的字母转换为大写(若该位置上串ss中所有下标为奇数位置上的字母转换为大写(若该位置不是字母,则不转换)。 上不是字母,则不转换)。 下标奇数位置子母改大写 下标奇数位置子母改大写 char *p = ss ; int i = 0 ; 程序题答案 while(*p) { int i ; if((i % 2) && (*p >= 'a' && *p <= 'z')) *p -= 32 ; for(i = 1 ; i < strlen(*ss) ; i+=2) p++ ; i++ ; } { return ss ; if(ss[i]>= 'a' && ss[i]<= 'z') ss[i]-=32; } NULL n head,ch 填空题答案: k N a[k][i] for (i = 0,t = 0; p[i] ; i++) for( i = strlen( t )-1; i; i-- ) c[t]= '\\0'; if(t[j]>t[j+1]) 22.请编写函数fun,其功能是:将s所指字符串中下标为偶数的23.编写函数fun,对长度为7个字符的字符串,除首、尾字符外,字符删除,串中剩余字符形成的新串放在t所指数组中。 将其余5个字符按ASCII码降序排列。 下标为偶数字符删除 除首尾外其余ASCII码降序 char ch ; int i, j ; int i, j = 0 ; for(i = 1 ; i < 6 ; i++) for(i=1; i

3

28.请编写函数fun,其功能是:将s所指字符串中下标为偶数同补充题1请编写函数fun,函数的功能是查找x在s所指数组时ASCII值为奇数的字符删除,s中剩余的字符形成的新串放中下标的位置,并作为函数值返回,若x不存在,则返回-1. 在t所指的数组中。 查找下标位置 int i; 将下标为偶数同时ASCII码为奇数删除 for(i=0;inext q p->next 改错题答案 t=(STU *)calloc(sizeof(STU),m); while(*s) t[k]=b[j]; s++; 31.请编写一个函数fun,它的功能是:找出一维整型数组元素32.请编写一个函数int fun(int *s,int t,int *k),用来求出数组的中最大的值和它所在的下标,最大的值和它所在的下标通过最大元素在数组中的下标并存放在k所指的存储单元中。 形参传回。 求数组最大元素及下标 int i, pos = 0, max = *s ; 找出一维数组最大值及其下标 for(i = 1 ; i < t ; i++) int i ; { if(max < *(s + i)) *max=a[0];*d = 0 ; { max = *(s + i) ; pos = i ; } } for(i = 1; i < n; i++) *k = pos ; if(*max < a[i]) { *max = a[i]; *d = i ; } n++ 0 s++ 1 2*i (-1) t+=s[k]; k++; *ave=ave; if (m == k ) 33.请编写函数fun(inta[][N],int n),该函数的功能是:使数组左34.请编写函数fun(int a[][N],int n),该函数的功能是:使数组右下半三角元素中的值乘以n。 上半三角元素中的值乘以m。 左下三角元素乘n 右上三角元素同乘m int i, j; int i, j; for(i = 0 ; i < N ; i++) for(i = 0 ; i < N ; i++) for(j = 0 ; j <= i; j++) a[i][j] *= n ; for(j = i ; j < N ; j++) a[i][j] *= m ; *av i x[j] STU score[i] &std float fun(int n) if(k>0) for (i=2; i<=n; i++) else if(k==0) 35.请编写函数fun(int a[][N]),该函数的功能是:使数组左下半三角元素中的值全部置成0。 左下三角元素置0 int i, j; for(i = 0 ; i < N ; i++) for(j = 0 ; j <= i; j++) a[i][j] = 0 ; *std PERSON std int k,q,i; pt[i] = str[k][i] ; 36.请编一个函数求出二维数组每列中最小元素,并依次放入pp所指一维数组中。 二维数组每列最小元素 int i,j, min, k ; for(i = 0 ; i < N ; i++) { min = tt[0][i] ; k = 0 ; for(j = 1 ; j < M ; j++) if(min > tt[j][i]) {min=tt[j][i] ; k = j ; } pp[i] = tt[k][i] ; } *std std[i].age max.name void fun ( int*a, int*b ) t=*b;*b=*a;*a=t; 4

37.请编写一个函数fun,它的功能是:求出—个2×M整型二维数组中最大元素的值,并将此值返回调用函数。 求二维数组中最大元素的值 int i, j, max=a[0][0]; for(i=0; i<2; i++) for(j=0; jnext p->next >= p=h->next; p=p->next; 42.请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的s。 数组周边元素的平均值 int i, j, n=0; double sum=0; for ( i =0; i upfst(char *p) 44.请编写函数fun,该函数的功能是:实现B=A+A’,即把矩阵A加上矩阵A的转置,存放在矩阵B中。 B=A+A? 编程题答案: int c[3][3] ; int i, j ; for(i = 0 ; i < 3 ; i++) for(j = 0 ; j < 3 ; j++) { c[i][j] = a[j][i] ; b[i][j] = a[i][j] + c[i][j] ; } 填空题答案: && '\\0' s[j] 改错题答案 for(i=2; i<=m; i++) y+=1./(i*i); 43.请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。 二维数组周边元素之和 int tot = 0, i, j ; for(i = 0 ; i < N ; i++) {tot += a[0][i] ; tot += a[M-1][i] ; } for(i = 1 ; i < M - 1 ; i++) {tot += a[i][0] ; tot += a[i][N-1] ; } return tot ; x[i]/N j++ i++ num[k]=0; switch(*s) 类型五:学生分数操作 程序题45.请编写一个函数fun,它的功能是:计算n门课程的46.N名学生的成绩已在主函数中放入一个带头节点的链表平均分,计算结果作为函数值返回。例如:若有5门课程的成结构中,h指向链表的头节点。请编写函数fun,它的功能是:求绩是:90.5,72,80,61.5,55,则函数的值为71.80。 出平均分,由函数值返回。 n门课程平均分71.8 N名学生的成绩的平均分,78.625 STREC *p=h->next; 程序题答案 double av=0.0; int n = 0 ; int i; while(p!=NULL) float ave=0.0; { av = av + p->s ; p=p->next; n++; } for(i=0; i

5


二级C语言考试机试精简版(1) - 图文.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:滤波补偿设备技术条件书最终版

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: