程序设计语言(C)复习题 联系客服

发布时间 : 星期二 文章程序设计语言(C)复习题更新完毕开始阅读cfae78a20029bd64783e2c79

该程序执行后的输出结果为:1 2 3

4. 有以下程序: main() {

int i=1,j=2,k=3;

if(i++==1&&(++j==3||k++==3)) printf(\}

程序运行后的输出结果是(2 3 3)

5、写出下面程序的输出结果 main() {int i,j;

for (i=5;i>=1;i--)

{for (j=1;j<=5-i;j++)

printf(“%c”,‘ ’); /*单引号内为一个空格*/ for (j=1;j<=2*i-1;j++)

printf(“%c”,’*’); printf(“\\n”); } }

运行结果:

********* ******* ***** *** *

6、写出下面程序的输出结果 #include main()

{int x=1,y=0,a=0,b=0; switch(x)

{case 1:

switch(y)

{case 0:a++;break; case 1:b++;break; } case 2:

a++;b++;break; }

第 5 页 共 9 页

printf(\}

运行结果: a=2,b=1

7、写出下面程序的输出结果 int a=10,b=20;

int plus(int x,int y) {int b=25; a++;b++;

return(a+b+x+y); }

main()

{printf(“a+b=%d\\n”,plus(a,b)); printf(“a+b=%d\\n”,plus(a,b)); }

运行结果: a+b=67 a+b=69

8、写出下面程序的输出结果 void r_n(int m) {int q;

q=m;m=m/10;

printf(“-”,(q+1)); if (m!=0) r_n(m); }

main() {int m;

scanf(“%d”,&m);r_n(m); printf(“\\n”); }

输入7936 ↙ 运行结果: 7 4 0 8

9、写出下面程序的输出结果 main()

{int x[5]={2,4,6,8,10},*p,**pp; p=x;pp=&p;

printf(“%d”,*(p++)); printf(“=\\n”,**pp); }

运行结果: 2 4

10、以下函数返回a所指数组中最小的值所在的下标值。

第 6 页 共 9 页

int fun(int *a,int n) {int i,p;

p=0;

for(i=1;i

p=i ;

return(p); }

11、以下函数返回s所指字符串的长度。

int ss(char *s) {char *p=s;

while (*p) p++; return(p-s);

}

12、以下函数的功能是删除字符串s中的所有数字字符。 void dele(char *s) {int n=0,i;

for(i=0;s[i];i++)

if(s[i]>’9’||s[i]<’0’) s[n++]=s[i];

s[n]=‘\\0’; }

13、下面程序的功能是将两个字符串连接起来。

#include main()

{ char s1[80],s2[40]; int i=0,j=0;

printf(“\\nInput string1:”);

scanf(“%s”,s1);

printf(“Input string2:”); scanf(“%s”,s2); while(s1[i]!=‘\\0’)

i++; while(s2[j]!=‘\\0’)

s1[i++]=s2[j++];

s1[i] =‘\\0’; printf(“%s\\n”,s1);

}

14、以下函数的功能是实现交换两个整型变量的值,并能把交换后的结果带到主调函数。

void swap(int *a,int *b) {int temp;

temp=*a;*a=*b;*b=temp;

第 7 页 共 9 页

}

15、冒泡、选择排序算法。

main()/*冒泡法例程*/ {

int i,j,t; int a[11];

printf(\for (i=1;i<=10;i++)

scanf(“%d”,&a[i]); ; printf(\

for (i=1;i<=10-1;i++)

for (j=1;j<= 10-i ;j++) if( a[j]>a[j+1] )

{t=a[j]; a[j]=a[j+1] ;a[j+1]=t;} printf(\for (i=1;i<=10;i++)

printf(“%d “,a[i]) ; printf(\}

sort(int *a,int n) /*选择法例程*/ {int min,t;int i,j; for(i=0;i

{ min=i;

for(j=i+1;j

if(a[min]>a[j]) min=j; t=a[i];a[i]=a[min];a[min]=t;} }

16、利用递归调用编写函数求n的阶乘或求Fibonacci数列第n项。

17、下列程序用来输出所有的“水仙花”数。所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。 main()

{ int i,j,k,x;

for(x=100;x<=999;x++) {i=x/100;

j= x0/10;/* 或j=(x-100*i)/10; */ k=x;

if(x==i*i*i+j*j*j+k*k*k) printf(“M”,x); } }

18、下列程序的功能是:求1+1/2+1/3+?..+1/n的值。 main( )

第 8 页 共 9 页

{ int i, n; float sum; scanf(\ sum=0;

for(i=1 ;i<=n ;i++) sum=sum+1.0/i; printf(\}

19、下列是评分统计程序,一共有8个评委打分,统计最后得分时,去掉一个最高分和一个最低分,其余6个分数的平均分即为最后得分。 main()

{ float ave,max,min,x[8]={9.2,9.5,9.8,7.4,8.5,9.1,9.3,8.8}; int i;

max=min= x[0]; for(i=1;i<8;i++)

{ if(max

if(min>x[i]) min=x[i]; }

for(i=0;i<8 ;i++)

ave+=x[i]; ave=(ave-min-max)/6;

printf(“average=%f\\n”,ave); }

20、已知一个整型的数组a,有10个元素,分别为10,21,35,24,57,69,82,71,29,66;让用户输入一个整数x,查找该数是否在数组a中,若存在则输出所在的位置,不存在则输出信息“找不到”。 #include

main() {

int a[]={10,21,35,24,57,69,82,71,29,66},x,i; scanf(\ for(i=0;i<10;i++) if(a[i]==x) break; if(i>=10) printf(\ else printf(\}

第 9 页 共 9 页