1请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得

合集下载

2012计算机国二C语言等级考试 题库(内部资料)程序编辑

2012计算机国二C语言等级考试    题库(内部资料)程序编辑

24. 假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能 是:将字符串的前导*号全部移到字符串的尾部。函数fun中给出的函数 仅供参考。 void fun(char *a) { int i=0,n=0; char *p; p=a; while(*p=='*') { n++; p++; } while(*p) { a[i]=*p; i++; p++; } while(n!=0) { a[i]='*'; i++; n--; } a[i]='\0'; } 25. 请编写函数fun,它的功能是:计算并输出n(包括n)以内能被5或9 整除的所有自然数的倒数之和。 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;
中‘a’至‘z’26个小写字母各自出现在的次数,并依次放在pp数组中。 void fun(char*tt, int pp[ ]) { char *p=tt; int i; for(i=0;i<26;i++)pp[i]=0; while(*p){ if(*p>=’a’&&*p<=’z’)pp[*p-‘a’]+=1; p++; } } 16 函数fun的功能是:将s所指字符串中ASCII值为偶数的字符删除,串 中剩余字符形成一个新串放在t所指数组中。 #include <stdio. h> #include <string. h> void fun (char*s, char t[]) { int i, j=0; for(i=0;i<strlen(s);i++)if(s[i]%2)t[j++]=s[i]; t[j]=0; } 17.. 请编写函数fun,函数的功能是:求出1到1000之间能被7或11整除, 但不能同时被7和11整除的所有整数并将它们放在a所指的数组中,通过 n返回这些数的个数。 #include <stdio. h> viod fun (int *a,int *n) { int i; *n=0; for(i=7;i<1000;i++) if(((i%7)==0│|(i%11)==0&&(i%77)!=0) a[(*n)++]=i; } 18. 请编写函数fun,函数的功能是:利用一下所示的简单迭代方法求方 程求方程:cos(x)-x=0的一个实根。xn+1=cos(xn)迭代步骤如下:

(加强版)程序设计答案word版

(加强版)程序设计答案word版

1.1题目:请编写函数fun,该函数的功能是: 将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。

例如: 若字符串数组中的M个字符串为{AAAA",“BBBBBB","CC"则合并后的字符串内容应该是“AAABBBBBBCC"注意: 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语可。

int i,j, k=0;for (i=0;i<M;i++)for (j=0;a[i][j]!=’\0’;j++)b[k++]=a[i][j];b[k]=’\0’;1.2题目:题目: 请编写fun函数程序,从键盘输入某一年,判断该年是否为闰年。

闰年的条件是: (1) 能被4整除但不能被100整除。

(2) 能被400整除。

符合任何一个条件就是闰年。

输入年份为整型if ((year%4==0&&year%100!=0)||year%400==0)return 1;elsereturn 0;1.3题目:(待议)题目: 编写函数fun; 其功能是: 根据以下公式求的值,结果由函数值带回。

m与n为两个正整数且要求m>n.如“样张”。

P=m!/n!(m-n)!)例如: m=12,n=8时,运行结果为495 000000注意请勿改动主函数main和其他函数中的任何内容。

仅在函数fun的花括号中填入你编写的若干语句。

(参考百度)float p ;p=1.0*jc(m)/jc(n)/jc(m-n);return p;2.1功能: 对长度为8个字符的字符串,将8个字符按降序排列。

例如: 原来的字符串为CEAedcab,排序后输出为edcbaECAint i,j;char t;for(i=0;i<mum; i++)for (j=i+1;j<num;j++)if(s[i]<s[j]){t=s[i];s[i]=s[j];s[j]=t;}2.2编写程序,实现矩阵(3 行、3 列)的转置(即行列互换)。

大学生C语言程序设计(第四版 谭洪强)实验7 答案

大学生C语言程序设计(第四版 谭洪强)实验7 答案

实验七 参考答案(参考答案)(1) (sy7-1.c )请编写函数fun ,它的功能是:计算并输出n (包括n )以内能被5 或9 整除的所有自然数的倒数之和。

例如,若主函数从键盘给n 输入20后,则输出为s=0.583333。

注意:n 的值要求不大于100。

算法分析:使用for 循环i ,遍历n 包含n 以内的所有整数,逐一判断每个i ,是否满足条件(能被5 或9 整除),如果满足,则把它的倒数累加到累加器里。

注意:i 的倒数要表示成:1.0/i;参考子函数如下:double fun(int n){double sum=0;int i;for(i=5;i<=n;i++)if(i%5==0||i%9==0)sum=sum+1.0/i;return sum;}(2) (sy7-2.c ) 请编写函数fun ,其功能是:根据以下公式计算s ,并计算结果作为函数值返回,n 通过形参传入。

n s ⋯++++⋯++++++=321132112111例如:若n 的值为11时,函数的值为1.83333算法分析:等式右边从第二项(i=2)开始,其分母等于前一项的分母加上i ;一共有n 项;求出每项的分母,然后把每项进行累加。

参考子函数如下:float fun(int n){float sum=1; //sum 中已经累加了第一项的值int i,m=1; //m 表示每项的分母;for(i=2;i<=n;i++){ m=m+i;sum=sum+1.0/m;}return sum;}(3) (sy7-3.c)请编写函数fun,其功能是:将两个两位数的正整数a、b 合并形成一个整数放在c 中。

合并的方式是:将 a 数的十位和个位依次放在c 数的十位和千位上,b 数的十位和个位数依次放在c 数的个位和百位上。

例如,当a=45,b=12,调用该函数后,c=5241。

算法分析:对一个两位数n,它的各位可以通过n%10求的,它的十位数可以通过n/10求的;所以分别用上述方法求的a和b的个位和十位,同时按照要求累加到c里。

全国计算机等级考试二级C语言100题

全国计算机等级考试二级C语言100题

1:第1题 m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。

答案:int fun(int score[],int m,int below[]){int i,k=0,aver=0;for(i=0;i<m;i++)aver+=score[i];aver/=m;for(i=0;i<m;i++)if(score[i]<aver){below[k]=score[i];k++;}return k;}2: 第2题请编写函数fun,它的功能是:求出1到100之内能北7或者11整除,但不能同时北7和11整除的所有证书,并将他们放在a所指的数组中,通过n返回这些数的个数。

答案:void fun(int *a, int *n){int i,j=0;for(i=2;i<1000;i++)if ((i%7==0 || i%11==0) && i%77!=0)a[j++]=i;*n=j;}3: 第3题请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。

答案:void fun(int x, int pp[], int *n){int i=1,j=0;k=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[j]=I;j++;}for(i=0;i<j;i++)if(x%t[i]==0){pp[k]=t[i];k++;}*n=k;}4:第4题请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到”z”26各字母各自出现的次数,并依次放在pp所指的数组中。

答案:void fun(char *tt, int pp[]){int i;for (i=0;i<26;i++)pp[i]=0;while (*tt){switch (*tt){case ‘a’: pp[0]++;break;case ‘b’: pp[1]++;break;case ‘c’: pp[2]++;break;case ‘d’: pp[3]++;break;case ‘e’: pp[4]++;break;case ‘f’: pp[5]++;break;case ‘g’: pp[6]++;break;case ‘h’: pp[7]++;break;case ‘i’: pp[8]++;break;case ‘j': pp[9]++;break;case ‘k': pp[10]++;break;case ‘l’: pp[11]++;break;case ‘m’: pp[12]++;break;case ‘n’: pp[12]++;break;case ‘o': pp[14]++;break;case ‘p': pp[15]++;break;case ‘q’: pp[16]++;break;case ‘r': pp[17]++;break;case ‘s’: pp[18]++;break;case ‘t': pp[19]++;break;case ‘u’: pp[20]++;break;case ‘v': pp[21]++;break;case ‘w’: pp[22]++;break;case ‘x’: pp[23]++;break;case ‘y': pp[24]++;break;case ‘z': pp[25]++;break;}tt++;}}5:第5题请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k各素数存入xx所指的数组中。

计算机二级考试C语言操作题题库

计算机二级考试C语言操作题题库

计算机二级考试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’; { { } inti,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; elseif(a>=10&a<=19) b[1]+=1; else if(a>=90&a<=99) b[9]+=1; elseif(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数的百位和个位上。

字符和字符串操作

字符和字符串操作

3. 请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度
的函数), 函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。例如,输入:beijing shanghai<CR>(<CR>为回车键),函数将返回shanghai。
填空
t=t->next;
if(*str!=' ') *p++=*str;
*p='\0';
11. 请编一个函数fun(char *s),该函数的功能是把字符串中的内容逆置。例如:字符串中原有的字符串为abcdefg,则调用该函数后,串中的内容为gfedcba。该题的算法是先分别找出字符串的两头,然后同时逐一往中间移动,每移动一次都进行两字符的位置对换,直到中间字符(用s+i<s+n-1-i来控制)。由于s+i中一个地址,因此要注意把它的内容取出再进行换位。
for(;s+i<s+n-1-i;i++)
{ t=*(s+i);*(s+i)=*(s+n-1-i);*(s+n-1-i)=t;}
12. 编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为:asd asasdfg asd as zx67 asdmklo,子字符串为as,则应输出6。
else return(s);
4. 请编写函数fun,它的功能是:求出ss所指字符串中指定字符的个数,并返回此值。
例如,若输入字符串123412132,输入字符1,则输出3。
填空 (1) j++ (2) s[i]=t1[i] (3) j

计算机二级C上机考试题库3

计算机二级C上机考试题库3
下标奇数位置子母改大写
填空:k N a[k][i]
改错:for( i = strlen( t )-1; i; i-- )
if(t[j]>t[j+1])
21.请编写—个函数void fun(char *ss),下标奇数位置子母改大写
c
填空:NULL n head,ch
改错:for (i = 0,t = 0; p[i] ; i++)
删除串中所有*号
i
填空:1 j++j
改错:t=a;a=b;b=t;
return(b);
13.
删除串尾*号
填空:N i -1
改错:a2=k/10;
return i;
14.
除前导*外其他删除*
填空:N k ss[i]
改错:int k=0;
while( *p || *q )
15.
删除前导和尾部*
填空:N substr 0
改错:double fun(double a, double x0)
if( fabs(x1-x0)>0.00001 )
54.
分数最低学生数据放在b所指数组
填空:struct student a.score[i]
改错:if(p==n) return -1;
a[i]=a[i+1];
55.找出成绩最低学生纪录
改错:int fun(int a[],int m)
else if(m > a[mid])
11.请编写函数fun,它的功能是:除了字符串前导和尾部的*号之外,将串中其他*号全部删除。
只删除中间*号
int j=0; char *q=a;
while(*q && q < h) a[j++] = *q++ ;

2021年河南省新乡市全国计算机等级考试C语言程序设计测试卷(含答案)

2021年河南省新乡市全国计算机等级考试C语言程序设计测试卷(含答案)

2021年河南省新乡市全国计算机等级考试C语言程序设计测试卷(含答案) 学校:________ 班级:________ 姓名:________ 考号:________一、单选题(12题)1.快速排序在已经有序的情况下效率最差,复杂度为()A.O(nlogn)B.O(n^2logn)C.O(n^1.5)D.O(n^2)2.以下选项中,能用作数据常量的是______。

A.o115B.0118C.1.5e1.5D.115L3.以下不正确的定义语句是A.A.double x[5]={2.0,4.0,6.0,8.0,10.0};B.int y[5.3]={0,1,3,5,7,9};C.char c1[]={′1′, ′2′, ′3′, ′4′, ′5′};D.char c2[]={′\x10′, ′\xa′, ′\x8′};4.5.有以下程序#include<stdio.h>main(){char *s=(“ABC);do{printf(“%d”,*s%10);s++;}while(*s);}注意,字母A的ASCII码值为65。

程序运行后的输出结果是A.5670 B.656667 C.567 D.ABC6.有以下程序:程序运行后的输出结果是()。

A.1.000000B.0.000000C.0.250000D.0.5000007.下面是有关C语言字符数组的描述,其中错误的是()。

A.不可以用赋值语句给字符数组名赋字符串B.可以用输入语句把字符串整体输入给字符数组C.字符数组中的内容不一定是字符串D.字符数组只能存放字符串8.递归式的先序遍历一个n节点,深度为d的二叉树,则需要栈空间的大小为()A.O(logn)B.O(nlogn)C.O(n)D.O(d)9.有以下程序段int j;float y;char name[50]:scanf("%2d%f%s",&i,&.y,name):当执行上述程序段,从键盘上输入55566 7777abc后,y 的值为( )。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。

若两个字符串长度相同,则返回第一个字符串。

例如,输入:beijing shanghai<CR>(<CR>为回车键),函数将返回shanghai。

#include <stdio.h>
char *fun ( char *s, char *t)
{
}
main( )
{ char a[20],b[10],*p,*q;
int i;
printf("Input 1th string:") ;
gets( a);
printf("Input 2th string:") ;
gets( b);
printf("%s\n",fun (a, b )); }
2.请编写一个函数fun,它的功能是:比较两个字符串的大小,(不得调用C语言提供的字符串比较函数strcmp()),函数返回较大的字符串。

若两个字符串相同,则返回第一个字符串。

例如,输入:abc abd,函数将返回abd。

#include <stdio.h>
char *fun ( char *s, char *t)
{
}
main( )
{ char a[20],b[10],*p,*q;
int i;
printf("Input 1th string:") ;
gets( a);
printf("Input 2th string:") ;
gets( b);
printf("%s\n",fun (a, b )); }
3. 程序填空题。

在【】处填上适当语句,使程序能运行得到正确结果。

给定程序中,函数fun的功能是:利用指针数组对形参ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。

ss
所指字符串数组中共有N个字符串,且串长小于M 。

#include <stdio.h>
#include <string.h>
#define N 5
#define M 8
void fun(char (*ss)[M])
{ char *ps[N],*tp; int i,j,k;
for(i=0; i<N; i++) ps[i]=ss[i];
for(i=0; i<N-1; i++) {
/*******found*****************/
k= 【1】;
for(j=i+1; j<N; j++)
/*************found*******************/
if(strlen(ps[k]) < strlen(【2】) ) k=j;
/*********found**********************/
tp=ps[i]; ps[i]=ps[k]; ps[k]= 【3】; }
printf("\nThe string after sorting by length:\n\n");
for(i=0; i<N; i++) puts(ps[i]);
}
main()
{ char ch[N][M]={"red","green","blue","yellow","black"}; int i;
printf("\nThe original string\n\n");
for(i=0;i<N;i++)puts(ch[i]); printf("\n");
fun(ch); }。

相关文档
最新文档