豆搜网 文档下载 文档下载导航
设为首页 | 加入收藏
搜索 请输入内容:  
 导航当前位置: 文档下载 > 所有分类 > 资格考试/认证 > IT认证 > 2012年3月份计算机二级C语言上机题库(全)超级精简版
侵权投诉

2012年3月份计算机二级C语言上机题库(全)超级精简版

第一套填空 程序通过定义学生结构体数组,存储了若干个学生的学号、姓名和三门课的成绩。函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大排序)。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。(1) struct student t;(2) for(i=0;i<n-1;i++)

(3)if(strcmp(a[i].name,a[j].name)>0)修改(1)q=p+i;(2)

while(q>p)程序: int fun(STREC *a,STREC *b,int l,int h){int i,j=0; for(i=0;i<N;i++)if((a[i].s>=1&&a[i].s<=h)b[j++]=a[i];return j;} 第二套

填空。给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序连接。函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。(1) free(q);(2)q=p->next;(3)q=q->next;修改(1)p=j;(2)p=i;程序void fun(int m,int

*a,int

*n){int

i;*n=0;for(i=7;i<=m;i++)if((i%7==0)||(i%11==0))a[(*n)++]=i;} 第三套

填空函数fun的功能是:逆置数组元素是的值。例如:若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则逆置后依次为:9、8、7、6、5、4、3、2、1。形参n给出数组中数组中数据的个数。(1) for(i=0;i<n/2;i++)(2)a[i]=a[n-1-i];(3) a[n-i-1]=t;修改

(1)n=*p- 0 ;(2)n=n*8+*p- 0 ;程

STREC

fun(STREC*a,char

*b){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;} 第四套

填空 给定程序中,函数fun的功能是:在带有头结点的单向链表中,查找数据域中值为ch的结点。找到后通过函数值返回该结点在链表中所处的顺序号:若不存在值为ch的结点,函数值返回0.(1) while(p!=0)(2)if(p->data==ch)return n;(3) k=fun(head,ch);修

(1)for(i=0,t=0;p[i];i++)(2)c[t]= \0 ;程

void

fun(char

*ss){int

i;for(i=1;i<strlen(ss);i+=2){if(ss[i]>= a &&ss[i]<= z )ss[i]-=32; }}

第五套 填空 给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。例如:当形参n的值为10 的时,函数返回:9.6125588

(1)

s=0;

(2)

for(i=1;i<=n;i++)

(3)s=s+(2.0*i-1)*(2.0*i+1)/(t*t);修改(1)for(i=0;str[i];i++)(2) if(substr[k+1]== \0 )程序double fun(double

eps){

double

s=1,t=1./3;int n=1;

while(t>=eps){s+=t;n++;t=t*n/(2.0*n+1);}return(s*2.0);} 第六套

填空 给定程序中,函数fun的功能是:将形参s所指定字符串中所有的字母字符顺序前移,其他字母顺序后移,处理后字符串的首地址作为函数值返回。(1) t[j]=s[i];j++;(2) for(i=0;i<k;i++)t[j+i]=p[i];(3) t[j+k]=0;修改(1)while(*w)(2)if(*r==*p)程序void fun(char

*s,char

t[]){

int

i,j=0;for(i=0;i<strlen(s);i++)if(s[i]%2==0)t[j++]=s[i];t[j]=0;} 第七套

填空 程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。函数fun的功能是将形参a所指结构体变量s中的数据进行修改,并把a中地址作为函数值返回主函数,在主函数中输出修改后的数据。(1) struct student *fun(struct student*a) (2) for(i=0;i<3;i++)

a->score[i]+=1;(3) return a;修改(1)char *fun(char (*sq)[M]) (2)return sp; 程序 #include <stdio.h>void

fun(int

a,int

b,long

*c){ *c=(b%10)*1000+(a/10)*100+(b/10)*10+a%10;} 第八套

填空 函数fun的功能是:将形参观者工所指数组中的前半部分元素中的值和后半部分元素中的值对换。形参n中存放数组中数据的个数,若n为奇书,则中间元素不动。(1) p=(n%2==0)?n/2:n/2+1;(2)

a[i]=a[p+i];(3) a[p+i]=t;修改(1)float k;(2)if(*a<*c)程序

int fun(STREC *a,STREC *b) {

int i,max=a[0].s,n=0; for(i=1;i<N;i++) if(max<a[i].s)max=a[i].s; for(i=0;i<N;i++)

if(max==a[i].s)b[n++]=a[i]; return n; } 第九套

填空 给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值,(规定所有数均为正数),将所指数组中小于平均值的数据移至数据的前部,大于等于平均数的移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。(1) for(i=0;i<N;i++) av+=x[i]/N(2)

y[j]=x[i];x[i]=-1;j++;}(3) i++;修改(1)num[k]=0;(2)switch(*s)

程序int fun(int a [M][N]){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;} 第十套

填空 程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。函数fun的功能是将形参a中的数据进行修改,把修改后的数据作为函数值返回主函数进行输出(1) struct studentfun(struct student a)(2)strcpy(a.name,”LiSi”);(3) a.score[i]+=1;修

(1)if(p==n)

return-1 (2)a[i]=a[i+1];程序

int fun(STREC

*a,STREC

*b){int

i,j=0,min=a[0].s;for(i=0;i<N;i++){ if(min>a[i].s){j=0;b[j++]=a[i];min=a[i].s;}elseif(min==a[i].s)b[j++]=a[i];}return j;} 第十一套

填空 给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值,(规定所有数均为正数),将所指数组中大于平均值的数据移至数据的前部,小于等于平均数的移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。(1) av=s/N; (2)

y[j++]=x[i];x[i]=-1;}(3)

if(x[i]!=-1)y[j++]=x[i];

(1)#include<stdio.h>(2)upfst (char *p)程序 double fun(int w[][N]){ int i,j,n=0;

double sum=0;for(i=0;i<N;i++) { sum+=w[0][i]+w[N-1][i];n+=2;}for(i=1;i<N-1;i++){ sum+=w[i][0]+w[i][N-1];n+=2;}return sum/n;} 第十二套

填空 给定程序中,函数fun的功能是:将自然数1—10以及它们的平方根写到名为myfile3.txt的文本文件中,然后再顺序读出显示在屏幕上。

(1)fprintf(fp,”%d%f\n”,i,sqrt((double)i));

(2) fclose(fp);(3)

if((fp=fopen(fname,”r”))==NULL)修改(1)for(i=j+1;i<n;i++)(2)p=i; 程序 #include <stdio.h> void fun(int a,int b,long *c)

{

ile(fabs(x0-x1)>0.000001);return x1;} *c=(b%10)*1000+(a%10)*100+(b/10第十九套

)*10+(a/10);} 填空 给定程序中,函数fun的功第十三套

能是:将a所指的3×5矩阵中第k填空 给定程序中,函数fun的功能列的元素左移到第0列,第k列以是:找出N*N矩阵中每列元素中的后的每列元素行依次左移,原来左最大值,并按顺序一次存放于形参b边的各列依次绕到右边。 所指的一维数组中。(1)b[i]=a[0][i];(2) (1)

for(p=1;p<=k;p++)(2)for(j=0if (b[i]<a[j][i])b[i]=a[j][i];(3) fun(x,y);;j<N-1;j++)a[i][j]=a[i][j+1];(修

(1)int

fun(int

*x,int

3) a[i][N-1]=temp;修改*y)(2)t=*x;*x=*y;*y=t; (1)fun(int a[][M],int

程序 #include <stdio.h> m)(2)a[j][k]=(k+1)*(j+1);

#define MAX100

(2) 程序

int fun(int lim,int aa[MAX])

{int i,j,k=0;for(i=2;i<=lim;i++) void fun(int a,int b,int*c) {for(j=2;j<=(i/2);j++)if(i%j==0)break{

;if(j>(i/2))aa[k++]=i;} return k;} *c=(a%10)*1000+(b%10)*100 第十四套

+(a/10)*10+(b/10); 填空函数fun的功能是进行字母转} 换。若形参ch中小写英文字母,则 转换成相应的大写英文字母;若形 参ch中是大写英文字母,则转换成第二十套

相应的小写英文字母;并将转换的填空 给定程序中,函数fun的功能结果作为函数值返回。(1) 是:对形参s所指字符串中下标为if((ch>= a )&&(ch<= z ))(2) 奇数的字符ASCII码大小递增排序,returnch+ a - A (3) return ch; 并将排序后的下标为奇数的字符取修改(1)void fun(int *a) 出,形成一个新串。(1)t=i; (2)a[j]=a[j-1];程序int fun(int n) (2)for(j=i+2;j<n;j=j+2)(3)p[j]=0;修改{int s=0,i;for(i=2;i<n;i++) (1)while((fabs(t))>=num)

if(n%i==0)s+=i;return s;} (2)t=s/n 程序viod fun (char 第十五套

a[ ],char b[],int n){strncpy 1填空 给定程序中,函数的功能(b,a,n);b[n]=0;strcat(b,a+n+1);} 是:把形参s所指字符串下标为奇第二十一套

数的字符右移到下一个奇书位置,填空 给定程序中,函数fun的功能最右边呗移出字符串的字符绕回放是:在形参ss所指字符串数组中,到第一个奇数位置,下标为偶数的将所有串长超过k的字符串右边的字符不动(注:字符串的长度大于字符删去,只保留左边的k个字符。等于2)。例如,形参s所指的字符ss所指字符串数组中共有N个字符串为:abcdefgh,执行结果为:串,且串小于M。(1) void fun(char ahcbedg。(1) if(n%2==0) k=n-1;(2) (*ss)[M], int k)(2) while (i<N){ c=s[k];

(3) ss[i][k]=0;i++;}修改(1)t=1; (3) s[1]=c;修改(1)long s=0,t=0; (2)return(2*s);

void

(2)t=t/10;程序void fun(char*tt, int fun(char*a,int n){int i=0,k=0; pp[

]){char

*p=tt;int

while(a[k]= = * )k++;if(k>n){ i;for(i=0;i<26;i++)pp[i]=0;while(*p){i=n;j=k;for(;a[j]!=0;j++) if(*p>= a &&*p<= z )pp[*p- a ]+=1;a[i++]=a[j];a[i]=0;}} p++;}} 第二十二套

第十六套

填空 给定程序中,函数fun的功能填空 记录由编号和出生年、月、是:a所指4×3矩阵中第k行的元日组成,N名人员的数据已在主函素与第0行元素交换。例如:有下数中存入结构体数组std中,且编号列矩阵 唯一。函数fun的功能是:找出指定1

2 3

编号人员数据,作为函数值返回,4 5 6 由主函数输出,若指定编号不存在,7 8 9 返回数据中编号为空串。(1) STU 10 11 12

fun(STU *std, char *num)(2) 若k为2,程序执行结果为 if(strcmp (std[i].num, num)= =0)(3) 7 8 9 return

(std[i]);

(1)r++;

4 5 6 p++;(2)if(*r= =0) 1 2 3

程序#include <stdio. h> 10 11 12 (1)void fun(int #include <string. h>

(*a)[N],int k)

void fun (char*s, char t[]){int i, (2) for(i=0;i<N;i++)(3) a[0][i]=a[k][i];j=0;for(i=0;i<strlen(s);i++)if(s[i]%2) 修改(1)

t[j++]=s[i];t[j]=0;} for(i=strlen(t)-1;i;i--) 第十七套

(2)if(t[j]>t[j+1])程序 void 1填空 给定程序中,函数fun的fun(char *ss){char *p=ss; 功能是:统计形参s所指字符串中inr i=0;while(*p){

数字字符出现的次数,并存放在形if((i%2)&&(*p>= a &&*p<= z ))*p-参t所指的变量中,最后在主函数中=32;p++;i++;}} 输出。例如,形参s所指的字符串第二十三套

为:abcdef35adgh3kjsdf7。输出结果填空 给定程序的功能是:调用函为:4。

数fun将指定源文件中的内容复制(1)for(i=0;s[i]!=NULL;i++)(2) 到指定的目标文件中,复制成功时if(s[i]>= 0 &&s[i]<= 9 )n++;(3) *t=n;函数的返回值是1,失败是返回值是修改(1)t=*x;*x=y;(2)return(t); 0.在复制的过程中,把复制的内容输程序#include <stdio. h>viod fun (int 出到终端屏幕。主函数源文件名放*a,int *n){int i;*n=0; 在变量sfname中,目标文件放在变for(i=7;i<1000;i++) 量tfname中。(1)

if(((i%7)= =0││(i%11)= =0 if((fs=fopen(source,”r”))==NULL)(2) &&(i%77)!=0) a[(*n)++]=i;} while(!feof(fs)) 第十八套

(3)fputc(ch,ft);修改(1) 填空 给定程序中,函数fun的功能if(d%2==0)(2)s/=10; 是:有N×N矩阵,根据给定的m 程

void

fun(int

a,int

(m<=n)值,将每行元素中的值均b,long*c){*c=(a%10)*1000+(b/10)*1右移m个位置,左边值为0. 00+(a/10)*10+(b%10); (1)

第二十四套

for(i=0;i<N;i++)(2)t[i][j+m]=t[i][j];(3) 填空 程序通过定义学生结构体for(j=0;j<m;j++)修

变量,存储了学生的学号、姓名和(1)/while((2<=high)&&(n<10))(2)yes

三门课的成绩。函数fun的功能是将=0;break;程序

float fun(){float

形参a所指结构体变量中的数据赋x0,x1=0.0;do{x0=x1;x1=cos(x0);}wh

给函数中的结构体变量b,并修改b1

中的学号和姓名,最后输出修改后的

(1)

b=a;(2)

strcpy(b.name,”LiSi”)(3) for

(i=0;i<3;i++)printf(“%6.2f”,b.score[i]

);修改(1)s[j++]=s[i];(2)

s[j]= \0 ;程序void fun(char *a){ char *p,*q;int n=0;p=a;

while(*p== * ){n++;p++;}q=a;while(*p){*q=*p;p++;q++;}for(;n>0;n--)*q++= * ;*q= \0 ;} 第二十五套

填空 用筛选法可得到2—n(n<10000)之间的所有素数,方法是:首先从素数2开始,将所有2的倍数的数从数表中删去(把数表中相应位置的值置成0);接着从数表中找下一个非0数,并从数表中删去该数的所有倍数,依此类推,直到所找的下一个数等于n为止。这样会得到一个序列:2、3、5、7、11、13、17、19、23 函数fun用筛选法找出所有小于等于n的素数,并统计素数的个数作为函数值返回。(1)for(j=a[i]*2;j<=n;j+=a[i])(2) while(a[i]= =0)(3) if(a[i]!=0) 修改(1)y=1;(2)d=a-i; 程序double fun(int n){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;}

第二十六套

填空 给定程序中,函数fun的功能是建立一个N×N的矩阵。矩阵元素的构成规律是:最外层元素的值全部是1;从外向内第二层元素的值全部为2;第三层元素的值全部是3, 依此类推。(1)void fun(int(*a)[N])(2)for(j=i;j<N-i;j++)(3)a[k][i]=a[k][N-i-1]=i+1;修改(1)aa[i]=m%k;(2) printf(“%d”,aa[i-1]);程序 fun(char (*a)[81],int

num,char **max){ int i,k=0,maxlen;

maxlen=strlen(a[k]);for(i=1;i<num;i++){if(strlen(a[i])>maxlen){maxlen=strlen(a[i]);k=i;}} *max=a[k];}

第二十七套

填空 函数fun的功能是计算f(x)=1+x-2/2!+3/3!-4/4!+ 的前n项和。若x=2.5,n=15时,函数值为1.917914。(1)f=1;

(2) t*=(-1)*x/i;(3) f+=t; 修改(1)for(i=1;i<=3;i++) (3)if(k>=0&&k<=6) 程序double fun(int n){ double

s=1 long

t=1;int

i;for(i=1;i<=n;i++){t=t*i;s+=1.0/t;}return s;} 第二十八套

填空 给定程序中,函数fun的功能是:计算N*N矩阵的主对角线元素和方向对角线元素之和,并作为函数值返回。注意:要求先累加主对角线元素中的值,然后累加反响对角线元素的值。(1) sum=0;(2) sum+=t[i][i];(3)sum+=t[i][n-i-1];修改(1)double r; (2)while(fabs(n-m)>0.001) 程序

void fun(char *a,char

*h,char

*p){int

j=0;char

*q=a;while(*q&&q<h)a[j++]=*q++;while(*h&&*p&&h<p){if(*h!= * )a[j++]=*h;h++;}while(*p)a[j++]=*p++;a[j]=0;} 第二十九套

填空 给定程序中,函数fun的功能是:有N*N矩阵,将矩阵的外围元素顺时针旋转。操作的顺序是:首先将第一行元素的值存入临时数组r,然后使第一列成为第一行,最后一行成为第一列,最后一列成为第一行,临时数组中和元素成为最后一列。 (1)

t[0][N-j-1]=t[j][0];(2)

for(j=N-1;j>=0;j--)(3)

t[j][N-1]=r[j];修改(1) double

f(double x)(2)

return s;程序double fun(int m){double s=0.0; int i;for(i=0;i<=m;i++) s+=log(1.0*i);s=sqrt(s);return s;} 第三十套

填空 函数fun的功能是:反形参a所指数组中的奇数按原顺序依次存放到a[0]、a[1]、a

[2] 中,把偶数从数组中删除,奇数个数通过函数值返回。例如:若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7,删除偶数后a所指数组中的数据为:9、1、3、5、7,返回值为5。 (1) if(a[i]%2==1)(2) j++; (3) return j;修改(1)

t=a;a=b;b=t;(2)return (b);程序void fun(char *a){ int j=0;char *p=a;

while(*p){if(*p!= * )a[j++]=*p;p++;}a[j]=0;} 第三十一套

填空 给定程序中,函数fun的功能是:在形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回所剩字符串的个数。Ss所指字符串数组中共有N个字符串,且串长小于M。

(1) for(i=0;i<N;i++) (2) if(len<=k)

(3) strcpy(ss[j++],ss[i]); 修改(1)int k=0;(2) while(*p||*q)程序 void fun(char *a){ 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 ;} 第三十二套

填空 给定程序中已建立一个带头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。函数fun的功能是:把形参x的值放入一个新结点并插入到链表中,插入后各结点数据域的值仍保持递增有序。

(1)s->data=x;(2) q=p;

(3) q->next=s;修改(1)long k=1;(2)num/=10程序 float fun(float *a,int n){ int i;float ave=0.0;

for(i=0;i<n;i++)ave=ave+a[i];ave=ave/n;return ave;} 第三十三套

填空 给定程序中,函数fun的功能是:在形参ss所指字符串数组中,查找含有形参substr所指子串的所有字符串并输出,若没找到输出相应信息。Ss所指字符串数组中共有N个字符,且串长小于M。程序中库函数strstr(s1、s2)的功能是早s1串中查找s2子串,若没有,函数值为0,若有,为非0。(1) for(i=0;i<N;i++)

(2)if(strstr(ss[i],substr)!=NULL)(3) if(find==0)

修改(1)fun(int x,int y,int z)(2)return j;程序void fun(char *a,int n,int h,int e){char *p=a; int j=0,len=0; while(*p){p++;len++;} while(j<len-h-e){ a[j]=a[h+j];j++;}a[j]=0;} 第三十四套

填空 给定程序中,函数fun的功能是:在形参ss所指字符串数组中查找与形参t所指字符串相同的串,找到后返回该串在字符串中的位置(下标值),未找到则返回-1。ss所指字符串数组中共有N个内容不同的字符串,且串长小于M。(1) for(i=0;i<N;i++)(2) if(strcmp ss[i],t)==0 return i; (3) if(n==-1)

printf(“\nDon t found!\n”);修改(1)a2=k/10; (2)return i;程序 void fun(char *a){

第1页

热门文档

相关文档

站点地图 | 文档上传 | 侵权投诉 | 手机版
新浪认证  诚信网站  绿色网站  可信网站   非经营性网站备案
本站所有资源均来自互联网,本站只负责收集和整理,均不承担任何法律责任,如有侵权等其它行为请联系我们.
文档下载 Copyright 2013 doc.docsou.com All Rights Reserved.  闽ICP备15022310号-9  闽公网安备 35021102001881号  email
返回顶部