C語言模擬試題3

iamzxf發表於2014-12-30


一、選擇題:本題共 10 小題,滿分 20 分。

1、一個C程式的執行時從                                     (      )

A)main()函式開始,直到main()函式結束

B)第一個函式開始,直到最後一個函式結束

C)第一個語句開始,直到最後一個語句結束

D)main()函式開始,直到最後一個函式結束

2、以下C語言使用者識別符號中,不合法的是                       (    )

A)_1       B) AaBc       C)  a_b       D) a—b

3、若定義intm=7,n=12;則能得到值為3的表示式是(     )

A)n%=(m%=5)  B)n%=(m-m%5)   C)n%=m-m%5   D)(n%m)-(m%=5)

4、設變數定義為int a[4];,下列哪個表示式不符合C語言語法。    (     )

A)*a      B)a[0]      C)a++      D)a

5、若a是數值型別,則邏輯表示式(a==1)||(a!=1)的值是            (     )

A)1     B)0       C)2      D)不知道a的值,不能確定

6、若有以下語句:                                          (     )

 typedef struct S

 { int g; char h;}T;

以下敘述中正確的是

A)可用S定義結構體變數    B)可用T定義結構體變數

C)S是struct型別的變數    D)T是struct S型別的變數

7、定義了陣列int a[3][6];後,第10個元素是                        (     )

A)a[2][4]      B)a[1][3]      C)a[3][1]      D)a[4][2]

8、已知a被定義成int型變數,以下定義並初始化指標變數p的語句中正確的是(     )

A)int p=a;      B)int *p=*a;      C)int p=&a;     D)int *p=&a;

9、下列語句組中,正確的是                                       (     )

A)char *s; s="Olympic";     B)char s[7]; s="Olympic";

C)char *s; s={"Olympic"};   D)char s[7];s={"Olympic"};

10、下面提供的一組函式中,用於按“記錄”的方式進行輸入和輸出的是 (     )

A)fread(),fwrite()   B)fscanf(),fprintf()   C)fgets(),fputs   D)fgetc(),fputc()

 

得分

評卷人

 

 

 

二、填空題:本題共 10 小題,滿分 20 分。       

1、設int a=7,b=9,t; 執行完表示式 t= a>b ? a: b 後,t 的值是                

2、表示“x≥y≥z”的C表示式是                          

3、C語言中,一個自定義函式一般由兩部分組成,他們是                    

4、若定義int *p(); 則表示                              。

5、函式呼叫語句中func(f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8)));,func函式的實參個數是       

6、若有定義int a=6;,則表示式a+=a-=a*a;的值是                

7、C語言中,用基本型別變數作為函式引數可以實現     傳遞,通過陣列(指標)等型別作為函式引數可以實現      傳遞。

8、C語言中呼叫          函式開啟檔案,呼叫          函式關閉檔案。

9、假設m是一個三位數,從左到右用a,b,c表示各位的數字,則從左到右各個數字是bac的三位數的表示式是                             

10、在C語言中,二維陣列在記憶體中的存放順序是                      

 

三、程式應用題:本題共 8 小題,滿分 42 分。

 

1、程式執行後的輸出結果是:(6分)

#include <stdio.h>

void main()

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

  if(a==1)

   if(b!=2)

      if(c==3)  d=1;

         else d=2;

       else if(c!=3)d=3;

          else d=4;

    else d=5;

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

}

2、程式執行後的輸出結果是:(6分)

#include <stdio.h>

void main()

{ int i,j,a[][3]={1,2,3,4,5,6,7,8,9};             

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

     for(j=i; j<3; j++) printf(“%d,”,a[i][j]);

  printf("\n");

}

3、寫出下列程式的執行結果:(6分)

#include<stdio.h>

void main()

{  int i;

   char str[]= “The C program”, c ;              

   for(i=2; (c=str[i])!= ‘\0’; i++)                   

   {

       switch(c)

       {  case ‘g’:  i++; break;

           case ‘o’:  continue;

           default:   printf(“%c”, c); continue;

       }

       printf(“*”);

  }

}

4、寫出下列程式的執行結果:(6分)

#include <stdio.h>

int fun()

{ static int x=1;                          

x*=2;

return x;

}

void main()                      

{ int i,s=1;

for(i=1;i<=3;i++) s*=fun();

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

}

5、寫出下列程式的執行結果:(4分)

#include <stdio.h>

void main()

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

   printf("%10d%10d \n ", a[0],*(a+1)); 

   printf("%10d%10d\n",*(a[1]+1),*(*(a+2)+1));

}

假設陣列a的首地址為1000,每個整數佔兩個位元組。

6、下面程式的功能是輸出1至100之間每位數的乘積大於每位數的和的數,請填空使程式完整。(4分)(例如39,可判斷3*9>3+9)

#include <stdio.h>

void main ()

{   int n ,k=1 , s=0 , m;

    for ( n=1 ; n <=100; n++ )                   填空:①               

    {   k=1 ; s=0 ; m=n;

                while (____①___)                   ②              

        {  k*=m%10;

            s+=m%10;

                   ②        ;

        }

   }

}

 

7、程式的功能是:輸出100以內能被3整出且個位數是6的所有整數,請填空:(6分)

#include <stdio.h>

void main ()                                   填空: ①                

{  int i, j ;                                           

   for(i=0;      ①     ; i++)                         ②                

   {  j=i*10+6;                                     

      if(   ②   &&    ③    )                  ③                

          printf(“%5d”, j);

  }

}

8、下列函式的功能是:(4分)

#include <stdio.h>

void main ()

{  int f;                         函式功能:

   if( n<0)

      printf(“n<0, data error\n”);

   else if( n==0 || n==1)

      f=1;

   else f=n*fun(n-1);

   return f;

}

 

 

四、程式設計題:本題共 2 小題,滿分 18 分。

 

 

1、隨機產生50個0~6之間的整數,分別統計每個數的個數。(6分)

 

 

 

 

 

 

 

 

 

 

 

 

 

2、輸入10個學生的資訊,包括學號、姓名、年齡、3門課成績,輸出平均分最高的學生的資訊;統計2門及2門以上不及格的人數。要求使用函式實現。(12分)

①Input(struct Student stu[], int n)

②High_Score(struct Student stu[], int n)

③Total(struct Student stu[], int n)

 

 

 

 

 

 

 

相關文章