三、写出下列每个程序运行后的输出结果
1. #include<stdio.h>
void main() {
int i,j,k=0;
for(i=0; i<5; i++)
for(j=i; j<5; j++) k++;;
printf("%d/n",k); }
运行结果:15
2. #include<stdio.h>
void main() {
int x=20;
int i=2;
while(i<x) {
if(x%i==0) {printf("%d ",i); x/=i;}
i++; } }
运行结果:2 5
3. #include<stdio.h>
void main() {
int a[8]={70,63,54,95,40,75,90,66};
int i, s=0;
for(i=0; i<8; i++)
if(a[i]>=70 && a[i]<=90) s+=a[i];
printf("s=%d/n",s); }
运行结果:s=235
4. #include<stdio.h>
int WF(int x, int y) {
x=x+y;
y+=x;
return x+y; }
void main() {
int x=3, y=5;
printf("%d/n",WF(x,y)); }
运行结果: 21
5. #include<stdio.h>
int LA(int *a, int n) {
int i,s=0;
for(i=0;i<n;i++) s+=a[i];
return s; }
void main() {
int a[5]={1,2,3,4,5};
int b=LA(a,5)+LA(a+1,3);
printf("b=%d/n",b); }
运行结果: b=24
6. #include<stdio.h>
void main() {
int x=5;
switch(2*x-1) {
case 4: printf("%d ",x); break;
case 7: printf("%d ",2*x); break;
case 10: printf("%d ",3*x); break;
default: printf("%s ","default"); }
printf("%s/n","switch end."); }
运行结果:default switch end.
7. #include<stdio.h>
void main() {
int f1,f2,i;
f1=1;
printf("%d ",f1);
for(i=2;i<=5;i++) {
f2=3*f1+1;
printf("%d ",f2);
f1=f2; }
printf("/n"); }
运行结果: 1 4 13 40 121
8. #include<stdio.h>
void main() {
int a[10]={12,39,26,41,55,63,72,40,83,95};
int i, i1=0, i2=0;
for(i=0;i<10;i++)
if(a[i]%2==1) i1++; else i2++;
printf("%d %d/n",i1,i2); }
运行结果:6 4
9. #include<stdio.h>
#include<string.h>
void main( ) {
char s[15]="567891234";
int i, n=strlen(s) ;
for(i=0; i<n/2; i++) {
char c=s[i];
s[i]=s[n-1-i];
s[n-1-i]=c; }
printf("%s/n",s); }
运行结果:432198765
10. #include<stdio.h>
int LB(int *a, int n) {
int i,s=1;
for(i=0;i<n;i++) s*=*a++;
return s; }
void main() {
int a[]={1,2,3,4,2,4,5,2};
int b=LB(a,4)+LB(a+3,3);
printf("b=%d/n",b); }
运行结果: b=56
11. #include<stdio.h>
void main() {
int i, s=0;
for(i=1;;i++) {
if(s>30) break;
if(i%2==0) s+=i; }
printf("s=%d/n",s); }
运行结果:s=42
12. #include<stdio.h>
void main() {
int a[9]={36,25,48,24,55,40,18,66,20};
int i, b1, b2;
b1=b2=a[0];
for(i=1; i<9; i++) {
if(a[i]>b1) b1=a[i];
if(a[i]<b2) b2=a[i]; }
printf("%d %d/n",b1,b2); }
运行结果:66 18
13. #include<stdio.h>
void SB(char ch) {
switch(ch) {
case 'A': case 'a':
printf("WW "); break;
case 'B': case 'b':
printf("GG "); break;
default:
printf("BB "); break; } }
void main() {
char a1='a',a2='B',a3='f';
SB(a1);SB(a2);SB(a3);
printf("/n"); }
运行结果:WW GG BB
14. #include<stdio.h>
#define M 6
void main() {
int i,x;
int a[M]={10,15,22,37,46,58};
for(i=0; i<M/2; i++)
{x=a[i]; a[i]=a[M-1-i]; a[M-1-i]=x;}
for(i=0; i<6; i++) printf("%d ",a[i]);
printf("/n"); }
运行结果:58 46 37 22 15 10
15. #include<stdio.h>
struct Worker {
char name[15]; int age; float pay; };
void main() {
struct Worker x={"wanghua",52,2350};
struct Worker y, *p;
y=x; p=&x;
printf("%d %7.2f/n", y.age+p->age, p->pay+20); }
运行结果:104 2370.00
16. #include<stdio.h>
void main() {
int i,s=0;
for(i=1;i<6;i++) s+=i*i;
printf(“s=%d/n”,s); }
运行结果: s=55
17. #include<stdio.h>
#define N 6
void main() {
int i,a[N]={2,5,8,10,15,21};
for(i=0; i<N; i++)
if(a[i]%5) printf("%d ",a[i]);
printf("/n"); }
运行结果: 2 8 21
18. #include<stdio.h>
#include<string.h>
void main() {
int i;
unsigned int len;
char* a[5]={"student","worker","cadre","soldier","zzeasan123"};
len=strlen(a[0]);
for(i=1; i<5; i++)
if(strlen(a[i])>len) len=strlen(a[i]);
printf("%d/n",len); }
运行结果:10
19. #include<stdio.h>
void main() {
int a,b;
for(a=2,b=3; b<20;) {
printf("%d %d ",a,b);
a=a+b;
b=a+b; }
printf("%d %d/n",a,b); }
运行结果:2 3 5 8 13 21
20. #include<stdio.h>
void LE(int* a, int* b) {
int x=*a;
*a=*b; *b=x; }
void main() {
int x=15, y=26;
printf("%d %d/n",x,y);
LE(&x,&y);
printf("%d %d/n",x,y); }
运行结果:15 26
26 15
21. #include<stdio.h>
void main() {
int i, s1=0, s2=0;
for(i=0;i<10;i++)
if(i%2) s1+=i;
else s2+=i;
printf("%d %d/n",s1,s2); }
运行结果: 25 20
22. #include<stdio.h>
const int M=20;
void main() {
int i=2;
while(1) {
if(i>M/2) break;
if(M%i==0) printf("%d ",i);
i++; }
printf("/n"); }
运行结果: 2 4 5 10
23. #include<stdio.h>
int a[6]={4,5,6,15,20,12};
void main() {
int i,s1,s2;
s1=s2=0;
for(i=0; i<6; i++) {
switch(a[i]%2) {
case 0: s2+=a[i];break;
case 1: s1+=a[i];break; } }
printf("%d %d/n",s1,s2); }
运行结果:20 42
24. #include<stdio.h>
void main() {
int a[3][3]={{3,5,7},{9,11,13},{6,8,20}};
int i,*p=&a[0][0];
for(i=0;i<9;i++) {
if(*p>10) printf("%d ",*p);
p++; }
printf("/n"); }
运行结果:11 13 20
25. #include<stdio.h>
#include<string.h>
struct Worker { char name[15]; int age; float pay;};
void main() {
struct Worker x;
char *t="liouting";
int d=38; float f=400;
strcpy(x.name,t);
x.age=d; x.pay=f;
x.age++; x.pay*=2;
printf("%s %d %6.2f/n",x.name,x.age,x.pay); }
运行结果: liouting 39 800.00
26. #include<stdio. h>
void main() {
int i,j ,k==0;
for ({i=O;i<5;i++)
for(j=i;j<5;j++) k++;;
printf("%d/n",k) ; }
运行结果:15
27. #include<stdio. h>
void main() {
int x=20;
int i=2;
while(i<x) {
if(x%i==0) {printf("%d",i); x/=i;}
i++; }}
运行结果:25
28. #include<stdio. h>
void main() {
int a[8]={76,63,54,95,40,75,90,66};
int i, s=0;
for(i=0;i<8;i++)
if(a[i]>=70 && a[i]<=90) s+=a[i];
printf("s=%d/n",s) ; }
运行结果:s=241
29. #include<stdio. h>
int WF(int x , int y) {
x=x+y;
y+=x;
return x+y; }
void main() {
int x=3 , y=8;
printf("%d/n" ,WF(x,y));}
运行结果:30
30. #include<stdio. h>
int LA(int *a,int n) {
int i,s=O;
for(i=O; i<n;i++) s+=a[i];
return s; }
void main() {
int a[5]={1 ,2,3,4,5};
int b=LA(a,5)+LA(a+2,3);
printf("b=%d/n",b);}
运行结果:b=27
四、写出下列每个函数的功能
1. int WC(int a[],int n, int k) {
int i, c=O;
for(i=O; i<n;i++)
if(a[i]>=k) c++;
return c; }
函数功能:统计并返回一维整型数组a[n]中大于等于k的值的个数。
2. void QA(struct Worker a[],int n)
{int i;
for(i=O; i<n; i++)
scanf("%s%d%f", a[i].name,&a[i].age,&a[i].pay);}
假定结构类型 struct Worker的定义如下:
struct Worker{char name[15];int age;float pay;};
函数功能:从键盘上为具有struct Worker类型的数组a[n]输入n个记录。
3. #include<stdio.h>
int SA(int a, int b) {
if(a>b) return 1;
else if(a==b) return 0;
else return -1; }
函数功能:比较两个整数a和b的大小,若a>b则返回1,若a==b则返回0,若a<b则返回-1。
4. void Output(struct IntNode *f) //f为单链表的表头指针
{ if(!f) return;
while(f) {
printf("%d ",f->data);
f=f->next; }
printf("/n"); }
假定struct IntNode的类型定义为:
struct IntNode { int data; struct IntNode* next;};
函数功能:遍历并输出由f所指向的单链表中每个结点的值。
5. int SG(int x) { //x为大于等于2的整数
int i=2;
if(x==2 || x==3) return 1;
while(i*i<=x) {
if(x%i==0) break;
i++; }
if(i*i<=x)return 0; else return 1; }
函数功能:判断x是否为一个素数,若是则返回1,否则返回0。
6. int FindMax(struct IntNode *f)
//f为一个单链表的表头指针
{ int x;
if(!f) {printf("单链表为空/n"),exit(1);}
x=f->data;
f=f->next;
while(f) {
if(f->data>x) x=f->data;
f=f->next; }
return x; }
假定struct IntNode的结点类型定义为:
struct IntNode { int data; struct IntNode* next;};
函数功能:求出并返回由f所指向的单链表中所有结点的最大值。
五、按题目要求编写程序或函数
1. 编写一个程序,计算1+3+32+...+310的值并输出,假定分别用i,p,s作为循环变量、累乘变量和累加变量的标识符。
程序为:
#include<stdio.h>
void main(){
int i;
int p=1;
int s=1;
for(i=1;i<=10;i++) {p*=3; s+=p;}
printf("%d/n",s); }
2. 根据函数原型“int FF(int a[], int n)”,编写函数定义,计算并返回数组a[n]中所有元素之和。
程序为:
int FF(int a[], int n) {
int i,sum=0;
for(i=0; i<n; i++) sum+=a[i];
return sum; }
3. 编写一个主函数,计算1+3+32+...+310的值并输出,假定分别用i,p,s作为循环变量、累乘变量和累加变量的标识符。
程序为:
#include<stdio.h>
void main(){
int i;
int p=1;
int s=1;
for(i=1;i<=10;i++) {p*=3; s+=p;}
printf("%d/n",s); }
4. 根据函数原型“int FF(int a[], int n)”,编写函数定义,计算并返回数组a[n]中所有元素之和。
程序为:
int FF(int a[], int n) {
int i,sum=0;
for(i=0; i<n; i++) sum+=a[i];
return sum; }
5. 编写一个程序,输出50以内(含50)的、能够被3或者5整除的所有整数。
程序为:#include<stdio.h>
void main() {
int i;
for(i=3; i<=50; i++)
if(i%3==0 || i%5==0) printf("%d ",i);
printf("/n"); }
6. 编写一个递归函数“int FF(int a[], int n)”,求出数组a中所有n个元素之积并返回。
程序为: int FF(int a[], int n){
if(n<=0) {printf("n值非法/n"),exit(1);}
if(n==1) return a[n-1];
else return a[n-1]*FF(a,n-1); }
7. 编写一个程序,输出50以内(含50)的、能够被3或者5整除的所有整数。
#include<stdio.h>
void main() {
int i;
for(i=3; i<=50; i++)
if(i%3==0 || i%5==0) printf("%d ",i);
printf("/n"); }
8. 编写一个递归函数“int FF(int a[], int n)”,求出数组a中所有n个元素之积并返回。
int FF(int a[], int n) {
if(n<=0) {printf("n值非法/n"),exit(1);}
if(n==1) return a[n-1];
else return a[n-1]*FF(a,n-1); }
9.根据函数原型"double Mean(double a[M][N] ,int m ,int n)",编写函数定义,要求返回二维数组a[m][n]中所有元素的平均值。假定在计算过程中采用变量v存放累加值和最后的平均值。
double Mean(double a[M][N] ,int m ,int n) {
int i,j;
double v=O.0;
for(i=O; i<m; i++)
for(j=O; j<n;j++) v+=a[i][j];
v/=m*n;
return v; } //注:函数体的最后两行可以合并为一条返回语句:return v/=m*n,也可以把"="去掉。
10.根据函数原型"int MM(int a[],int m)",编写函数定义,计算并返回数组a[m]中元素最大值和最小值之差。
int MM(int a[],int m){
int i,x1,x2;
xl=x2=a[0];
for(i=1; i<m;i++){
if(a[i]>x1) xl=a[i];
if(a[i]<x2) x2=a[i];}
return xl-x2;}
来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。
相关文章:
下列关于会计主体假设的说法,正确的是()。A会计主体是04-27
经过批准或备案的合法统计调查报表的()需标明法定标识04-27
根据《关于统计上划分经济成分的规定》,()不属于非公有04-27
在实际工作中,常常对矿山、油田、森工局、电网等企业按04-27
从全部调查研究对象中,抽选一部分单位进行调查,并据以对04-27
从一般意义上讲,会计对象就是社会再生产过程中的()。A04-27
经济普查的对象是()。A从事第一产业活动的单位和农户B04-27
人口普查长表要求按()的比例抽选调查户后,逐户逐人调查04-27