C程序设计课程期末上机考试.doc

上传人:marr****208 文档编号:156949742 上传时间:2020-12-20 格式:DOC 页数:7 大小:56.50KB
返回 下载 相关 举报
C程序设计课程期末上机考试.doc_第1页
第1页 / 共7页
C程序设计课程期末上机考试.doc_第2页
第2页 / 共7页
C程序设计课程期末上机考试.doc_第3页
第3页 / 共7页
C程序设计课程期末上机考试.doc_第4页
第4页 / 共7页
C程序设计课程期末上机考试.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《C程序设计课程期末上机考试.doc》由会员分享,可在线阅读,更多相关《C程序设计课程期末上机考试.doc(7页珍藏版)》请在金锄头文库上搜索。

1、C程序设计课程期末上机考试考试时间:40分钟考试方式:从下面的20题中随机抽取一题,再附加一题,共需完成2道题。分值分配:第一题60分,第二题40分,共100分考试时间:第十八周 1. 编写函数long fun(long x),它的功能是:将长整型参数x中每一位上为偶数的数依次取出,构成一个新数返回。高位仍在高位,低位仍在低位。例如:下面程序运行时输入:124578902,程序输出:24802. long fun(long x) void main() long a,b;printf(Enter a number:);scanf(%ld,&a);b=fun(a);printf(b=%ldn,b

2、); 2. 编写函数void fun(int k,int *p),功能是:将参数k(2k32767)所有的不相同质因子升序写入p所指的一维数组中,以-1作为所有质因子的结束标志。例如:下面程序运行时若输入200,输出:2 5;若输入27720,输出:2 3 5 7 11;若输入101,输出101。 void fun(int k,int *p) void main() int x,a17=0,i;doprintf(Enter a number(2-32767):);scanf(%d,&x);while(x2);fun(x,a);for(i=0;ai!=-1;i+)printf(%d ,ai);p

3、rintf(n); 3. 编写函数void fun(int *x,int n),功能是:求出长度为n的数组x中的最大数与次最大数,并把最大数和a0对调,次最大数与a1对调,其余的数保持不变。下面程序运行时若输入:2 4 6 1 3 9 7 0 5 8,则输出:9 8 6 1 3 2 7 0 5 4。 #define N 10 void fun(int *x,int n) void main() int aN,i;for(i=0;iN;i+)scanf(%d,a+i);fun(a,N);for(i=0;iN;i+)printf(%d ,ai);printf(n);4. 数组x中保存有n个正整数,

4、 编写函数int fun(int *x,int n),对数组x进行如下操作:当xi不是最后一个元素时,用xi+xi+1取代xi,即x0被x0+x1取代,x1被x1+x2代替当xi是数组最后一个元素时,xi被xi+x0代替,即xn-1=xn-1+x0,然后对数组进行升序排序,并统计奇数个数返回。例如,下面程序若输入:3 5 2 7 9 11 21 9 输出:7 8 9 12 16 20 30 32 n=2int fun(int *x,int n) void main() int a8,i,n; for(i=0;i8;i+)scanf(%d,&ai); n=fun(a,8); for(i=0;i8

5、;i+)printf(%d ,ai); printf(n=%dn,n); 5. 编写函数int fun(int x,long int y),功能:计算满足表达式x0+x1+x2+.+xny的最大的n并作为函数返回值带回。例如,当x=2,y=1000时,程序输出8。 int fun(int x,long int y) void main() int x;long y;scanf(%d%ld,&x,&y);printf(n=%dn,fun(x,y); 6. 编写函数int fun(char (*ss)N,int m,char *s),功能是:形参ss指向一个m行N列的二维字符数组,每行存放一个字符

6、串。求出最长的字符串,复制到s所指的字符数组中,然后返回此最长字符串的长度。 #define N 30 int fun(char (*ss)N,int m,char *s) void main() char a8N,bN;int i,len;for(i=0;i8;i+)gets(ai);len=fun(a,8,b);printf(len=%d,str=%sn,len,b); 7. 编写函数int countw(char *str),统计字符串str中单词的个数。单词之间以空格,逗号,句号作分隔,数字也看做单词。单词之间可能不止一个分隔符。如输入: Its 10:10 oclock ,I am

7、late.屏幕上输出There are 6 words. int countw(char *str) void main() char s200;gets(s);printf(There are %d words.n,countw(s); 8. 编写函数void fun(char *str),功能:字符串str中单词以空格作分隔,如果单词之间不止一个空格,则删除多余的空格,使单词之间只保留一个空格。字符串开始的空格也只保留一个。例如,程序运行时若输入: Its 10:10 oclock , I am late. 输出: Its 10:10 oclock , I am late. void fu

8、n(char *str) void main() char s100;puts(Enter a string:);gets(s);fun(s);puts(s); 9. 函数void fun(int x,int k,int *p)的功能是:求出比x大的最初k(k1000)个素数,放入p所指数组中。例如:程序运行时输入:10 10,输出:11 13 17 19 23 29 31 37 41 43 #include void fun(int x,int k,int *p) void main() int a,b,n1000,i;scanf(%d%d,&a,&b);fun(a,b,n);for(i=0

9、;ib;i+)printf(%d ,ni);puts();10. 编写函数int fun(int a,int b),在a,b范围内统计满足下面条件的数的个数。条件:该数是素数,且该数逆序后形成的数也是素数。例如,在100,150范围内101 107 113 131 149 满足条件,则下面程序运行时输入100 150,输出:num=5。 #include int fun(int a,int b) void main() int num,a,b;scanf(%d%d,&a,&b);num=fun(a,b);printf(num=%dn,num); 11. 编写函数void fun(char *a

10、,char *b),功能:将a所指字符串中的所有字符复制到b中,要求每复制三个字符之后插入一个#。例如,下面程序运行时,若输入:ABCDEFGHIJK 输出:ABC#DEF#GHI#JK void fun(char *a,char *b) void main() char x80,y120;gets(x);fun(x,y);puts(y);12. 编写函数int fun(int k),功能:从3个红球, 5个白球,6个黑球中任意取出k(2k13)个球作为一组进行组合。在每组中,可以没有黑球,但必须要有红球和白球。不同组合的数目作为函数值返回。例如,若k为8时,正确的组合数是15;若k为2时,正

11、确的组合数是1;或k为3时,正确的组合数是3 。 int fun(int k) void main() int x,n;scanf(%d,&x);n=fun(x);printf(n=%dn,n);13. 编写函数void fun(char *str),功能:对形参str所指字符串中的字符按ASCII码升序排序。例如,下面程序运行时输入:The C Programming Language 输出: CLPTaaaeegggghimmnnorru void fun(char *str) void main() char s100;gets(s);fun(s);puts(s);14. 请编写函数vo

12、id fun(int *a, int n, int y),它的功能是:把y值插入到有n个数的a数组中,a数组中的数已按由大到小的次序排好,y的值从键盘读入。 插入后,数组中的数仍然有序。对照下面三种情况运行程序: 1) 插在最前2) 插在最后 3) 插在中间 若输入数11, 输出 20 18 16 14 12 11 10 8 6 4 2 输入数1, 输出 20 18 16 14 12 10 8 6 4 2 1 输入数33, 输出 33 20 18 16 14 12 10 8 6 4 2 #include void fun(int *a,int n,int y) void main() int

13、i,a11=20,18,16,14,12,10,8,6,4,2,x; void fun(int *,int n,int y); scanf(%d,&x); fun(a,10,x); for(i=0;i11;i+)printf(%d ,*(a+i); 15. 编写函数int fun(char *str,char ch),从字符串str中删除指定字符ch。如果字符串str中不包含字符ch,则函数返回值为-1,如果包含字符ch,则删除所有的ch字符后,将删除字符的个数返回。例如:若输入的字符串为:abaaAabcaabbabca,字符ch为:a ,则程序输出:bAbcbbbc,n=8若输入的字符串为:abaaAabcaabbabca,字符ch为:d ,则程序输出:No find d#include#includeint fun(char *str,char ch)void main() char a80,b; int n; printf(Please input a string:); gets(a); printf(Please input a d

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号