发布时间 : 星期二 文章程序设计语言(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
{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 { 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 页