C语言编程及上机题 联系客服

发布时间 : 星期一 文章C语言编程及上机题更新完毕开始阅读75d743e55ef7ba0d4a733b4b

if (c= =0) printf(“ not found”);

else printf (“ total<\\n”, c); } 60. 编程题(20分):建立数组a[16],方法是:先置a[0]=64,其余元素按公式:

a[i]=(15*a[i-1]+97) % 256

生成,然后对数组a进行如下操作:(1)输出a的元素值。(2)对每个元素a[i],求出整个数组a中小于a[i]的元素个数存入b[i],并输出b数组的元素值。 (3)输出数组b的最大值及其下标、最小值及其下标。

61. 改错题:以下程序判断一个正整数是否为降序数,再打印组成该整数的每个字符。设正

整数m=d0d1d2d3。。。。 。。dk-1 ,若满足di>= di+1 ,i=0,1 。。 。。k-1,则m就是一个降序数,如21、433是两个降序数,12、343都不是降序数。

输入程序2分,程序完全正确2分,一般每改正一个错给4分。 void main()

{int num,k,di,n,isdec; long m;

char digit[10];

scanf(\ for(;num>0;num--) {n=0;isdec=1;k=0; scanf(\ while(m!=0) {di=m;

digit[n++]=m; m=m/10;

if(k<=di) k=di;else isdec=0; }

for(;n>=0;n--)

{putchar(digit[n]);putchar(' '); }

if (isdec) printf(\ else printf(\ } }

62. 编程题:程序功能是将一字符串做压缩处理。编程要求:

(1) 编写一个函数int compress(char s[]),将s中连续出现的多个相同字符压缩为一个字符,统计被删除的字符个数,,返回被删除的字符个数。

(2) 编写主函数main,从键盘读入一行字符数据放入一个字符型数组中,调用compress函数对该字符数组中字符做压缩处理,将压缩后的字符串写入结果文件myf2.out中。 (3) 用以下数据测试程序:

@@@@@@ I wwillll succesful &&&&&& and you too !!!!!!##########

63. 改错题:有二维数组,现根据数组各行元素之和的大小,以行为单位,按从小到大的顺

序重新排列,然后输出新数组的各行元素以及每行元素的和。输入程序2分,程序完全正确2分。

int sum_line(int *p,int n) {int k,sum=0;

for(;n>=0;n--,p++)

sum+=*p;return(sum);

}

void swap(int *p1,int *p2) {int *p;

p=p1; p1=p2; p2=p; }

void main()

{int array[5][4]={1,4,5,7,3,5,7,8,9,10,2,3,1,3,4,2,1,2,1,1}; int sum[5];

int k,mink,j,temp,m; for(k=0;k<5;k++)

sum[k]=sum_line(array[k],4); for(k=0;k<4;k++)

{ for(j=k+1;j<5;j++) { mink=k;

if(sum[mink]>sum[j]) mink=j; }

if(mink!=k)

{ swap(&sum[mink];sum+k); for(m=0;m<4;m++)

swap(array[mink]+m,&array[k][m]); } }

for(k=0;k<5;k++)

{ for(j=0;j<4;j++)

printf(\

printf(\ } }

64. 编程题:程序功能是生成一个数列的前100项。该数列的第一、二项分别为2、3,以

后每个奇数编号的项是前两项之和,偶数编号的项是前两项之差(前项减后项)。编程要求:

(1)编写一个函数void numlist(int a[],int n),生成符合上述要求的一个数列的前n项存储在a数组中。

(2)编写主函数main, 调用numlist函数生成该数列的前100项并保存在一个一维数组中,按每行10个数的格式将该数列的前100项输出到文件myf2.out中。

65. 改错题:对一个数据序列,求其中所有素数之和,将这些素数移到序列前面,并保持各素

数的相对顺序不变。输入程序2分,程序完全正确2分,一般每改正一个错给4分。 #include \int prime(int x) {int k=sqrt(x); for(;k>=2;k--)

if(x/k==0) return 0; return 1; }

#define N 10 void main()

{int arr[N]={307,311,313,321,325,331,337,341,247,347}; int k,t,*lp=arr,*rp=arr,sum=0; for(k=0;k

printf(\ putchar('\\n');

for(k=0;k

if(prime(*rp)) {sum+=*arr+k; lp++;t=*rp; *rp=*lp; *lp=t; } for(rp=arr;rp

printf(\ for(;rp

66. 编程题:程序功能是将一个字符串插入到另一个字符串的指定位置处。编程要求:

(1) 编写一个函数 char *insert_str(char *s1,char *s2,int n),将字符串s2插入到字符串s1中第n个字符(即数组下标为n-1的元素)开始的位置上,返回s1的首址。 (2) 编写主函数main,声明一个字符数组s存储由26个小写英文字母组成的字符串,从键盘读入若干组数据,每组有两个数据,第一个按整型数读入,第二个按字符串读入。当输入的一组数据中的整型数为负数时,停止程序运行。每读入一组数据后,调用insert_str函数,按第1个数据的值将第2个数据(字符串)插入到字符串s中对应的位置上,每当在s中插入一个字符串后,将s字符串写入到文件myf2.out中。 (3) 键盘输入两组测试数据为:10 9876 和 31 ExAmPLE。

67. 改错题:将一个数组从二分之一处切开(元素个数为奇数时,正中间元素不动;元素个数

为偶数时,无正中间元素),然后将中间的元素向两头搬移,同时两头元素向中间平移。例如,对于1 2 3 4 5 6 搬移一次后的格局为: 3 1 2 5 6 4 输入程序2分,程序完全正确2分,一般每改正一个错给4分。 #include \#define N 12

int move(int *p,int m) {int k,x;

k=m/2; x=p[k];

for(;k>0;k--) p[k]=p[k-1]; p[k]=x; k=m/2;

if(m%2=1) k++; x=p[k];

for(;k

void main() {int k;

int a[N]={1,2,3,4,5,88,99,6,7,8,9,10}; for(k=0;k<4;k++) move(a,N); for(k=0;k<12;k++)

printf(\ putchar('\\n'); }

68. 编程题:程序功能是给定正整数n,求所有小于n的n的互质数。互质数是指两数没有

公约数;例如n=9,则2、4、5、7、8为9的互质数。编程要求:

(1) 编写函数int bi_prime(int m,int n)判断m,n是否为互质数,是则返回1,否则返回0。

(2) 编写主函数main。从键盘分别输入15、49、78作为n的值,生成各自的互质数并写入文件myf2.out中。

69. 改错题:在m行n列的二维数组中找出最大值的元素,然后将该元素所在行与最后一行

交换,将该元素所在列与最后一列交换。

输入程序2分,程序完全正确2分,一般每改正一个错给4分。 #define M 3 #define N 4 void main()

{int x,k,j,com,col,t;

int a[M][N]={12,4,56,-34,0,-2,-45,3,9,-7,4,-65}; for(k=0;k

{ for(j=0;j

putchar('\\n'); x=0;

com=0;col=0;

for(k=0;k

for(j=k+1;j

if(x

{ t=a[k][col];a[k][col]=a[k][N];a[k][N]=t;} for(k=0;k

{ t=a[com][k];a[com][k]=a[M][k];a[M][k]=t; } for(k=0;k

{ for(j=0;j

putchar('\\n'); }

70. 编程题:程序功能是编程计算 s=s1+s2+s3+s4 的值,其中:

s1=1+1/2+1/3+.. .. +1/m s2=1+1/22+1/32+.. .. +1/m2

s3=1+1/23+1/33+.. .. +1/m3 s4=1+1/24+1/34+.. .. +1/m4 (m=50) 编程要求:

(1)编写函数double sum ( int n),计算当m取值为n时上述算式的值并且返回该值。

(2)编写主函数main,接受从键盘输入的整数50,调用函数sum计算当m 取值50时上述算式的值s,将s的值写入到文件myf2.out中。

71. 任取一个十进制正整数,将其倒过来与原来的整数相加,得到的新数若不是回文数,则