上机考试题2019春季学期答案

发布 2023-09-12 16:36:49 阅读 3992

aa《c程序设计》课程期末上机考试。

考试时间:50分钟。

考试方式:从下面的20题中随机抽取一题,再附加一题,共需完成2道题。附加题不事先给定。

分值分配:第一题60分,第二题40分,共100分。

考试时间:第十七周周二与周三,2023年6月号。

1. 编写函数long fun(long x),它的功能是:将长整型参数x中每一位上为偶数的数依次取出,构成一个新数返回。

高位仍在高位,低位仍在低位。例如:下面程序运行时输入:

124578902,程序输出:24802.

#include<>

long fun(long x)

x/=10;}

return m;}

void main()

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<>

void fun(int k,int *p)

int j=2,n=0;

do if (k%j==0)

p[n]=j;

n++;while(k%j==0)

k=k/j; }

j++;while (j<=k);

p[n]=-1; }

int main()

int x,a[17],i;

do printf("enter a number(2-32767):"

scanf ("d",&x);

while(x<2);

fun(x,a);

for(i=0;a[i]!=1;i++)

printf("%d ",a[i]);

printf("");

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。

#define n 10

void fun(int *x,int n)

int i,j,k,temp;

for(i=0;i<2;i++)

k=i;for(j=i+1;jif(*(x+k)<*x+j))

k=j;if(k!=i)

temp=*(x+k);*x+k)=*x+i);*x+i)=temp;}}

int main()

int a[n],i;

for(i=0;i scanf("%d",a+i);

fun(a,n);

for(i=0;i printf("%d ",a[i]);

printf("");

return 0;

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,s;

for(i=0;i<(n/5);i++)

s=0;for(j=i*5;j<(i*5+5);j++)

s=s+*(x+j);

(w+i)=s/5.0;}

return (n/5);}

void main()

int a[30],i,n,m;

float b[6];

printf("input a number: "

scanf("%d ",n);

for(i=0;iscanf("%d",&a[i]);

m=fun(a,n,b);

for(i=0;iprintf("%0.2f ",b[i]);

printf("");

5. 编写函数int fun(int x,long int y),功能:计算满足表达式x0+x1+x2+..xn#include<>

#include<>

int fun(int x,long int y)

int i;

long s=0;

for(i=0;;i++)

6. 编写函数int fun(char (*ss)[n],int m,char *s),功能是:形参ss指向一个m行n列的二维字符数组,每行存放一个字符串。

求出最长的字符串,复制到s所指的字符数组中,然后返回此最长字符串的长度。

#include<>

#include<>

#define n 30

int fun(char (*ss)[n],int m,char *s)

int i,j,k;

s=ss[0];

for(i=0;i}

j=strlen(s);

printf("str=%s ",s);

return j;}

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("len=%d",len);}

7. 编写函数int countw(char *str),统计字符串str中单词的个数。单词之间以空格,逗号,句号作分隔,数字也看做单词。

单词之间可能不止一个分隔符。如输入:

it's 10:10 o'clock ,i am late.屏幕上输出"there are 6 words."

#include<>

int countw(char *str)

char c;

int i=0,num=0,word=0;

while((c=str[i])!0')

if(c=='

word=0;}

else if(word==0)

word=1;

num++;

i++;return num;}

void main()

char s[200];

gets(s);

printf("there are %d words.",countw(s));

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,t;

for(i=0;str[i]!=0';i++)

if(str[i]==str[i+1]==

void main()

char s[100];

puts("enter a string:")

gets(s);

fun(s);

puts(s);}

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 i,m=0,n;x=x+1;

n=sqrt(x);

while(m}

x++;n=sqrt(x);}

void main()

int a,b,n[1000]=,i;

scanf("%d%d",&a,&b);

fun(a,b,n);

for(i=0;iprintf("%d ",n[i]);

puts("

10. 编写函数int fun(int a,int b),在[a,b]范围内统计满足下面条件的数的个数。条件:

该数是素数,且该数逆序后形成的数也是素数。例如,在[100,150]范围内101 107 113 131 149 满足条件,则下面程序运行时输入100 150,输出:num=5。

#include<>

主机考试题

一 填空题。号水轮发电机三大轴承温度 60 发信号,任两点70 事故停机。2 机组顶转子时,应将转子顶起 8 12mm 顶转子油压不超过 12mpa 并保持压力 1 分钟。3 机组内工作时,必须做好 导叶 关闭和 8dp 防误动的安全措施。f调速器导叶伺服电机电源是 120 v交流,取自 电调交流 ...

2023年春季学期生物月考试题

班级 姓名 分数 一 选择题 每题2分,25题,共50分 1 肺炎双球菌转化实验 所证明的遗传物质是。c.蛋白质 或rna 2 一条染色体含有一个双链dna分子,经间期复制后,一条染色单体含有。a.2个双链dna b.4个双链dna分子 c.1个双链dna分子 d.1个单链dna分子。3 组成dna...