二级 C_第1套上机题
【参考答案】求ss所指字符串数组中长度最短 (1) M (2) < (3) k
【参考答案】小写字母全部改为对应的大写字母。 (1)if(( tt[i]>='a')&&( tt[i] <= 'z')) (2)tt[i]-=32;
【参考答案】大于1小于整数m的非素数存入xx void fun( int m, int *k, int xx[] ) { int i,j,n=0; for(i=4;i /*找出大于1小于整数m的非素数*/ { for(j=2;j /*返回非素数的个数*/ } 二级 C_第2套上机题 【参考答案】小于等于n(n>2)的素数的个数 (1)j=2 (2)i (3)j 【参考答案】计算前n(4 【参考答案】S=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-1/2n) double fun(int n) { int i; double s=0.0; for(i=1;i<=n;i++) s=s+(1.0/(2*i-1)-1.0/(2*i)); /*计算S=(1-1/2)+(1/3-1/4)+ (1/(2n-1)-1/2n)*/ return s; } 二级 C_第3套上机题 【参考答案】对形参b所指结构体变量中的数据进行修改 (1) ->sno (2) ->name (3) &t 【参考答案】用递归算法求形参a的平方根 (1)double fun(double a,double x0) (2)if(fabs(x1-x0)>=0.00001) 【参考答案】把高于等于平均分的学生数据放在b所指的数组中 double fun( STREC *a, STREC *b, int *n ) { int i; double av=0.0; *n=0; for(i=0;i av=av/N;/*求平均值*/ for(i=0;i { b[*n]=a[i];*n=*n+1;} /*将高于等于平均分的学生存入b所指存储单元 中,并统计人数*/ return av; /*返回平均分*/ } 二级 C_第4套上机题 【参考答案】用指针数组对形参ss所指字符串数组中的字符串按由长到短 的顺序排序 (1)i (2)ps[j] (3)tp 参考答案】平方根之和sum。n的值通过形参传入 (1)double fun(int n) (2)return sum ; 【参考答案】S=1+x+x2/2!+x3/3!+…+xn/n!级数和 double fun(double x, int n) { int i; double s=1.0,s1=1.0; for(i=1;i<=n;i++) {s1=s1*i; /*各项中的阶乘*/ s=s+pow(x,i)/s1; /*按公式求出*/ } return s; } 二级 C_第5套上机题 参考答案】将存放学生数据的结构体数组,按姓名的字典序(从小到大) 排序。 (1) struct student (2) n-1 (3) a[i].name,a[j].name 【参考答案】从p所指字符串中找出ASCII码值最大的字符 (1)q=p+i; (2)while(q>p) 【参考答案】把指定分数范围内的学生数据放在b所指的数组中, int fun( STREC *a,STREC *b,int l, int h ) { int i,j=0; for(i=0;i if(a[i].s>=l&&a[i].s<=h) /*将分数高于l,低于h的学生记录存入结构体数组b中*/ b[j++]=a[i]; return j; /*返回分数范围内的学生人数*/ } 二级 C_第6套上机题 【参考答案】将s所指字符串中的所有数字字符移到所有非数字字符之后 (1)j++或j+=1或++j或j=j+1 (2)s[i]=t1[i] (3) j 【参考答案】冒泡法对6个字符串进行升序排列。 (1)for (j = i + 1; j < 6; j++) (2)*(pstr + i) = *(pstr + j) ; 【参考答案】求ss所指字符串中指定字符的个数 int fun(char *ss, char c) { int i=0; for(;*ss!='\\0';ss++) if(*ss==c) i++;/*求出ss所指字符串中指定字符的个数*/ return i; } 二级 C_第7套上机题 【参考答案】e的值为1e-3,函数的返回值为2.985678 (1) 0 (2) i++或++i或i+=1或i=i+1 (3)2.0*i 【参考答案】将s所指字符串的正序和反序进行连接 (1)void fun ( char *s , char *t ) (2)t[2*d]='\\0';或t[d+i]='\\0';或t[2*d]=0;或t[d+i]=0; 【参考答案】将s所指字符串中除了下标为奇数同时ASCII值 void fun(char *s, char t[]) { int i,j=0,n; n=strlen(s); for(i=0;i if(i%2!=0&&s[i]%2!=0) {t[j]=s[i];/*将下标为奇数同时ASCII码值为奇数的字符放入数组t中 */ j++; } t[j]='\\0'; /*最后加上结束标识符*/ } 二级 C_第8套上机题 【参考答案】10001、\、95、80、88,修改后输出t中的数据应 为:10002、\、96、81、89将形参a所指结构体变量s中的数据进行 修改,并把a的地址作为函数值返回主函数,从主函数中输出修改的数据 。。 (1) struct student * (2) a->score[i] (3) a 【参考答案】从N个字符串中找出最长的串,并将其地址作为函数值返回 (1)char *fun(char (*sq)[M]) (2)return sp; 【参考答案】当a=45,b=12,调用该函数后c=2415;将a、b中的两个 两位正整数合并成一个新的整数放在c中 void fun(int a, int b, long *c) { *c=a+(b/10)*10+(a/10)*100+(b)*1000; } 二级 C_第9套上机题 【参考答案】将形参a中的数据进行修改,把修改后的数据作为函数值返 回主函数进行输出10001、\、95、80、88,修改后的数据应为 :10002、\、96、。 (1) struct student (2) a.name (3) a.score[i] 【参考答案】删除数列中值为x的元素。变量n中存放数列中元素的个数 (1)if(p==n) return -1; (2)a[i]=a[i+1]; 【参考答案】 void fun(int a, int b, long *c) { *c=a/10+(b)*10+(a)*100+(b/10)*1000; } 二级 C_第10套上机题 【参考答案】在形参s所指字符串中的每个数字字符之后插入一个*号 (1) && (2) 0或'\\0' (3) s[j]或*(s+j) 【参考答案】根据整型形参m若m的值为5,则应输出1.463611。 (1)for(i=2;i<=m;i++) (2)y+=1.0/(i*i);或y+=(double)1.0/(i*i) 【参考答案】实现B=A+A',即将矩阵A加上A的转置,存放在矩阵B中 void fun ( int a[3][3], int b[3][3]) { int i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) b[i][j]=a[i][j]+a[j][i];/*把矩阵a加上a的转置,存放在矩阵b中*/ } 二级 C_第11套上机题 【参考答案】判断形参s所指字符串是否是\回文\(1)s (2)-- (3)return 0 【参考答案】求出如下分数列的前n项之和若n=5,则应输出8.39166 (1)double fun(int n) (2)s=s+(double)a/b; 【参考答案】大于整数m且紧靠m的k个素数存入所指的数组中。 例如,若输入17,5,则应输出19、23、29、31、37。 void fun(int m,int k,int xx[]) { int i,j,n; for(i=m+1,n=0;n k个素数*/ {for(j=2;j 环,判断下一个数*/ if(i%j==0) break; if(j>=i) /*如果是素数,放入数组xx中*/ xx[n++]=i; } } 二级 C_第12套上机题 【参考答案】统计长整数n的各位上出现数字1、2、3的次数,并用外部( 全局)变量c1、c2、c3返回主函数。 (1) n (2) break (3) break 【参考答案】统计一个无符号整数中各位数字值为0的个数 (1)if(t==0) (2)*zero=count; 【参考答案】例如,在主函数中从键盘为n输入50后,输出为S=1.718282 。 注意:要求n的值在大于1但不大于100之间。 double fun(int n) { double sum=0,tmp=1; int i;