上机考试题及答案

2020-05-09 14:21

1. 编写函数long fun(long x),它的功能是:将长整型参数x中每一位上为

偶数的数依次取出,构成一个新数返回。高位仍在高位,低位仍在低位。

例如:下面程序运行时输入:124578902,程序输出:24802. 若输入:1357,输出:0 #include long fun(long x) { int i=0,m,a[20]; long b=0; do { m=x; if(m%2==0) {a[i]=m; i=i+1;} } while((x/=10)!=0); (x=x/10)!=0 for(i=i-1;i>=0;i--) { b=b*10+a[i];} return b; }

2.编写函数void fun(int k,int *p),功能是:将参数k(2≤k≤32767)所有的

不相同质因子升序写入p所指的一维数组中,以-1作为所有质因子的结束标志。 例如:下面程序运行时若输入200,输出:2 5;若输入27720,输出:2 3 5 7 11; 若输入101,输出101。 #include #include void fun(int k,int *p) { int i=1; while(++i<=k) if(k%i==0)

{ while (k%i==0) k=k/i; *p++=i; }

*p=-1; }

3. 编写函数void fun(int *x,int n),功能是:求出长度为n的数组x中的 最大数与次最大数,并把最大数和a[0]对调,次最大数与a[1]对调, 其余的数保持不变。

下面程序运行时若输入:2 4 6 1 3 9 7 0 5 8,则输出:9 8 6 1 3 2 7 0 5 4。 #include #define N 10

void fun(int *x,int n) { int i=0,j,k,t; for(i=0;i<2;i++)

{ k=i; for(j=i;j

4.数组x中保存有n个整数, 编写函数int fun(int *x,int n,float *w),对数组x进行如下操作:

从第0个元素起对每5个元素求一个平均埴,并将这些均值依次存放在w所指的数组中。函数返回

平均值的个数。

例如:若输入n为14,14个数据为:11 21 35 24 55 16 27 58 18 0 11 12 13 14,则只为 前10个求均值,输出结果为:29.20 23.80 #include

int fun(int *x,int n,float *w) { int i,j,m,k; float s=0; for(i=0;i<=n/5;i++) { k=5*i; for(j=k,s=0;j

5. 编写函数int fun(int x,long int y),功能:计算满足表达式x0+x1+x2+...+xn #include int fun(int x,long int y) { int i; long s=0; for(i=0;;i++) { if(s

6. 编写函数int fun(char (*ss)[N],int m,char *s),功能是:

形参ss指向一个m行N列的二维字符数组,每行存放一个字符串。 求出最长的字符串,复制到s所指的字符数组中,然后返回此 最长字符串的长度。 #define N 30

#include

int fun(char (*ss)[N],int m,char *s) { int a,i,j,n,max=0; for(i=0;i

7.编写函数int countw(char *str),统计字符串str中单词的个数。单词之间以 空格,逗号,句号作分隔,数字也看做单词。单词之间可能不止一个分隔符。 如输入:It's 10:10 o'clock ,I am late.屏幕上输出\ #include int countw(char *str) { int i,num=0,word=0; for(i=0;str[i]!='\\0';i++) { if(str[i]==' '||str[i]==','||str[i]=='.') word=0; else if(word==0) {

word=1; num++; } }

return num; } 8. 编写函数void fun(char *str),功能:字符串str中单词以空格作分隔, 如果单词之间不止一个空格,则删除多余的空格,使单词之间只保留一个 空格。字符串开始的空格也只保留一个。例如,程序运行时 若输入: It's 10:10 o'clock , I am late. 输出: It's 10:10 o'clock , I am late. #include void fun(char *str) { int i,j; for(i=0;*(str+i)!='\\0';i++) { if((*(str+i)==' ')&&(*(str+i+1)==' ')) { for(j=i;*(str+j)!='\\0';j++) *(str+j)=*(str+j+1);i=i-1; } } }

9. 函数void fun(int x,int k,int *p)的功能是:求出比x大的

最初k(k<1000)个素数,放入p所指数组中。例如:程序运行时

输入:10 10,输出:11 13 17 19 23 29 31 37 41 43 #include #include

void fun(int x,int k,int *p) { int t=0; long i,j;

double m; if(x>=1) for(i=x+1;tm) {p[t]=i;t++;} } else for(i=2;tm) {p[t]=i;t++;} } }

10. 编写函数int fun(int a,int b),在[a,b]范围内统计满足下面条件的数的个数。 条件:该数是素数,且该数逆序后形成的数也是素数。 例如,在[100,150]范围内101 107 113 131 149 满足条件, 则下面程序运行时输入100 150,输出:num=5。 #include #include int fun(int a,int b)

{ int i,j,n=0,m,s,f1,f2,x;

for(i=a;i<=b;i++) {

f1=1; f2=1;

for(j=2;j<=sqrt(i);j++)

if(i%j==0){f1=0;break;} if(f1) {

m=i; s=0; x=0;

while(m) {

x=x*10+m;

m/=10; }

for(j=2;j<=sqrt(x);j++)

if(x%j==0){f2=0;break;} }

if(f1&&f2)n++; }

return n; }

11.编写函数void fun(char *s),功能:在s所指字符串中每两个字母之间加一个*,其余字符保持不变。

例如,下面程序运行时,若输入:I had 123_book. 输出:I h*a*d 123_b*o*o*k.

#include void fun(char *s) { int i,j,k,n=0; char a,b; for(i=0;*(s+i)!='\\0';i++); n=i; for(i=0;*(s+i)!='\\0';i++) { a=*(s+i);b=*(s+i+1); if(((a<='z')&&(a>='a')||(a<='Z')&&(a>='A'))&&((b<='z')&&(b>='a')||(b>='A')&&(b<='Z'))) { for(j=0;j<=n-i;j++) { k=n; *(s+k-j+1)=*(s+k-j); } *(s+i+1)='*'; n++; } } }

12.编写函数int fun(int k),功能:从5个红球, 6个白球,7个黑球中任意取出k(2≤k≤18)个

球作为一组进行组合。在每组中,可以没有红球和白球,但必须要有黑球。不同组合的数目

作为函数值返回。例如,若k为8时,正确的组合数是31;若k为2时,正确的组合数是3;

或k为3时,正确的组合数是6 。 #include int fun(int k) { int i,j,t,n=0;

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

{ for(j=0;j<=6;j++) {for(t=0;t<=5;t++) {if(k==i+j+t) {n++;}} }


上机考试题及答案.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:全厂停电后的机组事故处理与电源倒换、电源恢复操作票(初稿)

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

马上注册会员

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