资源描述
一、程序设计 共113题 (共计1130分)
第1题 (10、0分) 题号:390
/*--—------—---—--—---—------————----------—--—---
【程序设计】
-----——-—-----—--------—-------—---—------———--——-
功能:编写函数求1~100中奇数得平方与。
结果为166650、000000.
——--—---———-—----————--------——--—----——---—--—-*/
#include 〈stdio、h>
void wwjt();
float sum(int n)
{
/**********Program**********/
/********** End **********/
}
答案:--———--------—--—-—---
float s=0;
int i;
for(i=1;i〈=n;i=i+2)
s=s+i*i;
return(s);
-—--—-—---—---—----——-
第2题 (10、0分) 题号:320
/*--—--------——-—-—-—----—---—-—-—--——-—----—-—-——
【程序设计】
—-----------—-—---————------—---——-—----——----—---
功能:在键盘上输入一个3行3列矩阵得各个元素得值(值
为整数),然后输出主对角线元素得积,并在fun()
函数中输出.
-----———-——-—-—--—————-----———-—---—-----—-—--—-*/
#include 〈stdio、h>
void wwjt();
main()
{
int i,j,s,a[3][3];;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
}
s=fun(a);
printf(”Sum=%d\n",s);
wwjt();
}
int fun(int a[3][3])
{
/**********Program**********/
/********** End **********/
}
答案:—--——---—------——---—-
int sum;
int i,j;
sum=1;
for(i=0;i〈3;i++)
sum=sum*a[i][i];
return sum;
------—-————-——--—-—-—
第3题 (10、0分) 题号:324
/*——----——---—--—-—---—---------——--—----—-—-—--——
【程序设计】
—----——--——--------——-——-—----—-———---—-—--———----
功能:能计算从1开始到n得自然数中偶数得平方得与,n由
键盘输入,并在main()函数中输出。(n就是偶数)
---—--—--—--—--—-------—-------—-—-—---—--—-----*/
#include 〈stdio、h〉
void wwjt();
int fun(int n)
{
/**********Program**********/
/********** End **********/
}
main()
{
int m;
printf("Enter m: ");
scanf(”%d", &m);
printf("\nThe result is %d\n”, fun(m));
wwjt();
}
答案:----—---------——---———
int sum,i;
sum =0;
for(i=2;i〈=n;i=i+2)
{
sum=sum+i*i;}
return(sum);
--————-—-—--—--——---—-
第4题 (10、0分) 题号:345
/*---—-—---—---—---—-——--—-——-------———---—-——————
【程序设计】
—--——---———------——--—-----—---—--—-----———-—-—---
功能:将两个两位数得正整数a、b合并形成一个整数放在c
中。合并得方式就是:将a数得十位与个位数依次放在
c数得千位与十位上, b数得十位与个位数依次放在
c数得个位与百位上.
例如:当a=45,b=12。调用该函数后,c=4251。
-—-—-————---————-—--——---—-------———-—----—————-*/
#include <stdio、h>
void wwjt();
void fun(int a, int b, long *c)
{
/**********Program**********/
/********** End **********/
}
main()
{
int a,b;
long c;
printf("input a, b:");
scanf("%d%d", &a, &b);
fun(a, b, &c);
printf(”The result is: %ld\n", c);
wwjt();
}
答案:---————------———-——-—-
*c=a/10*1000+a%10*10+b/10+b%10*100;
---———---——------—----
第5题 (10、0分) 题号:366
/*—--—-———-—-----——---—-—--—--------—-----———---—-
【程序设计】
功能:求一组数中大于平均值得数得个数。
例如:给定得一组数为1,3,6,9,4,23,35,67,12,88时,函
数值为3。
-—-—----—-——-—-—--—-——-—----—---—-—-——--—-—-———-*/
#include 〈stdio、h>
void wwjt();
int fun(int a[],int n)
{
/**********Program**********/
/********** End **********/
}
main()
{
int a[10]={1,3,6,9,4,23,35,67,12,88};
int y;
y=fun(a,10);
printf(”y=%d\n”,y);
wwjt();
}
答案:—--—---—--—---——-----—
int i,k=0;
float s=0,ave;
for(i=0;i<n;i++)
s+=a[i];
ave=s/n;
printf("%f ",ave);
for(i=0;i〈n;i++)
if(a[i]〉ave)k++;
return k;
-------------—--—-—---
第6题 (10、0分) 题号:355
/*----——------—-----—----—-————-———-----—-—---—---
【程序设计】
----—-—------—-——-—————-—-----—----—---—-—-—-----—
功能:对长度为8个字符得字符串,将8个字符按降序排列。
例如:原来得字符串为CEAedcab,排序后输出为edcbaECA。
—-——-——--—--—---—--—-—-———-——----————---—-——--——*/
#include〈stdio、h>
#include〈ctype、h〉
#include<conio、h〉
void wwjt();
void fun(char *s,int num)
{
/**********Program**********/
/********** End **********/
}
main()
{
char s[10];
printf("输入8个字符得字符串:”);
gets(s);
fun(s,8);
printf(”\n%s”,s);
wwjt();
}
答案:---—--—----—---------—
int i,j;
char t;
for(i=0;i<num;i++)
for(j=i+1;j〈num;j++)
if(s[i]<s[j])
{ t=s[i];s[i]=s[j];s[j]=t;}
——----——--———--———----
第7题 (10、0分) 题号:44
/*-——--—--———-—-——-—-—--—---—-———---—--——--——---—-
【程序设计】
--—-----—--------—-—---—---—-—-—-——----——------—--
功能:求出二维数组周边元素之与,作为函数值返回。二
维数组得值在主函数中赋予。
---——-————--———————-—--—-————---—-------——-—-—--—*/
#define M 4
#define N 5
#include <stdio、h>
void wwjt();
int fun(int a[M][N])
{
/**********Program**********/
/********** End **********/
}
main()
{
int a[M][N]={{1,3,5,7,9},{2,4,6,8,10},{2,3,4,5,6},{4,5,6,7,8}};
int y;
y=fun(a);
printf(”s=%d\n",y);
wwjt();
}
答案:---——---——--—--——-—---
int s=0;
int i,j;
for(i=0;i<M;i++)
s=s+a[i][0]+a[i][N-1];
for(j=1;j<N-1;j++)
s=s+a[0][j]+a[M-1][j];
return s;
——-—---—-—----——-—-———
第8题 (10、0分) 题号:339
/*-—--————---—-———-——----——--——---——-——--—-——-----
【程序设计】
-—--—---—--——----——------—-———-—----—--------—-—--
功能:判断整数x就是否就是同构数。若就是同构数,函数返回1;
否则返回0.x得值由主函数从键盘读入,要求不大
于100.
说明:所谓“同构数”就是指这样得数,这个数出现在它得
平方数得右边。
例如:输入整数5,5得平方数就是25,5就是25中右侧得数,所
以5就是同构数。
——---—-------------——-—--—-—----—-—------—--————*/
#include <stdio、h>
void wwjt();
int fun(int x)
{
/**********Program**********/
/********** End **********/
}
main()
{
int x,y;
printf("\nPlease enter a integer numbers:");
scanf("%d",&x);
if(x>100)
{
printf(”data error!\n");
exit(0);
}
y=fun(x);
if(y)
printf("%d YES\n",x);
else
printf("%d NO\n",x);
wwjt();
}
答案:-—----—-———--—--————-—
int k;
k=x*x;
if((k%10==x)||(k%100==x))
return 1;
else
return 0;
—-—------—-—----—-—---
第9题 (10、0分) 题号:383
/*——-—----——---—--—-———--—-—-———-—-—-—--—--—-—-—--
【程序设计】
-—-----——-—------—--—--—-------—----—--—---——---—-
功能:用函数实现字符串得复制, 不允许用strcpy()函数。
-——-—----—-—--———-—-----—-----—-—----—--——-———-—*/
#include <stdio、h>
void wwjt();
void copy(char str1[],char str2[])
{
/**********Program**********/
/********** End **********/
}
main()
{
void copy();
char c1[40],c2[40];
gets(c1);
copy(c1,c2);
puts(c2);
wwjt();
}
答案:-—-----—--———-———-——--
int i;
for(i=0;str1[i]!='\0';i++)
str2[i]=str1[i];
str2[i]=’\0';
——-—--—---——-—--—----—
第10题 (10、0分) 题号:310
/*--——-—----------—-—-—--—-—---------——-----———---
【程序设计】
-------——----—-------—---—-—-———--—-—--—-—--—-——-—
功能:计算并输出给定整数n得所有因子之与(不包括1与
自身)。
注意:n得值不大于1000.
例如:n得值为855时,应输出704。
--————-----------—--—-——--—--——--——--——-—--——-——*/
#include <stdio、h>
void wwjt();
int fun(int n)
{
/**********Program**********/
/********** End **********/
}
main()
{
printf(”s=%d\n",fun(855));
wwjt();
}
答案:--—-——----—-——-—-—---—
int s=0,i;
for(i=2;i<n;i++)
if(n%i==0)s=s+i;
return s;
-——--———-—-——--——--—-—
第11题 (10、0分) 题号:354
/*-—------—-——---—-——-—-——------—-------——-—---—--
【程序设计】
—---—-----—-—----——-—--——-—-—-—-—--—--——-—-———-—--
功能:求小于lim得所有素数并放在aa数组中,该函数返回
所求出素数得个数。
——---—---——-—---————----—-—-—---——--—--—---—----*/
#include〈stdio、h>
#include<conio、h〉
#define MAX 100
void wwjt();
int fun(int lim,int aa[MAX])
{
/**********Program**********/
/********** End **********/
}
main()
{
int limit,i,sum;
int aa[MAX];
printf("Please input ainteger:");
scanf(”%d”,&limit);
sum=fun(limit,aa);
for(i=0;i〈sum;i++){
if(i%10==0&&i!=0) printf("\n");
printf("%5d",aa[i]);
}
wwjt();
}
答案:-———--—-——--—-—--—-—--
int n=0;
int i,j;
for(i=2;i<=lim;i++)
{for(j=2;j〈i;j++)
if(i%j==0) break;
if(j==i) aa[n++]=i;
}
return n;
——-—-——--—-—--——---—-—
第12题 (10、0分) 题号:341
/*-——--—-----—-—--—---———-———------——----—--—-——--
【程序设计】
---—--—--————-——--—------———-——-—————-——---——-----
功能:删除所有值为y得元素。数组元素中得值与y得值由
主函数通过键盘输入。
--—-——------—--—-—-——--—-----------——-—--—---—--*/
#include 〈stdio、h>
#include〈conio、h>
#include<stdio、h>
#define M 20
void wwjt();
void fun(int bb[],int *n,int y)
{
/**********Program**********/
/********** End **********/
}
main()
{
int aa[M],n,y,k;
printf("\nPlease enter n:");scanf("%d”,&n);
printf("\nEnter %d positive number:\n",n);
for(k=0;k<n;k++) scanf("%d",&aa[k]);
printf(”The original data is:\n");
for(k=0;k<n;k++) printf("%5d",aa[k]);
printf("\nEnter a number to deletede:");scanf(”%d”,&y);
fun(aa,&n,y);
printf(”The data after deleted %d:\n",y);
for(k=0;k<n;k++) printf("%4d",aa[k]);
printf(”\n");
wwjt();
}
答案:--——----—-----—-—-——--
int i,j;
for(i=0;i〈*n;)
{
if(bb[i]==y)
{for(j=i;j<*n;j++)
bb[j]=bb[j+1];
*n=*n-1;
}
else
i++;
}
--—-——-———----—-————--
第13题 (10、0分) 题号:317
/*---——--—-----—-—-——---—-----——-————--———------—-
【程序设计】
-——--—--——————--——-—-—-———-—-—-----—--—----—--—---
功能:求出N×M整型数组得最大元素及其所在得行坐标及
列坐标(如果最大元素不唯一,选择位置在最前面
得一个).
例如:输入得数组为:
1 2 3
4 15 6
12 18 9
10 11 2
求出得最大数为18,行坐标为2,列坐标为1。
—--—-——--—-—-------------——--—————-—---——-----——*/
#define N 4
#define M 3
#include <stdio、h〉
void wwjt();
int Row,Col;
int fun(int array[N][M])
{
/**********Program**********/
/********** End **********/
}
main()
{
int a[N][M],i,j,max;
printf(”input a array:");
for(i=0;i〈N;i++)
for(j=0;j<M;j++)
scanf(”%d",&a[i][j]);
for(i=0;i〈N;i++)
{
for(j=0;j<M;j++)
printf(”%d",a[i][j]);
printf("\n");
}
max=fun(a);
printf(”max=%d,row=%d,col=%d”,max,Row,Col);
wwjt();
}
答案:—--—--———-—------——---
int max,i,j;
max=array [0][0];
Row=0;
Col=0;
for(i=0;i<N;i++)
{for(j=0;j〈M;j++)
if(max<array [i][j])
{max=array [i][j];
Row=i;
Col=j;}
}
return(max);
—-—-——--—--------—————
第14题 (10、0分) 题号:392
/*--———-—--—---——-——-——---—---—--—---—-——--——-—--—
【程序设计】
--—---——-—-—--—-—-----—-—-----—--------—---—---——-
功能:求一批数中最大值与最小值得积。
———-——---—-----—-———-———--—————--—---———--------*/
#define N 30
#include ”stdlib、h"
#include 〈stdio、h>
void wwjt();
int max_min(int a[],int n)
{
/**********Program**********/
/********** End **********/
}
main()
{
int a[N],i,k;
for(i=0;i〈N;i++)
a[i]=random(51)+10;
for(i=0;i<N;i++)
{
printf(”%5d”,a[i]);
if((i+1)%5==0) printf("\n”);
}
k=max_min(a,N);
printf(”the result is:%d\n",k);
wwjt();
}
答案:-—---——-——--—-—--—--——
int i,max,min;
max=min=a[0];
for(i=1;i〈n;i++)
if(a[i]>max) max=a[i];
else if(a[i]<min) min=a[i];
return(max*min);
---—---——--------———--
第15题 (10、0分) 题号:501
#include 〈stdio、h〉
/*----—-—--—-----—--—--—-----—--——------—--—-———--—-—----
【程序设计】
——----——-——-——--—---—---—----—---—-——---—-—---—-—-—-——-——
题目:从键盘输入一个大写字母,要求改用小写字母输出。
-——-----——-----—-—--———--—-——-——---—-----—--———-———----*/
#include <stdio、h〉
void wwjt();
char fun(char c)
{
/**********Program**********/
/********** End **********/
void main()
{
char c1, c2;
printf("Please input a char:”);
c1=getchar();
printf(”%c,%d\n”,c1,c1);
c2=fun(c1);
printf("%c,%d\n”,c2,c2);
wwjt();
}
fclose(IN);
fclose(OUT);
}
答案: c=c+32;
return c;
第16题 (10、0分) 题号:502
题目:用while语句求1~100得累计与。
#include 〈stdio、h>
/*---——--—--------—-------———--——--—-----———------—--—-—-
void wwjt();
int fun(int n)
{
/**********Program**********/
/********** End **********/
void main()
{
int sum = 0;
sum=fun(100);
printf ("sum = %d\n”, sum);
wwjt();
}
答案: int i=1,sum=0;
while(i〈=n)
{
ﻩsum=sum+i;
i++;ﻩﻩ
}
return sum;
第17题 (10、0分) 题号:409
/*————-—--——--—----———--——-——---—--—-----——--—--—-------—
【程序设计】
-—---—------—-—---—-———--—-—---——-——-—--————-—-—-—----—--
题目:输入华氏温度求摄氏温度。转换公式为 c=5/9(f—32),
输出结果取两位小数。
-——--—-—-—-----——-———-—-—----—-———-——------—-------—---*/
#include 〈stdio、h>
void wwjt();
double fun(double m)
{
/**********Program**********/
/********** End **********/
}
void main()
{
double c,f;
printf("请输入一个华氏温度:");
scanf("%f",&f);
c=fun(f);
printf("摄氏温度为:%5。2f\n",c);
wwjt();
}
答案: float n;
n=(5、0/9、0)*(m-32);
return n;
第18题 (10、0分) 题号:29
/*—------—--—--—-—-——---———-—--———-—----------——-—
【程序设计】
-—----—-—---—-—--—---—-——---——--—-------——-———--—-
功能:对任意输入得 x,用下式计算并输出 y 得值.
5 x<10
y= 0 x=10
-5 x>10
-—-—-——------—--—--—-------------—-—---------—--*/
#include〈stdio、h〉
void wwjt();
int fun(int n)
{
/**********Program**********/
/********** End **********/
}
void main ()
{
int x,y;
printf("enter x:");
scanf(”%d",&x);
y=fun(x);
printf("x=%d,y=%d\n",x,y);
wwjt();
}
答案: int m;
if(n〈10)
m=5;
else
if(n==10) m=0;
else m=—5;
return m;
或
int m;
if(n>=10)
if(n>10)
m=—5;
else m=0;
else m=5;
return m;
第19题 (10、0分) 题号:382
/*—---—---—---—-———-———--—----———-——-----—--——-———
【程序设计】
—---—-—-—-—-----——---——-—-—-—--—-—-—---——--——-—---
功能:给定n个数据, 求最小值出现得位置(如果最小值
出现多次,求出第一次出现得位置即可)。
-—-—-—--——--—-———---—--—-———---—--—-—--————---—-*/
#include <stdio、h>
void wwjt();
int station(int s[],int n)
{
/**********Program**********/
/********** End **********/
}
main()
{
int a[100],n,i,t;
scanf(”%d”,&n);
for(i=0;i〈n;i++)
scanf("%d”,&a[i]);
t=station(a,n);
printf(”the min_value position is:%d\n”,t);
wwjt();
}
答案:——--—-—------———-——-—-
int i,k;
k=0;
for(i=1;i<n;i++)
if(s[i]〈s[k]) k=i;
return(k);
-—--——---—-—----——----
第20题 (10、0分) 题号:367
/*————-——--—-—————--—--—--————-—--—---—-----—-----
【程序设计】
-----—---—-————-----——----—--——--—-—---——-----—-——
功能:找出一批正整数中得最大得偶数。
---—--————-—-—-—-—--—--——-—--—--——-—----—-------*/
#include <stdio、h〉
void wwjt();
int fun(int a[],int n)
{
/**********Program**********/
/********** End **********/
}
main()
{
int a[]={1,2,9,24,35,18},k;
k=fun(a,6);
printf(”max=%d\n",k);
wwjt();
}
答案:-—--—---—-—--—-—------
int i,amax=—1;
for(i=0;i<n;i++)
if(a[i]%2==0)
if (a[i]〉amax) amax=a[i];
return amax;
-—------—-—-—-—————--—
第21题 (10、0分) 题号:384
/*—-—-------—-—----——----—--—--——-———-—--—-———---—
【程序设计】
--—-—---—--—--———--—--—----——-------------—-—-—---
功能:产生20个[30,120]上得随机整数放入二维数组a[5][4]
中,求每行元素得与。
-----—-—-—--—---———---—-—-—-—--———-——---—-----——*/
#include ”stdlib、h"
#include <stdio、h>
void wwjt();
void row_sum(int a[5][4],int b[5])
{
/**********Program**********/
/********** End **********/
}
main()
{
void row_sum();
int a[5][4],b[5],i,j;
for(i=0;i<5;i++)
for(j=0;j〈4;j++)
a[i][j]=random(120—30+1)+30;
for(i=0;i<5;i++)
{
for(j=0;j<4;j++)
printf("%5d”,a[i][j]);
printf("\n");
}
row_sum(a,b);
for(i=0;i〈5;i++)
printf(”%6d",b[i]);
printf("\n”);
wwjt();
}
答案:—------—-—-—--——
展开阅读全文