C程上机题考试题2015春季学期

2019-06-11 00:20

《C程序设计》课程期末上机考试

考试时间:50分钟 考试方式:从下面的20题中随机抽取一题,再附加一题,共需完成2道题。

附加题不事先给定

分值分配:第一题60分,第二题40分,共100分 考试时间:2015.6 具体时间与安排见网站通知

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

数依次取出,并逆序构成一个新数返回。例如:程序运行时输入123456789,输出:b=97531。 #include long fun(long int x) { }

void main() {long a,b;

printf(\ scanf(\ b=fun(a);

printf(\}

2. 编写函数void fun(char *s,char *t,char *p)将未在字符串s中出现、而在字

符串t中出现的字符, 形成一个新的字符串放在p中,p中字符按原字符串中字符顺序排列,但去掉重复字符。

例如: 当s为\为\时, p中的字符为: \

当s为”good luck”,t为”thank you very much”时,输出:”thanyverm” #include #include

void fun(char *s,char *t,char *p) { }

void main()

{char s1[50],s2[50],s3[50]; gets(s1);gets(s2); fun(s1,s2,s3); puts(s3); } 3. 编写函数int fun(int m),计算并返回满足表达式:1+(1+2)+(1+2+3)+(1+2+3+4)+??+(1+2+3+??+n)<=m最大的n。例如,当m=10000时,程序输出:n=38。 #include

1

int fun(int m) { }

void main() {int x;

scanf(\

printf(\}

4. 编写函数void fun(int *x,int n),它的功能是:删除有n个数据的数组x

中所有包含数字6的数据,后续的剩余元素赋值为-1。n为数组长度,规定x中数据都为正数。

如程序运行时若输入:122 1461 6234 16 11 663 911 2671 381 6 删除后输出: 122 11 911 381 -1 -1 -1 -1 -1 -1 #define N 10

#include

void fun(int *x,int n) { }

void main() {int a[N],i;

for(i=0;i

for(i=0;i

printf(\ printf(\ }

5. 编写函数long fun(int high,int n),功能是:计算并返回high以内(不包含

high)最大的n个素数之和。若不足n个,则到最小素数2为止。例如:若high=100,n=10,则函数的返回值为:732;若high=11,n=10,则函数返回:17。 #include

long fun(int high,int n) { }

void main() {int k,n;

scanf(\

printf(\}

2

6. 请编写函数int fun(int *a,int n),它的功能是:把形参a所指数组中的偶数

按原顺序依次存放到a[0]、a[1]、a[2]、??中,把奇数从数组中删除,偶数个数通过函数值返回,以-1作为有效数据的结束标志。例:若输入:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15,输出:2 4 6 8 10 12 14 n=7 #include int fun(int *a,int n) { }

void main() {int x[15],i,n; for(i=0;i<15;i++) scanf(\ n=fun(x,15);

for(i=0;x[i]!=-1;i++) printf(\ printf(\}

7.给定程序中,函数fun的功能是:有M×N二维数组,分别将每一行的最大值与本

行的最后一个数据(第N-1列数据)对调,其余数据保持不变。然后按每一行的最大值对二维数据各行降序排序。例如,有右侧数组数据:

11 52 43 4 25 22 求最大值并对调后:11 22 43 4 25 52 22 33 46 58 16 47 22 33 46 47 16 58 83 42 54 26 47 0 0 42 54 26 47 83 4 5 6 7 8 9 4 5 6 7 8 9 45 96 17 18 39 2 45 2 17 18 39 96 排序后最终输出:

45 2 17 18 39 96 0 42 54 26 47 83 22 33 46 47 16 58 11 22 43 4 25 52 4 5 6 7 8 9

#define N 6 #define M 5

#include void fun(int a[M][N]) { }

void main()

{int x[M][N]={{11,52,43,4,25,22},{22,33,46,58,16,47},{83,42,54,26,47,0},

3

{4,5,6,7,8,9},{45,96,17,18,39,2}},i,j;

fun(x);

for(i=0;i

{for(j=0;j

printf(\ printf(\ } }

8. 函数void fun(int x,char * p)实现十进制整数x到二进制的转换。转换后的二

进制数以字符串的方式放置于p所指向的数组中。如输入13,输出1101,输入-13,输出-1101。 #include \#include

void fun(int x,char *p) { }

void main() {int a;

char c[18]; scanf(\ fun(a,c);

printf(\}

9. 编写函数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) { }

void main()

{char a[8][N],b[N]; int i,len;

for(i=0;i<8;i++) gets(a[i]); len=fun(a,8,b);

printf(\ }

4

10. 给定程序中,函数void fun(char *s)的功能是:在形参s所指字符串中的每个数字字符之后插入一个*号。例如,形参s所指的字符串为:def35adh3kjsdf7。执行结果为:def3*5*adh3*kjsdf7*。 #include #include #include void fun(char *s) { }

void main() {char str[80]; gets(str); fun(str); puts(str); }

11.给定程序中,函数void fun(char *s)的功能是:把形参s所指字符串中下标为偶数的字符右移到下一个偶数位置,最右边被移出字符串的字符绕回放到第一个偶数位置,下标为奇数的字符不动(注:字符串的长度大于等于2)。例:若输入:abcd123,输出:3badc21 #include void fun(char *s) { }

void main() {char str[80]; gets(str); fun(str); puts(str); }

12.编写函数void fun(char *s1,char *s2),功能是:对形参s1所指字符串升序排

序,并将排序后下标为偶数的字符取出,写入形参s2所指字符数组中,形成一个新串。例如,下面程序若输入:The C Programming Language,输出:□□LTaegghmnor。(□表空格) #include

void fun(char *s1,char *s2) { }

void main()

{char a[80],b[80];

5


C程上机题考试题2015春季学期.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:基于单片机的篮球计时计分器设计(C语言编程、含proteus仿真图)

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

马上注册会员

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