1、 一、程序设计 共113题 (共计1130分) 第1题 (10、0分) 题号:390 /*--—------—---—--—---—------————----------—--—--- 【程序设计】 -----——-—-----—--------—-------—---—------———--——- 功能:编写函数求1~100中奇数得平方与。 结果为166650、000000. ——--—---———-—----————--------——--—----——---—--—-*/ #include 〈stdio、h> void wwjt(); floa
2、t 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行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"
4、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题 (1
5、0、0分) 题号:324 /*——----——---—--—-—---—---------——--—----—-—-—--—— 【程序设计】 —----——--——--------——-——-—----—-———---—-—--———---- 功能:能计算从1开始到n得自然数中偶数得平方得与,n由 键盘输入,并在main()函数中输出。(n就是偶数) ---—--—--—--—--—-------—-------—-—-—---—--—-----*/ #include 〈stdio、h〉 void wwjt(); int fun(int n) { /
6、**********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); --———
7、—-—-—--—--——---—- 第4题 (10、0分) 题号:345 /*---—-—---—---—---—-——--—-——-------———---—-—————— 【程序设计】 —--——---———------——--—-----—---—--—-----———-—-—--- 功能:将两个两位数得正整数a、b合并形成一个整数放在c 中。合并得方式就是:将a数得十位与个位数依次放在 c数得千位与十位上, b数得十位与个位数依次放在 c数得个位与百位上. 例如:当a=45,b=12。调用该函数后,c=4251。
8、 -—-—-————---————-—--——---—-------———-—----—————-*/
#include 9、
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, 10、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); 11、
printf(”y=%d\n”,y);
wwjt();
}
答案:—--—---—--—---——-----—
int i,k=0;
float s=0,ave;
for(i=0;i 12、—-————-———-----—-—---—---
【程序设计】
----—-—------—-——-—————-—-----—----—---—-—-—-----—
功能:对长度为8个字符得字符串,将8个字符按降序排列。
例如:原来得字符串为CEAedcab,排序后输出为edcbaECA。
—-——-——--—--—---—--—-—-———-——----————---—-——--——*/
#include〈stdio、h>
#include〈ctype、h〉
#include<conio、h〉
void wwjt();
void fun(char *s,int n 13、um)
{
/**********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 14、s[j])
{ t=s[i];s[i]=s[j];s[j]=t;}
——----——--———--———----
第7题 (10、0分) 题号:44
/*-——--—--———-—-——-—-—--—---—-———---—--——--——---—-
【程序设计】
--—-----—--------—-—---—---—-—-—-——----——------—--
功能:求出二维数组周边元素之与,作为函数值返回。二
维数组得值在主函数中赋予。
---——-————--———————-—--—-————---—-------——-—-—--—*/ 15、
#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();
}
答案:---——---——--—--—— 16、—---
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
/*-—--————---—-———-——----——--——---——-——--—-——-----
【程序设计】
-—--—---—--——----——------—-———-—----—--------—-—--
17、
功能:判断整数x就是否就是同构数。若就是同构数,函数返回1;
否则返回0.x得值由主函数从键盘读入,要求不大
于100.
说明:所谓“同构数”就是指这样得数,这个数出现在它得
平方数得右边。
例如:输入整数5,5得平方数就是25,5就是25中右侧得数,所
以5就是同构数。
——---—-------------——-—--—-—----—-—------—--————*/
#include <stdio、h>
void wwjt();
int fun(int x)
{
/**********Program** 18、********/
/********** 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();
19、}
答案:-—----—-———--—--————-—
int k;
k=x*x;
if((k%10==x)||(k%100==x))
return 1;
else
return 0;
—-—------—-—----—-—---
第9题 (10、0分) 题号:383
/*——-—----——---—--—-———--—-—-———-—-—-—--—--—-—-—--
【程序设计】
-—-----——-—------—--—--—-------—----—--—---——---—-
功能:用函数实现字符串得复制, 不允许用strcpy() 20、函数。
-——-—----—-—--———-—-----—-----—-—----—--——-———-—*/
#include 21、
}
答案:-—-----—--———-———-——--
int i;
for(i=0;str1[i]!='\0';i++)
str2[i]=str1[i];
str2[i]=’\0';
——-—--—---——-—--—----—
第10题 (10、0分) 题号:310
/*--——-—----------—-—-—--—-—---------——-----———---
【程序设计】
-------——----—-------—---—-—-———--—-—--—-—--—-——-—
功能:计算并输出给定整数n得所有因子之与(不包括 22、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();
}
答案:--—-——----—-——- 23、—-—---—
int s=0,i;
for(i=2;i 24、--————----—-—-—---——--—--—---—----*/
#include〈stdio、h>
#include 25、nf(”%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;
}
26、 return n;
——-—-——--—-—--——---—-—
第12题 (10、0分) 题号:341
/*-——--—-----—-—--—---———-———------——----—--—-——--
【程序设计】
---—--—--————-——--—------———-——-—————-——---——-----
功能:删除所有值为y得元素。数组元素中得值与y得值由
主函数通过键盘输入。
--—-——------—--—-—-——--—-----------——-—--—---—--*/
#include 〈stdio、h>
#include〈 27、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< 28、n;k++) scanf("%d",&aa[k]);
printf(”The original data is:\n");
for(k=0;k 29、答案:--——----—-----—-—-——--
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
/*---——--—-----—-—-——---—-----——-————--———- 30、----—-
【程序设计】
-——--—--——————--——-—-—-———-—-—-----—--—----—--—---
功能:求出N×M整型数组得最大元素及其所在得行坐标及
列坐标(如果最大元素不唯一,选择位置在最前面
得一个).
例如:输入得数组为:
1 2 3
4 15 6
12 18 9
10 11 2
求出得最大数为18,行坐标为2,列坐标为1。 31、
—--—-——--—-—-------------——--—————-—---——-----——*/
#define N 4
#define M 3
#include 32、i〈N;i++)
for(j=0;j<M;j++)
scanf(”%d",&a[i][j]);
for(i=0;i〈N;i++)
{
for(j=0;j 33、array [0][0];
Row=0;
Col=0;
for(i=0;i<N;i++)
{for(j=0;j〈M;j++)
if(max 34、--—---—---——-
功能:求一批数中最大值与最小值得积。
———-——---—-----—-———-———--—————--—---———--------*/
#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 35、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];
36、
else if(a[i] 37、-—-——-——---—-----—--———-———----*/
#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(" 38、%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**********/
/********** 39、 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
/*————-—--——--—----———--——-——---—--—-----——--—--—-------—
【程 40、序设计】
-—---—------—-—---—-———--—-—---——-——-—--————-—-—-—----—--
题目:输入华氏温度求摄氏温度。转换公式为 c=5/9(f—32),
输出结果取两位小数。
-——--—-—-—-----——-———-—-—----—-———-——------—-------—---*/
#include 〈stdio、h>
void wwjt();
double fun(double m)
{
/**********Program**********/
/********** End ******** 41、*/
}
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
/*—------—--—--—-—-——---———-—--———-—----------——-—
【程序设计】
-—----—-—---—-—--—- 42、--—-——---——--—-------——-———--—-
功能:对任意输入得 x,用下式计算并输出 y 得值.
5 x<10
y= 0 x=10
-5 x>10
-—-—-——------—--—--—-------------—-—---------—--*/
#include〈stdio、h〉
void wwjt();
int fun(int n)
{
/**********Program**********/
/********** End ****** 43、****/
}
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)
44、 m=—5;
else m=0;
else m=5;
return m;
第19题 (10、0分) 题号:382
/*—---—---—---—-———-———--—----———-——-----—--——-———
【程序设计】
—---—-—-—-—-----——---——-—-—-—--—-—-—---——--——-—---
功能:给定n个数据, 求最小值出现得位置(如果最小值
出现多次,求出第一次出现得位置即可)。
-—-—-—--——--—-———---—--—-———---—--—-—--————---—-*/
#in 45、clude <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 46、);
}
答案:——--—-—------———-——-—-
int i,k;
k=0;
for(i=1;i<n;i++)
if(s[i]〈s[k]) k=i;
return(k);
-—--——---—-—----——----
第20题 (10、0分) 题号:367
/*————-——--—-—————--—--—--————-—--—---—-----—-----
【程序设计】
-----—---—-————-----——----—--——--—-—---——-----—-——
功能:找出一批正整数中得最大得偶数。
---—--————-—-—- 47、—-—--—--——-—--—--——-—----—-------*/
#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,am 48、ax=—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]
49、 中,求每行元素得与。
-----—-—-—--—---———---—-—-—-—--———-——---—-----——*/
#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 50、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();
}
答案:—------—-—-—--——






