亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

試題

計算機二級考試C語言模擬試題四附答案

時間:2024-10-11 17:24:44 試題 我要投稿
  • 相關(guān)推薦

2015年計算機二級考試C語言模擬試題(四)附答案

  一、單項選擇題

2015年計算機二級考試C語言模擬試題(四)附答案

  1.以下說法中正確的是( D )。

  A) #define和printf都是C語句

  B) #define是C語句,而printf不是

  C) printf是C語句,但#define不是

  D) #define和printf都不是C語句

  2.以下程序的輸出結(jié)果是( C )。

  #define f(x) x*x

  main( )

  {int a=6, b=2, c;

  c=f(a)/f(

  B);

  printf("%d\n", c);

  }

  A) 9

  B) 6

  C) 36

  D) 18

  3.下列程序執(zhí)行后的輸出結(jié)果是( B )。

  #define MA(x) x*(x-1)

  main( )

  {int a=1, b=2; printf("%d\n", MA(1+a+

  B));}

  A) 6

  B) 8

  C) 10

  D) 12

  4.以下程序的輸出結(jié)果是( D )。

  #define M(x, y, z) x*y+z

  main( )

  {int a=1, b=2, c=3;

  printf("%d\n", M(a+b, b+c, c+a));

  }

  A) 19

  B) 17

  C) 15

  D) 12

  5.以下程序的輸出結(jié)果是( B )。

  #define SQR(X) X*X

  main( )

  {int a=16, k=2, m=1;

  a/=SQR(k+m)/SQR(k+m);

  printf("%d\n", a);

  }

  A) 16

  B) 2

  C) 9

  D) 1

  6.有如下程序:

  #define N 2

  #define M N+1

  #define NUM 2*M+1

  main( )

  {int i;

  for(i=1; i<=NUM; i++) printf(“%d\n”, i);

  }《 M=3,NUM=6》

  該程序中的for循環(huán)執(zhí)行的次數(shù)是( B )。

  A) 5

  B) 6

  C) 7

  D) 8

  7.以下程序的輸出結(jié)果是( C )。

  #include

  #define MIN(x, y) (x)< (y)?(x):(y)

  main( )

  {int a, b, c;

  a=20;b=10;

  c=5*MIN(a, B);

  printf(“%d\n”, c);

  }

  A) 20

  B) 200

  C) 10

  D) 50

  8.在下列敘述中,正確的是( C )。

  A) 下面的程序有一個整型輸出值:

  main( )

  {int a;

  a=pp( );

  printf(“%d”,a);

  }

  void pp( )

  { … }

  B) 以下程序的運行結(jié)果為1,3,5,7

  main( )

  {static int a[4]={1,3,5,7};

  printf(“%d,%d,%d,%d\n”,a);

  }

  C) 以下兩個語句是等價的

  for(;(c=getchar( ))!=‘\n’;printf(“%c\n”, c));

  for(;(c=getchar( ))!=‘\n’;) printf(“%c\n”, c);

  D) 以下程序中的PRINT()是一個函數(shù)

  #define PRINT(V) printf(“V=%d\t”, V)

  main( )

  {int a,b;

  a=1;

  b=2;

  PRINT(a);

  PRINT(B);

  }

  9.在下列#include命令中,正確的一條是( D )。

  A) #include[string.h]

  B) #include{math.h}

  C) #include(stdio.h)

  D) #include

  10.宏定義#define PI 3.1415926的作用是:指定用標識符PI來代替一個( B )。

  A) 單精度數(shù)

  B) 字符串

  C) 雙精度數(shù)

  D) 整數(shù)

  11.如果在用戶的程序中要使用C庫函數(shù)中的數(shù)學函數(shù)時,應在該源文件中使用的include命令是( B )。

  A) #include

  B) #include

  C) #include

  D) #include

  12.若輸入60和13,以下程序的輸出結(jié)果是( D )。

  #define SURPLUS(a,B) ((a)%(B))

  main( )

  {int a,b;

  scanf(“%d,%d”,&a,&B);

  printf(“%d\n”,SURPLUS(a,B));

  }

  A) 60

  B) 13

  C) 73

  D) 8

  13.如果文件1包含文件2,文件2中要用到文件3的內(nèi)容,而文件3中要用到文件4的內(nèi)容,則可在文件1中用三個#include命令分別包含文件2、文件3和文件4。在下列關(guān)于這幾個文件包含順序的敘述中,正確的一條是( A )。

  A) 文件4應出現(xiàn)在文件3之前,文件3應出現(xiàn)在文件2之前

  B) 文件2應出現(xiàn)在文件3之前,文件3應出現(xiàn)在文件4之前

  C) 文件3應出現(xiàn)在文件2之前,文件2應出現(xiàn)在文件4之前

  D) 出現(xiàn)的先后順序可以任意

  14.在下面四個程序中,輸出結(jié)果與其它三個不同的是( C )。

  A) #define MAX(a,B) ((a)>(B)?(a):(B))

  main( )

  {int a,b,c;

  scanf(“%d,%d,%d”,&a,&b,&c);

  printf(“%d\n”,MAX(MAX(a,B),c));

  }

  B) main( )

  {int a,b,c;

  scanf(“%d,%d,%d”,&a,&b,&c);

  printf(“%d\n”,max(a,b,c));

  }

  max(int x,int y,int z)

  {int t;

  t=(x>y?x:y);

  return(t>z?t:z);

  }

  C) main( )

  {int a,b,c,max;

  scanf(“%d,%d,%d”,&a,&b,&c);

  if(a>b>c) max=a;

  if(b>c>a) max=b;

  if(c>a>B) max=c;

  printf(“%d\n”,max);

  }

  D) main( )

  {int a,b,c,max;

  scanf(“%d,%d,%d”,&a,&b,&c);

  max=a>b?a:b;

  if(c>max) max=c;

  printf(“%d\n”,max);

  }

  15.以下for語句構(gòu)成的循環(huán)執(zhí)行了( C )次。

  #define N 2

  #define M N+1

  #define NUM (M+1)*M/2

  main( )

  {int i, n=0;

  for(i=1; i<=NUM; i++)

  {n++;

  printf(“%d”, n);

  }

  printf(“\n”);

  }

  A) 4

  B) 6

  C) 8

  D) 9

  16.以下程序的輸出結(jié)果是( B )。

  #include

  #define FUDGE(y) 2.84+y

  #define PR(a) printf(“%d”, (int)(a))

  #define PRINT1(a) PR(a); putchar(‘\n’)

  main( )

  {int x=2;

  PRINT1(FUDGE(5)*x);

  }

  A) 11

  B) 12

  C) 13

  D) 15

  17.以下程序的輸出結(jié)果是( A )。

  #define SUB(x, y) (x)*y

  main( )

  {int a=3, b=4;

  printf(“%d\n”, SUB(a++, b++));

  }

  A) 12

  B) 15

  C) 16

  D) 20

  18.設(shè)有以下宏定義:

  #define N 3

  #define Y(n) ((N+1)*n)

  則執(zhí)行語句:z=2*(N+Y(5+1));后,z的值為( C )。

  A) 出錯

  B) 42

  C) 48

  D) 54

  19.下列程序的輸出結(jié)果是( C )。

  main()

  {char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;

  printf("%d",*--p);

  }

  A) 非法

  B) a[4]的地址

  C) 5

  D) 3

  20.下列程序的運行結(jié)果是( B )。

  void fun(int *a, int *B)

  {int *k;

  k=a; a=b; b=k;

  }

  main()

  {int a=3, b=6, *x=&a, *y=&b;

  fun(x, y);

  printf("%d %d", a, B);

  }

  A) 6 3

  B) 3 6

  C) 編譯出錯

  D) 0 0

  21.下面程序的輸出結(jié)果是( C )。

  main()

  {int a[ ]={1,2,3,4,5,6,7,8,9,0},*p;

  p=a;

  printf("%d\n",*p+9);

  }

  A) 0

  B) 1

  C) 10

  D) 9

  22.假定以下程序經(jīng)編譯和連接后生成可執(zhí)行文件PROG . EXE,如果在此可執(zhí)行文件所在目錄的DOS提示符下鍵入:PROG ABCD EFGH IJKL<回車>,則輸出結(jié)果為( D )。

  main( int argc, char *argv[ ])

  {while(--argc>0) printf("%s", argv[argc]);

  printf("\n");

  }

  A) ABCDEFGH

  B) IJHL

  C) ABCDEFGHIJKL

  D) IJKLEFGHABCD

  23.對于基類型相同的兩個指針變量之間,不能進行的運算是( C )。

  A) <

  B) =

  C) +

  D) -

  24.有以下函數(shù):

  char * fun (char *p)

  {return p;}

  該函數(shù)的返回值是( B )。

  A) 無確切的值 B) 形參p中存放的地址值

  C) 一個臨時存儲單元的地址

  D) 形參p自身的地址值

  25.若有以下說明和定義

  fun(int *C){…}

  main()

  {int (*a)()=fun,*b(),w[10],c;

  ┆

  }

  在必要的賦值之后,對fun函數(shù)的正確調(diào)用語句是( B )。

  A) a=a(w);

  B) (*a)(&C);

  C) b=*b(w);

  D) fun (B);

  26.有如下說明

  int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;

  則數(shù)值為9的表達式是( B )。

  A) *p+9

  B) *(p+8)

  C) *p+=9

  D) p+8

  27.有如下程序:

  main()

  {char ch[2][5]={“6937”,“8254”},*p[2];

  int i,j,s=0;

  for(i=0;i<2;i++) p[i]=ch[i];

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

  for(j=0;p[i][j]>‘\0’;j+=2)

  s=10*s+p[i][j]-‘0’;

  printf(“%d\n”,s);

  }

  該程序的輸出結(jié)果是( C )。

  A) 69825

  B 63825

  C) 6385

  D) 693825

  28.若有以下定義和語句:

  char *s1=“12345”,*s2=“1234”;

  printf(“%d\n”, strlen(strcpy (s1, s2)));

  則輸出結(jié)果是( A )。

  A) 4

  B) 5

  C) 9

  D) 10

  29.下面程序的輸出結(jié)果是( C )。

  main( )

  {char *s=“121”;

  int k=0, a=0, b=0;

  do

  {k++;

  if(k%2= =0) {a=a+s[k]-‘0’; continue;}

  b=b+s[k]-‘0’; a=a+s[k]-‘0’;

  }

  while(s[k+1]);

  printf(“k=%d a=%d b=%d\n”, k, a, B);

  }

  A) k=3 a=2 b=3

  B) k=3 a=3 b=2

  C) k=2 a=3 b=2

  D) k=2 a=2 b=3

  30.若有以下的定義:

  int a[ ]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, *p=a;

  則值為3的表達式是( A )。

  A) p+=2,*(p++)

  B) p+=2,*++p

  C) p+=3,*p++

  D) p+=2,++*p

  31.以下程序的輸出結(jié)果是( A )。

  #include

  sub1(char a, char B) {char c; c=a; a=b; b=c;}

  sub2(char *a, char B) {char c; c=*a; *a=b; b=c;}

  sub3(char *a, char *B) {char c; c=*a; *a=*b; *b=c;}

  main()

  {char a, b;

  a=‘A’; b=‘B’; sub3 (&a, &B); putchar(a); putchar(B);

  a=‘A’; b=‘B’; sub2 (&a, B); putchar(a); putchar(B);

  a=‘A’; b=‘B’; sub1 (a, B); putchar(a); putchar(B);

  }

  A) BABBAB

  B) ABBBBA

  C) BABABA

  D) BAABBA

  32.設(shè)p1和p2是指向同一個int型一維數(shù)組的指針變量,k為int型變量,則不能正確執(zhí)行的語句是( B )。

  A) k=*p1+*p2;

  B) p2=k;

  C) p1=p2;

  D) k=*p1*(*p2);

  33.設(shè)有如下定義:

  int arr[ ]={6, 7, 8, 9, 10}; int *ptr;

  則下列程序段的輸出結(jié)果是( D )。

  ptr=arr;

  *(ptr+2)+=2;

  printf(“%d, %d\n”, *ptr, *(ptr+2));

  A) 8,10

  B) 6,8

  C) 7,9

  D) 6,10

  34.以下程序的輸出結(jié)果是( D )。

  main()

  {char a[ ]=“programming”, b[ ]= “language”;

  char *p1, *p2;

  int i;

  p1=a; p2=b;

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

  if(*(p1+i)= =*(p2+i)) printf(“%c”, *(p1+i));

  }

  A) gm

  B) rg

  C) or

  D) ga

  35.以下程序運行后,輸出結(jié)果是( C )。

  main()

  {char *s=“abcde”;

  s+=2;

  printf(“%ld\n”, s);

  }

  A) cde

  B) 字符c的ASCII碼值

  C) 字符c的地址

  D) 出錯

  36.以下程序運行后,如果從鍵盤上輸入ABCDE<回車>,則輸出結(jié)果為( D )。

  #include

  #include

  func(char str[ ])

  {int num=0;

  while(*(str+num)!=’\0’) num++;

  return(num);

  }

  main()

  {char str[10], *p=str;

  gets (p);

  printf(“%d\n”, func (p));

  }

  A) 8

  B) 7

  C) 6

  D) 5


  37.以下程序執(zhí)行后,a的值是( C )。

  main()

  {int a, k=4, m=6, *p1=&k, *p2=&m;

  a=p1= =&m;(等于運算符==優(yōu)先級高于賦值運算符=,即為a=(p1==&m))

  printf(“%d\n”, a);

  }

  A) 4

  B) 1

  C) 0

  D) 運行時出錯,a無定值

  38.以下程序運行后,如果從鍵盤上輸入:

  book<回車>

  book<空格><回車>

  則輸出結(jié)果是( B )。

  #include

  main()

  {char a1[80], a2[80], *s1=a1, *s2=a2;

  gets(s1); gets(s2);

  if(!strcmp(s1, s2)) printf(“*”);

  else printf(“#”);

  printf(“%d\n”, strlen(strcat(s1, s2)));

  }

  A) *8

  B) #9

  C) #6

  D) *9

  39.若有以下調(diào)用語句,則不正確的fun函數(shù)的首部是( D )。

  main()

  { …

  int a[50], n;

  …

  fun (n, &a[9]);

  …

  }

  A) void fun(int m,int x[ ])

  B) void fun(int s,int h[41])

  C) void fun(int p,int *s) D) void fun(int n,int a)

  40.假定下列程序的可執(zhí)行文件名為prg . exe,則在該程序所在的子目錄下輸入命令行:

  prg hello good<回車>后,程序的輸出結(jié)果是( B )。

  main(int argc, char *argv[ ])

  {int i;

  if(argc<=0) return;

  for(i=1; i

  }

  A) hello good

  B) hg

  C) hel

  D) hellogood

  二、填空題

  1.下列程序的輸出結(jié)果是 GDABC 。

  #include

  main( )

  {char b[30],*chp;

  strcpy(&b[0],"GH");

  strcpy(&b[1],"DEF");

  strcpy(&b[2],"ABC");

  printf("%s\n",B);

  }

  2.下列程序的字符串中各單詞之間有一個空格,則程序的輸出結(jié)果是 How does she 。

  #include

  main( )

  {char strl[ ]="How do you do",*p1=strl;

  strcpy (strl+strlen(strl)/2,"es she");

  printf("%s\n",pl);

  }

  3.若有如下圖所示五個連續(xù)的int類型的存儲單元并賦值如下圖,a[0]的地址小于a[4]的地址。p和s是基類型為int的指針變量。請對以下問題進行填空。

  a[0] a[1] a[2] a[3] a[4]

  2233445566

  (1)若p已指向存儲單元a[1]。通過指針p給s賦值,使s指向最后一個存儲單元a[4]的語句是 s=p+3 。

  (2)若指針s指向存儲單元a[2],p指向存儲單元a[0],表達式s-p的值是 2 。

  4.以下程序的功能是:將無符號八進制數(shù)字構(gòu)成的字符串轉(zhuǎn)換為十進制整數(shù)。例如,輸入的字符串為:556,則輸出十進制整數(shù)366。請?zhí)羁铡?/p>

  #include

  main()

  {char *p, s[6];

  int n;

  p=s;

  gets (p);

  n=*p-'0';

  while( *(++p) !='\0') n=n*8+*p-'0';

  printf("%d\n", n);

  }

  5.設(shè)有以下程序:

  main()

  {int a, b, k=4, m=6, *p1=&k, *p2=&m;

  a=(pl= =&m);

  b=(*p1)/(*p2)+7;

  printf("a=%d\n", a);

  printf("b=%d\n",

  B);

  }

  執(zhí)行該程序后,a的值為 0 ,b的值為 7 。

  6.下列程序的輸出結(jié)果是 0 。

  void fun(int *n)

  {while((*n)--);

  printf("%d", ++(*n));

  }

  main()

  {int a=100;

  fun (&a);

  }

  7.以下程序的輸出結(jié)果是 10 。

  main()

  {int arr[ ]={30, 25, 20, 15, 10, 5}, *p=arr;

  p++;

  printf("%d\n", *(p+3));

  }

  8.若有以下定義,則不移動指針p,且通過指針p引用值為98的數(shù)組元素的表達式是 *(p+5) 。

  int w[10]={23,54,10,33,47,98,72,80,61}, *p=w;

  9.以下函數(shù)把b字符串連接到a字符串的后面,并返回a中新字符串的長度。請?zhí)羁铡?/p>

  strlen (char a[ ], char b[ ])

  {int num=0, n=0;

  while (*(a+num)!= '\0' ) num++;

  while (b[n]){*(a+num)=b[n]; num++; n++ ;}

  return(num);

  }

  10.函數(shù)void fun(float *sn,int n)的功能是:根據(jù)以下公式計算S,計算結(jié)果通過形參指針sn傳回;n通過形參傳入,n的值大于等于0。請?zhí)羁铡?/p>

  void fun(float *sn, int n)

  {float s=0.0, w, f= -1.0;

  int i=0;

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

  {f= -1 *f;

  w=f/ (2*i+1);

  s+=w;

  }

  *sn = s;

  }


  11.下面函數(shù)用來求出兩個整數(shù)之和,并通過形參傳回兩數(shù)相加之和值,請?zhí)羁铡?/p>

  int add(int x,int y, int * z)

  { *z =x+y;}

  12.以下fun函數(shù)的功能是:累加數(shù)組元素中的值。n為數(shù)組中元素的個數(shù)。累加的和值放入x所指的存儲單元中。請?zhí)羁铡?/p>

  fun(int b[ ],int n,int *x)

  {int k,r=0;

  for(k=0;k

  *x =r;

  }

  13.以下函數(shù)的功能是:把兩個整型指針變量所指的存儲單元中的內(nèi)容進行交換。請?zhí)羁铡?/p>

  exchange(int *x,int *y)

  {int t;

  t=*y; *y= *x ; *x= t ;

  }

  14.以下程序的輸出是 49 。

  main()

  {int a[10]={19,23,44,17,37,28,49,36},*p;

  p=a;

  printf(“%d\n”,(p+=3)[3]);

  }

  15.下面程序的輸出結(jié)果是 024 。

  #define MAX 3

  int a[MAX];

  main()

  {fun1();fun2(a);printf(“\n”);}

  fun1()

  {int k,t=0;

  for(k=0;k

  }

  fun2(int b[])

  {int k;

  for(k=0;k

  }

  16.下面程序的輸出結(jié)果是 ABCDCD 。

  char b[]=“ABCD”;

  main()

  {char *chp;

  for(chp=b; *chp; chp+=2) printf(“%s”, chp);

  printf(“\n”);

  }

  17.以下程序的功能是:從鍵盤上輸入一行字符,存入一個字符數(shù)組中,然后輸出該字符串,請?zhí)羁铡?/p>

  #include

  main()

  {char str[81],*sptr;

  int i;

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

  {str[i]=getchar();

  if(str[i]==‘\n’) break;

  }

  str[i]= '\0' ;

  sptr=str;

  while(*sptr) putchar( *sptr++ );

  }

  18.fun1函數(shù)的調(diào)用語句為:fun1(&a,&b,&C);它將三個整數(shù)按由大到小的順序調(diào)整后依次放入a、b、c三個變量中,a中放最大數(shù)。請?zhí)羁铡?/p>

  void fun2(int *x, int *y)

  {int t;

  t=*x; *x=*y; *y=t;

  }

  void fun1(int *pa,int *pb,int *pC)

  {if(*pc>*pB) fun2( pc,pb );

  if(*pa<*pC) fun2( pa,pb );

  if(*pa<*pB) fun2( pa,pc );

  }

  19.以下函數(shù)用來在w數(shù)組中插入數(shù)x,w數(shù)組中的數(shù)已按由小到大的順序存放,n所指存儲單元中存放數(shù)組中數(shù)據(jù)的個數(shù),x插入后數(shù)組中的數(shù)仍有序。請?zhí)羁铡?/p>

  void fun(char *w,char x,int *n)

  {int i,p;

  p=0;

  w[*n]=x;

  while(x>w[p]) p++ ;

  for(i=*n;i>p;i--) w[i]= w[i-1] ;

  w[p]=x;

  ++*n;

  }

  20.閱讀程序:

  main()

  {char str1[]=“how do you do”, str2[10];

  char *p1=str1, *p2=str2;

  scanf(“%s”, p2);

  printf(“%s ”, p2);

  printf(“%s\n”, p1);

  }運行上面的程序,輸入字符串HOW DO YOU DO,則程序的輸出結(jié)果是 HOW how do you do 。

  21.下面程序的輸出結(jié)果是 SO 。

  main()

  {char *p[]={“BOOL”, “OPK”, “H”, “SP”};

  int i;

  for(i=3;i>=0;i--,i--) printf(“%c”,*p[i]);

  printf(“\n”);

  }

  22.下面程序的輸出結(jié)果是 17 。

  funa(int a,int B)

  {return a+b;}

  funb(int a,int B)

  {return a-b;}

  sub(int(*t)(),int x,int y)

  {return((*t)(x,y));}

  main()

  {int x,(*p)();

  p=funa;

  x=sub(p,9,3);

  x+=sub(funb,8,3);

  printf(“%d\n”, x);

  }

  23.下面程序的輸出結(jié)果是 XYZA 。

  #include

  void fun(char *a1,char *a2,int n)

  {int k;

  for(k=0;k

  a2[k]=(a1[k]-‘A’-3+26)%26+‘A’;

  a2[n]=‘\0’;

  }

  main()

  {char s1[5]=“ABCD”, s2[5];

  fun (s1, s2, 4);

  puts(s2);

  }

  24.下面程序的輸出結(jié)果是 7 1 。

  void as(int x,int y,int *cp,int *dp)

  {*cp=x+y;

  *dp=x-y;

  }

  main()

  {int a=4,b=3,c,d;

  as(a,b,&c,&D);

  printf(“%d %d\n”,c,D);

  }

  25.下面程序的輸出結(jié)果是 eybdooG 。

  #include

  main()

  {static char b[]=“Goodbye”;

  char *chp=&b[7];

  while(--chp>=&b[0]) putchar(*chp);

  putchar(‘\n’);

  }

  26.若輸入:this test terminal,以下程序的輸出結(jié)果為:terminal test this。填空補充以下程序。

  #include

  #define MAXLINE 20

  main()

  {int i;

  char *pstr[3],str[3][MAXLINE];

  for(i=0;i<3;i++) pstr[i]=str[i];

  for(i=0;i<3;i++) scanf(“%s”,pstr[i]);

  sort(pstr);

  for(i=0;i<3;i++) printf(“%s\n”,pstr[i]);

  }

  sort( char *pstr [3] )

  {int i,j;

  char *p;

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

  {for(j=i+1;j<3;j++)

  {if(strcmp(*(pstr+i),*(pstr+j))>0)

  {p=*(pstr+i);

  *(pstr+i)= *(patr+j) ;

  *(pstr+j)=p;

  }

  }

  }

  }

  27.以下程序利用指針法將兩個數(shù)按從小到大的順序輸出來。

  main()

  {int a,b, *p1,*p2 , p ;

  printf(“input a, b:”);

  scanf(“%d%d”, &a,&B);

  p1=&a ;

  p2=&b;

  if(a

  {p=p1; p1=p2; p2=p;}

  printf(“a=%d b=%d\n”,a,B);

  printf(“max=%d min=%d\n”, *p1,*p2 );

  }

  28.以下程序的輸出結(jié)果是 8 。

  fun(int n,int *s)

  {int f1,f2;

  if(n==1||n==2) *s=1;

  else

  {fun(n-1,&f1);

  fun(n-2,&f2);

  *s=f1+f2;

  }

  }

  main()

  {int x;

  fun(6,&x);

  printf(“%d\n”,x);

  }

  29.下面的程序通過函數(shù)average計算數(shù)組中各元素的平均值,請?zhí)羁铡?/p>

  float average(int *pa,int n)

  {int i;

  float avg=0.0;

  for(i=0;i

  avg=avg+ *(pa+i) ;

  avg= avg/n ;

  return avg;

  }

  main()

  {int i,a[5]={2,4,6,8,10};

  float mean;

  mean=average(a,5);

  printf(“mean=%f\n”,mean);

  }

  30.以下程序?qū)⒆址畇1中的所有與字符串str1相同的子串替換成字符串str2,并將替換后的新串存于字符數(shù)組s2中。

  #include

  void replace(char *s1,char *s2,char *str1,char *str2)

  {char *t0,*t1,*t2;

  while( *s1 )

  {for(t0=s1,t1=str1;(*t1!=‘\0’&& *t0=*t1 );t0++,t1++);

  if(*t1!=‘\0’) *s2++ = *s1++ ;

  else

  {for(t1=str2;*t1!=‘\0’;) *s2++ = *t1++ ;

  s1=t0 ;

  }

  }

  *s2=‘\0’;

  }

  main()

  {static char s1[]=“abcef ababcd abab.”, s2[25];

  replace (s1, s2, “abc”, “XYZ”);

  printf(“%s\n”, s2);

  }

  31.以下語句的輸出結(jié)果是 hELLO! 。

  char s[80],*sp=“HELLO!”;

  sp=strcpy (s, sp); s[0]=‘h’; puts(s);

【計算機二級考試C語言模擬試題四附答案】相關(guān)文章:

計算機二級C語言模擬試題及答案12-08

C語言模擬試題及答案03-28

2015年計算機二級C語言模擬試題及答案03-12

2017年計算機二級模擬試題及答案(C語言)12-06

計算機二級C++模擬試題及答案02-06

計算機二級《C語言》考試沖刺試題及答案201603-11

2017計算機二級C語言上機測試題附答案03-30

2017計算機二級C語言基礎(chǔ)測試題附答案03-04

計算機二級《C語言》試題及答案201611-21