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