完美WORD格式
while(j>=i) {
if(a[i]%2!=0) {i++;n++;} else
{t=a[i];a[i]=a[j];a[j]=t;j--;} }
sort(a,n);
sort(&a[n],15-n); for(i=0;i<15;i++)
printf(\
printf(\ }
void sort(a,n) int a[]; int n; {
int i,j,t;
for(j=1;j<=n;j++) for(i=0;i
{t=a[i];a[i]=a[i+1];a[i+1]=t;} }
10.编写一个程序完成“菜单”功能。提供三种选择途径: (1)求水仙花数(narcissus number),找出100至999之间的所有水仙花数。 (2)求出素数(prime number),找出2至n之间的所有素数。 (3)求Faibonacci数列前n项的值。 #include “math.h” main()
{ int m, xz;
void narcissus( ); void prime( );
void faibonacci( ); clrscr( ); m=0;
while(m==0)
{ printf(“\\n\\n”);
printf(“ 1 find narcissus number\\n”); printf(“ 2 find prime number\\n”);
printf(“ 3 find Faibonacci number\\n”); printf(“ other number exit!\\n”); printf(“ input number please!\\n”); scanf(“%d”,&xz); switch(xz)
专业整理 知识分享
完美WORD格式
{ case 1: narcissus( ); break; case 2: prime( ); break; case 3: faibonacci( ); break; default: m=1; }m=1; } }
void narcissus( ) { int k,a,b,c,d;
for (k=100; k<1000; k++) { a=k/100; b=k0/10; c=k;
d=a*a*a+b*b*b+c*c*c;
if (d==k) printf(“]\\n”, k); } }
void prime ( )
{ int i, j, k, n, m=0;
printf(“input n please !\\n”); scanf(“%d”, &n); for(i=2; i for(k=2; k<=j; k++) if (i%k==0) break; if (k>j) { m++; printf(“m”, i); if (m==0) printf(“\\n”); } } } void faibonacci( ) { long f1, f2; int k, n; printf(“int n please!\\n”); scanf(“%d”, &n); f1=1; f2=1; for (k=1; k<=n/2; k++) { printf(“??”, f1, f2); if (k ) printf(“\\n”); f1=f1+f2; f2=f1+f2; } } 专业整理 知识分享 完美WORD格式 【提示】程序共有4个函数,其中主函数提供了主菜单,允许选择三种情况之一,否则就退出。通过开关语句switch进行选择。为了不断的提供菜单,用while来永远循环。一开始给变量m赋值为0,m=0就继续循环,一旦选择了不存在的情况,则将m置1,循环就结束。 7.2 补充习题 一.单选题 1.以下程序的输出结果是( ) fun(int x,int y,int z) { z=x*x+y*y;} main( ) { int a=31; fun(5,2,a); printf(\,a); } A、 0 B、 29 C、 31 D、 无定值 【分析与提示】变量作参数时,形参值的改变不会影响实参的值。 【解答】答案:C 2.当调用函数时,实参是一个数组名,则向函数传送的是( ) A、数组的长度 B、数组的首地址 C、数组每一个元素的地址 D、数组每个元素中的值 【解答】答案:B 3.以下程序的输出结果是( ) int f( ) {static int i=0; int s=1; s+=i;i++; return s; } main( ) {int i,a=0; for(i=0;i<5;i++) a+=f(); printf(\,a); } A、20 B、24 C、25 D、15 【分析与提示】自动变量在函数每次调用时,都进行初始化,而静态变量只在编译阶段初始化一次。 【解答】答案:D 4.以下程序运行后的输出结果是( ) f(int b[ ],int m,int n) {int i,s=0; for(i=m;i 专业整理 知识分享 完美WORD格式 main( ) {int x,a[ ]={1,2,3,4,5,6,7,8,9}; x=f(a,3,7); printf(\,x); } A、10 B、18 C、8 D、15 【分析与提示】数组名作参数时传送的是数组的首地址。 【解答】答案:A 5.当执行下面的程序时,如果输入ABC,则输出结果是( ) #include \#include \main( ) { char ss[10]=\,2,3,4,5\; gets(ss);strcat(ss,\;printf(\,ss); } A、ABC6789 B、ABC67 C、12345ABC6 D、ABC456789 【分析与提示】注意库函数gets()、strcat()的用法。 【解答】答案:A 6.以下程序运行后的输出结果是( ) void fun(char *c,int d) {*c=*c+1;d=d+1; printf(\} main() {char a='A',b='a'; fun(&b,a); printf(\} A、 B,a,B,a B、 a ,B,a,B C、 A,b,A,b D、b,B,A,b 【分析与提示】注意指针作参数与普通变量作参数的“值传递”。 【解答】答案:D 7.以下程序运行后的输出结果是( ) void sort(int a[],int n) { int i,j,t; for(i=0;i {t=a[i];a[i]=a[j];a[j]=t;} } main() {int aa[10]={1,2,3,4,5,6,7,8,9,10},i; sort(&aa[3],5); for(i=0;i<10;i++) printf(\ 专业整理 知识分享 完美WORD格式 printf(\ } A、 1,2,3,4,5,6,7,8,9,10, B、10,9,8,7,6,5,4,3,2,1, C、 1,2,3,8,7,6,5,4,9,10, D、1,2,10,9,8,7,6,5,4,3, 【分析与提示】注意实参的“值”。 【解答】答案:C 8.以下程序运行后的输出结果是( ) int f(int n) {if(n==1) return 1; else return f(n-1)+1; } main() {int i,j=0; for(i=1;i<3;i++) j+=f(i); printf(\} A、 4 B、 3 C、 2 D、 1 【分析与提示】本题为递归调用。 【解答】答案:B 二.运行程序写结果 1.下列程序运行的运行结果为 。 #include \main() { int i,num; for(i=0;i<3;i++) {num=2; printf(\:%d \\n\num++; { static int num=1; printf(\: %d\\n\num++; } } } 【分析与提示】注意static的用法。 【解答】The num equal:2 The internal block num equal:1 The num equal:2 The internal block num equal:2 专业整理 知识分享